@import"https://fonts.googleapis.com/css2?family=Geist:wght@100..900&display=swap";@import"https://fonts.googleapis.com/css2?family=Geist+Mono:wght@100..900&display=swap";/*! @docsearch/css 3.9.0 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */:root{--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:rgba(101,108,133,.8);--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 hsla(0,0%,100%,.5),0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px rgba(30,35,90,.4);--docsearch-key-pressed-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 1px 0 rgba(30,35,90,.4);--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 rgba(69,98,155,.12)}html[data-theme=dark]{--docsearch-text-color:#f5f6f7;--docsearch-container-background:rgba(9,10,17,.8);--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 rgba(3,4,9,.3);--docsearch-key-pressed-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 1px 1px 0 #0304094d;--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 rgba(73,76,106,.5),0 -4px 8px 0 rgba(0,0,0,.2);--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}.DocSearch-Button{align-items:center;background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;display:flex;font-weight:500;height:36px;justify-content:space-between;margin:0 0 0 16px;padding:0 8px;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:none}.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border:0;border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 2px;position:relative;top:-1px;transition-duration:.1s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:20px}@media(prefers-reduced-motion){.DocSearch-Button-Key{transition:none}}.DocSearch-Button-Key--pressed{box-shadow:var(--docsearch-key-pressed-shadow);transform:translate3d(0,1px,0)}@media(max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder{display:none}}.DocSearch--active{overflow:hidden!important}.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a{text-decoration:none}.DocSearch-Link{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;font:inherit;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{appearance:none;background:transparent;border:0;color:var(--docsearch-text-color);flex:1;font:inherit;font-size:1.2em;height:100%;outline:none;padding:0 0 0 8px;width:80%}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator{display:none}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{animation:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0;stroke-width:var(--docsearch-icon-stroke-width)}}.DocSearch-Reset{animation:fade-in .1s ease-in forwards;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;padding:2px;right:0;stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Cancel{display:none}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:transparent}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Help{font-size:.9em;margin:0;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{color:var(--docsearch-muted-color);display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative;scroll-margin-top:40px}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--deleting{transition:none}}.DocSearch-Hit--deleting{opacity:0;transition:all .25s linear}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--favoriting{transition:none}}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:all .25s linear;transition-delay:.25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;stroke-width:var(--docsearch-icon-stroke-width);width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color);stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{appearance:none;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:background-color .1s ease-in}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{transition:none}}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:none}}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:none;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;user-select:none;width:100%;z-index:300}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li{align-items:center;display:flex}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{align-items:center;background:var(--docsearch-key-gradient);border:0;border-radius:2px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;width:20px}.DocSearch-VisuallyHiddenForAccessibility{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}@media(max-width:768px){:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Dropdown{max-height:calc(var(--docsearch-vh, 1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Cancel{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:none;overflow:hidden;padding:0;user-select:none;white-space:nowrap}.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.sidebar-nav[data-astro-cid-mx5xs5wp] .sidebar-direct-link[data-astro-cid-mx5xs5wp]{font-size:12px;font-weight:var(--fw-semibold);text-decoration:none}.docs-mobile-tree[data-astro-cid-r7uuxm25] .sidebar-group-label{min-height:44px;font-size:.9375rem}.docs-mobile-tree[data-astro-cid-r7uuxm25] a{display:flex;min-height:44px;align-items:center;padding:10px 12px;border-radius:8px;color:var(--text-muted);font-size:.9375rem;line-height:1.5;overflow-wrap:anywhere}.docs-mobile-tree[data-astro-cid-r7uuxm25] a:hover{color:var(--text);background:var(--surface-hover)}.docs-mobile-tree[data-astro-cid-r7uuxm25] a[aria-current=page]{color:var(--primary-light);background:var(--primary-soft);font-weight:var(--fw-semibold)}@font-face{font-family:Hanken Grotesk Local;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/hanken-grotesk-latin.woff2) format("woff2")}@font-face{font-family:JetBrains Mono Local;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/jetbrains-mono-latin.woff2) format("woff2")}@font-face{font-family:Onest Local;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/onest-variable.ttf) format("truetype")}@font-face{font-family:Syne Local;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/syne-variable.ttf) format("truetype")}:root{color-scheme:dark;--font-title: "Geist", "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-body: "Geist", "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-code: "Geist Mono", "SFMono-Regular", "Cascadia Code", "Roboto Mono", Consolas, monospace;--font-interface: "Hanken Grotesk Local", "Hanken Grotesk", "Geist", "Inter", ui-sans-serif, system-ui, sans-serif;--font-reference-heading: "Onest Local", "Onest", "Geist", "Inter", ui-sans-serif, system-ui, sans-serif;--font-technical: "JetBrains Mono Local", "JetBrains Mono", "Geist Mono", "SFMono-Regular", monospace;--font-accent: "Syne Local", "Syne", var(--font-interface);--fw-regular: 400;--fw-medium: 475;--fw-semibold: 575;--fw-heading-secondary: 625;--fw-bold: 675;--fw-display: 775;--fw-caption: var(--fw-regular);--bg: #0f0f12;--bg-subtle: #131318;--surface: #17171c;--surface-raised: #202027;--surface-hover: #292934;--border: rgba(255, 255, 255, .09);--border-strong: rgba(255, 255, 255, .16);--control-border: var(--border-strong);--text: #f4f4f5;--text-muted: #a1a1aa;--text-soft: #8b8b94;--brand-deep: #db486f;--brand-mid: #e67189;--brand-soft: #ef9dab;--primary: var(--brand-deep);--primary-light: var(--brand-soft);--primary-dark: #a43653;--on-primary: #0f0f12;--primary-hover: var(--brand-mid);--on-primary-hover: var(--on-primary);--primary-soft: rgba(219, 72, 111, .12);--primary-border: rgba(219, 72, 111, .32);--pink-50: #fdf3f5;--pink-100: #fbe6ea;--pink-200: #f6c9d1;--pink-300: var(--brand-soft);--pink-400: var(--brand-mid);--pink-500: var(--brand-deep);--pink-600: #c54164;--pink-700: var(--primary-dark);--pink-800: #832b43;--pink-900: #632032;--pink-950: #421622;--info: #93c5fd;--success: #86efac;--warning: #fb923c;--error: #ff6b6b;--code-bg: #1b1b22;--code-text: #e4e4e7;--radius-xs: 10px;--radius-sm: 14px;--radius-md: 20px;--radius-lg: 28px;--radius-xl: 36px;--max: 1600px;--header-h: 56px;--docs-header-h: 64px;--docs-article-header-h: var(--docs-header-h);--header-tabs-h: 40px;--sidebar-w: 268px;--content-w: 1016px;--toc-w: 268px;--ui-container-wide: 1152px;--ui-container-focused: 1024px;--ui-container-text: 720px;--ui-gutter: clamp(16px, 4vw, 24px);--ui-header-h: 64px;--ui-section-compact: clamp(40px, 6vw, 56px);--ui-section-default: clamp(56px, 8vw, 88px);--ui-section-spacious: clamp(64px, 10vw, 96px);--ui-panel-padding: clamp(24px, 4vw, 32px);--ui-panel-padding-large: clamp(28px, 5vw, 40px);--ui-grid-gap: clamp(20px, 3vw, 24px);--ui-radius-control: 5px;--ui-radius-base: 14px;--ui-radius-code: 18px;--ui-radius-panel: 22px;--ui-transition-duration: .3s;--ui-transition-ease: cubic-bezier(0, 0, .2, 1);--ui-background: oklch(16.8% .004 285);--ui-foreground: oklch(97.3% .003 285);--ui-card: oklch(21.2% .005 285);--ui-secondary: oklch(25.3% .005 285);--ui-muted-foreground: oklch(70.5% .006 285);--ui-primary: var(--brand-deep);--ui-on-primary: var(--on-primary);--ui-brand-mid: var(--brand-mid);--ui-brand-soft: var(--brand-soft);--ui-brand-interactive: var(--brand-mid);--ui-border: oklch(100% 0 0 / .1);--ui-code-bg: oklch(20.1% .004 285);--ui-code-comment: oklch(66% .09 160);--ui-code-keyword: var(--brand-mid);--ui-code-string: oklch(80% .11 90);--ui-code-function: oklch(80% .09 240);--ui-gradient-brand: linear-gradient( 100deg, var(--ui-primary), var(--ui-brand-mid) 55%, var(--ui-brand-soft) );--ui-focus-ring: var(--ui-primary);--ui-technical-surface: color-mix( in oklab, var(--ui-secondary) 25%, transparent );--ui-grid-line: oklch(100% 0 0 / .07);--ui-grid-halo: color-mix(in oklab, var(--ui-primary) 14%, transparent);--ui-figure-outline: color-mix( in oklab, var(--ui-foreground) 40%, transparent );--ui-figure-fill-low: color-mix( in oklab, var(--ui-foreground) 4%, transparent );--ui-figure-fill-mid: color-mix( in oklab, var(--ui-foreground) 10%, transparent );--ui-figure-fill-high: color-mix( in oklab, var(--ui-foreground) 16%, transparent );--ui-shadow-brand: 0 12px 40px -12px color-mix(in oklab, var(--ui-primary) 55%, transparent);--ui-shadow-panel: 0 24px 70px -30px oklch(0% 0 0 / .8);--shadow: 0 24px 90px rgba(0, 0, 0, .45);--z-base: 1;--z-sticky: 20;--z-overlay: 40;--z-modal: 50;--z-tooltip: 60;--z-skip: 100}:root[data-theme=light]{color-scheme:light;--bg: #ffffff;--bg-subtle: #f5f5f7;--surface: #ffffff;--surface-raised: #eaeaee;--surface-hover: #e4e4e9;--border: #c6c6ce;--border-strong: #9a9aa5;--control-border: #767681;--text: #18181b;--text-muted: #41414b;--text-soft: #4e4e59;--primary: #982f4b;--on-primary: #ffffff;--primary-light: var(--pink-800);--primary-hover: var(--pink-800);--on-primary-hover: #ffffff;--primary-soft: #f8e8ed;--primary-border: #b46379;--code-bg: #f1f1f4;--code-text: #18181b;--info: #1e40af;--success: #14532d;--warning: #7c2d12;--error: #991b1b;--shadow: 0 16px 60px rgba(15, 15, 18, .12);--ui-background: var(--bg);--ui-foreground: var(--text);--ui-card: var(--surface);--ui-secondary: var(--surface-raised);--ui-muted-foreground: var(--text-muted);--ui-primary: var(--primary);--ui-brand-mid: var(--brand-mid);--ui-brand-soft: var(--brand-soft);--ui-brand-interactive: var(--primary-light);--ui-border: var(--border);--ui-code-bg: var(--code-bg);--ui-code-comment: var(--text-soft);--ui-code-keyword: var(--primary-light);--ui-code-string: var(--success);--ui-code-function: var(--info);--ui-focus-ring: var(--ui-primary);--ui-grid-line: oklch(20% .01 285 / .06);--ui-shadow-panel: 0 24px 70px -34px oklch(20% .02 285 / .22);--docsearch-primary-color: var(--primary-light);--docsearch-highlight-color: var(--primary-light);--docsearch-text-color: var(--text);--docsearch-muted-color: var(--text-muted);--docsearch-container-background: rgba(15, 15, 18, .32);--docsearch-modal-background: var(--surface);--docsearch-searchbox-background: var(--bg-subtle);--docsearch-searchbox-focus-background: var(--bg);--docsearch-hit-background: transparent;--docsearch-hit-color: var(--text);--docsearch-hit-active-color: var(--primary-light);--docsearch-footer-background: var(--bg-subtle);--docsearch-footer-shadow: inset 0 1px 0 0 var(--border);--docsearch-key-gradient: linear-gradient(180deg, #fafafb 0%, #efeff1 100%);--docsearch-key-shadow: inset 0 -2px 0 0 rgba(15, 15, 18, .12), inset 0 0 1px 1px rgba(15, 15, 18, .04), 0 1px 2px rgba(15, 15, 18, .08);--docsearch-logo-color: var(--text-muted)}.shell{max-width:var(--max);margin:0 auto;padding:0 24px 80px}.shell--docs{max-width:var(--max);margin:0 auto;padding:0}.topbar{position:sticky;top:0;z-index:var(--z-sticky);backdrop-filter:blur(18px);background:#0f0f12c7}:root[data-theme=light] .topbar{background:#ffffffd1}:root[data-theme=light] .article :not(pre)>code{background:#0f0f120f}:root[data-theme=light] .sidebar-group-label:hover{background:#0f0f120a}:root[data-theme=light] .toc-list a:hover{background:#0f0f120a}:root[data-theme=light] .btn{background:#0f0f120a}:root[data-theme=light] .btn:hover{background:#0f0f1212}:root[data-theme=light] .btn-primary{background:var(--primary)}:root[data-theme=light] .btn-primary:hover{background:var(--primary-hover);color:var(--on-primary-hover)}:root[data-theme=light] .doc-pager a{background:#0f0f1205}:root[data-theme=light] .doc-pager a:hover{background:#0f0f120d}.nav{max-width:var(--max);height:var(--header-h);margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}.nav-tabs{max-width:var(--max);height:var(--header-tabs-h);margin:0 auto;padding:0 24px;display:flex;align-items:center;gap:24px;border-bottom:1px solid var(--border);font-size:14px;color:var(--text-muted);overflow-x:auto}.nav-tabs a{color:var(--text-muted);padding:8px 0;border-bottom:2px solid transparent;white-space:nowrap;font-weight:var(--fw-medium)}.nav-tabs a:hover,.nav-tabs a.active{color:var(--text);border-bottom-color:var(--primary)}.nav-tabs a.active{font-weight:var(--fw-semibold)}.nav-tab-badge{display:inline-flex;align-items:center;margin-left:8px;padding:2px 7px;font-size:10px;font-weight:var(--fw-semibold);letter-spacing:.06em;text-transform:uppercase;color:var(--primary-light);background:var(--primary-soft);border:1px solid var(--primary-border);border-radius:999px;line-height:1;vertical-align:middle}.nav-search{flex:1;max-width:384px;margin:0 16px}.brand{display:inline-flex;align-items:center;gap:12px;font-weight:var(--fw-bold);letter-spacing:-.025em}.navlinks{display:flex;gap:16px;color:var(--text-muted);font-size:14px;font-weight:var(--fw-medium)}.navlinks a:hover{color:var(--text)}.topbar[data-variant=marketing]{--header-h: 80px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg) 88%,transparent)}.topbar[data-variant=marketing] .nav{max-width:1200px;padding-inline:var(--ui-gutter);gap:24px}.topbar .marketing-logomark{flex:0 0 auto;min-width:44px;min-height:44px}.marketing-logo{display:block;width:28.8px;height:32px;object-fit:contain}.theme-logo-light,:root[data-theme=light] .theme-logo-dark{display:none}:root[data-theme=light] .theme-logo-light{display:block}.topbar[data-variant=marketing] .nav-cluster{flex-shrink:0;gap:8px;padding-left:20px;border-left:1px solid var(--border)}.topbar[data-variant=marketing] .icon-link{min-width:44px;min-height:44px}@media(max-width:767px){.topbar[data-variant=marketing]{--header-h: 64px}.topbar[data-variant=marketing] .nav{gap:12px}.marketing-logo{width:25.6px;height:28.8px}.topbar[data-variant=marketing] .nav-cluster{padding-left:0;border-left:0}.topbar[data-variant=marketing] .marketing-github{display:none}.topbar[data-variant=marketing] .marketing-mobile-toggle{width:auto;gap:8px;padding-inline:10px;border:1px solid var(--border-strong);font-size:14px;font-weight:var(--fw-medium);color:var(--text)}}.marketing-brand{gap:7px;color:var(--primary-light);font-size:17px;letter-spacing:-.04em}.brand-logo{width:18px;height:22px;object-fit:contain}.brand-symbol{width:44px;height:44px;flex:0 0 44px;justify-content:flex-start;gap:0;border-radius:10px}.brand-symbol .brand-logo{width:20px;height:24px}:root[data-theme=light] .marketing-brand{color:var(--primary-dark)}.topbar[data-variant=docs]{border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg) 88%,transparent)}.topbar[data-variant=docs] .nav{max-width:var(--max);height:var(--docs-article-header-h);padding-inline:24px;gap:8px}.topbar[data-context=docs-landing] .nav{height:var(--docs-header-h)}.topbar[data-context=docs-article]{background:color-mix(in srgb,var(--bg) 94%,transparent)}.docs-brand-group{display:flex;align-items:center;flex-shrink:0;gap:8px}.topbar[data-context=docs-article] .docs-brand{height:36px}.docs-brand{width:32px;height:44px;flex:0 0 32px;border-radius:8px}.docs-brand .brand-logo{width:18px;height:22px}.docs-home-link{position:relative;display:inline-flex;min-height:36px;align-items:center;margin-right:8px;padding:0 10px 0 17px;color:var(--text-muted);border-radius:8px;font-family:var(--font-title);font-size:14px;font-weight:var(--fw-semibold);transition:color .16s ease,background-color .16s ease}.docs-home-link:before{content:"";position:absolute;top:9px;bottom:9px;left:0;width:1px;background:var(--border-strong)}.docs-home-link:hover,.docs-home-link.active{color:var(--text);background:var(--primary-soft)}.docs-product-switcher{display:inline-flex;flex:none;align-items:center;gap:2px;padding:3px;background:var(--bg-subtle);border:1px solid var(--border);border-radius:10px}.docs-product-link{display:inline-flex;min-height:34px;align-items:center;gap:7px;padding:0 11px;color:var(--text-muted);border:1px solid transparent;border-radius:7px;font-size:12px;font-weight:var(--fw-medium);transition:color .16s ease,background-color .16s ease,border-color .16s ease}.docs-product-link small{color:var(--primary-light);font-family:var(--font-code);font-size:8px;font-weight:var(--fw-semibold);letter-spacing:.08em;text-transform:uppercase}.docs-product-link:hover{color:var(--text);background:var(--surface)}.docs-product-link.active,.docs-product-link[aria-current=page]{color:var(--text);background:var(--surface-raised);border-color:var(--border-strong)}.topbar[data-context=docs-article] .docs-product-switcher{padding:0;background:transparent;border-color:transparent}.topbar[data-context=docs-article] .docs-product-link{min-height:32px}.topbar[data-context=docs-article] .docs-product-link.active,.topbar[data-context=docs-article] .docs-product-link[aria-current=page]{background:var(--primary-soft);border-color:transparent}.topbar[data-variant=docs] .nav-search{flex:1 1 300px;min-width:0;max-width:520px;margin:0 0 0 auto}.topbar[data-context=docs-article] .nav-search{max-width:520px}@media(min-width:981px){.topbar[data-variant=docs] .nav{display:grid;grid-template-columns:var(--docs-columns);gap:0}.topbar[data-variant=docs] .docs-brand-group{grid-column:2;grid-row:1}.topbar[data-variant=docs] .nav-search{grid-column:3;grid-row:1;justify-self:end;width:calc(100% - 64px);max-width:520px;margin:0 32px 0 0}.topbar[data-variant=docs] .nav-cluster{grid-column:4;grid-row:1;justify-self:start;padding-inline:32px}}@media(min-width:981px)and (max-width:1279px){.topbar[data-variant=docs] .docs-header-utilities{display:none}.topbar[data-variant=docs] .nav-search{width:calc(100% - 160px);margin-right:128px}.topbar[data-variant=docs] .nav-cluster{grid-column:3;justify-self:end;padding-left:0}}.docs-header-utilities{display:inline-flex;align-items:center}.docs-resource-link{display:inline-flex;min-height:36px;align-items:center;gap:6px;padding-inline:10px;color:var(--text-muted);border-radius:8px;font-size:12px;font-weight:var(--fw-medium);transition:color .16s ease,background-color .16s ease}.docs-resource-link:hover{color:var(--text);background:var(--surface)}.docs-mobile-menu .marketing-mobile-link[aria-current=page]{color:var(--primary-light);background:var(--primary-soft)}.docs-mobile-menu{display:none}@media(max-width:600px){.topbar[data-variant=marketing] .nav,.topbar[data-variant=docs] .nav{padding-inline:16px}}.marketing-navlinks{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:1;margin-left:24px}.marketing-nav-link{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 12px;color:var(--text-muted);border-radius:6px;font-size:15px;font-weight:var(--fw-medium);transition:color .16s ease,background-color .16s ease;cursor:pointer}.marketing-nav-link:hover{color:var(--text);background:color-mix(in srgb,var(--text) 4%,transparent)}.marketing-nav-alpha{color:var(--primary-light);font-family:var(--font-code);font-size:8px;font-weight:var(--fw-semibold);letter-spacing:.08em;text-transform:uppercase}:root[data-theme=light] .marketing-nav-link:hover{background:#0f0f120f}.marketing-dropdown{position:relative}.marketing-dropdown>summary,.marketing-mobile-menu>summary{list-style:none;cursor:pointer}.marketing-dropdown>summary::-webkit-details-marker,.marketing-mobile-menu>summary::-webkit-details-marker{display:none}.marketing-caret{transition:transform .16s ease}.marketing-dropdown[open] .marketing-caret{transform:rotate(180deg)}.marketing-dropdown[open]>.marketing-dropdown-trigger{color:var(--text);background:color-mix(in srgb,var(--text) 4%,transparent)}:root[data-theme=light] .marketing-dropdown[open]>.marketing-dropdown-trigger{background:#0f0f120f}.marketing-dropdown-panel{position:absolute;top:calc(100% + 10px);left:0;z-index:var(--z-overlay);min-width:320px;padding:8px;background:var(--surface-raised);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);display:grid;gap:4px}.marketing-dropdown-panel--compact{min-width:200px}.marketing-dropdown-item{display:grid;gap:4px;padding:10px 12px;color:var(--text);border-radius:10px;transition:background-color .16s ease}.marketing-dropdown-item--compact{padding:8px 12px}.marketing-dropdown-item:hover{background:color-mix(in srgb,var(--text) 4%,transparent)}:root[data-theme=light] .marketing-dropdown-item:hover{background:#0f0f120f}.marketing-dropdown-title{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:var(--fw-semibold);color:var(--text)}.marketing-dropdown-desc{color:var(--text-muted);font-size:13px;line-height:1.45}.marketing-badge{display:inline-flex;align-items:center;padding:2px 7px;font-size:10px;font-weight:var(--fw-semibold);letter-spacing:.06em;text-transform:uppercase;border-radius:999px;line-height:1}.marketing-badge[data-variant=alpha]{color:var(--primary-light);background:var(--primary-soft);border:1px solid var(--primary-border)}.marketing-badge[data-variant=stable]{color:var(--text-muted);background:color-mix(in srgb,var(--text) 6%,transparent);border:1px solid var(--border)}:root[data-theme=light] .marketing-badge[data-variant=stable]{background:#0f0f120d}:root[data-theme=light] .marketing-badge[data-variant=alpha]{color:var(--primary-dark)}.marketing-mobile-menu,.marketing-mobile-panel{display:none}.marketing-mobile-section{display:grid;gap:4px;padding-bottom:12px}.marketing-mobile-section+.marketing-mobile-section{padding-top:12px;border-top:1px solid var(--border)}.marketing-mobile-label{margin:0 0 4px;color:var(--text-soft);font-family:var(--font-code);font-size:11px;font-weight:var(--fw-semibold);letter-spacing:.06em;text-transform:uppercase}.marketing-mobile-link{display:grid;gap:2px;padding:12px 4px;color:var(--text);font-size:15px;font-weight:var(--fw-medium);text-decoration:none}.marketing-mobile-link small{color:var(--text-muted);font-size:13px;font-weight:var(--fw-regular)}.marketing-mobile-link-row{display:inline-flex;align-items:center;gap:8px}.hero{padding:88px 0 58px;text-align:center;max-width:940px;margin:0 auto}.eyebrow{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--primary-border);background:var(--primary-soft);color:var(--primary-light);border-radius:999px;padding:7px 12px;font-size:13px;font-weight:var(--fw-semibold);margin-bottom:26px}h1{margin:0;font-size:clamp(52px,9vw,108px);line-height:.94;letter-spacing:-.044em;font-weight:var(--fw-display)}.hero h1 span{color:var(--primary-light);display:block}.hero p{max-width:700px;margin:24px auto 0;color:var(--text-muted);font-size:clamp(18px,2vw,21px);letter-spacing:0}.section{margin-top:28px;padding:32px;border:1px solid var(--border);border-radius:var(--radius-xl);background:linear-gradient(180deg,#ffffff0e,color-mix(in srgb,var(--text) 2%,transparent)),#17171cbd;box-shadow:0 1px color-mix(in srgb,var(--text) 4%,transparent) inset}.section+.section{margin-top:20px}.section-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:24px}.section-title{margin:0;font-size:clamp(28px,4vw,48px);line-height:1;letter-spacing:-.034em;font-weight:var(--fw-display)}.section-desc{margin:8px 0 0;color:var(--text-muted);max-width:640px}.chip{display:inline-flex;min-height:30px;align-items:center;justify-content:center;border-radius:999px;padding:0 11px;color:var(--primary-light);background:var(--primary-soft);border:1px solid var(--primary-border);font-size:12px;font-weight:var(--fw-semibold);white-space:nowrap}.grid{display:grid;gap:14px}.cols-2{grid-template-columns:repeat(2,1fr)}.cols-3{grid-template-columns:repeat(3,1fr)}.cols-4{grid-template-columns:repeat(4,1fr)}.cols-5{grid-template-columns:repeat(5,1fr)}.card{border:1px solid var(--border);background:#ffffff09;border-radius:var(--radius-lg);padding:22px;min-height:150px}.card h3{margin:0 0 8px;font-size:20px;letter-spacing:-.016em}.card p{margin:0;color:var(--text-muted);font-size:14px}.token-card{min-height:148px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;position:relative}.token-swatch{height:72px;border-radius:18px;border:1px solid rgba(255,255,255,.16);margin-bottom:14px;box-shadow:0 18px 40px #0003}.token-name{font-weight:var(--fw-semibold);letter-spacing:-.02em}.token-value{color:var(--text-soft);font-family:var(--font-code);font-size:12px;margin-top:2px}.ruler{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;background:#0b0b0f}.ruler-track{display:grid;grid-template-columns:repeat(11,1fr);min-height:128px}.ruler-step{position:relative;padding:14px 10px;display:flex;align-items:end;border-right:1px solid rgba(0,0,0,.12)}.ruler-step:last-child{border-right:0}.ruler-step span{display:block;font-family:var(--font-code);font-size:11px;line-height:1.35;color:#0f0f12c7;font-weight:var(--fw-semibold);text-shadow:0 1px rgba(255,255,255,.18)}.ruler-step.dark-label span{color:#ffffffd1;text-shadow:none}.ruler-caption{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--border);padding:16px 18px;color:var(--text-muted);font-size:14px}.usage-row{display:grid;grid-template-columns:210px 1fr 1fr;gap:14px;align-items:stretch;padding:14px;border:1px solid var(--border);border-radius:20px;background:#ffffff06}.usage-row+.usage-row{margin-top:10px}.usage-label{display:flex;flex-direction:column;gap:5px;font-weight:var(--fw-semibold)}.usage-label code{color:var(--primary-light);font-family:var(--font-code);font-size:12px;font-weight:var(--fw-regular)}.usage-good,.usage-bad{color:var(--text-muted);font-size:14px}.usage-good strong{color:var(--success)}.usage-bad strong{color:var(--error)}.btn-row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.btn{display:inline-flex;min-height:42px;align-items:center;justify-content:center;gap:8px;padding:0 18px;border-radius:999px;border:1px solid var(--border-strong);background:color-mix(in srgb,var(--text) 4%,transparent);color:var(--text);font-size:14px;font-weight:var(--fw-medium)}.btn-primary:hover{background:var(--primary-light);border-color:var(--primary-light)}.btn-secondary{background:var(--surface-raised)}.btn-ghost{background:transparent}.btn-danger{background:color-mix(in srgb,var(--error) 10%,transparent);border-color:color-mix(in srgb,var(--error) 28%,transparent);color:var(--error)}.badge-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.badge{display:inline-flex;min-height:28px;align-items:center;border:1px solid var(--border);background:#ffffff09;border-radius:999px;padding:0 10px;font-size:12px;font-weight:var(--fw-semibold);color:var(--text-muted)}.badge-pink{color:var(--primary-light);background:var(--primary-soft);border-color:var(--primary-border)}.badge-success{color:var(--success);background:color-mix(in srgb,var(--success) 10%,transparent);border-color:color-mix(in srgb,var(--success) 25%,transparent)}.badge-warning{color:var(--warning);background:color-mix(in srgb,var(--warning) 10%,transparent);border-color:color-mix(in srgb,var(--warning) 28%,transparent)}.badge-error{color:var(--error);background:color-mix(in srgb,var(--error) 10%,transparent);border-color:color-mix(in srgb,var(--error) 25%,transparent)}.field{display:grid;gap:8px}.field label{font-size:13px;color:var(--text-muted);font-weight:var(--fw-medium)}input,select,textarea{width:100%;border:1px solid var(--border);background:#111116;color:var(--text);border-radius:14px;padding:13px 14px;font:inherit;outline:none}textarea{min-height:116px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-soft)}.alert{border:1px solid var(--border);border-radius:18px;padding:16px;display:flex;align-items:flex-start;gap:12px;background:color-mix(in srgb,var(--text) 3%,transparent)}.alert .symbol{width:28px;height:28px;border-radius:10px;display:grid;place-items:center;font-weight:var(--fw-display);font-size:14px;line-height:1;flex:none;margin-top:2px}.alert-body{flex:1;min-width:0}.alert h3{margin:0 0 6px;font-size:15px;font-weight:var(--fw-semibold);letter-spacing:-.01em;color:var(--text)}.alert-body>*{margin:0}.alert-body>*+*{margin-top:10px}.alert-body p,.alert-body li{color:var(--text);font-size:1.0625rem;line-height:1.6}.alert-body ul,.alert-body ol{padding-left:20px}.alert-body li+li{margin-top:4px}.alert-body pre,.alert-body :where(.code,[class*=expressive-code]){margin:0;font-size:13px}.alert-body a{color:var(--primary-light);border-bottom:1px solid var(--primary-border)}.alert-body a:hover{color:var(--text);border-bottom-color:var(--primary)}.alert-info .symbol{background:color-mix(in srgb,var(--info) 12%,transparent);color:var(--info)}.alert-success .symbol{background:color-mix(in srgb,var(--success) 12%,transparent);color:var(--success)}.alert-warning .symbol{background:color-mix(in srgb,var(--warning) 14%,transparent);color:var(--warning)}.alert-error .symbol{background:color-mix(in srgb,var(--error) 12%,transparent);color:var(--error)}.aside{border:1px solid var(--border);border-radius:18px;padding:16px;display:flex;align-items:flex-start;gap:12px;background:color-mix(in srgb,var(--text) 3%,transparent)}.aside .aside-symbol{width:28px;height:28px;border-radius:10px;display:grid;place-items:center;font-weight:var(--fw-display);font-size:14px;line-height:1;flex:none;margin-top:2px}.aside-body{flex:1;min-width:0}.aside-title{display:block;margin:0 0 6px;font-size:15px;font-weight:var(--fw-semibold);letter-spacing:-.01em;color:var(--text);font-family:var(--font-title)}.aside-body>*{margin:0}.aside-body>*+*{margin-top:10px}.aside-body p,.aside-body li{color:var(--text);font-size:1.0625rem;line-height:1.6}.aside-body ul,.aside-body ol{padding-left:20px}.aside-body li+li{margin-top:4px}.aside-body pre,.aside-body :where(.code,[class*=expressive-code]){margin:0;font-size:13px}.aside-body a{color:var(--primary-light);border-bottom:1px solid var(--primary-border)}.aside-body a:hover{color:var(--text);border-bottom-color:var(--primary)}.aside-info{border-left:3px solid var(--info)}.aside-success{border-left:3px solid var(--success)}.aside-warning{border-left:3px solid var(--warning)}.aside-error{border-left:3px solid var(--error)}.aside-info .aside-symbol{background:color-mix(in srgb,var(--info) 12%,transparent);color:var(--info)}.aside-success .aside-symbol{background:color-mix(in srgb,var(--success) 12%,transparent);color:var(--success)}.aside-warning .aside-symbol{background:color-mix(in srgb,var(--warning) 14%,transparent);color:var(--warning)}.aside-error .aside-symbol{background:color-mix(in srgb,var(--error) 12%,transparent);color:var(--error)}.code{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--code-bg);padding:20px;overflow:auto;font-family:var(--font-code);color:var(--code-text);font-size:13px;line-height:1.65}.tok-pink{color:var(--primary-light)}.tok-green{color:var(--success)}.tok-blue{color:var(--info)}.tok-yellow{color:var(--warning)}.tok-gray{color:var(--text-soft)}.mini-nav{height:62px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border:1px solid var(--border);border-radius:20px;background:color-mix(in srgb,var(--text) 3%,transparent)}.tabs{display:inline-flex;padding:4px;border:1px solid var(--border);border-radius:999px;background:color-mix(in srgb,var(--text) 3%,transparent);gap:3px}.tab{border-radius:999px;color:var(--text-muted);font-size:13px;font-weight:var(--fw-semibold);padding:8px 13px}.tab.active{color:var(--text);background:var(--primary-soft);box-shadow:0 0 0 1px var(--primary-border) inset}.pricing-card{border:1px solid var(--border);background:#ffffff09;border-radius:var(--radius-lg);padding:24px;min-height:330px;display:flex;flex-direction:column}.pricing-card.featured{border-color:var(--primary-border);box-shadow:0 0 0 1px #db486f2e,0 28px 80px #db486f1f;background:radial-gradient(circle at 50% 0%,rgba(219,72,111,.16),transparent 18rem),color-mix(in srgb,var(--text) 4%,transparent)}.price{margin:18px 0 16px;font-size:42px;line-height:1;font-weight:var(--fw-display);letter-spacing:-.035em}.price span{font-size:14px;color:var(--text-soft);font-weight:var(--fw-medium);letter-spacing:0}.features{list-style:none;padding:0;margin:18px 0 0}.features li{color:var(--text-muted);margin:10px 0;padding-left:22px;position:relative;font-size:14px}.features li:before{content:"✓";color:var(--success);position:absolute;left:0;font-weight:var(--fw-display)}body.docs-page{--docs-columns: minmax(0, 1fr) var(--sidebar-w) minmax(0, var(--content-w)) var(--toc-w) minmax(0, 1fr)}.doc-layout{display:grid;grid-template-columns:var(--docs-columns);grid-template-areas:"edge-l sidebar content toc edge-r";min-height:calc(100vh - var(--docs-header-h));max-width:var(--max);margin:0 auto;padding:0 24px;gap:0;align-items:start}.doc-layout>.sidebar{grid-area:sidebar}.doc-layout>.article{grid-area:content;min-width:0}.doc-layout>.toc{grid-area:toc}@media(max-width:1279px){body.docs-page{--docs-columns: minmax(0, 1fr) var(--sidebar-w) minmax(0, var(--content-w)) minmax(0, 1fr)}.doc-layout{grid-template-areas:"edge-l sidebar content edge-r"}.doc-layout>.toc{display:none}}@media(max-width:980px){.doc-layout{grid-template-columns:1fr;grid-template-areas:"content";padding-inline:var(--ui-gutter)}.doc-layout>.sidebar{display:none}}.sidebar{position:sticky;top:var(--docs-header-h);align-self:start;height:calc(100vh - var(--docs-header-h));overflow-y:auto;padding:24px 24px 24px 12px;display:flex;flex-direction:column;border:0;border-right:1px solid var(--border);background:transparent;border-radius:0}.sidebar-banner{flex:none;padding:0 4px 16px}.sidebar-viewport{flex:1;min-height:0;overflow-y:auto;padding:0 4px}.sidebar-footer{flex:none;padding:16px 4px 0;border-top:1px solid var(--border);margin-top:16px}.sidebar a{display:flex;align-items:center;border-radius:8px;padding:8px 10px;min-height:36px;color:var(--text-muted);font-size:.9375rem;font-weight:var(--fw-medium);line-height:1.45;transition:color .16s ease-out,background-color .16s ease-out}.sidebar a:hover{color:var(--text);background:color-mix(in srgb,var(--text) 4%,transparent)}.sidebar a.active{color:var(--primary-light);background:var(--primary-soft);font-weight:var(--fw-semibold)}.sidebar a.active:hover{background:var(--primary-soft)}.sidebar a:focus-visible{border-radius:8px}@media(max-width:767px){.sidebar a{padding:12px;min-height:44px}}.article{width:100%;max-width:var(--content-w);margin:0 auto;padding:32px 32px 24px;font-size:1.0625rem;line-height:1.7;background:transparent;border:0;border-radius:0}@media(max-width:980px){.article{padding:24px 0}.article .article-meta-row{margin-bottom:28px}}@media(min-width:1280px){.article{padding-top:56px}}.article h1{font-size:34px;line-height:40px;letter-spacing:0;font-weight:var(--fw-bold);margin:0 0 24px}.article h2{font-size:24px;line-height:32px;letter-spacing:-.02em;font-weight:var(--fw-bold);margin:48px 0 24px}.article h3{font-size:20px;line-height:28px;letter-spacing:-.016em;font-weight:var(--fw-heading-secondary);margin:32px 0 12px}.article h4{font-size:18px;line-height:26px;letter-spacing:-.012em;font-weight:var(--fw-heading-secondary);margin:24px 0 8px}.article p{color:var(--text);margin:0 0 16px;max-width:72ch}.article>ul,.article>ol{color:var(--text);padding-left:24px;margin:0 0 16px;max-width:72ch}.article>ul>li,.article>ol>li{margin:6px 0}.article a{color:var(--primary-light);border-bottom:1px solid var(--primary-border)}.article a:hover{color:var(--text);border-bottom-color:var(--primary)}.article :not(pre)>code{overflow-wrap:anywhere;font-family:var(--font-code);font-size:.9em;font-weight:var(--fw-medium);padding:.15em .4em;border-radius:6px;background:color-mix(in srgb,var(--text) 6%,transparent);color:var(--code-text)}.article>pre,.article>[class*=expressive-code],.article>.code,.article>.aside,.article>.alert,.article>table,.article>blockquote,.article>figure,.article>hr{margin:0 0 24px}.article>blockquote{border-left:2px solid var(--border-strong);padding:4px 0 4px 16px;color:var(--text-muted);font-style:italic}.article>hr{border:0;border-top:1px solid var(--border);margin:32px 0}.article>figure{margin-top:8px}.expressive-code .frame.is-terminal{--button-spacing: .4rem !important}.expressive-code .frame.is-terminal .header{display:none!important}.expressive-code .frame.is-terminal pre{border-top:var(--ec-brdWd) solid var(--ec-brdCol)!important;border-top-left-radius:calc(var(--ec-brdRad) + var(--ec-brdWd))!important;border-top-right-radius:calc(var(--ec-brdRad) + var(--ec-brdWd))!important}.article-header{margin:0}.article>.article-header+*{margin-top:0}.article-meta-row{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 0 48px}.breadcrumb{margin:0;flex:1;min-width:0}.breadcrumb-list{display:flex;flex-wrap:wrap;align-items:baseline;margin:0;padding:0;list-style:none;font-size:.9375rem;line-height:1.5;color:var(--text-muted)}.breadcrumb-item{display:inline-flex;align-items:baseline}.breadcrumb-link{color:var(--text-muted);text-decoration:none;transition:color .16s ease}.breadcrumb-link:hover{color:var(--text)}.breadcrumb-current{color:var(--text);font-weight:var(--fw-medium)}.breadcrumb-sep{display:inline-block;padding:0 8px;color:var(--text-soft);font-weight:var(--fw-regular);user-select:none}.article-title{margin:0 0 16px;display:inline-flex;align-items:center;flex-wrap:wrap;gap:12px}.article-title-badge{display:inline-flex;align-items:center;padding:4px 10px;font-size:11px;font-family:var(--font-body);font-weight:var(--fw-semibold);letter-spacing:.06em;text-transform:uppercase;border-radius:999px;line-height:1;vertical-align:middle;align-self:center}.article-title-badge[data-variant=alpha]{color:var(--primary-light);background:var(--primary-soft);border:1px solid var(--primary-border)}.article-title-badge[data-variant=beta]{color:var(--info);background:color-mix(in srgb,var(--info) 12%,transparent);border:1px solid color-mix(in srgb,var(--info) 32%,transparent)}.article-title-badge[data-variant=new]{color:var(--success);background:color-mix(in srgb,var(--success) 12%,transparent);border:1px solid color-mix(in srgb,var(--success) 32%,transparent)}.article-title-badge[data-variant=deprecated]{color:var(--text-soft);background:color-mix(in srgb,var(--text) 4%,transparent);border:1px solid var(--border)}:root[data-theme=light] .article-title-badge[data-variant=deprecated]{background:#0f0f120d}.article-lede{margin:12px 0 0;font-size:1.1875rem;line-height:1.5;color:var(--text-muted);max-width:none}.page-actions{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;flex-wrap:wrap}.page-action{display:inline-flex;align-items:center;gap:6px;height:31px;padding:0 11px;border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--text-muted);font-size:13px;font-weight:var(--fw-medium);font-family:var(--font-body);text-decoration:none;cursor:pointer;transition:color .16s ease,background-color .16s ease,border-color .16s ease;user-select:none}.page-action svg{width:14px;height:14px}.page-action:hover{color:var(--text);background:color-mix(in srgb,var(--text) 4%,transparent);border-color:var(--border-strong)}:root[data-theme=light] .page-action:hover{background:#0f0f120d}.page-action:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.page-action-icon{flex:none;color:currentColor}.page-action-caret{flex:none;color:var(--text-soft);transition:transform .16s ease}.page-action-menu{position:relative}.page-action-menu>summary{list-style:none;cursor:pointer}.page-action-menu>summary::-webkit-details-marker{display:none}.page-action-menu[open]>summary{color:var(--text);background:color-mix(in srgb,var(--text) 4%,transparent);border-color:var(--border-strong)}:root[data-theme=light] .page-action-menu[open]>summary{background:#0f0f120d}.page-action-menu[open] .page-action-caret{transform:rotate(180deg)}.page-action-menu-panel{position:absolute;top:calc(100% + 6px);right:0;z-index:var(--z-overlay);min-width:220px;padding:6px;background:var(--surface-raised);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);display:grid;gap:2px}.page-action-menu-item{display:block;padding:8px 10px;font-size:13px;color:var(--text);border-radius:8px;text-decoration:none;transition:background-color .16s ease}.page-action-menu-item:hover{background:color-mix(in srgb,var(--text) 5%,transparent)}:root[data-theme=light] .page-action-menu-item:hover{background:#0f0f120f}.doc-last-updated{margin:40px 0 16px;padding:12px 0 0;border-top:1px solid var(--border);font-size:13px;color:var(--text-soft)}.doc-last-updated-label{margin-right:6px;font-weight:var(--fw-medium);color:var(--text-muted)}@media(max-width:767px){.article-meta-row{flex-direction:column;align-items:stretch;gap:16px}.page-actions{align-self:flex-start}.page-action{min-height:44px;padding:0 14px}}.toc{position:sticky;top:var(--docs-header-h);align-self:start;height:calc(100vh - var(--docs-header-h));max-height:calc(100vh - var(--docs-header-h));overflow-y:auto;padding:48px 16px 24px 24px;font-size:14px;line-height:20px;border-left:1px solid var(--border)}.toc-label{font-size:12px;font-weight:var(--fw-semibold);color:var(--text-soft);text-transform:uppercase;letter-spacing:.06em;margin:0 0 12px;padding:0 10px}.toc-list{list-style:none;padding:0;margin:0}.toc-list a{display:block;padding:6px 10px;color:var(--text-muted);border-left:2px solid transparent;margin-left:-2px;overflow-wrap:anywhere;transition:color .16s ease-out,border-left-color .16s ease-out}.toc-list a:hover{color:var(--text)}.toc-list a.active{color:var(--primary-light);border-left-color:var(--primary);font-weight:var(--fw-semibold)}.toc-list .depth-3{padding-left:22px}.toc-list .depth-4{padding-left:34px}.toc-list a:focus-visible{border-radius:6px}.legacy-anchor{display:block;height:0;scroll-margin-top:calc(var(--docs-header-h, 64px) + 24px)}.doc-edit-link{margin-top:32px;font-size:.875rem}.framework-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:16px;margin-block:24px}.framework-choices>a{display:flex;flex-direction:column;gap:12px;min-width:0;padding:20px;border:1px solid var(--border-strong);border-radius:10px;color:var(--text);background:var(--surface);text-decoration:none}.framework-choices>a:hover{border-color:var(--text-muted);background:var(--surface-raised)}.framework-choices>a>span{font-size:.9375rem;line-height:1.6;color:var(--text-muted)}.framework-choices>a>.framework-choices-action{margin-top:auto;color:var(--text);font-weight:var(--fw-semibold)}.framework-choices>a>.framework-choice-heading{display:flex;align-items:center;gap:12px;color:var(--text);font-size:1rem}.framework-choice-icon{display:block;flex:0 0 32px;width:32px;height:32px}.framework-choice-icon-nestjs{background:currentColor;-webkit-mask:url(/img/nestjs-logo.png) center / contain no-repeat;mask:url(/img/nestjs-logo.png) center / contain no-repeat}.doc-table-scroll{max-width:100%;overflow-x:auto;margin-block:24px;border-radius:10px}.doc-table-scroll:focus-visible{outline:2px solid var(--primary-light);outline-offset:4px}table{width:100%;border-collapse:collapse;border:0;box-shadow:0 0 0 1px var(--border) inset;border-radius:10px;overflow:hidden}th,td{padding:14px 16px;border-bottom:1px solid var(--border);text-align:left;color:var(--text);font-size:1.0625rem}th{background:color-mix(in srgb,var(--text) 4%,transparent);color:var(--text);font-weight:var(--fw-semibold)}tbody tr:nth-child(2n) td{background:#ffffff06}:root[data-theme=light] tbody tr:nth-child(2n) td{background:#0f0f1209}tr:last-child td{border-bottom:0}.type-specimen{display:grid;gap:22px}.specimen-line{padding-bottom:22px;border-bottom:1px solid var(--border)}.specimen-line:last-child{border-bottom:0;padding-bottom:0}.specimen-label{color:var(--text-soft);font-family:var(--font-code);font-size:12px;margin-bottom:6px}.display-sample{font-family:var(--font-title);font-size:clamp(40px,7vw,86px);letter-spacing:-.044em;line-height:.92;font-weight:var(--fw-display)}.heading-sample{font-family:var(--font-title);font-size:clamp(28px,5vw,48px);letter-spacing:-.034em;line-height:1;font-weight:var(--fw-display)}.body-sample{max-width:760px;color:var(--text-muted);font-size:18px;line-height:1.68}.mono-sample{font-family:var(--font-code);color:var(--code-text);background:var(--code-bg);border:1px solid var(--border);border-radius:18px;padding:16px;overflow:auto}.scale{display:grid;grid-template-columns:90px 1fr;gap:12px;align-items:center;margin:12px 0}.scale-label{color:var(--text-soft);font-family:var(--font-code);font-size:12px}.scale-bar{height:12px;border-radius:999px;background:color-mix(in srgb,var(--text) 6%,transparent);overflow:hidden;border:1px solid var(--border)}.scale-fill{height:100%;border-radius:999px;background:var(--primary)}@media(max-width:980px){.docs-product-switcher,.docs-header-utilities{display:none}.docs-mobile-menu{display:inline-flex}.topbar[data-variant=docs] .docs-mobile-menu[open] .marketing-mobile-panel{display:block;position:fixed;top:var(--docs-header-h);right:0;left:0;z-index:var(--z-overlay);max-height:calc(100dvh - var(--docs-header-h));overflow:auto;padding:16px 20px 24px;background:var(--bg);border-bottom:1px solid var(--border);box-shadow:none}.topbar[data-context=docs-article] .docs-mobile-menu[open] .marketing-mobile-panel{top:var(--docs-article-header-h);max-height:calc(100dvh - var(--docs-article-header-h))}.topbar[data-variant=docs] .icon-link{width:44px;height:44px}.topbar[data-variant=docs] .suites-docsearch .DocSearch-Button{height:44px}.docs-mobile-menu .marketing-mobile-link{min-height:44px;padding:12px;border-radius:10px}.docs-mobile-menu .marketing-mobile-link:hover{background:var(--surface)}.navlinks{display:none}.cols-5,.cols-4,.cols-3,.cols-2{grid-template-columns:1fr}.section-head{align-items:start;flex-direction:column}.usage-row{grid-template-columns:1fr}.ruler-track{grid-template-columns:repeat(3,1fr)}}@media(max-width:600px){.topbar[data-variant=docs] .nav-search{flex:0 0 auto;margin-left:auto}.topbar[data-variant=docs] .nav-cluster{gap:0}.topbar[data-variant=docs] .suites-docsearch .DocSearch-Button{width:44px;height:44px;padding:0;justify-content:center}.topbar[data-variant=docs] .DocSearch-Button-Placeholder,.topbar[data-variant=docs] .DocSearch-Button-Keys{display:none}}@media(max-width:420px){.docs-github-link{display:none}}html.docs-menu-open{overflow:hidden}.skip-link{position:absolute;top:-100px;left:16px;z-index:var(--z-skip);padding:10px 16px;background:var(--surface-raised);color:var(--text);border:1px solid var(--border-strong);border-radius:10px;font-size:14px;font-weight:var(--fw-semibold);transition:top .15s ease-out}.skip-link:focus,.skip-link:focus-visible{top:16px;outline:2px solid var(--primary);outline-offset:2px}.btn,.tab,[role=button]{cursor:pointer}.btn:disabled,.tab:disabled{cursor:not-allowed}.icon-link{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;color:var(--text-muted);border-radius:8px}.icon-link:hover{color:var(--text);background:color-mix(in srgb,var(--text) 4%,transparent)}.icon-link svg{width:18px;height:18px}:root[data-theme=light] .icon-link:hover{background:#0f0f120f}.theme-toggle{background:transparent;border:0;cursor:pointer;padding:0}.theme-toggle .theme-toggle-sun,.theme-toggle .theme-toggle-moon{display:none}:root[data-theme=dark] .theme-toggle .theme-toggle-sun{display:inline-block}:root[data-theme=light] .theme-toggle .theme-toggle-moon{display:inline-block}.brand-divider{color:var(--text-soft);margin:0 4px}.brand-product{font-family:var(--font-code);font-size:15px;color:var(--text-muted);font-weight:var(--fw-medium)}.nav-action{font-size:14px;font-weight:var(--fw-medium);color:var(--text-muted);padding:8px 4px}.nav-action:hover{color:var(--text)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.card-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:var(--primary-soft);color:var(--primary-light);margin-bottom:12px}.card-icon svg{width:20px;height:20px}.btn-sm{min-height:32px;padding:0 12px;font-size:13px;font-weight:var(--fw-medium)}.nav-cluster{display:inline-flex;align-items:center;gap:8px}.sidebar-group{margin-bottom:16px}.sidebar-group:last-child{margin-bottom:0}.sidebar-group[open]{margin-bottom:20px}.sidebar-group-label{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px 6px;font-size:12px;font-weight:var(--fw-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;cursor:pointer;user-select:none;border-radius:8px;list-style:none}.sidebar-group-label::-webkit-details-marker{display:none}.sidebar-group-label::marker{content:""}.sidebar-group-label:hover{color:var(--text);background:#ffffff06}.sidebar-group-label:focus-visible{border-radius:8px}.sidebar-group-caret{color:var(--text-soft);transform:rotate(-90deg);transition:transform .18s ease-out,color .18s ease-out;flex:none}.sidebar-group[open]>.sidebar-group-label .sidebar-group-caret{transform:rotate(0);color:var(--text-muted)}.sidebar-group-items{display:flex;flex-direction:column;gap:2px;padding-top:4px;padding-left:12px;margin-left:14px;border-left:1px solid var(--border);animation:sidebar-group-fade-in .18s ease-out}.sidebar-group[open]>.sidebar-group-items{border-left-color:var(--border-strong)}@keyframes sidebar-group-fade-in{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.sidebar-group-caret{transition:none}.sidebar-group-items{animation:none}}.doc-pager{display:flex;justify-content:space-between;align-items:stretch;gap:16px;margin-top:48px;padding-top:24px;border-top:1px solid var(--border)}.doc-pager a{flex:1;display:flex;flex-direction:column;gap:4px;padding:14px 18px;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);background:color-mix(in srgb,var(--text) 2%,transparent);border-bottom:1px solid var(--border);transition:border-color .2s ease-out,color .2s ease-out,background .2s ease-out}.doc-pager a:hover{color:var(--text);border-color:var(--border-strong);background:color-mix(in srgb,var(--text) 4%,transparent)}.doc-pager a>span:first-child{font-size:12px;font-weight:var(--fw-semibold);color:var(--text-soft);text-transform:uppercase;letter-spacing:.06em}.doc-pager a>span:last-child{font-size:15px;font-weight:var(--fw-bold);color:var(--text)}@media(max-width:640px){.doc-pager{flex-direction:column}}.site-footer{margin-top:0;border-top:1px solid var(--border);background:radial-gradient(circle at 8% 0%,rgba(219,72,111,.06),transparent 34rem),var(--bg-subtle)}:root[data-theme=light] .site-footer{background:radial-gradient(circle at 8% 0%,rgba(219,72,111,.04),transparent 34rem),var(--bg-subtle)}:root body.docs-page .site-footer{background:var(--bg-subtle)}.site-footer-inner{max-width:1200px;margin:0 auto;padding:64px 24px 28px;color:var(--text-muted);font-size:14px}.site-footer-main{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:clamp(56px,8vw,112px);align-items:start}.site-footer-logo-link{display:inline-flex;min-height:44px;align-items:center;border-radius:8px}.site-footer-logo{display:block;width:clamp(124.8px,13.6vw,152px);height:auto}.site-footer-tagline{max-width:43ch;margin:20px 0 0;color:var(--text-muted);font-size:15px;line-height:1.65;text-wrap:pretty}.site-footer-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(32px,5vw,64px)}.site-footer-group-title{margin:0 0 16px;color:var(--text);font-family:var(--font-code);font-size:10px;font-weight:var(--fw-semibold);letter-spacing:.12em;text-transform:uppercase}.site-footer-group-links{list-style:none;display:flex;flex-direction:column;gap:2px;margin:0;padding:0}.site-footer-group-links a{display:flex;min-height:38px;align-items:center;justify-content:space-between;gap:16px;color:var(--text-muted);border-radius:6px;font-size:14px;font-weight:var(--fw-medium);text-decoration:none;transition:color .16s ease}.site-footer-group-links a:hover,.site-footer-group-links a:focus-visible{color:var(--text)}.site-footer-external{color:var(--text-soft);font-size:12px;transition:color .16s ease,transform .16s ease}.site-footer-group-links a:hover .site-footer-external,.site-footer-group-links a:focus-visible .site-footer-external{color:var(--primary-light);transform:translate(2px,-2px)}.site-footer-divider{height:1px;margin:48px 0 22px;background:var(--border)}.site-footer-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}.site-footer-meta{margin:0;color:var(--text-soft);font-size:12px}@media(max-width:800px){.site-footer-main{grid-template-columns:1fr;gap:48px}.site-footer-nav{max-width:480px}}@media(max-width:520px){.site-footer-inner{padding:48px 16px 24px}.site-footer-main{gap:40px}.site-footer-nav{gap:24px}.site-footer-bottom{align-items:flex-start;flex-direction:column}}@media(pointer:coarse){.site-footer-group-links a{min-height:44px}}@media(max-width:767px){.btn-sm{min-height:44px;padding:0 14px}.tab{min-height:44px;padding:10px 16px}.icon-link{min-width:44px;min-height:44px}.marketing-navlinks{display:none}.marketing-mobile-menu{display:inline-flex}.marketing-mobile-menu[open] .marketing-mobile-panel{display:block;position:fixed;top:var(--header-h);right:0;left:0;z-index:var(--z-overlay);max-height:calc(100dvh - var(--header-h));overflow:auto;padding:16px 20px 24px;background:var(--bg);border-bottom:1px solid var(--border);box-shadow:var(--shadow)}}html.marketing-menu-open{overflow:hidden}.brand{border-radius:10px}.brand:focus-visible{outline-offset:4px}.icon-link{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;color:var(--text-muted);border-radius:8px;transition:color .2s ease,background-color .2s ease}.nav-action{border-radius:6px;transition:color .2s ease}.nav-tabs a{transition:color .2s ease,border-bottom-color .2s ease}.navlinks a{transition:color .2s ease}@media(max-width:767px){.nav-action{min-height:44px;display:inline-flex;align-items:center;padding:8px 10px}.nav-tabs a{min-height:44px;display:inline-flex;align-items:center;padding:10px 0}}.site-footer-link{color:var(--text);text-decoration:underline;text-decoration-color:var(--border-strong);text-underline-offset:3px;border-radius:4px;transition:color .2s ease,text-decoration-color .2s ease}.site-footer-link:hover{color:var(--primary-light);text-decoration-color:var(--primary-border)}.sidebar-nav{display:block}.sidebar a:focus-visible{outline-offset:-2px}.sidebar-group-items{list-style:none;display:flex;flex-direction:column;gap:2px;margin:0 0 0 14px;padding:4px 0 0 12px;border-left:1px solid var(--border);animation:sidebar-group-fade-in .18s ease-out}.sidebar-group-items>li{margin:0;padding:0;min-width:0}.sidebar a{min-width:0;overflow-wrap:anywhere}.toc-list a[aria-current=location]{color:var(--primary-light);border-left-color:var(--primary);font-weight:var(--fw-semibold)}.toc-list a:focus-visible{outline-offset:-2px}.doc-pager{display:flex;justify-content:space-between;align-items:stretch;gap:16px;margin-top:48px;padding-top:24px;border-top:1px solid var(--border);min-width:0}.doc-pager a{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:4px;padding:14px 18px;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);background:color-mix(in srgb,var(--text) 2%,transparent);text-decoration:none;transition:border-color .2s ease-out,color .2s ease-out,background .2s ease-out}.doc-pager a:hover{border-color:var(--primary-border)}.doc-pager-eyebrow{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:var(--fw-semibold);color:var(--text-soft);text-transform:uppercase;letter-spacing:.06em;line-height:1}.doc-pager-label{display:block;font-size:15px;font-weight:var(--fw-semibold);color:var(--text);line-height:1.35;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.doc-pager-arrow{font-size:14px;line-height:1;color:var(--text-muted);transition:transform .18s ease-out,color .18s ease-out}.doc-pager a:hover .doc-pager-arrow{color:var(--primary-light)}.doc-pager-prev:hover .doc-pager-arrow{transform:translate(-2px)}.doc-pager-next:hover .doc-pager-arrow{transform:translate(2px)}@media(prefers-reduced-motion:reduce){.doc-pager-arrow{transition:none}.doc-pager-prev:hover .doc-pager-arrow,.doc-pager-next:hover .doc-pager-arrow{transform:none}}.doc-pager-spacer{flex:1 1 0;min-width:0}.doc-pager-prev{text-align:left;align-items:flex-start}.doc-pager-next{text-align:right;align-items:flex-end}.doc-pager a:focus-visible{outline-offset:-2px;border-radius:var(--radius-sm)}@media(max-width:640px){.doc-pager a{min-height:44px}.doc-pager-label{-webkit-line-clamp:3}}.btn{display:inline-flex;min-height:42px;align-items:center;justify-content:center;gap:8px;padding:0 18px;border-radius:999px;border:1px solid var(--border-strong);background:color-mix(in srgb,var(--text) 4%,transparent);color:var(--text);font-size:14px;font-weight:var(--fw-medium);text-decoration:none;user-select:none;vertical-align:middle;transition:background-color .16s ease-out,border-color .16s ease-out,color .16s ease-out,box-shadow .16s ease-out}.btn:hover{background:color-mix(in srgb,var(--text) 7%,transparent);border-color:var(--border-strong);color:var(--text)}.btn:focus-visible{outline:none;box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--primary-light)}.btn:active:not(:disabled):not([aria-disabled=true]){background:color-mix(in srgb,var(--text) 9%,transparent)}.btn-primary{background:var(--primary);border-color:var(--primary);color:var(--on-primary);box-shadow:0 14px 38px #db486f42}.btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover);color:var(--on-primary-hover);box-shadow:0 14px 38px #db486f57}.btn-primary:active:not(:disabled):not([aria-disabled=true]){background:var(--primary);border-color:var(--primary);box-shadow:0 10px 28px #db486f47}.btn-secondary:hover{background:var(--surface-hover);border-color:var(--border-strong)}.btn-ghost:hover{background:color-mix(in srgb,var(--text) 5%,transparent)}.btn-danger:hover{background:color-mix(in srgb,var(--error) 16%,transparent);border-color:color-mix(in srgb,var(--error) 42%,transparent);color:var(--error)}.btn:disabled,.btn[aria-disabled=true],.tab:disabled,.tab[aria-disabled=true]{cursor:not-allowed;opacity:.55;box-shadow:none;pointer-events:none}.btn-loading{position:relative;cursor:progress;pointer-events:none;color:transparent!important}.btn-loading:after{content:"";position:absolute;width:16px;height:16px;border-radius:50%;border:2px solid currentColor;border-top-color:transparent;color:var(--text);animation:btn-spin .72s linear infinite}.btn-primary.btn-loading:after{color:#0f0f12}.btn-danger.btn-loading:after{color:var(--error)}@keyframes btn-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.btn{transition:none}.btn-loading:after{animation-duration:1.8s}}.card{color:inherit;transition:background-color .18s ease-out,border-color .18s ease-out,box-shadow .18s ease-out}.card-interactive{cursor:pointer;text-decoration:none}.card-interactive:hover{background:#ffffff0e;border-color:var(--border-strong);box-shadow:0 10px 30px #00000047}.card-interactive:focus-visible{outline:none;border-color:var(--primary-border);box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--primary-light)}@media(prefers-reduced-motion:reduce){.card{transition:none}}.alert-body a:focus-visible{outline:none;border-bottom-color:var(--primary);background:var(--primary-soft);border-radius:2px}.badge{display:inline-flex;min-height:28px;align-items:center;border:1px solid var(--border);background:#ffffff0b;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:var(--fw-semibold);line-height:1.4;color:var(--text);letter-spacing:.01em}.chip{line-height:1.4;padding-block:2px}@media(max-width:768px){.grid.cols-3,.grid.cols-4,.grid.cols-5{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.grid.cols-2,.grid.cols-3,.grid.cols-4,.grid.cols-5{grid-template-columns:minmax(0,1fr)}}@media(max-width:640px){.section{padding:24px 18px;border-radius:var(--radius-lg)}}@media(max-width:640px){.hero{padding:56px 0 36px}}.field :is(input,select,textarea):focus-visible{outline:none}.aside{isolation:isolate}.aside{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"icon label" "body body";column-gap:10px;row-gap:8px;align-items:center;border:1px solid var(--border);border-radius:18px;padding:16px;background:color-mix(in srgb,var(--text) 3%,transparent)}.aside .aside-symbol{grid-area:icon;margin-top:0}.aside .aside-label{grid-area:label;margin:0;align-self:center}.aside .aside-body{grid-area:body}.aside-info{background:color-mix(in srgb,var(--info) 7.5%,transparent);border-color:color-mix(in srgb,var(--info) 28%,transparent);border-left:4px solid var(--info)}.aside-success{background:color-mix(in srgb,var(--success) 7.5%,transparent);border-color:color-mix(in srgb,var(--success) 28%,transparent);border-left:4px solid var(--success)}.aside-warning{background:color-mix(in srgb,var(--warning) 8.5%,transparent);border-color:color-mix(in srgb,var(--warning) 32%,transparent);border-left:4px solid var(--warning)}.aside-error{background:color-mix(in srgb,var(--error) 8.5%,transparent);border-color:color-mix(in srgb,var(--error) 34%,transparent);border-left:4px solid var(--error)}.aside-title{font-style:normal;font-weight:var(--fw-semibold);margin-top:2px}.aside-label{display:inline-block;margin:0 0 6px;font-family:var(--font-body);font-size:11px;font-weight:var(--fw-semibold);letter-spacing:.09em;text-transform:uppercase;line-height:1}.aside-info .aside-label{color:var(--info)}.aside-success .aside-label{color:var(--success)}.aside-warning .aside-label{color:var(--warning)}.aside-error .aside-label{color:var(--error)}.aside-label+.aside-title{margin-top:2px}.tabs{display:inline-flex;flex-wrap:wrap;row-gap:3px;padding:4px;border:1px solid var(--border);border-radius:999px;background:color-mix(in srgb,var(--text) 3%,transparent);gap:3px;max-width:100%}.tab{border:0;background:transparent;border-radius:999px;color:var(--text-muted);font-size:13px;font-weight:var(--fw-semibold);padding:8px 13px;transition:color .18s ease,background-color .18s ease,box-shadow .18s ease}.tab:hover:not(.active){color:var(--text);background:color-mix(in srgb,var(--text) 4%,transparent)}.tab:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.tabs-block [role=tabpanel]:focus-visible{outline:2px solid var(--primary);outline-offset:4px;border-radius:var(--radius-xs, 10px)}@media(prefers-reduced-motion:reduce){.tab{transition:none}}.mermaid-figure{margin:24px 0;padding:16px;border:1px solid var(--border);border-radius:var(--radius-md, 20px);background:color-mix(in srgb,var(--text) 3%,transparent);overflow-x:auto}.mermaid-diagram{display:flex;justify-content:center}.mermaid-diagram>svg{max-width:100%;height:auto}.mermaid-caption{margin-top:10px;font-size:13px;line-height:1.55;color:var(--text-muted);text-align:center}.mermaid-loading{position:relative;width:100%;color:var(--text-soft);font-size:13px}.mermaid-loading:after{content:"Loading diagram…"}@media(prefers-reduced-motion:reduce){.mermaid-loading:after{content:"Loading diagram"}}:root,:root[data-theme=dark]{--docsearch-primary-color: var(--primary-light, #ef9dab);--docsearch-text-color: var(--text, #f4f4f5);--docsearch-muted-color: var(--text-muted, #a1a1aa);--docsearch-container-background: rgba(8, 8, 11, .78);--docsearch-modal-background: var(--surface, #17171c);--docsearch-searchbox-background: var(--bg-subtle, #131318);--docsearch-searchbox-focus-background: var(--bg, #0f0f12);--docsearch-hit-background: var(--surface-raised, #202027);--docsearch-hit-color: var(--text, #f4f4f5);--docsearch-hit-active-color: #ffffff;--docsearch-hit-shadow: none;--docsearch-footer-background: var(--bg-subtle, #131318);--docsearch-footer-shadow: inset 0 1px 0 0 var(--border, color-mix(in srgb, var(--text) 9%, transparent));--docsearch-key-gradient: linear-gradient(180deg, #2a2a33 0%, #1c1c22 100%);--docsearch-key-shadow: inset 0 -2px 0 0 rgba(0, 0, 0, .4), inset 0 0 1px 1px color-mix(in srgb, var(--text) 6%, transparent), 0 1px 2px rgba(0, 0, 0, .3);--docsearch-key-pressed-shadow: inset 0 -1px 0 0 rgba(0, 0, 0, .5), inset 0 0 1px 1px color-mix(in srgb, var(--text) 4%, transparent), 0 1px 1px rgba(0, 0, 0, .3);--docsearch-modal-shadow: var(--shadow, 0 24px 90px rgba(0, 0, 0, .45));--docsearch-spacing: 12px;--docsearch-icon-stroke-width: 1.6;--docsearch-highlight-color: var(--primary-light, #ef9dab);--docsearch-logo-color: var(--text-muted, #a1a1aa)}.suites-docsearch .DocSearch-Button{width:100%;margin:0;background:var(--bg-subtle, #131318);border:1px solid var(--border, color-mix(in srgb, var(--text) 9%, transparent));color:var(--text-muted, #a1a1aa);border-radius:var(--radius-sm, 14px);padding:0 10px;height:36px;transition:border-color .18s ease,background-color .18s ease,color .18s ease}.suites-docsearch .DocSearch-Button:hover{background:var(--surface, #17171c);border-color:var(--border-strong, rgba(255, 255, 255, .16));color:var(--text, #f4f4f5);box-shadow:none}.suites-docsearch .DocSearch-Button:focus-visible{outline:2px solid var(--primary-light, #ef9dab);outline-offset:2px;border-color:var(--primary-light, #ef9dab)}.suites-docsearch .DocSearch-Button-Placeholder{font-size:14px;font-family:var(--font-body);padding:0 8px 0 4px}.suites-docsearch .DocSearch-Search-Icon{width:16px;height:16px;color:var(--text-soft, #8b8b94)}.suites-docsearch .DocSearch-Button-Keys{min-width:auto;gap:2px}.suites-docsearch .DocSearch-Button-Key{background:var(--surface-raised, #202027);box-shadow:var(--docsearch-key-shadow);color:var(--text, #f4f4f5);font-family:var(--font-code);font-size:11px;padding:0 5px;height:20px;min-width:20px;border-radius:6px}.DocSearch-Container{--docsearch-modal-width: 680px;--docsearch-logo-color: var(--text-muted);--docsearch-text-color: var(--text);--docsearch-muted-color: var(--text-muted);--docsearch-hit-active-color: var(--text);--docsearch-hit-background: transparent;--docsearch-hit-shadow: none;--docsearch-key-gradient: var(--bg-subtle);--docsearch-key-shadow: none;background:var(--docsearch-container-background);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:var(--z-modal);padding:0 16px}.DocSearch-Modal{display:flex;flex-direction:column;width:100%;max-width:var(--docsearch-modal-width);max-height:min(680px,calc(100dvh - 120px));margin:min(12vh,96px) auto 24px;overflow:hidden;background:var(--surface);color:var(--text);border:1px solid var(--border-strong);border-radius:18px;box-shadow:0 24px 80px #0000004d;font-family:var(--font-interface)}.DocSearch-SearchBar{flex:none;gap:12px;padding:16px;border-bottom:1px solid var(--border)}.DocSearch-Form{flex:1;min-width:0;height:56px;padding:0 14px;gap:10px;background:var(--bg-subtle);border:1px solid var(--control-border);border-radius:10px;box-shadow:none}.DocSearch-Form:focus-within{background:var(--bg);border-color:var(--primary-light);box-shadow:none}.DocSearch-Modal .DocSearch-Input{appearance:none;-webkit-appearance:none;background:transparent;border:0;border-radius:0;min-width:0;height:100%;padding:0;color:var(--text);font-family:inherit;font-size:17px;font-weight:var(--fw-regular);letter-spacing:-.01em;caret-color:var(--primary-light)}.DocSearch-Input::placeholder{color:var(--text-soft);opacity:1}.DocSearch-Modal .DocSearch-Input:is(:focus,:focus-visible){outline:none;box-shadow:none}.DocSearch-Input::selection{background:color-mix(in srgb,var(--brand-mid) 35%,transparent);color:var(--text)}.DocSearch-MagnifierLabel{color:var(--primary-light)}.DocSearch-MagnifierLabel svg{width:20px;height:20px}.DocSearch-Reset{width:44px;height:44px;padding:12px;color:var(--text-muted)}.DocSearch-Reset:hover{color:var(--text)}.DocSearch-Cancel{appearance:none;display:block;align-self:center;min-width:44px;min-height:44px;padding:0 4px;margin:0;background:transparent;border:0;cursor:pointer;color:var(--text-muted);font-size:13px;font-weight:var(--fw-medium)}.DocSearch-Cancel:hover{color:var(--text)}.DocSearch-Modal :is(a,button):focus-visible{outline:2px solid var(--primary-light);outline-offset:-2px;border-radius:6px}.DocSearch-Dropdown{flex:1 1 auto;min-height:0;max-height:none;padding:0 10px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scroll-padding-block:12px}.DocSearch-Hits{padding:0 0 8px}.DocSearch-Hit-source{position:static;margin:0;padding:18px 12px 8px;background:var(--surface);color:var(--text-muted);font-size:12px;line-height:1.5;font-weight:var(--fw-semibold);letter-spacing:.02em;text-transform:none}.DocSearch-Hit{padding-bottom:3px}.DocSearch-Hit a{display:block;min-height:60px;padding:10px 12px;background:transparent;border:1px solid transparent;border-radius:9px;box-shadow:none;color:var(--text);transition:background-color .14s ease,border-color .14s ease}.DocSearch-Hit[aria-selected=true] a,.DocSearch-Hit a:hover{background:var(--primary-soft);border-color:var(--primary-border);color:var(--text);box-shadow:none}.DocSearch-Hit-Container{min-height:44px;height:44px}.DocSearch-Hit-content-wrapper{min-width:0}.DocSearch-Hit-title{color:var(--text);font-size:15px;line-height:1.5;font-weight:var(--fw-medium)}.DocSearch-Hit-path{margin-top:2px;color:var(--text-muted);font-size:12px;line-height:1.5}.DocSearch-Hit-title,.DocSearch-Hit-path{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.DocSearch-Hit mark{color:var(--primary-light);background:transparent;font-weight:var(--fw-semibold);text-decoration:none}.DocSearch-Hit-Tree{width:20px;height:44px;color:var(--border-strong)}.DocSearch-Hit[aria-selected=true] mark{color:var(--primary-light)!important;text-decoration:none}.DocSearch-Hit-icon{color:var(--text-soft)}.DocSearch-Hit-action{color:var(--text-muted)}.DocSearch-Hit[aria-selected=true] :is(.DocSearch-Hit-icon,.DocSearch-Hit-action){color:var(--primary-light)}.DocSearch-Hit-action-button{min-width:32px;min-height:32px}.DocSearch-StartScreen,.DocSearch-NoResults,.DocSearch-ErrorScreen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:240px;padding:36px 20px;text-align:center}.DocSearch-Help{margin:8px 0;color:var(--text-muted);font-size:14px;line-height:1.6}.DocSearch-StartScreen .DocSearch-Help{max-width:280px;color:var(--text-muted);font-size:16px}.DocSearch-Title{margin:12px 0 4px;color:var(--text);font-family:inherit;font-size:17px;line-height:1.5;overflow-wrap:anywhere}.DocSearch-Screen-Icon{color:var(--text-soft)}.DocSearch-NoResults-Prefill-List{padding:8px 0}.DocSearch-Prefill{min-height:44px;padding:8px 12px;color:var(--primary-light)}.DocSearch-Help a{color:var(--primary-light);text-underline-offset:3px}.DocSearch-Footer{flex:none;height:auto;min-height:48px;gap:16px;padding:12px 18px;background:var(--bg-subtle);border-top:1px solid var(--border);border-radius:0;box-shadow:none}.DocSearch-Commands{gap:12px}.DocSearch-Commands-Key{background:var(--surface);border:1px solid var(--border);border-radius:4px;color:var(--text-muted);box-shadow:none}.DocSearch-Label{color:var(--text-muted);font-size:12px}.DocSearch-Logo a{color:var(--text-muted);opacity:1}.DocSearch-Logo svg{color:var(--text-muted)}@media(max-width:640px){.DocSearch-Container{padding:0}.DocSearch-Modal{height:calc(var(--docsearch-vh, 1vh) * 100);max-height:none;max-width:none;margin:0;border:0;border-radius:0}.DocSearch-SearchBar{gap:8px;padding:max(12px,env(safe-area-inset-top)) 12px 12px}.DocSearch-Form{height:52px;padding-inline:12px}.DocSearch-Modal .DocSearch-Input{font-size:16px}.DocSearch-Dropdown{padding-inline:8px}.DocSearch-Hit a{min-height:64px}.DocSearch-Hit-action-button{min-width:44px;min-height:44px}.DocSearch-Footer{padding-bottom:max(12px,env(safe-area-inset-bottom))}}@media(prefers-reduced-motion:reduce){.suites-docsearch .DocSearch-Button,.DocSearch-Hit a,.DocSearch-Form{transition:none}}.ask-ai-root{position:relative;display:inline-flex}.ask-ai-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:180px;background:var(--surface, #17171c);border:1px solid var(--border, color-mix(in srgb, var(--text) 9%, transparent));border-radius:var(--radius-sm, 14px);box-shadow:var(--shadow, 0 24px 90px rgba(0, 0, 0, .45));padding:4px;display:flex;flex-direction:column;gap:2px;z-index:var(--z-overlay, 40);animation:ask-ai-menu-in .14s ease-out;transform-origin:top right}.ask-ai-menu[data-variant=floating]{right:0}@keyframes ask-ai-menu-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.ask-ai-menu-item{display:inline-flex;align-items:center;gap:10px;width:100%;text-align:left;background:transparent;border:1px solid transparent;color:var(--text, #f4f4f5);font-family:var(--font-body);font-size:14px;font-weight:var(--fw-medium);padding:8px 10px;border-radius:10px;cursor:pointer;min-height:36px;transition:background-color .16s ease,color .16s ease,border-color .16s ease}.ask-ai-menu-item>svg{color:var(--text-muted, #a1a1aa);width:16px;height:16px;flex-shrink:0;transition:color .16s ease}.ask-ai-menu-item:hover,.ask-ai-menu-item:focus-visible{background:var(--primary-soft, rgba(219, 72, 111, .12));color:var(--text, #f4f4f5);outline:none;border-color:var(--primary-border, rgba(219, 72, 111, .32))}.ask-ai-menu-item:focus-visible{box-shadow:0 0 0 2px #db486f59}.ask-ai-menu-item:hover>svg,.ask-ai-menu-item:focus-visible>svg{color:var(--primary-light, #ef9dab)}@media(pointer:coarse){.ask-ai-menu-item{min-height:44px;padding:10px 12px}}@media(prefers-reduced-motion:reduce){.ask-ai-menu{animation:none}.ask-ai-menu-item,.ask-ai-menu-item>svg{transition:none}}:root[data-theme=light] :is(.suites-docsearch .DocSearch-Button,.page-action,.btn:not(.btn-primary),.input,.select){border-color:var(--control-border)}:root[data-theme=light] .tab.active{color:var(--primary-light);box-shadow:inset 0 0 0 1px var(--primary)}:root[data-theme=light] .DocSearch-Form:focus-within{box-shadow:none}:root[data-theme=light] .DocSearch-Input:focus{box-shadow:none}*{box-sizing:border-box}html{background:var(--bg);color:var(--text);font-family:var(--font-body);line-height:1.5;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px)}body{margin:0;min-height:100vh;background:radial-gradient(circle at 16% -8%,rgba(219,72,111,.24),transparent 38rem),radial-gradient(circle at 90% 10%,rgba(239,157,171,.13),transparent 34rem),linear-gradient(180deg,#0f0f12,#111115 44%,#0f0f12)}:root[data-theme=light] body{background:radial-gradient(circle at 16% -8%,rgba(219,72,111,.1),transparent 38rem),radial-gradient(circle at 90% 10%,rgba(230,113,137,.06),transparent 34rem),var(--bg)}body.docs-page{--font-title: var(--font-reference-heading);--font-body: "Inter", "Geist", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-code: var(--font-technical);background:var(--bg);font-family:var(--font-body)}a{color:inherit;text-decoration:none}h1,h2,h3{font-family:var(--font-title);text-wrap:balance}:focus{outline:none}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
