:root{--bg:#0b0c0f;--bg-2:#121318;--bg-3:#191b22;--line:#23262f;--fg:#f1f1ee;--dim:#8d909b;--acc:#ffd43b;--acc-2:#5b8def;--good:#44d19a;--f-sans:"Geist", system-ui, -apple-system, "Segoe UI", sans-serif;--f-serif:"Instrument Serif", Georgia, serif;--f-mono:"Geist Mono", ui-monospace, Menlo, monospace;--gutter:clamp(16px,4.5vw,72px);--max:1180px;color-scheme:dark}*{box-sizing:border-box}html{overflow-x:clip}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--f-sans);font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased}a{color:inherit}:focus-visible{outline:2px solid var(--acc);outline-offset:3px;border-radius:6px}::-moz-selection{background:var(--acc);color:var(--bg)}::selection{background:var(--acc);color:var(--bg)}.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}.serif{font-family:var(--f-serif);font-style:italic;font-weight:400;letter-spacing:-.01em}.tag{font-family:var(--f-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--dim);display:inline-flex;align-items:center;gap:10px}.tag:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--acc)}.btn{display:inline-flex;align-items:center;gap:10px;font-size:15px;font-weight:500;padding:12px 20px;border-radius:999px;border:1px solid var(--line);background:var(--bg-2);text-decoration:none;transition:background .3s,border-color .3s,color .3s}.btn:hover{border-color:var(--fg)}.btn.pri{background:var(--fg);color:var(--bg);border-color:var(--fg)}.btn.pri:hover{background:var(--acc);border-color:var(--acc)}.nav{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 85%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:14px}.brand{display:flex;align-items:center;gap:10px;font-weight:600;letter-spacing:-.02em;text-decoration:none;white-space:nowrap}.brand i{width:30px;height:30px;border-radius:9px;background:var(--acc);color:var(--bg);display:grid;place-items:center;font-style:normal;font-weight:800;font-size:14px}.menu{display:flex;gap:2px;flex-wrap:wrap}.menu a{font-size:14px;color:var(--dim);padding:8px 12px;border-radius:999px;text-decoration:none;transition:color .3s,background .3s}.menu a:hover,.menu a[aria-current=page]{color:var(--fg);background:var(--bg-3)}@media(max-width:640px){.nav .btn,.menu a[href="/"]{display:none}.menu a{padding:6px 9px}}.head{padding-block:clamp(56px,9vw,110px) clamp(30px,5vw,56px)}.head h1{font-weight:600;font-size:clamp(38px,6vw,76px);line-height:1.02;letter-spacing:-.045em;margin:18px 0 0;text-wrap:balance}.head h1 .serif{color:var(--acc);font-size:1.06em}.head .lede{color:var(--dim);font-size:clamp(17px,1.4vw,20px);max-width:62ch;margin:20px 0 0}.crumbs{font-family:var(--f-mono);font-size:12.5px;color:var(--dim);margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:8px}.crumbs li+li:before{content:"/";margin-right:8px;color:var(--line)}.crumbs a{text-decoration:none}.crumbs a:hover{color:var(--fg)}.meta{font-family:var(--f-mono);font-size:13px;color:var(--dim);margin-top:22px;display:flex;flex-wrap:wrap;gap:6px 18px}.posts{list-style:none;margin:0 0 clamp(70px,10vw,120px);padding:0;border-top:1px solid var(--line)}.posts li{border-bottom:1px solid var(--line)}.posts a{display:grid;grid-template-columns:140px 1fr;gap:6px 28px;padding:28px 0;text-decoration:none}.posts time{font-family:var(--f-mono);font-size:13px;color:var(--dim);padding-top:6px}.posts h2{margin:0;font-size:clamp(22px,2.4vw,30px);line-height:1.2;letter-spacing:-.03em;font-weight:600;transition:color .3s}.posts a:hover h2{color:var(--acc)}.posts p{grid-column:2;margin:0;color:var(--dim);max-width:70ch}.posts .kw{grid-column:2;font-family:var(--f-mono);font-size:12px;color:var(--dim);margin-top:6px}@media(max-width:640px){.posts a{grid-template-columns:1fr}.posts p,.posts .kw{grid-column:1}}.prose{max-width:720px;margin-inline:auto;padding-bottom:clamp(60px,9vw,100px)}.prose h2{font-size:clamp(26px,3vw,34px);line-height:1.2;letter-spacing:-.03em;margin:2.2em 0 .5em;font-weight:600}.prose h3{font-size:21px;letter-spacing:-.02em;margin:1.8em 0 .4em;font-weight:600}.prose p,.prose li{color:#d6d6d2}.prose a{color:var(--acc);text-underline-offset:3px}.prose strong{color:var(--fg)}.prose ul,.prose ol{padding-left:1.3em}.prose li{margin:.35em 0}.prose code{font-family:var(--f-mono);font-size:.86em;background:var(--bg-3);border:1px solid var(--line);border-radius:6px;padding:.1em .4em}.prose pre{background:var(--bg-2);border:1px solid var(--line);border-radius:14px;padding:18px 20px;overflow-x:auto;font-size:14px;line-height:1.6}.prose pre code{background:none;border:0;padding:0;font-size:inherit}.prose blockquote{margin:1.6em 0;padding:4px 0 4px 20px;border-left:2px solid var(--acc);color:var(--fg)}.prose table{width:100%;border-collapse:collapse;font-size:15px;margin:1.4em 0;display:block;overflow-x:auto}.prose th,.prose td{border-bottom:1px solid var(--line);padding:10px 12px;text-align:left;vertical-align:top}.prose th{font-family:var(--f-mono);font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--dim);font-weight:500}.cta{margin:clamp(40px,6vw,64px) 0 0;padding:clamp(22px,3vw,34px);border:1px solid var(--line);border-radius:22px;background:radial-gradient(circle at 90% 0%,rgba(255,212,59,.12),transparent 55%),var(--bg-2)}.cta h2{margin:0 0 8px;font-size:clamp(24px,2.6vw,32px)}.cta p{margin:0 0 18px;color:var(--dim)}.cta .row{display:flex;flex-wrap:wrap;gap:10px}.cta .btn{color:var(--fg)}.cta .btn.pri{color:var(--bg)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:16px}.card{border:1px solid var(--line);border-radius:20px;padding:24px;background:var(--bg-2)}.card h3{margin:0 0 8px;font-size:21px;letter-spacing:-.02em}.card p{margin:0;color:var(--dim);font-size:16px}.card ul{margin:12px 0 0;padding-left:1.1em;color:var(--dim);font-size:15px}.card .stack{margin-top:14px;font-family:var(--f-mono);font-size:12px;color:var(--acc)}.sec{padding-block:clamp(40px,6vw,70px)}.sec>h2,.sec .h2{font-size:clamp(28px,3.6vw,46px);letter-spacing:-.04em;line-height:1.08;margin:14px 0 26px;font-weight:600}.steps{counter-reset:s;list-style:none;padding:0;margin:0;display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}.steps li{border-top:1px solid var(--line);padding-top:16px;color:var(--dim)}.steps li:before{counter-increment:s;content:"0" counter(s);display:block;font-family:var(--f-mono);font-size:12px;color:var(--acc);margin-bottom:8px}.steps b{display:block;color:var(--fg);font-size:18px;margin-bottom:4px}.faq details{border-bottom:1px solid var(--line);padding:18px 0}.faq summary{cursor:pointer;font-weight:600;font-size:18px;list-style:none;display:flex;justify-content:space-between;gap:16px}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";color:var(--acc);font-family:var(--f-mono)}.faq details[open] summary:after{content:"−"}.faq p{color:var(--dim);margin:10px 0 0;max-width:72ch}.links{display:flex;flex-wrap:wrap;gap:10px}footer{border-top:1px solid var(--line)}footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-block:26px calc(26px + env(safe-area-inset-bottom,0px));font-family:var(--f-mono);font-size:12.5px;color:var(--dim)}footer a{text-decoration:none}footer a:hover{color:var(--fg)}footer nav{display:flex;flex-wrap:wrap;gap:16px}
