:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fff;--surface:#fff;--surface-2:#f7fbf4;--wash:#f7fbf4;--ink:#3c3c3c;--ink-strong:#2f2f2f;--muted:#777;--faint:#9b9b9b;--teal:#58cc02;--teal-dark:#46a302;--teal-soft:#d7ffb8;--teal-ink:#58a700;--coral:#ff4b4b;--coral-dark:#ea2b2b;--coral-soft:#ffdfe0;--gold:#ffc800;--gold-dark:#e0ac00;--gold-soft:#fff5d0;--sky:#ddf4ff;--sky-ink:#1899d6;--purple:#ce82ff;--purple-soft:#f3e4ff;--purple-ink:#7b3fb8;--line:#e5e5e5;--line-strong:#d6d6d6;--track:#e5e5e5;--disabled-face:#e5e5e5;--disabled-lip:#bdbdbd;--disabled-ink:#afafaf;--aurora:radial-gradient(52vw 52vw at 82% -8%, #58cc0221, transparent 62%), radial-gradient(46vw 46vw at 4% 18%, #ddf4ffd9, transparent 64%), radial-gradient(44vw 40vw at 94% 60%, #ffc8001a, transparent 62%), radial-gradient(60vw 44vw at 30% 104%, #ce82ff17, transparent 64%);--shadow-card:0 6px 0 var(--line);--shadow-float:0 18px 40px #3c3c3c24;--shadow-pop:0 22px 48px #3c3c3c2e;--radius-sm:12px;--radius:16px;--radius-md:18px;--radius-lg:26px;--radius-xl:34px;--lip:4px;--t-xs:12px;--t-sm:14px;--t-md:16px;--t-lg:18px;--t-xl:21px;--t-2xl:24px;--t-3xl:28px;--t-fluid-sm:clamp(16px, 1.3vw, 18px);--t-fluid-md:clamp(21px, 2.9vw, 26px);--t-fluid-lg:clamp(24px, 3.2vw, 32px);--t-fluid-xl:clamp(28px, 3.8vw, 37px);--t-fluid-2xl:clamp(32px, 4.5vw, 44px);--t-fluid-3xl:clamp(37px, 5.2vw, 60px);--w-quiet:400;--w-body:700;--w-strong:800;--w-display:900;--measure:62ch;--font:Nunito, "Noto Sans Khmer", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--rail:248px;--rail-narrow:88px;--aside:348px;--center:640px;--gutter:24px;--header-h:68px}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#131f24;--surface:#202f36;--surface-2:#1a272d;--wash:#17242a;--ink:#f1f7fb;--ink-strong:#fff;--muted:#afafaf;--faint:#8b9ba3;--teal-soft:#27460a;--teal-ink:#79e024;--coral-soft:#4a1d1d;--gold-soft:#443b20;--gold-dark:#c79c00;--sky:#1c3543;--sky-ink:#74c8f0;--purple-soft:#33254a;--purple-ink:#dcb0ff;--line:#37464f;--line-strong:#47585f;--track:#37464f;--disabled-face:#37464f;--disabled-lip:#29343a;--disabled-ink:#afafaf;--aurora:radial-gradient(52vw 52vw at 82% -8%, #58cc021f, transparent 62%), radial-gradient(46vw 46vw at 4% 18%, #1c3543e6, transparent 64%), radial-gradient(44vw 40vw at 94% 60%, #ffc8000f, transparent 62%), radial-gradient(60vw 44vw at 30% 104%, #ce82ff14, transparent 64%);--shadow-card:0 6px 0 #00000047;--shadow-float:0 18px 40px #00000073;--shadow-pop:0 22px 48px #0000008c}*{box-sizing:border-box}html,body,#root{height:100%}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font);font-weight:var(--w-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;line-height:1.5}body:before{content:"";z-index:-1;pointer-events:none;background:var(--aurora), var(--bg);position:fixed;inset:0}img,svg{max-width:100%}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit;color:inherit}h1,h2,h3,h4{color:var(--ink-strong);font-weight:var(--w-display);letter-spacing:-.8px;margin:0;line-height:1.12}p{margin:0}ul,ol{margin:0;padding:0;list-style:none}:focus-visible{outline:3px solid var(--sky-ink);outline-offset:3px;border-radius:6px}::selection{background:var(--teal-soft);color:var(--ink-strong)}:root[data-lang=km] h1,:root[data-lang=km] h2,:root[data-lang=km] h3,:root[data-lang=km] h4{letter-spacing:0;line-height:1.45}:root[data-lang=km]{--khmer-line:1.9}:root[data-lang=km] p,:root[data-lang=km] li,:root[data-lang=km] label{line-height:var(--khmer-line,1.9)}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.stack{flex-direction:column;display:flex}.row{align-items:center;display:flex}.spacer{flex:1}.muted{color:var(--muted)}.center-text{text-align:center}.press{border-radius:var(--radius);background:var(--teal);color:#fff;min-height:52px;font-weight:var(--w-display);font-size:var(--t-lg);cursor:pointer;box-shadow:0 var(--lip) 0 var(--teal-dark);-webkit-user-select:none;user-select:none;border:0;justify-content:center;align-items:center;gap:10px;padding:14px 24px;transition:transform 70ms,box-shadow 70ms,filter .18s,background .18s;display:inline-flex;position:relative}.press:hover:not(:disabled){filter:brightness(1.06)}.press:active:not(:disabled){transform:translateY(var(--lip));box-shadow:0 0 0 var(--teal-dark)}.press:disabled{background:var(--disabled-face);color:var(--disabled-ink);box-shadow:0 var(--lip) 0 var(--disabled-lip);cursor:not-allowed}.press-danger{background:var(--coral);box-shadow:0 var(--lip) 0 var(--coral-dark)}.press-danger:active:not(:disabled){box-shadow:0 0 0 var(--coral-dark)}.press-gold{background:var(--gold);color:#3c2f00;box-shadow:0 var(--lip) 0 var(--gold-dark)}.press-gold:active:not(:disabled){box-shadow:0 0 0 var(--gold-dark)}.press-muted{background:var(--surface);color:var(--ink);border:2px solid var(--line);box-shadow:0 var(--lip) 0 var(--line)}.press-muted:active:not(:disabled){box-shadow:0 0 0 var(--line)}.press-ghost{color:var(--muted);box-shadow:none;background:0 0}.press-ghost:hover:not(:disabled){color:var(--ink);filter:none}.press-ghost:active:not(:disabled){box-shadow:none;transform:none}.press-sm{min-height:40px;font-size:var(--t-sm);border-radius:13px;padding:9px 16px}.press-lg{min-height:60px;font-size:var(--t-lg);border-radius:20px;padding:18px 32px}.press-block{width:100%}.press[aria-busy=true]{color:#0000}.press[aria-busy=true]:after{content:"";border:3px solid #fff6;border-top-color:#fff;border-radius:50%;width:20px;height:20px;animation:.7s linear infinite spin;position:absolute}@keyframes spin{to{transform:rotate(360deg)}}.card{border:2px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-card);padding:22px}.card-flat{box-shadow:none}.card-tight{border-radius:var(--radius-md);padding:16px}.card-title{font-size:var(--t-md);font-weight:var(--w-strong);color:var(--muted)}.pill{border:2px solid var(--line);font-size:var(--t-sm);font-weight:var(--w-strong);white-space:nowrap;border-radius:999px;align-items:center;gap:7px;padding:6px 13px;display:inline-flex}.pill-button{cursor:pointer;background:0 0}.pill-teal{border-color:var(--teal-soft);background:color-mix(in srgb, var(--teal) 10%, transparent);color:var(--teal-ink)}.pill-gold{border-color:var(--gold-soft);background:color-mix(in srgb, var(--gold) 14%, transparent);color:var(--gold-dark)}.pill-purple{border-color:var(--purple-soft);background:color-mix(in srgb, var(--purple) 12%, transparent);color:var(--purple-ink)}.pill-coral{border-color:var(--coral-soft);background:color-mix(in srgb, var(--coral) 10%, transparent);color:var(--coral)}.bar{background:var(--track);border-radius:999px;height:16px;position:relative;overflow:hidden}.bar-fill{background:var(--teal);border-radius:999px;height:100%;transition:width .45s cubic-bezier(.22,1,.36,1);position:relative}.bar-fill:after{content:"";background:#fff6;border-radius:999px;height:4px;position:absolute;inset:3px 6px auto}.bar-sm{height:10px}.bar-sm .bar-fill:after{display:none}.bar-gold .bar-fill{background:var(--gold)}.bar-coral .bar-fill{background:var(--coral)}.field{flex-direction:column;gap:7px;display:flex}.field>label{font-size:var(--t-sm);font-weight:var(--w-display);color:var(--muted);letter-spacing:.3px}.input{border:2px solid var(--line);border-radius:var(--radius-md);background:var(--surface);width:100%;font-weight:var(--w-body);font-size:var(--t-md);padding:16px 18px;transition:border-color .16s,background .16s}.input::placeholder{color:var(--faint);font-weight:var(--w-body)}.input:focus{border-color:var(--teal);outline:none}.input:disabled{background:var(--wash);color:var(--muted)}textarea.input{resize:vertical;min-height:120px;line-height:1.6}.alert{border:2px solid var(--coral-soft);border-radius:var(--radius-md);background:color-mix(in srgb, var(--coral) 8%, transparent);color:var(--coral);font-size:var(--t-sm);font-weight:var(--w-strong);gap:11px;padding:14px 16px;line-height:1.55;display:flex}.alert-info{border-color:var(--sky);background:color-mix(in srgb, var(--sky-ink) 8%, transparent);color:var(--sky-ink)}.skeleton{border-radius:var(--radius-md);background:linear-gradient(90deg, var(--track) 25%, var(--wash) 50%, var(--track) 75%);background-size:300% 100%;animation:1.4s ease-in-out infinite shimmer}@keyframes shimmer{to{background-position:-150% 0}}@keyframes rise{0%{opacity:0;transform:translateY(10px)}}@keyframes pop-in{0%{opacity:0;transform:scale(.9)}60%{transform:scale(1.02)}to{opacity:1;transform:scale(1)}}.rise{animation:.34s cubic-bezier(.22,1,.36,1) both rise}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.field-shell{border:2px solid var(--line);border-radius:var(--radius-md);background:var(--surface);align-items:center;gap:4px;padding-right:8px;transition:border-color .16s,box-shadow .16s;display:flex}.field-shell:focus-within{border-color:var(--teal);box-shadow:0 0 0 4px color-mix(in srgb, var(--teal) 16%, transparent)}.field-shell.is-invalid{border-color:var(--coral)}.field-shell.is-invalid:focus-within{box-shadow:0 0 0 4px color-mix(in srgb, var(--coral) 16%, transparent)}.field-input{border-radius:var(--radius-md);min-width:0;font-weight:var(--w-body);font-size:var(--t-md);background:0 0;border:0;flex:1;padding:15px 16px}.field-input:focus{outline:none}.field-input::placeholder{color:var(--faint);font-weight:var(--w-body)}.field-reveal{width:38px;height:38px;color:var(--faint);cursor:pointer;background:0 0;border:0;border-radius:11px;flex:none;place-items:center;transition:color .16s,background .16s;display:grid}.field-reveal:hover{color:var(--ink);background:var(--wash)}.field-hint{color:var(--muted);font-size:var(--t-xs);font-weight:var(--w-body)}.select{position:relative}.select-trigger{border:2px solid var(--line);border-radius:var(--radius-md);background:var(--surface);width:100%;color:var(--ink);font-weight:var(--w-body);font-size:var(--t-md);text-align:left;cursor:pointer;align-items:center;gap:10px;padding:15px 14px 15px 16px;transition:border-color .16s,box-shadow .16s;display:flex}.select-trigger:hover:not(:disabled){border-color:var(--line-strong)}.select-trigger.is-open,.select-trigger:focus-visible{border-color:var(--teal);box-shadow:0 0 0 4px color-mix(in srgb, var(--teal) 16%, transparent);outline:none}.select-trigger:disabled{background:var(--wash);color:var(--muted);cursor:not-allowed}.select-value{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.select-caret{color:var(--muted);flex:none;transition:transform .2s}.select-trigger.is-open .select-caret{transform:rotate(180deg)}.select-list{z-index:50;border:2px solid var(--line);border-radius:var(--radius-md);background:var(--surface);max-height:260px;box-shadow:var(--shadow-pop);padding:6px;animation:.14s ease-out both pop-in;position:absolute;top:calc(100% + 8px);left:0;right:0;overflow-y:auto}.select-option{border-radius:var(--radius-sm);color:var(--ink);font-weight:var(--w-strong);font-size:var(--t-md);cursor:pointer;align-items:center;gap:10px;padding:11px 12px;display:flex}.select-option.is-active{background:var(--wash)}.select-option.is-selected{color:var(--teal-ink)}.select-option.is-selected.is-active{background:color-mix(in srgb, var(--teal) 12%, transparent)}.select-option-copy{flex-direction:column;flex:1;min-width:0;display:flex}.select-option-copy small{color:var(--muted);font-size:var(--t-xs);font-weight:var(--w-body)}.stepper{border:2px solid var(--line);border-radius:var(--radius-md);background:var(--surface);align-items:center;transition:border-color .16s,box-shadow .16s;display:flex;overflow:hidden}.stepper:focus-within{border-color:var(--teal);box-shadow:0 0 0 4px color-mix(in srgb, var(--teal) 16%, transparent)}.stepper-btn{background:var(--wash);width:46px;color:var(--muted);font-size:var(--t-xl);font-weight:var(--w-display);cursor:pointer;border:0;flex:none;align-self:stretch;line-height:1;transition:background .16s,color .16s}.stepper-btn:hover:not(:disabled){background:var(--teal-soft);color:var(--teal-ink)}.stepper-btn:disabled{color:var(--faint);cursor:not-allowed}.stepper-input{width:100%;min-width:0;color:var(--ink);font-weight:var(--w-strong);font-size:var(--t-md);text-align:center;background:0 0;border:0;flex:1;padding:15px 4px}.stepper-input:focus{outline:none}.switch-label{cursor:pointer;align-items:flex-start;gap:13px;display:flex}.switch-track{border:2px solid var(--line);background:var(--wash);border-radius:999px;flex:none;width:54px;height:32px;margin-top:1px;transition:background .22s,border-color .22s;position:relative}.switch-thumb{background:var(--surface);width:24px;height:24px;box-shadow:0 2px 0 var(--line-strong);border-radius:50%;transition:transform .26s cubic-bezier(.34,1.56,.64,1);position:absolute;top:2px;left:2px}.switch-native:checked+.switch-label .switch-track{border-color:var(--teal-dark);background:var(--teal)}.switch-native:checked+.switch-label .switch-thumb{transform:translate(22px);box-shadow:0 2px #0000002e}.switch-native:focus-visible+.switch-label .switch-track{outline:3px solid var(--sky-ink);outline-offset:3px}.switch-copy{font-size:var(--t-md);font-weight:var(--w-strong);flex-direction:column;gap:2px;display:flex}.switch-copy small{color:var(--muted);font-size:var(--t-sm);font-weight:var(--w-body);line-height:1.6}.segmented{border:2px solid var(--line);border-radius:var(--radius-md);background:var(--wash);padding:4px;display:flex;position:relative}.segmented-thumb{background:var(--teal);box-shadow:0 2px 0 var(--teal-dark);border-radius:12px;transition:transform .28s cubic-bezier(.34,1.56,.64,1);position:absolute;top:4px;bottom:4px;left:4px}.segmented-opt{z-index:1;color:var(--muted);font-size:var(--t-sm);font-weight:var(--w-display);cursor:pointer;background:0 0;border:0;border-radius:12px;flex:1;padding:10px 8px;transition:color .22s;position:relative}.segmented-opt.is-on{color:#fff}.mic{border:2px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);flex-direction:column;gap:14px;padding:18px;display:flex}.mic-main{align-items:center;gap:16px;display:flex}.mic-btn{background:var(--coral);color:#fff;cursor:pointer;width:68px;height:68px;box-shadow:0 5px 0 var(--coral-dark);border:0;border-radius:50%;flex:none;place-items:center;transition:transform 80ms,box-shadow 80ms,background .2s;display:grid;position:relative}.mic-btn:active:not(:disabled){box-shadow:none;transform:translateY(5px)}.mic-btn:disabled{background:var(--disabled-face);color:var(--disabled-ink);box-shadow:0 5px 0 var(--disabled-lip);cursor:wait}.mic-btn.is-recording{background:var(--ink-strong);box-shadow:0 5px #00000059}.mic-level{background:var(--coral);pointer-events:none;border-radius:50%;transition:transform 80ms linear,opacity 80ms linear;position:absolute;inset:-10px}.mic-btn.is-recording .mic-level{background:var(--coral)}.mic-copy{flex-direction:column;gap:3px;min-width:0;display:flex}.mic-copy b{font-size:var(--t-md);font-weight:var(--w-display)}.mic-copy span{font-size:var(--t-sm);font-weight:var(--w-body);line-height:1.6}.mic-timer{color:var(--coral);font-weight:var(--w-display);font-variant-numeric:tabular-nums}.mic-playback{border-top:2px solid var(--line);flex-wrap:wrap;gap:10px;padding-top:14px;display:flex}.mic-play,.mic-again{border:2px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font-size:var(--t-sm);font-weight:var(--w-display);cursor:pointer;border-bottom-width:4px;align-items:center;gap:8px;padding:11px 16px;display:inline-flex}.mic-play{border-color:var(--sky);color:var(--sky-ink)}.mic-play:active,.mic-again:active{border-bottom-width:2px;transform:translateY(2px)}.mic-play.is-playing{background:var(--sky)}.mic-note,.mic-privacy{font-size:var(--t-sm);font-weight:var(--w-body);line-height:1.6}.shell{flex-direction:column;min-height:100%;display:flex}.topbar{z-index:40;height:var(--header-h);padding:0 var(--gutter);background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);align-items:center;gap:16px;display:flex;position:fixed;top:0;left:0;right:0}.brand{font-size:var(--t-xl);font-weight:var(--w-display);letter-spacing:-1px;color:var(--ink-strong);align-items:center;gap:10px;display:inline-flex}.brand img{object-fit:contain;width:38px;height:38px}.brand-compact span{display:none}:root[data-lang=km] .brand{letter-spacing:0}.topbar-stats{align-items:center;gap:14px;display:flex}.topbar-controls{align-items:center;gap:8px;display:flex}.stat{font-size:var(--t-lg);font-weight:var(--w-display);align-items:center;gap:6px;display:inline-flex}.stat-streak{color:var(--coral)}.stat-xp{color:var(--gold-dark)}.theme-toggle{border:2px solid var(--line);border-radius:var(--radius);background:var(--surface);width:44px;height:44px;color:var(--muted);cursor:pointer;place-items:center;transition:color .16s,border-color .16s;display:grid}.theme-toggle:hover{color:var(--ink);border-color:var(--line-strong)}.tg-btn{border-radius:var(--radius);color:#fff;height:44px;font-size:var(--t-sm);font-weight:var(--w-display);white-space:nowrap;box-shadow:0 var(--lip) 0 #1a7fae;background:linear-gradient(#37b0e8,#229ed9);align-items:center;gap:8px;padding:0 14px;transition:transform 70ms,box-shadow 70ms,filter .18s;display:inline-flex}.tg-btn:hover{filter:brightness(1.06)}.tg-btn:active{transform:translateY(var(--lip));box-shadow:0 0 #1a7fae}.lang-switch{border:2px solid var(--line);border-radius:var(--radius);background:var(--wash);flex:none;width:108px;height:44px;padding:3px;display:flex;position:relative}.lang-thumb{background:var(--teal);width:50px;height:34px;box-shadow:0 2px 0 var(--teal-dark);border-radius:12px;transition:transform .32s cubic-bezier(.34,1.56,.64,1);position:absolute;top:3px;left:3px}.lang-switch[data-lang=km] .lang-thumb{transform:translate(48px)}.lang-opt{z-index:1;min-width:0;color:var(--muted);font-weight:var(--w-display);font-size:var(--t-xs);cursor:pointer;background:0 0;border:0;border-radius:12px;flex:1;padding:0;line-height:1;transition:color .22s;position:relative}.lang-opt[data-lang=km]{font-size:var(--t-sm)}.lang-opt.is-on{color:#fff}.shell-body{grid-template-columns:var(--rail) minmax(0, 1fr) var(--aside);width:100%;max-width:1400px;padding:var(--header-h) var(--gutter) 64px;align-items:start;gap:32px;margin:0 auto;display:grid}.rail{top:calc(var(--header-h) + 20px);padding-top:24px;position:sticky}.jump-dock{z-index:25;pointer-events:none;justify-content:center;height:0;display:flex;position:sticky;bottom:24px}.jump-btn{background:var(--teal);color:#fff;font-size:var(--t-sm);font-weight:var(--w-display);cursor:pointer;pointer-events:auto;box-shadow:0 4px 0 var(--teal-dark), 0 6px 12px color-mix(in srgb, var(--teal-dark) 28%, transparent);border:0;border-radius:20px;align-items:center;gap:8px;padding:11px 16px 11px 14px;transition:transform 80ms,box-shadow 80ms,filter .18s;animation:.42s cubic-bezier(.34,1.56,.64,1) both jump-pop;display:inline-flex;position:absolute;bottom:0}.jump-btn:hover{filter:brightness(1.06)}.jump-btn:active{box-shadow:0 0 0 var(--teal-dark);transform:translateY(4px)}@keyframes jump-pop{0%{opacity:0;transform:scale(.86)}to{opacity:1;transform:scale(1)}}@media (max-width:760px){.jump-dock{bottom:calc(84px + env(safe-area-inset-bottom))}}.rail ul{flex-direction:column;gap:6px;display:flex}.rail-link{border-radius:var(--radius);color:var(--muted);font-size:var(--t-md);font-weight:var(--w-display);border:2px solid #0000;align-items:center;gap:14px;padding:12px 16px;transition:background .16s,color .16s,border-color .16s;display:flex}:root[data-lang=km] .rail-link{font-size:var(--t-md)}.rail-link:hover{background:var(--wash);color:var(--ink)}.rail-link.is-active{border-color:var(--teal);background:color-mix(in srgb, var(--teal) 12%, transparent);color:var(--teal-ink)}.rail-icon{place-items:center;width:26px;height:26px;display:grid}.rail-plus{border:2px solid var(--gold);background:color-mix(in srgb, var(--gold) 16%, transparent);width:100%;color:var(--gold-dark);font:inherit;font-size:var(--t-md);font-weight:var(--w-display);cursor:pointer;margin-top:6px}:root[data-lang=km] .rail-plus{font-size:var(--t-md)}.rail-plus:hover{background:color-mix(in srgb, var(--gold) 26%, transparent);color:var(--gold-dark)}.main{min-width:0;max-width:var(--center);width:100%;margin:0 auto;padding-top:24px}.aside{top:calc(var(--header-h) + 20px);flex-direction:column;gap:16px;padding-top:24px;display:flex;position:sticky}.aside-empty{display:none}.tabbar{z-index:30;background:color-mix(in srgb, var(--surface) 94%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:2px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom));display:none;position:fixed;bottom:0;left:0;right:0}.tab{color:var(--muted);font-size:var(--t-xs);font-weight:var(--w-strong);flex-direction:column;flex:1;align-items:center;gap:2px;padding:6px 2px;display:flex}.tab.is-active{color:var(--teal)}.tab-icon{place-items:center;height:26px;display:grid}.page-head{flex-direction:column;gap:8px;margin-bottom:24px;display:flex}.page-head h1{font-size:var(--t-fluid-xl)}.page-head p{color:var(--muted);font-size:var(--t-md)}.spinner-wrap{place-items:center;padding:64px 0;display:grid}.spinner{border:4px solid var(--track);border-top-color:var(--teal);border-radius:50%;width:34px;height:34px;animation:.8s linear infinite spin}.alert-retry{color:inherit;font-size:var(--t-sm);font-weight:var(--w-display);cursor:pointer;background:0 0;border:2px solid;border-radius:10px;flex:none;margin-left:auto;padding:4px 10px}.empty{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:56px 24px;display:flex}.empty-icon{background:var(--wash);width:78px;height:78px;color:var(--teal);border-radius:24px;place-items:center;display:grid}.empty h3{font-size:var(--t-xl)}.empty p{max-width:42ch;font-size:var(--t-md);line-height:1.7}@media (max-width:1240px){.shell-body{grid-template-columns:var(--rail-narrow) minmax(0, 1fr) var(--aside);gap:24px}.rail-label,.tg-btn-label{display:none}.tg-btn{padding:0 12px}.rail-link{justify-content:center;padding:13px 0}}@media (max-width:1040px){.shell-body{grid-template-columns:var(--rail-narrow) minmax(0, 1fr)}.aside{grid-column:1/-1;padding-top:0;position:static}.aside-empty{display:none}.main{max-width:none}}@media (max-width:760px){.shell-body{grid-template-columns:minmax(0,1fr);gap:20px;padding-bottom:96px}.rail{display:none}.tabbar{display:flex}.topbar{gap:10px;padding:0 16px}.brand span{display:none}.topbar-stats{gap:10px}.stat{font-size:var(--t-md)}.lang-switch{width:92px;height:40px}.lang-thumb{width:42px;height:30px}.lang-switch[data-lang=km] .lang-thumb{transform:translate(40px)}.theme-toggle{width:40px;height:40px}.tg-btn{height:40px;padding:0 11px}.tab-label{font-size:var(--t-xs);letter-spacing:-.1px}}@media (max-width:420px){.topbar-stats .pill{display:none}}.learn-head{flex-direction:column;gap:16px;margin-bottom:26px;display:flex}.learn-eyebrow{color:var(--muted);font-size:var(--t-sm);font-weight:var(--w-strong);letter-spacing:.3px}.learn-head h1{font-size:var(--t-fluid-xl)}.learn-head-progress{border:2px solid var(--line);border-radius:var(--radius-md);background:var(--surface);padding:14px 16px}.learn-progress-label{color:var(--muted);font-size:var(--t-sm);font-weight:var(--w-display);letter-spacing:.3px}.learn-progress-pct{color:var(--teal-ink);font-size:var(--t-sm);font-weight:var(--w-display)}.learn-jump{color:var(--teal-ink);font-size:var(--t-sm);font-weight:var(--w-display);cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:0;display:inline-flex}.learn-jump:hover{text-decoration:underline}.path{flex-direction:column;gap:8px;display:flex}.unit{padding-bottom:20px}.unit-banner{top:calc(var(--header-h) + 12px);z-index:10;border-radius:var(--radius-lg);background:var(--teal);box-shadow:0 5px 0 var(--teal-dark);color:#fff;align-items:center;gap:18px;margin-bottom:30px;padding:16px 22px;display:flex;position:sticky}.unit-banner-copy{flex:1;min-width:0}.unit-banner-eyebrow{font-size:var(--t-xs);font-weight:var(--w-strong);opacity:.85;display:block}.unit-banner h2{color:#fff;font-size:var(--t-xl);letter-spacing:-.5px;margin-top:2px}.unit-banner p{font-size:var(--t-sm);font-weight:var(--w-body);opacity:.9;margin-top:3px}.unit-banner-meter{text-align:right;flex:none;width:96px}.unit-banner-count{font-size:var(--t-sm);font-weight:var(--w-display);opacity:.95}.unit-banner-bar{background:#ffffff4d;border-radius:999px;height:8px;margin-top:6px;overflow:hidden}.unit-banner-bar span{background:#fff;border-radius:999px;height:100%;transition:width .45s cubic-bezier(.22,1,.36,1);display:block}.nodes{flex-direction:column;align-items:center;gap:22px;display:flex}.node-row{justify-content:center;transition:left .3s;display:flex;position:relative}.node-row.is-open{z-index:40}.node-row.has-flag{margin-top:38px}.node-row.is-current+.node-row.has-flag{margin-top:52px}.node-wrap{position:relative}.node{background:var(--teal);width:78px;height:74px;box-shadow:0 8px 0 var(--teal-dark);color:#fff;cursor:pointer;border:0;border-radius:50%;place-items:center;transition:width .42s cubic-bezier(.22,1,.36,1),height .42s cubic-bezier(.22,1,.36,1),transform 90ms,box-shadow 90ms,filter .18s;display:grid}.node-done{background:var(--teal);box-shadow:0 8px 0 var(--teal-dark)}.node-passed{background:#1cb0f6;box-shadow:0 8px #1899d6}.node-promotion{background:var(--gold);box-shadow:0 8px #e5a800}.node-current{background:var(--purple);width:96px;height:96px;box-shadow:0 8px 0 #ae67d8, 0 0 0 10px color-mix(in srgb, var(--purple) 14%, transparent)}.node:hover{filter:brightness(1.06)}.node:active{transform:translateY(6px);box-shadow:none!important}.node-locked{background:var(--track);box-shadow:0 8px 0 var(--line-strong);color:var(--faint)}.node-locked:hover{filter:none}.node-flag{border:2px solid var(--line);background:var(--surface);color:var(--purple-ink);font-size:var(--t-xs);font-weight:var(--w-strong);white-space:nowrap;box-shadow:0 3px 0 var(--line);border-radius:12px;padding:7px 14px;animation:1.6s ease-in-out infinite flag-bob;position:absolute;bottom:calc(100% + 12px);left:50%;transform:translate(-50%)}.node-flag:after{content:"";border:6px solid #0000;border-top-color:var(--line);margin-left:-6px;position:absolute;top:100%;left:50%}@keyframes flag-bob{50%{transform:translate(-50%)translateY(-4px)}}.node-pop{transform:translateX(calc(-50% + var(--pop-shift,0px)));z-index:20;border:2px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);width:300px;box-shadow:var(--shadow-pop);animation:.16s ease-out both node-pop-in;position:absolute;top:calc(100% + 18px);left:50%;overflow:hidden}@keyframes node-pop-in{0%{opacity:0;transform:translateX(calc(-50% + var(--pop-shift,0px))) scale(.94)}to{opacity:1;transform:translateX(calc(-50% + var(--pop-shift,0px))) scale(1)}}.node-pop.is-above{top:auto;bottom:calc(100% + 18px)}.node-pop-arrow{border-radius:3px;width:18px;height:18px;margin-left:-9px;position:absolute;top:-8px;left:50%;transform:rotate(45deg)}.node-pop.is-above .node-pop-arrow{top:auto;bottom:-8px;background:var(--surface)!important}.node-pop-head{background:var(--teal);color:#fff;padding:16px 18px;position:relative}.node-pop-head-locked{background:var(--wash);color:var(--ink)}.node-pop-head-passed{background:#1cb0f6}.node-pop-head-promotion{background:var(--gold)}.node-pop-head-current{background:var(--purple)}.node-pop-arrow{background:var(--teal)}.node-pop-arrow-locked{background:var(--wash)}.node-pop-arrow-passed{background:#1cb0f6}.node-pop-arrow-promotion{background:var(--gold)}.node-pop-arrow-current{background:var(--purple)}.node-pop-head h3{color:inherit;font-size:var(--t-lg);letter-spacing:-.4px}.node-pop-head p{font-size:var(--t-sm);font-weight:var(--w-body);opacity:.9;margin-top:3px}.node-pop-body{flex-direction:column;gap:14px;padding:16px 18px 18px;display:flex}.node-pop-meta{flex-wrap:wrap;gap:8px;display:flex}.node-pop-locked{font-size:var(--t-sm);line-height:1.6}.path-end{text-align:center;font-size:var(--t-sm);font-weight:var(--w-display);letter-spacing:.4px;margin:18px 0 0}@media (max-width:560px){.unit-banner{gap:12px;padding:14px 16px}.unit-banner h2{font-size:var(--t-lg)}.unit-banner-meter{width:74px}.node-pop{width:min(280px,100vw - 48px)}.node{width:68px;height:64px}.node-current{width:86px;height:86px}}.rail-card{flex-direction:column;gap:10px;display:flex}.rail-card-head{color:var(--muted);font-size:var(--t-sm);font-weight:var(--w-strong);align-items:center;gap:8px;display:flex}:root[data-lang=km] .rail-card-head{font-size:var(--t-sm)}.rail-card-note{color:var(--faint);font-size:var(--t-xs);font-weight:var(--w-strong);margin-left:auto}.rail-card-body{font-size:var(--t-sm);line-height:1.6}.rail-card-accent{border-color:var(--purple-soft);background:radial-gradient(120% 90% at 100% 0%, color-mix(in srgb, var(--purple) 12%, transparent), transparent 70%), var(--surface)}.rail-card-accent .rail-card-head{color:var(--purple-ink)}.rail-lesson-title{font-size:var(--t-lg);letter-spacing:-.5px}.rail-reason{border-radius:var(--radius-sm);background:var(--wash);color:var(--muted);font-size:var(--t-sm);font-weight:var(--w-body);padding:10px 12px;line-height:1.55}.rail-cta{margin-top:2px;display:block}.rail-link-plain{color:var(--teal-ink);font-size:var(--t-sm);font-weight:var(--w-display);letter-spacing:.3px;align-self:flex-start;align-items:center;gap:4px;display:inline-flex}.rail-link-plain:hover{text-decoration:underline}.rail-goal{font-size:var(--t-xl);font-weight:var(--w-display);justify-content:space-between;align-items:center;gap:10px;display:flex}.rail-week{border-top:2px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;margin-top:2px;padding-top:10px;display:flex}.rail-week-head{color:var(--muted);font-size:var(--t-xs);font-weight:var(--w-display);align-items:center;gap:5px;display:inline-flex}.rail-week-dots{gap:5px;display:flex}.rail-week-dots span{background:var(--track);border-radius:50%;width:13px;height:13px}.rail-week-dots span.is-on{background:var(--teal);box-shadow:0 2px 0 var(--teal-dark)}.rail-week-count{font-size:var(--t-xs);font-weight:var(--w-strong)}.rail-streak{flex-direction:row;align-items:center;gap:14px}.rail-flame{border-radius:var(--radius);background:color-mix(in srgb, var(--coral) 12%, transparent);width:50px;height:50px;color:var(--coral);place-items:center;display:grid}.rail-streak-value{font-size:var(--t-2xl);font-weight:var(--w-display);line-height:1.1;display:block}.rail-streak-label{font-size:var(--t-sm);font-weight:var(--w-strong)}.rail-board{flex-direction:column;gap:2px;display:flex}.rail-board li{border-radius:var(--radius-sm);font-size:var(--t-sm);font-weight:var(--w-strong);align-items:center;gap:10px;padding:7px 9px;display:flex}.rail-board li.is-me{background:color-mix(in srgb, var(--teal) 12%, transparent);color:var(--teal-ink)}.rail-board-rank{width:22px;color:var(--faint);font-size:var(--t-sm);font-weight:var(--w-display);text-align:center}.rail-board li.is-me .rail-board-rank{color:inherit}.rail-board-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.rail-board-score{font-weight:var(--w-display)}.rail-chest{border-color:var(--gold-soft);flex-direction:row;align-items:center;gap:12px}.rail-chest-icon{border-radius:var(--radius);background:color-mix(in srgb, var(--gold) 16%, transparent);width:46px;height:46px;color:var(--gold-dark);place-items:center;display:grid}.rail-chest-copy{flex-direction:column;flex:1;min-width:0;display:flex}.rail-chest-copy b{font-size:var(--t-md)}.rail-chest-copy .rail-card-body{font-size:var(--t-sm)}@media (max-width:1040px){.aside{flex-flow:wrap}.aside>.card{flex:260px}}.player{min-height:100vh;flex-direction:column;min-height:100dvh;display:flex}.player-message{justify-content:center;align-items:center;gap:20px}.player-top{width:100%;max-width:760px;padding:20px var(--gutter) 8px;align-items:center;gap:16px;margin:0 auto;display:flex}.player-close{border-radius:var(--radius-sm);width:40px;height:40px;color:var(--faint);cursor:pointer;background:0 0;border:0;flex:none;place-items:center;transition:color .16s;display:grid}.player-close:hover{color:var(--coral)}.player-bar{flex:1;min-width:0}.player-kind{color:var(--faint);font-size:var(--t-xs);font-weight:var(--w-display);letter-spacing:1.2px;flex:none}:root[data-lang=km] .player-kind{letter-spacing:0;font-size:var(--t-sm)}.player-replay{width:100%;max-width:760px;padding:0 var(--gutter);color:var(--faint);font-size:var(--t-xs);font-weight:var(--w-strong);margin:4px auto 0}.player-body{padding:26px var(--gutter) 40px;flex:1;justify-content:center;align-items:flex-start;display:flex}.player-inner{width:100%;max-width:660px}.ex{flex-direction:column;gap:20px;animation:.28s cubic-bezier(.22,1,.36,1) both rise;display:flex}.ex-instruction{color:var(--muted);font-size:var(--t-md);font-weight:var(--w-strong);line-height:1.6}.ex-prompt p{font-size:var(--t-fluid-lg);font-weight:var(--w-display);letter-spacing:-.8px;color:var(--ink-strong);line-height:1.25}:root[data-lang=km] .ex-prompt p{letter-spacing:0;line-height:1.6}.ex-prompt-lg p{font-size:var(--t-fluid-xl)}.ex-roman{color:var(--muted);font-size:var(--t-md);font-weight:var(--w-body);margin-top:5px;font-style:italic;display:block}.ex-prompt-row{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.ex-prompt-row .ex-prompt{flex:1;min-width:200px}.ex-support{color:var(--muted);font-size:var(--t-sm);font-weight:var(--w-body);line-height:1.6}.ex-passage{border:2px solid var(--line);border-left:6px solid var(--sky-ink);border-radius:var(--radius-md);background:var(--surface);font-size:var(--t-md);font-weight:var(--w-body);margin:0;padding:20px 22px;line-height:1.8}.ex-situation{color:var(--muted);font-size:var(--t-md);font-weight:var(--w-strong);line-height:1.6}.ex-roleplay{flex-direction:column;gap:12px;display:flex}.ex-bubble{border:2px solid var(--line);background:var(--surface);max-width:88%;box-shadow:var(--shadow-card);font-size:var(--t-lg);font-weight:var(--w-strong);border-radius:20px 20px 20px 6px;align-self:flex-start;padding:16px 20px;line-height:1.5;position:relative}.ex-visuals{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.ex-visual{border-radius:var(--radius-md);object-fit:contain}.audio{align-items:center;gap:10px;display:inline-flex}.ex-audio-stage{justify-content:center;padding:10px 0 4px;display:flex}.audio-main,.audio-slow{border-radius:var(--radius);color:#fff;cursor:pointer;border:0;place-items:center;transition:transform 80ms,box-shadow 80ms,filter .18s;display:grid}.audio-main{background:var(--sky-ink);width:58px;height:58px;box-shadow:0 4px 0 color-mix(in srgb, var(--sky-ink) 72%, #000)}.audio-lg{border-radius:28px;width:96px;height:96px}.audio-slow{background:var(--surface);border:2px solid var(--line);width:46px;height:46px;color:var(--sky-ink);box-shadow:0 4px 0 var(--line)}.audio-main:hover,.audio-slow:hover{filter:brightness(1.06)}.audio-main:active,.audio-slow:active{box-shadow:none;transform:translateY(4px)}.audio-main.is-playing,.audio-slow.is-playing{animation:.9s ease-in-out infinite audio-pulse}@keyframes audio-pulse{50%{transform:scale(1.05)}}.audio-failed{color:var(--coral);font-size:var(--t-sm);font-weight:var(--w-strong)}.speakable{border:0;border-bottom:2px dotted var(--sky-ink);color:inherit;font:inherit;cursor:pointer;background:0 0;border-radius:4px;padding:1px 4px}.speakable:hover,.speakable.is-playing{background:var(--sky)}.choices{flex-direction:column;gap:12px;display:flex}.choice{border:2px solid var(--line);border-radius:var(--radius);background:var(--surface);text-align:left;cursor:pointer;border-bottom-width:4px;align-items:center;gap:14px;width:100%;padding:15px 18px;transition:border-color .14s,background .14s,transform 80ms;display:flex}.choice:hover:not(:disabled){background:var(--wash)}.choice:active:not(:disabled){border-bottom-width:2px;transform:translateY(2px)}.choice.is-selected{border-color:var(--teal);background:color-mix(in srgb, var(--teal) 12%, transparent)}.choice.is-correct{border-color:var(--teal);background:color-mix(in srgb, var(--teal) 16%, transparent)}.choice.is-wrong{border-color:var(--coral);background:color-mix(in srgb, var(--coral) 12%, transparent)}.choice:disabled{cursor:default}.choice-key{border:2px solid var(--line);width:26px;height:26px;color:var(--faint);font-size:var(--t-xs);font-weight:var(--w-display);border-radius:8px;flex:none;place-items:center;display:grid}.choice.is-selected .choice-key,.choice.is-correct .choice-key{border-color:var(--teal);color:var(--teal-ink)}.choice.is-wrong .choice-key{border-color:var(--coral);color:var(--coral)}.choice-body{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.choice-label{font-size:var(--t-lg);font-weight:var(--w-strong);line-height:1.3}.choice-detail{color:var(--muted);font-size:var(--t-sm);font-weight:var(--w-body)}.choice-pre{font-family:var(--font-mono);font-size:var(--t-sm);white-space:pre-wrap;margin:0}.image-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.image-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.image-grid .choice{flex-direction:column;align-items:stretch;padding:14px}.image-grid .choice-key{background:var(--surface);position:absolute;top:10px;left:10px}.image-grid .choice{position:relative}.image-choice-art{aspect-ratio:1;object-fit:contain;width:100%}.image-choice-fallback{aspect-ratio:1;border-radius:var(--radius-sm);background:var(--wash);color:var(--muted);font-size:var(--t-md);font-weight:var(--w-display);text-align:center;place-items:center;display:grid}.image-grid .choice-label{text-align:center;font-size:var(--t-md)}.tiles{flex-direction:column;gap:18px;display:flex}.tiles-answer{border:2px dashed var(--line);border-radius:var(--radius-md);background:var(--surface);flex-wrap:wrap;align-content:flex-start;gap:9px;min-height:92px;padding:14px;transition:border-color .16s;display:flex}.tiles-answer.is-correct{border-style:solid;border-color:var(--teal);background:color-mix(in srgb, var(--teal) 8%, transparent)}.tiles-answer.is-wrong{border-style:solid;border-color:var(--coral);background:color-mix(in srgb, var(--coral) 8%, transparent)}.tiles-hint{color:var(--faint);font-size:var(--t-sm);font-weight:var(--w-strong)}.tiles-bank{flex-wrap:wrap;gap:9px;display:flex}.tile{border:2px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);font-size:var(--t-md);font-weight:var(--w-strong);cursor:pointer;border-bottom-width:4px;padding:11px 16px;transition:transform 70ms,border-color .14s,opacity .16s;animation:.16s ease-out both pop-in;position:relative}.tile:hover:not(:disabled){border-color:var(--line-strong)}.tile:active:not(:disabled){border-bottom-width:2px;transform:translateY(2px)}.tile.is-used{opacity:.28;cursor:default}.tile-chosen{border-color:var(--teal-soft)}.tile-key{background:var(--wash);width:18px;height:18px;color:var(--faint);font-size:var(--t-xs);font-weight:var(--w-display);border-radius:6px;place-items:center;display:grid;position:absolute;top:-7px;left:-7px}.ex-textarea.is-correct{border-color:var(--teal)}.ex-textarea.is-wrong{border-color:var(--coral)}.ex-blank-line{font-size:var(--t-fluid-lg);font-weight:var(--w-display);letter-spacing:-.6px;color:var(--ink-strong);flex-wrap:wrap;align-items:baseline;gap:6px;line-height:1.5;display:flex}:root[data-lang=km] .ex-blank-line{letter-spacing:0}.ex-blank-input{border:0;border-bottom:3px solid var(--teal);min-width:96px;font:inherit;color:var(--teal-ink);text-align:center;background:0 0;padding:2px 8px 4px}.ex-blank-input:focus{border-bottom-color:var(--teal-dark);background:color-mix(in srgb, var(--teal) 8%, transparent);outline:none}.ex-clue{color:var(--muted);font-size:var(--t-sm);font-weight:var(--w-body)}.ex-clue p{border-radius:var(--radius-sm);background:var(--gold-soft);color:var(--ink);align-items:center;gap:8px;padding:12px 14px;display:flex}.ex-clue-toggle{border:2px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--muted);font-size:var(--t-sm);font-weight:var(--w-display);cursor:pointer;align-items:center;gap:7px;padding:9px 14px;display:inline-flex}.ex-clue-toggle:hover{color:var(--gold-dark);border-color:var(--gold-soft)}.match{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.match-col{flex-direction:column;gap:10px;display:flex}.match-item{border:2px solid var(--line);border-radius:var(--radius);background:var(--surface);text-align:left;width:100%;font-size:var(--t-md);font-weight:var(--w-strong);cursor:pointer;border-bottom-width:4px;align-items:center;gap:10px;padding:14px 15px;transition:border-color .14s,background .14s;display:flex}.match-item:hover:not(:disabled){background:var(--wash)}.match-item.is-active{border-color:var(--sky-ink);background:color-mix(in srgb, var(--sky-ink) 10%, transparent)}.match-item.is-linked{border-color:var(--teal);background:color-mix(in srgb, var(--teal) 12%, transparent);color:var(--teal-ink)}.match-dot{border:2px solid var(--line-strong);border-radius:50%;flex:none;width:11px;height:11px}.match-item.is-linked .match-dot{border-color:var(--teal);background:var(--teal)}.match-item.is-active .match-dot{border-color:var(--sky-ink);background:var(--sky-ink)}.intro-card{border:2px solid var(--line);border-radius:var(--radius-xl);background:radial-gradient(120% 90% at 50% 0%, color-mix(in srgb, var(--teal) 10%, transparent), transparent 70%), var(--surface);box-shadow:var(--shadow-card);text-align:center;flex-direction:column;align-items:center;gap:16px;padding:32px 24px;display:flex}.intro-english{font-size:var(--t-fluid-2xl);font-weight:var(--w-display);letter-spacing:-1.4px;color:var(--ink-strong);line-height:1.15}.intro-audio{justify-content:center;display:flex}.intro-meaning{align-items:center;gap:12px;display:flex}.intro-meaning p{font-size:var(--t-fluid-md);font-weight:var(--w-strong);color:var(--teal-ink);line-height:1.6}.intro-example{color:var(--muted);font-size:var(--t-md);font-weight:var(--w-body);font-style:italic;line-height:1.7}.note{border:2px solid var(--gold-soft);border-radius:var(--radius-lg);background:color-mix(in srgb, var(--gold) 7%, var(--surface));flex-direction:column;gap:8px;padding:18px 20px;display:flex}.note-kind{color:var(--gold-dark);font-size:var(--t-xs);font-weight:var(--w-strong);align-items:center;gap:7px;display:inline-flex}:root[data-lang=km] .note-kind{font-size:var(--t-sm)}.note h3{font-size:var(--t-lg)}.note p{color:var(--ink);font-size:var(--t-md);font-weight:var(--w-body);line-height:1.75}.note-reason{color:var(--muted)!important;font-size:var(--t-sm)!important}.alphabet h3{font-size:var(--t-lg);margin-bottom:14px}.alphabet-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:12px;display:grid}.alphabet-cue{border:2px solid var(--line);border-radius:var(--radius-md);background:var(--surface);text-align:center;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;display:flex}.alphabet-cue img{object-fit:contain;width:56px;height:56px}.alphabet-letter{font-size:var(--t-2xl);font-weight:var(--w-display);color:var(--teal-ink)}.alphabet-word{color:var(--muted);font-size:var(--t-xs);font-weight:var(--w-strong);line-height:1.4}.alphabet-cue .audio-main{border-radius:12px;width:40px;height:40px}.speak{flex-direction:column;gap:14px;display:flex}.speak-model{border:2px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-card);align-items:center;gap:18px;padding:24px;display:flex}.speak-model p{font-size:var(--t-fluid-md);font-weight:var(--w-display);letter-spacing:-.6px;color:var(--ink-strong);flex:1;line-height:1.35}:root[data-lang=km] .speak-model p{letter-spacing:0}.speak-label{font-size:var(--t-sm);font-weight:var(--w-strong)}.summary{border:2px solid var(--teal-soft);border-radius:var(--radius-xl);background:radial-gradient(120% 100% at 50% 0%, color-mix(in srgb, var(--teal) 14%, transparent), transparent 72%), var(--surface);text-align:center;flex-direction:column;align-items:center;gap:14px;padding:44px 28px;display:flex;position:relative}.summary-badge{background:var(--teal);color:#fff;width:74px;height:74px;box-shadow:0 5px 0 var(--teal-dark);border-radius:26px;place-items:center;display:grid}.summary h2{font-size:var(--t-fluid-lg)}.summary p{max-width:44ch;color:var(--muted);font-size:var(--t-md);line-height:1.8}.summary-sparkle{color:var(--gold);animation:2.6s ease-in-out infinite twinkle;position:absolute;top:18px;right:22px}@keyframes twinkle{50%{opacity:.4;transform:scale(.85)rotate(18deg)}}.code{flex-direction:column;gap:16px;display:flex}.code-lang{background:var(--wash);color:var(--muted);font-family:var(--font-mono);font-size:var(--t-xs);font-weight:var(--w-body);text-transform:uppercase;border-radius:8px;align-self:flex-start;padding:4px 11px}.code-editor{border:2px solid var(--line);border-radius:var(--radius-md);background:var(--surface-2);width:100%;color:var(--ink);font-family:var(--font-mono);font-size:var(--t-sm);tab-size:2;resize:vertical;padding:18px;line-height:1.7}.code-editor:focus{border-color:var(--sky-ink);outline:none}.code-editor.is-correct{border-color:var(--teal)}.code-editor.is-wrong{border-color:var(--coral)}.code-output{border:2px solid var(--line);border-radius:var(--radius-md);background:var(--surface-2);padding:14px 16px}.code-output-head{color:var(--muted);font-size:var(--t-xs);font-weight:var(--w-strong);align-items:center;gap:6px;display:inline-flex}.code-output pre{font-family:var(--font-mono);font-size:var(--t-sm);white-space:pre-wrap;margin:8px 0 0;line-height:1.7}.code-output-error{border-color:var(--coral-soft)}.code-output-error .code-output-head{color:var(--coral)}.code-line{border:2px dashed var(--line);border-radius:var(--radius-md);background:var(--surface-2);flex-wrap:wrap;gap:8px;min-height:64px;padding:14px;display:flex}.code-line.is-correct{border-style:solid;border-color:var(--teal)}.code-line.is-wrong{border-style:solid;border-color:var(--coral)}.code-bank{flex-wrap:wrap;gap:8px;display:flex}.code-token{border:2px solid var(--line);background:var(--surface);font-family:var(--font-mono);font-size:var(--t-sm);font-weight:var(--w-body);cursor:pointer;border-bottom-width:4px;border-radius:10px;padding:9px 13px}.code-token:active:not(:disabled){border-bottom-width:2px;transform:translateY(2px)}.code-token.is-used{opacity:.28;cursor:default}.code-token.is-chosen{border-color:var(--sky)}.code-lines{border:2px solid var(--line);border-radius:var(--radius-md);background:var(--surface-2);overflow:hidden}.code-line-row{width:100%;color:var(--ink);font-family:var(--font-mono);font-size:var(--t-sm);text-align:left;cursor:pointer;background:0 0;border:0;gap:14px;padding:7px 14px;line-height:1.7;display:flex}.code-lines li:not(:last-child) .code-line-row{border-bottom:1px solid color-mix(in srgb, var(--line) 50%, transparent)}button.code-line-row:hover:not(:disabled){background:var(--wash)}.code-line-row.is-picked{background:color-mix(in srgb, var(--sky-ink) 14%, transparent)}.code-line-row.is-active{background:color-mix(in srgb, var(--gold) 18%, transparent)}.code-line-row.is-answer{background:color-mix(in srgb, var(--teal) 16%, transparent)}.code-line-no{width:22px;color:var(--faint);text-align:right;-webkit-user-select:none;user-select:none;flex:none}.code-line-row code{white-space:pre-wrap}.trace{border:2px solid var(--line);border-radius:var(--radius-md);background:var(--surface);flex-direction:column;gap:10px;padding:16px;display:flex}.trace-nav{align-items:center;gap:12px;display:flex}.trace-btn{border:2px solid var(--line);background:var(--surface);width:36px;height:36px;color:var(--ink);font-size:var(--t-md);font-weight:var(--w-display);cursor:pointer;border-radius:10px;place-items:center;display:grid}.trace-btn:disabled{color:var(--faint);cursor:default}.trace-count{color:var(--muted);font-size:var(--t-sm);font-weight:var(--w-display)}.trace-explanation{font-size:var(--t-md);font-weight:var(--w-body);line-height:1.7}.trace-vars{flex-wrap:wrap;gap:7px;display:flex}.trace-vars code{background:var(--wash);font-family:var(--font-mono);font-size:var(--t-xs);border-radius:8px;padding:4px 9px}.code-preview-title{font-size:var(--t-lg);font-weight:var(--w-display)}.preview-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;display:grid}.preview-card{border:2px solid var(--line);border-radius:var(--radius-md);background:var(--surface);cursor:pointer;text-align:left;border-bottom-width:4px;flex-direction:column;gap:10px;padding:14px;display:flex;position:relative}.preview-card.is-selected{border-color:var(--teal)}.preview-card.is-correct{border-color:var(--teal);background:color-mix(in srgb, var(--teal) 10%, transparent)}.preview-card.is-wrong{border-color:var(--coral);background:color-mix(in srgb, var(--coral) 10%, transparent)}.preview-key{background:var(--wash);width:20px;height:20px;color:var(--faint);font-size:var(--t-xs);font-weight:var(--w-display);border-radius:6px;place-items:center;display:grid;position:absolute;top:8px;right:10px}.preview-render{color:#222;flex-direction:column;gap:5px;padding:18px 14px;display:flex}.preview-render b{font-size:var(--t-md);font-weight:var(--w-display)}.preview-render span{font-size:var(--t-sm);font-weight:var(--w-body)}.preview-code{font-family:var(--font-mono);font-size:var(--t-xs);color:var(--muted);white-space:pre-wrap;margin:0;line-height:1.6}.player-foot{border-top:2px solid var(--line);background:var(--surface);transition:background .2s;position:sticky;bottom:0}.player-foot.is-correct{border-top-color:var(--teal);background:color-mix(in srgb, var(--teal) 10%, var(--surface))}.player-foot.is-wrong{border-top-color:var(--coral);background:color-mix(in srgb, var(--coral) 9%, var(--surface))}.player-foot-inner{max-width:760px;padding:18px var(--gutter) calc(18px + env(safe-area-inset-bottom));flex-direction:column;gap:14px;margin:0 auto;display:flex}.verdict{align-items:flex-start;gap:14px;display:flex}.verdict-mark{color:#fff;border-radius:50%;flex:none;place-items:center;width:44px;height:44px;display:grid}.verdict-correct{background:var(--teal)}.verdict-wrong{background:var(--coral)}.verdict-copy{flex-direction:column;gap:3px;min-width:0;display:flex}.verdict-copy>b{font-size:var(--t-lg);font-weight:var(--w-display)}.player-foot.is-correct .verdict-copy>b{color:var(--teal-ink)}.player-foot.is-wrong .verdict-copy>b{color:var(--coral)}.verdict-copy span{font-size:var(--t-md);font-weight:var(--w-body);line-height:1.6}.verdict-note{color:var(--muted);font-size:var(--t-sm)!important}.player-actions{align-items:center;gap:12px;display:flex}.player-primary{flex:1;max-width:260px;margin-left:auto}.player-keys{color:var(--faint);font-size:var(--t-xs);font-weight:var(--w-body)}.player-keys kbd{border:1px solid var(--line);background:var(--surface);font-family:var(--font);font-size:var(--t-xs);font-weight:var(--w-display);border-bottom-width:2px;border-radius:5px;padding:1px 6px;display:inline-block}.modal{z-index:60;background:color-mix(in srgb, var(--ink-strong) 45%, transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal-card{border:2px solid var(--line);border-radius:var(--radius-xl);background:var(--surface);width:min(420px,100%);box-shadow:var(--shadow-pop);text-align:center;flex-direction:column;align-items:center;gap:12px;padding:30px 26px;animation:.18s ease-out both pop-in;display:flex}.modal-icon-locked{background:var(--track);color:var(--muted)}.modal-icon{background:var(--gold-soft);width:56px;height:56px;color:var(--gold-dark);border-radius:18px;place-items:center;display:grid}.modal-card h2{font-size:var(--t-xl)}.modal-card p{font-size:var(--t-md);line-height:1.7}.modal-actions{flex-direction:column;gap:8px;width:100%;margin-top:8px;display:flex}.finish{min-height:100vh;min-height:100dvh;padding:72px var(--gutter);text-align:center;flex-direction:column;align-items:center;gap:16px;display:flex;position:relative;overflow:hidden}.finish-badge{background:var(--gold);color:#fff;width:100px;height:100px;box-shadow:0 7px 0 var(--gold-dark);border-radius:34px;place-items:center;animation:.4s cubic-bezier(.34,1.56,.64,1) both pop-in;display:grid}.finish h1{font-size:var(--t-fluid-2xl)}.finish-lede{max-width:46ch;color:var(--muted);font-size:var(--t-md);line-height:1.8}.finish-stats{flex-wrap:wrap;justify-content:center;gap:14px;margin-top:8px;display:flex}.finish-stat{border-radius:var(--radius-md);background:var(--line);min-width:128px;padding:3px}.finish-stat-label{color:#fff;font-size:var(--t-xs);font-weight:var(--w-strong);padding:7px 14px 4px;display:block}:root[data-lang=km] .finish-stat-label{font-size:var(--t-sm)}.finish-stat b{background:var(--surface);color:var(--ink-strong);font-size:var(--t-2xl);font-weight:var(--w-display);border-radius:14px;padding:12px 14px;display:block}.finish-stat-xp{background:var(--gold)}.finish-stat-xp b{color:var(--gold-dark)}.finish-stat:not(.finish-stat-xp) .finish-stat-label{color:var(--muted)}.finish-points{color:var(--purple-ink);font-size:var(--t-md);font-weight:var(--w-display);align-items:center;gap:7px;display:inline-flex}.finish-goal{margin-top:4px}.finish-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:20px;display:flex}.confetti{pointer-events:none;position:absolute;inset:0;overflow:hidden}.confetti span{border-radius:3px;width:10px;height:16px;animation:2.4s ease-in forwards fall;position:absolute;top:-20px}@keyframes fall{to{opacity:0;transform:translateY(105vh)rotate(540deg)}}@media (max-width:620px){.match{gap:10px}.match-item{font-size:var(--t-md);padding:12px}.player-body{padding:20px 16px 32px}.player-top,.player-foot-inner{padding-left:16px;padding-right:16px}.player-primary{max-width:none}.player-keys{display:none}.ex-bubble{max-width:100%;font-size:var(--t-md)}.finish{padding:48px 16px}}.boot{min-height:100vh;place-items:center;min-height:100dvh;display:grid}.welcome{max-width:1200px;padding:0 var(--gutter) 72px;margin:0 auto}.welcome-top{align-items:center;gap:10px;padding:18px 0;display:flex}.welcome-signin{border:2px solid var(--line);border-radius:var(--radius);color:var(--ink);font-size:var(--t-sm);font-weight:var(--w-display);letter-spacing:.3px;padding:10px 18px;transition:border-color .16s,color .16s}.welcome-signin:hover{border-color:var(--teal);color:var(--teal-ink)}.welcome-hero{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center;gap:48px;padding:56px 0 72px;display:grid}.welcome-copy{flex-direction:column;align-items:flex-start;gap:20px;display:flex}.welcome-copy h1{font-size:var(--t-fluid-3xl);letter-spacing:-2.2px;line-height:1.04}:root[data-lang=km] .welcome-copy h1{font-size:var(--t-fluid-xl);letter-spacing:0;line-height:1.6}.hl{color:var(--teal-ink);z-index:0;display:inline-block;position:relative}.hl:after{content:"";background:var(--teal-soft);z-index:-1;border-radius:6px;height:.2em;position:absolute;bottom:.05em;left:-3px;right:-3px}.welcome-lede{max-width:52ch;color:var(--muted);font-size:var(--t-fluid-sm);line-height:1.75}.welcome-actions{flex-wrap:wrap;gap:12px;display:flex}.welcome-note{font-size:var(--t-sm)}.hero-badges{flex-wrap:wrap;gap:10px;display:flex}.hero-badge{border:2px solid var(--teal-soft);background:var(--wash);color:var(--teal-ink);font-size:var(--t-xs);font-weight:var(--w-display);letter-spacing:.6px;border-radius:999px;align-items:center;gap:9px;padding:9px 17px 9px 13px;display:inline-flex}.hero-badge-ai{border-color:var(--purple-soft);background:var(--purple-soft);color:var(--purple-ink)}.hero-badge-dot{background:var(--teal);border-radius:50%;width:9px;height:9px;animation:2.4s infinite hero-pulse;box-shadow:0 0 #58cc0299}@keyframes hero-pulse{70%{box-shadow:0 0 0 10px #58cc0200}to{box-shadow:0 0 #58cc0200}}.hero-line{display:inline-block}.hero-stage{place-items:center;min-height:640px;display:grid;position:relative}.hero-stage-glow{aspect-ratio:1;filter:blur(26px);background:radial-gradient(circle,#d7ffb8b3,#ddf4ff80 45%,#0000 68%);border-radius:50%;width:82%;animation:7s ease-in-out infinite hero-breathe;position:absolute}:root[data-theme=dark] .hero-stage-glow{background:radial-gradient(circle,#58cc0238,#1c35438c 45%,#0000 68%)}@keyframes hero-breathe{50%{opacity:.8;transform:scale(1.1)}}.hero-scene{cursor:grab;touch-action:pan-y;width:100%;height:640px;display:block;position:relative}.hero-scene:active{cursor:grabbing}.hero-phone-flat{width:min(300px,74%);box-shadow:var(--shadow-float);background:linear-gradient(160deg,#f0f4f7,#cfd8de);border-radius:44px;padding:9px;position:relative}@media (prefers-reduced-motion:reduce){.hero-badge-dot,.hero-stage-glow{animation:none}}.welcome-features{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;display:grid}.welcome-feature{flex-direction:column;gap:12px;display:flex}.welcome-feature h3{font-size:var(--t-lg)}.welcome-feature p{font-size:var(--t-md);line-height:1.75}.welcome-feature-icon{border-radius:17px;place-items:center;width:52px;height:52px;display:grid}.welcome-feature-teal{background:var(--teal-soft);color:var(--teal-ink)}.welcome-feature-gold{background:var(--gold-soft);color:var(--gold-dark)}.welcome-feature-purple{background:var(--purple-soft);color:var(--purple-ink)}.welcome-courses{padding:72px 0 0}.welcome-courses h2{font-size:var(--t-fluid-lg);margin-bottom:20px}.welcome-courses ul{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.welcome-courses li{border:2px solid var(--line);border-radius:var(--radius-md);background:var(--surface);align-items:center;gap:14px;padding:14px 16px;display:flex}.welcome-courses li div{flex-direction:column;min-width:0;display:flex}.welcome-courses li b{font-size:var(--t-md)}.welcome-courses li span{font-size:var(--t-sm);line-height:1.5}.welcome-course-badge{background:var(--wash);width:44px;height:36px;color:var(--muted);font-size:var(--t-xs);font-weight:var(--w-display);border-radius:11px;flex:none;place-items:center;display:grid}.welcome-foot{border-top:2px solid var(--line);flex-wrap:wrap;align-items:center;gap:16px;margin-top:72px;padding-top:32px;display:flex}.welcome-foot p{font-size:var(--t-sm);flex:1}.welcome-foot-link{color:var(--teal-ink);font-size:var(--t-sm);font-weight:var(--w-display)}.welcome-foot-legal{flex-wrap:wrap;flex-basis:100%;gap:8px 20px;display:flex}.welcome-foot-legal a{color:var(--muted);font-size:var(--t-sm);font-weight:var(--w-display)}.welcome-foot-legal a:hover{color:var(--teal-ink)}.welcome-foot-link:hover{text-decoration:underline}@media (max-width:940px){.welcome-hero{grid-template-columns:1fr;gap:16px;padding:32px 0 56px}.hero-stage{min-height:440px}.hero-scene{height:440px}}@media (max-width:560px){.welcome-signin{display:none}.welcome-actions{flex-direction:column;width:100%}.welcome-actions>a,.welcome-actions .press{width:100%}}.auth{min-height:100vh;flex-direction:column;min-height:100dvh;display:flex}.auth-top{width:100%;max-width:1200px;padding:18px var(--gutter);align-items:center;gap:10px;margin:0 auto;display:flex}.auth-body{padding:24px var(--gutter) 72px;flex:1;place-items:center;display:grid}.auth-card{border:2px solid var(--line);border-radius:var(--radius-xl);background:var(--surface);width:min(440px,100%);box-shadow:var(--shadow-card);flex-direction:column;gap:16px;padding:34px 30px;display:flex;position:relative}.auth-spark{color:var(--purple);position:absolute;top:18px;right:22px}.auth-card h1{font-size:var(--t-3xl)}.auth-row{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:12px;display:grid}@media (max-width:460px){.auth-row{grid-template-columns:minmax(0,1fr)}}.auth-switch{font-size:var(--t-sm);text-align:center}.auth-link{color:var(--teal-ink);font-weight:var(--w-display)}.auth-link:hover{text-decoration:underline}.review-list{flex-direction:column;gap:10px;display:flex}.review-item{align-items:center;gap:18px;display:flex}.review-copy{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.review-copy b{font-size:var(--t-lg)}.review-copy span{font-size:var(--t-sm);line-height:1.6}.review-mastery{flex:none;width:120px}.review-mastery-label{font-size:var(--t-xs);font-weight:var(--w-strong);margin-bottom:5px;display:block}@media (max-width:520px){.review-item{flex-direction:column;align-items:stretch;gap:12px}.review-mastery{width:100%}}.practice-card{border-color:var(--teal-soft);background:radial-gradient(120% 90% at 100% 0%, color-mix(in srgb, var(--teal) 10%, transparent), transparent 70%), var(--surface);flex-direction:column;align-items:flex-start;gap:16px;display:flex}.practice-icon{background:var(--teal);color:#fff;width:60px;height:60px;box-shadow:0 4px 0 var(--teal-dark);border-radius:19px;place-items:center;display:grid}.practice-card h2{font-size:var(--t-2xl)}.practice-meta{flex-wrap:wrap;gap:8px;display:flex}.practice-why,.practice-weak{flex-direction:column;gap:10px;margin-top:16px;display:flex}.practice-why-list{font-size:var(--t-sm);font-weight:var(--w-body);color:var(--muted);flex-wrap:wrap;gap:22px;display:flex}.practice-why-list b{color:var(--ink-strong);font-size:var(--t-lg)}.practice-weak-list{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;display:grid}.practice-weak-list li{border-radius:var(--radius-sm);background:var(--wash);flex-direction:column;gap:2px;padding:11px 13px;display:flex}.practice-weak-list b{font-size:var(--t-md)}.practice-weak-list span{font-size:var(--t-sm);line-height:1.5}.board-optin{border-color:var(--gold-soft);flex-direction:column;align-items:flex-start;gap:14px;display:flex}.board-optin-icon{background:var(--gold);color:#fff;width:60px;height:60px;box-shadow:0 4px 0 var(--gold-dark);border-radius:19px;place-items:center;display:grid}.board-optin h2{font-size:var(--t-2xl)}.board-optin p{max-width:48ch;font-size:var(--t-md);line-height:1.75}.board-alias{width:min(320px,100%)}.board{flex-direction:column;gap:8px;display:flex}.board-row{border:2px solid var(--line);border-radius:var(--radius-md);background:var(--surface);align-items:center;gap:14px;padding:12px 16px;display:flex}.board-row.is-me{border-color:var(--teal);background:color-mix(in srgb, var(--teal) 10%, transparent)}.board-row.is-podium .board-rank{color:#fff;border-radius:10px}.board-row.rank-1 .board-rank{background:var(--gold)}.board-row.rank-2 .board-rank{background:#b8c4cc}.board-row.rank-3 .board-rank{background:#cd7f32}.board-rank{width:30px;height:30px;color:var(--faint);font-size:var(--t-sm);font-weight:var(--w-display);flex:none;place-items:center;display:grid}.board-avatar{background:var(--wash);width:42px;height:42px;color:var(--muted);font-size:var(--t-sm);font-weight:var(--w-display);border-radius:50%;flex:none;place-items:center;display:grid;overflow:hidden}.board-avatar img{object-fit:cover;width:100%;height:100%}.board-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--t-md);font-weight:var(--w-strong);flex:1;overflow:hidden}.board-level{background:var(--wash);color:var(--muted);font-size:var(--t-xs);font-weight:var(--w-display);border-radius:8px;flex:none;padding:3px 9px}.board-score{font-size:var(--t-lg);font-weight:var(--w-display);color:var(--gold-dark);flex:none}.board-divider{text-align:center;letter-spacing:4px;padding:6px 0}.board-personal{margin-top:18px}.board-personal-grid{flex-wrap:wrap;gap:28px;margin-top:8px;display:flex}.board-personal-grid div{flex-direction:column;display:flex}.board-personal-grid b{font-size:var(--t-xl);font-weight:var(--w-display)}.board-personal-grid span{font-size:var(--t-xs);font-weight:var(--w-strong)}.profile-head{flex-wrap:wrap;align-items:center;gap:12px 18px;display:flex}.profile-avatar{background:var(--teal);color:#fff;width:68px;height:68px;font-size:var(--t-2xl);font-weight:var(--w-display);box-shadow:0 4px 0 var(--teal-dark);border-radius:22px;flex:none;place-items:center;display:grid}.profile-id{flex:220px;min-width:0}.profile-id h1{font-size:var(--t-3xl)}.profile-id p{font-size:var(--t-sm);margin-top:3px}.profile-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:16px 0;display:grid}.profile-stat{flex-direction:column;gap:4px;display:flex}.profile-stat b{font-size:var(--t-2xl);font-weight:var(--w-display)}.profile-stat span{font-size:var(--t-xs);font-weight:var(--w-strong)}.profile-stat-icon{border-radius:13px;place-items:center;width:42px;height:42px;margin-bottom:4px;display:grid}.profile-stat-coral{background:color-mix(in srgb, var(--coral) 13%, transparent);color:var(--coral)}.profile-stat-gold{background:color-mix(in srgb, var(--gold) 16%, transparent);color:var(--gold-dark)}.profile-stat-teal{background:color-mix(in srgb, var(--teal) 13%, transparent);color:var(--teal-ink)}.profile-stat-purple{background:color-mix(in srgb, var(--purple) 14%, transparent);color:var(--purple-ink)}.profile-course{font-family:var(--font-mono);font-size:var(--t-sm);color:var(--muted);margin-top:8px}.objectives{flex-direction:column;gap:14px;margin-top:12px;display:flex}.objective-copy{justify-content:space-between;align-items:baseline;gap:14px;margin-bottom:6px;display:flex}.objective-copy b{font-size:var(--t-md);font-weight:var(--w-strong);line-height:1.5}.objective-copy span{font-size:var(--t-xs);font-weight:var(--w-display);flex:none}.profile-actions{flex-direction:column;align-items:flex-start;gap:10px;margin-top:16px;display:flex}.main>.card+.card{margin-top:16px}.course-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;display:grid}.course-card{flex-direction:column;gap:12px;display:flex}.course-card.is-current{border-color:var(--teal)}.course-card h2{font-size:var(--t-xl)}.course-card p{font-size:var(--t-sm);flex:1;line-height:1.65}.course-badge{color:#fff;width:56px;height:44px;font-size:var(--t-sm);font-weight:var(--w-display);border-radius:13px;place-items:center;display:grid}.pricing-modal{align-items:start;padding:20px;overflow-y:auto}.pricing-card{border:2px solid var(--line);border-radius:var(--radius-xl);background:var(--surface);width:min(560px,100%);box-shadow:var(--shadow-pop);flex-direction:column;gap:14px;margin:auto;padding:30px 26px 24px;animation:.18s ease-out both pop-in;display:flex;position:relative}.pricing-close{background:var(--wash);width:34px;height:34px;color:var(--muted);cursor:pointer;border:0;border-radius:12px;place-items:center;transition:color .16s,background .16s;display:grid;position:absolute;top:14px;right:14px}.pricing-close:hover{background:var(--track);color:var(--ink)}.pricing-head{flex-direction:column;gap:8px;padding-right:34px;display:flex}.pricing-eyebrow{background:var(--gold-soft);color:var(--gold-dark);font-size:var(--t-sm);font-weight:var(--w-strong);border-radius:999px;align-self:flex-start;align-items:center;gap:7px;padding:6px 13px;display:inline-flex}.pricing-head h2{font-size:var(--t-2xl);line-height:1.35}.pricing-head p{font-size:var(--t-md);line-height:1.6}.pricing-plans{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.pricing-plan{border:2px solid var(--line);border-radius:var(--radius-lg);background:var(--surface-2);flex-direction:column;gap:8px;padding:18px 14px 16px;display:flex;position:relative}.pricing-plan.is-best{border-color:var(--gold);background:color-mix(in srgb, var(--gold) 10%, var(--surface));box-shadow:0 var(--lip) 0 var(--gold-dark)}.pricing-badge{background:var(--gold);color:#3c2f00;font-size:var(--t-xs);font-weight:var(--w-strong);white-space:nowrap;border-radius:999px;padding:3px 10px;position:absolute;top:-11px;left:50%;transform:translate(-50%)}.pricing-plan-label{color:var(--muted);font-size:var(--t-sm);font-weight:var(--w-strong)}.pricing-price{flex-direction:column;gap:1px;display:flex}.pricing-price b{font-size:var(--t-3xl);letter-spacing:-.5px;color:var(--ink-strong)}.pricing-period{color:var(--muted);font-size:var(--t-sm);font-weight:var(--w-strong)}.pricing-features{flex-direction:column;gap:6px;margin-top:2px;display:flex}.pricing-features li{color:var(--muted);font-size:var(--t-xs);font-weight:var(--w-body);align-items:flex-start;gap:6px;line-height:1.45;display:flex}.pricing-features svg{color:var(--teal);flex:none;margin-top:2px}.pricing-actions{flex-direction:column;gap:10px;margin-top:4px;display:flex}.pricing-cta{box-shadow:0 var(--lip) 0 #1a7fae;background:linear-gradient(#37b0e8,#229ed9);text-decoration:none}.pricing-cta:active{box-shadow:0 0 #1a7fae}.pricing-note{font-size:var(--t-sm);text-align:center;line-height:1.6}@media (max-width:560px){.pricing-plans{grid-template-columns:minmax(0,1fr);gap:14px}.pricing-plan{flex-flow:wrap;align-items:baseline;column-gap:10px}.pricing-price{flex-direction:row;align-items:baseline;gap:6px}.pricing-features{flex-basis:100%}.pricing-badge{left:auto;right:14px;transform:none}}.profile-settings-link{border:2px solid var(--line);color:var(--muted);font-size:var(--t-sm);font-weight:var(--w-display);border-radius:999px;align-items:center;gap:7px;padding:8px 14px;transition:color .16s,border-color .16s;display:inline-flex}.profile-settings-link:hover{color:var(--ink);border-color:var(--line-strong)}.profile-level{align-items:center;gap:14px;margin:12px 0 10px;display:flex}.profile-level-badge{background:var(--gold);color:#3c2f00;width:48px;height:48px;font-size:var(--t-xl);font-weight:var(--w-display);box-shadow:0 var(--lip) 0 var(--gold-dark);border-radius:16px;flex:none;place-items:center;display:grid}.profile-level-copy{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.profile-level-copy b{font-size:var(--t-lg)}.profile-level-copy span{font-size:var(--t-sm);font-weight:var(--w-body)}.profile-badges{font-size:var(--t-sm);font-weight:var(--w-strong);margin-top:10px}.profile-goals{flex-direction:column;gap:16px;margin-top:12px;display:flex}.profile-goal-head{font-size:var(--t-sm);align-items:center;gap:8px;margin-bottom:8px;display:flex}.profile-goal-head b{font-size:var(--t-lg)}.profile-goal-head span{font-size:var(--t-sm);font-weight:var(--w-strong)}.profile-chests{align-items:center;gap:14px;display:flex}.profile-chests-copy{flex-direction:column;flex:1;min-width:0;display:flex}.profile-chests-copy b{font-size:var(--t-lg)}.profile-plan{flex-wrap:wrap;gap:10px 28px;margin-top:12px;display:flex}.profile-plan li{flex-direction:column;gap:2px;display:flex}.profile-plan span{font-size:var(--t-xs);font-weight:var(--w-strong)}.profile-plan b{font-size:var(--t-md)}.set-card+.set-card{margin-top:16px}.set-rows{flex-direction:column;margin-top:6px;display:flex}.set-row{border-top:1px solid var(--line);align-items:center;gap:14px;padding:14px 0;display:flex}.set-rows>:first-child .set-row,.set-rows>.set-row:first-child{border-top:0}.set-icon{background:var(--wash);width:38px;height:38px;color:var(--muted);border-radius:12px;flex:none;place-items:center;display:grid}.set-row.is-danger .set-icon{background:color-mix(in srgb, var(--coral) 12%, transparent);color:var(--coral)}.set-copy{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.set-copy b{font-size:var(--t-md);font-weight:var(--w-strong)}.set-copy small{color:var(--muted);font-size:var(--t-sm);font-weight:var(--w-body);overflow-wrap:anywhere;line-height:1.5}.set-action{flex:none;align-items:center;gap:8px;display:flex}.set-link{font-size:var(--t-sm);font-weight:var(--w-display);color:var(--teal-ink);white-space:nowrap}.set-hint{font-size:var(--t-sm);font-weight:var(--w-strong)}.set-switch{border-top:1px solid var(--line);padding:14px 0}.set-rows>.set-switch:first-child{border-top:0}.set-editor{border-radius:var(--radius-md);background:var(--surface-2);flex-direction:column;gap:12px;margin:0 0 16px;padding:16px;animation:.16s ease-out both pop-in;display:flex}.set-editor-actions{align-items:center;gap:8px;display:flex}.set-danger-note{font-size:var(--t-sm);font-weight:var(--w-strong);color:var(--coral);line-height:1.5}.set-notice{border:2px solid var(--teal-soft);border-radius:var(--radius);background:color-mix(in srgb, var(--teal) 10%, transparent);color:var(--teal-ink);font-size:var(--t-sm);font-weight:var(--w-strong);margin-bottom:14px;padding:12px 16px}.board-optout{flex-direction:column;align-items:flex-start;gap:10px;display:flex}
