:root{--maroon:#532638;--maroon-deep:#401e2b;--maroon-ink:#2a121b;--coral:#be5133;--coral-text:#a8432a;--coral-deep:#8f3b24;--peach:#e59a63;--cream:#fcf3d8;--cream-soft:#f6f4e9;--ink-active:var(--coral-text);--ink-success:#376f30;--cream-bright:#fffbef;--cream-body:#e3d4c0;--cream-mute:#c9b6a8;--cream-dim:#c1aba0;--pink:#fb6a76;--palm:#27e62b;--palm-ink:#16a534;--berry:#6a1e23;--gold:#f5d76e;--lavender:#c9b8f5;--taupe:#978a74;--stone:#c5b7a0;--paper:oklch(97.3% .019 90.5);--paper-hex:#fbf6e8;--oat:#efebdf;--paper-2:oklch(94% .016 90.5);--rule:#2a121b24;--rule-strong:#2a121b59;--muted:#2a121ba3;--card-ink:color-mix(in oklab, var(--maroon-ink) 90%, var(--lavender) 10%);--hn-orange:#f60;--code-bg:#2a121b;--code-fg:#fcf3d8;--code-comment:#978a74;--code-keyword:#e59a63;--code-function:#ff9b8a;--code-string:#8ef09e;--code-number:#d4b86a;--code-type:#c9a0ff;--code-decorator:#e59a63;--code-variable:#fcf3d8;--code-punctuation:#c5b7a0;--sans:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, Arial, sans-serif;--mono:"JetBrains Mono", ui-monospace, Menlo, monospace;--text-xs:.64rem;--text-sm:.8rem;--text-code:.875rem;--text-base:1rem;--text-md:1.25rem;--text-lg:1.5625rem;--text-xl:1.9531rem;--text-2xl:2.4414rem;--text-3xl:clamp(1.9rem, 3.2vw + .4rem, 3rem);--text-4xl:3.8147rem;--text-display:clamp(2.6rem, 5.2vw + .6rem, 4.9rem);--track-label:.14em;--track-code:.04em;--s-1:2px;--s-2:4px;--s-3:6px;--s-4:8px;--s-5:12px;--s-6:16px;--s-7:24px;--s-8:32px;--s-9:48px;--s-10:64px;--s-11:80px;--s-12:96px;--r-xs:3px;--r-sm:6px;--r-md:8px;--r-lg:12px;--r-xl:16px;--r-2xl:20px;--r-pill:999px;--shadow-card:0 8px 32px #2a121b14;--shadow-pop:0 14px 32px #2a121b29, 0 3px 8px #2a121b14;--shadow-nav:0 24px 56px -20px #2a121b2e, 0 8px 20px -12px #2a121b1f;--dot-reveal:radial-gradient(circle, color-mix(in oklab, var(--dot-color,var(--coral)) var(--dot-alpha,45%), transparent) var(--dot-r1,1.3px), transparent var(--dot-r2,1.7px));--dot-reveal-size:11px;--dur-press:.12s;--dur-fast:.16s;--dur-slow:.28s;--dur-lift:.22s;--dur-morph:.42s;--dur-pulse:2s;--ease:cubic-bezier(.2,.8,.2,1);--ease-spring:cubic-bezier(.34,1.56,.64,1);--ease-snap:cubic-bezier(.22,1,.36,1);--ease-push:cubic-bezier(.2,.7,.3,1);--z-base:0;--z-sticky:30;--z-pop:40;--z-nav:50;--z-drawer:60;--z-modal:80;--z-toast:100;--maxw:1320px;--maxw-docs:1480px;--gutter:40px;--measure:66ch;--focus:2px solid var(--coral);--focus-offset:2px}@keyframes coco-pulse{0%,to{box-shadow:0 0 0 var(--pulse-r1,3px) color-mix(in oklab, var(--pulse-color,var(--palm)) 18%, transparent)}50%{box-shadow:0 0 0 var(--pulse-r2,6px) color-mix(in oklab, var(--pulse-color,var(--palm)) 6%, transparent)}}.u-dots{background-image:var(--dot-reveal);background-size:var(--dot-reveal-size,11px) var(--dot-reveal-size,11px)}.u-press:active{transform:translateY(1px)}.u-lift{transition:transform var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease)}.u-lift:hover{transform:translateY(-2px)}@media (prefers-reduced-motion:reduce){.u-press:active{transform:none}.u-lift,.u-lift:hover{transition:border-color var(--dur-fast) var(--ease);transform:none}}.logo{color:var(--maroon-ink);align-items:center;gap:10px;line-height:1;text-decoration:none;display:inline-flex}.logo:hover,.logo:hover .logo-word{text-decoration:none}.logo img{width:auto;display:block}.logo-word{font-family:var(--sans);letter-spacing:-.02em;color:inherit;white-space:nowrap;font-weight:700;line-height:1}.logo-sm{gap:8px}.logo-sm img{height:24px}.logo-sm .logo-word{font-size:var(--text-base)}.logo-md img{height:28px}.logo-md .logo-word{font-size:1.25rem}.logo-lg{gap:12px}.logo-lg img{height:36px}.logo-lg .logo-word{font-size:var(--text-md)}html{font-feature-settings:"ss01" on, "cv11" on;font-variant-numeric:tabular-nums}h1,h2,h3,h4,h5,h6{overflow-wrap:anywhere}html,body{overflow-x:clip}.callout{border-radius:var(--r-xl);background:color-mix(in oklab, var(--maroon-ink) 5%, var(--paper));font-size:var(--text-sm);color:var(--maroon-ink);border:0;gap:13px;margin:20px 0;padding:16px 18px;display:flex}.callout.info{background:color-mix(in oklab, var(--lavender) 22%, var(--paper))}.callout.tip{background:color-mix(in oklab, var(--palm) 13%, var(--paper))}.callout.warn{background:color-mix(in oklab, var(--gold) 26%, var(--paper))}.callout .ico{border-radius:var(--r-lg);background:color-mix(in oklab, var(--maroon-ink) 14%, var(--paper));width:34px;height:34px;color:var(--maroon);font-family:var(--mono);font-size:var(--text-base);flex:none;place-items:center;font-weight:500;line-height:1;display:grid}.callout.info .ico{background:var(--lavender);color:var(--maroon-ink)}.callout.tip .ico{background:var(--palm-ink);color:var(--cream)}.callout.warn .ico{background:var(--gold);color:var(--maroon-ink)}.callout .body{flex:1;min-width:0;line-height:1.55}.callout .body>:is(p,ul,ol):first-child{margin-top:0}.callout .body>:last-child{margin-bottom:0}.callout b{font-family:var(--sans);font-weight:600;font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--maroon);margin-bottom:4px;display:block}a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:var(--focus);outline-offset:var(--focus-offset)}a.t-link{color:var(--coral-text);text-underline-offset:2px;text-decoration:underline 1px;text-decoration-color:color-mix(in oklab, var(--coral) 45%, transparent);transition:color var(--dur-fast) var(--ease), text-decoration-color var(--dur-fast) var(--ease)}a.t-link:hover{color:var(--coral-deep);text-decoration-color:currentColor}.btn{--btn-bg:transparent;--btn-fg:var(--maroon);--btn-border:var(--maroon);--btn-bg-hover:var(--maroon);--btn-fg-hover:var(--cream);--btn-border-hover:var(--maroon);border-radius:var(--r-pill);font-family:var(--sans);font-size:var(--text-sm);white-space:nowrap;border:1px solid var(--btn-border);background:var(--btn-bg);color:var(--btn-fg);cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent;isolation:isolate;transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), transform var(--dur-press) var(--ease);justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-weight:500;line-height:1.2;text-decoration:none;display:inline-flex;position:relative}.btn svg{flex:none}.btn:hover,.btn.is-hover{background:var(--btn-bg-hover);color:var(--btn-fg-hover);border-color:var(--btn-border-hover);text-decoration:none}.btn:active{transform:translateY(1px)}.btn:focus-visible{outline:var(--focus);outline-offset:var(--focus-offset)}.btn[disabled],.btn[aria-disabled=true]{opacity:.45;pointer-events:none}.btn-sm{font-size:var(--text-sm);gap:6px;padding:6px 12px}.btn-lg{font-size:var(--text-base);gap:8px;padding:13px 22px}.btn-xl{font-size:var(--text-base);gap:10px;padding:16px 28px}.btn-rounded{border-radius:var(--r-md)}.btn-icon{border-radius:var(--r-md);gap:0;width:36px;height:36px;padding:0}.btn-icon.btn-sm{width:28px;height:28px}.btn-icon.btn-lg{width:40px;height:40px}.btn-icon.btn-xl{width:44px;height:44px}.btn-icon-circle{border-radius:50%}.btn-social{border-radius:var(--r-sm);--btn-bg:transparent;--btn-fg:var(--maroon);--btn-border:var(--rule);--btn-bg-hover:transparent;--btn-fg-hover:var(--coral);--btn-border-hover:var(--coral);gap:0;width:32px;height:32px;padding:0}.btn-primary{--btn-bg:var(--maroon);--btn-fg:var(--cream);--btn-border:var(--maroon);--btn-bg-hover:var(--maroon);--btn-fg-hover:var(--cream);--btn-border-hover:var(--maroon);--btn-edge:var(--maroon-ink);--btn-cast:color-mix(in oklab, var(--maroon) 45%, transparent)}.btn-coral{--btn-bg:var(--coral);--btn-fg:var(--cream-bright);--btn-border:var(--coral);--btn-bg-hover:var(--coral);--btn-fg-hover:var(--cream-bright);--btn-border-hover:var(--coral);--btn-edge:var(--coral-deep);--btn-cast:color-mix(in oklab, var(--coral) 42%, transparent)}.btn-primary,.btn-coral{box-shadow:0 3px 0 0 var(--btn-edge), 0 6px 14px -5px var(--btn-cast)}.btn-primary:hover,.btn-coral:hover,.btn-primary.is-hover,.btn-coral.is-hover{box-shadow:0 5px 0 0 var(--btn-edge), 0 12px 22px -6px var(--btn-cast);transform:translateY(-2px)}.btn-primary:active,.btn-coral:active{box-shadow:0 1px 0 0 var(--btn-edge), 0 2px 6px -3px var(--btn-cast);transform:translateY(2px)}.btn-outline{--btn-bg:transparent;--btn-fg:var(--coral-text);--btn-border:color-mix(in oklab, var(--coral) 42%, var(--rule-strong));--btn-bg-hover:transparent;--btn-fg-hover:var(--cream-bright);--btn-border-hover:var(--coral);--btn-fill:var(--coral);--btn-edge:var(--coral-deep);--btn-cast:color-mix(in oklab, var(--coral) 42%, transparent);overflow:hidden}.btn-outline:before{content:"";z-index:-1;background:var(--btn-fill);transform-origin:bottom;transition:transform var(--dur-slow) var(--ease);position:absolute;inset:0;transform:scaleY(0)}.btn-outline:hover:before,.btn-outline.is-hover:before{transform:scaleY(1)}.btn-outline:hover,.btn-outline.is-hover{box-shadow:0 5px 0 0 var(--btn-edge), 0 10px 20px -6px var(--btn-cast);transform:translateY(-2px)}.btn-outline:active{box-shadow:0 1px 0 0 var(--btn-edge), 0 2px 6px -3px var(--btn-cast);transform:translateY(2px)}.btn-outline-muted{--btn-bg:transparent;--btn-fg:var(--maroon-ink);--btn-border:var(--rule-strong);--btn-bg-hover:var(--maroon);--btn-fg-hover:var(--cream);--btn-border-hover:var(--maroon)}.btn-ghost{--btn-bg:transparent;--btn-fg:var(--maroon);--btn-border:transparent;--btn-bg-hover:color-mix(in oklab, var(--maroon) 8%, transparent);--btn-fg-hover:var(--coral);--btn-border-hover:transparent}.btn-on-dark{--btn-bg:transparent;--btn-fg:var(--cream);--btn-border:color-mix(in oklab, var(--cream) 55%, transparent);--btn-bg-hover:var(--cream);--btn-fg-hover:var(--maroon-ink);--btn-border-hover:var(--cream)}.btn-mono{--btn-bg:transparent;--btn-fg:var(--maroon);--btn-border:var(--rule-strong);--btn-bg-hover:color-mix(in oklab, var(--peach) 14%, var(--paper));--btn-fg-hover:var(--coral);--btn-border-hover:color-mix(in oklab, var(--coral) 45%, transparent);font-family:var(--mono);font-size:var(--text-sm);letter-spacing:.08em;text-transform:uppercase;gap:6px;padding:6px 10px}.btn-mono.btn-lg{font-size:var(--text-sm);padding:10px 16px}.btn.is-hover{background:var(--btn-bg-hover);color:var(--btn-fg-hover);border-color:var(--btn-border-hover)}.btn.is-focus{outline:var(--focus);outline-offset:var(--focus-offset)}@media (prefers-reduced-motion:reduce){.btn{transition:none}.btn:active,.btn-primary:hover,.btn-coral:hover,.btn-primary:active,.btn-coral:active,.btn-outline:hover,.btn-outline:active{transform:none}.btn-outline:before{transition:none}}.t-pill{font-family:var(--mono);font-size:var(--text-xs);letter-spacing:.01em;border-radius:var(--r-pill);background:var(--paper-2);color:var(--maroon);border:1px solid var(--rule);white-space:nowrap;transition:border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);align-items:center;gap:6px;padding:4px 10px;text-decoration:none;display:inline-flex}button.t-pill{cursor:pointer;font:inherit}.t-pill:hover,.t-pill.is-hover{border-color:var(--coral);color:var(--coral)}.t-pill.on{background:color-mix(in oklab, var(--coral) 14%, transparent);color:var(--ink-active);border-color:color-mix(in oklab, var(--coral) 45%, transparent)}.t-pill:focus-visible{outline:var(--focus);outline-offset:2px}.t-pill .dt{background:var(--dt,var(--coral));border-radius:50%;flex:none;width:5px;height:5px}.t-category{font-family:var(--mono);font-size:var(--text-xs);letter-spacing:var(--track-label);text-transform:uppercase;border-radius:var(--r-pill);background:var(--coral);color:var(--cream-bright);white-space:nowrap;align-items:center;padding:5px 10px;display:inline-flex}.t-overlay{font-family:var(--mono);font-size:var(--text-xs);letter-spacing:var(--track-label);text-transform:uppercase;border-radius:var(--r-pill);background:color-mix(in oklab, var(--cream) 12%, transparent);color:var(--cream);-webkit-backdrop-filter:blur(6px);white-space:nowrap;align-items:center;padding:4px 10px;display:inline-flex}.t-status{font-family:var(--mono);font-size:var(--text-xs);letter-spacing:var(--track-label);text-transform:uppercase;border-radius:var(--r-pill);background:color-mix(in oklab, var(--peach) 13%, var(--paper));border:1px solid color-mix(in oklab, var(--peach) 28%, var(--rule));color:var(--maroon);white-space:nowrap;align-items:center;gap:8px;padding:5px 14px 5px 10px;display:inline-flex}.t-status .dt{background:var(--palm);--pulse-r1:3px;--pulse-r2:6px;width:7px;height:7px;box-shadow:0 0 0 3px color-mix(in oklab, var(--palm) 18%, transparent);animation:coco-pulse var(--dur-pulse) ease-in-out infinite;border-radius:50%}.t-status.t-status-lg{letter-spacing:var(--track-label);gap:10px;padding:6px 14px 6px 8px;font-weight:500}.t-status.t-status-lg .dt{--pulse-r1:4px;--pulse-r2:8px;width:8px;height:8px;box-shadow:0 0 0 4px color-mix(in oklab, var(--palm) 18%, transparent)}@media (prefers-reduced-motion:reduce){.t-status .dt,.t-eyebrow.live .dt{animation:none!important}}.t-filter{font-family:var(--sans);font-size:var(--text-sm);border-radius:var(--r-pill);background:var(--paper-2);color:var(--maroon-ink);border:1px solid var(--rule);cursor:pointer;white-space:nowrap;transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), transform var(--dur-press) var(--ease);align-items:center;gap:6px;padding:6px 13px;font-weight:500;display:inline-flex}.t-filter:hover,.t-filter.is-hover{border-color:var(--coral);color:var(--coral)}.t-filter.on{background:var(--coral);color:var(--cream-bright);border-color:var(--coral)}.t-filter:active{transform:translateY(1px)}.t-filter:focus-visible{outline:var(--focus);outline-offset:var(--focus-offset)}.t-filter .cnt{opacity:.6;font-variant-numeric:tabular-nums}@media (prefers-reduced-motion:reduce){.t-filter:active{transform:none}}.t-pill.t-pill-lg{font-size:var(--text-sm);letter-spacing:var(--track-label);gap:8px;padding:6px 13px}.t-pill.t-pill-lg .dt{width:6px;height:6px}.t-status.t-status-dark{background:var(--maroon-ink);border-color:var(--maroon-ink);color:var(--cream)}.t-status.t-status-ghost{background:color-mix(in oklab, var(--cream) 10%, transparent);border-color:color-mix(in oklab, var(--cream) 22%, transparent);color:var(--cream)}.t-eyebrow{font-family:var(--mono);font-size:var(--text-xs);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--coral);white-space:nowrap;align-items:center;gap:9px;display:inline-flex}.t-eyebrow .dt{background:var(--dt,var(--coral));border-radius:50%;flex:none;width:7px;height:7px}.t-eyebrow.live .dt{--pulse-color:var(--dt,var(--coral));--pulse-r1:3px;--pulse-r2:6px;box-shadow:0 0 0 3px color-mix(in oklab, var(--dt,var(--coral)) 18%, transparent);animation:coco-pulse var(--dur-pulse) ease-in-out infinite}.t-sm{font-size:var(--text-xs)}.t-lg{font-size:var(--text-sm)}:not(pre)>code{font-family:var(--mono);background:color-mix(in oklab, var(--coral) 12%, transparent);color:var(--berry);border-radius:var(--r-xs);padding:1px 6px;font-size:.9em}pre.astro-code{border-radius:var(--r-md);border:1px solid color-mix(in oklab, var(--maroon-ink) 20%, transparent);font-family:var(--mono);font-size:var(--text-code);color:var(--code-fg);margin:20px 0;padding:18px 22px;line-height:1.6;overflow:auto hidden;background:var(--code-bg)!important}pre.astro-code code{color:inherit;font-size:inherit;background:0 0;padding:0}.code-figure{border-radius:var(--r-lg);background:var(--code-bg);border:1px solid color-mix(in oklab, var(--maroon-ink) 20%, transparent);margin:24px 0;overflow:hidden}.code-figure .bar{border-bottom:1px solid color-mix(in oklab, var(--cream) 6%, transparent);font-family:var(--mono);font-size:var(--text-xs);letter-spacing:var(--track-code);color:color-mix(in oklab, var(--cream) 60%, transparent);justify-content:flex-end;align-items:center;padding:10px 16px;display:flex}.code-figure .bar .dots{display:none}.code-figure .bar .right{align-items:center;gap:12px;display:flex}.code-figure .bar .file{font-family:var(--mono);font-size:var(--text-xs);letter-spacing:var(--track-code);color:color-mix(in oklab, var(--cream) 72%, transparent);text-transform:none}.code-figure .bar .copy{font-family:var(--mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:color-mix(in oklab, var(--cream) 70%, transparent);border:1px solid color-mix(in oklab, var(--cream) 16%, transparent);border-radius:var(--r-pill);cursor:pointer;opacity:0;transition:opacity var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);background:0 0;align-items:center;gap:6px;margin:-3px 0;padding:3px 9px;display:inline-flex;transform:translateY(-1px)}.code-figure:hover .bar .copy,.code-figure:focus-within .bar .copy,.code-figure .bar .copy.copied,.code-figure .bar .copy.copy-fail{opacity:1;transform:none}@media (hover:none){.code-figure .bar .copy{opacity:1;transform:none}}.code-figure .bar .copy:hover{color:var(--cream);border-color:color-mix(in oklab, var(--cream) 42%, transparent);background:color-mix(in oklab, var(--cream) 6%, transparent)}.code-figure .bar .copy:focus-visible{outline:var(--focus);outline-offset:var(--focus-offset)}.code-figure .bar .copy .copy-ok{display:none}.code-figure .bar .copy.copied{color:var(--code-string);border-color:color-mix(in oklab, var(--code-string) 45%, transparent)}.code-figure .bar .copy.copy-fail{color:var(--code-function);border-color:color-mix(in oklab, var(--code-function) 45%, transparent)}.code-figure .bar .copy.copied .copy-i{display:none}.code-figure .bar .copy.copied .copy-ok{display:inline-block}.code-figure .bar .copy .copy-lbl{line-height:1}@media (prefers-reduced-motion:reduce){.code-figure .bar .copy{transition:opacity var(--dur-press) var(--ease);transform:none}}.code-figure pre,.code-figure pre.astro-code{font-family:var(--mono);font-size:var(--text-code);line-height:1.6;overflow-x:auto;background:var(--code-bg)!important;border:0!important;border-radius:0!important;margin:0!important;padding:18px 22px!important}.code-figure pre code{color:inherit;font-family:var(--mono);font-size:inherit;background:0 0;border:0;padding:0}.example-repo-card,.docs-link-card{background:var(--cream);border:1px solid var(--rule-strong);border-radius:var(--r-2xl);color:var(--maroon-ink);isolation:isolate;transition:border-color var(--dur-fast) var(--ease);align-items:center;gap:16px;margin:28px 0;padding:18px 22px;text-decoration:none;display:flex;position:relative}.example-repo-card:before,.docs-link-card:before{content:"";border-radius:inherit;background-image:var(--dot-reveal);background-size:var(--dot-reveal-size) var(--dot-reveal-size);opacity:0;pointer-events:none;transition:opacity var(--dur-slow) var(--ease);z-index:-1;position:absolute;inset:0;-webkit-mask-image:linear-gradient(270deg,#000 0% 28%,#0000 72%);mask-image:linear-gradient(270deg,#000 0% 28%,#0000 72%)}.example-repo-card:hover,.example-repo-card.is-hover,.docs-link-card:hover,.docs-link-card.is-hover{border-color:var(--maroon)}.example-repo-card:hover:before,.example-repo-card.is-hover:before,.docs-link-card:hover:before,.docs-link-card.is-hover:before{opacity:1}.example-repo-card:focus-visible,.docs-link-card:focus-visible{outline:var(--focus);outline-offset:var(--focus-offset)}.example-repo-card__ico{border-radius:var(--r-2xl);background:var(--maroon-ink);width:44px;height:44px;color:var(--cream);flex:none;place-items:center;display:grid}.example-repo-card__ico svg{display:block}.example-repo-card__body{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.example-repo-card__eyebrow{font-family:var(--mono);font-size:var(--text-xs);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--coral-text)}.example-repo-card__path{align-items:baseline;gap:8px;display:inline-flex}.example-repo-card__path code{font-family:var(--mono);font-size:var(--text-base);color:var(--maroon-ink);transition:color var(--dur-fast) var(--ease);background:0 0;padding:0;font-weight:500}.example-repo-card__path-arrow{font-family:var(--mono);font-size:var(--text-base);color:var(--maroon);transition:color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);font-weight:500;line-height:1}.example-repo-card:hover .example-repo-card__path code,.example-repo-card.is-hover .example-repo-card__path code{color:var(--coral)}.example-repo-card:hover .example-repo-card__path-arrow,.example-repo-card.is-hover .example-repo-card__path-arrow{color:var(--palm-ink);transform:translate(3px)}.example-repo-card__desc{font-family:var(--sans);font-size:var(--text-sm);color:var(--maroon-ink);opacity:.8;line-height:1.55}.example-repo-card__desc strong{opacity:1;font-weight:600}.example-repo-card__star{font-family:var(--mono);font-size:var(--text-xs);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--maroon-ink);background:var(--cream);border:1px solid var(--rule-strong);border-radius:var(--r-pill);white-space:nowrap;transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);flex:none;align-items:center;gap:6px;padding:7px 12px;font-weight:500;display:inline-flex}.example-repo-card__star svg{color:var(--peach);transition:transform var(--dur-slow) var(--ease)}.example-repo-card:hover .example-repo-card__star,.example-repo-card.is-hover .example-repo-card__star{background:var(--maroon-ink);color:var(--cream);border-color:var(--maroon-ink)}.example-repo-card:hover .example-repo-card__star svg,.example-repo-card.is-hover .example-repo-card__star svg{transform:rotate(-12deg)scale(1.2)}.docs-link-card__ico{border-radius:var(--r-md);background:var(--maroon-ink);width:36px;height:36px;color:var(--cream);flex:none;place-items:center;display:grid}.docs-link-card__ico svg{display:block}.docs-link-card__body{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.docs-link-card__eyebrow{font-family:var(--mono);font-size:var(--text-xs);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--coral-text)}.docs-link-card__title{font-family:var(--sans);font-weight:600;font-size:var(--text-md);letter-spacing:-.025em;color:var(--maroon-ink);line-height:1.2}.docs-link-card__title em{color:var(--coral-text);font-style:normal;font-weight:600}.docs-link-card__desc{font-family:var(--sans);font-size:var(--text-sm);color:var(--maroon-ink);opacity:.8;line-height:1.55}.docs-link-card__desc code{font-family:var(--mono);font-size:var(--text-sm);background:color-mix(in oklab, var(--coral) 10%, transparent);color:var(--berry);border-radius:var(--r-xs);padding:1px 5px}.docs-link-card__arrow{font-family:var(--mono);font-size:var(--text-md);color:var(--maroon);transition:color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);flex:none;font-weight:500;line-height:1}.docs-link-card:hover .docs-link-card__arrow,.docs-link-card.is-hover .docs-link-card__arrow{color:var(--palm-ink);transform:translate(3px)}.cta-end{border-radius:var(--r-lg);background:var(--cream);border:1px solid var(--rule);text-align:center;padding:72px 48px;position:relative;overflow:hidden}.cta-end h3{font-family:var(--sans);letter-spacing:-.025em;max-width:20ch;margin:0 auto 24px;font-size:clamp(2.25rem,5vw + .5rem,4rem);font-weight:600;line-height:1.05}.cta-end h3 em{color:var(--coral);font-style:normal}.cta-end p{color:var(--muted);max-width:46ch;font-size:var(--text-base);margin:0 auto 32px}.cta-end .btns{flex-wrap:wrap;justify-content:center;gap:12px;display:inline-flex}.cta-end-cute{background:radial-gradient(circle at 8% 110%, color-mix(in oklab, var(--peach) 32%, transparent), transparent 52%), radial-gradient(circle at 95% -10%, color-mix(in oklab, var(--coral) 22%, transparent), transparent 48%), var(--cream);border-color:color-mix(in oklab, var(--coral) 24%, var(--rule));padding:80px 48px 84px}.cta-end-cute>.t-status{z-index:2;margin:0 0 22px;position:relative}.cta-end-cute h3,.cta-end-cute p,.cta-end-cute .btns{z-index:2;position:relative}.cta-end-mark{pointer-events:none;user-select:none;z-index:1;position:absolute}.cta-end-mark-br{opacity:.92;width:240px;height:auto;bottom:-72px;right:-56px;transform:rotate(-14deg)}.cta-end-mark-tl{opacity:.55;width:96px;height:auto;top:-36px;left:-28px;transform:rotate(18deg)}@media (width<=720px){.cta-end-cute{padding:56px 24px 64px}.cta-end-mark-br{width:160px;bottom:-48px;right:-36px}.cta-end-mark-tl{width:72px;top:-22px;left:-16px}}.hero-h{font-family:var(--sans);font-weight:600;font-size:var(--text-display);letter-spacing:-.025em;overflow-wrap:anywhere;min-width:0;margin:0 0 20px;line-height:1}.hero-h em{color:var(--coral);font-style:normal;font-weight:600}.hero-sub{font-size:var(--text-base);color:var(--maroon-ink);max-width:52ch;margin:0 0 24px;line-height:1.55}.hero-sub b{color:var(--maroon);font-weight:600}.sec-head{max-width:64ch;margin-bottom:32px}.sec-head.no-mb{margin-bottom:0}.sec-head .idx{font-family:var(--mono);font-size:var(--text-xs);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--coral-text);margin-bottom:14px;display:block}.sec-head h2{font-family:var(--sans);font-weight:600;font-size:var(--text-xl);letter-spacing:-.025em;margin:0 0 12px;line-height:1.2}.sec-head h2 em{color:var(--coral);font-style:normal;font-weight:600}.sec-head p{font-size:var(--text-base);color:var(--maroon-ink);max-width:62ch;margin:0;line-height:1.55}.sec-lead{font-family:var(--sans);letter-spacing:-.005em;color:var(--maroon-ink);max-width:56ch;margin-top:24px;font-size:clamp(17px,1.4vw,20px);font-weight:400;line-height:1.5}.sec-lead-link{font-family:var(--mono);font-size:var(--text-sm);letter-spacing:var(--track-code);margin-top:12px}.sec-lead-link a,.sec-lead a{color:var(--coral-text);transition:color var(--dur-fast) var(--ease);text-decoration:none}.sec-lead-link a:hover,.sec-lead a:hover{color:var(--coral-deep)}.icon-theme .sec-head{max-width:none;margin-bottom:56px}.icon-theme .sec-idx{font-family:var(--mono);font-size:var(--text-xs);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--muted);margin-bottom:20px;line-height:1;display:block}.icon-theme .sec-head h2{font-size:var(--text-3xl);letter-spacing:-.03em;max-width:22ch;margin:0;line-height:1.05}.hl-mark,.icon-theme h1.hero-h em{color:inherit;background-image:linear-gradient(color-mix(in oklab, var(--coral) 30%, transparent) 0 0);-webkit-box-decoration-break:clone;box-decoration-break:clone;background-position:0 86%;background-repeat:no-repeat;background-size:100% .3em;padding:0 .02em;font-style:normal;font-weight:600}.superseded-banner{box-sizing:border-box;border:1px solid color-mix(in oklab, var(--coral) 45%, transparent);border-radius:var(--r-lg);background:color-mix(in oklab, var(--peach) 22%, var(--paper));box-shadow:0 6px 20px -12px var(--rule-strong);color:var(--maroon-ink);flex-wrap:wrap;align-items:center;gap:14px;padding:14px 18px;display:flex}.superseded-banner .t-category{flex:none}.superseded-banner .sb-text{min-width:240px;font-size:var(--text-code);flex:1;margin:0;line-height:1.5}.superseded-banner .sb-text a{font-weight:600}.superseded-banner .sb-text a em{color:var(--coral-text);font-style:normal}.superseded-banner .sb-cta{font-family:var(--sans);font-weight:600;font-size:var(--text-code);white-space:nowrap;border-radius:var(--r-md);background:var(--maroon-ink);color:var(--cream);flex:none;padding:9px 14px;text-decoration:none}.superseded-banner .sb-cta:hover{background:var(--coral);color:var(--cream-bright)}.prose{font-size:var(--prose-body,var(--text-base));line-height:var(--prose-lh,1.6)}.prose h1{font-family:var(--sans);font-weight:600;font-size:var(--prose-h1,var(--text-3xl));letter-spacing:-.025em;overflow-wrap:anywhere;min-width:0;margin:0 0 18px;line-height:1}.prose h1 em{color:var(--coral);font-style:normal;font-weight:600}.prose .lede{font-family:var(--sans);font-size:var(--text-md);letter-spacing:-.005em;color:var(--maroon-ink);max-width:62ch;margin:0 0 14px;font-weight:400;line-height:1.55}.prose h2{font-family:var(--sans);font-weight:600;font-size:var(--prose-h2,var(--text-xl));line-height:var(--prose-h2-lh,1.2);letter-spacing:-.025em;margin:56px 0 12px;scroll-margin-top:80px}.prose h2 em{color:var(--coral);font-style:normal;font-weight:600}.prose h3{font-family:var(--sans);font-weight:600;font-size:var(--prose-h3,var(--text-md));letter-spacing:-.01em;margin:28px 0 10px;scroll-margin-top:80px;line-height:1.2}.prose h3 em{color:var(--coral);font-style:normal;font-weight:600}.prose h4{font-family:var(--sans);font-weight:600;font-size:var(--prose-h4,var(--text-base));letter-spacing:-.005em;margin:22px 0 8px;scroll-margin-top:80px;line-height:1.2}.prose :is(h2,h3,h4,h5,h6){position:relative}.prose .head-anchor{width:1.4em;color:var(--coral);opacity:0;transition:opacity var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);justify-content:center;align-items:center;text-decoration:none;display:inline-flex;position:absolute;top:0;bottom:0;left:-1.4em}.prose .head-anchor svg{width:.66em;height:.66em}.prose :is(h2,h3,h4,h5,h6):hover .head-anchor{opacity:.5}.prose .head-anchor:hover,.prose .head-anchor:focus-visible{opacity:1}.prose .head-anchor.copied{opacity:1;color:var(--ink-success)}.prose .head-anchor.copied:after{content:"Link copied";background:var(--maroon-ink);color:var(--cream);font-family:var(--mono);font-size:var(--text-xs);letter-spacing:.02em;white-space:nowrap;border-radius:var(--r-sm);pointer-events:none;padding:3px 8px;position:absolute;bottom:calc(100% + 7px);left:50%;transform:translate(-50%)}.prose p{max-width:var(--measure);margin:12px 0}.prose ul,.prose ol{max-width:var(--measure);padding-left:22px}.prose li{margin:6px 0}.prose blockquote{border:1px solid var(--rule-strong);border-left:3px solid var(--coral);border-radius:var(--r-sm);background:var(--cream);color:var(--maroon-ink);margin:20px 0;padding:14px 20px}.prose blockquote p{margin:6px 0}.prose blockquote strong{font-weight:600}.prose table{-webkit-overflow-scrolling:touch;border-collapse:collapse;width:fit-content;max-width:100%;font-size:var(--text-sm);margin:22px 0;display:block;overflow-x:auto}.prose thead{background:var(--cream-soft)}.prose th,.prose td{text-align:left;border-bottom:1px solid var(--rule);vertical-align:top;padding:10px 14px}.prose tbody tr:nth-child(2n){background:color-mix(in oklab, var(--maroon-ink) 3%, transparent)}.prose th{font-family:var(--mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-bottom:1.5px solid var(--rule-strong);white-space:nowrap}.prose img,.prose svg{max-width:100%}.prose hr{border:none;border-top:1px solid var(--rule);margin:40px 0}.mermaid-figure{border:1px solid var(--rule);border-radius:var(--r-2xl);background:radial-gradient(125% 150% at 100% -10%, color-mix(in oklab, var(--peach) 12%, transparent), transparent 58%), var(--cream-soft);margin:28px 0;padding:clamp(20px,4vw,34px);overflow-x:auto}.mermaid-figure .mermaid{min-width:620px;color:var(--maroon-ink);font-family:var(--sans);justify-content:center;margin:0;display:flex;background:0 0!important;border:0!important;padding:0!important}.mermaid-figure svg{max-width:100%;height:auto}.mermaid-figure .node rect,.mermaid-figure .node polygon,.mermaid-figure .node circle,.mermaid-figure .node path{rx:13px;ry:13px}.mermaid-figure .cluster rect{rx:18px;ry:18px}.mermaid-figure .flowchart-link{stroke-width:1.7px}.mermaid-figure .nodeLabel,.mermaid-figure .edgeLabel,.mermaid-figure .cluster-label{font-weight:500;font-family:var(--sans)!important}.mermaid-figure .cluster-label .nodeLabel{color:var(--coral-text);font-weight:600}.mermaid-figure-error{border-color:color-mix(in oklab, var(--pink) 70%, var(--rule))}@media (width<=720px){.mermaid-figure .mermaid{min-width:560px}}.pull-quote{background:0 0;border:0;max-width:60ch;margin:clamp(48px,6vw,72px) auto;padding:clamp(32px,4.5vw,52px) clamp(4px,2vw,24px) 0 clamp(56px,7.5vw,104px);position:relative}.pull-quote .pq-mark{font-family:var(--sans);color:var(--coral);opacity:.2;user-select:none;pointer-events:none;font-size:clamp(160px,20vw,260px);font-style:normal;font-weight:700;line-height:1;position:absolute;top:clamp(-28px,-1.2vw,-12px);left:clamp(-8px,.2vw,4px)}.pull-quote .pq-body{quotes:none;border:0;margin:0;padding:0}.pull-quote .pq-body p{font-family:var(--sans);letter-spacing:-.02em;color:var(--maroon-ink);text-wrap:balance;font-feature-settings:"kern" 1;margin:0;font-size:clamp(24px,2.8vw,38px);font-style:normal;font-weight:500;line-height:1.28}.pull-quote .pq-body em,.pull-quote .pq-body strong,.pull-quote .pq-stat{color:var(--coral);font-style:normal;font-weight:600}.pull-quote .pq-stat{letter-spacing:-.02em;white-space:nowrap;font-feature-settings:"tnum" 1, "lnum" 1;font-size:.92em;font-weight:500}.pull-quote .pq-cite{font-family:var(--mono);font-size:var(--text-xs);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--muted);align-items:center;gap:14px;margin-top:clamp(22px,2.8vw,32px);display:flex}.pull-quote .pq-cite:before{content:"";background:var(--coral);flex:none;width:40px;height:1.5px;display:block}.pull-quote .pq-who{color:var(--maroon-ink)}.pull-quote .pq-who+.pq-where:before{content:"·";color:var(--rule-strong);font-size:var(--text-code);vertical-align:middle;margin:0 10px 0 6px}@media (width<=620px){.pull-quote{padding-top:24px;padding-left:40px;padding-right:0}.pull-quote .pq-mark{font-size:104px;top:-16px;left:-2px}.pull-quote .pq-cite{flex-wrap:wrap;gap:8px 12px}.pull-quote .pq-cite:before{width:28px}}.coco-tabs{border:1px solid var(--rule);border-radius:var(--r-xl);background:var(--cream-soft);margin:1.75rem 0;position:relative;overflow:hidden}.coco-tabs-radio{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.coco-tabs-bar{background:linear-gradient(to bottom, var(--paper), var(--cream-soft));border-bottom:1px solid var(--rule);flex-wrap:wrap;gap:4px;padding:10px 10px 0;display:flex}.coco-tabs-label{font-family:var(--sans);font-size:var(--text-sm);color:var(--muted);cursor:pointer;border-radius:var(--r-md) var(--r-md) 0 0;transition:color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);user-select:none;border:1px solid #0000;border-bottom:none;align-items:center;gap:6px;margin-bottom:-1px;padding:9px 16px;font-weight:500;display:inline-flex;position:relative}.coco-tabs-label:hover{color:var(--maroon-ink);background:color-mix(in oklab, var(--cream) 60%, transparent)}.coco-tabs-label:after{content:"";height:2px;transition:background var(--dur-fast) var(--ease);background:0 0;border-radius:2px 2px 0 0;position:absolute;bottom:0;left:14px;right:14px}.coco-tabs-panels{background:var(--paper);padding:24px 28px}.coco-tabs-panel{display:none}.coco-tabs-radio:first-of-type:checked~.coco-tabs-bar>.coco-tabs-label:first-of-type,.coco-tabs-radio:nth-of-type(2):checked~.coco-tabs-bar>.coco-tabs-label:nth-of-type(2),.coco-tabs-radio:nth-of-type(3):checked~.coco-tabs-bar>.coco-tabs-label:nth-of-type(3),.coco-tabs-radio:nth-of-type(4):checked~.coco-tabs-bar>.coco-tabs-label:nth-of-type(4),.coco-tabs-radio:nth-of-type(5):checked~.coco-tabs-bar>.coco-tabs-label:nth-of-type(5){color:var(--maroon-ink);background:var(--paper);border-color:var(--rule);font-weight:600}.coco-tabs-radio:first-of-type:checked~.coco-tabs-bar>.coco-tabs-label:first-of-type:after,.coco-tabs-radio:nth-of-type(2):checked~.coco-tabs-bar>.coco-tabs-label:nth-of-type(2):after,.coco-tabs-radio:nth-of-type(3):checked~.coco-tabs-bar>.coco-tabs-label:nth-of-type(3):after,.coco-tabs-radio:nth-of-type(4):checked~.coco-tabs-bar>.coco-tabs-label:nth-of-type(4):after,.coco-tabs-radio:nth-of-type(5):checked~.coco-tabs-bar>.coco-tabs-label:nth-of-type(5):after{background:var(--coral)}.coco-tabs-radio:first-of-type:checked~.coco-tabs-panels>.coco-tabs-panel[data-tab-index="0"],.coco-tabs-radio:nth-of-type(2):checked~.coco-tabs-panels>.coco-tabs-panel[data-tab-index="1"],.coco-tabs-radio:nth-of-type(3):checked~.coco-tabs-panels>.coco-tabs-panel[data-tab-index="2"],.coco-tabs-radio:nth-of-type(4):checked~.coco-tabs-panels>.coco-tabs-panel[data-tab-index="3"],.coco-tabs-radio:nth-of-type(5):checked~.coco-tabs-panels>.coco-tabs-panel[data-tab-index="4"]{display:block}.coco-tabs-radio:first-of-type:focus-visible~.coco-tabs-bar>.coco-tabs-label:first-of-type,.coco-tabs-radio:nth-of-type(2):focus-visible~.coco-tabs-bar>.coco-tabs-label:nth-of-type(2),.coco-tabs-radio:nth-of-type(3):focus-visible~.coco-tabs-bar>.coco-tabs-label:nth-of-type(3),.coco-tabs-radio:nth-of-type(4):focus-visible~.coco-tabs-bar>.coco-tabs-label:nth-of-type(4),.coco-tabs-radio:nth-of-type(5):focus-visible~.coco-tabs-bar>.coco-tabs-label:nth-of-type(5){outline:var(--focus);outline-offset:var(--focus-offset)}.coco-tabs-panel img{max-width:100%;height:auto;margin:4px auto 18px;display:block}.coco-tabs-panel p:first-child{margin-top:0}.coco-tabs-panel p:last-child,.coco-tabs-panel ul:last-child{margin-bottom:0}@media (width<=640px){.coco-tabs-panels{padding:18px}.coco-tabs-label{font-size:var(--text-sm);padding:8px 12px}}.coco-faq{border-top:1px solid var(--rule);flex-direction:column;gap:0;display:flex}.coco-faq__item{border-bottom:1px solid var(--rule);position:relative;overflow:hidden}.coco-faq__item:before{content:"";background-image:var(--dot-reveal);background-size:var(--dot-reveal-size) var(--dot-reveal-size);opacity:0;width:140px;height:100%;transition:opacity var(--dur-slow) var(--ease);pointer-events:none;background-position:100% 100%;position:absolute;inset:auto 0 0 auto;-webkit-mask-image:radial-gradient(circle at 100%,#000 0%,#0000 75%);mask-image:radial-gradient(circle at 100%,#000 0%,#0000 75%)}.coco-faq__item>*{z-index:1;position:relative}.coco-faq__item:hover:before,.coco-faq__item:focus-within:before{opacity:1}.coco-faq__item>summary{cursor:pointer;font-family:var(--sans);font-weight:600;font-size:var(--text-base);letter-spacing:-.015em;color:var(--maroon-ink);justify-content:space-between;align-items:center;gap:20px;padding:18px 4px;list-style:none;display:flex}.coco-faq__item>summary::-webkit-details-marker{display:none}.coco-faq__item>summary:after{content:"+";font-family:var(--mono);font-size:var(--text-base);color:var(--coral);transition:transform var(--dur-fast) var(--ease);text-align:center;flex:none;width:18px}.coco-faq__item[open]>summary:after{content:"−"}.coco-faq__answer{max-width:var(--measure);font-size:var(--text-base);color:var(--muted);padding:0 4px 18px;line-height:1.65}.coco-faq__answer p{margin:0 0 12px}.coco-faq__answer>:last-child{margin-bottom:0}.coco-faq__answer ul,.coco-faq__answer ol{margin:12px 0 4px;padding-left:22px}.coco-faq__answer li{margin:6px 0}.coco-faq__answer a{color:var(--coral-text)}.coco-faq__answer a:hover{text-decoration:underline}.coco-faq__answer code{font-family:var(--mono);font-size:var(--text-sm);background:color-mix(in oklab, var(--coral) 12%, transparent);color:var(--berry);border-radius:3px;padding:1px 6px}.coco-faq__answer b{color:var(--maroon-ink);font-weight:600}@media (prefers-reduced-motion:reduce){.coco-faq__item:before,.coco-faq__item>summary:after{transition:none}}:root{--bar-h:66px;--nav-gutter:clamp(1.25rem, 4vw, 3rem)}nav.top{z-index:var(--z-nav);height:var(--bar-h);background:color-mix(in oklab, var(--paper) 82%, transparent);-webkit-backdrop-filter:blur(18px)saturate(160%);border-bottom:1px solid var(--rule);transition:background var(--dur-slow) var(--ease), border-color var(--dur-slow) var(--ease), backdrop-filter var(--dur-slow) var(--ease);position:sticky;top:0}nav.top.is-floating{-webkit-backdrop-filter:none;background:0 0;border-bottom-color:#0000}nav.top.no-morph{background:color-mix(in oklab, var(--paper) 82%, transparent);border-bottom-color:var(--rule)}nav.top.no-morph .nav-in{box-shadow:none;border-color:#0000;border-radius:0;transform:none}.nav-in{max-width:100%;height:100%;padding:0 var(--nav-gutter);transition:max-width var(--dur-morph) var(--ease), transform var(--dur-morph) var(--ease), border-radius var(--dur-morph) var(--ease), box-shadow var(--dur-morph) var(--ease), border-color var(--dur-morph) var(--ease), padding var(--dur-morph) var(--ease), background-color var(--dur-morph) var(--ease);border:1px solid #0000;border-radius:0;align-items:center;gap:1.25rem;margin:0 auto;display:flex}nav.top.is-floating .nav-in{border-color:var(--rule);border-radius:var(--r-pill);background:color-mix(in oklab, var(--paper) 90%, transparent);-webkit-backdrop-filter:blur(18px)saturate(160%);max-width:min(64rem,100% - 1.5rem);box-shadow:var(--shadow-nav);padding:0 1.1rem;transform:translateY(.7rem)}.nav-links{align-items:center;gap:.3rem;display:flex}nav.top .logo{gap:.75rem;margin-right:auto}.nav-links a{font-size:var(--text-code);color:color-mix(in oklab, var(--maroon-ink) 88%, var(--paper));border-radius:var(--r-lg);transition:color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);padding:.5rem .8rem;font-weight:500;text-decoration:none}.nav-links a:hover{color:var(--maroon-ink);background:color-mix(in oklab, var(--maroon-ink) 6%, var(--paper));text-decoration:none}.nav-cta{align-items:center;gap:.5rem;margin-left:.4rem;display:flex}.menu-btn{border-radius:var(--r-md);width:32px;height:32px;color:var(--muted);cursor:pointer;transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);background:0 0;border:1px solid #0000;flex:none;justify-content:center;align-items:center;padding:0;display:none;position:relative}.menu-btn:hover{border-color:var(--rule);background:color-mix(in oklab, var(--peach) 10%, transparent);color:var(--maroon-ink)}.menu-btn:focus-visible{outline:var(--focus);outline-offset:var(--focus-offset)}.menu-btn .bar,.menu-btn:before,.menu-btn:after{content:"";height:1.4px;transition:transform var(--dur-fast) var(--ease), opacity var(--dur-fast) var(--ease), top var(--dur-fast) var(--ease);background:currentColor;border-radius:1px;position:absolute;left:8px;right:8px}.menu-btn:before{top:10px}.menu-btn .bar{top:15px}.menu-btn:after{top:20px}.menu-btn.open{color:var(--coral);border-color:var(--rule);background:color-mix(in oklab, var(--peach) 10%, transparent)}.menu-btn.open:before{top:15px;transform:rotate(45deg)}.menu-btn.open:after{top:15px;transform:rotate(-45deg)}.menu-btn.open .bar{opacity:0}.nav-dd{position:relative}.nav-dd-trigger{align-items:center;gap:6px;display:inline-flex!important}.nav-dd-trigger svg{color:var(--muted);transition:transform var(--dur-fast) var(--ease)}.nav-dd:hover .nav-dd-trigger svg,.nav-dd:focus-within .nav-dd-trigger svg{color:var(--coral);transform:rotate(180deg)}.nav-dd-menu{background:var(--paper);border:1px solid var(--rule-strong);border-radius:var(--r-lg);opacity:0;visibility:hidden;min-width:180px;transition:opacity var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease), visibility 0s linear var(--dur-fast);z-index:var(--z-drawer);flex-direction:column;gap:2px;padding:6px;display:flex;position:absolute;top:calc(100% + 8px);left:0;transform:translateY(-4px)}.nav-dd:hover .nav-dd-menu,.nav-dd:focus-within .nav-dd-menu{opacity:1;visibility:visible;transition-delay:0s;transform:translateY(0)}.nav-dd-menu:before{content:"";height:10px;position:absolute;top:-10px;left:0;right:0}.nav-dd-menu a{border-radius:var(--r-sm);font-size:var(--text-sm);color:var(--maroon-ink);justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;text-decoration:none;display:flex!important}.nav-dd-menu a:hover{color:var(--coral)}.nav-dd-menu a.on{color:var(--ink-active)}.nav-dd-menu .ver{font-family:var(--mono);font-size:var(--text-sm);font-weight:500}.nav-dd-menu .tag{font-family:var(--mono);font-size:var(--text-xs);letter-spacing:var(--track-label);text-transform:uppercase;border-radius:var(--r-pill);background:color-mix(in oklab, var(--coral) 14%, var(--paper));color:var(--ink-active);border:1px solid color-mix(in oklab, var(--coral) 28%, transparent);padding:2px 7px}.nav-dd-menu .tag.legacy{color:var(--muted);border-color:var(--rule-strong);background:0 0}.mobile-scrim,.mobile-sheet{display:none}.mobile-scrim{background:color-mix(in oklab, var(--maroon-ink) 38%, transparent);opacity:0;pointer-events:none;transition:opacity var(--dur-fast) var(--ease);z-index:var(--z-drawer);position:fixed;inset:0}.mobile-scrim.open{opacity:1;pointer-events:auto}.mobile-sheet{background:var(--paper);border-left:1px solid var(--rule-strong);width:min(86%,360px);transition:transform var(--dur-fast) var(--ease);z-index:var(--z-modal);flex-direction:column;position:fixed;top:0;bottom:0;right:0;overflow:hidden;transform:translate(100%)}.mobile-sheet.open{transform:translate(0)}.mobile-sheet[hidden]{display:none!important}.mobile-sheet-head{border-bottom:1px solid var(--rule);flex:none;align-items:center;gap:10px;padding:17px 14px;display:flex}.mobile-sheet-head .ttl{font-family:var(--mono);font-weight:500;font-size:var(--text-xs);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--muted);flex:1}.mobile-close{border-radius:var(--r-md);width:32px;height:32px;color:var(--muted);cursor:pointer;transition:color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), transform var(--dur-press) var(--ease);background:0 0;border:1px solid #0000;place-items:center;padding:0;display:grid}.mobile-close:hover{color:var(--coral);border-color:var(--rule);background:color-mix(in oklab, var(--peach) 10%, transparent)}.mobile-close:active{transform:translateY(1px)}.mobile-close:focus-visible{outline:var(--focus);outline-offset:var(--focus-offset)}.mobile-pane{-webkit-overflow-scrolling:touch;flex:1;padding:14px 8px 24px;overflow-y:auto}.mobile-pane[hidden]{display:none}.mobile-list{flex-direction:column;display:flex}.mobile-list a{border-radius:var(--r-md);min-height:44px;font-family:var(--sans);font-weight:500;font-size:var(--text-sm);letter-spacing:-.005em;color:var(--maroon-ink);transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);align-items:center;gap:10px;padding:10px;text-decoration:none;display:flex}.mobile-list a:hover{background:color-mix(in oklab, var(--coral) 8%, transparent);color:var(--maroon-ink);text-decoration:none}.mobile-list a[aria-current],.mobile-list a.on{background:color-mix(in oklab, var(--coral) 14%, transparent);color:var(--ink-active)}.mobile-list a .num{border-radius:var(--r-sm);width:22px;height:22px;font-family:var(--mono);font-size:var(--text-xs);background:color-mix(in oklab, var(--maroon-ink) 6%, transparent);color:var(--maroon-ink);font-variant-numeric:tabular-nums;flex:none;place-items:center;font-weight:500;display:grid}.mobile-list a[aria-current] .num{background:var(--coral);color:var(--cream-bright)}.mobile-list a.sub{min-height:38px;font-size:var(--text-sm);color:var(--muted);padding-left:36px}.mobile-list a.sub:hover{color:var(--maroon-ink)}.mobile-list .lbl{flex:1;min-width:0;line-height:1.2}.mobile-foot{border-top:1px solid var(--rule);flex:none;align-items:center;gap:10px;padding:12px 14px 16px;display:flex}.mobile-foot .stars{flex:none}@media (prefers-reduced-motion:reduce){.menu-btn .bar,.menu-btn:before,.menu-btn:after,.mobile-sheet,.mobile-scrim{transition:none!important}.mobile-close:active{transform:none}nav.top,.nav-in{transition:none!important}}.stars{font-family:var(--mono);font-size:var(--text-sm);border:1px solid var(--rule-strong);border-radius:var(--r-pill);min-width:74px;color:var(--maroon);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), transform var(--dur-press) var(--ease);justify-content:center;align-items:center;gap:6px;padding:6px 10px;text-decoration:none;display:inline-flex}.stars:hover,.stars.is-hover{border-color:color-mix(in oklab, var(--coral) 45%, transparent);background:color-mix(in oklab, var(--peach) 14%, var(--paper));color:var(--coral)}.stars:active{transform:translateY(1px)}.stars:focus-visible{outline:var(--focus);outline-offset:var(--focus-offset)}.stars .count{text-align:center;font-variant-numeric:tabular-nums;width:4ch;min-width:4ch;display:inline-block}@media (prefers-reduced-motion:reduce){.stars{transition:border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease)}.stars:active{transform:none}}.it-foot{max-width:var(--chrome-maxw,var(--maxw));padding:clamp(72px, 8vh, 100px) var(--gutter) clamp(40px, 5vh, 56px);margin:0 auto;position:relative}.it-foot:before{content:"";z-index:-1;pointer-events:none;background:var(--paper-2);border-top:1px solid var(--rule);width:100vw;position:absolute;inset:0 auto 0 50%;transform:translate(-50%)}.foot-statement{font-family:var(--sans);letter-spacing:-.03em;color:var(--maroon-ink);max-width:22ch;margin:0 0 clamp(3rem,6vh,4.5rem);font-size:clamp(2.5rem,5vw + 1rem,5rem);font-weight:700;line-height:1.02}.foot-grid{gap:clamp(48px,6vw,96px);padding-top:8px;padding-bottom:40px;display:flex}.foot-brand{flex-direction:column;margin-right:auto;display:flex}.foot-brand .logo{flex-direction:column;align-items:flex-start;gap:14px}.foot-brand .logo img{height:50px}.foot-brand .logo .logo-word{font-size:1.5rem}.foot-colo{font-family:var(--mono);font-size:var(--text-xs);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--muted);flex-direction:column;gap:5px;margin-top:auto;padding-top:28px;display:flex}.foot-colo .foot-tag{color:color-mix(in oklab, var(--maroon-ink) 38%, transparent)}.foot-colo .foot-heart{color:var(--coral);animation:foot-heart var(--dur-pulse) ease-in-out infinite;display:inline-block}@keyframes foot-heart{0%,to{transform:scale(1)}45%{transform:scale(1.22)}}@media (prefers-reduced-motion:reduce){.foot-colo .foot-heart{animation:none}}.foot-col .foot-h{font-family:var(--mono);font-size:var(--text-xs);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--muted);margin:0 0 14px;font-weight:500;display:block}.foot-col a{color:var(--maroon-ink);font-size:var(--text-sm);white-space:nowrap;padding:5px 0;text-decoration:none;display:block}.foot-col a:hover{color:var(--coral)}@media (width<=820px){.it-foot{padding:56px var(--gutter) 32px}.foot-grid{flex-wrap:wrap;gap:32px 24px}.foot-brand{flex:100%;margin-right:0}.foot-col{flex:40%}}@media (width<=520px){.foot-col{flex:100%}}.search-wrap{background:linear-gradient(var(--paper) 80%, transparent);z-index:5;margin-bottom:6px;padding:0 0 14px;position:sticky;top:0}.search-btn{border-radius:var(--r-md);border:1px solid var(--rule-strong);background:var(--cream);width:100%;color:var(--maroon-ink);font-family:var(--sans);font-size:var(--text-sm);cursor:pointer;transition:border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);align-items:center;gap:8px;padding:8px 10px;font-weight:500;display:inline-flex}.search-btn:hover{border-color:var(--coral);color:var(--coral);background:color-mix(in oklab, var(--peach) 10%, var(--paper))}.search-btn:focus-visible{outline:var(--focus);outline-offset:var(--focus-offset)}.search-btn .ic{opacity:.8;flex:none}.search-btn:hover .ic{opacity:1}.search-btn .lbl{text-align:left;flex:1}.search-btn .kbd{font-family:var(--mono);font-size:var(--text-xs);letter-spacing:var(--track-code);color:var(--muted);border:1px solid var(--rule);border-radius:var(--r-xs);background:var(--paper);align-items:center;gap:2px;padding:1px 5px;font-weight:500;display:inline-flex}.search-btn .kbd .cmd{font-size:var(--text-xs);line-height:1}.side-group{margin-bottom:22px}.side-group>h5{font-family:var(--mono);font-size:var(--text-xs);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--muted);justify-content:space-between;align-items:center;margin:0 0 8px;padding:0 10px;display:flex}.side-group>h5 .dot{background:var(--coral);border-radius:50%;width:5px;height:5px}.side-group ul{margin:0;padding:0;list-style:none}.side-group li a{color:var(--maroon-ink);font-size:var(--text-sm);border-radius:var(--r-sm);align-items:center;gap:10px;padding:6px 10px;line-height:1.2;text-decoration:none;display:flex}.side-group li a:hover{color:var(--coral);text-decoration:none}.side-group li a.on{background:color-mix(in oklab, var(--coral) 14%, transparent);color:var(--ink-active);font-weight:600}.side-group li a.on:before{content:"";background:var(--coral);border-radius:2px;width:3px;height:14px;margin-left:-7px;margin-right:7px}.side-group li a .num{font-family:var(--mono);font-size:var(--text-xs);color:var(--muted);min-width:18px}.side-group li a.on .num{color:color-mix(in oklab, var(--ink-active) 70%, transparent)}aside.toc h6{font-family:var(--mono);font-size:var(--text-xs);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--rule);margin:0 0 12px;padding-bottom:10px}aside.toc ul{margin:0;padding:0;list-style:none}aside.toc li a{color:var(--muted);font-size:var(--text-sm);border-left:2px solid #0000;padding:4px 10px;line-height:1.4;text-decoration:none;display:block}aside.toc li a:hover{color:var(--coral);text-decoration:none}aside.toc li a.on{color:var(--ink-active);border-left-color:var(--coral)}aside.toc li.sub a{font-size:var(--text-sm);padding-left:22px}aside.toc li.sub-sub a{font-size:var(--text-sm);padding-left:34px}aside.toc .meta{border-top:1px solid var(--rule);flex-direction:column;gap:4px;margin-top:28px;padding-top:20px;display:flex}aside.toc .meta a,aside.toc .meta .edited{font-size:var(--text-sm);color:var(--maroon-ink);border-radius:var(--r-sm);transition:border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);border:1px solid #0000;align-items:center;gap:10px;padding:6px 10px;text-decoration:none;display:flex}aside.toc .meta svg{flex:none}aside.toc .meta a:hover{color:var(--coral)}aside.toc .meta .edited{color:var(--muted);cursor:default}.breadcrumb{font-family:var(--mono);font-size:var(--text-xs);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--muted);margin-bottom:20px}.breadcrumb a{color:var(--muted);text-decoration:none}.breadcrumb a:hover{color:var(--coral)}.breadcrumb .sep{opacity:.5;margin:0 8px}.breadcrumb .now{color:var(--ink-active)}.pager{grid-template-columns:1fr 1fr;gap:16px;margin-top:56px;display:grid}.pager a{border:1px solid var(--rule-strong);border-radius:var(--r-md);color:var(--maroon-ink);transition:border-color var(--dur-fast) var(--ease);flex-direction:column;gap:4px;padding:20px 22px;text-decoration:none;display:flex;position:relative;overflow:hidden}.pager a>*{z-index:1;position:relative}.pager a:before{content:"";background-image:var(--dot-reveal);background-size:var(--dot-reveal-size) var(--dot-reveal-size);opacity:0;width:80px;transition:opacity var(--dur-slow) var(--ease);pointer-events:none;position:absolute;inset:0 0 0 auto;-webkit-mask-image:linear-gradient(90deg,#0000,#000 55%);mask-image:linear-gradient(90deg,#0000,#000 55%)}.pager a.next:before{inset:0 auto 0 0;-webkit-mask-image:linear-gradient(270deg,#0000,#000 55%);mask-image:linear-gradient(270deg,#0000,#000 55%)}.pager a:hover{border-color:color-mix(in oklab, var(--coral) 45%, var(--rule-strong));text-decoration:none}.pager a:hover:before{opacity:1}.pager a:focus-visible{outline:var(--focus);outline-offset:var(--focus-offset)}.pager a.next{text-align:right}.pager a .dir{font-family:var(--mono);font-size:var(--text-xs);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--muted)}.pager a .ttl{font-family:var(--sans);font-size:var(--text-base);letter-spacing:-.015em;color:var(--maroon);margin-top:2px;font-weight:600}.pager a .ttl:before{content:"←";color:var(--coral)}.pager a.next .ttl:before{content:""}.pager a.next .ttl:after{content:" →";color:var(--coral)}.doc-foot{font-family:var(--mono);font-size:var(--text-xs);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--muted);justify-content:space-between;align-items:center;margin-top:40px;display:flex}.doc-foot a{color:var(--muted);border:1px solid var(--rule);border-radius:var(--r-xs);padding:4px 10px;text-decoration:none}.doc-foot a:hover{color:var(--coral);border-color:var(--coral);text-decoration:none}.page-head{justify-content:space-between;align-items:center;gap:16px;margin:0 0 20px;display:flex}.page-head .breadcrumb{min-width:0;margin:0}.ai-actions{flex:none;justify-content:flex-end;display:flex}.ai-menu{position:relative}@media (width<=600px){.page-head{flex-direction:column;align-items:flex-start;gap:12px}.ai-actions{align-self:flex-start}.ai-panel{width:min(308px,100vw - 48px);left:0;right:auto}}@media (prefers-reduced-motion:reduce){.ai-toggle svg,.ai-item,.ai-primary,.ai-toggle{transition:none}}.ai-split{background:var(--cream);border:1px solid var(--rule);border-radius:999px;align-items:stretch;display:inline-flex;overflow:hidden}.ai-primary,.ai-toggle{font:500 var(--text-sm)/1 var(--sans);color:var(--maroon-ink);cursor:pointer;transition:color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);background:0 0;border:0;align-items:center;gap:6px;display:inline-flex}.ai-primary{padding:8px 12px 8px 14px}.ai-toggle{border-left:1px solid var(--rule);padding:8px 9px}.ai-primary:hover,.ai-toggle:hover{color:var(--coral);background:var(--paper)}.ai-primary:focus-visible,.ai-toggle:focus-visible{outline:var(--focus);outline-offset:-2px}.ai-primary svg{width:14px;height:14px}.ai-toggle svg{width:13px;height:13px;transition:transform var(--dur-fast) var(--ease)}.ai-toggle[aria-expanded=true] svg{transform:rotate(180deg)}.ai-primary.copied{color:var(--ink-success)}.ai-panel{z-index:var(--z-pop);background:var(--paper);border:1px solid var(--rule);border-radius:var(--r-xl);width:308px;box-shadow:var(--shadow-pop);padding:6px;position:absolute;top:calc(100% + 8px);right:0}.ai-panel[hidden]{display:none}.ai-item{border-radius:var(--r-lg);text-align:left;cursor:pointer;width:100%;transition:background var(--dur-press) var(--ease);background:0 0;border:0;align-items:flex-start;gap:11px;padding:9px 10px;text-decoration:none;display:flex}.ai-item:hover,.ai-item:focus-visible{background:color-mix(in oklab, var(--coral) 8%, transparent)}.ai-item:focus-visible{outline:var(--focus);outline-offset:-2px}.ai-ic{width:34px;height:34px;color:var(--maroon-ink);background:var(--cream);border:1px solid var(--rule);border-radius:var(--r-md);flex:none;place-items:center;display:grid}.ai-ic svg{width:17px;height:17px}.ai-tx{flex-direction:column;gap:2px;min-width:0;display:flex}.ai-t{font:500 var(--text-sm)/1.25 var(--sans);color:var(--maroon-ink);align-items:center;gap:5px;display:inline-flex}.ai-t .ext{opacity:.5;width:12px;height:12px}.ai-d{font:400 var(--text-sm)/1.3 var(--sans);color:var(--muted)}.ai-item.copied .ai-d{color:var(--ink-success)}:root{--side:280px;--toc:240px;--chrome-maxw:var(--maxw-docs)}*{box-sizing:border-box}html,body{background:var(--paper);color:var(--maroon-ink);margin:0;padding:0}body{font-family:var(--sans);font-size:var(--text-base);-webkit-font-smoothing:antialiased;line-height:1.6}a{color:var(--coral-text);text-decoration:none}a:hover:not(:where(.btn,.btn *,.logo,.stars,.nav-links a,.mobile-list a,.ex-card,.docs-link-card,.example-repo-card,[class*=card])){color:var(--coral-deep);text-decoration:underline}.caps{font-family:var(--mono);font-size:var(--text-xs);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--muted)}.mono{font-family:var(--mono)}.mobile-tabs{background:color-mix(in oklab, var(--maroon-ink) 6%, var(--paper));border-radius:var(--r-lg);flex:none;grid-template-columns:1fr 1fr;margin:12px 14px 0;padding:3px;display:grid}.mobile-tabs button{appearance:none;cursor:pointer;font-family:var(--sans);font-weight:500;font-size:var(--text-sm);letter-spacing:-.005em;color:var(--maroon-ink);opacity:.7;border-radius:var(--r-md);transition:opacity var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);background:0 0;border:none;padding:8px 10px}.mobile-tabs button[aria-selected=true]{opacity:1;color:var(--maroon-ink);background:var(--paper);box-shadow:inset 0 0 0 1px var(--rule)}.mobile-tabs button[disabled]{opacity:.35;cursor:not-allowed}.mobile-tabs button:focus-visible{outline:var(--focus);outline-offset:var(--focus-offset)}.mobile-empty{color:var(--muted);font-size:var(--text-sm);margin:16px 14px;line-height:1.55}.mobile-group{margin:0 8px 14px}.mobile-divider{border:none;border-top:1px solid var(--rule);margin:6px 14px 4px}.mobile-group h6{font-family:var(--mono);font-weight:500;font-size:var(--text-xs);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--muted);margin:14px 8px 6px}.mobile-group h6 a{color:inherit;text-decoration:none}.mobile-group h6 a:hover{color:var(--coral)}.layout{grid-template-columns:var(--side) 1fr var(--toc);max-width:1480px;margin:0 auto;display:grid}aside.side{top:var(--bar-h);height:calc(100vh - var(--bar-h));border-right:1px solid var(--rule);align-self:start;padding:28px 20px 40px 28px;position:sticky;overflow-y:auto}aside.toc{top:var(--bar-h);height:calc(100vh - var(--bar-h));border-left:1px solid var(--rule);align-self:start;padding:28px 28px 40px 20px;position:sticky;overflow-y:auto}main.content{min-width:0;max-width:100%;padding:48px 56px 96px}.prose .intro-meta{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);flex-wrap:wrap;gap:22px;max-width:none;margin:20px 0 8px;padding:14px 0 18px;display:flex}.prose .intro-meta .m{flex-direction:column;gap:2px;margin:0;display:flex}.prose .intro-meta .k{font-family:var(--mono);font-size:var(--text-xs);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--muted)}.prose .intro-meta .v{font-size:var(--text-sm);align-items:center;gap:6px;margin:0;font-weight:500;display:inline-flex}.prose .intro-meta .check{flex:none}@media (width<=1120px){.layout{grid-template-columns:var(--side) 1fr}aside.toc{display:none}}@media (width<=820px){.layout{grid-template-columns:1fr}aside.side{display:none}main.content{padding:32px 24px 64px}.nav-links{display:none}.prose .head-anchor{opacity:.4;vertical-align:middle;width:auto;margin-right:7px;position:static}.nav-in{gap:12px;padding:10px 18px}.nav-cta{gap:4px}.stars{height:28px;color:var(--muted);min-width:0;font-size:var(--text-xs);background:0 0;border-color:#0000;padding:0 8px}.stars:hover{border-color:var(--rule);background:color-mix(in oklab, var(--peach) 14%, var(--paper));color:var(--coral)}.stars svg{opacity:.85;width:12px;height:12px}.stars:hover svg{opacity:1}.stars .count{width:auto;min-width:3ch}.menu-btn{display:inline-flex}.mobile-scrim{display:block}.mobile-sheet{display:flex}}.DocSearch-Container{--docsearch-spacing:12px;--docsearch-border-radius:var(--r-lg);--docsearch-icon-stroke-width:1.6;--docsearch-modal-width:720px;--docsearch-modal-height:600px;--docsearch-modal-background:var(--paper);--docsearch-modal-shadow:none;--docsearch-container-background:transparent;--docsearch-primary-color:var(--coral);--docsearch-soft-primary-color:color-mix(in oklab, var(--coral) 12%, transparent);--docsearch-focus-color:var(--coral);--docsearch-text-color:var(--maroon-ink);--docsearch-secondary-text-color:var(--muted);--docsearch-muted-color:var(--muted);--docsearch-muted-color-darker:var(--maroon);--docsearch-subtle-color:var(--rule);--docsearch-icon-color:var(--muted);--docsearch-logo-color:var(--coral);--docsearch-error-color:var(--berry);--docsearch-success-color:var(--ink-success);--docsearch-background-color:var(--paper);--docsearch-searchbox-height:56px;--docsearch-searchbox-initial-height:44px;--docsearch-searchbox-background:var(--cream);--docsearch-searchbox-focus-background:var(--paper);--docsearch-hit-height:56px;--docsearch-hit-color:var(--maroon-ink);--docsearch-hit-active-color:var(--maroon-ink);--docsearch-hit-background:var(--cream);--docsearch-hit-shadow:none;--docsearch-hit-highlight-color:color-mix(in oklab, var(--coral) 14%, var(--paper));--docsearch-highlight-color:var(--coral);--docsearch-dropdown-menu-background:var(--paper);--docsearch-dropdown-menu-item-hover-background:color-mix(in oklab, var(--coral) 8%, transparent);--docsearch-key-background:var(--cream);--docsearch-key-color:var(--maroon-ink);--docsearch-key-pressed-shadow:none;--docsearch-footer-height:44px;--docsearch-footer-background:var(--cream);--docsearch-footer-shadow:inset 0 1px 0 var(--rule);--docsearch-search-button-background:var(--cream);--docsearch-search-button-text-color:var(--maroon-ink);--docsearch-actions-width:28px;--docsearch-actions-height:28px;backdrop-filter:blur(8px)!important}.DocSearch-Modal{border:1px solid var(--rule-strong)}.DocSearch-Form{box-shadow:none;background:var(--cream);border:none;border-radius:0}.DocSearch-Form:focus-within{background:var(--paper);box-shadow:none}.DocSearch-MagnifierLabel,.DocSearch-MagnifierLabel svg,.DocSearch-Search-Icon,.DocSearch-Back-Icon{color:var(--coral)!important}.DocSearch-Input{font-family:var(--sans);font-size:var(--text-base);letter-spacing:-.01em;color:var(--maroon-ink);font-weight:400}.DocSearch-Input::placeholder{color:var(--muted)}.DocSearch-Cancel,.DocSearch-Clear{font-family:var(--sans);color:var(--coral)!important}.DocSearch-Hit-source{font-family:var(--mono);font-weight:500;font-size:var(--text-xs);letter-spacing:var(--track-label);text-transform:uppercase;background:var(--paper);padding:14px 4px 6px;color:var(--muted)!important}.DocSearch-Hit a{border-radius:var(--r-md);border:1px solid var(--rule);transition:background-image var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);background:0 0!important}.DocSearch-Hit[aria-selected=true] a{border-color:var(--coral);background:color-mix(in oklab, var(--coral) 12%, transparent)!important}.DocSearch-Hit a:hover{background-image:radial-gradient(circle, color-mix(in oklab, var(--maroon-ink) 10%, transparent) 1.2px, transparent 1.6px);border-color:var(--coral);background-size:14px 14px}.DocSearch-Hit-title{font-family:var(--sans);font-weight:500}.DocSearch-Hit-path{font-family:var(--mono);font-size:var(--text-xs)}.DocSearch-Hit-icon{color:var(--muted)}.DocSearch-Hit mark{text-underline-offset:2px;text-decoration:underline;text-decoration-color:var(--coral);background:0 0;font-weight:600;color:var(--coral)!important}.DocSearch-Action,.DocSearch-Action svg,.DocSearch-AskAi-Return,.DocSearch-Hit-Select-Icon{color:var(--coral)!important}.DocSearch-Action:hover,.DocSearch-AskAi-Return:hover{background:color-mix(in oklab, var(--coral) 10%, transparent)!important}.DocSearch-Commands-Key,.DocSearch-Button-Key{font-family:var(--mono);border-radius:var(--r-xs);padding:1px 5px;font-weight:500;font-size:var(--text-xs)!important;border:1px solid var(--rule)!important;background:var(--cream)!important;color:var(--maroon-ink)!important;box-shadow:none!important}.DocSearch-Footer{border-top:1px solid var(--rule);font-family:var(--mono);font-size:var(--text-xs);letter-spacing:.06em;color:var(--muted)}.DocSearch-Commands{color:var(--muted)}.DocSearch-Logo svg,.DocSearch-Logo svg *,.DocSearch-Logo svg g,.DocSearch-Logo svg path,.DocSearch-Logo svg rect,.DocSearch-Logo svg use{fill:var(--coral)!important;color:var(--coral)!important}.DocSearch-Logo a{color:var(--muted)}.DocSearch-NoResults .DocSearch-Title{font-family:var(--sans);letter-spacing:-.025em;color:var(--maroon-ink);font-style:normal;font-weight:600}.DocSearch-NoResults .DocSearch-Title strong{color:var(--coral)}.DocSearch-Title,.DocSearch-Hit-source,.DocSearch-NoResults-Prefill-List ul li{letter-spacing:-.005em}.coco-card{--card-accent:var(--coral);--card-tint:color-mix(in oklab, var(--card-accent) 14%, var(--paper));--card-accent-text:color-mix(in oklab, var(--card-accent) 45%, var(--maroon-ink));background:color-mix(in oklab, var(--card-accent) 4%, var(--paper));border:1.5px solid color-mix(in oklab, var(--card-accent) 16%, var(--rule));border-radius:var(--r-2xl);color:var(--maroon-ink);box-shadow:0 10px 28px -18px color-mix(in oklab, var(--maroon-ink) 16%, transparent);transition:transform var(--dur-lift) var(--ease-spring), box-shadow var(--dur-lift) var(--ease), border-color var(--dur-fast) var(--ease), background-color var(--dur-fast) var(--ease);flex-direction:column;padding:22px;text-decoration:none;display:flex;position:relative}.coco-card[data-accent=peach]{--card-accent:var(--peach)}.coco-card[data-accent=palm]{--card-accent:var(--palm-ink)}.coco-card[data-accent=lavender]{--card-accent:var(--lavender)}.coco-card[data-accent=gold]{--card-accent:var(--gold)}.coco-card:hover{border-color:color-mix(in oklab, var(--card-accent) 55%, var(--rule));background:color-mix(in oklab, var(--card-accent) 9%, var(--paper));box-shadow:0 22px 44px -20px color-mix(in oklab, var(--maroon-ink) 30%, transparent), 0 5px 12px -7px color-mix(in oklab, var(--maroon-ink) 16%, transparent);text-decoration:none;transform:translateY(-4px)}.coco-card:focus-visible{outline:2px solid var(--card-accent-text);outline-offset:3px;text-decoration:none}.coco-card__ico{border-radius:var(--r-xl);background:var(--card-tint);width:46px;height:46px;color:var(--card-accent-text);transition:transform var(--dur-lift) var(--ease-spring), background-color var(--dur-fast) var(--ease);flex:none;place-items:center;margin-bottom:18px;display:grid}.coco-card:hover .coco-card__ico{background:color-mix(in oklab, var(--card-accent) 22%, var(--paper));transform:scale(1.08)rotate(-4deg)}.coco-card__ico svg{width:24px;height:24px;display:block}.coco-card__title{font-family:var(--sans);font-size:var(--text-base);letter-spacing:-.01em;color:var(--maroon-ink);align-items:center;gap:7px;margin:0 0 7px;font-weight:600;line-height:1.25;display:flex}.coco-card__ar{color:var(--card-accent-text);transition:transform var(--dur-fast) var(--ease)}.coco-card:hover .coco-card__ar{transform:translate(4px)}.coco-card__body{font-size:var(--text-code);color:var(--muted);margin:0;line-height:1.55}.coco-card__meta{font-family:var(--mono);font-size:var(--text-xs);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--card-accent-text);margin-top:auto;padding-top:16px;display:block}@media (prefers-reduced-motion:reduce){.coco-card,.coco-card__ico,.coco-card__ar{transition:none}.coco-card:hover,.coco-card:hover .coco-card__ico{transform:none}}.coco-grid{flex-direction:column;gap:34px;margin:28px 0 8px;display:flex}.coco-grid__group{--group-accent:var(--coral)}.coco-grid__group[data-accent=peach]{--group-accent:var(--peach)}.coco-grid__group[data-accent=palm]{--group-accent:var(--palm-ink)}.coco-grid__group[data-accent=lavender]{--group-accent:var(--lavender)}.coco-grid__group[data-accent=gold]{--group-accent:var(--gold)}.coco-grid__head{margin-bottom:14px}.coco-grid__label{font-family:var(--mono);font-size:var(--text-xs);letter-spacing:var(--track-label);text-transform:uppercase;color:color-mix(in oklab, var(--group-accent) 45%, var(--maroon-ink));align-items:center;gap:9px;font-weight:600;display:inline-flex}.coco-grid__label:before{content:"";background:var(--group-accent);opacity:.65;width:18px;height:1px}.coco-grid__blurb{font-family:var(--sans);font-size:var(--text-sm);color:var(--muted);margin:6px 0 0;line-height:1.45}.coco-grid__cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:16px;display:grid}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/docs/_astro/geist-cyrillic-ext-wght-normal.DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/docs/_astro/geist-cyrillic-wght-normal.BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/docs/_astro/geist-vietnamese-wght-normal.6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/docs/_astro/geist-latin-ext-wght-normal.DC-KSUi6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/docs/_astro/geist-latin-wght-normal.BgDaEnEv.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/docs/_astro/geist-mono-cyrillic-ext-wght-normal.X_5orZeX.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/docs/_astro/geist-mono-cyrillic-wght-normal.DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/docs/_astro/geist-mono-symbols2-wght-normal.CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/docs/_astro/geist-mono-vietnamese-wght-normal.DadHysG0.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/docs/_astro/geist-mono-latin-ext-wght-normal.Bwz-egvJ.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/docs/_astro/geist-mono-latin-wght-normal.XN7g48iV.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}html:root{color-scheme:dark;--paper:#0a0a0a;--paper-hex:#0a0a0a;--paper-2:#121212;--paper-light:#f5f5f3;--ink-on-light:#0a0a0a;--oat:#111;--cream:#111;--cream-soft:#0d0d0d;--cream-bright:#0a0a0a;--cream-body:#2e2e2e;--cream-mute:#3a3a3a;--cream-dim:#454545;--maroon-ink:#ededed;--maroon:#fafafa;--maroon-deep:#fff;--berry:#d4d4d4;--card-ink:#0c0c0c;--coral:#8e96ff;--coral-text:#a3aaff;--coral-deep:#6f78f5;--ink-active:var(--coral-text);--peach:#5b5b66;--pink:#f2848c;--palm:#3ecf8e;--palm-ink:#3ecf8e;--gold:#6b6b75;--lavender:#8e96ff;--taupe:#888;--stone:#333;--rule:#ffffff17;--rule-strong:#ffffff29;--muted:#a1a1a1;--text-3:#8a8a8a;--code-bg:#0c0c0c;--code-fg:#ededed;--code-comment:#8a8a8a;--code-keyword:#8e96ff;--code-function:#79c0ff;--code-string:#9ed9b3;--code-number:#f9c78b;--code-type:#79c0ff;--code-decorator:#8e96ff;--code-variable:#ededed;--code-punctuation:#a1a1a1;--sans:"Geist Variable", "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--mono:"Geist Mono Variable", "Geist Mono", ui-monospace, Menlo, monospace;--serif:var(--sans);--display:var(--sans);--track-label:.04em;--edge-light:inset 0 1px 0 #ffffff0f;--shadow-card:none;--shadow-pop:0 16px 40px -16px #000c;--shadow-nav:none;--r-sm:6px;--r-md:8px;--r-lg:12px;--r-xl:12px;--r-2xl:16px;--dot-reveal:none;--focus:2px solid #fff;--focus-offset:2px}::selection{color:#fff;background:#8e96ff59}html{scrollbar-color:#2e2e2e var(--paper)}body{font-family:var(--sans);letter-spacing:-.006em;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:16px;line-height:1.6}:focus-visible{outline:var(--focus);outline-offset:var(--focus-offset)}h1,h2,h3,h4{font-family:var(--sans);color:var(--maroon-ink);text-wrap:balance}.icon-theme h1.hero-h,.hero-h{letter-spacing:-.04em;max-width:13ch;margin:0 0 24px;font-size:clamp(2.75rem,5vw,4.5rem);font-weight:600;line-height:1.02}.icon-theme .sec-head h2,.sec-head h2,h2{letter-spacing:-.035em;max-width:20ch;margin:0;font-size:clamp(2rem,3.2vw,3rem);font-weight:600;line-height:1.06}h3,.icon-theme .cap-card h3,.icon-theme .code-feat h3,.icon-theme .ex-card h3{letter-spacing:-.02em;font-size:1.125rem;font-weight:500;line-height:1.3}.hero-h em,.sec-head h2 em,h2 em,.icon-theme h1.hero-h em,.hl-mark,.icon-theme .vibe h3 em,.icon-theme .cta-end h3 em,.icon-theme .cap-card h3 em,.icon-theme .code-feat h3 em{font-style:normal;font-weight:inherit;color:inherit;background:0 0;padding:0}.hero-sub,.sec-lead,.lede,.icon-theme .hero-sub,.icon-theme .sec-lead{font-family:var(--sans);letter-spacing:-.01em;color:var(--muted);font-size:clamp(1.0625rem,1.2vw,1.25rem);line-height:1.55}.sec-lead em,.hero-sub em,.hero-sub b{color:var(--maroon-ink);font-style:normal;font-weight:500}.sec-lead-link{font-family:var(--sans);letter-spacing:0;font-size:.95rem}.sec-lead-link a,.sec-lead a,a.t-link{color:var(--maroon-ink);text-decoration:none}.sec-lead-link a:hover,.sec-lead a:hover{color:#fff;text-underline-offset:4px;text-decoration:underline}p{color:var(--muted)}.icon-theme .cap-card p,.icon-theme .code-feat p,.icon-theme .ex-card p{color:var(--muted);font-size:.95rem;line-height:1.55}.t-status,.t-eyebrow,.viz-head,.hero-visual .corner,.t-pill,.t-category,.sec-idx,.icon-theme .hero-meta,.icon-theme .cap-card .foot,.icon-theme .ex-thumb .tag,.icon-theme .ex-thumb .file{font-family:var(--mono);letter-spacing:.02em;text-transform:none;color:var(--text-3);font-size:.75rem}.t-status{border:1px solid var(--rule-strong);color:var(--muted);border-radius:var(--r-pill);background:0 0}.t-status .dt,.t-eyebrow .dt{box-shadow:none;background:var(--palm);animation:none}.t-pill{border:1px solid var(--rule);color:var(--muted);border-radius:var(--r-pill);background:#141414}.t-category{color:var(--muted);background:0 0;border:0;padding:0}.btn{border-radius:var(--r-md);font-family:var(--sans);letter-spacing:-.01em;transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);font-weight:500}.btn-coral,.btn-primary{--btn-bg:#fff;--btn-fg:#0a0a0a;--btn-border:#fff;--btn-bg-hover:#e8e8e8;--btn-fg-hover:#0a0a0a;--btn-border-hover:#e8e8e8;box-shadow:none}.btn-outline,.btn-outline-muted,.btn-ghost,.btn-mono{--btn-bg:#0a0a0a;--btn-fg:#ededed;--btn-border:#2e2e2e;--btn-bg-hover:#141414;--btn-fg-hover:#fff;--btn-border-hover:#454545;box-shadow:none}.btn-outline:before{display:none}.btn:hover,.btn:active,.btn.is-hover{box-shadow:none;transform:none}.btn-xl{height:46px;padding:0 22px;font-size:1rem}.btn-lg{height:40px;padding:0 18px;font-size:.9375rem}.stars.btn,.btn .count{font-family:var(--sans)}nav.top,nav.top.no-morph,nav.top.is-floating{background:var(--paper);border-bottom:1px solid var(--rule)}nav.top.is-floating .nav-in{max-width:100%;padding:0 var(--nav-gutter);-webkit-backdrop-filter:none;box-shadow:none;background:0 0;border-color:#0000;border-radius:0;transform:none}.nav-links a{color:var(--muted);font-weight:400}.nav-links a:hover,.nav-links a[aria-current]{color:var(--maroon-ink)}.foot-statement{letter-spacing:-.04em;font-size:clamp(2.25rem,4.6vw,4.25rem);font-weight:600}.foot-statement .hl{color:var(--text-3)}.it-foot{border-top:1px solid var(--rule)}a{color:var(--maroon-ink)}:root a:hover:not(:where(.btn,.btn *,.logo,.stars,.nav-links a,.mobile-list a,[class*=card],[class*=card] *)){color:#fff}:root .prose a:not(:where(.btn,.btn *,[class*=card],[class*=card] *,.anchor,.head-anchor)){color:var(--maroon-ink);text-decoration:underline;text-decoration-color:var(--rule-strong);text-underline-offset:3px;text-decoration-thickness:1px}:root .prose a:not(:where(.btn,.btn *,[class*=card],[class*=card] *,.head-anchor)):hover{color:#fff;text-decoration-color:var(--muted)}:root :is(h1,h2,h3,h4,h5) em:not(._){font-style:normal;font-weight:inherit;color:inherit;background:0 0}:root :is(h1,h2,h3,h4){font-family:var(--sans);color:var(--maroon-ink)}:root .prose{--measure:60ch;font-size:16px;line-height:1.65}:root .prose h1{letter-spacing:-.035em;text-wrap:balance;margin:0 0 14px;font-size:clamp(2rem,3.2vw,2.625rem);font-weight:600;line-height:1.1}:root .prose p.lede{letter-spacing:-.01em;color:var(--muted);max-width:62ch;margin:0 0 20px;font-size:1.125rem;line-height:1.55}:root .prose h2{letter-spacing:-.03em;max-width:none;margin:56px 0 14px;font-size:1.5rem;font-weight:600;line-height:1.25}:root .prose h3{letter-spacing:-.02em;margin:36px 0 10px;font-size:1.1875rem;font-weight:600;line-height:1.3}:root .prose h4{letter-spacing:-.01em;margin:24px 0 8px;font-size:1rem;font-weight:600}:root .prose :is(h2,h3,h4) code{font-size:.85em;font-weight:500}:root .prose :is(p,li){color:#c8c8c8}:root .prose p{text-wrap:pretty;margin:14px 0}:root .prose li{margin:6px 0}:root .prose :is(ul,ol){padding-left:24px}:root .prose :is(strong,b){color:var(--maroon-ink);font-weight:600}:root .prose :is(h1,h2,h3,h4) a.anchor,:root .prose .head-anchor{color:var(--text-3)}:root .prose .head-anchor.copied{color:var(--maroon-ink)}:root .prose .head-anchor.copied:after{color:#0a0a0a;font-family:var(--sans);letter-spacing:0;border-radius:var(--r-sm);background:#fff;font-size:.75rem}:root :is(.breadcrumb,.prose .intro-meta .k,.pager a .dir,.doc-foot,.caps):not(._){font-family:var(--sans);text-transform:none;letter-spacing:0;font-size:.8125rem}:root .prose .intro-meta{gap:24px 32px;margin:24px 0 8px;padding:14px 0 16px}:root .prose .intro-meta .k{color:var(--text-3)}:root .prose .intro-meta .v{font-family:var(--mono);color:var(--maroon-ink);letter-spacing:.01em;font-size:.8125rem;font-weight:400}:root .breadcrumb{color:var(--text-3);flex-wrap:wrap;align-items:center;display:flex}:root .breadcrumb a{color:var(--muted)}:root .breadcrumb a:hover{color:var(--maroon-ink)}:root .breadcrumb .sep{opacity:1;color:#3a3a3a;margin:0 8px}:root .breadcrumb .now{color:var(--maroon-ink)}:root aside.side{scrollbar-width:thin;padding:0 16px 48px 24px}:root .search-wrap{background:var(--paper);margin:0;padding:24px 0 16px}:root .search-btn{border:1px solid var(--rule);border-radius:var(--r-md);height:36px;color:var(--muted);box-shadow:var(--edge-light);background:#0f0f0f;padding:0 10px;font-size:.875rem;font-weight:400}:root .search-btn:hover{border-color:var(--rule-strong);color:var(--maroon-ink);background:#141414}:root .search-btn .ic{opacity:1;color:var(--text-3)}:root .search-btn .kbd{font-family:var(--mono);letter-spacing:.02em;color:var(--text-3);border:1px solid var(--rule);background:0 0;border-radius:4px;padding:1px 5px;font-size:.6875rem}:root .search-btn .kbd .cmd{font-size:.6875rem}:root .side-group{margin-bottom:20px}:root .side-group>.side-h{font-family:var(--sans);letter-spacing:0;color:var(--maroon-ink);margin:0 0 4px;padding:6px 10px;font-size:.8125rem;font-weight:500}:root .side-group>.side-h a{color:inherit;text-decoration:none}:root .side-group>.side-h a:hover{color:#fff}:root .side-group li a{color:var(--muted);border-radius:var(--r-sm);padding:6px 10px;font-size:.875rem;line-height:1.3}:root .side-group li a:hover{color:var(--maroon-ink);background:#ffffff0a}:root .side-group li a.on{color:#fff;background:#ffffff12;font-weight:500}:root .side-group li a.on:before{display:none}:root .side-group li a .num{color:var(--text-3)}:root aside.toc{scrollbar-width:thin;padding:24px 24px 48px 20px}:root aside.toc .toc-h{font-family:var(--sans);letter-spacing:0;color:var(--maroon-ink);border:0;margin:0 0 8px;padding:0 10px;font-size:.8125rem;font-weight:500}:root aside.toc li a{color:var(--muted);border-left:1px solid var(--rule);padding:5px 10px;font-size:.8125rem;line-height:1.4}:root aside.toc li a:hover,:root aside.toc .meta a:hover{color:var(--maroon-ink)}:root aside.toc li a.on{color:#fff;border-left-color:#fff}:root aside.toc li.sub a{padding-left:22px}:root aside.toc li.sub-sub a{padding-left:34px}:root aside.toc .meta{gap:0;margin-top:24px;padding-top:16px}:root aside.toc .meta a,:root aside.toc .meta .edited{color:var(--muted);border:0;padding:5px 10px;font-size:.8125rem}:root aside.toc .meta .edited{color:var(--text-3)}:root .page-head{margin:0 0 24px}:root .ai-split{border-radius:var(--r-md);background:var(--paper);border:1px solid #2e2e2e}:root .ai-primary,:root .ai-toggle{color:var(--maroon-ink);font-size:.8125rem}:root .ai-primary{padding:7px 11px 7px 12px}:root .ai-toggle{border-left-color:#2e2e2e}:root .ai-primary:hover,:root .ai-toggle:hover{color:#fff;background:#141414}:root .ai-primary.copied{color:#fff}:root .ai-panel{border:1px solid var(--rule);border-radius:var(--r-lg);box-shadow:var(--shadow-pop), var(--edge-light);background:#0f0f0f;padding:6px}:root .ai-item{border-radius:var(--r-sm);align-items:center;gap:10px;padding:8px 10px}:root .ai-item:hover,:root .ai-item:focus-visible{background:#ffffff0d}:root .ai-ic{width:18px;height:18px;color:var(--muted);background:0 0;border:0;border-radius:0}:root .ai-ic svg{width:16px;height:16px}:root .ai-item:hover .ai-ic{color:var(--maroon-ink)}:root .ai-t{color:var(--maroon-ink);font-size:.8125rem}:root .ai-d{color:var(--text-3);font-size:.75rem}:root .ai-item.copied .ai-d{color:var(--maroon-ink)}:root .pager{gap:12px;margin-top:64px}:root .pager a{background:var(--cream);border:1px solid var(--rule);border-radius:var(--r-md);box-shadow:var(--edge-light);gap:3px;padding:16px 18px}:root .pager a:before{display:none}:root .pager a:hover{border-color:var(--rule-strong)}:root .pager a .dir{color:var(--text-3)}:root .pager a .ttl{letter-spacing:-.01em;color:var(--maroon-ink);margin-top:1px;font-size:.9375rem;font-weight:500}:root .pager a .ttl:before,:root .pager a.next .ttl:after{color:var(--text-3)}:root .pager a:hover .ttl{color:#fff}:root .doc-foot{color:var(--text-3);margin-top:28px}:root .doc-foot a{color:var(--muted);border:0;padding:0}:root .doc-foot a:hover{color:var(--maroon-ink);text-underline-offset:3px;text-decoration:underline}:root .prose blockquote{border:1px solid var(--rule);border-left:1px solid var(--rule);border-radius:var(--r-md);color:var(--muted);background:#0f0f0f;padding:14px 18px}:root .prose hr{border-color:var(--rule);margin:40px 0}:root .prose :not(pre)>code,:root code:not(pre code){color:#e2e2e2;border:1px solid var(--rule);font-family:var(--mono);background:#161616;border-radius:5px;padding:.1em .35em;font-size:.875em}:root .prose figure figcaption,:root .code-figure .label,:root .code-figure figcaption{text-transform:none;letter-spacing:.01em;color:var(--text-3)}:root .prose table{border:1px solid var(--rule);border-radius:var(--r-md);border-collapse:separate;border-spacing:0;width:fit-content;max-width:100%;margin:24px 0;font-size:.875rem;line-height:1.5;display:block;overflow-x:auto}:root .prose thead{background:#0f0f0f}:root .prose th{font-family:var(--sans);letter-spacing:0;text-transform:none;color:var(--maroon-ink);border-bottom:1px solid var(--rule);white-space:nowrap;background:#0f0f0f;padding:9px 14px;font-size:.8125rem;font-weight:500}:root .prose td{border-bottom:1px solid var(--rule);color:#c8c8c8;vertical-align:top;padding:10px 14px}:root .prose tbody tr:last-child td{border-bottom:0}:root .prose tbody tr:nth-child(2n){background:0 0}:root .prose td code,:root .prose th code{white-space:nowrap}:root .callout{border:1px solid var(--rule);border-radius:var(--r-md);box-shadow:var(--edge-light);color:#c8c8c8;background:#0f0f0f;align-items:flex-start;gap:12px;margin:24px 0;padding:14px 16px 14px 14px;font-size:.9375rem;line-height:1.6;display:flex}:root .callout.info,:root .callout.tip,:root .callout.warn,:root .callout.note{background:#0f0f0f}:root .callout .ico{width:16px;height:16px;color:var(--muted);background:0 0;border:0;border-radius:0;flex:none;margin-top:3px;font-size:0;line-height:0;display:block}:root .callout .ico svg{width:16px;height:16px;display:block}:root .callout.warn .ico{color:var(--maroon-ink)}:root .callout .body{flex:1;min-width:0;line-height:1.6}:root .callout .body>b,:root .callout .body>p:first-child>b:first-child,:root .callout b.callout-label{font-family:var(--sans);letter-spacing:0;text-transform:none;color:var(--maroon-ink);margin:0 0 2px;font-size:.8125rem;font-weight:500;display:block}:root .callout .body p{max-width:none;color:inherit;margin:6px 0}:root .callout .body :is(ul,ol){max-width:none;margin:6px 0}:root .callout .body li{color:inherit}:root .callout .body>:last-child{margin-bottom:0}:root .callout .code-figure,:root .callout pre.astro-code{margin:10px 0 2px}:root .coco-tabs{background:var(--paper);border:1px solid var(--rule);border-radius:var(--r-lg);box-shadow:var(--edge-light);margin:24px 0}:root .coco-tabs-bar{border-bottom:1px solid var(--rule);background:#0f0f0f;gap:2px;padding:0 8px}:root .coco-tabs-label{color:var(--muted);background:0 0;border:0;border-radius:0;margin:0;padding:11px 12px;font-size:.875rem;font-weight:500}:root .coco-tabs-label:hover{color:var(--maroon-ink);background:0 0}:root .coco-tabs-label:after{border-radius:0;height:1px;bottom:-1px;left:12px;right:12px}:root .coco-tabs .coco-tabs-radio:checked~.coco-tabs-bar>.coco-tabs-label{color:var(--muted);background:0 0;border:0;font-weight:500}:root .coco-tabs .coco-tabs-radio:checked~.coco-tabs-bar>.coco-tabs-label:after{background:0 0}:root .coco-tabs .coco-tabs-radio:first-of-type:checked~.coco-tabs-bar>.coco-tabs-label:first-of-type,:root .coco-tabs .coco-tabs-radio:nth-of-type(2):checked~.coco-tabs-bar>.coco-tabs-label:nth-of-type(2),:root .coco-tabs .coco-tabs-radio:nth-of-type(3):checked~.coco-tabs-bar>.coco-tabs-label:nth-of-type(3),:root .coco-tabs .coco-tabs-radio:nth-of-type(4):checked~.coco-tabs-bar>.coco-tabs-label:nth-of-type(4),:root .coco-tabs .coco-tabs-radio:nth-of-type(5):checked~.coco-tabs-bar>.coco-tabs-label:nth-of-type(5){color:#fff}:root .coco-tabs .coco-tabs-radio:first-of-type:checked~.coco-tabs-bar>.coco-tabs-label:first-of-type:after,:root .coco-tabs .coco-tabs-radio:nth-of-type(2):checked~.coco-tabs-bar>.coco-tabs-label:nth-of-type(2):after,:root .coco-tabs .coco-tabs-radio:nth-of-type(3):checked~.coco-tabs-bar>.coco-tabs-label:nth-of-type(3):after,:root .coco-tabs .coco-tabs-radio:nth-of-type(4):checked~.coco-tabs-bar>.coco-tabs-label:nth-of-type(4):after,:root .coco-tabs .coco-tabs-radio:nth-of-type(5):checked~.coco-tabs-bar>.coco-tabs-label:nth-of-type(5):after{background:#fff}:root .coco-tabs-panels{background:var(--paper);padding:20px 24px}:root .coco-tabs-panel>:first-child{margin-top:0}:root .coco-tabs-panel>:last-child{margin-bottom:0}:root :is(.docs-link-card,.example-repo-card,.coco-card){--card-accent:var(--maroon-ink)}:root .coco-grid__group{--group-accent:var(--maroon-ink)}:root :is(.docs-link-card__eyebrow,.example-repo-card__eyebrow,.coco-card__eyebrow,.docs-link-card__kicker):not(._){text-transform:none;letter-spacing:.01em;color:var(--text-3)}:root :is(.docs-link-card__title,.example-repo-card__title) em{color:inherit}:root :is(.docs-link-card,.example-repo-card).is-hover :is(code,.docs-link-card__arrow,.example-repo-card__path-arrow),:root :is(.docs-link-card,.example-repo-card):hover :is(code,.docs-link-card__arrow,.example-repo-card__path-arrow){color:var(--maroon-ink)}:root .example-repo-card__star svg{color:var(--muted)}:root .superseded-banner{border-color:var(--rule-strong);background:#0f0f0f}:root .superseded-banner .sb-text a em{color:inherit}:root .superseded-banner .sb-cta:hover{color:#0a0a0a;background:#fff}:root .mobile-scrim{background:#0009}:root .mobile-sheet{border-left:1px solid var(--rule)}:root .mobile-sheet-head .ttl{font-family:var(--sans);letter-spacing:0;text-transform:none;color:var(--maroon-ink);font-size:.8125rem;font-weight:500}:root .mobile-close:hover{color:var(--maroon-ink);border-color:var(--rule);background:#141414}:root .mobile-search{padding:14px 14px 0}:root .mobile-search .search-wrap{background:0 0;padding:0;position:static}:root .mobile-tabs{border:1px solid var(--rule);border-radius:var(--r-md);background:#0f0f0f;margin:12px 14px 0}:root .mobile-tabs button{color:var(--muted);opacity:1;border-radius:6px;font-weight:500}:root .mobile-tabs button[aria-selected=true]{color:#fff;box-shadow:none;background:#1a1a1a}:root .mobile-group{margin:0 8px 12px}:root .mobile-group .mobile-h{font-family:var(--sans);letter-spacing:0;text-transform:none;color:var(--maroon-ink);margin:12px 10px 4px;font-size:.8125rem;font-weight:500}:root .mobile-group .mobile-h a{color:inherit;text-decoration:none}:root .mobile-list a{color:var(--muted);font-size:.9375rem;font-weight:400}:root .mobile-list a:hover{color:var(--maroon-ink);background:#ffffff0a}:root .mobile-list a[aria-current],:root .mobile-list a.on{color:#fff;background:#ffffff12;font-weight:500}:root .mobile-list a .num{border:1px solid var(--rule);color:var(--text-3);background:0 0}:root .mobile-list a[aria-current] .num{color:#0a0a0a;background:#fff;border-color:#fff}:root .mobile-divider{border-top-color:var(--rule)}:root .t-pill,:root .t-pill.t-pill-lg{font-family:var(--mono);letter-spacing:.01em;color:var(--muted);border:1px solid var(--rule);background:#141414;font-size:.8125rem}:root a.t-pill:hover,:root button.t-pill:hover,:root .t-pill.is-hover{color:var(--maroon-ink);border-color:var(--rule-strong)}:root .t-pill.on{color:#0a0a0a;background:#fff;border-color:#fff}:root .foot-colo .foot-tag{color:var(--text-3)}:root{--docsearch-primary-color:#ededed;--docsearch-soft-primary-color:#ffffff0f;--docsearch-focus-color:#fff;--docsearch-logo-color:var(--muted);--docsearch-hit-highlight-color:#ffffff0f;--docsearch-highlight-color:#fff;--docsearch-dropdown-menu-item-hover-background:#ffffff0a;--docsearch-modal-background:#0f0f0f;--docsearch-hit-background:#141414;--docsearch-searchbox-background:#0a0a0a;--docsearch-searchbox-focus-background:#0a0a0a;--docsearch-footer-background:#0f0f0f;--docsearch-text-color:#ededed;--docsearch-muted-color:#8a8a8a;--docsearch-hit-color:#c8c8c8;--docsearch-container-background:#0009;--docsearch-modal-shadow:0 24px 64px -24px #000000e6, inset 0 1px 0 #ffffff0f;--docsearch-searchbox-shadow:inset 0 0 0 1px #fff;--docsearch-hit-shadow:none;--docsearch-key-gradient:#141414;--docsearch-key-shadow:inset 0 0 0 1px #ffffff1f;--docsearch-footer-shadow:0 -1px 0 #ffffff17}:root .DocSearch-Modal{border:1px solid var(--rule);border-radius:var(--r-lg)}:root .DocSearch-Hit a{border-radius:var(--r-sm)}:root .DocSearch-Hit[aria-selected=true] a{background:#ffffff14}:root .DocSearch-Hit[aria-selected=true] mark{text-decoration:underline;color:#fff!important}:root .DocSearch-Hit-source{color:var(--muted);font-size:.8125rem;font-weight:500}:root .DocSearch-Back-Icon{color:var(--muted)!important}:root .DocSearch-Button-Key,:root .DocSearch-Commands-Key{color:var(--muted);background:#141414;border-radius:4px;box-shadow:inset 0 0 0 1px #ffffff1f}:root .code-figure{background:var(--code-bg);border:1px solid var(--rule);border-radius:var(--r-lg);box-shadow:var(--edge-light);margin:20px 0;position:relative}:root .code-figure pre,:root pre.astro-code{background-color:var(--code-bg)!important}:root pre.astro-code{font-family:var(--mono);border:1px solid var(--rule);border-radius:var(--r-lg);padding:16px 20px;font-size:.8125rem;line-height:1.7}:root .code-figure pre,:root .code-figure pre.astro-code{font-size:.8125rem;line-height:1.7;padding:16px 20px!important}:root .code-figure .bar{border-bottom:1px solid var(--rule);color:var(--muted);letter-spacing:0;border-radius:var(--r-lg) var(--r-lg) 0 0;background:#0f0f0f;padding:8px 10px 8px 16px;font-size:.8125rem}:root .code-figure .bar .file{font-family:var(--mono);color:var(--muted);letter-spacing:.01em;font-size:.8125rem}:root .code-figure:has(.file) .bar .right{flex-direction:row-reverse;flex:1;justify-content:space-between}:root .code-figure:not(:has(.file)) .bar{z-index:2;background:0 0;border:0;padding:0;position:absolute;top:8px;right:8px}:root .code-figure .bar .copy{text-transform:none;letter-spacing:0;font-family:var(--sans);color:var(--muted);border:1px solid var(--rule);border-radius:var(--r-sm);background:#141414;gap:5px;margin:0;padding:4px 8px;font-size:.75rem;font-weight:500}:root .code-figure .bar .copy:hover{color:var(--maroon-ink);border-color:var(--rule-strong);background:#1a1a1a}:root .code-figure .bar .copy.copied,:root .code-figure .bar .copy.copy-fail{color:var(--maroon-ink);border-color:var(--rule-strong)}:root pre.astro-code .line.highlighted,:root pre.astro-code .line[data-highlighted]{width:calc(100% + 40px);box-shadow:inset 2px 0 0 var(--maroon-ink);background:#ffffff0f;margin:0 -20px;padding:0 20px;display:inline-block}:root pre.astro-code .line.diff.add{background:#3ecf8e1a}:root pre.astro-code .line.diff.remove{opacity:.6;background:#ffffff0a}:root pre.astro-code code{counter-reset:none}:root .mermaid-figure{border:1px solid var(--rule);border-radius:var(--r-lg);box-shadow:var(--edge-light);background:#0f0f0f;margin:24px 0;padding:24px}:root .mermaid-figure .mermaid{min-width:0;font-family:var(--sans)}:root .mermaid-figure svg{max-width:100%;height:auto}:root .mermaid-figure .flowchart-link,:root .mermaid-figure .edgePath path,:root .mermaid-figure .messageLine0,:root .mermaid-figure .messageLine1{stroke:#8a8a8a!important;stroke-width:1.25px!important}:root .mermaid-figure marker path,:root .mermaid-figure .arrowheadPath,:root .mermaid-figure .arrowMarkerPath{fill:#8a8a8a!important;stroke:#8a8a8a!important}:root .mermaid-figure .node :is(rect,polygon,circle,path){rx:6px;ry:6px;fill:#141414!important;stroke:#2e2e2e!important}:root .mermaid-figure .cluster rect{rx:8px;ry:8px;fill:#0a0a0a!important;stroke:var(--rule-strong)!important}:root .mermaid-figure .cluster-label .nodeLabel{font-weight:500;color:var(--muted)!important}:root .mermaid-figure :is(.nodeLabel,.edgeLabel,.label,.messageText,.actor,.labelText,.loopText){font-weight:400;color:var(--maroon-ink)!important;fill:var(--maroon-ink)!important;font-family:var(--sans)!important}:root .mermaid-figure .edgeLabel,:root .mermaid-figure .edgeLabel rect,:root .mermaid-figure .labelBkg{fill:#0f0f0f!important;background:#0f0f0f!important}:root .mermaid-figure :is(.actor,.actor-line){fill:#141414!important;stroke:#2e2e2e!important}:root .mermaid-figure :is(rect.actor,line.actor-line,.activation0,.activation1,.activation2){stroke:#2e2e2e!important}:root .mermaid-figure :is(.activation0,.activation1,.activation2){fill:#1a1a1a!important}:root .mermaid-figure :is(.note,.noteText){fill:#141414!important;stroke:#2e2e2e!important}:root .mermaid-figure text.noteText,:root .mermaid-figure .noteText tspan{fill:var(--muted)!important}:root .mermaid-figure .loopLine{stroke-dasharray:3 3;stroke:#454545!important}:root .mermaid-figure .labelBox{fill:#1a1a1a!important;stroke:#2e2e2e!important}:root .mermaid-figure svg *{filter:none!important}:root .mermaid-figure rect.rect{fill:#ffffff0a!important;stroke:var(--rule-strong)!important}:root .mermaid-figure-error{border-color:var(--rule-strong)}@media (width<=720px){:root .mermaid-figure{padding:16px}:root .mermaid-figure .mermaid{min-width:0}}:root .coco-card{--card-accent:var(--maroon-ink);--card-accent-text:var(--muted);background:var(--cream);border:1px solid var(--rule);border-radius:var(--r-lg);box-shadow:var(--edge-light);padding:20px;transform:none}:root .coco-card:hover{background:var(--cream);border-color:var(--rule-strong);box-shadow:var(--edge-light);transform:none}:root .coco-card:focus-visible{outline:var(--focus);outline-offset:var(--focus-offset)}:root .coco-card__ico{width:auto;height:auto;color:var(--muted);background:0 0;border-radius:0;justify-content:start;margin-bottom:14px;transition:none}:root .coco-card:hover .coco-card__ico{color:var(--maroon-ink);background:0 0;transform:none}:root .coco-card__ico svg{width:18px;height:18px}:root .coco-card__title,:root .prose .coco-card__title{letter-spacing:-.01em;margin:0 0 6px;font-size:1rem;font-weight:500}:root .coco-card__body,:root .prose .coco-card__body{max-width:none;margin:0}:root .coco-grid{gap:32px;margin:24px 0 8px}:root .coco-grid__label:before{background:var(--rule-strong);opacity:1}:root .coco-card__ar{color:var(--text-3);transition:none}:root .coco-card:hover .coco-card__ar{color:var(--maroon-ink);transform:none}:root .coco-card__body{font-size:.875rem}:root .coco-card__meta{font-family:var(--sans);text-transform:none;letter-spacing:0;color:var(--text-3);font-size:.8125rem}:root :is(.coco-grid__label,.coco-grid__group-label,.coco-grid__head>span,.coco-grid__head){font-family:var(--sans);text-transform:none;letter-spacing:0;color:var(--maroon-ink);font-size:.8125rem;font-weight:500}:root .coco-grid__head p,:root .coco-grid__blurb{color:var(--muted);font-size:.875rem;font-weight:400}:root body.docs-home .dh-layout{grid-template-columns:var(--side) minmax(0, 1fr)}:root body.docs-home main.dh-main{max-width:1120px;padding:48px clamp(24px,4vw,64px) 96px}:root body.docs-home .dh-hero{grid-template-columns:minmax(0,1fr) minmax(360px,440px);align-items:center;gap:48px;padding:8px 0 24px;display:grid}:root body.docs-home .dh-title{letter-spacing:-.04em;text-wrap:balance;overflow-wrap:normal;max-width:14ch;margin:0 0 20px;font-size:clamp(2.25rem,3.6vw,3rem);font-weight:600;line-height:1.04}:root body.docs-home .dh-lede{letter-spacing:-.01em;color:var(--muted);max-width:46ch;margin:0 0 28px;font-size:clamp(1.0625rem,1.2vw,1.1875rem);line-height:1.55}:root body.docs-home .dh-lede b{color:var(--maroon-ink);font-weight:500}:root body.docs-home .dh-cta{flex-wrap:wrap;align-items:center;gap:10px;display:flex}:root body.docs-home .dh-install{border:1px solid var(--rule);border-radius:var(--r-md);max-width:100%;box-shadow:var(--edge-light);background:#0f0f0f;align-items:center;gap:14px;margin-top:20px;padding:9px 9px 9px 14px;display:inline-flex}:root body.docs-home .dh-install code{font-family:var(--mono);letter-spacing:.01em;color:var(--maroon-ink);white-space:nowrap;background:0 0;border:0;padding:0;font-size:.8125rem}:root body.docs-home .dh-install code .p{color:var(--text-3);margin-right:8px}:root body.docs-home .dh-copy,:root body.docs-home .dh-code .dh-copy{font-family:var(--sans);letter-spacing:0;color:var(--muted);border:1px solid var(--rule);border-radius:var(--r-sm);cursor:pointer;transition:color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);background:#141414;padding:4px 8px;font-size:.75rem;font-weight:500}:root body.docs-home .dh-copy:hover{color:var(--maroon-ink);border-color:var(--rule-strong);background:#1a1a1a}:root body.docs-home .dh-copy:focus-visible{outline:var(--focus);outline-offset:var(--focus-offset)}:root body.docs-home .dh-facts{color:var(--muted);flex-wrap:wrap;gap:6px 20px;margin:24px 0 0;padding:0;font-size:.875rem;list-style:none;display:flex}:root body.docs-home .dh-facts b{color:var(--maroon-ink);font-weight:500}:root body.docs-home .dh-fig{background:var(--paper-2);border:1px solid var(--rule);border-radius:var(--r-lg);box-shadow:var(--edge-light);min-width:0;margin:0;padding:0;overflow:hidden}:root body.docs-home .dh-fig-head{border-bottom:1px solid var(--rule);font-family:var(--mono);letter-spacing:.01em;color:var(--text-3);justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;font-size:.75rem;display:flex}:root body.docs-home .dh-fig-head .live{color:var(--muted);align-items:center;gap:7px;display:inline-flex}:root body.docs-home .dh-fig-head .live i{background:var(--palm);border-radius:50%;width:6px;height:6px}:root body.docs-home .dh-fig-eq{font-family:var(--mono);letter-spacing:.01em;color:var(--maroon-ink);border-bottom:1px solid var(--rule);background:var(--card-ink);white-space:nowrap;padding:14px 16px 12px;font-size:.8125rem;overflow-x:auto}:root body.docs-home .dh-fig-eq .c{color:var(--text-3)}:root body.docs-home .dh-fig-eq .k{color:var(--code-keyword)}:root body.docs-home .dh-fig table{border-collapse:collapse;width:100%;font-family:var(--mono);letter-spacing:.01em;font-size:.8125rem}:root body.docs-home .dh-fig th{text-align:left;color:var(--text-3);border-bottom:1px solid var(--rule);padding:9px 16px;font-size:.75rem;font-weight:400}:root body.docs-home .dh-fig td{border-bottom:1px solid var(--rule);color:var(--muted);white-space:nowrap;padding:10px 16px}:root body.docs-home .dh-fig td:first-child{color:var(--maroon-ink)}:root body.docs-home .dh-fig tr:last-child td{border-bottom:0}:root body.docs-home .dh-fig tr.delta td{color:var(--maroon-ink);background:#8e96ff0f}:root body.docs-home .dh-fig .d{color:var(--coral-text);align-items:center;gap:5px;margin-left:10px;display:inline-flex}:root body.docs-home .dh-fig .d:before{content:"Δ";margin-right:5px;font-weight:500}:root body.docs-home .dh-fig-foot{font-family:var(--mono);letter-spacing:.01em;color:var(--text-3);border-top:1px solid var(--rule);padding:10px 16px;font-size:.75rem}:root body.docs-home .dh-fig-foot b{color:var(--maroon-ink);font-weight:400}:root body.docs-home .dh-sec{border-top:1px solid var(--rule);margin-top:48px;padding:48px 0 0}:root body.docs-home .dh-head{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:16px 48px;margin-bottom:28px;display:grid}:root body.docs-home .dh-head h2{letter-spacing:-.035em;text-wrap:balance;max-width:20ch;margin:0;font-size:clamp(1.5rem,2.2vw,1.875rem);font-weight:600;line-height:1.15}:root body.docs-home .dh-head p{color:var(--muted);text-wrap:pretty;max-width:48ch;margin:0;font-size:.9375rem;line-height:1.55}:root body.docs-home .dh-head .more{color:var(--muted);width:fit-content;margin-top:8px;font-size:.875rem;display:block}:root body.docs-home .dh-head .more:hover{color:var(--maroon-ink);text-underline-offset:3px;text-decoration:underline}:root body.docs-home .dh-list{border-top:1px solid var(--rule);margin:0;padding:0;list-style:none}:root body.docs-home .dh-list li{border-bottom:1px solid var(--rule)}:root body.docs-home .dh-list a{border-radius:var(--r-md);color:var(--maroon-ink);transition:background var(--dur-fast) var(--ease);grid-template-columns:minmax(0,220px) minmax(0,1fr) auto;align-items:baseline;gap:8px 24px;margin:0 -10px;padding:16px 10px;text-decoration:none;display:grid}:root body.docs-home .dh-list a:hover{color:var(--maroon-ink);background:#ffffff0a}:root body.docs-home .dh-list .t{letter-spacing:-.01em;font-size:.9375rem;font-weight:500}:root body.docs-home .dh-list .t:after{content:" →";color:var(--text-3)}:root body.docs-home .dh-list a:hover .t:after{color:var(--maroon-ink)}:root body.docs-home .dh-list .b{color:var(--muted);font-size:.9375rem;line-height:1.5}:root body.docs-home .dh-list .m{font-family:var(--mono);letter-spacing:.01em;color:var(--text-3);white-space:nowrap;font-size:.75rem}:root body.docs-home .dh-list.two{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 40px;display:grid}:root body.docs-home .dh-list.two a{grid-template-columns:minmax(0,1fr);gap:6px;padding:18px 10px}:root body.docs-home .dh-list.two .m{margin-top:2px}:root body.docs-home .dh-model{grid-template-columns:minmax(0,1fr);align-items:start;gap:28px;display:grid}:root body.docs-home .dh-steps{counter-reset:step;border-top:1px solid var(--rule);grid-template-columns:repeat(2,minmax(0,1fr));gap:0 40px;margin:0;padding:0;list-style:none;display:grid}:root body.docs-home .dh-steps li{counter-increment:step;grid-template-columns:24px minmax(0,1fr);gap:12px;padding:18px 0 4px;display:grid}:root body.docs-home .dh-steps li:before{content:counter(step);font-family:var(--mono);color:var(--text-3);font-size:.8125rem;line-height:1.6}:root body.docs-home .dh-steps h3{letter-spacing:-.01em;margin:0 0 4px;font-size:.9375rem;font-weight:500}:root body.docs-home .dh-steps p{color:var(--muted);margin:0;font-size:.9375rem;line-height:1.55}:root body.docs-home .dh-code{background:var(--code-bg);border:1px solid var(--rule);border-radius:var(--r-lg);box-shadow:var(--edge-light);min-width:0;overflow:hidden}:root body.docs-home .dh-code .bar{border-bottom:1px solid var(--rule);background:#0f0f0f;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px 8px 16px;display:flex}:root body.docs-home .dh-code .fname{font-family:var(--mono);letter-spacing:.01em;color:var(--muted);font-size:.8125rem}:root body.docs-home .dh-code pre{margin:0;padding:16px 20px;overflow-x:auto}:root body.docs-home .dh-code code{font-family:var(--mono);color:var(--code-fg);background:0 0;border:0;padding:0;font-size:.8125rem;line-height:1.7}:root body.docs-home .dh-code .cm{color:var(--code-comment)}:root body.docs-home .dh-code .kw{color:var(--code-keyword)}:root body.docs-home .dh-code .str{color:var(--code-string)}:root body.docs-home .dh-code .fn{color:var(--code-function)}:root body.docs-home .dh-code .ty{color:var(--code-type)}:root body.docs-home .dh-code .dec{color:var(--code-decorator)}:root body.docs-home .dh-code .num{color:var(--code-number)}:root body.docs-home .dh-blocks{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;display:grid}:root body.docs-home .dh-blocks h3{border-bottom:1px solid var(--rule);letter-spacing:0;color:var(--maroon-ink);justify-content:space-between;align-items:baseline;margin:0 0 12px;padding-bottom:10px;font-size:.875rem;font-weight:500;display:flex}:root body.docs-home .dh-blocks h3 span{font-family:var(--mono);color:var(--text-3);font-size:.75rem;font-weight:400}:root body.docs-home .dh-chips{flex-wrap:wrap;gap:8px;display:flex}:root body.docs-home .dh-chip{border-radius:var(--r-md);border:1px solid var(--rule);height:30px;color:var(--muted);letter-spacing:-.005em;transition:color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);background:#0f0f0f;align-items:center;padding:0 11px;font-size:.8125rem;font-weight:500;text-decoration:none;display:inline-flex}:root body.docs-home .dh-chip:hover{color:var(--maroon-ink);border-color:var(--rule-strong)}@media (width<=1180px){:root body.docs-home .dh-hero{grid-template-columns:1fr;gap:32px}:root body.docs-home .dh-fig{max-width:560px}}@media (width<=820px){:root body.docs-home .dh-layout{grid-template-columns:1fr}:root body.docs-home main.dh-main{padding:32px 20px 64px}:root body.docs-home .dh-steps{grid-template-columns:1fr}:root body.docs-home .dh-fig{max-width:none}:root body.docs-home .dh-fig td{white-space:normal;padding:10px 12px}:root body.docs-home .dh-fig th{padding:8px 12px}:root body.docs-home .dh-fig .d{margin:2px 0 0;display:block}:root body.docs-home .dh-head{grid-template-columns:1fr;gap:8px;margin-bottom:20px}:root body.docs-home .dh-list a{grid-template-columns:minmax(0,1fr);gap:4px;padding:14px 10px}:root body.docs-home .dh-list.two{grid-template-columns:1fr;gap:0}:root body.docs-home .dh-blocks{grid-template-columns:1fr;gap:24px}:root body.docs-home .dh-install{display:flex}:root body.docs-home .dh-install code{overflow-x:auto}:root body.docs-home .dh-sec{margin-top:36px;padding-top:36px}}:root .nf{min-height:calc(100vh - var(--bar-h))}:root .nf .nf-wrap{max-width:640px;margin:0 auto;padding:clamp(72px,12vh,140px) 24px 96px}:root .nf .nf-code{font-family:var(--mono);letter-spacing:.01em;color:var(--text-3);margin:0 0 16px;font-size:.8125rem}:root .nf .nf-title{letter-spacing:-.04em;color:var(--maroon-ink);text-wrap:balance;margin:0 0 18px;font-size:clamp(2.5rem,5vw,4rem);font-weight:600;line-height:1.02}:root .nf .nf-lead{color:var(--muted);text-wrap:pretty;max-width:44ch;margin:0 0 28px;font-size:clamp(1.0625rem,1.2vw,1.1875rem);line-height:1.55}:root .nf .nf-search{max-width:360px;margin:0 0 16px}:root .nf .nf-search .search-wrap{background:0 0;margin:0;padding:0;position:static}:root .nf .nf-ctas{flex-wrap:wrap;gap:10px;margin:0 0 40px;display:flex}:root .nf .nf-list{border-top:1px solid var(--rule);margin:0;padding:0;list-style:none}:root .nf .nf-list li{border-bottom:1px solid var(--rule)}:root .nf .nf-list a{color:var(--maroon-ink);justify-content:space-between;align-items:baseline;gap:16px;padding:14px 0;font-size:.9375rem;font-weight:500;text-decoration:none;display:flex}:root .nf .nf-list a span{color:var(--muted);text-align:right;font-size:.875rem;font-weight:400}:root .nf .nf-list a:hover{color:#fff}:root .nf .nf-list a:hover span{color:var(--maroon-ink)}
