:root{--ground:#060206;--elevated:#141414;--ink:#fff;--ink-soft:#ffffffa6;--muted:#949494;--rule:#ffffff1a;--border:#2c2c2c;--hover-border:#ffffff59;--card:#14141499;--term:#060206cc;--glow:#8a1f7a;--glow-deep:#3a0a33;--glow-opacity:.55;--ok:#3ddc84;--ok-ring:#3ddc8426;--font-display:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--s-1:8px;--s-2:16px;--s-3:24px;--s-btn:28px;--s-4:32px;--s-6:64px;--radius:8px;color-scheme:dark}@media (prefers-color-scheme:light){:root:not([data-theme=dark]):not([data-mode]){--ground:#fff;--elevated:#fff;--ink:#0a0a0a;--ink-soft:#0a0a0ac7;--muted:#6b6b6b;--rule:#0a0a0a14;--border:#e2e2e2;--hover-border:#0a0a0a8c;--card:#fff;--term:#fff;--glow:#e9a2dd;--glow-deep:#f4d6ee;--glow-opacity:.75;--ok:#1e9a55;--ok-ring:#1e9a5526;color-scheme:light}}:root[data-theme=light]:not([data-mode]),:root[data-mode=light]{--ground:#fff;--elevated:#fff;--ink:#0a0a0a;--ink-soft:#0a0a0ac7;--muted:#6b6b6b;--rule:#0a0a0a14;--border:#e2e2e2;--hover-border:#0a0a0a8c;--card:#fff;--term:#fff;--glow:#e9a2dd;--glow-deep:#f4d6ee;--glow-opacity:.75;--ok:#1e9a55;--ok-ring:#1e9a5526;color-scheme:light}:root[data-mode=dark]{--ground:#060206;--elevated:#141414;--ink:#fff;--ink-soft:#ffffffa6;--muted:#949494;--rule:#ffffff1a;--border:#2c2c2c;--hover-border:#ffffff59;--card:#14141499;--term:#060206cc;--glow:#8a1f7a;--glow-deep:#3a0a33;--glow-opacity:.55;--ok:#3ddc84;--ok-ring:#3ddc8426;color-scheme:dark}*{box-sizing:border-box}html{background:var(--ground);scroll-padding-top:72px}body{background:var(--ground);color:var(--ink);font-family:var(--font-display);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.55;position:relative;overflow-x:hidden}.wrap{z-index:1;max-width:1120px;padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));margin:0 auto;position:relative}@media (width>=720px){.wrap{padding-left:max(48px, env(safe-area-inset-left,0px));padding-right:max(48px, env(safe-area-inset-right,0px))}}.label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.16em;color:var(--muted);font-size:12px;font-weight:400}a{color:inherit}:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.site-header{z-index:20;background:color-mix(in srgb, var(--ground) 82%, transparent);backdrop-filter:blur(12px);border-bottom:1px solid #0000;transition:border-color .2s;position:sticky;top:0}.site-header[data-stuck]{border-bottom-color:var(--rule)}nav.top{align-items:center;gap:var(--s-2);padding-block:var(--s-2);grid-template-columns:auto 1fr auto;display:grid;position:static}.mark{background:var(--ink);width:32px;height:32px;color:var(--ground);border-radius:7px;justify-self:start;place-items:center;font-size:20px;font-weight:700;line-height:1;text-decoration:none;display:grid}nav.top ul{gap:var(--s-3);justify-self:center;margin:0;padding:0;list-style:none;display:flex}nav.top ul a{color:var(--muted);text-decoration:none;transition:color .15s}nav.top ul a:hover{color:var(--ink)}.nav-cta{justify-self:end}.navmenu{display:contents}.menu-btn{display:none}@media (width<=719px){nav.top{grid-template-columns:1fr auto}.menu-btn{width:44px;height:44px;color:var(--ink);cursor:pointer;background:0 0;border:0;justify-self:end;place-items:center;margin-right:-8px;padding:0;display:inline-grid}.bars,.bars:before,.bars:after{background:currentColor;width:20px;height:2px;transition:transform .2s,opacity .2s;display:block}.bars{position:relative}.bars:before,.bars:after{content:"";position:absolute;left:0}.bars:before{top:-6px}.bars:after{top:6px}nav.top[data-open] .bars{background:0 0}nav.top[data-open] .bars:before{top:0;transform:rotate(45deg)}nav.top[data-open] .bars:after{top:0;transform:rotate(-45deg)}.navmenu{padding:var(--s-1) max(16px, env(safe-area-inset-right,0px)) var(--s-3) max(16px, env(safe-area-inset-left,0px));background:var(--ground);border-bottom:1px solid var(--rule);gap:var(--s-2);flex-direction:column;display:none;position:absolute;top:100%;left:0;right:0}nav.top[data-open] .navmenu{display:flex}nav.top ul{flex-direction:column;gap:0}nav.top ul li+li{border-top:1px solid var(--rule)}nav.top ul a{color:var(--ink);padding:14px 0;font-size:13px;display:block}.nav-cta{text-align:center;padding:14px var(--s-btn);justify-self:stretch;font-size:12px}}.theme{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:var(--s-1);color:var(--ink);border:1px solid var(--border);cursor:pointer;background:0 0;padding:8px 14px;font-size:12px;display:inline-flex}.theme:hover{border-color:var(--ink)}.theme .sw{border:1px solid var(--ink);background:linear-gradient(90deg, var(--ink) 50%, transparent 50%);width:10px;height:10px}.hero{padding-block:var(--s-6) var(--s-6);gap:var(--s-6);align-items:center;display:grid}.hero-text{gap:var(--s-3);min-width:0;display:grid}.status{align-items:center;gap:var(--s-1);flex-wrap:wrap;display:flex}.dot{background:var(--ok);width:8px;height:8px;box-shadow:0 0 0 4px var(--ok-ring);border-radius:50%}h1{letter-spacing:-.025em;text-wrap:balance;max-width:14ch;margin:0;font-size:clamp(44px,8vw,88px);font-weight:700;line-height:1.02}h1 .soft{color:var(--muted)}.lead{color:var(--ink-soft);max-width:34em;margin:0;font-size:clamp(19px,2.2vw,24px);font-weight:300;line-height:1.55}.lead strong{color:var(--ink);font-weight:700}.ctas{gap:var(--s-2);margin-top:var(--s-2);flex-wrap:wrap;display:flex}.btn{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;padding:14px var(--s-btn);border:1px solid var(--ink);font-size:13px;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:inline-block}.btn.primary{background:var(--ink);color:var(--ground)}.btn.primary:hover{color:var(--ink);background:0 0}.btn.ghost{border-color:var(--border);color:var(--ink)}.btn.ghost:hover{border-color:var(--ink)}.btn.sm{white-space:nowrap;padding:9px 16px;font-size:11px}.proof{padding-block:var(--s-4);overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 10% 90%,#0000);mask-image:linear-gradient(90deg,#0000,#000 10% 90%,#0000)}.track{width:max-content;animation:36s linear infinite marquee;display:flex}.proof:hover .track{animation-play-state:paused}.proof ul{padding:0 var(--s-6) 0 0;align-items:center;gap:var(--s-6);flex:none;margin:0;list-style:none;display:flex}.proof li{white-space:nowrap;color:var(--muted);transition:color .15s}.proof li:hover{color:var(--ink)}.proof .logo{display:block}.proof .logo svg{width:var(--w);fill:currentColor;height:auto;display:block}@keyframes marquee{to{transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.track{animation:none}.proof{overflow-x:auto}}.proof li{letter-spacing:-.02em;color:var(--muted);font-size:20px;font-weight:700;line-height:1}.proof li img{width:auto;height:20px;display:block}.proof li.ph{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;border:1px dashed var(--border);padding:7px 12px;font-size:11px;font-weight:400}section.block{padding-block:var(--s-6)}.block-head{justify-content:space-between;align-items:baseline;gap:var(--s-2);margin-bottom:var(--s-4);flex-wrap:wrap;display:flex}h2{letter-spacing:-.01em;margin:0;font-size:26px;font-weight:700;line-height:1.2}.work{gap:var(--s-2);margin:0;padding:0;list-style:none;display:grid}.case{border:1px solid var(--rule);border-radius:var(--radius);background:var(--card);grid-template-columns:1fr;gap:0;padding:0;text-decoration:none;transition:border-color .2s,background .2s;display:grid;overflow:hidden}.case:hover{border-color:var(--hover-border);background:var(--elevated)}@media (width>=820px){.case{column-gap:var(--s-4);grid-template-columns:minmax(0,360px) 1fr;align-items:stretch}}.case>*{min-width:0}.thumb{background-color:var(--elevated);background-image:repeating-linear-gradient(135deg, var(--rule) 0 1px, transparent 1px 12px);border:0;border-radius:0;place-items:center;width:100%;height:100%;display:grid;overflow:hidden}.thumb span{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);background:var(--elevated);border:1px solid var(--border);padding:6px 10px;font-size:11px}.thumb-box{aspect-ratio:4/3;position:relative}.thumb-box>.thumb{position:absolute;inset:0}.case-body{gap:var(--s-2);padding:var(--s-3);display:grid}@media (width>=820px){.case-body{padding:var(--s-4) var(--s-4) var(--s-4) 0;align-content:center}.thumb-box{aspect-ratio:auto;min-height:270px}}.case h3{letter-spacing:-.01em;text-wrap:balance;margin:0;font-size:22px;font-weight:700;line-height:1.25}.case p{color:var(--ink-soft);max-width:60ch;margin:0;font-weight:300}.case .meta{gap:var(--s-2);flex-wrap:wrap;align-items:center;display:flex}.case .meta .label:first-child{color:var(--ink)}.case-foot{justify-content:space-between;align-items:flex-end;gap:var(--s-2);display:flex}.case-foot .arrow{flex:none;margin-left:auto}.tags{gap:var(--s-1);flex-wrap:wrap;display:flex}.tag{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border:1px solid var(--border);padding:4px 8px;font-size:11px}.arrow{font-family:var(--font-mono);color:var(--muted);transition:transform .2s,color .2s}.case:hover .arrow{color:var(--ink);transform:translate(4px)}.posts{margin:0;padding:0;list-style:none}.posts li{border-bottom:1px solid var(--rule)}.posts a{padding-block:var(--s-3);grid-template-columns:1fr;gap:4px;text-decoration:none;display:grid}@media (width>=720px){.posts a{gap:var(--s-4);grid-template-columns:140px 1fr auto;align-items:baseline}}.posts a>*{min-width:0}.posts .t{font-size:19px;font-weight:500;line-height:1.35}.posts a:hover .t{text-underline-offset:4px;text-decoration:underline 1px}.posts .r{font-family:var(--font-mono);color:var(--muted);font-size:12px}.about{gap:var(--s-4);display:grid}@media (width>=820px){.about{gap:var(--s-6);grid-template-columns:1fr 1fr;align-items:start}}@media (width>=1000px){.about{grid-template-columns:minmax(0,1fr) minmax(0,480px)}}.about-main{gap:var(--s-4);min-width:0;display:grid}.about p{margin:0 0 var(--s-2);color:var(--ink-soft);max-width:36em;font-size:19px;font-weight:300}.about p strong{color:var(--ink);font-weight:500}.spec{gap:12px var(--s-3);grid-template-columns:max-content 1fr;margin:0;font-size:15px;display:grid}.spec dt{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding-top:2px;font-size:12px}.spec dd{margin:0}.about-photos{gap:var(--s-2);grid-template-columns:repeat(2,1fr);margin:0;padding:0;list-style:none;display:grid}.about-photos img{aspect-ratio:1;object-fit:cover;border-radius:var(--radius);border:1px solid var(--rule);width:100%;height:auto;display:block}.term{border:1px solid var(--border);border-radius:var(--radius);background:var(--term);padding:var(--s-4)}.term-head{justify-content:space-between;align-items:center;gap:var(--s-2);margin-bottom:var(--s-3);display:flex}.chip{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink);border:1px solid var(--border);cursor:pointer;background:0 0;padding:8px 14px;font-size:12px}.chip:hover{border-color:var(--ink)}.term pre{font-family:var(--font-mono);white-space:pre;margin:0;font-size:16px;line-height:1.9;overflow-x:auto}.term .p{color:var(--muted);user-select:none}.term .sel{user-select:all}.term .sel a{color:inherit;text-underline-offset:3px}.term pre{white-space:pre-wrap;word-break:break-word}.term-prompt{font-family:var(--font-mono);align-items:center;font-size:16px;line-height:1.9;display:flex}.term-prompt .p{white-space:pre}.term-prompt input{min-width:0;font:inherit;color:var(--ink);caret-color:var(--ink);background:0 0;border:0;flex:1;padding:0}.term-prompt input::placeholder{color:var(--muted);opacity:.6}.term-prompt input:focus{outline:none}.term:focus-within{border-color:var(--hover-border)}.term-cmds{gap:var(--s-1);margin-top:var(--s-3);flex-wrap:wrap;display:flex}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.foot-links{gap:var(--s-1) var(--s-3);flex-wrap:wrap;display:flex}.foot-links a{text-decoration:none;transition:color .15s}.foot-links a:hover{color:var(--ink)}footer{padding-block:var(--s-4) var(--s-6);border-top:1px solid var(--rule);justify-content:space-between;align-items:center;gap:var(--s-2);flex-wrap:wrap;display:flex}@media (prefers-reduced-motion:reduce){*{transition:none!important}}img.thumb{object-fit:cover;background-image:none;width:100%;height:100%;display:block}.quotes{gap:var(--s-2);margin:0;padding:0;list-style:none;display:grid}@media (width>=820px){.quotes{grid-template-columns:1fr 1fr}}.quotes li{padding:var(--s-3);border:1px solid var(--rule);border-radius:var(--radius);background:var(--card)}.quotes figure{gap:var(--s-2);align-content:space-between;height:100%;margin:0;display:grid}.quotes blockquote{margin:0}.quotes blockquote p{color:var(--ink-soft);margin:0;font-weight:300}.quotes figcaption{column-gap:var(--s-2);grid-template-columns:48px 1fr;align-items:center;row-gap:2px;display:grid}.quotes .avatar{object-fit:cover;border:1px solid var(--rule);border-radius:50%;grid-row:1/span 2;width:48px;height:48px}span.avatar{background:var(--elevated);color:var(--muted);font-family:var(--font-mono);place-items:center;font-size:16px;display:grid}.quotes .who{align-self:end;font-weight:700}.quotes figcaption .label{align-self:start}.faq details{border-bottom:1px solid var(--rule)}.faq summary{cursor:pointer;padding-block:var(--s-3);justify-content:space-between;gap:var(--s-2);font-size:19px;font-weight:500;list-style:none;display:flex}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";font-family:var(--font-mono);color:var(--muted)}.faq details[open] summary:after{content:"−"}.faq .answer{padding-bottom:var(--s-3);max-width:44em}.faq .answer p{margin:0 0 var(--s-2);color:var(--ink-soft);font-weight:300}.article{padding-bottom:var(--s-6)}.article.narrow{max-width:760px}.back{margin-block:var(--s-2) var(--s-4);text-decoration:none;display:inline-block}.article-head{gap:var(--s-3);margin-bottom:var(--s-4);display:grid}.article-head .meta{gap:var(--s-2);flex-wrap:wrap;display:flex}.article>.article-head:first-child{margin-top:var(--s-6)}.article h1{max-width:900px;font-size:clamp(32px,5vw,52px);line-height:1.1}.article-cover{border-radius:var(--radius);border:1px solid var(--rule);width:100%;height:auto;margin-bottom:var(--s-4);display:block}.prose{overflow-wrap:anywhere;color:var(--ink-soft);font-size:18px;font-weight:300;line-height:1.65}.prose>*{max-width:100%}.prose p,.prose ul,.prose ol{margin:0 0 var(--s-3)}.prose h2{margin:var(--s-6) 0 var(--s-2);color:var(--ink)}.prose h3{margin:var(--s-4) 0 var(--s-1);color:var(--ink);font-size:20px;font-weight:700}.prose strong{color:var(--ink);font-weight:700}.prose a{color:var(--ink);text-underline-offset:3px}.prose ul,.prose ol{padding-left:1.25em}.prose li{margin-bottom:var(--s-1)}.prose img{border-radius:var(--radius);border:1px solid var(--rule);max-width:100%;height:auto;margin:var(--s-4) 0;display:block}.article .lead{margin:0}.article-layout{gap:var(--s-4);grid-template-columns:minmax(0,1fr);display:grid}.article-main{min-width:0;max-width:720px}.article-layout>.article-head{order:-2;margin-bottom:0}.article-side{border-top:1px solid var(--rule);padding-top:var(--s-3);order:-1;min-width:0}.article-side .spec{gap:var(--s-2) var(--s-4);flex-wrap:wrap;display:flex}.article-side .spec>div{gap:4px;min-width:0;display:grid}.toc{margin-top:var(--s-4);display:none}.toc ul{margin:var(--s-1) 0 0;border-left:1px solid var(--rule);padding:0;list-style:none}.toc a{padding:6px 0 6px var(--s-2);color:var(--muted);font-size:14px;line-height:1.4;text-decoration:none;transition:color .15s;display:block;position:relative}.toc a:hover,.toc a[aria-current]{color:var(--ink)}.toc a[aria-current]:before{content:"";background:var(--ink);width:1px;position:absolute;top:0;bottom:0;left:-1px}.prose h2,.prose h3{scroll-margin-top:var(--s-4)}@media (width>=1000px){.article-layout{column-gap:var(--s-6);grid-template-columns:280px minmax(0,1fr);align-items:start}.article-layout>.article-head{order:0;grid-area:1/2}.article-main{grid-area:2/2}.article-side .spec{grid-template-columns:minmax(0,1fr);display:grid}.article-side{max-height:calc(100vh - 80px - var(--s-4));border-top:0;order:0;grid-area:1/1/span 2;padding-top:0;position:sticky;top:80px;overflow-y:auto}.toc{display:block}}.post-nav{gap:var(--s-2);margin-top:var(--s-6);display:grid}@media (width>=600px){.post-nav{grid-template-columns:1fr 1fr}}.post-nav a{gap:var(--s-1);padding:var(--s-3);border:1px solid var(--rule);border-radius:var(--radius);color:var(--ink);align-content:start;text-decoration:none;transition:border-color .15s,background-color .15s;display:grid}.post-nav a:hover{border-color:var(--hover-border);background:var(--elevated)}.post-nav .t{text-wrap:balance;font-size:17px;font-weight:500;line-height:1.35}.post-nav .next{text-align:right}@media (width>=600px){.post-nav .next{grid-column:2}}.stack-group{margin-bottom:var(--s-4)}.stack-group h2{margin-bottom:var(--s-2);font-size:20px}.stack{margin:0;padding:0;list-style:none}.stack li{border-bottom:1px solid var(--rule)}.stack .tool{align-items:center;gap:var(--s-2);padding-block:var(--s-2);color:inherit;text-decoration:none;display:flex}.stack .logo{width:24px;height:24px;color:var(--ink);flex:none}.stack .logo svg{width:100%;height:100%;display:block}.stack .name{font-weight:500}.stack .tag{padding:2px 6px}.disclosure{color:var(--muted);max-width:40em;margin:0;font-size:15px;font-weight:300}.stack .tool .label{text-align:right;margin-left:auto}.stack .ext{color:var(--muted);font-family:var(--font-mono);transition:transform .15s,color .15s}.stack .ext.none{visibility:hidden}a.tool:hover .name{text-underline-offset:4px;text-decoration:underline 1px}a.tool:hover .ext{color:var(--ink);transform:translate(2px,-2px)}
