:root,[data-theme=light],.plate{--bg:#fcfcfa;--surface:#fff;--surface-2:#f2f3f0;--rule:#e2e4df;--rule-hi:#c6cac3;--fg:#16181a;--fg-dim:#575d62;--fg-faint:#868d93;--signal:#b4610a;--signal-dim:#b4610a1a;--ok:#2e7d32;--warn:#a86400;--err:#c1291c;--shadow:0 1px 2px #14181c0f, 0 8px 24px #14181c0f;--mark:#ffc40061;--m-mysql:#016b7d;--m-sql:#7d4a79;--m-postgres:#2c5f87;--m-theory:#856a12;--m-nosql:#34772a;--m-orm:#a21f78;--m-scaling:#b8471a;--m-node:#45702f;--m-cba:#1f5f4b;--m-cloud:#b4530a;--m-browser:#1d5fbf;--m-jsint:#b8860b;--m-devtools:#6b4fbb;--m-algos:#0f766e;--m-react:#087ea4;--m-fsd:#be185d;--m-craft:#6d4aa8;--m-fearch:#9a3412;--m-trust:#1e6b3a;--m-bigco:#334155;--m-platform:#0e7490;--m-ts:#2f5fbf;--m-design:#a21caf;--m-disc:#7c3aed;--m-terms:#4338ca;--m-cloudeng:#be123c;--m-infra:#3f6212;--m-distsys:#1e3a8a;--m-sre:#047857;--m-byo:#0369a1;--m-computers:#4c1d95;--m-syseng:#92400e;--m-books:#7f1d1d;--m-ainative:#0c4a6e;--m-deriv:#6b21a8;--m-redis:#b91c1c;--m-kafka:#1f2937;--m-prodstack:#0f766e;--m-config:#7c2d12;--m-deploy:#1d4ed8;--m-mesh:#6d28d9;--m-bsd:#9d174d;--m-bdiag:#5b21b6;--m-barch:#9a3412;--m-ledger:#166534;--m-apidesign:#86198f;--m-auth:#1e40af;--m-bdisc:#6d28d9;--m-bigbe:#374151;--m-balgos:#115e59;--m-workflows:#a16207;--m-search:#c2410c;--m-dataeng:#0e7490;--m-discrete:#4338ca;--m-dsa:#0f766e;--m-toc:#581c87;--m-os:#3730a3;--m-networks:#075985;--m-plang:#9f1239;--m-compilers:#7e22ce;--m-stats:#0369a1;--m-mlmath:#be185d;--m-crypto:#14532d;--m-concurrency:#b45309;--m-unixgit:#44403c;--m-csys:#1e293b;--m-kernel:#312e81;--m-sysperf:#b91c1c;--m-containers:#0c4a6e;--m-storage:#57534e;--m-python:#1e5a8a;--m-go:#00758f;--m-rust:#a33c10;--m-rails:#a81d1d;--m-java:#a15c07;--m-dotnet:#5b21b6;--m-kotlin:#7c3aed;--m-elixir:#5b2c83;--m-pm:#0f766e;--m-prodeng:#be123c;--m-thinking:#3f6212;--m-problemsolving:#9a3412;--m-review:#1d4ed8;--m-llm:#6b21a8;--m-mobile:#0369a1;--m-writing:#78350f;--m-interviews:#831843;--m-yoruba:#166534;--m-westafrica:#92400e;--m-china:#b91c1c;--m-ancient:#854d0e;--m-modernafrica:#065f46;--m-computinghistory:#334155}[data-theme=dark]{--bg:#0d0f11;--surface:#14171a;--surface-2:#1b1f23;--rule:#262b30;--rule-hi:#3a4148;--fg:#eceef0;--fg-dim:#aeb5bb;--fg-faint:#7c848c;--signal:#f2a65a;--signal-dim:#f2a65a24;--ok:#6cc070;--warn:#e8b04a;--err:#f2756a;--shadow:0 1px 2px #0006, 0 12px 32px #00000059;--mark:#ffc4004d;--m-mysql:#68dff3;--m-sql:#d289cc;--m-postgres:#84b2d7;--m-theory:#ecce6f;--m-nosql:#91d486;--m-orm:#e576c1;--m-scaling:#eb9370;--m-node:#a2d289;--m-cba:#84d7bd;--m-cloud:#f3a468;--m-browser:#71a2e9;--m-jsint:#f3cb68;--m-devtools:#9c89d2;--m-algos:#6eede3;--m-react:#68d1f3;--m-fsd:#ed6ea3;--m-craft:#a489d2;--m-fearch:#ee8d6d;--m-trust:#80dba1;--m-bigco:#89a7d2;--m-platform:#6ad4f1;--m-ts:#7c9ddf;--m-design:#de72e8;--m-disc:#9c69f1;--m-terms:#857edd;--m-cloudeng:#f16a8b;--m-infra:#b4e675;--m-distsys:#7994e2;--m-sre:#68f3cb;--m-byo:#68c2f3;--m-computers:#a176e4;--m-syseng:#f19d6a;--m-books:#e17a7a;--m-ainative:#6cbfef;--m-deriv:#b377e4;--m-redis:#ea7171;--m-kafka:#89a7d2;--m-prodstack:#6eede3;--m-config:#ea9070;--m-deploy:#6f90ec;--m-mesh:#a174e6;--m-bsd:#ea71a2;--m-bdiag:#a175e6;--m-barch:#ee8d6d;--m-ledger:#79e2a1;--m-apidesign:#de74e7;--m-auth:#748fe7;--m-bdisc:#a174e6;--m-bigbe:#89a5d2;--m-balgos:#75e6df;--m-workflows:#f3ba68;--m-search:#f39068;--m-dataeng:#6ad4f1;--m-discrete:#857edd;--m-dsa:#6eede3;--m-toc:#b478e3;--m-os:#8681da;--m-networks:#68c2f3;--m-plang:#ee6c90;--m-compilers:#b173e8;--m-stats:#68c2f3;--m-mlmath:#ed6ea3;--m-crypto:#7bdfa3;--m-concurrency:#f3a468;--m-unixgit:#d2ad89;--m-csys:#89a5d2;--m-kernel:#8987d4;--m-sysperf:#ea7171;--m-containers:#6cbfef;--m-storage:#d2b189;--m-python:#79b3e2;--m-go:#68daf3;--m-rust:#f0936a;--m-rails:#e77474;--m-java:#f3b568;--m-dotnet:#a175e6;--m-kotlin:#9c69f1;--m-elixir:#b185d6;--m-pm:#6eede3;--m-prodeng:#f16a8b;--m-thinking:#b4e675;--m-problemsolving:#ee8d6d;--m-review:#6f90ec;--m-llm:#b377e4;--m-mobile:#68c2f3;--m-writing:#ed9c6e;--m-interviews:#e675a2;--m-yoruba:#79e2a1;--m-westafrica:#f19d6a;--m-china:#ea7171;--m-ancient:#efb16b;--m-modernafrica:#68f3cc;--m-computinghistory:#89a7d2}[data-theme=dark] .plate{--bg:#fcfcfa;--surface:#fff;--surface-2:#f2f3f0;--rule:#e2e4df;--rule-hi:#c6cac3;--fg:#16181a;--fg-dim:#575d62;--fg-faint:#868d93;--signal:#b4610a;--signal-dim:#b4610a1a;--ok:#2e7d32;--warn:#a86400;--err:#c1291c;--shadow:0 1px 2px #14181c0f, 0 8px 24px #14181c0f;--mark:#ffc40061;--m-mysql:#016b7d;--m-sql:#7d4a79;--m-postgres:#2c5f87;--m-theory:#856a12;--m-nosql:#34772a;--m-orm:#a21f78;--m-scaling:#b8471a;--m-node:#45702f;--m-cba:#1f5f4b;--m-cloud:#b4530a;--m-browser:#1d5fbf;--m-jsint:#b8860b;--m-devtools:#6b4fbb;--m-algos:#0f766e;--m-react:#087ea4;--m-fsd:#be185d;--m-craft:#6d4aa8;--m-fearch:#9a3412;--m-trust:#1e6b3a;--m-bigco:#334155;--m-platform:#0e7490;--m-ts:#2f5fbf;--m-design:#a21caf;--m-disc:#7c3aed;--m-terms:#4338ca;--m-cloudeng:#be123c;--m-infra:#3f6212;--m-distsys:#1e3a8a;--m-sre:#047857;--m-byo:#0369a1;--m-computers:#4c1d95;--m-syseng:#92400e;--m-books:#7f1d1d;--m-ainative:#0c4a6e;--m-deriv:#6b21a8;--m-redis:#b91c1c;--m-kafka:#1f2937;--m-prodstack:#0f766e;--m-config:#7c2d12;--m-deploy:#1d4ed8;--m-mesh:#6d28d9;--m-bsd:#9d174d;--m-bdiag:#5b21b6;--m-barch:#9a3412;--m-ledger:#166534;--m-apidesign:#86198f;--m-auth:#1e40af;--m-bdisc:#6d28d9;--m-bigbe:#374151;--m-balgos:#115e59;--m-workflows:#a16207;--m-search:#c2410c;--m-dataeng:#0e7490;--m-discrete:#4338ca;--m-dsa:#0f766e;--m-toc:#581c87;--m-os:#3730a3;--m-networks:#075985;--m-plang:#9f1239;--m-compilers:#7e22ce;--m-stats:#0369a1;--m-mlmath:#be185d;--m-crypto:#14532d;--m-concurrency:#b45309;--m-unixgit:#44403c;--m-csys:#1e293b;--m-kernel:#312e81;--m-sysperf:#b91c1c;--m-containers:#0c4a6e;--m-storage:#57534e;--m-python:#1e5a8a;--m-go:#00758f;--m-rust:#a33c10;--m-rails:#a81d1d;--m-java:#a15c07;--m-dotnet:#5b21b6;--m-kotlin:#7c3aed;--m-elixir:#5b2c83;--m-pm:#0f766e;--m-prodeng:#be123c;--m-thinking:#3f6212;--m-problemsolving:#9a3412;--m-review:#1d4ed8;--m-llm:#6b21a8;--m-mobile:#0369a1;--m-writing:#78350f;--m-interviews:#831843;--m-yoruba:#166534;--m-westafrica:#92400e;--m-china:#b91c1c;--m-ancient:#854d0e;--m-modernafrica:#065f46;--m-computinghistory:#334155}
:root{--f-display:"Space Grotesk", ui-sans-serif, system-ui, sans-serif;--f-body:"Source Serif 4", Georgia, serif;--f-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--t-xs:.75rem;--t-sm:.875rem;--t-base:1rem;--t-md:1.125rem;--t-lg:1.375rem;--t-xl:1.75rem;--t-2xl:2.25rem;--t-3xl:3rem;--t-4xl:4.25rem;--measure:70ch;--hue:var(--signal);--radius:8px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-padding-top:5rem}body{background:var(--bg);color:var(--fg);font-family:var(--f-body);font-size:var(--t-base);-webkit-font-smoothing:antialiased;line-height:1.7;transition:background-color .25s,color .25s;overflow-x:hidden}img,svg,canvas{max-width:100%;display:block}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit}:focus-visible{outline:2px solid var(--hue);outline-offset:2px;border-radius:3px}::selection{background:color-mix(in oklab, var(--hue) 30%, transparent)}h1,h2,h3,h4,h5{font-family:var(--f-display);letter-spacing:-.02em;text-wrap:balance;font-weight:500;line-height:1.15}code{font-family:var(--f-mono);background:var(--surface-2);border:1px solid var(--rule);border-radius:4px;padding:.08em .35em;font-size:.86em}.sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.mod{--hue:var(--hue-base,var(--signal))}.btn{border:1px solid var(--rule);background:var(--surface);min-height:40px;color:var(--fg);font:500 var(--t-sm)/1 var(--f-display);border-radius:999px;align-items:center;gap:.45rem;padding:0 .95rem;text-decoration:none;transition:border-color .15s,background .15s,transform .1s;display:inline-flex}.btn:hover{border-color:var(--rule-hi)}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--hue);border-color:var(--hue);color:var(--bg)}.btn.ghost{background:0 0}.btn.on{border-color:var(--hue);color:var(--hue);background:color-mix(in oklab, var(--hue) 8%, var(--surface))}.icon-btn{border:1px solid var(--rule);background:var(--surface);width:40px;height:40px;color:var(--fg-dim);border-radius:999px;place-items:center;display:inline-grid}.icon-btn:hover{color:var(--fg);border-color:var(--rule-hi)}.icon-btn.on{color:var(--hue);border-color:var(--hue)}.icon-btn svg{width:18px;height:18px}.kicker{font:500 var(--t-xs)/1.4 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-faint)}.topbar{z-index:40;background:color-mix(in oklab, var(--bg) 86%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(10px);backdrop-filter:saturate(1.4)blur(10px);border-bottom:1px solid var(--rule);align-items:center;gap:.6rem;padding:.6rem clamp(1rem,3vw,2rem);display:flex;position:sticky;top:0}.topbar .brand{font:700 1.05rem/1 var(--f-display);letter-spacing:-.02em;text-decoration:none}.topbar .brand span{color:var(--signal)}.topbar .crumb{font:400 var(--t-sm)/1.2 var(--f-display);color:var(--fg-dim);white-space:nowrap;text-overflow:ellipsis;min-width:0;text-decoration:none;overflow:hidden}.topbar .sp{flex:1}.progress-line{background:var(--hue);z-index:60;height:3px;transition:width .1s linear;position:fixed;top:0;left:0}.landing{max-width:1240px;margin:0 auto;padding:clamp(1.5rem,5vw,4rem) clamp(1rem,3vw,2rem) 6rem}.hero h1{letter-spacing:-.045em;font-size:clamp(2.4rem,7vw,5rem);line-height:.98}.hero h1 em{color:var(--signal);font-style:normal}.hero p{max-width:60ch;color:var(--fg-dim);font-size:var(--t-md);margin-top:1rem}.hero .stats{font:500 var(--t-sm)/1 var(--f-mono);color:var(--fg-faint);flex-wrap:wrap;gap:1.6rem;margin-top:1.4rem;display:flex}.hero .stats b{color:var(--fg);font-size:1.4rem;font-family:var(--f-display);margin-bottom:.35rem;display:block}.tabs{z-index:30;background:color-mix(in oklab, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex-wrap:wrap;align-items:center;gap:.4rem;margin:2.2rem 0 1.4rem;padding:.5rem 0;display:flex;position:sticky;top:57px}.tab{border:1px solid var(--rule);background:var(--surface);min-height:40px;color:var(--fg-dim);font:500 var(--t-sm)/1 var(--f-display);border-radius:999px;align-items:center;gap:.5rem;padding:0 1rem;display:inline-flex}.tab .n{font:600 .72rem/1 var(--f-mono);background:var(--surface-2);color:var(--fg-faint);border-radius:999px;padding:.22rem .45rem}.tab[aria-selected=true]{background:var(--fg);color:var(--bg);border-color:var(--fg)}.tab[aria-selected=true] .n{background:color-mix(in oklab, var(--bg) 20%, transparent);color:var(--bg)}.search{border:1px solid var(--rule);background:var(--surface);border-radius:999px;min-width:min(280px,100%);min-height:40px;margin-left:auto;padding:0 1rem}@media (max-width:720px){.search{width:100%;margin-left:0}}.grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr));gap:14px;display:grid}.card{border:1px solid var(--rule);background:var(--surface);border-radius:12px;flex-direction:column;gap:.55rem;min-height:190px;padding:1.15rem 1.15rem 1rem;text-decoration:none;transition:transform .18s,border-color .18s,box-shadow .18s;display:flex;position:relative;overflow:hidden}.card:before{content:"";background:var(--hue);height:4px;position:absolute;inset:0 0 auto}.card:after{content:"";background:radial-gradient(circle, color-mix(in oklab, var(--hue) 18%, transparent), transparent 70%);pointer-events:none;border-radius:50%;width:140px;height:140px;position:absolute;top:-40px;right:-40px}.card:hover{border-color:color-mix(in oklab, var(--hue) 45%, var(--rule));box-shadow:var(--shadow);transform:translateY(-2px)}.card h3{padding-right:2.4rem;font-size:1.22rem}.card p{font-size:var(--t-sm);color:var(--fg-dim);-webkit-line-clamp:3;-webkit-box-orient:vertical;line-height:1.55;display:-webkit-box;overflow:hidden}.card .meta{font:500 var(--t-xs)/1 var(--f-mono);color:var(--fg-faint);gap:.9rem;margin-top:auto;display:flex}.card .bm{z-index:2;position:absolute;top:.8rem;right:.7rem}.card .cover{z-index:1;border-radius:inherit;position:absolute;inset:0}.card .lift{z-index:2;position:relative}.card .faint-line{font:400 var(--t-xs)/1.4 var(--f-mono);color:var(--fg-faint)}.btn.small{min-height:32px;font-size:var(--t-xs);place-self:flex-start start;padding:0 .7rem}.card .cont{font:500 var(--t-sm)/1.4 var(--f-display);color:var(--hue)}.bar{background:var(--surface-2);border-radius:4px;height:4px;overflow:hidden}.bar i{background:var(--hue);border-radius:4px;height:100%;display:block}.empty{text-align:center;color:var(--fg-dim);border:1px dashed var(--rule-hi);border-radius:12px;padding:3rem 1rem}.empty b{font:500 var(--t-lg)/1.3 var(--f-display);color:var(--fg);margin-bottom:.4rem;display:block}.hl-list{gap:12px;display:grid}.hl-card{border:1px solid var(--rule);border-left:4px solid var(--hue);background:var(--surface);border-radius:10px;gap:.5rem;padding:1rem 1.1rem;text-decoration:none;display:grid}.hl-card blockquote{font:400 var(--t-md)/1.6 var(--f-body);color:var(--fg)}.hl-card blockquote:before{content:"“";color:var(--hue);vertical-align:-.25em;margin-right:.1em;font-size:1.6em;line-height:0}.hl-card .src{font:500 var(--t-xs)/1.4 var(--f-mono);color:var(--fg-faint);flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.hl-card .src .x{margin-left:auto}.menu{position:relative}.menu-pop{border:1px solid var(--rule);background:var(--surface);width:260px;box-shadow:var(--shadow);z-index:80;border-radius:12px;gap:.2rem;padding:.5rem;display:grid;position:absolute;top:calc(100% + 8px);right:0}.menu-pop button,.menu-pop label{text-align:left;font:400 var(--t-sm)/1.3 var(--f-display);background:0 0;border:0;border-radius:8px;padding:.6rem .7rem}.menu-pop button:hover,.menu-pop label:hover{background:var(--surface-2)}.course{max-width:1060px;margin:0 auto;padding:clamp(1.5rem,5vw,3.5rem) clamp(1rem,3vw,2rem) 6rem}.course h1{letter-spacing:-.04em;font-size:clamp(2.2rem,6vw,4rem)}.course .lede{font-size:var(--t-md);color:var(--fg-dim);max-width:68ch;margin-top:1.1rem}.course .lede strong{color:var(--fg)}.course .actions{flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:1.6rem;display:flex}.course .metaline{font:500 var(--t-xs)/1.4 var(--f-mono);color:var(--fg-faint);flex-wrap:wrap;gap:1rem;margin-top:1rem;display:flex}.props{grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:10px;margin-top:2rem;display:grid}.props .p{border:1px solid var(--rule);background:var(--surface);border-top:3px solid var(--hue);border-radius:10px;padding:1rem}.props .p b{font:600 var(--t-sm)/1.3 var(--f-mono);color:var(--hue);margin-bottom:.35rem;display:block}.props .p span{font-size:var(--t-sm);color:var(--fg-dim);line-height:1.55}.partlist{gap:10px;margin-top:2.6rem;display:grid}.partrow{border:1px solid var(--rule);background:var(--surface);border-radius:12px;grid-template-columns:3.2rem 1fr auto;align-items:start;gap:1rem;padding:1rem 1.1rem;text-decoration:none;transition:border-color .15s;display:grid}.partrow:hover{border-color:color-mix(in oklab, var(--hue) 50%, var(--rule))}.partrow .pn{font:600 1.6rem/1 var(--f-display);color:var(--hue)}.partrow h3{font-size:1.15rem}.partrow .chs{font-size:var(--t-sm);color:var(--fg-faint);margin-top:.35rem;line-height:1.5}.partrow .mins{font:500 var(--t-xs)/1 var(--f-mono);color:var(--fg-faint);white-space:nowrap}.partrow.cur{border-color:var(--hue);box-shadow:inset 4px 0 0 var(--hue)}.reader{grid-template-columns:300px minmax(0,1fr);min-height:calc(100vh - 57px);display:grid}.side{border-right:1px solid var(--rule);background:var(--bg);height:calc(100vh - 57px);padding:1.2rem 1rem 3rem;position:sticky;top:57px;overflow-y:auto}.side h2{margin-bottom:.2rem;font-size:1rem}.side h2 a{color:var(--hue);text-decoration:none}.side .ver{font:400 var(--t-xs)/1.4 var(--f-mono);color:var(--fg-faint);margin-bottom:1rem}.side .sp{font:500 var(--t-sm)/1.35 var(--f-display);color:var(--fg-dim);border-radius:8px;padding:.45rem .55rem;text-decoration:none;display:block}.side .sp:hover{background:var(--surface-2);color:var(--fg)}.side .sp.cur{color:var(--fg);background:color-mix(in oklab, var(--hue) 9%, transparent)}.side .sp small{font:500 .68rem/1.2 var(--f-mono);color:var(--fg-faint);display:block}.side .sc{font:400 .82rem/1.35 var(--f-display);color:var(--fg-faint);border-left:2px solid #0000;margin-left:.55rem;padding:.3rem .55rem .3rem 1.4rem;text-decoration:none;display:block}.side .sc.cur{color:var(--hue);border-left-color:var(--hue)}.read{min-width:0;padding:clamp(1.5rem,4vw,3.5rem) clamp(1rem,4vw,3.5rem) 8rem}.read>header{max-width:var(--measure);margin-bottom:3rem}.read>header h1{letter-spacing:-.035em;margin-top:.6rem;font-size:clamp(2rem,5.5vw,3.4rem)}.read>header .standfirst{font-size:var(--t-lg);color:var(--fg-dim);line-height:1.5;font-family:var(--f-body);margin-top:1rem}.read>header .tools{flex-wrap:wrap;gap:.5rem;margin-top:1.4rem;display:flex}@media (max-width:960px){.reader{grid-template-columns:minmax(0,1fr)}.side{display:none}.side.open{z-index:50;width:min(340px,88vw);height:auto;box-shadow:var(--shadow);display:block;position:fixed;inset:57px 0 0}}.ch{max-width:1120px;margin:0 0 4.5rem;scroll-margin-top:5rem}.ch>.head,.read .ch .blocks>*{max-width:var(--measure)}.read .ch .blocks>.fig,.read .ch .blocks>.b-table,.read .ch .blocks>.b-code,.read .ch .blocks>.b-html,.read .ch .blocks>.b-compare{max-width:1120px}.ch>.head{border-top:1px solid var(--rule);align-items:baseline;gap:.9rem;margin-bottom:1.2rem;padding-top:1.2rem;display:flex}.ch>.head .num{font:600 var(--t-sm)/1 var(--f-mono);color:var(--hue);min-width:2.2rem}.ch>.head h2{font-size:clamp(1.45rem,3.4vw,2rem)}.blocks>*+*{margin-top:1.1rem}.b-p{font-size:var(--t-md);line-height:1.75}.b-p b,.b-p strong{font-weight:600}.b-lede{font-size:var(--t-lg);color:var(--fg-dim);line-height:1.6}.b-h{margin-top:1.8rem!important}.b-h.l3{font-size:1.35rem}.b-h.l4{font-size:1.12rem}.b-h.l5{font:600 var(--t-xs)/1.4 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-faint)}.b-code{border:1px solid var(--rule);border-left:3px solid var(--hue);background:var(--surface-2);border-radius:8px;position:relative;overflow:hidden}.b-code .lbl{font:500 var(--t-xs)/1 var(--f-mono);color:var(--fg-faint);border-bottom:1px solid var(--rule);align-items:center;gap:.5rem;padding:.45rem .8rem;display:flex}.b-code pre{font:400 .82rem/1.75 var(--f-mono);color:var(--fg);white-space:pre;tab-size:2;margin:0;padding:.95rem 1rem;overflow-x:auto}.b-code.math pre{white-space:pre-wrap;font-size:.85rem;line-height:1.9}.b-code .copy{border:1px solid var(--rule);background:var(--surface);font:500 .7rem/1.3 var(--f-mono);color:var(--fg-dim);border-radius:6px;margin-left:auto;padding:.2rem .55rem}.b-list{font-size:var(--t-md);padding-left:1.3rem}.b-list li+li{margin-top:.4rem}.b-list li::marker{color:var(--hue)}.b-table{border:1px solid var(--rule);background:var(--surface);border-radius:10px;overflow-x:auto}.b-table table{border-collapse:collapse;width:100%;font:400 .88rem/1.5 var(--f-display)}.b-table th{text-align:left;font:600 .72rem/1.3 var(--f-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--fg-faint);background:var(--surface-2);border-bottom:1px solid var(--rule);white-space:nowrap;padding:.65rem .8rem}.b-table td{border-bottom:1px solid var(--rule);vertical-align:top;color:var(--fg-dim);padding:.6rem .8rem}.b-table tr:last-child td{border-bottom:0}.b-table td:first-child{color:var(--fg);font-weight:500}@media (max-width:640px){.b-table table{min-width:560px}}.b-callout,.b-box,.b-prompt{border:1px solid color-mix(in oklab, var(--hue) 30%, var(--rule));background:color-mix(in oklab, var(--hue) 5%, var(--surface));font-size:var(--t-base);border-radius:10px;padding:1rem 1.15rem;line-height:1.7}.b-callout .lbl,.b-box .lbl,.b-prompt .lbl{font:600 var(--t-xs)/1.3 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--hue);margin-bottom:.45rem;display:block}.b-callout.lab{border-style:dashed}.b-box ol,.b-box ul,.b-callout ol,.b-callout ul{padding-left:1.2rem}.b-box li+li,.b-callout li+li{margin-top:.35rem}.b-prompt{font:400 var(--t-lg)/1.5 var(--f-display)}.b-qa{border:1px solid var(--rule);background:var(--surface);border-radius:10px;overflow:hidden}.b-qa .q{background:var(--surface-2);font:500 var(--t-md)/1.45 var(--f-display);border-bottom:1px solid var(--rule);padding:.8rem 1rem}.b-qa .q b{color:var(--hue);font:600 var(--t-xs)/1 var(--f-mono);margin-right:.5rem}.b-qa .a{color:var(--fg-dim);padding:.9rem 1rem}.b-compare{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:10px;display:grid}.b-compare>div{border:1px solid var(--rule);background:var(--surface);color:var(--fg-dim);font-size:var(--t-base);border-radius:10px;padding:1rem}.b-compare>div b{color:var(--fg);font:600 var(--t-base)/1.4 var(--f-display);margin-bottom:.35rem;display:block}.b-compare>div:first-child b{color:var(--hue)}.b-sources{font-size:var(--t-sm);color:var(--fg-faint);border-top:1px dashed var(--rule-hi);padding-top:.9rem;line-height:1.6}.b-sources:before{content:"Sources";font:600 var(--t-xs)/1.4 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-dim);margin-bottom:.25rem;display:block}.b-quote{border-left:3px solid var(--hue);color:var(--fg-dim);padding-left:1rem;font-style:italic}.b-html{font-size:var(--t-sm);overflow-x:auto}.b-html table{border-collapse:collapse;width:100%}.b-html td,.b-html th{border-bottom:1px solid var(--rule);text-align:left;padding:.4rem .6rem}.b-html svg{max-width:100%;height:auto}.b-html .terms{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:12px;display:grid}.b-html .term{border:1px solid var(--rule);background:var(--surface);border-radius:10px;padding:.8rem}mark.hl{background:var(--mark);color:inherit;box-shadow:0 0 0 1px color-mix(in oklab, var(--mark) 60%, transparent);border-radius:3px;padding:0 .05em}mark.hl.flash{animation:1.6s 2 flash}@keyframes flash{50%{background:color-mix(in oklab, var(--hue) 45%, transparent)}}.fig{border:1px solid var(--rule);background:var(--surface);border-radius:12px;max-width:none;overflow:hidden;margin:1.6rem 0!important}.fig-head{border-bottom:1px solid var(--rule);background:var(--surface-2);align-items:center;gap:.8rem;padding:.65rem .9rem;display:flex}.fig-head .ti{font:600 var(--t-xs)/1.35 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--fg)}.fig-head .su{font:400 var(--t-xs)/1.35 var(--f-mono);color:var(--fg-faint)}.fig-head .grow{flex:1;min-width:0}.fig-stage{overscroll-behavior-x:contain;padding:.6rem;position:relative;overflow-x:auto}.fig-stage svg.kit{width:100%;min-width:640px;height:auto}.fig-stage .plate{background:var(--bg);border-radius:8px;min-width:640px;padding:.4rem}.fig-stage .plate canvas{width:100%}.fig-ctl{border-top:1px solid var(--rule);flex-wrap:wrap;align-items:center;gap:.5rem;padding:.55rem .8rem;display:flex}.fig-ctl .track{background:var(--surface-2);border-radius:6px;flex:1;min-width:80px;height:6px;overflow:hidden}.fig-ctl .track i{background:var(--hue);height:100%;transition:width .3s;display:block}.fig-ctl .pos{font:600 var(--t-xs)/1 var(--f-mono);color:var(--fg-faint);text-align:right;min-width:3.4rem}.fig-ctl .icon-btn{width:44px;height:44px}.fig-cap{border-top:1px solid var(--rule);padding:.9rem 1rem 1rem}.fig-cap .lab{font:600 var(--t-xs)/1.3 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--hue)}.fig-cap .txt{font-size:var(--t-base);margin-top:.35rem;line-height:1.6}.fig-cap .notes{font:500 var(--t-sm)/1.45 var(--f-mono);flex-wrap:wrap;gap:.4rem 1rem;margin-top:.6rem;display:flex}.fig-cap .notes .a{color:var(--fg)}.fig-cap .notes .b{color:var(--fg-faint)}.fig-hint{font:500 .7rem/1 var(--f-mono);color:var(--fg-faint);padding:0 1rem .6rem;display:none}@media (max-width:680px){.fig-hint{display:block}}.fig-full{z-index:200;background:var(--bg);flex-direction:column;display:flex;position:fixed;inset:0}.fig-full .fig{border:0;border-radius:0;flex-direction:column;height:100%;display:flex;margin:0!important}.fig-full .fig-stage{flex:1;place-items:center;display:grid;overflow:auto}.fig-full .fig-stage svg.kit{min-width:0;max-height:100%}.fig-full .fig-stage .plate{width:min(100%,210vh - 462px);min-width:0}@media (orientation:portrait) and (max-width:760px){.fig-full{transform-origin:0 0;width:100vh;height:100vw;inset:0 auto auto 100vw;transform:rotate(90deg)}}.hl-pop{z-index:300;background:var(--fg);color:var(--bg);box-shadow:var(--shadow);border-radius:999px;gap:.3rem;padding:.3rem;display:flex;position:fixed;transform:translate(-50%,-110%)}.hl-pop button{color:inherit;font:600 var(--t-sm)/1 var(--f-display);background:0 0;border:0;border-radius:999px;padding:.5rem .85rem}.hl-pop button:hover{background:color-mix(in oklab, var(--bg) 18%, transparent)}.toast{z-index:400;background:var(--fg);color:var(--bg);font:500 var(--t-sm)/1 var(--f-display);box-shadow:var(--shadow);border-radius:999px;padding:.7rem 1.1rem;position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%)}.pnav{max-width:var(--measure);grid-template-columns:1fr 1fr;gap:10px;margin-top:3rem;display:grid}.pnav a{border:1px solid var(--rule);background:var(--surface);border-radius:12px;padding:1rem;text-decoration:none}.pnav a:hover{border-color:var(--hue)}.pnav a.next{text-align:right;grid-column:2}.pnav small{font:500 var(--t-xs)/1.3 var(--f-mono);color:var(--fg-faint);display:block}.pnav b{font:500 var(--t-base)/1.35 var(--f-display)}.side-toggle{display:none}@media (max-width:960px){.side-toggle{display:inline-grid}}@media (max-width:520px){.hide-xs,.topbar .crumb{display:none}}.fig-full .fig{grid-template:"head head""stage cap"minmax(0,1fr)"stage ctl"/minmax(0,1fr) min(340px,36%);display:grid}.fig-full .fig-head{grid-area:head}.fig-full .fig-stage{grid-area:stage;min-height:0;padding:.8rem}.fig-full .fig-stage svg.kit{width:100%;height:100%;max-height:none}.fig-full .fig-stage .plate{width:100%}.fig-full .fig-cap{border-top:0;border-left:1px solid var(--rule);grid-area:cap;overflow-y:auto}.fig-full .fig-ctl{border-left:1px solid var(--rule);grid-area:ctl}.fig-full .fig-ctl .track{min-width:40px}.fig-full .fig-hint{display:none!important}@media (max-height:460px){.fig-full .fig-cap .txt{font-size:.92rem}.fig-full .fig-head{padding:.4rem .8rem}}.b-html .term>b,.b-html .term p>b{font:600 var(--t-xs)/1.4 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--hue);margin-top:.55rem;display:block}.b-html .term h4{margin-bottom:.5rem}
.deck{z-index:150;background:var(--bg);color:var(--fg);isolation:isolate;--deck-ink:var(--fg);--deck-dim:var(--fg-dim);grid-template-rows:auto 1fr auto;display:grid;position:fixed;inset:0;overflow:hidden}.deck-bg{z-index:-1;transition:background .6s;position:absolute;inset:0;overflow:hidden}.deck-bg i{filter:blur(70px);opacity:0;border-radius:50%;transition:opacity .8s,transform 1.2s;position:absolute}.deck[data-design=aurora] .deck-bg{background:radial-gradient(120% 90% at 10% 0%, color-mix(in oklab, var(--hue) 10%, var(--bg)), var(--bg) 60%)}.deck[data-design=aurora] .deck-bg i{opacity:.55;animation:22s ease-in-out infinite alternate drift}.deck[data-design=aurora] .b1{background:color-mix(in oklab, var(--hue) 45%, transparent);width:55vmax;height:55vmax;top:-18vmax;left:-12vmax}.deck[data-design=aurora] .b2{background:color-mix(in oklab, var(--signal) 35%, transparent);width:42vmax;height:42vmax;bottom:-16vmax;right:-14vmax;animation-delay:-6s!important}.deck[data-design=aurora] .b3{background:color-mix(in oklab, var(--hue) 22%, var(--ok));width:30vmax;height:30vmax;top:10vmax;right:18vmax;opacity:.25!important;animation-delay:-12s!important}[data-theme=dark] .deck[data-design=aurora] .deck-bg i{opacity:.38}@keyframes drift{to{transform:translate(6vmax,4vmax)scale(1.12)}}.deck[data-design=paper] .deck-bg{background:linear-gradient(180deg, var(--surface), var(--bg))}.deck[data-design=paper] .deck-bg:before{content:"";background:var(--hue);width:8px;position:absolute;top:0;bottom:0;left:0}.deck[data-design=paper] .deck-bg:after{content:"";border:1px solid color-mix(in oklab, var(--hue) 22%, transparent);width:34vmax;height:34vmax;box-shadow:0 0 0 6vmax color-mix(in oklab, var(--hue) 4%, transparent);border-radius:50%;position:absolute;top:-10vmax;right:-10vmax}.deck[data-design=grid] .deck-bg{background:linear-gradient(color-mix(in oklab, var(--hue) 9%, transparent) 1px, transparent 1px) 0 0 / 32px 32px, linear-gradient(90deg, color-mix(in oklab, var(--hue) 9%, transparent) 1px, transparent 1px) 0 0 / 32px 32px, radial-gradient(80% 70% at 85% 15%, color-mix(in oklab, var(--hue) 9%, var(--bg)), var(--bg))}.deck[data-design=mono] .deck-bg{background:linear-gradient(135deg, var(--hue), color-mix(in oklab, var(--hue) 70%, #000))}[data-theme=dark] .deck[data-design=mono] .deck-bg{background:linear-gradient(135deg, color-mix(in oklab, var(--hue) 55%, #000), #07080a)}.deck[data-design=mono] .slide{color:#fff;--deck-dim:#ffffffc7}.deck[data-design=mono] .kicker{color:#ffffffbf}.deck[data-design=mono] .big-n{color:#fff}.deck[data-design=stage] .deck-bg{background:radial-gradient(90% 80% at 50% 40%, var(--surface), var(--bg))}.deck-top{align-items:center;gap:.8rem;padding:.7rem clamp(.8rem,2.5vw,1.6rem);display:flex}.deck-top .crumb{min-width:0;line-height:1.25;display:grid}.deck-top .crumb b{font:600 var(--t-sm)/1.2 var(--f-display);color:var(--hue);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.deck-top .crumb span{font:400 var(--t-xs)/1.3 var(--f-mono);color:var(--fg-faint);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.deck-top .sp{flex:1}.deck-top .count{white-space:nowrap;font:600 var(--t-xs)/1 var(--f-mono);color:var(--fg-faint)}.deck[data-design=mono] .deck-top .crumb b,.deck[data-design=mono] .deck-top .count,.deck[data-design=mono] .deck-top .crumb span{color:#ffffffd9}.deck .icon-btn{background:color-mix(in oklab, var(--surface) 80%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.deck-bar{padding:.6rem clamp(.8rem, 2.5vw, 1.6rem) max(.7rem, env(safe-area-inset-bottom));align-items:center;gap:.5rem;display:flex}.deck-bar .sep{background:var(--rule);width:1px;height:26px;margin:0 .2rem}.deck-progress{background:color-mix(in oklab, var(--fg) 10%, transparent);border-radius:6px;flex:1;height:6px;overflow:hidden}.deck-progress i{background:var(--hue);border-radius:6px;height:100%;transition:width .45s cubic-bezier(.2,.8,.2,1);display:block}.deck[data-design=mono] .deck-progress i{background:#fff}@media (max-width:560px){.deck-bar{gap:.3rem}.deck-bar .sep,.hide-sm{display:none}.deck .icon-btn{width:38px;height:38px}}.slide{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;min-height:0;padding:0 clamp(1rem,6vw,6rem);display:grid;position:relative;overflow-y:auto}.slide>*{justify-self:center;width:100%;max-width:1180px;margin:auto 0;padding:clamp(.5rem,2vh,2rem) 0 clamp(1rem,4vh,3rem)}.anim{will-change:transform, opacity}.s-part .kicker,.s-chapter .kicker,.s-end .kicker{color:var(--hue);font-size:clamp(.72rem,1.3vw,.9rem)}.s-part h1{letter-spacing:-.045em;max-width:16ch;margin-top:1rem;font-size:clamp(2.4rem,7vw,6rem);line-height:.98}.s-part .sf{max-width:62ch;font:400 clamp(1.05rem, 2vw, 1.45rem)/1.5 var(--f-body);color:var(--deck-dim);margin-top:1.4rem}.s-part .toc{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:.5rem 1.4rem;margin-top:2rem;padding:0;list-style:none;display:grid}.s-part .toc li{font:500 clamp(.85rem, 1.4vw, 1rem)/1.35 var(--f-display);color:var(--deck-dim);gap:.7rem;display:flex}.s-part .toc li span{font:600 .8rem/1.6 var(--f-mono);color:var(--hue)}.s-chapter{position:relative}.s-chapter .big-n{font:700 clamp(10rem, 34vw, 30rem)/.8 var(--f-display);letter-spacing:-.06em;color:var(--hue);opacity:.16;pointer-events:none;-webkit-user-select:none;user-select:none;position:absolute;top:50%;right:-2vw;transform:translateY(-50%)}.s-chapter h2{letter-spacing:-.04em;max-width:15ch;margin-top:1rem;font-size:clamp(2.2rem,6.4vw,5.6rem);line-height:1;position:relative}.s-crumb{font:500 clamp(.8rem, 1.3vw, 1rem)/1.3 var(--f-display);color:var(--fg-faint);align-items:baseline;gap:.7rem;margin-bottom:clamp(1rem,3vh,2rem);display:flex}.s-crumb span{font:700 .85em/1 var(--f-mono);color:var(--hue);background:color-mix(in oklab, var(--hue) 12%, transparent);border-radius:6px;padding:.3rem .5rem}.s-crumb em{font:600 .8em/1 var(--f-mono);margin-left:auto;font-style:normal}.deck .blocks>*+*{margin-top:clamp(.9rem,2.2vh,1.5rem)}.deck .b-p{font-size:clamp(1.15rem,2.15vw,1.75rem);line-height:1.55}.deck .b-lede{font-size:clamp(1.25rem,2.4vw,1.9rem)}.deck .b-h.l3{font-size:clamp(1.4rem,2.8vw,2.3rem)}.deck .b-h.l4{font-size:clamp(1.2rem,2.2vw,1.8rem)}.deck .b-list{font-size:clamp(1.1rem,2vw,1.6rem);line-height:1.5}.deck .b-code pre{max-height:62vh;font-size:clamp(.82rem,1.45vw,1.12rem);line-height:1.7}.deck .b-table table{font-size:clamp(.9rem,1.5vw,1.15rem)}.deck .b-table td,.deck .b-table th{padding:.75rem .95rem}.deck .b-callout,.deck .b-box,.deck .b-prompt{padding:1.2rem 1.4rem;font-size:clamp(1.05rem,1.9vw,1.45rem)}.deck .b-prompt{font-size:clamp(1.3rem,2.6vw,2.1rem)}.deck .b-qa .q{font-size:clamp(1.15rem,2vw,1.6rem)}.deck .b-qa .a{font-size:clamp(1.02rem,1.8vw,1.4rem)}.deck .b-compare>div{font-size:clamp(1rem,1.7vw,1.3rem)}.deck .b-sources{font-size:clamp(.85rem,1.3vw,1rem)}.deck .b-p,.deck .b-list,.deck .b-callout,.deck .b-box{max-width:62ch}.deck[data-design=paper] .b-code,.deck[data-design=grid] .b-code,.deck[data-design=paper] .b-table,.deck[data-design=grid] .b-table{box-shadow:var(--shadow)}.typer.typing .blocks>:last-child:after{content:"";vertical-align:-.15em;background:var(--hue);width:.55ch;height:1.1em;margin-left:.1ch;animation:1s steps(2,end) infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.s-figure{flex-direction:column;height:100%;display:flex;max-width:1400px!important;padding-top:0!important}.s-figure .fig-wrap{flex:1;min-height:0;display:flex}.s-figure .fig{box-shadow:var(--shadow);flex-direction:column;flex:1;display:flex;margin:0!important}.s-figure .fig-stage{flex:1;place-items:center;min-height:0;padding:clamp(.4rem,1.5vw,1.2rem);display:grid;overflow:hidden}.s-figure .fig-stage svg.kit{width:100%;min-width:0;height:100%;max-height:calc(100vh - 330px)}.s-figure .fig-stage .plate{width:min(100%,210vh - 693px);min-width:0}.s-figure .fig-cap .txt{font-size:clamp(1rem,1.8vw,1.35rem)}.s-figure .fig-cap .notes{font-size:clamp(.85rem,1.4vw,1.05rem)}@media (max-width:760px){.s-figure .fig-stage{place-items:start;overflow-x:auto}.s-figure .fig-stage svg.kit{min-width:620px;height:auto;max-height:none}.s-figure .fig-stage .plate{min-width:620px}}.s-end h2{letter-spacing:-.04em;max-width:18ch;margin-top:1rem;font-size:clamp(2rem,5vw,4rem)}.s-end .row{flex-wrap:wrap;gap:.6rem;margin-top:2rem;display:flex}.countdown{right:clamp(.8rem,2.5vw,1.6rem);bottom:calc(4.6rem + env(safe-area-inset-bottom));z-index:5;background:color-mix(in oklab, var(--surface) 85%, transparent);width:54px;height:54px;box-shadow:var(--shadow);border:0;border-radius:50%;place-items:center;padding:0;display:grid;position:fixed}.countdown svg{width:44px;height:44px;position:absolute;inset:5px;transform:rotate(-90deg)}.countdown .trk{fill:none;stroke:var(--rule);stroke-width:3px}.countdown .ring{fill:none;stroke:var(--hue);stroke-width:3px;stroke-linecap:round;transition:stroke-dashoffset .1s linear}.countdown span{font:700 .95rem/1 var(--f-mono);color:var(--fg);position:relative}.deck-panel{z-index:10;border:1px solid var(--rule);background:var(--surface);width:min(360px,100vw - 2rem);max-height:calc(100vh - 7rem);box-shadow:var(--shadow);border-radius:16px;gap:.9rem;padding:1rem;display:grid;position:fixed;bottom:4.8rem;right:1rem;overflow-y:auto}.deck-panel .ph{font:600 var(--t-md)/1.2 var(--f-display);justify-content:space-between;align-items:center;display:flex}.deck-panel .row{justify-content:space-between;align-items:center;gap:1rem;display:flex}.deck-panel .row.col{flex-direction:column;align-items:stretch;gap:.45rem}.deck-panel .row span{display:grid}.deck-panel .row b{font:500 var(--t-sm)/1.3 var(--f-display)}.deck-panel .row small{font:400 var(--t-xs)/1.3 var(--f-mono);color:var(--fg-faint)}.deck-panel input[type=range]{width:100%;accent-color:var(--hue);height:28px}.deck-panel input[type=checkbox]{width:22px;height:22px;accent-color:var(--hue)}.deck-panel select{border:1px solid var(--rule);background:var(--surface-2);border-radius:10px;min-height:40px;padding:0 .6rem}.deck-panel .note{font:400 var(--t-xs)/1.5 var(--f-mono);color:var(--fg-faint)}@media (max-width:560px){.deck-panel{border-radius:16px 16px 12px 12px;width:auto;bottom:4.4rem;left:.5rem;right:.5rem}}@media (prefers-reduced-motion:reduce){.deck-bg i{animation:none!important}}.deck-panel>*,.deck-panel .row>*{min-width:0}.deck-panel select{text-overflow:ellipsis;width:100%;max-width:100%}
