@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-cyrillic-ext-wght-normal.1zrieox9119mb.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-cyrillic-wght-normal.2whpih27xg_2r.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-greek-ext-wght-normal.1xlj4-0oa5zql.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-greek-wght-normal.1fxkn-ggzj93z.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-vietnamese-wght-normal.1ahvy37o8m5gt.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-latin-ext-wght-normal.2ktx6yqc-sbf1.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-latin-wght-normal.0rpdhg_4ubdtf.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(../media/jetbrains-mono-cyrillic-ext-wght-normal.2yptelh8aqa_5.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(../media/jetbrains-mono-cyrillic-wght-normal.0s9lyv6-dq8sg.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(../media/jetbrains-mono-greek-wght-normal.0injkow7o_js7.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(../media/jetbrains-mono-vietnamese-wght-normal.04ex7n90-6tif.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(../media/jetbrains-mono-latin-ext-wght-normal.1wlj3nn-4xnfp.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(../media/jetbrains-mono-latin-wght-normal.2odd3csjijl0b.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
.Header-module__Af2_WG__header{z-index:50;height:var(--header-h);border-bottom:1px solid #0000;transition:background .3s,border-color .3s,-webkit-backdrop-filter .3s,backdrop-filter .3s;position:sticky;top:0}.Header-module__Af2_WG__header[data-scrolled=true]{-webkit-backdrop-filter:blur(14px)saturate(140%);border-bottom-color:var(--border);background:#0b0d0eb8}.Header-module__Af2_WG__inner{justify-content:space-between;align-items:center;height:100%;display:flex}.Header-module__Af2_WG__brand{font:600 15px/1 var(--font-mono), monospace;align-items:center;gap:10px;text-decoration:none;display:inline-flex}.Header-module__Af2_WG__dot{background:var(--accent);width:8px;height:8px;box-shadow:0 0 12px var(--accent);border-radius:50%}.Header-module__Af2_WG__nav{gap:4px;margin:0;padding:0;list-style:none;display:flex}.Header-module__Af2_WG__link{font:500 13px/1.4 var(--font-mono), monospace;color:var(--muted);padding:6px 12px;text-decoration:none;transition:color .2s;display:block;position:relative}.Header-module__Af2_WG__link[data-active=true],.Header-module__Af2_WG__link:hover{color:var(--text)}.Header-module__Af2_WG__link:focus-visible{outline:none}.Header-module__Af2_WG__pill{background:var(--panel-2);border:1px solid var(--border-strong);border-radius:999px;position:absolute;inset:0}.Header-module__Af2_WG__label{position:relative}
:root{--bg:#0b0d0e;--panel:#131718;--panel-2:#181d1e;--border:#ebe8e314;--border-strong:#ebe8e329;--text:#ebe8e3;--text-soft:#c9c6c0;--muted:#8b8f8e;--faint:#5d6261;--accent:#bff4dc;--accent-strong:#7ee8b8;--violet:#b8a6ff;--blue:#7fb8ff;--warning:#ffcf70;--danger:#ff8a8a;--radius:14px;--radius-sm:8px;--shadow:0 18px 50px -20px #000000b3;--content:680px;--wide:880px;--gutter:20px;--header-h:64px;--font-sans:"Inter Variable", "Inter";--font-mono:"JetBrains Mono Variable", "JetBrains Mono";--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 24px)}body{background:var(--bg);color:var(--text);font-family:var(--font-sans), system-ui, sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:17px;line-height:1.7}::selection{background:#bff4dc40}a{color:inherit}img,svg,canvas{max-width:100%;display:block}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.mono{font-family:var(--font-mono), ui-monospace, monospace}.eyebrow{font-family:var(--font-mono), ui-monospace, monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-size:12px}.container{width:100%;max-width:calc(var(--wide) + var(--gutter) * 2);padding:0 var(--gutter);margin:0 auto}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.prose{grid-template-columns:1fr min(var(--content), calc(100% - var(--gutter) * 2)) 1fr;display:grid}.prose>*{grid-column:2}.prose>.wide{width:min(var(--wide), calc(100% - var(--gutter) * 2));grid-column:1/-1;justify-self:center}.prose p,.prose ul,.prose ol{color:var(--text-soft);margin:0 0 1.4em}.prose strong{color:var(--text);font-weight:600}.prose h2,.prose h3{color:var(--text);letter-spacing:-.015em;margin:2.4em 0 .7em;line-height:1.25}.prose h2{font-size:1.6rem}.prose h3{font-size:1.25rem}.prose h2 a,.prose h3 a{text-decoration:none}.prose h2 a:hover:after,.prose h3 a:hover:after{content:" #";color:var(--faint)}.prose a:not(h2 a,h3 a){color:var(--accent);text-underline-offset:3px;-webkit-text-decoration:underline #bff4dc59;text-decoration:underline #bff4dc59;transition:text-decoration-color .2s}.prose a:not(h2 a,h3 a):hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.prose li{margin-bottom:.4em}.prose li::marker{color:var(--faint)}.prose blockquote{border-left:2px solid var(--violet);color:var(--muted);margin:0 0 1.4em;padding:.2em 0 .2em 1.2em;font-style:italic}.prose hr{background:var(--border-strong);border:0;height:1px;margin:3em 0}.prose :not(pre)>code{font-family:var(--font-mono), ui-monospace, monospace;background:var(--panel-2);border:1px solid var(--border);color:var(--accent);border-radius:6px;padding:.15em .4em;font-size:.86em}.prose figure[data-rehype-pretty-code-figure]{margin:0 0 1.6em}.prose pre{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);font-family:var(--font-mono), ui-monospace, monospace;margin:0;padding:18px 0;font-size:14px;line-height:1.65;overflow-x:auto}.prose pre code{min-width:max-content;display:grid}.prose pre [data-line]{border-left:2px solid #0000;padding:0 20px}.prose pre [data-highlighted-line]{border-left-color:var(--accent);background:#bff4dc12}.prose [data-rehype-pretty-code-title]{font-family:var(--font-mono), ui-monospace, monospace;color:var(--muted);border:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0;background:var(--panel-2);border-bottom:0;padding:8px 16px;font-size:12px}.prose [data-rehype-pretty-code-title]+pre{border-top-left-radius:0;border-top-right-radius:0}.control{font-family:var(--font-mono), ui-monospace, monospace;color:var(--muted);gap:6px;font-size:12px;display:grid}.control-row{justify-content:space-between;gap:12px;display:flex}.control-row output{color:var(--text)}input[type=range]{appearance:none;background:var(--border-strong);outline-offset:6px;border-radius:999px;width:100%;height:4px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);border:3px solid var(--bg);width:16px;height:16px;box-shadow:0 0 0 1px var(--accent);cursor:grab;border-radius:50%}input[type=range]::-moz-range-thumb{background:var(--accent);border:3px solid var(--bg);width:12px;height:12px;box-shadow:0 0 0 1px var(--accent);cursor:grab;border-radius:50%}.button{appearance:none;border:1px solid var(--border-strong);background:var(--panel-2);color:var(--text);font:500 13px/1 var(--font-mono), ui-monospace, monospace;cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:8px 14px;transition:border-color .2s,background .2s;display:inline-flex}.button:hover{border-color:var(--accent)}.button[data-variant=primary]{background:var(--accent);border-color:var(--accent);color:#0b0d0e}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.callout-body>:last-child{margin-bottom:0}.prose table{border-collapse:collapse;width:100%;margin:0 0 1.6em;font-size:.9em}.prose th,.prose td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:10px 12px}.prose th{font:500 12px/1.4 var(--font-mono), monospace;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.prose td{color:var(--text-soft)}@media (max-width:640px){.prose table{display:block;overflow-x:auto}}.segmented{border:1px solid var(--border);background:var(--bg);border-radius:10px;flex-wrap:wrap;gap:4px;width:fit-content;padding:3px;display:flex}.segmented button{appearance:none;color:var(--muted);font:500 12px/1.3 var(--font-mono), monospace;cursor:pointer;background:0 0;border:0;border-radius:7px;padding:6px 10px;transition:background .2s,color .2s}.segmented button:hover{color:var(--text)}.segmented button[data-active=true]{background:var(--panel-2);color:var(--accent);box-shadow:inset 0 0 0 1px var(--border-strong)}.button:disabled{opacity:.4;cursor:default}.svc{border:1px solid var(--border-strong);background:var(--panel);text-align:center;min-width:92px;font:500 12px/1.3 var(--font-mono), monospace;color:var(--text);border-radius:12px;place-items:center;gap:2px;padding:10px 12px;display:grid}.svc small{color:var(--muted);font-size:10px;font-weight:400}.demo-log{min-height:72px;font:12px/1.5 var(--font-mono), monospace;color:var(--text-soft);gap:3px;margin:0;padding:0;list-style:none;display:grid}.demo-log .dim{color:var(--faint)}input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px}.code-block{position:relative}.copy-button{appearance:none;border:1px solid var(--border-strong);background:var(--panel-2);color:var(--muted);font:500 11px/1.4 var(--font-mono), monospace;cursor:pointer;opacity:0;border-radius:7px;padding:4px 9px;transition:opacity .2s,border-color .2s;position:absolute;top:10px;right:10px}.code-block:hover .copy-button,.copy-button:focus-visible{opacity:1}.copy-button:hover{border-color:var(--accent);color:var(--text)}@media (hover:none){.copy-button{opacity:1}}.control:has(>.segmented){grid-column:1/-1}
