@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.00az9qtie3ho1.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.3j-a226dh71aj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.2gwoz23eiro2t.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.0i3h3th1vs4m7.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.0zr6hhvz-h9nw.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.T19VSG_className{font-family:Geist,Geist Fallback;font-style:normal}.T19VSG_variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.27spqqad3wyeo.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.3f4zuumv8svu0.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.34r5yzckw0h2s.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.2jyz_zw3a8jit.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.30bdpjkrtcces.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.1v5bejj26fx9h.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}._8Li5zG_className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}._8Li5zG_variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ul-bg:#f6f6f7;--ul-surface:#fff;--ul-surface-2:#ededef;--ul-surface-3:#e0e0e4;--ul-raised:#fff;--ul-fg:#111113;--ul-fg-2:#55555c;--ul-fg-3:#85858d;--ul-line:#1111131a;--ul-line-strong:#11111333;--ul-accent:#111113;--ul-accent-fg:#fff;--ul-accent-soft:#1111130f;--ul-danger:#b3261e;--ul-danger-soft:#b3261e1a;--ul-warning:#9a6a00;--ul-data-1:#2563eb;--ul-data-2:#7c3aed;--ul-data-3:#ea7c00;--ul-data-4:#e0336f;--ul-data-5:#0891b2;--ul-data-tint:38%;--ul-data-dim:12%;--ul-shadow-1:0 1px 2px #1111130f;--ul-shadow-2:0 8px 24px #1314171a, 0 1px 3px #1314170f;--ul-shadow-3:0 24px 60px #13141729, 0 4px 12px #1314170f;--ul-radius-xs:6px;--ul-radius-sm:10px;--ul-radius-md:14px;--ul-radius-lg:20px;--ul-radius-pill:999px;--ul-h-sm:32px;--ul-h-md:40px;--ul-h-lg:48px;--ul-font:var(--font-geist-sans,ui-sans-serif), system-ui, sans-serif;--ul-font-display:var(--ul-font);--ul-font-code:var(--font-geist-mono,ui-monospace), SFMono-Regular, Menlo, monospace;--ul-text-xs:.75rem;--ul-text-sm:.875rem;--ul-text-md:1rem;--ul-text-lg:1.125rem;--ul-ease-out:cubic-bezier(.22, 1, .36, 1);--ul-ease-in:cubic-bezier(.7, 0, .84, 0);--ul-ease-in-out:cubic-bezier(.65, 0, .35, 1);--ul-spring-smooth:linear(0, .0314, .1053, .1995, .3001, .3984, .4899, .5721, .6442, .7064, .7592, .8035, .8405, .871, .8961, .9165, .9332, .9466, .9575, .9662, .9732, .9787, .9832, .9867, .9895, .9918, .9935, .9949, .996, .9969, .9975, .9981, 1);--ul-spring-snappy:linear(0, .0235, .0828, .1641, .2566, .3529, .4475, .5366, .6182, .6909, .7544, .8087, .8543, .892, .9226, .947, .966, .9805, .9913, .9991, 1.0045, 1.0079, 1.01, 1.0109, 1.0111, 1.0107, 1.01, 1.009, 1.008, 1.0069, 1.0059, 1.0049, 1.004, 1.0032, 1.0026, 1.002, 1);--ul-spring-bouncy:linear(0, .0236, .0855, .1735, .2771, .3878, .4988, .6052, .7031, .7903, .8655, .9282, .9788, 1.0178, 1.0464, 1.0658, 1.0775, 1.0828, 1.0831, 1.0796, 1.0733, 1.0652, 1.0562, 1.0469, 1.0378, 1.0292, 1.0214, 1.0145, 1.0087, 1.004, 1.0002, .9973, .9953, .994, .9933, .993, .9932, .9936, .9942, .9949, .9957, .9964, .9972, .9979, 1);--ul-dur-instant:.1s;--ul-dur-fast:.16s;--ul-dur-base:.24s;--ul-dur-slow:.42s;--ul-dur-spring:.52s}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ul-bg:#111112;--ul-surface:#18181a;--ul-surface-2:#202023;--ul-surface-3:#2a2a2e;--ul-raised:#36363b;--ul-fg:#ededee;--ul-fg-2:#a1a1a8;--ul-fg-3:#6f6f77;--ul-line:#ffffff14;--ul-line-strong:#ffffff2e;--ul-accent:#ededee;--ul-accent-fg:#111113;--ul-accent-soft:#ffffff12;--ul-danger:#ff8d85;--ul-danger-soft:#ff8d8524;--ul-warning:#e6b450;--ul-data-1:#4d8dff;--ul-data-2:#9b5cff;--ul-data-3:#ff9524;--ul-data-4:#ff4f8b;--ul-data-5:#22c3dd;--ul-data-tint:44%;--ul-data-dim:14%;--ul-shadow-1:0 1px 2px #0000004d;--ul-shadow-2:0 8px 24px #0000005c;--ul-shadow-3:0 24px 60px #00000080}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ul-bg:#111112;--ul-surface:#18181a;--ul-surface-2:#202023;--ul-surface-3:#2a2a2e;--ul-raised:#36363b;--ul-fg:#ededee;--ul-fg-2:#a1a1a8;--ul-fg-3:#6f6f77;--ul-line:#ffffff14;--ul-line-strong:#ffffff2e;--ul-accent:#ededee;--ul-accent-fg:#111113;--ul-accent-soft:#ffffff12;--ul-danger:#ff8d85;--ul-danger-soft:#ff8d8524;--ul-warning:#e6b450;--ul-data-1:#4d8dff;--ul-data-2:#9b5cff;--ul-data-3:#ff9524;--ul-data-4:#ff4f8b;--ul-data-5:#22c3dd;--ul-data-tint:44%;--ul-data-dim:14%;--ul-shadow-1:0 1px 2px #0000004d;--ul-shadow-2:0 8px 24px #0000005c;--ul-shadow-3:0 24px 60px #00000080}}
:root{--page:2160px;--gutter:40px;--nav-h:76px;--section:clamp(96px, 12vw, 168px);--site-radius:0px;--ul-bg:#f2f2f2;--ul-fg:#000;--ul-fg-2:#0009;--ul-fg-3:#00000073;--ul-line:#0000001a;--ul-line-strong:#0003;--ul-accent:#000}:root[data-theme=dark]{--ul-bg:#0c0c0d;--ul-fg:#f2f2f2;--ul-accent:#f2f2f2}@media (max-width:820px){:root{--gutter:24px;--nav-h:64px}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--nav-h) + 16px)}body{background:var(--ul-bg);color:var(--ul-fg);font-family:var(--ul-font);letter-spacing:-.01em;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:16px;font-weight:450;line-height:1.4;overflow-x:clip}h1,h2,h3,h4,p,ul,ol,figure,dl,dd{margin:0}h1,h2,h3,h4,th,strong,b{font-weight:inherit}ul,ol{padding:0;list-style:none}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}img,svg{max-width:100%;display:block}::selection{background:var(--ul-accent);color:var(--ul-accent-fg)}:focus-visible{outline:2px solid var(--ul-fg);outline-offset:2px}.skip{z-index:100;background:var(--ul-fg);color:var(--ul-bg);padding:8px 12px;font-size:14px;position:absolute;top:-48px;left:12px}.skip:focus{top:12px}.wrap{width:100%;max-width:calc(var(--page) + var(--gutter) * 2);padding-inline:var(--gutter);margin-inline:auto}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.display{letter-spacing:-.02em;text-wrap:balance;line-height:1.08}.tld{color:color-mix(in oklab, var(--ul-fg) 28%, transparent);transition:color var(--ul-dur-base) var(--ul-ease-out);font-weight:400}@media (hover:hover) and (pointer:fine){a:hover .tld{color:var(--ul-fg-3)}}.btn{color:var(--ul-fg);font:inherit;letter-spacing:inherit;white-space:nowrap;cursor:pointer;text-decoration:underline;-webkit-text-decoration-color:var(--ul-line-strong);text-decoration-color:var(--ul-line-strong);text-underline-offset:5px;transition:text-decoration-color var(--ul-dur-fast) var(--ul-ease-out);background:0 0;border:0;align-items:center;gap:6px;padding:0;text-decoration-thickness:1px;display:inline-flex}.btn-primary:after{content:"→"}.btn-sm{font-size:14px}.btn:disabled{color:var(--ul-fg-3);cursor:default}@media (hover:hover) and (pointer:fine){.btn:not(:disabled):hover{text-decoration-color:currentColor}}.ul-demo-figure{letter-spacing:-.035em;font-size:40px;font-weight:500}.shiki{font-family:var(--ul-font-code);tab-size:2;margin:0;font-size:13px;line-height:1.65;background:0 0!important}.shiki span{color:var(--shiki-light)}:root[data-theme=dark] .shiki span{color:var(--shiki-dark)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .shiki span{color:var(--shiki-dark)}}code{font-family:var(--ul-font-code);font-size:.92em}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn{transition:none}}html[data-theme-fade]::view-transition-old(root){animation:none}html[data-theme-fade]::view-transition-new(root){mix-blend-mode:normal;animation:.42s cubic-bezier(.4,0,.2,1) both site-theme-fade}@keyframes site-theme-fade{0%{opacity:0}}:root[data-accent=violet]{--ul-accent:#6d43f5;--ul-accent-fg:#fff;--ul-accent-soft:#6d43f51a}:root[data-theme=dark][data-accent=violet]{--ul-accent:#a78bff;--ul-accent-fg:#14102a;--ul-accent-soft:#a78bff24}:root[data-accent=blue]{--ul-accent:#2563eb;--ul-accent-fg:#fff;--ul-accent-soft:#2563eb1a}:root[data-theme=dark][data-accent=blue]{--ul-accent:#6aa5ff;--ul-accent-fg:#07162e;--ul-accent-soft:#6aa5ff24}:root[data-accent=amber]{--ul-accent:#e09a12;--ul-accent-fg:#231600;--ul-accent-soft:#e09a121a}:root[data-theme=dark][data-accent=amber]{--ul-accent:#f5b84a;--ul-accent-fg:#231600;--ul-accent-soft:#f5b84a24}:root[data-accent=orange]{--ul-accent:#e2662c;--ul-accent-fg:#fff;--ul-accent-soft:#e2662c1a}:root[data-theme=dark][data-accent=orange]{--ul-accent:#ff9a62;--ul-accent-fg:#2a1003;--ul-accent-soft:#ff9a6224}:root[data-accent=rose]{--ul-accent:#d6457e;--ul-accent-fg:#fff;--ul-accent-soft:#d6457e1a}:root[data-theme=dark][data-accent=rose]{--ul-accent:#ff7fb0;--ul-accent-fg:#2b0716;--ul-accent-soft:#ff7fb024}:root[data-accent=custom]{--ul-accent:var(--ul-custom);--ul-accent-fg:var(--ul-custom-fg);--ul-accent-soft:color-mix(in srgb, var(--ul-custom) 10%, transparent)}:root[data-theme=dark][data-accent=custom]{--ul-accent-soft:color-mix(in srgb, var(--ul-custom) 14%, transparent)}[data-pixel-ink=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--ul-fg);--ul-bg:#0c0c0d;--ul-surface:#18181a;--ul-surface-2:#202023;--ul-surface-3:#2a2a2e;--ul-raised:#36363b;--ul-fg:#f2f2f2;--ul-fg-2:#a1a1a8;--ul-fg-3:#6f6f77;--ul-line:#ffffff14;--ul-line-strong:#ffffff2e;--ul-danger:#ff8d85;--ul-danger-soft:#ff8d8524;--ul-warning:#e6b450;--ul-data-1:#4d8dff;--ul-data-2:#9b5cff;--ul-data-3:#ff9524;--ul-data-4:#ff4f8b;--ul-data-5:#22c3dd;--ul-data-tint:44%;--ul-data-dim:14%;--ul-shadow-1:0 1px 2px #0000004d;--ul-shadow-2:0 8px 24px #0000005c;--ul-shadow-3:0 24px 60px #00000080}:root:not([data-accent]) [data-pixel-ink=dark]{--ul-accent:#f2f2f2;--ul-accent-fg:#111113;--ul-accent-soft:#ffffff12}[data-pixel-ink=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--ul-fg);--ul-bg:#f2f2f2;--ul-surface:#fff;--ul-surface-2:#ededef;--ul-surface-3:#e0e0e4;--ul-raised:#fff;--ul-fg:#000;--ul-fg-2:#0009;--ul-fg-3:#00000073;--ul-line:#0000001a;--ul-line-strong:#0003;--ul-danger:#b3261e;--ul-danger-soft:#b3261e1a;--ul-warning:#9a6a00;--ul-data-1:#2563eb;--ul-data-2:#7c3aed;--ul-data-3:#ea7c00;--ul-data-4:#e0336f;--ul-data-5:#0891b2;--ul-data-tint:38%;--ul-data-dim:12%;--ul-shadow-1:0 1px 2px #1111130f;--ul-shadow-2:0 8px 24px #1314171a, 0 1px 3px #1314170f;--ul-shadow-3:0 24px 60px #13141729, 0 4px 12px #1314170f}:root:not([data-accent]) [data-pixel-ink=light]{--ul-accent:#000;--ul-accent-fg:#fff;--ul-accent-soft:#0000000f}[data-pixel-ink=dark]{--ul-fg-2:#b9b9c0;--ul-fg-3:#93939b}[data-pixel-ink=light]{--ul-fg-2:#000000b3;--ul-fg-3:#00000094}
