:root{color-scheme:light;--bg: #f0ead8;--bg-2: #ebe4cf;--bg-3: #e4dcc3;--bg-deep: #f4efe1;--ink: #1a1611;--ink-dim: #3c352a;--muted: #726a57;--faint: #9a917a;--hair: rgba(26, 22, 17, .1);--hair-2: rgba(26, 22, 17, .16);--hair-3: rgba(26, 22, 17, .24);--ok: #4c7a5c;--no: #a7503c;--warn: #8a6d2f;--selection: rgba(26, 22, 17, .18);--r: 3px;--sans: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--display: "Inter Tight", "Inter", system-ui, sans-serif;--mono: "JetBrains Mono Nerd", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--maxw: 1160px}@font-face{font-family:JetBrains Mono Nerd;src:url(/fonts/jetbrains-mono-nerd/JetBrainsMonoNerdFont-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono Nerd;src:url(/fonts/jetbrains-mono-nerd/JetBrainsMonoNerdFont-Italic.ttf) format("truetype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:JetBrains Mono Nerd;src:url(/fonts/jetbrains-mono-nerd/JetBrainsMonoNerdFont-Bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}*{box-sizing:border-box;margin:0;padding:0}::selection{background:var(--selection);color:var(--ink)}html{scroll-behavior:smooth}body{font-family:var(--sans);background:var(--bg);color:var(--ink);line-height:1.6;min-height:100vh;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;position:relative;overflow-x:hidden}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;background-image:linear-gradient(var(--hair) 1px,transparent 1px),linear-gradient(90deg,var(--hair) 1px,transparent 1px);background-size:72px 72px;opacity:.35;-webkit-mask-image:radial-gradient(120% 90% at 50% -10%,#000 0%,transparent 80%);mask-image:radial-gradient(120% 90% at 50% -10%,#000 0%,transparent 80%)}main{flex:1;position:relative;z-index:1}h1,h2,h3,h4{font-family:var(--display);font-weight:500;letter-spacing:-.02em;color:var(--ink)}a{color:inherit;text-decoration:none}button{font-family:inherit;border:none;cursor:pointer;background:none;color:inherit}code,pre,kbd,samp{font-family:var(--mono);font-variant-ligatures:none;font-size:.92em}img{max-width:100%}.container{width:min(var(--maxw),91vw);margin:0 auto}.site-header{position:sticky;top:0;z-index:40;background:#f0ead8d1;backdrop-filter:blur(14px) saturate(120%);border-bottom:1px solid var(--hair)}.site-header .container{display:flex;align-items:center;justify-content:space-between;height:64px;gap:24px}.brand{font-family:var(--display);font-weight:600;font-size:1.2rem;letter-spacing:-.01em;color:var(--ink)}.site-nav{display:flex;align-items:center;gap:4px}.site-nav a{font-size:.86rem;color:var(--muted);padding:8px 13px;border-radius:var(--r);transition:color .16s ease,background .16s ease}.site-nav a:hover{color:var(--ink);background:#1a16110d}.site-nav a.is-active{color:var(--ink)}.btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--sans);font-size:.84rem;font-weight:500;letter-spacing:.01em;padding:10px 17px;border-radius:var(--r);border:1px solid var(--hair-2);color:var(--ink);background:transparent;transition:border-color .16s ease,background .16s ease,transform .16s ease,color .16s ease;white-space:nowrap}.btn .ar{transition:transform .2s ease}.btn:hover{border-color:var(--hair-3);background:#1a16110a}.btn:hover .ar{transform:translate(3px)}.btn--solid{background:var(--ink);color:var(--bg);border-color:var(--ink)}.btn--solid:hover{background:var(--ink-dim);border-color:var(--ink-dim);color:var(--bg);transform:translateY(-1px)}.site-footer{border-top:1px solid var(--hair);background:var(--bg-deep);position:relative;z-index:1}.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 0;flex-wrap:wrap}.footer-bottom .legal{font-family:var(--mono);font-size:.72rem;letter-spacing:.04em;color:var(--faint)}.footer-end{display:inline-flex;align-items:center;gap:16px}.footer-email{font-family:var(--mono);font-size:.72rem;letter-spacing:.04em;color:var(--muted);transition:color .15s ease}.footer-email:hover{color:var(--ink)}.footer-social{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--hair-2);border-radius:var(--r);color:var(--muted);transition:color .15s ease,border-color .15s ease}.footer-social svg{width:13px;height:13px;fill:currentColor}.footer-social:hover{color:var(--ink);border-color:var(--hair-3)}.page{padding:56px 0 96px}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:32px;margin-bottom:44px;padding-bottom:32px;border-bottom:1px solid var(--hair)}.page-header h1{font-size:clamp(2rem,4vw,3rem);line-height:1.05;margin-top:14px}.page-header p{color:var(--muted);max-width:56ch;margin-top:14px;line-height:1.6}.back-link{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-family:var(--mono);font-size:.74rem;letter-spacing:.06em;margin-bottom:16px;transition:color .15s ease}.back-link:hover{color:var(--ink)}.post-list{border-top:1px solid var(--hair-2)}.post-card{display:grid;gap:12px;padding:30px 4px;border-bottom:1px solid var(--hair);transition:background .16s ease}.post-card:hover{background:#1a161105}.post-meta{font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}.post-card h2{font-size:1.55rem;font-weight:500;letter-spacing:-.02em}.post-card h2 a{transition:color .15s ease}.post-card:hover h2 a{color:var(--ink)}.post-card>p{color:var(--muted);max-width:70ch;line-height:1.6}.tag-list{display:flex;flex-wrap:wrap;gap:8px}.tag{font-family:var(--mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:999px;border:1px solid var(--hair-2);color:var(--muted)}.post-layout{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:48px;align-items:start}.post-layout--full{grid-template-columns:minmax(0,1fr);max-width:760px}.prose{max-width:720px;display:grid;gap:20px}.prose h1,.prose h2,.prose h3{margin-top:16px}.prose h2{font-size:1.7rem;font-weight:500;letter-spacing:-.02em;scroll-margin-top:100px;padding-bottom:10px;border-bottom:1px solid var(--hair)}.prose h3{font-size:1.25rem;font-weight:500;scroll-margin-top:100px}.prose p,.prose li{color:var(--ink-dim);font-size:1.04rem;line-height:1.8}.prose ul,.prose ol{padding-left:22px;display:grid;gap:10px}.prose a{color:var(--ink);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--hair-3)}.prose a:hover{text-decoration-color:var(--ink)}.prose strong{color:var(--ink);font-weight:600}.prose img{width:100%;border:1px solid var(--hair-2);border-radius:6px;background:var(--bg-2)}.prose blockquote{border-left:2px solid var(--hair-3);padding:6px 0 6px 18px;color:var(--muted);font-style:italic}.prose pre{background:var(--bg-deep);border:1px solid var(--hair-2);border-radius:6px;padding:18px 20px;overflow-x:auto;line-height:1.6}.prose :not(pre)>code{background:#1a161112;border:1px solid var(--hair);padding:1px 6px;border-radius:4px;color:var(--ink)}.toc{position:sticky;top:88px}.toc-card{border-top:1px solid var(--ink);padding-top:16px}.toc-card h3{font-family:var(--mono);font-size:.66rem;font-weight:400;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:14px}.toc-progress{height:2px;background:var(--hair);overflow:hidden;margin-bottom:16px}.toc-progress-fill{display:block;height:100%;width:0%;background:var(--ink);transition:width .15s ease}.toc-card ol{list-style:none;display:grid;gap:9px}.toc-card li{font-size:.9rem;color:var(--muted);line-height:1.35}.toc-card a{transition:color .15s ease}.toc-card a:hover,.toc-card a.is-active{color:var(--ink)}.toc-sub{padding-left:14px;opacity:.85}.not-found .eyebrow{font-family:var(--mono);font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}.not-found h1{font-size:clamp(2.4rem,6vw,4rem);letter-spacing:-.03em;margin-bottom:16px}.not-found p{color:var(--muted);max-width:50ch;line-height:1.6;margin-bottom:24px}.not-found-actions{display:flex;gap:12px;flex-wrap:wrap}@media (max-width: 960px){.post-layout{grid-template-columns:1fr}.toc{display:none}}@media (max-width: 760px){.site-nav{display:none}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
