.footer:where(.astro-ghzixdhz){border-top:1px solid var(--sp-border);background:var(--sp-surface);color:var(--sp-text-3);font-size:.9375rem}.top:where(.astro-ghzixdhz){flex-wrap:wrap;justify-content:space-between;gap:2rem 3rem;padding-block:3rem 2rem;display:flex}.brand:where(.astro-ghzixdhz){flex-direction:column;gap:.75rem;max-width:20rem;display:flex}.brand:where(.astro-ghzixdhz) p:where(.astro-ghzixdhz){color:var(--sp-text-2)}.home:where(.astro-ghzixdhz){color:var(--sp-text);align-self:flex-start;font-size:1.1875rem;text-decoration:none}.links:where(.astro-ghzixdhz){flex-wrap:wrap;gap:2rem 4rem;display:flex}h2:where(.astro-ghzixdhz){color:var(--sp-text);margin-bottom:.5rem;font-size:.9375rem;font-weight:700}ul:where(.astro-ghzixdhz){margin:0;padding:0;list-style:none}ul:where(.astro-ghzixdhz) a:where(.astro-ghzixdhz){color:var(--sp-text-2);padding-block:.3rem;text-decoration:none;display:inline-block}ul:where(.astro-ghzixdhz) a:where(.astro-ghzixdhz):hover{color:var(--sp-text);text-decoration:underline}.bottom:where(.astro-ghzixdhz){border-top:1px solid var(--sp-border);color:var(--sp-text-3);padding-block:1.25rem 2rem;font-size:.875rem}.nowrap:where(.astro-ghzixdhz){white-space:nowrap}@media (width<=40rem){.links:where(.astro-ghzixdhz){grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem 1.5rem;width:100%;display:grid}}.theme-toggle:where(.astro-37s3b5ac){border:1px solid var(--sp-border);background:var(--sp-surface);width:2.5rem;height:2.5rem;color:var(--sp-text-2);cursor:pointer;border-radius:6px;place-items:center;padding:0;display:inline-grid}.theme-toggle:where(.astro-37s3b5ac):hover{border-color:var(--sp-border-strong);color:var(--sp-text)}svg:where(.astro-37s3b5ac){width:1.15rem;height:1.15rem}.sun:where(.astro-37s3b5ac){display:none}:root[data-theme=dark] .sun:where(.astro-37s3b5ac){display:block}:root[data-theme=dark] .moon:where(.astro-37s3b5ac){display:none}.header:where(.astro-hrxsezxw){z-index:20;border-bottom:1px solid var(--sp-border);background:var(--sp-bg);position:sticky;top:0}.bar:where(.astro-hrxsezxw){grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem 2rem;padding-block:1rem;display:grid}.home:where(.astro-hrxsezxw){color:var(--sp-text);align-items:center;font-size:1.625rem;text-decoration:none;display:flex}.nav:where(.astro-hrxsezxw) ul:where(.astro-hrxsezxw){flex-wrap:wrap;justify-content:center;gap:0 1.5rem;margin:0;padding:0;list-style:none;display:flex}.nav:where(.astro-hrxsezxw) a:where(.astro-hrxsezxw),.github:where(.astro-hrxsezxw){min-height:2.5rem;color:var(--sp-text-2);align-items:center;gap:.45rem;font-size:.9375rem;font-weight:600;text-decoration:none;display:inline-flex}.nav:where(.astro-hrxsezxw) a:where(.astro-hrxsezxw):hover,.github:where(.astro-hrxsezxw):hover{color:var(--sp-text)}.nav:where(.astro-hrxsezxw) a:where(.astro-hrxsezxw)[aria-current=page]{color:var(--sp-text);text-decoration:underline;text-decoration-color:var(--sp-mark);text-underline-offset:.45em;text-decoration-thickness:2px}.github:where(.astro-hrxsezxw) svg:where(.astro-hrxsezxw){flex:none;width:1.125rem;height:1.125rem}.end:where(.astro-hrxsezxw){align-items:center;gap:.9rem;display:flex}@media (width<=64rem){.nav:where(.astro-hrxsezxw) ul:where(.astro-hrxsezxw){gap:0 1.1rem}}@media (width<=56rem){.bar:where(.astro-hrxsezxw){grid-template-columns:1fr auto;row-gap:.25rem;padding-block:.5rem}.nav:where(.astro-hrxsezxw) a:where(.astro-hrxsezxw){min-height:2.25rem}.nav:where(.astro-hrxsezxw){grid-area:2/1/auto/-1}.nav:where(.astro-hrxsezxw) ul:where(.astro-hrxsezxw){justify-content:flex-start}}@media (width<=30rem){.bar:where(.astro-hrxsezxw){column-gap:1rem}.home:where(.astro-hrxsezxw){font-size:1.5rem}.end:where(.astro-hrxsezxw){gap:.7rem}.nav:where(.astro-hrxsezxw) ul:where(.astro-hrxsezxw){justify-content:space-between;gap:0 .75rem}.nav:where(.astro-hrxsezxw) a:where(.astro-hrxsezxw){font-size:.875rem}.github:where(.astro-hrxsezxw){padding-inline:.35rem}.github-label:where(.astro-hrxsezxw){clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}@media (width<=24rem){.github:where(.astro-hrxsezxw){display:none}}@media (width<=22.5rem){.home:where(.astro-hrxsezxw){font-size:1.375rem}.end:where(.astro-hrxsezxw){gap:.6rem}.nav:where(.astro-hrxsezxw) ul:where(.astro-hrxsezxw){gap:0 .5rem}.nav:where(.astro-hrxsezxw) a:where(.astro-hrxsezxw){font-size:.8125rem}}*,:before,:after{box-sizing:border-box}html{background:var(--sp-bg);scroll-padding-top:4.75rem}@media (width<=56rem){html{scroll-padding-top:6.25rem}}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{background:var(--sp-bg);color:var(--sp-text);font-family:var(--sp-font);-webkit-font-smoothing:antialiased;margin:0;font-size:1.125rem;line-height:1.6}:where(h1,h2,h3,p,figure,pre,dl,dt,dd){margin:0}:where(a){color:var(--sp-accent-text);text-underline-offset:.22em}:where(a:hover){color:var(--sp-text)}:focus-visible{outline:2px solid var(--sp-ring);outline-offset:3px;border-radius:2px}:where(code){font-family:var(--sp-font-mono);font-size:.875em}:where(p,li,dd,h3,figcaption) :where(code){white-space:nowrap}:where(code,pre,kbd,samp){font-variant-ligatures:none}.wrap{max-width:72.5rem;margin-inline:auto;padding-inline:1.5rem}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:30;background:var(--sp-text);color:var(--sp-bg);border-radius:6px;padding:.6rem 1rem;font-weight:700;position:fixed;top:-10rem;left:1rem}.skip-link:focus{top:1rem}.button{background:var(--sp-accent);min-height:3rem;color:var(--sp-accent-fg);white-space:nowrap;border:1px solid #0000;border-radius:6px;align-items:center;padding:0 1.375rem;font-size:1rem;font-weight:700;text-decoration:none;display:inline-flex}.button:hover{background:var(--sp-accent-hover);color:var(--sp-accent-fg)}.button-small{min-height:2.5rem;padding:0 1rem;font-size:.9375rem}.section{padding-block:5.5rem}.section-alt{border-block:1px solid var(--sp-border);background:var(--sp-surface)}.section-title{letter-spacing:-.012em;text-wrap:balance;font-size:clamp(1.875rem,3.6vw,2.75rem);font-weight:800;line-height:1.1}.section-lede{max-width:40rem;color:var(--sp-text-2);margin-top:1rem}@media (width<=40rem){body{font-size:1.0625rem}.wrap{padding-inline:1rem}.section{padding-block:4rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
