*,*:before,*:after{box-sizing:border-box}*{margin:0}html,body{height:100%}html:focus-within{scroll-behavior:smooth}body{min-height:100vh;line-height:1.5;-webkit-font-smoothing:antialiased}ul[role=list],ol[role=list]{list-style:none}a:not([class]){text-decoration-skip-ink:auto}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}form,fieldset{padding:0}#root,#__next{isolation:isolate}@media (prefers-reduced-motion: reduce){html:focus-within{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}body{--bg-color: var(--color-base-light);--fg-color: var(--color-base-dark);--bg-color-subtle: var(--color-gray-subtle-light);--fg-color-subtle: var(--color-gray-light);--accent-color: var(--color-accent-light);--gradient-dir: 45deg;--gradient: linear-gradient(var(--gradient-dir), var(--color-accent-light), var(--gradient-accent), var(--color-accent-light), var(--gradient-accent));--logo-main-color: var(--color-accent-light);--logo-accent-color: var(--gradient-accent);font-family:var(--font-base);font-size:var(--size-step-0);font-weight:var(--font-weight-base);line-height:var(--line-height-base);background:var(--bg-color);color:var(--fg-color);letter-spacing:var(--tracking);display:flex;flex-direction:column}[data-theme=dark] body{--bg-color: var(--color-base-dark);--fg-color: var(--color-base-light);--bg-color-subtle: var(--color-gray-subtle-dark);--fg-color-subtle: var(--color-gray-dark);--accent-color: var(--color-accent-dark);--gradient: linear-gradient(var(--gradient-dir), var(--gradient-accent), var(--color-accent-dark), var(--gradient-accent), var(--color-accent-dark));--logo-main-color: var(--color-accent-dark)}h1{font-family:var(--font-heading);font-weight:var(--font-weight-heading-1)}h1:not([class]){background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;color:var(--fg-color);padding-block:.5rem}h2{font-family:var(--font-heading);font-weight:var(--font-weight-heading-2)}h3{font-family:var(--font-heading);font-weight:var(--font-weight-heading-3)}h4,h5,h6{font-family:var(--font-base);font-weight:var(--font-weight-bold)}h1,h2,h3{line-height:var(--line-height-tight);letter-spacing:var(--tracking-l);max-width:24ch;font-weight:700}h1{font-size:var(--size-step-3)}h2{font-size:var(--size-step-2)}h3,h4,h5,h6{font-size:var(--size-step-1)}p,li,h4,h5,h6,blockquote:not([class]){max-width:var(--content-measure)}em{color:var(--accent-color)}figcaption:not([class]){font-style:italic;font-weight:700}blockquote:not([class]){font-family:var(--font-heading);font-size:calc(var(--size-step-0) * 1.1);border-left:.25rem solid var(--accent-color);padding-left:var(--size-step-0);line-height:1.3;position:relative}svg{height:2.5ex;width:auto;flex:none}[role=list]{padding:0}ul:not([role=list]){margin-inline-start:var(--space-l)}div[class=toc] ul:not([role=list]){margin-inline-start:var(--space-3xs)}a{color:var(--fg-color);text-decoration-color:var(--accent-color)}a[class],a:hover{text-decoration:none}:target{scroll-margin-top:2ex}main:focus{outline:none}:focus{outline:var(--outline-size) solid;outline-offset:var(--outline-offset);outline-color:var(--fg-color)}main>ul[role=list],header,section,article>*,aside{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}main,header,aside{margin-block-end:var(--space-xl-2xl)}hr{border:none;height:1px;background-color:var(--bg-color-subtle)}p>code,li>code,a>code{padding:2px 4px;border-radius:var(--border-radius-sm);background-color:var(--bg-color-subtle);color:var(--accent-color);font-size:var(--size-step-0)}pre{padding:var(--space-2xs-xs);border-radius:var(--border-radius-sm)}footer{margin-block-start:var(--space-xl-2xl)}img{margin-inline:auto;max-width:100%;height:auto}figcaption>p{text-align:center}:root{--color-base-light: hsl(0, 0%, 98%);--color-base-dark: hsl(0, 0%, 0%);--color-accent-dark: hsl(195, 86%, 46%);--color-accent-light: hsl(231, 93%, 40%);--gradient-accent: hsl(214, 98%, 52%);--transparent-accent-light: hsla(212, 45%, 6%, .2);--transparent-accent-dark: hsla(195, 86%, 46%, .15);--color-gray-light: hsl(206, 5.8%, 52.3%);--color-gray-subtle-light: hsl(208, 11.3%, 88.9%);--color-gray-dark: hsl(206, 5.2%, 49.5%);--color-gray-subtle-dark: hsl(201, 6.2%, 20.5%);--font-base: system-ui, sans-serif;--font-heading: Helvetica, Arial, sans-serif;--font-weight-heading-1: 100;--font-weight-heading-2: 200;--font-weight-heading-3: 400;--font-weight-base: 400;--font-weight-bold: 700;--content-measure: 75ch;--outline-offset: .25rem;--outline-size: 2px;--gutter: var(--space-s-m);--border-radius: 12px;--border-radius-sm: .25rem;--duration-sm: .25s;--duration-md: .5s;--duration-lg: .7s;--transition-base: var(--duration-sm) ease;--transition-movement: var(--duration-sm) linear;--transition-fade: var(--duration-md) ease;--transition-bounce: var(--duration-md) cubic-bezier(.5, .05, .2, 1.5);--tracking-s: -.07ch;--tracking: -.05ch;--tracking-l: -.01ch;--line-height-base: 1.4;--line-height-tight: 1.1;--size-step--1: clamp(.88rem, calc(.95rem - .08vw) , .94rem);--size-step-0: clamp(1.13rem, calc(1.09rem + .19vw) , 1.25rem);--size-step-1: clamp(1.35rem, calc(1.22rem + .65vw) , 1.77rem);--size-step-2: clamp(1.62rem, calc(1.35rem + 1.37vw) , 2.5rem);--size-step-3: clamp(1.94rem, calc(1.45rem + 2.47vw) , 3.53rem);--size-step-4: clamp(2.33rem, calc(1.5rem + 4.14vw) , 5rem);--size-step-5: clamp(2.8rem, calc(1.47rem + 6.63vw) , 7.07rem);--space-3xs: clamp(.25rem, calc(.23rem + .1vw) , .31rem);--space-2xs: clamp(.5rem, calc(.46rem + .19vw) , .63rem);--space-xs: clamp(.75rem, calc(.69rem + .29vw) , .94rem);--space-s: clamp(1rem, calc(.92rem + .39vw) , 1.25rem);--space-m: clamp(1.5rem, calc(1.38rem + .58vw) , 1.88rem);--space-l: clamp(2rem, calc(1.84rem + .78vw) , 2.5rem);--space-xl: clamp(3rem, calc(2.77rem + 1.17vw) , 3.75rem);--space-2xl: clamp(4rem, calc(3.69rem + 1.55vw) , 5rem);--space-3xs-2xs: clamp(.25rem, calc(.13rem + .58vw) , .63rem);--space-2xs-xs: clamp(.5rem, calc(.36rem + .68vw) , .94rem);--space-xs-s: clamp(.75rem, calc(.59rem + .78vw) , 1.25rem);--space-s-m: clamp(1rem, calc(.73rem + 1.36vw) , 1.88rem);--space-m-l: clamp(1.5rem, calc(1.19rem + 1.55vw) , 2.5rem);--space-l-xl: clamp(2rem, calc(1.46rem + 2.72vw) , 3.75rem);--space-xl-2xl: clamp(3rem, calc(2.38rem + 3.11vw) , 5rem);--space-l-2xl: clamp(2rem, calc(1.07rem + 4.66vw) , 5rem)}.grid{--grid-min-item-size: 25ch;display:grid;gap:var(--gutter, var(--space-2xl))}@supports (width: min(var(--grid-min-item-size),100%)){.grid{grid-template-columns:repeat(var(--grid-placement, auto-fit),minmax(min(var(--grid-min-item-size, 20ch),100%),1fr))}}.flow>*+*,.prose>*+*{margin-block-start:var(--flow-space, var(--space-s-m))}.prose :is(pre,pre+*,figure,figure+*,h2,h3,h4,h5,h6){--flow-space: var(--space-l-xl)}.prose :is(h2+*,h3+*,h4+*,h5+*,h6+*){--flow-space: var(--space-s)}.wrapper{width:clamp(16rem,95vw,75rem);margin-inline:auto;padding-inline:var(--gutter, 1rem);position:relative}.repel{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--gutter, var(--space-s-m))}.cluster{display:flex;flex-wrap:wrap;flex-direction:row;justify-content:flex-start;align-items:center;gap:var(--gutter, var(--space-s-m))}.gradient-heading{background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;display:inline-block;color:var(--fg-color)}.region{padding-top:var(--region-space, var(--space-l-xl));padding-bottom:var(--region-space, var(--space-l-xl))}.prose{max-inline-size:var(--content-measure)}.object-fit-cover{height:100%;object-fit:cover;width:100%}.sr-only{border:0!important;clip:rect(1px,1px,1px,1px)!important;-webkit-clip-path:inset(50%)!important;clip-path:inset(50%)!important;height:1px!important;overflow:hidden!important;margin:-1px!important;padding:0!important;position:absolute!important;width:1px!important;white-space:nowrap!important}.hero{margin-block-start:var(--space-sm);--flow-space: var(--space-3xs)}.hero h2{margin-top:0rem}.hero a{text-decoration:none}.hero a:hover{text-decoration:underline}.features{--gutter: var(--space-l)}.toc{margin-block:var(--space-l);background-color:var(--color-accent);max-width:fit-content}.toc:before{content:"Table of Contents";font-weight:700;font-size:var(--size-step-1);display:block;margin-bottom:10px;color:var(--fg-color)}.toc ul{list-style:disc}.toc ul li{padding:5px 0}.toc ul li a{color:var(--accent-color);text-decoration:none;transition:color .3s ease}.toc ul li a:hover{color:#0056b3}.grid[data-layout="50-50"]{--grid-placement: auto-fit;--grid-min-item-size: clamp(16rem, 50vw, 26rem)}.emoji[data-astro-cid-mfst5htq]{position:absolute;top:50%;transform:translateY(-50%);font-size:18px}.moon[data-astro-cid-mfst5htq]{left:4px;top:50%;visibility:hidden}.sun[data-astro-cid-mfst5htq]{right:4px;top:50%;visibility:hidden}.switch[data-astro-cid-mfst5htq]{position:relative;display:inline-block;width:56px;height:24px}.switch[data-astro-cid-mfst5htq] input[data-astro-cid-mfst5htq]{opacity:0;width:0;height:0}.slider[data-astro-cid-mfst5htq]{position:absolute;cursor:pointer;inset:0;background:var(--gradient);-webkit-transition:.4s;transition:.4s;border-radius:2rem}.slider[data-astro-cid-mfst5htq]:before{position:absolute;content:"";height:18px;width:18px;left:6px;bottom:3px;background-color:var(--color-accent-light);-webkit-transition:.4s;transition:.4s;border-radius:2rem}html[data-theme=light] .slider[data-astro-cid-mfst5htq]:before{background-color:var(--bg-color)}input[data-astro-cid-mfst5htq]:focus+.slider[data-astro-cid-mfst5htq]{box-shadow:0 0 1px var(--accent-color)}input[data-astro-cid-mfst5htq]:checked+.slider[data-astro-cid-mfst5htq]:before{-webkit-transform:translateX(26px);-ms-transform:translateX(26px);transform:translate(26px)}input[data-astro-cid-mfst5htq]:checked+.slider[data-astro-cid-mfst5htq] .moon[data-astro-cid-mfst5htq]{visibility:visible}input[data-astro-cid-mfst5htq]:not(:checked)+.slider[data-astro-cid-mfst5htq] .sun[data-astro-cid-mfst5htq]{visibility:visible}input[data-astro-cid-mfst5htq] .slider[data-astro-cid-mfst5htq].round{border-radius:34px}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0}}@keyframes astroFadeOut{to{opacity:0}}@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(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}a[data-astro-cid-4ducenwb]{font-weight:700}.nav-links[data-astro-cid-4ducenwb]{display:flex;align-items:flex-end;gap:1rem}.nav-link[data-astro-cid-4ducenwb]{font-family:var(--font-base);font-size:var(--size-step-0);color:var(--fg-color);display:flex;align-items:flex-end}svg[data-astro-cid-tvrurpns]{height:30px;width:30px;justify-self:center}nav[data-astro-cid-xbstl6g3]{padding-block-start:.5rem}.cluster[data-astro-cid-xbstl6g3]{justify-content:space-between}.dark-mode-toggle[data-astro-cid-xbstl6g3]{background-color:transparent;border:none;cursor:pointer;align-self:center}.flex[data-astro-cid-mtxgg6pp]{display:flex;justify-content:space-between}.rss[data-astro-cid-mtxgg6pp]{display:inline-flex;width:fit-content;justify-self:flex-end}.rss[data-astro-cid-mtxgg6pp] svg[data-astro-cid-mtxgg6pp]{stroke:var(--accent-color);justify-self:center}nav[data-astro-cid-mtxgg6pp]{display:inline-block}footer[data-astro-cid-mtxgg6pp]{padding-top:var(--space-m);padding-bottom:var(--space-m);--content-measure: 100%}footer[data-astro-cid-mtxgg6pp] p[data-astro-cid-mtxgg6pp]{font-size:var(--size-step--1);text-align:center}a[data-astro-cid-mtxgg6pp]{font-weight:700}.footer-link[data-astro-cid-mtxgg6pp]{font-family:var(--font-base);font-size:var(--size-step-0);color:var(--fg-color);padding:var(--space-xs) var(--space-xs)}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}
