:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--surface:#0a0d0c;--surface-raised:#121715;--line:#222a27;--ink:#e6ebe8;--ink-muted:#95a39d;--accent:#1f7a60;--on-accent:#fff;--accent-ink:#4fbf96;--correct:#6cb6ff;--wrong:#ff7a6b;--mastery-none:#1a211e;--mastery-weak:#7a3b33;--mastery-learning:#a87a1f;--mastery-solid:#6cb6ff;--on-mastery-weak:#e6ebe8;--on-mastery-learning:#1f1606;--on-mastery-solid:#0d1a26;--font-display:"Bricolage Grotesque", "Helvetica Neue", Arial, sans-serif;--font-sans:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--space-1:4px;--space-2:8px;--space-3:16px;--space-4:24px;--space-5:40px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--surface:#f4f6f4;--surface-raised:#fff;--line:#d5dcd8;--ink:#111614;--ink-muted:#56615c;--accent:#1b6b54;--on-accent:#fff;--accent-ink:#1b6b54;--correct:#1d64b0;--wrong:#b93a2b;--mastery-none:#e3e8e5;--mastery-weak:#f2b8ac;--mastery-learning:#d19a2a;--mastery-solid:#1d64b0;--on-mastery-weak:#111614;--on-mastery-learning:#111614;--on-mastery-solid:#fff}*{box-sizing:border-box}html,body{margin:0}body{background:var(--surface);color:var(--ink);font:400 15px/23px var(--font-sans)}a{color:var(--accent-ink)}:focus-visible{outline:3px solid var(--accent-ink);outline-offset:2px}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}.num,code,pre{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.display{font:700 40px/44px var(--font-display);letter-spacing:-.5px;text-wrap:balance;margin:0}.title{font:600 22px/30px var(--font-display);text-wrap:balance;margin:0}.numeral{font:500 32px/36px var(--font-mono);font-variant-numeric:tabular-nums}.label{letter-spacing:.6px;text-transform:uppercase;color:var(--ink-muted);font-size:12px;font-weight:600;line-height:16px}.muted{color:var(--ink-muted);font-size:13px;line-height:20px}.lead{max-width:560px;color:var(--ink-muted);margin:0}.code-inline{border-radius:var(--radius-sm);background:var(--mastery-none);padding:1px 4px;font-size:13px}.stack{gap:var(--space-3);flex-direction:column;display:flex}.row{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.between{justify-content:space-between}.grow{flex-grow:1}.page{max-width:1200px;padding:var(--space-5);margin:0 auto}.topbar{align-items:center;gap:var(--space-5);padding:20px var(--space-5);border-bottom:1px solid var(--line);display:flex}.brand{font:700 20px var(--font-display);color:var(--ink);text-decoration:none}.nav{gap:var(--space-4);flex-wrap:wrap;flex-grow:1;display:flex}.nav a{color:var(--ink-muted);text-decoration:none}.nav a[aria-current=page]{color:var(--accent-ink);font-weight:600}.banner{padding:var(--space-2) var(--space-5);background:var(--mastery-weak);color:var(--ink);margin:0}.btn{min-height:44px;padding:0 var(--space-4);border-radius:var(--radius-md);border:1px solid var(--line);background:var(--surface-raised);justify-content:center;align-items:center;font-weight:600;text-decoration:none;display:inline-flex}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn-ghost{background:0 0}.btn-small{min-height:32px;padding:0 12px;font-size:12px}.chip{height:24px;padding:0 var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--line);align-items:center;font-size:12px;display:inline-flex}.pill{border-radius:var(--radius-md);border:1px solid var(--line);background:0 0;min-height:36px;padding:0 14px}.pill[aria-checked=true]{border:2px solid var(--accent-ink);color:var(--accent-ink);font-weight:600}.card{padding:var(--space-4);border-radius:var(--radius-lg);background:var(--surface-raised)}.panel{padding:var(--space-4);border-radius:var(--radius-lg);border:1px solid var(--line)}.bar{border-radius:var(--radius-sm);background:var(--mastery-none);height:6px;overflow:hidden}.bar-fill{border-radius:var(--radius-sm);height:100%}.fill-none{background:0 0}.fill-weak{background:var(--wrong)}.fill-learning{background:var(--mastery-learning)}.fill-solid{background:var(--mastery-solid)}.today{gap:var(--space-5);grid-template-columns:minmax(0,7fr) minmax(0,4fr);display:grid}.durations{gap:var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.duration{align-items:flex-start;gap:var(--space-1);border-radius:var(--radius-lg);border:1px solid var(--line);background:var(--surface-raised);text-align:left;flex-direction:column;padding:20px;display:flex}.duration[aria-checked=true]{border:2px solid var(--accent-ink)}.duration[aria-checked=true] .numeral{color:var(--accent-ink)}.counts{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));display:grid}.count{font:500 22px/28px var(--font-mono)}.test-header{align-items:center;gap:var(--space-4);padding:20px var(--space-5);border-bottom:1px solid var(--line);display:flex}.test-header a{color:var(--ink-muted);text-decoration:none}.segments{gap:var(--space-1);display:grid}.seg{border-radius:var(--radius-sm);background:var(--line);height:4px}.seg-correct{background:var(--correct)}.seg-wrong{background:var(--wrong)}.seg-current{background:var(--accent-ink)}.overtime{color:var(--wrong)}.question{max-width:760px;padding:var(--space-5) var(--space-3);gap:var(--space-4);flex-direction:column;margin:0 auto;display:flex}.options{gap:var(--space-2);flex-direction:column;display:flex}.option{padding:14px var(--space-3);border-radius:var(--radius-md);border:1px solid var(--line);background:var(--surface-raised);text-align:left;align-items:flex-start;gap:12px;transition:border-color .12s;display:flex}.option[aria-pressed=true]{border:2px solid var(--accent-ink)}.option-key{color:var(--ink-muted)}.option[aria-pressed=true] .option-key{color:var(--accent-ink)}.code-block{padding:var(--space-2) 0;border-radius:var(--radius-lg);border:1px solid var(--line);background:var(--surface-raised);flex-direction:column;display:flex;overflow-x:auto}.code-line{gap:var(--space-3);padding:0 var(--space-3);text-align:left;font:13px/22px var(--font-mono);white-space:pre;background:0 0;border:0;grid-template-columns:32px minmax(0,1fr);display:grid}.code-line[aria-pressed=true]{background:var(--mastery-weak)}.code-line[aria-pressed=true] .ln{color:var(--ink)}.code-line:focus-visible{outline-offset:-3px}.title:focus{outline:none}.ln{color:var(--ink-muted);text-align:right}.answer-box{width:100%;min-height:120px;padding:var(--space-3);border-radius:var(--radius-md);border:1px solid var(--line);background:var(--surface-raised);color:var(--ink);font:inherit;resize:vertical}.check{gap:var(--space-2);align-items:flex-start;display:flex}.confidence{align-items:center;gap:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--line);flex-wrap:wrap;display:flex}.summary{align-items:flex-end;gap:var(--space-5);padding-bottom:var(--space-4);border-bottom:1px solid var(--line);flex-wrap:wrap;display:flex}.score{font:500 64px/64px var(--font-mono);font-variant-numeric:tabular-nums}.stat{font:500 22px/28px var(--font-mono)}.up{color:var(--correct)}.down{color:var(--wrong)}.gaps{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.steps{flex-direction:column;gap:6px;margin:0;padding-left:20px;font-size:14px;line-height:21px;display:flex}.two{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(320px,1fr));display:grid}.callout{padding:20px var(--space-4);border-radius:var(--radius-lg);border:1px solid var(--wrong)}.callout .label{color:var(--wrong)}details summary{cursor:pointer}.question.wide{max-width:1200px}.challenge{gap:var(--space-4);grid-template-columns:minmax(0,2fr) minmax(0,3fr);align-items:start;display:grid}.editor{border-radius:var(--radius-lg);border:1px solid var(--line);background:var(--surface-raised);min-height:420px;overflow:hidden}.editor>.muted{padding:var(--space-3);margin:0}.test-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;font-size:14px;list-style:none;display:flex}.log{max-height:160px;padding:var(--space-2);border-radius:var(--radius-md);background:var(--surface-raised);white-space:pre-wrap;margin:0;font-size:12px;line-height:18px;overflow:auto}.md h3,.md h4{margin:var(--space-3) 0 var(--space-2);font:600 18px/24px var(--font-display)}.md h4{font-size:16px}.md p,.md ul{margin:0 0 var(--space-2)}.md-code{margin:0 0 var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);border:1px solid var(--line);background:var(--surface-raised);white-space:pre;font-size:13px;line-height:20px;overflow-x:auto}@media (width<=900px){.challenge{grid-template-columns:minmax(0,1fr)}}.narrow{max-width:760px}.topics{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.progress{gap:var(--space-5);grid-template-columns:minmax(0,360px) minmax(0,1fr);align-items:start;display:grid}.week-chart{align-items:flex-end;gap:10px;height:96px;display:flex}.week-bar{border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:var(--ink-muted);flex:1 1 0}.week-bar.current{background:var(--accent-ink)}.week-bar.empty{border:1px dashed var(--ink-muted);background:0 0}.legend{color:var(--ink-muted);flex-wrap:wrap;gap:12px;font-size:12px;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.swatch{border:1px solid var(--ink-muted);border-radius:2px;width:12px;height:12px}.map-grid{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));display:grid}.cell{justify-content:space-between;gap:var(--space-1);border-radius:var(--radius-sm);flex-direction:column;min-height:64px;padding:8px 10px;font-size:13px;line-height:17px;display:flex}.cell-none{background:var(--mastery-none);border:1px solid var(--line);color:var(--ink)}.cell-weak{background:var(--mastery-weak);color:var(--on-mastery-weak)}.cell-learning{background:var(--mastery-learning);color:var(--on-mastery-learning)}.cell-solid{background:var(--mastery-solid);color:var(--on-mastery-solid)}.file-input{font:inherit;color:var(--ink-muted)}@media (width<=900px){.progress{grid-template-columns:minmax(0,1fr)}}@media (width<=720px){.today{grid-template-columns:minmax(0,1fr)}.page{padding:var(--space-3)}.topbar,.test-header{padding:var(--space-3);gap:var(--space-3)}}@media (prefers-reduced-motion:reduce){.option{transition:none}}
