/* Built by scripts/build-css.mjs from public/css/app.css: that file is the one to edit. */
@layer properties, legacy, theme, base, components, utilities;
@layer legacy{:root{--signal:#61fac4;--azure:#4fc2ff;--violet:#9c7aff;--coral:#ff736b;--amber:#ffb84a;--t-signal:#61fac4;--t-azure:#4fc2ff;--t-violet:#9c7aff;--t-coral:#ff736b;--t-amber:#ffb84a;--canvas:#05060d;--canvas-raised:#090c16;--surface:#0e121d;--surface-elevated:#131826;--glass:rgba(19,24,38,0.62);--glass-strong:rgba(19,24,38,0.86);--text-1:#f2f7ff;--text-2:#a2afc7;--text-3:#728098;--text-4:#48536a;--stroke:rgba(255,255,255,0.105);--stroke-strong:rgba(255,255,255,0.19);--stroke-hi:rgba(255,255,255,0.18);--divider:rgba(255,255,255,0.075);--subtle-fill:rgba(255,255,255,0.055);--input-fill:rgba(0,0,0,0.22);--rail-fill:rgba(0,0,0,0.10);--shadow:rgba(0,0,0,0.52);--grid-line:rgba(255,255,255,0.035);--grid-major:rgba(255,255,255,0.065);--on-signal:#03140e;--code-bg:rgba(0,0,0,0.30);--code-ink:#dfe7f5;--hl-keyword:#b59cff;--hl-string:#7ee8b8;--hl-number:#ffb84a;--hl-comment:#7d8aa3;--hl-builtin:#4fc2ff;--hl-def:#ff9b8f;--marker:rgba(255,184,74,0.16);--marker-strong:#ffb84a;--grad-signal:linear-gradient(135deg,#61fac4,#4fc2ff);--grad-spectral:linear-gradient(90deg,#61fac4,#4fc2ff,#9c7aff);--grad-active:linear-gradient(90deg,#f0742c,#f5933f);--font-ui:ui-rounded,"SF Pro Rounded",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,sans-serif;--font-mono:ui-monospace,"SF Mono",SFMono-Regular,"JetBrains Mono",Menlo,Consolas,monospace;--r-sm:10px;--r-md:16px;--r-lg:24px;--r-pill:999px;--ease-out:cubic-bezier(0.23,1,0.32,1);--sidebar-w:248px;--topbar-h:0px;--ink:var(--text-1);--ink-2:var(--text-2);--ink-3:var(--text-3);--ink-4:var(--text-4);--paper-sunk:var(--subtle-fill);--rule-strong:var(--stroke-strong);--font-read:var(--font-ui);--signal-soft:rgba(97,250,196,0.10);--signal-line:rgba(97,250,196,0.38);--redpen:var(--t-coral);--redpen-soft:rgba(255,115,107,0.10);color-scheme:dark}:root[data-theme="light"]{--t-signal:#006e4f;--t-azure:#0063ab;--t-violet:#573bb8;--t-coral:#b82626;--t-amber:#8a4f00;--canvas:#f4f7fc;--canvas-raised:#ffffff;--surface:#fbfcff;--surface-elevated:#ffffff;--glass:rgba(255,255,255,0.72);--glass-strong:rgba(255,255,255,0.92);--text-1:#0e121d;--text-2:#4f5c74;--text-3:#667081;--text-4:#a7b0bf;--stroke:rgba(20,31,54,0.105);--stroke-strong:rgba(20,31,54,0.19);--stroke-hi:rgba(75,0,130,0.11);--divider:rgba(20,31,54,0.10);--subtle-fill:rgba(20,31,54,0.055);--input-fill:rgba(255,255,255,0.88);--rail-fill:rgba(255,255,255,0.36);--shadow:rgba(75,0,130,0.13);--grid-line:rgba(75,0,130,0.035);--grid-major:rgba(75,0,130,0.06);--code-bg:rgba(20,31,54,0.05);--code-ink:#1b2233;--hl-keyword:#6a3fc4;--hl-string:#00744f;--hl-number:#9a5a00;--hl-comment:#5d6878;--hl-builtin:#0063ab;--hl-def:#b0352b;--marker:rgba(255,184,74,0.24);--marker-strong:#b36b00;--signal-soft:rgba(0,150,105,0.09);--signal-line:rgba(0,130,95,0.35);--redpen-soft:rgba(184,38,38,0.07);color-scheme:light}.acc-signal{--acc:var(--signal);--acc-text:var(--t-signal)}.acc-azure{--acc:var(--azure);--acc-text:var(--t-azure)}.acc-violet{--acc:var(--violet);--acc-text:var(--t-violet)}.acc-coral{--acc:var(--coral);--acc-text:var(--t-coral)}.acc-amber{--acc:var(--amber);--acc-text:var(--t-amber)}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh;background:var(--canvas);color:var(--text-1);font:400 15px/1.5 var(--font-ui);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body::before,body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:0}body::before{background:radial-gradient(60vw 60vw at 92% -12%,rgba(156,122,255,0.16),rgba(156,122,255,0.05) 40%,transparent 70%),radial-gradient(52vw 52vw at -8% 108%,rgba(79,194,255,0.13),rgba(79,194,255,0.04) 40%,transparent 70%)}body::after{background-image:linear-gradient(var(--grid-major) 0.75px,transparent 0.75px),linear-gradient(90deg,var(--grid-major) 0.75px,transparent 0.75px),linear-gradient(var(--grid-line) 0.5px,transparent 0.5px),linear-gradient(90deg,var(--grid-line) 0.5px,transparent 0.5px);background-size:128px 128px,128px 128px,32px 32px,32px 32px;-webkit-mask-image:linear-gradient(180deg,transparent,rgba(0,0,0,0.9) 35%,rgba(0,0,0,0.9) 65%,transparent);mask-image:linear-gradient(180deg,transparent,rgba(0,0,0,0.9) 35%,rgba(0,0,0,0.9) 65%,transparent)}:root[data-theme="light"] body::before{background:radial-gradient(60vw 60vw at 92% -12%,rgba(156,122,255,0.12),transparent 65%),radial-gradient(52vw 52vw at -8% 108%,rgba(79,194,255,0.12),transparent 65%)}h1,h2,h3,h4{margin:0;font-weight:700;text-wrap:balance}p{margin:0;text-wrap:pretty}a{color:inherit}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--t-azure);outline-offset:2px;border-radius:6px}.mono{font-family:var(--font-mono)}.muted{color:var(--text-3)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}[hidden]{display:none !important}.eyebrow{font:700 12px/1.3 var(--font-mono);letter-spacing:0.14em;text-transform:uppercase;color:var(--acc-text,var(--t-signal));display:inline-flex;align-items:center;gap:8px}.eyebrow.dot::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.eyebrow.quiet{color:var(--text-3)}.glass{background:linear-gradient(var(--glass),var(--glass)) padding-box,linear-gradient(135deg,var(--stroke-hi),var(--stroke)) border-box;border:1px solid transparent;border-radius:var(--r-lg);-webkit-backdrop-filter:blur(18px) saturate(1.3);backdrop-filter:blur(18px) saturate(1.3)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 18px;border:1px solid var(--stroke-strong);border-radius:var(--r-pill);background:var(--subtle-fill);color:var(--text-1);font-weight:600;font-size:14.5px;white-space:nowrap;text-decoration:none;transition:background-color 140ms var(--ease-out),border-color 140ms var(--ease-out),transform 100ms var(--ease-out),box-shadow 160ms var(--ease-out)}.btn:hover{background:rgba(255,255,255,0.09);border-color:var(--stroke-hi)}.btn:active{transform:scale(0.97)}.btn:disabled{opacity:0.45;cursor:default;transform:none}.btn.primary{background:var(--grad-signal);border-color:transparent;color:var(--on-signal);box-shadow:0 0 0 1px rgba(97,250,196,0.25),0 6px 22px rgba(97,250,196,0.18)}.btn.primary:hover{filter:brightness(1.06);box-shadow:0 0 0 1px rgba(97,250,196,0.35),0 8px 28px rgba(97,250,196,0.26)}.btn.quiet{border-color:transparent;background:transparent;color:var(--text-2)}.btn.quiet:hover{background:var(--subtle-fill);color:var(--text-1)}.btn.small{height:32px;padding:0 13px;font-size:13px}.btn.large{height:48px;padding:0 24px;font-size:16px}.btn kbd{font-family:var(--font-mono);font-size:11px;opacity:0.7}.linkish{background:none;border:0;padding:0;color:var(--t-signal);font-weight:600;text-decoration:none}.linkish:hover{text-decoration:underline;text-underline-offset:3px}.chip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border-radius:var(--r-pill);background:var(--subtle-fill);border:1px solid var(--stroke);color:var(--text-2);font-size:13px;font-weight:600;white-space:nowrap}.badge{min-width:20px;height:20px;padding:0 6px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:var(--grad-signal);color:var(--on-signal);font-size:11.5px;font-weight:700;font-variant-numeric:tabular-nums}.icon-btn{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--stroke);background:var(--subtle-fill);border-radius:50%;color:var(--text-2)}.icon-btn:hover{color:var(--text-1);border-color:var(--stroke-strong)}.icon-btn svg{width:18px;height:18px}.app{position:relative;z-index:1;display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;z-index:20;display:flex;flex-direction:column;gap:22px;padding:22px 14px 16px;background:color-mix(in srgb,var(--canvas-raised) 82%,transparent);border-right:1px solid var(--divider);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.brand{display:flex;align-items:center;gap:12px;padding:0 8px;text-decoration:none}.brand .tile{width:40px;height:40px;border-radius:12px;flex:none;display:grid;place-items:center;color:var(--text-1)}.brand .tile svg{width:36px;height:36px}.brand .name{font:700 14.5px/1.1 var(--font-mono);letter-spacing:0.06em;color:var(--text-1)}.brand .tag{font:600 9.5px/1.4 var(--font-mono);letter-spacing:0.16em;color:var(--text-3);margin-top:3px}.nav{display:grid;gap:4px}.nav a{display:flex;align-items:center;gap:12px;height:46px;padding:0 14px;border-radius:12px;text-decoration:none;color:var(--text-1);font-weight:600;font-size:16px;transition:background-color 140ms var(--ease-out)}.nav a svg{width:20px;height:20px;flex:none}.nav a:hover{background:var(--subtle-fill)}.nav a[aria-current="page"]{background:var(--grad-active);color:#fff;box-shadow:0 6px 20px rgba(240,116,44,0.28)}.nav a .badge{margin-left:auto}.nav a[aria-current="page"] .badge{background:rgba(255,255,255,0.92);color:#a2430d}.sidebar .spacer{flex:1}.meter{height:6px;border-radius:3px;background:var(--subtle-fill);overflow:hidden}.meter span{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,var(--signal),#4fe0d8);box-shadow:0 0 10px rgba(97,250,196,0.45)}.content{min-width:0;position:relative}.page{max-width:1180px;margin:0 auto;padding:44px 40px 96px}.loading{padding:80px 24px;text-align:center;color:var(--text-3)}.loss-chart{display:block;width:100%;height:130px}.loss-chart .grid{stroke:var(--grid-major)}.loss-chart .curve{fill:none;stroke-width:2.25;stroke-linejoin:round;stroke-linecap:round;filter:drop-shadow(0 0 6px rgba(97,250,196,0.45))}.loss-chart .dot{fill:var(--signal);filter:drop-shadow(0 0 6px rgba(97,250,196,0.8))}.loss-chart text{font:10px var(--font-mono);fill:var(--text-3)}.activity{display:grid;grid-template-columns:minmax(0,auto) minmax(220px,1fr);gap:28px;align-items:start}.activity-grid{display:grid;grid-template-rows:repeat(7,14px);grid-template-columns:28px;grid-auto-columns:14px;gap:4px;overflow-x:auto}.activity-grid .dl{font:600 9.5px var(--font-mono);color:var(--text-3);line-height:14px}.activity i{display:block;width:14px;height:14px;border-radius:4px;background:var(--subtle-fill);border:1px solid var(--divider)}.activity i.future{background:transparent;border-style:dashed;opacity:0.5}.activity i.today{outline:1.5px solid var(--t-amber);outline-offset:1px}.level{font:700 11px var(--font-mono);letter-spacing:0.12em;text-transform:uppercase;color:var(--text-2);display:inline-flex;align-items:center;gap:6px}.level::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--acc)}.queue{display:grid;gap:10px}.legend{display:flex;flex-wrap:wrap;gap:16px;font-size:13px;color:var(--text-2);padding-bottom:6px}.legend span{display:inline-flex;align-items:center;gap:7px}.legend i{width:12px;height:12px;border-radius:4px;display:inline-block}.phase-band{position:absolute;top:0;bottom:0;border-right:1px dashed var(--divider)}.phase-band header{position:sticky;top:0;padding:16px 18px 12px;z-index:2;background:linear-gradient(180deg,var(--canvas) 70%,transparent)}.phase-band header .n{font:700 11px var(--font-mono);letter-spacing:0.14em;text-transform:uppercase;color:var(--acc-text)}.phase-band header .t{font-weight:800;font-size:17px;letter-spacing:-0.2px;margin-top:2px}.phase-band header .c{font-size:12.5px;color:var(--text-3);font-variant-numeric:tabular-nums}.node{position:absolute;width:168px;min-height:44px;display:flex;align-items:center;gap:9px;padding:7px 11px;border-radius:12px;border:1px solid var(--stroke-strong);background:var(--glass-strong);font-size:12.5px;font-weight:600;line-height:1.3;text-align:left;color:var(--text-2);transition:border-color 140ms var(--ease-out),background-color 140ms var(--ease-out),box-shadow 140ms var(--ease-out)}.node:hover{border-color:var(--text-3);color:var(--text-1)}.node .dot{flex:none;width:10px;height:10px;border-radius:50%;border:1.5px solid var(--text-4)}.node.locked{color:var(--text-3);border-style:dashed;border-color:var(--stroke-strong);background:color-mix(in srgb,var(--glass) 70%,transparent)}.node.available{color:var(--text-1);border-color:rgba(97,250,196,0.45)}.node.available .dot{border-color:var(--signal)}.node.learning{color:var(--text-1);border-color:rgba(79,194,255,0.5)}.node.learning .dot{border-color:var(--azure);background:linear-gradient(90deg,var(--azure) 50%,transparent 50%)}.node.known{color:var(--text-1);background:color-mix(in srgb,var(--signal) 10%,var(--glass-strong));border-color:rgba(97,250,196,0.45)}.node.known .dot{background:var(--signal);border-color:var(--signal);box-shadow:0 0 8px rgba(97,250,196,0.7)}.node.tested .dot{background:repeating-linear-gradient(45deg,var(--signal) 0 2px,transparent 2px 4px)}.node.selected{box-shadow:0 0 0 2px var(--azure),0 0 22px rgba(79,194,255,0.3)}.node.next{box-shadow:0 0 0 2px var(--amber),0 0 22px rgba(255,184,74,0.28)}.drawer{width:380px;border-left:1px solid var(--divider);background:color-mix(in srgb,var(--canvas-raised) 90%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);overflow-y:auto;padding:24px;display:grid;gap:16px;align-content:start}.drawer h2{font-size:26px;line-height:1.15;letter-spacing:-0.35px}.drawer .summary{font-size:16px;color:var(--text-2);line-height:1.5}.drawer .rel h3{font:700 11px var(--font-mono);letter-spacing:0.14em;text-transform:uppercase;color:var(--text-3);margin-bottom:8px}.drawer .rel ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}.drawer .rel button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:1px solid transparent;background:transparent;padding:7px 10px;border-radius:10px;color:var(--text-2);font-weight:600}.drawer .rel button:hover{background:var(--subtle-fill);border-color:var(--stroke);color:var(--text-1)}.drawer .actions{display:flex;flex-wrap:wrap;gap:8px}.narrow{max-width:760px;margin:0 auto;padding:56px 32px 96px}.narrow>h1{margin-top:10px;font-size:40px;line-height:1.1;letter-spacing:-0.8px}.lede{margin-top:14px;font-size:18px;line-height:1.55;color:var(--text-2)}.ratings{margin-top:32px;display:grid;gap:10px}.seg{display:inline-flex;gap:4px;padding:4px;border-radius:var(--r-pill);background:var(--rail-fill);border:1px solid var(--stroke)}.seg button{border:0;background:transparent;padding:0 12px;height:32px;border-radius:var(--r-pill);font-size:13px;font-weight:600;color:var(--text-2)}.seg button:hover{color:var(--text-1);background:var(--subtle-fill)}.seg button[aria-pressed="true"]{background:var(--grad-signal);color:var(--on-signal)}.question{display:grid;gap:18px}.question .qmeta{display:flex;justify-content:space-between;color:var(--text-3);font:600 12px var(--font-mono);letter-spacing:0.08em;text-transform:uppercase}.question .qtext{font-size:22px;font-weight:700;line-height:1.35;letter-spacing:-0.2px}.question .qtext code,.option code{font-family:var(--font-mono);font-size:0.86em;background:var(--code-bg);padding:0.1em 0.35em;border-radius:6px}.options{display:grid;gap:10px}.option{display:grid;grid-template-columns:30px 1fr;gap:12px;align-items:start;text-align:left;padding:14px 16px;border-radius:var(--r-md);border:1px solid var(--stroke-strong);background:var(--glass);font-size:15.5px;line-height:1.45;transition:border-color 140ms var(--ease-out),background-color 140ms var(--ease-out)}.option:hover:not(:disabled){border-color:var(--t-azure)}.option .k{font:700 12px var(--font-mono);color:var(--text-2);width:26px;height:26px;border:1px solid var(--stroke-strong);border-radius:8px;display:inline-flex;align-items:center;justify-content:center}.option.right{border-color:var(--signal);background:var(--signal-soft)}.option.right .k{background:var(--signal);color:var(--on-signal);border-color:var(--signal)}.option.wrong{border-color:var(--coral);background:var(--redpen-soft)}.option.wrong .k{background:var(--coral);color:#210403;border-color:var(--coral)}.option:disabled{cursor:default}.lesson-shell{display:grid;grid-template-columns:minmax(0,1fr) 400px;min-height:100vh}.lesson-shell.tutor-closed{grid-template-columns:minmax(0,1fr) 0}.stages{margin-top:26px;display:inline-flex;gap:4px;padding:4px;border-radius:var(--r-pill);background:var(--rail-fill);border:1px solid var(--stroke)}.lesson-notes{max-width:800px;margin:0 auto;padding:0 36px 22px}.notes{border-radius:var(--r-md);padding:0}.notes summary{cursor:pointer;padding:14px 18px;display:flex;justify-content:space-between;align-items:center;gap:12px;font-weight:700;list-style:none}.notes summary::-webkit-details-marker{display:none}.notes summary::before{content:"＋";color:var(--text-3);font-weight:600;margin-right:8px}.notes[open] summary::before{content:"－"}.notes summary>span:first-child{margin-right:auto}.notes-status{font:600 11.5px var(--font-mono);color:var(--text-3)}.notes-input{display:block;width:calc(100% - 36px);margin:0 18px;min-height:110px;resize:vertical;padding:12px 14px;border-radius:12px;border:1px solid var(--stroke);background:var(--code-bg);color:var(--text-1);font-family:inherit;font-size:15px;line-height:1.55}.notes-input:focus{outline:none;border-color:var(--t-azure)}.notes-hint{margin:8px 18px 14px;font-size:12.5px;color:var(--text-3)}.why{padding:20px 22px;margin-bottom:26px;border-radius:var(--r-md);position:relative;overflow:hidden}.why::before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(97,250,196,0.09),transparent 60%);pointer-events:none}.why>*{position:relative}.why .eyebrow{margin-bottom:8px}.why .prose p{font-size:16.5px;color:var(--text-1)}.prose{font-size:17px;line-height:1.68;color:var(--text-1)}.prose>* + *{margin-top:1em}.prose h2{font-size:24px;line-height:1.25;letter-spacing:-0.35px;margin-top:1.9em}.prose h3{font-size:18px;margin-top:1.5em}.prose h2 + *,.prose h3 + *{margin-top:0.6em}.prose p,.prose li{color:color-mix(in srgb,var(--text-1) 88%,var(--text-2))}.prose strong{color:var(--text-1);font-weight:700}.prose ul,.prose ol{padding-left:1.3em}.prose li + li{margin-top:0.4em}.prose li::marker{color:var(--t-signal)}.prose code{font-family:var(--font-mono);font-size:0.84em;background:var(--code-bg);border:1px solid var(--divider);padding:0.1em 0.38em;border-radius:6px}.prose a{color:var(--t-azure);text-underline-offset:3px}.ih-legacy:not(pre)>code,.prose:not(pre)>code{overflow-wrap:anywhere}.prose .table-scroll{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}.prose .table-scroll:focus-visible{outline:2px solid var(--t-azure);outline-offset:2px;border-radius:12px}.prose table{border-collapse:collapse;width:100%;font-size:14.5px;border-radius:12px;overflow:hidden}.prose th,.prose td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--divider);vertical-align:top}.prose th{font:700 11.5px var(--font-mono);letter-spacing:0.1em;text-transform:uppercase;color:var(--text-3);border-bottom-color:var(--stroke-strong)}.prose blockquote{--tint:var(--azure);--tint-text:var(--t-azure);margin:1.3em 0;padding:14px 18px;border-radius:14px;background:color-mix(in srgb,var(--tint) 6%,var(--glass));border:1px solid color-mix(in srgb,var(--tint) 28%,transparent);font-size:16px}.prose blockquote.callout-tip,.prose blockquote.callout-note{--tint:var(--signal);--tint-text:var(--t-signal)}.prose blockquote.callout-marketers{--tint:var(--amber);--tint-text:var(--t-amber)}.prose blockquote.callout-watch{--tint:var(--coral);--tint-text:var(--t-coral)}.prose blockquote.callout-plain{--tint:var(--azure);--tint-text:var(--t-azure)}.prose blockquote strong:first-child{color:color-mix(in srgb,var(--tint-text) 70%,var(--text-1))}.prose blockquote>* + *{margin-top:0.6em}.prose pre{margin:1.1em 0}.section{margin-top:34px}.section:first-child{margin-top:0}.code-wrap{position:relative}.code-wrap .copy-btn{position:absolute;top:8px;right:8px;padding:4px 10px;border-radius:8px;border:1px solid var(--stroke);background:var(--surface-elevated);color:var(--text-2);font:600 11.5px var(--font-mono);opacity:0;transition:opacity 120ms var(--ease-out)}.code-wrap:hover .copy-btn,.code-wrap .copy-btn:focus-visible,.code-wrap .copy-btn.done{opacity:1}@media (hover:none){.code-wrap .copy-btn{opacity:1}}pre.code{margin:0;padding:14px 18px;overflow-x:auto;background:var(--code-bg);color:var(--code-ink);border-radius:14px;border:1px solid var(--stroke);font:500 13.5px/1.65 var(--font-mono);tab-size:4}.tok-k{color:var(--hl-keyword)}.tok-s{color:var(--hl-string)}.tok-n{color:var(--hl-number)}.tok-c{color:var(--hl-comment);font-style:italic}.tok-b{color:var(--hl-builtin)}.tok-d{color:var(--hl-def)}.cell{border-radius:var(--r-md);overflow:hidden;border:1px solid var(--stroke-strong);background:var(--surface)}.cell .cell-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px 8px 16px;border-bottom:1px solid var(--divider);background:var(--glass)}.cell .cell-bar .lbl{font:700 11px var(--font-mono);letter-spacing:0.12em;text-transform:uppercase;color:var(--text-3)}.cell .cell-bar .btns{display:flex;gap:6px}.cell .output{border-top:1px solid var(--divider);background:var(--rail-fill)}.editor{position:relative;font:500 13.5px/1.65 var(--font-mono);tab-size:4;background:var(--code-bg)}.editor .gutter{position:absolute;left:0;top:0;bottom:0;width:44px;padding:14px 10px 14px 0;text-align:right;color:var(--text-3);font-variant-numeric:tabular-nums;user-select:none;border-right:1px solid var(--divider);overflow:hidden}.editor .gutter div.err{color:var(--t-coral);font-weight:700}.editor .scroller{position:relative;margin-left:44px;overflow-x:auto}.editor pre,.editor textarea{margin:0;padding:14px 16px;border:0;min-height:100%;font:inherit;white-space:pre;word-wrap:normal;overflow-wrap:normal;letter-spacing:normal}.editor pre{pointer-events:none;color:var(--code-ink)}.editor textarea{position:absolute;inset:0;width:100%;height:100%;resize:none;overflow:hidden;background:transparent;color:transparent;caret-color:var(--signal);outline:none}.editor textarea::selection{background:rgba(79,194,255,0.28);color:transparent}.editor:focus-within{box-shadow:inset 0 0 0 1px rgba(79,194,255,0.45)}.out{font:500 13px/1.6 var(--font-mono);padding:12px 16px;white-space:pre-wrap;word-break:break-word;max-height:340px;overflow:auto;color:var(--text-1)}.out:empty{display:none}.out .err{color:var(--t-coral)}.out .note{color:var(--text-3);font-family:var(--font-ui);font-size:12.5px}.out:has(.plot){max-height:none}.out .plot{display:block;max-width:100%;height:auto;margin:10px 0 4px;border-radius:var(--r-sm);border:1px solid var(--divider)}.math:not([data-done]),.math-display:not([data-done]){font-family:var(--font-mono);font-size:0.92em;color:var(--text-2)}.math-display{margin:14px 0;padding:10px 4px;overflow-x:auto;overflow-y:hidden;text-align:center}.katex{font-size:1.06em;color:inherit}.katex-display{margin:0}.out-label{font:700 10.5px var(--font-mono);letter-spacing:0.14em;text-transform:uppercase;color:var(--text-3);padding:10px 16px 0}.example{padding:22px;display:grid;grid-template-columns:minmax(0,1fr);gap:14px;border-radius:var(--r-lg)}.example>header .eyebrow{margin-bottom:6px}.example>header h3{font-size:19px;letter-spacing:-0.2px}.example .after{border-top:1px dashed var(--stroke-strong);padding-top:14px}.check{padding:22px;display:grid;gap:14px;border-radius:var(--r-lg)}.check .q{font-weight:700;font-size:16.5px;overflow-wrap:anywhere}.check .explain,.quiz-feedback{font-size:15px;color:var(--text-2);padding:12px 14px;border-radius:12px;background:var(--rail-fill);border:1px solid var(--stroke)}.widget-frame{border-radius:var(--r-lg);overflow:hidden}.widget-frame>header{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--divider)}.widget-frame>header .t{font-weight:700;font-size:14.5px}.widget-frame>header .k{font:700 10.5px var(--font-mono);letter-spacing:0.14em;text-transform:uppercase;color:var(--t-violet)}.caption{margin-top:10px;font-size:14px;color:var(--text-3);line-height:1.5}.exercise{display:grid;gap:18px}.exercise .task{padding:18px 20px;border-radius:var(--r-md)}.exercise .toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.exercise .toolbar .spacer{flex:1}.lesson-content:has(>.exercise){container-type:inline-size}@container (min-width:1150px){.exercise:has(>.cell){grid-template-columns:minmax(300px,1fr) minmax(0,2fr);column-gap:28px;align-items:start}.exercise:has(>.cell)>*{grid-column:2}.exercise:has(>.cell)>.eyebrow{grid-column:1 / -1}.exercise:has(>.cell)>.task{grid-column:1;grid-row:2 / span 7;position:sticky;top:24px;max-height:calc(100dvh - 48px);overflow-y:auto}}.checks{list-style:none;margin:0;padding:0;display:grid;gap:8px}.checks li{display:grid;grid-template-columns:22px 1fr;gap:10px;font-size:14.5px;line-height:1.45}.checks li .m{width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;margin-top:1px}.checks li.ok .m{background:var(--signal);color:var(--on-signal)}.checks li.no .m{background:var(--coral);color:#210403}.checks li code{font-family:var(--font-mono);font-size:12.5px;background:var(--code-bg);padding:0 5px;border-radius:5px}.hint{padding:14px 16px;border-radius:14px;border:1px dashed var(--stroke-strong);font-size:15px;background:var(--rail-fill)}.hint .n{font:700 10.5px var(--font-mono);letter-spacing:0.14em;text-transform:uppercase;color:var(--t-amber);margin-bottom:6px}.hint pre{margin-top:6px}.hint.mistake{border-style:solid}.hint.mistake code{overflow-wrap:anywhere}.banner{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:16px 18px;border-radius:var(--r-md);border:1px solid rgba(97,250,196,0.38);background:var(--signal-soft)}.banner .t{font-weight:800;color:var(--t-signal)}.banner.warn{border-color:rgba(255,115,107,0.4);background:var(--redpen-soft)}.banner.warn .t{color:var(--t-coral)}details.solution summary{cursor:pointer;color:var(--text-3);font-size:14px;font-weight:600}details.solution[open] summary{margin-bottom:10px}.quiz{display:grid;gap:22px}.quiz-progress{display:flex;gap:6px}.quiz-progress i{flex:1;height:6px;border-radius:3px;background:var(--subtle-fill)}.quiz-progress i.right{background:var(--signal);box-shadow:0 0 8px rgba(97,250,196,0.5)}.quiz-progress i.partial{background:var(--amber)}.quiz-progress i.wrong{background:var(--coral)}.quiz-progress i.current{background:var(--text-3)}.quiz textarea.answer,.quiz input.answer{width:100%;border:1px solid var(--stroke-strong);border-radius:14px;background:var(--input-fill);padding:12px 14px;font:15px/1.5 var(--font-ui);resize:vertical}.quiz textarea.answer.code,.quiz input.answer.code{font-family:var(--font-mono);font-size:13.5px}.quiz textarea.answer:focus,.quiz input.answer:focus{outline:none;border-color:var(--t-azure)}.score-card{display:grid;gap:14px;padding:28px;border-radius:var(--r-lg)}.score-card .big{font:800 52px var(--font-mono);letter-spacing:-2px;font-variant-numeric:tabular-nums}.score-card.pass .big{background:var(--grad-signal);-webkit-background-clip:text;background-clip:text;color:transparent}.score-card p{color:var(--text-2);font-size:16px}.verdict{font-weight:800}.verdict.correct{color:var(--t-signal)}.verdict.partial{color:var(--t-amber)}.verdict.incorrect{color:var(--t-coral)}.panel{padding:22px;border-radius:var(--r-lg)}.panel h2{font-size:15px;font-weight:700;color:var(--text-1);display:flex;justify-content:space-between;align-items:baseline;gap:8px}.panel h2 .muted{font-weight:500;font-size:13px}.tutor{position:sticky;top:0;height:100vh;border-left:1px solid var(--divider);background:color-mix(in srgb,var(--canvas-raised) 88%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);display:grid;grid-template-rows:auto 1fr auto;min-width:0;overflow:hidden}.tutor-closed .tutor{display:none}.tutor>header{display:flex;align-items:center;gap:12px;padding:18px 18px 14px;border-bottom:1px solid var(--divider)}.tutor .avatar-tile{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;flex:none;background:radial-gradient(circle at 30% 25%,rgba(156,122,255,0.6),rgba(79,194,255,0.25) 60%,transparent);border:1px solid rgba(156,122,255,0.45);color:#fff}.tutor .avatar-tile svg{width:22px;height:22px}.tutor>header .t{font:700 12px var(--font-mono);letter-spacing:0.14em;text-transform:uppercase;color:var(--t-violet)}.tutor>header .s{font-size:14px;color:var(--text-2);font-weight:600}.tutor>header .icon-btn{margin-left:auto}.tutor .log{overflow-y:auto;padding:18px;display:grid;gap:14px;align-content:start}.tutor .msg{font-size:14.5px;line-height:1.6}.tutor .msg.user{justify-self:end;max-width:88%;background:rgba(79,194,255,0.12);border:1px solid rgba(79,194,255,0.28);padding:9px 14px;border-radius:16px 16px 4px 16px;white-space:pre-wrap}.tutor .msg.assistant{padding:14px 16px;border-radius:16px;background:var(--glass);border:1px solid var(--stroke)}.tutor .msg.assistant>* + *{margin-top:0.6em}.tutor .msg.assistant pre.code{font-size:12.5px;padding:10px 12px}.tutor .msg.assistant code{font-family:var(--font-mono);font-size:12.5px;background:var(--code-bg);padding:0 5px;border-radius:5px}.tutor .msg.assistant ul,.tutor .msg.assistant ol{padding-left:1.2em;margin:0}.tutor .msg.thinking{color:var(--text-3);font-size:13.5px}.tutor .empty{color:var(--text-2);font-size:14.5px;line-height:1.55;padding:16px;border-radius:16px;background:var(--glass);border:1px solid var(--stroke)}.tutor .suggest{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.tutor .suggest button{border:1px solid rgba(156,122,255,0.4);background:transparent;border-radius:var(--r-pill);padding:6px 12px;font-size:13px;font-weight:600;color:var(--text-1)}.tutor .suggest button:hover{background:rgba(156,122,255,0.12)}.tutor form{border-top:1px solid var(--divider);padding:12px;display:grid;gap:8px}.tutor .ask{display:flex;gap:10px;align-items:flex-end}.tutor textarea{flex:1;min-height:52px;max-height:180px;resize:none;border:1px solid var(--stroke-strong);border-radius:18px;background:var(--input-fill);padding:13px 16px;font-size:14.5px;line-height:1.45}.tutor textarea:focus{outline:none;border-color:var(--t-azure)}.tutor .send{width:46px;height:46px;border-radius:50%;border:0;flex:none;display:grid;place-items:center;background:var(--grad-signal);color:var(--on-signal);box-shadow:0 4px 16px rgba(97,250,196,0.25)}.tutor .send:disabled{opacity:0.4}.tutor .send svg{width:20px;height:20px}.tutor form .row{font-size:12px;color:var(--text-3);padding-left:4px}dialog{border:1px solid var(--stroke-strong);border-radius:var(--r-lg);background:var(--surface-elevated);color:var(--text-1);padding:0;width:min(560px,calc(100vw - 32px));box-shadow:0 30px 80px var(--shadow)}dialog::backdrop{background:rgba(2,3,8,0.6);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.search-dialog{width:min(620px,calc(100vw - 24px));margin-top:12vh}.search-bar{display:flex;align-items:center;gap:10px;padding:14px 14px 12px 18px;border-bottom:1px solid var(--divider)}.search-icon{display:inline-flex;color:var(--text-3)}.search-icon svg{width:20px;height:20px}.search-input{flex:1;min-width:0;background:transparent;border:0;outline:none;color:var(--text-1);font-family:inherit;font-size:17px;font-weight:500;padding:6px 0}.search-input::-webkit-search-cancel-button{display:none}.search-hint{padding:12px 20px 4px}.search-results{list-style:none;margin:0;padding:4px 8px 10px;max-height:min(56vh,520px);overflow-y:auto}.search-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 12px;border-radius:12px;cursor:pointer}.search-row[aria-selected="true"]{background:var(--subtle-fill)}.search-row .t{font-weight:650}.search-row .s{font-size:13px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-row .m{font:600 10.5px var(--font-mono);letter-spacing:0.08em;text-transform:uppercase;color:var(--text-3);white-space:nowrap}.search-row .note-tag{font:700 10px var(--font-mono);letter-spacing:0.08em;text-transform:uppercase;color:var(--t-amber);margin-right:6px}.sdot{width:9px;height:9px;border-radius:50%;border:1.5px dashed var(--ink-4)}.sdot.mastered,.sdot.tested{background:var(--signal);border:0}.sdot.learning,.sdot.available{border:1.5px solid var(--signal)}dialog.shortcuts dl{display:grid;grid-template-columns:150px 1fr;gap:8px 18px;margin:8px 0 0;align-items:center}dialog.shortcuts dt{white-space:nowrap;color:var(--text-3);font-size:12.5px;display:flex;align-items:center;gap:4px;flex-wrap:wrap}dialog.shortcuts dt .sep{margin:0 2px}dialog.shortcuts dd{margin:0;font-size:14.5px}kbd{display:inline-block;min-width:22px;padding:2px 7px;border-radius:7px;border:1px solid var(--stroke-strong);border-bottom-width:2px;background:var(--subtle-fill);color:var(--text-1);font:600 12px var(--font-mono);text-align:center}.setting{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;padding-bottom:16px;border-bottom:1px solid var(--divider)}.setting:last-child{border-bottom:0;padding-bottom:0}.setting .l{font-weight:700}.setting .h{font-size:13.5px;color:var(--text-3)}.switch{appearance:none;width:44px;height:26px;border-radius:13px;background:var(--stroke-strong);position:relative;cursor:pointer;transition:background 150ms var(--ease-out);margin:0}.switch::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform 150ms var(--ease-out)}.switch:checked{background:var(--grad-signal)}.switch:checked::after{transform:translateX(18px)}.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:50;background:var(--surface-elevated);border:1px solid var(--stroke-strong);color:var(--text-1);padding:12px 18px;border-radius:var(--r-pill);font-size:14px;font-weight:600;box-shadow:0 12px 30px var(--shadow);animation:toast-in 180ms var(--ease-out)}@keyframes toast-in{from{opacity:0;transform:translate(-50%,6px)}}.consent{position:fixed;right:16px;bottom:16px;z-index:60;max-width:380px;padding:16px;display:grid;gap:12px;font-size:14px;color:var(--text-2);animation:toast-in 180ms var(--ease-out)}.consent p{margin:0}.consent-btns{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}@media (max-width:600px){.consent{left:8px;right:8px;bottom:8px;max-width:none;padding:10px 12px;gap:8px;font-size:13px;line-height:1.35}}.widget-body{min-width:0}.stepper{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}.stepper .src{background:var(--code-bg);border-right:1px solid var(--divider);padding:12px 0;font:500 13px/1.75 var(--font-mono);overflow-x:auto}.stepper .src .ln{display:grid;grid-template-columns:40px 1fr;padding-right:12px;white-space:pre;position:relative}.stepper .src .ln .no{color:var(--text-4);text-align:right;padding-right:12px;user-select:none;font-variant-numeric:tabular-nums}.stepper .src .ln.next{background:var(--marker)}.stepper .src .ln.next .no{color:var(--t-amber)}.stepper .src .ln.prev{background:rgba(97,250,196,0.06)}.stepper .state{padding:14px 16px;display:grid;gap:14px;align-content:start;font-size:13.5px;min-height:220px}.stepper .state h3{font:700 10.5px var(--font-mono);letter-spacing:0.14em;text-transform:uppercase;color:var(--text-3);margin-bottom:8px}.vars{display:grid;gap:5px}.var{display:grid;grid-template-columns:minmax(74px,auto) 1fr;gap:10px;align-items:baseline;padding:6px 10px;border-radius:10px;background:var(--rail-fill);border:1px solid var(--stroke);font:500 12.5px var(--font-mono)}.var .n{color:var(--text-1);font-weight:700}.var .v{color:var(--text-2);word-break:break-all}.var .ty{color:var(--text-3);font-size:11px;margin-left:6px}.var.changed{border-color:rgba(97,250,196,0.45);background:var(--signal-soft)}.frame{padding:8px 10px;border-radius:12px;border:1px solid color-mix(in srgb,var(--violet) 30%,transparent);background:color-mix(in srgb,var(--violet) 5%,transparent);display:grid;gap:5px}.frame .fn{font:600 12px var(--font-mono);color:var(--t-violet)}.stepper .printed{background:var(--code-bg);border-radius:10px;padding:8px 10px;font:500 12.5px/1.5 var(--font-mono);white-space:pre-wrap;min-height:32px;border:1px solid var(--divider)}.stepper footer{grid-column:1 / -1;display:flex;align-items:center;gap:10px;padding:12px 16px;border-top:1px solid var(--divider)}.stepper footer input[type="range"]{flex:1;height:24px;accent-color:var(--signal)}.stepper footer .pos{font:600 12px var(--font-mono);color:var(--text-3);min-width:76px;text-align:right;font-variant-numeric:tabular-nums}.stepper .note{font-size:13px;color:var(--text-2);padding:8px 10px;border-radius:10px;background:var(--rail-fill);border:1px solid var(--stroke)}.indexviz{padding:20px 18px;display:grid;gap:16px}.indexviz .boxes{display:flex;gap:5px;overflow-x:auto;padding-bottom:4px}.indexviz .box{flex:none;min-width:42px;text-align:center;display:grid;gap:4px}.indexviz .box .pos,.indexviz .box .neg{font:600 11px var(--font-mono);color:var(--text-3)}.indexviz .box .cell-v{font:500 14px var(--font-mono);padding:9px 7px;border:1px solid var(--stroke-strong);border-radius:10px;background:var(--rail-fill);white-space:pre;color:var(--text-1)}.indexviz .box.in .cell-v{background:var(--marker);border-color:var(--amber);box-shadow:0 0 12px rgba(255,184,74,0.25)}.indexviz .controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.indexviz label{display:grid;gap:5px;font:700 10.5px var(--font-mono);letter-spacing:0.12em;text-transform:uppercase;color:var(--text-3)}.indexviz input[type="number"]{height:36px;border:1px solid var(--stroke-strong);border-radius:10px;background:var(--input-fill);padding:0 10px;font-family:var(--font-mono)}.indexviz .expr,.indexviz .codeline{font:500 14px var(--font-mono);padding:11px 14px;background:var(--code-bg);border-radius:10px;border:1px solid var(--divider)}.terminal{background:#04060b;color:#d8e1ee;font:500 13px/1.6 var(--font-mono)}.terminal .screen{height:320px;overflow-y:auto;padding:14px 16px;white-space:pre-wrap;word-break:break-word}.terminal .screen .cmd{color:#ffffff}.terminal .screen .prompt{color:#61fac4}.terminal .screen .err{color:#ff8c84}.terminal .screen .dim{color:#8b97ad}.terminal .input-line{display:flex;gap:8px;padding:0 16px 14px;align-items:baseline}.terminal .input-line input{flex:1;background:transparent;border:0;outline:none;color:#fff;font:inherit;caret-color:#61fac4}.terminal:focus-within{box-shadow:inset 0 0 0 2px var(--t-azure)}.terminal-tasks{padding:14px 16px;display:grid;gap:7px;border-top:1px solid var(--divider)}.terminal-tasks .task{display:grid;grid-template-columns:22px 1fr;gap:8px;font-size:14px;color:var(--text-3)}.terminal-tasks .task.current{color:var(--text-1);font-weight:700}.terminal-tasks .task.done{color:var(--text-2)}.terminal-tasks .task .m{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--text-4);margin-top:1px;display:inline-flex;align-items:center;justify-content:center;font-size:10px}.terminal-tasks .task.done .m{background:var(--signal);border-color:var(--signal);color:var(--on-signal)}.terminal-tasks .task.current .m{border-color:var(--signal);box-shadow:0 0 8px rgba(97,250,196,0.5)}.terminal-tasks .hintline{font-size:13px;color:var(--text-3);padding-left:30px}.httpw .req{padding:16px;display:grid;gap:12px;border-bottom:1px solid var(--divider)}.httpw .presets{display:flex;flex-wrap:wrap;gap:8px}.httpw .presets button{border:1px solid var(--stroke-strong);background:var(--subtle-fill);border-radius:var(--r-pill);padding:5px 12px;font-size:13px;font-weight:600;color:var(--text-2)}.httpw .presets button[aria-pressed="true"]{background:var(--grad-signal);color:var(--on-signal);border-color:transparent}.httpw .line{display:grid;grid-template-columns:104px 1fr auto;gap:8px}.httpw select,.httpw input,.httpw textarea{border:1px solid var(--stroke-strong);border-radius:10px;background:var(--input-fill);padding:0 10px;height:40px;font:500 13px var(--font-mono);min-width:0}.httpw textarea{height:90px;padding:10px;resize:vertical}.httpw .sub{font:700 10.5px var(--font-mono);letter-spacing:0.12em;text-transform:uppercase;color:var(--text-3)}.httpw .res{display:grid;grid-template-columns:1fr 1fr;min-height:170px}.httpw .res>div{padding:14px 16px;min-width:0}.httpw .res>div + div{border-left:1px solid var(--divider)}.httpw .raw{font:500 12px/1.6 var(--font-mono);white-space:pre-wrap;word-break:break-word;color:var(--text-2);max-height:300px;overflow:auto;margin:0}.httpw .status{display:flex;align-items:baseline;gap:10px;margin-bottom:8px}.httpw .status .code{font:800 24px var(--font-mono)}.httpw .status.ok .code{color:var(--t-signal)}.httpw .status.bad .code{color:var(--t-coral)}.httpw .status .meaning{font-size:13.5px;color:var(--text-2);font-weight:600}.jsonw{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,0.9fr)}.jsonw .tree{padding:14px 8px 14px 14px;font:500 13px/1.85 var(--font-mono);max-height:380px;overflow:auto;border-right:1px solid var(--divider)}.jsonw .row{display:flex;gap:6px;align-items:baseline;cursor:pointer;border-radius:6px;padding:0 6px;white-space:nowrap}.jsonw .row:hover{background:var(--subtle-fill)}.jsonw .row.sel{background:var(--marker)}.jsonw .row.sel .sum{color:var(--text-2)}.jsonw .tw{width:12px;color:var(--text-3);flex:none}.jsonw .key{color:var(--hl-def)}.jsonw .str{color:var(--hl-string)}.jsonw .num{color:var(--hl-number)}.jsonw .lit{color:var(--hl-keyword)}.jsonw .sum{color:var(--text-3)}.jsonw .side{padding:16px;display:grid;gap:10px;align-content:start}.jsonw .side .expr{font:500 13px var(--font-mono);background:var(--code-bg);padding:11px 13px;border-radius:10px;word-break:break-all;border:1px solid var(--divider);color:var(--t-signal)}.jsonw .side .val{font:500 12.5px var(--font-mono);white-space:pre-wrap;color:var(--text-2);max-height:210px;overflow:auto}.arrayw{padding:18px;display:grid;gap:16px}.arrayw .toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.arrayw .eq{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.arrayw .op{font:700 20px var(--font-mono);color:var(--text-3)}.arrayw .grid{display:grid;gap:4px}.arrayw .grid .c{min-width:46px;height:36px;display:flex;align-items:center;justify-content:center;font:500 13px var(--font-mono);border:1px solid var(--stroke-strong);border-radius:8px;background:var(--rail-fill);font-variant-numeric:tabular-nums}.arrayw .grid .c.ghost{border-style:dashed;color:var(--text-4);background:transparent}.arrayw .grid .c.hot{background:var(--marker);border-color:var(--amber)}.arrayw .grid .c.res{background:var(--signal-soft);border-color:rgba(97,250,196,0.4)}.arrayw .shape{font:600 11px var(--font-mono);color:var(--text-3);margin-top:6px;text-align:center}.arrayw .codeline{font:500 13px var(--font-mono);background:var(--code-bg);padding:10px 14px;border-radius:10px;border:1px solid var(--divider);white-space:pre;overflow-x:auto}.tokensw{padding:16px;display:grid;gap:14px}.tokensw textarea{width:100%;min-height:80px;border:1px solid var(--stroke-strong);border-radius:12px;background:var(--input-fill);padding:10px 12px;font:15px/1.5 var(--font-ui);resize:vertical}.tokensw .chips{display:flex;flex-wrap:wrap;gap:3px;font:500 13px/2 var(--font-mono)}.tokensw .chip{all:unset;padding:0 3px;border-radius:5px;white-space:pre}.tokensw .chip:nth-child(4n+1){background:rgba(97,250,196,0.18)}.tokensw .chip:nth-child(4n+2){background:rgba(255,184,74,0.22)}.tokensw .chip:nth-child(4n+3){background:rgba(156,122,255,0.22)}.tokensw .chip:nth-child(4n+4){background:rgba(79,194,255,0.2)}.tokensw .stats{display:flex;gap:24px;flex-wrap:wrap;font-size:13px;color:var(--text-3)}.tokensw .stats b{font:800 20px var(--font-mono);color:var(--text-1);display:block;font-variant-numeric:tabular-nums}.msgw{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.msgw .build{padding:16px;display:grid;gap:12px;border-right:1px solid var(--divider);align-content:start}.msgw label{display:grid;gap:5px;font:700 10.5px var(--font-mono);letter-spacing:0.1em;text-transform:uppercase;color:var(--text-3)}.msgw textarea,.msgw input,.msgw select{border:1px solid var(--stroke-strong);border-radius:10px;background:var(--input-fill);padding:8px 10px;font:14px/1.45 var(--font-ui);resize:vertical;min-width:0;text-transform:none;letter-spacing:normal}.msgw input[type="number"]{font-family:var(--font-mono);height:36px;width:120px}.msgw .turn{display:grid;gap:4px}.msgw .turn .role{font:600 11px var(--font-mono);color:var(--t-violet)}.msgw .views{display:grid;grid-template-rows:auto 1fr;min-width:0}.msgw .tabs{display:flex;gap:4px;padding:10px 12px;border-bottom:1px solid var(--divider)}.msgw .tabs button{border:0;background:transparent;padding:6px 12px;font-size:13px;font-weight:700;color:var(--text-3);border-radius:var(--r-pill)}.msgw .tabs button[aria-selected="true"]{color:var(--text-1);background:var(--subtle-fill);box-shadow:0 0 0 1px var(--stroke-strong)}.msgw .view{padding:14px 16px;font:500 12px/1.6 var(--font-mono);white-space:pre-wrap;word-break:break-word;overflow:auto;max-height:400px}@media (max-width:1180px){.lesson-shell,.lesson-shell.tutor-closed{grid-template-columns:minmax(0,1fr)}.tutor{position:fixed;right:0;top:0;bottom:0;width:min(420px,100vw);z-index:30;height:auto;box-shadow:-20px 0 60px var(--shadow)}.tutor-closed .tutor{display:none}}@media (max-width:900px){:root{--topbar-h:60px}.app{grid-template-columns:minmax(0,1fr)}.sidebar{position:sticky;top:0;height:var(--topbar-h);flex-direction:row;align-items:center;gap:10px;padding:0 12px;border-right:0;border-bottom:1px solid var(--divider)}.sidebar .brand .meta,.sidebar .spacer,.sidebar .path-card,.sidebar-foot .ver{display:none}.brand{padding:0}.brand .tile{width:36px;height:36px}.nav{display:flex;gap:2px;flex:1}.nav a{height:38px;padding:0 10px;font-size:14px;gap:6px}.nav a svg{width:17px;height:17px}.tutor{top:var(--topbar-h)}}@media (max-width:680px){.nav a span.label{display:none}.page,.narrow,.review-wrap{padding-left:16px;padding-right:16px}.page{padding-top:28px}.lesson-head,.lesson-body,.lesson-pager,.lesson-notes{padding-left:16px;padding-right:16px}.stepper,.jsonw,.httpw .res,.msgw{grid-template-columns:minmax(0,1fr)}.stepper .src{border-right:0;border-bottom:1px solid var(--divider)}.jsonw .tree,.msgw .build{border-right:0;border-bottom:1px solid var(--divider)}.httpw .res>div + div{border-left:0;border-top:1px solid var(--divider)}.seg{width:100%}.seg button{flex:1;padding:0 4px;font-size:12px}.drawer{position:fixed;inset:auto 0 0 0;width:auto;max-height:72vh;border-left:0;border-top:1px solid var(--stroke-strong);z-index:25;border-radius:24px 24px 0 0}.search-dialog{margin-top:8px}.activity{grid-template-columns:minmax(0,1fr);gap:18px}.search-row .m{display:none}}@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:0ms !important;animation-duration:0ms !important}}.pipeline{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:16px;border-radius:var(--r-md);background:var(--rail-fill);border:1px solid var(--stroke)}.inspector{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}.inspector:empty{display:none}.probs{display:grid;gap:6px}.prob{display:grid;grid-template-columns:28px 1fr 58px;gap:10px;align-items:center;font-size:13px}.prob .c{text-align:center;font-weight:700;padding:2px 0;border-radius:6px;background:var(--subtle-fill)}.prob .bar{height:8px;border-radius:4px;background:var(--subtle-fill);overflow:hidden}.prob .bar span{display:block;height:100%;background:var(--violet);border-radius:4px}.prob.chosen .bar span{background:var(--grad-signal)}.prob.chosen .c{background:var(--signal);color:var(--on-signal)}.prob .p{color:var(--text-2);text-align:right;font-variant-numeric:tabular-nums}.timeline{list-style:none;margin:0;padding:0;display:grid;gap:4px}.timeline li{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:center;padding:7px 8px;border-radius:12px;color:var(--text-3)}.timeline li .dot{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font:700 11px var(--font-mono);border:1.5px solid var(--stroke-strong);color:var(--text-3)}.timeline li .l{font-weight:700}.timeline li .a{font-size:12.5px}.timeline li.done{color:var(--text-2)}.timeline li.done .dot{background:var(--signal);border-color:var(--signal);color:var(--on-signal)}.timeline li.now{color:var(--text-1);background:color-mix(in srgb,var(--acc) 10%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--acc) 40%,transparent)}.timeline li.now .dot{border-color:var(--acc);color:var(--acc-text);box-shadow:0 0 10px color-mix(in srgb,var(--acc) 50%,transparent)}.timeline li.open .dot{border-color:var(--acc);color:var(--acc-text)}.timeline .linkish{font-size:15px}.chip.toggle{cursor:pointer}.chip.toggle[aria-pressed="true"]{background:var(--grad-signal);color:var(--on-signal);border-color:transparent}.kv{display:flex;justify-content:space-between;gap:10px;font-size:14px;color:var(--text-3)}.kv strong{color:var(--text-1)}.c-signal{--c:var(--t-signal)}.c-azure{--c:var(--t-azure)}.c-violet{--c:var(--t-violet)}.c-amber{--c:var(--t-amber)}.c-coral{--c:var(--t-coral)}.mathw{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,300px);gap:18px;padding:18px;align-items:start}.mathw.wide{grid-template-columns:minmax(0,1.35fr) minmax(250px,300px)}.mathw.softmaxw{grid-template-columns:minmax(0,1fr)}.mstage{min-width:0}.plane{width:100%;height:auto;display:block;border-radius:var(--r-md);background:var(--rail-fill);border:1px solid var(--divider);user-select:none;-webkit-user-select:none}.plane .gl{stroke:var(--grid-major);stroke-width:1}.plane .axis{stroke:var(--stroke-strong);stroke-width:1.4}.plane .tick{fill:var(--text-3);font:500 13px var(--font-mono)}.plane .vec line{stroke:var(--c,var(--text-2));stroke-width:3;stroke-linecap:round}.plane .vec.thick line{stroke-width:6;opacity:0.45}.plane .vec.faint line{opacity:0.5;stroke-dasharray:5 4}.plane .vec .head{fill:var(--c,var(--text-2))}.plane .vlabel{fill:var(--c,var(--text-1));font:700 16px var(--font-mono);paint-order:stroke;stroke:var(--surface);stroke-width:4px}.plane .vec .vlabel{stroke-width:4px}.plane .handle{fill:var(--surface-elevated);stroke-width:2.5}.plane .handle.h-signal{stroke:var(--t-signal)}.plane .handle.h-azure{stroke:var(--t-azure)}.plane .handle.h-amber{stroke:var(--t-amber)}.plane .handle:hover{stroke-width:4}.plane .handle:focus-visible{stroke-width:4;outline:2px solid var(--t-azure);outline-offset:3px}.plane:focus-visible,.flow-seq .msg:focus-visible{outline:2px solid var(--t-azure);outline-offset:2px;border-radius:8px}.tree .row:focus-visible{outline:2px solid var(--t-azure);outline-offset:-2px;border-radius:4px}.plane .guide{stroke:var(--text-3);stroke-width:1.3;stroke-dasharray:4 4}.plane .arc{fill:none;stroke:var(--t-amber);stroke-width:2}.plane .tgrid{stroke:var(--t-azure);stroke-opacity:0.22;stroke-width:1}.plane .tgrid.axis{stroke-opacity:0.55;stroke-width:1.6}.plane .unitsq{fill:var(--t-amber);fill-opacity:0.16;stroke:var(--t-amber);stroke-opacity:0.6;stroke-width:1.5}.plane .eigline{stroke:var(--t-violet);stroke-width:2;stroke-dasharray:8 5;opacity:0.85}.plane .curve{fill:none;stroke:var(--c);stroke-width:2.6;stroke-linejoin:round}.plane .tangent{stroke:var(--t-violet);stroke-width:2}.plane .tangent.faint{opacity:0.35;stroke-dasharray:5 4}.plane .secant{stroke:var(--t-coral);stroke-width:2}.plane .dot{fill:var(--t-amber);fill-opacity:0.55}.plane .dot.now{fill:var(--t-amber);fill-opacity:1;stroke:var(--surface);stroke-width:2}.plane .trail{fill:none;stroke:var(--t-amber);stroke-width:1.6;stroke-opacity:0.7}.plane .contour{fill:none;stroke:var(--t-signal);stroke-opacity:0.35;stroke-width:1.2}.plane .legend{fill:var(--c);font:600 14px var(--font-ui)}.plane .band1{fill:var(--t-amber);fill-opacity:0.2}.plane .band2{fill:var(--t-amber);fill-opacity:0.09}.plane .bar{fill:var(--c);fill-opacity:0.35}.plane .area{fill:var(--c);fill-opacity:0.16;stroke:var(--c);stroke-width:2.2}.plane .mark{stroke:var(--c);stroke-width:2.5;stroke-dasharray:3 3}.mpanel{display:grid;gap:14px;min-width:0}.mcontrols{display:grid;gap:10px}.mrow{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.mrow>.sl,.mslider .sl{font:700 10.5px var(--font-mono);letter-spacing:0.1em;text-transform:uppercase;color:var(--text-3)}.mslider{display:grid;grid-template-columns:minmax(70px,auto) 1fr 64px;align-items:center;gap:10px}.mslider input[type="range"]{width:100%;height:24px;accent-color:var(--t-signal)}.mslider .sv{font:600 12.5px var(--font-mono);text-align:right;font-variant-numeric:tabular-nums;color:var(--text-1)}.readout{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0;padding:12px 14px;border-radius:var(--r-sm);background:var(--subtle-fill);border:1px solid var(--divider);font-size:12.5px}.readout dt{color:var(--text-3)}.readout dd{margin:0;font:600 12.5px var(--font-mono);color:var(--c,var(--text-1));font-variant-numeric:tabular-nums;word-break:break-word}.mathw .codeline{margin:0;font:500 12px/1.55 var(--font-mono);background:var(--code-bg);color:var(--code-ink);padding:10px 12px;border-radius:10px;border:1px solid var(--divider);white-space:pre;overflow-x:auto}.mhint{margin:0;font-size:12.5px;line-height:1.5;color:var(--text-3)}.mside{display:grid;gap:10px}.matrix-in{display:grid;grid-template-columns:repeat(2,64px);gap:6px;padding:6px 10px;border-left:2px solid var(--stroke-strong);border-right:2px solid var(--stroke-strong);border-radius:6px}.matrix-in input{width:64px;padding:6px 8px;font:600 13px var(--font-mono);text-align:center;background:var(--input-fill);color:var(--text-1);border:1px solid var(--stroke);border-radius:8px}.presets{display:flex;gap:6px;flex-wrap:wrap}.prows{display:grid;gap:8px}.prow{display:grid;grid-template-columns:auto minmax(220px,1.1fr) minmax(120px,1fr) 56px;gap:12px;align-items:center}.prow input[type="radio"]{accent-color:var(--t-coral);margin:0}.prow .mslider{grid-template-columns:70px 1fr 40px}.ptrack{height:14px;border-radius:var(--r-pill);background:var(--subtle-fill);overflow:hidden}.pbar{height:100%;border-radius:var(--r-pill);background:var(--t-azure);opacity:0.75;transition:width 0.18s var(--ease-out)}.pbar.top{background:var(--t-signal);opacity:1}.pbar.target{box-shadow:inset 0 0 0 2px var(--t-coral)}.ppct{font:600 12.5px var(--font-mono);text-align:right;font-variant-numeric:tabular-nums}.softmaxw .mpanel.full{grid-template-columns:minmax(0,1fr)}@media (max-width:900px){.mathw,.mathw.wide{grid-template-columns:minmax(0,1fr)}.prow{grid-template-columns:auto minmax(0,1fr) 52px}.prow .ptrack{grid-column:2 / 3}}@media (prefers-reduced-motion:reduce){.pbar{transition:none}}.field{display:grid;gap:6px}.field input,.field select,.note-form textarea,.admin-toolbar input,.admin-toolbar select,dialog input{height:46px;border:1px solid var(--stroke-strong);border-radius:12px;background:var(--input-fill);padding:0 14px;font-size:16px;width:100%;color:var(--text-1)}.field input:focus,.field select:focus,.note-form textarea:focus,.admin-toolbar input:focus,dialog input:focus{outline:2px solid var(--t-azure);outline-offset:1px;border-color:transparent}.fine{font-size:12.5px;color:var(--text-3);margin:0}.err{color:var(--t-coral);font-size:13.5px;min-height:18px}.err:empty{min-height:0}.auth-links a,.auth-alt a,.fine a,.site-doc a,.linklike{color:var(--t-azure);text-decoration:underline;text-underline-offset:2px}.account-btns,.row-btns{display:flex;gap:8px;flex-wrap:wrap}.signup-wall{display:grid;gap:14px;padding-top:24px}.signup-wall .free-try{margin:4px 0 18px;color:var(--text-2)}.signup-wall .free-try p{margin:0 0 6px}.signup-wall .free-try ul{margin:0;padding-left:20px;display:grid;gap:4px}.wall-card{padding:24px;display:grid;gap:12px}.wall-card h2{font-size:20px}.wall-card ul{margin:0;padding-left:20px;color:var(--text-2);display:grid;gap:4px}.wall-card .actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}.account{display:grid;gap:18px}.btn.danger:hover{background:var(--redpen-soft)}.btn.danger{border-color:var(--t-coral);color:var(--t-coral)}.site{min-height:100vh;display:flex;flex-direction:column}.site-head,.admin-head{display:flex;align-items:center;gap:18px;padding:16px clamp(16px,4vw,40px);border-bottom:1px solid var(--divider)}.site-brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:17px;margin-right:auto}.site-brand .mark{width:32px;height:32px;flex:none}.site-nav{display:flex;align-items:center;gap:18px;font-size:14.5px}.site-nav a:not(.btn){color:var(--text-2);white-space:nowrap}.site-main{flex:1;width:min(860px,100%);margin:0 auto;padding:40px 16px 64px;display:grid;gap:28px;align-content:start}.site-hero h1,.site-lesson h1,.site-doc h1{font-size:clamp(30px,5vw,44px);letter-spacing:-1px;margin:6px 0 12px}.site-lede{font-size:18px;color:var(--text-2);line-height:1.55}.site-hero p,.site-lesson>p{margin:0 0 14px}.site-meta{color:var(--text-3);font-size:14px}.site-lesson h2,.site-doc h2{font-size:20px;margin:26px 0 8px}.site-lesson ul,.site-doc ul{padding-left:22px;line-height:1.6;color:var(--text-2)}.site-doc p,.site-lesson p{line-height:1.65;color:var(--text-2)}.site-free{display:inline-block;font:700 11px var(--font-mono);letter-spacing:0.08em;text-transform:uppercase;color:var(--t-signal);border:1px solid var(--signal-line);border-radius:var(--r-pill);padding:2px 8px;vertical-align:2px}.site-phase h2{font-size:24px;margin:4px 0}.site-sub{color:var(--text-3);margin:0 0 10px}.site-lessons{margin:0;padding-left:24px;display:grid;gap:8px}.site-lessons li span:last-child{display:block;color:var(--text-3);font-size:14px}.site-lessons a{font-weight:600}.site-foot{display:flex;gap:6px 18px;flex-wrap:wrap;align-items:center;justify-content:center;padding:20px 16px;border-top:1px solid var(--divider);font-size:13px;color:var(--text-3)}.site-foot a{display:inline-block;padding:4px 0;color:var(--text-3)}.site-foot a.site-foot-partner{display:inline-flex;align-items:center;gap:8px}.site-foot-partner img{display:block;height:22px;width:auto}.admin-tabs a,.site-brand,.site-nav a,.crumb a{text-decoration:none}.fig{padding:16px 18px;border-right:1px solid var(--divider);border-bottom:1px solid var(--divider)}.bars{display:grid;grid-template-columns:repeat(30,1fr);gap:3px;align-items:end;height:120px}.bar{height:100%;display:flex;align-items:flex-end}.bar span{display:block;width:100%;min-height:2px;background:var(--t-azure);border-radius:3px 3px 0 0}.chip{display:inline-block;font:700 10.5px var(--font-mono);letter-spacing:0.08em;text-transform:uppercase;border:1px solid var(--stroke-strong);border-radius:var(--r-pill);padding:2px 8px;color:var(--text-2);width:max-content}.ok{color:var(--t-signal);font-size:12.5px}.warn{color:var(--t-amber);font-size:12.5px}.facts{display:grid;grid-template-columns:150px 1fr;gap:8px 16px;margin:0;font-size:14px}.facts dt{color:var(--text-3)}.facts dd{margin:0;overflow-wrap:anywhere}.phase-bars{display:grid;gap:10px}.pb{display:grid;grid-template-columns:170px 1fr 52px;gap:10px;align-items:center;font-size:13.5px}.note{border-top:1px solid var(--divider);padding-top:10px}.note p{margin:4px 0 0;white-space:pre-wrap}@media (max-width:900px){.pb{grid-template-columns:120px 1fr 44px}}@media (max-width:600px){.site-nav a:not(.btn,[href="/login"]){display:none}.facts{grid-template-columns:1fr;gap:2px 0}.facts dd{margin-bottom:8px}.btn.small,.admin-tabs a,.auth-tabs a{min-height:44px}}.page{max-width:1920px;padding-left:clamp(24px,3vw,56px);padding-right:clamp(24px,3vw,56px)}.narrow{max-width:1040px}.lesson-head,.lesson-body,.lesson-notes,.lesson-pager{max-width:1400px}.lesson-body .prose>:is(p,ul,ol,blockquote,h2,h3,h4),.lesson-content .prose>:is(p,ul,ol,blockquote,h2,h3,h4){max-width:35em}.lesson-shell{grid-template-columns:minmax(0,1fr) clamp(380px,25vw,520px)}@media (max-width:1080px){.lesson-shell.tutor-starts-open{grid-template-columns:minmax(0,1fr)}}.account{grid-template-columns:repeat(auto-fill,minmax(min(100%,440px),1fr));align-items:start}.site-main{width:min(1920px,100%);padding-left:clamp(16px,3vw,48px);padding-right:clamp(16px,3vw,48px)}.site-hero .site-lede{max-width:70ch}.site-phases{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,400px),1fr));gap:24px;align-items:start}.site-phase{padding:22px 24px}.site-baby{margin-top:24px;padding:22px 24px}.site-baby h2{font-size:24px;margin:4px 0}.site-stages{margin:12px 0;padding-left:22px;display:grid;gap:10px}.site-stages li span:last-child{display:block;color:var(--text-2);font-size:14.5px}.site-lesson-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);gap:clamp(24px,4vw,56px);align-items:start}.site-lesson-grid>aside{display:grid;gap:18px}.site-lesson-grid>aside section{padding:20px 22px}.site-term{max-width:820px}.cert{max-width:760px;margin:12px auto 0;padding:clamp(28px,6vw,64px);text-align:center;border-width:2px}.cert-lead{margin:18px 0 4px;color:var(--text-2)}.cert-name{font-size:clamp(32px,6vw,52px);margin:6px 0}.cert-title{font-size:clamp(20px,3.4vw,28px);margin:6px 0 12px}.cert-sub{margin:0 0 14px;color:var(--text-2)}.cert-detail{color:var(--text-2)}.cert-meta{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 32px;margin:28px 0 0}.cert-meta dt{font:600 11px var(--font-mono);letter-spacing:0.08em;text-transform:uppercase;color:var(--text-3)}.cert-meta dd{margin:4px 0 0;word-break:break-all}.cert-note{margin-top:26px;font-size:13.5px;color:var(--text-3)}.cert-cta{text-align:center;margin-top:22px}@media print{.site-head,.site-foot,.cert-cta,.cert-note{display:none}.cert{border:2px solid #999;box-shadow:none}}.site-term .eyebrow a{color:inherit}.site-term-lesson{padding:20px 22px;margin:26px 0}.site-term-lesson h2{margin-top:0}.site-term-list{padding-left:20px}.site-term-list li{margin-bottom:8px}.site-term-nav{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:34px;padding-top:18px;border-top:1px solid var(--divider)}.site-lesson-grid>aside h2{margin-top:0;font-size:17px}.site-lesson-grid ol{margin:0;padding-left:22px;display:grid;gap:4px;font-size:14.5px;color:var(--text-2)}.site-lesson-grid ol a{display:inline-block;padding:3px 0}.site-lesson-grid ol a[aria-current]{color:var(--t-signal);font-weight:700}@media (max-width:760px){.site-lesson-grid ol{gap:2px}.site-lesson-grid ol li{padding:6px 0}.site-lesson-grid ol a{display:inline-block;padding:4px 0}}.site-lesson .site-main-col p,.site-doc{max-width:80ch}.site-lesson-text{margin-top:26px}.site-lesson-text.lesson-locked{margin-top:1em}.site-lesson .site-lesson-text h2{font-size:24px;line-height:1.25;margin:1.6em 0 0.4em}.site-lesson .site-lesson-text h3{font-size:18px;margin:1.3em 0 0.3em}.site-lesson .site-lesson-text:is(p,li){color:var(--text-1)}.site-lesson .site-lesson-text>:is(.example,.check,.site-try,.site-lesson-live){margin-top:1.6em}.site-lesson-grid .site-lesson-text ol{display:block;margin:0;padding-left:1.3em;font-size:inherit;color:inherit}.site-lesson-grid .site-lesson-text ol li{padding:0}.site-lesson-grid .site-lesson-text .site-check-options{display:grid;gap:6px;padding-left:24px;list-style:upper-alpha}.site-check-answer>summary{cursor:pointer;font-weight:600;color:var(--t-azure)}.site-check-answer>p{margin:8px 0 0}.site-lesson-live{padding:12px 16px;border:1px dashed var(--stroke-strong);border-radius:12px}.site-lesson-live .site-try-note{margin:4px 0 0}.site-wall{margin-top:28px;padding:clamp(20px,3vw,28px);display:grid;gap:10px}.site-lesson .site-wall h2{margin:0;font-size:24px;line-height:1.25}.site-lesson .site-wall h3{margin:10px 0 0;font-size:15px}.site-wall ul{margin:0}.site-wall .site-cta{margin:10px 0 0}.site-wall .site-meta{margin:0}.site-lesson-practice{margin-top:28px;padding:20px 22px}.site-lesson .site-lesson-practice h2{margin-top:0}.site-lesson-practice .site-cta{margin:12px 0 0}.site-explain>* + *{margin-top:1.5em}.site-explain-figure{margin:1.5em 0 0}.site-explain-live{min-height:260px}.site-explain-live[data-widget="gpt"]{min-height:1040px}.site-explain-live[data-widget="playground"]{min-height:520px}@media (max-width:560px){.site-explain-live[data-widget="gpt"]{min-height:1180px}.site-explain-live[data-widget="playground"]{min-height:900px}}.site-explain-figure figcaption{margin-top:8px;font-size:14.5px;line-height:1.5;color:var(--text-3);max-width:80ch}.site-lesson .site-explain .prose h2{font-size:22px;margin:1.4em 0 0.4em}.site-lesson .site-explain .prose:is(p,li){color:var(--text-1)}.site-lesson-grid .site-explain .prose ol{display:block;margin:0;padding-left:1.3em;font-size:inherit;color:inherit}.site-lesson-grid .site-explain .prose ol li{padding:0}.site-lesson .site-explain .site-lesson-practice ul{margin:0 0 10px}.gptw,.pgw{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;padding:16px;min-width:0}.attn-token.gpt-preset{min-height:44px;text-align:left}.gpt-input{width:100%;padding:10px 12px;border:1px solid var(--stroke-strong);border-radius:10px;font:500 15px var(--font-ui);color:var(--text-1);background:transparent}.gpt-tokens{display:flex;flex-wrap:wrap;gap:6px}.gpt-token{padding:2px 8px;border:1px solid var(--stroke);border-radius:6px;font:500 13px var(--font-mono);color:var(--text-1);background:var(--subtle-fill)}.gpt-token.unknown{border-color:var(--coral);background:var(--redpen-soft)}.gpt-notice:empty{display:none}.gpt-head{margin:8px 0 0;font-size:15px;color:var(--text-1)}.pg-view{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:start}.pg-stage{position:relative;width:100%;aspect-ratio:1;overflow:hidden;border:1px solid var(--stroke);border-radius:12px}.pg-field,.pg-dots{position:absolute;inset:0;width:100%;height:100%}.pg-side{display:grid;gap:10px;min-width:0}.pg-curve{display:block;width:100%;height:70px;border:1px solid var(--stroke);border-radius:8px}.pg-key::before{content:"";display:inline-block;width:12px;height:3px;margin-right:5px;vertical-align:middle;background:#174bff}.pg-key.test{margin-left:8px}.pg-key.test::before{background:#d67614}.pg-status:empty{display:none}@media (max-width:560px){.pg-view{grid-template-columns:minmax(0,1fr)}}.site-term-deep{display:grid;gap:12px}.site-term-deep>*{min-width:0;margin:0}.site-lesson .site-term-deep h2{margin:16px 0 0;font-size:22px;line-height:1.3}.site-lesson .site-term-deep .prose:is(p,li){color:var(--text-1)}.site-term-deep .prose>:first-child{margin-top:0}.site-term-deep .prose>:last-child{margin-bottom:0}.tut-step,.tut-after{margin-top:30px}.tut-step:first-child{margin-top:10px}.site-lesson .tut-step h2,.site-lesson .tut-after h2{margin:0 0 10px;font-size:22px;line-height:1.3}.site-lesson .tut-after h2 + ul,.site-lesson .tut-after .prose + h2{margin-top:18px}.site-lesson .tut-step h3{margin:18px 0 6px;font-size:16px}.site-lesson .tut-step .prose:is(p,li),.site-lesson .tut-after .prose:is(p,li){color:var(--text-1)}.tut-step .prose{margin-bottom:12px}.tut-step .code-wrap + .prose,.tut-output + .prose{margin:12px 0 0}.tut-output{margin:10px 0 0}.tut-output figcaption{margin-bottom:4px;font-size:13px;font-weight:600;color:var(--text-3)}.tut-output pre{margin:0;padding:12px 16px;overflow-x:auto;border:1px solid var(--stroke);border-radius:12px;background:var(--subtle-fill);color:var(--text-1);font:500 13px/1.6 var(--font-code);white-space:pre}.tut-practice{margin-top:30px}.tut-full{margin-top:18px}.tut-full .code-wrap{margin-top:10px}.tut-full pre.code{max-height:640px;overflow-y:auto}.site-roadmap{display:grid;gap:22px;width:min(900px,100%);margin-inline:auto}.site-roadmap>*{margin:0;min-width:0}.site-roadmap h2{margin:0 0 12px}.site-roadmap h1{margin-bottom:0}.rm-plan{display:grid;gap:14px;padding:20px 22px}.rm-plan h2{margin:0;font-size:22px}.rm-plan p{margin:0}.rm-group{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.rm-label{flex-basis:100%;font-size:14px;color:var(--text-3)}.rm-choice{min-width:44px;min-height:44px;padding:8px 14px;border:1px solid var(--stroke-strong);border-radius:10px;background:transparent;color:var(--text-1);font:500 15px var(--font-ui);cursor:pointer}.rm-choice:hover{border-color:var(--accent)}.rm-choice[aria-pressed="true"]{border-color:var(--accent);background:var(--accent);color:#fff}.rm-result{font-size:18px;font-weight:600;line-height:1.4;color:var(--text-1)}.rm-num{display:inline-grid;flex:none;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--accent);color:#fff;font:600 13px var(--font-ui)}.rm-glance{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:8px;margin:0;padding:0;list-style:none}.rm-glance a{display:flex;align-items:center;gap:10px;min-height:48px;padding:8px 12px;border:1px solid var(--stroke);border-radius:10px;color:var(--text-1);font-weight:500;text-decoration:none}.rm-glance a:hover{border-color:var(--accent)}.rm-glance li[data-skip="all"] a{color:var(--text-3);text-decoration:line-through}.rm-glance li[data-skip="all"] .rm-num,.rm-stage[data-skip="all"] .rm-num{background:var(--stroke-strong);color:var(--text-2)}.rm-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;margin-bottom:12px}.rm-head h2{margin:0}.rm-stages{position:relative;display:grid;gap:14px;margin:0;padding:0;list-style:none}.rm-stages::before{content:"";position:absolute;top:18px;bottom:18px;left:13px;width:2px;background:var(--stroke-strong)}.rm-stage{position:relative;padding-left:42px;scroll-margin-top:16px}.rm-stage>.rm-num{position:absolute;top:18px;left:0}.rm-card{display:grid;gap:8px;padding:18px 20px}.rm-card>*{margin:0;min-width:0}.rm-card h3{font-size:19px;line-height:1.3}.rm-stage[data-skip="all"] .rm-card>:not(h3,.rm-size){display:none}.rm-stage[data-skip="all"] .rm-card{opacity:0.7}.rm-card .rm-tracks{display:flex;flex-wrap:wrap;gap:6px;padding:0;list-style:none}.rm-tracks li{padding:2px 10px;border-radius:999px;background:var(--subtle-fill);color:var(--text-2);font-size:13.5px;line-height:1.6}.rm-project,.rm-more{font-size:15px;color:var(--text-2)}.rm-lessons{margin:8px 0 0;padding-left:24px;columns:2 280px;column-gap:28px;font-size:14.5px;color:var(--text-2)}.rm-lessons li{padding:3px 0;break-inside:avoid}.site-roadmap .rm-qa h3{margin:22px 0 6px;font-size:18px}.site-roadmap .rm-qa p{margin:0;color:var(--text-1);line-height:1.6}.rm-routes{grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr))}.rm-routes-wrap>p{margin:0 0 12px}.rm-routes-wrap>p:last-child{margin:12px 0 0}.rm-end p:last-child{margin-bottom:0}@media print{.site-head,.site-foot,.rm-plan,.site-cta,.rm-print,.rm-end{display:none !important}.rm-card{padding:8px 0;border:0;box-shadow:none;background:none}.rm-head{break-after:avoid}.rm-num{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.site-qa{margin-top:30px}.site-qa:first-child{margin-top:10px}.site-lesson .site-qa h2{margin:0 0 10px;font-size:20px;line-height:1.35}.site-qa .site-meta{margin:10px 0 0;font-size:14px}.site-lesson .site-qa .prose:is(p,li){color:var(--text-1)}.site-lesson .lesson-locked:has(>.site-qa){margin-top:30px}.site-course-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:20px}.site-course-card{padding:20px 22px;display:grid;gap:8px;align-content:start}.site-course-card:is(h2,h3){margin:0;font-size:20px;line-height:1.3}.site-course-card p{margin:0;color:var(--text-2);line-height:1.55}.site-courses-short{margin:8px 0 32px}.site-courses-short>h2,.site-phases-title{font-size:22px;margin:0 0 14px}.site-course-links{margin:0;padding-left:20px;display:grid;gap:4px;font-size:14.5px}.site-course-links li{padding:3px 0}.site-faq{margin:0;display:grid;gap:4px}.site-faq dt{margin-top:12px;font-weight:600;color:var(--text-1)}.site-faq dd{margin:0;line-height:1.6;color:var(--text-2);max-width:80ch}.site-outline{margin:0;padding-left:22px;display:grid;gap:4px;color:var(--text-2);line-height:1.5}.site-code-wrap{margin:0}.site-code-wrap figcaption{margin-top:6px;font-size:13px;color:var(--text-3)}.site-code{margin:0;padding:14px 16px;overflow-x:auto;background:var(--code-bg);border:1px solid var(--stroke);border-radius:12px;font:13.5px/1.6 var(--font-code);color:var(--text-1)}.site-quiz{padding:18px 20px;display:grid;gap:12px}.site-quiz .site-quiz-q{margin:0;font-weight:600;color:var(--text-1)}.site-quiz-options{margin:0;padding-left:22px;display:grid;gap:6px;color:var(--text-2);list-style:upper-alpha}.site-quiz .site-meta{margin:0}.site-lesson code{font-family:var(--font-code);font-size:0.9em}.site-pager{margin-top:28px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.site-pager a{display:grid;gap:4px;padding:14px 16px;text-decoration:none;color:var(--text-2);font-size:14px}.site-pager a[rel="next"]{text-align:right}.site-pager strong{color:var(--text-1);font-size:15px}@media (max-width:640px){.site-pager{grid-template-columns:1fr}.site-pager a[rel="next"]{text-align:left}}.site-doc{margin:0 auto;width:100%}@media (max-width:960px){.site-lesson-grid{grid-template-columns:minmax(0,1fr)}}.site-main>*,.site-lesson-grid>*{min-width:0}.site-cta{display:flex;flex-wrap:wrap;gap:10px}.site-excerpt{margin:0 0 22px;padding:2px 0 2px 16px;border-left:3px solid var(--stroke-strong)}.site-excerpt p{margin:0 0 6px}.site-excerpt footer{font-size:14px;color:var(--text-3)}.site-try{margin-top:26px}.btn[data-loading]{position:relative}.btn[data-loading]::after{content:"";position:absolute;top:4px;right:4px;width:6px;height:6px;border-radius:50%;background:currentColor;opacity:0.6;animation:btn-pulse 1.2s ease-in-out infinite}@keyframes btn-pulse{50%{opacity:0.15}}@media (prefers-reduced-motion:reduce){.btn[data-loading]::after{animation:none}}.site-try .site-try-live{min-height:360px}.site-try .site-try-live.compact{min-height:0}.site-search{display:flex;gap:8px;margin-top:16px;max-width:520px;align-items:center;flex-wrap:wrap}.site-search input{flex:1 1 240px;min-height:44px;padding:8px 14px;border:1px solid var(--stroke-strong);border-radius:12px;font:inherit;font-size:16px;background:var(--input-fill);color:var(--text-1)}.site-search input:focus{outline:2px solid var(--t-signal);outline-offset:1px}.site-search output{flex-basis:100%;font-size:14px;color:var(--text-3)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}details.site-fold>summary{cursor:pointer;list-style:none;color:var(--text-3);font-size:14px;margin:0 0 10px}details.site-fold>summary::-webkit-details-marker{display:none}details.site-fold>summary::before{content:"▸";display:inline-block;width:1em;transition:transform .15s}details.site-fold[open]>summary::before{transform:rotate(90deg)}details.site-fold>summary h2{display:inline}.glossary-entry{display:contents}@media (max-width:640px){details.site-fold>summary{min-height:44px;display:flex;align-items:center;gap:6px}}.site-try .site-try-note{margin:10px 0 0;font-size:14.5px;color:var(--text-3)}.site-try-start{display:grid;gap:12px;justify-items:start;padding:18px 20px}.site-try-next{margin-top:14px;padding:14px 16px;display:grid;gap:10px;justify-items:start;border:1px solid var(--stroke);border-radius:12px;background:var(--subtle-fill)}.site-try-next p{margin:0;color:var(--text-2)}.site-quiz .option{width:100%}.site-quiz-q,.site-quiz-answer,.site-quiz .option,.site-quiz-options li{overflow-wrap:anywhere}.site-quiz-answer{margin:0;color:var(--text-2)}.site-teach{padding:20px 22px;margin:26px 0 0}.site-teach h2{margin-top:0}.site-lesson-grid>aside .site-teach{margin:0}.term{text-decoration:underline dotted;text-decoration-color:var(--t-azure);text-underline-offset:3px;text-decoration-thickness:1.5px;cursor:help;border-radius:4px}.term:hover,.term:focus-visible{background:var(--subtle-fill);outline:none}.term:focus-visible{box-shadow:0 0 0 2px var(--t-azure)}.term-pop{position:absolute;z-index:80;padding:14px 16px;display:grid;gap:6px;font-size:14.5px;line-height:1.5;border-radius:14px;background:var(--surface-elevated);border:1px solid var(--stroke-strong);box-shadow:0 12px 30px var(--shadow)}.term-pop .term-name{font:700 12px var(--font-mono);letter-spacing:0.08em;text-transform:uppercase;color:var(--t-azure)}.term-pop p{margin:0;color:var(--text-1)}.term-pop .term-links{display:flex;gap:14px;flex-wrap:wrap;font-size:13px}.term-pop .term-links a{color:var(--t-azure);text-decoration:underline;text-underline-offset:2px}details.deeper{margin:1em 0;border:1px solid var(--stroke);border-radius:14px;background:var(--subtle-fill);max-width:100%}details.deeper>summary{cursor:pointer;padding:12px 16px;font-weight:600;list-style:none;display:flex;gap:10px;align-items:center}details.deeper>summary::-webkit-details-marker{display:none}details.deeper>summary::after{content:"Show";margin-left:auto;font:600 12px var(--font-mono);color:var(--text-3)}details.deeper[open]>summary::after{content:"Hide"}details.deeper>:not(summary){margin-left:16px;margin-right:16px}details.deeper[open]{padding-bottom:8px}.deeper-tag{font:700 11px var(--font-mono);letter-spacing:0.1em;text-transform:uppercase;color:var(--t-violet,var(--t-azure));border:1px solid var(--stroke-strong);border-radius:var(--r-pill);padding:2px 8px}.explain-btn{margin-top:10px;background:none;border:0;padding:4px 0;font-size:13.5px;font-weight:600;color:var(--t-azure);cursor:pointer;text-decoration:underline;text-underline-offset:3px}.explain-btn:hover{color:var(--text-1)}.lesson-feedback{max-width:1400px;margin:0 auto 18px;padding:18px 22px;display:grid;gap:10px}.lesson-feedback p{margin:0}.lesson-feedback textarea{width:100%;max-width:640px;border:1px solid var(--stroke-strong);border-radius:12px;background:var(--input-fill);padding:10px 14px;font:15px/1.5 var(--font-ui);color:var(--text-1);resize:vertical}.funnel{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:13.5px;white-space:nowrap}.funnel b{font-variant-numeric:tabular-nums}.hotspots{margin:0;padding-left:16px;font-size:13.5px}.hotspots li{margin-bottom:4px}.glossary-letters{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}.glossary-letters a{display:inline-grid;place-items:center;min-width:36px;height:36px;border-radius:10px;border:1px solid var(--stroke-strong);font-weight:700;text-decoration:none}.glossary-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,520px),1fr));gap:8px 40px}.glossary-letter h2{font-size:26px;border-bottom:1px solid var(--divider);padding-bottom:6px}.glossary-letter dl{margin:0}.glossary-letter dt{font-weight:700;margin-top:14px;scroll-margin-top:20px}.glossary-letter dd{margin:4px 0 0;color:var(--text-2);line-height:1.55}.glossary-letter dd a{font-size:13.5px;color:var(--t-azure);overflow-wrap:anywhere}.lesson-feedback,.lesson-notes{width:auto}@media (max-width:680px){.lesson-feedback{margin-left:16px;margin-right:16px}}@font-face{font-family:"Geist Variable";font-style:normal;font-display:swap;font-weight:100 900;src:url("/fonts/geist-latin-var.woff2") format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Geist Variable";font-style:normal;font-display:swap;font-weight:100 900;src:url("/fonts/geist-latin-ext-var.woff2") format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root,:root[data-theme="light"],:root[data-theme="dark"]{--accent:#174bff;--accent-hover:#1238bf;--accent-soft:rgba(23,75,255,0.07);--signal:#174bff;--azure:#174bff;--violet:#6d28d9;--coral:#b42318;--amber:#b45309;--t-signal:#174bff;--t-azure:#174bff;--t-violet:#6d28d9;--t-coral:#b42318;--t-amber:#b45309;--positive:#007f73;--canvas:#ffffff;--canvas-raised:#f7f8fa;--surface:#ffffff;--surface-elevated:#ffffff;--glass:#ffffff;--glass-strong:#ffffff;--text-1:#101828;--text-2:#475467;--text-3:#667085;--text-4:#98a2b3;--stroke:#e4e7ec;--stroke-strong:#d0d5dd;--stroke-hi:#e4e7ec;--divider:#eaecf0;--subtle-fill:#f2f4f7;--input-fill:#ffffff;--rail-fill:#f2f4f7;--shadow:rgba(16,24,40,0.12);--grid-line:transparent;--grid-major:transparent;--on-signal:#ffffff;--code-bg:#f7f8fa;--code-ink:#101828;--hl-keyword:#6d28d9;--hl-string:#006e64;--hl-number:#9a3412;--hl-comment:#667085;--hl-builtin:#174bff;--hl-def:#be185d;--marker:rgba(23,75,255,0.08);--marker-strong:#174bff;--signal-soft:rgba(23,75,255,0.07);--signal-line:rgba(23,75,255,0.35);--redpen-soft:rgba(180,35,24,0.07);--grad-signal:linear-gradient(#174bff,#174bff);--grad-spectral:linear-gradient(#174bff,#174bff);--grad-active:linear-gradient(#174bff,#174bff);--font-ui:"Geist Variable","Geist Fallback",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-code:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,monospace;--font-mono:var(--font-ui);--r-sm:8px;--r-md:12px;--r-lg:12px;--sidebar-w:224px;color-scheme:light}body{background:#ffffff;color:var(--text-1);font:400 15px/1.55 var(--font-ui)}body::before,body::after{display:none}code,pre,kbd,samp,.editor,.out,.terminal,.jsonw,.code-list,.quiz textarea.answer.code,.quiz input.answer.code,.prose code,pre.code,.stepper pre,.httpw select,.httpw input,.httpw textarea{font-family:var(--font-code)}.glass{background:#ffffff;border:1px solid var(--stroke);border-radius:12px;-webkit-backdrop-filter:none;backdrop-filter:none}dialog{border-radius:12px;box-shadow:0 20px 48px var(--shadow)}dialog::backdrop{background:rgba(16,24,40,0.4);-webkit-backdrop-filter:none;backdrop-filter:none}.btn{border-radius:8px;background:#ffffff;border:1px solid var(--stroke-strong);color:var(--text-1);box-shadow:none}.btn:hover{background:#f7f8fa;border-color:var(--stroke-strong)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#ffffff;box-shadow:none}.btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);filter:none;box-shadow:none}.btn.quiet{background:transparent;border-color:transparent;color:var(--text-2)}.btn.quiet:hover{background:#f2f4f7;color:var(--text-1)}.btn.danger{background:#ffffff;border-color:#fda29b;color:#b42318}.icon-btn{border-radius:8px}.seg{border-radius:8px;background:#f2f4f7;border-color:var(--stroke)}.seg button,.auth-tabs a,.admin-tabs a{border-radius:6px}.seg button[aria-pressed="true"],.auth-tabs a[aria-pressed="true"],.admin-tabs a[aria-pressed="true"],.httpw .presets button[aria-pressed="true"],.chip.toggle[aria-pressed="true"]{background:#ffffff;color:var(--text-1);box-shadow:0 1px 2px rgba(16,24,40,0.08),0 0 0 1px var(--stroke)}.switch:checked{background:var(--accent)}input:focus-visible,textarea:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sidebar{background:#f7f8fa;border-right:1px solid var(--stroke);-webkit-backdrop-filter:none;backdrop-filter:none;padding:18px 12px 14px;gap:18px}.nav a{color:var(--text-2);border-radius:8px;font-weight:500}.nav a svg{width:16px;height:16px;stroke-width:1.75}.nav a:hover{background:#eaecf0;color:var(--text-1)}.nav a[aria-current="page"]{background:var(--accent-soft);color:var(--accent);box-shadow:none;font-weight:600}.nav a[aria-current="page"] .badge{background:var(--accent);color:#ffffff}.brand .name{font:600 14px/1.15 var(--font-ui);letter-spacing:0;color:var(--text-1)}.brand .tag{font:500 11px var(--font-ui);letter-spacing:0.02em;color:var(--text-3)}.eyebrow,.fig-l,.site-tag,.chip,.site-free,.term-name,.deeper-tag,.admin-table th,.sidebar-foot .ver,.bars-axis,.note-meta,.pb-n{font-family:var(--font-ui);letter-spacing:0.02em}.eyebrow{font-size:12px;font-weight:600;color:var(--text-2);text-transform:none}.meter span,.track-dots .fill,.track-dots i.done,.node.known .dot,.node.selected,.node.next,.quiz-progress i.right,.progress-line span,.course-card.current,.indexviz .box.in .cell-v,.terminal-tasks .task.current .m,.pipe-block.new,.baby-output .ch.sel,.timeline li.now .dot,.baby-card.grow.ready,.hero-card ul.objectives li::before,.btn.primary:hover,.term-pop{box-shadow:none}.node.selected{outline:2px solid var(--accent);outline-offset:1px}.node.next{outline:2px solid var(--amber);outline-offset:1px}.meter span{background:var(--accent)}.admin-lead h1,.site-hero h1,.site-lesson h1,.site-doc h1{letter-spacing:-0.02em}.term{text-decoration-color:var(--accent)}.prose blockquote.callout-plain{--tint:var(--accent);--tint-text:var(--accent)}.prose a,.auth-links a,.auth-alt a,.fine a,.site-doc a,.crumb a,.linklike,.glossary-letter dd a,.term-pop .term-links a{color:var(--accent)}.terminal{background:#101828;color:#f2f4f7}@media (pointer:coarse){input:not([type="checkbox"],[type="radio"],[type="range"]),textarea,select,.editor{font-size:16px !important}}.lesson-panel .lesson-notes,.lesson-panel .lesson-feedback{max-width:none;margin:0;padding-left:0;padding-right:0}.lesson-panel .lesson-notes{padding-bottom:0}.lesson-panel .lesson-feedback{padding:18px 22px}.cell .cell-bar .lbl,.out-label,.widget-frame>header .k,.hint .n,.stepper .state h3,.indexviz label,.httpw .sub,.msgw label,.mrow>.sl,.mslider .sl,.prose th,.deeper-tag,.term-pop .term-name,.question .qmeta,.flash .face .from,.tutor>header .t{font:500 12px/1.4 var(--font-ui);letter-spacing:0;text-transform:none;color:var(--text-2)}.widget-frame>header .k{color:var(--text-3)}.hint .n{color:var(--amber);font-weight:600}.prose th{color:var(--text-2)}.deeper-tag{border-color:var(--stroke);background:#f7f8fa;color:var(--text-2);padding:1px 8px}.term-pop .term-name{font-weight:600;color:var(--text-1);font-size:13px}.explain-btn{color:var(--accent)}.prose blockquote{background:#ffffff;border:1px solid var(--stroke);border-left:3px solid var(--tint);border-radius:8px}.prose blockquote.callout-tip,.prose blockquote.callout-note,.prose blockquote.callout-plain{--tint:var(--accent);--tint-text:var(--accent)}.prose blockquote.callout-marketers{--tint:var(--amber);--tint-text:var(--amber)}.prose blockquote.callout-watch{--tint:var(--coral);--tint-text:var(--coral)}.prose blockquote strong:first-child{color:var(--tint-text)}.frame{border-color:var(--stroke);background:#f7f8fa}.frame .fn{color:var(--text-1)}.msgw .turn .role{color:var(--text-2)}.tutor{background:#ffffff;border-left:1px solid var(--stroke)}.tutor .avatar-tile{background:#f2f4f7;border:1px solid var(--stroke);color:var(--accent);border-radius:8px;width:36px;height:36px}.tutor .avatar-tile svg{width:18px;height:18px}.tutor>header .t{color:var(--text-3)}.tutor>header .s{color:var(--text-1)}.tutor .msg.user{background:var(--accent-soft);border-color:rgba(23,75,255,0.2);border-radius:12px 12px 4px 12px}.tutor .msg.assistant,.tutor .empty{border-radius:12px;background:#ffffff}.tutor .suggest button{border-color:var(--stroke-strong);color:var(--text-1)}.tutor .suggest button:hover{background:#f7f8fa;border-color:var(--text-4)}.tutor textarea{border-radius:8px}.tutor textarea:focus{border-color:var(--accent)}.tutor .send{width:40px;height:40px;border-radius:8px;background:var(--accent);color:#ffffff;box-shadow:none}.tutor .send:hover:not(:disabled){background:var(--accent-hover)}.calcw{grid-template-columns:minmax(0,1fr) !important}.calcw .mpanel{max-width:560px}.calc-out{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 14px;margin:0;padding:12px 14px;border:1px solid var(--divider);border-radius:var(--r-sm);background:var(--subtle-fill);font-size:13.5px}.calc-out dt{color:var(--text-3)}.calc-out dd{margin:0;text-align:right;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text-1)}.calc-out .big{font-size:15px;color:var(--text-1)}.calc-out dd.big{font-size:20px;color:var(--accent)}.mathw .plane .tick{font-size:12.5px}.sortw{display:grid;gap:12px;padding:18px}.sortw-prompt{margin:0;font-weight:600}.sortw-items{display:grid;gap:10px;margin:0;padding:0;list-style:none}.sortw-item{display:grid;gap:8px;padding:12px 14px;border:1px solid var(--divider);border-radius:var(--r-sm);background:#fff}.sortw-item.right{border-color:color-mix(in srgb,var(--t-signal) 55%,transparent)}.sortw-item.wrong{border-color:color-mix(in srgb,var(--t-coral) 55%,transparent)}.sortw-item .t{margin:0}.sortw-item .why{margin:0;font-size:13.5px;color:var(--text-2)}.sortw-choices{display:flex;flex-wrap:wrap;gap:6px}.sortw-choice{min-height:34px;padding:4px 12px;border:1px solid var(--stroke);border-radius:999px;background:#fff;color:var(--text-1);font-size:13.5px;cursor:pointer}.sortw-choice:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.sortw-choice:disabled{cursor:default;opacity:0.55}.sortw-choice.answer{opacity:1;border-color:var(--t-signal);color:var(--t-signal);font-weight:600}.sortw-choice.missed{opacity:1;border-color:var(--t-coral);color:var(--t-coral);text-decoration:line-through}.sortw-score{margin:0;font-size:13.5px;color:var(--text-3)}.flowp{display:grid;gap:14px;padding:18px;min-width:0}.flow-row{display:flex;flex-wrap:wrap;gap:6px 22px;margin:0;padding:0;list-style:none}.flow-step{position:relative}.flow-step:not(:last-child)::after{content:"→";position:absolute;top:50%;right:-17px;transform:translateY(-50%);color:var(--text-3);font-size:13px}.flow-step button{display:flex;min-height:38px;align-items:center;gap:7px;padding:5px 12px 5px 6px;border:1px solid var(--stroke);border-radius:999px;background:#fff;color:var(--text-1);font-size:13.5px;text-align:left;cursor:pointer}.flow-step .n{display:grid;width:24px;height:24px;flex:none;place-items:center;border-radius:50%;background:var(--subtle-fill);font-size:12px;font-weight:600;color:var(--text-2)}.flow-step.past button{border-color:color-mix(in srgb,var(--accent) 35%,var(--stroke))}.flow-step.on button{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,#fff);font-weight:600}.flow-step.on .n{background:var(--accent);color:#fff}.flow-loop{margin:-6px 0 0;font-size:13px;color:var(--text-3)}.flow-detail{min-height:84px;padding:12px 14px;border-radius:var(--r-sm);background:var(--subtle-fill);border:1px solid var(--divider)}.flow-detail p{margin:4px 0 0}.flow-detail .codeline{margin:8px 0 0;white-space:pre-wrap;font:500 12.5px/1.55 var(--font-code,var(--font-mono))}.flow-count{font-size:13px;color:var(--text-3)}.flow-detail-p{min-height:48px;margin:0}.flow-scroll{min-width:0;overflow-x:auto}.flow-scroll .plane{min-width:500px}.flow-seq{max-width:680px;background:#fff}.flow-scroll .plane.flow-seq-narrow{min-width:0}.flow-seq .msg{cursor:pointer}.flow-seq .msg.later{opacity:0.22}.flow-seq .life{stroke:var(--stroke);stroke-width:1.4;stroke-dasharray:4 4}.flow-seq .actor{font:600 14.5px var(--font-ui);fill:var(--text-1)}.flow-seq .msg line,.flow-seq .msg path:not(.head){stroke:var(--text-3);stroke-width:1.6;fill:none}.flow-seq .msg text{font:500 13.5px var(--font-ui);fill:var(--text-2);paint-order:stroke;stroke:#fff;stroke-width:4px}.flow-seq .msg.on line,.flow-seq .msg.on path:not(.head){stroke:var(--accent);stroke-width:2.4}.flow-seq .msg.on text{fill:var(--accent);font-weight:600}.flow-seq .head{fill:var(--text-2)}.samplerw{display:grid;gap:14px;padding:18px;min-width:0}.sampler-text{margin:0;font-size:16px}.sampler-text strong{color:var(--accent)}.sampler-text .n{display:block;margin-top:2px;font-size:13px;color:var(--text-3)}.sampler-bars{display:grid;gap:6px;margin:0;padding:0;list-style:none}.sampler-bars li{display:grid;grid-template-columns:minmax(56px,90px) minmax(0,1fr) 52px;align-items:center;gap:10px;font-size:13.5px}.sampler-bars li.off{opacity:0.45}.sampler-bars .w{overflow:hidden;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.sampler-bars .track{position:relative;height:12px;border-radius:6px;background:var(--subtle-fill)}.sampler-bars .fill{display:block;height:100%;border-radius:6px;background:var(--accent)}.sampler-bars .tally{position:absolute;top:-3px;bottom:-3px;width:3px;border-radius:2px;background:var(--t-coral)}.sampler-bars .p{text-align:right;font-variant-numeric:tabular-nums;color:var(--text-2)}.plane .dot-pos,.plane .dot-neg,.plane .dot-test,.plane .dot-proj,.plane .dot-cluster{stroke:#fff;stroke-width:1.2}.plane .dot-pos{fill:var(--t-coral)}.plane .dot-neg{fill:var(--t-azure)}.plane .dot-test{fill:#98a2b3;stroke-width:0.5}.plane .dot-proj{fill:var(--accent);stroke-width:0.5}.plane .region{stroke:none}.plane .region.r1{fill:var(--t-coral);fill-opacity:0.14}.plane .region.r0{fill:var(--t-azure);fill-opacity:0.12}.plane .curve.ghost{stroke-width:1.2;stroke-opacity:0.35}.plane .k-1{fill:#98a2b3}.plane .dot-cluster.k0{fill:#174bff}.plane .dot-cluster.k1{fill:#be185d}.plane .dot-cluster.k2{fill:#007f73}.plane .dot-cluster.k3{fill:#b45309}.plane .dot-cluster.k4{fill:#6d28d9}.plane .dot-cluster.k5{fill:#0e7490}.plane .dot-cluster.k-1{fill:#98a2b3}.plane .center{fill:none;stroke-width:4;stroke-linecap:round}.plane .center.k0{stroke:#174bff}.plane .center.k1{stroke:#be185d}.plane .center.k2{stroke:#007f73}.plane .center.k3{stroke:#b45309}.plane .center.k4{stroke:#6d28d9}.plane .center.k5{stroke:#0e7490}.thw-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,200px);gap:14px;align-items:start;margin-top:12px}.thw-roc{margin:0}.thw-matrix{width:100%;border-collapse:collapse;font-size:13.5px}.thw-matrix th,.thw-matrix td{padding:7px 9px;border:1px solid var(--divider);text-align:center;font-weight:500}.thw-matrix th{background:var(--subtle-fill);color:var(--text-2)}.thw-matrix td{font-weight:600;font-variant-numeric:tabular-nums}.thw-matrix td.ok{color:var(--t-signal)}.thw-matrix td.bad{color:var(--t-coral)}.thw-matrix tr.now td{background:color-mix(in srgb,var(--accent) 8%,#fff)}.netw-svg{background:#fff}.net-edge{stroke-linecap:round}.net-edge.pos{stroke:color-mix(in srgb,var(--accent) 55%,#fff)}.net-edge.neg{stroke:color-mix(in srgb,var(--t-coral) 60%,#fff)}.net-edge.off{opacity:0.08}.net-node circle{fill:#fff;stroke:var(--text-2);stroke-width:1.8}.net-node.on circle{fill:color-mix(in srgb,var(--accent) 12%,#fff);stroke:var(--accent)}.net-node.off circle{fill:var(--subtle-fill);stroke:var(--stroke);stroke-dasharray:3 3}.net-node .lab,.netw-svg .lab{font:500 13px var(--font-ui);fill:var(--text-2)}.net-node .val{font:600 13px var(--font-ui);fill:var(--text-1)}.netw-svg .grad{font:600 13px var(--font-ui);fill:var(--t-coral)}.depth-bars{display:flex;height:220px;align-items:flex-end;gap:2px;padding:8px;border:1px solid var(--divider);border-radius:var(--r-md);background:#fff}.depth-bars .bar{min-width:0;flex:1;border-radius:3px 3px 0 0;background:var(--accent)}.attnw{display:grid;gap:12px;padding:18px;min-width:0}.attn-row{display:flex;flex-wrap:wrap;gap:6px}.attn-token{min-height:38px;padding:4px 12px;border:1px solid var(--stroke);border-radius:8px;background:color-mix(in srgb,var(--accent) calc(var(--w,0) * 70%),#fff);color:var(--text-1);font-size:15px;cursor:pointer}.attn-token.on{border-color:var(--accent);background:var(--accent);color:#fff;font-weight:600}.attn-arcs{display:block;width:100%;height:auto;max-height:90px}.attn-scroll{overflow-x:auto}.attn-matrix{border-collapse:collapse;font-size:13px}.attn-matrix th{padding:4px 8px;font-weight:500;color:var(--text-2);white-space:nowrap}.attn-matrix td{min-width:44px;height:36px;border:1px solid var(--divider);background:color-mix(in srgb,var(--accent) calc(var(--w,0) * 85%),#fff);text-align:center;font-variant-numeric:tabular-nums}.attn-matrix td.off{background:repeating-linear-gradient(45deg,#eef0f4 0 4px,#f7f8fa 4px 8px)}@media (max-width:720px){.thw-row{grid-template-columns:minmax(0,1fr)}.thw-roc{max-width:220px}}@media (hover:none){.btn:hover{background:#ffffff;border-color:var(--stroke-strong)}.btn.primary:hover{background:var(--accent);border-color:var(--accent)}.btn.quiet:hover{background:transparent;color:var(--text-2)}.option:hover:not(:disabled){border-color:var(--stroke-strong)}}@font-face{font-family:"Geist Fallback";src:local("Arial"),local("Helvetica Neue"),local("Helvetica");size-adjust:102.49%;ascent-override:98.06%;descent-override:28.78%;line-gap-override:0%}@font-face{font-family:"Shantell Hand";font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/shantell-hand.woff2") format("woff2")}.taught{max-width:720px;margin:12px auto 0;padding:clamp(24px,5vw,44px)}.taught h1{font-size:clamp(30px,5vw,44px);margin:8px 0 12px;overflow-wrap:anywhere}.taught-lead{margin:0;font-size:17px;line-height:1.55;color:var(--text-2)}.taught-paper{margin:24px 0;padding:20px 26px 4px;border:1px solid var(--stroke);border-radius:12px;background:#fff repeating-linear-gradient(to bottom,transparent 0 39px,#dde5f1 39px 40px);background-origin:content-box;background-clip:content-box,border-box}.taught-when{margin:0;font:600 11px var(--font-mono);letter-spacing:0.08em;text-transform:uppercase;color:var(--text-3);line-height:40px}.taught-line{margin:0 0 20px;font-family:"Shantell Hand",ui-rounded,"Segoe Print",cursive;font-size:clamp(19px,3.2vw,25px);line-height:40px;overflow-wrap:anywhere}.taught-pencil{color:#98a2b3}.taught-ink{color:#174bff}.taught-facts{display:flex;flex-wrap:wrap;gap:12px 32px;margin:0}.taught-facts dt{font:600 11px var(--font-mono);letter-spacing:0.08em;text-transform:uppercase;color:var(--text-3)}.taught-facts dd{margin:4px 0 0}.taught-note{margin:24px 0 0;font-size:13.5px;line-height:1.5;color:var(--text-3)}.taught-cta{max-width:720px;margin:20px auto 0;padding:24px 28px;text-align:center}.taught-cta h2{margin:0 0 8px}.taught-cta p{margin:0 0 14px;color:var(--text-2)}.taught-cta p:last-child{margin:0;display:flex;flex-wrap:wrap;justify-content:center;gap:10px}}
