@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.0-dom-5bn10r2.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.1y4-pdgsjb-pw.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ad66f9afd8947f86-s.3lvt2whj97whp.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5476f68d60460930-s.2uwcyprjm3xu3.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.0k62hbripvv8p.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1bffadaabf893a1e-s.3-6t-g6q0vh0a.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_5901b7c6-module__ec5Qua__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_5901b7c6-module__ec5Qua__variable{--font-inter:"Inter", "Inter Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/13bf9871fe164e7f-s.2f7nqdagzwx2-.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/cc545e633e20c56d-s.176arc174-8zp.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/71b036adf157cdcf-s.0bp8oijd_gu96.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/89b21bb081cb7469-s.1fby2rem9ngyr.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/3fe682a82f50d426-s.0vfdmo25voy_0.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_8be3b53a-module__CxiPNW__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_8be3b53a-module__CxiPNW__variable{--font-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
:root{--bg:#f5f6fa;--surface:#fff;--surface-2:#eef0f6;--text:#1b1e2b;--muted:#6b7185;--border:#dde1ec;--accent:#5b5bf0;--accent-2:#8b5cf6;--good:#16a36a;--ok:#d99a06;--bad:#e0445b;--good-bg:#e6f7ef;--ok-bg:#fdf4de;--bad-bg:#fdecef;--radius:16px;--shadow:0 1px 2px #1418280f, 0 6px 24px #1418280f;--mono:var(--font-mono), "JetBrains Mono", ui-monospace, Menlo, monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0f1117;--surface:#181b25;--surface-2:#222634;--text:#e8eaf2;--muted:#8f95aa;--border:#2c3142;--accent:#7c7cff;--accent-2:#a78bfa;--good:#34d399;--ok:#fbbf24;--bad:#fb7185;--good-bg:#0f2c22;--ok-bg:#2d2410;--bad-bg:#321620;--shadow:0 1px 2px #0000004d, 0 8px 28px #00000040}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);font:16px/1.5 var(--font-inter), Inter, system-ui, -apple-system, sans-serif;margin:0}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}h1,h2,h3,h4{margin:0 0 .4em;line-height:1.2}h1{font-size:clamp(28px,5vw,40px);font-weight:800}h1 em{background:linear-gradient(90deg, var(--accent), var(--accent-2));color:#0000;-webkit-background-clip:text;background-clip:text;font-style:normal}.muted{color:var(--muted)}.small{font-size:14px}.center{text-align:center}code,kbd{font-family:var(--mono);background:var(--surface-2);border-radius:6px;padding:1px 6px;font-size:.85em}kbd{opacity:.7;background:#ffffff2e;margin-left:6px;font-size:11px}.header{grid-template-columns:auto 1fr;align-items:center;gap:8px 12px;max-width:880px;margin:0 auto;padding:12px 16px 10px;display:grid}.header>.nav{grid-column:1/-1}.logo{background:0 0;border:0;align-items:center;gap:8px;padding:0;font-size:20px;font-weight:500;display:flex}.logo b{color:var(--accent);font-weight:800}.hud{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.chip{background:var(--surface);border:1px solid var(--border);border-radius:999px;align-items:center;gap:4px;padding:3px 10px;font-size:13px;font-weight:600;display:inline-flex}.chip.lvl{background:var(--accent);color:#fff;border-color:#0000}main{max-width:880px;margin:0 auto;padding:0 16px 48px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:16px;padding:24px}.btn{border:1px solid var(--border);background:var(--surface);border-radius:12px;padding:10px 18px;font-weight:600;transition:transform 80ms,background .15s}.btn:hover{background:var(--surface-2)}.btn:active{transform:scale(.97)}.btn.primary{background:var(--accent);color:#fff;border-color:#0000}.btn.primary:hover{filter:brightness(1.08)}.btn.ghost{background:0 0;border-color:#0000;padding:8px 10px}.btn.big{padding:14px 24px;font-size:18px}.link{color:var(--accent);text-underline-offset:3px;background:0 0;border:0;padding:0;text-decoration:underline}.row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;display:flex}.center-row{justify-content:center;margin-top:20px}.hero{padding:40px 24px}.hero>p{max-width:560px;margin:0 auto 28px}.level-pick{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin:16px 0;display:grid}.lvl-btn{flex-direction:column;padding:16px;display:flex}.lvl-btn b{color:var(--accent);font-size:22px}.lvl-btn small{color:var(--muted)}.level-card{background:linear-gradient(135deg, var(--surface), var(--surface-2))}.level-head{align-items:center;gap:16px;margin-bottom:16px;display:flex}.level-head .next{margin-left:auto}.badge{color:#fff;background:linear-gradient(135deg, var(--accent), var(--accent-2));border-radius:18px;flex-shrink:0;place-items:center;width:64px;height:64px;font-size:24px;font-weight:800;display:grid}.req{margin-top:12px}.req-row{justify-content:space-between;gap:8px;margin-bottom:6px;font-size:14px;display:flex}.bar{background:var(--surface-2);border:1px solid var(--border);border-radius:99px;height:10px;overflow:hidden}.bar i{background:linear-gradient(90deg, var(--accent), var(--accent-2));border-radius:inherit;height:100%;transition:width .4s;display:block}.bar.mastery i{background:var(--good)}.bar.daily-bar i{background:var(--ok)}.bar.thin{height:6px;margin-bottom:16px}.practice-level{flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 16px;display:flex}.pill{border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:4px 12px;font-size:14px;font-weight:600}.pill.on{background:var(--accent);color:#fff;border-color:#0000}.modes{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:16px;display:grid}.mode{text-align:left;margin:0;transition:transform .12s,border-color .12s}.mode:hover{border-color:var(--accent);transform:translateY(-2px)}.mode p{color:var(--muted);margin:0;font-size:14px}.mode-icon{margin-bottom:8px;font-size:30px;display:block}.count{background:var(--bad);color:#fff;vertical-align:middle;border-radius:99px;padding:0 8px;font-size:12px;display:inline-block}.stats{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:16px;display:grid}.stat{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:12px;padding:12px}.stat b{font-size:24px;font-weight:800;display:block}.stat span{color:var(--muted);font-size:13px}.daily{margin-bottom:20px}.topbar{justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.topbar h2{align-items:center;gap:8px;margin:0;font-size:20px;display:flex}.prompt{margin:4px 0 8px;font-size:clamp(20px,3.4vw,26px);font-weight:600}.hint{font-family:var(--mono);background:var(--ok-bg);border-radius:10px;padding:8px 12px}textarea,.gap-input{width:100%;font:18px/1.5 var(--mono);color:var(--text);background:var(--surface-2);border:2px solid var(--border);resize:vertical;border-radius:12px;margin-top:12px;padding:14px 16px}textarea:focus,.gap-input:focus{border-color:var(--accent);outline:none}.gap-input{max-width:320px}.blank{font-family:var(--mono);color:var(--accent);letter-spacing:2px;border-bottom:2px solid var(--accent)}.audio-row{flex-wrap:wrap;align-items:center;gap:10px;margin:12px 0;display:flex}.feedback{border:1px solid var(--border);border-radius:12px;margin-top:16px;padding:16px}.feedback.good{background:var(--good-bg);border-color:var(--good)}.feedback.ok{background:var(--ok-bg);border-color:var(--ok)}.feedback.meh,.feedback.bad{background:var(--bad-bg);border-color:var(--bad)}.fb-head{flex-wrap:wrap;justify-content:space-between;gap:8px;margin-bottom:8px;display:flex}.fb-head span{color:var(--muted);font-size:14px}.diff{font-family:var(--mono);margin-bottom:8px;font-size:16px;line-height:2}.d-ok{color:var(--good)}.d-typo{color:var(--ok);-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.d-typo sup{margin-left:2px;font-size:11px}.d-wrong{color:var(--bad)}.d-wrong s,.d-extra s{opacity:.6}.d-missing{color:var(--bad);border:1px dashed var(--bad);border-radius:4px;padding:0 4px}.d-extra{color:var(--muted)}.answer-line{font-size:17px}mark{background:var(--ok-bg);color:inherit;border-bottom:2px solid var(--ok);padding:0 2px}.speak{background:0 0;border:0;padding:0 4px;font-size:16px}.race{position:relative}.lanes{gap:8px;margin-bottom:20px;display:grid}.lane{grid-template-columns:150px 1fr 44px;align-items:center;gap:10px;font-size:14px;display:grid}.lane-name{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.lane-wpm{font-family:var(--mono);text-align:right;color:var(--muted)}.track{background:var(--surface-2);border:1px dashed var(--border);border-radius:8px;height:32px;position:relative}.car{font-size:20px;transition:left .15s linear;position:absolute;top:50%;left:0;transform:translateY(-50%)}.flag{opacity:.6;font-size:16px;position:absolute;top:50%;right:4px;transform:translateY(-50%)}#lane-me .track{border-color:var(--accent);border-style:solid}.countdown{color:var(--accent);background:color-mix(in srgb, var(--surface) 70%, transparent);border-radius:var(--radius);z-index:2;pointer-events:none;place-items:center;font-size:72px;font-weight:800;transition:opacity .3s;display:grid;position:absolute;inset:0}.countdown.gone{opacity:0}.typing-text{font:22px/1.8 var(--mono);background:var(--surface-2);cursor:text;-webkit-user-select:none;user-select:none;border-radius:12px;padding:16px}.word{white-space:nowrap;display:inline-block}.ch{color:var(--muted);border-radius:3px}.ch.okc{color:var(--text)}.ch.err{background:var(--bad-bg);color:var(--bad)}.ch.err.fixed{color:var(--ok);background:0 0;text-decoration:underline}.ch.cur{box-shadow:inset 0 -3px 0 var(--accent);color:var(--text)}.ch.shake{animation:.18s shake}@keyframes shake{25%{transform:translate(-2px)}75%{transform:translate(2px)}}.translation{border-left:3px solid var(--accent);background:var(--surface-2);border-radius:0 10px 10px 0;margin-top:12px;padding:10px 14px}.hidden-input{opacity:0;width:1px;height:1px;position:absolute;top:0;left:0}.live{margin-top:10px}.results .stats{margin:16px 0}.pairs{gap:10px;margin:0;padding:0;list-style:none;display:grid}.pairs li{background:var(--surface-2);border-radius:10px;padding:10px 14px}.score{font-family:var(--mono);border-radius:6px;margin-right:4px;padding:1px 6px;font-size:13px}.score.good{background:var(--good-bg);color:var(--good)}.score.ok{background:var(--ok-bg);color:var(--ok)}.score.meh,.score.bad{background:var(--bad-bg);color:var(--bad)}.levelup{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#fff;border:0}.levelup .muted{color:#ffffffd9}.confetti{font-size:56px;animation:.6s ease-out pop}.lvl-jump{margin:8px 0;font-size:40px;font-weight:800}@keyframes pop{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}@media (max-width:560px){.card{padding:18px}.lane{grid-template-columns:96px 1fr;font-size:12px}.m-main{font-size:32px}.typing-text{font-size:18px}.level-head{flex-wrap:wrap}.level-head .next{width:100%;margin-left:0}}.chip.who{cursor:pointer}.chip.who:hover{border-color:var(--accent)}.profiles{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin-top:20px;display:grid}.profile{position:relative}.profile-pick{border:2px solid var(--border);border-radius:var(--radius);background:var(--surface-2);flex-direction:column;align-items:center;gap:4px;width:100%;padding:18px 10px;transition:transform .12s,border-color .12s;display:flex}.profile-pick:hover{border-color:var(--accent);transform:translateY(-2px)}.profile.on .profile-pick{border-color:var(--accent)}.profile-pick.add{background:0 0;border-style:dashed}.avatar{font-size:44px;line-height:1.1}.profile-del{border:1px solid var(--border);background:var(--surface);width:26px;height:26px;color:var(--muted);opacity:0;border-radius:50%;line-height:1;transition:opacity .15s;position:absolute;top:6px;right:6px}.profile:hover .profile-del,.profile-del:focus-visible{opacity:1}@media (hover:none){.profile-del{opacity:1}}.profile-del:hover{color:var(--bad);border-color:var(--bad)}.pform{max-width:420px;margin:0 auto}.pform .gap-input{text-align:center;max-width:none;font-family:inherit}.avatars{flex-wrap:wrap;justify-content:center;gap:6px;margin-top:14px;display:flex}.av{background:var(--surface-2);border:2px solid #0000;border-radius:12px;width:48px;height:48px;font-size:26px}.av.on{border-color:var(--accent);background:var(--surface)}.board table{border-collapse:collapse;width:100%;font-size:14px}.board th{text-align:left;color:var(--muted);border-bottom:1px solid var(--border);padding:6px 8px;font-weight:500}.board td{border-bottom:1px solid var(--border);padding:8px}.board tr.me td{background:color-mix(in srgb, var(--accent) 10%, transparent);font-weight:600}.board{overflow-x:auto}.footer-links{color:var(--muted)}.choice{text-align:left;border:2px solid var(--accent);cursor:pointer;width:100%;margin:20px 0 12px;transition:transform .12s}.choice:hover{transform:translateY(-2px)}.choice p{margin:0}.manual summary{cursor:pointer;margin:8px 0}.ladder{flex-wrap:wrap;justify-content:center;gap:6px;margin-bottom:14px;display:flex}.rung{background:var(--surface-2);color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:4px 12px;font-size:13px;font-weight:700}.rung.now{border-color:var(--accent);color:var(--accent)}.rung.pass{background:var(--good-bg);color:var(--good);border-color:var(--good)}.rung.fail{background:var(--bad-bg);color:var(--bad);border-color:var(--bad)}.results .pairs .small{margin-top:6px}a{color:inherit}.logo{text-decoration:none}.nav{flex-wrap:wrap;gap:4px;display:flex}.nav a{color:var(--muted);border-radius:10px;padding:6px 10px;font-size:14px;font-weight:600;text-decoration:none}.nav a:hover,.nav a.on{background:var(--surface);color:var(--text)}@media (max-width:560px){.logo .logo-text,.hud-xp,.hud-user,.nav .nav-rewards{display:none}.header .hud{flex-wrap:nowrap;gap:4px}.header .hud .chip{padding:3px 8px;font-size:12px}.header>.nav{gap:2px}.header>.nav a,.header>.nav summary{padding:6px 8px;font-size:13px}}a.btn,a.card{text-decoration:none;display:inline-block}a.card.mode{color:inherit;display:block}.practice-btn .btn{align-items:center;gap:8px;display:inline-flex}.btn.danger{color:var(--bad);border-color:var(--bad)}.auth{max-width:440px;margin:24px auto}.form{text-align:left;gap:12px;display:grid}.form label{gap:6px;font-size:14px;font-weight:600;display:grid}.form input,.fields input,.fields select{width:100%;font:inherit;color:var(--text);background:var(--surface-2);border:2px solid var(--border);border-radius:12px;padding:12px 14px}.form input:focus,.fields input:focus,.fields select:focus{border-color:var(--accent);outline:none}.form-error{color:var(--bad);min-height:1.2em;margin:0;font-size:14px}.landing{text-align:center;padding:48px 24px}.landing .features{text-align:left;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:28px 0;display:grid}.landing .feature{background:var(--surface-2);border-radius:12px;padding:14px}.landing .feature p{color:var(--muted);margin:4px 0 0;font-size:14px}.cta{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.banner{border-radius:var(--radius);margin-bottom:16px;padding:14px 18px;font-weight:600}.banner.levelup{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#fff}.chips{flex-wrap:wrap;gap:6px;margin:8px 0 16px;display:flex}.count.neutral{background:var(--accent)}.ai-card{border-color:var(--accent)}.explain{background:var(--surface);border-radius:10px;margin-top:10px;padding:10px 12px;font-size:15px}.chip.pattern{background:var(--surface-2);margin-bottom:8px}.recent{margin:8px 0}.loading{color:var(--muted);align-items:center;gap:10px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;flex-shrink:0;width:18px;height:18px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.providers{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:12px 0;display:grid}.provider{border:2px solid var(--border);cursor:pointer;background:var(--surface-2);border-radius:12px;gap:2px;padding:12px 14px;display:grid}.provider.on{border-color:var(--accent);background:var(--surface)}.provider input{display:none}.fields{gap:12px;margin:12px 0;display:grid}.fields label{gap:6px;font-size:14px;font-weight:600;display:grid}.env{font-family:var(--mono);background:var(--surface-2);white-space:pre;border-radius:10px;padding:12px;font-size:13px;overflow-x:auto}.plans{gap:8px;display:grid}.plans a{background:var(--surface-2);border-radius:10px;justify-content:space-between;gap:8px;padding:10px 14px;text-decoration:none;display:flex}.plans a:hover{outline:2px solid var(--accent)}.explain-btn{margin-top:12px}.explanation{gap:12px;margin-top:14px;display:grid}.expl-summary{margin:0;font-weight:600}.mistake{background:var(--surface);border:1px solid var(--border);border-radius:12px;gap:10px;padding:14px 16px;display:grid}.mistake header{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.mistake .fix{font-family:var(--mono);margin:0;font-size:16px}.expl-section{gap:2px;font-size:15px;display:grid}.expl-title{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:12px;font-weight:700}.examples{gap:4px;margin:0;padding:0;list-style:none;display:grid}.tip{background:var(--ok-bg);border-radius:10px;margin:0;padding:8px 12px;font-size:15px}.rule-box{border-left:3px solid var(--accent);background:var(--surface);border-radius:0 10px 10px 0;margin-top:10px;padding:10px 12px;font-size:15px}.mastered-toast{background:var(--good-bg);color:var(--good);border-radius:10px;margin-top:10px;padding:10px 12px;font-weight:700}.path-list{gap:12px;display:grid}.weak{gap:10px;display:grid}.weak-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.weak-head h3{margin:0}.status{border-radius:999px;padding:2px 10px;font-size:12px;font-weight:700}.status.active{background:var(--bad-bg);color:var(--bad)}.status.improving{background:var(--ok-bg);color:var(--ok)}.status.mastered{background:var(--good-bg);color:var(--good)}.weak-meta{color:var(--muted);flex-wrap:wrap;gap:14px;font-size:13px;display:flex}.weak details summary{cursor:pointer;color:var(--accent);font-size:14px;font-weight:600}.weak details[open] summary{margin-bottom:8px}.path-mini{gap:8px;margin-top:8px;display:grid}.path-mini a{background:var(--surface-2);border-radius:10px;grid-template-columns:1fr 120px;align-items:center;gap:10px;padding:8px 12px;text-decoration:none;display:grid}.notebook li .fix{font-family:var(--mono)}.topics{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;display:grid}.topic{background:var(--surface-2);border:2px solid #0000;border-radius:12px;align-content:start;gap:6px;padding:12px 14px;text-decoration:none;transition:border-color .12s,transform .12s;display:grid}.topic:hover{border-color:var(--accent);transform:translateY(-1px)}.topic.weak-topic{border-color:var(--bad)}.topic-head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.chip.rec{border-color:var(--bad);text-decoration:none}.structure{font-family:var(--mono);background:var(--surface-2);border-radius:10px;margin:8px 0;padding:8px 12px;font-size:14px}.lesson .rule{border-top:1px solid var(--border);margin-top:12px;padding-top:12px}.lesson .rule p{margin:6px 0}.cta .btn{align-items:center;gap:8px;display:inline-flex}.queued{background:var(--surface);border:1px dashed var(--accent);border-radius:10px;margin:12px 0 0;padding:10px 12px}.chip.jobs{gap:6px;text-decoration:none}.chip.jobs.has-new{background:var(--ok-bg);border-color:var(--ok)}.spinner.mini{border-width:2px;width:11px;height:11px}.toasts{z-index:50;pointer-events:none;justify-items:end;gap:8px;display:grid;position:fixed;bottom:16px;left:16px;right:16px}.toast{pointer-events:auto;background:var(--surface);border:2px solid var(--accent);width:100%;max-width:440px;box-shadow:var(--shadow);border-radius:14px;flex-wrap:wrap;align-items:center;gap:12px;padding:14px 16px;font-size:15px;animation:.3s ease-out pop;display:flex}.toast a{color:var(--accent);font-weight:700}.toast .link{margin-left:auto;text-decoration:none}.incident.new{border-color:var(--ok)}.focus-lost{border:2px dashed var(--accent);background:var(--surface);width:100%;color:var(--accent);border-radius:10px;margin-top:10px;padding:10px;font-weight:700;display:block}.stuck{background:var(--bad-bg);color:var(--bad);border-radius:10px;margin:10px 0 0;padding:10px 12px;font-weight:600}.stuck kbd{opacity:1;background:var(--surface);color:var(--text);padding:2px 8px;font-size:15px}.chip.coins{background:var(--ok-bg);border-color:var(--ok);text-decoration:none}.fixed-banner{background:var(--good-bg);color:var(--good);border:1px solid var(--good);border-radius:10px;margin:4px 0 10px;padding:10px 12px}.fixed-banner s{color:var(--bad)}.quests{gap:10px;display:grid}.quest{background:var(--surface-2);border-radius:12px;grid-template-columns:34px 1fr auto;align-items:center;gap:10px;padding:10px 12px;display:grid}.quest.done{background:var(--good-bg)}.quest .q-icon{text-align:center;font-size:22px}.quest .q-reward{white-space:nowrap;font-size:14px;font-weight:700}.chest{border:2px dashed var(--ok);border-radius:12px;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;padding:12px;display:flex}.chest.done{background:var(--ok-bg);border-style:solid}.achievements{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;display:grid}.ach{background:var(--surface-2);text-align:center;border-radius:12px;gap:4px;padding:12px;display:grid}.ach .a-icon{font-size:30px}.ach.locked{opacity:.45;filter:grayscale()}.shop{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.shop-item{background:var(--surface-2);text-align:center;border-radius:12px;justify-items:center;gap:6px;padding:14px 10px;display:grid}.shop-item .s-icon{font-size:34px}.balance{font-size:32px;font-weight:800}.fixed-list li .fix{font-family:var(--mono);margin:4px 0;font-size:15px}.stat-link{border-color:var(--good);text-decoration:none}.stat-link:hover{background:var(--good-bg)}.race-texts{flex-wrap:wrap;align-items:center;gap:6px;margin:-4px 0 12px;display:flex}.race-texts .chip{text-decoration:none}.race-texts .chip.on{background:var(--accent);color:#fff;border-color:#0000}.speedometer{justify-items:center;gap:2px;margin-bottom:14px;display:grid}.m-main{align-items:baseline;gap:10px;font-size:40px;font-weight:800;line-height:1.1;display:flex}.m-main .muted{font-size:16px;font-weight:600}.m-sub{color:var(--muted);font-size:14px}.m-delta,.m-first{background:var(--surface-2);border-radius:999px;margin-top:6px;padding:4px 12px;font-size:15px;font-weight:700}.m-delta.ahead{background:var(--good-bg);color:var(--good)}.m-delta.behind{background:var(--bad-bg);color:var(--bad)}.lane{grid-template-columns:150px 1fr}.lane.ghost .car{opacity:.55}.race-verdict{font-size:16px}.rep{white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:700;display:inline-block}.rep-low{background:var(--surface-2);color:var(--muted)}.rep-mid{background:var(--ok-bg);color:var(--ok)}.rep-high{background:var(--bad-bg);color:var(--bad)}.repeat-banner{background:var(--ok-bg);border:1px solid var(--ok);border-radius:10px;margin:4px 0 10px;padding:10px 12px}.repeat-banner a{color:var(--accent);font-weight:700}.lesson-card .fix{font-family:var(--mono);margin:6px 0;font-size:17px}.lesson-status{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.chip.pattern.final-chip{background:var(--accent);color:#fff;border-color:#0000}.btn.small-btn{padding:4px 12px;font-size:13px}.verbs{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;display:grid}.verb{background:var(--surface-2);border:2px solid #0000;border-radius:12px;gap:2px;padding:10px 12px;text-decoration:none;display:grid}.verb:hover{border-color:var(--accent)}.verb.weak-topic{border-color:var(--bad)}.verb-head{justify-content:space-between;align-items:center;font-size:17px;display:flex}.verb-forms{font-family:var(--mono);font-size:13px}.irr{text-transform:uppercase;letter-spacing:.04em;color:var(--accent-2);justify-self:start;font-size:11px;font-weight:700;display:inline-block}.verb-filter{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.verb-filter .gap-input{max-width:320px;margin:0}.forms{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:14px 0;display:grid}.form{background:var(--surface-2);font-family:var(--mono);border-radius:10px;gap:2px;padding:10px 12px;display:grid}.tense summary{cursor:pointer;align-items:center;gap:8px;display:flex}.conj{border-collapse:collapse;width:100%;font-family:var(--mono);font-size:14px}.conj th{text-align:left;color:var(--muted);font-family:var(--font-inter), sans-serif;border-bottom:1px solid var(--border);padding:6px;font-weight:500}.conj td{border-bottom:1px solid var(--border);padding:6px}.tense{overflow-x:auto}.gap-input.wide{max-width:none}.verb-link{color:var(--accent);text-decoration:none}.words{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;display:grid}.word-card{background:var(--surface-2);border:2px solid #0000;border-radius:12px;gap:2px;padding:10px 12px;display:grid}.word-card.weak-topic{border-color:var(--bad)}.word-card.locked{opacity:.55}.game-hud{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;font-size:18px;display:flex}.combo{background:var(--ok-bg);color:var(--ok);border-radius:999px;padding:3px 10px;font-size:14px;font-weight:800}.combo.x3{background:var(--bad-bg);color:var(--bad)}.timer{background:var(--surface-2);border-radius:99px;height:8px;margin-bottom:14px;overflow:hidden}.timer i{background:linear-gradient(90deg, var(--good), var(--ok), var(--bad));transform-origin:0;height:100%;animation:linear forwards shrink;display:block}@keyframes shrink{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.options{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-top:10px;display:grid}.option{text-align:left;border:2px solid var(--border);background:var(--surface-2);font:600 18px/1.3 var(--mono);border-radius:12px;padding:14px 16px;transition:transform 80ms}.option:hover:not(:disabled){border-color:var(--accent);transform:translateY(-1px)}.option kbd{margin:0 8px 0 0}.option.right{border-color:var(--good);background:var(--good-bg)}.option.wrong{border-color:var(--bad);background:var(--bad-bg)}.option.dim{opacity:.45}.memory{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.mcard{aspect-ratio:4/3;border:2px solid var(--border);background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#fff;font:700 18px var(--mono);border-radius:12px;transition:transform .2s}.mcard.up{background:var(--surface-2);color:var(--text);transform:rotateY(0)}.mcard.up.b{color:var(--accent)}.mcard.done{border-color:var(--good);background:var(--good-bg)}@media (max-width:560px){.memory{grid-template-columns:repeat(3,1fr)}.mcard{font-size:15px}}.timeline{background:var(--surface-2);border-radius:12px;gap:8px;margin:10px 0;padding:12px;display:grid}.tl-end{color:var(--muted);text-transform:uppercase;font-size:12px;font-weight:700}.tl-item{text-align:left;border:2px solid var(--accent);background:var(--surface);border-radius:10px;padding:10px 12px;font-size:16px}.tl-item.right{border-color:var(--good);background:var(--good-bg)}.tl-item.wrong{border-color:var(--bad);background:var(--bad-bg)}.tl-n{background:var(--accent);color:#fff;border-radius:50%;place-items:center;width:22px;height:22px;margin-right:6px;font-size:12px;display:inline-grid}.tl-slot{border:2px dashed var(--border);color:var(--muted);border-radius:10px;padding:10px 12px}.pool,.built{flex-wrap:wrap;gap:8px;margin:10px 0;display:flex}.built{border:2px dashed var(--accent);border-radius:12px;align-items:center;min-height:54px;padding:10px}.chipbtn{border:2px solid var(--border);background:var(--surface);font:600 17px var(--mono);border-radius:10px;padding:8px 14px}.chipbtn:hover:not(:disabled){border-color:var(--accent)}.chipbtn.on{background:var(--accent);color:#fff;border-color:#0000}.qmark{font:700 22px var(--mono);color:var(--muted)}.game-cards{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;display:grid}.game-card{background:var(--surface-2);border:2px solid #0000;border-radius:14px;gap:4px;padding:14px;text-decoration:none;display:grid}.game-card:hover{border-color:var(--accent);transform:translateY(-1px)}.game-card .g-icon{font-size:28px}.game-card .g-skill{text-transform:uppercase;letter-spacing:.05em;color:var(--accent);font-size:11px;font-weight:800}.tl-item:disabled,.chipbtn:disabled{opacity:1;color:var(--text);cursor:default}.chipbtn.on:disabled{color:#fff}.journey{overflow:hidden}.seg{border:1px solid var(--border);border-radius:10px;display:inline-flex;overflow:hidden}.seg button{background:var(--surface);border:0;padding:6px 14px;font-size:14px;font-weight:600}.seg button.on{background:var(--accent);color:#fff}.legend{color:var(--muted);flex-wrap:wrap;gap:14px;margin:10px 0 4px;display:flex}.legend .dot{vertical-align:-1px;border:2px solid var(--border);background:var(--surface);border-radius:50%;width:12px;height:12px;margin-right:4px;display:inline-block}.legend .dot.done{background:var(--good);border-color:var(--good)}.legend .dot.current{background:var(--surface);border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 30%, transparent)}.legend .dot.available{border-color:var(--accent)}.legend .dot.locked{opacity:.5}.map{margin:8px -8px 0;position:relative}.trail{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.trail-todo{fill:none;stroke:var(--border);stroke-width:4px;stroke-dasharray:2 10;stroke-linecap:round}.trail-done{fill:none;stroke:var(--accent);stroke-width:6px;stroke-linecap:round}.region{background:color-mix(in srgb, var(--accent) var(--tint), var(--surface));border:1px solid var(--border);z-index:1;border-radius:16px;height:126px;padding:12px 14px;position:absolute;left:8px;right:8px}.region.locked{filter:grayscale(.7);opacity:.75}.region-head{align-items:center;gap:8px;font-size:17px;display:flex}.region-ach{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.ach-chip{background:var(--surface);border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:2px 8px;font-size:12px}.ach-chip.on{color:var(--text);border-color:var(--ok);background:var(--ok-bg);font-weight:600}.stop{z-index:2;position:absolute;transform:translate(-50%,-50%)}.node{background:conic-gradient(var(--accent) var(--p), var(--surface-2) 0);width:64px;height:64px;box-shadow:var(--shadow);border:0;border-radius:50%;padding:5px;transition:transform .15s;position:relative}.node:hover,.node:focus-visible{transform:scale(1.08)}.node:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.node-icon{background:var(--surface);border-radius:50%;place-items:center;width:100%;height:100%;font-size:24px;display:grid}.node.done{background:var(--good)}.node.done .node-icon{background:var(--good);color:#fff;font-size:26px;font-weight:800}.node.current{background:conic-gradient(var(--accent) var(--p), color-mix(in srgb, var(--accent) 25%, var(--surface)) 0);animation:2s ease-in-out infinite glow}.node.locked{filter:grayscale();opacity:.55}.node.k-gate{width:80px;height:80px}.node.k-gate .node-icon{font-size:32px}.node.k-shop{background:var(--ok)}@keyframes glow{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 45%, transparent)}50%{box-shadow:0 0 0 12px #0000}}.node-label{background:color-mix(in srgb, var(--bg) 85%, transparent);border-radius:8px;width:max-content;max-width:170px;padding:2px 6px;font-size:13px;line-height:1.25;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.label-right .node-label{left:calc(100% + 10px)}.label-left .node-label{text-align:right;right:calc(100% + 10px)}.here{white-space:nowrap;background:var(--accent);color:#fff;border-radius:999px;padding:4px 10px;font-size:13px;font-weight:700;animation:1.6s ease-in-out infinite bob;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.here span{font-size:16px}.here:after{content:"";border:6px solid #0000;border-top-color:var(--accent);position:absolute;top:100%;left:50%;transform:translate(-50%)}@keyframes bob{0%,to{transform:translate(-50%)}50%{transform:translate(-50%,-5px)}}@media (prefers-reduced-motion:reduce){.node.current,.here{animation:none}}.sheet{z-index:60;background:var(--surface);border:2px solid var(--accent);max-width:520px;box-shadow:var(--shadow);border-radius:16px;margin:0 auto;padding:16px;animation:.25s ease-out pop;position:fixed;bottom:16px;left:16px;right:16px}.sheet-head{align-items:center;gap:12px;display:flex}.sheet-head .link{margin-left:auto;font-size:18px;text-decoration:none}.sheet-icon{font-size:30px}.journey-list .locked{opacity:.6}.link-row{text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:0;display:flex}.journey-stats .stats{margin-bottom:12px}@media (max-width:560px){.node-label{max-width:120px;font-size:12px}.node{width:54px;height:54px}.node.k-gate{width:66px;height:66px}}.journey-actions{align-items:center;gap:12px;display:inline-flex}.region-head{text-align:left;cursor:pointer;background:0 0;border:0;flex-wrap:wrap;align-items:center;gap:8px;width:100%;padding:0;font-size:17px;display:flex}.region-head .fold{color:var(--accent);margin-left:auto;font-size:13px;font-weight:700}.region-sum{align-items:center;gap:6px;display:inline-flex}.mini-bar{background:var(--surface);border:1px solid var(--border);border-radius:99px;width:70px;height:6px;display:inline-block;overflow:hidden}.mini-bar i{background:var(--good);height:100%;display:block}.journey-list details{margin:8px 0}.journey-list summary{cursor:pointer;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 0;display:flex}.region{overflow:hidden}@media (max-width:560px){.region .tagline,.region .ach-t{display:none}.region-head{row-gap:4px;font-size:15px}.journey .legend{gap:8px;font-size:12px}}.land-A1{--l-sky:#dff3fb;--l-ground:#cfeaf5;--l-far:#8fd0ea;--l-mid:#4fa9d4;--l-near:#2a6f9b;--l-accent:#f6b93b}.land-A2{--l-sky:#eaf7e1;--l-ground:#d8efc6;--l-far:#a8d98a;--l-mid:#74bd57;--l-near:#3f8a3a;--l-accent:#f5c242}.land-B1{--l-sky:#e4f1ea;--l-ground:#d2e6da;--l-far:#8cbfa2;--l-mid:#4f9271;--l-near:#2b5e46;--l-accent:#f0c36a}.land-B2{--l-sky:#e7ecf6;--l-ground:#dbe1ee;--l-far:#a3b1cc;--l-mid:#74839f;--l-near:#48546b;--l-accent:#fff}.land-C1{--l-sky:#ece7f7;--l-ground:#e1daf2;--l-far:#b9acd9;--l-mid:#8b7bbd;--l-near:#574a85;--l-accent:#ffd36b}.land-C2{--l-sky:#ede9fb;--l-ground:#e6e0fa;--l-far:#a99ae0;--l-mid:#d8d0f5;--l-near:#f4f1ff;--l-accent:#f2b705}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .land-A1{--l-sky:#0f2733;--l-ground:#0c2230;--l-far:#1b4c66;--l-mid:#1f6b8f;--l-near:#2a8cbf;--l-accent:#f6b93b}:root:not([data-theme=light]) .land-A2{--l-sky:#142619;--l-ground:#112216;--l-far:#234d2a;--l-mid:#2f6e34;--l-near:#3f8a3a;--l-accent:#f5c242}:root:not([data-theme=light]) .land-B1{--l-sky:#10221a;--l-ground:#0d1d16;--l-far:#1d4434;--l-mid:#27604a;--l-near:#3a8565;--l-accent:#f0c36a}:root:not([data-theme=light]) .land-B2{--l-sky:#151b29;--l-ground:#121826;--l-far:#2b3550;--l-mid:#3d4a6b;--l-near:#5a6a8f;--l-accent:#e8eefc}:root:not([data-theme=light]) .land-C1{--l-sky:#1a1530;--l-ground:#17122b;--l-far:#2f2756;--l-mid:#463b7c;--l-near:#5f52a3;--l-accent:#ffd36b}:root:not([data-theme=light]) .land-C2{--l-sky:#1b1636;--l-ground:#181331;--l-far:#3a3170;--l-mid:#4b4290;--l-near:#6a62b3;--l-accent:#f2b705}}.land{z-index:0;background:linear-gradient(180deg, var(--l-sky) 0%, color-mix(in srgb, var(--l-ground) 70%, var(--surface)) 100%);border-radius:18px;position:absolute;left:0;right:0;overflow:hidden}.land+.land{border-top-left-radius:0;border-top-right-radius:0}.trail{z-index:1}.decor{opacity:.55;-webkit-user-select:none;user-select:none;font-size:26px;animation:5s ease-in-out infinite drift;position:absolute}@keyframes drift{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@media (prefers-reduced-motion:reduce){.decor{animation:none}}.region{background:var(--l-sky);border-color:color-mix(in srgb, var(--l-mid) 40%, var(--border))}.region .live-scene{width:62%;height:100%;position:absolute;bottom:0;right:0}.live-scene .scene{width:100%;height:100%;position:absolute;inset:0}.region:before{content:"";pointer-events:none;background:linear-gradient(90deg, var(--l-sky) 0%, var(--l-sky) 38%, transparent 70%);z-index:1;position:absolute;inset:0}.region>:not(.live-scene){z-index:2;pointer-events:none;position:relative}.region .region-head,.region .ach-chip{pointer-events:auto}.region .live-scene{z-index:1}.region .region-head{width:auto;max-width:100%}.region-head .fold{background:color-mix(in srgb, var(--surface) 85%, transparent);border-radius:999px;padding:2px 8px}.region .ach-chip,.node-label{background:color-mix(in srgb, var(--surface) 88%, transparent)}@media (max-width:560px){.region .live-scene{width:75%}.decor{font-size:20px}}.live-scene .hot{cursor:pointer;outline:none}.live-scene .hot:focus-visible{filter:drop-shadow(0 0 3px var(--accent))}.live-scene g,.live-scene path,.live-scene circle,.live-scene rect{transform-box:fill-box}.scene-bubble{z-index:5;background:var(--surface);border:2px solid var(--accent);width:max-content;max-width:220px;box-shadow:var(--shadow);text-align:center;pointer-events:none;border-radius:12px;gap:2px;padding:8px 12px;font-size:13px;animation:.25s ease-out pop;display:grid;position:absolute;transform:translate(-50%,calc(-100% - 8px))}.scene-bubble span{color:var(--muted)}.scene-bubble:after{content:"";border:7px solid #0000;border-top-color:var(--accent);position:absolute;top:100%;left:50%;transform:translate(-50%)}.live-scene .bob{transform-origin:bottom;animation:3s ease-in-out infinite bob-ship}@keyframes bob-ship{0%,to{transform:rotate(-1.5deg)translateY(0)}50%{transform:rotate(1.5deg)translateY(1.5px)}}.live-scene .ship.sail{animation:3.4s ease-in-out sail}@keyframes sail{0%{transform:translate(0)}45%{transform:translate(-60px)}to{transform:translate(0)}}.live-scene .smoke{fill:#d8dde6;opacity:0;animation:2.4s ease-out infinite smoke}@keyframes smoke{0%{opacity:.85;transform:translate(0)scale(.6)}to{opacity:0;transform:translate(-14px,-26px)scale(2.4)}}.live-scene .smoke-burst .smoke{animation-duration:1.1s}.live-scene .waves{animation:7s linear infinite waves}.live-scene .waves.slow{animation-duration:11s}@keyframes waves{0%{transform:translate(0)}to{transform:translate(-100px)}}.live-scene .gulls{animation:14s linear infinite gulls}@keyframes gulls{0%{transform:translate(60px)}50%{transform:translate(-120px,-6px)}to{transform:translate(-300px)}}.live-scene .beam{transform-origin:100%;animation:4s ease-in-out infinite beam}@keyframes beam{0%,to{opacity:.15;transform:rotate(-14deg)}50%{opacity:.45;transform:rotate(14deg)}}.live-scene .beam.flash{opacity:.9;animation:1s ease-out flash}@keyframes flash{0%{opacity:.95;transform:scaleX(1.4)}to{opacity:.2;transform:scaleX(1)}}.live-scene .blades{transform-origin:50%;animation:6s linear infinite spin}.live-scene .blades.fast{animation-duration:.5s;animation-iteration-count:8}.live-scene .clouds{animation:22s linear infinite alternate clouds}@keyframes clouds{0%{transform:translate(-20px)}to{transform:translate(30px)}}.live-scene .sun{transform-origin:50%;animation:4s ease-in-out infinite pulse-sun}@keyframes pulse-sun{50%{transform:scale(1.08)}}.live-scene .tail{transform-origin:top;animation:1.6s ease-in-out infinite tail}@keyframes tail{50%{transform:rotate(25deg)}}.live-scene .cow.jump{animation:.7s ease-out 2 jump}@keyframes jump{50%{transform:translateY(-6px)}}.live-scene .firefly{animation:2.6s ease-in-out infinite firefly}.live-scene .firefly.bright{animation-duration:.5s}@keyframes firefly{0%,to{opacity:.1;transform:translate(0)}50%{opacity:1;filter:drop-shadow(0 0 3px #fff59d);transform:translate(4px,-5px)}}.live-scene .eyes{transform-origin:50%;animation:4.5s infinite blink}@keyframes blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}.live-scene .owl.turn{transform-origin:50%;animation:1.2s ease-in-out owl-turn}@keyframes owl-turn{30%{transform:rotate(-25deg)}70%{transform:rotate(25deg)}}.live-scene .leaf{animation:6s linear infinite leaf}@keyframes leaf{0%{opacity:0;transform:translate(0)rotate(0)}10%{opacity:1}to{opacity:0;transform:translate(-30px,110px)rotate(320deg)}}.live-scene .snow circle{animation:4s linear infinite snow}@keyframes snow{0%{transform:translate(0)}to{transform:translate(-12px,140px)}}.live-scene .eagle{animation:9s ease-in-out infinite eagle}@keyframes eagle{0%,to{transform:translate(0)}25%{transform:translate(-40px,8px)}50%{transform:translate(-80px,-4px)}75%{transform:translate(-30px,10px)}}.live-scene .eagle.dive{animation:1.4s ease-in-out dive}@keyframes dive{50%{transform:translate(-30px,40px)rotate(-15deg)}}.live-scene .cablecar{animation:8s ease-in-out infinite alternate cable}.live-scene .cablecar.fast{animation-duration:1.2s;animation-iteration-count:2}@keyframes cable{0%{transform:translate(0)}to{transform:translate(60px,-12px)}}.live-scene .win{animation:6s step-end infinite win}@keyframes win{0%{opacity:.95}40%{opacity:.2}70%{opacity:.9}}.live-scene .taxi{animation:9s linear infinite taxi}.live-scene .taxi.fast{animation-duration:2s;animation-iteration-count:1}@keyframes taxi{0%{transform:translate(-40px)}to{transform:translate(260px)}}.live-scene .plane{animation:16s linear infinite plane}.live-scene .plane.fast{animation-duration:3s;animation-iteration-count:1}@keyframes plane{0%{transform:translate(100px)}to{transform:translate(-200px)}}.live-scene .blink-light{animation:1s step-end infinite blink-light}@keyframes blink-light{50%{opacity:0}}.live-scene .twinkle{transform-origin:50%;animation:2.2s ease-in-out infinite twinkle}@keyframes twinkle{50%{opacity:.4;transform:scale(.4)}}.live-scene .shooting{opacity:0;animation:6s ease-in infinite shoot}.live-scene .shooting.now{animation:1.2s ease-in shoot}@keyframes shoot{0%,80%{opacity:0;transform:translate(0)}85%{opacity:1}to{opacity:0;transform:translate(-60px,24px)}}.live-scene .flag{transform-origin:0;animation:1.4s ease-in-out infinite flag}.live-scene .flag.cheer{animation-duration:.25s;animation-iteration-count:8}@keyframes flag{50%{transform:skewY(8deg)scaleX(.92)}}.confetti-layer{pointer-events:none;z-index:4;position:absolute;inset:0;overflow:hidden}.confetti-layer i{border-radius:2px;width:7px;height:11px;animation:1.8s ease-in forwards confetti;position:absolute;top:-10px}@keyframes confetti{to{opacity:0;transform:translateY(420px)rotate(540deg)}}@media (prefers-reduced-motion:reduce){.live-scene *,.confetti-layer i{animation:none!important}.live-scene .smoke,.live-scene .shooting{display:none}}.arrival{z-index:80;background:#0000008c;place-items:center;padding:16px;animation:.3s ease-out pop;display:grid;position:fixed;inset:0}.arrival-card{background:var(--l-sky);width:min(640px,100%);box-shadow:var(--shadow);border-radius:22px;position:relative;overflow:hidden}.arrival-card .live-scene{height:220px;position:relative}.arrival-text{z-index:2;text-align:center;background:var(--surface);padding:16px 22px 22px;position:relative}.arrival-text h2{margin:8px 0 4px;font-size:26px}.arrival-phrase{font-size:17px}body.themed{background:radial-gradient(1200px 380px at 70% -80px, color-mix(in srgb, var(--l-far) 55%, transparent), transparent 70%), linear-gradient(180deg, color-mix(in srgb, var(--l-sky) 85%, var(--bg)) 0px, var(--bg) 520px) no-repeat, var(--bg)}body.themed .header .logo b{color:color-mix(in srgb, var(--l-near) 55%, var(--accent))}.region-banner{border-radius:var(--radius);background:var(--l-sky);border:1px solid color-mix(in srgb, var(--l-mid) 40%, var(--border));height:112px;box-shadow:var(--shadow);margin-bottom:16px;position:relative;overflow:hidden}.region-banner .live-scene{width:70%;height:100%;position:absolute;bottom:0;right:0}.region-banner:before{content:"";z-index:1;pointer-events:none;background:linear-gradient(90deg, var(--l-sky) 0%, var(--l-sky) 32%, transparent 62%);position:absolute;inset:0}.rb-text{z-index:2;pointer-events:none;gap:2px;max-width:46%;padding:14px 18px;display:grid;position:relative}.rb-text b{font-size:18px}.rb-text a{pointer-events:auto;color:var(--accent);font-weight:700}@media (max-width:560px){.rb-tag{display:none}.rb-text{max-width:60%}.region-banner .live-scene{width:80%}}.live-scene .waves,.live-scene .clouds,.live-scene .snow,.live-scene .gulls,.live-scene .leaf{pointer-events:none}.rb-tag{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.region-banner{height:auto;min-height:128px}.rb-text{gap:3px;padding:16px 20px 20px}.rb-text a{margin-top:6px}.essay{font:17px/1.6 var(--font-inter), sans-serif;min-height:260px}.wc.short,.wc.long{color:var(--ok)}.wc.ok{color:var(--good)}.essay-view{white-space:pre-wrap;font-size:16px;line-height:1.8}.corrected-ref{white-space:pre-wrap;background:var(--good-bg);border-radius:10px;padding:10px 12px;font-size:15px}.err-mark{background:var(--bad-bg);color:var(--bad);border-bottom:2px solid var(--bad);cursor:help;border-radius:3px;padding:0 2px}.err-mark sup{margin-left:1px;font-size:10px}.criteria{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:14px 0;display:grid}.persona{font-size:64px}.goals{background:var(--surface-2);border-radius:12px;gap:4px;margin-bottom:12px;padding:10px 12px;display:grid}.goal{font-size:14px}.goal.done{color:var(--good);font-weight:600}.goal.pop{animation:.4s ease-out pop}.messages{gap:10px;max-height:55vh;padding:4px;display:grid;overflow-y:auto}.msg{align-items:flex-end;gap:8px;display:flex}.msg.me{flex-direction:column;align-items:flex-end}.msg .who{font-size:28px}.msg .bubble{border-radius:16px;max-width:78%;padding:10px 14px;font-size:16px;line-height:1.45;position:relative}.msg.ai .bubble{background:var(--surface-2);border-bottom-left-radius:4px;padding-right:36px}.msg.ai .bubble .speak{position:absolute;top:6px;right:6px}.msg.me .bubble{background:var(--accent);color:#fff;border-bottom-right-radius:4px}.correction{background:var(--ok-bg);border:1px solid var(--ok);border-radius:12px;gap:3px;max-width:78%;padding:8px 12px;font-size:14px;display:grid}.typing{color:var(--muted);font-style:italic}.dots{gap:3px;margin-left:6px;display:inline-flex}.dots i{background:var(--muted);border-radius:50%;width:5px;height:5px;animation:1s infinite dot}.dots i:nth-child(2){animation-delay:.15s}.dots i:nth-child(3){animation-delay:.3s}@keyframes dot{50%{opacity:.4;transform:translateY(-4px)}}.composer{align-items:center;gap:8px;margin-top:12px;display:flex}.composer .gap-input{margin:0}.hints{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.hints .chipbtn{font-size:14px;font-family:var(--font-inter), sans-serif}.nav-menu,.nav{position:relative}.nav-menu.wide{position:static}.nav-menu.wide>.nav-pop{left:auto;right:0}.nav-menu summary{cursor:pointer;color:var(--muted);border-radius:10px;padding:6px 10px;font-size:14px;font-weight:600;list-style:none}.nav-menu summary::-webkit-details-marker{display:none}.nav-menu.on summary,.nav-menu[open] summary,.nav-menu summary:hover{background:var(--surface);color:var(--text)}.nav-pop{z-index:70;background:var(--surface);border:1px solid var(--border);width:max-content;max-width:calc(100vw - 32px);box-shadow:var(--shadow);border-radius:12px;grid-template-columns:repeat(4,minmax(170px,1fr));gap:4px 12px;padding:10px;display:grid;position:absolute;top:calc(100% + 6px);left:0}.nav-group{align-content:start;gap:2px;display:grid}.nav-group-title{border-bottom:2px solid var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent);color:var(--accent);text-transform:uppercase;letter-spacing:.06em;cursor:default;-webkit-user-select:none;user-select:none;border-radius:8px 8px 0 0;margin-bottom:4px;padding:6px 10px;font-size:12px;font-weight:800}.nav-pop a{white-space:nowrap;border-radius:8px;padding:8px 10px}.nav-pop.simple{grid-template-columns:1fr;width:max-content;min-width:190px}.nav-pop.simple.cols-2{grid-template-columns:repeat(2,minmax(170px,1fr))}.nav-menu:last-of-type>.nav-pop.simple{left:auto;right:0}@media (max-width:900px){.nav-pop:not(.simple){grid-template-columns:repeat(2,minmax(170px,1fr))}}@media (max-width:560px){.nav-pop{grid-template-columns:1fr;gap:8px;width:auto;max-width:none;max-height:75vh;position:fixed;top:auto;left:16px;right:16px;overflow-y:auto}.nav-group{grid-template-columns:1fr 1fr}.nav-group-title{grid-column:1/-1}.nav-pop a{white-space:normal;padding:7px 8px;font-size:13px}.nav-pop.simple{width:auto}.nav-pop.simple.cols-2{grid-template-columns:1fr}.nav-menu:last-of-type>.nav-pop.simple,.nav-menu.wide>.nav-pop{left:16px;right:16px}}.sentence-box .fix{font-family:var(--font-inter), sans-serif;font-size:16px;line-height:1.7}.err-list{gap:10px;margin:4px 0;padding:0;list-style:none;display:grid}.err-list li{background:var(--surface-2);border-radius:10px;grid-template-columns:26px 1fr;gap:10px;padding:10px 12px;display:grid}.err-n{background:var(--bad);color:#fff;border-radius:50%;place-items:center;width:24px;height:24px;font-size:13px;font-weight:700;display:grid}.fix-inline{font-family:var(--mono);margin:4px 0}.welcome{border:2px solid color-mix(in srgb, var(--accent) 35%, var(--border))}.welcome-head{align-items:center;gap:14px;display:flex}.welcome-head h2{margin:0 0 4px;font-size:22px}.welcome-avatar{font-size:44px;line-height:1}.streak-note{border-radius:10px;margin:12px 0 0;padding:8px 12px;font-size:14px;font-weight:600}.streak-note.warn{background:var(--ok-bg);color:var(--ok)}.streak-note.good{background:var(--good-bg);color:var(--good)}.streak-note.info{background:var(--surface-2);color:var(--text)}.next-step{color:#fff;background:linear-gradient(135deg, var(--accent), var(--accent-2));box-shadow:var(--shadow);border-radius:16px;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;margin-top:14px;padding:16px 18px;text-decoration:none;transition:transform .12s;display:grid}.next-step:hover{transform:translateY(-2px)}.ns-icon{font-size:34px}.ns-text{gap:2px;display:grid}.ns-text b{font-size:18px}.ns-text .small{opacity:.9}.ns-label{text-transform:uppercase;letter-spacing:.05em;opacity:.85;font-size:12px;font-weight:700}.ns-go{white-space:nowrap;background:#ffffff2e;border-radius:12px;padding:8px 14px;font-weight:800}.ns-go kbd{color:#fff;background:#ffffff40}.alt-steps{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.alt-step{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:6px 12px;font-size:14px;font-weight:600;text-decoration:none}.alt-step:hover{border-color:var(--accent)}.quote{margin:14px 0 0;font-size:14px}@media (max-width:560px){.next-step{grid-template-columns:auto 1fr}.ns-go{text-align:center;grid-column:1/-1}.ns-go kbd{display:none}}.arcade-hero{background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 14%, var(--surface)), var(--surface))}.arcade-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-bottom:16px;display:grid}.arcade-card{color:inherit;background:linear-gradient(180deg, var(--l-sky,var(--surface)) 0%, var(--surface) 55%);flex-direction:column;align-items:flex-start;gap:6px;text-decoration:none;transition:transform .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden}.arcade-card h3{margin:4px 0 0}.arcade-card p{margin:0}a.arcade-card:hover{transform:translateY(-3px);box-shadow:0 10px 30px #14182824}.arcade-card.locked{background:var(--surface-2);filter:grayscale(.9);opacity:.75;cursor:not-allowed}.arcade-icon{font-size:54px;line-height:1;animation:3s ease-in-out infinite drift}.locked-note{color:var(--muted)}.stage-path{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px;margin:16px 0;display:grid}.stage-node{border-radius:var(--radius);background:var(--surface);border:2px solid var(--border);color:inherit;box-shadow:var(--shadow);flex-direction:column;align-items:center;gap:4px;padding:14px 8px;text-decoration:none;transition:transform .15s;display:flex}a.stage-node:hover{border-color:var(--accent);transform:translateY(-2px)}.stage-node.done{border-color:color-mix(in srgb, var(--good) 60%, var(--border))}.stage-node.current{border-color:var(--accent);animation:2s infinite glow}.stage-node.locked{opacity:.55;background:var(--surface-2);box-shadow:none}.stage-num{font-size:28px;font-weight:800}.stage-stars span,.big-stars span{color:var(--border)}.stage-stars span.on{color:#f6b93b}.arcade-play{position:relative;overflow:hidden}.arcade-hud{flex-wrap:wrap;align-items:center;gap:16px;margin:8px 0;font-size:18px;display:flex}.arcade-hud .combo{color:var(--bad);font-weight:800;animation:.25s pop}.arcade-intro{padding:24px 0}.arcade-count{text-align:center;color:var(--accent);padding:60px 0;font-size:120px;font-weight:900;animation:.4s pop}.game-stage{flex-direction:column;align-items:stretch;gap:10px;display:flex}.game-canvas{touch-action:none;background:var(--surface-2);border-radius:12px;width:100%;display:block}.game-input{text-align:center;font-size:20px}.shake-x{animation:.12s 2 shake;border-color:var(--bad)!important}.game-prompt{text-align:center;margin:0;font-size:19px;font-weight:600}.dpad{flex-direction:column;align-items:center;gap:6px;display:none}.dpad div{gap:56px;display:flex}.dpad button{border:1px solid var(--border);background:var(--surface);width:56px;height:48px;color:var(--text);border-radius:12px;font-size:20px}@media (hover:none),(max-width:700px){.dpad{display:flex}}.arcade-end{padding:16px 0;position:relative}.big-stars{letter-spacing:8px;font-size:64px}.big-stars span.on{color:#f6b93b;text-shadow:0 0 18px #f6b93b99;animation:.5s both pop;display:inline-block}.unlock{color:var(--good);font-size:20px;font-weight:800;animation:.5s .8s both pop}.voice-call,.voice-report{gap:10px;display:grid}.voice-status{background:var(--surface-2);border-radius:12px;padding:10px 14px;font-weight:600}.voice-status .you{color:var(--good)}.voice-transcript{gap:6px;max-height:320px;padding:4px;display:grid;overflow-y:auto}.voice-bubble{border-radius:14px;max-width:85%;margin:0;padding:8px 12px;line-height:1.45}.voice-bubble.ai{background:var(--surface-2);border-bottom-left-radius:4px;justify-self:start}.voice-bubble.you{background:color-mix(in srgb, var(--accent) 14%, var(--surface));border-bottom-right-radius:4px;justify-self:end}.voice-transcript-full .voice-bubble{margin:6px 0}.voice-call .btn.on{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, var(--surface))}.voice-help{border:2px dashed var(--accent);border-radius:12px;padding:12px 14px}.voice-help p,.voice-help ul{margin:4px 0 0}.voice-line{font-size:18px}.voice-step{white-space:nowrap;color:var(--muted)}.voice-step .link:disabled{opacity:.3}.voice-check{margin:0}.voice-missed{border-color:var(--bad);color:var(--bad);cursor:pointer;margin:0 4px}.voice-goals,.voice-pron,.voice-goal-list{margin:4px 0 0;padding-left:20px}.voice-goals{padding-left:0;list-style:none}.voice-goals li.done{color:var(--good);font-weight:600}.voice-pron li{margin:6px 0}.ipa{color:var(--muted);font-size:14px}.ra{gap:10px;display:grid}.ra-dots{flex-wrap:wrap;gap:6px;display:flex}.ra-dot{border:2px solid var(--border);background:var(--surface);cursor:pointer;border-radius:50%;width:30px;height:30px;font-size:12px;font-weight:700}.ra-dot.on{border-color:var(--accent)}.ra-dot.good{background:color-mix(in srgb, var(--good) 25%, var(--surface))}.ra-dot.mid{background:color-mix(in srgb, #f6b93b 30%, var(--surface))}.ra-dot.bad{background:color-mix(in srgb, var(--bad) 22%, var(--surface))}.ra-sentence{margin:6px 0;font-size:24px;line-height:1.5}.ra-bad{font:inherit;background:color-mix(in srgb, var(--bad) 15%, transparent);color:var(--bad);cursor:pointer;border:0;border-radius:4px;padding:0 2px;-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.ra-rec{animation:1.2s ease-out infinite ra-pulse}@keyframes ra-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--bad) 55%, transparent)}to{box-shadow:0 0 0 12px #0000}}.ra-live{color:var(--bad);margin:0}.ra-result{background:var(--surface-2);border-radius:12px;padding:12px 14px}.ra-result p{margin:0 0 6px}.ra-words{gap:8px;margin:0;padding:0;list-style:none;display:grid}.mistake-actions{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;display:grid}.mistake-action{background:var(--surface-2);color:inherit;border:2px solid #0000;border-radius:14px;gap:4px;padding:14px;text-decoration:none;display:grid}.mistake-action:hover{border-color:var(--accent)}.mistake-list>summary{cursor:pointer}.mistake-list[open]>summary{margin-bottom:10px}.notes-list{gap:12px;margin-bottom:16px;display:grid}.note-card{color:inherit;gap:6px;display:grid}a.note-card:hover{border-color:var(--accent)}.note-chips{flex-wrap:wrap;gap:6px;display:flex}.notes-priorities{margin:0 0 12px;padding-left:22px}.notes-priorities li{margin:4px 0}.note-table-wrap{border:1px solid var(--border);border-radius:10px;margin:8px 0;overflow-x:auto}.note-table{border-collapse:collapse;width:100%;min-width:520px;font-size:14px}.note-table th{text-align:left;background:var(--surface-2);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:12px}.note-table th,.note-table td{border-bottom:1px solid var(--border);vertical-align:top;padding:8px 10px}.note-table tr:last-child td{border-bottom:0}.note-table.note-examples{min-width:460px}.note-pattern{gap:10px;scroll-margin-top:80px;display:grid}.note-block p{margin:4px 0 0}.note-block.logic{border-left:4px solid var(--accent);background:color-mix(in srgb, var(--accent) 8%, var(--surface));border-radius:8px;padding:10px 12px}.note-tricks{margin:4px 0 0;padding-left:20px}.note-tricks li{margin:4px 0}@media print{.header,.topbar,.region-banner,.no-print,nextjs-portal{display:none!important}body{background:#fff}.card{box-shadow:none;break-inside:avoid}.note-table{min-width:0}}.focus-list{margin:0;padding:0;list-style:none}.focus-item{gap:8px;display:grid}.focus-item .tip,.focus-item .fix{margin:0}.focus-item.first{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), var(--shadow)}.focus-item .btn{justify-self:start}.focus-rank{background:var(--accent);color:#fff;vertical-align:2px;border-radius:50%;place-items:center;width:26px;height:26px;font-size:14px;display:inline-grid}.focus-mini{gap:8px;margin:0;padding:0;list-style:none;display:grid}.focus-mini li{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.verify-row{margin-top:8px}.verify-box{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;gap:4px;margin-top:8px;padding:10px 12px;display:grid}.verify-result p{margin:6px 0 0}.verify-warn{color:var(--bad)}a.arcade-card{display:flex}.premium-foot{justify-items:start;gap:6px;width:100%;margin-top:auto;padding-top:8px;display:grid}.premium-foot .btn{text-align:center;justify-self:stretch}.big-score{color:var(--accent);margin:4px 0 12px;font-size:56px;font-weight:900}.pg-timer{font-variant-numeric:tabular-nums;font-weight:800}.pg-timer.low{color:var(--bad);animation:.5s infinite alternate pop}.pg-canvas{object-fit:contain;width:auto;max-width:100%;height:auto;min-height:260px;max-height:calc(100dvh - 300px);margin:0 auto}.pg-2048-wrap{gap:8px;display:grid}.pg-2048{background:var(--surface-2);touch-action:none;-webkit-user-select:none;user-select:none;border-radius:14px;grid-template-columns:repeat(4,1fr);gap:8px;width:min(100%,400px);margin:0 auto;padding:8px;display:grid}.pg-cell{aspect-ratio:1;background:color-mix(in srgb, var(--text) 7%, transparent);border-radius:10px;place-items:center;font-weight:800;transition:background .12s;display:grid}.pg-blocks{gap:10px;display:grid}.pg-pad{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.pg-pad .btn{touch-action:manipulation;min-width:56px;font-size:20px}.es-tip{cursor:help;vertical-align:baseline;outline:none;font-size:.85em;font-style:normal;font-weight:400;display:inline-block;position:relative}.es-tip:after{content:attr(data-tip);z-index:60;background:var(--text);width:max-content;max-width:min(300px,80vw);color:var(--surface);text-align:left;white-space:normal;letter-spacing:0;text-transform:none;opacity:0;pointer-events:none;border-radius:10px;padding:8px 10px;font-size:13px;line-height:1.4;transition:opacity .15s,transform .15s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)scale(.96);box-shadow:0 6px 20px #0003}.es-tip:hover:after,.es-tip:focus:after{opacity:1;transform:translate(-50%)scale(1)}.learned{text-align:left;background:var(--surface-2);border-radius:12px;max-width:560px;margin:8px auto;padding:4px 14px}.learned p{margin:8px 0}.es-tip-btn{cursor:pointer;opacity:.75;vertical-align:baseline;background:0 0;border:0;padding:0 2px;font-size:.9em;line-height:1}.es-tip-btn:hover,.es-tip-btn.on{opacity:1;transform:scale(1.15)}.es-trans{border-left:3px solid var(--ok);background:var(--ok-bg);color:var(--text);border-radius:8px;margin:6px 0 2px;padding:6px 10px;font-size:.92em;font-style:italic;animation:.2s pop;display:block}.inline-gap{max-width:100%;font:inherit;font-family:var(--mono);color:var(--accent);text-align:center;vertical-align:baseline;background:color-mix(in srgb, var(--accent) 9%, transparent);border:0;border-bottom:3px solid var(--accent);border-radius:8px 8px 0 0;outline:none;margin:0 .15em;padding:0 .3em;font-size:.9em;transition:background .15s;display:inline-block}.inline-gap:focus{background:color-mix(in srgb, var(--accent) 16%, transparent)}.inline-gap::placeholder{color:color-mix(in srgb, var(--accent) 45%, transparent)}.inline-gap.good{color:var(--good);border-color:var(--good);background:var(--good-bg)}.inline-gap.ok{color:var(--ok);border-color:var(--ok);background:var(--ok-bg)}.inline-gap.bad{color:var(--bad);border-color:var(--bad);background:var(--bad-bg)}.report-link{color:var(--muted);margin-top:12px;display:inline-block}.report-link:hover{color:var(--bad)}.report-box{border:1px dashed var(--bad);background:var(--bad-bg);border-radius:12px;gap:10px;margin-top:14px;padding:12px 14px;display:grid}.report-box textarea{min-height:0;font-size:15px}.report-box .row{justify-content:flex-end;gap:8px;margin:0}.report-reasons{flex-wrap:wrap;gap:6px;display:flex}.report-reasons .chip{cursor:pointer}.report-reasons .chip.on{border-color:var(--bad);color:var(--bad);font-weight:600}.report-reasons input{display:none}.report-done{color:var(--muted);margin-top:12px}.report-list{gap:12px;display:grid}.report-item{border:1px solid var(--border);background:var(--surface);border-radius:12px;padding:12px 14px}.report-item.new{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 15%, transparent)}.report-item p{margin:6px 0}.report-prompt{font-size:17px}.review-note{background:var(--good-bg);color:var(--text);border-left:3px solid var(--good);border-radius:10px;margin:16px 0 0;padding:8px 12px;font-size:14px}.review-note.pending{background:var(--ok-bg);border-left-color:var(--ok)}.level-reqs .req{margin-top:12px}.exam-cta{background:var(--surface-2);border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:16px;padding:12px 14px;display:flex}.exam-cta.ready{background:color-mix(in srgb, var(--accent) 10%, var(--surface));border:2px solid var(--accent);animation:2s infinite glow}.exam-cta.ready .btn{margin-left:auto}.inbox-bar{gap:8px;padding-top:14px;padding-bottom:14px;display:grid}.inbox-filters{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.inbox-filters .chip{color:inherit;text-decoration:none}.inbox-filters .chip.on{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, var(--surface));font-weight:700}.inbox-groups{gap:12px;display:grid}details.group{padding-top:14px;padding-bottom:14px}details.group.has-new{border-color:var(--accent)}.group-head{cursor:pointer;flex-wrap:wrap;align-items:center;gap:10px;list-style:none;display:flex}.group-head::-webkit-details-marker{display:none}.group-head:before{content:"▸";color:var(--muted);transition:transform .15s}details[open]>.group-head:before{transform:rotate(90deg)}.group-chips{flex-wrap:wrap;align-items:center;gap:6px;margin-left:auto;display:flex}.inc-list{gap:6px;margin-top:10px;display:grid}.inc-row{border:1px solid var(--border);background:var(--surface);border-radius:10px}.inc-row.new{border-color:var(--accent)}.inc-row>summary{cursor:pointer;align-items:center;gap:10px;padding:8px 12px;list-style:none;display:flex}.inc-row>summary::-webkit-details-marker{display:none}.inc-row[open]>summary{border-bottom:1px dashed var(--border)}.inc-main{flex:1;min-width:0;display:grid}.inc-main b,.inc-main span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.inc-row[open] .inc-main b,.inc-row[open] .inc-main span{white-space:normal}.inc-meta{flex-shrink:0;align-items:center;gap:6px;display:flex}.inc-body{padding:10px 12px 12px}details.more>summary{cursor:pointer;color:var(--accent);padding:4px 2px}@media (max-width:600px){.inc-meta .chip{display:none}}.tiles{flex-wrap:wrap;gap:6px;margin:10px 0 4px;display:flex}.tile{font:inherit;background:var(--surface-2);border:1px solid var(--border);color:inherit;cursor:pointer;border-radius:8px;padding:4px 10px;font-size:15px}.tile:hover{border-color:var(--accent)}.key-part{background:var(--ok-bg);color:inherit;border-bottom:2px solid var(--ok);border-radius:3px;padding:0 2px}.checks{gap:4px;margin:10px 0;padding:0;font-size:15px;list-style:none;display:grid}.checks .bad s{color:var(--bad)}.pattern-box{gap:6px;display:grid}.pattern-box .formula{font-family:var(--mono);font-size:14px}.pattern-box .note{background:var(--surface-2);border-radius:8px;padding:8px 10px}.srs-line{margin:10px 0 0}.builder-row{gap:6px;display:grid}.admin-hub{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;display:grid}.admin-tile{color:inherit;text-decoration:none;transition:border-color .15s;display:block}.admin-tile:hover{border-color:var(--accent)}.admin-tile h3{margin:0 0 6px}.admin-form{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.admin-form .wide{grid-column:1/-1}.admin-form textarea{font:15px/1.5 var(--font-inter), system-ui, sans-serif;margin-top:0}.admin-form .row{margin-top:0}.admin-form .row>span{gap:8px;display:flex}.admin-text{white-space:pre-wrap;margin-top:0}.admin-clamp{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.admin-stack{white-space:pre-wrap;word-break:break-word;max-height:320px;overflow:auto}.admin-actions{margin-top:4px;margin-bottom:8px}.admin-status{font:inherit;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:6px 10px;font-size:14px}.admin-user{align-items:center;gap:10px;padding:8px 12px;display:flex}.admin-user-row{border-bottom:1px solid var(--border);padding:6px 0 10px}.admin-user-row:last-child{border-bottom:0}.admin-user-row.blocked{opacity:.6}.admin-user-row .chip,.admin-user-row .status{margin-left:6px}.admin-user-controls{flex-wrap:wrap;align-items:center;gap:8px;padding:0 12px 0 46px;display:flex}.quota-input{align-items:center;gap:4px;display:inline-flex}.quota-input input{width:84px}.admin-usage{flex-direction:column;gap:3px;min-width:120px;display:inline-flex}.admin-usage .bar{height:6px}.admin-usage .bar.over i{background:var(--bad)}.usage-table{border-collapse:collapse;width:100%;font-size:14px}.usage-table th,.usage-table td{text-align:right;border-bottom:1px solid var(--border);white-space:nowrap;padding:6px 8px}.usage-table th:first-child,.usage-table td:first-child{text-align:left}.usage-table th{color:var(--muted);font-size:12px;font-weight:600}.table-scroll{overflow-x:auto}.usage-days{align-items:flex-end;gap:3px;height:120px;padding-top:8px;display:flex}.usage-days span{background:var(--accent);border-radius:3px 3px 0 0;flex:1;min-width:4px}@media (max-width:600px){.admin-user-controls{padding-left:12px}}.danger-link{color:var(--bad)}.challenge-hero{background:linear-gradient(135deg, color-mix(in srgb, var(--bad) 10%, var(--surface)), var(--surface));border-color:color-mix(in srgb, var(--bad) 35%, var(--border));flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;display:flex}.challenge-hero>div{flex:1;min-width:220px}.challenge-bar{background:var(--bad-bg);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;display:flex}.challenge-btn{white-space:nowrap}.small-btn{border-radius:8px;min-height:0;padding:2px 8px;font-size:12px;text-decoration:none}.ask-lesson .messages{max-height:60vh;margin-bottom:12px}.ask-turn{gap:8px;display:grid}.ask-lesson .msg.ai .bubble{padding-right:14px}.ask-lesson .msg.ai .bubble .speak{position:static}.ask-answer{white-space:pre-line;margin:0 0 6px}.ask-by{margin:6px 0 0;font-size:12px}.ask-lesson .review-note{margin:0}.ask-lesson .chip{cursor:pointer}.ask-form{align-items:flex-end;gap:8px;display:flex}.ask-form textarea{flex:1;min-height:0;font-size:15px}.syllabus-list{gap:6px;margin:12px 0;padding:0;list-style:none;display:grid}.syllabus-list li{background:var(--surface-2);border-radius:8px;padding:6px 10px;font-size:15px}.syllabus-list li.done{background:var(--good-bg)}.syl-mark{margin-right:6px}.outdated-note{background:var(--ok-bg);text-align:center;border-radius:10px;margin-top:12px;padding:12px}.lesson-parts{scrollbar-width:thin;gap:6px;margin-bottom:8px;padding:2px 2px 8px;display:flex;overflow-x:auto}.part-pill{border:1px solid var(--border);background:var(--surface);color:inherit;white-space:nowrap;border-radius:999px;flex:none;align-items:center;gap:6px;padding:6px 12px;font-size:14px;text-decoration:none;display:inline-flex}.part-pill.done{background:var(--good-bg);border-color:color-mix(in srgb, var(--good) 40%, var(--border))}.part-pill.on{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 25%, transparent);font-weight:700}.part-practice{background:var(--surface-2);text-align:center;border-radius:12px;margin-top:14px;padding:12px}.part-nav{flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:18px;display:flex}.ai-picker{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.ai-picker select{font:inherit;border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:8px;max-width:220px;padding:4px 6px}.passage{font-size:18px;line-height:1.9}.passage p{border-radius:8px;margin:0 0 10px;padding:2px 8px;transition:background .3s}.passage p.hl{background:var(--ok-bg)}.passage.dialogue p{border-left:3px solid var(--border);padding-left:12px}.passage.transcript{margin-top:10px;font-size:16px;line-height:1.6}.speaker{margin-right:4px}.speaker.sp0{color:var(--accent)}.speaker.sp1{color:var(--good)}.gap-slot{flex-wrap:wrap;align-items:baseline;gap:4px;display:inline-flex}.gap-inline{font:600 16px var(--mono);border:0;border-bottom:2px solid var(--accent);background:var(--surface-2);color:var(--text);border-radius:6px 6px 0 0;max-width:100%;padding:2px 6px}.gap-inline:focus{background:var(--surface);box-shadow:0 0 0 2px var(--accent);outline:none}.gap-hint{color:var(--muted);font-size:13px}.gap-done{border-radius:6px;padding:1px 6px;font-weight:700}.gap-done.ok{background:var(--good-bg);color:var(--good)}.gap-done.bad{background:var(--bad-bg);color:var(--bad)}.gap-done.bad s{opacity:.7;font-weight:400}.seg-buttons{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.text-question{margin-bottom:18px}.prompt.small-prompt{font-size:19px}.text-question .option{font-family:inherit;font-size:16px}.audit-sections{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;margin-bottom:16px;display:grid}.audit-tile{color:inherit;gap:4px;margin:0;padding:12px 14px;text-decoration:none;display:grid}a.card.audit-tile{display:grid}.audit-tile.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.inbox-filters button.chip{cursor:pointer;font:inherit;color:inherit;font-size:13px}.override-box{border:1px dashed var(--accent);background:color-mix(in srgb, var(--accent) 6%, var(--surface));border-radius:10px;margin-top:8px;padding:10px 12px}.override-box ul{margin:6px 0;padding-left:18px}.override-box li{word-break:break-word}.override-form{background:var(--surface-2);border-radius:10px;gap:8px;margin-top:10px;padding:12px;display:grid}.override-form label{gap:4px;display:grid}.mono-area{font:12px/1.4 var(--mono)}.req-summary{background:var(--ok-bg);border:1px solid var(--ok);border-radius:10px;margin:4px 0 10px;padding:10px 12px}.req-summary.ready{background:var(--good-bg);border-color:var(--good)}.req-list{gap:8px;margin:0 0 8px;padding:0;list-style:none;display:grid}.req-list li{background:var(--surface-2);border-radius:10px;padding:8px 12px}.req-list li.todo{border-left:3px solid var(--ok)}.req-list .req-value{white-space:nowrap;font-weight:700}.req-todo{margin-top:6px}.req-actions{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.act-cols{border-bottom:1px solid var(--border);align-items:flex-end;gap:2px;height:160px;padding:8px 0 20px;display:flex;position:relative}.act-cols.hours{height:110px}.act-col{cursor:default;flex-direction:column;flex:1;justify-content:flex-end;align-items:stretch;min-width:0;height:100%;display:flex;position:relative}.act-col i{background:var(--accent);border-radius:4px 4px 0 0;min-height:0;transition:opacity .15s;display:block}.act-col:hover i{opacity:.75}.act-x{text-align:center;color:var(--muted);white-space:nowrap;font-size:10px;position:absolute;bottom:-18px;left:0;right:0;overflow:visible}.act-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;margin-bottom:16px;display:grid}.act-grid .card{margin-bottom:0}.act-bars{gap:6px;margin:0;padding:0;list-style:none;display:grid}.act-bars li{grid-template-columns:minmax(90px,34%) 1fr auto;align-items:center;gap:8px;font-size:13px;display:grid}.act-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.act-track{background:var(--surface-2);border-radius:4px;height:10px;overflow:hidden}.act-track i{background:var(--accent);border-radius:0 4px 4px 0;height:100%;display:block}.act-value{font-variant-numeric:tabular-nums;white-space:nowrap}.act-table{border-collapse:collapse;width:100%;font-size:13px}.act-table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--border);padding:6px 8px;font-weight:600}.act-table td{border-bottom:1px solid var(--border);vertical-align:top;padding:6px 8px}.act-table tr.on td{background:color-mix(in srgb, var(--accent) 6%, var(--surface))}.card:has(>.act-table){overflow-x:auto}.act-map-wrap{flex-wrap:wrap;align-items:flex-end;gap:14px;display:flex}.clickmap{aspect-ratio:2/3;border:1px solid var(--border);background:var(--surface-2);border-radius:10px;gap:2px;width:min(100%,360px);padding:4px;display:grid}.clickmap span{background:var(--surface);border-radius:3px}.act-legend{align-items:center;gap:6px;display:flex}.act-ramp{background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 15%, var(--surface)), var(--accent));border-radius:4px;width:90px;height:10px;display:inline-block}.tr-list{gap:12px;margin-bottom:16px;display:grid}.tr-head{align-items:flex-start;gap:8px;display:flex}.tr-toggle{text-align:left;min-width:0;color:inherit;font:inherit;cursor:pointer;overflow-wrap:anywhere;background:0 0;border:0;flex:1;padding:0}.tr-star{cursor:pointer;background:0 0;border:0;padding:0 2px;font-size:20px;line-height:1}.tr-translation{overflow-wrap:anywhere;margin:8px 0;font-size:17px}.tr-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tr-meta .structure{margin:0}.tr-breakdown{gap:6px;padding-left:18px;display:grid}.tr-foot{justify-content:space-between;align-items:center;gap:8px;margin-top:12px;display:flex}.fix-preview{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.fix-text{white-space:pre-wrap;overflow-wrap:anywhere}.fix-item+.fix-item{border-top:1px dashed var(--border);margin-top:6px;padding-top:4px}.exam-card{border:2px solid color-mix(in srgb, var(--accent) 45%, var(--border));background:color-mix(in srgb, var(--accent) 6%, var(--surface))}.chip.study{color:inherit;background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 22%, var(--surface)) var(--p,0%), var(--surface) var(--p,0%));text-decoration:none}.chip.study.met{background:var(--good-bg);border-color:color-mix(in srgb, var(--good) 45%, var(--border))}.goal-picker{flex-wrap:wrap;gap:6px;margin:8px 0;display:flex}.goal-picker .chipbtn{font:600 14px var(--font-inter), system-ui, sans-serif;padding:6px 12px}.study-big{margin:4px 0 8px}.study-big b{font-size:28px}.study-week{grid-template-columns:repeat(7,1fr);gap:6px;margin:14px 0 8px;display:grid}.study-day{justify-items:center;gap:4px;display:grid}.study-bar{background:var(--surface-2);border-radius:6px;align-items:flex-end;width:100%;max-width:28px;height:54px;display:flex;overflow:hidden}.study-bar span{background:color-mix(in srgb, var(--accent) 70%, transparent);border-radius:6px 6px 0 0;width:100%}.study-day.met .study-bar span{background:var(--good)}.study-goal summary{cursor:pointer;color:var(--accent);margin:4px 0}.hud a.chip{color:inherit;text-decoration:none}.hud a.chip:hover{border-color:var(--accent)}.inline-practice{border-top:2px solid color-mix(in srgb, var(--accent) 35%, var(--border));margin-top:12px;padding-top:12px}.inline-practice>.weak-head{margin-bottom:8px}.embedded-count{text-align:right;margin:0 0 6px}.dash-custom{flex-direction:column;align-items:flex-end;gap:8px;margin-bottom:8px;display:flex}.dash-custom-panel{align-self:stretch;margin-bottom:8px}.dash-toggles{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:6px;display:grid}.dash-toggle{border:1px solid var(--border);cursor:pointer;color:var(--muted);border-radius:10px;align-items:center;gap:8px;padding:8px 10px;display:flex}.dash-toggle.on{color:var(--text);border-color:color-mix(in srgb, var(--accent) 45%, var(--border));background:color-mix(in srgb, var(--accent) 6%, var(--surface))}.dash-toggle input{accent-color:var(--accent)}.dash-custom-panel h4{margin:16px 0 6px}html{scroll-padding-top:72px}.site-header{z-index:60;transition:background .2s,box-shadow .2s;position:fixed;top:0;left:0;right:0}.site-header-space{height:93px}.site-header.scrolled{background:color-mix(in srgb, var(--bg) 94%, transparent);box-shadow:0 1px 0 var(--border), 0 6px 18px #1418280f}body.themed .site-header.scrolled{background:color-mix(in srgb, var(--l-sky,var(--bg)) 70%, var(--bg))}.site-header .header>.nav{max-height:120px;transition:max-height .2s,opacity .15s,margin .2s}.site-header.nav-hidden .header>.nav{opacity:0;pointer-events:none;max-height:0;margin-top:-8px;overflow:hidden}.site-header.nav-hidden .header>.nav:focus-within{opacity:1;pointer-events:auto;max-height:120px;margin-top:0;overflow:visible}@media (prefers-reduced-motion:reduce){.site-header,.site-header .header>.nav{transition:none}}.challenge-head.done{border:2px solid color-mix(in srgb, var(--good) 45%, var(--border))}.challenge-phases{gap:12px;margin-bottom:16px;display:grid}a.card.challenge-phase{color:inherit;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;text-decoration:none;display:grid}.challenge-phase:hover{border-color:var(--accent)}.challenge-phase.passed{background:color-mix(in srgb, var(--good) 7%, var(--surface))}.challenge-icon{font-size:40px;line-height:1}.challenge-stars span{color:var(--border);font-size:18px}.challenge-stars span.on{color:#f5b301}@media (max-width:560px){a.card.challenge-phase{grid-template-columns:auto 1fr}.challenge-phase .btn{text-align:center;grid-column:1/-1}}.node.k-challenge{width:72px;height:72px}.node.k-challenge .node-icon{font-size:30px}.fix-changes{gap:4px;margin:4px 0 12px;padding-left:18px;display:grid}.nav-lock{opacity:.75;font-size:12px}.locked-feature{max-width:560px;margin-inline:auto}.access-table td:not(:first-child),.access-table th:not(:first-child){text-align:center}.access-cell{align-items:center;gap:6px;display:inline-flex}.access-cell input{width:18px;height:18px}.access-cell .link-btn{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0}.access-add{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.reset-link{width:min(100%,360px);font-size:12px}
