@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(../media/033400d475fad6b1-s.197tvtifbphtu.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(../media/26daee0352f50a5f-s.2e115y8-hourl.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(../media/017d9bea37084d9b-s.p.41rroleoq1br7.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Bricolage Grotesque Fallback;src:local(Arial);ascent-override:88.21%;descent-override:25.61%;line-gap-override:0.0%;size-adjust:105.43%}.bricolage_grotesque_73c5d30a-module__ADMI4a__className{font-family:Bricolage Grotesque,Bricolage Grotesque Fallback;font-style:normal}.bricolage_grotesque_73c5d30a-module__ADMI4a__variable{--font-bricolage:"Bricolage Grotesque", "Bricolage Grotesque Fallback"}
@font-face{font-family:Instrument Serif;font-style:italic;font-weight:400;font-display:swap;src:url(../media/fc0a7394b875fa43-s.2ytmazkdrg7t9.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Serif;font-style:italic;font-weight:400;font-display:swap;src:url(../media/7ebf22b5a21034f8-s.p.3j3877k49yy0l.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Serif Fallback;src:local(Times New Roman);ascent-override:117.94%;descent-override:36.93%;line-gap-override:0.0%;size-adjust:83.94%}.instrument_serif_6e78e6af-module__OsMOaq__className{font-family:Instrument Serif,Instrument Serif Fallback;font-style:italic;font-weight:400}.instrument_serif_6e78e6af-module__OsMOaq__variable{--font-instrument:"Instrument Serif", "Instrument Serif Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/04c5164763c40239-s.1kd-r_s9smv5m.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/26f284dcc38c84c0-s.3hlisc-pwq13z.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/7e7f32a39836f228-s.0-oo9_1x_xmvg.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/fa39153a3fc630ba-s.36fqqi66-3tjb.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/6a5386fd6038edbe-s.3_z45zcoc-xoz.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/051742360c26797e-s.p.1bkzbscqrt8rl.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/04c5164763c40239-s.1kd-r_s9smv5m.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/26f284dcc38c84c0-s.3hlisc-pwq13z.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/7e7f32a39836f228-s.0-oo9_1x_xmvg.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/fa39153a3fc630ba-s.36fqqi66-3tjb.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/6a5386fd6038edbe-s.3_z45zcoc-xoz.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/051742360c26797e-s.p.1bkzbscqrt8rl.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_5200a4c-module__ync41G__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_5200a4c-module__ync41G__variable{--font-jetbrains:"JetBrains Mono", "JetBrains Mono Fallback"}
:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0a0a0b;--surface:#111113;--surface-high:#18181b;--surface-code:#0e0e10;--border:#232325;--border-strong:#3d3c3a;--border-input:#77746f;--text:#f4f1ea;--text-muted:#a6a39d;--text-subtle:#85827d;--accent:#ff4d1f;--accent-text:#ff6a42;--on-accent:#0a0a0b;--success:#7ee2a8;--attention:#ffb199;--series:#9aa4ff;--focus:#ff4d1f;--glow:color-mix(in oklab, var(--accent) 22%, transparent);--scrim:#0a0a0be0;--font-sans:"Bricolage Grotesque", ui-sans-serif, system-ui, sans-serif;--font-voice:"Instrument Serif", ui-serif, Georgia, serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--fs-xs:.75rem;--lh-xs:1rem;--fs-sm:.875rem;--lh-sm:1.25rem;--fs-base:1rem;--lh-base:1.5rem;--fs-read:1.125rem;--lh-read:1.75rem;--fs-lg:1.25rem;--lh-lg:1.625rem;--fs-xl:1.75rem;--lh-xl:2rem;--fs-display:2.5rem;--lh-display:2.625rem;--fs-voice:1.375rem;--lh-voice:1.75rem;--fs-code:.875rem;--lh-code:1.375rem;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--s-8:64px;--s-9:96px;--r-sm:6px;--r-md:10px;--r-lg:16px;--r-pill:999px;--rail-w:248px;--topbar-h:56px;--checkbar-h:64px;--stop:28px;--stop-sm:20px;--line:2px;--measure:68ch;--touch:44px;--t-fast:.14s;--t-base:.22s;--t-line:.6s;--ease:cubic-bezier(.16, 1, .3, 1);--shadow-pop:0 18px 40px -16px #000000b3}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f3f3f1;--surface:#fbfbfa;--surface-high:#e9e9e6;--surface-code:#eeeeeb;--border:#dcdcd8;--border-strong:#c2c2bd;--border-input:#85857f;--text:#151514;--text-muted:#4d4d49;--text-subtle:#64645f;--accent-text:#b3310a;--success:#1b7446;--attention:#a8361c;--series:#4652c9;--focus:#c43a0f;--scrim:#f3f3f1e6;--shadow-pop:0 18px 40px -18px #281e1447}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f3f3f1;--surface:#fbfbfa;--surface-high:#e9e9e6;--surface-code:#eeeeeb;--border:#dcdcd8;--border-strong:#c2c2bd;--border-input:#85857f;--text:#151514;--text-muted:#4d4d49;--text-subtle:#64645f;--accent-text:#b3310a;--success:#1b7446;--attention:#a8361c;--series:#4652c9;--focus:#c43a0f;--scrim:#f3f3f1e6;--shadow-pop:0 18px 40px -18px #281e1447}@media (prefers-reduced-motion:reduce){:root{--t-fast:0s;--t-base:0s;--t-line:0s}}
:root{--font-sans:var(--font-bricolage), ui-sans-serif, system-ui, sans-serif;--font-voice:var(--font-instrument), ui-serif, Georgia, serif;--font-mono:var(--font-jetbrains), ui-monospace, "SF Mono", Menlo, monospace}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh-base);font-optical-sizing:auto;-webkit-font-smoothing:antialiased}.shell{grid-template-rows:var(--topbar-h) 1fr var(--checkbar-h);height:100dvh;display:grid;overflow:hidden}::selection{background:var(--accent);color:var(--on-accent)}:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:var(--r-sm)}button{font:inherit;color:inherit}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}.skip{left:var(--s-4);z-index:10;background:var(--accent);color:var(--on-accent);padding:var(--s-2) var(--s-4);border-radius:var(--r-pill);position:absolute;top:-100px}.skip:focus{top:var(--s-2)}.i{fill:none;stroke:currentColor;stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:18px;height:18px}.topbar{align-items:center;gap:var(--s-5);padding:0 var(--s-5);border-bottom:1px solid var(--border);background:var(--bg);min-width:0;display:flex}.logo{color:var(--text);letter-spacing:-.03em;font-weight:700;font-size:var(--fs-lg);align-items:baseline;gap:6px;text-decoration:none;display:inline-flex}.logo-bar{background:var(--accent);transform-origin:0;width:18px;height:2px;transition:transform var(--t-base) var(--ease);align-self:center}.logo-num{font-family:var(--font-voice);letter-spacing:0;font-size:1.45rem;font-style:italic;font-weight:400}.crumbs{align-items:center;gap:var(--s-1);min-width:0;font-size:var(--fs-sm);color:var(--text-muted);display:flex}.crumbs a{color:inherit;white-space:nowrap;text-overflow:ellipsis;padding:var(--s-2) 2px;text-decoration:none;overflow:hidden}.crumbs .i{width:14px;height:14px;color:var(--text-subtle)}.sample-tag{font-size:var(--fs-xs);color:var(--text-subtle);border:1px solid var(--border-strong);border-radius:var(--r-pill);white-space:nowrap;padding:3px 10px}.topbar-tools{align-items:center;gap:var(--s-2);margin-left:auto;display:flex}.seg{border:1px solid var(--border-strong);border-radius:var(--r-pill);padding:3px;display:inline-flex}.seg-btn{border-radius:var(--r-pill);min-width:40px;height:32px;font-size:var(--fs-sm);color:var(--text-muted);cursor:pointer;background:0 0;border:0;font-weight:500}.seg-btn[aria-pressed=true]{background:var(--text);color:var(--bg)}.icon-btn{width:var(--touch);height:var(--touch);color:var(--text-muted);cursor:pointer;transition:color var(--t-fast), border-color var(--t-fast);background:0 0;border:1px solid #0000;border-radius:50%;place-items:center;display:grid}.player{grid-template-columns:var(--rail-w) minmax(0, 1fr);min-height:0;display:grid}.rail{background:var(--surface);border-right:1px solid var(--border);padding:var(--s-5) var(--s-4) var(--s-4) var(--s-5);flex-direction:column;min-height:0;display:flex;overflow-y:auto}.rail-title{font-size:var(--fs-lg);line-height:var(--lh-lg);letter-spacing:-.02em;text-wrap:balance;margin:0;font-weight:700}.rail-meta{margin:var(--s-1) 0 0;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.04em;color:var(--text-subtle);font-variant-numeric:tabular-nums}.line{margin:var(--s-6) 0 var(--s-5);flex:1;padding:0;list-style:none}.line li{padding-bottom:var(--s-5);position:relative}.line li:last-child{padding-bottom:0}.line li:not(:last-child):before,.line li:not(:last-child):after{content:"";left:calc(var(--stop) / 2 - var(--line) / 2);top:var(--stop);width:var(--line);position:absolute;bottom:0}.line li:not(:last-child):before{background:var(--border-strong)}.line li:not(:last-child):after{background:var(--accent);transform-origin:top;transition:transform var(--t-line) var(--ease);transform:scaleY(0)}.line li.is-passed:not(:last-child):after{transform:scaleY(1)}.stop{grid-template-columns:var(--stop) 1fr;column-gap:var(--s-3);text-align:left;cursor:pointer;border-radius:var(--r-sm);background:0 0;border:0;align-items:start;width:100%;padding:0;display:grid}.stop:disabled{cursor:default}.stop-dot{width:var(--stop);height:var(--stop);border:var(--line) solid var(--border-strong);background:var(--surface);color:var(--text-subtle);z-index:1;transition:background var(--t-base) var(--ease), border-color var(--t-base) var(--ease), color var(--t-base), box-shadow var(--t-base);border-radius:50%;place-items:center;display:grid;position:relative}.stop-dot .i{width:14px;height:14px}.stop-body{min-width:0;padding-top:3px}.stop-num{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-subtle);font-variant-numeric:tabular-nums;margin-right:6px}.stop-label{font-size:var(--fs-sm);line-height:var(--lh-sm);color:var(--text-muted);display:block}.stop-proof{font-family:var(--font-mono);font-size:var(--fs-xs);line-height:var(--lh-xs);color:var(--text-subtle);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;display:block;overflow:hidden}.stop-proof:empty{display:none}li.is-current .stop-dot{border-color:var(--accent);color:var(--accent-text);box-shadow:0 0 0 5px var(--glow)}li.is-current .stop-label{color:var(--text);font-weight:600}li.is-passed .stop-dot{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}li.is-passed.with-help .stop-dot{background:var(--surface);color:var(--accent-text)}li.is-passed .stop-label{color:var(--text)}li.just-passed .stop-dot{animation:punch var(--t-line) var(--ease)}@keyframes punch{0%{transform:scale(.6)}60%{transform:scale(1.12)}to{transform:scale(1)}}.legend{padding-top:var(--s-4);border-top:1px solid var(--border);gap:var(--s-2) var(--s-3);font-size:var(--fs-xs);color:var(--text-subtle);grid-template-columns:1fr 1fr;margin:0;display:grid}.legend div{align-items:center;gap:var(--s-2);display:flex}.legend dt .i{width:14px;height:14px;display:block}.legend dd{margin:0}.work{outline:none;flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.brief{padding:var(--s-6) var(--s-6) var(--s-5);max-width:calc(var(--measure) + 2 * var(--s-6))}.brief-count{margin-left:var(--s-3);font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:0;color:var(--text-subtle);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:400}.brief-title{font-size:var(--fs-xl);line-height:var(--lh-xl);letter-spacing:-.03em;text-wrap:balance;margin:0;font-weight:700}.brief-text{margin-top:var(--s-3);color:var(--text-muted);font-size:var(--fs-base);line-height:var(--lh-base)}.brief-text p{margin:0 0 var(--s-2)}.brief-text code,.prose code{font-family:var(--font-mono);color:var(--text);background:var(--surface-high);border-radius:4px;padding:1px 6px;font-size:.9em}.bench{min-height:0;padding:0 var(--s-6) var(--s-6);flex-direction:column;flex:1;display:flex}.bench-enter{animation:enter var(--t-base) var(--ease)}@keyframes enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.prose{max-width:var(--measure);font-size:var(--fs-read);line-height:var(--lh-read);color:var(--text);overflow-y:auto}.prose p{margin:0 0 var(--s-4)}.figure{margin:var(--s-2) 0 var(--s-5);padding:var(--s-5);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface)}.figure svg{width:100%;height:auto;max-height:180px;display:block}.figure figcaption{margin-top:var(--s-3);font-size:var(--fs-sm);color:var(--text-muted)}.machine-io{font-family:var(--font-mono)}.split{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-code);flex:1;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);min-height:0;display:grid;overflow:hidden}.pane{flex-direction:column;min-height:0;display:flex}.pane+.pane{border-left:1px solid var(--border);background:var(--surface)}.pane-head{align-items:center;gap:var(--s-2);height:40px;padding:0 var(--s-3);border-bottom:1px solid var(--border);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-subtle);letter-spacing:.04em;display:flex}.file-tab{align-items:center;gap:var(--s-2);height:100%;padding:0 var(--s-2);color:var(--text);border-bottom:2px solid var(--text);margin-bottom:-1px;display:inline-flex}.saved{margin-left:auto}.editor{min-height:0;font-family:var(--font-mono);font-size:var(--fs-code);line-height:var(--lh-code);flex:1;position:relative;overflow:auto}.editor-inner{grid-template-columns:44px 1fr;min-height:100%;display:grid;position:relative}.gutter{padding:var(--s-3) var(--s-2) var(--s-3) 0;text-align:right;color:var(--text-subtle);-webkit-user-select:none;user-select:none;font-variant-numeric:tabular-nums;border-right:1px solid var(--border)}.gutter span{display:block}.code-area{width:max-content;min-width:100%;position:relative}.code-area pre,.code-area textarea{padding:var(--s-3) var(--s-4);font:inherit;line-height:inherit;tab-size:2;white-space:pre;border:0;margin:0;overflow:hidden}.code-area pre{color:var(--text);pointer-events:none;min-height:100%}.code-area textarea{resize:none;color:#0000;width:100%;height:100%;caret-color:var(--accent);background:0 0;outline:none;position:absolute;inset:0}.code-area textarea:focus-visible{outline:none}.editor:focus-within{box-shadow:inset 0 0 0 1px var(--border-input)}.tok-k{color:var(--series)}.tok-s{color:var(--success)}.tok-n{color:var(--text)}.tok-c{color:var(--text-subtle);font-style:italic}.tok-f{color:var(--text);font-weight:500}.tests{padding:var(--s-3) var(--s-4);gap:var(--s-2);border-bottom:1px solid var(--border);display:grid}.tests-title,.console-title{font-size:var(--fs-sm);color:var(--text-muted);margin:0;font-weight:600}.test{gap:var(--s-2);font-size:var(--fs-sm);line-height:var(--lh-sm);color:var(--text-muted);grid-template-columns:20px 1fr;align-items:start;display:grid}.test-mark{border:1.5px solid var(--border-strong);border-radius:50%;place-items:center;width:18px;height:18px;margin-top:1px;display:grid}.test-mark .i{stroke-width:2.5px;width:12px;height:12px}.test.pass{color:var(--text)}.test.pass .test-mark{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.test.fail .test-mark{border-color:var(--text-muted)}.test.fail .test-mark:after{content:"";background:var(--text-muted);border-radius:1px;width:8px;height:2px}.test.first-fail{color:var(--text)}.test-hint{margin-top:var(--s-1);padding-left:var(--s-3);border-left:1px solid var(--border-strong);color:var(--text);font-size:var(--fs-sm);display:block}.test code{font-family:var(--font-mono);color:var(--text);font-size:.88em}.console{min-height:0;padding:var(--s-3) var(--s-4);flex:1;overflow:auto}.console-out{margin:var(--s-2) 0 0;font-family:var(--font-mono);font-size:var(--fs-code);line-height:var(--lh-code);white-space:pre-wrap;color:var(--text)}.console-out .muted{color:var(--text-subtle)}.console-out .err{color:var(--text);-webkit-text-decoration:underline wavy var(--text-subtle) 1px;text-decoration:underline wavy var(--text-subtle) 1px;text-underline-offset:4px}.pane-tabs{display:none}.choices{gap:var(--s-3);border:0;max-width:560px;margin:0;padding:0;display:grid}.choices legend{margin-bottom:var(--s-2);font-family:var(--font-mono);font-size:var(--fs-code);color:var(--text);padding:0}.choice{align-items:center;gap:var(--s-4);min-height:56px;padding:var(--s-3) var(--s-5);border:1px solid var(--border-strong);border-radius:var(--r-md);cursor:pointer;transition:border-color var(--t-fast), background var(--t-fast);display:flex;position:relative}.choice input{opacity:0;pointer-events:none;position:absolute}.choice-key{border:1px solid var(--border-strong);width:26px;height:26px;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-subtle);border-radius:50%;flex:none;place-items:center;display:grid}.choice-val{font-family:var(--font-mono);font-size:var(--fs-lg);font-variant-numeric:tabular-nums}.choice:has(input:checked){border-color:var(--text);background:var(--surface-high)}.choice:has(input:checked) .choice-key{background:var(--text);color:var(--bg);border-color:var(--text)}.choice:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:3px}:is(.choice.is-wrong,.choice.is-wrong:has(input:checked)){border-style:dashed;border-color:var(--text-muted);background:0 0}.choice.is-wrong .choice-val{text-decoration:line-through;-webkit-text-decoration-color:var(--text-subtle);text-decoration-color:var(--text-subtle)}.choice.is-wrong .choice-key{color:var(--text-muted);border-color:var(--text-muted);background:0 0}:is(.choice.is-right,.choice.is-right:has(input:checked)){border-color:var(--accent)}:is(.choice.is-right .choice-key,.choice.is-right:has(input:checked) .choice-key){background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.lab{justify-content:start;gap:var(--s-5);flex:1;grid-template-columns:max-content minmax(240px,300px);min-height:0;display:grid}.plot{-webkit-user-select:none;user-select:none;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);padding:var(--s-2);aspect-ratio:600/520;max-width:100%;height:100%;min-height:0}.plot svg{touch-action:none;width:100%;height:100%;display:block}.plot .grid line{stroke:var(--border);stroke-width:1px}.plot .axis{stroke:var(--border-strong);stroke-width:1.5px}.plot .tick{fill:var(--text-subtle);font-family:var(--font-mono);font-size:11px}.plot .fn{stroke:var(--text);stroke-width:2.5px;stroke-linecap:round}.plot .target{fill:none;stroke:var(--series);stroke-width:2px}.plot .target-dot{fill:var(--series)}.plot .target-label{fill:var(--series);font-family:var(--font-mono);font-size:12px}.plot .handle{fill:var(--text);cursor:grab;transition:r var(--t-fast)}.plot .handle-ring{fill:none;stroke:var(--text);stroke-opacity:.25;stroke-width:8px}.plot.dragging .handle{cursor:grabbing}.plot.solved .fn{stroke:var(--accent)}.controls{gap:var(--s-5);flex-direction:column;display:flex}.readout{padding:var(--s-4) var(--s-5);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface)}.readout-value{margin-top:var(--s-1);font-family:var(--font-mono);font-size:var(--fs-xl);line-height:var(--lh-xl);font-variant-numeric:tabular-nums}.readout-value b{color:var(--text);font-weight:500}.field{gap:var(--s-2);display:grid}.field label{font-size:var(--fs-sm);color:var(--text-muted)}input[type=range]{appearance:none;width:100%;height:var(--touch);cursor:pointer;background:0 0}input[type=range]::-webkit-slider-runnable-track{background:var(--border-strong);height:2px}input[type=range]::-moz-range-track{background:var(--border-strong);height:2px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--text);border:0;border-radius:50%;width:22px;height:22px;margin-top:-10px}input[type=range]::-moz-range-thumb{background:var(--text);border:0;border-radius:50%;width:22px;height:22px}input[type=range]:focus-visible{outline:none}input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px var(--bg), 0 0 0 6px var(--focus)}.lab-note{font-size:var(--fs-sm);color:var(--text-muted);margin:0}.done{max-width:760px;padding-top:var(--s-7);flex:1;overflow-y:auto}.done-title{font-size:var(--fs-display);line-height:var(--lh-display);letter-spacing:-.035em;margin:0;font-weight:700}.voice{font-family:var(--font-voice);font-style:italic;font-size:var(--fs-voice);line-height:var(--lh-voice);color:var(--text)}.done .voice{margin:var(--s-4) 0 var(--s-6);max-width:34ch}.closure{margin:0 0 var(--s-6);grid-template-columns:repeat(6,1fr) auto;align-items:center;padding:0;list-style:none;display:grid;position:relative}.closure:before{content:"";height:var(--line);background:var(--accent);transform-origin:0;animation:draw var(--t-line) var(--ease) both;position:absolute;top:50%;left:14px;right:20px}@keyframes draw{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.closure li{position:relative}.closure .stop-dot{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.closure .is-help .stop-dot{background:var(--bg);color:var(--accent-text)}.closure .end{border:var(--line) solid var(--accent);background:var(--bg);width:40px;height:40px;color:var(--accent-text);border-radius:50%;place-items:center;display:grid;position:relative}.closure .end:after{content:"";background:var(--accent);border-radius:50%;position:absolute;inset:5px}.proofs{gap:0 var(--s-6);grid-template-columns:1fr 1fr;margin:0;display:grid}.proof{padding:var(--s-4) 0;border-top:1px solid var(--border);min-width:0}.proof dt{font-size:var(--fs-sm);color:var(--text-muted);gap:var(--s-2);align-items:center;display:flex}.proof dt .i{width:14px;height:14px;color:var(--text-subtle)}.proof dd{margin:var(--s-2) 0 0}.proof pre{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text);white-space:pre;margin:0;line-height:1.55;overflow:hidden}.proof svg{width:120px;height:auto;display:block}.proof .big{font-family:var(--font-mono);font-size:var(--fs-lg)}.quiet{margin-top:var(--s-5);font-size:var(--fs-sm);color:var(--text-muted)}.sample-note{margin-top:var(--s-5);font-size:var(--fs-xs);color:var(--text-subtle)}.checkbar{align-items:center;gap:var(--s-5);padding:0 var(--s-5) 0 calc(var(--rail-w) + var(--s-6));border-top:1px solid var(--border);background:var(--bg);grid-template-columns:auto 1fr auto;display:grid;position:relative}.check-tools{gap:var(--s-1);display:flex}.check-tools[hidden]{visibility:hidden;display:flex}.check-main{align-items:center;gap:var(--s-3);display:flex}.shortcut{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-subtle);border:1px solid var(--border-strong);border-radius:var(--r-sm);padding:2px 6px}.feedback{min-width:0;font-size:var(--fs-sm);line-height:var(--lh-sm);color:var(--text-muted);align-items:center;gap:var(--s-2);display:flex}.feedback .i{width:16px;height:16px}.feedback.ok{color:var(--text)}.feedback.ok .i{color:var(--accent-text)}.feedback.no{color:var(--text)}.feedback.no .i{color:var(--text-muted)}.feedback>span{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.feedback .why{font-family:var(--font-voice);color:var(--text);font-size:1.125rem;font-style:italic;line-height:1.3}.feedback .muted{color:var(--text-subtle)}.btn{justify-content:center;align-items:center;gap:var(--s-2);min-height:var(--touch);padding:0 var(--s-5);border-radius:var(--r-pill);border:1px solid var(--border-strong);color:var(--text);cursor:pointer;font-size:var(--fs-sm);white-space:nowrap;transition:background var(--t-fast), border-color var(--t-fast), color var(--t-fast), transform var(--t-fast);background:0 0;font-weight:500;display:inline-flex}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-ghost{color:var(--text-muted);padding:0 var(--s-3);border-color:#0000}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);padding:0 var(--s-5) 0 var(--s-6);font-weight:600}.btn-primary .i{transition:transform var(--t-fast) var(--ease)}.btn-primary.is-busy{pointer-events:none}.btn-primary.is-busy .i{animation:nudge .8s var(--ease) infinite}@keyframes nudge{50%{transform:translate(4px)}}.toast{left:50%;bottom:calc(var(--checkbar-h) + var(--s-4));background:var(--surface-high);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--r-pill);padding:var(--s-2) var(--s-2) var(--s-2) var(--s-5);align-items:center;gap:var(--s-3);font-size:var(--fs-sm);z-index:5;display:flex;position:fixed;transform:translate(-50%)}.toast[hidden]{display:none}.toast .btn{min-height:36px;padding:0 var(--s-4)}@media (max-width:1200px){.check-tools .btn span{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.check-tools .btn{width:var(--touch);padding:0}}@media (hover:hover){li.is-passed .stop:hover .stop-label{color:var(--accent-text)}.logo:hover .logo-bar{transform:scaleX(1.45)}.crumbs a:hover{color:var(--text)}.icon-btn:hover{color:var(--text);border-color:var(--border-strong)}.choice:hover{border-color:var(--text-muted)}.plot .handle:hover,.plot.dragging .handle{r:11}.btn-ghost:hover{color:var(--text);background:var(--surface-high)}.btn-primary:hover{background:var(--text);border-color:var(--text);color:var(--bg)}.btn-primary:hover .i{transform:translate(3px)}}@media (max-width:900px){body{grid-template-rows:var(--topbar-h) 1fr auto}.topbar{gap:var(--s-3);padding:0 var(--s-4)}.crumbs,.sample-tag{display:none}.player{grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr);min-width:0}.rail{border-right:0;border-bottom:1px solid var(--border);padding:var(--s-3) var(--s-4);overflow:visible}.rail-head{justify-content:space-between;align-items:baseline;gap:var(--s-3);display:flex}.rail-title{font-size:var(--fs-sm);line-height:var(--lh-sm);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.rail-meta,.legend{display:none}.line{margin:var(--s-3) 0 0;display:flex}.line li{flex:1;padding:0}.line li:last-child{flex:none}.line li:not(:last-child):before,.line li:not(:last-child):after{top:calc(var(--stop-sm) / 2 - var(--line) / 2);left:var(--stop-sm);width:auto;height:var(--line);bottom:auto;right:0}.line li:not(:last-child):after{transform-origin:0;transform:scaleX(0)}.line li.is-passed:not(:last-child):after{transform:scaleX(1)}.stop{width:auto;display:block}.stop-dot{width:var(--stop-sm);height:var(--stop-sm)}.stop-dot .i{width:11px;height:11px}li.is-current .stop-dot{box-shadow:0 0 0 4px var(--glow)}.stop-body{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.stop:after{content:"";position:absolute;inset:-12px -6px}.work{overflow-y:auto}.brief{padding:var(--s-5) var(--s-4) var(--s-4)}.brief-title{font-size:var(--fs-lg);line-height:var(--lh-lg)}.bench{padding:0 var(--s-4) var(--s-5)}.split{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr);min-height:420px}.pane+.pane{border-left:0}.pane-tabs{border-bottom:1px solid var(--border);background:var(--surface);display:flex}.pane-tabs button{height:var(--touch);font-size:var(--fs-sm);color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;flex:1}.pane-tabs button[aria-selected=true]{color:var(--text);border-bottom-color:var(--text)}.split[data-tab=code] .pane-result,.split[data-tab=result] .pane-code{display:none}.lab{gap:var(--s-4);flex:none;grid-template-columns:minmax(0,1fr)}.lab .controls{gap:var(--s-4);order:-1;grid-template-columns:auto 1fr;align-items:end;display:grid}.lab .readout{padding:var(--s-2) var(--s-4)}.lab .readout-value{font-size:var(--fs-lg);line-height:var(--lh-lg)}.lab-note{grid-column:1/-1}.plot{width:100%;height:auto}.proofs{grid-template-columns:1fr}.plot svg{width:100%;height:auto;max-height:none}.done-title{font-size:var(--fs-xl);line-height:var(--lh-xl)}.checkbar{padding:var(--s-2) var(--s-4) calc(var(--s-2) + env(safe-area-inset-bottom));gap:var(--s-2) var(--s-3);grid-template-rows:auto auto;grid-template-columns:auto 1fr}.feedback{grid-area:1/1/auto/-1}.feedback:empty{display:none}.check-tools .btn span{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.shortcut{display:none}.check-main{justify-self:end}.toast{bottom:calc(var(--checkbar-h) + var(--s-6))}}a{color:inherit}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.crumbs span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.stop{color:inherit;text-decoration:none}.stop.is-locked{cursor:default}.brief-text,.prose-body{display:block}.brief-text p:last-child{margin-bottom:0}.editor{flex:1;min-height:0;overflow:hidden}.editor .cm-editor{height:100%}.keys{display:none}.preview{min-height:0;padding:var(--s-3) var(--s-4);flex-direction:column;flex:1;display:flex;position:relative}.preview-frame{width:100%;min-height:160px;margin-top:var(--s-2);border:1px solid var(--border);border-radius:var(--r-sm);background:#fff;flex:1}.preview-empty{left:var(--s-4);right:var(--s-4);text-align:center;font-size:var(--fs-sm);color:var(--text-subtle);margin:0;position:absolute;top:50%}.figure .fm-io{font-family:var(--font-mono);fill:var(--text);font-size:28px}.figure .fm-out{fill:var(--accent-text)}.figure .fm-arrows path{fill:none;stroke:var(--border-strong);stroke-width:2px;stroke-linecap:round}.figure .fm-box{fill:var(--surface-high);stroke:var(--border-strong);stroke-width:1.5px}.figure .fm-line{fill:var(--accent)}.figure .fm-name{font-family:var(--font-mono);fill:var(--text);font-size:18px}.figure .fm-rule{font-family:var(--font-mono);fill:var(--text-muted);font-size:14px}.figure .fm-label{font-family:var(--font-mono);fill:var(--text-subtle);font-size:11px}.proof .mini{width:120px;height:auto;display:block}.mini-axes{stroke:var(--border-strong);stroke-width:1.5px;fill:none}.mini-fn{stroke:var(--accent);stroke-width:2.5px;stroke-linecap:round;fill:none}.done>.btn{margin-top:var(--s-5)}.home{width:min(100% - 2 * var(--s-5), 960px);padding:var(--s-6) 0 var(--s-9);margin:0 auto}.home-top{margin-bottom:var(--s-8);justify-content:space-between;align-items:center;display:flex}.home .seg a{border-radius:var(--r-pill);min-width:40px;height:32px;font-size:var(--fs-sm);color:var(--text-muted);place-items:center;font-weight:500;text-decoration:none;display:grid}.home .seg a[aria-current=page]{background:var(--text);color:var(--bg)}.home-title{letter-spacing:-.04em;max-width:14ch;margin:0;font-size:clamp(2.5rem,1.6rem + 3.6vw,4.5rem);font-weight:700;line-height:.95}.home-lead{margin:var(--s-4) 0 var(--s-8);color:var(--text-muted);font-size:var(--fs-read);line-height:var(--lh-read);max-width:52ch}.home-sub{margin:0 0 var(--s-3);font-size:var(--fs-sm);color:var(--text-muted);font-weight:600}.home-list{border-top:1px solid var(--border);margin:0;padding:0;list-style:none}.home-list a{gap:var(--s-1);padding:var(--s-5) 0;border-bottom:1px solid var(--border);text-decoration:none;display:grid}.home-lesson{font-size:var(--fs-xl);line-height:var(--lh-xl);letter-spacing:-.025em;font-weight:700}.home-meta{color:var(--text-muted);font-size:var(--fs-sm)}@media (hover:hover){.home-list a:hover .home-lesson{color:var(--accent-text)}}@media (max-width:900px){.keys{border-top:1px solid var(--border);background:var(--surface);scrollbar-width:none;gap:4px;padding:6px;display:flex;overflow-x:auto}.keys button{border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface-high);min-width:40px;height:40px;color:var(--text);font-family:var(--font-mono);font-size:var(--fs-base);flex:none}.split{min-height:460px}.preview-frame{min-height:220px}}.brief-text table,.prose table{border-collapse:collapse;margin:var(--s-3) 0;font-size:var(--fs-sm)}.brief-text th,.brief-text td,.prose th,.prose td{text-align:left;padding:var(--s-2) var(--s-4) var(--s-2) 0;border-bottom:1px solid var(--border);vertical-align:top}.brief-text th,.prose th{color:var(--text);font-weight:600}.brief-text pre,.prose pre,.prompt pre{margin:var(--s-3) 0;padding:var(--s-3) var(--s-4);border-radius:var(--r-md);background:var(--surface-code);border:1px solid var(--border);font-family:var(--font-mono);font-size:var(--fs-code);line-height:var(--lh-code);overflow-x:auto}.brief-text pre code,.prose pre code,.prompt pre code{background:0 0;padding:0}.choices legend{font-family:var(--font-sans);font-size:var(--fs-lg);line-height:var(--lh-lg);width:100%}.prompt p{margin:0}.prompt code{font-family:var(--font-mono);background:var(--surface-high);border-radius:4px;padding:1px 6px;font-size:.92em}.crumbs a{color:inherit;white-space:nowrap;text-overflow:ellipsis;text-decoration:none;overflow:hidden}.untranslated{margin:var(--s-3) 0 0;font-size:var(--fs-sm);color:var(--text-subtle)}
