.footer[data-astro-cid-nns7i3if]{padding:1.5rem var(--pad) 2.5rem;text-align:center;font-size:var(--text-sm);color:var(--muted-foreground);justify-items:center;gap:.25rem;display:grid}.footer__legal[data-astro-cid-nns7i3if]{font-family:var(--font-mono);font-size:var(--text-xs)}html:has(.cmdk[open]){overflow:hidden}.cmdk-trigger[data-v-f2d3ec78]{border:1px solid var(--line-strong);background:var(--surface);height:2rem;color:var(--muted-foreground);border-radius:.5rem;align-items:center;gap:.5rem;padding-inline:.5rem .25rem;font-size:.8125rem;transition:color .2s,border-color .2s;display:inline-flex}.cmdk-trigger[data-v-f2d3ec78]:hover{color:var(--foreground);border-color:var(--muted-foreground)}.cmdk-trigger[data-v-f2d3ec78] svg{width:.875rem;height:.875rem}@media (width<=40rem){.cmdk-trigger[data-v-f2d3ec78]{justify-content:center;width:2rem;padding:0}.cmdk-trigger .cmdk-trigger__label[data-v-f2d3ec78],.cmdk-trigger .cmdk-trigger__keys[data-v-f2d3ec78]{display:none}}.cmdk-trigger__label[data-v-f2d3ec78]{margin-right:1.5rem}.cmdk-trigger__keys[data-v-f2d3ec78]{gap:2px;display:inline-flex}.cmdk[data-v-f2d3ec78]{width:min(100% - 2rem,36rem);max-width:none;max-height:none;color:var(--foreground);background:0 0;border:0;margin:12vh auto auto;padding:0;overflow:visible}.cmdk[data-v-f2d3ec78]::backdrop{backdrop-filter:blur(2px);background:#00000073}.cmdk__panel[data-v-f2d3ec78]{border:1px solid var(--line-strong);background:var(--background);box-shadow:var(--shadow);border-radius:.875rem;overflow:hidden}.cmdk__search[data-v-f2d3ec78]{border-bottom:1px solid var(--line);height:3rem;color:var(--muted-foreground);align-items:center;gap:.625rem;padding-inline:.875rem .75rem;display:flex}.cmdk__search[data-v-f2d3ec78] svg{width:1rem;height:1rem}.cmdk__input[data-v-f2d3ec78]{min-width:0;height:100%;font:inherit;color:var(--foreground);background:0 0;border:0;outline:0;flex:1;font-size:.9375rem}.cmdk__input[data-v-f2d3ec78]::placeholder{color:var(--muted-foreground)}.cmdk__list[data-v-f2d3ec78]{overscroll-behavior:contain;max-height:min(22rem,55vh);padding:.375rem;overflow-y:auto}.cmdk__group+.cmdk__group[data-v-f2d3ec78]{margin-top:.25rem}.cmdk__heading[data-v-f2d3ec78]{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--muted-foreground);padding:.5rem .5rem .25rem}.cmdk__item[data-v-f2d3ec78]{cursor:pointer;user-select:none;border-radius:.5rem;align-items:center;gap:.625rem;height:2.5rem;padding-inline:.5rem;font-size:.875rem;display:flex}.cmdk__item[aria-selected=true][data-v-f2d3ec78]{background:var(--surface-2)}.cmdk__icon[data-v-f2d3ec78]{border:1px solid var(--line-strong);background:var(--surface);width:1.5rem;height:1.5rem;color:var(--muted-foreground);border-radius:.375rem;place-items:center;display:grid}.cmdk__icon[data-v-f2d3ec78] svg{width:.8125rem;height:.8125rem}.cmdk__label[data-v-f2d3ec78]{flex:1}.cmdk__external[data-v-f2d3ec78]{color:var(--muted-foreground)}.cmdk__external[data-v-f2d3ec78] svg{width:.875rem;height:.875rem}.cmdk__empty[data-v-f2d3ec78]{text-align:center;color:var(--muted-foreground);padding:1.5rem .5rem;font-size:.875rem}.cmdk__footer[data-v-f2d3ec78]{border-top:1px solid var(--line);color:var(--muted-foreground);gap:1rem;padding:.5rem .875rem;font-size:.75rem;display:flex}.cmdk__footer span[data-v-f2d3ec78]{align-items:center;gap:.25rem;display:inline-flex}@media (pointer:coarse){.cmdk__footer[data-v-f2d3ec78]{display:none}}.cmdk-toast[data-v-f2d3ec78]{z-index:60;border:1px solid var(--line-strong);background:var(--background);box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:opacity .2s, transform .2s var(--ease);border-radius:.5rem;padding:.5rem .875rem;font-size:.8125rem;position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%,.5rem)}.cmdk-toast.is-visible[data-v-f2d3ec78]{opacity:1;transform:translate(-50%)}.theme-toggle[data-astro-cid-l6lhmie6]{width:2rem;height:2rem;color:var(--muted-foreground);border-radius:.5rem;place-items:center;transition:color .2s,background .2s;display:grid}.theme-toggle[data-astro-cid-l6lhmie6]:hover{color:var(--foreground);background:var(--surface-2)}.theme-toggle[data-astro-cid-l6lhmie6] svg{width:1rem;height:1rem}.theme-toggle__sun[data-astro-cid-l6lhmie6]{display:none}[data-theme=dark] .theme-toggle__sun[data-astro-cid-l6lhmie6]{display:block}[data-theme=dark] .theme-toggle__moon[data-astro-cid-l6lhmie6]{display:none}.header[data-astro-cid-fzpbxy5g]{z-index:40;height:3.5rem;padding-inline:var(--pad);background:color-mix(in srgb, var(--background) 82%, transparent);-webkit-backdrop-filter:blur(10px);align-items:center;gap:1rem;display:flex;position:sticky;top:0}.header__logo[data-astro-cid-fzpbxy5g]{height:2rem;font-family:var(--font-mono);letter-spacing:-.06em;align-items:center;margin-left:-.25rem;padding-inline:.25rem;font-size:1.0625rem;font-weight:700;display:inline-flex}.header__nav[data-astro-cid-fzpbxy5g]{font-size:var(--text-sm);color:var(--muted-foreground);gap:1.25rem;margin-left:auto;display:flex}.header__nav[data-astro-cid-fzpbxy5g] a[data-astro-cid-fzpbxy5g]{padding-block:.3125rem;transition:color .2s}.header__nav[data-astro-cid-fzpbxy5g] a[data-astro-cid-fzpbxy5g]:hover{color:var(--foreground)}@media (width<=40rem){.header__nav[data-astro-cid-fzpbxy5g]{display:none}}.header__actions[data-astro-cid-fzpbxy5g]{align-items:center;gap:.5rem;display:flex}@media (width<=40rem){.header__actions[data-astro-cid-fzpbxy5g]{margin-left:auto}}.header__divider[data-astro-cid-fzpbxy5g]{background:var(--line-strong);width:1px;height:1rem;margin-inline:.25rem}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-ext-wght-normal.DjL33-gN.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-wght-normal.BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-vietnamese-wght-normal.6IgcOCM7.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-ext-wght-normal.DC-KSUi6.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-wght-normal.BgDaEnEv.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-ext-wght-normal.X_5orZeX.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-wght-normal.DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-symbols2-wght-normal.CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-vietnamese-wght-normal.DadHysG0.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-ext-wght-normal.Bwz-egvJ.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-wght-normal.XN7g48iV.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}:root{--background:#fff;--foreground:#0a0a0a;--muted-foreground:#71717a;--surface:#fafafa;--surface-2:#f4f4f5;--line:#e9e9ec;--line-strong:#d4d4d8;--hatch:#e4e4e7;--dot:#d4d4d8;--available:#16a34a;--shadow:0 16px 48px -12px #0000002e;color-scheme:light;--paper:var(--background);--ink:var(--foreground);--muted:var(--muted-foreground);--rule:var(--line-strong);--soft:var(--surface-2);--font-sans:"Geist Variable", ui-sans-serif, system-ui, sans-serif;--font-mono:"Geist Mono Variable", ui-monospace, "SF Mono", Menlo, monospace;--text-xs:.75rem;--text-sm:.875rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.5rem;--text-2xl:1.875rem;--container:48rem;--pad:1rem;--radius:.625rem;--ease:cubic-bezier(.2, .7, .2, 1)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--background:#0a0a0a;--foreground:#fafafa;--muted-foreground:#a1a1aa;--surface:#111113;--surface-2:#19191c;--line:#1f1f23;--line-strong:#2e2e33;--hatch:#232327;--dot:#2a2a2f;--available:#22c55e;--shadow:0 16px 48px -12px #000000b3;color-scheme:dark}}:root[data-theme=dark]{--background:#0a0a0a;--foreground:#fafafa;--muted-foreground:#a1a1aa;--surface:#111113;--surface-2:#19191c;--line:#1f1f23;--line-strong:#2e2e33;--hatch:#232327;--dot:#2a2a2f;--available:#22c55e;--shadow:0 16px 48px -12px #000000b3;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:4.5rem;overflow-x:clip}body{background:var(--background);color:var(--foreground);font-family:var(--font-sans);font-size:var(--text-md);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;line-height:1.6;overflow-x:clip}h1,h2,h3,p,ul,ol,dl,dd,figure{margin:0}ul,ol{padding:0;list-style:none}a{color:inherit;text-decoration:none}img,svg{display:block}img{max-width:100%;height:auto}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}::selection{background:var(--foreground);color:var(--background)}:focus-visible{outline:2px solid var(--foreground);outline-offset:2px;border-radius:4px}@property --reveal{syntax:"<percentage>";inherits:false;initial-value:100%}.shell{width:100%;max-width:var(--container);min-height:100dvh;margin-inline:auto;position:relative}@media (width>=40rem){.shell{border-inline:1px solid var(--line);width:calc(100% - 2rem)}}.line-before,.line-after{position:relative}.line-before:before,.line-after:after{content:"";background:var(--line);pointer-events:none;height:1px;position:absolute;left:-100vw;right:-100vw}.line-before:before{top:0}.line-after:after{bottom:0}.separator{height:2rem;position:relative}.separator:before{content:"";border-block:1px solid var(--line);background-image:repeating-linear-gradient(315deg, var(--hatch) 0, var(--hatch) 1px, transparent 0, transparent 50%);background-size:10px 10px;position:absolute;inset:0 -100vw}.section-title{padding:.25rem var(--pad);font-size:var(--text-2xl);letter-spacing:-.03em;font-weight:600;line-height:1.4}.section-title sup{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:0;color:var(--muted-foreground);vertical-align:super;margin-left:.25rem;font-weight:400}.mono{font-family:var(--font-mono)}.muted{color:var(--muted-foreground)}.chip{border:1px solid var(--line-strong);background:var(--surface);height:1.625rem;font-family:var(--font-mono);font-size:var(--text-xs);white-space:nowrap;color:var(--foreground);border-radius:.375rem;align-items:center;gap:.375rem;padding-inline:.5rem;line-height:1;display:inline-flex}.chip svg{flex:none;width:.875rem;height:.875rem}.chip--sm{height:1.375rem;font-size:var(--text-xs);color:var(--muted-foreground);padding-inline:.375rem}.brand{--tint:var(--brand);border-color:color-mix(in oklab, var(--tint) 30%, var(--line-strong));background:color-mix(in oklab, var(--tint) 7%, var(--surface));transition:background .2s,border-color .2s}.brand>svg{color:var(--tint)}.brand:is(a,button):hover{border-color:color-mix(in oklab, var(--tint) 60%, var(--line-strong));background:color-mix(in oklab, var(--tint) 14%, var(--surface))}:root:not([data-theme=dark]) .brand[data-tone=light]{--tint:color-mix(in oklab, var(--brand) 62%, #000)}:root[data-theme=dark] .brand[data-tone=dark]{--tint:color-mix(in oklab, var(--brand) 35%, #fff)}.icon-tile{border:1px solid var(--line-strong);background:var(--surface-2);width:1.625rem;height:1.625rem;color:var(--muted-foreground);border-radius:.375rem;flex:none;place-items:center;display:grid}.icon-tile svg{width:.875rem;height:.875rem}.kbd{border:1px solid var(--line-strong);background:var(--surface-2);min-width:1.25rem;height:1.25rem;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--muted-foreground);border-radius:.25rem;place-items:center;padding-inline:.25rem;line-height:1;display:inline-grid}.link{text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:.2em;transition:text-decoration-color .2s}.link:hover{text-decoration-color:var(--foreground)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:no-preference){[data-enter]{animation:enter-up .6s var(--ease) both;animation-delay:calc(var(--d,0) * 1ms)}[data-enter=blur]{animation-name:enter-blur;animation-duration:.7s}[data-enter=down]{animation-name:enter-down}[data-enter=fade]{animation-name:enter-fade}[data-enter=pop]{animation-name:enter-pop;animation-duration:.7s}[data-enter=type]{animation:10ms step-end both enter-fade;animation-delay:calc(var(--d,0) * 1ms)}.line-after[data-draw]:after,.line-before[data-draw]:before{transform-origin:0;animation:draw 1s var(--ease) both;animation-delay:calc(var(--d,0) * 1ms)}.js [data-reveal]{opacity:0;transition:opacity .45s var(--ease), translate .45s var(--ease), filter .45s var(--ease);transition-delay:calc(var(--i,0) * 35ms);translate:0 .625rem}.js [data-reveal=blur]{filter:blur(6px)}.js [data-reveal=fade]{translate:none}.js [data-reveal].is-in{opacity:1;filter:none;translate:none}.js [data-reveal].line-after:after,.js [data-reveal].line-before:before{transform-origin:0;transition:scale 1s var(--ease);scale:0 1}.js [data-reveal].is-in.line-after:after,.js [data-reveal].is-in.line-before:before{scale:1}.js .separator[data-reveal]:before{transition:background-position 1.2s var(--ease);background-position:-3rem 0}.js .separator[data-reveal].is-in:before{background-position:0 0}}@keyframes enter-up{0%{opacity:0;translate:0 .75rem}}@keyframes enter-down{0%{opacity:0;translate:0 -.5rem}}@keyframes enter-fade{0%{opacity:0}}@keyframes enter-blur{0%{opacity:0;filter:blur(10px);translate:0 .5rem}}@keyframes enter-pop{0%{opacity:0;filter:blur(6px);scale:.9}}@keyframes draw{0%{scale:0 1}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
