pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
  Theme: GitHub Dark
  Description: Dark theme as seen on github.com
  Author: github.com
  Maintainer: @Hirse
  Updated: 2021-05-15

  Outdated base version: https://github.com/primer/github-syntax-dark
  Current colors taken from GitHub's CSS
*/.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/InterVariable.woff2) format("woff2")}@font-face{font-family:Roboto;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/Roboto-Variable.woff2) format("woff2")}@font-face{font-family:Roboto Mono;font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/RobotoMono-Variable.woff2) format("woff2")}@font-face{font-family:Inter Fallback;src:local("Arial"),local("Helvetica"),local("Liberation Sans");size-adjust:107.12%;ascent-override:90.44%;descent-override:22.52%;line-gap-override:0%}@font-face{font-family:Roboto Fallback;src:local("Arial"),local("Helvetica"),local("Liberation Sans");size-adjust:100.06%;ascent-override:92.72%;descent-override:24.4%;line-gap-override:0%}@font-face{font-family:Roboto Mono Fallback;src:local("Courier New"),local("Liberation Mono"),local("Menlo");size-adjust:134%;ascent-override:77%;descent-override:20.5%;line-gap-override:0%}:root{--arc-blue-50: #F6F9FE;--arc-blue-100: #EEF3FD;--arc-blue-200: #E7EEFD;--arc-blue-300: #D4E1FB;--arc-blue-400: #C6D7F9;--arc-blue-500: #ADC5F7;--arc-blue-600: #91B2F4;--arc-blue-700: #719BF1;--arc-blue-800: #4582FF;--arc-blue-900: #256DFF;--arc-blue-base: #1D60E8;--arc-blue: #256DFF;--arc-blue-hover: #1D60E8;--arc-blue-pressed: #1648B8;--arc-blue-interface: #719BF1;--arc-blue-light: #C6D7F9;--arc-baltic-50: #F8F8F8;--arc-baltic-100: #F0F0F0;--arc-baltic-200: #E5E5E5;--arc-baltic-300: #D4D4D4;--arc-baltic-400: #AFAFAF;--arc-baltic-500: #8F8F8F;--arc-baltic-600: #676767;--arc-baltic-700: #545454;--arc-baltic-800: #363636;--arc-baltic-900: #222222;--arc-baltic-base: #161616;--arc-gray-blue: #6185A6;--arc-gray-blue-2: #88AED2;--arc-black: #08080A;--arc-eerie: var(--arc-baltic-base);--arc-gray-900: var(--arc-baltic-900);--arc-gray-800: var(--arc-baltic-800);--arc-gray-700: var(--arc-baltic-700);--arc-gray-600: var(--arc-baltic-600);--arc-gray-500: var(--arc-baltic-500);--arc-dust: #939393;--arc-gray-400: var(--arc-baltic-400);--arc-gray-300: var(--arc-baltic-300);--arc-gray-200: var(--arc-baltic-200);--arc-gray-100: var(--arc-baltic-100);--arc-gray-50: var(--arc-baltic-50);--arc-white: #FFFFFF;--arc-navy: #363636;--arc-sand: #EAE7E5;--arc-ink: #2E2E2E;--arc-red: #FF3C3C;--arc-red-toned: #81672C;--surface-base: #08080A;--surface-raised: #111114;--surface-overlay: #18181C;--surface-inset: #0C0C0E;--surface-blue: #256DFF;--surface-inverse: #FFFFFF;--border-subtle: #1E1E22;--border-default: #2C2C32;--border-strong: #3A3A42;--border-blue: rgba(37,109,255,.45);--text-primary: #FFFFFF;--text-secondary: #AFAFAF;--text-tertiary: #8F8F8F;--text-muted: #676767;--text-accent: #719BF1;--text-inverse: #08080A;--text-on-blue: #FFFFFF;--accent: #256DFF;--accent-hover: #1D60E8;--accent-pressed: #1648B8;--accent-soft: rgba(37,109,255,.12);--accent-ring: rgba(37,109,255,.4);--status-success: #2BB673;--status-warning: #E0A030;--status-error: #FF3C3C;--status-info: #719BF1;--data-up: #2BB673;--data-down: #FF3C3C;--data-neutral: #8F8F8F;--series-1: #256DFF;--series-2: #719BF1;--series-3: #2BB673;--series-4: #E0A030;--series-5: #C6D7F9;--series-6: #FF3C3C;--grid-line: rgba(255,255,255,.07);--logo-ground-white: #FFFFFF;--logo-ground-sand: #EAE7E5;--logo-ground-charcoal: #2E2E2E;--logo-ground-blue: #256DFF;--font-display: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--font-body: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--font-mono: "Roboto Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--fw-black: 800;--text-h1: 100px;--text-h2: 68px;--text-h3: 56px;--text-h4: 48px;--text-h5: 40px;--text-h6: 32px;--text-xl: 24px;--text-lg: 20px;--text-md: 18px;--text-rg: 16px;--text-sm: 14px;--text-xs: 12px;--text-xxs: 10px;--lh-display: 1.04;--lh-heading: 1.12;--lh-snug: 1.3;--lh-body: 1.55;--lh-relaxed: 1.65;--lh-mono: 1.45;--ls-tight: -.02em;--ls-snug: -.01em;--ls-normal: 0;--ls-wide: .04em;--ls-eyebrow: .12em;--space-0: 0;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 28px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-14: 56px;--space-16: 64px;--space-20: 80px;--space-24: 96px;--space-25: 100px;--space-32: 128px;--space-40: 160px;--space-50: 200px;--section-y: 100px;--section-y-lg: 160px;--gutter: 32px;--container-sm: 800px;--container-md: 1280px;--container-lg: 1440px;--container-xl: 1600px;--radius-xs: 2px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 24px;--radius-full: 999px;--chamfer: 8px;--chamfer-lg: 14px;--border-width: 1px;--border-width-thick: 2px;--shadow-sm: 0 1px 2px rgba(0,0,0,.45);--shadow-md: 0 6px 20px rgba(0,0,0,.45);--shadow-lg: 0 18px 50px rgba(0,0,0,.55);--glow-blue: 0 0 0 1px rgba(37,109,255,.4), 0 0 28px rgba(37,109,255,.22);--ease-out: cubic-bezier(.22, .61, .36, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--dur-fast: .12s;--dur-base: .2s;--dur-slow: .36s;--font-display: "Inter", "Inter Fallback", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--font-body: "Roboto", "Roboto Fallback", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--font-mono: "Roboto Mono", "Roboto Mono Fallback", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--header-h: 72px;--nav-w: 260px;--content-w: 780px;--toc-w: 220px;--container: var(--container-lg);--motion: var(--dur-base) var(--ease-out);--bg: var(--surface-base);--surface: var(--surface-raised);--surface-2: var(--surface-overlay);--border: var(--border-subtle);--text: var(--text-primary);--text-2: var(--text-secondary);--accent-contrast: var(--text-on-blue);--font-sans: var(--font-display);--code-bg: var(--arc-black);--code-header: var(--arc-baltic-base);--code-border: var(--arc-baltic-800);--code-text: var(--arc-gray-200);--code-muted: var(--arc-gray-500);--inline-code-bg: var(--surface-inset);--inline-code-text: var(--arc-gray-100);--success: var(--status-success);--success-bg: color-mix(in srgb, var(--status-success) 12%, transparent);--success-border: color-mix(in srgb, var(--status-success) 40%, transparent);--warn: var(--status-warning);--warn-bg: color-mix(in srgb, var(--status-warning) 12%, transparent);--warn-border: color-mix(in srgb, var(--status-warning) 40%, transparent);--danger: var(--status-error);--danger-bg: color-mix(in srgb, var(--status-error) 12%, transparent);--danger-border: color-mix(in srgb, var(--status-error) 40%, transparent);--info: var(--status-info);--info-bg: var(--accent-soft);--info-border: var(--border-blue);--shadow-hover: var(--shadow-md);--shadow-pop: var(--shadow-lg);--backdrop: rgba(8, 8, 10, .66);color-scheme:dark}:root[data-theme=light],.arc-on-light{--surface-base: #FFFFFF;--surface-raised: #F8F8F8;--surface-overlay: #FFFFFF;--surface-inset: #F0F0F0;--border-subtle: #E5E5E5;--border-default: #D4D4D4;--border-strong: #AFAFAF;--text-primary: #161616;--text-secondary: #545454;--text-tertiary: #8F8F8F;--text-muted: #AFAFAF;--text-accent: #256DFF;--text-inverse: #FFFFFF;--grid-line: rgba(8,8,10,.08);--inline-code-bg: var(--arc-baltic-100);--inline-code-text: var(--text-primary);--backdrop: rgba(8, 8, 10, .4);color-scheme:light}.arc-on-blue{--surface-base: #256DFF;--surface-raised: rgba(255,255,255,.1);--surface-overlay: #1D60E8;--border-subtle: rgba(255,255,255,.18);--border-default: rgba(255,255,255,.28);--border-strong: rgba(255,255,255,.45);--text-primary: #FFFFFF;--text-secondary: rgba(255,255,255,.82);--text-tertiary: rgba(255,255,255,.62);--text-inverse: #256DFF;--grid-line: rgba(255,255,255,.18);--accent-soft: rgba(255, 255, 255, .14);--inline-code-bg: rgba(255, 255, 255, .14);--inline-code-text: #ffffff;background:var(--surface-base);color:var(--text-primary)}.arc-chamfer{clip-path:polygon(var(--chamfer) 0,100% 0,100% calc(100% - var(--chamfer)),calc(100% - var(--chamfer)) 100%,0 100%,0 var(--chamfer))}.arc-chamfer-sm{--chamfer: 4px}.arc-chamfer-lg{--chamfer: var(--chamfer-lg)}.arc-eyebrow{font-family:var(--font-display);font-size:var(--text-xs);font-weight:var(--fw-semibold);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text-accent)}.arc-data{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:var(--ls-normal)}*,*:before,*:after{box-sizing:border-box}html{scroll-padding-top:calc(var(--header-h) + 24px);-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;font-family:var(--font-body);font-size:var(--text-rg);line-height:var(--lh-relaxed);color:var(--text-primary);background:var(--surface-base);-webkit-font-smoothing:antialiased;overflow-x:hidden}h1,h2,h3,h4,h5,h6{margin:0;font-family:var(--font-display);color:var(--text-primary);letter-spacing:var(--ls-tight);overflow-wrap:anywhere}h1{font-size:36px;line-height:var(--lh-heading);font-weight:var(--fw-bold)}h2{font-size:28px;line-height:1.2;font-weight:var(--fw-bold)}h3{font-size:22px;line-height:var(--lh-snug);font-weight:var(--fw-semibold);letter-spacing:var(--ls-snug)}h4{font-size:var(--text-md);line-height:1.4;font-weight:var(--fw-semibold);letter-spacing:var(--ls-snug)}p{margin:0}a{color:var(--text-accent);text-decoration:none;text-underline-offset:.15em}a:hover{color:var(--accent);text-decoration:underline}code,pre,kbd,samp{font-family:var(--font-mono);font-size:.9em;font-variant-numeric:tabular-nums}button,input,select{font:inherit;color:inherit}button{cursor:pointer}img,svg{display:block;max-width:100%}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-xs);box-shadow:var(--glow-blue)}::selection{background:var(--accent-soft)}.eyebrow{margin:0;font-family:var(--font-display);font-size:var(--text-xs);font-weight:var(--fw-semibold);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text-accent)}.small{font-size:var(--text-sm);line-height:1.5}.muted{color:var(--text-tertiary)}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip-link{position:absolute;top:-100px;left:16px;z-index:100;padding:8px 12px;background:var(--accent);color:var(--text-on-blue);border-radius:var(--radius-sm);font-weight:var(--fw-semibold)}.skip-link:focus{top:8px;text-decoration:none;outline-color:var(--text-primary)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.app{min-height:100vh;display:flex;flex-direction:column}.app>main{flex:1}.header{position:sticky;top:0;z-index:50;height:var(--header-h);background:var(--surface-base);border-bottom:var(--border-width) solid var(--border-subtle)}.header-inner{height:100%;max-width:var(--container);margin:0 auto;padding:0 var(--gutter);display:flex;align-items:center;gap:16px}.brand{display:inline-flex;align-items:center;flex:none}.brand:hover{text-decoration:none}.brand-logo{display:block;height:26px;width:auto}.brand-logo-dark,[data-theme=dark] .brand-logo-light{display:none}[data-theme=dark] .brand-logo-dark{display:block}.header-nav{display:flex;align-items:center;gap:28px;margin-left:8px}.header-nav a{display:inline-flex;align-items:center;height:32px;padding:0 10px;border-radius:var(--radius-sm);font-size:14px;font-weight:500;color:var(--text-2)}.header-nav a:hover{color:var(--text);background:var(--surface);text-decoration:none}.header-nav a.active{color:var(--accent);background:var(--accent-soft)}.header-spacer{flex:1}.header-actions{display:flex;align-items:center;gap:4px}.header-sep{width:1px;height:20px;background:var(--border);margin:0 6px}.header-link-text{font-family:var(--font-body);font-size:14px;font-weight:500;color:var(--accent);padding:0 8px;white-space:nowrap}.header .version-badge{margin-right:4px}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-2);transition:background var(--motion),color var(--motion)}.icon-button:hover{color:var(--text);background:var(--surface);text-decoration:none}.icon-button svg{width:18px;height:18px}.menu-button{display:none}.search{position:relative;width:min(300px,100%)}.search-field{position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:10px;width:16px;height:16px;color:var(--text-muted);pointer-events:none}.search-input{width:100%;height:34px;padding:0 44px 0 32px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:14px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.search-input::-webkit-search-cancel-button{display:none}.search-input::placeholder{color:var(--text-muted)}.search-input:focus{outline:none;border-color:var(--accent);background:var(--bg);box-shadow:0 0 0 3px var(--accent-soft)}.search-kbd{position:absolute;right:8px;display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--bg);color:var(--text-muted);font-family:var(--font-mono);font-size:11px;pointer-events:none}.search-results{position:absolute;right:0;top:calc(100% + 8px);width:min(520px,calc(100vw - 32px));max-height:min(60vh,480px);overflow-y:auto;margin:0;padding:6px;list-style:none;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-pop);z-index:50}.search-results li{padding:8px 10px;border-radius:var(--radius-sm);cursor:pointer}.search-results li.active{background:var(--surface)}.search-empty{color:var(--text-muted);cursor:default;font-size:14px}.search-title{display:flex;justify-content:space-between;gap:12px;font-weight:600;font-size:14px}.search-section{color:var(--text-muted);font-weight:400;font-size:12px;white-space:nowrap}.search-snippet{color:var(--text-2);font-size:13px;line-height:1.45;margin-top:2px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}.shell{max-width:var(--container);margin:0 auto;padding:0 24px;display:grid;grid-template-columns:var(--nav-w) minmax(0,var(--content-w)) var(--toc-w);column-gap:var(--gutter);align-items:start}.shell-nav,.shell-toc{position:sticky;top:var(--header-h);max-height:calc(100vh - var(--header-h));overflow-y:auto;overscroll-behavior:contain}.shell-nav{padding:24px 24px 48px 0;border-right:1px solid var(--border);margin-right:-24px}.shell-toc{padding:32px 0 48px}.shell-main{min-width:0;padding:32px 0 64px}.toc-inline{display:none}.leftnav{font-size:14px}.leftnav-group+.leftnav-group{margin-top:16px}.leftnav-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:6px 10px;border:0;border-radius:var(--radius-sm);background:transparent;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);text-align:left}.leftnav-toggle:hover{color:var(--text);background:var(--surface)}.leftnav-toggle svg{width:14px;height:14px;transition:transform var(--motion)}.leftnav-toggle[aria-expanded=false] svg{transform:rotate(-90deg)}.leftnav ul{list-style:none;margin:4px 0 0;padding:0}.leftnav li a{display:block;padding:6px 10px;border-radius:var(--radius-sm);color:var(--text-2);line-height:1.4;overflow-wrap:anywhere}.leftnav li a code{font-size:13px;color:inherit}.leftnav li a:hover{color:var(--text);background:var(--surface);text-decoration:none}.leftnav li a.active{color:var(--accent);background:var(--accent-soft);font-weight:500}.drawer,.backdrop{display:none}.toc{font-size:13px;line-height:1.5}.toc-title{margin:0 0 10px;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.toc ul{list-style:none;margin:0;padding:0;border-left:1px solid var(--border)}.toc li a{display:block;padding:4px 0 4px 14px;margin-left:-1px;border-left:2px solid transparent;color:var(--text-2);overflow-wrap:anywhere}.toc li.depth-3 a{padding-left:26px}.toc li a:hover{color:var(--text);text-decoration:none}.toc li a.active{color:var(--accent);border-left-color:var(--accent)}.toc code{font-size:12px}.doc{min-width:0}.doc-title-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px 16px;margin:8px 0 20px}.doc-title-row h1{margin:0}.doc-title-row h1 code{font-size:.85em;font-weight:600}.doc-footer{margin-top:48px;display:flex;justify-content:flex-end;font-size:14px}.doc-footer a{display:inline-flex;align-items:center;gap:6px;color:var(--text-muted)}.doc-footer a:hover{color:var(--accent)}.doc-footer svg{width:14px;height:14px}.breadcrumbs{font-size:13px;color:var(--text-2)}.breadcrumbs ol{display:flex;flex-wrap:wrap;align-items:center;gap:6px;list-style:none;margin:0;padding:0}.breadcrumbs a{color:var(--text-2)}.breadcrumbs a:hover{color:var(--accent)}.breadcrumbs li[aria-current]{color:var(--text)}.breadcrumbs svg{width:12px;height:12px;color:var(--text-muted)}.prevnext{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:24px;padding-top:24px;border-top:1px solid var(--border)}.prevnext a{display:flex;flex-direction:column;gap:4px;padding:16px;border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text);transition:border-color var(--motion),box-shadow var(--motion)}.prevnext a:hover{text-decoration:none;border-color:var(--border-strong);box-shadow:var(--shadow-hover)}.prevnext a.next{grid-column:2;text-align:right;align-items:flex-end}.prevnext-label{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.prevnext-title{font-weight:600;font-size:15px;color:var(--accent)}.prevnext-title code{font-size:.9em}.footer{margin-top:auto;border-top:var(--border-width) solid var(--border-subtle);background:#000;color:var(--arc-gray-400);font-size:var(--text-sm)}.footer-inner{max-width:1180px;margin:0 auto;padding:64px var(--gutter) 40px}.footer-grid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:40px}.footer-brand .brand-logo{height:28px}.footer-brand p{margin-top:16px;color:var(--text-2);max-width:320px}.footer h2{font-family:var(--font-display);font-size:var(--text-xs);font-weight:var(--fw-semibold);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--arc-gray-500);margin:0 0 12px}.footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.footer ul a{font-family:var(--font-body);color:var(--arc-gray-400)}.footer ul a:hover{color:var(--arc-white)}.footer-bottom{margin-top:40px;padding-top:24px;border-top:var(--border-width) solid var(--border-subtle);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--arc-gray-600)}.footer-theme{display:inline-flex;align-items:center;gap:8px}.landing>section{padding:var(--section-y) 0}.landing .container{max-width:1180px}.container{max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}.section-head{max-width:720px;margin-bottom:40px}.section-head h2{margin:14px 0 0;font-family:var(--font-display);font-weight:var(--fw-semibold);letter-spacing:var(--ls-tight);font-size:clamp(30px,3.6vw,46px);line-height:1.1}.section-head p{margin-top:16px;font-family:var(--font-body);font-size:17px;line-height:1.6;color:var(--text-secondary)}.hero{background:var(--surface-base);padding:96px 0}.landing section.hero{padding:96px 0}.hero-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);align-items:start;gap:56px;max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}.hero-copy{min-width:0}.hero h1{margin:18px 0 0;font-family:var(--font-display);font-weight:var(--fw-semibold);letter-spacing:-.03em;font-size:clamp(36px,4.4vw,58px);line-height:1.06}.hero-figure{position:relative;min-width:0}.hero-glow{position:absolute;left:50%;top:40%;width:420px;height:420px;transform:translate(-50%,-50%);pointer-events:none;background:radial-gradient(circle,rgba(37,109,255,.18),transparent 60%)}.hero-code{position:relative}.hero-lede{max-width:560px;margin:24px 0 0;font-family:var(--font-body);font-size:17px;line-height:1.6;color:var(--text-secondary)}.hero-ctas{display:flex;gap:14px;margin-top:32px;flex-wrap:wrap}.hero .installbar{margin:24px 0 0;max-width:480px}.hero-note{margin-top:24px;color:var(--text-tertiary);font-size:var(--text-sm)}.badge-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:24px;font-size:13px;color:var(--text-2)}.badge-row .dot{color:var(--border-strong)}.hero-code{min-width:0}.hero-code .codesample{margin:0;border-radius:var(--radius-lg)}.requirements{background:var(--surface-inset);border-top:var(--border-width) solid var(--border-subtle);border-bottom:var(--border-width) solid var(--border-subtle)}.landing section.requirements{padding:var(--space-8) 0}.reqstrip{display:flex;flex-wrap:wrap;gap:12px 32px;margin:0;padding:0;list-style:none;font-size:var(--text-sm);color:var(--text-tertiary)}.reqstrip li{display:inline-flex;align-items:center;gap:8px}.reqstrip code{font-size:13px}@media(max-width:1279px){.shell{grid-template-columns:var(--nav-w) minmax(0,1fr)}.shell-toc{display:none}.toc-inline{display:block;margin:0 0 24px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.toc-inline summary{cursor:pointer;padding:10px 14px;font-size:13px;font-weight:600;color:var(--text-2);list-style:none;display:flex;align-items:center;justify-content:space-between}.toc-inline summary::-webkit-details-marker{display:none}.toc-inline summary svg{width:14px;height:14px;transition:transform var(--motion)}.toc-inline[open] summary svg{transform:rotate(180deg)}.toc-inline .toc{padding:0 14px 12px}.toc-inline .toc-title{display:none}}@media(max-width:1023px){.hero-inner{grid-template-columns:minmax(0,1fr);gap:40px}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.header-inner{padding:0 16px;gap:8px}.menu-button{display:inline-flex}.header-nav,.header .version-badge,.header-sep{display:none}.search{width:min(220px,100%)}.shell{display:block;padding:0 16px}.shell-nav{display:none}.shell-main{padding:24px 0 48px}.drawer{display:block;position:fixed;top:var(--header-h);left:0;bottom:0;width:min(320px,85vw);padding:16px 16px 32px;overflow-y:auto;background:var(--bg);border-right:1px solid var(--border);transform:translate(-100%);transition:transform var(--motion);z-index:35;visibility:hidden}.drawer.open{transform:translate(0);visibility:visible}.backdrop{display:block;position:fixed;inset:var(--header-h) 0 0 0;background:var(--backdrop);z-index:30}.container{padding:0 16px}.landing>section{padding:64px 0}.landing section.hero{padding:56px 0 48px}.hero h1{font-size:36px}.footer-grid{grid-template-columns:repeat(2,1fr)}.footer-inner{padding:40px 16px 24px}}@media(max-width:639px){.header-actions .header-link,.header-actions .header-link-text{display:none}.search{width:100%;min-width:0}.search-kbd{display:none}.search-input{padding-right:10px}.brand-logo{height:22px}.card-grid{grid-template-columns:minmax(0,1fr)}h1,.hero h1{font-size:30px}h2{font-size:24px}.hero-lede{font-size:16px}.prevnext{grid-template-columns:1fr}.prevnext a.next{grid-column:auto}.footer-grid{grid-template-columns:1fr;gap:24px}.footer-bottom{flex-direction:column;align-items:flex-start}}@media(hover:none),(pointer:coarse){.search-kbd{display:none}}.cta-band{position:relative;overflow:hidden;padding:120px 0;background:var(--surface-base);background-image:radial-gradient(rgba(255,255,255,.05) 1px,transparent 1px);background-size:22px 22px;border-top:var(--border-width) solid var(--border-subtle)}.cta-glow{position:absolute;left:30%;top:46%;width:560px;height:560px;transform:translate(-50%,-50%);pointer-events:none;background:radial-gradient(circle,rgba(37,109,255,.16),transparent 62%)}.cta-inner{position:relative;max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}.cta-band h2{font-size:clamp(32px,5vw,56px);line-height:var(--lh-display);font-weight:var(--fw-semibold);letter-spacing:var(--ls-tight);color:var(--text-primary);margin:0}.cta-band>.cta-inner>p{max-width:560px;margin:var(--space-5) 0 0;font-size:var(--text-md);color:var(--text-secondary)}.cta-actions{display:flex;gap:14px;margin-top:var(--space-8);flex-wrap:wrap}.surface-band{padding:var(--section-y) var(--gutter);background:var(--surface-base)}.arc-on-blue .arc-eyebrow,.arc-on-blue .eyebrow{color:#ffffffb3}.arc-panel-dark{background:var(--arc-black);border:var(--border-width) solid rgba(0,0,0,.3);padding:var(--space-5);--chamfer: var(--chamfer-lg);clip-path:polygon(var(--chamfer) 0,100% 0,100% calc(100% - var(--chamfer)),calc(100% - var(--chamfer)) 100%,0 100%,0 var(--chamfer))}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:11px 24px;--chamfer: 8px;border:1px solid transparent;font-family:var(--font-body);font-size:14px;font-weight:var(--fw-medium);line-height:1.4;letter-spacing:.01em;white-space:nowrap;text-decoration:none;clip-path:polygon(var(--chamfer) 0,100% 0,100% calc(100% - var(--chamfer)),calc(100% - var(--chamfer)) 100%,0 100%,0 var(--chamfer));transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.btn:hover{text-decoration:none}.btn:active{transform:translateY(1px)}.btn svg{width:16px;height:16px}.btn[aria-disabled=true],.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--text-on-blue)}.btn-primary:hover{background:var(--accent-hover);color:var(--text-on-blue)}.btn-light{background:var(--arc-white);color:var(--arc-black)}.btn-light:hover{background:var(--arc-gray-200);color:var(--arc-black)}.btn-secondary{background:transparent;color:var(--text-primary);border:1px solid var(--border-strong)}.btn-secondary:hover{background:#ffffff0f;color:var(--text-primary)}:root[data-theme=light] .btn-secondary:hover,.arc-on-light .btn-secondary:hover{background:#08080a0a}.btn-ghost{background:transparent;color:var(--text-secondary);border:1px solid transparent;clip-path:none}.btn-ghost:hover{background:transparent;color:var(--text-primary)}.btn-sm{padding:8px 16px;font-size:13px;--chamfer: 6px}.btn-sm svg{width:14px;height:14px}.btn-lg{padding:15px 32px;font-size:16px;--chamfer: 10px}.btn-lg svg{width:18px;height:18px}.installbar{display:flex;align-items:center;height:48px;padding:0 var(--space-2) 0 var(--space-4);border:var(--border-width) solid var(--border-default);background:var(--surface-inset);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-primary);clip-path:polygon(var(--chamfer) 0,100% 0,100% calc(100% - var(--chamfer)),calc(100% - var(--chamfer)) 100%,0 100%,0 var(--chamfer))}.installbar-prompt{color:var(--text-muted);margin-right:10px;-webkit-user-select:none;user-select:none}.installbar code{flex:1;font-size:14px;white-space:nowrap;overflow-x:auto}.copy-button{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 8px;border:1px solid transparent;border-radius:var(--radius-xs);background:transparent;color:var(--text-muted);font-family:var(--font-sans);font-size:12px;font-weight:500;transition:color var(--motion),background var(--motion)}.copy-button:hover{color:var(--text);background:var(--surface-2)}.copy-button svg{width:16px;height:16px}.copy-button.copied{color:var(--success)}.version-badge{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px;border-radius:999px;font-size:12px;font-weight:600;line-height:1;white-space:nowrap;border:1px solid var(--border);background:var(--surface);color:var(--text-2)}.version-badge-stable{color:var(--success);background:var(--success-bg);border-color:var(--success-border)}.version-badge-beta{color:var(--warn);background:var(--warn-bg);border-color:var(--warn-border)}.version-badge-deprecated{color:var(--danger);background:var(--danger-bg);border-color:var(--danger-border)}.version-badge .version-badge-status{font-weight:500;text-transform:capitalize}.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 7px;border:1px solid var(--border-default);border-radius:2px;background:var(--surface-inset);color:var(--text-secondary);font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:12px;font-weight:var(--fw-medium);letter-spacing:.03em}.pill code{font-size:12px}.card-grid{display:grid;gap:16px;grid-template-columns:repeat(var(--cols, 3),minmax(0,1fr))}.card{display:flex;flex-direction:column;gap:8px;padding:var(--space-6);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-raised);color:var(--text-primary);transition:border-color var(--motion),box-shadow var(--motion),transform var(--motion)}a.card:hover{text-decoration:none;transform:translateY(-2px);border-color:var(--border-blue);box-shadow:var(--glow-blue)}.card-inset{background:var(--surface-inset)}.card-outline{background:transparent;border-color:var(--border-default)}.card-blue{background:var(--accent);border-color:transparent;color:var(--text-on-blue)}.card-chamfer{--chamfer: var(--chamfer-lg);border-radius:0;clip-path:polygon(var(--chamfer) 0,100% 0,100% calc(100% - var(--chamfer)),calc(100% - var(--chamfer)) 100%,0 100%,0 var(--chamfer))}.card-title{font-size:18px;font-weight:600;line-height:1.3;display:flex;align-items:center;gap:8px}.card-body{font-size:14px;line-height:1.5;color:var(--text-2)}.card-link{margin-top:auto;padding-top:8px;display:inline-flex;align-items:center;gap:4px;font-size:14px;font-weight:500;color:var(--accent)}.card-link svg{width:14px;height:14px;transition:transform var(--motion)}a.card:hover .card-link svg{transform:translate(2px)}.codesample{margin:0 0 20px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--code-bg);color:var(--code-text);overflow:hidden}.codesample-header{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:36px;padding:0 6px 0 16px;background:var(--code-header);border-bottom:1px solid var(--code-border)}.codesample-lang{font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--code-muted)}.codesample-tabs{display:flex;align-items:stretch;gap:4px;min-height:36px;overflow-x:auto;scrollbar-width:none}.codesample-tabs::-webkit-scrollbar{display:none}.codesample-tab{position:relative;display:inline-flex;align-items:center;padding:12px 16px;border:0;background:none;color:var(--code-muted);font-family:var(--font-display);font-size:14px;font-weight:var(--fw-medium);white-space:nowrap;transition:color var(--dur-fast) var(--ease-out)}.codesample-tab:hover{color:var(--code-text)}.codesample-tab[aria-selected=true]{color:var(--arc-white);font-weight:var(--fw-semibold)}.codesample-tab[aria-selected=true]:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--accent)}.codesample-tab:focus-visible{outline-offset:-2px}.codesample .copy-button{color:var(--code-muted)}.codesample .copy-button:hover{color:var(--arc-white);background:#ffffff14}.codesample .copy-button.copied{color:var(--status-success)}.codesample pre{margin:0;padding:16px 20px;overflow-x:auto;font-size:14px;line-height:1.6;white-space:pre;-moz-tab-size:4;tab-size:4;color:var(--code-text)}.codesample pre code{display:block;padding:0;background:transparent;border:0;font-size:inherit;color:inherit;white-space:pre}.codesample .hljs{background:transparent;padding:0}.codesample-output{border-top:1px solid var(--code-border)}.codesample-output .codesample-header{border-bottom:1px solid var(--code-border)}.codesample-output pre{color:var(--code-muted)}.codesample-output pre code{color:inherit}.callout{display:grid;grid-template-columns:20px minmax(0,1fr);gap:4px 12px;margin:0 0 20px;padding:14px 16px;border:1px solid var(--callout-border);border-left:4px solid var(--callout-color);border-radius:var(--radius-sm);background:var(--callout-bg);color:var(--text)}.callout-note{--callout-color: var(--info);--callout-bg: var(--info-bg);--callout-border: var(--info-border)}.callout-tip{--callout-color: var(--success);--callout-bg: var(--success-bg);--callout-border: var(--success-border)}.callout-warning{--callout-color: var(--warn);--callout-bg: var(--warn-bg);--callout-border: var(--warn-border)}.callout-danger{--callout-color: var(--danger);--callout-bg: var(--danger-bg);--callout-border: var(--danger-border)}.callout-icon{width:20px;height:20px;color:var(--callout-color);margin-top:1px}.callout-icon svg{width:20px;height:20px}.callout-label{font-size:14px;font-weight:600;color:var(--callout-color);line-height:22px}.callout-body{grid-column:2;font-size:15px;line-height:1.6}.callout-body>:last-child{margin-bottom:0}.callout-body :not(pre)>code{background:color-mix(in srgb,var(--callout-color) 10%,var(--bg))}.callout-body .codesample{margin-top:8px}.table-wrap{overflow-x:auto;margin:0 0 20px;border:1px solid var(--border);border-radius:var(--radius-md)}.table-wrap table,table.table{width:100%;border-collapse:collapse;font-size:14px;line-height:1.5}.table-wrap th,.table-wrap td{text-align:left;vertical-align:top;padding:10px 12px;border-bottom:1px solid var(--border)}.table-wrap th{background:var(--surface-2);font-weight:600;color:var(--text);white-space:nowrap}.table-wrap tbody tr:nth-child(2n){background:var(--surface)}.table-wrap tr:last-child td{border-bottom:0}.table-wrap td p:last-child{margin-bottom:0}.markdown{font-size:16px;line-height:1.65;color:var(--text)}.markdown>:first-child{margin-top:0}.markdown h1{margin:0 0 20px}.markdown h2{margin:48px 0 16px;padding-bottom:8px;border-bottom:1px solid var(--border);scroll-margin-top:calc(var(--header-h) + 24px)}.markdown h3{margin:32px 0 12px;scroll-margin-top:calc(var(--header-h) + 24px)}.markdown h4{margin:24px 0 8px}.markdown h1 code,.markdown h2 code,.markdown h3 code,.markdown h4 code{font-size:.85em;font-weight:600;background:transparent;border:0;padding:0}.heading-anchor{margin-left:8px;color:var(--text-muted);opacity:0;font-weight:400;text-decoration:none;transition:opacity var(--motion)}h2:hover .heading-anchor,h3:hover .heading-anchor,h4:hover .heading-anchor,.heading-anchor:focus-visible{opacity:1}.heading-anchor:hover{color:var(--accent);text-decoration:none}.markdown p{margin:0 0 16px}.markdown ul,.markdown ol{margin:0 0 16px;padding-left:26px}.markdown li+li{margin-top:6px}.markdown li>p{margin-bottom:8px}.markdown strong{font-weight:600}.markdown :not(pre)>code{background:var(--inline-code-bg);color:var(--inline-code-text);border-radius:var(--radius-xs);padding:.15em .4em;font-size:.9em;overflow-wrap:anywhere}.markdown a>code{color:var(--accent)}.markdown .table-wrap :not(pre)>code{overflow-wrap:normal;white-space:nowrap}.markdown hr{border:0;border-top:1px solid var(--border);margin:32px 0}.markdown blockquote{margin:0 0 16px;padding:4px 16px;border-left:3px solid var(--border-strong);color:var(--text-2)}.markdown blockquote p:last-child{margin-bottom:0}.markdown img{max-width:100%;border-radius:var(--radius-md)}.markdown.inline{display:inline}.markdown.inline p{display:inline;margin:0}.markdown.inline p+p{margin-top:6px}.lead p{font-size:18px;line-height:1.6;color:var(--text-2)}.markdown input[type=checkbox]{margin-right:6px}.api .see-also{color:var(--text-2);font-size:14px;margin-bottom:24px}.api-symbol{margin-top:56px;scroll-margin-top:calc(var(--header-h) + 24px)}.api-symbol .api-symbol{margin-top:32px;padding-left:20px;border-left:2px solid var(--border)}.api-heading{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px;line-height:1.3;letter-spacing:-.01em;scroll-margin-top:calc(var(--header-h) + 24px)}h2.api-heading{font-size:22px;padding-bottom:10px;border-bottom:1px solid var(--border)}h3.api-heading{font-size:18px}.api-heading code{font-size:.95em;font-weight:600;overflow-wrap:anywhere}.api-prefix{color:var(--text-muted);font-weight:400}.api-kind-badge{font-family:var(--font-mono);font-size:12px;font-weight:500;letter-spacing:.02em;color:var(--accent);background:var(--accent-soft);border-radius:var(--radius-xs);padding:2px 6px;line-height:1.4}.signature{margin:0 0 16px;border:1px solid var(--code-border);border-radius:var(--radius-md);background:var(--code-bg);overflow:hidden}.signature pre{margin:0;padding:14px 20px;overflow-x:auto;font-size:14px;line-height:1.6;color:var(--code-text);white-space:pre}.signature pre code{background:transparent;padding:0;font-size:inherit}.signature .hljs{background:transparent;padding:0}.bases{color:var(--text-2);font-size:14px;margin:0 0 12px}.bases code{font-size:13px}.badge-deprecated{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;font-size:12px;font-weight:600;color:var(--warn);background:var(--warn-bg);border:1px solid var(--warn-border);margin:0 0 12px}.api-block{margin:16px 0 20px}.api-block-title{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px}.api-block .table-wrap{margin-bottom:0}.param-table th:first-child{min-width:120px}.param-table code,.api-list code,.typed-line code{font-size:13px;background:var(--inline-code-bg);color:var(--inline-code-text);border-radius:var(--radius-xs);padding:.1em .35em;overflow-wrap:anywhere}.markdown code.type,code.type{color:var(--accent);background:var(--accent-soft)}.api-list{margin:0;padding-left:20px;font-size:15px}.api-list li+li{margin-top:6px}.api-list .markdown.inline{display:inline;margin-left:6px}.api-list .markdown.inline p{display:inline}.typed-line{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;font-size:15px}@media(max-width:639px){.api-symbol .api-symbol{padding-left:12px}h2.api-heading{font-size:20px}}
