@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/inter-latin-wght-normal.woff2)format("woff2-variations");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;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/inter-latin-ext-wght-normal.woff2)format("woff2-variations");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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:200 900;src:url(/fonts/source-serif-4-latin-opsz-normal.woff2)format("woff2-variations");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:"Source Serif 4";font-style:italic;font-display:swap;font-weight:200 900;src:url(/fonts/source-serif-4-latin-opsz-italic.woff2)format("woff2-variations");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:"Source Serif 4";font-style:normal;font-display:swap;font-weight:200 900;src:url(/fonts/source-serif-4-latin-ext-opsz-normal.woff2)format("woff2-variations");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:"Source Serif 4";font-style:italic;font-display:swap;font-weight:200 900;src:url(/fonts/source-serif-4-latin-ext-opsz-italic.woff2)format("woff2-variations");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}:root,[data-theme=light]{--bg:#f8f8f6;--surface:#fff;--surface-2:#f1f1ee;--border:#e3e4df;--border-strong:#d0d2cc;--text:#202622;--text-muted:#5c635e;--text-faint:#8a8f8b;--accent:#285b4c;--accent-hover:#1f4a3e;--accent-soft:#e6eeea;--attention:#8a5a12;--attention-soft:#fbf3e4;--danger:#9a3b2a;--info:#2f5e8c;--accent-fill:#285b4c;--accent-fill-hover:#1f4a3e;--on-accent:#fff;--danger-soft:#f8ebe7;--info-soft:#e9eff5;--focus-ring:#285b4c;--shadow-float:0 8px 24px #1018141a;--mark-spark:#f8f8f6;--mark-dot:#86c2ac;--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=dark]{--bg:#121513;--surface:#1a1e1c;--surface-2:#222724;--border:#2c322e;--border-strong:#3b423e;--text:#e8eae7;--text-muted:#a3aaa5;--text-faint:#7d847f;--accent:#86c2ac;--accent-hover:#a2d2c0;--accent-soft:#1c2b25;--attention:#e0b36a;--attention-soft:#2b2416;--danger:#e59a88;--info:#8fb3d9;--accent-fill:#3e7d69;--accent-fill-hover:#356c5b;--on-accent:#fff;--danger-soft:#2f1f1b;--info-soft:#1b2430;--focus-ring:#86c2ac;--shadow-float:0 8px 24px #0006;--lightningcss-light: ;--lightningcss-dark:initial;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root{--font-ui:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-reading:"Source Serif 4", "Iowan Old Style", Georgia, serif;--font-features-ui:"cv11", "ss01";--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-3xl:2.25rem;--leading-xs:1.4;--leading-sm:1.45;--leading-base:1.55;--leading-lg:1.5;--leading-xl:1.35;--leading-2xl:1.25;--leading-3xl:1.15;--read-base:1.1875rem;--read-leading:1.7;--weight-body:400;--weight-label:500;--weight-heading:600;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--radius-sm:6px;--radius:10px;--radius-lg:16px;--ease:cubic-bezier(.2, .8, .2, 1);--dur-fast:.12s;--dur-panel:.2s;--target:44px}@media (width>=900px){:root{--read-base:1.25rem;--read-leading:1.75}}@media (prefers-reduced-motion:reduce){:root{--dur-fast:0s;--dur-panel:0s}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{--brand:var(--accent);--brand-hover:var(--accent-hover);--terra:var(--accent);--terra-deep:var(--accent);--terra-fill:var(--accent-fill);--sage:var(--accent);--link:var(--accent);--ok:var(--accent);--mint-50:var(--accent-soft);--mint-100:color-mix(in srgb, var(--accent) 14%, var(--surface));--mint-200:color-mix(in srgb, var(--accent) 24%, var(--surface));--mint-300:color-mix(in srgb, var(--accent-fill) 38%, var(--surface));--mint-400:color-mix(in srgb, var(--accent-fill) 62%, var(--surface));--mint-500:var(--accent);--mint-600:var(--accent);--mint-700:var(--accent);--mint-800:var(--accent);--mint-900:var(--accent-hover);--terra-soft:var(--accent-soft);--sage-soft:var(--accent-soft);--ok-bg:var(--accent-soft);--mustard:var(--attention);--saffron:var(--attention);--warn:var(--attention);--mustard-soft:var(--attention-soft);--saffron-soft:var(--attention-soft);--warn-bg:var(--attention-soft);--dusk:var(--info);--plum:var(--info);--dusk-soft:var(--info-soft);--plum-soft:var(--info-soft);--clay:var(--danger);--clay-soft:var(--danger-soft);--ko:var(--danger);--ko-bg:var(--danger-soft);--ink:var(--text);--muted:var(--text-muted);--s-untested:var(--surface-2);--s-untested-text:var(--text-muted);--s-learning:var(--attention-soft);--s-learning-text:var(--attention);--s-mastered:var(--accent-fill);--s-mastered-text:var(--on-accent);--s-weak:var(--danger-soft);--s-weak-text:var(--danger);--s-due:var(--info);--l-A0:var(--accent-fill);--l-A1:var(--accent-fill);--l-A2:var(--accent-fill);--l-B1:var(--accent-fill);--l-B2:var(--accent-fill);--l-C1:var(--accent-fill);--l-C2:var(--accent-fill);--font-display:var(--font-ui);--font-read:var(--font-reading);--shadow:none;--soft-shadow:none;--sidebar:236px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font:16px/1.55 var(--font-ui);font-feature-settings:var(--font-features-ui);-webkit-font-smoothing:antialiased;margin:0}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}h1{font-family:var(--font-display);letter-spacing:-.015em;font-variation-settings:"opsz" 96;margin:0 0 .45rem;font-size:2.15rem;font-weight:600;line-height:1.12}h2{font-family:var(--font-display);letter-spacing:-.005em;font-variation-settings:"opsz" 36;margin:0 0 .7rem;font-size:1.28rem;font-weight:600}h3{margin:0 0 .5rem;font-size:1.02rem}code{background:var(--surface-2);border-radius:5px;padding:.1em .35em;font:.88em ui-monospace,SFMono-Regular,Menlo,monospace}kbd{border:1px solid var(--border);color:var(--muted);background:var(--surface);border-bottom-width:2px;border-radius:5px;padding:2px 5px;font:11px/1 ui-monospace,SFMono-Regular,Menlo,monospace}select,input,textarea{font:inherit;color:var(--text)}select{border:1px solid var(--border);background:var(--surface);border-radius:9px;padding:.4rem .6rem}.muted{color:var(--muted)}.small{font-size:.86rem}.center{text-align:center;justify-content:center}.error{color:var(--ko)}.warn{color:var(--warn);background:var(--warn-bg);border-radius:10px;padding:.6rem .8rem}.t-ok{color:var(--ok);font-weight:700}.t-ko,.t-weak{color:var(--ko)}.shell main{margin-left:var(--sidebar);min-height:100vh;padding:2rem 2rem 5rem}.shell.bare main{margin-left:0;padding:0}.shell.bare.guest-open main{padding:2rem 2rem 5rem}.topbar{display:none}.sidebar{width:var(--sidebar);background:var(--surface);border-right:1px solid var(--border);z-index:20;flex-direction:column;padding:1.1rem .8rem;display:flex;position:fixed;inset:0 auto 0 0}.brand{color:var(--text);letter-spacing:-.02em;align-items:center;gap:.45rem;font-size:1.15rem;font-weight:800;display:flex}.brand:hover{text-decoration:none}.brand-mark{border-radius:9px;width:30px;height:30px;display:inline-block}.brand-sub{color:var(--muted);letter-spacing:0;font-size:.8rem;font-weight:600;display:block}.side-brand{padding:.2rem .5rem 1.2rem;line-height:1.15}.nav-items{flex-direction:column;gap:2px;display:flex}.nav-item{color:var(--muted);border-radius:10px;align-items:center;gap:.7rem;padding:.6rem .75rem;font-size:.95rem;font-weight:600;display:flex}.nav-item:hover{background:var(--surface-2);color:var(--text);text-decoration:none}.nav-item.active{background:var(--accent-soft);color:var(--mint-700)}:where([data-theme=dark]) .nav-item.active,:where([data-theme=dark]) .brand-ai{color:var(--mint-300)}.nav-bottom{flex-direction:column;gap:.5rem;margin-top:auto;display:flex}.nav-level{color:var(--muted);padding:0 .75rem;font-size:.8rem;text-decoration:none}.nav-level:hover{color:var(--text);text-decoration:underline}.tabbar,.scrim,.menu-btn{display:none}.page{max-width:1080px;margin:0 auto}.page.narrow{max-width:760px}.page>p,.page>section>p,.page-head p{max-width:70ch}.card>:is(p,ul,ol,dl,h3,h4,table,blockquote)+:is(p,ul,ol,dl,h3,h4,table,blockquote){margin-top:.75rem}.card>:is(p,ul,ol,dl,table)+:is(h3,h4){margin-top:1.25rem}.card>:is(p,ul,ol,dl)+:is(.btn,button,a.btn){margin-top:.75rem}.page-head,.section-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.25rem;display:flex}.section-head{align-items:baseline;margin-bottom:.5rem}.page-head p{margin:.2rem 0 0}section{margin-bottom:2rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem 1.35rem}.actions{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.grid-2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem;display:grid}.btn{border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;white-space:nowrap;border-radius:11px;justify-content:center;align-items:center;gap:.45rem;padding:.6rem 1.05rem;font-weight:650;transition:background .12s,transform 60ms,border-color .12s;display:inline-flex}.btn:hover{background:var(--surface-2);text-decoration:none}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--accent-fill);border-color:var(--accent);color:var(--on-accent)}.btn.primary:hover{background:var(--mint-300);border-color:var(--mint-300)}.btn.ghost{background:0 0}.btn.small{border-radius:9px;padding:.35rem .7rem;font-size:.85rem}.btn.icon{width:44px;padding:.5rem}.btn.danger{color:var(--ko)}.btn.wide{width:100%;padding:.85rem}.btn:disabled{opacity:.5;cursor:default}.btn kbd{color:inherit;background:0 0;border-color:currentColor}.btn.recording{background:var(--ko);border-color:var(--ko);color:#fff;animation:1.2s infinite pulse}@keyframes pulse{50%{box-shadow:0 0 0 6px #d1343a2e}}button.link{color:var(--link);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-size:.88rem}.link.danger{color:var(--ko)}.chip{border:1px solid var(--border);background:var(--surface);border-radius:999px;margin:.1rem .15rem;padding:.12rem .6rem;font-size:.85rem;font-weight:600;display:inline-block}.speak{border:1px solid var(--border);background:var(--surface);width:30px;height:30px;color:var(--mint-600);cursor:pointer;vertical-align:middle;border-radius:50%;flex:none;justify-content:center;align-items:center;margin:0 .2rem;transition:background .12s;display:inline-flex}.speak:hover,.speak.playing{background:var(--accent-fill);border-color:var(--accent);color:var(--on-accent)}.level-badge{color:#fff;vertical-align:middle;background:var(--l-A0);border-radius:7px;padding:.12rem .5rem;font-size:.8rem;font-weight:800;display:inline-block}.level-badge.tiny{padding:.05rem .35rem;font-size:.8rem}.level-badge.huge{border-radius:16px;margin:.4rem 0 1rem;padding:.3rem 1.2rem;font-size:3rem}.l-A0.level-badge{background:var(--l-A0)}.l-A1.level-badge{background:var(--l-A1)}.l-A2.level-badge{background:var(--l-A2)}.l-B1.level-badge{background:var(--l-B1)}.l-B2.level-badge{background:var(--l-B2)}.l-C1.level-badge{background:var(--l-C1)}.l-C2.level-badge{background:var(--l-C2)}.dot{vertical-align:-1px;border-radius:4px;flex:none;width:12px;height:12px;display:inline-block}.dot.s-untested{background:var(--s-untested);border:1px solid var(--border)}.dot.s-learning{background:var(--s-learning);border:1px solid var(--mint-300)}.dot.s-mastered{background:var(--s-mastered)}.dot.s-weak{background:var(--s-weak)}.dot.s-due{border:2px dashed var(--s-due)}.dot.app{background:var(--mint-400)}.dot.ext{background:var(--accent-fill-hover)}.legend span{align-items:center;gap:.35rem;display:inline-flex}.stack-bar{background:var(--s-untested);border-radius:999px;height:8px;display:flex;overflow:hidden}.stack-bar .seg.s-mastered{background:var(--s-mastered)}.stack-bar .seg.s-learning{background:var(--mint-200)}.stack-bar .seg.s-weak{background:var(--s-weak)}.today-hero{background:linear-gradient(135deg, var(--mint-100), var(--mint-50) 60%, var(--surface));border:1px solid var(--border);border-radius:20px;justify-content:space-between;align-items:center;gap:1rem;padding:1.6rem 1.8rem;display:flex}:where([data-theme=dark]) .today-hero{background:linear-gradient(135deg, #17392f, var(--surface))}.today-hero h1{font-size:2.3rem}.hero-stats{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.chip-stat{background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:.25rem .75rem;font-size:.88rem;font-weight:650}.goal-ring{color:var(--text);flex:none;position:relative}.goal-ring:hover{text-decoration:none}.ring-bg{fill:none;stroke:var(--surface-2);stroke-width:11px}.ring-fg{fill:none;stroke:var(--mint-500);stroke-width:11px;stroke-linecap:round;transition:stroke-dasharray .4s}.ring-text{flex-direction:column;justify-content:center;align-items:center;line-height:1.1;display:flex;position:absolute;inset:0}.ring-text strong{font-size:1.7rem}.ring-text span{color:var(--muted);font-size:.8rem}.placement-cta{border-radius:var(--radius);border:1.5px dashed var(--mint-400);background:var(--accent-soft);color:var(--text);justify-content:space-between;align-items:center;gap:1rem;margin:1.25rem 0;padding:1rem 1.25rem;display:flex}.placement-cta:hover{text-decoration:none}.placement-cta div{flex-direction:column;display:flex}.today-hero+section,.placement-cta+section{margin-top:1.75rem}.plan{flex-direction:column;gap:.55rem;display:flex}.plan-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);align-items:center;gap:1rem;padding:.85rem 1.1rem;transition:border-color .12s,transform 80ms;display:flex}.plan-item:hover{border-color:var(--mint-400);text-decoration:none;transform:translate(2px)}.plan-icon{background:var(--accent-soft);width:42px;height:42px;color:var(--mint-600);border-radius:12px;flex:none;place-items:center;display:grid}.plan-item.done .plan-body strong{color:var(--muted);text-decoration:line-through}.plan-body{flex-direction:column;flex:1;min-width:0;display:flex}.plan-cta{color:var(--link);white-space:nowrap;font-size:.9rem;font-weight:700}.levels{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem;display:grid}.level-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);flex-direction:column;gap:.5rem;padding:.9rem 1rem;display:flex}.level-card.current{border-color:var(--mint-400);box-shadow:0 0 0 3px var(--accent-soft)}.level-card:hover{border-color:var(--mint-400);text-decoration:none}.level-card-head{justify-content:space-between;align-items:center;display:flex}.hours-head{justify-content:space-between;align-items:baseline;margin-bottom:.5rem;display:flex}.hours-head strong{font-size:1.35rem}.hours-track{background:var(--surface-2);border-radius:999px;flex:1;height:14px;margin-bottom:1.6rem;position:relative}.hours-fill{background:linear-gradient(90deg, var(--mint-300), var(--mint-500));border-radius:999px;min-width:6px;position:absolute;inset:0 auto 0 0}.hours-mark{background:var(--border);width:2px;position:absolute;top:-3px;bottom:-3px}.hours-mark span{color:var(--muted);font-size:.8rem;font-weight:700;position:absolute;top:20px;left:50%;transform:translate(-50%)}.hours-foot{margin-top:-.3rem}.fsi{border-top:1px solid var(--border);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-top:1.25rem;padding-top:1rem;display:grid}.fsi p{margin:.3rem 0 0}.target{align-items:center;gap:.6rem;margin-top:.75rem;font-weight:600;display:inline-flex}.day-bars{align-items:flex-end;gap:6px;height:160px;padding-bottom:18px;display:flex;position:relative}.day-bar{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;height:100%;display:flex;position:relative}.day-stack{background:var(--mint-400);border-radius:6px 6px 3px 3px;flex-direction:column;width:100%;max-width:26px;min-height:2px;max-height:86%;display:flex;overflow:hidden}.seg-ext{background:var(--accent-fill-hover)}.day-label{color:var(--muted);font-size:.8rem;position:absolute;bottom:-18px}.goal-line{border-top:1.5px dashed var(--mint-600);pointer-events:none;position:absolute;left:0;right:0}.goal-line span{color:var(--mint-700);font-size:.8rem;position:absolute;top:-1.2rem;left:0}.breakdown{border-collapse:collapse;width:100%;font-size:.92rem}.breakdown td{border-bottom:1px solid var(--border);padding:.35rem 0}.breakdown td:last-child{text-align:right;font-weight:650}.breakdown tr.total td{border-bottom:none;font-weight:800}.log-form{flex-wrap:wrap;align-items:flex-end;gap:.75rem;display:flex}.log-form label{color:var(--muted);flex-direction:column;gap:.25rem;font-size:.82rem;font-weight:600;display:flex}.log-form label.grow{flex:1;min-width:200px}.log-form input,.log-form select,.text-input{border:1px solid var(--border);background:var(--surface);border-radius:9px;min-width:0;padding:.5rem .65rem}.log-form input[type=number]{width:6rem}.text-input:focus,.log-form input:focus,textarea:focus,select:focus{outline:2px solid var(--mint-300);outline-offset:1px}.log-list{margin:1rem 0 0;padding:0;list-style:none}.log-list li{border-top:1px solid var(--border);grid-template-columns:90px 1fr 1.2fr auto auto;align-items:center;gap:.75rem;padding:.5rem 0;display:grid}.map-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1rem;display:flex}.level-tabs{flex-wrap:wrap;gap:.35rem;margin-top:.5rem;display:flex}.level-tab{color:var(--muted);border:1px solid var(--border);background:var(--surface);border-radius:9px;padding:.32rem .85rem;font-weight:800}.level-tab:hover{color:var(--text);text-decoration:none}.level-tab.active{color:#fff;border-color:#0000}.level-tab.active.l-A0{background:var(--l-A0)}.level-tab.active.l-A1{background:var(--l-A1)}.level-tab.active.l-A2{background:var(--l-A2)}.level-tab.active.l-B1{background:var(--l-B1)}.level-tab.active.l-B2{background:var(--l-B2)}.level-tab.active.l-C1{background:var(--l-C1)}.level-tab.active.l-C2{background:var(--l-C2)}.map-summary{flex-direction:column;gap:.35rem;max-width:520px;display:flex}.map{column-width:330px;background:var(--surface);border:1px solid var(--border);border-radius:20px;column-gap:1rem;padding:1rem;position:relative;overflow:hidden}.map-watermark{color:var(--mint-500);opacity:.08;pointer-events:none;font-size:clamp(8rem,22vw,18rem);font-weight:900;line-height:1;position:absolute;bottom:-6%;right:2%}.region{break-inside:avoid;background:var(--bg);border-radius:16px;margin:0 0 1rem;padding:.8rem;position:relative}.region h2{margin:0;font-size:1rem}.region-head{justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.6rem;display:flex}.tiles{flex-wrap:wrap;gap:6px;display:flex}.tile{text-align:center;max-width:calc(50% - 3px);min-height:64px;color:var(--s-untested-text);background:var(--s-untested);border:1px solid #0000;border-radius:12px;flex:140px;justify-content:center;align-items:center;padding:.5rem .6rem;font-size:.8rem;line-height:1.25;transition:transform 80ms,filter 80ms;display:flex}.tile:hover{filter:brightness(.97);text-decoration:none;transform:scale(1.03)}.tile.s-learning{background:var(--s-learning);color:var(--s-learning-text)}.tile.s-mastered{background:var(--s-mastered);color:var(--s-mastered-text);font-weight:650}.tile.s-weak{background:var(--s-weak);color:var(--s-weak-text);font-weight:650}.tile.due{outline:2px dashed var(--s-due);outline-offset:-4px}.lesson-layout{grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:1.5rem;display:grid}.lesson-side{flex-direction:column;gap:1rem;display:flex;position:sticky;top:1rem}.side-card{padding:1rem 1.1rem}.side-card h3{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:.8rem}.video-link{color:var(--text);align-items:center;gap:.55rem;padding:.45rem 0;font-weight:600;display:flex}.yt-badge{color:#fff;background:#f03;border-radius:6px;flex:none;place-items:center;width:28px;height:20px;font-size:10px;display:inline-grid}.related{flex-direction:column;gap:.5rem;margin:0;padding:0;font-size:.88rem;list-style:none;display:flex}.related li{align-items:flex-start;gap:.45rem;display:flex}.related li .dot{margin-top:4px}.related a{flex:1}.crumbs{color:var(--muted);margin-bottom:.4rem;font-size:.85rem}.lesson-title{font-size:2rem}.lesson-summary{color:var(--muted);margin:0 0 .6rem;font-size:1.1rem}.lesson-status{flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:1.25rem;font-size:.9rem;display:flex}.lesson-body{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:.6rem 1.6rem 1rem;font-size:1.02rem}.markup p,.markup ul,.markup ol{margin:.85rem 0}.markup h3{margin:1.6rem 0 .4rem;font-size:1.2rem}.markup h4{margin:1.2rem 0 .3rem;font-size:1.02rem}.markup li{margin:.25rem 0}.markup del{color:var(--ko)}.markup .tip{background:var(--accent-soft);border-left:4px solid var(--mint-400);border-radius:8px;padding:.65rem .95rem}.table-wrap{margin:.9rem 0;overflow-x:auto}.markup table{border-collapse:collapse;min-width:50%;font-size:.95rem}.markup th,.markup td{border:1px solid var(--border);text-align:left;vertical-align:top;padding:.4rem .75rem}.markup th{background:var(--surface-2);font-weight:650}.examples{flex-direction:column;gap:.4rem;margin:.85rem 0;display:flex}.example{background:var(--accent-soft);border-radius:10px;flex-wrap:wrap;align-items:center;column-gap:.6rem;padding:.45rem .65rem;display:flex}.example .fr{font-weight:650}.example .en{color:var(--muted);font-size:.93rem}.lesson-examples{margin-top:1.5rem}.test-me{border-radius:var(--radius);background:var(--mint-100);border:1px solid var(--mint-200);justify-content:space-between;align-items:center;gap:1rem;margin:1.25rem 0;padding:1.1rem 1.3rem;display:flex}:where([data-theme=dark]) .test-me{background:#17392f;border-color:#20503f}.pager{justify-content:space-between;gap:1rem;font-size:.9rem;display:flex}.quiz-head{justify-content:space-between;align-items:baseline;display:flex}.progress,.score-bar{background:var(--surface-2);border-radius:999px;height:8px;margin-bottom:1rem;overflow:hidden}.progress>div,.score-bar>div{background:var(--mint-400);height:100%;transition:width .25s}.quiz-meta{align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.question{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:18px;padding:1.6rem}.prompt{font-size:1.35rem;font-weight:550;line-height:1.65}.gap{border-bottom:2px solid var(--muted);text-align:center;min-width:4.5em;margin:0 .15rem;padding:0 .25rem;display:inline-block}.gap-right{color:var(--ok);border-color:var(--ok);font-weight:750}.gap-wrong{color:var(--ko);border-color:var(--ko);font-weight:750}.gap-input{font:inherit;color:var(--mint-700);background:var(--surface);border:2px dashed var(--mint-400);text-align:center;border-radius:8px;outline:none;max-width:100%;margin:0 .15rem;padding:0 .3rem;font-weight:650}:where([data-theme=dark]) .gap-input{color:var(--mint-200)}.gap-input::placeholder{color:var(--muted);font-size:.8em;font-style:italic;font-weight:450}.gap-input:focus{border-style:solid;border-color:var(--mint-500);box-shadow:0 0 0 3px var(--accent-soft)}.gloss{color:var(--muted);margin-top:.25rem;font-style:italic}.hint{color:var(--muted);margin-top:.5rem;font-size:.85rem}.options{flex-direction:column;gap:.55rem;margin-top:1.25rem;display:flex}.option{text-align:left;font:inherit;color:var(--text);background:var(--surface);border:1.5px solid var(--border);cursor:pointer;border-radius:12px;align-items:center;gap:.75rem;padding:.75rem .95rem;display:flex}.option.right{border-color:var(--ok);background:var(--ok-bg)}.option.missed{border-color:var(--ok);border-style:dashed}.option.wrong{border-color:var(--ko);background:var(--ko-bg)}.option.dim{opacity:.55}.option:disabled{cursor:default}.type-area{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-top:1.25rem;display:flex}.accent-tray{background:var(--surface-2);border:1px dashed var(--border);border-radius:12px;flex-direction:column;gap:.4rem;width:100%;padding:.6rem .7rem .7rem;display:flex}.accent-tip{color:var(--muted);font-size:.8rem}.accent-tip strong{color:var(--text);font-weight:650}.accent-keys{flex-wrap:wrap;gap:6px 10px;display:flex}.accent-group{border-radius:9px;gap:3px;transition:background .15s;display:inline-flex}.accent-group.match{background:var(--accent-soft);box-shadow:0 0 0 2px var(--mint-400)}.accent-tray button{font:inherit;background:var(--surface);min-width:32px;height:32px;color:var(--text);box-shadow:0 1px 0 var(--border);cursor:pointer;border:none;border-radius:8px;padding:0 4px;font-size:1rem}.accent-tray button:hover{background:var(--accent-soft)}.task-label{letter-spacing:.02em;color:var(--mint-700);background:var(--accent-soft);border-radius:999px;align-items:center;gap:.4rem;margin-bottom:.6rem;padding:.2rem .65rem;font-size:.8rem;font-weight:650;display:inline-flex}.check-btn{width:100%}.feedback{border-radius:12px;flex-direction:column;gap:.4rem;margin-top:1.25rem;padding:1rem 1.15rem;display:flex}.feedback.ok{background:var(--ok-bg)}.feedback.ko{background:var(--ko-bg)}.feedback-head{font-size:1.05rem;font-weight:800}.feedback.ok .feedback-head{color:var(--ok)}.feedback.ko .feedback-head{color:var(--ko)}.feedback .your{color:var(--ko);text-decoration:line-through}.feedback-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-top:.4rem;display:flex}.lesson-link{font-size:.9rem}.skip{margin:.9rem auto 0;display:block}.score{align-items:center;gap:1rem;margin:1rem 0;display:flex}.score-num{font-size:2.3rem;font-weight:800}.score .score-bar{flex:1;height:12px;margin:0}.result-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin:0 0 1rem;padding:0;list-style:none}.result-list li{border-top:1px solid var(--border);align-items:center;gap:.6rem;padding:.65rem .95rem;display:flex}.result-list li:first-child{border-top:none}.result-list a{flex:1}.pill{text-align:center;border-radius:999px;width:1.6rem;font-weight:800}.pill.ok{color:var(--ok);background:var(--ok-bg)}.pill.ko{color:var(--ko);background:var(--ko-bg)}.pill.unchecked{color:var(--text-muted);background:var(--surface-2)}.empty{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem}.placement-steps{gap:.35rem;margin:.5rem 0;display:flex}.placement-steps span{text-align:center;background:var(--surface-2);color:var(--muted);border-radius:7px;flex:1;padding:.25rem 0;font-size:.8rem;font-weight:800}.placement-steps .done{background:var(--mint-400);color:var(--on-accent)}.placement-steps .now{background:var(--mint-100);color:var(--mint-800);outline:2px solid var(--mint-400)}.placement-result .breakdown{max-width:220px;margin:0 auto 1rem}.core-hero{flex-direction:column;gap:1rem;display:flex}.core-hero p{max-width:680px;margin:0 0 .6rem}.core-progress{align-items:center;gap:.75rem;max-width:520px;display:flex}.core-progress .hours-track{height:10px;margin:0}.deck-level h3{margin:1rem 0 .6rem}.decks{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.75rem;display:grid}.deck{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:.5rem;padding:.85rem 1rem;display:flex}.deck.on{border-color:var(--mint-300);background:linear-gradient(var(--accent-soft), var(--surface) 70%)}.deck-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.switch{cursor:pointer;align-items:center;gap:.5rem;display:flex}.switch input,.check input,.settings input[type=checkbox]{width:18px;height:18px;accent-color:var(--mint-500)}.deck-title{font-weight:650}.deck-bar{background:var(--surface-2);border-radius:999px;height:6px;position:relative;overflow:hidden}.deck-bar>div{position:absolute;inset:0 auto 0 0}.deck-bar .seen{background:var(--mint-200)}.deck-bar .mature{background:var(--accent-fill)}.word-list{max-height:340px;margin:.5rem 0 0;padding:0;font-size:.9rem;list-style:none;overflow:auto}.word-list li{border-top:1px solid var(--border);align-items:center;gap:.4rem;padding:.25rem 0;display:flex}.word-list .fr{flex:1;font-weight:650}.word-list .en{color:var(--muted);flex:1}.my-cards p{margin:.4rem 0 .8rem}.card-form{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.card-form .actions{grid-column:1/-1;margin-top:.25rem}.bulk{flex-direction:column;align-items:flex-start;gap:.5rem;margin-top:.75rem;display:flex}.bulk textarea,.composer textarea{border:1px solid var(--border);background:var(--surface);resize:vertical;border-radius:11px;width:100%;padding:.65rem .75rem}.counts{gap:.6rem;font-weight:800;display:flex}.c-new{color:var(--s-due)}.c-learn{color:var(--ko)}.c-review{color:var(--ok)}.flashcard{background:var(--surface);border:1px solid var(--border);text-align:center;min-height:250px;box-shadow:var(--shadow);border-radius:20px;margin:1rem 0;padding:1.6rem}.card-tag{margin-bottom:1rem}.card-front{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;display:flex}.card-word{letter-spacing:-.01em;font-size:2.1rem;font-weight:750}.card-word.en{font-weight:650}.flashcard .type-area{flex-direction:column}.card-input{text-align:center;border:1.5px solid var(--border);background:var(--bg);border-radius:12px;width:min(100%,360px);padding:.65rem;font-size:1.2rem}.card-input:focus{border-color:var(--mint-500);outline:none}.card-back{border-top:1px solid var(--border);margin-top:1.25rem;padding-top:1.25rem}.card-answer{font-size:1.5rem;font-weight:650}.verdict{margin-top:.4rem;font-size:.95rem}.verdict.correct{color:var(--ok)}.verdict.accents{color:var(--warn)}.verdict.wrong{color:var(--ko)}.card-example{margin-top:1rem;font-size:.95rem}.ratings{grid-template-columns:repeat(4,1fr);gap:.5rem;display:grid}.rate{font:inherit;border:1.5px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:12px;flex-direction:column;align-items:center;gap:.15rem;padding:.6rem .25rem;display:flex}.rate:hover{background:var(--surface-2)}.rate-label{font-weight:750}.rate-ivl{color:var(--muted);font-size:.8rem}.rate.again .rate-label{color:var(--ko)}.rate.hard .rate-label{color:var(--warn)}.rate.good .rate-label{color:var(--ok)}.rate.easy .rate-label{color:var(--s-due)}.settings{flex-direction:column;align-items:flex-start;gap:.8rem;margin-bottom:1rem;display:flex}.settings h2{margin-bottom:.2rem}.settings p{margin:0}.settings label{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.settings label.stack{flex-direction:column;align-items:flex-start;width:100%;font-weight:600}.settings .row{gap:.5rem;width:100%;display:flex}.settings .row .text-input{flex:1}.settings input[type=number]{border:1px solid var(--border);background:var(--surface);border-radius:9px;width:5.5rem;padding:.35rem .5rem}.settings input[type=range]{accent-color:var(--mint-500)}.check{align-items:center;gap:.45rem;display:inline-flex}.filters{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.segmented{background:var(--surface-2);border-radius:12px;flex-wrap:wrap;gap:2px;padding:3px;display:inline-flex}.segmented button{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:9px;padding:.4rem .85rem;font-size:.9rem;font-weight:650}.segmented button.on{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #00000014}.tip-banner{background:var(--accent-soft);border:1px solid var(--mint-200);border-radius:var(--radius);margin-bottom:1.5rem;padding:.85rem 1.1rem}:where([data-theme=dark]) .tip-banner{border-color:#20503f}.media-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.75rem;display:grid}.media-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);flex-direction:column;gap:.3rem;padding:1rem;display:flex}a.media-card:hover{border-color:var(--mint-400);text-decoration:none}.media-kind{text-transform:uppercase;letter-spacing:.05em;color:#fff;border-radius:6px;align-self:flex-start;padding:.12rem .45rem;font-size:.8rem;font-weight:800}.media-kind.yt{background:#f03}.media-kind.nf{background:#b20710}.media-levels{color:var(--link);margin-top:auto;font-size:.8rem;font-weight:700}.fr-title{color:var(--muted);font-style:italic}.avail{border-radius:7px;align-self:flex-start;padding:.2rem .5rem;font-size:.8rem;font-weight:650}.avail.yes{background:var(--ok-bg);color:var(--ok)}.avail.maybe{background:var(--warn-bg);color:var(--warn)}.media-actions{flex-wrap:wrap;gap:.35rem;margin-top:.4rem;display:flex}.tutor-controls{flex-direction:column;gap:.6rem;margin-bottom:1rem;display:flex}.tutor-controls p{margin:0}.tutor-options{flex-wrap:wrap;align-items:center;gap:1rem;font-size:.9rem;display:flex}.chat{background:var(--surface);border:1px solid var(--border);border-radius:18px;flex-direction:column;gap:.75rem;min-height:300px;max-height:58vh;padding:1rem 3rem 1rem 1rem;display:flex;overflow-y:auto}.chat-empty{text-align:center;color:var(--muted);margin:auto}.bubble{border-radius:16px;max-width:85%;padding:.7rem .95rem;position:relative}.bubble p{margin:0 0 .4rem}.bubble p:last-child{margin:0}.bubble.user{background:var(--mint-400);color:var(--on-accent);border-bottom-right-radius:5px;align-self:flex-end}.bubble.assistant{background:var(--surface-2);border-bottom-left-radius:5px;align-self:flex-start}.bubble.pending{opacity:.85}.bubble .speak{position:absolute;bottom:2px;right:-38px}.corrections{background:var(--warn-bg);border-radius:10px;margin-top:.6rem;padding:.55rem .7rem;font-size:.9rem}.corrections div{margin-top:.2rem}.corrections-head{justify-content:space-between;gap:1rem;display:flex}.user-turn{flex-direction:column;align-self:flex-end;align-items:flex-end;max-width:85%;display:flex}.user-turn .bubble{max-width:100%}.user-turn .corrections{align-self:stretch;margin-top:.35rem}.corrections-toggle,.translate-toggle{border:1px solid var(--border);background:var(--surface);color:var(--muted);font:inherit;cursor:pointer;border-radius:999px;margin-top:.3rem;padding:.15rem .6rem;font-size:.8rem}.corrections-toggle:hover,.translate-toggle:hover{color:var(--text);border-color:var(--mint-400)}.translation{border-top:1px dashed var(--border);color:var(--muted);margin-top:.5rem;padding-top:.45rem;font-size:.92rem}.composer{align-items:flex-end;gap:.5rem;margin-top:.75rem;display:flex}.composer textarea{flex:1}.composer-actions{gap:.4rem;display:flex}.setup ol{padding-left:1.2rem}.setup li{margin-bottom:.5rem}.steps{grid-template-columns:repeat(4,1fr);gap:.5rem;margin-bottom:1.25rem;display:grid}.step{border:1px solid var(--border);background:var(--surface);color:var(--muted);border-radius:12px;align-items:center;gap:.5rem;padding:.65rem .8rem;font-size:.9rem;font-weight:650;display:flex}.step:hover{color:var(--text);text-decoration:none}.step-num{background:var(--surface-2);border-radius:50%;flex:none;place-items:center;width:24px;height:24px;font-size:.8rem;display:grid}.contrast-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.75rem;display:grid}.contrast-card{text-align:left;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;flex-direction:column;gap:.35rem;padding:1rem;display:flex}.contrast-card:hover{border-color:var(--mint-400)}.contrast-label{font-weight:750}.contrast-acc{align-items:center;gap:.5rem;margin-top:auto;display:flex}.mini-bar{background:var(--surface-2);border-radius:999px;flex:1;height:6px;overflow:hidden}.mini-bar div{height:100%}.mini-bar .good{background:var(--accent-fill)}.mini-bar .mid{background:#e8b23a}.mini-bar .low{background:var(--ko)}.drill-head{justify-content:space-between;display:flex}.big-play{background:var(--accent-soft);border-color:var(--mint-300);border-radius:999px;align-self:center;padding:.9rem 1.6rem;font-size:1.1rem}.pair-choices{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.pair-choice{align-items:center;gap:.35rem;display:flex}.pair-word{font:inherit;border:1.5px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:14px;flex-direction:column;flex:1;align-items:center;gap:.15rem;padding:1rem;display:flex}.pair-word .fr{font-size:1.5rem;font-weight:750}.pair-word:hover:not(:disabled){border-color:var(--mint-400)}.pair-choice.right .pair-word{border-color:var(--ok);background:var(--ok-bg)}.pair-choice.wrong .pair-word{border-color:var(--ko);background:var(--ko-bg)}.pair-choice.dim .pair-word{opacity:.7}.drill-foot{justify-content:space-between;align-items:center;display:flex}.sound-list>p{margin-top:0}.sound{margin-bottom:.75rem}.sound p{margin:.5rem 0}.sound-head{align-items:center;gap:.6rem;display:flex}.ipa{color:var(--link);min-width:3.2rem;font-family:Charis SIL,Doulos SIL,Gentium,Georgia,serif;font-size:1.25rem;font-weight:700}.pill-hard{text-transform:uppercase;background:var(--warn-bg);color:var(--warn);border-radius:6px;padding:.1rem .45rem;font-size:.8rem;font-weight:800}.sound-examples{flex-wrap:wrap;gap:.4rem 1rem;display:flex}.sound-ex{align-items:center;gap:.25rem;display:inline-flex}.sound-ex .fr{font-weight:650}.speak-controls{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.speak-controls .text-input{flex:1;min-width:220px}.speak-card{flex-direction:column;gap:.6rem;display:flex}.speak-target{flex-wrap:wrap;align-items:center;gap:.3rem;display:flex}.fr.big{font-size:1.5rem;font-weight:700}.record-row{align-items:center;gap:.9rem;margin-top:.5rem;display:flex}.speak-result{border-top:1px solid var(--border);flex-direction:column;gap:.5rem;padding-top:.9rem;display:flex}.word-matches{flex-wrap:wrap;gap:.35rem;font-size:1.15rem;display:flex}.w-ok,.w-miss{border-radius:7px;padding:.1rem .45rem}.w-ok{background:var(--ok-bg);color:var(--ok)}.w-miss{background:var(--ko-bg);color:var(--ko);-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.compare{align-items:center;gap:.4rem;display:flex}.ai-feedback{background:var(--accent-soft);border-radius:12px;padding:.85rem 1rem}.ai-feedback p{margin:.35rem 0}.verdict-line{font-weight:700}.onboarding{background:radial-gradient(circle at 20% 10%, var(--mint-200), transparent 45%), radial-gradient(circle at 90% 90%, var(--mint-100), transparent 40%), var(--bg);place-items:center;min-height:100vh;padding:1.5rem 1rem;display:grid}:where([data-theme=dark]) .onboarding{background:radial-gradient(circle at 20% 10%, #1b4d3d, transparent 45%), var(--bg)}.onb-card{background:var(--surface);border:1px solid var(--border);border-radius:24px;flex-direction:column;gap:1rem;width:min(560px,100%);padding:2rem;display:flex;box-shadow:0 20px 60px #0d3b2e1f}.onb-brand{align-items:center;gap:.4rem;font-size:1.1rem;font-weight:800;display:flex}.onb-brand .brand-sub{margin-left:.3rem;display:inline}.onb-dots{gap:6px;display:flex}.onb-dots span{background:var(--surface-2);border-radius:999px;width:28px;height:5px}.onb-list{margin:0;padding-left:1.1rem}.onb-list li{margin-bottom:.45rem}.field{flex-direction:column;gap:.4rem;display:flex}.field>span:first-child{font-weight:650}.choice-row{flex-wrap:wrap;gap:.4rem;display:flex}.choice{font:inherit;border:1.5px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:10px;padding:.4rem .8rem;font-weight:650}.choice.on{border-color:var(--mint-500);background:var(--accent-soft)}.start-options{flex-direction:column;gap:.6rem;display:flex}.start-option{text-align:left;font:inherit;color:var(--text);border:1.5px solid var(--border);background:var(--surface);cursor:pointer;border-radius:14px;flex-direction:column;align-items:flex-start;gap:.3rem;padding:1rem 1.1rem;display:flex}button.start-option:hover{border-color:var(--mint-400);background:var(--accent-soft)}.start-option.static{cursor:default;gap:.6rem}.toasts{z-index:50;flex-direction:column;gap:.5rem;max-width:min(440px,100vw - 2rem);display:flex;position:fixed;bottom:1rem;right:1rem}.toast{background:var(--surface);border:1px solid var(--border);border-radius:12px;justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.75rem .9rem;font-size:.9rem;animation:.18s ease-out toast-in;display:flex;box-shadow:0 8px 30px #0000001f}.toast.success{border-left:4px solid var(--mint-500)}.toast.warn{border-left:4px solid #e8b23a}.toast.error{border-left:4px solid var(--ko)}.toast button{color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:.9rem}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}@media (width<=1000px){.lesson-layout{grid-template-columns:1fr}.lesson-side{position:static}}@media (width<=860px){.shell main,.shell.bare.guest-open main{margin-left:0;padding:1.1rem 1rem 6rem}.topbar{z-index:15;background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);align-items:center;gap:.75rem;padding:.55rem 1rem;display:flex;position:sticky;top:0}.topbar .brand{flex:1}.menu-btn{border:1px solid var(--border);background:var(--surface);width:38px;height:38px;color:var(--text);cursor:pointer;border-radius:10px;place-items:center;display:grid}.sidebar{transition:transform .2s;transform:translate(-100%);box-shadow:0 0 40px #00000026}.sidebar.open{transform:none}.scrim{z-index:18;background:#0000004d;display:block;position:fixed;inset:0}.tabbar{z-index:15;background:var(--surface);border-top:1px solid var(--border);padding:.35rem .25rem calc(.35rem + env(safe-area-inset-bottom));display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar a{min-width:0;color:var(--muted);flex-direction:column;flex:1;align-items:center;gap:2px;padding:.25rem 0;font-size:.8rem;font-weight:650;display:flex}.tabbar a.active{color:var(--mint-600)}.tabbar a:hover{text-decoration:none}.toasts{bottom:5rem;right:.75rem}}@media (width<=640px){h1{font-size:1.55rem}.today-hero{padding:1.2rem}.today-hero h1{font-size:1.8rem}.goal-ring svg{width:92px;height:92px}.ring-text strong{font-size:1.3rem}.prompt{font-size:1.15rem}.question{padding:1.1rem}.lesson-title{font-size:1.6rem}.lesson-body{padding:.3rem 1rem .8rem}.test-me{flex-direction:column;align-items:stretch}.steps{grid-template-columns:1fr 1fr}.card-form{grid-template-columns:1fr}.log-list li{grid-template-columns:1fr auto auto}.log-list li>:nth-child(3),.plan-cta{display:none}.chat{padding-right:1rem}.bubble .speak{margin-top:.3rem;position:static}.bubble{max-width:92%}.onb-card{padding:1.4rem}}h1,h2,h3,h4{font-weight:700}.markup ul,.onb-list{padding-left:1.4rem;list-style:outside}.markup ol,.how ol,.setup ol{padding-left:1.4rem;list-style:decimal}.speak svg,.nav-item svg,.tabbar svg,.plan-icon svg,.menu-btn svg{display:inline-block}.sparkai-loading{color:#187e5e;background:#f5f9f7;place-items:center;min-height:100vh;font:600 1.1rem/1.4 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;display:grid}.auth-form{flex-direction:column;gap:.85rem;max-width:420px;margin:1rem 0 .8rem;display:flex}.auth-form input{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;padding:.6rem .75rem}.auth-form input:focus{outline:2px solid var(--mint-400);outline-offset:1px}.auth-switch{color:var(--muted);margin:0}.auth-divider{color:var(--muted);align-items:center;gap:.6rem;margin:.2rem 0;font-size:.8rem;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--border);flex:1;height:1px}.auth-google{justify-content:center;align-items:center;gap:.55rem;display:flex}.ok-text{color:var(--mint-700);font-weight:600}.account .row{flex-wrap:wrap;gap:.6rem;margin:.8rem 0;display:flex}.sync-line{background:var(--surface-2);border-radius:10px;padding:.55rem .75rem}.sync-line.ok{background:var(--mint-50);color:var(--mint-700)}.sync-line.bad{background:var(--warn-bg)}.sync-line p{margin:0 0 .4rem}.sync-dot{border-radius:50%;width:8px;height:8px;margin-left:auto}.sync-dot.ok{background:var(--accent-fill)}.sync-dot.bad{background:var(--ko)}.center{text-align:center}.card-front.cloze{flex-direction:column;align-items:flex-start;gap:.4rem}.cloze-sentence{font-size:1.35rem;font-weight:600;line-height:1.5}.cloze-gap{border-bottom:2px solid var(--mint-500);min-width:3ch;color:var(--mint-700);padding:0 .3rem;display:inline-block}.leech-tip{background:var(--warn-bg);border-radius:10px;margin:.6rem 0 0;padding:.5rem .7rem;font-size:.9rem}.coverage{margin:.9rem 0}.coverage-head{flex-direction:column;gap:.15rem;margin-bottom:.5rem;display:flex}.coverage-track{background:var(--surface-2);border-radius:999px;height:12px;margin-bottom:1.4rem;position:relative}.coverage-fill{background:linear-gradient(90deg, var(--mint-300), var(--mint-600));border-radius:999px;height:100%}.coverage-mark{background:var(--border);width:2px;height:18px;position:absolute;top:-3px}.coverage-mark span{color:var(--muted);font-size:.8rem;position:absolute;top:19px;left:50%;transform:translate(-50%)}.coverage.compact .coverage-track{margin-bottom:1.2rem}.import-form{flex-direction:column;gap:.6rem;display:flex}.import-form input,.import-form textarea{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;padding:.6rem .75rem}.level-tabs{flex-wrap:wrap;margin:1.2rem 0 .4rem}.shelf{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.8rem;margin:.6rem 0 1.4rem;display:grid}.shelf-item{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:14px;flex-direction:column;gap:.35rem;padding:.95rem 1rem;text-decoration:none;transition:border-color .15s,transform .15s;display:flex}a.shelf-item:hover{border-color:var(--mint-400);transform:translateY(-1px)}.shelf-item strong{font-size:1.02rem}.serial-tag{text-transform:uppercase;letter-spacing:.04em;color:var(--mint-700);font-size:.8rem;font-weight:700}.book-author{color:var(--muted);font-size:.9rem;font-style:italic}.shelf-meta{flex-wrap:wrap;align-items:center;gap:.4rem .6rem;margin-top:auto;padding-top:.3rem;display:flex}.known-chip{background:var(--surface-2);border-radius:999px;padding:.12rem .5rem;font-size:.8rem;font-weight:600}.known-chip.easy{background:var(--mint-50);color:var(--mint-700)}.known-chip.right{background:var(--mint-100);color:var(--mint-700)}.known-chip.hard{background:var(--warn-bg);color:#8a5a00}.known-chip.vhard{color:#1e4f9c;background:#dbeafe}.done-tick{color:var(--mint-600)}.mini-track{background:var(--surface-2);border-radius:999px;height:6px;overflow:hidden}.mini-track div{background:var(--accent-fill);border-radius:999px;height:100%}.credits{margin-top:2rem}.back-link{color:var(--muted);margin-bottom:.6rem;font-size:.9rem;text-decoration:none;display:inline-block}.chapter-list{flex-direction:column;gap:.35rem;margin:1.2rem 0;padding:0;list-style:none;display:flex}.chapter-list a{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:10px;align-items:baseline;gap:.75rem;padding:.55rem .8rem;text-decoration:none;display:flex}.chapter-list a:hover{border-color:var(--mint-400)}.chapter-list li.done .ch-title{color:var(--muted)}.ch-num{color:var(--mint-700);min-width:1.8rem;font-weight:700}.ch-title{flex:1}.reader{grid-template-columns:minmax(0,1fr);gap:1.5rem;max-width:1120px;display:grid}.reader.with-panel{grid-template-columns:minmax(0,1fr) 320px}.reader-main{max-width:720px}.reader-head{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.reader-head h1{margin:.15rem 0 .4rem}.reader-progress{flex-direction:column;gap:.35rem;margin-bottom:1.2rem;display:flex}.new-count{color:#2563c9;font-weight:600}.reader-text{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:1.4rem 1.6rem;font-family:Georgia,Iowan Old Style,Palatino Linotype,serif;font-size:1.22rem;line-height:1.85}.reader-text p{border-radius:8px;margin:0 0 1rem;transition:background .2s}.reader-text p:last-child{margin-bottom:0}.reader-text p.speaking{background:var(--mint-50)}.reader-text.verse p{line-height:1.6}.w{cursor:pointer;border-radius:4px;padding:0 1px;transition:background .12s}.w:hover{outline:1px solid var(--mint-400)}.w.st4{background:#fffaeb;border-bottom:1px dashed #e3c565}.w.st5,.w.stx{background:0 0}.w.sel{outline:2px solid var(--mint-600)}.reader-nav{justify-content:space-between;gap:.6rem;margin:1.2rem 0 .4rem;display:flex}.word-panel{background:var(--surface);border:1px solid var(--border);border-radius:16px;flex-direction:column;align-self:start;gap:.7rem;padding:1.1rem;display:flex;position:sticky;top:1rem;box-shadow:0 8px 30px #143c2d14}.panel-close{color:var(--muted);cursor:pointer;background:0 0;border:0;font-size:1.5rem;line-height:1;position:absolute;top:.4rem;right:.6rem}.wp-head{align-items:center;gap:.5rem;padding-right:1.5rem;display:flex}.wp-word{font-size:1.4rem;font-weight:700}.wp-gloss{margin:0;font-size:1.05rem}.wp-def{color:var(--muted);margin:0;font-style:italic}.wp-lookup{flex-direction:column;gap:.4rem;display:flex}.wp-lookup input{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;padding:.5rem .7rem}.wp-status{flex-wrap:wrap;gap:.3rem;display:flex}.st-btn{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:8px;padding:.3rem .55rem;font-size:.85rem}.st-btn.on{border-color:var(--mint-600);box-shadow:0 0 0 2px var(--mint-200);font-weight:700}.st-btn.st1{background:#fde68a}.st-btn.st2{background:#fdeeb0}.st-btn.st3{background:#fef4cf}.st-btn.st4{background:#fffaeb}.st-btn.st5{background:var(--mint-100)}.wp-sentence{border-top:1px solid var(--border);padding-top:.6rem;font-size:.95rem}.wp-sentence p{margin:0 0 .4rem}.reader-done .done-hero{text-align:center;margin:1.5rem 0}.done-emoji{font-size:3rem}.comp-q{margin-bottom:.9rem}.choice.ok{background:var(--mint-100);border-color:var(--mint-500)}.choice.ko{background:#fde8e8;border-color:#e57373}@media (width<=900px){.reader.with-panel{grid-template-columns:minmax(0,1fr)}.word-panel{z-index:60;max-height:60vh;padding-bottom:calc(1rem + env(safe-area-inset-bottom));border-radius:18px 18px 0 0;position:fixed;inset:auto 0 0;overflow-y:auto}.reader-text{padding:1rem 1.1rem;font-size:1.12rem}.reader.with-panel .reader-main{padding-bottom:62vh}}:root[data-theme=dark] .w.st0{background:#1e3a5f}:root[data-theme=dark] .w.st1,:root[data-theme=dark] .st-btn.st1{background:#6b5413}:root[data-theme=dark] .w.st2,:root[data-theme=dark] .st-btn.st2{background:#5a4815}:root[data-theme=dark] .w.st3,:root[data-theme=dark] .st-btn.st3{background:#4a3d18}:root[data-theme=dark] .w.st4,:root[data-theme=dark] .st-btn.st4{background:#3a321c}.corrections .lesson-link{white-space:nowrap;margin-left:.5rem;font-size:.82rem}.mistake-group{border-top:1px solid var(--border);padding:.7rem 0}.mistake-group:first-of-type{border-top:0}.mistake-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;display:flex}.mistake-count{background:var(--warn-bg);border-radius:999px;padding:.1rem .5rem;font-size:.8rem;font-weight:700}.mistake-ex{margin:.25rem 0 0;font-size:.9rem}.mistake-ex s{color:var(--ko)}.mistake-ex strong{color:var(--mint-700)}.btn.small-btn{margin-top:.4rem;padding:.3rem .7rem;font-size:.82rem}.dictation-play{flex-wrap:wrap;align-items:center;gap:.5rem;margin:.8rem 0;display:flex}.dictation .card-input{width:100%}.dictation-answer{margin:.3rem 0;font-size:1.1rem}.diff-bad{color:var(--ko);-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.diff-slip{text-underline-offset:3px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.produce .card-input{width:100%}.order-line{border:2px dashed var(--border);border-radius:12px;flex-wrap:wrap;align-items:center;gap:.4rem;min-height:3.2rem;margin:.8rem 0;padding:.6rem;display:flex}.order-line.right{border-color:var(--mint-500);background:var(--mint-50)}.order-line.wrong{border-color:var(--ko)}.order-bank{flex-wrap:wrap;gap:.4rem;margin-bottom:.9rem;display:flex}.word-tile{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;box-shadow:0 1px 0 var(--border);border-radius:10px;padding:.4rem .75rem;font-size:1.05rem}.word-tile:disabled{opacity:.35;cursor:default}.word-tile.placed{background:var(--mint-50);border-color:var(--mint-300)}.word-tile.placed:disabled{opacity:1}.session-track{background:var(--surface-2);border-radius:999px;height:8px;margin:.4rem 0 1.2rem;overflow:hidden}.session-track div{background:var(--accent-fill);height:100%;transition:width .3s}.session-steps{flex-direction:column;gap:.6rem;margin:0 0 1rem;padding:0;list-style:none;display:flex}.session-step{background:var(--surface);border:1px solid var(--border);border-radius:14px;align-items:flex-start;gap:.9rem;padding:.9rem 1rem;display:flex}.session-step.current{border-color:var(--mint-400);box-shadow:0 0 0 3px var(--mint-100)}.session-step.done{opacity:.65}.step-num{background:var(--surface-2);border-radius:50%;flex:none;place-items:center;width:2rem;height:2rem;font-weight:700;display:grid}.step-body{flex-direction:column;flex:1;gap:.25rem;min-width:0;display:flex}.step-why{color:var(--mint-700)}.step-actions{flex-direction:column;align-items:flex-end;gap:.3rem;display:flex}.session-bar{left:calc(var(--sidebar) + 1rem);z-index:30;background:var(--accent-fill);color:var(--on-accent);border-radius:14px;justify-content:space-between;gap:1rem;padding:.7rem 1rem;font-size:.92rem;text-decoration:none;display:flex;position:fixed;bottom:1rem;right:1rem;box-shadow:0 8px 24px #14503c40}.session-stats{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.6rem;margin:1rem 0;display:grid}.session-stats div{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:14px;flex-direction:column;align-items:center;padding:.9rem;display:flex}.session-stats strong{color:var(--mint-700);font-size:1.6rem}.session-stats span{color:var(--muted);font-size:.85rem}.week-dots{gap:.4rem;margin:.4rem 0 .6rem;display:flex}.week-dot{background:var(--surface-2);width:2rem;height:2rem;color:var(--muted);border-radius:50%;place-items:center;font-size:.8rem;font-weight:700;display:grid}.week-dot.on{background:var(--mint-400);color:var(--on-accent)}.week-dot.future{opacity:.5}.session-hero{border:1px solid var(--mint-300);background:linear-gradient(135deg, var(--mint-50), var(--surface));flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.session-hero ol{color:var(--muted);margin:.4rem 0 0;padding-left:1.2rem;font-size:.9rem}@media (width<=900px){.session-bar{left:.6rem;right:.6rem;bottom:calc(68px + env(safe-area-inset-bottom))}}.text-input{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;padding:.6rem .75rem}.shell:has(.session-bar) main{padding-bottom:5.5rem}@media (width<=900px){.shell:has(.session-bar) main{padding-bottom:9rem}}.can-do{flex-direction:column;gap:.55rem;margin:.6rem 0 0;padding:0;list-style:none;display:flex}.can-do label{align-items:flex-start}.can-skill{color:var(--mint-700);white-space:nowrap;font-size:.8rem;font-weight:700}.test-skills{flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:.8rem;display:flex}.test-passage{margin-bottom:1rem;font-size:1.08rem}.writing-task textarea{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;padding:.7rem}.writing-task .row{align-items:center;gap:.8rem;display:flex}.danger-link{color:var(--ko)}.danger-zone{border:1px solid var(--ko);border-radius:12px;flex-direction:column;gap:.6rem;margin-top:.8rem;padding:.9rem;display:flex}.danger-zone label{flex-direction:column;gap:.3rem;font-size:.9rem;display:flex}.danger-zone .row{gap:.6rem;display:flex}.legal h2{margin-top:1.8rem}.legal h3{margin:1.1rem 0 .3rem;font-size:1rem}.legal p,.legal li{line-height:1.65}.legal-links{text-align:center;margin-top:1.5rem}.report-link{color:var(--muted)}.report-box{flex-direction:column;gap:.4rem;margin-top:.6rem;display:flex}.report-box textarea{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;padding:.5rem .65rem;font-size:.9rem}.report-box .row{align-items:center;gap:.6rem;display:flex}.consent{z-index:70;background:var(--surface);border:1px solid var(--border);width:min(380px,100% - 2.5rem);box-shadow:var(--shadow-float);border-radius:14px;flex-direction:column;gap:.7rem;padding:.9rem 1rem;display:flex;position:fixed;bottom:1.25rem;right:1.25rem}.consent p{flex:none;margin:0;font-size:.88rem;line-height:1.45}.consent p a{text-underline-offset:2px;padding:.25rem 0;text-decoration:underline}.consent-actions{gap:.5rem;display:flex}.consent-actions .btn{flex:1;min-height:44px;padding:.5rem .9rem}.consent-actions .btn.ghost{border:1.5px solid var(--border-strong)}html{scroll-padding-bottom:var(--consent-space,0px)}body{padding-bottom:var(--consent-space,0px)}@media (width<=860px){.consent{width:auto;left:0;right:0;bottom:var(--consent-dock,0px);border-width:1px 0 0;border-radius:14px 14px 0 0;gap:.55rem;padding:.7rem .9rem .75rem}.consent[data-docked=edge]{padding-bottom:calc(.75rem + env(safe-area-inset-bottom))}}.install-card{border:1px solid var(--border);background:var(--surface);border-radius:16px;align-items:center;gap:.9rem;margin-bottom:1.2rem;padding:.9rem 2.4rem .9rem 1rem;display:flex;position:relative}.install-card.compact{margin:.6rem 0;padding-right:1rem}.install-card img{border-radius:11px;flex:none}.install-body{flex-direction:column;flex:1;gap:.15rem;display:flex}.install-close{color:var(--muted);cursor:pointer;background:0 0;border:0;font-size:1.3rem;position:absolute;top:.35rem;right:.55rem}.reminder-row{flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:.5rem;display:flex}.reminder-row input[type=time]{width:auto}.reminder-prompt{background:var(--mint-50);border:1px solid var(--mint-200);border-radius:16px;margin:1.2rem 0;padding:1rem 1.1rem}.reminder-prompt h2,.reminder-prompt h3{margin:0 0 .3rem;font-size:1.1rem}.story-maker{flex-direction:column;gap:.75rem;margin:1.2rem 0;display:flex}.story-maker h2{margin-bottom:.2rem}.topic-chips{flex-wrap:wrap;gap:.4rem;display:flex}.story-maker-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;display:flex}.settings label.stack .muted{font-weight:400}::selection{background:var(--mint-200)}h1,h2{font-family:var(--font-display);letter-spacing:-.01em;font-variation-settings:"SOFT" 100, "WONK" 0, "opsz" 72;font-weight:600}h1{font-size:2.2rem}h2{font-variation-settings:"SOFT" 100, "WONK" 0, "opsz" 36;font-size:1.32rem}.brand{font-family:var(--font-ui);letter-spacing:-.02em;font-weight:650}.brand-ai{color:var(--terra)}.brand-sub{font-family:var(--font-ui);font-weight:600}.btn{border:1.5px solid var(--border);border-radius:var(--radius);box-shadow:none;padding:.62rem 1.25rem;font-weight:600;transition:background .15s,border-color .15s,box-shadow .15s,transform .15s}.btn:hover:not(:disabled){background:var(--surface);border-color:var(--muted)}.btn:active:not(:disabled){transform:scale(.98)}.btn.primary{background:var(--accent-fill);border-color:var(--accent-fill);color:#fff;box-shadow:none}.btn.primary:hover:not(:disabled){background:var(--accent-fill-hover);border-color:var(--accent-fill-hover);box-shadow:none}.btn.primary:disabled,.btn:disabled{background:var(--surface-2);border-color:var(--border);color:var(--muted);box-shadow:none;cursor:not-allowed}.btn.small{padding:.38rem .85rem}.btn.ghost{border-color:#0000}.card{border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--soft-shadow)}.auth-form input,.composer textarea,.card-input,select,textarea{background:var(--surface);border:1.5px solid var(--border)!important;border-radius:14px!important}.auth-form input:focus,.composer textarea:focus,.card-input:focus,select:focus,textarea:focus{outline:3px solid var(--terra-soft);border-color:var(--accent-fill)!important}.sidebar{background:var(--bg);border-right:1px solid var(--border)}.nav-item{border-radius:999px;font-weight:600}.nav-item.active{background:var(--terra-soft);color:var(--terra-deep);box-shadow:none}:where([data-theme=dark]) .nav-item.active{color:var(--terra-deep)}.tabbar a.active{color:var(--terra)}.chip-stat{border:1px solid var(--border);background:var(--surface);border-radius:999px;align-items:center;gap:.3rem;padding:.28rem .85rem;font-weight:600;display:inline-flex}.chip-stat .num{font-family:var(--font-display);font-variation-settings:"SOFT" 100, "opsz" 36;font-size:1.05rem;font-weight:700}.chip-stat.streak{background:var(--mustard-soft);border-color:#f1d79b}.chip-stat.streak:before{content:"";background:var(--mustard);border-radius:50%;width:.55rem;height:.55rem;margin-right:.15rem}:where([data-theme=dark]) .chip-stat.streak{border-color:#5a4720}.level-badge,.known-chip{border-radius:999px;font-weight:700}.choice{border:1.5px solid var(--border);border-radius:999px;font-weight:600}.choice.on{border-color:var(--accent-fill);background:var(--terra-soft);color:var(--terra-deep)}.segmented{border-radius:999px}.segmented button{border-radius:999px;font-weight:600}.today-hero{background:0 0;border:0;padding:.4rem 0 1.2rem}.today-hero h1{font-size:2.7rem;font-style:normal}.ring-bg{stroke:var(--surface-2)!important;stroke-width:10px!important}.ring-fg{stroke-linecap:round;stroke:var(--terra)!important;stroke-width:10px!important}.ring-text strong{font-family:var(--font-display);font-variation-settings:"SOFT" 100, "opsz" 72;font-size:1.6rem;font-weight:700}.session-hero{background:var(--surface);border:1px solid var(--border);box-shadow:var(--soft-shadow);border-radius:26px;flex-wrap:wrap;align-items:center;gap:1.4rem;margin:1.2rem 0 2.2rem;padding:1.6rem 1.9rem;display:flex;position:relative;overflow:hidden}.session-hero .hero-badge{flex:none}.session-hero-body{flex:1;min-width:220px}.session-hero h2{margin-bottom:.2rem;font-size:1.8rem}.session-hero ol{counter-reset:step;color:var(--text);flex-wrap:wrap;align-items:center;gap:.2rem;margin:.8rem 0 0;padding:0;font-size:.92rem;font-weight:600;list-style:none;display:flex}.session-hero ol li{counter-increment:step;align-items:center;display:inline-flex}.session-hero ol li+li:before{content:"";border-top:1.5px dashed var(--mint-300);width:1.1rem;margin:0 .45rem}.session-hero ol li:after{content:""}.session-cta{flex-direction:column;align-items:center;gap:.5rem;display:flex}.session-hero .btn.primary{min-width:170px;padding:.75rem 2.4rem;font-size:1.05rem}.session-hero .week-dot.on,.week-dot.on{background:var(--accent-fill);color:#fff}.plan{border:0;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:.75rem!important;display:grid!important}.plan-item{background:var(--surface);border:1px solid var(--border);box-shadow:var(--soft-shadow);border-radius:20px;padding:.85rem 1rem;transition:transform .15s,box-shadow .15s}.plan-item:hover{background:var(--surface);box-shadow:none;text-decoration:none;transform:translateY(-2px)}.plan-icon{border-radius:50%;width:46px;height:46px;background:var(--terra-soft)!important;color:var(--terra-deep)!important}.plan-item:nth-child(5n+2) .plan-icon{background:var(--dusk-soft)!important;color:var(--dusk)!important}.plan-item:nth-child(5n+3) .plan-icon{background:var(--mustard-soft)!important;color:#9a6a00!important}.plan-item:nth-child(5n+4) .plan-icon{background:var(--plum-soft)!important;color:var(--plum)!important}.plan-item:nth-child(5n+5) .plan-icon{background:var(--sage-soft)!important;color:var(--sage)!important}.plan-item.done{opacity:.75;box-shadow:none}.plan-item.done .plan-icon{background:var(--accent-fill)!important;color:#fff!important}.plan-cta{color:var(--terra-deep);font-size:.9rem;font-weight:700}.plan-item.done .plan-cta{color:var(--ok)}.placement-cta{background:var(--mustard-soft);border:1px solid #f1d79b;border-radius:20px}:where([data-theme=dark]) .placement-cta{border-color:#5a4720}.level-card{border:1px solid var(--border);box-shadow:var(--soft-shadow);border-radius:18px}.stack-bar,.session-track,.mini-track,.hours-track,.coverage-track,.progress{background:var(--s-untested)!important;border-radius:999px!important;height:10px!important}.stack-bar .seg,.session-track div,.mini-track div,.progress>div{border-radius:999px}.session-track div,.mini-track div,.progress>div{background:var(--accent-fill)!important}.session-step{border:1px solid var(--border);box-shadow:var(--soft-shadow);border-radius:18px}.session-step.current{border-color:var(--accent-fill);outline:3px solid var(--terra-soft)}.step-num{font-family:var(--font-display);font-weight:700}.session-step.done .step-num,.session-step.current .step-num{background:var(--accent-fill);color:#fff}.step-why{color:var(--muted);font-style:italic}.session-bar{background:var(--ink);color:var(--bg);box-shadow:var(--shadow-float);border-radius:999px}.session-bar strong{color:var(--mustard)}.session-stats div{border:1px solid var(--border);box-shadow:var(--soft-shadow);border-radius:20px}.session-stats strong{font-family:var(--font-display);font-variation-settings:"SOFT" 100, "opsz" 72;color:var(--terra-deep);font-size:1.8rem;font-weight:700}.session-stats div:nth-child(4n+2) strong{color:var(--dusk)}.session-stats div:nth-child(4n+3) strong{color:var(--plum)}.session-stats div:nth-child(4n+4) strong{color:var(--sage)}.done-hero{text-align:center}.done-hero .spark-badge{margin:0 auto .5rem;display:block}.done-hero h1{font-size:2.6rem}.kicker{letter-spacing:.12em;text-transform:uppercase;color:var(--terra);margin-bottom:.3rem;font-size:.8rem;font-weight:700;display:block}.question,.flashcard{border:1px solid var(--border);box-shadow:var(--soft-shadow);border-radius:24px}.prompt{font-family:var(--font-read);font-size:1.45rem;font-weight:500}.card-word{font-family:var(--font-display);font-variation-settings:"SOFT" 100, "opsz" 72;font-weight:600}.flashcard.revealed .card-back{animation:.25s ease-out reveal}.option,.rate{border:1.5px solid var(--border);border-radius:16px;font-weight:600;transition:background .12s,border-color .12s}.option:hover:not(:disabled){border-color:var(--mint-300);background:var(--terra-soft)}.option.chosen{border-color:var(--accent-fill);background:var(--terra-soft)}.option.right{border-color:var(--sage)}.option.wrong{border-color:var(--ko)}.rate.again{border-color:#e8a3b1}.rate.good{border-color:var(--sage);background:var(--sage-soft)}.feedback{border-radius:18px;animation:.25s ease-out page-in}.feedback-head{font-family:var(--font-display);font-variation-settings:"SOFT" 100, "opsz" 36;font-size:1.15rem;font-weight:700}.accent-tray button{font-weight:600}.reader-text{font-family:var(--font-read);background:var(--surface);border:1px solid var(--border);box-shadow:var(--soft-shadow), inset 6px 0 0 var(--surface-2);max-width:38em;color:var(--text);border-radius:6px 22px 22px 6px;padding:1.7rem 2rem 1.7rem 2.2rem;font-size:1.3rem;line-height:1.8;animation:.35s ease-out page-in}.reader-head h1{font-size:2.3rem}.w{border-radius:5px}.w.st0{background:var(--dusk-soft)}.w.st1{background:#f6d48c}.w.st2{background:#f9e3b3}.w.st3{background:#fcf0d6}.word-panel{border:1px solid var(--border);box-shadow:var(--shadow-float);border-radius:20px}.wp-word{font-family:var(--font-display);font-variation-settings:"SOFT" 100, "opsz" 72;font-size:1.7rem;font-weight:600}.shelf-item{border:1px solid var(--border);box-shadow:var(--soft-shadow);border-radius:18px}.shelf-item strong{font-family:var(--font-display);font-variation-settings:"SOFT" 100, "opsz" 36;font-size:1.12rem;font-weight:600}.shelf-item.serial{border-left:4px solid var(--plum)}.serial-tag{color:var(--plum)}.story-maker{background:var(--surface)}.card.settings{border-radius:20px}.bubble{border-radius:20px;animation:.2s ease-out page-in}.bubble.user{background:var(--accent-fill);color:#fff;border-bottom-right-radius:6px}.bubble.assistant{background:var(--surface);border:1px solid var(--border);box-shadow:var(--soft-shadow);border-top-left-radius:6px}.bot-turn{align-self:flex-start;align-items:flex-start;gap:.55rem;max-width:88%;display:flex}.bot-turn .bubble{max-width:100%}.bot-avatar{flex:none;margin-top:.1rem}.bot-name{color:var(--terra-deep);margin-bottom:.15rem;font-size:.8rem;font-weight:700;display:block}.corrections{background:var(--mustard-soft);border-radius:14px}.corrections-toggle,.translate-toggle{border-radius:999px;align-items:center;gap:.3rem;font-weight:600;display:inline-flex}.onb-card{border:1px solid var(--border);box-shadow:var(--soft-shadow);border-radius:28px}.onb-badge{margin:.4rem auto .6rem;display:block}.onb-dots span.on{background:var(--accent-fill)}.spark-badge .sb-disc{fill:var(--accent-fill)}.spark-badge .sb-star{fill:var(--mark-spark);transform-box:fill-box;transform-origin:50%;animation:3s ease-in-out infinite twinkle}.spark-badge .sb-dot{fill:var(--mark-dot)}.spark-badge .sb-orbit{stroke:var(--mint-300);transform-box:fill-box;transform-origin:50%;animation:12s linear infinite spin}.spark-badge .sb-bit{transform-box:fill-box;transform-origin:50%;animation:.6s ease-out both burst}.spark-badge .sb-c0{fill:var(--mustard)}.spark-badge .sb-c1{fill:var(--sage)}.spark-badge .sb-c2{fill:var(--plum)}.spark-badge .sb-c3{fill:var(--dusk)}.btn svg,.link svg,.corrections-toggle svg,.translate-toggle svg{flex:none}.icon-inline{align-items:center;gap:.35rem;display:inline-flex}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes reveal{0%{opacity:0;transform:rotateX(-12deg)}to{opacity:1;transform:none}}@keyframes tick{0%{transform:scale(.6)}60%{transform:scale(1.15)}to{transform:scale(1)}}@keyframes twinkle{0%,to{transform:scale(1)rotate(0)}50%{transform:scale(1.08)rotate(8deg)}}@keyframes burst{0%{opacity:0;transform:scale(.2)}to{opacity:1;transform:scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}.session-step.done .step-num{animation:.35s ease-out tick}@media (width<=640px){.session-hero{gap:.8rem;padding:1.2rem}.session-hero .hero-badge{width:56px;height:56px}.session-cta,.session-hero .btn.primary{width:100%}.plan{grid-template-columns:1fr}.placement-cta{flex-direction:column;align-items:stretch;gap:.8rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.mm-picker{flex-wrap:wrap;gap:.45rem;margin:1rem 0 1.2rem;display:flex}.mm-chip{min-width:4.4rem;font:inherit;color:var(--text);background:var(--surface);border:1.5px solid var(--border);cursor:pointer;border-radius:16px;flex-direction:column;align-items:center;padding:.45rem .7rem;transition:border-color .15s,background .15s,transform .15s;display:inline-flex}.mm-chip:hover{border-color:var(--mint-300);transform:translateY(-1px)}.mm-chip.on{background:var(--terra-soft);border-color:var(--accent-fill)}.mm-chip-ipa{font-family:var(--font-display);font-variation-settings:"SOFT" 100, "opsz" 36;font-size:1.1rem;font-weight:700}.mm-chip.on .mm-chip-ipa{color:var(--terra-deep)}.mm-chip-key{color:var(--muted);font-size:.8rem;font-weight:600}.mm-head{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.mm-head h2{margin:0;font-size:1.7rem}.mm-listen{gap:.3rem;display:flex}.mm-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:start;gap:1.4rem;margin-top:1rem;display:grid}.mouth-side,.mouth-front{width:100%;height:auto;display:block}.mouth-side{border:1px solid var(--border);border-radius:24px}.mm-front-wrap{flex-direction:column;align-items:center;gap:.3rem;margin-bottom:.8rem;display:flex}.mouth-front{border:1px solid var(--border);border-radius:20px;max-width:220px}.mm-legend{flex-wrap:wrap;gap:.4rem 1rem;margin-top:.5rem;display:flex}.mm-legend span{align-items:center;gap:.35rem;display:inline-flex}.mm-legend .sw{border-radius:4px;width:16px;height:10px;display:inline-block}.sw.tongue{background:var(--mm-tongue)}.sw.air{border-top:2.5px dashed var(--dusk);border-radius:0!important;height:0!important}.sw.voice{background:var(--mustard)}.sw.ghost{border:2px dashed var(--muted)}.mm-steps{flex-direction:column;gap:.65rem;margin:0;padding:0;list-style:none;display:flex}.mm-steps li{align-items:flex-start;gap:.6rem;line-height:1.45;display:flex}.mm-n{background:var(--ink);width:1.5rem;height:1.5rem;color:var(--bg);border-radius:50%;flex:none;place-items:center;margin-top:.05rem;font-size:.8rem;font-weight:800;display:inline-grid}.mm-steps.dim{opacity:.4}.mm-compare{border-top:1px dashed var(--border);flex-wrap:wrap;align-items:center;gap:.6rem 1rem;margin-top:1.2rem;padding-top:1rem;display:flex}.mm-compare p{flex-basis:100%;margin:0}.mm-tips{grid-template-columns:1fr 1fr;gap:1rem;margin:1.2rem 0;display:grid}.mm-tips>div{background:var(--surface-2);border-radius:16px;padding:.9rem 1.1rem}.mm-tips>div:last-child{background:var(--ko-bg)}.mm-tips h3{margin-bottom:.25rem}.mm-tips p{margin:0}:root{--mm-bg:#fdf8f1;--mm-skin:#f3dcc6;--mm-cavity:#f8e4da;--mm-tongue:#e07a6a;--mm-lip:#d9786a;--mm-bone:#fffaf1;--mm-line:#b9967d}:root:where([data-theme=dark]){--mm-bg:#241e1b;--mm-skin:#5a4538;--mm-cavity:#2e2521;--mm-tongue:#e08575;--mm-lip:#c76d60;--mm-bone:#efe6d8;--mm-line:#8a6f5d}.mm-bg{fill:var(--mm-bg)}.mm-skin{fill:var(--mm-skin)}.mm-cavity{fill:var(--mm-cavity)}.mm-nasal{opacity:.9}.mm-wall{fill:none;stroke:var(--mm-line);stroke-width:2px}.mm-palate{fill:none;stroke:var(--mm-bone);stroke-width:7px;stroke-linecap:round;filter:drop-shadow(0 0 .6px var(--mm-line))}.mm-velum{fill:none;stroke:#e6a596;stroke-width:8px;stroke-linecap:round}.mm-uvula{fill:#e6a596}.mm-tooth{fill:var(--mm-bone);stroke:var(--mm-line);stroke-width:1px}.mm-tongue{fill:var(--mm-tongue);stroke:#b8574a;stroke-width:1.5px}.mm-lip{fill:var(--mm-lip)}.mm-lipline{fill:none;stroke:#0000001f;stroke-width:1.5px}.mm-opening{fill:#4a2522}.mm-ghost{fill:none;stroke:var(--muted);stroke-width:2px;stroke-dasharray:5 4}.mm-air{fill:none;stroke:var(--dusk);stroke-width:2.5px;stroke-dasharray:3 7;stroke-linecap:round;animation:.9s linear infinite airflow}.mm-air.nasal{stroke:var(--plum)}.mm-voice rect{fill:var(--mm-line)}.mm-voice.on rect{fill:var(--mustard);animation:.12s linear infinite alternate buzz}.mm-voice path{fill:none;stroke:var(--mustard);stroke-width:2px;stroke-linecap:round}.mm-pin circle{fill:var(--ink);stroke:var(--bg);stroke-width:2px}.mm-pin text{fill:var(--bg);font:800 11px var(--font-ui)}@keyframes airflow{to{stroke-dashoffset:-20px}}@keyframes buzz{to{transform:translate(1px)}}@media (width<=760px){.mm-grid,.mm-tips{grid-template-columns:1fr}.mm-front-wrap{flex-direction:row;gap:.8rem}.mouth-front{max-width:150px}}.eval-cta{border:1px solid var(--border);color:var(--text);background:var(--surface);box-shadow:var(--soft-shadow);border-radius:20px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin:0 0 2rem;padding:1rem 1.3rem;display:flex}.eval-cta:hover{text-decoration:none}.eval-cta>div{flex-direction:column;gap:.15rem;display:flex}.eval-start{flex-direction:column;align-items:flex-start;gap:.8rem;display:flex}.evidence{align-items:center;gap:.6rem;display:flex}.evidence-dots{gap:4px;display:inline-flex}.evidence-dots i{background:var(--s-untested);border-radius:999px;width:22px;height:8px}.evidence-thin .evidence-dots i.on{background:var(--mustard)}.evidence-some .evidence-dots i.on{background:var(--dusk)}.evidence-solid .evidence-dots i.on{background:var(--accent-fill)}.eval-sheet{white-space:pre-wrap;background:var(--surface-2);border-radius:14px;width:100%;max-height:340px;margin:0;padding:.9rem 1rem;font:.8rem/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;overflow:auto}.eval-result{margin-top:1.2rem}.eval-meta{margin-bottom:.4rem}.eval-text h3{font-family:var(--font-display);font-variation-settings:"SOFT" 100, "opsz" 36;margin:1.3rem 0 .4rem;font-size:1.2rem}.eval-text h3:first-child{margin-top:0}.eval-text .eval-verdict+p{font-size:1.08rem;font-weight:600}.eval-text .eval-strengths+ul li::marker{color:var(--sage)}.eval-text .eval-weaknesses+ul li::marker{color:var(--ko)}.eval-text ul,.eval-text ol{flex-direction:column;gap:.35rem;padding-left:1.3rem;display:flex}.eval-text ol li::marker{color:var(--terra);font-weight:800}.eval-links{border-top:1px dashed var(--border);flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:1rem;padding-top:.8rem;display:flex}.eval-history{flex-wrap:wrap;gap:.4rem;display:flex}.eval-text ul{list-style:outside}.eval-text ol{list-style:decimal}.eval-text li{padding-left:.2rem;display:list-item}.speak-modes{margin-bottom:1rem}.vl-corners{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.8rem;margin:1rem 0;display:grid}.vl-corner{flex-direction:column;align-items:flex-start;gap:.45rem;display:flex}.vl-corner.done{border-color:var(--sage)}.vl-meter{background:var(--surface-2);border-radius:999px;width:100%;height:8px;display:block;overflow:hidden}.vl-meter span{background:var(--accent-fill);height:100%;transition:width 50ms linear;display:block}.btn.recording{background:var(--ko);border-color:var(--ko);color:#fff}.vl-picker{flex-wrap:wrap;gap:.45rem;margin:1rem 0;display:flex}.vl-picker .mm-chip{position:relative}.vl-badge{border-radius:50%;width:8px;height:8px;position:absolute;top:6px;right:6px}.vl-badge.good{background:var(--accent-fill)}.vl-badge.mid{background:var(--mustard)}.vl-badge.low{background:var(--ko)}.vl-main{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start;gap:1.4rem;display:grid}.vl-chart-wrap{flex-direction:column;gap:.4rem;display:flex}.vowel-chart{width:100%;height:auto}.vc-bg{fill:var(--mm-bg);stroke:var(--border)}.vc-outline{fill:none;stroke:var(--border);stroke-width:1.5px;stroke-dasharray:4 4}.vc-axis{fill:var(--muted);font:600 10px var(--font-ui)}.vc-vowel .vc-dot{fill:var(--surface);stroke:var(--mint-200);stroke-width:1.5px}.vc-vowel text{fill:var(--muted);font:700 11px var(--font-ui)}.vc-vowel.on .vc-dot{fill:var(--terra);stroke:var(--terra)}.vc-vowel.on text{fill:#fff}.vc-zone{fill:var(--terra-soft);opacity:.8}.vc-you{fill:var(--dusk);stroke:#fff;stroke-width:1.5px}.vc-you.latest{fill:var(--plum);stroke-width:2.5px}.vl-side{flex-direction:column;align-items:flex-start;gap:.7rem;display:flex}.vl-target{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.vl-target h3{font-family:var(--font-display);font-variation-settings:"SOFT" 100, "opsz" 36;margin:0;font-size:1.3rem}.vl-target .kicker{flex-basis:100%;margin:0}.vl-result{background:var(--surface-2);border-radius:16px;flex-direction:column;gap:.35rem;padding:.8rem 1rem;animation:.25s ease-out page-in;display:flex}.vl-result p{margin:0}.vl-result.great{background:var(--ok-bg)}.vl-result.off{background:var(--ko-bg)}.melody-panel{background:var(--surface-2);border-radius:16px;flex-direction:column;gap:.3rem;margin-top:1rem;padding:.9rem 1rem;display:flex}.melody-panel p{margin:.2rem 0 0}.melody{background:var(--surface);border-radius:12px;width:100%;height:auto}.melody-mid{stroke:var(--border);stroke-dasharray:3 4}.melody-pause{fill:var(--mustard-soft)}.melody-line{fill:none;stroke:var(--terra);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.w-flag{background:var(--mustard-soft);border-bottom:2px solid var(--mustard)}.coach-source{color:var(--muted);margin:.2rem 0 .4rem;font-size:.8rem;display:inline-block}.coach-source.heard{color:var(--ok);font-weight:700}@media (width<=760px){.vl-main{grid-template-columns:1fr}}.kicker.ipa-kicker{text-transform:none;letter-spacing:.02em;font-size:.95rem}.stamp-mark{flex:none;transform:rotate(-8deg)}.stamp-mark .st-ring{fill:none;stroke:currentColor;stroke-width:3px;stroke-dasharray:2 3}.stamp-mark .st-inner{fill:color-mix(in srgb, currentColor 10%, transparent);stroke:currentColor;stroke-width:2px}.stamp-mark .st-group{fill:currentColor;font:800 9px var(--font-ui);letter-spacing:.18em}.stamp-mark .st-mark{fill:currentColor;font:700 14px var(--font-display);font-variation-settings:"SOFT" 100, "opsz" 36}.stamp-mark .st-line{stroke:currentColor;stroke-width:1.5px;opacity:.5}.stamp-mark.locked{opacity:.45;filter:grayscale();color:var(--muted)!important}.stamp-modal{z-index:100;background:#1e140f73;place-items:center;padding:1rem;animation:.2s ease-out page-in;display:grid;position:fixed;inset:0}.stamp-modal-card{background:var(--surface);text-align:center;width:min(420px,100%);box-shadow:var(--shadow-float);border-radius:28px;flex-direction:column;align-items:center;gap:.3rem;padding:1.6rem 1.6rem 1.3rem;display:flex}.stamp-drop{margin:.4rem 0;animation:.55s cubic-bezier(.2,1.4,.4,1) .1s both stamp-in}@keyframes stamp-in{0%{opacity:0;transform:scale(2.2)rotate(-25deg)}70%{opacity:1;transform:scale(.94)rotate(4deg)}to{transform:none}}.stamp-modal-card h2{margin:.2rem 0 0}.actions.center{justify-content:center}.chip-stat.rest{background:var(--sage-soft);border-color:#c9dccd}:where([data-theme=dark]) .chip-stat.rest{border-color:#34503b}.memory-card{background:var(--dusk-soft);border:1px solid #cfdcee;border-radius:20px;flex-wrap:wrap;align-items:center;gap:1rem;margin:0 0 1.4rem;padding:1rem 1.3rem;display:flex}.memory-card.comeback{background:var(--surface);border-color:var(--border);box-shadow:var(--soft-shadow)}.memory-card>div:not(.fade-meter){flex-direction:column;flex:1;gap:.15rem;min-width:220px;display:flex}.memory-card strong{font-family:var(--font-display);font-variation-settings:"SOFT" 100, "opsz" 36;font-size:1.15rem}.fade-meter{gap:3px;display:flex}.fade-meter i{background:var(--dusk);border-radius:3px;width:6px;height:26px}.next-stamp{border:1px dashed var(--mint-300);color:var(--text);background:var(--surface);border-radius:20px;align-items:center;gap:1rem;margin:-1rem 0 2rem;padding:.9rem 1.2rem;display:flex}.next-stamp:hover{border-style:solid;text-decoration:none}.next-stamp>div{flex-direction:column;flex:1;gap:.15rem;display:flex}.next-stamp .kicker{margin:0}.next-stamp .mini-track{margin-top:.3rem;display:block;height:8px!important}.next-stamp .mini-track span{background:var(--accent-fill);border-radius:999px;height:100%;display:block}.weekly-recap{background:var(--surface);margin-bottom:1.6rem}.weekly-recap .kicker{margin:0}.recap-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.6rem;margin:.4rem 0 .8rem;display:grid}.recap-grid>div{background:var(--surface-2);border-radius:16px;flex-direction:column;padding:.7rem .9rem;display:flex}.recap-grid strong{font-family:var(--font-display);font-variation-settings:"SOFT" 100, "opsz" 72;font-size:1.6rem}.delta{color:var(--muted);font-size:.8rem;font-weight:600}.delta.up{color:var(--ok)}.delta.down{color:var(--ko)}.recap-stamps{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.petit-plus{margin:1rem 0}.petit-plus-closed{width:100%;font:inherit;color:var(--text);cursor:pointer;border:1.5px dashed var(--mustard);background:var(--mustard-soft);border-radius:22px;flex-direction:column;align-items:center;gap:.2rem;padding:1.3rem;transition:transform .15s;display:flex}.petit-plus-closed:hover{transform:translateY(-2px)}.petit-plus-closed .kicker{margin:0}.petit-plus-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--soft-shadow);border-radius:22px;padding:1.2rem 1.4rem;animation:.3s ease-out page-in}.petit-plus-card h3{font-family:var(--font-display);font-variation-settings:"SOFT" 100, "opsz" 72;flex-wrap:wrap;align-items:center;gap:.4rem;margin:.2rem 0;font-size:1.5rem;display:flex}.petit-plus-card p{margin:.3rem 0}.petit-plus-card .ex{font-family:var(--font-read);font-size:1.1rem;font-style:italic}.reg-tag{background:var(--plum-soft);color:var(--plum);border-radius:999px;margin-left:.5rem;padding:.1rem .5rem;font-size:.8rem;font-weight:700}.stamp-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1rem;display:grid}.stamp-cell{text-align:center;border-radius:18px;flex-direction:column;align-items:center;gap:.25rem;padding:.8rem .5rem;display:flex}.stamp-cell.earned{background:var(--surface);box-shadow:var(--soft-shadow)}.stamp-cell strong{font-size:.88rem;line-height:1.25}.expr-list{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.7rem;display:grid}.expr{background:var(--surface);border:1px solid var(--border);border-radius:16px;flex-direction:column;gap:.2rem;padding:.8rem 1rem;display:flex}.expr strong{align-items:center;gap:.3rem;display:flex}.btn.primary{background:var(--accent-fill);border-color:var(--accent-fill)}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:6px}.btn:focus-visible,.choice:focus-visible,.mm-chip:focus-visible,.segmented button:focus-visible{outline-offset:3px}.w.st0{-webkit-text-decoration:underline dotted var(--dusk);-webkit-text-decoration:underline dotted var(--dusk);text-decoration:underline dotted var(--dusk);text-underline-offset:.22em;text-decoration-thickness:2px;background:0 0!important}.w.st0:hover{background:var(--dusk-soft)!important}:where([data-theme=dark]) .w.st0{text-decoration-color:#7d9cc9}:where([data-theme=dark]) .w.st1{background:#e2a52c52!important}:where([data-theme=dark]) .w.st2{background:#e2a52c38!important}:where([data-theme=dark]) .w.st3{background:#e2a52c1f!important}.map{background:0 0;border:0;padding:0}.region{background:var(--surface);border:1px solid var(--border);box-shadow:var(--soft-shadow);padding:1rem}.region h2{font-size:1.05rem}.tiles{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px;display:grid}.tile{text-align:left;max-width:none;min-height:0;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:14px;justify-content:flex-start;align-items:flex-start;gap:.55rem;padding:.65rem .75rem;font-size:.9rem;font-weight:600;line-height:1.3;display:flex;position:relative}.tile:hover{filter:none;border-color:var(--mint-300);transform:translateY(-1px)}.tile.s-learning,.tile.s-mastered,.tile.s-weak{color:var(--text);font-weight:600}.tile.s-learning{background:var(--mustard-soft);border-color:#efd9a4}.tile.s-mastered{background:var(--sage-soft);border-color:#bfd6c5}.tile.s-weak{background:var(--ko-bg);border-color:#ebb9c3}.tile.due{border-style:dashed;border-color:var(--dusk);outline:none}.tile-ico{border:2px solid var(--mint-200);color:#fff;border-radius:50%;flex:none;place-items:center;width:1.3rem;height:1.3rem;margin-top:.05rem;font-size:.75rem;font-weight:900;display:inline-grid}.tile-ico.s-learning{border-color:var(--mustard);background:linear-gradient(90deg, var(--mustard) 50%, transparent 50%)}.tile-ico.s-mastered{border-color:var(--sage);background:var(--accent-fill)}.tile-ico.s-weak{border-color:var(--ko);background:var(--ko)}.tile-title{flex:1}.tile-due{color:var(--dusk);flex:none;align-self:center;font-size:.8rem;font-weight:700}:where([data-theme=dark]) .tile.s-learning{border-color:#5a4720}:where([data-theme=dark]) .tile.s-mastered{border-color:#34503b}:where([data-theme=dark]) .tile.s-weak{border-color:#5c2a35}.legend{color:var(--muted);flex-wrap:wrap;gap:.5rem 1.1rem;margin:.4rem 0 1rem;font-size:.86rem;display:flex}.legend>span{align-items:center;gap:.35rem;display:inline-flex}.legend .tile-ico{width:1.05rem;height:1.05rem;font-size:.65rem}.legend-due{border:2px dashed var(--dusk);border-radius:5px;width:1.05rem;height:1.05rem;display:inline-block}.ladder{flex-direction:column;gap:.6rem;margin-top:1rem;display:flex}.ladder-strip{align-items:end;gap:2px;height:46px;display:grid}.rung{background:var(--s-untested);cursor:pointer;border:0;border-radius:4px;align-items:flex-end;height:100%;padding:0;display:flex;overflow:hidden}.rung span{background:var(--mint-200);border-radius:4px;width:100%;display:block}.rung.on span{background:var(--accent-fill)}.rung.focus{outline:2px solid var(--ink);outline-offset:1px}.ladder-scale{justify-content:space-between;display:flex}.ladder .link{align-self:flex-start}.quiz-page{max-width:720px}.quiz-dots{gap:5px;margin:.3rem 0 1rem;display:flex}.qd{background:var(--s-untested);border-radius:999px;flex:1;height:8px;transition:background .2s}.qd.now{background:var(--mint-300)}.qd.ok{background:var(--accent-fill)}.qd.ko{background:var(--ko)}.qd.unchecked{background:var(--border-strong)}.quiz-page .question{padding:2rem 2.2rem}.quiz-page .prompt{font-size:1.65rem;line-height:1.5}.quiz-page .option{padding:.95rem 1.1rem;font-size:1.05rem}.quiz-page .option:active:not(:disabled){transform:scale(.99)}.option.right:after,.option.wrong:after{margin-left:auto;font-weight:900}.option.right:after{content:"✓";color:var(--ok)}.option.wrong:after{content:"✗";color:var(--ko)}@media (width<=640px){.quiz-page .question{padding:1.3rem 1.1rem}.quiz-page .prompt{font-size:1.35rem}}.steps{scrollbar-width:none;gap:.4rem;padding-bottom:2px;display:flex;overflow-x:auto}.steps::-webkit-scrollbar{display:none}.step{white-space:nowrap;border-radius:999px;flex:1 0 auto;justify-content:center;padding:.5rem .95rem}.step.on{border-color:var(--accent-fill);background:var(--terra-soft);color:var(--terra-deep)}.step.on .step-num{background:var(--accent-fill);color:#fff}.today-hero{padding-bottom:.6rem}.session-hero{margin-top:.6rem}.next-stamp{margin:0 0 2rem}.memory-card,.weekly-recap,.placement-cta{margin-bottom:1.4rem}.kicker{color:var(--muted)}.done-hero .kicker,.stamp-modal .kicker,.petit-plus .kicker{color:var(--terra-deep)}@media (width<=640px){.today-hero{grid-template-columns:1fr auto;align-items:start;gap:.4rem .8rem;display:grid}.today-hero h1{font-size:2.1rem}.today-hero>div:first-child{display:contents}.today-hero h1,.today-hero>div:first-child>p{grid-column:1}.goal-ring{grid-area:1/2/span 2;width:76px;height:76px}.goal-ring svg{width:76px;height:76px}.goal-ring .ring-text strong{font-size:1.15rem}.goal-ring .ring-text span{font-size:.8rem}.hero-stats{flex-wrap:wrap;grid-column:1/-1;gap:.4rem;display:flex}.hero-stats::-webkit-scrollbar{display:none}.hero-stats .chip-stat{white-space:nowrap;flex:none}}.example{border-left:3px solid var(--mint-200);background:0 0;border-radius:0;padding:.3rem 0 .3rem .8rem}.examples{flex-direction:column;gap:.45rem;display:flex}.counts{gap:.4rem;font-size:.88rem;font-weight:700;display:inline-flex}.counts .sep{color:var(--muted)}.stamp-more{font:inherit;border:1.5px dashed var(--border);cursor:pointer;background:0 0;justify-content:center;min-height:150px}.stamp-more>span:first-child{font-family:var(--font-display);color:var(--muted);font-size:1.8rem;font-weight:700}.fsi-more{margin-top:.8rem}.fsi-more summary{cursor:pointer;color:var(--link);font-size:.9rem;font-weight:600}.fsi-more[open] summary{margin-bottom:.6rem}@media (width<=640px){.tutor-modes{scrollbar-width:none;flex-wrap:nowrap;max-width:100%;display:flex;overflow-x:auto}.tutor-modes::-webkit-scrollbar{display:none}.tutor-modes button{white-space:nowrap;flex:none}.reader-head{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.6rem;display:grid}.reader-head h1{margin:0;font-size:1.7rem}.reader-head .btn{padding:.45rem .85rem}.reader-text{padding:1.1rem 1.1rem 1.1rem 1.3rem;font-size:1.18rem}}.shelf-item.has-cover{flex-direction:row;align-items:flex-start;gap:.9rem;display:flex}.shelf-item.has-cover .cover{border-radius:6px;flex:none;width:74px;height:auto;transition:transform .2s;transform:rotate(-1.5deg);box-shadow:0 2px #0000000f,0 6px 14px #3c231429}.shelf-item.has-cover:hover .cover{transform:rotate(0)translateY(-2px)}.shelf-body{flex-direction:column;flex:1;gap:.3rem;min-width:0;display:flex}.shelf-item.serial.has-cover,.shelf-item.book.has-cover{border-top-width:1px;border-left-width:1px}.cover-title{font-family:var(--font-display);font-variation-settings:"SOFT" 100, "opsz" 36;color:#fff;-webkit-line-clamp:4;-webkit-box-orient:vertical;font-size:11px;font-weight:700;line-height:1.15;display:-webkit-box;overflow:hidden}.cover-label{font:800 10px var(--font-ui);letter-spacing:.08em}.onb-lede{color:var(--muted);margin:-.2rem 0 1rem;font-size:1.05rem}.onb-benefits{flex-direction:column;gap:.85rem;margin:0 0 1.3rem;padding:0;list-style:none;display:flex}.onb-benefits li{align-items:flex-start;gap:.8rem;display:flex}.onb-benefits li>span:last-child{flex-direction:column;gap:.1rem;display:flex}.onb-benefits li>span:last-child>span{color:var(--muted);font-size:.94rem}.onb-ico{background:var(--terra-soft);width:42px;height:42px;color:var(--terra-deep);border-radius:50%;flex:none;place-items:center;display:grid}.onb-benefits li:nth-child(2) .onb-ico{background:var(--sage-soft);color:var(--sage)}.onb-benefits li:nth-child(3) .onb-ico{background:var(--dusk-soft);color:var(--dusk)}:root:where([data-theme=dark]){--mm-bg:#1d1b1b}:where([data-theme=dark]) .session-hero{background:var(--surface)}:where([data-theme=dark]) .placement-cta{background:#2a2416}:where([data-theme=dark]) .weekly-recap,:where([data-theme=dark]) .memory-card.comeback,:where([data-theme=dark]) .eval-cta,:where([data-theme=dark]) .story-maker{background:var(--surface)}:where([data-theme=dark]) .memory-card{background:#1c2330;border-color:#2c3a50}.liaison{vertical-align:-.12em;border:2px solid var(--terra);border-top:0;border-radius:0 0 .6em .6em;width:.55em;height:.3em;margin:0 .06em;display:inline-block}.forecast{color:var(--text);flex-direction:column;gap:.3rem;display:flex}.forecast .kicker{margin:0}.forecast strong{font-family:var(--font-display);font-variation-settings:"SOFT" 100, "opsz" 36;font-size:1.25rem;font-weight:600}.forecast-date{color:var(--terra-deep)}.forecast.compact{border:1px solid var(--border);background:var(--surface);box-shadow:var(--soft-shadow);border-radius:20px;margin:0 0 1rem;padding:.9rem 1.2rem}.forecast.compact:hover{border-color:var(--mint-300);text-decoration:none}.forecast.card{margin-bottom:1.4rem}.forecast-track{background:var(--s-untested);border-radius:999px;height:8px;margin-top:.35rem;display:block;overflow:hidden}.forecast-track span{background:var(--accent-fill);border-radius:999px;height:100%;display:block}.forecast-whatif{flex-direction:column;gap:.2rem;margin-top:.6rem;font-size:.92rem;display:flex}.forecast-whatif strong{font-family:var(--font-ui);font-size:inherit;font-weight:700}.lesson-audio{flex-wrap:wrap;gap:.5rem;margin:0 0 1rem;display:flex}.al-intro{text-align:center;flex-direction:column;align-items:center;gap:.5rem;padding:2rem 1.6rem;display:flex}.al-intro h1{margin:0}.al-intro p{max-width:34rem}.al-points{text-align:left;color:var(--muted);margin:.2rem 0 .8rem;padding-left:1.2rem}.al-start{padding:.85rem 2.4rem;font-size:1.15rem}.al-top{justify-content:space-between;align-items:baseline;display:flex}.al-track{background:var(--s-untested);border-radius:999px;height:6px;margin:.5rem 0 1.2rem;display:block;overflow:hidden}.al-track span{background:var(--accent-fill);height:100%;transition:width .4s;display:block}.al-stage{text-align:center;background:var(--surface);border:1px solid var(--border);min-height:360px;box-shadow:var(--soft-shadow);border-radius:28px;flex-direction:column;align-items:center;gap:.5rem;padding:2rem 1.4rem;display:flex}.al-orb{border-radius:50%;padding:10px;transition:box-shadow .3s}.al-orb.speaking{animation:1.4s ease-in-out infinite al-speak}.al-orb.listening{animation:1.2s ease-in-out infinite al-listen;box-shadow:0 0 0 10px #4f7d5c2e,0 0 0 22px #4f7d5c14}@keyframes al-speak{50%{box-shadow:0 0 0 12px #c04a2e1f}}@keyframes al-listen{50%{box-shadow:0 0 0 16px #4f7d5c38,0 0 0 30px #4f7d5c0f}}.al-status{color:var(--muted);margin:.3rem 0 0;font-weight:700}.al-stage.listening .al-status,.al-stage.waiting .al-status{color:var(--sage)}.al-en{font-family:var(--font-display);font-variation-settings:"SOFT" 100, "opsz" 72;max-width:30rem;margin:.2rem 0;font-size:1.7rem;font-weight:600}.al-fr{font-family:var(--font-read);color:var(--terra-deep);margin:0;font-size:1.4rem}.al-heard{margin:.2rem 0 0;font-size:.95rem}.al-heard.ok{color:var(--ok)}.al-heard.ko{color:var(--muted)}.al-controls{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;margin-top:1rem;display:flex}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.chip-stat.points .num{color:var(--terra-deep)}.chip-stat.points.met{background:var(--sage-soft)}.continue-hero{border:1.5px solid var(--terra-soft);background:linear-gradient(160deg, var(--terra-soft), var(--surface) 55%);margin-top:.6rem;padding:1.3rem 1.4rem 1.1rem}.ch-top{align-items:flex-start;gap:1rem;display:flex}.ch-top .hero-badge{flex:none}.ch-body{min-width:0}.ch-body h2{align-items:center;gap:.5rem;margin:.15rem 0 .25rem;font-size:1.5rem;display:flex}.ch-ico{background:var(--surface);width:2rem;height:2rem;color:var(--terra-deep);border:1px solid var(--border);border-radius:50%;flex:none;place-items:center;display:inline-grid}.ch-actions{flex-wrap:wrap;align-items:center;gap:1rem;margin:1rem 0 .9rem;display:flex}.ch-go{min-width:12rem;padding:.8rem 2.2rem;font-size:1.1rem}.muted-inv{opacity:.95;font-size:.9em;font-weight:500}.ch-goals{border-top:1px dashed var(--border);color:var(--muted);flex-wrap:wrap;gap:.4rem 1rem;margin:0;padding:.7rem 0 0;font-size:.85rem;list-style:none;display:flex}.ch-goals li{align-items:center;gap:.35rem;display:inline-flex}.ch-goals li.done{color:var(--ok);text-decoration:line-through;-webkit-text-decoration-color:color-mix(in srgb, var(--ok) 40%, transparent);-webkit-text-decoration-color:color-mix(in srgb, var(--ok) 40%, transparent);text-decoration-color:color-mix(in srgb, var(--ok) 40%, transparent)}.ch-goals li.now{color:var(--text);font-weight:600}.g-dot{border:1.5px solid;border-radius:50%;place-items:center;width:1rem;height:1rem;display:inline-grid}.ch-goals li.done .g-dot{background:var(--ok);border-color:var(--ok);color:#fff}.ch-goals li.now .g-dot{border-color:var(--accent-fill);box-shadow:0 0 0 3px var(--terra-soft)}.alt-ways{flex-wrap:wrap;align-items:center;gap:.35rem;margin:-.4rem 0 1.4rem;display:flex}.alt-ways .week-dots{display:inline-flex}.line{align-items:center;margin:.6rem 0 .3rem;padding:0;list-style:none;display:flex}.line .stop{flex:1;align-items:center;display:flex;position:relative}.line .stop:last-child{flex:none}.line .stop:after{content:"";background:var(--s-untested);border-radius:2px;flex:1;height:4px;margin:0 2px}.line .stop:last-child:after{display:none}.line .stop.done:after{background:var(--accent-fill)}.line .dot,.route .dot{background:var(--surface);border:2.5px solid var(--s-untested);width:1.9rem;height:1.9rem;color:var(--muted);border-radius:50%;flex:none;place-items:center;font-size:.85rem;font-weight:700;display:inline-grid}.line a{border-radius:50%;text-decoration:none;display:inline-flex}.stop.done .dot,.station.done .dot{background:var(--accent-fill);border-color:var(--sage);color:#fff}.stop.weak .dot,.station.weak .dot{background:var(--mustard-soft);border-color:var(--mustard);color:var(--text)}.stop.current .dot,.station.current .dot{border-color:var(--accent-fill);background:var(--accent-fill);box-shadow:0 0 0 5px var(--terra-soft);animation:2.4s ease-in-out infinite station-pulse}.stop.here .dot{box-shadow:0 0 0 4px var(--terra-soft)}.stop.story .dot,.station.story .dot{border-radius:8px}.stop.story.open .dot,.station.story.open .dot{background:var(--mustard);border-color:var(--mustard);color:var(--text)}@keyframes station-pulse{50%{box-shadow:0 0 0 9px #0000}}@media (prefers-reduced-motion:reduce){.stop.current .dot,.station.current .dot{animation:none}}.path-strip h2{margin:0;font-size:1.15rem}.ps-title{margin:.1rem 0 0}.ps-foot{color:var(--muted);margin:.4rem 0 0}.path-page .unit{margin-bottom:1rem}.path-page .unit.active{border-color:var(--terra-soft);box-shadow:var(--soft-shadow)}.unit-head{justify-content:space-between;align-items:center;display:flex}.route{margin:.6rem 0 0;padding:0;list-style:none}.station{align-items:center;gap:.8rem;padding:.45rem 0;display:flex;position:relative}.station:before{content:"";background:var(--s-untested);width:4px;height:1rem;position:absolute;top:-.5rem;left:calc(.95rem - 2px)}.station:first-child:before{display:none}.station.done:before,.station.weak:before{background:var(--accent-fill)}.station>a:not(.btn){min-width:0;color:inherit;flex-direction:column;flex:1;text-decoration:none;display:flex}.station>a:not(.btn) strong{font-weight:600}.station.upcoming>a:not(.btn) strong{color:var(--muted);font-weight:500}.unit.checkpoint{border-style:dashed}.learn-top{align-items:center;gap:.8rem;margin-bottom:.4rem;display:flex}.learn-top .al-track{flex:1;height:10px;margin:0}.learn-close{color:var(--muted);display:inline-flex}.streak-chip{color:var(--terra-deep);background:var(--terra-soft);border-radius:999px;align-items:center;gap:.2rem;padding:.15rem .6rem;font-size:.85rem;font-weight:700;display:inline-flex}.bite{margin-top:.8rem;animation:.25s ease-out bite-in}@keyframes bite-in{0%{opacity:0;transform:translateY(6px)}}@media (prefers-reduced-motion:reduce){.bite{animation:none}}.bite-title{margin:.2rem 0 .6rem;font-size:1.6rem}.bite .markup h2{margin-top:0}.bite-kicker{margin:1rem 0 .3rem}.combo-flash{color:var(--terra-deep);margin:0 0 .4rem;font-size:.9rem;font-weight:700}.rule-peek{margin-top:1rem}.rule-peek summary{cursor:pointer;color:var(--link)}.say-list{gap:.6rem;margin:.8rem 0;padding:0;list-style:none;display:grid}.say-list li{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);align-items:center;gap:.6rem;padding:.7rem .8rem;display:flex}.say-list li.ok{border-color:var(--ok);background:var(--ok-bg)}.say-text{flex-direction:column;flex:1;min-width:0;display:flex}.say-text strong{font-size:1.1rem}.mic-btn{border-radius:50%;place-items:center;width:2.6rem;height:2.6rem;padding:0;display:inline-grid}.mic-btn.on{background:var(--accent-fill);color:#fff;border-color:var(--accent-fill)}.unit-progress{text-align:center;margin:1rem 0}.unit-progress .line{max-width:360px;margin:.6rem auto .2rem}.unit-progress.celebrate{border:1.5px solid var(--mustard);background:var(--mustard-soft)}.unit-progress h2{margin:.2rem 0}.continue-next{flex-direction:column;align-items:center;gap:.25rem;display:inline-flex}.continue-btn{min-width:11rem;font-size:1.05rem}@media (width<=640px){.ch-top .hero-badge{width:52px;height:52px}.ch-body h2{font-size:1.25rem}.ch-go{width:100%}.continue-hero{padding:1rem}}.crash-detail{white-space:pre-wrap;background:var(--surface-2);color:var(--muted);border-radius:10px;padding:.7rem .9rem;font-size:.8rem}.onb-journey{background:var(--bg);flex-direction:column;min-height:100dvh;display:flex}.onb-top{align-items:center;gap:1rem;width:min(880px,100%);margin:0 auto;padding:1.4rem 1.2rem .4rem;display:flex}.onb-back{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:.2rem .4rem;font-size:1.5rem;line-height:1}.onb-progress{background:var(--surface-2);border-radius:999px;flex:1;height:12px;overflow:hidden}.onb-progress span{border-radius:inherit;background:linear-gradient(90deg, var(--terra), var(--saffron,var(--mustard)));height:100%;transition:width .35s;display:block}.onb-body{flex:1;width:min(760px,100%);margin:0 auto;padding:1.6rem 1.2rem 2rem;animation:.25s ease-out bite-in}.onb-coach{align-items:center;gap:1rem;margin-bottom:1.8rem;display:flex}.onb-coach>:first-child{flex:none}.onb-bubble{background:var(--surface);border:1.5px solid var(--border);box-shadow:var(--soft-shadow);border-radius:18px;flex-direction:column;gap:.2rem;padding:.85rem 1.1rem;display:flex;position:relative}.onb-bubble:before{content:"";background:var(--surface);border-left:1.5px solid var(--border);border-bottom:1.5px solid var(--border);width:16px;height:16px;position:absolute;top:50%;left:-9px;transform:translateY(-50%)rotate(45deg)}.onb-bubble strong{font-family:var(--font-display);font-size:1.35rem;font-weight:600}.onb-bubble span{color:var(--muted);font-size:.95rem}.onb-grid{gap:.7rem;max-width:560px;margin:0 auto;display:grid}.onb-grid.two{grid-template-columns:1fr 1fr;max-width:none}.onb-tile{text-align:left;width:100%;min-height:4rem;font:inherit;color:var(--text);background:var(--surface);border:1.5px solid var(--border);cursor:pointer;border-radius:16px;align-items:center;gap:.9rem;padding:.8rem 1rem;font-weight:600;transition:border-color .15s,background .15s,transform .1s;display:flex}.onb-tile:hover{border-color:var(--terra-soft)}.onb-tile:active{transform:scale(.99)}.onb-tile.on{border-color:var(--accent-fill);background:var(--terra-soft);box-shadow:0 0 0 3px color-mix(in srgb, var(--terra) 18%, transparent)}.onb-tico{background:var(--terra-soft);width:2.6rem;height:2.6rem;color:var(--terra-deep);border-radius:12px;flex:none;place-items:center;display:grid}.onb-tico.t-career,.onb-tico.t-move{background:var(--dusk-soft);color:var(--dusk)}.onb-tico.t-studies,.onb-tico.t-mind{background:var(--sage-soft);color:var(--sage)}.onb-tico.t-culture,.onb-tico.t-other{background:var(--plum-soft);color:var(--plum)}.onb-tico.t-travel{background:var(--mustard-soft);color:var(--text)}.onb-tt{flex-direction:column;flex:1;gap:.15rem;min-width:0;display:flex}.onb-tt span{color:var(--muted);font-size:.9rem;font-weight:400}.onb-right{color:var(--muted);white-space:nowrap;margin-left:auto;font-size:.9rem;font-weight:500}.onb-num{font-family:var(--font-display);text-align:center;width:2.6rem;color:var(--terra-deep);font-size:1.7rem}.onb-tag{color:var(--ok);background:var(--ok-bg);white-space:nowrap;border-radius:999px;margin-left:auto;padding:.2rem .55rem;font-size:.75rem;font-weight:700}.onb-bars{flex:none;justify-content:center;align-items:flex-end;gap:3px;width:2.6rem;display:inline-flex}.onb-bars span{background:var(--s-untested);border-radius:2px;width:6px}.onb-bars span.on{background:var(--accent-fill)}.onb-promise{gap:0;max-width:560px;margin:0 auto;padding:0;list-style:none;display:grid}.onb-promise li{border-bottom:1px solid var(--border);align-items:flex-start;gap:1rem;padding:1.1rem 0;display:flex}.onb-promise li:last-child{border-bottom:0}.onb-promise li>span:last-child{flex-direction:column;gap:.2rem;display:flex}.onb-promise strong{font-size:1.1rem}.onb-promise li>span:last-child>span{color:var(--muted)}.onb-note{max-width:560px;color:var(--muted);text-align:center;margin:1rem auto 0;font-size:.95rem}.onb-foot{border-top:1px solid var(--border);background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:1rem 1.2rem calc(1rem + env(safe-area-inset-bottom));justify-content:flex-end;display:flex;position:sticky;bottom:0}.onb-foot .onb-continue{min-width:12rem;font-size:1.05rem}@media (width>=900px){.onb-foot{padding-right:max(1.2rem,50vw - 440px)}}@media (width<=640px){.onb-grid.two{grid-template-columns:1fr}.onb-coach .spark-badge,.onb-coach svg:first-child{width:56px;height:56px}.onb-bubble strong{font-size:1.15rem}.onb-foot .onb-continue{width:100%}.onb-body{padding-top:1rem}}.coverage-track{position:relative}.coverage-track .coverage-fill{position:absolute;top:0;left:0}.coverage-fill.maybe{background:repeating-linear-gradient(135deg, var(--s-learning) 0 6px, transparent 6px 12px);opacity:.6}.listen-scores{background:var(--surface-2);border-radius:12px;flex-direction:column;gap:.25rem;margin-top:.8rem;padding:.8rem 1rem;font-size:.9rem;display:flex}.why-wrong{flex-direction:column;gap:.6rem;margin:.6rem 0;display:flex}.rule-box{border-left:3px solid var(--brand);background:var(--surface);border-radius:0 12px 12px 0;padding:.6rem .9rem;font-size:.93rem}.rule-box .markup>:first-child{margin-top:.3rem}.rule-box .markup table{font-size:.88rem}.ai-explain{background:var(--surface);border-radius:12px;padding:.6rem .9rem;font-size:.93rem}.ai-explain p{margin:.3rem 0}.word-check .wc-word{font-family:var(--font-display);text-align:center;margin:.6rem 0;font-size:2rem}.word-check .wc-gloss{text-align:center;font-size:1.1rem}.coach-explainer{color:var(--muted);font-size:.88rem}.coach-explainer dt{color:var(--text);margin-top:.5rem;font-weight:600}.coach-explainer dd{margin:.1rem 0 0}.milestones{gap:.15rem;margin:.6rem 0 0;padding:0;list-style:none;display:grid}.milestones li{border-bottom:1px solid var(--border);align-items:center;gap:.8rem;padding:.55rem 0;display:flex}.milestones li:last-child{border-bottom:0}.ms-dot{border:2px solid var(--s-untested);color:#fff;border-radius:50%;flex:none;place-items:center;width:1.4rem;height:1.4rem;display:grid}.milestones li.done .ms-dot{background:var(--accent-fill);border-color:var(--sage)}.ms-body{flex-direction:column;flex:1;min-width:0;display:flex}.ms-num{font-variant-numeric:tabular-nums;white-space:nowrap;flex-direction:column;align-items:flex-end;gap:.25rem;font-size:.85rem;display:flex}.ms-bar{background:var(--surface-2);border-radius:999px;width:6rem;height:6px;overflow:hidden}.ms-bar span{background:var(--accent-fill);height:100%;display:block}.effort-note{margin-top:.4rem}.splash{place-items:center;min-height:70vh;display:grid}.splash .brand-mark{width:56px;height:56px;animation:1.4s ease-in-out infinite splash-pulse}@keyframes splash-pulse{50%{opacity:.45;transform:scale(.94)}}.auth-card h1{margin-bottom:0}.auth-form{flex-direction:column;gap:.8rem;display:flex}.auth-form label{flex-direction:column;gap:.3rem;font-size:.92rem;font-weight:600;display:flex}.auth-form input{font:inherit;border:1.5px solid var(--border);background:var(--surface);color:var(--text);border-radius:12px;width:100%;padding:.7rem .85rem;font-weight:400}.auth-form input:focus{border-color:var(--accent-fill);box-shadow:0 0 0 3px var(--terra-soft);outline:none}.pw-field{display:block;position:relative}.pw-field .link{position:absolute;top:50%;right:.8rem;transform:translateY(-50%)}.onb-account{max-width:440px;margin:0 auto}.onb-card .btn.wide{text-align:center;justify-content:center}.auth-form label{align-self:stretch}.auth-form input{box-sizing:border-box;max-width:none}.pw-field input{padding-right:4rem}.legal-table{border-collapse:collapse;width:100%;margin:.6rem 0 1rem;font-size:.88rem}.legal-table th,.legal-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--border);padding:.5rem .6rem}.legal-table th{background:var(--surface-2);font-weight:600}@media (width<=640px){.legal-table thead{display:none}.legal-table tr{border-bottom:1px solid var(--border);padding:.5rem 0;display:block}.legal-table td{border:0;padding:.15rem 0;display:block}.legal-table td:first-child{font-weight:600}}.google-btn{background:var(--surface);border:1.5px solid var(--border);color:var(--text);justify-content:center;align-items:center;gap:.6rem;font-weight:600;display:inline-flex}.or-line{color:var(--muted);align-items:center;gap:.7rem;font-size:.82rem;display:flex}.or-line:before,.or-line:after{content:"";background:var(--border);flex:1;height:1px}.consent-check{align-items:flex-start;flex-direction:row!important;gap:.55rem!important;font-size:.88rem!important;font-weight:400!important}.consent-check input{margin-top:.2rem;width:auto!important}.consent-check a{text-decoration:underline}.share{flex-direction:column;gap:.8rem;display:flex}.share-row{grid-template-columns:repeat(3,1fr);gap:.5rem;display:grid}.share-btn{border:1.5px solid var(--border);background:var(--surface);color:var(--text);border-radius:12px;justify-content:center;align-items:center;padding:.7rem .5rem;font-size:.92rem;font-weight:600;text-decoration:none;display:flex}.share-btn:hover{border-color:var(--terra-soft)}.share-btn.wa{border-color:color-mix(in srgb, #25d366 45%, var(--border))}.share-link{gap:.5rem;display:flex}.share-link input{min-width:0;font:inherit;border:1.5px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:12px;flex:1;padding:.6rem .8rem;font-size:.9rem}.invite-count{margin-top:1rem}.invite-card{align-items:center;gap:.9rem;margin-bottom:1.4rem;display:flex}.invite-card>div{flex-direction:column;flex:1;gap:.15rem;display:flex}.invite-ico{background:var(--terra-soft);width:2.4rem;height:2.4rem;color:var(--terra-deep);border-radius:12px;flex:none;place-items:center;display:grid}.invited{background:var(--mustard-soft);border-radius:12px;margin:0;padding:.55rem .8rem;font-size:.92rem;font-weight:600}@media (width<=640px){.invite-card{flex-wrap:wrap}}.admin h2{margin:0 0 .6rem;font-size:1.05rem}.admin h3{color:var(--muted);margin:.9rem 0 .3rem;font-size:.85rem;font-weight:600}.ad-h{margin:1.6rem 0 .6rem!important;font-size:1.3rem!important}.ad-tiles{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.6rem;margin:.8rem 0 1rem;display:grid}.ad-tiles.small{grid-template-columns:repeat(3,1fr);margin-top:0}.ad-tile{background:var(--surface);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:.1rem;padding:.8rem .9rem;display:flex}.ad-tile strong{font-family:var(--font-display);font-variant-numeric:tabular-nums;color:var(--text);font-size:1.6rem}.ad-tile span{color:var(--muted);font-size:.82rem}.ad-grid{grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem;display:grid}.ad-grid>.card{min-width:0;margin:0}@media (width<=860px){.ad-grid{grid-template-columns:1fr}}.ad-cols{margin:0}.ad-cols-plot{border-bottom:1px solid var(--border);align-items:flex-end;gap:2px;height:140px;display:flex}.ad-col{flex:1;align-items:flex-end;height:100%;display:flex;position:relative}.ad-col>span{background:var(--accent-fill);border-radius:4px 4px 0 0;width:100%;min-height:1px;display:block}.ad-col em{background:var(--text);color:var(--bg);white-space:nowrap;border-radius:6px;padding:.1rem .35rem;font-size:.72rem;font-style:normal;display:none;position:absolute;bottom:calc(100% + 2px);left:50%;transform:translate(-50%)}.ad-col:hover em{display:block}.ad-col:hover>span{background:var(--accent-fill-hover)}.ad-cols figcaption{color:var(--muted);justify-content:space-between;margin-top:.3rem;font-size:.75rem;display:flex}.ad-bars,.ad-funnel{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.ad-bars li,.ad-funnel li{grid-template-columns:minmax(0,11rem) 1fr auto;align-items:center;gap:.6rem;font-size:.86rem;display:grid}.ad-bar-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ad-bar{background:var(--surface-2);border-radius:999px;height:10px;overflow:hidden}.ad-bar>span{background:var(--accent-fill);border-radius:999px;height:100%;display:block}.ad-funnel .ad-bar{height:14px}.ad-bar-val{font-variant-numeric:tabular-nums;white-space:nowrap}.ad-bar-val em{color:var(--muted);font-style:normal}.ad-cohorts{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin-top:.8rem;font-size:.82rem}.ad-cohorts th,.ad-cohorts td{text-align:right;border-bottom:1px solid var(--border);padding:.35rem .4rem}.ad-cohorts th:first-child,.ad-cohorts td:first-child{text-align:left}.ad-reports{gap:.6rem;max-height:420px;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.ad-reports li{border-bottom:1px solid var(--border);flex-direction:column;gap:.15rem;padding-bottom:.5rem;font-size:.9rem;display:flex}ul.plain{margin:0 0 .6rem;padding:0;font-size:.9rem;list-style:none}.vocab-actions{flex-wrap:wrap;gap:.5rem;display:flex}.section-gap{margin:1.5rem 0}.my-decks{flex-direction:column;gap:1rem;display:flex}.quick-add h3{margin:0 0 .6rem}.card-form.quick{flex-direction:column;gap:.55rem;display:flex}.card-form.quick .text-input{width:100%}.en-row{align-items:center;gap:.5rem;display:flex}.en-row .text-input{flex:1;min-width:0}.auto-note{margin:-.15rem 0 0}.deck-pick{align-items:center;gap:.5rem;display:flex}.deck-pick select,.es-select,.card-form.inline select{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;max-width:100%;padding:.4rem .55rem}.deck-actions{flex-wrap:wrap;align-items:center;gap:.9rem;margin-top:.4rem;font-size:.9rem;display:flex}.deck-body{flex-direction:column;gap:.8rem;margin-top:.8rem;display:flex}.deck.new-deck{font:inherit;color:var(--terra-deep,var(--brand));border:1.5px dashed var(--border);cursor:pointer;text-align:center;background:0 0;border-radius:14px;padding:1rem;font-weight:650}.deck.new-deck:hover{border-color:var(--terra,var(--brand))}.new-deck-form{flex-direction:column;gap:.5rem;display:flex}.card-form.inline{flex-wrap:wrap;align-items:center;gap:.4rem;width:100%;display:flex}.card-form.inline .text-input{flex:8rem;min-width:0;padding:.35rem .5rem}.extra-study{margin:1.5rem 0}.extra-study h2{margin-top:0}.es-list{flex-direction:column;margin:.6rem 0 0;padding:0;list-style:none;display:flex}.es-list li{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:.9rem;padding:.75rem 0;display:flex}.es-list li>div:first-child{flex-direction:column;gap:.2rem;min-width:0;display:flex}.es-actions{flex:none;gap:.35rem;display:flex}.es-list .btn{flex:none}.btn.disabled{opacity:.45;pointer-events:none}.es-select{margin-top:.3rem}.practice-dir{margin:.25rem 0 .75rem}.ratings.two{grid-template-columns:1fr 1fr}.vs-tiles{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem;margin-bottom:1.25rem;display:grid}.vs-tiles .tile{background:var(--surface);border:1px solid var(--border);border-radius:16px;flex-direction:column;gap:.15rem;padding:.9rem 1rem;display:flex}.tile-num{font-family:var(--font-display,inherit);color:var(--text);font-variant-numeric:tabular-nums;font-size:1.9rem;font-weight:700;line-height:1.1}.tile-label{color:var(--muted);font-size:.82rem}.vocab-stats .card{margin-bottom:1.25rem}.vs-chart{margin:.5rem 0 0}.vs-bars{border-bottom:1px solid var(--border);align-items:flex-end;gap:2px;height:150px;padding-bottom:20px;display:flex;position:relative}.vs-col{outline:none;flex-direction:column;flex:1;justify-content:flex-end;align-items:center;min-width:0;height:100%;display:flex;position:relative}.vs-bar{background:var(--terra,var(--brand));border-radius:4px 4px 0 0;width:100%;max-width:22px;min-height:2px}.vs-bar.zero{background:var(--border)}.vs-col:hover .vs-bar,.vs-col:focus .vs-bar{background:var(--terra-deep,var(--brand-hover))}.vs-x{color:var(--muted);white-space:nowrap;font-size:.7rem;position:absolute;bottom:-20px}.vs-col[data-tip]:hover:after,.vs-col[data-tip]:focus:after{content:attr(data-tip);background:var(--text);color:var(--surface);white-space:nowrap;z-index:3;pointer-events:none;border-radius:8px;padding:.3rem .5rem;font-size:.75rem;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.vs-col:first-child[data-tip]:hover:after,.vs-col:first-child[data-tip]:focus:after{left:0;transform:none}.vs-col:last-child[data-tip]:hover:after,.vs-col:last-child[data-tip]:focus:after{left:auto;right:0;transform:none}.vs-table{margin-top:1.6rem}.vs-table summary{cursor:pointer;color:var(--muted)}.vs-table table{width:100%;margin-top:.4rem}.vs-stack{background:var(--surface-2);border-radius:6px;gap:2px;height:18px;display:flex;overflow:hidden}.vs-stack .seg,.vs-legend .sw{background:var(--border)}.vs-stack .seg.learning,.vs-legend .sw.learning{background:var(--mint-200)}.vs-stack .seg.young,.vs-legend .sw.young{background:var(--mint-400)}.vs-stack .seg.mature,.vs-legend .sw.mature{background:var(--accent-fill)}.vs-stack .seg.todo,.vs-legend .sw.todo{background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--border)}.vs-legend{flex-direction:column;gap:.35rem;margin:.75rem 0 0;padding:0;font-size:.92rem;list-style:none;display:flex}.vs-legend .sw{vertical-align:-1px;border-radius:3px;width:12px;height:12px;margin-right:.45rem;display:inline-block}.breakdown .num{text-align:right;font-variant-numeric:tabular-nums}.vs-decks tr.off td{color:var(--muted)}.vs-decks th{text-align:left;color:var(--muted);font-size:.8rem;font-weight:600}@media (width<=560px){.es-list li{flex-direction:column;align-items:stretch}.es-actions .btn{flex:1}}.save-progress{font:inherit;color:var(--on-accent,#fff);background:var(--terra,var(--brand));cursor:pointer;white-space:nowrap;border:none;border-radius:999px;padding:.4rem .85rem;font-size:.82rem;font-weight:700}.email-offer .stamp-modal-card{width:min(440px,100%);max-height:calc(100vh - 2rem);overflow-y:auto}.email-offer .eo-form{text-align:left;width:100%;max-width:none}.email-offer .eo-actions{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.account-prompt .stamp-modal-card{width:min(440px,100%);max-height:calc(100vh - 2rem);overflow-y:auto}.account-prompt .ap-form{text-align:left;width:100%}.account-prompt .ap-form .auth-form{max-width:none;margin-top:.4rem}.guest-note{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.guest-note p{flex:14rem;margin:0}.drill{flex-direction:column;gap:.9rem;display:flex}.drill-field{flex-direction:column;gap:.4rem;display:flex}.drill-label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:.78rem;font-weight:700}.drill-chips{flex-wrap:wrap;gap:.4rem;display:flex}.drill-chip{font:inherit;border:1.5px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:999px;padding:.4rem .8rem;font-size:.9rem}.drill-chip.on{background:var(--accent-fill);border-color:var(--accent-fill);color:#fff}.drill-check{align-items:center;gap:.5rem;font-size:.95rem;display:flex}.drill-go{font:inherit;background:var(--accent-fill);color:#fff;cursor:pointer;border:none;border-radius:999px;align-self:flex-start;padding:.75rem 1.4rem;font-size:1.05rem;font-weight:700}.drill-go:disabled{opacity:.45;cursor:default}.drill-go.small{margin-left:auto;padding:.4rem .9rem;font-size:.9rem}.drill-ghost{font:inherit;border:1.5px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:999px;padding:.7rem 1.2rem;font-weight:600}.drill-muted{color:var(--muted);margin:0;font-size:.9rem}.drill-top{font-variant-numeric:tabular-nums;justify-content:space-between;font-weight:700;display:flex}.drill-streak{color:var(--terra)}.drill-bar{background:var(--surface-2,var(--border));border-radius:999px;height:6px;overflow:hidden}.drill-bar span{background:var(--accent-fill);height:100%;transition:width .25s linear;display:block}.drill-q{text-align:center;padding:.6rem 0}.drill-tense{letter-spacing:.04em;background:var(--terra-soft);color:var(--terra);border-radius:999px;padding:.2rem .7rem;font-size:.78rem;font-weight:700;display:inline-block}.drill-prompt{font-family:var(--font-reading);margin:.5rem 0 .2rem;font-size:clamp(1.7rem,7vw,2.4rem)}.drill-subject{color:var(--muted)}.drill-input{font:inherit;text-align:center;border:2px solid var(--border);background:var(--surface);color:var(--text);box-sizing:border-box;border-radius:14px;width:100%;padding:.7rem;font-size:1.4rem}.drill-input:focus{border-color:var(--accent-fill);outline:none}.drill-input.ok{background:var(--sage-soft,#e3eee5);border-color:#4f7d5c}.drill-input.ko{border-color:var(--accent-fill);background:var(--terra-soft)}.drill-feedback{border-radius:12px;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.7rem .9rem;display:flex}.drill-feedback.ok{background:var(--sage-soft,#e3eee5)}.drill-feedback.ko{background:var(--terra-soft)}.drill-done{text-align:center;align-items:center}.drill-kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--terra);font-size:.78rem;font-weight:700}.drill-score{font-family:var(--font-ui);color:var(--terra);font-size:4rem;font-weight:700;line-height:1}.drill-score span{color:var(--muted);font-size:1.6rem}.drill-missed{text-align:left;width:100%;margin:0;padding:0;list-style:none}.drill-missed li{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:baseline;gap:.3rem .8rem;padding:.45rem 0;display:flex}.drill-missed s{color:var(--muted)}.drill-actions{flex-wrap:wrap;justify-content:center;gap:.6rem;display:flex}.drill-done .drill-go{align-self:center}.more-ways{border:1px solid var(--border);background:var(--surface);border-radius:16px;margin:1.25rem 0 .5rem}.more-ways>summary{cursor:pointer;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1.1rem;font-weight:700;list-style:none;display:flex}.more-ways>summary::-webkit-details-marker{display:none}.more-ways>summary:after{content:"▾";color:var(--muted)}.more-ways[open]>summary:after{content:"▴"}.more-ways>summary .muted{margin-left:auto;font-weight:500}.more-ways .plan{padding:0 .6rem .6rem}.today-links{text-align:center;color:var(--muted);margin:1rem 0 0;line-height:2}.vocab-head{align-items:center}.vocab-tabs{box-sizing:border-box;scrollbar-width:none;flex-wrap:nowrap;width:100%;margin:0 0 1.25rem;display:flex;overflow-x:auto}.vocab-tabs a{text-align:center;white-space:nowrap;color:var(--muted);border-radius:9px;flex:1;padding:.45rem .6rem;font-size:.9rem;font-weight:650;text-decoration:none}.vocab-tabs a.on{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #00000014}.study-now{flex-direction:column;gap:1rem;display:flex}.study-counts{text-align:center;grid-template-columns:repeat(3,1fr);display:grid}.study-counts strong{font-family:var(--font-display,inherit);font-size:2rem;line-height:1.1;display:block}.study-counts span{color:var(--muted);font-size:.82rem}details.deck-level{border-top:1px solid var(--border);padding:.6rem 0}details.deck-level>summary{cursor:pointer;align-items:center;gap:.5rem;padding:.3rem 0;font-weight:650;list-style:none;display:flex}details.deck-level>summary::-webkit-details-marker{display:none}details.deck-level>summary:after{content:"▾";color:var(--muted);margin-left:auto}details.deck-level[open]>summary:after{content:"▴"}details.deck-level .decks{margin-top:.6rem}.save-progress{color:var(--terra,var(--brand))!important;background:0 0!important;border:1.5px solid!important;padding:.3rem .75rem!important;font-size:.8rem!important}.save-progress:hover{background:var(--terra-soft,var(--accent-soft))!important}.prog-tiles{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));margin:1rem 0 1.25rem}.prog-more{border:1px solid var(--border);background:var(--surface);border-radius:16px;margin:1rem 0}.prog-more>summary{cursor:pointer;flex-wrap:wrap;align-items:center;gap:.6rem;padding:.9rem 1.1rem;font-weight:700;list-style:none;display:flex}.prog-more>summary::-webkit-details-marker{display:none}.prog-more>summary:after{content:"▾";color:var(--muted);margin-left:auto}.prog-more[open]>summary:after{content:"▴"}.prog-more>.card,.prog-more>section,.prog-more>.forecast{margin:0 .6rem .8rem}.unit-toggle{cursor:pointer;font:inherit;border:none}.card.unit.folded{padding-top:.7rem;padding-bottom:.7rem}.card.unit.folded .unit-head{margin:0}.card.unit{scroll-margin-top:70px}@media (width<=640px){.steps{grid-template-columns:repeat(5,minmax(0,1fr));gap:.3rem;display:grid;overflow:visible}.step{text-align:center;border-radius:12px;flex-direction:column;gap:.2rem;min-width:0;padding:.45rem .2rem;font-size:.74rem}}.quiz-head{flex-wrap:wrap;align-items:center;gap:.25rem 1rem;margin-bottom:.5rem}.quiz-head h1{white-space:nowrap;margin:0}@media (width<=640px){.quiz-head h1{font-size:1.7rem}.counts{flex-wrap:wrap;font-size:.8rem}}.unit-head{align-items:flex-start;gap:.6rem;display:flex}.unit-head .kicker{flex:1;min-width:0}.unit-toggle{white-space:nowrap;flex:none;width:auto;padding:.15rem .65rem;font-size:.78rem}.crumbs a,.page p a:not(.btn),.page .small a:not(.btn),.page .muted a:not(.btn){text-underline-offset:2px;text-decoration:underline;text-decoration-thickness:1px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}h2.h3{font-size:1.15rem}:where([data-theme=dark]) .btn.primary,:where([data-theme=dark]) .drill-go,:where([data-theme=dark]) .drill-chip.on,:where([data-theme=dark]) .tabbar-cta,:where([data-theme=dark]) .vl-go{background:var(--terra-fill);border-color:var(--terra-fill);color:#fff}:where([data-theme=dark]) .btn.primary:hover:not(:disabled),:where([data-theme=dark]) .drill-go:hover:not(:disabled){background:var(--accent-fill-hover);border-color:var(--accent-fill-hover)}:where([data-theme=dark]) .serial-tag{color:#d9a6d8}.about-you{flex-direction:column;gap:.7rem;width:100%;display:flex}.memory{flex-direction:column;gap:.6rem;width:100%;display:flex}.memory-list{flex-direction:column;gap:.4rem;width:100%;margin:0;padding:0;list-style:none;display:flex}.memory-list li{border:1px solid var(--border);background:var(--surface);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.8rem;padding:.55rem .8rem;display:flex}.memory-list li form{width:100%}.memory-actions{gap:.9rem;display:flex}.settings h3{margin:.6rem 0 0;font-size:1.05rem}.coach-card{flex-direction:column;align-items:flex-start;gap:.6rem;display:flex}.coach-head{justify-content:space-between;align-items:center;gap:1rem;width:100%;display:flex}.coach-text{width:100%}.about-bot{margin:0 0 1rem}.about-bot>summary{cursor:pointer;padding:.2rem 0;font-weight:600}.about-bot>.settings{margin:.8rem 0 0}.phrasebook{flex-direction:column;gap:.8rem;display:flex}.phrasebook .row{flex-wrap:wrap;gap:.5rem;display:flex}.phrasebook .row .text-input{flex:1;min-width:220px}.phrase-list{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.phrase-list li{border:1px solid var(--border);background:var(--surface);border-radius:12px;justify-content:space-between;align-items:center;gap:.6rem;padding:.5rem .75rem;display:flex}.phrase-list .fr{font-weight:600}.own-scene{width:100%}.plan-card{flex-direction:column;gap:.6rem;display:flex}.plan-head{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.plan-head .kicker{letter-spacing:.06em;text-transform:uppercase;color:var(--terra-deep,var(--terra));font-size:.75rem;font-weight:700;display:block}.plan-goal{margin-top:.15rem;font-size:1.05rem;display:block}.plan-week{flex-direction:column;gap:.3rem;margin:0;padding-left:1.2rem;display:flex}.goal-form{flex-direction:column;gap:.6rem;width:100%;display:flex}.goal-form .stack{flex-direction:column;gap:.3rem;width:100%;font-weight:600;display:flex}.goal-form textarea{resize:vertical;width:100%;font:inherit}.goal-row{flex-wrap:wrap;align-items:flex-end;gap:.6rem;display:flex}.goal-row .stack{flex:1;width:auto;min-width:160px}.plan-page .kicker{color:var(--terra-deep,var(--terra));font-weight:700}.note-btn{font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text)}.note-btn.note-top{border-radius:10px;place-items:center;width:38px;height:38px;display:grid}.note-btn.note-side{text-align:left;border-style:dashed;width:100%;margin:.2rem 0 .6rem}.note-sheet-wrap{z-index:90;background:#14181573;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.note-sheet{flex-direction:column;gap:.7rem;width:min(560px,100%);max-height:calc(100vh - 2rem);display:flex;overflow:auto}.note-sheet-head{justify-content:space-between;align-items:center;gap:1rem;display:flex}.note-sheet-head h2{margin:0;font-size:1.15rem}.note-composer{flex-direction:column;gap:.6rem;display:flex}.note-composer textarea{resize:vertical;width:100%}.note-actions,.note-tools{flex-wrap:wrap;align-items:center;gap:.5rem 1rem;display:flex}.note-tools .link{min-height:24px}.note-composer blockquote,.note blockquote{border-left:3px solid var(--accent);background:var(--surface-2);border-radius:0 8px 8px 0;margin:0;padding:.4rem .75rem;font-style:italic}.notebook-tools{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;margin:1rem 0 .5rem;display:flex}.notebook-tools input[type=search]{flex:200px;max-width:320px}.note-list{flex-direction:column;gap:.75rem;margin:.75rem 0 0;padding:0;list-style:none;display:flex}.note{background:var(--surface);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:.5rem;padding:.85rem 1rem;display:flex}.note.is-question{border-left:4px solid var(--saffron)}.note-kind{color:var(--text)}.note-text{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.note-answer{background:var(--accent-soft);border-radius:10px;flex-direction:column;gap:.3rem;padding:.6rem .8rem;display:flex}.note-answer>:is(p,ul,ol):last-child{margin-bottom:0}.lesson-notes .note-list .note{padding:.65rem .75rem}.lesson-notes h3{margin:0;font-size:1rem}:where([data-theme=dark]) .note-sheet-wrap{background:#0009}.level-pill{text-align:center;border:1.5px solid;border-radius:999px;min-width:2.2em;padding:.05em .5em;font-size:.8rem;font-weight:800;line-height:1.5;display:inline-block}.video-levels{flex-direction:column;gap:.6rem;margin:1rem 0 2rem;display:flex}.video-level{background:var(--surface);border:1px solid var(--border);border-radius:14px}.video-level>summary{cursor:pointer;align-items:center;gap:.9rem;padding:.85rem 1rem;list-style:none;display:flex}.video-level>summary::-webkit-details-marker{display:none}.video-level>summary:after{content:"▾";color:var(--muted);margin-left:auto;font-size:1.1rem;transition:transform .15s}.video-level[open]>summary:after{transform:rotate(180deg)}.video-level>summary .level-pill{font-size:1rem}.video-level-text{flex-direction:column;line-height:1.35;display:flex}.video-level-text span{color:var(--muted);font-size:.92rem}.video-level>.video-grid{padding:0 1rem 1rem}.video-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.9rem;margin:.5rem 0 1.5rem;padding:0;list-style:none;display:grid}.video-card{height:100%;color:inherit;background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;text-decoration:none;display:flex;overflow:hidden}.video-card:hover{border-color:var(--muted);text-decoration:none}.video-card:hover strong{text-decoration:underline}.video-thumb{aspect-ratio:16/9;background:var(--surface-2);display:block;position:relative}.video-thumb img{object-fit:cover;width:100%;height:100%;display:block}.video-length,.video-done{color:#fff;background:#000000c7;border-radius:6px;padding:.05rem .4rem;font-size:.78rem;font-weight:700;position:absolute;bottom:6px;right:6px}.video-done{background:#1b6b46;left:6px;right:auto}.video-card-body{flex-direction:column;gap:.25rem;padding:.6rem .75rem .75rem;display:flex}.video-card-body strong{line-height:1.3}.video-card-meta{color:var(--muted);align-items:center;gap:.5rem;font-size:.85rem;display:flex}.video-card-sub{color:var(--muted);font-size:.85rem}.video-frame{aspect-ratio:16/9;background:#000;border-radius:14px;width:100%;margin:1rem 0 1.5rem;position:relative;overflow:hidden}.video-frame iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.video-poster{cursor:pointer;background:#000;border:0;width:100%;height:100%;padding:0;position:absolute;inset:0}.video-poster img{object-fit:cover;opacity:.92;width:100%;height:100%;display:block}.video-play{color:#fff;background:#000000b8;border-radius:50%;place-items:center;width:72px;height:72px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 4px 18px #00000059}.video-poster:hover .video-play,.video-poster:focus-visible .video-play{background:var(--accent-fill-hover)}.video-poster:focus-visible{outline-offset:-6px;outline:3px solid #fff}.video-facts{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.35rem 1rem;font-size:.92rem;display:flex}.video-note{background:var(--surface-2);border-radius:8px;padding:.3rem .7rem;font-size:.9rem;display:inline-block}.video-cols{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:start;gap:1.5rem;display:grid}.video-cols h2{margin-top:.5rem}.video-questions{flex-direction:column;gap:.9rem;padding-left:1.2rem;display:flex}.video-questions p{margin:0 0 .4rem;font-weight:600}.video-options{flex-direction:column;gap:.35rem;display:flex}.video-option{font:inherit;text-align:left;cursor:pointer;border:1px solid var(--border);background:var(--surface);min-height:44px;color:inherit;border-radius:10px;padding:.5rem .75rem}.video-option:not(:disabled):hover{border-color:var(--muted)}.video-option:disabled{cursor:default;color:inherit;opacity:1}.video-option.right{color:#12482f;background:#e4f3ea;border-color:#1b7a55;font-weight:600}.video-option.wrong{color:#6b1510;background:#fbe4e2;border-color:#b3261e}.video-score{margin:0 0 0 -1.2rem;font-weight:700;list-style:none}:where([data-theme=dark]) .video-option.right{color:#bfe8d0;background:#173a2a;border-color:#4fb989}:where([data-theme=dark]) .video-option.wrong{color:#f5c4bf;background:#401b18;border-color:#e0776c}.video-shelf-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.video-shelf-head h2{margin:0}.video-shelf-head select{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;min-height:40px;padding:.35rem .6rem}.video-page .video-cols{margin:1rem 0}.video-page .video-cols .card{margin:0}.video-actions{margin:-.75rem 0 1rem}.video-words{flex-direction:column;gap:.35rem;margin:0 0 1rem;padding:0;list-style:none;display:flex}.video-words li{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.video-words li .muted{flex-basis:100%;margin-top:-.3rem;font-size:.92rem}.lesson-video-list{flex-direction:column;gap:.45rem;margin:.25rem 0 .5rem;padding:0;list-style:none;display:flex}.lesson-video-list a{align-items:baseline;gap:.4rem;line-height:1.35;display:inline-flex}.chapter-audio{border:1px solid var(--border);background:var(--surface);border-radius:12px;flex-direction:column;gap:.45rem;margin:.8rem 0 1rem;padding:.75rem .9rem;display:flex}.chapter-audio-head{flex-wrap:wrap;align-items:baseline;gap:.2rem .75rem;display:flex}.chapter-audio-meta,.chapter-audio-credit{color:var(--muted);font-size:.85rem}.chapter-audio audio{width:100%}.chapter-audio-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem 1rem;display:flex}.chapter-audio-speed{font:inherit;cursor:pointer;border:1px solid var(--border);min-height:36px;color:inherit;background:0 0;border-radius:999px;padding:.3rem .75rem;font-size:.88rem;font-weight:600}.chapter-audio-speed[aria-pressed=true]{border-color:currentColor}.chapter-audio-error{margin:0;font-size:.92rem}.audiobook-list{flex-direction:column;gap:1rem;padding:0 1rem 1rem;display:flex}.audiobook{border-top:1px solid var(--border);padding-top:.9rem}.audiobook h3{margin:0 0 .3rem}.audiobook p{margin:.2rem 0 .5rem}.audiobook-chapter select{font:inherit;border:1px solid var(--border);background:var(--surface);max-width:100%;color:inherit;border-radius:10px;min-height:40px;padding:.35rem .5rem}.audiobook-note{background:var(--surface-2);border-radius:10px;align-items:flex-start;gap:.5rem;padding:.6rem .8rem;display:flex}.task-label.instruction{font-weight:600;line-height:1.4;display:block}.tap-word{font:inherit;color:inherit;cursor:pointer;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;-webkit-text-decoration-color:color-mix(in srgb, currentColor 45%, transparent);-webkit-text-decoration-color:color-mix(in srgb, currentColor 45%, transparent);text-decoration-color:color-mix(in srgb, currentColor 45%, transparent);text-underline-offset:.18em;background:0 0;border:0;margin:0;padding:0}.tap-word:hover,.tap-word.on{text-decoration-style:solid;-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.tap-word.on{background:var(--accent-soft);border-radius:4px}.tap-meaning{background:var(--accent-soft);border-radius:8px;margin:.4rem 0 .2rem;padding:.35rem .7rem;display:inline-block}.tap-hint{color:var(--muted);margin-top:.3rem;font-size:.85rem}.link.idk{align-self:center;min-height:40px;margin-top:.3rem;font-size:.95rem}.feedback-tab{z-index:40;writing-mode:vertical-rl;font:inherit;letter-spacing:.02em;color:var(--muted);background:var(--surface);border:1px solid var(--border);cursor:pointer;border-right:none;border-radius:0 8px 8px 0;padding:.7rem .35rem;font-size:.8rem;font-weight:600;position:fixed;top:50%;right:0;transform:translateY(-50%)rotate(180deg)}.feedback-tab:hover,.feedback-tab[aria-expanded=true]{opacity:1;color:var(--text)}.feedback-panel{z-index:41;background:var(--surface);border:1px solid var(--border);border-radius:12px;width:min(340px,100vw - 3.4rem);padding:.9rem 1rem;position:fixed;top:50%;right:2.4rem;transform:translateY(-50%);box-shadow:0 10px 30px #00000026}.feedback-panel p{margin:0;font-size:.9rem}@media (width<=899px){.feedback-tab,.feedback-panel{display:none}}.sidebar{overflow-y:auto}.nav-more{width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;font-weight:600}.nav-more-chevron{text-align:center;width:20px;font-size:1.2rem;line-height:1;transition:transform .15s;display:inline-block}.nav-more[aria-expanded=true] .nav-more-chevron{transform:rotate(90deg)}.st{flex-direction:column;gap:1rem;margin-bottom:1.25rem;display:flex}.st h3{margin:0 0 .75rem;font-size:1rem}.st .grid-2{margin:0}.st-tiles{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;display:grid}@media (width<=760px){.st-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}.st-tile{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;gap:.2rem;min-width:0;padding:.9rem 1rem;display:flex}.st-label{color:var(--muted);font-size:.85rem}.st-value{font-variant-numeric:tabular-nums;font-size:1.6rem;font-weight:700;line-height:1.15}.st-delta{font-size:.8rem}.st-delta.up{color:var(--ok)}.st-delta.down{color:var(--ko)}.st-delta .muted{font-weight:400}.st-cols{border-bottom:1px solid var(--border);align-items:flex-end;gap:4px;height:150px;padding:0 0 20px 30px;display:flex;position:relative}.st-axis{color:var(--muted);flex-direction:column;justify-content:space-between;font-size:.7rem;display:flex;position:absolute;top:0;bottom:20px;left:0}.st-col{outline:none;flex:1;justify-content:center;align-items:flex-end;height:100%;display:flex;position:relative}.st-col-bar{background:var(--accent-fill);border-radius:4px 4px 0 0;width:100%;max-width:24px;min-height:2px}.st-col:hover .st-col-bar,.st-col:focus-visible .st-col-bar{background:var(--accent-fill-hover)}.st-col:focus-visible{box-shadow:0 0 0 2px var(--brand);border-radius:4px}.st-col-label{color:var(--muted);white-space:nowrap;font-size:.68rem;position:absolute;bottom:-19px}.st-col[data-tip]:hover:after,.st-col[data-tip]:focus-visible:after{content:attr(data-tip);z-index:5;background:var(--text);color:var(--surface);white-space:nowrap;pointer-events:none;border-radius:6px;padding:.3rem .5rem;font-size:.75rem;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.st-col:first-of-type[data-tip]:after{left:0;transform:none}.st-col:last-of-type[data-tip]:after{left:auto;right:0;transform:none}.st-line{width:100%;height:auto;display:block;overflow:visible}.st-grid{stroke:var(--border);stroke-width:1px}.st-tick{fill:var(--muted);font-size:9px}.st-path{fill:none;stroke:var(--brand);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.st-dot{fill:var(--brand);stroke:var(--surface);stroke-width:2px;cursor:default;outline:none}.st-dot:hover,.st-dot:focus-visible{r:6}.st-table{margin-top:-.5rem}.st-table table{margin-top:.5rem}.st-heat{grid-template-columns:auto repeat(12,minmax(0,28px));justify-content:start;gap:4px;display:grid}.st-heat-days,.st-heat-col{grid-template-rows:repeat(7,1fr);gap:4px;display:grid}.st-heat-days{color:var(--muted);align-items:center;padding-right:4px;font-size:.7rem}.st-heat-col .st-cell{aspect-ratio:1;width:100%;height:auto}.st-cell{background:color-mix(in srgb, var(--border) 70%, var(--surface));border-radius:3px;width:14px;height:14px;display:inline-block}.st-cell.l1{background:color-mix(in srgb, var(--brand) 30%, var(--surface))}.st-cell.l2{background:color-mix(in srgb, var(--brand) 55%, var(--surface))}.st-cell.l3{background:color-mix(in srgb, var(--brand) 78%, var(--surface))}.st-cell.l4{background:var(--accent-fill)}.st-cell.future{background:0 0}.st-heat-legend{flex-wrap:wrap;align-items:center;gap:4px;margin-top:.5rem;display:flex}.st-heat-goal{margin-left:.25rem}.st-sw-list{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.st-sw{align-items:flex-start;gap:.6rem;display:flex}.st-sw-icon{border-radius:50%;flex:none;place-items:center;width:22px;height:22px;font-size:.75rem;font-weight:700;display:grid}.st-sw.strength .st-sw-icon{background:var(--ok-bg);color:var(--ok)}.st-sw.weakness .st-sw-icon{background:var(--ko-bg);color:var(--ko)}.st-sw-body{flex-direction:column;gap:.1rem;min-width:0;display:flex}.st-bars{flex-direction:column;gap:.7rem;margin:0;padding:0;list-style:none;display:flex}.st-bars li{flex-direction:column;gap:.25rem;display:flex}.st-bar-label{font-size:.9rem}.st-bar-row{align-items:center;gap:.5rem;display:flex}.st-bar{background:color-mix(in srgb, var(--brand) 14%, var(--surface));border-radius:5px;flex:1;height:10px;overflow:hidden}.st-bar>span{background:var(--accent-fill);border-radius:5px;height:100%;display:block}.st-bar-val{text-align:right;font-variant-numeric:tabular-nums;width:3em;font-size:.85rem}.bubble-tools{flex-wrap:wrap;align-items:center;gap:.35rem;margin-top:.4rem;display:flex}.bubble-tools .translate-toggle{margin-top:0}.bubble .tap-meaning{margin-top:.4rem}.bubble .tap-meaning .link{margin-left:.5rem;font-size:.85rem}.simpler{border-top:1px dashed var(--border);margin-top:.5rem;padding-top:.45rem}.simpler-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:600;display:block}.reply-help{margin:.25rem 0 .5rem}.reply-help-panel{flex-direction:column;gap:.6rem;margin-top:.5rem;display:flex}.suggestions{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.suggestion{text-align:left;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;color:var(--text);font:inherit;cursor:pointer;flex-direction:column;align-items:flex-start;gap:.1rem;padding:.55rem .75rem;display:flex}.suggestion:hover,.suggestion:focus-visible{border-color:var(--accent-fill)}.say-row{gap:.4rem;display:flex}.say-row .text-input{flex:1;min-width:0}.said{border-radius:var(--radius);background:var(--accent-soft);justify-content:space-between;align-items:center;gap:.5rem;padding:.55rem .75rem;display:flex}.practice-banner{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem 1.25rem;margin-bottom:.75rem;display:flex}.practice-text{flex-direction:column;flex:18rem;gap:.15rem;min-width:0;display:flex}.practice-meter{flex-direction:column;flex:0 14rem;gap:.3rem;min-width:10rem;display:flex}.practice-meter .st-bar{flex:none;width:100%}.practice-meter .link{align-self:flex-start;padding:0}.recap{flex-direction:column;gap:.9rem;display:flex}.recap h2{margin:0}.recap h3{margin:0 0 .4rem;font-size:1rem}.recap-feedback{border-radius:var(--radius);background:var(--accent-soft);margin:0;padding:.7rem .9rem}.recap-words,.recap-mistakes{flex-direction:column;gap:.35rem;margin:0 0 .5rem;padding:0;list-style:none;display:flex}.fix-wrong{text-decoration:line-through;-webkit-text-decoration-color:var(--ko);-webkit-text-decoration-color:var(--ko);text-decoration-color:var(--ko);margin:.25rem 0 .75rem;font-size:1.15rem;text-decoration-thickness:2px}.heard-unsure{border-radius:var(--radius);background:var(--warn-bg);flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:.4rem;padding:.5rem .75rem;display:flex}.heard-unsure .suggestion{width:auto;padding:.3rem .65rem}.practice-meter .pill{white-space:nowrap;align-self:flex-start}.ask-open{margin:.75rem 0}.ask-about{flex-direction:column;gap:.6rem;margin:.75rem 0;display:flex}.ask-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.ask-presets{flex-wrap:wrap;gap:.4rem;display:flex}.ask-presets .chip{cursor:pointer;font:inherit;font-size:.85rem}.ask-turn{flex-direction:column;gap:.3rem;display:flex}.ask-q{margin:0;font-weight:600}.ask-a{border-radius:var(--radius);background:var(--surface-2,var(--accent-soft));padding:.6rem .8rem}.ask-a p{margin:.25rem 0}.ask-turn .link{align-self:flex-start;padding:0}.card-help{text-align:left;flex-direction:column;gap:.5rem;margin-top:.6rem;display:flex}.card-help-actions{flex-wrap:wrap;gap:.4rem;display:flex}.card-example.mine{border-left:3px solid var(--brand);padding-left:.6rem}.reader-ai{flex-direction:column;gap:.25rem;margin:.75rem 0;display:flex}.ai-quiz h3{margin:0 0 .5rem}.ai-quiz-list{flex-direction:column;gap:.9rem;margin:0;padding-left:1.2rem;display:flex}.ai-quiz-list p{margin:0 0 .4rem}.ai-quiz .options{flex-direction:column;gap:.35rem;display:flex}.own-sentence{text-align:left;flex-direction:column;gap:.5rem;margin:.75rem 0;display:flex}.own-sentence h3,.own-task{margin:0}.own-form{flex-direction:column;align-items:stretch;gap:.5rem;display:flex}.own-form .btn{align-self:flex-start}.mistake-actions{flex-wrap:wrap;gap:.4rem;display:flex}.mini-lesson .gap-ex{flex-direction:column;gap:.4rem;margin-bottom:.6rem;display:flex}.mini-lesson .gap-ex .btn{align-self:flex-start}.then-now-list{flex-direction:column;gap:.3rem;margin:.4rem 0 .75rem;padding-left:1.1rem;display:flex}.level-check-prompt{margin:.25rem 0 .75rem;font-size:1.15rem;font-weight:600}.level-check .grid-2.left{text-align:left}.video-companion{flex-direction:column;gap:.35rem;display:flex}.video-companion h2{margin:0 0 .25rem}.video-upto select{margin-left:.25rem}.knowledge h2{margin-bottom:.25rem}.knowledge-recs{margin:.75rem 0 1rem}.knowledge-recs h3{margin:0 0 .4rem;font-size:1rem}.knowledge-recs ol{flex-direction:column;gap:.6rem;margin:0;padding-left:1.2rem;display:flex}.knowledge-recs li p{margin:.2rem 0 0}.rec-main{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.knowledge-tabs{flex-wrap:wrap;margin:.5rem 0}.knowledge-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.knowledge-list li{border-top:1px solid var(--border);padding:.55rem 0}.k-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.k-row a{flex:12rem;min-width:0;font-weight:600}.k-status{white-space:nowrap;font-size:.8rem;font-weight:700}.k-modes{flex-wrap:wrap;gap:.35rem;margin-top:.3rem;display:flex}.k-mode{white-space:nowrap;border:1px solid;border-radius:999px;padding:.1rem .5rem;font-size:.75rem}.k-weak{color:var(--ko)}.k-shaky{color:var(--warn)}.k-solid,.k-strong{color:var(--ok)}.k-unknown{color:var(--muted)}.k-why summary{cursor:pointer;color:var(--muted);margin-top:.25rem;font-size:.8rem}.k-why p{margin:.25rem 0 0}.knowledge-vocab{margin:.75rem 0 0}.keep-fresh h2{margin:0 0 .15rem;font-size:1.1rem}.keep-fresh p{margin:0 0 .5rem}.keep-fresh ul{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.keep-fresh li a{border:1px solid var(--border);color:inherit;border-radius:14px;justify-content:space-between;align-items:center;gap:.75rem;min-height:44px;padding:.6rem .75rem;text-decoration:none;display:flex}.keep-fresh li a:hover,.keep-fresh li a:focus-visible{border-color:var(--accent)}.keep-fresh li a>span:first-child{flex-direction:column;gap:.1rem;min-width:0;display:flex}.fresh-time{white-space:nowrap;color:var(--muted);font-size:.8rem;font-weight:700}.friction-help{border-left:4px solid var(--accent);flex-direction:column;gap:.35rem;margin-top:.75rem;display:flex}.friction-help p{margin:0}.friction-actions{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.25rem;display:flex}.friction-examples{flex-direction:column;gap:.35rem;margin:.25rem 0;padding-left:1.1rem;display:flex}.friction-rule{max-height:22rem;padding-right:.25rem;overflow:auto}@media (prefers-reduced-motion:no-preference){.friction-help{animation:.2s ease-out friction-in}}@keyframes friction-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.speed-control{flex-direction:column;gap:.25rem;margin:.5rem 0;display:flex}.speed-control input[type=range]{width:100%;min-height:32px}.speed-scale{justify-content:space-between;display:flex}.speed-control p{margin:0}.voice-picker{flex-direction:column;gap:.35rem;display:flex}.voice-picker p{margin:0 0 .25rem}.settings .speed-control{align-self:stretch;width:100%}.settings .speed-control input[type=range]{width:100%;max-width:none;margin:0}.speed-scale{position:relative}.speed-normal{position:absolute;top:0;transform:translate(-50%)}.french-week fieldset{border:0;margin:0 0 .9rem;padding:0}.french-week legend{margin-bottom:.4rem;font-weight:700}.fw-add{gap:.5rem;margin-top:.5rem;display:flex}.fw-add .text-input{flex:1;min-width:0}.fw-steps{flex-direction:column;gap:.35rem;margin:.5rem 0;padding-left:1.2rem;display:flex}.fw-steps li{color:var(--muted)}.fw-steps li.now{color:var(--ink);font-weight:700}.fw-steps li.done{color:var(--ok)}.fw-steps li.done:after{content:" ✓"}.fw-episode h2{margin:.2rem 0}.fw-player{flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:.75rem;display:flex}.fw-transcript ol{flex-direction:column;gap:.35rem;max-height:60vh;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.fw-part{border-left:3px solid #0000;border-radius:12px;align-items:flex-start;gap:.5rem;padding:.45rem .6rem;display:flex}.fw-part p{margin:0;line-height:1.6}.fw-part.sp-B{border-left-color:var(--border)}.fw-part.now{background:var(--accent-soft);border-left-color:var(--accent)}.fw-part-play{color:var(--accent);cursor:pointer;background:0 0;border:0;flex:none;min-width:32px;min-height:32px;font-size:.85rem}.fw-word{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.5rem;display:flex}.fw-library ul{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.fw-library a{color:inherit;border:1px solid var(--border);border-radius:12px;flex-direction:column;padding:.5rem .6rem;text-decoration:none;display:flex}.fw-questions ol{flex-direction:column;gap:.8rem;padding-left:1.2rem;display:flex}.fw-questions .options{flex-direction:column;gap:.35rem;display:flex}.fw-sources ul{margin:.25rem 0 .5rem;padding-left:1.1rem}.how-say{margin:.25rem 0 .6rem;padding:0}.how-say-head{width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;border-radius:var(--radius);background:0 0;border:0;justify-content:space-between;align-items:baseline;gap:.75rem;padding:.7rem .9rem;display:flex}.how-say-head:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.how-say-body{flex-direction:column;gap:.6rem;padding:0 .9rem .9rem;display:flex}.how-say-result{border-radius:var(--radius);background:var(--accent-soft);flex-direction:column;gap:.45rem;padding:.75rem;display:flex}.how-say-result p{margin:0}.how-say-fr{font-size:1.25rem;font-weight:600;line-height:1.35}.how-say-listen{flex-wrap:wrap;gap:.4rem;display:flex}.how-say-parts{flex-wrap:wrap;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.how-say-parts li{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;padding:.3rem .55rem;display:flex}.how-say-parts li [lang=fr],.how-say-parts li [lang=es]{font-weight:600}.how-say-tip{padding-top:.15rem}.how-say-result .link{margin-left:.5rem;padding:0}.how-say-actions{flex-wrap:wrap;gap:.4rem;margin-top:.15rem;display:flex}.ai-admin{flex-direction:column;gap:1rem;display:flex}.ai-admin .card{margin:0}.ai-admin-table{flex-direction:column;gap:.35rem;display:flex}.ai-admin-row{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr) auto;align-items:center;gap:.5rem;padding:.4rem 0;display:grid}.ai-admin-row select{width:100%}@media (width<=760px){.ai-admin-row{grid-template-columns:1fr 1fr}.ai-admin-row>:first-child{grid-column:1/-1}}.ai-admin-models{flex-direction:column;gap:.4rem;margin:0 0 .8rem;padding:0;list-style:none;display:flex}.ai-admin-models li{flex-wrap:wrap;align-items:center;gap:.4rem .6rem;display:flex}.ai-admin-models .btn{margin-left:auto}.ai-admin-probe{flex-wrap:wrap;align-items:flex-end;gap:.5rem .8rem;display:flex}.ai-admin-probe .stack{flex:18rem}.ai-admin-usage{border-collapse:collapse;width:100%;font-size:.85rem}.ai-admin-usage th,.ai-admin-usage td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:.3rem .5rem}.ai-admin-history{flex-direction:column;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.ai-admin-history .link{margin-left:.5rem;padding:0}.ai-admin-reply{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--surface-2);border-radius:6px;max-height:16rem;padding:.5rem;font-size:.85em;overflow:auto}.ai-admin .table-scroll{overflow-x:auto}.ap .card{flex-direction:column;gap:.9rem;display:flex}.ap-welcome h1{margin:0}.ap-hints{flex-direction:column;gap:.55rem;display:flex}.ap-hint{font:inherit;text-align:left;border:1.5px solid var(--border);background:var(--surface);min-height:48px;color:var(--text);cursor:pointer;border-radius:14px;padding:.85rem 1rem;font-weight:600}.ap-hint:hover{border-color:var(--mint-300);background:var(--accent-soft)}.ap-stages{grid-template-columns:repeat(4,1fr);gap:.4rem;margin:0 0 .6rem;padding:0;list-style:none;display:grid}.ap-stages li{color:var(--muted);border-top:4px solid var(--border);padding-top:.45rem;font-size:.8rem}@media (width<=560px){.ap-stages li:not(.on){font-size:0}.ap-stages li.on{white-space:nowrap;overflow:visible}}.ap-stages li.done{border-top-color:var(--mint-300)}.ap-stages li.on{border-top-color:var(--accent);color:var(--text);font-weight:650}.ap-kicker{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.8rem;font-weight:700}.ap-text{background:var(--surface-2);border-radius:12px;padding:.9rem 1rem;line-height:1.6}.ap-text p{margin:0 0 .5rem}.ap-text p:last-child{margin:0}.ap-q{border:0;min-width:0;margin:0;padding:0}.ap-q legend{margin-bottom:.55rem;padding:0;font-weight:650}.ap-sentence{font-size:1.1rem}.ap-options{flex-direction:column;gap:.45rem;display:flex}.ap-option{border:1.5px solid var(--border);background:var(--surface);cursor:pointer;border-radius:14px;align-items:center;gap:.65rem;min-height:46px;padding:.7rem .9rem;display:flex}.ap-option:hover{border-color:var(--mint-300)}.ap-option.on{border-color:var(--accent);background:var(--accent-soft)}.ap-option.idk{color:var(--muted);border-style:dashed}.ap-option input{accent-color:var(--accent);flex:none;width:1.1rem;height:1.1rem}.ap-option:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:2px}.ap-listen{flex-direction:column;align-items:flex-start;gap:.5rem;display:flex}.ap-play{min-height:48px}.ap-meter{background:var(--accent-fill);border-radius:3px;max-width:100%;height:6px;transition:width 80ms linear;display:block}.ap-prompt{background:var(--surface-2);border-radius:12px;padding:.8rem 1rem}.ap-prompt p{margin:0 0 .35rem}.ap-prompt p:last-child{margin:0}.ap textarea{width:100%;font:inherit;border:1.5px solid var(--border);background:var(--surface);color:var(--text);border-radius:12px;padding:.7rem .8rem}.ap-result{align-items:flex-start}.ap-result .level-badge.huge{margin:.2rem 0}.ap-profile{flex-direction:column;width:100%;margin:0;padding:0;list-style:none;display:flex}.ap-profile li{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:baseline;gap:.3rem .8rem;padding:.6rem 0;display:flex}.ap-profile li:last-child{border-bottom:0}.ap-skill{flex:12rem}.ap-insights{flex-direction:column;gap:.35rem;margin:0;padding-left:1.2rem;display:flex}.ap-prompt{margin-bottom:.3rem;font-weight:400;display:block}.ap-note{flex-basis:100%}.ap-caveats{flex-direction:column;gap:.25rem;margin:0;padding-left:1.2rem;display:flex}.foundation-steps{flex-wrap:wrap;gap:.5rem;margin:1.5rem 0;padding:0;list-style:none;display:flex}.foundation-steps li{border:1px solid var(--border);border-radius:1rem;padding:.4rem .65rem;font-size:.8rem}.foundation-steps [aria-current=step]{background:var(--accent-soft);font-weight:700}.foundation-sentence{border-bottom:1px solid var(--border);padding:1rem 0}.foundation-fr{margin:0 0 .65rem;font-size:1.3rem;line-height:1.6}.foundation-fr mark{color:var(--mint-900);background:var(--mint-100);border-radius:.2em;padding:0 .08em}.foundation-silent{-webkit-text-decoration:line-through #a9625d;text-decoration:line-through #a9625d}.foundation-audio{flex-wrap:wrap;gap:.45rem;margin:.3rem 0;display:inline-flex}.foundation-audio .btn{min-width:66px;min-height:44px}.foundation-audio.playing{background:var(--accent-soft);border-radius:.5rem}.foundation-sentence details{margin-top:.75rem}.foundation-sentence summary,.foundation-reader summary,.reader-sentence-audio summary{cursor:pointer;min-height:44px;padding:.6rem 0}.foundation-words{gap:.5rem;margin:0 0 1.25rem;display:grid}.foundation-lesson .card>p{margin:0 0 .85rem;line-height:1.6}.foundation-lesson .card>h2{margin:0 0 1rem}.foundation-lesson .card>h3{margin:1.5rem 0 .75rem}.foundation-lesson .card>.btn{margin-top:.75rem}.foundation-lesson .actions{align-items:center}.foundation-words div{border-bottom:1px solid var(--border);padding:.35rem 0}.foundation-words div:last-child{border-bottom:0}.foundation-words div{grid-template-columns:minmax(100px,1fr) 2fr;gap:1rem;display:grid}.foundation-words dt{font-weight:700}.foundation-words dd{margin:0}.foundation-lesson .choice-row{flex-wrap:wrap;gap:.6rem;margin-top:1rem;display:flex}.foundation-lesson .choice-row .btn{white-space:normal;text-align:left;min-height:44px}.foundation-lesson form{gap:.7rem;margin-top:1rem;display:grid}.foundation-lesson input{width:100%}.foundation-reading-link{border-bottom:1px solid var(--border);gap:.3rem;padding:.8rem 0;display:grid}.foundation-path .station a{min-width:0}.foundation-reader>.foundation-audio{margin-bottom:1rem}.reader-sentence-audio{margin:1rem 0}@media (width<=600px){.foundation-lesson .actions,.foundation-path .actions{flex-wrap:wrap}.foundation-steps{gap:.3rem}.foundation-words div{grid-template-columns:1fr;gap:.2rem}}.foundation-sentence:has(.foundation-audio.playing) .foundation-fr{background:var(--accent-soft);border-radius:.4rem}.first-lesson .first-lesson-next{bottom:calc(.75rem + env(safe-area-inset-bottom,0px));z-index:1;box-shadow:var(--shadow-float);position:sticky}.learn .bite .bite-next{bottom:calc(.75rem + var(--consent-space,0px) + env(safe-area-inset-bottom,0px));z-index:1;position:sticky}.learn .bite .bite-next .btn{box-shadow:var(--shadow-float)}.first-lesson .foundation-sentence{grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:.75rem;padding:.7rem 0;display:grid}.first-lesson .foundation-sentence .foundation-fr{grid-column:1;margin:0}.first-lesson .foundation-sentence>p:not(.foundation-fr){color:var(--muted);grid-column:1;margin:0}.first-lesson .foundation-sentence>.foundation-audio{grid-area:1/2/span 2}.first-lesson .foundation-sentence details{grid-column:1/-1;margin-top:.2rem}.first-lesson .foundation-sentence summary{min-height:44px;color:var(--muted);padding:.3rem 0;font-size:.9rem}.quick-start{text-align:center;padding-inline:16px;flex-direction:column;align-items:center;gap:1rem;padding-top:2rem;display:flex}.quick-start h1{margin:0}.language-select label{flex-wrap:wrap;align-items:center;gap:.5rem;font-weight:600;display:inline-flex}.language-select select{min-height:44px;font-weight:400}.quick-start .language-select{color:var(--text-muted)}.qs-choices{flex-direction:column;gap:.8rem;width:100%;max-width:30rem;display:flex}.qs-choice{text-align:left;font:inherit;color:var(--text);border:2px solid var(--border);background:var(--surface);cursor:pointer;border-radius:18px;flex-direction:column;gap:.3rem;min-height:64px;padding:1.1rem 1.2rem;display:flex}.qs-choice strong{font-size:1.15rem}.qs-choice span{color:var(--muted);font-size:.95rem}@media (hover:hover){.qs-choice:hover{border-color:var(--accent);background:var(--accent-soft)}}.qs-choice:focus-visible{border-color:var(--accent);background:var(--accent-soft)}.path-preview h2{margin:1.4rem 0 .5rem;font-size:1.05rem}.pp-lessons{gap:.5rem;margin:0;padding-left:1.3rem;display:grid}.pp-lessons li span{color:var(--muted);font-size:.92rem;display:block}.pp-more{gap:.35rem;margin:0 0 1.4rem;padding-left:1.1rem;display:grid}.pp-level{text-align:center;margin-top:1.6rem}.pp-level .chip{cursor:pointer;min-width:44px;min-height:36px;font:inherit;color:var(--text);font-weight:600}.pp-level .chip.on{border-color:var(--accent);background:var(--accent-soft)}.quick-start .qs-sub{color:var(--text-muted);margin:.6rem 0 0;font-size:1rem}.qs-levels{gap:.5rem;width:100%;max-width:30rem;margin:0;padding:0;list-style:none;display:grid}.qs-level{width:100%;min-height:52px;font:inherit;text-align:left;color:var(--text);background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:14px;align-items:center;gap:.9rem;padding:.6rem 1rem;display:flex}.qs-level strong{flex:0 0 2.2rem;font-size:1.05rem}.qs-level span{color:var(--muted);font-size:.95rem}.qs-level:hover,.qs-level:focus-visible{border-color:var(--accent);background:var(--accent-soft)}.next-lesson{margin:1rem 0 .5rem}.next-lesson .continue-next{align-items:center}.btn.big{min-height:52px;padding:.85rem 1.8rem;font-size:1.1rem}.first-done h3{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:1.1rem 0 .4rem;font-size:.8rem}.first-done__phrases{margin:0;padding:0;list-style:none}.first-done__phrases li{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;gap:.2rem 1rem;padding:.45rem 0;display:flex}.first-done__phrases li:last-child{border-bottom:0}.first-done__phrases span{color:var(--muted)}.first-done__track{gap:.35rem;margin:0 0 .6rem;display:grid}.first-done__bar{background:var(--border);border-radius:999px;height:8px;display:block;overflow:hidden}.first-done__bar>span{border-radius:inherit;background:var(--accent);min-width:8px;height:100%;display:block}.first-done .td-tomorrow{margin-bottom:.6rem}.first-done .continue-next{align-items:flex-start;margin-top:1rem;display:flex}.save-card{border:2px solid var(--mint-200);margin-top:1rem}.save-card h2{margin:.2rem 0 .3rem}.save-card .auth-form{margin-top:.6rem}.save-line{text-align:center;margin-top:.8rem}.reader-player{bottom:calc(.5rem + var(--dock-offset,0px) + env(safe-area-inset-bottom));z-index:10;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-float);border-radius:14px;margin:.7rem 0;padding:.4rem .5rem;position:sticky}.reader-player-controls{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.reader-player .btn{min-height:40px;padding:.35rem .6rem;font-size:.85rem}.reader-player .btn[aria-pressed=true]{background:var(--accent-soft);border-color:var(--mint-500);color:var(--text)}.reader-speed{align-items:center;gap:.4rem;font-size:.85rem;display:inline-flex}.reader-speed select{width:auto;min-height:44px;padding:.45rem}.reader-player-more{display:none}.reader-player-extra{display:contents}@media (width<=640px){.reader-player-controls>.btn.primary{flex:1}.reader-speed-label{display:none}.reader-player-more{display:inline-flex}.reader-player-extra{display:none}.reader-player-extra.open{flex-wrap:wrap;flex-basis:100%;gap:.35rem;display:flex}}.reader-player-status{color:var(--muted);margin:.3rem .2rem 0}.reader-player-status:empty{display:none}.reader-tap-help{margin:.5rem 0 1rem}.sentence-reader .reader-paragraph+.reader-paragraph{border-top:1px solid var(--border);margin-top:.65rem;padding-top:.65rem}.reader-line{border-left:3px solid #0000;border-radius:8px;padding:.65rem .5rem .4rem;scroll-margin-top:80px;scroll-margin-bottom:140px;transition:background .15s}.reader-line.selected-sentence{border-left-color:var(--mint-500)}.reader-line.speaking{background:var(--accent-soft)}.reader-line-main{align-items:flex-start;gap:.65rem;display:flex}.reader-line-play{border:1px solid var(--border);background:var(--surface);width:44px;min-height:44px;color:var(--link);cursor:pointer;border-radius:50%;flex:0 0 44px;font-size:1rem}.reader-line-play[aria-pressed=true]{border-color:var(--mint-500);background:var(--accent-soft)}.sentence-reader .reader-sentence{cursor:pointer;overflow-wrap:anywhere;flex:1;min-width:0;margin:0}.reader-line-tools{font-family:var(--font-ui);margin-left:calc(44px + .65rem)}.reader-line-tools .link{min-height:44px;padding:.35rem 0}.reader-meaning{font:1rem/1.6 var(--font-ui);color:var(--text);margin:0 0 .35rem calc(44px + .65rem)}.sentence-reader .reader-meaning p{margin:0 0 .4rem}.reader-meaning .link{min-height:44px}.reader-repeat-help{margin-top:1rem}.reader-repeat-help summary{cursor:pointer;padding:.6rem 0}@media (width<=860px){.reader-line{scroll-margin-top:80px;scroll-margin-bottom:200px}.sentence-reader{padding:.8rem .5rem}.reader-line-main{gap:.4rem}.reader-line-tools,.reader-meaning{margin-left:calc(44px + .4rem)}}@media (prefers-reduced-motion:reduce){.reader-line{transition:none}}.shell.focused main{min-height:calc(100vh - 58px);margin-left:0;padding-top:1.5rem;padding-bottom:2rem}.focus-header{background:var(--surface);border-bottom:1px solid var(--border);z-index:15;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem max(1rem,50vw - 380px);display:flex;position:sticky;top:0}.focus-header a{align-items:center;min-height:32px;font-size:.9rem;display:inline-flex}.explore-links{gap:.35rem;display:grid}.explore-link{border-bottom:1px solid var(--border);grid-template-columns:1fr auto;gap:.2rem .8rem;padding:.9rem .5rem;text-decoration:none;display:grid}.explore-link .muted{grid-column:1}.explore-link:last-child{border-bottom:0}.explore-link:hover{background:var(--surface)}.explore-details summary,.landing-options summary{cursor:pointer;padding:.5rem 0;font-weight:600}.explore-details>div{margin-top:1rem}.today-explore{margin:.85rem 0 1.5rem}.first-lesson label{margin-bottom:.4rem;display:block}.first-lesson input{border:1px solid var(--border);width:100%;font:inherit;border-radius:10px;margin-bottom:.8rem;padding:.75rem}.first-lesson .foundation-sentence{margin-bottom:.7rem}@media (width<=860px){.tabbar{grid-template-columns:repeat(4,1fr)}.focus-header{padding:.65rem 1rem}.shell.focused main{padding:1rem 1rem 2rem}}.path-current{border-left:3px solid var(--brand);gap:.35rem;padding-left:.9rem;display:grid}.foundation-path>.explore-details,.completion-next>.explore-details{margin-top:1rem}.regular-course>summary{cursor:pointer;padding:.75rem 0;font-weight:600}.regular-course>.unit{margin-top:.75rem}.completion-next .continue-next{align-items:flex-start}.memory-dashboard{gap:1.25rem;display:grid}.memory-dashboard>.page-head,.memory-dashboard>.card{margin:0}.memory-next{justify-content:space-between;align-items:center;gap:1rem;display:flex}.memory-toolbar{flex-wrap:wrap;align-items:end;gap:1rem;display:flex}.memory-toolbar label{gap:.35rem;font-size:.85rem;display:grid}.memory-toolbar select{max-width:100%}.memory-tiles{grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;display:grid}.memory-tile{border:1px solid var(--border);border-radius:14px;gap:.6rem;padding:1.2rem;display:grid}.memory-tile>strong{color:var(--brand);font-size:2.1rem;line-height:1.1}.memory-tile small{color:var(--muted);line-height:1.5}.memory-measure-note{margin:0;line-height:1.6}.memory-dashboard .grid-2>*{min-width:0}.memory-chart{margin:1.2rem 0 0}.memory-bars{gap:4px;height:160px;padding-bottom:38px;display:flex}.memory-bar-column{flex-direction:column;flex:1;justify-content:end;align-items:center;gap:4px;min-width:0;display:flex;position:relative}.memory-bar-column>span{font-size:.7rem}.memory-bar{background:var(--accent-fill);border-radius:4px 4px 0 0;width:80%;min-height:2px}.memory-bar-column small{text-align:center;overflow-wrap:anywhere;font-size:.65rem;line-height:1.2;position:absolute;top:calc(100% + 6px)}.memory-heatmap{grid-template-columns:repeat(12,minmax(0,1fr));gap:5px;margin-top:1.5rem;display:grid}.memory-heatmap>span{aspect-ratio:1;border-radius:3px}.heat-0{background:var(--border)}.heat-1{background:#abd7bd}.heat-2{background:#5ea77b}.heat-3{background:#1d6a51}.heat-legend{align-items:center;gap:5px;margin-top:.7rem;display:flex}.heat-legend i{border-radius:2px;width:12px;height:12px}.memory-card-row{text-align:left;border:0;border-bottom:1px solid var(--border);width:100%;color:inherit;cursor:pointer;background:0 0;align-items:center;gap:.8rem;padding:.9rem 0;display:flex}.memory-card-row>span:first-child{flex:1}.memory-card-row small{color:var(--muted);margin-top:.3rem;font-size:.8rem;display:block}.memory-card-row.on{color:var(--brand)}.memory-facts{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;display:grid}.memory-facts strong{display:block}.memory-table-wrap{margin-top:1rem;overflow-x:auto}.memory-dashboard table{border-collapse:collapse;width:100%;font-size:.82rem}.memory-dashboard th,.memory-dashboard td{text-align:left;border-bottom:1px solid var(--border);padding:.65rem .4rem}.memory-dashboard th{font-weight:600}.memory-advice{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.memory-advice article{border-top:2px solid var(--brand);min-width:0}.memory-dashboard .explore-details>summary{cursor:pointer;font-weight:600}.memory-dashboard .explore-details>.grid-2{margin-top:1.5rem}@media (width<=700px){.memory-next{flex-direction:column;align-items:stretch}.memory-tiles,.memory-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.memory-toolbar{align-items:stretch}.memory-toolbar label{flex:1;min-width:120px}.memory-advice,.memory-dashboard .grid-2{grid-template-columns:1fr}.memory-dashboard .explore-details>.grid-2{overflow-x:auto}}@media (width<=480px){.vocab-tabs{grid-template-columns:repeat(2,minmax(0,1fr));display:grid;overflow:visible}.vocab-tabs a{padding:.5rem}}.memory-calibration{margin-top:1.5rem}.memory-calibration-actions{flex-wrap:wrap;gap:.7rem;display:flex}.vocabulary-evidence-row{border-bottom:1px solid var(--border);align-items:center;gap:1rem;padding:.8rem 0;display:flex}.vocabulary-evidence-row>div{flex:1;min-width:0}@media (width<=600px){.vocabulary-evidence-row{flex-direction:column;align-items:flex-start}}.word-panel.reader-word-card{box-sizing:border-box;overscroll-behavior:contain;z-index:60;border-radius:14px;gap:.4rem;width:min(340px,100vw - 16px);padding:.75rem;position:fixed;bottom:auto;right:auto;overflow-y:auto}.reader-word-card .wp-word{font-size:1.25rem}.reader-word-card p{margin:0}.reader-word-card .panel-close{min-width:40px;min-height:40px;top:0;right:0}.reader-word-card .wp-head{padding-right:2rem}.reader-word-card .btn{min-height:40px;padding:.45rem .65rem}.reader-word-card .wp-more summary{cursor:pointer;min-height:32px;font-size:.85rem}.reader-word-card .wp-more[open]{display:block}.reader-word-card .wp-status{margin:.5rem 0}.reader-word-card .wp-lookup input{font-size:16px}.fw-setup .chip{color:var(--text);cursor:pointer;touch-action:manipulation;min-height:44px;padding:.4rem .75rem;font-family:inherit}.fw-setup .chip.on{background:var(--accent-fill);color:#fff;border-color:var(--accent-fill)}.fw-setup .chip:focus-visible{outline:2px solid var(--text);outline-offset:3px}.fw-setup .topic-notice{min-height:1.5em}.flashcard-entry{flex-wrap:wrap;align-items:center;gap:.75rem;margin:1rem 0;display:flex}.flashcard-entry>div{flex:180px}.flashcard-entry p,.flashcard-entry h2{margin:0}.flashcard-entry>.link{flex-basis:100%}@media (width<=600px){.flashcard-entry>.btn{width:100%}}.picked-list{gap:.35rem;margin:0 0 1rem;padding-left:1.2rem;display:grid}.topic-chips{flex-wrap:wrap;gap:.4rem;margin:.5rem 0 .75rem;display:flex}.topics-card .chip.on{background:var(--accent-fill);color:var(--on-accent);border-color:var(--accent-fill)}.topic-familiarity{margin:.3rem 0;display:block}.picked-why{display:block}.top-auth{align-items:center;gap:.6rem;display:inline-flex}.top-login{color:var(--text);white-space:nowrap;font-size:.82rem;font-weight:700;text-decoration:none}.top-login:hover{text-decoration:underline}.due-words__list{gap:.25rem;margin:.5rem 0 .75rem;padding-left:1.2rem;display:grid}.reader-toolbar{flex-wrap:wrap;align-items:center;gap:.4rem;margin:.25rem 0 .5rem;display:flex}.reader-menu{position:relative}.reader-menu-panel{z-index:20;background:var(--surface);border:1px solid var(--border);min-width:15rem;max-width:min(20rem,100vw - 2rem);box-shadow:var(--shadow-float);border-radius:12px;gap:.5rem;padding:.7rem;display:grid;position:absolute;top:calc(100% + .35rem);left:0}.reader-menu-panel p{margin:0}.reader-menu-row{gap:.4rem;display:flex}.reader-key{gap:.45rem;margin:0;padding:0;font-size:.9rem;list-style:none;display:grid}.reader-key .w{cursor:default;margin-right:.35rem}.reader-key-dots{gap:2px;margin-right:.35rem;display:inline-flex}.reader-key-dots i{border-radius:50%;width:.55rem;height:.55rem}.reader-key-dots .key-new{background:var(--dusk)}.reader-key-dots .key-learning{background:var(--attention)}.reader-text.rt-plain .w:not(.sel){background:0 0!important;border-bottom-color:#0000!important;text-decoration:none!important}.reader-text.rt-l{font-size:1.15em}.reader-text.rt-xl{font-size:1.32em}.reader-text.rt-spaced{letter-spacing:.02em;word-spacing:.08em;line-height:1.9}.writing-tasks{padding:0;list-style:none}.writing-brief dt{font-weight:600}.writing-brief dd{margin:0 0 .4rem}.writing-version{white-space:pre-wrap}.writing-scores,.writing-notes{padding-left:1.2rem}.pilot-checks{gap:.6rem;padding-left:1.2rem;display:grid}.pilot-checks li{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.pilot-scale{border:0;flex-wrap:wrap;align-items:center;gap:.5rem;margin:0 0 .8rem;padding:0;display:flex}.pilot-scale legend{width:100%;margin-bottom:.3rem}.auth-form.af{gap:var(--space-4);width:100%;max-width:400px;margin:var(--space-5) 0 0;text-align:left;flex-direction:column;display:flex}.af>*{margin:0}.af .af-field{flex-direction:column;gap:6px;display:flex}.af .af-label{font-size:var(--text-sm);color:var(--text);font-weight:600;line-height:1.3}.af .af-input{width:100%;max-width:none;height:44px;min-height:44px;font:400 16px/1.25 var(--font-ui);color:var(--text);background:var(--surface);box-shadow:none;transition:border-color var(--dur-fast) var(--ease);outline:none;margin:0;padding:0 12px;display:block;border:1px solid var(--border-strong)!important;border-radius:var(--radius)!important}.af .af-input:focus{box-shadow:0 0 0 3px var(--accent-soft);outline:none;border-color:var(--accent)!important}.af .af-pw{position:relative}.af .af-pw .af-input{padding-right:68px}.af .af-pw-toggle{border-radius:0 var(--radius) var(--radius) 0;min-width:60px;height:44px;color:var(--link);font:600 var(--text-sm) / 1 var(--font-ui);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0 14px;display:flex;position:absolute;top:0;right:0;transform:none}.af .af-pw-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:-4px}.af .af-hint{font-size:var(--text-xs);color:var(--text-muted);margin:0;line-height:1.4}.af .af-check{align-items:flex-start;gap:var(--space-3);font-size:var(--text-sm);color:var(--text);cursor:pointer;flex-direction:row;margin:0;padding:2px 0;font-weight:400;line-height:1.5;display:flex}.af .af-box{height:20px;min-height:0;accent-color:var(--accent-fill);cursor:pointer;flex:0 0 20px;margin:1px 0 0;padding:0;border:0!important;border-radius:4px!important;width:20px!important}.af .af-check a{color:var(--link);text-underline-offset:2px;text-decoration:underline}.af .af-notice{font-size:var(--text-sm);color:var(--text-muted);margin:0;line-height:1.45}.af .af-notice.is-quiet{font-size:var(--text-xs)}.af .af-notice a{color:var(--link);text-underline-offset:2px;text-decoration:underline}.af .af-optional{gap:var(--space-2);min-width:0;margin:var(--space-1) 0 0;padding:var(--space-4) 0 0;border:0;border-top:1px solid var(--border);flex-direction:column;display:flex}.af .af-legend{float:left;width:100%;margin:0 0 var(--space-1);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);padding:0;font-weight:600}.af .af-optional .af-check{color:var(--text-muted)}.af .af-btn{justify-content:center;align-items:center;gap:var(--space-2);width:100%;min-height:44px;padding:0 var(--space-4);border-radius:var(--radius);font-size:var(--text-base);margin:0;font-weight:600;display:inline-flex}.af .af-submit{margin-top:var(--space-1)}.af .af-divider{align-items:center;gap:var(--space-3);color:var(--text-muted);font-size:var(--text-xs);display:flex}.af .af-divider:before,.af .af-divider:after{content:"";background:var(--border);flex:1;height:1px}.af .af-error{font-size:var(--text-sm);color:var(--ko);margin:0;line-height:1.45}.af .af-existing{align-items:center;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);text-align:center;flex-direction:column;display:flex}.af .af-existing p{font-size:var(--text-sm);margin:0}.af .af-existing .af-link{min-height:36px}.af .af-ok{font-size:var(--text-sm);color:var(--ok);margin:0;font-weight:600}.af .af-switch{justify-content:center;align-items:center;gap:0 var(--space-1);margin:calc(-1 * var(--space-2)) 0 0;font-size:var(--text-sm);color:var(--text-muted);flex-wrap:wrap;display:flex}.af .af-link{min-height:44px;padding:0 var(--space-1);color:var(--link);font:600 var(--text-sm) / 1 var(--font-ui);cursor:pointer;background:0 0;border:0}.af .af-link:hover{text-decoration:underline}.af .af-switch-line{justify-content:center;align-items:center;gap:0 var(--space-1);flex-basis:100%;display:flex}.signup-card{max-width:464px;margin-top:var(--space-5);padding:var(--space-6)}.signup-card .auth-form.af{margin:0}@media (width<=520px){.signup-card{padding:var(--space-5) var(--space-4)}}.save-card{margin-top:var(--space-5);padding:var(--space-6) var(--space-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:none;text-align:center}.save-card>h2{margin:0 0 var(--space-2);font-size:var(--text-xl);line-height:1.3}.save-card.save-card>p{max-width:52ch;color:var(--text-muted);margin:0 auto}.save-card .auth-form.af{margin:var(--space-5) auto 0}.save-card>.actions{justify-content:center}.save-card>button:last-child,.account-prompt .stamp-modal-card>button.link:last-child{min-height:44px;margin:var(--space-2) auto 0;font-size:var(--text-sm);justify-content:center;align-items:center;display:flex}.account-prompt .ap-form .auth-form.af{max-width:none;margin:var(--space-4) 0 0}@media (width<=520px){.save-card{padding:var(--space-5) var(--space-4)}}.form-hint{align-items:center;gap:var(--space-2);margin:0 0 var(--space-3);font-size:var(--text-sm);color:var(--text-muted);flex-wrap:wrap;display:flex}.form-hint-word{padding:2px var(--space-2);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent);font-size:var(--text-base);align-items:center;font-weight:600;display:inline-flex}.form-hint-note{margin-left:calc(-1 * var(--space-1))}.reader-word-card .wp-next{white-space:nowrap;min-height:40px;margin-left:auto;padding:0 .4rem}.own-note{background:var(--accent-soft);border:1px solid var(--border);border-radius:var(--radius);margin:0 0 1.25rem;padding:.75rem 1rem}.own-note>summary{cursor:pointer;font-weight:600}.own-note .markup{margin-top:.5rem}.own-note-choose{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.ui-btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--target);padding:0 var(--space-5);border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);color:var(--text);font:var(--weight-label) var(--text-base) / 1 var(--font-ui);white-space:nowrap;cursor:pointer;transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);text-decoration:none;display:inline-flex}.ui-btn--sm{min-height:36px;padding:0 var(--space-4);font-size:var(--text-sm)}.ui-btn:hover:not(:disabled){background:var(--surface-2)}.ui-btn--primary{background:var(--accent-fill);border-color:var(--accent-fill);color:var(--on-accent)}.ui-btn--primary:hover:not(:disabled){background:var(--accent-fill-hover);border-color:var(--accent-fill-hover)}.ui-btn--quiet{color:var(--accent);background:0 0;border-color:#0000}.ui-btn--quiet:hover:not(:disabled),.ui-btn:active:not(:disabled){background:var(--accent-soft)}.ui-btn--primary:active:not(:disabled){background:var(--accent-fill-hover)}.ui-btn:disabled{cursor:not-allowed;background:var(--surface-2);border-color:var(--border);color:var(--text-muted)}.ui-btn.is-loading{cursor:progress}.ui-icon-btn{width:var(--target);height:var(--target);border-radius:var(--radius);color:var(--text-muted);cursor:pointer;background:0 0;border:0;place-items:center;display:inline-grid}.ui-icon-btn:hover{background:var(--surface-2);color:var(--text)}.ui-btn:focus-visible,.ui-icon-btn:focus-visible,.ui-chip:focus-visible,.ui-switch:focus-visible,.ui-tabs__tab:focus-visible,.ui-row--link:focus-visible,.ui-input:focus-visible,.ui-check input:focus-visible+.ui-check__box{outline:2px solid var(--focus-ring);outline-offset:2px}.ui-field{gap:var(--space-1);display:grid}.ui-field__label{font:var(--weight-label) var(--text-sm) / var(--leading-sm) var(--font-ui);color:var(--text)}.ui-field__hint{font-size:var(--text-sm);color:var(--text-muted);margin:0}.ui-field__error{font-size:var(--text-sm);color:var(--danger);margin:0}.ui-input{width:100%;min-height:var(--target);padding:var(--space-2) var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:var(--text-base) / var(--leading-base) var(--font-ui)}.ui-input::placeholder{color:var(--text-faint)}.ui-input:disabled{background:var(--surface-2);color:var(--text-muted)}.has-error .ui-input{border-color:var(--danger)}.ui-textarea{resize:vertical;min-height:96px}.ui-check{align-items:center;gap:var(--space-2);min-height:var(--target);cursor:pointer;display:inline-flex}.ui-check input{opacity:0;width:1px;height:1px;position:absolute}.ui-check__box{border:1.5px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);place-items:center;width:20px;height:20px;display:grid}.ui-check input:checked+.ui-check__box{background:var(--accent-fill);border-color:var(--accent-fill)}.ui-check input:checked+.ui-check__box:after{content:"";border:2px solid var(--on-accent);border-top:0;border-right:0;width:10px;height:5px;transform:rotate(-45deg)translate(1px,-1px)}.is-disabled{opacity:.55;cursor:not-allowed}.ui-switch-row{justify-content:space-between;align-items:center;gap:var(--space-4);min-height:var(--target);display:flex}.ui-switch{border:1.5px solid var(--border-strong);background:var(--surface-2);cursor:pointer;width:44px;height:26px;transition:background var(--dur-fast) var(--ease);border-radius:13px;padding:0;position:relative}.ui-switch__thumb{background:var(--text-muted);width:19px;height:19px;transition:transform var(--dur-fast) var(--ease);border-radius:50%;position:absolute;top:2px;left:2px}.ui-switch[aria-checked=true]{background:var(--accent-fill);border-color:var(--accent-fill)}.ui-switch[aria-checked=true] .ui-switch__thumb{background:var(--on-accent);transform:translate(17px)}.ui-chip{min-height:36px;padding:0 var(--space-4);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font:var(--weight-label) var(--text-sm) / 1 var(--font-ui);cursor:pointer;border-radius:999px;align-items:center;display:inline-flex}.ui-chip.is-selected{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.ui-chip:disabled{color:var(--text-muted);cursor:not-allowed}.ui-badge{padding:2px var(--space-2);border-radius:var(--radius-sm);font:var(--weight-label) var(--text-xs) / var(--leading-xs) var(--font-ui);background:var(--surface-2);color:var(--text-muted);align-items:center;display:inline-flex}.ui-badge--accent{background:var(--accent-soft);color:var(--accent)}.ui-badge--attention{background:var(--attention-soft);color:var(--attention)}.ui-badge--danger{background:var(--danger-soft);color:var(--danger)}.ui-badge--info{background:var(--info-soft);color:var(--info)}.ui-skeleton{background:var(--surface-2);border-radius:var(--radius-sm);animation:1.4s ease-in-out infinite ui-pulse;display:block}.ui-skeleton--block{border-radius:var(--radius)}.ui-skeleton--circle{border-radius:50%}@keyframes ui-pulse{50%{opacity:.55}}.ui-spinner{border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;width:20px;height:20px;animation:.8s linear infinite ui-spin;display:inline-block}.ui-spinner--sm{width:14px;height:14px}@keyframes ui-spin{to{transform:rotate(360deg)}}.ui-progress{background:var(--surface-2);border-radius:3px;height:6px;overflow:hidden}.ui-progress__fill{background:var(--accent-fill);height:100%;transition:width var(--dur-panel) var(--ease)}.ui-kbd{min-width:1.6em;padding:0 var(--space-1);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-muted);font:var(--weight-label) var(--text-xs) / 1.6 var(--font-ui);text-align:center;border-bottom-width:2px;display:inline-block}.ui-tabs__list{gap:var(--space-1);border-bottom:1px solid var(--border);display:flex;overflow-x:auto}.ui-tabs__tab{min-height:var(--target);padding:0 var(--space-4);color:var(--text-muted);font:var(--weight-label) var(--text-sm) / 1 var(--font-ui);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000}.ui-tabs__tab[aria-selected=true]{color:var(--text);border-bottom-color:var(--accent)}.ui-tabs__panel{padding-top:var(--space-4)}.ui-knowledge-nav{margin-bottom:var(--space-5)}.ui-knowledge-nav__tab{white-space:nowrap;align-items:center;text-decoration:none;display:inline-flex}.ui-knowledge-nav__tab[aria-current=page]{color:var(--text);border-bottom-color:var(--accent)}.ui-sheet-backdrop{z-index:100;background:color-mix(in srgb, var(--text) 35%, transparent);animation:ui-fade var(--dur-panel) var(--ease);align-items:end;display:grid;position:fixed;inset:0}.ui-sheet{background:var(--surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-height:85dvh;box-shadow:var(--shadow-float);padding:var(--space-2) var(--space-4) calc(var(--space-4) + env(safe-area-inset-bottom));animation:ui-rise var(--dur-panel) var(--ease);overflow:auto}.ui-sheet__handle{width:36px;height:4px;margin:0 auto var(--space-2);background:var(--border-strong);border-radius:2px;display:block}.ui-sheet__head{justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.ui-sheet__head h2{font:var(--weight-heading) var(--text-lg) / var(--leading-lg) var(--font-ui);margin:0}.ui-sheet__close{width:var(--target);height:var(--target);color:var(--text-muted);font-size:var(--text-xl);cursor:pointer;background:0 0;border:0}.ui-sheet__foot{justify-content:flex-end;gap:var(--space-2);padding-top:var(--space-4);display:flex}@media (width>=900px){.ui-sheet-backdrop{place-items:center}.ui-sheet{width:min(560px, calc(100vw - 2 * var(--space-6)));border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5) var(--space-5)}.ui-sheet__handle{display:none}}@keyframes ui-fade{0%{opacity:0}}@keyframes ui-rise{0%{opacity:0;transform:translateY(16px)}}.ui-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-5)}.ui-section-head{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-3);display:flex}.ui-section-head__title{font:var(--weight-heading) var(--text-xl) / var(--leading-xl) var(--font-ui);letter-spacing:0;margin:0}h3.ui-section-head__title{font-size:var(--text-lg)}.ui-section-head__desc{margin:var(--space-1) 0 0;color:var(--text-muted);font-size:var(--text-sm)}.ui-row{justify-content:space-between;align-items:center;gap:var(--space-4);width:100%;min-height:var(--target);padding:var(--space-3) 0;border:0;border-bottom:1px solid var(--border);color:var(--text);font:inherit;text-align:left;background:0 0;text-decoration:none;display:flex}.ui-row--link{cursor:pointer}.ui-row--link:hover{background:var(--surface-2);text-decoration:none}.ui-row__text{gap:2px;display:grid}.ui-row__title{font-weight:var(--weight-label)}.ui-row__detail{color:var(--text-muted);font-size:var(--text-sm)}.ui-state{gap:var(--space-3);padding:var(--space-5);border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);justify-items:start;display:grid}.ui-state p{margin:0}.ui-state--unknown{border-style:dashed;border-color:var(--border-strong)}.ui-state--error{border-color:var(--danger)}.ui-state__title{font-weight:var(--weight-label)}.ui-state__detail,.ui-muted{color:var(--text-muted);font-size:var(--text-sm)}.ui-banner{padding:var(--space-2) var(--space-4);background:var(--surface-2);border-bottom:1px solid var(--border);color:var(--text);font-size:var(--text-sm)}.ui-stale{padding:2px var(--space-2);border-radius:var(--radius-sm);background:var(--attention-soft);color:var(--attention);font-size:var(--text-xs);font-weight:var(--weight-label);display:inline-flex}.ui-pending{align-items:center;gap:var(--space-2);color:var(--text-muted);font-size:var(--text-sm);display:inline-flex}.ui-pending__dot{background:var(--info);border-radius:50%;width:8px;height:8px;animation:1.2s ease-in-out infinite ui-pulse}.ui-band-wrap{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:inline-flex}.ui-band{align-items:center;gap:var(--space-2);min-height:28px;padding:0 var(--space-3);border-radius:var(--radius-sm);font:var(--weight-label) var(--text-sm) / 1 var(--font-ui);color:var(--text);border:1px solid #0000;display:inline-flex}.ui-band__shape{flex:none;width:10px;height:10px}.ui-band--unassessed{border:1.5px dashed var(--border-strong);color:var(--text-muted)}.ui-band--unassessed .ui-band__shape{border:1.5px dashed var(--text-muted);border-radius:50%}.ui-band--emerging{background:var(--attention-soft);color:var(--attention)}.ui-band--emerging .ui-band__shape{border:1.5px solid;border-radius:50%}.ui-band--practising{background:var(--surface-2);border-color:var(--accent);color:var(--accent)}.ui-band--practising .ui-band__shape{background:linear-gradient(90deg,currentColor 50%,#0000 50%);border:1.5px solid;border-radius:50%}.ui-band--independent_recent{background:var(--accent-soft);color:var(--accent)}.ui-band--independent_recent .ui-band__shape{background:currentColor;border-radius:50%}.ui-band--independent_retained{background:var(--accent-fill);color:var(--on-accent)}.ui-band--independent_retained .ui-band__shape{background:currentColor;border-radius:2px}.ui-band__note{color:var(--text-muted);font-size:var(--text-xs)}.ui-band__check{min-height:28px;padding:0 var(--space-2);color:var(--accent);font:var(--weight-label) var(--text-sm) / 1 var(--font-ui);cursor:pointer;background:0 0;border:0;text-decoration:underline}.ui-evidence{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.ui-evidence__item{gap:2px var(--space-3);font-size:var(--text-sm);grid-template-columns:7.5em 1fr;display:grid}.ui-evidence__when{color:var(--text-muted);font-variant-numeric:tabular-nums}.ui-evidence__help{color:var(--text-muted);font-size:var(--text-xs);grid-column:2}.ui-why__reason{color:var(--text-muted);margin:0}.ui-why__toggle{margin-top:var(--space-1);min-height:32px;color:var(--accent);font:var(--weight-label) var(--text-sm) / 1 var(--font-ui);cursor:pointer;background:0 0;border:0;padding:0}.ui-why__body{margin-top:var(--space-2);padding:var(--space-3);border-left:2px solid var(--border-strong)}.ui-session-bar{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:52px;padding:0 var(--space-2);background:var(--surface);border-bottom:1px solid var(--border);display:flex;position:relative}.ui-session-bar__status{font-size:var(--text-sm);color:var(--text-muted);text-align:center;margin:0}.ui-session-bar__status strong{color:var(--text);font-weight:var(--weight-label)}.ui-session-bar__btn{min-height:var(--target);padding:0 var(--space-3);border-radius:var(--radius);color:var(--text);font:var(--weight-label) var(--text-sm) / 1 var(--font-ui);cursor:pointer;white-space:nowrap;background:0 0;border:0}.ui-session-bar__btn:hover{background:var(--surface-2)}.ui-session-bar__track{height:2px;position:absolute;bottom:-1px;left:0;right:0}.ui-session-bar__track>div{background:var(--accent-fill);height:100%;transition:width var(--dur-panel) var(--ease)}.ui-reading{font-family:var(--font-reading);font-size:var(--read-base);line-height:var(--read-leading);font-optical-sizing:auto;max-width:68ch}.ui-gallery{padding:var(--space-5) var(--space-4)}.ui-gallery__head h1{margin:0 0 var(--space-1);font:var(--weight-heading) var(--text-2xl) / var(--leading-2xl) var(--font-ui)}.ui-gallery__switch{gap:var(--space-2);margin:var(--space-4) 0;display:flex}.ui-gallery__cols{gap:var(--space-4);display:grid}@media (width>=1100px){.ui-gallery__cols--both{grid-template-columns:1fr 1fr}}.ui-gallery__col{gap:var(--space-5);padding:var(--space-5);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg);color:var(--text);font-family:var(--font-ui);align-content:start;display:grid}.ui-gallery__group h2{margin:0 0 var(--space-3);font:var(--weight-heading) var(--text-sm) / var(--leading-sm) var(--font-ui);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.ui-gallery__items,.ui-gallery__stack{gap:var(--space-3);justify-items:start;display:grid}.ui-gallery__items>*{width:100%}.ui-gallery__row{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.ui-gallery__swatches{gap:var(--space-2);font-size:var(--text-xs);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));margin:0;padding:0;list-style:none;display:grid}.ui-gallery__swatches li{align-items:center;gap:var(--space-2);display:flex}.ui-gallery__swatch{border-radius:var(--radius-sm);border:1px solid var(--border-strong);width:28px;height:28px}.ui-gallery__type{font-weight:var(--weight-heading);margin:0;line-height:1.2}.shell.v2{--rail:240px;--sidebar:var(--rail)}.shell.v2 main{margin-left:var(--rail);padding:var(--space-6) var(--space-6) var(--space-8);min-height:100dvh}.ws-skip{left:var(--space-2);z-index:200;padding:var(--space-2) var(--space-4);border-radius:var(--radius);background:var(--accent-fill);color:var(--on-accent);font-weight:var(--weight-label);position:absolute;top:-100px}.ws-skip:focus{top:var(--space-2)}.ws-main:focus{outline:none}.ws-rail{z-index:20;width:var(--rail);gap:var(--space-1);padding:var(--space-4) var(--space-3);background:var(--surface);border-right:1px solid var(--border);font-family:var(--font-ui);overscroll-behavior:contain;flex-direction:column;display:flex;position:fixed;inset:0 auto 0 0;overflow-y:auto}.ws-brand{align-items:center;gap:var(--space-2);min-height:var(--target);padding:0 var(--space-2);margin-bottom:var(--space-3);color:var(--text);font-weight:650;font-size:var(--text-lg);letter-spacing:-.02em;text-decoration:none;display:flex}.ws-brand:hover{text-decoration:none}.ws-brand__mark{border-radius:7px;flex:none}.ws-rail__list{gap:2px;margin:0;padding:0;list-style:none;display:grid}.ws-rail__item{align-items:center;gap:var(--space-3);width:100%;min-height:var(--target);padding:0 var(--space-3);border-radius:var(--radius);color:var(--text-muted);font:var(--weight-label) var(--text-sm) / 1 var(--font-ui);text-align:left;cursor:pointer;transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);background:0 0;border:0;text-decoration:none;display:flex}.ws-rail__item:hover{background:var(--surface-2);color:var(--text);text-decoration:none}.ws-rail__item[aria-current=page]{background:var(--accent-soft);color:var(--accent)}.ws-rail__item .ui-kbd{margin-left:auto}.ws-rail__heading{margin:0 0 var(--space-1);padding:0 var(--space-3);color:var(--text-muted);font:600 var(--text-xs) / var(--leading-xs) var(--font-ui);letter-spacing:.04em;text-transform:uppercase}.ws-rail__shortcuts .ws-rail__item{min-height:36px}.ws-rail__divider{width:100%;margin:var(--space-2) 0;border:0;border-top:1px solid var(--border)}.ws-rail__bottom{gap:var(--space-1);margin-top:auto;display:grid}.ws-rail__level{padding:0 var(--space-3);color:var(--text-muted);font-size:var(--text-xs);margin:0;text-decoration:none}.ws-rail__level:hover{color:var(--text);text-decoration:underline}.ws-rail__collapse{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:32px;height:32px;color:var(--text-muted);cursor:pointer;justify-self:end}.ws-count{background:var(--accent-fill);min-width:22px;color:var(--on-accent);font:600 var(--text-xs) / 1.3 var(--font-ui);font-variant-numeric:tabular-nums;text-align:center;border-radius:999px;margin-left:auto;padding:2px 6px}.ws-rail :is(a,button):focus-visible,.ws-top :is(a,button):focus-visible,.ws-tabs a:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.ws-rail.is-collapsed{width:64px}.shell.v2:has(.ws-rail.is-collapsed){--rail:64px}.ws-rail.is-collapsed .ws-hide-collapsed{display:none}.ws-rail.is-collapsed .ws-rail__item,.ws-rail.is-collapsed .ws-brand{justify-content:center;padding:0}.ws-rail.is-collapsed .ws-count{margin:-18px -22px 0 0;position:absolute}.ws-rail.is-collapsed .ws-rail__item{position:relative}.ws-rail.is-collapsed .ws-rail__collapse{justify-self:center}@media (width>=900px) and (width<=1199px){.shell.v2{--rail:64px}.ws-rail{width:64px}.ws-rail .ws-hide-collapsed,.ws-rail__collapse{display:none}.ws-rail .ws-rail__item,.ws-rail .ws-brand{justify-content:center;padding:0}.ws-rail .ws-rail__item{position:relative}.ws-rail .ws-count{margin:-18px -22px 0 0;position:absolute}}.ws-top,.ws-tabs{display:none}.ws-menu{margin:var(--space-2) 0 0;padding:0;list-style:none;display:grid}.ws-menu a{min-height:var(--target);padding:0 var(--space-2);border-bottom:1px solid var(--border);color:var(--text);align-items:center;text-decoration:none;display:flex}.ws-menu a[aria-current=page]{color:var(--accent);font-weight:var(--weight-label)}@media (width<=899px){.shell.v2{--rail:0px}.shell.v2 main{padding:var(--space-4) var(--space-4) calc(88px + env(safe-area-inset-bottom));margin-left:0}.ws-rail{display:none}.ws-top{z-index:15;align-items:center;gap:var(--space-2);min-height:56px;padding:env(safe-area-inset-top) var(--space-3) 0 var(--space-4);background:var(--surface);border-bottom:1px solid var(--border);display:flex;position:sticky;top:0}.ws-top .ws-brand{flex:1;margin:0;padding:0}.ws-top__btn{justify-content:center;align-items:center;gap:var(--space-2);min-width:var(--target);min-height:var(--target);padding:0 var(--space-2);border-radius:var(--radius);color:var(--text);font:var(--weight-label) var(--text-sm) / 1 var(--font-ui);cursor:pointer;background:0 0;border:0;text-decoration:none;display:inline-flex}.ws-top__review{border:1px solid var(--border-strong);padding:0 var(--space-3)}.ws-top__review .ws-count{margin-left:0}.ws-tabs{z-index:15;padding:var(--space-1) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background:var(--surface);border-top:1px solid var(--border);display:flex;position:fixed;bottom:0;left:0;right:0}.ws-tabs a{min-width:0;min-height:52px;color:var(--text-muted);font:var(--weight-label) var(--text-xs) / 1.2 var(--font-ui);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;text-decoration:none;display:flex}.ws-tabs a[aria-current=page]{color:var(--accent)}}.ws-palette-backdrop{padding:12dvh var(--space-4) 0;place-items:start center}.ws-palette{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:min(600px,100%);box-shadow:var(--shadow-float);overflow:hidden}.ws-palette__input{width:100%;min-height:56px;padding:0 var(--space-5);border:0;border-bottom:1px solid var(--border);color:var(--text);font:var(--text-lg) / 1 var(--font-ui);background:0 0}.ws-palette__input:focus{outline:none}.ws-palette__list{padding:var(--space-2);max-height:50dvh;margin:0;list-style:none;overflow:auto}.ws-palette__item{justify-content:space-between;gap:var(--space-4);min-height:var(--target);padding:0 var(--space-3);border-radius:var(--radius);cursor:pointer;align-items:center;display:flex}.ws-palette__item[aria-selected=true]{background:var(--accent-soft);color:var(--accent)}.ws-palette__kind{color:var(--text-muted);font-size:var(--text-xs);flex:none}.ws-palette__empty,.ws-palette__hint{padding:var(--space-3);color:var(--text-muted);font-size:var(--text-sm);margin:0}.ws-palette__hint{border-top:1px solid var(--border)}.ui-screen{gap:var(--space-5);font-family:var(--font-ui);display:grid}.ui-screen__head h1{margin:0 0 var(--space-1);font:var(--weight-heading) var(--text-3xl) / var(--leading-3xl) var(--font-ui);letter-spacing:-.02em}.ui-screen__head p,.ui-screen__foot{margin:0}.ui-eyebrow{margin:0 0 var(--space-1);color:var(--text-muted);font:600 var(--text-xs) / var(--leading-xs) var(--font-ui);letter-spacing:.08em;text-transform:uppercase}.ui-next__title{margin:0 0 var(--space-2);font:var(--weight-heading) var(--text-2xl) / var(--leading-2xl) var(--font-ui)}.ui-next__actions{align-items:center;gap:var(--space-4);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.ui-link{color:var(--accent);text-underline-offset:2px;text-decoration:underline}.ui-note{margin:var(--space-2) 0 0;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--info-soft);color:var(--text);font-size:var(--text-sm);display:inline-block}.ui-overview{gap:var(--space-2);font-size:var(--text-lg);line-height:var(--leading-lg);margin:0;padding-left:1.1em;display:grid}.ui-overview__link{font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.ui-overview__link[aria-pressed=true]{font-weight:var(--weight-heading)}.ui-k-filters{align-items:end;gap:var(--space-3);margin:0 0 var(--space-3);flex-wrap:wrap;display:flex}.ui-k-filters label{color:var(--text-muted);font-size:var(--text-sm);gap:2px;display:grid}.ui-k-filters select{min-height:var(--target);font-size:16px}.ui-k-grid{margin:0 0 var(--space-3);display:none}.ui-k-grid table{border-collapse:collapse;width:100%}.ui-k-grid th,.ui-k-grid td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);text-align:left;vertical-align:top}.ui-k-grid thead th{color:var(--text-muted);font-size:var(--text-sm)}.ui-k-grid .ui-skill__facets{margin:0}@media (width>=600px){.ui-k-grid{display:block}.ui-skills.ui-skills--list{display:none}}.ui-dispute{gap:var(--space-2);flex-wrap:wrap;flex-basis:100%;align-items:center;margin:0;display:flex}.ui-k-graph{width:100%;max-width:520px;height:auto;margin:var(--space-2) 0;display:block}.ui-k-graph rect{fill:var(--surface-2);stroke:var(--border-strong)}.ui-k-graph .on rect{fill:var(--accent-soft)}.ui-k-graph .me rect{fill:var(--accent-fill);stroke:var(--accent-fill)}.ui-k-graph text{fill:var(--text);font-size:12px}.ui-k-graph .me text{fill:var(--on-accent)}.ui-k-graph line{stroke:var(--border-strong);stroke-width:1.5px}.ui-skills{margin:0 0 var(--space-3);gap:var(--space-3);padding:0;list-style:none;display:grid}.ui-skill{padding:var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.ui-skill__head{justify-content:space-between;align-items:center;gap:var(--space-3);width:100%;min-height:var(--target);color:var(--text);font:var(--weight-heading) var(--text-base) / 1.3 var(--font-ui);text-align:left;cursor:pointer;background:0 0;border:0;padding:0;display:flex}.ui-skill__head:hover .ui-skill__name{text-decoration:underline}.ui-skill__head:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.ui-skill__facets,.ui-detail__facets{margin:var(--space-2) 0 0;gap:var(--space-2);padding:0;list-style:none;display:grid}.ui-skill__facets li,.ui-detail__facets li{align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.ui-skill__facet,.ui-detail__facet{min-width:9.5em;color:var(--text-muted);font-size:var(--text-sm)}.ui-facts{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin:0;display:grid}.ui-facts div{gap:2px;display:grid}.ui-facts dt{color:var(--text-muted);font-size:var(--text-sm)}.ui-facts dd{font:600 var(--text-2xl) / 1.1 var(--font-ui);font-variant-numeric:tabular-nums;margin:0}.ui-detail h3{margin:var(--space-5) 0 var(--space-2);font:var(--weight-heading) var(--text-base) / 1.3 var(--font-ui)}.ui-detail p{margin:0}.ui-table-wrap{overflow-x:auto}.ui-table{border-collapse:collapse;width:100%;font-size:var(--text-sm);font-variant-numeric:tabular-nums}.ui-table th,.ui-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);text-align:left}.ui-table th{color:var(--text-muted);font-weight:var(--weight-label)}.ui-goals{gap:var(--space-3);margin-bottom:var(--space-5);display:grid}.ui-goals__list{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.ui-goal{gap:var(--space-2);padding-bottom:var(--space-3);border-bottom:1px solid var(--border);display:grid}.ui-goal__text{margin:0}.ui-goal__skills,.ui-goal__actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.ui-goals__add{gap:var(--space-2);justify-items:start;display:grid}.ui-focus{gap:var(--space-3);margin-bottom:var(--space-5);display:grid}.ui-focus__list{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.ui-focus__item{gap:var(--space-2);padding-bottom:var(--space-3);border-bottom:1px solid var(--border);display:grid}.ui-focus__title{margin:0;font-weight:600}.ui-focus__bands{gap:var(--space-2);flex-wrap:wrap;display:flex}.ui-focus__next{padding-left:var(--space-5);gap:var(--space-2);margin:0;display:grid}.ui-focus__steps{margin:0}.ui-plan{gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid}.ui-session-bar{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);flex-wrap:wrap;display:flex}.ui-session-bar__where{color:var(--text-muted)}.ui-subhead{margin:var(--space-3) 0 var(--space-1);font-size:inherit}.ui-plain-list{padding-left:var(--space-5);gap:var(--space-1);margin:0;display:grid}.ui-plan-modes{gap:var(--space-2,.5rem);flex-wrap:wrap;margin-block:.25rem .5rem;display:flex}.ws-top__login{border:1px solid var(--border-strong);padding:0 var(--space-3);white-space:nowrap}.ws-signout{gap:var(--space-2);margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--border);display:grid}.ws-signout p{overflow-wrap:anywhere;margin:0}.ws-auth{gap:var(--space-2);margin-bottom:var(--space-3);display:grid}.ui-tomorrow__steps>summary{cursor:pointer;margin-block:var(--space-1)}.ui-tomorrow__steps[open]>summary{margin-block-end:var(--space-2)}
