:root{--bg:oklch(0.145 0.004 264);--bg-2:oklch(0.175 0.005 264);--card:oklch(0.195 0.006 264);--card-2:oklch(0.225 0.007 264);--fg:oklch(0.97 0.002 264);--fg-2:oklch(0.72 0.01 264);--fg-3:oklch(0.56 0.01 264);--line:oklch(0.28 0.008 264);--line-2:oklch(0.34 0.009 264);--primary:oklch(0.70 0.14 258);--primary-fg:oklch(0.16 0.01 264);--btn:oklch(0.97 0.002 264);--btn-fg:oklch(0.15 0.004 264);--agent:oklch(0.76 0.13 300);--agent-soft:oklch(0.27 0.05 300);--done:oklch(0.72 0.09 158);--review:oklch(0.75 0.15 292);--progress:oklch(0.77 0.13 70);--stale:oklch(0.80 0.11 72);--stale-bg:oklch(0.25 0.045 72);--stale-line:oklch(0.38 0.07 72);--add:oklch(0.78 0.10 158);--add-bg:oklch(0.25 0.045 158);--del:oklch(0.78 0.13 25);--del-bg:oklch(0.26 0.05 25);--terminal-bg:oklch(0.13 0.004 264);--terminal-fg:oklch(0.92 0.004 264);--terminal-tool:oklch(0.80 0.10 300);--terminal-dim:oklch(0.62 0.01 264);--terminal-line:oklch(1 0 0 / 0.07);--terminal-hl:oklch(0.70 0.14 258 / 0.14);--terminal-add:oklch(0.78 0.10 158);--terminal-add-bg:oklch(0.25 0.045 158 / 0.7);--terminal-del:oklch(0.78 0.13 25);--terminal-del-bg:oklch(0.26 0.05 25 / 0.7);--glow:oklch(0.55 0.14 258 / 0.22);--shadow-window:0 0 0 1px oklch(1 0 0 / 0.04),0 30px 80px -20px oklch(0 0 0 / 0.6);--shadow-pop:0 0 0 1px oklch(1 0 0 / 0.05),0 16px 40px -12px oklch(0 0 0 / 0.55);--surface-page:var(--bg);--surface-sunken:var(--bg-2);--surface-card:var(--card);--surface-raised:var(--card-2);--text-strong:var(--fg);--text-body:var(--fg-2);--text-muted:var(--fg-3);--border-subtle:var(--line);--border-strong:var(--line-2);--action-solid-bg:var(--btn);--action-solid-fg:var(--btn-fg);--link:var(--primary);--focus-ring:var(--primary)}[data-theme=light]{--bg:oklch(0.995 0.001 264);--bg-2:oklch(0.975 0.002 264);--card:oklch(1 0 0);--card-2:oklch(0.97 0.003 264);--fg:oklch(0.19 0.008 264);--fg-2:oklch(0.46 0.011 264);--fg-3:oklch(0.58 0.01 264);--line:oklch(0.915 0.004 264);--line-2:oklch(0.86 0.006 264);--primary:oklch(0.50 0.15 258);--primary-fg:oklch(0.99 0.002 264);--btn:oklch(0.19 0.008 264);--btn-fg:oklch(0.99 0.002 264);--agent:oklch(0.475 0.135 300);--agent-soft:oklch(0.965 0.02 300);--done:oklch(0.47 0.075 158);--review:oklch(0.48 0.17 292);--progress:oklch(0.485 0.115 68);--stale:oklch(0.42 0.11 62);--stale-bg:oklch(0.975 0.03 72);--stale-line:oklch(0.87 0.06 72);--add:oklch(0.40 0.085 158);--add-bg:oklch(0.955 0.04 158);--del:oklch(0.45 0.155 25);--del-bg:oklch(0.962 0.032 25);--glow:oklch(0.62 0.12 258 / 0.14);--shadow-window:0 0 0 1px oklch(0 0 0 / 0.05),0 30px 80px -24px oklch(0.25 0.03 264 / 0.25);--shadow-pop:0 0 0 1px oklch(0 0 0 / 0.06),0 16px 40px -12px oklch(0.25 0.03 264 / 0.22)}:root{--font-sans:"Instrument Sans",-apple-system,"Segoe UI",Helvetica,sans-serif;--font-mono:"Geist Mono",ui-monospace,"SF Mono",Menlo,monospace;--type-hero-size:clamp(46px,8vw,92px);--type-hero-lh:0.98;--type-hero-track:-0.045em;--type-cta-size:clamp(40px,6vw,72px);--type-cta-lh:1;--type-cta-track:-0.045em;--type-h2-size:clamp(36px,5vw,60px);--type-h2-lh:1.02;--type-h2-track:-0.04em;--type-h3-size:24px;--type-h3-track:-0.02em;--type-h4-size:19px;--type-h4-track:-0.015em;--type-stat-size:44px;--type-stat-track:-0.045em;--type-lede-size:18px;--type-hero-lede-size:clamp(17px,1.6vw,20px);--type-body-size:16px;--type-body-lh:1.55;--type-small-size:15px;--type-ui-size:14px;--type-caption-size:13px;--type-micro-size:12px;--type-mono-size:12.5px;--type-mono-lh:1.8;--doc-h1-size:40px;--doc-h1-track:-0.035em;--doc-h2-size:26px;--doc-h2-track:-0.025em;--doc-h3-size:19px;--doc-h3-track:-0.015em;--doc-body-size:16px;--doc-body-lh:1.7;--doc-code-size:13.5px;--doc-measure:68ch}:root{--space-1:4px;--space-2:6px;--space-3:8px;--space-4:10px;--space-5:12px;--space-6:16px;--space-7:18px;--space-8:22px;--space-9:26px;--space-10:28px;--space-11:32px;--space-12:40px;--space-13:56px;--container:1200px;--container-narrow:820px;--gutter:clamp(20px,4vw,32px);--section-y:clamp(96px,12vw,160px);--hero-y:clamp(72px,10vw,128px);--nav-h:60px;--docs-sidebar-w:248px;--docs-toc-w:220px;--radius-pill:999px;--radius-tile:20px;--radius-window:16px;--radius-panel:12px;--radius-inset:10px;--radius-control:8px;--radius-sm:7px;--radius-xs:6px;--control-h-lg:48px;--control-h-md:34px;--control-h-sm:30px;--tab-h:36px;--ease:cubic-bezier(.2,.7,.2,1);--dur:150ms}@font-face{font-family:instrument sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/instrument-sans.woff2)format("woff2")}@font-face{font-family:geist mono;font-style:normal;font-weight:400 600;font-display:swap;src:url(../fonts/geist-mono.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+20AC,U+2122,U+2190-2199,U+2212,U+2215}*,*::before,*::after{box-sizing:border-box}html{color-scheme:dark;-webkit-text-size-adjust:100%}html[data-theme=light]{color-scheme:light}body{margin:0;background:var(--bg);color:var(--fg-2);font-family:var(--font-sans);font-size:var(--type-body-size);line-height:var(--type-body-lh);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:4px}code,kbd,pre{font-family:var(--font-mono)}.site-header{position:sticky;top:0;z-index:20;height:var(--nav-h);background:color-mix(in oklch,var(--bg) 94%,transparent);border-bottom:1px solid var(--line)}.site-header-in{height:100%;display:flex;align-items:center;gap:28px;padding:0 var(--gutter)}.brand{display:inline-flex;align-items:center;gap:10px;color:var(--fg);font-weight:600;font-size:16px;letter-spacing:-.01em;white-space:nowrap}.brand-mark{color:var(--fg-3)}.top-nav{display:flex;gap:22px;font-size:15px}.top-nav a{color:var(--fg-2);transition:color var(--dur)var(--ease)}.top-nav a:hover,.top-nav a[aria-current]{color:var(--fg)}.header-actions{margin-left:auto;display:flex;align-items:center;gap:12px}.search-btn{display:inline-flex;align-items:center;gap:8px;height:var(--control-h-md);width:240px;padding:0 6px 0 12px;border:1px solid var(--line-2);border-radius:var(--radius-pill);background:var(--bg-2);color:var(--fg-3);font-size:14px;cursor:pointer}.search-btn:hover{border-color:var(--fg-3)}.search-btn-label{flex:1;text-align:left}.kbd-group{display:inline-flex;gap:3px}kbd{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border:1px solid var(--line-2);border-radius:5px;background:var(--card);color:var(--fg-3);font-size:11px}.theme-btn{height:var(--control-h-md);padding:0 10px;border:0;border-radius:var(--radius-pill);background:0 0;color:var(--fg-2);cursor:pointer;font-size:15px}.theme-btn:hover{color:var(--fg)}.btn{display:inline-flex;align-items:center;height:var(--control-h-md);padding:0 16px;border-radius:var(--radius-pill);font-size:15px;font-weight:500}.btn-solid{background:var(--btn);color:var(--btn-fg)}.btn-solid:hover{opacity:.9}.icon-btn{display:none;place-items:center;width:34px;height:34px;border:1px solid var(--line-2);border-radius:var(--radius-control);background:0 0;cursor:pointer;color:var(--fg-2)}.docs-shell{display:grid;grid-template-columns:var(--docs-sidebar-w)minmax(0,1fr)var(--docs-toc-w);min-height:calc(100vh - var(--nav-h))}.docs-main{min-width:0;padding:48px 52px 96px}.doc{max-width:var(--doc-measure)}.docs-sidebar{position:sticky;top:var(--nav-h);align-self:start;height:calc(100vh - var(--nav-h));overflow-y:auto;padding:28px 16px 40px 32px;border-right:1px solid var(--line)}.nav-group+.nav-group{margin-top:26px}.nav-group-title{margin:0 0 8px 10px;color:var(--fg-3);font-size:var(--type-caption-size)}.docs-sidebar ul{list-style:none;margin:0;padding:0}.docs-sidebar li a{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px;border-radius:var(--radius-control);color:var(--fg-2);font-size:15px;transition:color var(--dur)var(--ease),background var(--dur)var(--ease)}.docs-sidebar li a:hover{color:var(--fg)}.docs-sidebar li a[aria-current]{background:var(--card-2);color:var(--fg)}.nav-tool span:first-child{font-family:var(--font-mono);font-size:13px;overflow:hidden;text-overflow:ellipsis}.docs-toc{position:sticky;top:var(--nav-h);align-self:start;max-height:calc(100vh - var(--nav-h));overflow-y:auto;padding:52px 24px 40px 0;font-size:var(--type-caption-size)}.toc-title{margin:0 0 10px;color:var(--fg-3)}.docs-toc ul,.toc-inline ul{list-style:none;margin:0;padding:0}.docs-toc ul ul,.toc-inline ul ul{padding-left:12px}.docs-toc a,.toc-inline a{display:block;padding:4px 0;color:var(--fg-3);line-height:1.4;transition:color var(--dur)var(--ease)}.docs-toc a:hover,.docs-toc a[aria-current]{color:var(--fg)}.toc-inline{display:none;margin-top:20px;border:1px solid var(--line);border-radius:var(--radius-panel);padding:10px 14px;font-size:14px}.toc-inline summary{cursor:pointer;color:var(--fg-2)}.doc-head{margin-bottom:36px}.doc-eyebrow{margin:0 0 12px;color:var(--fg-3);font-size:var(--type-ui-size)}.doc-eyebrow a:hover{color:var(--fg)}.doc-title{margin:0;color:var(--fg);font-size:var(--doc-h1-size);line-height:1.08;letter-spacing:var(--doc-h1-track);font-weight:600}.doc-title-mono{font-family:var(--font-mono);font-size:32px;letter-spacing:-.02em;display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:24px}.doc-lede{margin:16px 0 0;color:var(--fg-2);font-size:var(--type-lede-size);line-height:1.6}.ir-prose{max-width:var(--doc-measure);font-size:var(--doc-body-size);line-height:var(--doc-body-lh);color:var(--fg-2)}.ir-prose>*+*{margin-top:1em}.ir-prose h1{font-size:var(--doc-h1-size);line-height:1.08;letter-spacing:var(--doc-h1-track);font-weight:600;color:var(--fg);margin:0}.ir-prose h2{font-size:var(--doc-h2-size);line-height:1.2;letter-spacing:var(--doc-h2-track);font-weight:600;color:var(--fg);margin-top:2.2em;padding-top:.2em}.ir-prose h3{font-size:var(--doc-h3-size);line-height:1.3;letter-spacing:var(--doc-h3-track);font-weight:600;color:var(--fg);margin-top:1.8em}.ir-prose h2+*,.ir-prose h3+*{margin-top:.6em}.ir-prose strong{color:var(--fg);font-weight:600}.ir-prose a{color:var(--primary);text-decoration-line:underline;text-decoration-thickness:initial;text-decoration-style:initial;text-decoration-color:color-mix(in oklch,var(--primary) 40%,transparent);text-underline-offset:3px}.ir-prose a:hover{text-decoration-color:initial}.ir-prose ul,.ir-prose ol{padding-left:1.3em}.ir-prose li+li{margin-top:.35em}.ir-prose li::marker{color:var(--fg-3)}.ir-prose :not(pre)>code{font-family:var(--font-mono);font-size:.86em;padding:.12em .4em;border-radius:5px;background:var(--card-2);border:1px solid var(--line);color:var(--fg)}.ir-prose pre{font-family:var(--font-mono);font-size:var(--doc-code-size);line-height:1.75;padding:16px 18px;border-radius:var(--radius-panel);background:var(--terminal-bg);color:var(--terminal-fg);overflow-x:auto}.ir-prose hr{border-right:0;border-bottom:0;border-left:0;border-image:none;border-top:1px solid var(--line);margin:2.4em 0}.ir-prose table{width:100%;border-collapse:collapse;font-size:14px}.ir-prose th{text-align:left;font-weight:500;color:var(--fg-3);font-size:12.5px;padding:8px 12px;border-bottom:1px solid var(--line-2)}.ir-prose td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}.ir-prose blockquote{margin-left:0;padding:2px 0 2px 16px;color:var(--fg-2);font-style:normal;border-left:2px solid var(--line-2)}.ir-prose>:first-child{margin-top:0}.ir-prose h2,.ir-prose h3{position:relative;scroll-margin-top:calc(var(--nav-h) + 16px)}.ir-prose h4{color:var(--fg);font-size:16px;font-weight:600;margin-top:1.6em}.ir-prose p,.ir-prose ul,.ir-prose ol,.ir-prose table,.ir-prose blockquote{margin-bottom:0}.ir-prose h2,.ir-prose h3,.ir-prose h4{margin-bottom:0}.heading-anchor{margin-left:8px;color:var(--fg-3);opacity:0;font-weight:400;text-decoration:none!important;transition:opacity var(--dur)var(--ease)}h2:hover .heading-anchor,h3:hover .heading-anchor,.heading-anchor:focus-visible{opacity:1}.ir-prose table{display:block;overflow-x:auto}.ir-prose td code{white-space:nowrap}.ir-prose .req{color:var(--progress);font-size:12px}.ir-prose td.type{font-family:var(--font-mono);font-size:13px;color:var(--fg-3);white-space:nowrap}.tool-table td{vertical-align:middle}.tool-table .tool-name a{text-decoration:none}.tool-table .tool-name code{color:var(--fg)}.code-block{margin-top:1em;border:1px solid var(--terminal-line);border-radius:var(--radius-panel);background:var(--terminal-bg);overflow:hidden}.code-head{display:flex;align-items:center;justify-content:space-between;padding:0 10px 0 16px;height:38px;border-bottom:1px solid var(--terminal-line)}.code-label{color:var(--terminal-dim);font-family:var(--font-mono);font-size:12.5px}.code-copy{border:0;background:0 0;color:var(--terminal-dim);font-size:13px;padding:4px 8px;border-radius:var(--radius-xs);cursor:pointer}.code-copy:hover{color:var(--terminal-fg);background:var(--terminal-hl)}.code-block pre,.ir-prose .code-block pre{margin:0;border-radius:0;background:0 0!important}.code-block .highlight{margin:0}.chroma{color:var(--terminal-fg);background:0 0}.chroma .c,.chroma .c1,.chroma .cm,.chroma .cs,.chroma .ch,.chroma .cp,.chroma .cpf{color:var(--terminal-dim);font-style:normal}.chroma .k,.chroma .kc,.chroma .kd,.chroma .kn,.chroma .kp,.chroma .kr,.chroma .kt,.chroma .nb{color:var(--terminal-tool)}.chroma .s,.chroma .s1,.chroma .s2,.chroma .sb,.chroma .sc,.chroma .sd,.chroma .se,.chroma .sh,.chroma .si,.chroma .sx,.chroma .sr,.chroma .ss{color:var(--terminal-add)}.chroma .m,.chroma .mi,.chroma .mf,.chroma .mh,.chroma .il,.chroma .mo{color:oklch(.8 .11 72)}.chroma .nt,.chroma .na,.chroma .nf,.chroma .nx{color:oklch(.8 .09 230)}.chroma .o,.chroma .ow,.chroma .p{color:var(--terminal-fg)}.chroma .gp{color:var(--terminal-dim);user-select:none}.chroma .err{color:var(--terminal-del);background:0 0}.chroma .lntd{vertical-align:top;padding:0}.tag{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:var(--radius-pill);font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.01em;vertical-align:middle}.tag-read{color:var(--primary);background:color-mix(in oklch,var(--primary) 14%,transparent)}.tag-write{color:var(--agent);background:var(--agent-soft)}.pager{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:72px}.pager-link{display:flex;flex-direction:column;gap:4px;padding:16px 18px;border:1px solid var(--line-2);border-radius:var(--radius-panel);transition:border-color var(--dur)var(--ease)}.pager-link:hover{border-color:var(--fg-3)}.pager-next{text-align:right}.pager-dir{color:var(--fg-3);font-size:var(--type-caption-size)}.pager-title{color:var(--fg);font-weight:600}.search-dialog{width:min(640px,calc(100vw - 32px));max-height:min(560px,calc(100vh - 120px));margin:96px auto auto;padding:0;border:1px solid var(--line-2);border-radius:var(--radius-window);background:var(--card);color:var(--fg-2);box-shadow:var(--shadow-pop);overflow:hidden}.search-dialog::backdrop{background:oklch(0 0 0/.5)}.search-dialog[open]{display:flex;flex-direction:column}.search-box{display:flex;align-items:center;gap:10px;padding:0 16px;height:54px;border-bottom:1px solid var(--line);color:var(--fg-3)}.search-box input{flex:1;border:0;background:0 0;outline:none;color:var(--fg);font:inherit;font-size:16px}.search-box input::-webkit-search-cancel-button{display:none}.search-results{list-style:none;margin:0;padding:8px;overflow-y:auto}.search-results a{display:block;padding:10px 12px;border-radius:var(--radius-control)}.search-results a[aria-selected=true],.search-results a:hover{background:var(--card-2)}.search-results .r-title{color:var(--fg);font-weight:500}.search-results .r-group{color:var(--fg-3);font-size:12.5px;margin-left:8px}.search-results .r-snip{display:block;margin-top:2px;color:var(--fg-3);font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-results mark{background:0 0;color:var(--primary)}.search-empty{margin:0;padding:20px 16px;color:var(--fg-3)}@media(max-width:1099px){.docs-shell{grid-template-columns:var(--docs-sidebar-w)minmax(0,1fr)}.docs-toc{display:none}.toc-inline{display:block}}@media(max-width:799px){.docs-shell{display:block}.docs-main{padding:32px var(--gutter)72px}.icon-btn{display:inline-grid}.top-nav,.theme-btn,.header-actions .btn{display:none}.site-header-in{gap:12px}.search-btn{width:34px;padding:0;justify-content:center}.search-btn-label,.search-btn .kbd-group{display:none}.docs-sidebar{position:fixed;z-index:30;top:0;left:0;bottom:0;height:100vh;width:min(300px,86vw);background:var(--bg);transform:translateX(-100%);transition:transform 200ms var(--ease);padding-top:24px}.docs-sidebar.is-open{transform:none}.sidebar-scrim{position:fixed;inset:0;z-index:25;background:oklch(0 0 0/.5)}.doc-title{font-size:32px}.pager{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}