@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}.site-header__row[data-astro-cid-l7arcky5]{align-items:center;column-gap:var(--gutter);height:var(--header-h);grid-template-columns:auto 1fr auto;grid-template-areas:"mark nav tools";display:grid}.wordmark[data-astro-cid-l7arcky5]{letter-spacing:-.01em;grid-area:mark;padding-block:.5rem;font-size:1rem;font-weight:600}.site-header__nav[data-astro-cid-l7arcky5]{grid-area:nav}.site-header__nav[data-astro-cid-l7arcky5] ul[data-astro-cid-l7arcky5]{gap:clamp(1rem,.5rem + 1.5vw,2rem);display:flex}.site-header__tools[data-astro-cid-l7arcky5]{grid-area:tools;align-items:center;gap:.5rem;min-width:0;display:flex}.site-header__np[data-astro-cid-l7arcky5]{min-width:0;max-width:18rem;display:flex}@media (width<=767px){.site-header__row[data-astro-cid-l7arcky5]{border-bottom:1px solid rgb(var(--color-border));grid-template:"mark tools"3.25rem"nav nav"2.75rem/auto 1fr;height:auto}.site-header__tools[data-astro-cid-l7arcky5]{justify-content:end}.site-header__np[data-astro-cid-l7arcky5]{max-width:9.5rem}.site-header__nav[data-astro-cid-l7arcky5] ul[data-astro-cid-l7arcky5]{justify-content:space-between}}.footer__kbd[data-astro-cid-jo6i4kqk]{display:none}@media (hover:hover) and (pointer:fine){.footer__kbd[data-astro-cid-jo6i4kqk]{display:inline}}.footer[data-astro-cid-jo6i4kqk]{border-top:1px solid rgb(var(--color-border));margin-top:clamp(4rem,3rem + 3vw,6rem)}.footer__cta[data-astro-cid-jo6i4kqk]{row-gap:2rem;padding-block:clamp(3rem,2rem + 4vw,6rem) clamp(3rem,2rem + 3vw,5rem)}.footer__lede[data-astro-cid-jo6i4kqk]{max-width:28rem}.footer__actions[data-astro-cid-jo6i4kqk]{flex-wrap:wrap;align-items:center;gap:1.25rem 2rem;display:flex}.footer__mail[data-astro-cid-jo6i4kqk]{overflow-wrap:anywhere;align-items:baseline;gap:.4em;padding-block:.3rem;display:inline-flex}.footer__mail-text[data-astro-cid-jo6i4kqk]{background:linear-gradient(rgb(var(--color-primary)) 0 0) left bottom / 0% 2px no-repeat;box-shadow:inset 0 -1px 0 rgb(var(--color-border-strong));transition:background-size .6s var(--ease-out)}@media (hover:hover){.footer__mail[data-astro-cid-jo6i4kqk]:hover .footer__mail-text[data-astro-cid-jo6i4kqk]{background-size:100% 2px}}.footer__mail[data-astro-cid-jo6i4kqk]:focus-visible .footer__mail-text[data-astro-cid-jo6i4kqk]{background-size:100% 2px}.footer__base[data-astro-cid-jo6i4kqk]{border-top:1px solid rgb(var(--color-border));flex-wrap:wrap;justify-content:space-between;gap:1rem 2rem;padding-block:1.5rem 2rem;display:flex}.footer__links[data-astro-cid-jo6i4kqk]{flex-wrap:wrap;gap:.25rem 1.5rem;display:flex}.footer__links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{padding-block:.3rem;display:inline-block}@media (width<=767px){.footer__mail[data-astro-cid-jo6i4kqk]{font-size:1.3rem}}*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:Switzer,ui-sans-serif,system-ui,sans-serif;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--color-base:238 239 235;--color-surface:246 246 243;--color-surface-hover:227 228 223;--color-border:210 212 207;--color-border-strong:169 172 166;--color-primary:51 82 184;--color-accent:179 55 43;--color-text:17 19 18;--color-text-muted:86 91 88;--color-text-subtle:103 108 105;--color-shadow:0 0 0;--font-sans:"Switzer", ui-sans-serif, system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--t-mega:clamp(3.6rem, 1rem + 13vw, 13rem);--t-xl:clamp(2.4rem, 1.2rem + 4.6vw, 5.5rem);--t-l:clamp(1.6rem, 1.2rem + 1.6vw, 2.6rem);--t-m:clamp(1.125rem, 1.05rem + .3vw, 1.3rem);--t-body:1.0625rem;--t-ui:.8125rem;--max:1440px;--gutter:clamp(1rem, .6rem + 1.6vw, 2.5rem);--col:calc((min(100vw, var(--max)) - 13 * var(--gutter)) / 12);--header-h:4rem;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.87, 0, .13, 1)}.dark{--color-base:15 17 16;--color-surface:23 26 24;--color-surface-hover:31 35 32;--color-border:42 46 43;--color-border-strong:69 74 70;--color-primary:142 164 242;--color-accent:240 138 126;--color-text:232 233 229;--color-text-muted:163 168 164;--color-text-subtle:138 143 139}@font-face{font-family:Switzer;src:url(/fonts/switzer-400-normal.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Switzer;src:url(/fonts/switzer-500-normal.woff2)format("woff2");font-weight:500;font-display:swap}@font-face{font-family:Switzer;src:url(/fonts/switzer-600-normal.woff2)format("woff2");font-weight:600;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/ibm-plex-mono-latin-400-normal.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/ibm-plex-mono-latin-500-normal.woff2)format("woff2");font-weight:500;font-display:swap}html{background:rgb(var(--color-base));color:rgb(var(--color-text));-webkit-text-size-adjust:none;text-size-adjust:none}body{min-height:100dvh;font-family:var(--font-sans);font-size:var(--t-body);background:rgb(var(--color-base));color:rgb(var(--color-text));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-kerning:normal;line-height:1.55;overflow-x:clip}h1,h2,h3,h4{font-weight:inherit;font-size:inherit;text-wrap:balance}p{text-wrap:pretty}a{color:inherit;text-decoration:none}::selection{background:rgb(var(--color-primary));color:rgb(var(--color-base))}:focus-visible{outline:2px solid rgb(var(--color-primary));outline-offset:3px}#main:focus{outline:none}kbd{font-family:var(--font-mono);font-size:.85em}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.col-span-12{grid-column:span 12/span 12}.block{display:block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-4{height:1rem}.h-8{height:2rem}.w-4{width:1rem}.w-8{width:2rem}.flex-shrink{flex-shrink:1}.transform{transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.border{border-width:1px}.capitalize{text-transform:capitalize}.underline{text-decoration-line:underline}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.wrap{width:100%;max-width:var(--max);padding-inline:var(--gutter);margin-inline:auto}.grid12{column-gap:var(--gutter);grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.page-top{padding-top:calc(var(--header-h) + clamp(3rem, 2rem + 5vw, 7rem))}@media (width<=767px){:root{--header-h:6rem}}.t-mega{font-size:var(--t-mega);letter-spacing:-.045em;margin-left:-.05em;font-weight:600;line-height:.88}.t-xl{font-size:var(--t-xl);letter-spacing:-.035em;margin-left:-.04em;font-weight:600;line-height:.95}.t-l{font-size:var(--t-l);letter-spacing:-.02em;font-weight:500;line-height:1.12}.t-m{font-size:var(--t-m);letter-spacing:-.01em;font-weight:500;line-height:1.3}.t-ui{font-size:var(--t-ui);line-height:1.4}.t-data{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:0;font-size:.8125rem;line-height:1.4}.muted{color:rgb(var(--color-text-muted))}.subtle{color:rgb(var(--color-text-subtle))}.message{color:rgb(var(--color-primary))}.measure{max-width:36rem}.link{background:linear-gradient(rgb(var(--color-primary) / .22) 0 0) left bottom / 100% 1px no-repeat;transition:background-size .4s var(--ease-out);padding-block:.2em;box-shadow:inset 0 -1px}@media (hover:hover){.link:hover{background-size:100% .45em}}.link:focus-visible{background-size:100% .45em}.ulink{color:rgb(var(--color-text-muted));background:linear-gradient(rgb(var(--color-primary)) 0 0) left bottom / 0% 1px no-repeat;transition:color .2s, background-size .5s var(--ease-out)}@media (hover:hover){.ulink:hover{color:rgb(var(--color-text));background-size:100% 1px}}.ulink:focus-visible{color:rgb(var(--color-text));background-size:100% 1px}.arrow{line-height:1;display:inline-grid;overflow:clip}.arrow>span{transition:translate .45s var(--ease-out);grid-area:1/1}.arrow>span+span{translate:-110% 110%}.arrow--down>span+span{translate:0 -110%}@media (hover:hover){:is(a,button):hover>.arrow>span:first-child,:is(a,button):hover .row__end .arrow>span:first-child{translate:110% -110%}:is(a,button):hover>.arrow>span+span,:is(a,button):hover .row__end .arrow>span+span{translate:0}:is(a,button):hover>.arrow--down>span:first-child{translate:0 110%}}:is(a,button):focus-visible .arrow>span:first-child{translate:110% -110%}:is(a,button):focus-visible .arrow>span+span{translate:0}:is(a,button):focus-visible .arrow--down>span:first-child{translate:0 110%}.btn{isolation:isolate;border:1px solid rgb(var(--color-text));min-height:2.875rem;color:rgb(var(--color-text));transition:color .45s var(--ease-out);align-items:center;gap:.7em;padding:.7em 1.15em;font-size:.9375rem;font-weight:500;line-height:1;display:inline-flex;position:relative;overflow:hidden}.btn:before{content:"";z-index:-1;background:rgb(var(--color-text));clip-path:polygon(0% 100%,0% 100%,0% 100%);transition:clip-path .55s var(--ease-out);position:absolute;inset:0}.btn--solid{background:rgb(var(--color-text));color:rgb(var(--color-base))}.btn--solid:before{background:rgb(var(--color-primary))}@media (hover:hover){.btn:hover{color:rgb(var(--color-base))}.btn:hover:before{clip-path:polygon(0% 100%,0% -200%,300% 100%)}}.btn:focus-visible{color:rgb(var(--color-base))}.btn:focus-visible:before,.btn:active:before{clip-path:polygon(0% 100%,0% -200%,300% 100%)}.btn:active{color:rgb(var(--color-base))}.row{align-items:baseline;column-gap:var(--gutter);border-top:1px solid rgb(var(--color-border));padding-block:1.1rem;display:grid;position:relative}.row:after{content:"";background:rgb(var(--color-primary));transform-origin:0;height:1px;transition:transform .6s var(--ease-out);position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}.row__title{transition:translate .45s var(--ease-out)}.row__end{justify-self:end}@media (hover:hover){.row:hover:after{transform:scaleX(1)}.row:hover .row__title{translate:.4em}}.row:focus-visible{outline-offset:-2px}.row:focus-visible:after{transform:scaleX(1)}.row:focus-visible .row__title{translate:.4em}.live{background:rgb(var(--color-primary));border-radius:50%;flex:none;width:.5rem;height:.5rem;display:inline-block;position:relative}.live:after{content:"";border-radius:inherit;border:1px solid rgb(var(--color-primary));animation:live 2.4s var(--ease-out) infinite;position:absolute;inset:0}@keyframes live{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(3)}}.skip-link{left:var(--gutter);top:calc(var(--header-h) + .75rem);z-index:200;background:rgb(var(--color-text));color:rgb(var(--color-base));transform:translateY(calc(-100% - var(--header-h) - 1rem));padding:.6em 1em;position:fixed}.skip-link:focus-visible{transform:none}.site-header{z-index:50;background:rgb(var(--color-base));transition:translate .6s var(--ease-out), box-shadow .3s;position:fixed;inset:0 0 auto}html.is-scrolled .site-header{box-shadow:0 1px 0 rgb(var(--color-border))}html.header-away .site-header:not(:focus-within){translate:0 -105%}.nav__link{padding:.55rem .1rem;font-size:.9375rem;font-weight:500;display:inline-flex;position:relative}.nav__link:after{content:"";background:rgb(var(--color-text));opacity:0;width:5px;height:5px;transition:transform .45s var(--ease-out), opacity .2s;border-radius:50%;margin-left:-2.5px;position:absolute;bottom:.1rem;left:50%;transform:translateY(-.6rem)scale(0)}.nav__link[aria-current=page]:after{background:rgb(var(--color-primary));opacity:1;transform:none}@media (hover:hover){.nav__link:hover:after{opacity:1;transform:none}}.nav__link:focus-visible:after{opacity:1;transform:none}.tool{border:1px solid rgb(var(--color-border));min-width:2.25rem;min-height:2.25rem;font-size:var(--t-ui);color:rgb(var(--color-text-muted));justify-content:center;align-items:center;gap:.45rem;padding-inline:.6rem;transition:border-color .2s,color .2s;display:inline-flex}@media (hover:hover){.tool:hover{border-color:rgb(var(--color-text));color:rgb(var(--color-text))}}.tool:active{transform:scale(.97)}#curtain{z-index:150;pointer-events:none;visibility:hidden;position:fixed;inset:0}.curtain__lead{background:rgb(var(--color-primary));position:absolute;inset:0}html:not(.motion) .curtain__lead{display:none}.curtain__panel{background:rgb(var(--color-text));color:rgb(var(--color-base));place-items:center;display:grid;position:absolute;inset:0}.motion [data-split],.motion [data-reveal]{visibility:hidden}.split-line{margin-bottom:-.08em;padding-bottom:.08em}:is(.t-mega,.t-xl) .split-line{margin-bottom:-.22em;padding-bottom:.22em}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.live:after{display:none}.row:hover .row__title,.row:focus-visible .row__title{text-underline-offset:.2em;text-decoration:underline}}[data-split]>*,[data-split]>*>*{text-indent:0}[data-split]>:first-child,[data-split]>:first-child>:first-child{text-indent:inherit}.peer:focus-visible~.peer-focus-visible\:outline{outline-style:solid}.peer:focus-visible~.peer-focus-visible\:outline-2{outline-width:2px}.peer:focus-visible~.peer-focus-visible\:outline-offset-2{outline-offset:2px}.peer:focus-visible~.peer-focus-visible\:outline-primary{outline-color:rgb(var(--color-primary) / 1)}@media (width>=768px){.md\:col-span-4{grid-column:span 4/span 4}.md\:col-span-6{grid-column:span 6/span 6}.md\:col-span-8{grid-column:span 8/span 8}.md\:col-start-5{grid-column-start:5}}@media (width>=1024px){.lg\:col-span-10{grid-column:span 10/span 10}.lg\:col-span-4{grid-column:span 4/span 4}.lg\:col-span-6{grid-column:span 6/span 6}.lg\:col-span-7{grid-column:span 7/span 7}.lg\:col-span-8{grid-column:span 8/span 8}.lg\:col-start-5{grid-column-start:5}.lg\:col-start-9{grid-column-start:9}.lg\:inline{display:inline}}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}
