@font-face{font-family:Big Shoulders;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/b64bfffbf346612f.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Big Shoulders;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ef549d9ec978f04d.woff2) format("woff2");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}@font-face{font-family:Big Shoulders;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/fb407b189f36a608.p.woff2) format("woff2");unicode-range:u+00??,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}.__className_00f8ae{font-family:Big Shoulders;font-style:normal}.__variable_00f8ae{--display:"Big Shoulders"}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5-s.woff2) format("woff2");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}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d4368bf94c0ec4-s.p.woff2) format("woff2");unicode-range:u+00??,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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5-s.woff2) format("woff2");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}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d4368bf94c0ec4-s.p.woff2) format("woff2");unicode-range:u+00??,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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5-s.woff2) format("woff2");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}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d4368bf94c0ec4-s.p.woff2) format("woff2");unicode-range:u+00??,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:IBM Plex Sans Fallback;src:local("Arial");ascent-override:101.32%;descent-override:27.18%;line-gap-override:0.00%;size-adjust:101.17%}.__className_1bc20f{font-family:IBM Plex Sans,IBM Plex Sans Fallback;font-style:normal}.__variable_1bc20f{--sans:"IBM Plex Sans","IBM Plex Sans Fallback"}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/58f386aa6b1a2a92-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/011e180705008d6f-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/7ba5fb2a8c88521c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/92eeb95d069020cc-s.woff2) format("woff2");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}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/d3ebbfd689654d3a-s.p.woff2) format("woff2");unicode-range:u+00??,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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ef4d5661765d0e49-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/d29838c109ef09b4-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e40af3453d7c920a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/99dcf268bda04fe5-s.woff2) format("woff2");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}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/98e207f02528a563-s.p.woff2) format("woff2");unicode-range:u+00??,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:IBM Plex Mono Fallback;src:local("Arial");ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.00%;size-adjust:134.59%}.__className_46fe82{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal}.__variable_46fe82{--mono:"IBM Plex Mono","IBM Plex Mono Fallback"}@font-face{font-family:Caveat;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/3116fcb204c40969-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Caveat;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/0356e5937fc4ee74-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Caveat;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/9313cbe49017d230-s.woff2) format("woff2");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}@font-face{font-family:Caveat;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/7fdeec0c074ef54a-s.p.woff2) format("woff2");unicode-range:u+00??,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:Caveat Fallback;src:local("Arial");ascent-override:124.77%;descent-override:38.99%;line-gap-override:0.00%;size-adjust:76.94%}.__className_2ecfb6{font-family:Caveat,Caveat Fallback;font-weight:600;font-style:normal}.__variable_2ecfb6{--note:"Caveat","Caveat Fallback"}*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{color-scheme:light;--paper:#e7ecf2;--paper-2:#dde4ec;--panel:#f8fafc;--panel-2:#eef2f7;--ink:#16263d;--graphite:#55677b;--faint:#8496a8;--line:rgba(22,38,61,0.16);--line-strong:rgba(22,38,61,0.34);--grid:rgba(31,95,139,0.1);--grid-major:rgba(31,95,139,0.16);--blueprint:#1f5f8b;--blueprint-bright:#2f88c2;--pencil:#c8452f;--node-face:#ffffff;--node-stroke:#16263d;--ink-home:#1f5f8b;--ink-walk:#2563eb;--ink-ll:#059669;--ink-bit:#0d9488;--ink-rec:#7c3aed;--ink-sort:#c2790f;--ink-stack:#e11d48;--accent:var(--ink-home);--ok:#0f9d63;--warn:#c2790f;--danger:#c8452f;--shadow-sm:0 1px 2px rgba(22,38,61,0.05),0 2px 6px rgba(22,38,61,0.05);--shadow-md:0 1px 2px rgba(22,38,61,0.06),0 10px 26px rgba(22,38,61,0.09);--shadow-lift:0 2px 4px rgba(22,38,61,0.08),0 20px 44px rgba(22,38,61,0.14);--r-plate:6px;--r-card:14px;--r-control:8px;--r-pill:999px;--e-out:cubic-bezier(0.22,1,0.36,1);--d-fast:140ms;--d-mid:280ms;--d-draw:520ms;--sans:"IBM Plex Sans",ui-sans-serif,system-ui,sans-serif;--mono:"IBM Plex Mono",ui-monospace,monospace;--display:"Big Shoulders","IBM Plex Sans",sans-serif;--note:"Caveat","Comic Sans MS",cursive;--header-h:60px;--content-wide:1120px;--content-narrow:820px;--bg:var(--paper);--bg-elevated:var(--panel);--bg-muted:var(--panel-2);--bg-subtle:var(--panel-2);--text:var(--ink);--text-secondary:var(--graphite);--text-tertiary:var(--faint);--border:var(--line);--border-strong:var(--line-strong);--radius:var(--r-control);--radius-lg:var(--r-card);--radius-xl:24px;--shadow-lg:var(--shadow-lift);--font-sans:var(--sans);--font-mono:var(--mono);--teal:var(--ink-bit);--teal-dark:#0f766e;--teal-light:#ccfbf1;--teal-glow:rgba(13,148,136,0.25);--purple:var(--ink-rec);--purple-light:#ede9fe;--amber:var(--ink-sort);--amber-light:#fef3c7;--blue:var(--ink-walk);--blue-light:#dbeafe;--green:var(--ink-ll);--green-light:#d1fae5}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--paper:#0b1622;--paper-2:#0e1c2c;--panel:#12233a;--panel-2:#0f1e30;--ink:#e9f1f8;--graphite:#90a6bb;--faint:#65798d;--line:rgba(134,182,216,0.2);--line-strong:rgba(134,182,216,0.4);--grid:rgba(90,169,224,0.12);--grid-major:rgba(90,169,224,0.2);--blueprint:#5aa9e0;--blueprint-bright:#86d1f6;--pencil:#ff7d5f;--node-face:#0e2033;--node-stroke:#86b6d8;--ink-home:#5aa9e0;--ink-walk:#60a5fa;--ink-ll:#34d399;--ink-bit:#2dd4bf;--ink-rec:#a78bfa;--ink-sort:#fbbf24;--ink-stack:#fb7185;--ok:#34d399;--warn:#fbbf24;--danger:#ff7d5f;--shadow-sm:0 1px 2px rgba(0,0,0,0.4);--shadow-md:0 12px 28px rgba(0,0,0,0.5);--shadow-lift:0 22px 46px rgba(0,0,0,0.6);--teal-light:#042f2e;--purple-light:#2e1065;--amber-light:#451a03;--blue-light:#1e3a8a;--green-light:#064e3b}}:root[data-theme=dark]{color-scheme:dark;--paper:#0b1622;--paper-2:#0e1c2c;--panel:#12233a;--panel-2:#0f1e30;--ink:#e9f1f8;--graphite:#90a6bb;--faint:#65798d;--line:rgba(134,182,216,0.2);--line-strong:rgba(134,182,216,0.4);--grid:rgba(90,169,224,0.12);--grid-major:rgba(90,169,224,0.2);--blueprint:#5aa9e0;--blueprint-bright:#86d1f6;--pencil:#ff7d5f;--node-face:#0e2033;--node-stroke:#86b6d8;--ink-home:#5aa9e0;--ink-walk:#60a5fa;--ink-ll:#34d399;--ink-bit:#2dd4bf;--ink-rec:#a78bfa;--ink-sort:#fbbf24;--ink-stack:#fb7185;--ok:#34d399;--warn:#fbbf24;--danger:#ff7d5f;--shadow-sm:0 1px 2px rgba(0,0,0,0.4);--shadow-md:0 12px 28px rgba(0,0,0,0.5);--shadow-lift:0 22px 46px rgba(0,0,0,0.6);--teal-light:#042f2e;--purple-light:#2e1065;--amber-light:#451a03;--blue-light:#1e3a8a;--green-light:#064e3b}html{scroll-behavior:smooth}body{min-height:100vh;color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6;background-color:var(--paper);background-image:linear-gradient(var(--grid-major) 1px,transparent 1px),linear-gradient(90deg,var(--grid-major) 1px,transparent 1px),linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:140px 140px,140px 140px,28px 28px,28px 28px;-webkit-font-smoothing:antialiased}img,svg{max-width:100%}a{color:var(--blueprint)}::selection{background:var(--pencil);color:#fff}:focus-visible{outline:2.5px solid var(--pencil);outline-offset:2px;border-radius:2px}.titleblock{position:-webkit-sticky;position:sticky;top:10px;z-index:40;display:flex;align-items:stretch;flex-wrap:wrap;width:min(var(--content-wide),calc(100% - 40px));margin:14px auto 0;border:1.5px solid var(--ink);background:color-mix(in srgb,var(--panel) 84%,transparent);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.tb-cell{display:flex;flex-direction:column;justify-content:center;padding:9px 15px;border-right:1.5px solid var(--ink)}.tb-cell:last-child{border-right:none}.tb-brand{flex-direction:row;align-items:center;gap:11px;text-decoration:none;color:var(--ink)}.tb-stamp{display:grid;place-items:center;width:34px;height:34px;border:1.5px solid var(--blueprint);color:var(--blueprint);font-family:var(--mono);font-size:15px;transform:rotate(-3deg)}.tb-name{font-family:var(--display);font-weight:700;font-size:21px;letter-spacing:.02em;text-transform:uppercase;line-height:1}.tb-nav{display:flex;align-items:stretch;flex-wrap:wrap;border-right:1.5px solid var(--ink)}.tb-link{display:flex;align-items:center;padding:8px 15px;font-family:var(--mono);font-size:12px;letter-spacing:.04em;text-transform:uppercase;text-decoration:none;color:var(--graphite);border-left:2.5px solid transparent;transition:color var(--d-fast),background var(--d-fast)}.tb-link:first-child{border-left:none}.tb-link.on,.tb-link:hover{color:var(--ink);background:var(--panel-2)}.tb-link.on{border-left-color:var(--pencil)}.tb-grow{flex:1 1;border-right:1.5px solid var(--ink)}.theme-btn{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding:8px 13px;background:transparent;color:var(--ink);border:1.5px solid var(--ink);cursor:pointer}.theme-btn:hover{color:var(--blueprint);border-color:var(--blueprint)}@media (max-width:640px){.titleblock{width:calc(100% - 24px)}.tb-grow{display:none}.tb-theme{margin-left:auto;border-left:1.5px solid var(--ink);border-right:none}.tb-nav{order:3;flex-basis:100%;border-right:none;border-top:1.5px solid var(--ink)}.tb-link{flex:1 1 auto;justify-content:center;min-height:44px}}.site-footer{margin-top:auto;padding:32px 24px;border-top:1px solid var(--border);text-align:center;font-size:13px;color:var(--text-secondary)}.site-footer a{color:var(--teal);text-decoration:none}.site-footer a:hover{text-decoration:underline}.tutorial-shell{display:flex;flex-direction:column;min-height:100vh}.tutorial-hero{max-width:var(--content-narrow);margin:0 auto;padding:28px 20px 8px;width:100%}.tutorial-hero .breadcrumb{font-size:12px;color:var(--text-tertiary);margin-bottom:12px;font-family:var(--font-mono)}.tutorial-hero .breadcrumb a{color:var(--text-secondary);text-decoration:none}.tutorial-hero .breadcrumb a:hover{color:var(--teal)}.tutorial-hero h1{font-size:clamp(22px,4vw,28px);font-weight:600;letter-spacing:-.03em;margin-bottom:8px;line-height:1.2}.tutorial-hero .hero-desc{font-size:15px;color:var(--text-secondary);max-width:52ch;line-height:1.6}.tutorial-hero .hero-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.hero-tag{font-size:11px;font-weight:500;font-family:var(--font-mono);padding:4px 10px;border-radius:20px;background:var(--bg-muted);color:var(--text-secondary);border:1px solid var(--border)}.tutorial-main{max-width:var(--content-narrow);margin:0 auto;padding:0 20px 48px;width:100%}.home-wrap{min-height:100vh;display:flex;flex-direction:column}.home-hero{position:relative;max-width:var(--content-wide);margin:0 auto;padding:52px 24px 12px;width:100%}.home-hero-inner{max-width:760px}.home-eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11.5px;text-transform:uppercase;letter-spacing:.14em;color:var(--accent);margin-bottom:14px}.home-hero h1{font-family:var(--display);font-weight:700;text-transform:uppercase;font-size:clamp(34px,6vw,60px);line-height:1.02;letter-spacing:.005em;margin-bottom:16px}.home-hero h1 em{font-style:normal;color:var(--accent)}.home-lead{font-size:17px;color:var(--graphite);line-height:1.6;max-width:560px;margin:0 0 24px}.home-cta-row{display:flex;flex-wrap:wrap;gap:12px}.hero-figure{max-width:var(--content-wide);margin:6px auto 0;padding:0 24px}.svg-wrap{overflow-x:auto;padding:8px 2px 2px}svg.schem{display:block;width:100%;height:auto;min-width:560px}.s-face{fill:var(--node-face);stroke:var(--node-stroke);stroke-width:1.6}.s-slot{stroke:var(--node-stroke);stroke-width:1;opacity:.4}.s-val{fill:var(--node-stroke);font-family:var(--mono);font-weight:500;font-size:22px}.s-arrow{fill:none;stroke:var(--blueprint);stroke-width:2.2}.s-pill{fill:var(--blueprint)}.s-pill-t{fill:#fff;font-family:var(--mono);font-size:12px;font-weight:600}.s-tick{stroke:var(--blueprint);stroke-width:1.6}.s-none{fill:none;stroke:var(--graphite);stroke-dasharray:4 3}.s-note{fill:var(--pencil);font-family:var(--note);font-size:24px}.s-note-l{fill:none;stroke:var(--pencil);stroke-width:1.7;stroke-linecap:round}.hero-cap{display:flex;justify-content:flex-end;padding:2px 4px 0;margin:0}.hero-replay{font-family:var(--mono);font-size:12px;color:var(--accent);background:none;border:1px solid var(--line-strong);border-radius:var(--r-pill);padding:3px 12px;cursor:pointer}.hero-replay:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}.js .node{opacity:0;transform:translateY(10px);transition:opacity .42s ease,transform .42s var(--e-out)}.js .arrow{opacity:0;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset var(--d-draw) ease,opacity .2s ease}.js .note-g{opacity:0;transition:opacity .5s ease}.built .node{opacity:1;transform:translateY(0)}.built .arrow{opacity:1;stroke-dashoffset:0}.built .note-g{opacity:1}.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 22px;font-size:14px;font-weight:600;font-family:var(--font-sans);text-decoration:none;border-radius:var(--radius);border:1px solid transparent;cursor:pointer;transition:transform .15s,box-shadow .15s,background .15s}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--teal);color:#fff;box-shadow:0 4px 14px var(--teal-glow)}.btn-primary:hover{background:var(--teal-dark);box-shadow:0 6px 20px var(--teal-glow)}.btn-ghost{background:var(--bg-elevated);color:var(--text);border-color:var(--border-strong)}.btn-ghost:hover{background:var(--bg-muted)}.home-section{max-width:var(--content-wide);margin:0 auto;padding:0 24px 64px;width:100%}.section-head{margin-bottom:28px}.section-head h2{font-size:22px;font-weight:600;letter-spacing:-.02em;margin-bottom:8px}.section-head p{font-size:15px;color:var(--text-secondary);max-width:50ch}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:16px;gap:16px}.tcard{display:flex;flex-direction:column;gap:9px;height:100%;text-decoration:none;color:inherit;border:1.5px solid var(--line-strong);background:var(--panel);border-radius:var(--r-card);padding:18px;box-shadow:var(--shadow-sm);transition:transform var(--d-mid) var(--e-out),box-shadow var(--d-mid)}.tcard:hover{transform:translateY(-4px);box-shadow:var(--shadow-lift)}.tcard .ic{width:48px;height:48px;border:1.5px solid var(--accent);border-radius:10px;display:grid;place-items:center;color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.tcard h5{font-family:var(--display);font-weight:700;text-transform:uppercase;font-size:19px;letter-spacing:.02em;margin:2px 0 0}.tcard p{font-size:13.5px;color:var(--graphite);line-height:1.55;margin:0;flex:1 1}.tcard .meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}.tcard .arw{font-family:var(--mono);font-size:12px;color:var(--accent);margin-top:6px}.features-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:16px;gap:16px}.feature-box{padding:20px;border-radius:var(--radius-lg);background:var(--bg-muted);border:1px solid var(--border)}.feature-box h4{font-size:14px;font-weight:600;margin-bottom:6px}.feature-box p{font-size:13px;color:var(--text-secondary);line-height:1.55}.code-block{background:#0f172a;color:#e2e8f0;border-radius:var(--radius);padding:14px 16px;overflow-x:auto;font-family:var(--font-mono);font-size:13px;line-height:1.65;border:1px solid rgba(148,163,184,.18)}.code-block code{font-family:inherit;white-space:pre}.code-block-sm{font-size:12px;padding:12px 14px}.tok-comment{color:#64748b;font-style:italic}.tok-str{color:#86efac}.tok-num{color:#fda4af}.tok-kw{color:#93c5fd;font-weight:600}.tok-fn{color:#fcd34d}.code{border:1.5px solid var(--line-strong);border-radius:var(--r-plate);overflow:hidden;background:var(--panel-2)}.code-h{display:flex;justify-content:space-between;gap:12px;padding:8px 14px;border-bottom:1px solid var(--line);font-size:11px;color:var(--graphite)}.code pre,.code-h{font-family:var(--mono)}.code pre{margin:0;padding:12px 14px;overflow-x:auto;font-size:13px;line-height:1.7}.code .cl{display:block}.code .ln{display:inline-block;width:22px;color:var(--faint);-webkit-user-select:none;-moz-user-select:none;user-select:none}.code .hl{display:block;margin:0 -14px;padding:0 14px;background:color-mix(in srgb,var(--accent) 12%,transparent);border-left:2px solid var(--accent)}.code .tok-kw{color:var(--ink-rec);font-weight:600}.code .tok-fn{color:var(--blueprint)}.code .tok-comment{color:var(--faint);font-style:italic}.code .tok-num{color:var(--ink-sort)}.code .tok-str{color:var(--ink-ll)}.analogy{display:flex;gap:10px;padding:12px 16px;font-size:14px;line-height:1.6;color:var(--text-secondary);background:var(--bg-muted);border-radius:var(--radius);border:1px solid var(--border);max-width:72ch}.analogy code{font-family:var(--font-mono);font-size:12px;background:var(--bg-subtle);padding:1px 5px;border-radius:4px;color:var(--text)}.fieldnote{display:flex;gap:13px;padding:14px 16px;border:1.5px solid var(--line);border-left:4px solid var(--accent);border-radius:0 var(--r-plate) var(--r-plate) 0;background:color-mix(in srgb,var(--accent) 6%,transparent)}.fieldnote .ic{flex:none;display:flex;color:var(--accent)}.fieldnote .h{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:3px}.fieldnote p{margin:0;font-size:14.5px;line-height:1.6}.transport{border:1.5px solid var(--line-strong);border-radius:var(--r-plate);background:var(--panel);overflow:hidden}.tp-caption{min-height:46px;display:flex;align-items:center;gap:10px;padding:11px 15px;border-bottom:1px solid var(--line);background:var(--panel-2);font-size:14.5px}.tp-caption .sn{flex:none;font-family:var(--mono);font-size:11px;color:var(--accent)}.tp-cap-live{display:inline-flex}.tp-controls{display:flex;align-items:center;gap:10px;padding:12px 15px;flex-wrap:wrap}.tp-btn{width:42px;height:42px;display:grid;place-items:center;border:1.5px solid var(--line-strong);border-radius:var(--r-control);background:var(--panel);color:var(--ink);font-size:14px;cursor:pointer}.tp-btn:hover{background:var(--panel-2)}.tp-btn:disabled{opacity:.4;cursor:not-allowed}.tp-btn.play{background:var(--accent);border-color:var(--accent);color:#fff}.tp-btn.play:hover{filter:brightness(1.08)}.tp-scrub{flex:1 1;min-width:120px;display:flex;align-items:center;gap:10px}.tp-scrub input[type=range]{flex:1 1;accent-color:var(--accent)}.tp-count{min-width:64px;text-align:right;font-family:var(--mono);font-size:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tp-count,.tp-speed{color:var(--graphite)}.tp-speed{display:flex;align-items:center;gap:7px;font-family:var(--mono);font-size:11px}.tp-speed input{width:82px;accent-color:var(--accent)}.tp-dots{display:flex;gap:5px;flex-wrap:wrap;padding:0 15px 10px}.tp-dot{width:8px;height:8px;border-radius:50%;border:1px solid var(--accent)}.tp-dot.on{background:var(--accent)}.kb-hint{padding:0 15px 12px;font-family:var(--mono);font-size:11px;color:var(--faint)}.kb-hint kbd{border:solid var(--line-strong);border-width:1px 1px 2px;border-radius:4px;padding:1px 6px;font-size:11px}.state{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1.5px solid var(--line);border-radius:var(--r-plate);background:var(--panel);font-size:14px}.state .dot{width:10px;height:10px;margin-top:6px;flex:none;border-radius:50%;background:var(--faint)}.state .dot.ok{background:var(--ok)}.state .dot.warn{background:var(--warn)}.state .dot.faint{background:var(--faint)}.skeleton{height:12px;border-radius:4px;background:linear-gradient(90deg,var(--panel-2),var(--line),var(--panel-2));background-size:200% 100%;animation:sk 1.3s linear infinite}.skeleton-stack{display:flex;flex-direction:column;gap:9px}@keyframes sk{to{background-position:-200% 0}}.plate{border:1.5px solid var(--line-strong);background:var(--panel);border-radius:var(--r-plate);box-shadow:var(--shadow-sm);overflow:hidden}.plate-cap{display:flex;align-items:baseline;gap:10px;padding:11px 15px;border-bottom:1.5px solid var(--line)}.plate-no{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--accent)}.plate-no,.plate-t{text-transform:uppercase}.plate-t{font-family:var(--display);font-weight:500;font-size:18px;letter-spacing:.03em}.plate-b{padding:15px;display:flex;flex-direction:column;gap:13px}.diagram{border:1px solid var(--line);border-radius:var(--r-plate);background-color:var(--panel-2);background-image:radial-gradient(circle at 1px 1px,var(--grid-major) 1px,transparent 0);background-size:20px 20px;padding:8px;overflow-x:auto}.crumb{display:flex;gap:8px;align-items:center;font-family:var(--mono);font-size:12px}.crumb,.crumb a{color:var(--graphite)}.crumb a{text-decoration:none}.crumb a:hover,.crumb b{color:var(--accent)}.crumb b{font-weight:500}.tag{font-family:var(--mono);font-size:11.5px;padding:4px 10px;border-radius:var(--r-pill);border:1px solid var(--line-strong);color:var(--graphite);background:var(--panel)}.tag.accent{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,transparent);background:color-mix(in srgb,var(--accent) 9%,transparent)}a.tag:hover{border-color:var(--accent);color:var(--accent)}.fieldnote code{font-family:var(--mono);font-size:12.5px;background:var(--panel-2);padding:1px 5px;border-radius:4px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.js .arrow,.js .node,.js .note-g{transition:none;opacity:1;transform:none;stroke-dashoffset:0}}