:root { color-scheme: light; font-family: Inter, Pretendard, "Noto Sans KR", system-ui, sans-serif; color: #24263a; background: #f6f7fc; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: radial-gradient(circle at 88% 2%, #e9ddff 0, transparent 24rem), radial-gradient(circle at 0% 30%, #e4f0ff 0, transparent 22rem), #f6f7fc; }
a { color: inherit; text-decoration: none; }
.speaking-hub { width: min(100% - 32px, 820px); margin: 0 auto; padding: 24px 0 44px; }
.hub-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.back-link { display: inline-flex; min-height: 38px; align-items: center; padding: 0 13px; border: 1px solid #e0ddec; border-radius: 11px; background: rgba(255,255,255,.74); color: #575b78; font-size: .84rem; font-weight: 750; }
.back-link:hover { background: #fff; }
.service-name { color: #7658a7; font-size: .68rem; font-weight: 850; letter-spacing: .08em; white-space: nowrap; }
.hub-hero { padding: 58px 8px 34px; }
.eyebrow, .course-kicker { margin: 0 0 10px; color: #7031d1; font-size: .72rem; font-weight: 880; letter-spacing: .09em; }
.hub-hero h1 { margin: 0; font-size: clamp(2.3rem, 8.2vw, 4.25rem); letter-spacing: -.068em; line-height: 1.04; }
.hub-hero > p:last-child { max-width: 510px; margin: 18px 0 0; color: #60647d; font-size: 1rem; line-height: 1.72; }
.mode-switch { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 42px; }
.mode-choice { min-height: 76px; display: flex; flex-direction: column; justify-content: center; gap: 4px; padding: 14px 17px; border: 1px solid #e2e2ed; border-radius: 17px; background: rgba(255,255,255,.72); color: #72758b; }
.mode-choice span { font-size: .71rem; font-weight: 790; letter-spacing: .05em; }
.mode-choice strong { color: #3d4059; font-size: 1.02rem; letter-spacing: -.025em; }
.mode-choice.selected { border-color: #7134d6; background: #6a2bca; box-shadow: 0 10px 20px rgba(82,34,166,.22); }
.mode-choice.selected span, .mode-choice.selected strong { color: #fff; }
.mode-choice.upcoming { opacity: .72; cursor: pointer; transition: transform .15s ease, border-color .15s ease, background .15s ease; }
.mode-choice.upcoming:hover { transform: translateY(-1px); border-color: #bca6e7; background: rgba(255,255,255,.94); }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin: 0 4px 13px; }
.section-heading h2 { margin: 0; color: #272a41; font-size: 1.32rem; letter-spacing: -.042em; }
.live-badge { padding: 7px 10px; border-radius: 999px; background: #e9f9f2; color: #198557; font-size: .68rem; font-weight: 820; white-space: nowrap; }
.il-course-card { position: relative; overflow: hidden; padding: 25px; border: 1px solid #dfd2ff; border-radius: 25px; background: linear-gradient(143deg, #fcfbff 0%, #f0e8ff 62%, #e6f3ff 100%); box-shadow: 0 18px 44px rgba(76,37,143,.12); }
.il-course-card::after { position: absolute; right: -64px; top: -68px; width: 188px; height: 188px; border: 24px solid rgba(124,63,220,.10); border-radius: 50%; content: ""; }
.course-summary { position: relative; z-index: 1; display: flex; gap: 17px; align-items: flex-start; }
.il-symbol { width: 58px; height: 58px; display: grid; flex: 0 0 auto; place-items: center; border-radius: 18px; background: #6b2acb; color: #fff; font-size: 1.08rem; font-weight: 900; box-shadow: 0 9px 17px rgba(93,39,179,.24); }
.course-kicker { margin: 3px 0 7px; font-size: .67rem; }
.course-summary h3 { margin: 0; color: #2c2d48; font-size: clamp(1.55rem, 5vw, 2rem); letter-spacing: -.055em; line-height: 1.13; }
.course-description { position: relative; z-index: 1; max-width: 570px; margin: 20px 0 0; color: #535671; font-size: .91rem; line-height: 1.72; }
.course-stats { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 22px 0; }
.course-stats div { padding: 13px 12px; border: 1px solid rgba(255,255,255,.76); border-radius: 14px; background: rgba(255,255,255,.57); }
.course-stats dt { margin-bottom: 5px; color: #8657c9; font-size: .61rem; font-weight: 900; letter-spacing: .07em; }
.course-stats dd { margin: 0; color: #3e405a; font-size: .78rem; font-weight: 780; white-space: nowrap; }
.course-actions { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: 9px; }
.primary-action, .secondary-action { min-height: 46px; display: inline-flex; align-items: center; justify-content: center; padding: 0 17px; border-radius: 13px; font-size: .84rem; font-weight: 830; transition: transform .15s ease, background .15s ease; }
.primary-action { background: #6328c8; color: #fff; box-shadow: 0 8px 16px rgba(92,39,178,.22); }
.secondary-action { border: 1px solid #d6c4fa; background: rgba(255,255,255,.76); color: #5d2cae; }
.primary-action:hover, .secondary-action:hover { transform: translateY(-1px); }
.primary-action:hover { background: #5120a8; }
.secondary-action:hover { background: #fff; }
.course-detail-link { position: relative; z-index: 1; display: inline-flex; gap: 8px; margin-top: 20px; color: #5f31ad; font-size: .8rem; font-weight: 790; }
.course-detail-link span { font-size: 1rem; line-height: .8; }
.empty-course-note { position: relative; z-index: 1; margin: 0; color: #756b88; font-size: .82rem; font-weight: 760; }
.learning-flow { margin-top: 44px; }
.learning-flow ol { display: grid; gap: 10px; margin: 14px 0 0; padding: 0; list-style: none; }
.learning-flow li { display: grid; grid-template-columns: 34px 1fr; gap: 12px; align-items: start; padding: 17px 18px; border: 1px solid #e5e5ef; border-radius: 17px; background: rgba(255,255,255,.69); }
.learning-flow li > span { padding-top: 2px; color: #7642c8; font-size: .72rem; font-weight: 900; letter-spacing: .07em; }
.learning-flow strong { display: block; color: #303248; font-size: .94rem; letter-spacing: -.02em; }
.learning-flow p { margin: 5px 0 0; color: #686b80; font-size: .81rem; line-height: 1.55; }
.next-course { margin-top: 36px; padding: 23px; border: 1px dashed #cfc6df; border-radius: 21px; background: rgba(249,248,253,.72); }
.next-course h2 { max-width: 440px; margin: 0; color: #42445b; font-size: 1.05rem; letter-spacing: -.035em; line-height: 1.42; }
.next-course p { max-width: 560px; margin: 8px 0 14px; color: #74768a; font-size: .82rem; line-height: 1.6; }
.next-course span, .next-course a { display: inline-flex; padding: 7px 10px; border-radius: 999px; background: #ebe9f2; color: #77758a; font-size: .68rem; font-weight: 800; }
.next-course a:hover { background: #e1d9f2; color: #5e5380; }
.mode-placeholder { min-height: 58vh; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: 52px 8px; }
.mode-placeholder h1 { margin: 0; color: #2b2d45; font-size: clamp(2rem, 7vw, 3.5rem); letter-spacing: -.06em; }
.mode-placeholder p { margin: 14px 0 0; color: #74768a; font-size: .9rem; }
.mode-placeholder span { margin-top: 20px; display: inline-flex; padding: 8px 11px; border-radius: 999px; background: #ebe9f2; color: #77758a; font-size: .72rem; font-weight: 800; }
footer { margin-top: 34px; padding: 0 8px; color: #7b7c8e; font-size: .69rem; line-height: 1.65; }
@media (min-width: 680px) { .speaking-hub { width: min(100% - 64px, 900px); padding-top: 34px; } .hub-hero { padding-top: 70px; } .mode-switch { max-width: 480px; } .il-course-card { padding: 32px; } .course-actions { gap: 11px; } }
@media (max-width: 420px) { .service-name { display: none; } .course-stats { gap: 6px; } .course-stats div { padding: 11px 8px; } .course-stats dd { font-size: .71rem; } .primary-action, .secondary-action { flex: 1 1 100%; } }
