@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/f639721981034f88-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:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/9766a7e9e2e0ad5a-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/b66cf8e69499582a-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:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/aa016aab0e6d1295-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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/22a5144ee8d83bca-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:Geist Fallback;src:local("Arial");ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.00%;size-adjust:104.76%}.__className_8eaea4{font-family:Geist,Geist Fallback;font-style:normal}.__variable_8eaea4{--font-sans:"Geist","Geist Fallback"}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/013b72fa676f92e0-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:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/b9408752a0c24fb9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/65f03d54ccadf4a8-s.woff2) format("woff2");unicode-range:u+2000-2001,u+2004-2008,u+200a,u+23b8-23bd,u+2500-259f}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e038a29029a234f2-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:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/2b5b02fc7e511755-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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/7d4881bb7e1bf84d-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:Geist Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/013b72fa676f92e0-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:Geist Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/b9408752a0c24fb9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/65f03d54ccadf4a8-s.woff2) format("woff2");unicode-range:u+2000-2001,u+2004-2008,u+200a,u+23b8-23bd,u+2500-259f}@font-face{font-family:Geist Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e038a29029a234f2-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:Geist Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/2b5b02fc7e511755-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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/7d4881bb7e1bf84d-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:Geist Mono Fallback;src:local("Arial");ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.00%;size-adjust:134.59%}.__className_88b4eb{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.__variable_88b4eb{--font-mono:"Geist Mono","Geist Mono Fallback"}.on-dark,:root,[data-theme=dark]{color-scheme:dark;--background:#0b141c;--background-subtle:#0f1b25;--surface:#152735;--surface-elevated:#1c303f;--code-background:#08111a;--border:#24394a;--border-subtle:#192b39;--border-strong:#405667;--foreground:#e4eaf1;--foreground-muted:#aabac8;--foreground-faint:#93a7b8;--slate:#30495e;--steel:#526d83;--accent:#e54845;--accent-hover:#f05a57;--accent-strong:#a92f39;--accent-strong-hover:#b8333d;--accent-subtle:#2a1c25;--accent-muted:#6e2630;--accent-emphasis:#f2726e;--accent-foreground:#0b141c;--on-accent-strong:#e4eaf1;--selection:var(--accent-muted);--header-veil:rgba(11,20,28,0.78);--shadow-sm:0 1px 2px rgba(3,8,12,0.5);--shadow-md:0 6px 20px rgba(3,8,12,0.45);--shadow-lg:0 18px 48px rgba(3,8,12,0.55);--art-sky-top:#0b141c;--art-sky-low:#152735;--art-ridge-far:#30495e;--art-ridge-mid:#1c303f;--art-ridge-near:#0f1b25;--art-ground:#0b141c;--art-line:#526d83;--grid-node:170,186,200;--grid-edge:82,109,131;--grid-accent:229,72,69;color:var(--foreground)}[data-theme=light]{color-scheme:light;--background:#eef2f6;--background-subtle:#e4eaf1;--surface:#f7f9fb;--surface-elevated:#ffffff;--code-background:#e8edf2;--border:#d2dce5;--border-subtle:#dfe6ed;--border-strong:#a9b8c6;--foreground:#0b141c;--foreground-muted:#30495e;--foreground-faint:#46596b;--slate:#a9b8c6;--steel:#7f95a8;--accent:#a92f39;--accent-hover:#922832;--accent-strong:#a92f39;--accent-strong-hover:#922832;--accent-subtle:#f4e3e5;--accent-muted:#d98f95;--accent-emphasis:#a92f39;--accent-foreground:#ffffff;--on-accent-strong:#ffffff;--selection:#f1cfd2;--header-veil:rgba(238,242,246,0.82);--shadow-sm:0 1px 2px rgba(21,39,53,0.08);--shadow-md:0 6px 20px rgba(21,39,53,0.1);--shadow-lg:0 18px 48px rgba(21,39,53,0.14);--art-sky-top:#e4eaf1;--art-sky-low:#d2dce5;--art-ridge-far:#a9b8c6;--art-ridge-mid:#7f95a8;--art-ridge-near:#526d83;--art-ground:#30495e;--art-line:#7f95a8;--grid-node:48,73,94;--grid-edge:82,109,131;--grid-accent:169,47,57}:root{--font-display:var(--font-sans),-apple-system,"SF Pro Display",system-ui,sans-serif;--font-body:var(--font-sans),-apple-system,"SF Pro Text",system-ui,sans-serif;--font-code:var(--font-mono),ui-monospace,"SF Mono",Menlo,monospace;--text-hero:clamp(2.375rem,1.35rem + 4.6vw,5.5rem);--text-display-2xl:clamp(2.375rem,1.5rem + 3.8vw,4.75rem);--text-display-xl:clamp(2.125rem,1.45rem + 2.9vw,3.75rem);--text-display-lg:clamp(1.75rem,1.3rem + 1.8vw,2.75rem);--text-2xl:clamp(1.375rem,1.2rem + 0.75vw,1.75rem);--text-xl:1.3125rem;--text-lg:1.1875rem;--text-md:1.0625rem;--text-sm:0.9375rem;--text-xs:0.8125rem;--text-2xs:0.75rem;--leading-none:1;--leading-display:1.02;--leading-tight:1.15;--leading-snug:1.35;--leading-normal:1.6;--leading-loose:1.75;--tracking-display:-0.045em;--tracking-tight:-0.03em;--tracking-snug:-0.015em;--tracking-wide:0.06em;--tracking-widest:0.14em;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--space-32:128px;--section-gap:clamp(var(--space-20),6vw + 2rem,var(--space-32));--radius-sm:2px;--radius-md:4px;--radius-lg:6px;--duration-fast:120ms;--duration-base:220ms;--duration-slow:360ms;--duration-reveal:700ms;--ease-default:cubic-bezier(0.4,0,0.2,1);--ease-out:cubic-bezier(0.16,1,0.3,1);--ease-in:cubic-bezier(0.4,0,1,1);--ease-emphasized:cubic-bezier(0.2,0,0,1);--container-max:1280px;--container-narrow:760px;--measure:68ch;--container-pad:clamp(var(--space-4),3vw,var(--space-10));--header-height:64px}*,:after,:before{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;background:var(--background);color:var(--foreground);font-family:var(--font-body);font-size:var(--text-md);line-height:var(--leading-normal);font-feature-settings:"ss01","ss03";-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background var(--duration-slow) var(--ease-default),color var(--duration-slow) var(--ease-default)}canvas,img,svg,video{max-width:100%;height:auto;display:block}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);line-height:var(--leading-tight);margin:0}p{margin:0}a{text-decoration:none;transition:color var(--duration-fast) var(--ease-default)}a,button{color:inherit}button{font:inherit;background:none;border:none;padding:0;cursor:pointer}::selection{background:var(--selection);color:var(--foreground)}:focus{outline:none}:focus-visible{outline:none;box-shadow:0 0 0 2px var(--background),0 0 0 4px var(--accent);border-radius:var(--radius-sm)}.container{max-width:var(--container-max);margin-inline:auto;padding-inline:var(--container-pad)}.skip-link{position:absolute;top:-100px;left:var(--space-4);z-index:200;background:var(--accent);color:var(--accent-foreground);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);font-size:var(--text-sm);transition:top var(--duration-fast) var(--ease-out)}.skip-link:focus{top:var(--space-4)}.head-meta{margin:0;color:var(--foreground-faint);font-size:var(--text-sm);line-height:var(--leading-normal)}.section{padding-block:var(--space-24);border-top:1px solid var(--border-subtle)}.section:first-of-type{border-top:none}.section-head{display:flex;flex-direction:column;gap:var(--space-4);margin-bottom:var(--space-12)}.section-title{font-size:var(--text-display-lg);font-weight:700;letter-spacing:var(--tracking-tight)}.btn{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-body);font-size:var(--text-sm);font-weight:500;padding:var(--space-3) var(--space-5);border-radius:var(--radius-sm);transition:background var(--duration-fast) var(--ease-default),border-color var(--duration-fast) var(--ease-default),color var(--duration-fast) var(--ease-default),transform var(--duration-fast) var(--ease-default)}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--accent-strong);color:var(--on-accent-strong)}.btn-primary:hover{background:var(--accent-strong-hover)}.btn-secondary{border:1px solid var(--border-strong);color:var(--foreground)}.btn-secondary:hover{border-color:var(--foreground-faint);background:var(--surface)}.btn-ghost{color:var(--foreground-muted)}.btn-ghost:hover{background:var(--surface)}.btn-ghost:hover,.link{color:var(--foreground)}.link{border-bottom:1px solid var(--border-strong);transition:color var(--duration-fast) var(--ease-default),border-color var(--duration-fast) var(--ease-default)}.link:hover{color:var(--accent-emphasis);border-color:var(--accent-emphasis)}.meta{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);color:var(--foreground-faint)}.meta,.tag{font-family:var(--font-mono),monospace;font-size:var(--text-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase}.tag{display:inline-block;color:var(--foreground-muted);border:1px solid var(--border);border-radius:var(--radius-sm);padding:2px var(--space-2)}@media (prefers-reduced-motion:no-preference){html.js [data-reveal]{opacity:0;transform:translateY(16px);filter:blur(3px);transition:opacity var(--duration-reveal) var(--ease-emphasized),transform var(--duration-reveal) var(--ease-emphasized),filter var(--duration-reveal) var(--ease-emphasized);transition-delay:var(--reveal-delay,0s)}html.js [data-reveal].is-visible{opacity:1;transform:none;filter:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.prose{max-width:72ch;font-size:var(--text-md);line-height:var(--leading-normal);color:var(--foreground-muted)}.prose h1{font-size:var(--text-display-lg);font-weight:700;letter-spacing:var(--tracking-tight);color:var(--foreground);margin-block:var(--space-16) var(--space-6)}.prose h1:first-child{margin-top:0}.prose h2{font-size:var(--text-xl);margin-block:var(--space-12) var(--space-4);padding-bottom:var(--space-2);border-bottom:1px solid var(--border)}.prose h2,.prose h3{font-weight:600;color:var(--foreground)}.prose h3{font-family:var(--font-body);font-size:var(--text-lg);margin-block:var(--space-8) var(--space-3)}.prose ol,.prose p,.prose ul{margin-block:var(--space-4)}.prose ol,.prose ul{-webkit-padding-start:var(--space-6);padding-inline-start:var(--space-6)}.prose li{margin-block:var(--space-2)}.prose li::marker{color:var(--accent-emphasis)}.prose strong{font-weight:600}.prose a,.prose strong{color:var(--foreground)}.prose a{border-bottom:1px solid var(--border-strong)}.prose a:hover{color:var(--accent-emphasis);border-color:var(--accent-emphasis)}.prose a[target=_blank]:after{content:"↗";font-size:.75em;margin-left:2px;color:var(--foreground-faint)}.prose blockquote{margin:var(--space-6) 0;padding:var(--space-4) var(--space-6);border-left:3px solid var(--border-strong);background:var(--background-subtle);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--foreground-muted)}.prose code{font-family:var(--font-mono),monospace;font-size:.9em;background:var(--accent-subtle);color:var(--accent-emphasis);padding:1px var(--space-1);border-radius:var(--radius-sm)}.prose pre{background:var(--code-background);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-4);overflow-x:auto}.prose pre code{background:none;color:var(--foreground-muted);padding:0}.prose hr{border:none;border-top:1px solid var(--border);margin-block:var(--space-10)}.prose table{width:100%;border-collapse:collapse;font-size:var(--text-sm);margin-block:var(--space-6)}.prose th{text-align:left;font-family:var(--font-mono),monospace;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--foreground-faint);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-strong)}.prose td{padding:var(--space-3);border-bottom:1px solid var(--border-subtle);vertical-align:top}.prose details{border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);margin-block:var(--space-3)}.prose details summary{cursor:pointer;color:var(--foreground);font-weight:500}.prose details[open] summary{margin-bottom:var(--space-3)}.table-scroll{overflow-x:auto}