:root{--bg:#0A0A0B;--surface:#1A1A1C;--surface-2:#222225;--text:#EDEAE3;--text-dim:#A0A0A4;--text-mute:#7D7D81;--rule:#2A2A2D;--accent:#FF4A1C;--alert:#E8342B;--bone:#D9D5C7;--bg-light:#EFECE4;--text-light:#0A0A0B;--ff-serif:"Instrument Serif", "Times New Roman", Georgia, serif;--ff-sans:"Geist Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--ff-mono:"Geist Mono", "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--fs-micro:12px;--fs-caption:14px;--fs-body:16px;--fs-lead:20px;--fs-h3:28px;--fs-h2:40px;--fs-h1:clamp(36px, 7vw, 64px);--fs-hero:clamp(44px, 9vw, 96px);--lh-tight:1.05;--lh-snug:1.15;--lh-base:1.5;--lh-loose:1.6;--tracking-tight:-0.02em;--tracking-wide:0.12em;--s-1:8px;--s-2:16px;--s-3:24px;--s-4:32px;--s-5:48px;--s-6:64px;--s-7:96px;--s-8:120px;--page-pad:24px;--content-max:1440px;--bleed-max:1680px;--frame-inset:16px;--ease:cubic-bezier(0.2, 0.8, 0.2, 1);--dur-fast:180ms;--dur-med:260ms;--dur-slow:320ms;--z-chrome:10;--z-nav:20;--z-glitch:50;--z-laser:60;--z-grain:9999}@media(max-width:768px){:root{--page-pad:16px;--frame-inset:12px;--s-7:64px;--s-8:80px}}@font-face{font-family:instrument serif;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/InstrumentSerif-Regular.woff2)format("woff2")}@font-face{font-family:instrument serif;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/InstrumentSerif-Italic.woff2)format("woff2")}@font-face{font-family:geist sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/GeistSans-Regular.woff2)format("woff2")}@font-face{font-family:geist sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/GeistSans-Medium.woff2)format("woff2")}@font-face{font-family:geist mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/GeistMono-Regular.woff2)format("woff2")}@font-face{font-family:geist mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/GeistMono-Medium.woff2)format("woff2")}*,*::before,*::after{box-sizing:border-box}:where(html,body,h1,h2,h3,h4,h5,h6,p,figure,blockquote,ul,ol,dl,dd){margin:0;padding:0}:where(ul[role=list],ol[role=list]){list-style:none}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}body{background:var(--bg);color:var(--text);font-family:var(--ff-sans);font-size:var(--fs-body);line-height:var(--lh-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;overflow-x:hidden}img,svg,video,canvas{display:block;max-width:100%;height:auto}button{font:inherit;color:inherit;background:0 0;border:none;padding:0;cursor:pointer}a{color:inherit;text-decoration:none}.display{font-family:var(--ff-serif);font-weight:400;letter-spacing:var(--tracking-tight);line-height:var(--lh-tight)}.display em{font-style:italic}.h1{font-size:var(--fs-h1);font-family:var(--ff-serif);font-weight:400;letter-spacing:var(--tracking-tight);line-height:var(--lh-tight)}.h2{font-size:var(--fs-h2);font-family:var(--ff-serif);font-weight:400;letter-spacing:var(--tracking-tight);line-height:var(--lh-snug)}.h3{font-size:var(--fs-h3);font-family:var(--ff-serif);font-weight:400;letter-spacing:var(--tracking-tight);line-height:var(--lh-snug)}.hero-text{font-size:var(--fs-hero);font-family:var(--ff-serif);font-weight:400;letter-spacing:var(--tracking-tight);line-height:var(--lh-tight)}.hero-text em{font-style:italic}.lead{font-size:var(--fs-lead);line-height:var(--lh-base);color:var(--text-dim);max-width:56ch}.label,.mono{font-family:var(--ff-mono);font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-dim)}.mono-caption{font-family:var(--ff-mono);font-size:var(--fs-caption);color:var(--text-dim)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.page{position:relative;min-height:100vh}.container{width:100%;max-width:var(--content-max);margin:0 auto;padding:0 var(--page-pad)}.container-bleed{width:100%;max-width:var(--bleed-max);margin:0 auto;padding:0 var(--page-pad)}.section{padding-block:var(--s-8)}.section-sm{padding-block:var(--s-7)}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.chrome-frame{position:fixed;inset:var(--frame-inset);border:1px solid var(--rule);pointer-events:none;z-index:var(--z-chrome)}.chrome-frame::before,.chrome-frame::after{content:"";position:absolute;width:10px;height:10px;border:1px solid var(--accent)}.chrome-frame::before{top:-1px;left:-1px;border-right:0;border-bottom:0}.chrome-frame::after{bottom:-1px;right:-1px;border-left:0;border-top:0}.chrome-frame .tick-tr,.chrome-frame .tick-bl{position:absolute;width:10px;height:10px;border:1px solid var(--accent)}.chrome-frame .tick-tr{top:-1px;right:-1px;border-left:0;border-bottom:0}.chrome-frame .tick-bl{bottom:-1px;left:-1px;border-right:0;border-top:0}.chrome-label{position:absolute;font-family:var(--ff-mono);font-size:10px;text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-dim);padding:4px 8px;background:var(--bg);white-space:nowrap}.chrome-label.tl{top:-6px;left:var(--s-3)}.chrome-label.tr{top:-6px;right:var(--s-3)}.chrome-label.bl{bottom:-6px;left:var(--s-3)}.chrome-label.br{bottom:-6px;right:var(--s-3)}.chrome-label .sep{color:var(--text-mute);margin:0 8px}.chrome-label .accent{color:var(--accent)}.label-bracket{font-family:var(--ff-mono);font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-dim)}.label-bracket::before{content:"[";margin-right:2px;color:var(--text-mute)}.label-bracket::after{content:"]";margin-left:2px;color:var(--text-mute)}@media(max-width:640px){.chrome-label.bl,.chrome-label.br{display:none}}.nav{position:relative;z-index:var(--z-nav);padding:var(--s-3)var(--page-pad);display:flex;justify-content:space-between;align-items:center;font-family:var(--ff-mono);font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.nav-brand{color:var(--text);font-weight:500}.nav-brand:hover{color:var(--accent)}.nav-links{display:flex;gap:var(--s-2);color:var(--text-dim);align-items:center;flex-wrap:wrap}.nav-links a{position:relative;padding:4px 0;transition:color var(--dur-fast)var(--ease)}.nav-links a:hover{color:var(--accent)}.nav-links .sep{color:var(--text-mute)}.nav-links a.nav-cta{display:inline-flex;align-items:center;justify-content:center;gap:8px;flex-shrink:0;background:0 0;color:var(--accent);padding:7px 32px;margin-left:var(--s-2);border:1px solid var(--accent);line-height:1;font-family:var(--ff-mono);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:var(--tracking-wide);transition:background var(--dur-fast)var(--ease),color var(--dur-fast)var(--ease),border-color var(--dur-fast)var(--ease)}.nav-cta-arrow{display:inline-block;width:.9em;text-align:center;font-family:var(--ff-mono);color:inherit}.nav-links a.nav-cta:hover,.nav-links a.nav-cta[aria-current=page]{background:var(--accent);color:var(--bg);border-color:var(--accent)}.nav-links a.nav-cta:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--bg)}@media(max-width:640px){.nav{flex-direction:column;align-items:stretch;gap:var(--s-2)}.nav-brand{display:none}.nav-links{gap:var(--s-1);justify-content:center}.nav-links .sep{display:none}.nav-links a.nav-cta{padding:5px 20px;font-size:10px;margin-left:var(--s-1)}}.footer{border-top:1px solid var(--rule);padding:var(--s-5)var(--page-pad)var(--s-4);font-family:var(--ff-mono);font-size:11px;text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-mute)}.footer-row{display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--s-2);padding-block:6px;border-bottom:1px dashed var(--rule)}.footer-row:last-child{border-bottom:0}.footer-row .sep{color:var(--text-mute);margin:0 8px}.footer-row a{color:var(--text-dim)}.footer-row a:hover{color:var(--accent)}.footer-row .accent{color:var(--accent)}.blog-index{max-width:880px;margin:0 auto;padding:var(--s-7)var(--page-pad)var(--s-8)}.blog-index h1{margin-bottom:var(--s-3);max-width:18ch}.blog-index .lead{margin-bottom:var(--s-5);max-width:56ch}.post-list{display:flex;flex-direction:column;border-top:1px solid var(--rule)}.post-card{border-bottom:1px solid var(--rule);transition:background var(--dur-fast)var(--ease)}.post-card:hover{background:var(--surface)}.post-card-link{display:block;padding:var(--s-3)0;color:inherit;text-decoration:none}.post-card-date{font-family:var(--ff-mono);font-size:11px;text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--accent);display:block;margin-bottom:var(--s-1)}.post-card-title{font-family:var(--ff-serif);font-size:28px;letter-spacing:var(--tracking-tight);line-height:var(--lh-snug);color:var(--text);margin-bottom:var(--s-2)}.post-card-summary{color:var(--text-dim);font-size:var(--fs-caption);line-height:var(--lh-loose);max-width:70ch}.post-card-tags{margin-top:var(--s-2);font-family:var(--ff-mono);font-size:11px;text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-mute);display:flex;gap:var(--s-2)}.post-empty{padding:var(--s-5)0;color:var(--text-mute);font-family:var(--ff-mono);font-size:12px;text-transform:uppercase;letter-spacing:var(--tracking-wide)}.post{max-width:720px;margin:0 auto;padding:var(--s-7)var(--page-pad)var(--s-8)}.post-header h1{margin-bottom:var(--s-3)}.post-header .lead{margin-bottom:var(--s-3);max-width:60ch}.post-meta{font-family:var(--ff-mono);font-size:11px;text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-mute);padding-top:var(--s-2);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding-block:var(--s-2);display:flex;flex-wrap:wrap;gap:var(--s-1);margin-top:var(--s-3)}.post-meta .sep{color:var(--text-mute)}.post-body{margin-top:var(--s-5);font-size:17px;line-height:1.75;color:var(--text-dim)}.post-body p{margin-bottom:var(--s-3)}.post-body>p:first-of-type::first-letter{font-family:var(--ff-serif);font-size:4em;float:left;line-height:1;margin:4px var(--s-2)0 0;color:var(--text)}.post-body pre.mermaid p::first-letter,.post-body pre.mermaid foreignobject p::first-letter{font-family:inherit;font-size:inherit;float:none;line-height:inherit;margin:0;color:inherit}.post-body h2{font-family:var(--ff-serif);font-size:32px;letter-spacing:var(--tracking-tight);line-height:var(--lh-snug);color:var(--text);margin-top:var(--s-5);margin-bottom:var(--s-3)}.post-body h3{font-family:var(--ff-serif);font-size:22px;letter-spacing:var(--tracking-tight);line-height:var(--lh-snug);color:var(--text);margin-top:var(--s-4);margin-bottom:var(--s-2)}.post-body a{color:var(--accent);border-bottom:1px solid;transition:color var(--dur-fast)var(--ease)}.post-body a:hover{color:var(--text)}.post-body code{font-family:var(--ff-mono);font-size:.9em;background:var(--surface);border:1px solid var(--rule);padding:1px 6px;color:var(--text)}.post-body pre{background:var(--surface);border:1px solid var(--rule);padding:var(--s-3);overflow-x:auto;margin-bottom:var(--s-3);font-size:13px;line-height:1.6}.post-body pre code{background:0 0;border:0;padding:0;color:inherit;font-size:inherit}.post-body pre.mermaid{background:0 0;border:1px solid var(--rule);padding:var(--s-3);text-align:center;font-size:0;line-height:0}.post-body pre.mermaid svg{max-width:100%;height:auto}.post-body blockquote{border-left:2px solid var(--accent);padding-left:var(--s-3);margin-block:var(--s-4);font-family:var(--ff-serif);font-size:22px;line-height:1.4;color:var(--text)}.post-body ul,.post-body ol{margin:0 0 var(--s-3)var(--s-3);padding-left:var(--s-2)}.post-body li{margin-bottom:var(--s-1)}.post-body hr{border:0;border-top:1px dashed var(--rule);margin:var(--s-5)0}.post-body img{display:block;width:100%;height:auto;border:1px solid var(--rule);margin:var(--s-4)0}.post-foot{margin-top:var(--s-6);padding-top:var(--s-3);border-top:1px dashed var(--rule);display:flex;justify-content:space-between;font-family:var(--ff-mono);font-size:11px;text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-mute)}.post-foot a{color:var(--text-dim)}.post-foot a:hover{color:var(--accent)}