:root{color-scheme:light;--canvas: #f7f6f3;--surface-0: #fffdf9;--surface-1: #fffdf9;--surface-2: #f2f0ea;--surface-3: #eae7df;--border: #e3e0d8;--border-strong: #cfcbbf;--text-muted: #6f6b62;--text-tertiary: #6f6b62;--text-secondary: #57534a;--text-primary: #28251e;--text-heading: #1b1914;--text-on-accent: #ffffff;--accent: #2f6fed;--accent-hover: #2559c9;--accent-text: #2559c9;--accent-border: rgba(47, 111, 237, .3);--accent-soft-bg: rgba(47, 111, 237, .08);--good: #1e7d3a;--good-border: rgba(30, 125, 58, .35);--link: #2559c9;--focus-ring: rgba(47, 111, 237, .4);--shadow-color: rgba(40, 37, 30, .22)}*{box-sizing:border-box}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{margin:0;background:var(--canvas);color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}code,pre{font-family:ui-monospace,SF Mono,SFMono-Regular,Menlo,Consolas,monospace}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}a:focus-visible,.btn:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:4px}h1,h2,h3{color:var(--text-heading);line-height:1.15;letter-spacing:-.015em;margin:0 0 .5em}.container{max-width:1020px;margin:0 auto;padding:0 24px}.site-header{border-bottom:1px solid var(--border);background:var(--canvas)}.header-row{display:flex;align-items:center;justify-content:space-between;height:60px}.wordmark{display:inline-flex;align-items:center;gap:9px;font-family:ui-serif,New York,Georgia,Times New Roman,serif;font-size:19px;font-weight:500;color:var(--text-heading);letter-spacing:0}.wordmark:hover{text-decoration:none}.wordmark svg{display:block;width:20px;height:20px}.site-nav{display:flex;align-items:center;gap:22px;font-size:14px}.site-nav a{color:var(--text-secondary)}.site-nav a:hover{color:var(--text-primary);text-decoration:none}.site-nav .nav-cta{color:var(--accent-text);border:1px solid var(--accent-border);border-radius:7px;padding:5px 13px}.site-nav .nav-cta:hover{background:var(--accent-soft-bg)}.btn{display:inline-block;border-radius:9px;font-size:15px;font-weight:600;padding:11px 22px}.btn-primary{background:var(--accent);color:var(--text-on-accent)}.btn-primary:hover{background:var(--accent-hover);text-decoration:none}.site-footer{border-top:1px solid var(--border);background:var(--surface-0);margin-top:72px}.footer-row{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;padding-top:26px;padding-bottom:26px;font-size:13.5px}.footer-brand{margin:0;color:var(--text-tertiary)}.footer-nav{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.footer-nav a{color:var(--text-secondary)}.footer-soon{color:var(--text-muted)}.prose{max-width:44rem;margin:0 auto;padding:64px 24px 40px}.prose h1{font-size:clamp(1.8rem,3.6vw,2.4rem);margin-bottom:10px}.prose .prose-lede{font-size:1.08rem;color:var(--text-secondary);margin-top:0}.prose h2{font-size:1.15rem;margin:2.2em 0 .5em}.prose h3{font-size:1.02rem;margin:2em 0 .5em}.prose p,.prose li{color:var(--text-secondary)}.prose strong{color:var(--text-primary)}.prose .prose-section{margin-top:3.4em;padding-top:2.4em;border-top:1px solid var(--border)}.prose .prose-section>h2{font-size:clamp(1.4rem,2.6vw,1.7rem);margin-top:0;scroll-margin-top:24px}.prose p code,.prose li code{font-size:.92em;padding:1px 5px;border:1px solid var(--border);border-radius:5px;background:var(--surface-2);color:var(--text-primary)}.prose pre{background:var(--surface-0);border:1px solid var(--border);border-radius:10px;padding:14px 16px;font-size:13px;line-height:1.55;overflow-x:auto;color:var(--text-primary)}.prose blockquote{margin:1.2em 0;padding:4px 18px;border-left:3px solid var(--accent-border);background:var(--surface-1);border-radius:0 10px 10px 0}.prose .prose-updated{font-size:12.5px;color:var(--text-tertiary)}.notfound{text-align:center;padding:140px 24px 120px}.notfound h1{font-size:2rem;margin-bottom:10px}.notfound p{color:var(--text-secondary)}@media(max-width:860px){.site-nav a:not(.nav-cta){display:none}}
