.mark[data-astro-cid-iifiznic]{display:inline-flex;gap:calc(var(--key) * .22);flex:0 0 auto}.key[data-astro-cid-iifiznic]{display:grid;place-items:center;width:var(--key);height:var(--key);border:1px solid var(--line-4);border-bottom-width:2px;border-radius:calc(var(--key) * .3);background:#18181b;color:#e4e4e7;font-family:var(--font-mono);font-size:calc(var(--key) * .55);font-style:normal;font-weight:500;line-height:1;transition:transform 90ms ease,border-color .14s ease,background-color 90ms ease}.key-koi[data-astro-cid-iifiznic]{color:var(--koi)}a:hover>.mark[data-astro-cid-iifiznic]:not([data-mark-cycle]) .key[data-astro-cid-iifiznic],.brand:hover .mark[data-astro-cid-iifiznic]:not([data-mark-cycle]) .key[data-astro-cid-iifiznic]{animation:key-press .36s var(--ease-out) both}a:hover>.mark[data-astro-cid-iifiznic]:not([data-mark-cycle]) .key[data-astro-cid-iifiznic]:nth-child(2),.brand:hover .mark[data-astro-cid-iifiznic]:not([data-mark-cycle]) .key[data-astro-cid-iifiznic]:nth-child(2){animation-delay:90ms}a:hover>.mark[data-astro-cid-iifiznic]:not([data-mark-cycle]) .key[data-astro-cid-iifiznic]:nth-child(3),.brand:hover .mark[data-astro-cid-iifiznic]:not([data-mark-cycle]) .key[data-astro-cid-iifiznic]:nth-child(3){animation-delay:.18s}.mark[data-astro-cid-iifiznic][data-mark-cycle] .key[data-astro-cid-iifiznic].is-cycling{animation:letter-cycle 84ms steps(2,end) infinite}@keyframes key-press{0%,to{transform:translateY(0);border-bottom-width:2px;background:#18181b}35%{transform:translateY(1px);border-bottom-width:1px;background:#232327}}@keyframes letter-cycle{0%{transform:translateY(-1px);background:#232327}50%{transform:translateY(1px);background:#18181b}}@media(prefers-reduced-motion:reduce){.key[data-astro-cid-iifiznic]{animation:none!important}}@font-face{font-family:Geist;src:url(/fonts/geist-latin-wght.woff2) format("woff2-variations"),url(/fonts/geist-latin-wght.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Geist Mono;src:url(/fonts/geist-mono-latin-wght.woff2) format("woff2-variations"),url(/fonts/geist-mono-latin-wght.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}:root{color-scheme:dark;--bg: #09090b;--panel: #0d0d10;--panel-2: #101014;--raise: #141419;--raise-2: #18181d;--ink: #fafafa;--text: #e4e4e7;--text-2: #a1a1aa;--text-3: #90909b;--text-4: #767681;--text-5: #3f3f46;--line: #1c1c1f;--line-2: #242429;--line-3: #34343b;--line-4: #3f3f46;--veil: rgba(255, 255, 255, .06);--koi: #f2865a;--koi-rgb: 242, 134, 90;--koi-2: #ffb18f;--koi-soft: rgba(242, 134, 90, .14);--koi-deep: #b8562f;--light-rgb: 255, 238, 228;--r-xs: 4px;--r-sm: 8px;--r-md: 12px;--r-btn: 14px;--r-card: 16px;--r-pill: 999px;--font-sans: "Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "Geist Mono", ui-monospace, "Cascadia Code", Menlo, Consolas, monospace;--shell: 1120px;--measure: 680px;--pad: 40px;--nav-h: 60px;--ease-out: cubic-bezier(.23, 1, .32, 1);--ease-in-out: cubic-bezier(.77, 0, .175, 1);--ease-soft: cubic-bezier(.22, .61, .36, 1);--dur-1: .12s;--dur-2: .2s;--dur-3: .32s;--dur-4: .6s;--astro-code-color-text: #d4d4d8;--astro-code-color-background: #0d0d10;--astro-code-token-constant: #e4e4e7;--astro-code-token-string: #d2c4b0;--astro-code-token-comment: #52525b;--astro-code-token-keyword: #f2a27f;--astro-code-token-parameter: #d4d4d8;--astro-code-token-function: #fafafa;--astro-code-token-string-expression: #d2c4b0;--astro-code-token-punctuation: #71717a;--astro-code-token-link: #f2865a}@media(max-width:720px){:root{--pad: 20px;--nav-h: 56px}}*,*:before,*:after{box-sizing:border-box}html{min-width:280px;scroll-behavior:smooth;background:var(--bg);-webkit-text-size-adjust:100%}body{min-height:100vh;margin:0;overflow-x:hidden;font-family:var(--font-sans);font-size:15px;font-weight:400;line-height:1.6;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body.menu-open{overflow:hidden}::selection{color:var(--bg);background:var(--koi-2)}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{border:3px solid var(--bg);border-radius:999px;background:#27272a}img,svg,video,canvas{display:block;max-width:100%}button,input,textarea,select{font:inherit;color:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer}h1,h2,h3,h4,p,ul,ol,figure,blockquote,dl,dd{margin:0}h1,h2,h3,h4{color:var(--ink);font-weight:640;letter-spacing:-.025em;text-wrap:balance}p{text-wrap:pretty}code,pre,kbd,samp,.mono{font-family:var(--font-mono);font-feature-settings:"tnum" 1,"zero" 1}.tnum{font-variant-numeric:tabular-nums}:focus-visible{outline:2px solid rgba(250,250,250,.72);outline-offset:3px;border-radius:2px}.shell{position:relative;width:100%;max-width:var(--shell);min-height:100dvh;margin:0 auto;border-left:1px solid var(--line);border-right:1px solid var(--line)}main{position:relative;min-height:60vh}.band{position:relative;padding:56px var(--pad);border-top:1px solid var(--line)}.band-lg{padding-block:88px 96px}.band-center{text-align:center}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.skip-link{position:fixed;top:10px;left:10px;z-index:1000;padding:10px 14px;color:var(--bg);background:var(--ink);border-radius:var(--r-sm);font-size:13px;font-weight:500;transform:translateY(-150%);transition:transform var(--dur-1) var(--ease-out)}.skip-link:focus{transform:translateY(0)}.display{font-size:clamp(2.5rem,5.4vw,4rem);font-weight:680;letter-spacing:-.04em;line-height:1.04}.headline{font-size:clamp(36px,5vw,56px);font-weight:700;letter-spacing:-.03em;line-height:1.1}.title{font-size:28px;font-weight:700;letter-spacing:-.02em;line-height:1.15}.sub{color:var(--text-2);font-size:15px;line-height:1.6}.eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--text-3);font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.2em;text-transform:uppercase}.eyebrow:after{content:"_";color:var(--text-4);animation:caret 1.1s step-end infinite}.path{color:var(--text-3);font-family:var(--font-mono);font-size:12px;font-weight:400}.path b{color:var(--text-4);font-weight:400}.mono-num{color:var(--text-4);font-family:var(--font-mono);font-size:10px;letter-spacing:.04em}@keyframes caret{50%{opacity:0}}.anchor-heading{display:inline-flex;align-items:baseline}.anchor{margin-left:12px;color:var(--text-4);font-weight:500;opacity:0;transition:opacity var(--dur-1) ease,color var(--dur-1) ease}.anchor-heading:hover .anchor,.anchor:focus-visible{opacity:1}.anchor:hover{color:var(--text-2)}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;height:46px;padding:0 20px;border:2px solid rgba(255,255,255,.05);border-radius:var(--r-btn);color:var(--ink);font-size:15px;font-weight:600;line-height:1;white-space:nowrap;user-select:none;background-origin:border-box;background-image:linear-gradient(104deg,#fcfcfc0d 5%,#f1ece51a);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a;transition:background-color var(--dur-2) var(--ease-soft),color var(--dur-2) var(--ease-soft),box-shadow var(--dur-2) var(--ease-soft),transform var(--dur-1) var(--ease-out)}.btn:after{content:"";position:absolute;inset:-2px;border-radius:inherit;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.95' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.35'/%3E%3C/svg%3E");background-size:120px 120px;mix-blend-mode:overlay;opacity:.5;pointer-events:none}.btn:hover,.btn:focus-visible{color:var(--bg);background-color:#ffffffeb;box-shadow:0 0 4px #ffffff0f,0 1px 14px #ffffff1f,0 3px 32px #ffffff2e}.btn:active{transform:scale(.97)}.btn:focus-visible{outline:none;box-shadow:0 0 0 4px #ffffff4d}.btn .chev{margin-right:-8px;color:#70757e;transition:color var(--dur-2) ease,transform var(--dur-2) var(--ease-out)}.btn:hover .chev{color:inherit;transform:translate(2px)}.btn-quiet{border-color:transparent;color:var(--text-2);background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none}.btn-quiet:after{display:none}.btn-quiet:hover,.btn-quiet:focus-visible{color:var(--ink);background:transparent;box-shadow:none}.btn-quiet .star{color:#eab308}.btn-sm{height:36px;padding:0 14px;border-radius:11px;font-size:13.5px}.btn-sm .chev{margin-right:-5px}.cmd{position:relative;display:inline-flex;align-items:center;gap:12px;height:46px;padding:0 14px 0 16px;border:1px solid var(--line-2);border-radius:var(--r-btn);background:var(--panel);color:var(--ink);font-family:var(--font-mono);font-size:13.5px;font-weight:500;white-space:nowrap}.cmd .prompt{color:var(--text-4)}.cmd a{color:inherit;transition:color var(--dur-1) ease}.cmd a:hover{color:var(--koi-2)}.cmd .copy{display:grid;place-items:center;width:28px;height:28px;margin-right:-6px;padding:0;border:0;border-radius:8px;background:transparent;color:var(--text-3);transition:color var(--dur-1) ease,background-color var(--dur-1) ease,transform var(--dur-1) var(--ease-out)}.cmd .copy:hover{color:var(--ink);background:#ffffff0f}.cmd .copy:active{transform:scale(.94)}.cmd .copy svg{stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;fill:none}.cmd .copy .ic-check{color:#55d69a}.cmd .copy .ic-check,.cmd.is-copied .copy .ic-copy{display:none}.cmd.is-copied .copy .ic-check{display:block}.route{display:inline-flex;align-items:center;gap:6px;width:max-content;color:var(--text-2);font-size:14px;font-weight:500;transition:color var(--dur-1) ease}.route>span:first-child{background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:0 100%;background-size:0% 1px;transition:background-size var(--dur-3) var(--ease-out)}.route:hover,.route:focus-visible{color:var(--ink)}.route:hover>span:first-child,.route:focus-visible>span:first-child{background-size:100% 1px}.route svg{color:var(--text-4);transition:transform var(--dur-3) var(--ease-out),color var(--dur-1) ease}.route:hover svg{color:var(--ink)}.route:hover .arrow{transform:translate(3px)}.route:hover .arrow-out{transform:translate(2px,-2px)}.chip{display:inline-flex;align-items:center;gap:8px;padding:9px 15px;border:1px solid var(--line-2);border-radius:var(--r-pill);background:var(--panel);color:var(--text-2);font-size:13px;transition:border-color var(--dur-1) ease,background-color var(--dur-1) ease,color var(--dur-1) ease}.chip b{color:var(--ink);font-weight:600}.chip:hover{border-color:var(--line-4);background:var(--panel-2)}.chip .arrow-out{color:var(--text-4);transition:transform var(--dur-1) ease,color var(--dur-1) ease}.chip:hover .arrow-out{color:var(--text-2);transform:translate(1px,-1px)}.kbd{--cap: .73em;position:relative;display:inline-grid;place-items:center;width:24px;height:24px;border:1px solid var(--line-4);border-bottom-width:2px;border-radius:7px;background:#18181b;color:#e4e4e7;font-family:var(--font-mono);font-size:12px;font-weight:500;line-height:1;transition:transform 90ms ease,background-color 90ms ease,border-color .14s ease}.kbd--down{transform:translateY(1px);border-bottom-width:1px;border-color:#52525b;background:#232327;color:var(--ink)}.card{position:relative;display:flex;flex-direction:column;min-width:0;overflow:hidden;border:1px solid var(--line-2);border-radius:var(--r-card);background:radial-gradient(circle at 80% 0,rgba(255,255,255,.028),transparent 42%),var(--panel);isolation:isolate;transition:box-shadow var(--dur-2) ease,border-color var(--dur-2) ease}.card:after{content:"";position:absolute;inset:0;z-index:0;border-radius:inherit;background:linear-gradient(145deg,rgba(255,255,255,.024),transparent 30%);pointer-events:none}.card>*{position:relative;z-index:1}.card:hover,.card[data-tilting]{box-shadow:inset 0 0 28px #fafafa09}a.card:focus-visible{outline:2px solid rgba(250,250,250,.72);outline-offset:3px}.spot-ring{position:absolute;inset:0;z-index:4;border-radius:inherit;padding:var(--spot-w, 1px);background:radial-gradient(var(--spot-r, 240px) circle at var(--mx, -9999px) var(--my, -9999px),rgba(var(--light-rgb),.95) 0,rgba(var(--light-rgb),.42) 30%,rgba(var(--light-rgb),0) 72%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);opacity:var(--spot, 0);transition:opacity var(--dur-2) linear;pointer-events:none}.card>.spot-ring{padding:1.5px;z-index:4}.btn>.spot-ring{inset:-2px;padding:2px;border-radius:var(--r-btn);z-index:1}.cmd>.spot-ring{inset:-1px;padding:1.5px;border-radius:var(--r-btn)}[data-tilt]{transform:perspective(900px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg));transform-style:preserve-3d;transition:transform .42s var(--ease-soft)}[data-tilt][data-tilting]{transition-duration:.11s;will-change:transform}[data-reveal]{--reveal-delay: calc(var(--i, 0) * 32ms);--ease-enter: cubic-bezier(0, 0, .38, .9)}[data-reveal=heading]{color:transparent;background-image:linear-gradient(100deg,var(--ink) 0 46%,var(--koi-2) 49%,var(--text-4) 54% 100%);background-position:100% 0;background-size:220% 100%;background-repeat:no-repeat;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;transition:background-position .48s var(--ease-enter) var(--reveal-delay)}[data-reveal=heading].is-in{background-position:0 0}.rows>[data-reveal=row]{position:relative;border-bottom-color:transparent}[data-reveal=row]:after{content:"";position:absolute;right:0;bottom:-1px;left:0;z-index:2;height:1px;background:var(--koi);transform:scaleX(0);transform-origin:0 50%;pointer-events:none}[data-reveal=row]>*{opacity:.5;transition:opacity .18s var(--ease-enter) calc(var(--reveal-delay) + 90ms)}[data-reveal=row].is-in:after{animation:reveal-rail .4s var(--ease-enter) var(--reveal-delay) forwards}[data-reveal=row].is-in>*{opacity:1}@keyframes reveal-rail{0%{background:var(--koi);transform:scaleX(0)}62%{background:var(--koi);transform:scaleX(1)}to{background:var(--line-2);transform:scaleX(1)}}[data-reveal=card]{opacity:.68;transition:opacity .22s var(--ease-enter) var(--reveal-delay),transform .42s var(--ease-soft),box-shadow var(--dur-2) ease,border-color var(--dur-2) ease}[data-reveal=card].is-in{opacity:1}[data-reveal=card].card.is-in,[data-reveal=card].is-in>.card{animation:reveal-card-edge .44s var(--ease-enter) var(--reveal-delay)}@keyframes reveal-card-edge{48%{border-color:rgba(var(--koi-rgb),.42);box-shadow:inset 0 0 0 1px rgba(var(--koi-rgb),.08),0 0 20px rgba(var(--koi-rgb),.06)}}[data-reveal=metric]>*{opacity:.32;transition:opacity .22s var(--ease-enter) var(--reveal-delay)}[data-reveal=metric]>:nth-child(2){transition-delay:calc(var(--reveal-delay) + 45ms)}[data-reveal=metric]>:nth-child(3){transition-delay:calc(var(--reveal-delay) + 90ms)}[data-reveal=metric].is-in>*{opacity:1}[data-reveal=metric] .evasion-fill{transform:scaleX(0);transform-origin:0 50%;transition:transform .4s var(--ease-enter) calc(var(--reveal-delay) + .12s)}[data-reveal=metric].is-in .evasion-fill{transform:scaleX(1)}[data-reveal=cluster]{opacity:.45;transition:opacity .18s var(--ease-enter) var(--reveal-delay),background-color var(--dur-2) var(--ease-soft),color var(--dur-2) var(--ease-soft),box-shadow var(--dur-2) var(--ease-soft),transform var(--dur-1) var(--ease-out)}[data-reveal=cluster].is-in{opacity:1}html.no-js [data-reveal],html.reduced-motion [data-reveal]{opacity:1;transition:none}html.no-js [data-reveal=heading],html.reduced-motion [data-reveal=heading]{color:var(--ink);background:none;-webkit-text-fill-color:currentColor}html.no-js [data-reveal=row]>*,html.reduced-motion [data-reveal=row]>*{opacity:1;transition:none}html.no-js .rows>[data-reveal=row],html.reduced-motion .rows>[data-reveal=row]{border-bottom-color:var(--line-2)}html.no-js [data-reveal=row]:after,html.reduced-motion [data-reveal=row]:after{display:none}html.no-js [data-reveal=metric]>*,html.reduced-motion [data-reveal=metric]>*,html.no-js [data-reveal=metric] .evasion-fill,html.reduced-motion [data-reveal=metric] .evasion-fill{opacity:1;transform:none;transition:none}.odo{--cell: 1.12em;display:inline-flex;align-items:flex-start;height:var(--cell);line-height:1;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.odo-col{position:relative;width:.62em;height:var(--cell);overflow:hidden;-webkit-mask-image:linear-gradient(transparent,#000 18%,#000 82%,transparent);mask-image:linear-gradient(transparent,#000 18%,#000 82%,transparent);transition:filter .32s ease,opacity .32s ease}.odo-drum{display:block;transition-property:transform;transition-timing-function:var(--ease-out);will-change:transform}.odo-drum>span{display:grid;place-items:center;height:var(--cell)}.odo-col[data-spin=fast]{filter:blur(2.4px);opacity:.82}.odo-col[data-spin=soft]{filter:blur(.7px);opacity:.94}.odo-sep{align-self:flex-end;padding:0 1px .1em;color:var(--text-4)}.page-head{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:end;gap:32px 64px;padding:72px var(--pad) 56px}.page-head .path{display:block;margin-bottom:22px}.page-head .display{font-size:clamp(2.4rem,4.8vw,3.5rem)}.page-head-side{display:flex;flex-direction:column;gap:18px;padding-bottom:6px}.page-head-side .sub{max-width:44ch}.page-head-meta{display:flex;flex-wrap:wrap;gap:8px 22px;color:var(--text-3);font-family:var(--font-mono);font-size:11.5px}.page-head-meta b{color:var(--text);font-weight:500}@media(max-width:860px){.page-head{grid-template-columns:1fr;gap:22px;padding-top:52px;padding-bottom:40px}}.filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.filters .chip[aria-pressed=true]{border-color:var(--line-4);background:var(--raise);color:var(--ink)}.rows{margin:0;padding:0;list-style:none;border-top:1px solid var(--line-2)}.rows>li{border-bottom:1px solid var(--line-2)}.rows>li[hidden]{display:none}pre{margin:0;overflow:auto;tab-size:4;padding:18px 20px;border:1px solid var(--line-2);border-radius:var(--r-md);color:var(--astro-code-color-text);font-size:13px;line-height:1.7;background:var(--astro-code-color-background)}pre code{display:block;padding:0;font-size:inherit;background:transparent}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.eyebrow:after{animation:none}.spot-ring{display:none}[data-tilt]{transform:none!important;transition:none}[data-reveal]{opacity:1;transition:none}[data-reveal=heading]{color:var(--ink);background:none;-webkit-text-fill-color:currentColor}[data-reveal=row]>*,[data-reveal=metric]>*{opacity:1;transition:none}.rows>[data-reveal=row]{border-bottom-color:var(--line-2)}[data-reveal=row]:after{display:none}[data-reveal=card].card.is-in,[data-reveal=card].is-in>.card{animation:none}[data-reveal=metric] .evasion-fill{transform:none;transition:none}}
