@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_astro/Geist-Variable-subset.SGHHh6MM.woff2)format("woff2")}:root{color-scheme:dark;--bg:#0f1012;--bg-deep:#0b0c0e;--panel:#17181b;--panel-2:#1c1d21;--line:#ffffff12;--line-strong:#ffffff24;--chip:#fff1;--hover:#ffffff0a;--ink:#ecebe6;--ink-2:#b4b2ab;--muted:#8f8d87;--paper:#f3f0e8;--paper-2:#dedad1;--paper-ink:#1c1c1a;--good:#a3cbb0;--warn:#d9b57e;--aura-teal:62 118 132;--aura-amber:160 114 56;--aura-slate:80 96 142;--aura-strength:.64;--light-a:#5cc0cf;--light-b:#93a0e6;--light-c:#f3ac52;--light:linear-gradient(180deg, var(--light-a), var(--light-b) 50%, var(--light-c));--fam-l:.8;--fam-c:.065;--fam-convert:oklch(var(--fam-l) var(--fam-c) 255);--fam-transform:oklch(var(--fam-l) var(--fam-c) 195);--fam-sizes:oklch(var(--fam-l) var(--fam-c) 175);--fam-compress:oklch(var(--fam-l) var(--fam-c) 95);--fam-adjust:oklch(var(--fam-l) var(--fam-c) 60);--fam-filter:oklch(var(--fam-l) var(--fam-c) 305);--fam-compose:oklch(var(--fam-l) var(--fam-c) 350);--fam-info:oklch(var(--fam-l) calc(var(--fam-c) * .5) 240);--fam-pdf:oklch(var(--fam-l) var(--fam-c) 25);--fam-media:oklch(var(--fam-l) var(--fam-c) 145);--fam-archive:oklch(var(--fam-l) calc(var(--fam-c) * .7) 75);--fam-data:oklch(var(--fam-l) var(--fam-c) 220);--fam-document:oklch(var(--fam-l) var(--fam-c) 280);--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.36, .64, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--sans:"Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--gutter:clamp(16px, 4vw, 40px);--measure:62ch;--wide:1180px;--shadow-pop:0 24px 60px -16px #000000b3, 0 2px 10px #00000059}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}html{background:var(--bg);-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:24px}body{isolation:isolate;min-height:100vh;color:var(--ink);font-family:var(--sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:0 0;margin:0;font-size:16px;font-weight:400;line-height:1.55;position:relative;overflow-x:clip}::selection{background:rgb(var(--aura-teal) / .6);color:#fff}h1,h2,h3{letter-spacing:-.025em;text-wrap:balance;margin:0;font-weight:250;line-height:1.08}h1{letter-spacing:-.035em;font-size:clamp(2.1rem,1.3rem + 4vw,4.6rem);font-weight:200;line-height:1.02}h2{font-size:clamp(2rem,1.4rem + 2.6vw,3.4rem)}h3{letter-spacing:-.01em;font-size:1.25rem;font-weight:400;line-height:1.3}p{text-wrap:pretty;margin:0}.lede{color:var(--ink-2);max-width:40ch;font-size:clamp(1.05rem,1rem + .35vw,1.25rem);font-weight:300;line-height:1.5}a{color:inherit;text-decoration-line:underline;text-decoration-thickness:1px;text-decoration-color:var(--line-strong);text-underline-offset:.22em;transition:text-decoration-color .2s var(--ease-out), color .2s var(--ease-out)}@media (hover:hover){a:hover{text-decoration-color:currentColor}}button,input{font:inherit;color:inherit}:focus-visible{outline:1.5px solid var(--light-a);outline-offset:3px;border-radius:6px}kbd{font-family:var(--sans);background:var(--chip);color:var(--ink-2);font-variant-numeric:tabular-nums;vertical-align:.08em;border-radius:5px;padding:3px 6px 4px;font-size:.78em;font-weight:450;line-height:1;display:inline-block}.typed{background:var(--chip);color:var(--ink);white-space:nowrap;border-radius:7px;padding:.05em .45em .12em;font-weight:400;display:inline-block}.wrap{width:100%;max-width:calc(var(--wide) + 2 * var(--gutter));padding-inline:var(--gutter);margin-inline:auto}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip{z-index:100;background:var(--paper);color:var(--paper-ink);border-radius:10px;padding:10px 14px;text-decoration:none;position:absolute;top:-60px;left:12px}.skip:focus{top:12px}.btn{border:1px solid var(--line-strong);min-height:48px;color:var(--ink);cursor:pointer;white-space:nowrap;transition:background-color .2s var(--ease-out), border-color .2s var(--ease-out), transform .16s var(--ease-out);background:0 0;border-radius:999px;justify-content:center;align-items:center;gap:10px;padding:0 22px;font-size:15px;font-weight:450;text-decoration:none;display:inline-flex}.btn svg{flex:none;width:17px;height:17px}.btn:active{transform:scale(.97)}.btn.primary{background:linear-gradient(180deg, var(--paper), var(--paper-2));color:var(--paper-ink);border-color:#0000;box-shadow:0 10px 30px -14px #000c}@media (hover:hover){.btn:hover{background-color:var(--hover);border-color:#ffffff38}.btn.primary:hover{background:linear-gradient(180deg, #fff, var(--paper))}}.btn .sub{color:inherit;opacity:.6;font-weight:400}.aura{z-index:-1;pointer-events:none;height:120vh;opacity:var(--aura-strength);transition:opacity .9s var(--ease-out);position:absolute;inset:0 0 auto;overflow:hidden;-webkit-mask-image:linear-gradient(#000 30%,#0000);mask-image:linear-gradient(#000 30%,#0000)}.aura .blob{border-radius:50%;position:absolute}.aura .teal{background:radial-gradient(closest-side, rgb(var(--aura-teal)), rgb(var(--aura-teal) / .45) 45%, rgb(var(--aura-teal) / .12) 75%, transparent);width:72vw;height:78vh;animation:42s ease-in-out infinite alternate drift-a;top:-40vh;left:-22vw}.aura .amber{background:radial-gradient(closest-side, rgb(var(--aura-amber)), rgb(var(--aura-amber) / .42) 45%, rgb(var(--aura-amber) / .1) 75%, transparent);width:66vw;height:74vh;animation:50s ease-in-out infinite alternate drift-b;top:-36vh;right:-20vw}.aura .slate{background:radial-gradient(closest-side, rgb(var(--aura-slate)), rgb(var(--aura-slate) / .4) 50%, transparent);width:84vw;height:62vh;animation:58s ease-in-out infinite alternate drift-c;top:-44vh;left:8vw}@keyframes drift-a{to{transform:translate(9vw,5vh)scale(1.08)}}@keyframes drift-b{to{transform:translate(-8vw,7vh)scale(.94)}}@keyframes drift-c{to{transform:translate(-5vw,4vh)scale(1.1)}}html.dragging .aura{opacity:calc(var(--aura-strength) * 1.6)}.top{justify-content:space-between;align-items:center;gap:16px;height:72px;display:flex}.brand{letter-spacing:-.01em;align-items:center;gap:10px;font-size:17px;font-weight:400;text-decoration:none;display:inline-flex}.brand img{width:30px;height:30px}.top nav{align-items:center;gap:4px;display:flex}.top nav a{color:var(--ink-2);border-radius:999px;padding:8px 12px;font-size:14px;text-decoration:none;transition:background-color .15s,color .15s}@media (hover:hover){.top nav a:hover{background:var(--chip);color:var(--ink)}}@media (width<=520px){.top nav .opt{display:none}}.foot{border-top:1px solid var(--line);color:var(--muted);margin-top:clamp(80px,12vw,160px);padding-block:32px 40px;font-size:14px}.foot .wrap{flex-wrap:wrap;align-items:center;gap:8px 28px;display:flex}.foot a{color:var(--ink-2)}.foot .by{margin-left:auto}.glyph{width:var(--gw,112px);aspect-ratio:398/500;flex:none;place-items:center;display:grid;position:relative}.glyph svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.glyph .ext{font-size:calc(var(--gw,112px) * .2);letter-spacing:-.02em;text-transform:uppercase;white-space:nowrap;margin-top:14%;font-weight:300;line-height:1;position:relative}.glyph.outline .ext{color:var(--ink-2)}.glyph.paper .ext{color:var(--paper-ink);font-weight:350}.glyph.long .ext{font-size:calc(var(--gw,112px) * .15)}svg.icon{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:16px;height:16px}.beam{pointer-events:none;width:2px;position:relative}.beam:before,.beam:after,.beam i{content:"";border-radius:99px;position:absolute;top:0;bottom:0;left:50%}.beam:after{background:var(--light);width:4px;margin-left:-2px;box-shadow:inset 0 0 0 1px #ffffff59}.beam i{z-index:1;background:#ffffffd9;width:1.5px;margin-left:-.75px}.beam:before{background:var(--light);filter:blur(18px);opacity:.55;width:30px;transition:opacity .5s var(--ease-out);margin-left:-15px}html.dragging .beam:before{opacity:.95}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
