@font-face{font-family:Roboto Condensed;src:url(./RobotoCondensed-Regular.DyQQCppD.ttf)format("truetype");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Roboto Condensed;src:url(./RobotoCondensed-Bold.MA5YGEbs.ttf)format("truetype");font-style:normal;font-weight:700;font-display:swap}@font-face{font-family:Noto Sans Display;src:url(./noto-sans-display-latin-400.D2NFHUz2.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Noto Sans Display;src:url(./noto-sans-display-latin-600.DI1yohqx.woff2)format("woff2");font-style:normal;font-weight:600;font-display:swap}:root{--paper:#fff;--wash:#f5f7fa;--ink:#172033;--muted-ink:#5e6878;--line:#d9dee8;--accent:#4269d0;--success:#237a57;--warning:#8a5a00;--error:#b42318;--visited:#665980;--code-paper:#282c34;--code-ink:#f4f6fa;--display-font:"Roboto Condensed", "Arial Narrow", Arial, sans-serif;--body-font:"Noto Sans Display", Arial, sans-serif;--code-font:ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace;--content-max:90rem;--article-max:48rem;--sidebar-width:15.5rem;--contents-width:14rem;--radius:4px;--code-radius:10px;--bg:var(--paper);--fg:var(--ink);--muted:var(--muted-ink);--surface:var(--wash);--border:var(--line);--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--ease-drawer:cubic-bezier(.32, .72, 0, 1);--duration-press:.14s;--duration-popover:.16s;--duration-popover-exit:.12s;--duration-drawer-enter:.32s;--duration-drawer-exit:.22s;--duration-backdrop:.25s;--duration-icon:.14s;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--paper:#11151d;--wash:#181e28;--ink:#e9edf4;--muted-ink:#aab4c4;--line:#394354;--accent:#86a5ff;--success:#62c99a;--warning:#efc46d;--error:#ff8a80;--visited:#c2afe8;--code-paper:#1a1f29;--code-ink:#f0f3f8;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{background:var(--paper);scroll-padding-top:6rem}body{background:var(--paper);min-width:20rem;color:var(--ink);font-family:var(--body-font);text-rendering:optimizelegibility;margin:0;font-size:1rem;line-height:1.65}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:var(--accent);text-underline-offset:.16em;text-decoration-thickness:1px}a:visited:not(.site-brand){color:var(--visited)}a:hover{text-decoration-thickness:2px}:focus-visible{outline:3px solid color-mix(in srgb, var(--accent) 72%, transparent);outline-offset:3px}h1,h2,h3,h4{color:var(--ink);font-family:var(--display-font);text-wrap:balance;font-weight:700;line-height:1.1}h1{letter-spacing:-.025em;font-size:clamp(2.35rem,6vw,3.75rem)}h2{font-size:clamp(1.65rem,3vw,2.1rem)}h3{font-size:1.25rem}p,li,dd{text-wrap:pretty}img,canvas{max-width:100%}code,pre{font-family:var(--code-font);font-size:.9em}pre{max-width:100%}.visually-hidden{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.skip-link{z-index:1000;border:1px solid var(--ink);border-radius:var(--radius);background:var(--paper);color:var(--ink);padding:.65rem .85rem;font-weight:600;position:fixed;top:.5rem;left:.5rem;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.site-main{width:min(100%, var(--content-max));min-height:62vh;margin:0 auto;padding:3rem clamp(1rem,4vw,4rem) 5rem}.site-main.docs-main{width:100%;max-width:none;padding-inline:clamp(1rem,3vw,3rem)}.prose{min-width:0;max-width:var(--article-max)}.prose>:first-child{margin-top:0}.prose h1{margin:0 0 1.25rem}.prose h2{border-top:1px solid var(--line);margin:3rem 0 1rem;padding-top:.25rem}.prose h3{margin:2rem 0 .75rem}.prose p,.prose li{max-width:44rem}.code-surface,.prose pre{border:1px solid color-mix(in srgb, var(--code-ink) 10%, transparent);border-radius:var(--code-radius);background:var(--code-paper);color:var(--code-ink);font-family:var(--code-font);padding:1rem;font-size:.85rem;line-height:1.6;overflow-x:auto}.prose pre{margin:1.5rem 0}.prose pre code.hljs,.prose pre.hljs,.copy-code pre.hljs,.guide-code-copy pre code.hljs,.scroll-region pre.hljs{background:0 0!important}.hljs-comment,.hljs-quote{font-style:italic;color:#a8b0bd!important}.hljs-section,.hljs-name,.hljs-selector-tag,.hljs-deletion,.hljs-subst,.hljs-tag{color:#ec767f!important}.copy-code,.guide-code-copy,.code-tabs .scroll-region{min-width:0;max-width:100%}.copy-code .code-body,.guide-code-copy pre,.code-tabs .scroll-region{max-width:100%;overflow-x:auto}.copy-code pre,.guide-code-copy pre,.code-tabs pre{white-space:pre;word-break:normal;overflow-wrap:normal;max-width:100%}.guide-code-copy{margin:1.5rem 0;position:relative}.guide-code-copy pre{margin:0;padding:1rem 2.75rem 1rem 1rem}.guide-code-copy button{z-index:1;border-radius:var(--radius);width:2rem;min-width:2rem;height:2rem;min-height:2rem;color:color-mix(in srgb, var(--code-ink) 55%, transparent);cursor:pointer;transition:background-color .12s ease, color .12s ease, transform var(--duration-press) var(--ease-out);background:0 0;border:0;place-items:center;padding:0;display:grid;position:absolute;top:.5rem;right:.5rem}.guide-code-copy button:active{transform:scale(.97)}@media (hover:hover) and (pointer:fine){.guide-code-copy button:hover{background:color-mix(in srgb, var(--code-ink) 12%, transparent);color:var(--code-ink)}}.guide-code-copy button:after{content:"";position:absolute;inset:-6px}.guide-code-copy button svg{pointer-events:none;display:block}.guide-code-copy [role=status]:not(.visually-hidden){min-height:1.4em;color:var(--muted);margin-top:.4rem;font-size:.82rem;display:block}.prose :is(p,li,h3) code{background:var(--wash);-webkit-box-decoration-break:clone;box-decoration-break:clone;overflow-wrap:anywhere;border-radius:2px;padding:.08em .28em}@media (width<=47.99rem){html{scroll-padding-top:5rem}body{font-size:.98rem}.site-main,.site-main.docs-main{padding:2rem 1rem 4rem}.prose h1{font-size:clamp(2.2rem,12vw,3rem)}}@media (forced-colors:active){:focus-visible{outline-color:highlight}.prose h2{border-color:canvastext}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}::backdrop{transition-duration:.01ms!important;animation-duration:.01ms!important}}.site-chrome{--chrome-link:var(--muted-ink)}.site-header{z-index:100;border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--paper) 96%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0}.site-header__inner{width:min(100%, var(--content-max));grid-template-columns:auto 1fr auto;align-items:center;gap:2.75rem;min-height:4.5rem;margin:0 auto;padding:0 clamp(1rem,4vw,4rem);display:grid}.site-brand{color:var(--ink);font-family:var(--display-font);letter-spacing:-.025em;font-size:1.45rem;font-weight:700;line-height:1;text-decoration:none}.site-brand:visited{color:var(--ink)}.desktop-nav,.site-actions{align-items:center;gap:1.75rem;display:flex}.desktop-nav a,.site-actions a,.site-actions button{min-height:44px;color:var(--chrome-link);background:0 0;border:0;align-items:center;font-size:.92rem;font-weight:600;text-decoration:none;display:inline-flex}.desktop-nav a[aria-current=page]{color:var(--ink)}.desktop-nav a[aria-current=page]:after{background:var(--accent);content:"";height:2px;margin-top:2.55rem;position:absolute;inset-inline:0}.desktop-nav a{position:relative}.site-actions{gap:1.25rem}.site-actions:before{background:var(--line);content:"";width:1px;height:1.5rem}.appearance{cursor:pointer}.github-link{width:44px;color:var(--chrome-link);justify-content:center}.github-link:hover,.github-link:focus-visible{color:var(--ink)}.github-link svg{flex-shrink:0;display:block}.mobile-search-trigger,.menu-trigger{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);width:44px;height:44px;color:var(--ink);place-items:center;gap:4px;padding:11px;display:none}.menu-trigger span{background:currentColor;width:20px;height:1px;display:block}.site-menu,.chapter-dialog{pointer-events:none;width:100%;max-width:none;height:100%;max-height:none;transition:overlay var(--duration-drawer-exit) allow-discrete, display var(--duration-drawer-exit) allow-discrete;background:0 0;border:0;margin:0;padding:0}.site-menu[open],.chapter-dialog[open]{pointer-events:auto;transition:overlay var(--duration-drawer-enter) allow-discrete, display var(--duration-drawer-enter) allow-discrete}.site-menu::backdrop,.chapter-dialog::backdrop{opacity:0;transition:opacity var(--duration-drawer-exit) var(--ease-out), overlay var(--duration-drawer-exit) allow-discrete, display var(--duration-drawer-exit) allow-discrete;background:#0000006b}.site-menu[open]::backdrop,.chapter-dialog[open]::backdrop{opacity:1;transition:opacity var(--duration-backdrop) var(--ease-out), overlay var(--duration-drawer-enter) allow-discrete, display var(--duration-drawer-enter) allow-discrete}@starting-style{.site-menu[open]::backdrop,.chapter-dialog[open]::backdrop{opacity:0}}.site-menu__panel,.chapter-dialog__panel{background:var(--paper);width:min(88vw,24rem);min-height:100%;transition:transform var(--duration-drawer-exit) var(--ease-drawer);margin-left:auto;padding:1rem 1.25rem 2rem;transform:translate(100%);box-shadow:-12px 0 32px #0000002e}.site-menu[open] .site-menu__panel,.chapter-dialog[open] .chapter-dialog__panel{transition:transform var(--duration-drawer-enter) var(--ease-drawer);transform:translate(0)}@starting-style{.site-menu[open] .site-menu__panel,.chapter-dialog[open] .chapter-dialog__panel{transform:translate(100%)}}.site-menu__heading,.chapter-dialog__heading{border-bottom:1px solid var(--line);min-height:3.5rem;font-family:var(--display-font);justify-content:space-between;align-items:center;font-size:1.25rem;font-weight:700;display:flex}.site-menu__heading button,.chapter-dialog__heading button{min-width:44px;min-height:44px;color:var(--muted-ink);cursor:pointer;background:0 0;border:0;font-size:.85rem;font-weight:600}.site-menu nav{margin-top:1rem;display:grid}.site-menu nav a{border-bottom:1px solid var(--line);min-height:52px;color:var(--ink);font-family:var(--display-font);align-items:center;font-size:1.35rem;font-weight:700;text-decoration:none;display:flex}.site-menu nav a[aria-current=page]{color:var(--accent)}.mobile-appearance{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);width:100%;min-height:48px;color:var(--ink);margin-top:1.5rem;font-weight:600}.site-footer{border-top:1px solid var(--line);background:var(--wash)}.site-footer__inner{width:min(100%, var(--content-max));grid-template-columns:minmax(15rem,1fr) auto;gap:3rem;margin:0 auto;padding:3rem clamp(1rem,4vw,4rem);display:grid}.site-footer p{max-width:30rem;color:var(--muted-ink);margin:.75rem 0 0}.site-footer nav{grid-template-columns:repeat(2,minmax(7rem,1fr));gap:.65rem 2rem;display:grid}.site-footer nav a{color:var(--ink);font-size:.9rem}.docs-layout{grid-template-columns:var(--sidebar-width) minmax(0, var(--article-max)) var(--contents-width);justify-content:center;gap:clamp(2rem,4vw,4rem);min-width:0;display:grid}.docs-rail,.contents-rail,.docs-article{min-width:0}.docs-sidebar section+section,.docs-sidebar ul+section,.docs-sidebar section+ul,.docs-sidebar ul+ul{margin-top:1.75rem}.docs-sidebar h2,.on-this-page h2{color:var(--ink);font-family:var(--display-font);letter-spacing:.1em;text-transform:uppercase;margin:0 0 .55rem;font-size:.77rem;font-weight:700}.docs-sidebar ul,.on-this-page ol{margin:0;padding:0;list-style:none}.docs-sidebar a{min-height:36px;color:var(--muted-ink);border-left:2px solid #0000;padding:.38rem .6rem;font-size:.88rem;line-height:1.4;text-decoration:none;display:block}.docs-sidebar a:hover{color:var(--ink)}.docs-sidebar a[aria-current=page]{border-left-color:var(--accent);color:var(--ink);font-weight:600}.contents-rail{border-left:1px solid var(--line);align-self:start;max-height:calc(100vh - 8rem);padding-left:1.25rem;position:sticky;top:7rem;overflow-y:auto}.on-this-page li+li{margin-top:.4rem}.on-this-page li.subsection{padding-left:.75rem}.on-this-page a{color:var(--muted-ink);font-size:.8rem;line-height:1.35;text-decoration:none}.on-this-page a:hover{color:var(--ink);text-decoration:underline}.breadcrumbs{margin-bottom:2rem}.breadcrumbs ol{color:var(--muted-ink);flex-wrap:wrap;gap:.45rem;margin:0;padding:0;font-size:.82rem;list-style:none;display:flex}.breadcrumbs li+li:before{color:var(--line);content:"/";margin-right:.45rem}.breadcrumbs a{color:var(--muted-ink)}.prev-next{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:1rem;margin-top:4rem;padding-top:1.5rem;display:grid}.prev-next a{min-width:0;color:var(--ink);text-decoration:none;display:grid}.prev-next .next{text-align:right}.prev-next span{color:var(--muted-ink);text-transform:uppercase;letter-spacing:.08em;font-size:.75rem}.prev-next strong{font-family:var(--display-font);margin-top:.25rem;font-size:1rem}.docs-mobile-tools,.docs-skip{display:none}.chapter-dialog[open]{display:block}@media (width<=74.99rem){.docs-layout{grid-template-columns:minmax(0, var(--article-max))}.docs-rail,.contents-rail{display:none}.docs-mobile-tools{width:min(100%, var(--article-max));border-bottom:1px solid var(--line);justify-content:space-between;align-items:start;gap:1rem;margin:0 auto 2rem;display:flex}.docs-mobile-tools>button,.docs-mobile-tools summary{min-height:44px;color:var(--ink);cursor:pointer;background:0 0;border:0;align-items:center;font-weight:600;display:flex}.docs-mobile-tools details{position:relative}.docs-mobile-tools details .on-this-page{z-index:20;border:1px solid var(--line);background:var(--paper);transform-origin:100% 0;opacity:0;width:min(20rem,100vw - 2rem);max-height:60vh;transition:opacity var(--duration-popover-exit) var(--ease-out), transform var(--duration-popover-exit) var(--ease-out);padding:1rem;position:absolute;right:0;overflow-y:auto;transform:scale(.97);box-shadow:0 8px 24px #0000001f}.docs-mobile-tools details[open] .on-this-page{opacity:1;transition:opacity var(--duration-popover) var(--ease-out), transform var(--duration-popover) var(--ease-out);transform:scale(1)}@starting-style{.docs-mobile-tools details[open] .on-this-page{opacity:0;transform:scale(.97)}}.chapter-dialog__panel{margin-left:0;margin-right:auto;transform:translate(-100%);box-shadow:12px 0 32px #0000002e}.chapter-dialog[open] .chapter-dialog__panel{transform:translate(0)}@starting-style{.chapter-dialog[open] .chapter-dialog__panel{transform:translate(-100%)}}.chapter-dialog .docs-sidebar{margin-top:1rem}.docs-skip{display:block}}@media (width<=63.99rem){.site-header__inner{min-height:4rem;padding-inline:1rem}.desktop-nav,.desktop-actions{display:none}.site-header__inner{grid-template-columns:1fr auto auto;gap:.5rem}.mobile-search-trigger{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);min-width:64px;height:44px;color:var(--ink);cursor:pointer;font:600 .78rem/1 var(--body-font);justify-content:center;align-items:center;display:inline-flex}.menu-trigger{display:grid}.site-menu[open]{display:block}.site-footer__inner{grid-template-columns:1fr;gap:2rem;padding:2.5rem 1rem}.site-footer nav{grid-template-columns:1fr 1fr}.docs-mobile-tools,.breadcrumbs{margin-bottom:1.5rem}.prev-next{grid-template-columns:1fr}.prev-next .next{text-align:left}}@media (forced-colors:active){.site-header{-webkit-backdrop-filter:none;backdrop-filter:none;background:canvas}.desktop-nav a[aria-current=page]:after,.menu-trigger span{background:canvastext}.docs-sidebar a[aria-current=page]{border-left-color:highlight}}.benchmarks{contain:paint;border-top:1px solid var(--line);min-width:0;padding-block:clamp(2.5rem,5vw,4rem);overflow-x:clip}.bench-intro{text-align:center;margin-bottom:1.5rem}.bench-intro h2{margin:0;font-size:clamp(1.75rem,3.5vw,2.5rem);line-height:1.1}.bench-intro>p{color:var(--muted);margin:.4rem 0 0;font-size:.95rem}.bench-tabs{min-width:0;max-width:100%;overflow-x:clip}.bench-tabs-list{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:center;gap:.1rem 1.25rem;display:flex}.bench-tabs-trigger{min-height:2.25rem;color:var(--muted);font:600 .85rem/1.2 var(--body-font);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:.45rem .15rem;position:relative}.bench-tabs-trigger:after{content:"";position:absolute;inset:-4px 0}.bench-tabs-trigger:hover{color:var(--fg)}.bench-tabs-trigger[data-state=active]{color:var(--accent);border-bottom-color:var(--accent)}.bench-tabs-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.bench-tabs-content{padding-top:1.25rem}.bench-tabs-chart{border:1px solid var(--line);border-radius:var(--code-radius);background:var(--paper);min-width:0;padding:.5rem .75rem}.bench-chart-img{width:100%;max-width:100%;height:auto;display:block}.bench-chart--dark,:root[data-theme=dark] .bench-chart--light{display:none}:root[data-theme=dark] .bench-chart--dark{display:block}.bench-table-wrap{border:1px solid var(--line);border-radius:var(--code-radius);background:var(--paper);max-width:44rem;margin-inline:auto;display:block;overflow-x:auto}.benchmarks table{table-layout:fixed;border-collapse:collapse;width:100%;min-width:34rem;font-size:.88rem}.benchmarks .bench-col-feature{width:auto}.benchmarks .bench-col-lib{width:16%}.benchmarks th,.benchmarks td{border-bottom:1px solid var(--line);vertical-align:middle;padding:.6rem 1rem}.benchmarks tbody tr:last-child th,.benchmarks tbody tr:last-child td{border-bottom:none}.benchmarks thead th{background:var(--surface);letter-spacing:.02em;font-size:.78rem;font-weight:700}.benchmarks thead th:not(:first-child),.benchmarks tbody td{text-align:center}.benchmarks tbody th{text-align:left;font-weight:600}.benchmarks tbody th small{color:var(--muted);margin-top:.1rem;font-size:.75rem;font-weight:400;display:block}.benchmarks td{white-space:nowrap}.benchmarks td small{color:var(--muted);white-space:normal;font-size:.72rem;display:block}.benchmarks .mark{border-radius:50%;place-items:center;width:1.4rem;height:1.4rem;font-size:.78rem;font-weight:700;display:inline-grid}.benchmarks .mark--yes{background:color-mix(in srgb, var(--success) 15%, transparent);color:var(--success)}.benchmarks .mark--partial{background:color-mix(in srgb, var(--warning) 18%, transparent);color:var(--warning)}.benchmarks .mark--no{background:color-mix(in srgb, var(--error) 13%, transparent);color:var(--error)}@media (width<=42rem){.benchmarks .bench-col-lib{width:20%}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}pre code.hljs{padding:1em;display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{color:#abb2bf;background:#282c34}.hljs-comment,.hljs-quote{color:#5c6370;font-style:italic}.hljs-doctag,.hljs-keyword,.hljs-formula{color:#c678dd}.hljs-section,.hljs-name,.hljs-selector-tag,.hljs-deletion,.hljs-subst{color:#e06c75}.hljs-literal{color:#56b6c2}.hljs-string,.hljs-regexp,.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string{color:#98c379}.hljs-attr,.hljs-variable,.hljs-template-variable,.hljs-type,.hljs-selector-class,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-number{color:#d19a66}.hljs-symbol,.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-title{color:#61aeee}.hljs-built_in,.hljs-title.class_,.hljs-class .hljs-title{color:#e6c07b}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline}.app-contents{display:contents}.gg-example-frame{--bg:#fff;--fg:#1f2328;--muted:#57606a;--surface:#f6f8fa;--border:#d0d7de;--accent:#4269d0;--gg-toolActive:var(--fg);--gg-toolInactive:var(--muted);background:var(--bg);min-width:0;color:var(--fg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.55;overflow:hidden}:root[data-theme=dark] .gg-example-frame{--bg:#16181d;--fg:#e6e8eb;--muted:#9aa2ab;--surface:#1f232b;--border:#343a44;--accent:#7ea1f0}html[data-vr] *,html[data-vr] :before,html[data-vr] :after,html[data-vr] ::backdrop,html[data-visual-test] *,html[data-visual-test] :before,html[data-visual-test] :after,html[data-visual-test] ::backdrop{caret-color:#0000!important;scroll-behavior:auto!important;transition:none!important;animation:none!important}html[data-vr] .site-chrome,html[data-vr] .example-prose,html[data-vr] .skip-link,html[data-vr] .site-menu,html[data-vr] .chapter-dialog,html[data-vr] .gg-demo-chrome{display:none!important}html[data-vr] .site-main{width:auto;max-width:none;min-height:0;margin:0;padding:0}html[data-vr] .gg-example-frame{z-index:999;position:fixed;top:0;left:0;width:var(--example-vr-width)!important;max-width:none!important;height:var(--example-vr-height)!important}
