:root{--ink: #0c0d0c;--paper: #f5f3ee;--accent: #3fae6e;--accent-hi: #5fc98a;--surface: #0f110f;--line: #1e231e;--stroke: #2a2e2a;--text-dim: #9aa09a;--text-mute: #6a706a;--code: #c8ccc8;--mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--sans: Geist, system-ui, -apple-system, sans-serif;--sidebar: 232px;--toc: 200px;--pad: 40px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0;background:var(--ink);color:var(--paper);font-family:var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit}.skip{position:absolute;left:-9999px}.skip:focus{left:12px;top:12px;z-index:10;background:var(--accent);color:var(--ink);padding:8px 14px;border-radius:6px}.nav{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 var(--pad);height:60px;background:#0c0d0cdb;backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:9px;text-decoration:none}.wordmark{font-family:var(--mono);font-weight:600;letter-spacing:-.01em}.tag{font-family:var(--mono);font-size:11px;color:var(--accent);border:1px solid var(--stroke);border-radius:4px;padding:1px 6px}.nav-links{display:flex;align-items:center;gap:22px;font-size:13.5px;color:var(--text-dim)}.search{position:relative;flex:1;max-width:420px}.search input{width:100%;height:34px;padding:0 34px 0 12px;background:var(--surface);border:1px solid var(--line);border-radius:7px;color:var(--paper);font-family:var(--sans);font-size:13.5px;outline:none}.search input::placeholder{color:var(--text-mute)}.search input:focus{border-color:var(--stroke)}.search input::-webkit-search-cancel-button{display:none}.search kbd{position:absolute;right:9px;top:8px;font-family:var(--mono);font-size:11px;line-height:16px;color:var(--text-mute);border:1px solid var(--line);border-radius:4px;padding:0 5px;pointer-events:none}.search input:focus+kbd{display:none}.results{position:absolute;top:42px;left:0;right:0;max-height:60vh;overflow-y:auto;margin:0;padding:6px;list-style:none;background:var(--surface);border:1px solid var(--stroke);border-radius:9px;box-shadow:0 18px 40px #00000080}.results a{display:block;padding:8px 10px;border-radius:6px;text-decoration:none;outline:none}.results a:hover,.results a:focus{background:#3fae6e1f}.results strong{display:block;font-size:13.5px;font-weight:500;color:var(--paper)}.results span{font-size:12px;color:var(--text-mute)}.results .empty{padding:10px;font-size:13px;color:var(--text-mute)}.nav-links a{text-decoration:none}.nav-links a:hover{color:var(--paper)}.nav-cta{color:var(--accent)}.shell{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr) var(--toc);gap:48px;max-width:1360px;margin:0 auto;padding:40px var(--pad) 96px}.sidebar,.toc{position:sticky;top:92px;align-self:start;max-height:calc(100vh - 120px);overflow-y:auto;font-size:13.5px}.group+.group{margin-top:26px}.group-name{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-mute);margin-bottom:10px}.sidebar ul,.toc ul{list-style:none;margin:0;padding:0}.sidebar li a,.toc li a{display:block;padding:5px 0 5px 12px;border-left:1px solid var(--line);color:var(--text-dim);text-decoration:none}.sidebar li a:hover,.toc li a:hover{color:var(--paper);border-left-color:var(--stroke)}.sidebar li a[aria-current=page]{color:var(--accent);border-left-color:var(--accent)}.prose{min-width:0;max-width:74ch;font-size:15.5px;line-height:1.72;color:#d6d9d5}.prose h1{font-size:clamp(1.9rem,4vw,2.5rem);line-height:1.14;letter-spacing:-.02em;color:var(--paper);margin:0 0 28px}.prose h2{font-size:1.35rem;letter-spacing:-.01em;color:var(--paper);margin:52px 0 14px;padding-top:20px;border-top:1px solid var(--line)}.prose h3{font-size:1.05rem;color:var(--paper);margin:32px 0 10px}.prose p{margin:0 0 18px}.prose strong{color:var(--paper);font-weight:600}.prose a{color:var(--accent);text-decoration:none;border-bottom:1px solid rgba(63,174,110,.32)}.prose a:hover{border-bottom-color:var(--accent)}.prose ul,.prose ol{margin:0 0 18px;padding-left:22px}.prose li{margin-bottom:7px}.prose blockquote{margin:24px 0;padding:2px 0 2px 18px;border-left:2px solid var(--accent);color:var(--paper);font-style:italic}.prose blockquote p:last-child{margin-bottom:0}.prose code{font-family:var(--mono);font-size:.88em;background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:1px 5px;color:var(--code)}.prose pre{background:var(--surface)!important;border:1px solid var(--line);border-radius:10px;padding:16px 18px;overflow-x:auto;font-size:13px;line-height:1.6;margin:0 0 20px}.prose pre code{background:none;border:0;padding:0;font-size:inherit}.prose table{width:100%;border-collapse:collapse;margin:0 0 22px;font-size:14px;display:block;overflow-x:auto}.prose th,.prose td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--line);vertical-align:top}.prose th{font-family:var(--mono);font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-mute);font-weight:500}.prose hr{border:0;border-top:1px solid var(--line);margin:40px 0}.crumbs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:18px;font-family:var(--mono);font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-mute)}.crumbs a{color:var(--text-mute);text-decoration:none;border:0}.crumbs a:hover{color:var(--accent)}.crumb-current{color:var(--text-dim)}.pager{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:56px}.pager a{display:block;padding:14px 16px;border:1px solid var(--line);border-radius:10px;text-decoration:none;color:inherit}.pager a:hover{border-color:var(--stroke)}.pager-next{text-align:right}.pager span{display:block;font-family:var(--mono);font-size:11.5px;color:var(--text-mute);margin-bottom:4px}.pager strong{font-size:14.5px;font-weight:500;color:var(--paper)}.prose .has-copy{position:relative}.prose .copy{position:absolute;top:9px;right:9px;z-index:1;padding:3px 9px;background:var(--ink);border:1px solid var(--line);border-radius:5px;color:var(--text-mute);font-family:var(--mono);font-size:11px;cursor:pointer;opacity:0;transition:opacity .12s}.prose .has-copy:hover .copy,.prose .copy:focus{opacity:1}.prose .copy:hover{color:var(--accent);border-color:var(--stroke)}.nav-toggle{display:none}.page-foot{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:64px;padding-top:20px;border-top:1px solid var(--line);font-size:13px;color:var(--text-mute)}.page-foot a{color:var(--text-dim);text-decoration:none;border:0}.page-foot a:hover{color:var(--accent)}@media(max-width:1180px){.shell{grid-template-columns:var(--sidebar) minmax(0,1fr);gap:36px}.toc{display:none}}@media(max-width:860px){:root{--pad: 22px}.shell{grid-template-columns:minmax(0,1fr);gap:0;padding-top:24px}.sidebar{position:static;max-height:none;margin-bottom:28px}.nav{gap:12px}.nav-links a:not(.nav-cta){display:none}.search{max-width:none}.pager{grid-template-columns:minmax(0,1fr)}.pager-next{text-align:left}@media(scripting:enabled){.nav-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;cursor:pointer;padding:11px 14px;background:var(--surface);border:1px solid var(--line);border-radius:9px;font-family:var(--sans);font-size:13.5px;color:var(--text-dim)}.nav-toggle:after{content:"▾";color:var(--text-mute)}.nav-toggle[aria-expanded=true]{border-radius:9px 9px 0 0;border-bottom-color:transparent}.nav-toggle[aria-expanded=true]:after{content:"▴"}.sidebar nav{display:none;padding:16px 14px 18px;border:1px solid var(--line);border-top:0;border-radius:0 0 9px 9px}.nav-toggle[aria-expanded=true]+nav{display:block}}.nav-toggle-current{color:var(--paper);margin-left:auto}}
