@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/fonts/archivo-var.woff2)format("woff2-variations")}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:400 700;src:url(/fonts/instrument-sans-var.woff2)format("woff2-variations")}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/geist-mono-var.woff2)format("woff2-variations")}:root{--font-display:"Archivo", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-text:"Instrument Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-mono:"Geist Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--white:#fff;--gallery:#f7f7f5;--ink:#0a0a0b;--ink-90:#1b1b1e;--ink-70:#414146;--ink-50:#6f6f76;--ink-30:#b3b3b9;--ink-15:#e2e2e4;--mag:#7391ba;--mag-deep:#3e587a;--mag-soft:#cbddf1;--surface:var(--gallery);--surface-raised:var(--white);--on-surface:var(--ink);--on-surface-body:var(--ink-70);--on-surface-mute:var(--ink-50);--hairline:var(--ink-15);--accent:var(--mag);--accent-ink:var(--mag-deep);--accent-soft:var(--mag-soft);--step--2:clamp(.74rem, .72rem + .1vw, .8rem);--step--1:clamp(.86rem, .83rem + .15vw, .96rem);--step-0:clamp(1.03rem, .99rem + .22vw, 1.18rem);--step-1:clamp(1.24rem, 1.16rem + .38vw, 1.5rem);--step-2:clamp(1.49rem, 1.36rem + .65vw, 1.92rem);--step-3:clamp(1.79rem, 1.58rem + 1.05vw, 2.46rem);--step-4:clamp(2.15rem, 1.83rem + 1.6vw, 3.15rem);--step-5:clamp(2.58rem, 2.1rem + 2.4vw, 4.03rem);--step-6:clamp(3.1rem, 2.4rem + 3.5vw, 5.16rem);--step-poster:clamp(3.4rem, .6rem + 13.5vw, 12.5rem);--leading-tight:.88;--leading-display:.98;--leading-snug:1.26;--leading-body:1.6;--track-poster:-.048em;--track-display:-.028em;--track-label:.13em;--space-3xs:.25rem;--space-2xs:clamp(.4rem, .371rem + .14vw, .5rem);--space-xs:clamp(.6rem, .557rem + .21vw, .75rem);--space-s:clamp(.8rem, .743rem + .29vw, 1rem);--space-m:clamp(1.125rem, 1.018rem + .54vw, 1.5rem);--space-l:clamp(1.625rem, 1.446rem + .89vw, 2.25rem);--space-xl:clamp(2.375rem, 2.054rem + 1.61vw, 3.5rem);--space-2xl:clamp(3.25rem, 2.75rem + 2.5vw, 5rem);--space-3xl:clamp(4.5rem, 3rem + 6vw, 8rem);--measure:62ch;--gutter:clamp(1.25rem, .6rem + 3vw, 3.5rem);--shell:88rem;--shell-narrow:50rem;--radius-xs:6px;--radius-s:10px;--radius-m:16px;--radius-l:24px;--radius-full:999px;--ease-standard:cubic-bezier(.2, 0, 0, 1);--ease-emphasis:cubic-bezier(.32, 0, 0, 1);--spring:linear(0, .006, .025, .101, .539 22.4%, .721, .849, .937 44%, .968, .991, 1.006, 1.013 60.6%, 1.014, 1.011, 1.006, 1.002 82.7%, .999, .998, 1);--spring-soft:linear(0, .009, .035, .078, .263 22%, .494, .696, .834 50%, .92, .965, .987 74%, .996, 1);--dur-fast:.15s;--dur-base:.3s;--dur-slow:.56s;--belt-dur:115s;--ticker-dur:32s;--shadow-1:0 1px 2px #0a0a0b0d, 0 2px 10px #0a0a0b0d;--shadow-2:0 3px 8px #0a0a0b12, 0 14px 32px #0a0a0b1a;--shadow-3:0 8px 18px #0a0a0b1a, 0 32px 72px #0a0a0b29;--holo-gradient:conic-gradient(from var(--holo-angle,0deg), #f54747, #fac72e, #4bda2f, #2ad2f4, #904cf0, #fa42bd, #f54747);--holo-blur:12px;--holo-opacity:.34}[data-surface=dark]{--holo-blur:14px;--holo-opacity:.46}[data-surface=light]{--holo-blur:12px;--holo-opacity:.34}[data-surface=dark]{--surface:var(--ink);--surface-raised:var(--ink-90);--on-surface:var(--white);--on-surface-body:#c9c9cf;--on-surface-mute:#8b8b93;--hairline:#2a2a2e;--accent:var(--mag);--accent-ink:var(--mag);--accent-soft:#14263d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-surface=light]{--surface:var(--gallery);--surface-raised:var(--white);--on-surface:var(--ink);--on-surface-body:var(--ink-70);--on-surface-mute:var(--ink-50);--hairline:var(--ink-15);--accent:var(--mag);--accent-ink:var(--mag-deep);--accent-soft:var(--mag-soft);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-surface=signal]{--surface:var(--mag);--surface-raised:#8fa8cc;--on-surface:var(--white);--on-surface-body:#e3ecf7;--on-surface-mute:#b7cce6;--hairline:#ffffff4d;--accent:var(--ink);--accent-ink:var(--ink);--accent-soft:#2f4e80;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-reduced-motion:reduce){:root{--dur-fast:1ms;--dur-base:1ms;--dur-slow:1ms;--spring:linear(0, 1);--spring-soft:linear(0, 1)}*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:6rem}body{background:var(--surface);color:var(--on-surface-body);font-family:var(--font-text);font-size:var(--step-0);line-height:var(--leading-body);font-synthesis-weight:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}img,picture,svg,video{max-width:100%;height:auto;display:block}input,button,textarea,select{font:inherit;color:inherit}p,h1,h2,h3,h4,li,figcaption{overflow-wrap:break-word}h1,h2,h3,h4{font-family:var(--font-display);color:var(--on-surface);font-weight:640;line-height:var(--leading-display);letter-spacing:var(--track-display);text-wrap:balance}h1{font-size:var(--step-6)}h2{font-size:var(--step-4)}h3{font-size:var(--step-2)}h4{font-size:var(--step-1)}p{text-wrap:pretty}a{color:inherit;-webkit-text-decoration-color:color-mix(in srgb, currentColor 40%, transparent);text-decoration-color:color-mix(in srgb, currentColor 40%, transparent);text-underline-offset:.2em;transition:text-decoration-color var(--dur-fast) var(--ease-standard);text-decoration-thickness:1.5px}a:hover{text-decoration-color:currentColor}:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:var(--radius-xs)}::selection{background:var(--mag);color:#fff}.shell{width:min(100% - var(--gutter) * 2, var(--shell));margin-inline:auto}.shell-narrow{width:min(100% - var(--gutter) * 2, var(--shell-narrow));margin-inline:auto}.prose{max-width:var(--measure)}.prose>*+*{margin-top:var(--space-m)}.prose h2{margin-top:var(--space-xl)}.prose h3{margin-top:var(--space-l)}.prose strong{color:var(--on-surface);font-weight:640}.prose a{color:var(--accent-ink);font-weight:560}.section{background:var(--surface);color:var(--on-surface-body);padding-block:var(--space-3xl);position:relative}.section--tight{padding-block:var(--space-2xl)}.mono{font-family:var(--font-mono);font-size:var(--step--1);font-variant-numeric:tabular-nums;font-weight:450}.label{font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--on-surface-mute);font-weight:600}.tabular{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{top:var(--space-s);left:var(--space-s);z-index:100;padding:var(--space-2xs) var(--space-s);background:var(--ink);color:#fff;font-family:var(--font-mono);font-size:var(--step--1);border-radius:var(--radius-full);transition:transform var(--dur-base) var(--spring);position:absolute;transform:translateY(-250%)}.skip-link:focus-visible{transform:translateY(0)}.scroll-x{overscroll-behavior-x:contain;overflow-x:auto}.pill{align-items:center;gap:var(--space-2xs);border-radius:var(--radius-full);font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:var(--track-label);text-transform:uppercase;background:var(--on-surface);color:var(--surface);white-space:nowrap;padding:.45em 1em;font-weight:600;line-height:1;text-decoration:none;display:inline-flex}.pill--accent{background:var(--accent);color:#fff}.pill--ghost{color:var(--on-surface-mute);box-shadow:inset 0 0 0 1.5px var(--hairline);background:0 0}.btn{align-items:center;gap:var(--space-2xs);border-radius:var(--radius-full);font-family:var(--font-text);font-size:var(--step-0);cursor:pointer;background:var(--on-surface);color:var(--surface);box-shadow:var(--shadow-2);transition:transform var(--dur-base) var(--spring), border-radius var(--dur-base) var(--spring), box-shadow var(--dur-base) var(--ease-standard), background-color var(--dur-fast) var(--ease-standard), color var(--dur-fast) var(--ease-standard);border:0;padding:.85em clamp(1.05em,.55em + 2.2vw,1.6em);font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{border-radius:var(--radius-s);transform:translateY(-2px)}@property --holo-angle{syntax:"<angle>";inherits:false;initial-value:0deg}@keyframes holo-spin{to{--holo-angle:360deg}}@keyframes holo-undulate{0%{border-radius:28% 52% 38% 26%/44% 28% 48% 30%;transform:scale(1)translate(0)rotate(0)}25%{border-radius:52% 26% 30% 46%/26% 50% 28% 46%;transform:scale(1.07)translate(2%,-1.5%)rotate(1.5deg)}50%{border-radius:34% 44% 54% 24%/50% 24% 46% 34%;transform:scale(.96)translate(-2%,1.5%)rotate(-1deg)}75%{border-radius:46% 30% 26% 52%/30% 48% 34% 44%;transform:scale(1.05)translate(1.5%,1%)rotate(.8deg)}to{border-radius:26% 50% 44% 32%/46% 32% 44% 28%;transform:scale(.99)translate(-1%,-1%)rotate(-1.4deg)}}@keyframes holo-undulate-rect{0%{border-radius:30px 52px 34px 46px/44px 30px 50px 34px;transform:scale(1)translate(0)}25%{border-radius:54px 30px 48px 34px/30px 50px 34px 52px;transform:scale(1.035)translate(.7%,-.5%)}50%{border-radius:34px 48px 30px 54px/50px 34px 44px 30px;transform:scale(.985)translate(-.7%,.5%)}75%{border-radius:48px 34px 52px 30px/34px 46px 30px 50px;transform:scale(1.03)translate(.5%,.4%)}to{border-radius:32px 50px 44px 34px/48px 32px 52px 30px;transform:scale(.995)translate(-.4%,-.3%)}}.btn{isolation:isolate;position:relative}.btn:before{content:"";z-index:-1;border-radius:inherit;background:inherit;box-shadow:inherit;position:absolute;inset:0}.btn:after{content:"";z-index:-2;background:var(--holo-gradient);filter:blur(var(--holo-blur)) saturate(1.3);opacity:0;transition:opacity var(--dur-base) var(--ease-standard);border-radius:32% 46% 40% 30%/40% 32% 44% 34%;position:absolute;inset:0}.btn:hover:after{opacity:var(--holo-opacity)}@media (prefers-reduced-motion:no-preference){.btn:hover:after{animation:7s linear infinite holo-spin,6s ease-in-out infinite holo-undulate}}.btn:active{border-radius:var(--radius-m);transform:translateY(0)scale(.98)}.btn--accent{background:var(--accent);color:#fff}.btn--quiet{color:var(--on-surface);box-shadow:inset 0 0 0 2px var(--hairline);background:0 0}.btn--quiet:before{background:var(--surface)}.btn--quiet:hover{box-shadow:inset 0 0 0 2px var(--accent);color:var(--accent-ink)}.prose a.btn{color:var(--surface);text-decoration:none}.prose a.btn--accent{color:#fff}.prose a.btn--quiet{color:var(--on-surface)}.nav[data-astro-cid-wpvy4v7s]{z-index:50;padding-top:var(--space-xs);pointer-events:none;position:sticky;top:0}.nav__inner[data-astro-cid-wpvy4v7s]{justify-content:space-between;align-items:center;gap:clamp(.2rem, 5vw - .8rem, var(--space-m));padding-block:.55rem;border-radius:clamp(5px, calc(6.1vw - 14.5px), var(--radius-full));pointer-events:auto;background:color-mix(in srgb, var(--surface) 72%, transparent);-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--hairline) 80%, transparent), var(--shadow-1);padding-left:clamp(.35rem,2.89vw - .227rem,1.1rem);padding-right:clamp(.3rem,.069rem + 1.15vw,.6rem);display:flex}.nav__mark[data-astro-cid-wpvy4v7s]{align-items:center;gap:var(--space-2xs);color:var(--on-surface);flex:none;text-decoration:none;display:inline-flex;position:relative}.nav__nav[data-astro-cid-wpvy4v7s]{align-items:center;min-width:0;display:flex}.nav__glyph[data-astro-cid-wpvy4v7s]{border-radius:var(--radius-xs);background:var(--ink);color:#fff;width:clamp(1.55rem,.65rem + 4.5vw,2rem);height:clamp(1.55rem,.65rem + 4.5vw,2rem);font-family:var(--font-display);letter-spacing:-.04em;transition:border-radius var(--dur-base) var(--spring), background-color var(--dur-fast) var(--ease-standard);place-items:center;font-size:clamp(.64rem,.5rem + .7vw,.82rem);font-weight:800;font-stretch:82%;display:grid}.nav__mark[data-astro-cid-wpvy4v7s]:hover .nav__glyph[data-astro-cid-wpvy4v7s]{background:var(--mag);border-radius:var(--radius-full)}.nav__name[data-astro-cid-wpvy4v7s]{font-family:var(--font-display);font-size:var(--step--1);letter-spacing:-.02em;white-space:nowrap;max-width:clamp(0rem,150vw - 69rem,12rem);opacity:clamp(0, (100vw - 54rem) / 6rem, 1);font-weight:640;overflow:hidden}.nav__list[data-astro-cid-wpvy4v7s]{align-items:center;gap:.15rem;padding:0;list-style:none;display:flex}.nav__link[data-astro-cid-wpvy4v7s]{border-radius:var(--radius-full);font-family:var(--font-text);font-size:clamp(.635rem, .45rem + .92vw, var(--step--1));letter-spacing:clamp(-.02em,.008vw - .024em,0em);color:var(--on-surface-mute);transition:color var(--dur-fast) var(--ease-standard), background-color var(--dur-fast) var(--ease-standard);padding-block:clamp(.42rem,.38rem + .12vw,.5rem);padding-inline:clamp(.17rem,2.62vw - .353rem,.85rem);font-weight:560;text-decoration:none;display:inline-block;position:relative}.nav__link[data-astro-cid-wpvy4v7s]:after,.nav__mark[data-astro-cid-wpvy4v7s]:after{content:"";position:absolute;inset:-.45rem 0}.nav__mark[data-astro-cid-wpvy4v7s]:after{inset:-.5rem -.2rem}.nav__link[data-astro-cid-wpvy4v7s]:hover{color:var(--on-surface);background:var(--hairline)}.nav__link[data-astro-cid-wpvy4v7s][aria-current=page]{color:#fff;background:var(--ink)}.nav__mark[data-astro-cid-wpvy4v7s],.nav__link[data-astro-cid-wpvy4v7s]{-webkit-user-drag:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.nav__list[data-astro-cid-wpvy4v7s]{scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior-x:contain;overflow-x:auto}.nav__list[data-astro-cid-wpvy4v7s]::-webkit-scrollbar{display:none}.nav__list[data-astro-cid-wpvy4v7s]>li[data-astro-cid-wpvy4v7s]{flex:none}.nav__list[data-astro-cid-wpvy4v7s]>li[data-astro-cid-wpvy4v7s]:last-child .nav__link[data-astro-cid-wpvy4v7s]{color:var(--on-surface);background:var(--hairline)}.nav__list[data-astro-cid-wpvy4v7s]>li[data-astro-cid-wpvy4v7s]:last-child .nav__link[data-astro-cid-wpvy4v7s][aria-current=page]{color:#fff;background:var(--ink)}.nav__inner[data-astro-cid-wpvy4v7s]{width:auto;margin-inline:clamp(.5rem, 5.69vw - .638rem, var(--gutter))}.foot[data-astro-cid-jo6i4kqk]{background:var(--surface);color:var(--on-surface-body);padding-block:var(--space-xl) var(--space-l);margin-top:var(--space-2xl);isolation:isolate;position:relative;overflow:hidden}.foot[data-astro-cid-jo6i4kqk]:before,.foot[data-astro-cid-jo6i4kqk]:after{content:"";z-index:-1;pointer-events:none;background-repeat:no-repeat;height:11rem;position:absolute;bottom:-2rem;left:-15%;right:-15%;-webkit-mask-image:linear-gradient(#0000 4%,#000 92%);mask-image:linear-gradient(#0000 4%,#000 92%)}.foot[data-astro-cid-jo6i4kqk]:before{opacity:.62;filter:blur(38px)saturate(1.3);background-image:radial-gradient(38% 150% at 8% 100%,#f745b6e6,#0000 72%),radial-gradient(34% 165% at 32% 100%,#9958eed9,#0000 72%),radial-gradient(36% 150% at 56% 100%,#36c6f2d9,#0000 72%),radial-gradient(32% 170% at 78% 100%,#5dda3ecc,#0000 72%),radial-gradient(36% 150% at 98% 100%,#f9ca2fcc,#0000 72%)}.foot[data-astro-cid-jo6i4kqk]:after{opacity:.45;filter:blur(52px)saturate(1.35);background-image:radial-gradient(30% 170% at 18% 100%,#3fc9f3cc,#0000 70%),radial-gradient(34% 150% at 44% 100%,#f9cc39b3,#0000 70%),radial-gradient(30% 175% at 68% 100%,#f84fbacc,#0000 70%),radial-gradient(32% 155% at 90% 100%,#9f61efbf,#0000 70%)}@keyframes foot-ooze{0%{background-position:0 .9rem,0 -.8rem,0 1rem,0 -.9rem,0 .7rem}33%{background-position:7% -1rem,-5% 1.1rem,5% -1.2rem,-7% .9rem,4% -1rem}66%{background-position:-4% 1.2rem,8% -1rem,-6% .8rem,5% -1.2rem,-3% 1.1rem}to{background-position:3% -.8rem,-6% .9rem,8% -1rem,-4% 1.1rem,6% -.9rem}}@keyframes foot-ooze-alt{0%{background-position:0 -1rem,0 1.1rem,0 -.9rem,0 1rem}33%{background-position:-6% 1.2rem,5% -1rem,-7% 1.1rem,8% -1.2rem}66%{background-position:7% -1.1rem,-8% 1rem,6% -1.2rem,-5% .9rem}to{background-position:-3% .9rem,7% -1.2rem,-4% 1rem,6% -1.1rem}}@media (prefers-reduced-motion:no-preference){.foot[data-astro-cid-jo6i4kqk]:before{animation:13s ease-in-out infinite alternate foot-ooze}.foot[data-astro-cid-jo6i4kqk]:after{animation:9s ease-in-out infinite alternate foot-ooze-alt}}.foot[data-astro-cid-jo6i4kqk]>[data-astro-cid-jo6i4kqk]{position:relative}.foot__cta[data-astro-cid-jo6i4kqk]{justify-content:space-between;align-items:center;gap:var(--space-m);padding-bottom:var(--space-2xl);border-bottom:1px solid var(--hairline);flex-wrap:wrap;display:flex}.foot__head[data-astro-cid-jo6i4kqk]{font-size:var(--step-4);color:#fff;max-width:18ch;font-stretch:88%}.foot__head[data-astro-cid-jo6i4kqk] em[data-astro-cid-jo6i4kqk]{color:var(--mag);font-style:normal}.foot__grid[data-astro-cid-jo6i4kqk]{gap:var(--space-xl) var(--space-l);padding-block:var(--space-2xl);grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));display:grid}.foot__block[data-astro-cid-jo6i4kqk]{gap:var(--space-3xs);flex-direction:column;display:flex}.nav__glyph[data-astro-cid-jo6i4kqk]{border-radius:var(--radius-xs);background:var(--mag);color:#fff;width:2.25rem;height:2.25rem;font-family:var(--font-display);letter-spacing:-.04em;margin-bottom:var(--space-2xs);place-items:center;font-size:.9rem;font-weight:800;font-stretch:82%;display:grid}.foot__name[data-astro-cid-jo6i4kqk]{font-family:var(--font-display);font-size:var(--step-1);letter-spacing:var(--track-display);color:#fff;font-weight:680}.foot__line[data-astro-cid-jo6i4kqk]{font-size:var(--step--1);color:var(--on-surface-mute);line-height:1.5}.foot__links[data-astro-cid-jo6i4kqk]{margin-top:var(--space-2xs);gap:var(--space-3xs);flex-direction:column;padding:0;list-style:none;display:flex}.foot__links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{font-size:var(--step--1);color:var(--on-surface-body);transition:color var(--dur-fast) var(--ease-standard);text-decoration:none}.foot__links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{color:var(--mag)}.foot__base[data-astro-cid-jo6i4kqk]{justify-content:space-between;gap:var(--space-s);padding-top:var(--space-m);border-top:1px solid var(--hairline);font-family:var(--font-mono);font-size:var(--step--2);color:var(--on-surface-body);flex-wrap:wrap;display:flex}
