body.docs{font-size:16.5px;line-height:1.65}html:has(body.docs){scroll-padding-top:88px}.docs-layout{max-width:var(--max);padding:48px var(--gutter) 120px;grid-template-columns:230px minmax(0,1fr);gap:64px;margin:0 auto;display:grid}.docs-main{min-width:0;max-width:760px}.toc{overscroll-behavior:contain;scrollbar-width:none;align-self:start;max-height:calc(100vh - 120px);margin-left:-20px;padding:2px 10px 24px;font-size:14px;position:sticky;top:96px;overflow:auto}.toc::-webkit-scrollbar{display:none}.toc p{font:500 11px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin:22px 0 8px 10px}.toc p:first-child{margin-top:0}.toc a{color:var(--ink-3);border-radius:8px;padding:6px 10px;text-decoration:none;transition:color .16s,background-color .16s;display:block}.toc a:active{background:color-mix(in oklab, var(--ink) 9%, transparent)}.toc a.on{color:var(--ink);background:color-mix(in oklab, var(--ink) 7%, transparent);font-weight:550}.toc-sub{margin:2px 0 6px 12px}.toc-sub a{padding:4px 10px;font-size:13px}.toc-sub a.on{color:var(--accent);background:0 0;font-weight:500}@media (hover:hover) and (pointer:fine){.toc a:hover{color:var(--ink);background:color-mix(in oklab, var(--ink) 4%, transparent)}.toc a.on:hover{background:color-mix(in oklab, var(--ink) 7%, transparent)}.toc-sub a.on:hover{background:color-mix(in oklab, var(--ink) 4%, transparent)}}.pager{grid-template-columns:1fr 1fr;gap:10px;margin-top:72px;display:grid}.pager a{background:var(--panel);transition:background-color .2s ease, transform .2s var(--ease-out);border-radius:14px;gap:2px;padding:16px 18px;text-decoration:none;display:grid}.pager a:active{transform:scale(.985)}.pager .next{text-align:right;grid-column:2}.pager small{font:11px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}.pager b{letter-spacing:-.015em;font-weight:600}@media (hover:hover) and (pointer:fine){.pager a:hover{background:color-mix(in oklab, var(--ink) 5%, var(--panel))}}@media (width<=900px){.docs-layout{grid-template-columns:1fr;gap:0;padding-top:24px}.toc{display:none}}.prose h1{letter-spacing:-.045em;text-wrap:balance;margin:0;font-size:clamp(2.2rem,4.4vw,3.2rem);font-weight:650;line-height:1}.prose .lede{color:var(--ink-3);max-width:56ch;margin:18px 0 40px;font-size:1.15rem}.prose h2{letter-spacing:-.025em;margin:56px 0 12px;font-size:1.4rem;font-weight:620;line-height:1.2}.prose h3{letter-spacing:-.015em;margin:36px 0 10px;font-size:1.12rem;font-weight:600}.prose p,.prose li{color:var(--ink-2)}.prose p{margin:12px 0}.prose ul,.prose ol{margin:12px 0;padding-left:22px}.prose li{margin:8px 0}.prose li::marker{color:var(--accent)}.prose strong{color:var(--ink);font-weight:600}.prose a{text-decoration:underline;text-decoration-color:var(--ink-4);text-underline-offset:3px;transition:text-decoration-color .16s}@media (hover:hover) and (pointer:fine){.prose a:hover{text-decoration-color:var(--ink)}}.prose :not(pre)>code{font:.86em var(--mono);color:var(--ink);background:color-mix(in oklab, var(--ink) 7%, transparent);letter-spacing:0;-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:6px;padding:2px 7px}.prose blockquote{background:color-mix(in oklab, var(--accent) 9%, var(--bg));border-radius:14px;margin:18px 0;padding:14px 18px}.prose blockquote p{margin:0}.prose blockquote strong{color:var(--accent)}.prose table{border-collapse:collapse;background:var(--panel);border-radius:14px;width:100%;margin:18px 0;font-size:14.5px;display:block;overflow-x:auto}.prose th{text-align:left;font:500 11px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);background:color-mix(in oklab, var(--ink) 4%, transparent);padding:12px 16px}.prose td{vertical-align:top;color:var(--ink-2);padding:11px 16px}.prose tr:nth-child(2n) td{background:color-mix(in oklab, var(--ink) 2.5%, transparent)}.prose td:first-child{white-space:nowrap;color:var(--ink)}@media (prefers-contrast:more){.prose table,.prose blockquote{box-shadow:inset 0 0 0 1px var(--ink-2)}}.code{background:var(--code-bg);border-radius:16px;margin:18px 0;position:relative;overflow:hidden;box-shadow:0 24px 60px -36px #000000b3}.code-bar{font:11px var(--mono);color:#e7e2d673;text-transform:lowercase;justify-content:space-between;align-items:center;padding:8px 8px 0 16px;display:flex}.code pre.astro-code{font:13px/1.75 var(--mono);tab-size:2;margin:0;padding:12px 20px 20px;overflow-x:auto;background:0 0!important}.prose>pre.astro-code{font:13px/1.75 var(--mono);border-radius:16px;margin:18px 0;padding:18px 20px}.copy{height:28px;font:11px var(--mono);color:#e7e2d699;transition:background-color .16s ease, color .16s ease, transform .14s var(--ease-out);border-radius:8px;padding:0 10px}.copy:active{transform:scale(.95)}.copy .lbl{transition:opacity .18s,filter .18s;display:inline-block}.copy.swap .lbl{opacity:0;filter:blur(3px)}@media (hover:hover) and (pointer:fine){.copy:hover{color:#fff;background:#ffffff12}}@media (prefers-contrast:more){.code{box-shadow:inset 0 0 0 1px var(--ink-2)}}.prose .diagram{background:linear-gradient(145deg, var(--panel-2), var(--panel));border-radius:22px;margin:28px 0;padding:20px;box-shadow:0 12px 40px -28px #0000004d}.prose .diagram-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:24px;display:flex}.prose .diagram-bar>span{color:var(--ink);letter-spacing:-.01em;flex:220px;font-size:14px;font-weight:600;line-height:1.4}.diagram-tools{background:var(--bg);border-radius:12px;align-items:center;gap:3px;padding:4px;display:flex}.diagram-tools button{min-width:36px;min-height:36px;color:var(--ink);border-radius:8px;padding:0 9px;font-size:12px;transition:background-color .12s,transform .12s}.diagram-tools button:active{background:var(--panel-2);transform:scale(.96)}.diagram-tools button:disabled{opacity:.3;cursor:default}.diagram-tools output{text-align:center;width:42px;font:11px var(--mono);color:var(--ink-3)}.prose .diagram-drawing{overscroll-behavior:contain;border-radius:12px;max-height:680px;padding:8px 0 16px;overflow:auto}.prose .diagram-drawing svg{height:auto;margin:0 auto;display:block}.prose .diagram .label{font:inherit;letter-spacing:normal;text-transform:none;color:inherit}.prose .diagram .node rect{rx:12px;ry:12px;stroke-width:1px}.prose .diagram .node polygon{stroke-width:1px}.prose .diagram .edgePath path{stroke-width:1.3px}.prose pre[data-language=mermaid]{font:12px/1.6 var(--mono);border-radius:8px;padding:16px;overflow-x:auto}.prose .diagram pre{margin-bottom:0}.prose>details{background:var(--panel);border-radius:14px;margin:16px 0 24px;padding:16px 20px}.prose>details>summary{cursor:pointer;color:var(--ink);font-weight:550}@media (hover:hover) and (pointer:fine){.diagram-tools button:hover:not(:disabled){background:var(--panel-2)}}@media (width<=600px){.prose .diagram{padding:16px}.diagram-tools button{min-width:40px;min-height:44px}}@media (prefers-reduced-motion:reduce){.diagram-tools button{transition:none}.diagram-tools button:active{transform:none}}@media (prefers-contrast:more){.prose .diagram{outline:1px solid var(--ink)}}.docs-example .example-controls button,.docs-example .example-controls select,.docs-example .example-input textarea{transition:background-color .14s var(--ease-out), border-color .14s var(--ease-out), transform .1s var(--ease-out)}.docs-example .example-controls button:active{background:var(--panel-2);transform:scale(.97)}.docs-example .example-controls select:focus-visible,.docs-example .example-input textarea:focus-visible{border-color:var(--accent)}.docs-example .example-controls input[type=checkbox]{appearance:none;border:1px solid var(--ink-3);background:var(--panel-2);cursor:pointer;width:40px;height:24px;transition:background-color .16s var(--ease-out), border-color .16s var(--ease-out);border-radius:999px;flex:none;position:relative}.docs-example .example-controls input[type=checkbox]:after{content:"";background:var(--ink);width:16px;height:16px;transition:transform .18s var(--ease-out), background-color .16s var(--ease-out);border-radius:50%;position:absolute;top:3px;left:3px;transform:translate(0)}.docs-example .example-controls input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}.docs-example .example-controls input[type=checkbox]:checked:after{background:var(--bg);transform:translate(16px)}.docs-example .example-result{opacity:1;transition:opacity .18s var(--ease-out)}@starting-style{.docs-example .example-result{opacity:0}}@media (hover:hover) and (pointer:fine){.docs-example .example-controls button:hover{background:var(--panel-2);border-color:var(--ink-3)}.docs-example .example-controls select:hover{border-color:var(--ink-3)}}@media (prefers-reduced-motion:reduce){.docs-example .example-controls button,.docs-example .example-controls select,.docs-example .example-input textarea,.docs-example .example-controls input[type=checkbox],.docs-example .example-controls input[type=checkbox]:after,.docs-example .example-result{transition:none}.docs-example .example-controls button:active{transform:none}@starting-style{.docs-example .example-result{opacity:1}}}@media (prefers-contrast:more){.docs-example .example-controls input[type=checkbox]{border:2px solid var(--ink)}.docs-example .example-controls input[type=checkbox]:after{top:2px;left:2px}}@media (prefers-reduced-motion:reduce){.copy,.copy .lbl{transition:none}.copy:active{transform:none}.copy.swap .lbl{opacity:1;filter:none}}
