@font-face{font-family:Geist;src:url(/fonts/Geist-Variable.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Geist Mono;src:url(/fonts/GeistMono-Variable.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}:root{--cs-brand:#04509c;--cs-brand-hover:#045cb4;--cs-band:#045cb4;--cs-band-panel:#04509c;--cs-on-brand:#fff;--cs-on-band:#fff;--cs-cyan:#00b4d8;--cs-cyan-soft:#e0f6fb;--cs-highlight:#f8f43a;--cs-surface:#fff;--cs-surface-alt:#f1f1f1;--cs-ink:#1e293b;--cs-ink-muted:#334155;--cs-border:#ccc;--cs-danger:#d60707;--cs-success:#3e7a0b;--cs-success-soft:#eaf4e1;--cs-danger-soft:#fdecec;--cs-locked:#64748b;--cs-trophy-glint:#5ab0f5;--shadow-badge:0 2px 6px #0b1a2b40;--bg:var(--cs-surface-alt);--surface:var(--cs-surface);--text:var(--cs-ink);--muted:var(--cs-ink-muted);--border:var(--cs-border);--control:var(--cs-ink-muted);--accent:var(--cs-brand);--accent-hover:var(--cs-brand-hover);--accent-text:var(--cs-on-brand);--accent-tint:var(--cs-cyan-soft);--band:var(--cs-brand);--on-band:var(--cs-on-band);--band-panel:var(--cs-band);--highlight:var(--cs-highlight);--cyan:var(--cs-cyan);--good:var(--cs-success);--good-bg:var(--cs-success-soft);--bad:var(--cs-danger);--bad-bg:var(--cs-danger-soft);--learning:var(--cs-cyan);--learning-mark:var(--cs-brand);--learning-text:var(--cs-brand);--learning-bg:var(--cs-cyan-soft);--learning-border:var(--cs-cyan);--locked:var(--cs-locked);--slate:#1e293b;--code-bg:var(--cs-surface-alt);--field:var(--cs-surface-alt);--row-alt:#f8f8f8;--syn-comment:#994500;--syn-keyword:#750075;--syn-string:#ab1212;--syn-literal:#116a49;--syn-atom:#271b98;--syn-regexp:#b83400;--syn-def:#0000e6;--syn-local:#3800a8;--syn-type:#007a4e;--syn-class:#145a67;--syn-macro:#254556;--syn-prop:#00c;--syn-meta:#3c443c;--syn-invalid:#d60000;--font-sans:"Geist", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"Geist Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--fs-xs:.75rem;--fs-sm:.875rem;--fs-base:1rem;--fs-lg:1.5rem;--fs-xl:2rem;--fs-2xl:3rem;--fs-display-sm:2.5rem;--fs-code:.8125rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--space-12:3rem;--space-14:3.5rem;--space-16:4rem;--radius-sm:4px;--radius-md:8px;--radius-lg:16px;--radius-inset:6px;--page:1200px;--page-narrow:760px;--sidebar:280px;--sidebar-practice:240px;--page-mid:1040px;--measure:65ch;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);font:var(--fs-base)/1.5 var(--font-sans);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3{margin:0 0 var(--space-2);font-weight:600}h1{font-size:var(--fs-xl);letter-spacing:-.02em;line-height:1.25}h2{font-size:var(--fs-lg);letter-spacing:-.01em;line-height:1.333}h3{font-size:var(--fs-base);line-height:1.5}h1 .muted{font-weight:500}p{margin:0 0 var(--space-3)}p,.md li{max-width:var(--measure)}p:empty{display:none}code,pre,.cm-editor{font-family:var(--font-mono);font-size:var(--fs-sm)}code,pre,textarea,.cm-editor,.cm-content,.tests .msg,.stdin{font-variant-ligatures:none;font-feature-settings:"liga" 0, "calt" 0, "dlig" 0}pre{background:var(--code-bg);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);margin:var(--space-2) 0;line-height:22px;overflow-x:auto}.md code,.option code,.verdict code{background:var(--code-bg);border-radius:var(--radius-sm);padding:.1em .3em}.md pre code{background:0 0;padding:0}.md p{margin:var(--space-2) 0}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md table{border-collapse:separate;border-spacing:0;width:100%;margin:var(--space-3) 0;border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--fs-sm);overflow:hidden}.md th,.md td{padding:var(--space-2) var(--space-3);text-align:left;vertical-align:top;border-bottom:1px solid var(--border)}.md tr:last-child td{border-bottom:0}.md thead th{background:var(--code-bg);color:var(--muted);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.md tbody tr:nth-child(2n) td{background:var(--row-alt)}.md td:first-child{width:34%;color:var(--text);font-weight:600}.md td:first-child strong{color:var(--accent)}.md td{line-height:1.5}.label,.eyebrow,.cc-label,.pill,.md thead th,table.standards th,table.progress th:not(.skill-col){font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.04em;text-transform:uppercase;font-weight:500;line-height:16px}:focus-visible{outline:3px solid var(--cyan);outline-offset:2px}details>summary{cursor:pointer;color:var(--muted);margin:var(--space-2) 0;align-items:baseline;gap:var(--space-2);list-style:none;display:flex}details>summary::-webkit-details-marker{display:none}details>summary:before{content:"";border-right:2px solid var(--accent);border-bottom:2px solid var(--accent);flex:none;width:.45em;height:.45em;transition:transform .15s;transform:translateY(-.15em)rotate(-45deg)}details[open]>summary:before{transform:translateY(-.3em)rotate(45deg)}details>summary:hover{color:var(--text)}header{background:var(--band);color:var(--on-band)}.header-inner{align-items:center;gap:var(--space-2) var(--space-6);max-width:var(--page);padding:var(--space-2) var(--space-8);flex-wrap:wrap;margin:0 auto;display:flex}.page-narrow .header-inner,.page-narrow .hero-inner,.page-narrow .demo-banner-inner,.page-narrow .page-tabs-inner{max-width:var(--page-narrow)}.brand{letter-spacing:-.01em;font-weight:600}header button.crumb,header button.who{color:var(--on-band)}.spacer{flex:1}.nav{align-items:center;gap:var(--space-2) var(--space-6);flex-wrap:wrap;display:flex}.nav .link,header .link.quiet{color:var(--on-band)}.nav button.link{border-radius:0;align-items:center;min-height:44px;padding:0;display:inline-flex}header .link:hover:not(:disabled){color:var(--accent-tint);text-decoration:underline}.nav .link[aria-current=page],.nav .link[aria-current=page]:hover:not(:disabled){color:var(--highlight);box-shadow:inset 0 -3px 0 var(--highlight);font-weight:600;text-decoration:none}.mode-switch{border-radius:var(--radius-md);background:var(--band-panel);padding:3px;display:inline-flex}.mode-switch button{min-height:38px;padding:0 var(--space-3);border-radius:var(--radius-inset);color:var(--on-band);font-size:var(--fs-sm);background:0 0;border:0}.mode-switch button:hover:not(:disabled){color:var(--on-band);text-decoration:underline}.mode-switch button[aria-pressed=true],.mode-switch button[aria-pressed=true]:hover:not(:disabled){background:var(--surface);color:var(--accent);font-weight:600;text-decoration:none}a.header-download{align-items:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-3);border:1px solid var(--on-band);border-radius:var(--radius-md);color:var(--on-band);font-size:var(--fs-sm);white-space:nowrap;font-weight:600;text-decoration:none;display:inline-flex}a.header-download:hover{background:var(--surface);color:var(--accent)}a.header-download svg{flex:none;width:16px;height:16px}@media (width<=640px){.header-inner{gap:var(--space-2) var(--space-4);padding:var(--space-2) var(--space-4)}.header-inner .spacer{display:none}.header-inner .nav{flex-basis:100%;order:3}}.layout{grid-template-columns:var(--sidebar) minmax(0, 1fr);gap:var(--space-6);max-width:var(--page);padding:var(--space-8);margin:0 auto;display:grid}.layout.single{max-width:var(--page-narrow);grid-template-columns:minmax(0,1fr)}.layout.single.wide{max-width:var(--page)}.layout.right{grid-template-columns:minmax(0, 1fr) var(--sidebar)}.layout.right>aside{top:var(--space-4);max-height:calc(100vh - var(--space-8));align-self:start;position:sticky;overflow:auto}@media (width<=800px){.layout,.layout.right{padding:var(--space-4);grid-template-columns:minmax(0,1fr)}.layout.right>aside{max-height:none;position:static}.hero-inner,.hero.compact .hero-inner{padding:var(--space-4) var(--space-4) var(--space-8)}.hero h1{font-size:var(--fs-xl)}.demo-banner-inner{padding:var(--space-2) var(--space-4)}}aside{min-width:0}.hero{background:var(--band);color:var(--on-band)}.hero-inner{max-width:var(--page);padding:var(--space-6) var(--space-8) 36px;justify-content:space-between;align-items:flex-end;gap:var(--space-4) var(--space-8);flex-wrap:wrap;margin:0 auto;display:flex}.hero-text{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.hero h1{font-size:var(--fs-2xl);letter-spacing:-.025em;margin:0;line-height:1.083}.hero .label,.hero-intro{color:var(--on-band);margin:0}.hero-crumb{font-size:var(--fs-sm);flex-wrap:wrap;align-items:center;line-height:20px;display:flex}.crumb-sep{margin:0 var(--space-2)}button.link.hero-back{color:var(--on-band);align-self:flex-start;padding:0}button.link.hero-back:hover:not(:disabled){color:var(--accent-tint)}.hero.compact .hero-inner{padding:var(--space-2) var(--space-8) var(--space-6);gap:var(--space-3) var(--space-8)}.hero.compact .hero-text{gap:var(--space-1)}.hero.compact h1{font-size:var(--fs-xl);letter-spacing:-.02em;line-height:1.25}.hero-aside{min-width:0}.page-tabs{background:var(--surface);border-bottom:1px solid var(--border)}.page-tabs-inner{max-width:var(--page);margin:0 auto;padding:0 20px;display:flex;overflow-x:auto}.page-tab{min-height:56px;padding:0 var(--space-4);color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:0;align-items:center;gap:10px;display:inline-flex}.page-tab:hover:not(:disabled){color:var(--accent)}.page-tab[aria-current=page]{color:var(--accent);box-shadow:inset 0 -3px 0 var(--accent);font-weight:600}.page-tab .tab-icon{display:inline-flex}.page-tab .tab-icon svg{width:20px;height:20px}@media (width<=800px){.page-tabs-inner{padding:0 var(--space-2)}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-6);margin-bottom:var(--space-4)}.card>:last-child,.card>form>:last-child{margin-bottom:0}.muted{color:var(--muted)}.small{font-size:var(--fs-sm)}.good{color:var(--good)}.error,.warn{color:var(--bad)}.eyebrow{color:var(--accent);margin-bottom:var(--space-1)}.label{color:var(--muted);margin-top:var(--space-2)}button.link.back{margin-bottom:var(--space-3);padding:0;display:block}.empty{text-align:center;padding:var(--space-6) var(--space-4)}.empty p{margin:0 auto var(--space-3);color:var(--muted)}.empty .empty-mark{font-size:var(--fs-xl);margin-bottom:var(--space-2);color:var(--locked);line-height:1}button{font:inherit;cursor:pointer;border:1px solid var(--control);background:var(--surface);color:var(--text);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md)}button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}button:disabled{opacity:.55;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}button.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);color:var(--accent-text)}button.link{color:var(--accent);padding:var(--space-1);background:0 0;border:none}button.link:hover:not(:disabled){color:var(--accent-hover);text-decoration:underline}button.small{padding:0 var(--space-2);font-size:var(--fs-sm);min-width:1.9rem}input:not([type=checkbox]):not([type=radio]),textarea,select{font:inherit;color:var(--text);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--control);background:var(--field);box-shadow:inset 0 1px 2px #1217210f}input:not([type=checkbox]):not([type=radio]),textarea{width:100%}input[type=checkbox]{width:1.1rem;height:1.1rem;accent-color:var(--accent);flex:none;margin:0}label.check{align-items:center;gap:var(--space-2);padding:var(--space-1) 0;cursor:pointer;display:flex}.checks{gap:var(--space-2);margin:var(--space-4) 0 var(--space-6);flex-direction:column;display:flex}.segmented{border:1px solid var(--control);border-radius:var(--radius-md);background:var(--surface);display:inline-flex;overflow:hidden}.segmented button{color:var(--muted);padding:var(--space-1) var(--space-3);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:0}.segmented button+button{border-left:1px solid var(--control)}.segmented button:hover{color:var(--text)}.segmented button[aria-pressed=true]{background:var(--accent-tint);color:var(--accent);font-weight:600}.login{max-width:420px;margin:var(--space-12) auto;flex-direction:column;display:flex}.login>*{margin:0}.login h1+p,.login h2+p{margin-top:var(--space-2)}.login p+input{margin-top:var(--space-6)}.login input+input{margin-top:var(--space-3)}.login button[type=submit]{margin-top:var(--space-6)}.login button+p{margin-top:var(--space-3)}.layout:has(.practice){grid-template-columns:var(--sidebar-practice) minmax(0, 1fr);padding-top:var(--space-6);padding-bottom:var(--space-16)}.practice{gap:var(--space-4);flex-direction:column;display:flex}.practice>.card{margin:0}.icon{flex:none;display:inline-flex}.icon svg{width:100%;height:100%}.band-meter{gap:var(--space-2);min-width:240px;font-size:var(--fs-sm);flex-direction:column;line-height:20px;display:flex}.band-meter strong{color:var(--highlight);font-weight:600}.band-meter-bar{background:var(--band-panel);border-radius:4px;height:8px;display:block;overflow:hidden}.band-meter-bar>span{background:var(--highlight);height:100%;display:block}.course-side{gap:var(--space-6);flex-direction:column;display:flex}.course-side .label,.references .label{color:var(--muted);margin:0}.skills{gap:var(--space-2);flex-direction:column;display:flex}.skills ol{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.sk{min-height:44px;padding:var(--space-2) 10px;border-radius:var(--radius-md);font-size:var(--fs-sm);align-items:center;gap:10px;line-height:20px;display:flex}.sk.current{background:var(--surface);box-shadow:inset 0 0 0 1px var(--accent);font-weight:600}.sk.locked{color:var(--muted)}.sk-mark{width:16px;height:16px}.sk-mark.ring{box-sizing:border-box;border:2px solid var(--accent);background:var(--accent-tint);border-radius:50%}.sk.mastered .sk-mark{color:var(--good)}.sk.mastered .sk-mark svg{stroke-width:3px}.sk-name{flex:1;min-width:0}.sk-p{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--accent);font-variant-numeric:tabular-nums;flex:none;align-items:center;gap:6px;font-weight:400;display:flex}.sk-bar{background:var(--border);border-radius:2px;width:32px;height:4px;display:flex;overflow:hidden}.sk-bar>span{background:var(--accent)}.sk.mastered .sk-p{color:var(--good)}.sk.mastered .sk-bar>span{background:var(--good)}.skills-note{font-size:var(--fs-xs);color:var(--muted);margin:0;padding:0 10px;line-height:16px}.side-card{width:100%;min-height:52px;padding:0 var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text);align-items:center;gap:var(--space-3);text-align:left;display:flex}.side-card:hover:not(:disabled){border-color:var(--accent);color:var(--text)}.side-card-icon{width:20px;height:20px;color:var(--accent)}.side-card-title{flex:1;font-weight:600}.side-card-note{font-size:var(--fs-sm);color:var(--muted)}.side-card-go{width:16px;height:16px;color:var(--accent)}.side-card-go svg{stroke-width:2.2px}.references{gap:var(--space-1);flex-direction:column;display:flex}.course-side+.references{margin-top:var(--space-6)}.references .label{margin-bottom:var(--space-1)}.references details{margin:0}.references details>summary{min-height:36px;font-size:var(--fs-sm);color:var(--accent);text-underline-offset:2px;align-items:center;margin:0;text-decoration:underline}.references details>summary:before{display:none}.references details>summary:hover{color:var(--accent-hover)}.references details[open]>summary{font-weight:600}.references .md{font-size:var(--fs-sm);padding-bottom:var(--space-2)}.references .md table,.references .md tbody,.references .md tr,.references .md td{display:block}.references .md thead{display:none}.references .md table{margin:var(--space-2) 0;border:0;border-radius:0}.references .md td{width:auto;font-size:var(--fs-sm);border-bottom:0;padding:2px 0;background:0 0!important}.references .md tr{padding:var(--space-1) 0;border-bottom:1px solid var(--border)}.references .md td:first-child{font-weight:500}.references .md td code{overflow-wrap:anywhere}.references .md pre{max-width:100%}.chev{width:18px;height:18px;color:var(--accent);transition:transform .15s}.chev svg{stroke-width:2.2px}details[open]>summary .chev{transform:rotate(90deg)}.read-first{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md)}.read-first>summary{min-height:56px;padding:var(--space-3) 20px;align-items:center;gap:var(--space-3);color:var(--text);margin:0}.read-first>summary:before{display:none}.rf-icon{border-radius:var(--radius-md);background:var(--accent-tint);width:32px;height:32px;color:var(--accent);padding:7px}.rf-title{flex:1;font-weight:600}.rf-body{padding:0 20px 20px 64px}.rf-body>div+div{margin-top:var(--space-4)}.rf-body h3{margin:0 0 var(--space-2)}.question h2{font-size:var(--fs-lg);margin:0;line-height:32px}.q-titles{gap:var(--space-1);flex-direction:column;display:flex}.q-label{margin:0}.q-label abbr{cursor:help;text-decoration:none}.q-titles-row{justify-content:space-between;align-items:flex-end;gap:var(--space-3);flex-wrap:wrap;display:flex}.q-prompt>*{margin-top:0;margin-bottom:0}.q-prompt>*+*{margin-top:var(--space-3)}.q-prompt ul{gap:var(--space-2);flex-direction:column;padding:0;list-style:none;display:flex}.q-prompt ul>li{padding-left:26px;position:relative}.q-prompt ul>li:before{content:"";box-sizing:border-box;border:1.5px solid var(--muted);border-radius:50%;width:16px;height:16px;position:absolute;top:4px;left:0}.q-prompt pre{margin:0}.question .md code,.read-first .md code{font-size:var(--fs-code)}.disclosures{gap:var(--space-1) var(--space-6);flex-wrap:wrap;display:flex}.disclosures>details[open]{flex-basis:100%}.disclosure>summary{align-items:center;gap:var(--space-2);min-height:44px;color:var(--accent);margin:0;font-weight:600;display:inline-flex}.disclosure>summary:before{display:none}.disclosure>summary:hover{color:var(--accent-hover)}.disclosure>summary .note{color:var(--muted);font-weight:400}.disclosure-body{padding:0 0 var(--space-2) 26px}.disclosure-body>.label:first-child{margin-top:0}.question.work{padding:0;overflow:hidden}.q-head{padding:var(--space-6) var(--space-6) 20px;gap:var(--space-4);flex-direction:column;display:flex}.pane-bar{min-height:48px;padding:0 var(--space-4) 0 var(--space-6);justify-content:space-between;align-items:center;gap:var(--space-2);background:var(--field);border-bottom:1px solid var(--border);flex-wrap:wrap;display:flex}.file-name{align-items:center;gap:var(--space-2);font-family:var(--font-mono);font-size:var(--fs-code);color:var(--accent);margin:0;font-weight:500;line-height:20px;display:inline-flex}.pane-meta{font-size:var(--fs-sm);color:var(--muted);line-height:20px}.pane-meta .link{font-size:inherit;padding:0}.data-file{border-top:1px solid var(--border)}.data-file .file-name{color:var(--text)}.file-icon{width:16px;height:16px;color:var(--accent)}.table-scroll{overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-family:var(--font-mono);font-size:var(--fs-code);line-height:20px}.data-table th{padding:var(--space-2) var(--space-4);text-align:left;color:var(--accent);border-bottom:1px solid var(--border);white-space:nowrap;font-weight:500}.data-table td{padding:5px var(--space-4);text-align:left;border-bottom:1px solid var(--field)}.data-table .num{text-align:right;font-variant-numeric:tabular-nums}.data-file pre.data{border-radius:0;max-height:16rem;margin:0;overflow:auto}.workspace{border-top:1px solid var(--border);flex-wrap:wrap;display:flex}.code-pane{flex-direction:column;flex:420px;min-width:0;display:flex}.with-preview .code-pane{border-right:1px solid var(--border)}.code-pane>.pane-bar{padding:0 var(--space-4)}.code-pane>.tabs-bar{min-height:45px;padding:0 var(--space-2);align-items:flex-end}.work .file-tabs{gap:0;margin:0;display:flex}.work .file-tabs button{min-height:44px;padding:0 var(--space-4);color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-code);background:0 0;border:0;border-radius:0;font-weight:500}.work .file-tabs button:hover:not(:disabled){color:var(--accent)}.work .file-tabs button[aria-selected=true]{background:var(--surface);color:var(--accent);box-shadow:inset 0 -3px 0 var(--accent)}.work .editor{border:0;border-radius:0;flex:1;margin:0}.work .editor .cm-editor{height:100%;min-height:0;font-size:var(--fs-code)}.work .editor .cm-scroller{line-height:22px;font-family:var(--font-mono)}.work .editor .cm-content,.work .editor .cm-gutter{min-height:240px}.work.web .editor .cm-content,.work.web .editor .cm-gutter{min-height:380px}.work .editor .cm-gutters{background:var(--field);color:var(--muted);border-right:0}.code-pane>.disclosure{border-top:1px solid var(--border);padding:0 var(--space-6)}.code-pane>.disclosure .disclosure-body{padding-bottom:var(--space-3)}.preview-pane{flex-direction:column;flex:320px;min-width:0;display:flex}.preview-pane .pane-bar{min-height:45px;padding:0 var(--space-4)}.preview-pane .label{margin:0}.preview-pane .pane-meta{font-size:var(--fs-xs)}.preview-pane iframe.preview{border:0;border-radius:0;flex:1;height:auto;min-height:380px}.work .parsons-box{padding:var(--space-4) var(--space-6)}.work .parsons-box p{margin:0 0 var(--space-2)}.work .parsons{margin:0}.lang-pick{align-items:center;gap:var(--space-2);display:inline-flex}.lang-pick label{font-size:var(--fs-sm);font-weight:600;line-height:20px}.lang-pick select{height:36px;padding:0 var(--space-2);background:var(--surface);box-shadow:none;font-size:var(--fs-sm)}.limits{gap:var(--space-2);font-size:var(--fs-sm);flex-wrap:wrap;margin:0;padding:0;line-height:20px;list-style:none;display:flex}.limits li{padding:var(--space-1) 10px;border-radius:var(--radius-sm);background:var(--field)}.terms{gap:var(--space-2) var(--space-4);grid-template-columns:max-content minmax(0,1fr);display:grid}.terms dt{font-weight:600}.terms dd{margin:0}.samples{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.sample,.program{border:1px solid var(--border);border-radius:var(--radius-md);min-width:0;margin:0;overflow:hidden}.sample figcaption,.program figcaption{padding:var(--space-2) var(--space-3);background:var(--field);margin:0}.sample pre{padding:var(--space-3);background:0 0;border-radius:0;margin:0;line-height:22px}.actions-bar{padding:var(--space-4) var(--space-6);align-items:center;gap:var(--space-2);border-top:1px solid var(--border);background:var(--field);flex-wrap:wrap;display:flex}.actions-bar button,.choice-actions button{align-items:center;gap:var(--space-2);min-height:44px;display:inline-flex}.actions-bar .run{padding:0 var(--space-4)}.actions-bar .primary,.choice-actions .primary{padding:0 var(--space-6)}.actions-bar .reset{padding:0 var(--space-3);margin-left:auto}.actions-bar:empty{display:none}.result-pane{padding:var(--space-4) var(--space-6);border-top:1px solid var(--border)}.result-pane:has(>.result:empty){display:none}.result:empty{display:none}.question.choice,.choice-form{gap:var(--space-4);flex-direction:column;display:flex}.options-group{gap:var(--space-3);flex-direction:column;min-width:0;display:flex}.q-ask{font-weight:600}.options{gap:var(--space-2);flex-direction:column;display:flex}.option{min-height:52px;padding:var(--space-2) var(--space-4);border:1px solid var(--control);border-radius:var(--radius-md);background:var(--surface);align-items:center;gap:var(--space-3);cursor:pointer;display:flex}.option:hover{border-color:var(--accent)}.option input{width:18px;height:18px;accent-color:var(--accent);cursor:inherit;flex:none;margin:0}.option:has(input:focus-visible){outline:3px solid var(--cyan);outline-offset:2px}.option .key{box-sizing:border-box;border:1px solid var(--border);border-radius:var(--radius-sm);width:24px;height:24px;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted);flex:none;place-items:center;display:grid}.opt-text{flex:1;min-width:0;line-height:22px}.option .opt-text code{font-size:var(--fs-sm);background:0 0;padding:0;line-height:22px}.trace .option .opt-text code{font-size:var(--fs-base);line-height:24px}.opt-mark{font-size:var(--fs-sm);flex:none;font-weight:600}.opt-mark:empty{display:none}.option.selected{border-color:var(--accent);background:var(--accent-tint)}.option:has(input:disabled){cursor:default}.option.right,.option.wrong{background:var(--surface);border-width:2px;padding:7px 15px}.option.right{border-color:var(--good)}.option.right .opt-mark{color:var(--good)}.option.wrong{border-color:var(--bad)}.option.wrong .opt-mark{color:var(--bad)}.trace{flex-wrap:wrap;align-items:flex-start;gap:20px;display:flex}.program{flex:280px}.program pre{padding:14px var(--space-4);background:0 0;border-radius:0;margin:0;line-height:24px}.trace .options-group{flex:260px}.choice-actions{padding-top:var(--space-2);border-top:1px solid var(--border);align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.quiz-after{gap:var(--space-2);flex-direction:column;display:flex}.verdict{border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin:0 0 var(--space-3);border:1px solid}.verdict.good{background:var(--good-bg);border-color:var(--good)}.verdict.bad{background:var(--bad-bg);border-color:var(--bad)}.verdict h3{margin:0 0 var(--space-1)}.verdict.good h3{color:var(--good)}.verdict.bad h3{color:var(--bad)}.verdict>button.primary{margin-top:var(--space-2);min-height:44px}.verdict .mastered{color:var(--good);font-weight:600}.verdict.quiz{gap:var(--space-3);align-items:flex-start;margin:0;display:flex}.verdict.quiz>strong{flex:none;font-weight:600}.verdict-text{min-width:0}.verdict-text>*{margin:0}.verdict-text>*+*{margin-top:var(--space-1)}.next-row{align-items:center;gap:var(--space-3);display:flex}.countdown{background:var(--border);border-radius:2px;flex:1;height:4px;overflow:hidden}.countdown .fill{opacity:.5;background:currentColor;width:0;height:100%}.report .err{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);border-left:4px solid var(--bad);background:var(--bad-bg);color:var(--bad);margin-bottom:var(--space-2);white-space:pre-wrap}.tests{margin:var(--space-2) 0;padding:0;list-style:none}.tests li{padding:var(--space-1) 0}.tests li+li{margin-top:var(--space-1)}.tests .mark{width:1.4em;font-weight:700;display:inline-block}.tests .pass .mark{color:var(--good)}.tests .fail .mark{color:var(--bad)}.tests .msg{color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-sm);white-space:pre-wrap;margin-left:1.4em}.stdout{white-space:pre-wrap}.io-diff{gap:var(--space-2);margin-top:var(--space-1);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.io-diff pre{max-height:10rem;font-size:var(--fs-xs);overflow:auto}.report>:first-child{margin-top:0}.report>:last-child{margin-bottom:0}.parsons{margin:var(--space-2) 0;border:1px solid var(--border);border-radius:var(--radius-md);padding:0;list-style:none}.parsons li{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);border-bottom:1px solid var(--border);background:var(--surface);display:flex}.parsons li:last-child{border-bottom:0}.parsons li:focus{outline:2px solid var(--accent);outline-offset:-2px}.parsons li code{white-space:pre;background:0 0}.parsons .moves{gap:var(--space-1);flex:none;display:flex}.parsons.locked .moves{visibility:hidden}canvas.plot{max-width:100%;height:auto;margin-top:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:#fff;display:block}@media (width<=800px){.layout:has(.practice){grid-template-columns:minmax(0,1fr)}.layout:has(.practice)>aside{order:2}.rf-body{padding-left:20px}.q-head,.actions-bar,.result-pane{padding-left:var(--space-4);padding-right:var(--space-4)}.with-preview .code-pane{border-right:0;border-bottom:1px solid var(--border)}.work.web .editor .cm-content,.work.web .editor .cm-gutter{min-height:240px}.preview-pane iframe.preview{min-height:320px}}.editor{border:1px solid var(--border);border-radius:var(--radius-md);margin:var(--space-3) 0 var(--space-2);overflow:hidden}.editor .cm-editor{background:var(--surface);min-height:180px}.editor .cm-gutters{background:var(--code-bg);border-right:1px solid var(--border);color:var(--muted)}.editor .cm-content{caret-color:var(--text)}.editor .cm-activeLine,.editor .cm-activeLineGutter{background:var(--accent-tint)}.stdin{font-family:var(--font-mono);font-size:var(--fs-sm)}.actions{gap:var(--space-3);margin:var(--space-4) 0;flex-wrap:wrap;align-items:center;display:flex}.file-tabs{gap:var(--space-1);margin:var(--space-3) 0 -1px;z-index:1;display:flex;position:relative}.file-tabs button{border:1px solid var(--border);border-radius:var(--radius-md) var(--radius-md) 0 0;background:var(--field);padding:var(--space-1) var(--space-4);color:var(--muted)}.file-tabs button[aria-selected=true]{background:var(--surface);border-bottom-color:var(--surface);color:var(--text);font-weight:600}.file-tabs+.editor{border-top-left-radius:0;margin-top:0}iframe.preview{border:1px solid var(--border);border-radius:var(--radius-md);background:#fff;width:100%;height:320px;display:block}.field{gap:var(--space-1);color:var(--muted);font-size:var(--fs-sm);flex-direction:column;max-width:32rem;display:flex}.field input{font-size:var(--fs-base)}.moderate{margin-top:var(--space-4)}.page-mid .header-inner,.page-mid .hero-inner,.page-mid .demo-banner-inner,.page-mid .page-tabs-inner,.page-mid .layout{max-width:var(--page-mid)}.page-mid .layout{grid-template-columns:var(--sidebar-practice) minmax(0, 1fr);padding-bottom:var(--space-16)}.hero.mid h1{font-size:var(--fs-display-sm);line-height:1.2}.hero.mid .hero-text{max-width:var(--measure)}.task-toc{gap:var(--space-2);flex-direction:column;display:flex}button.link.back-link{align-self:flex-start;align-items:center;gap:var(--space-2);text-underline-offset:3px;min-height:44px;padding:0;font-weight:600;text-decoration:underline;display:inline-flex}.back-icon{width:16px;height:16px}.back-icon svg{stroke-width:2.2px}.task-toc ol{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.toc-item{width:100%;min-height:44px;padding:var(--space-2) 10px;border-radius:var(--radius-md);text-align:left;font-size:var(--fs-sm);color:var(--text);background:0 0;border:0;align-items:center;gap:10px;line-height:20px;display:flex}.toc-item:hover:not(:disabled){background:var(--surface);color:var(--accent)}.toc-item[aria-current=true]{background:var(--surface);color:var(--accent);box-shadow:inset 3px 0 0 var(--accent);font-weight:600}.task-num{box-sizing:border-box;border:1.5px solid var(--muted);width:24px;height:24px;font-family:var(--font-mono);font-size:var(--fs-xs);border-radius:50%;flex:none;place-items:center;font-weight:500;display:grid}.task-list{gap:var(--space-3);flex-direction:column;display:flex}.task-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);scroll-margin-top:var(--space-4);overflow:hidden}.task-panel.open{border-color:var(--accent)}.task-panel>h2{font-size:inherit;font-weight:inherit;line-height:inherit;letter-spacing:0;margin:0}.task-head{width:100%;min-height:64px;padding:var(--space-3) 20px;background:var(--surface);text-align:left;color:var(--text);border:0;border-radius:0;align-items:center;gap:14px;display:flex}.task-head:hover:not(:disabled){color:var(--text)}.task-head:hover .task-title{color:var(--accent)}.task-head .task-num{width:32px;height:32px;font-size:var(--fs-code)}.task-done{width:16px;height:16px;color:var(--good)}.task-done svg{stroke-width:3px}.task-head .task-num:has(.task-done){border-color:var(--good)}.task-titles{flex-direction:column;flex:1;min-width:0;display:flex}.task-title{font-size:1.125rem;font-weight:600;line-height:26px}.task-sub{font-size:var(--fs-sm);color:var(--muted);line-height:20px}.task-chev{width:20px;height:20px;color:var(--accent);transition:transform .15s}.task-chev svg{stroke-width:2.2px}.task-panel.open .task-chev{transform:rotate(180deg)}.task-body{padding:var(--space-1) 20px var(--space-6) 66px;gap:var(--space-4);border-top:1px solid var(--border);flex-direction:column;display:flex}.task-body[hidden]{display:none}.task-body>.md p{margin:0}.task-body>.md>*+*{margin-top:var(--space-3)}.goal-chips{margin:var(--space-3) 0 0;gap:var(--space-2);flex-wrap:wrap;padding:0;list-style:none;display:flex}.goal-chips li{padding:2px var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--fs-xs);cursor:help;line-height:20px}.what-to-submit{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--accent-tint);flex-direction:column;gap:2px;display:flex}.what-to-submit .label{color:var(--accent);margin:0}.task-body .disclosure-body{font-size:var(--fs-sm);color:var(--muted);line-height:20px}.evidence-list:empty{display:none}.task-form{gap:var(--space-2);flex-direction:column;display:flex}.task-form label{font-size:var(--fs-sm);font-weight:600;line-height:20px}.task-form textarea{padding:10px var(--space-3);background:var(--surface);box-shadow:none;resize:vertical}.task-form-foot{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-4);margin-top:var(--space-1);flex-wrap:wrap;display:flex}.task-form-foot .primary{min-height:44px;padding:0 var(--space-6)}.task-form p[role=status]{margin:0}.evidence{border-left:3px solid var(--border);padding:var(--space-1) 0 var(--space-1) var(--space-3);margin:var(--space-3) 0}.evidence.accepted{border-color:var(--good)}.evidence.revise{border-color:var(--bad)}.evidence-text{white-space:pre-wrap;font-family:inherit;font-size:var(--fs-sm)}.comment{margin:var(--space-1) 0}@media (width<=800px){.page-mid .layout{grid-template-columns:minmax(0,1fr)}.task-body{padding-left:20px}}.card.pack{text-align:left;width:100%;display:block}.table-card{padding:var(--space-2) var(--space-6)}.table-card table{margin:0}table.standards,table.progress{border-collapse:collapse;width:100%}table.standards th,table.standards td,table.progress th,table.progress td{border-bottom:1px solid var(--border);padding:var(--space-2);text-align:left;vertical-align:baseline}table.standards tr:last-child td,table.progress tr:last-child td{border-bottom:0}table.standards th,table.progress th{color:var(--muted)}table th.num,table td.num{text-align:right;font-variant-numeric:tabular-nums}table td.name{white-space:nowrap}td.none{color:var(--locked)}td.some{font-weight:600}table.progress{font-size:var(--fs-sm);display:block;overflow-x:auto}table.progress td.cell{text-align:center;vertical-align:middle}td.cell.mastered{background:var(--good-bg);color:var(--good);font-weight:700}td.cell.learning{background:var(--learning-bg)}td.cell.learning .dot{background:var(--learning-mark);vertical-align:middle}.legend{gap:var(--space-1) var(--space-4);font-size:var(--fs-xs);color:var(--muted);margin:0 0 var(--space-3);flex-wrap:wrap;display:flex}.legend span{align-items:center;gap:var(--space-1);display:inline-flex}.swatch{border-radius:2px;width:.75rem;height:.75rem;display:inline-block}.swatch.met{background:var(--good)}.swatch.knowledge{background:var(--learning)}.swatch.in-progress{background:var(--locked)}.swatch.rest{background:var(--border)}.chip{padding:2px var(--space-2);border-radius:var(--radius-sm);font-size:var(--fs-xs);background:var(--code-bg);color:var(--text);white-space:nowrap;display:inline-block}.chip.met{background:var(--good-bg);color:var(--good)}.chip.knowledge{background:var(--learning-bg);color:var(--learning-text)}.tabs{gap:var(--space-1);border-bottom:1px solid var(--border);margin:var(--space-3) 0 var(--space-4);flex-wrap:wrap;display:flex}.tab{padding:var(--space-2) var(--space-3);color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0}.tab:hover:not(:disabled){color:var(--text)}.continue-card{align-items:center;gap:var(--space-4);padding:var(--space-4);border-radius:var(--radius-md);background:var(--surface);color:var(--text);flex:0 380px;text-decoration:none;display:flex}.hero-aside:has(.continue-card){flex:0 380px}.continue-card:hover{background:var(--accent-tint)}.continue-text{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.continue-card .label{color:var(--accent);margin:0}.continue-title{font-weight:600}.continue-note{align-items:center;gap:var(--space-3);font-size:var(--fs-sm);color:var(--muted);line-height:20px;display:flex}.continue-bar{background:var(--field);border:1px solid var(--border);border-radius:3px;flex:1;height:6px;overflow:hidden}.continue-bar>span{background:var(--accent);height:100%;display:block}.continue-go{border-radius:var(--radius-md);background:var(--accent);width:44px;height:44px;color:var(--accent-text);flex:none;place-items:center;display:grid}.continue-go svg{stroke-width:2.2px;width:20px;height:20px}.courses{gap:var(--space-6);flex-direction:column;display:flex}.layout.single.wide:has(.courses){padding-top:var(--space-6);padding-bottom:var(--space-16)}.filters{align-items:flex-end;gap:var(--space-3);padding:var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);flex-wrap:wrap;display:flex}.filter{gap:var(--space-1);flex-direction:column;flex:140px;min-width:0;display:flex}.filter[hidden]{display:none}.filter.search{flex:2 220px}.filter label{font-size:var(--fs-sm);font-weight:600;line-height:20px}.filters input:not([type=checkbox]),.filters select{height:44px;padding:0 var(--space-2);background:var(--surface);box-shadow:none;min-width:0;max-width:100%}.search-box{position:relative}.search-box input:not([type=checkbox]){padding:0 var(--space-3) 0 38px}.search-icon{left:var(--space-3);color:var(--muted);pointer-events:none;display:flex;position:absolute;top:13px}.search-icon svg{width:18px;height:18px}.filter-count{max-width:none;font-size:var(--fs-sm);color:var(--muted);flex-basis:100%;margin:0;line-height:20px}.filter-count .link{font-size:inherit;padding:0}.course-sections{gap:var(--space-12);flex-direction:column;display:flex}.course-section{gap:var(--space-6);scroll-margin-top:var(--space-4);flex-direction:column;display:flex}.section-head{max-width:var(--page-narrow);flex-direction:column;gap:6px;display:flex}.section-head h2{font-size:var(--fs-xl);letter-spacing:-.02em;margin:0;line-height:1.25}.section-head p{color:var(--muted);margin:0}.course-group{gap:var(--space-3);scroll-margin-top:var(--space-4);flex-direction:column;display:flex}.group-head{align-items:baseline;gap:var(--space-1) var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--border);flex-wrap:wrap;display:flex}.group-head h3{margin:0;font-size:1.25rem;line-height:28px}.group-head .label{margin:0}.course-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));margin:0;padding:0;list-style:none;display:grid}.course-grid>li{min-width:0;display:flex}.course-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);gap:var(--space-3);cursor:pointer;flex-direction:column;flex:1;min-width:0;padding:20px;display:flex}.course-card:hover,.course-card:focus-within{border-color:var(--accent)}.course-card:hover .course-open{color:var(--accent)}.cc-top{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.cc-icon{border-radius:var(--radius-md);background:var(--area-tile);width:40px;height:40px;color:var(--area-icon);flex:none;place-items:center;display:grid}.cc-icon svg{width:20px;height:20px}.pill{padding:2px var(--space-2);border:1px solid var(--control);border-radius:var(--radius-sm);color:var(--muted);white-space:nowrap}.pill.status-started{border-color:var(--accent);background:var(--accent);color:var(--accent-text)}.pill.status-done{border-color:var(--good);background:var(--good-bg);color:var(--good)}.cc-head{gap:var(--space-1);flex-direction:column;display:flex}.cc-label{color:var(--accent)}.course-card h3{margin:0;font-size:1.125rem;line-height:24px}.course-card .course-open{color:var(--text);text-align:left;padding:0;font-weight:600}.course-card .course-open:hover:not(:disabled){color:var(--accent);text-decoration:none}.course-card .summary{font-size:var(--fs-sm);color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;line-height:20px;display:-webkit-box;overflow:hidden}.course-card p.after{font-size:var(--fs-sm);align-items:flex-start;gap:6px;margin:0;line-height:20px;display:flex}.after-icon{color:var(--accent);flex:none;margin-top:2px;display:inline-flex}.after-icon svg{width:16px;height:16px}a.after-link{color:var(--text);text-decoration:none}a.after-link:hover{color:var(--accent);text-decoration:underline}.cc-stats{padding-top:var(--space-3);border-top:1px solid var(--border);gap:var(--space-1) var(--space-4);font-size:var(--fs-sm);color:var(--muted);flex-wrap:wrap;margin-top:auto;line-height:20px;display:flex}.cc-stats strong{color:var(--text);font-weight:600}.cc-stats button.cc-refs-toggle{font-size:inherit;color:var(--muted);text-underline-offset:3px;padding:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.cc-stats button.cc-refs-toggle:hover:not(:disabled){color:var(--accent)}.cc-refs{padding-left:var(--space-4);font-size:var(--fs-sm);cursor:auto;margin:0;line-height:20px}.cc-refs li+li{margin-top:var(--space-1)}.cc-refs code{font-size:var(--fs-xs)}.course-card,.tl-course,.tl-lane-name{--area:var(--locked);--area-tile:var(--field);--area-icon:var(--muted)}.area-software,.area-web{--area:var(--cs-brand);--area-tile:var(--cs-brand);--area-icon:var(--cs-on-brand)}.area-algorithms,.area-data{--area:var(--cs-cyan);--area-tile:var(--cs-cyan-soft);--area-icon:var(--cs-brand)}.area-systems,.area-society{--area:var(--cs-ink);--area-tile:var(--cs-ink);--area-icon:var(--cs-cyan)}.timeline-scroll{overflow-x:auto}.timeline{--lane-head:200px;flex-direction:column;min-width:960px;display:flex}.tl-stages,.tl-lane{column-gap:20px;display:grid}.tl-stages{padding-bottom:20px}.tl-read{font-size:var(--fs-sm);color:var(--muted);align-self:end;margin:0;line-height:20px}.tl-stage{gap:var(--space-3);flex-direction:column;display:flex}.tl-stage h2{letter-spacing:0;margin:0;font-size:1.125rem;line-height:24px}.tl-stage p{font-size:var(--fs-sm);color:var(--muted);margin:0;line-height:20px}.tl-step{align-items:center;display:flex}.tl-num{background:var(--accent);width:28px;height:28px;color:var(--accent-text);font-family:var(--font-mono);font-size:var(--fs-xs);border-radius:50%;flex:none;place-items:center;font-weight:500;display:grid}.tl-line{background:var(--cyan);flex:1;height:2px;margin-right:-20px}.tl-line.last{background:0 0}.tl-group{scroll-margin-top:var(--space-4);flex-direction:column;display:flex}.tl-group>h2{padding:20px 0 var(--space-2);font-size:var(--fs-lg);margin:0;line-height:32px}.tl-lane{padding:var(--space-4) 0;border-top:1px solid var(--border);scroll-margin-top:var(--space-4);align-items:start}.tl-lane-head{flex-direction:column;align-items:flex-start;gap:6px;margin:0;padding-top:6px;display:flex}.tl-lane-name{align-items:center;gap:var(--space-2);font-size:var(--fs-base);font-weight:600;line-height:24px;display:flex}.tl-lane-name .swatch{background:var(--area);border-radius:3px;flex:none;width:12px;height:12px}.tl-cell{gap:var(--space-2);flex-direction:column;min-width:0;display:flex;position:relative}.tl-course{text-align:left;padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text);gap:var(--space-3);align-items:flex-start;display:flex}.tl-course:hover:not(:disabled){border-color:var(--accent);color:var(--text)}.tl-course:hover .name{color:var(--accent)}.tl-course .cc-icon{border-radius:var(--radius-inset);width:32px;height:32px}.tl-course .cc-icon svg{stroke-width:2.2px;width:16px;height:16px}.tl-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.tl-course .name{font-size:.9375rem;font-weight:600;line-height:20px}.tl-status{color:var(--muted);align-items:center;gap:6px;font-size:.8125rem;line-height:18px;display:inline-flex}.tl-after{color:var(--muted);font-size:.8125rem;line-height:18px}.tl-mark{border:1.5px solid var(--muted);border-radius:50%;flex:none;width:9px;height:9px}.tl-mark.started{border-color:var(--learning);background:var(--learning)}.tl-mark.done{border-color:var(--good);background:var(--good)}.course-card.special,.tl-course.special{background:var(--cs-brand);border-color:var(--cs-brand);color:var(--cs-on-brand);position:relative}.course-card.special:hover,.course-card.special:focus-within,.tl-course.special:hover:not(:disabled){border-color:var(--cs-highlight);color:var(--cs-on-brand)}.course-card.special .course-open,.course-card.special a.after-link,.course-card.special .cc-stats strong,.course-card.special .cc-refs{color:var(--cs-on-brand)}.course-card.special:hover .course-open,.course-card.special .course-open:hover:not(:disabled),.tl-course.special:hover .name,.course-card.special a.after-link:hover,.course-card.special .cc-label,.course-card.special .after-icon{color:var(--cs-highlight)}.course-card.special .summary,.course-card.special .cc-stats,.course-card.special .cc-stats button.cc-refs-toggle,.tl-course.special .tl-status,.tl-course.special .tl-after{color:var(--cs-cyan-soft)}.course-card.special .cc-stats button.cc-refs-toggle:hover:not(:disabled){color:var(--cs-highlight)}.course-card.special .cc-stats{border-top-color:#ffffff4d}.course-card.special .cc-top{padding-right:40px}.course-card.special .pill{border-color:var(--cs-on-brand);color:var(--cs-on-brand)}.course-card.special .pill.status-started{background:var(--cs-on-brand);color:var(--cs-brand)}.course-card.special .pill.status-done{border-color:var(--good-bg)}.tl-course.special .tl-text{padding-right:30px}.tl-course.special .tl-mark:not(.started):not(.done){border-color:var(--cs-cyan-soft)}.trophy{box-sizing:border-box;background:var(--cs-highlight);border:3px solid var(--cs-surface);width:64px;height:64px;box-shadow:var(--shadow-badge);color:var(--cs-brand);pointer-events:none;border-radius:50%;position:absolute;top:-22px;right:-14px;transform:rotate(-8deg)}.trophy svg{display:block}.trophy .glint{fill:var(--cs-trophy-glint)}.tl-course .trophy{transform-origin:100% 0;top:-16px;right:-10px;transform:rotate(-8deg)scale(.72)}.timeline-hint{margin:0 0 var(--space-2);font-size:var(--fs-sm);color:var(--muted);display:none}@media (width<=800px){.timeline-hint{display:block}.timeline{--lane-head:140px}}.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}.dot{background:var(--locked);border-radius:50%;width:.55rem;height:.55rem;display:inline-block}.demo-banner{background:var(--accent-tint);color:var(--text);border-bottom:1px solid var(--border);font-size:var(--fs-sm);line-height:20px}.demo-banner-inner{max-width:var(--page);padding:10px var(--space-8);align-items:center;gap:var(--space-1) var(--space-3);flex-wrap:wrap;margin:0 auto;display:flex}.demo-banner .note-icon{color:var(--accent);flex:none;display:inline-flex}.demo-banner .note-icon svg{width:20px;height:20px}.demo-banner .note-text{flex:240px}.demo-banner strong{font-weight:600}.demo-banner button.note-action{min-height:32px;font-size:inherit;color:var(--accent);text-underline-offset:2px;padding:0;font-weight:600;text-decoration:underline}.pill.elective{border-color:var(--accent);color:var(--accent);padding:0 6px;font-size:.6875rem;line-height:18px}.set-switch{margin-bottom:var(--space-4)}a.brand{color:inherit;text-decoration:none}.home>section+section{margin-top:var(--space-12)}.home-start .actions{margin:0 0 var(--space-3)}.home-start p{max-width:var(--page-narrow);margin:0}.home-section{margin-bottom:var(--space-4)}.home-points{gap:var(--space-6);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.home-point{border-top:3px solid var(--accent);padding-top:var(--space-3)}.home-point h2{font-size:var(--fs-base);letter-spacing:0;line-height:1.5}.home-point p{color:var(--muted);margin:0}.home-grades{gap:var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;display:grid}.home-grades .card,.home-strands .card{margin-bottom:0}.home-grade-head{margin-bottom:var(--space-2);justify-content:space-between;align-items:center;display:flex}.home-grade-head .eyebrow{margin:0}.chip.lang{background:var(--accent-tint);color:var(--accent);font-weight:600}.home-grade .label{margin-top:var(--space-4)}.home-grade p{margin:var(--space-1) 0 0}.home-grade>p.muted{margin-top:0}.units{margin:var(--space-1) 0 0;padding-left:1.25rem}.units li+li{margin-top:var(--space-1)}.course-links{margin:var(--space-1) 0 0;padding:0;list-style:none}.course-links li+li{margin-top:var(--space-1)}.home-standards{margin-top:var(--space-4);border-top:1px solid var(--border);padding-top:var(--space-3);font-size:var(--fs-sm)}.home-standards .label{margin-top:var(--space-3)}.chips{gap:var(--space-1);margin-top:var(--space-1);flex-wrap:wrap;display:flex}.home-strands{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));display:grid}.home-strands p{margin-bottom:var(--space-2)}.home-outcomes td,.home-crosswalk td{vertical-align:top}.home-crosswalk td.name{font-variant-numeric:tabular-nums}.home-crosswalk td .small{margin-top:var(--space-1)}.home-outcomes td.name{font-weight:600}.home-sources ul{margin:0;padding-left:1.25rem}.home-sources li+li{margin-top:var(--space-1)}@media (width<=900px){.home-points,.home-grades,.home-strands{grid-template-columns:minmax(0,1fr)}.home-outcomes td.name{white-space:normal}}.page-mid .layout.single,.page-mid .layout.single.wide{max-width:var(--page-mid);grid-template-columns:minmax(0,1fr)}.band-hl{color:var(--highlight);font-weight:600}.t-page{gap:var(--space-4);flex-direction:column;min-width:0;display:flex}.t-page>*{margin:0}.t-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);min-width:0;margin:0}.t-card-head{padding:20px var(--space-6) var(--space-4);justify-content:space-between;align-items:baseline;gap:var(--space-2) var(--space-6);flex-wrap:wrap;display:flex}.t-card-head.ruled{border-bottom:1px solid var(--border);padding-bottom:20px}.t-card-head.end{align-items:flex-end}.t-card-head.center{padding:var(--space-4) var(--space-6);align-items:center}.t-card-head h2{margin:0;font-size:1.25rem;line-height:28px}.t-card-head h2.t-title-lg{font-size:var(--fs-lg);line-height:32px}.t-card-body{padding:0 var(--space-6) var(--space-6)}.t-card-foot{padding:var(--space-4) var(--space-6);justify-content:space-between;align-items:center;gap:var(--space-3) var(--space-6);background:var(--field);border-top:1px solid var(--border);border-radius:0 0 var(--radius-md) var(--radius-md);flex-wrap:wrap;display:flex}.t-card-foot .t-outcome{flex:16rem}.t-count{font-size:var(--fs-sm);color:var(--muted);line-height:20px}.t-count strong{color:var(--text);font-weight:600}.t-help{margin:var(--space-1) 0 0;font-size:var(--fs-sm);color:var(--muted);max-width:35rem;line-height:20px}.t-help strong{color:var(--text);font-weight:600}.t-label{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-weight:500;line-height:16px}.t-mark{background:var(--area,var(--locked));border-radius:2px;flex:none;width:8px;height:8px;display:inline-block}.t-avatar{background:var(--accent-tint);width:40px;height:40px;color:var(--accent);font-family:var(--font-mono);font-size:var(--fs-code);border-radius:50%;flex:none;place-items:center;font-weight:500;display:grid}.t-btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:44px;padding:0 20px;display:inline-flex}.t-btn.ghost{font-size:var(--fs-sm);padding:0 14px}.t-btn.ghost:hover:not(:disabled){background:var(--field)}.t-btn.danger{padding:0 var(--space-3);color:var(--bad);font-size:var(--fs-sm);background:0 0;border-color:#0000}.t-btn.danger:hover:not(:disabled){border-color:var(--bad);color:var(--bad);background:var(--bad-bg)}.t-btn-icon{width:16px;height:16px}.t-btn.primary .t-btn-icon{width:18px;height:18px}.t-field{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.t-field label{font-size:var(--fs-sm);font-weight:600;line-height:20px}.t-field label .optional{color:var(--muted);font-weight:400}.t-field input:not([type=checkbox]),.t-field textarea{min-height:44px;padding:0 var(--space-3);background:var(--surface);box-shadow:none}.t-field textarea{padding:10px var(--space-3);resize:vertical}.t-field .t-help{margin:0}.t-outcome{font-size:var(--fs-sm);align-items:flex-start;gap:var(--space-2);max-width:none;margin:0;line-height:20px;display:flex}.t-outcome:empty{display:none}.t-outcome.note{color:var(--muted)}.t-outcome.good{color:var(--good);font-weight:600}.t-outcome.error{padding:10px var(--space-3);border:1px solid var(--bad);border-radius:var(--radius-md);background:var(--bad-bg);color:var(--bad);font-weight:600}.t-outcome-icon{width:18px;height:18px;margin-top:1px}.t-scroll{overflow-x:auto}.t-key{gap:var(--space-2) var(--space-4);font-size:var(--fs-sm);color:var(--muted);flex-wrap:wrap;margin:0;padding:0;line-height:20px;list-style:none;display:flex}.t-key li{align-items:center;gap:var(--space-2);display:inline-flex}.t-key .t-skill{border-radius:3px;width:20px;height:16px}.t-key .t-skill svg{stroke-width:4px;width:11px;height:11px}.t-key .t-skill-dot{width:6px;height:6px}.page-tab .t-tab-count{background:var(--accent);min-width:20px;height:20px;color:var(--accent-text);font-size:var(--fs-xs);text-align:center;border-radius:10px;padding:0 6px;font-weight:600;line-height:20px;position:relative}.new-class{padding:var(--space-4);align-items:flex-end;gap:var(--space-3);flex-wrap:wrap;display:flex}.new-class .t-field{flex:280px}.new-class .t-outcome{flex-basis:100%}.class-list{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}a.class-row{align-items:center;gap:var(--space-6);padding:var(--space-6);color:var(--text);text-decoration:none;display:flex}a.class-row:hover{border-color:var(--accent)}a.class-row:hover h2{color:var(--accent)}.class-row-main{gap:var(--space-4);flex-direction:column;flex:1;min-width:0;display:flex}.class-row-title{align-items:baseline;gap:var(--space-1) var(--space-4);flex-wrap:wrap;display:flex}.class-row-title h2{margin:0}.class-row-count{font-size:var(--fs-sm);color:var(--muted);align-items:center;gap:6px;line-height:20px;display:inline-flex}.class-row-courses{gap:var(--space-2);flex-direction:column;display:flex}.t-course-chips{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.t-course-chips li{align-items:center;gap:var(--space-2);padding:var(--space-1) 10px;border-radius:var(--radius-sm);background:var(--field);font-size:var(--fs-sm);line-height:20px;display:inline-flex}.t-go{border-radius:var(--radius-md);background:var(--accent-tint);width:44px;height:44px;color:var(--accent);padding:12px}.learners{align-items:flex-start;gap:var(--space-6);flex-wrap:wrap;display:flex}.roster-list{flex:999 520px;overflow:hidden}.roster-list>.t-outcome{margin:0 var(--space-6) var(--space-4)}.learner-rows{margin:0;padding:0;list-style:none}.learner-rows li{align-items:center;gap:var(--space-3) var(--space-4);padding:var(--space-3) var(--space-6);border-top:1px solid var(--border);flex-wrap:wrap;display:flex}.learner-name{overflow-wrap:anywhere;flex:120px;min-width:0;font-weight:600}.learner-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.add-learner{padding:20px var(--space-6) var(--space-6);flex:300px}.add-learner form{gap:var(--space-4);flex-direction:column;display:flex}.add-learner h2{margin:0;font-size:1.25rem;line-height:28px}.add-learner .primary{align-self:flex-start}.assign{overflow:hidden}.assign-groups{padding:var(--space-2) var(--space-6) var(--space-6);gap:var(--space-6);flex-direction:column;display:flex}.assign fieldset{border:0;min-width:0;margin:0;padding:0}.assign legend{padding:var(--space-4) 0 var(--space-3)}.pick-grid{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));display:grid}label.pick{gap:var(--space-3);padding:var(--space-3) 14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);cursor:pointer;align-items:flex-start;display:flex}label.pick:hover{border-color:var(--accent)}label.pick.on{border-color:var(--accent);background:var(--accent-tint)}label.pick:focus-within{outline:3px solid var(--cyan);outline-offset:2px}label.pick input[type=checkbox]{width:20px;height:20px;margin-top:2px}label.pick input:focus-visible{outline:none}.pick-text{flex-direction:column;gap:2px;min-width:0;display:flex}.pick-title{font-weight:600}.pick-meta{align-items:center;gap:var(--space-2);font-size:var(--fs-sm);color:var(--muted);margin:0;line-height:20px;display:inline-flex}.course-picker{gap:var(--space-2);flex-wrap:wrap;display:flex}.course-picker button{min-height:44px;padding:0 var(--space-4);align-items:center;gap:var(--space-2);font-size:var(--fs-sm);display:inline-flex}.course-picker button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-tint);color:var(--accent);font-weight:600}.progress-view{gap:var(--space-4);flex-direction:column;display:flex}.progress-view>.t-card{overflow:hidden}table.skill-grid{border-collapse:collapse;width:100%;font-size:var(--fs-sm);line-height:20px}.skill-grid th,.skill-grid td{padding:6px var(--space-1);border-bottom:1px solid var(--border);text-align:center;vertical-align:middle}.skill-grid tbody tr:last-child>*{border-bottom:0}.skill-grid tbody tr:hover{background:var(--row-alt)}.skill-grid tbody tr>*{height:45px}.skill-grid thead th{padding-top:0;padding-bottom:var(--space-3);vertical-align:bottom;font-weight:400;font-size:var(--fs-xs);color:var(--muted);min-width:104px;line-height:16px}.skill-grid thead th>span{display:block}.skill-grid thead th .who{font-size:var(--fs-sm);color:var(--text);margin-bottom:2px;font-weight:600;line-height:20px}.skill-grid th:first-child{text-align:left;padding-left:var(--space-6);min-width:200px}.skill-grid tbody th{font-weight:400}.skill-grid th:first-child{z-index:1;background:var(--surface);position:sticky;left:0}.skill-grid tbody tr:hover>th:first-child{background:var(--row-alt)}.skill-grid th:last-child,.skill-grid td:last-child{padding-right:var(--space-6);min-width:80px}.skill-grid thead th.t-label{font-size:var(--fs-xs)}.skill-grid td.class-n{white-space:nowrap;font-weight:600}.t-skill{box-sizing:border-box;border-radius:var(--radius-sm);border:1px dashed var(--border);vertical-align:middle;justify-content:center;align-items:center;width:44px;height:28px;display:inline-flex}.t-skill.mastered{background:var(--good);color:var(--accent-text);border:0}.t-skill.mastered svg{width:14px;height:14px}.t-skill.learning{border:1px solid var(--learning-border);background:var(--learning-bg)}.t-skill-dot{background:var(--learning-mark);border-radius:50%;width:8px;height:8px}.std-top{justify-content:space-between;align-items:center;gap:var(--space-3) var(--space-6);flex-wrap:wrap;display:flex}.std-top .t-help{max-width:520px;margin:0}.segmented.t-switch{gap:0;padding:3px}.segmented.t-switch button{border-radius:var(--radius-inset);min-height:40px;font-size:var(--fs-sm);color:var(--text);padding:0 14px}.segmented.t-switch button+button{border-left:0}.segmented.t-switch button[aria-pressed=true]{background:var(--accent);color:var(--accent-text)}.t-stats{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.t-stat{padding:var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;display:flex}.t-stat .t-help{margin:0}.t-stat-n{font-size:var(--fs-xl);font-weight:600;line-height:40px}.t-stat.met .t-stat-n{color:var(--good)}.t-stat.knowledge .t-stat-n{color:var(--accent)}.t-swatch{border-radius:3px;width:12px;height:12px;display:inline-block}.t-swatch.met,.std-bar .met{background:var(--good)}.t-swatch.knowledge,.std-bar .knowledge{background:var(--learning)}.t-swatch.in-progress,.std-bar .in-progress{background:var(--muted)}.t-swatch.rest{background:var(--border)}.std-table{border-collapse:collapse;width:100%;min-width:680px}.std-table th,.std-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;height:40px;padding:0 6px}.std-table th:first-child,.std-table td:first-child{padding-left:var(--space-6)}.std-table th:last-child,.std-table td:last-child{padding-right:var(--space-6)}.std-table thead th{height:auto;padding-top:var(--space-3);padding-bottom:var(--space-3);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);white-space:nowrap;border-bottom:0;font-weight:500;line-height:16px}.std-table .num{text-align:right;width:104px}.std-table thead .num:nth-child(4){width:72px}.std-table tbody tr:not(.std-group):hover{background:var(--row-alt)}.std-group th{padding-top:var(--space-3);padding-bottom:var(--space-2);background:var(--field);border-top:1px solid var(--border);font-weight:600}.std-group th>*{margin-right:var(--space-3)}.std-group .t-help{font-weight:400;display:inline}.std-code{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.04em;color:var(--accent);font-weight:500}.std-id{font-family:var(--font-mono);font-size:var(--fs-code);cursor:help;width:140px;font-weight:400}.std-type{border-radius:var(--radius-sm);background:var(--field);font-family:var(--font-mono);font-size:var(--fs-xs);padding:0 6px;line-height:20px;display:inline-block}.std-table td:nth-child(2){width:64px}.std-bar{background:var(--border);border-radius:5px;min-width:120px;height:10px;display:flex;overflow:hidden}.std-bar>span{height:100%}.std-table td.num{color:var(--muted);font-weight:600}.std-table td.num.met{color:var(--good)}.std-table td.num.knowledge{color:var(--accent)}.std-table td.num.in-progress{font-weight:400}.std-table td.num.none{color:var(--muted)}.review-head{align-items:baseline;gap:var(--space-3);display:flex}.review-head h2{margin:0}.t-badge{padding:0 var(--space-2);border-radius:var(--radius-sm);background:var(--accent);color:var(--accent-text);font-size:var(--fs-sm);font-weight:600;line-height:24px}article.review{flex-wrap:wrap;display:flex;overflow:hidden}.review-main{min-width:0;padding:var(--space-6);flex-direction:column;flex:999 480px;gap:20px;display:flex}.review-main>*{margin:0}.review-who{gap:var(--space-4);align-items:flex-start;display:flex}.review-who .t-avatar{width:44px;height:44px;font-size:var(--fs-sm)}.review-who>div{flex-direction:column;gap:2px;min-width:0;display:flex}.review-who .t-help{margin:0}.review-who h3{margin:0;font-size:1.25rem;line-height:28px}.review-block{gap:var(--space-2);flex-direction:column;display:flex}.review-notes{padding:var(--space-4);background:var(--field);border-radius:var(--radius-md);white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.review-comment{white-space:pre-wrap;margin:0}.review-verdict{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);font-size:var(--fs-sm);align-self:flex-start;font-weight:600;display:inline-flex}.review-verdict.accepted{background:var(--good-bg);color:var(--good)}.review-verdict.revise{background:var(--bad-bg);color:var(--bad)}.std-chips{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.std-chips li{padding:2px var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--fs-code);line-height:20px}.review-rubric{border-top:1px solid var(--border);padding-top:var(--space-3)}.review-rubric>summary{min-height:44px;color:var(--accent);align-items:center;margin:0;font-weight:600}.review-rubric-body{padding:var(--space-1) 0 0 26px;font-size:var(--fs-sm);color:var(--muted);line-height:20px}.review-decide{padding:var(--space-6);background:var(--field);border-left:1px solid var(--border);gap:var(--space-4);flex-direction:column;flex:300px;display:flex}.review-buttons{gap:var(--space-2);flex-wrap:wrap;display:flex}.review-buttons .t-btn.ghost{padding:0 var(--space-4);font-size:var(--fs-base)}.reviewed{margin-top:var(--space-2)}.reviewed>summary{min-height:44px;color:var(--text);align-items:center;margin:0;font-size:1.25rem;font-weight:600;line-height:28px}.reviewed .t-count-soft{color:var(--muted);font-weight:400}.reviewed>.t-page{margin-top:var(--space-2)}@media (width<=800px){.review-decide{border-left:0;border-top:1px solid var(--border)}a.class-row{gap:var(--space-3);padding:var(--space-4)}.learner-rows li{padding:var(--space-3) var(--space-4)}.t-card-head,.t-card-head.center{padding-left:var(--space-4);padding-right:var(--space-4)}}:root{--fs-lead:1.125rem;--fs-h3:1.25rem;--fs-hero:3.5rem}.page-mid .layout.single{grid-template-columns:minmax(0,1fr)}.page-mid .layout.single.wide:has(.pages,.view-page,.acct,.try-it){max-width:var(--page-mid)}.f-field{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.f-field>label,.f-label{font-size:var(--fs-sm);color:var(--text);font-weight:600;line-height:20px}.f-field input:not([type=checkbox]):not([type=radio]),.f-field select{background:var(--surface);min-height:44px;box-shadow:none}.f-field textarea{background:var(--surface);box-shadow:none;resize:vertical}.f-help{font-size:var(--fs-sm);color:var(--muted);margin:0;line-height:20px}.f-password{border:1px solid var(--control);border-radius:var(--radius-sm);background:var(--surface);display:flex;overflow:hidden}.f-password:focus-within{outline:3px solid var(--cyan);outline-offset:2px}.f-field .f-password input:not([type=checkbox]){border:0;border-radius:0;flex:1;min-width:0;min-height:42px}.f-password input:focus-visible{outline:none}button.f-show{min-width:64px;padding:0 var(--space-3);border:0;border-left:1px solid var(--border);background:var(--surface);color:var(--accent);font-size:var(--fs-sm);border-radius:0;flex:none;font-weight:600}button.f-show:hover:not(:disabled){color:var(--accent-hover);text-decoration:underline}.form-msg{max-width:none;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--fs-sm);margin:0;line-height:20px}.form-msg.good{background:var(--good-bg);color:var(--good)}.form-msg.error{background:var(--bad-bg);color:var(--bad);box-shadow:inset 4px 0 0 var(--bad);font-weight:500}.callout{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--accent-tint);font-size:var(--fs-sm);line-height:20px;display:flex}.callout-icon{width:18px;height:18px;color:var(--accent);margin-top:1px}button.btn-icon-text{justify-content:center;align-items:center;gap:var(--space-2);min-height:44px;padding:0 20px;font-weight:600;display:inline-flex}.btn-icon{width:18px;height:18px}button.btn-light{border-color:var(--surface);background:var(--surface);color:var(--accent)}button.btn-light:hover:not(:disabled){border-color:var(--accent-tint);background:var(--accent-tint);color:var(--accent)}button.danger-outline{padding:0 var(--space-4);border-color:var(--bad);background:var(--surface);color:var(--bad);align-self:flex-start}button.danger-outline:hover:not(:disabled){border-color:var(--bad);background:var(--bad-bg);color:var(--bad)}button.link.danger{color:var(--bad);font-weight:600}button.link.danger:hover:not(:disabled){color:var(--bad)}.pages-intro{gap:var(--space-2);flex-direction:column;max-width:620px;display:flex}.never-public{align-items:center;gap:var(--space-2);font-size:var(--fs-sm);color:var(--highlight);font-weight:600;line-height:20px;display:inline-flex}.never-public .lock{width:16px;height:16px}.pages{flex-direction:column;gap:40px;display:flex}.pages-section{gap:var(--space-4);flex-direction:column;display:flex}.pages-head{justify-content:space-between;align-items:baseline;gap:var(--space-2) var(--space-6);flex-wrap:wrap;display:flex}.pages-head h2{margin:0}.pages-head h2:focus{outline:none}.pages-count{font-size:var(--fs-sm);color:var(--muted);line-height:20px}.pages-empty{align-items:center;gap:var(--space-3);padding:40px var(--space-6);border:1px dashed var(--control);border-radius:var(--radius-md);background:var(--surface);text-align:center;flex-direction:column;display:flex}.pages-empty-mark{border-radius:var(--radius-md);background:var(--accent-tint);width:56px;height:56px;color:var(--accent);padding:14px}.pages-empty h3{font-size:var(--fs-lead);margin:0;line-height:24px}.pages-empty p{max-width:420px;color:var(--muted);margin:0}.pages-empty button{margin-top:var(--space-1)}.page-tiles{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));margin:0;padding:0;list-style:none;display:grid}.page-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;display:flex;position:relative;overflow:hidden}.page-tile:hover{border-color:var(--accent)}.page-tile:has(.page-tile-open:focus-visible){outline:3px solid var(--cyan);outline-offset:2px}.page-thumb{border-bottom:1px solid var(--border);background:var(--surface);height:152px;position:relative;overflow:hidden}.page-thumb iframe.preview.thumb{transform-origin:0 0;pointer-events:none;border:0;border-radius:0;width:200%;height:200%;position:absolute;top:0;left:0;transform:scale(.5)}.page-tile-text{padding:var(--space-3) var(--space-4);flex-direction:column;gap:2px;display:flex}button.page-tile-open{color:var(--text);text-align:left;background:0 0;border:0;border-radius:0;padding:0;font-weight:600}button.page-tile-open:after{content:"";position:absolute;inset:0}button.page-tile-open:focus-visible{outline:none}.page-tile:hover .page-tile-open{color:var(--accent);text-decoration:underline}.page-tile-sub{font-size:var(--fs-sm);color:var(--muted);line-height:20px}.layout:has(.page-editor){padding-top:var(--space-6);padding-bottom:var(--space-16)}.page-editor{gap:var(--space-4);flex-direction:column;display:flex}.page-editor-top{align-items:flex-end;gap:var(--space-4);flex-wrap:wrap;display:flex}.page-editor-top .f-field{flex:320px}.page-editor-actions{align-items:center;gap:var(--space-2);display:flex}.page-editor-actions button{min-height:44px}.page-editor-actions button.primary{padding:0 var(--space-6)}button.link.cancel{padding:0 var(--space-4);text-underline-offset:3px;font-weight:600;text-decoration:underline}.page-work{align-items:stretch;gap:var(--space-4);flex-wrap:wrap;display:flex}.page-pane{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;min-width:0;display:flex;overflow:hidden}.page-pane.code-pane{flex:480px}.page-pane.preview-pane{flex:400px}.page-work.work .file-tabs button[aria-selected=true]{box-shadow:inset 0 -3px 0 var(--accent), 1px 0 0 var(--border), -1px 0 0 var(--border)}.page-work.work.web .editor .cm-content,.page-work.work.web .editor .cm-gutter,.page-work .preview-pane iframe.preview{min-height:440px}label.share-card{align-items:flex-start;gap:var(--space-3);padding:var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;display:flex}label.share-card input[type=checkbox]{width:20px;height:20px;margin-top:2px}label.share-card strong{font-weight:600;display:block}label.share-card .muted{display:block}.page-editor-foot{justify-content:flex-end;display:flex}.page-editor-foot:not(:has(button:not([hidden]))){display:none}.view-page{align-items:flex-start;gap:var(--space-6);flex-wrap:wrap;display:flex}.view-main{gap:var(--space-3);flex-direction:column;flex:999 520px;min-width:0;display:flex}.browser{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.browser-bar{height:36px;padding:0 var(--space-3);background:var(--field);border-bottom:1px solid var(--border);align-items:center;gap:6px;display:flex}.browser-bar span{background:var(--border);border-radius:50%;width:10px;height:10px}.browser iframe.preview.view-frame{border:0;border-radius:0;height:max(360px,60vh)}.view-pager{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-4);font-size:var(--fs-sm);flex-wrap:wrap;line-height:20px;display:flex}.pager-links{gap:var(--space-2) var(--space-6);flex-wrap:wrap;display:flex}button.link.pager-link{align-items:center;gap:var(--space-2);min-height:44px;font-size:inherit;text-underline-offset:3px;padding:0;font-weight:600;text-decoration:underline;display:inline-flex}.pager-icon{width:16px;height:16px}.card.view-tools{flex:280px;margin:0;padding:20px}.tools-form{gap:var(--space-4);flex-direction:column;display:flex}.tools-head{gap:var(--space-1);flex-direction:column;display:flex}.tools-head .label{margin:0}.tools-head h2{font-size:var(--fs-h3);margin:0;line-height:28px}.tools-head p{margin:0}.tools-reason{font-size:var(--fs-sm);white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.view-tools button.btn-icon-text{padding:0 var(--space-4);align-self:flex-start}.acct{align-items:flex-start;gap:var(--space-6);flex-wrap:wrap;display:flex}.acct>.card{padding:var(--space-6);margin:0}.acct>.form-msg{flex:100%}.acct-who{align-items:center;gap:var(--space-4);flex:260px;display:flex}.avatar{background:var(--accent);width:56px;height:56px;color:var(--accent-text);font-family:var(--font-mono);border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:500;display:flex}.acct-who-text{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.acct-who-text .label{margin:0}.acct-name{font-size:var(--fs-lead);overflow-wrap:anywhere;font-weight:600;line-height:24px}.role-chip{padding:0 var(--space-2);border-radius:var(--radius-sm);background:var(--accent-tint);color:var(--accent);font-size:var(--fs-sm);white-space:nowrap;align-self:flex-start;font-weight:600;line-height:24px;display:inline-block}.acct-main{flex:2 420px}.acct-form{flex-direction:column;gap:20px;max-width:480px;display:flex}.acct-form h2{margin:0}.acct-form button.primary{align-self:flex-start;min-height:44px;padding:0 20px}.acct-list{flex:2 420px;min-width:0}.acct-list h2{margin:0 0 var(--space-3)}.acct-new{flex:300px}.acct-table{border-collapse:collapse;width:100%}.acct-table th{padding:var(--space-2) var(--space-3);text-align:left;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border);font-weight:500;line-height:16px}.acct-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);vertical-align:middle}.acct-table tr:last-child td{border-bottom:0}.acct-table td.acct-name{font-size:var(--fs-base);overflow-wrap:break-word}@media (width<=640px){.acct-table th,.acct-table td{padding-left:var(--space-2);padding-right:var(--space-2)}.acct-table th:first-child,.acct-table td:first-child{padding-left:0}.acct-table th:last-child,.acct-table td:last-child{padding-right:0}}.acct-actions{text-align:right;white-space:nowrap}.acct-actions button.link{min-height:44px;padding:0}.signin-hero .hero-inner{padding:var(--space-8) var(--space-8) var(--space-14);align-items:center;gap:40px}.signin-hero .hero-text{gap:var(--space-3);flex:420px}.signin-hero h1{font-size:var(--fs-hero);letter-spacing:-.03em;line-height:60px}.signin-hero .spark{color:var(--highlight)}.signin-hero .hero-intro{max-width:460px;font-size:var(--fs-lead);line-height:28px}.signin-card{border-radius:var(--radius-lg);background:var(--surface);min-width:0;color:var(--text);flex:0 380px;padding:28px}.signin-form{gap:var(--space-4);flex-direction:column;display:flex}.signin-form h2{margin:0}.signin-form h2+p{margin:var(--space-1) 0 0}.signin-form button.primary{min-height:48px}.layout:has(.try-it){padding-top:40px;padding-bottom:var(--space-16)}.try-it{gap:var(--space-4);flex-direction:column;display:flex}.try-it h2{margin:0}.try-it h2+p{margin:var(--space-1) 0 0}.try-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));display:grid}button.try-card{align-items:flex-start;gap:var(--space-4);padding:var(--space-6);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text);text-align:left;display:flex}button.try-card:hover:not(:disabled){border-color:var(--accent);color:var(--text)}button.try-card:hover .try-title{color:var(--accent);text-decoration:underline}.try-icon{width:48px;height:48px;padding:var(--space-3);border-radius:var(--radius-md)}.try-icon.student{background:var(--accent);color:var(--accent-text)}.try-icon.teacher{background:var(--slate);color:var(--cyan)}.try-text{gap:var(--space-1);flex-direction:column;flex:1;display:flex}.try-title{font-size:var(--fs-h3);font-weight:600;line-height:28px}.try-go{border-radius:var(--radius-md);background:var(--accent-tint);width:44px;height:44px;color:var(--accent);padding:12px}@media (width<=800px){.signin-hero h1{font-size:var(--fs-2xl);line-height:1.1}.signin-card{padding:var(--space-6);flex-basis:100%}.layout:has(.try-it){padding-top:var(--space-8)}.browser iframe.preview.view-frame{height:360px}.signin-hero .hero-inner{gap:var(--space-6);padding:var(--space-4) var(--space-4) var(--space-8)}.hero-inner,.hero.compact .hero-inner,.demo-banner-inner{padding-left:var(--space-4);padding-right:var(--space-4)}}
