:root{--bg:#f4f6fa;--paper:#fff;--ink-900:#14213d;--ink-700:#17233b;--ink-600:#33415c;--ink-500:#5a6b85;--ink-400:#8a97ac;--ink-200:#d8dfea;--ink-100:#ecf1f8;--accent:#2e5fc4;--accent-deep:#1d3a6d;--accent-soft:#e7eefa;--font-sans:"IBM Plex Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--green:var(--accent);--green-soft:var(--accent-soft)}@media (prefers-color-scheme:dark){:root{--bg:#0f1b33;--paper:#14213d;--ink-900:#f1f5f9;--ink-700:#e2e8f0;--ink-600:#cbd5e1;--ink-500:#94a3b8;--ink-400:#7c8ba1;--ink-200:#2a3b5c;--ink-100:#1c2b4a;--accent:#6f97e8;--accent-deep:#4b77d9;--accent-soft:#1c2b4a}}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink-700);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.65}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}code,pre{font-family:var(--font-mono);font-size:.88em}pre{background:var(--ink-100);border:1px solid var(--ink-200);border-radius:8px;padding:14px 16px;line-height:1.55;overflow-x:auto}code:not(pre code){background:var(--ink-100);border-radius:5px;padding:1px 5px}.wrap{max-width:1160px;margin:0 auto;padding:0 20px}.site-header{z-index:50;background:var(--paper);border-bottom:1px solid var(--ink-200);position:sticky;top:0}.site-header .wrap{align-items:center;gap:22px;height:64px;display:flex}.brand{color:var(--ink-900);align-items:center;gap:10px;display:flex}.brand:hover{text-decoration:none}.brand .mark{background:var(--accent-deep);color:#fff;border-radius:7px;flex:none;justify-content:center;align-items:center;width:30px;height:30px;font-size:18px;font-style:italic;font-weight:700;display:inline-flex}.brand .word{flex-direction:column;line-height:1.15;display:flex}.brand .name{letter-spacing:-.01em;white-space:nowrap;font-size:16px;font-weight:700}.brand .name .b{color:var(--accent)}.brand .tag{letter-spacing:.28em;color:var(--ink-400);font-size:8.5px;font-weight:600}.header-nav{align-items:center;gap:8px;margin-left:auto;display:flex}.menu-toggle,.gh-label{display:none}nav.main{flex-wrap:wrap;gap:2px;display:flex}nav.main a{color:var(--ink-600);white-space:nowrap;border-radius:6px;padding:8px 12px;font-size:13.5px;font-weight:500}nav.main a:hover{color:var(--accent-deep);background:var(--accent-soft);text-decoration:none}nav.main a.active{color:var(--accent-deep);background:var(--accent-soft)}.header-github{width:36px;height:36px;color:var(--ink-600);border-radius:8px;flex:none;justify-content:center;align-items:center;display:inline-flex}.header-github:hover{color:var(--accent-deep);background:var(--accent-soft);text-decoration:none}.header-cta{background:var(--accent-deep);color:#fff;white-space:nowrap;border-radius:8px;padding:10px 18px;font-size:13.5px;font-weight:600}.header-cta:hover{background:var(--ink-900);text-decoration:none}@media (width<=880px){.menu-toggle{border:1px solid var(--ink-200);background:var(--paper);width:42px;height:42px;color:var(--ink-600);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;margin-left:auto;display:inline-flex}.menu-toggle[aria-expanded=true]{color:var(--accent-deep);background:var(--accent-soft);border-color:var(--accent-deep)}.header-nav{background:var(--paper);border-bottom:1px solid var(--ink-200);flex-direction:column;align-items:stretch;gap:6px;margin-left:0;padding:12px 20px 18px;display:none;position:absolute;top:100%;left:0;right:0;box-shadow:0 14px 28px #14213d1f}.header-nav.open{display:flex}nav.main{flex-direction:column;gap:2px}nav.main a{border-radius:8px;padding:12px;font-size:15px}.header-github{justify-content:flex-start;gap:10px;width:auto;height:auto;padding:12px;font-size:15px;font-weight:500}.gh-label{display:inline}.header-cta{text-align:center;margin-top:6px;padding:13px 18px;font-size:15px}}main{min-height:62vh;padding:40px 0 64px}.site-footer{border-top:1px solid var(--ink-200);background:var(--paper);color:var(--ink-400);padding:26px 0 40px;font-size:13.5px}.site-footer .wrap{flex-wrap:wrap;align-items:center;gap:8px 24px;display:flex}.site-footer a{color:var(--ink-500)}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-size:11px;font-weight:700}h1.page-title{letter-spacing:-.02em;color:var(--ink-900);margin:6px 0 10px;font-size:34px;line-height:1.2}.page-sub{color:var(--ink-500);max-width:46em;font-size:17px}.card{background:var(--paper);border:1px solid var(--ink-200);border-radius:10px;padding:22px 24px}.btn{border:1px solid var(--accent-deep);color:var(--accent-deep);background:var(--paper);border-radius:8px;padding:12px 20px;font-size:14.5px;font-weight:600;display:inline-block}.btn:hover{background:var(--accent-soft);text-decoration:none}.btn-primary{background:var(--accent-deep);border-color:var(--accent-deep);color:#fff}.btn-primary:hover{background:var(--ink-900)}.btn-green{background:var(--accent-deep);border-color:var(--accent-deep);color:#fff}.btn-green:hover{background:var(--ink-900)}.grid-2{grid-template-columns:1fr 1fr;gap:18px;display:grid}.grid-3{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}@media (width<=800px){.grid-2,.grid-3{grid-template-columns:1fr}}.newsletter{background:var(--ink-100);border:1px solid var(--ink-200);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:22px 24px;display:flex}.newsletter h3{color:var(--ink-900);font-size:17px}.newsletter p{color:var(--ink-500);max-width:34em;font-size:14px}.prose{max-width:45em}.prose h2{color:var(--ink-900);letter-spacing:-.01em;margin:36px 0 12px;font-size:24px}.prose h3{color:var(--ink-900);margin:26px 0 10px;font-size:18.5px}.prose p,.prose ul,.prose ol{margin-bottom:14px}.prose ul,.prose ol{padding-left:24px}.prose li{margin-bottom:5px}.prose pre{margin:16px 0}.prose blockquote{border-left:3px solid var(--accent);color:var(--ink-500);margin:16px 0;padding:4px 0 4px 16px}.prose table{border-collapse:collapse;width:100%;margin:16px 0;font-size:14.5px}.prose th,.prose td{border:1px solid var(--ink-200);text-align:left;padding:7px 11px}.prose th{background:var(--ink-100);color:var(--ink-900)}.prose img{border:1px solid var(--ink-200);border-radius:10px;max-width:100%}
