:root{--navy:#0f172a;--navy-2:#131d33;--navy-line:#24314d;--blue:#2563eb;--blue-hover:#1d4ed8;--cyan:#22d3ee;--cyan-text:#0e7490;--signal:#ff8a4c;--signal-text:#c2410c;--bg:#f8fafc;--bg-tint:#eef3fb;--surface:#fff;--surface-2:#f1f5f9;--line:#e2e8f0;--line-strong:#cbd5e1;--fg:#0f172a;--muted:#475569;--faint:#64748b;--on-dark:#e2e8f0;--on-dark-muted:#8da0bd;--success:#059669;--success-soft:#ecfdf5;--warn:#b45309;--warn-soft:#fffbeb;--danger:#b91c1c;--danger-soft:#fef2f2;--accent-soft:#2563eb14;--grad:linear-gradient(100deg, #2563eb 0%, #3b82f6 45%, #22d3ee 100%);--font:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--t-xs:.8125rem;--t-sm:.875rem;--t-md:1rem;--t-lg:1.125rem;--t-xl:1.375rem;--t-2xl:clamp(1.6rem, 1.2rem + 1.4vw, 2.1rem);--t-3xl:clamp(2rem, 1.4rem + 2.4vw, 3rem);--t-hero:clamp(2.5rem, 1.6rem + 4vw, 4.4rem);--r-ctl:8px;--r-panel:14px;--r-stage:24px;--shadow-sm:0 1px 2px #0f172a0f, 0 1px 1px #0f172a0a;--shadow-md:0 14px 34px -16px #0f172a38, 0 2px 6px #0f172a0d;--shadow-lg:0 40px 80px -30px #0f172a59;--ease:cubic-bezier(.2, .7, .2, 1);--container:1200px;--gutter:clamp(16px, 4vw, 32px);--header-h:64px}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 16px)}body{font-family:var(--font);font-size:var(--t-md);color:var(--fg);background:var(--bg);font-feature-settings:"cv11", "ss01";-webkit-font-smoothing:antialiased;margin:0;line-height:1.6}img,svg{max-width:100%;display:block}a{color:inherit}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3,h4{letter-spacing:-.025em;text-wrap:balance;margin:0;font-weight:750;line-height:1.12}p{text-wrap:pretty;margin:0}ul,ol{margin:0;padding:0}code,pre{font-family:var(--mono);font-size:.92em}:focus-visible{outline:3px solid var(--blue);outline-offset:2px;border-radius:4px}::selection{background:#22d3ee59}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;background:var(--navy);color:#fff;border-radius:var(--r-ctl);padding:10px 14px;text-decoration:none;position:absolute;top:-60px;left:12px}.skip-link:focus{top:12px}.container{width:100%;max-width:var(--container);padding-inline:var(--gutter);margin-inline:auto}.lede{font-size:var(--t-lg);color:var(--muted);max-width:60ch}.muted{color:var(--muted)}.faint{color:var(--faint)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.btn{border-radius:var(--r-ctl);min-height:44px;font-weight:600;font-size:var(--t-sm);cursor:pointer;white-space:nowrap;transition:background-color .15s var(--ease), border-color .15s var(--ease), color .15s var(--ease);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 18px;text-decoration:none;display:inline-flex}.btn svg{flex:none;width:18px;height:18px}.btn-primary{background:var(--blue);color:#fff}.btn-primary:hover{background:var(--blue-hover)}.btn-dark{background:var(--navy);color:#fff}.btn-dark:hover{background:#1e293b}.btn-ghost{background:var(--surface);border-color:var(--line-strong);color:var(--fg)}.btn-ghost:hover{border-color:var(--fg)}.btn-quiet{color:var(--muted);background:0 0;padding-inline:10px}.btn-quiet:hover{color:var(--fg);background:var(--surface-2)}.btn-on-dark{color:#fff;background:#ffffff14;border-color:#ffffff2e}.btn-on-dark:hover{background:#ffffff24}.btn-block{width:100%}.btn[aria-disabled=true],.btn:disabled{opacity:.55;cursor:not-allowed}.preview-bar{background:var(--navy);color:var(--on-dark);font-size:var(--t-xs);text-align:center;padding:7px var(--gutter)}.preview-bar b{color:#fff;font-weight:600}.preview-bar .dot{background:var(--signal);vertical-align:1px;border-radius:50%;width:7px;height:7px;margin-right:8px;display:inline-block}.site-header{z-index:40;-webkit-backdrop-filter:saturate(1.4)blur(10px);backdrop-filter:saturate(1.4)blur(10px);border-bottom:1px solid var(--line);background:#f8fafcf0;position:sticky;top:0}.site-header .container{height:var(--header-h);align-items:center;gap:28px;display:flex}.brand{flex:none;align-items:center;gap:10px;text-decoration:none;display:flex}.brand img{width:auto;height:26px}.brand-word{font-weight:650;font-size:var(--t-sm);color:var(--muted);border-left:1px solid var(--line-strong);letter-spacing:-.01em;padding-left:10px}.main-nav{gap:4px;margin-right:auto;display:flex}.main-nav a{border-radius:var(--r-ctl);font-size:var(--t-sm);color:var(--muted);padding:8px 12px;font-weight:550;text-decoration:none}.main-nav a:hover{color:var(--fg);background:var(--surface-2)}.main-nav a.active{color:var(--fg);background:var(--bg-tint)}.header-actions{align-items:center;gap:8px;display:flex}.menu-toggle{display:none}@media (width<=860px){.site-header .container{gap:12px}.main-nav,.header-actions .hide-sm{display:none}.header-actions{margin-left:auto}.menu-toggle{display:inline-flex}.main-nav.open{top:var(--header-h);background:var(--surface);border-bottom:1px solid var(--line);padding:12px var(--gutter) 18px;box-shadow:var(--shadow-md);flex-direction:column;display:flex;position:absolute;left:0;right:0}.main-nav.open a{font-size:var(--t-md);padding:12px}.brand-word{display:none}}.site-footer{border-top:1px solid var(--line);background:var(--surface);font-size:var(--t-sm);margin-top:96px}.site-footer .container{grid-template-columns:1.4fr repeat(3,1fr);gap:32px;padding-block:48px 32px;display:grid}.site-footer h2{font-size:var(--t-sm);letter-spacing:-.005em;margin-bottom:12px}.site-footer ul{gap:8px;list-style:none;display:grid}.site-footer a{color:var(--muted);text-decoration:none}.site-footer a:hover{color:var(--fg)}.footer-base{border-top:1px solid var(--line);color:var(--faint);font-size:var(--t-xs);padding-block:18px}@media (width<=760px){.site-footer .container{grid-template-columns:1fr 1fr}.site-footer .footer-about{grid-column:1/-1}}.sample-tag{color:var(--signal-text);white-space:nowrap;background:#fff4ed;border:1px solid #fed7c3;border-radius:999px;align-items:center;gap:6px;padding:2px 9px;font-size:.75rem;font-weight:600;line-height:1.5;display:inline-flex}.chip{border:1px solid var(--line-strong);background:var(--surface);min-height:36px;font-size:var(--t-sm);color:var(--muted);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:0 14px;font-weight:550;display:inline-flex}.chip:hover{color:var(--fg);border-color:var(--fg)}.chip[aria-pressed=true]{background:var(--navy);border-color:var(--navy);color:#fff}.chip .swatch{border-radius:3px;width:9px;height:9px}.meta{font-size:var(--t-sm);color:var(--muted);flex-wrap:wrap;gap:6px 16px;display:flex}.meta span{align-items:center;gap:6px;display:inline-flex}.meta svg{width:16px;height:16px;color:var(--faint)}.level{color:var(--fg);font-weight:600}.notice{border-radius:var(--r-panel);font-size:var(--t-sm);background:var(--bg-tint);color:#1e3a8a;border:1px solid #d6e2f6;align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.notice svg{flex:none;width:20px;height:20px;margin-top:1px}.notice.warn{background:var(--warn-soft);color:#78350f;border-color:#fde68a}.notice.success{background:var(--success-soft);color:#065f46;border-color:#a7f3d0}.notice b{font-weight:650}.progress{background:var(--surface-2);border-radius:99px;height:6px;overflow:hidden}.progress>i{border-radius:inherit;background:var(--grad);height:100%;display:block}.cover{aspect-ratio:16/10;border-radius:calc(var(--r-panel) - 4px);background:hsl(var(--hue) 70% 14%);position:relative;overflow:hidden}.cover svg{width:100%;height:100%}.course-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-panel);transition:border-color .15s var(--ease), box-shadow .2s var(--ease);flex-direction:column;gap:14px;padding:10px 10px 18px;text-decoration:none;display:flex}.course-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow-md)}.course-card .body{gap:8px;padding-inline:8px;display:grid}.course-card h3{font-size:var(--t-lg);letter-spacing:-.02em}.course-card p{font-size:var(--t-sm);color:var(--muted)}.course-card .foot{justify-content:space-between;align-items:center;margin-top:4px;padding-inline:8px;display:flex}.price{font-weight:700;font-size:var(--t-lg);letter-spacing:-.02em}.topic-line{font-size:var(--t-xs);color:var(--muted);align-items:center;gap:8px;font-weight:600;display:flex}.topic-line .swatch{border-radius:2px;width:8px;height:8px}.field{gap:6px;display:grid}.field label{font-size:var(--t-sm);font-weight:600}.field .hint{font-size:var(--t-xs);color:var(--faint)}.field .err{font-size:var(--t-xs);color:var(--danger)}.input{border:1px solid var(--line-strong);border-radius:var(--r-ctl);background:var(--surface);width:100%;min-height:46px;padding:10px 14px;transition:border-color .15s,box-shadow .15s}.input:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 4px #2563eb26}.input[aria-invalid=true]{border-color:var(--danger)}.check{font-size:var(--t-sm);color:var(--muted);align-items:flex-start;gap:10px;display:flex}.check input{width:18px;height:18px;accent-color:var(--blue);margin-top:2px}.tabs{border-bottom:1px solid var(--line);gap:4px;display:flex;overflow-x:auto}.tabs button{font-size:var(--t-sm);color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:12px 14px;font-weight:600}.tabs button[aria-selected=true]{color:var(--fg);border-bottom-color:var(--blue)}.table-wrap{border:1px solid var(--line);border-radius:var(--r-panel);background:var(--surface);overflow-x:auto}table.data{border-collapse:collapse;width:100%;font-size:var(--t-sm)}table.data th{text-align:left;color:var(--muted);background:var(--surface-2);white-space:nowrap;padding:10px 14px;font-weight:600}table.data td{border-top:1px solid var(--line);white-space:nowrap;padding:12px 14px}.status{font-size:var(--t-xs);background:var(--surface-2);color:var(--muted);border-radius:999px;align-items:center;gap:6px;padding:2px 9px;font-weight:600;display:inline-flex}.status:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.status.ok{background:var(--success-soft);color:var(--success)}.status.wait{background:var(--warn-soft);color:var(--warn)}.skeleton{border-radius:var(--r-panel);background:linear-gradient(90deg, var(--surface-2), #e9eef5, var(--surface-2));background-size:200% 100%;animation:1.4s linear infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.page-loading{min-height:50vh}.section{padding-block:clamp(56px,8vw,96px) 0}.section-head{gap:8px;max-width:64ch;margin-bottom:32px;display:grid}.section-head h2{font-size:var(--t-2xl)}.section-head.row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;max-width:none;display:flex}.section-head.row>div{gap:8px;display:grid}.section-head.on-dark p{color:var(--on-dark-muted)}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;padding-block:40px 24px;display:flex}.page-head h1{font-size:var(--t-3xl);margin-bottom:8px}.main-nav .hide-lg{display:none}.main-nav.open .hide-lg{display:block}.empty-state{justify-items:start;gap:16px;padding-block:96px;display:grid}.empty-state h1{font-size:var(--t-3xl)}.hero{background:radial-gradient(50% 60% at 85% 20%,#22d3ee24,#0000 70%),radial-gradient(40% 50% at 60% 80%,#2563eb1a,#0000 70%);padding-block:clamp(40px,6vw,80px) 0}.hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:center;gap:clamp(32px,5vw,64px);display:grid}.hero-copy{gap:22px;display:grid}.hero h1{font-size:var(--t-hero);letter-spacing:-.04em;max-width:14ch;font-weight:780;line-height:1.02}.hero-actions{flex-wrap:wrap;gap:12px;display:flex}.map-stage{aspect-ratio:520/400;border-radius:var(--r-stage);background:radial-gradient(70% 60% at 80% 10%, #2563eb59, transparent 70%), radial-gradient(#ffffff14 1px, transparent 1.2px) 0 0 / 18px 18px, var(--navy);box-shadow:var(--shadow-lg);color:var(--on-dark);isolation:isolate;position:relative;overflow:hidden}.map-head{z-index:2;align-items:center;gap:10px;display:flex;position:absolute;top:4%;left:4.6%;right:4.6%}.map-file{font-size:var(--t-sm);color:#fff;font-weight:600}.map-wires{width:100%;height:100%;position:absolute;inset:0}.map-wires path{fill:none;stroke:#3b82f6;stroke-width:2px;stroke-dasharray:5 6;vector-effect:non-scaling-stroke}.map-wires path.done{stroke:var(--cyan);stroke-dasharray:none}.map-nodes{list-style:none}.map-node{border:1px solid var(--navy-line);z-index:1;background:#131d33eb;border-radius:12px;grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-content:center;column-gap:12px;width:43.8%;height:16%;padding:0 14px;display:grid;position:absolute}.map-node.n1{top:17.5%;left:4.6%}.map-node.n2{top:37.5%;left:51.5%}.map-node.n3{top:57.5%;left:4.6%}.map-node.n4{top:77.5%;left:51.5%}.map-step{width:30px;height:30px;font-size:var(--t-xs);border:1.5px solid var(--navy-line);color:var(--on-dark-muted);border-radius:50%;grid-row:1/3;align-self:center;place-items:center;font-weight:700;display:grid}.map-step svg{width:16px;height:16px}.map-title{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:clamp(.78rem,.7rem + .35vw,.95rem);font-weight:650;overflow:hidden}.map-sub{color:var(--on-dark-muted);font-size:.75rem}.map-node.is-done .map-step{background:var(--cyan);border-color:var(--cyan);color:var(--navy)}.map-node.is-now{border-color:var(--signal);box-shadow:0 0 0 4px #ff8a4c29}.map-node.is-now .map-step{border-color:var(--signal);color:var(--signal)}.map-mascot{z-index:0;opacity:.98;width:34%;position:absolute;top:5%;right:-3%}@media (width<=920px){.hero-grid{grid-template-columns:1fr}.hero h1{max-width:18ch}}@media (width<=520px){.map-stage{aspect-ratio:520/470}.map-node{column-gap:8px;width:60%;height:14%;padding:0 10px}.map-node.n2,.map-node.n4{left:auto;right:4.6%}.map-wires{display:none}.map-step{width:24px;height:24px}.map-mascot{width:36%;top:10%}}.track-list{border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));list-style:none;display:grid}.track{border-bottom:1px solid var(--line);transition:background-color .15s var(--ease);grid-template-rows:auto auto;grid-template-columns:6px minmax(0,1fr) auto;column-gap:18px;padding:22px 20px 22px 0;text-decoration:none;display:grid}.track-list li:nth-child(odd) .track{margin-right:24px}.track:hover{background:linear-gradient(90deg, hsl(var(--hue) 80% 50% / .06), transparent 70%)}.track-bar{background:hsl(var(--hue) 80% 50%);border-radius:3px;grid-row:1/3}.track-name{font-weight:700;font-size:var(--t-lg);letter-spacing:-.02em}.track-blurb{color:var(--muted);font-size:var(--t-sm);grid-column:2}.track-count{font-size:var(--t-xs);color:var(--faint);grid-area:1/3/3;align-self:center;font-weight:600}@media (width<=760px){.track-list{grid-template-columns:1fr}.track-list li:nth-child(odd) .track{margin-right:0}}.band{background:var(--navy);color:#fff;margin-top:clamp(56px,8vw,96px);padding-block:clamp(56px,7vw,88px)}.rhythm{counter-reset:step;border-top:1px solid var(--navy-line);grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;display:grid}.rhythm li{counter-increment:step;align-content:start;gap:8px;padding:28px 24px 0 0;display:grid;position:relative}.rhythm li:before{content:counter(step);background:var(--navy);border:1.5px solid var(--cyan);width:28px;height:28px;color:var(--cyan);font-size:var(--t-xs);border-radius:50%;place-items:center;font-weight:700;display:grid;position:absolute;top:-14px;left:0}.rhythm svg{width:28px;height:28px;color:var(--cyan);margin-top:8px}.rhythm h3{font-size:var(--t-xl)}.rhythm p{color:var(--on-dark-muted);font-size:var(--t-sm);max-width:28ch}@media (width<=860px){.rhythm{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:40px}}@media (width<=480px){.rhythm{grid-template-columns:1fr}}.course-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:20px;display:grid}.cta-panel{border-radius:var(--r-stage);background:var(--bg-tint);border:1px solid #d6e2f6;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;padding:clamp(28px,4vw,44px);display:flex}.cta-panel h2{font-size:var(--t-2xl);margin-bottom:6px}.filters{border-bottom:1px solid var(--line);gap:14px;padding-bottom:20px;display:grid}.search{max-width:420px;position:relative}.search svg{width:18px;height:18px;color:var(--faint);pointer-events:none;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.search .input{padding-left:42px}.chip-row{flex-wrap:wrap;gap:8px;display:flex}.result-count{font-size:var(--t-sm);color:var(--faint);padding-block:16px}.empty-inline{justify-items:start;gap:10px;padding:48px 0;display:grid}.empty-inline h2{font-size:var(--t-xl)}.crumbs{font-size:var(--t-sm);color:var(--faint);align-items:center;gap:6px;padding-top:28px;display:flex}.crumbs a{color:var(--muted);text-decoration:none}.crumbs a:hover{text-decoration:underline}.crumbs svg{width:14px;height:14px}.course-layout{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:clamp(32px,5vw,64px);padding-top:24px;display:grid}.course-layout>.course-hero{grid-area:1/1}.course-main{grid-area:2/1;gap:48px;display:grid}.course-layout>.buy-card{grid-area:1/2/3}.course-hero{gap:16px;display:grid}.course-hero h1{font-size:var(--t-3xl);letter-spacing:-.035em}.sample-note{font-size:var(--t-sm);color:var(--faint);align-items:center;gap:10px;display:flex}.outcomes h2,.reqs h2,.route h2{font-size:var(--t-xl);margin-bottom:16px}.outcomes ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px;list-style:none;display:grid}.outcomes li{font-size:var(--t-sm);gap:10px;display:flex}.outcomes svg{width:20px;height:20px;color:var(--blue);flex:none}.reqs ul{color:var(--muted);gap:6px;padding-left:20px;display:grid}@media (width<=600px){.outcomes ul{grid-template-columns:1fr}.lessons li{grid-template-columns:20px minmax(0,1fr) auto;padding-inline:8px}.lessons .mins,.lessons .lock{display:none}}.route-head{justify-content:space-between;align-items:baseline;display:flex}.route-head h2{margin-bottom:4px}.route-sum{font-size:var(--t-sm);margin-bottom:20px}.stations{list-style:none;position:relative}.stations:before{content:"";background:repeating-linear-gradient(to bottom, var(--line-strong) 0 5px, transparent 5px 10px);width:2px;position:absolute;top:16px;bottom:16px;left:15px}.station{padding-bottom:12px;padding-left:48px;position:relative}.station-dot{width:32px;height:32px;font-size:var(--t-xs);background:var(--surface);border:2px solid var(--line-strong);color:var(--muted);border-radius:50%;place-items:center;font-weight:700;display:grid;position:absolute;top:10px;left:0}.station.open .station-dot{border-color:var(--blue);color:var(--blue)}.station-head{border:1px solid var(--line);border-radius:var(--r-panel);background:var(--surface);text-align:left;cursor:pointer;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:10px 14px;display:flex}.station-head:hover{border-color:var(--line-strong)}.station-head>span{display:grid}.station-title{font-weight:650}.station-sub{font-size:var(--t-xs);color:var(--faint)}.station-head .chev{width:18px;height:18px;color:var(--faint);transition:transform .2s var(--ease)}.station.open .chev{transform:rotate(180deg)}.lessons{padding:6px 0 4px;list-style:none}.lessons li{font-size:var(--t-sm);border-radius:var(--r-ctl);grid-template-columns:20px minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:9px 14px;display:grid}.lessons li:hover{background:var(--surface-2)}.lessons li>svg{width:18px;height:18px;color:var(--faint)}.lessons a{color:var(--blue);font-weight:550}.lessons .free{font-size:var(--t-xs);color:var(--cyan-text);font-weight:600}.lessons .lock{width:15px;height:15px;color:var(--faint)}.lessons .mins{font-size:var(--t-xs);color:var(--faint);text-align:right;min-width:46px}.buy-card{top:calc(var(--header-h) + 20px);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-stage);box-shadow:var(--shadow-md);gap:14px;padding:12px 12px 20px;display:grid;position:sticky}.buy-card>:not(.cover){margin-inline:8px}.buy-price{flex-wrap:wrap;align-items:baseline;gap:10px;padding-top:4px;display:flex}.price.big{letter-spacing:-.03em;font-size:2rem}.buy-card .btn-block{width:auto}.includes{border-top:1px solid var(--line);font-size:var(--t-sm);color:var(--muted);gap:8px;padding-top:8px;list-style:none;display:grid}.includes li{gap:8px;padding-top:4px;display:flex}.includes svg{width:18px;height:18px;color:var(--success);flex:none}@media (width<=960px){.course-layout{grid-template-columns:1fr}.course-layout>.course-hero,.course-layout>.course-main,.course-layout>.buy-card{grid-area:auto/1}.buy-card{max-width:480px;position:static}}.auth{min-height:calc(100vh - var(--header-h) - 34px);grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);display:grid}.auth-side{background:radial-gradient(60% 50% at 80% 90%, #22d3ee40, transparent 70%), var(--navy);color:#fff;flex-direction:column;justify-content:space-between;gap:32px;padding:clamp(32px,5vw,64px);display:flex;position:relative;overflow:hidden}.auth-side h2{font-size:var(--t-2xl);max-width:16ch;margin-bottom:24px}.auth-side ul{color:var(--on-dark);font-size:var(--t-sm);gap:12px;list-style:none;display:grid}.auth-side li{align-items:center;gap:10px;display:flex}.auth-side li svg{width:20px;height:20px;color:var(--cyan)}.auth-mascot{align-self:flex-end;width:min(280px,70%);height:auto;margin-bottom:-24px}.auth-main{padding:clamp(32px, 5vw, 64px) var(--gutter);place-items:center;display:grid}.auth-form{gap:18px;width:100%;max-width:400px;display:grid}.auth-form h1{font-size:var(--t-3xl)}.auth-form a{color:var(--blue);font-weight:600}.field-row{justify-content:space-between;align-items:baseline;display:flex}.link-btn{font-size:var(--t-sm);color:var(--blue);cursor:pointer;background:0 0;border:0;padding:0;font-weight:600}.pw{position:relative}.pw .input{padding-right:64px}.pw-toggle{position:absolute;top:50%;right:14px;transform:translateY(-50%)}@media (width<=860px){.auth{grid-template-columns:1fr}.auth-side{order:2}.auth-mascot{display:none}}.dash{gap:24px;display:grid}.dash .page-head{padding-bottom:0}.continue{border-radius:var(--r-stage);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-md);grid-template-columns:300px minmax(0,1fr);align-items:center;gap:28px;padding:14px;display:grid}.continue-body{justify-items:start;gap:10px;padding-right:16px;display:grid}.continue-body h3{font-size:var(--t-2xl)}.continue-progress{width:100%;max-width:420px;font-size:var(--t-xs);color:var(--faint);align-items:center;gap:12px;margin-bottom:6px;display:flex}.continue-progress .progress{flex:1}@media (width<=760px){.continue{grid-template-columns:1fr}.continue-body{padding:0 6px 8px}}.dash-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:20px;display:grid}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-panel);align-content:start;justify-items:start;gap:16px;padding:22px;display:grid}.panel>*{width:100%}.panel>.btn{width:auto}.panel h2{font-size:var(--t-lg)}.my-courses{list-style:none;display:grid}.my-courses li{border-top:1px solid var(--line);grid-template-columns:10px minmax(0,1fr) 90px;align-items:center;gap:14px;padding-block:12px;display:grid}.mc-swatch{border-radius:3px;width:10px;height:36px}.mc-body{gap:8px;display:grid}.mc-title{font-weight:600;text-decoration:none}.mc-title:hover{color:var(--blue)}.mc-pct{font-size:var(--t-sm);color:var(--muted);text-align:right}.stat-line{font-size:var(--t-sm);color:var(--muted)}.stat-line strong{color:var(--fg);font-size:var(--t-lg)}.bars{grid-template-columns:repeat(7,1fr);gap:8px;height:140px;display:grid}.bar{text-align:center;color:var(--faint);grid-template-rows:1fr auto;gap:6px;font-size:.72rem;display:grid}.bar i{background:linear-gradient(to top, var(--blue), var(--cyan));border-radius:6px 6px 2px 2px;align-self:end;min-height:3px;display:block}.bar i.zero{background:var(--line)}.quiz-scores{list-style:none}.quiz-scores li{font-size:var(--t-sm);border-top:1px solid var(--line);justify-content:space-between;gap:12px;padding-block:8px;display:flex}@media (width<=860px){.dash-grid{grid-template-columns:1fr}}@media (width<=640px){.hide-sm{display:none!important}}.learn,.quiz-wrap{flex-direction:column;min-height:100vh;display:flex}.learn-top{z-index:30;background:var(--navy);color:#fff;align-items:center;gap:16px;height:60px;padding:0 16px;display:flex;position:sticky;top:0}.learn-top .btn-quiet{color:var(--on-dark)}.learn-top .btn-quiet:hover{color:#fff;background:#ffffff14}.learn-title{min-width:0;font-weight:650;font-size:var(--t-sm);flex:1;align-items:center;gap:20px;display:flex}.learn-title>span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.learn-progress{width:200px;font-size:var(--t-xs);color:var(--on-dark-muted);flex:none;align-items:center;gap:10px;margin-left:auto;display:flex}.learn-progress .progress{background:var(--navy-line);flex:1}.lessons-toggle{display:none}.learn-body{flex:1;grid-template-columns:320px minmax(0,1fr);display:grid}.lesson-nav{background:var(--surface);border-right:1px solid var(--line);height:calc(100vh - 60px);padding:20px 12px 40px;position:sticky;top:60px;overflow-y:auto}.ln-module+.ln-module{margin-top:20px}.ln-module h2{font-size:var(--t-sm);letter-spacing:-.01em;align-items:center;gap:10px;padding:0 8px 8px;display:flex}.ln-num{background:var(--surface-2);width:22px;height:22px;color:var(--muted);border-radius:50%;flex:none;place-items:center;font-size:.72rem;display:grid}.ln-module ul{list-style:none}.ln-item{border-radius:var(--r-ctl);font-size:var(--t-sm);gap:10px;padding:9px 10px;line-height:1.35;text-decoration:none;display:flex}.ln-item:hover{background:var(--surface-2)}.ln-item.current{background:var(--bg-tint);box-shadow:inset 3px 0 0 var(--blue)}.ln-state{border:1.5px solid var(--line-strong);width:22px;height:22px;color:var(--faint);border-radius:50%;flex:none;place-items:center;margin-top:1px;display:grid}.ln-state svg{width:12px;height:12px}.ln-item.done .ln-state{background:var(--success);border-color:var(--success);color:#fff}.ln-item.current .ln-state{border-color:var(--blue);color:var(--blue)}.ln-text{gap:2px;display:grid}.ln-text small{color:var(--faint);font-size:.75rem}.learn-main{outline:none}.learn-inner{max-width:920px;padding:24px var(--gutter) 64px;gap:24px;margin:0 auto;display:grid}.preview-note{font-size:var(--t-xs);color:var(--faint);flex-wrap:wrap;align-items:center;gap:10px;display:flex}.player{aspect-ratio:16/9;border-radius:var(--r-panel);background:radial-gradient(60% 70% at 50% 40%, #2563eb59, transparent 70%), radial-gradient(#ffffff12 1px, transparent 1.2px) 0 0 / 18px 18px, var(--navy);color:var(--on-dark);position:relative;overflow:hidden}.player-inner{text-align:center;place-content:center;justify-items:center;gap:8px;padding:24px;display:grid;position:absolute;inset:0}.player-btn{width:72px;height:72px;color:var(--navy);background:#fff;border-radius:50%;place-items:center;margin-bottom:8px;display:grid}.player-btn svg{width:30px;height:30px;margin-left:4px}.player-inner p{color:#fff;font-weight:600}.player-inner .player-note{font-weight:400;font-size:var(--t-sm);color:var(--on-dark-muted);max-width:40ch}.player-bar{color:var(--on-dark-muted);align-items:center;gap:12px;font-size:.75rem;display:flex;position:absolute;bottom:14px;left:16px;right:16px}.player-bar i{background:#ffffff2e;border-radius:4px;flex:1;height:4px}.stage-card{border-radius:var(--r-panel);background:var(--surface);border:1px solid var(--line);justify-items:start;gap:14px;padding:clamp(24px,4vw,40px);display:grid}.stage-card>svg{width:36px;height:36px;color:var(--blue)}.stage-card h2{font-size:var(--t-2xl)}.lab-steps{color:var(--muted);gap:6px;padding-left:20px;display:grid}.reading{max-width:68ch;font-size:var(--t-lg);gap:16px;line-height:1.7;display:grid}.reading h2{font-size:var(--t-2xl)}.reading pre,.snippet{background:var(--navy);color:var(--on-dark);border-radius:var(--r-ctl);font-size:var(--t-sm);margin:0;padding:16px 18px;line-height:1.6;overflow-x:auto}.lesson-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.lesson-head h1{font-size:var(--t-2xl)}.lesson-kind{font-size:var(--t-sm);margin-bottom:4px}.tab-panel{padding-top:4px}.resources{font-size:var(--t-sm);gap:10px;list-style:none;display:grid}.resources li{align-items:center;gap:10px;display:flex}.resources svg{width:18px;height:18px;color:var(--faint)}textarea.input{resize:vertical;min-height:110px}.lesson-pager{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:16px;padding-top:24px;display:grid}.pager{border:1px solid var(--line);border-radius:var(--r-panel);font-weight:600;font-size:var(--t-sm);background:var(--surface);align-items:center;gap:12px;padding:14px 16px;text-decoration:none;display:flex}.pager:hover{border-color:var(--line-strong)}.pager span{display:grid}.pager small{color:var(--faint);font-size:.75rem;font-weight:500}.pager svg{width:18px;height:18px;color:var(--faint);flex:none}.pager.next{text-align:right;grid-column:2;justify-content:flex-end}@media (width<=960px){.learn-body{grid-template-columns:1fr}.lessons-toggle{color:#fff;background:0 0;border-color:#ffffff40;display:inline-flex}.learn-progress{display:none}.lesson-nav{z-index:25;border-right:0;height:auto;display:none;position:fixed;inset:60px 0 0}.lesson-nav.open{display:block}}@media (width<=560px){.player-note,.player-bar{display:none}.player-btn{width:56px;height:56px}.lesson-pager{grid-template-columns:1fr}.pager.next{grid-column:1}}.quiz-wrap{background:radial-gradient(50% 40% at 50% 0%, #22d3ee1a, transparent 70%), var(--bg)}.quiz-wrap .sample-tag{flex:none}.quiz{width:100%;max-width:720px;padding:40px var(--gutter) 80px;outline:none;gap:24px;margin:0 auto;display:grid}.quiz-steps{gap:6px;display:flex}.qs{background:var(--line);cursor:pointer;border:0;border-radius:6px;flex:1;height:6px;padding:0}.qs.ans{background:#93c5fd}.qs.cur{background:var(--blue)}.question{border:0;gap:18px;min-width:0;margin:0;padding:0;display:grid}.question legend{font-size:var(--t-2xl);letter-spacing:-.025em;margin-bottom:18px;padding:0;font-weight:720;line-height:1.2}.q-count{font-size:var(--t-sm);letter-spacing:0;color:var(--faint);margin-bottom:10px;font-weight:600;display:block}.q-hint{font-size:var(--t-sm);margin-top:-6px}.options{gap:10px;display:grid}.option{border:1.5px solid var(--line);border-radius:var(--r-panel);background:var(--surface);cursor:pointer;transition:border-color .15s var(--ease), background-color .15s var(--ease);align-items:center;gap:14px;padding:16px 18px;display:flex;position:relative}.option:hover{border-color:var(--line-strong)}.option input{opacity:0;pointer-events:none;position:absolute}.opt-mark{border:2px solid var(--line-strong);border-radius:50%;flex:none;place-items:center;width:22px;height:22px;display:grid}.option input[type=checkbox]+.opt-mark{border-radius:6px}.option.on{border-color:var(--blue);background:var(--bg-tint)}.option.on .opt-mark{border-color:var(--blue);background:var(--blue);box-shadow:inset 0 0 0 3px var(--bg-tint)}.option input:focus-visible+.opt-mark{outline:3px solid var(--blue);outline-offset:3px}.quiz-nav{justify-content:space-between;gap:12px;display:flex}.quiz-left{font-size:var(--t-sm);text-align:right;margin-top:-12px}.score{border-radius:var(--r-stage);background:var(--surface);border:1px solid var(--line);align-items:center;gap:24px;padding:24px;display:flex}.score-num{letter-spacing:-.05em;font-size:clamp(2.6rem,2rem + 3vw,3.6rem);font-weight:800;line-height:1}.score.pass .score-num{color:var(--success)}.score.fail .score-num{color:var(--signal-text)}.score h1{font-size:var(--t-2xl);margin-bottom:4px}.review{gap:4px;list-style:none;display:grid}.review li{border-top:1px solid var(--line);font-size:var(--t-sm);grid-template-columns:22px 1fr;gap:12px;padding:16px 4px;display:grid}.review li>svg{width:22px;height:22px}.review li.ok>svg{color:var(--success)}.review li.no>svg{color:var(--signal-text)}.review div{gap:4px;display:grid}.rq{font-weight:600}.ra{color:var(--signal-text)}.admin{grid-template-columns:248px minmax(0,1fr);min-height:100vh;display:grid}.admin-side{background:var(--navy);height:100vh;color:var(--on-dark);flex-direction:column;gap:24px;padding:20px 14px;display:flex;position:sticky;top:0}.admin-brand{color:#fff;font-weight:650;font-size:var(--t-sm);padding:4px 8px}.admin-brand img{height:22px}.admin-side nav{gap:2px;display:grid}.admin-side nav button{border-radius:var(--r-ctl);color:var(--on-dark-muted);font-size:var(--t-sm);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:12px;padding:10px 12px;font-weight:550;display:flex}.admin-side nav button svg{width:18px;height:18px}.admin-side nav button:hover{color:#fff;background:#ffffff0f}.admin-side nav button.active{color:#fff;background:#2563eb59}.admin-exit{margin-top:auto}.admin-main{outline:none;align-content:start;gap:24px;padding:0 clamp(16px,3vw,40px) 64px;display:grid}.admin>*,.admin-main>*,.admin-section>*{min-width:0}.admin-main .page-head{padding-bottom:0}.kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.kpi{border-radius:var(--r-panel);background:var(--surface);border:1px solid var(--line);gap:4px;padding:18px 20px;display:grid}.kpi-label{font-size:var(--t-sm);color:var(--muted)}.kpi-value{letter-spacing:-.03em;font-size:1.75rem;font-weight:750}.kpi-delta{font-size:var(--t-xs);color:var(--faint)}.admin-section{gap:14px;display:grid}.admin-section h2{font-size:var(--t-lg)}.admin-section .section-head{margin-bottom:0}.admin-section a{color:var(--blue);text-decoration:none}.cell-progress{align-items:center;gap:10px;display:flex}.cell-progress .progress{width:100px}.integrations{gap:12px;list-style:none;display:grid}.integrations li{border:1px solid var(--line);border-radius:var(--r-panel);background:var(--surface);justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 20px;display:flex}.integrations h3{font-size:var(--t-md);margin-bottom:2px}.integrations .setting{font-size:var(--t-xs);margin-top:6px}@media (width<=1080px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=820px){.admin{grid-template-columns:1fr}.admin-side{gap:12px;height:auto;padding:12px;position:static}.admin-side nav{display:flex;overflow-x:auto}.admin-side nav button{white-space:nowrap}.admin-exit{display:none}}
