@font-face{font-family:Space Grotesk;src:url(/fonts/SpaceGrotesk-Regular.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Space Grotesk;src:url(/fonts/SpaceGrotesk-Bold.ttf)format("truetype");font-weight:600 900;font-style:normal;font-display:swap}:root{--bg:#f6f5fa;--paper:#fff;--paper-2:#efecf7;--ink:#232030;--ink-soft:#3f3a4e;--muted:#6f6a7e;--line:#e3deee;--ink-line:var(--line);--soft:#efebf7;--blue:#6440d6;--blue-ink:#4e31b3;--blue-soft:#e8e0fb;--blue-ring:#6440d633;--on-accent:#fff;--neon:var(--blue-soft);--neon-ink:var(--blue-ink);--on-neon:var(--blue-ink);--badge-bg:var(--blue-soft);--badge-fg:var(--blue-ink);--punch:#6440d6;--accent:#c3aef3;--danger:#b44552;--ok:#42715d;--sticker-shadow:none;--sticker-shadow-sm:none;--r-lg:16px;--r-md:13px;--r-sm:10px;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--display:"Space Grotesk", system-ui, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html[data-theme=dark]{--bg:#16141c;--paper:#201d29;--paper-2:#272332;--ink:#f1ecfa;--ink-soft:#d8d1e6;--muted:#aaa1bb;--line:#353044;--soft:#292435;--blue:#b79df5;--blue-ink:#d5c4f9;--blue-soft:#322a48;--blue-ring:#b79df540;--on-accent:#221a38;--accent:#5b4a85;--danger:#f2a3ae;--ok:#a2d0b9;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;color:var(--ink);font-family:var(--display), system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;-webkit-font-smoothing:antialiased;margin:0}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--blue);outline-offset:3px}::selection{background:var(--accent);color:var(--ink)}h1,h2,h3,p{overflow-wrap:anywhere}kbd{font:10px var(--mono);border:1px solid var(--line);color:var(--muted);border-radius:4px;padding:3px 5px}.skip-link{z-index:200;background:var(--ink);color:var(--paper);border-radius:0 0 8px 8px;padding:12px;position:fixed;top:-100px;left:16px}.skip-link:focus{top:0}
.topbar{border-bottom:1px solid var(--line);align-items:center;gap:24px;width:min(960px,100% - 48px);margin:0 auto;padding:24px 0;display:flex}.brand{align-items:center;gap:10px;display:flex}.brand img{object-fit:contain;width:44px;height:34px}.brand b{letter-spacing:-.05em;font-size:18px}.brand small{color:var(--muted);letter-spacing:.08em;font-size:10px;display:block}.docs-badge{font:700 11px var(--mono);letter-spacing:.08em;color:var(--blue-ink);background:var(--blue-soft);border:1px solid var(--line);border-radius:6px;padding:3px 8px}.topnav{align-items:center;gap:4px;margin-left:auto;display:flex}.topnav>a:not(.primarybtn){color:var(--muted);border-radius:10px;padding:10px 12px;font-size:13.5px}.topnav>a:not(.primarybtn):hover{background:var(--soft);color:var(--ink)}.topnav>a:not(.primarybtn)[aria-current=page]{background:var(--blue-soft);color:var(--blue-ink);font-weight:700}.iconbtn{width:42px;height:42px;color:var(--muted);border-radius:12px;place-items:center;font-size:17px;display:grid}.iconbtn:hover{background:var(--soft);color:var(--ink)}.primarybtn{background:var(--blue);color:var(--on-accent);border-radius:11px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:0 16px;font-size:13px;font-weight:700;display:inline-flex}.primarybtn:hover{background:var(--blue-ink)}.primarybtn.small{min-height:40px;padding:0 14px}.ghostbtn{border:1px solid var(--line);background:var(--paper);min-height:44px;color:var(--ink);border-radius:11px;align-items:center;gap:8px;padding:0 16px;font-size:13px;font-weight:700;display:inline-flex}.ghostbtn:hover{border-color:var(--blue);color:var(--blue-ink)}.main{width:min(960px,100% - 48px);margin:0 auto;padding-bottom:24px}.hero{justify-content:space-between;align-items:center;gap:20px;margin:40px 0 26px;display:flex}.hero h1{letter-spacing:-.055em;margin:0 0 10px;font-size:clamp(28px,4vw,38px);font-weight:700;line-height:1.15}.hero h1 .accent{color:var(--blue-ink)}.hero p{color:var(--muted);max-width:52ch;margin:0;font-size:14px;line-height:1.6}.eyebrow{font:10px var(--mono);letter-spacing:.1em;color:var(--blue-ink);background:var(--blue-soft);border-radius:6px;margin-bottom:12px;padding:4px 8px;display:inline-block}.cta-row{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.meta{color:var(--muted);margin-top:14px;font-size:12px}.meta code{font-size:11px}.section{margin:34px 0 8px}.section>h2{letter-spacing:-.02em;margin:0 0 4px;font-size:15px;font-weight:700}.section>p.sub{color:var(--muted);margin:0 0 16px;font-size:13px}.cards{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.cards.two{grid-template-columns:repeat(2,1fr)}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:16px}.card h3{letter-spacing:-.02em;margin:0 0 6px;font-size:14px;font-weight:700}.card p{color:var(--muted);margin:0;font-size:13px;line-height:1.6}.card .k{font:10px var(--mono);color:var(--blue-ink);letter-spacing:.08em}.card p code{font-size:11.5px}.mock{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);flex-shrink:0;min-width:300px;padding:14px}.mock-bar{border-bottom:1px solid var(--line);align-items:center;gap:10px;margin-bottom:12px;padding-bottom:12px;display:flex}.mock-logo{letter-spacing:-.05em;font-size:15px;font-weight:800}.mock-search{color:var(--muted);background:var(--soft);white-space:nowrap;border-radius:8px;flex:1;padding:7px 10px;font-size:12px;overflow:hidden}.mock-tabs{gap:4px;margin-bottom:12px;display:flex}.mock-tabs span{color:var(--muted);border-radius:8px;padding:6px 10px;font-size:11px}.mock-tabs .on{background:var(--blue-soft);color:var(--blue-ink);font-weight:700}.mock-stick{background:var(--soft);border-radius:var(--r-sm);margin-bottom:10px;padding:10px 12px;font-size:12.5px;font-weight:700}.mock-stick small{color:var(--muted);font-size:11.5px;font-weight:400;display:block}.mock-item{border:1px solid var(--line);border-radius:var(--r-sm);margin-bottom:8px;padding:10px 12px;font-size:12px}.mock-item b{font-size:12.5px;display:block}.mock-item span{color:var(--muted);font-size:11px}.mock-item code{font:11px var(--mono)}.mock-note{background:var(--ink);color:var(--paper);border-radius:var(--r-sm);text-align:center;margin-top:4px;padding:10px 12px;font-size:12px}.term{color:#efeaf8;border:1px solid var(--line);border-radius:var(--r-md);background:#1e1b28;margin:16px 0;overflow:hidden}html[data-theme=dark] .term{background:#121016}.term-bar{border-bottom:1px solid #ffffff1a;align-items:center;gap:6px;padding:10px 14px;display:flex}.term-bar i{background:#ffffff2a;border-radius:50%;width:10px;height:10px}.term-bar span{font:11px var(--mono);color:#ffffff80;margin-left:6px}.term pre{font:12.5px/1.7 var(--mono);margin:0;padding:14px 16px;overflow-x:auto}.term .p{color:var(--accent)}.footer{border-top:1px solid var(--line);width:min(960px,100% - 48px);color:var(--muted);flex-wrap:wrap;align-items:center;gap:16px;margin:32px auto 0;padding:24px 0;font-size:12px;display:flex}.footer nav{gap:14px;display:flex}.footer nav a:hover{color:var(--ink)}.footer p{margin:0 0 0 auto}.docs{grid-template-columns:230px minmax(0,1fr) 200px;align-items:start;gap:28px;margin:28px 0;display:grid}.docs-side{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);max-height:calc(100vh - 48px);padding:12px;position:sticky;top:24px;overflow-y:auto}.docs-group+.docs-group{margin-top:10px}.docs-side h2{color:var(--muted);letter-spacing:.06em;margin:0 0 6px;font-size:11px}.docs-side ul{gap:2px;margin:0;padding:0;list-style:none;display:grid}.docs-side a{color:var(--muted);border-radius:8px;padding:8px 10px;font-size:13px;display:block}.docs-side a:hover{background:var(--soft);color:var(--ink)}.docs-side a[aria-current=page]{background:var(--blue-soft);color:var(--blue-ink);font-weight:700}.prose{min-width:0}.prose h1{letter-spacing:-.05em;margin:0 0 8px;font-size:clamp(26px,3.5vw,34px);line-height:1.15}.prose .desc{color:var(--muted);margin:0 0 20px;font-size:14px}.prose h2{letter-spacing:-.02em;border-top:1px solid var(--line);margin:30px 0 8px;padding-top:18px;font-size:17px}.prose h3{margin:22px 0 6px;font-size:14.5px}.prose p,.prose li{font-size:14px;line-height:1.7}.prose ul,.prose ol{padding-left:22px}.prose li{margin-bottom:6px}.prose a{color:var(--blue-ink);text-decoration:underline;-webkit-text-decoration-color:var(--blue-ring);text-decoration-color:var(--blue-ring);text-underline-offset:3px;font-weight:700}.prose a:hover{-webkit-text-decoration-color:var(--blue-ink);text-decoration-color:var(--blue-ink)}.prose pre{color:#efeaf8;border:1px solid var(--line);border-radius:var(--r-sm);font:12.5px/1.7 var(--mono);background:#1e1b28;padding:14px 16px;overflow-x:auto}html[data-theme=dark] .prose pre{background:#121016}.prose p code,.prose li code,.prose td code{font:12px var(--mono);background:var(--soft);color:var(--blue-ink);border-radius:5px;padding:2px 6px}.prose table{border-collapse:collapse;width:100%;margin:12px 0;font-size:13px;display:block;overflow-x:auto}.prose th,.prose td{text-align:left;border:1px solid var(--line);vertical-align:top;padding:8px 10px}.prose th{background:var(--soft);font-size:12px}.prose blockquote{border-left:3px solid var(--blue);background:var(--paper);border-radius:0 var(--r-sm) var(--r-sm) 0;color:var(--ink-soft);margin:16px 0;padding:10px 16px;font-size:13.5px}.prose hr{border:0;border-top:1px solid var(--line);margin:26px 0}.crumbs{color:var(--muted);margin:0 0 6px;font-size:12.5px}.crumbs a{font-weight:700}.crumbs a:hover{color:var(--ink)}.docs-toc{border-left:1px solid var(--line);max-height:calc(100vh - 48px);padding-left:16px;font-size:12.5px;position:sticky;top:24px;overflow-y:auto}.docs-toc h2{color:var(--muted);letter-spacing:.06em;margin:0 0 8px;font-size:11px}.docs-toc ul{gap:6px;margin:0;padding:0;list-style:none;display:grid}.docs-toc li[data-depth="3"]{padding-left:12px}.docs-toc a{color:var(--muted);line-height:1.45;text-decoration:none;display:block}.docs-toc a:hover{color:var(--ink)}.docs-toc a[aria-current=true]{color:var(--blue-ink);font-weight:700}.doc-cards{grid-template-columns:repeat(var(--doc-card-cols,2), 1fr);gap:12px;margin:16px 0;display:grid}.doc-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:16px 44px 16px 16px;text-decoration:none;display:block;position:relative}.doc-card:hover{border-color:var(--blue)}.doc-card strong{letter-spacing:-.01em;margin-bottom:4px;font-size:14px;display:block}.doc-card-body{color:var(--muted);font-size:13px;line-height:1.6;display:block}.doc-card-body p{margin:0;font-size:13px}.doc-card-body code{font-size:11.5px}.doc-card-go{color:var(--muted);font-size:18px;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.doc-card:hover .doc-card-go{color:var(--blue-ink);transform:translate(2px,-50%)}.doc-accordions{gap:8px;margin:16px 0;display:grid}.doc-accordion{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-sm)}.doc-accordion summary{cursor:pointer;align-items:center;gap:10px;padding:12px 14px;font-size:14px;font-weight:700;list-style:none;display:flex}.doc-accordion summary::-webkit-details-marker{display:none}.doc-accordion summary:hover{color:var(--blue-ink)}.doc-accordion-caret{color:var(--muted);font-size:18px;line-height:1;transition:transform .15s}.doc-accordion[open] .doc-accordion-caret{color:var(--blue-ink);transform:rotate(90deg)}.doc-accordion-body{color:var(--ink-soft);padding:0 14px 14px 36px;font-size:13.5px}.doc-accordion-body p{margin:0 0 8px;font-size:13.5px}.doc-callout{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-sm);gap:12px;margin:16px 0;padding:14px 16px;font-size:13.5px;display:flex}.doc-callout-icon{background:var(--blue-soft);width:26px;height:26px;color:var(--blue-ink);font:700 13px var(--mono);border-radius:50%;flex-shrink:0;place-items:center;font-style:normal;display:grid}.doc-callout.warn .doc-callout-icon{color:var(--danger);background:#f6e3e5}html[data-theme=dark] .doc-callout.warn .doc-callout-icon{background:#4a2b30}.doc-callout p{margin:0 0 8px;font-size:13.5px}.doc-callout p:last-child{margin-bottom:0}.doc-diagram{gap:6px;margin:16px 0;display:grid}.doc-diagram-row{align-items:stretch;display:flex}.doc-diagram-node{background:var(--paper);border:1px solid var(--line);white-space:nowrap;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:700}.doc-diagram-arrow{color:var(--muted);background-image:linear-gradient(to right, var(--line) 45%, transparent 45%);background-position:50%;background-repeat:repeat-x;background-size:8px 1px;flex:1;justify-content:center;align-items:center;gap:8px;min-width:0;padding:0 10px;font-size:11.5px;display:flex}.doc-diagram-arrow em{background:var(--bg);font-style:normal;font-family:var(--mono);padding:0 8px;font-size:11px}.doc-diagram-caption{color:var(--muted);margin:6px 0 0;font-size:12.5px}@media (max-width:700px){.doc-cards{grid-template-columns:1fr}.doc-diagram-node{padding:6px 10px;font-size:12px}}.pager a{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-sm);flex:1;padding:12px 14px;font-size:13px;font-weight:700}.pager a:hover{border-color:var(--blue)}.pager small{color:var(--muted);font-size:11px;font-weight:400;display:block}.pager .next{text-align:right}.menubtn{display:none}.searchbox{margin-left:4px}.searchbox input{background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:10px;width:180px;height:40px;padding:0 12px;font-size:13px}.pagefind-ui__results-area{z-index:80}.pagefind-ui__result{background:var(--paper)!important;border-color:var(--line)!important}.pagefind-ui__result-title,.pagefind-ui__result-link{color:var(--ink)!important}@media (max-width:1100px){.docs{grid-template-columns:230px minmax(0,1fr)}.docs-toc{display:none}}@media (max-width:900px){.hero{flex-direction:column;align-items:stretch}.mock{min-width:0}.docs{grid-template-columns:1fr}.menubtn{margin-bottom:12px;display:inline-flex}.docs-side{display:none;position:static}.docs.open .docs-side{display:block}}@media (max-width:700px){.topbar{flex-wrap:wrap;gap:12px;width:calc(100% - 32px);padding:16px 0}.topnav{margin-left:0}.topnav>a:not(.primarybtn){display:none}.main{width:calc(100% - 32px)}.cards,.cards.two{grid-template-columns:1fr}.footer{width:calc(100% - 32px)}.searchbox input{width:130px}}
