.filter{--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: }*,:after,:before{box-sizing:border-box}html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none}blockquote,body,dd,dl,figure,h1,h2,h3,h4,ol,p,pre,ul{margin:0}ol,ul{list-style:none;padding-left:0}html:focus-within{scroll-behavior:smooth}html{scrollbar-gutter:stable}body{min-height:100vh;min-height:100dvh;text-rendering:optimizeSpeed}*{text-wrap:pretty}a:not([class]){-webkit-text-decoration-skip:ink;color:currentColor;text-decoration-skip-ink:auto}canvas,img,picture,svg{background-repeat:no-repeat;background-size:cover;block-size:auto;font-style:italic;max-inline-size:100%;shape-margin:.75rem;vertical-align:middle}button{all:unset}button,input,select,textarea{font:inherit}textarea:not([rows]){min-height:10em}[role=button],[role=option],button,label,select,summary{cursor:pointer}:target{scroll-margin-block-start:2ex}:focus{scroll-margin-block-end:8vh}:root{--color-gray-0:#f8f9fa;--color-gray-1:#f1f3f5;--color-gray-2:#e9ecef;--color-gray-3:#dee2e6;--color-gray-4:#ced4da;--color-gray-5:#adb5bd;--color-gray-6:#868e96;--color-gray-7:#495057;--color-gray-8:#343a40;--color-gray-9:#212529;--color-blue-2:#a5d8ff;--color-blue-3:#74c0fc;--color-blue-7:#1c7ed6;--color-blue-8:#1971c2;--color-red-2:#ffc9c9;--color-red-3:#ffa8a8;--color-red-4:#ff8787;--color-red-8:#e03131;--color-red-9:#c92a2a;--color-yellow-3:#ffe066;--color-yellow-4:#ffd43b;--space-3xs:clamp(0.3125rem,0.29rem + 0.10vw,0.375rem);--space-2xs:clamp(0.5625rem,0.50rem + 0.29vw,0.75rem);--space-xs:clamp(0.875rem,0.80rem + 0.38vw,1.125rem);--space-s:clamp(1.125rem,1.01rem + 0.58vw,1.5rem);--space-m:clamp(2.25rem,2.02rem + 1.15vw,3rem);--space-l:clamp(3.375rem,3.03rem + 1.73vw,4.5rem);--space-xl:clamp(5.625rem,5.05rem + 2.88vw,7.5rem);--space-2xl:clamp(9rem,8.08rem + 4.62vw,12rem);--space-3xl:clamp(14.625rem,13.13rem + 7.50vw,19.5rem);--space-3xs-2xs:clamp(0.3125rem,0.18rem + 0.67vw,0.75rem);--space-2xs-xs:clamp(0.5625rem,0.39rem + 0.87vw,1.125rem);--space-xs-s:clamp(0.875rem,0.68rem + 0.96vw,1.5rem);--space-s-m:clamp(1.125rem,0.55rem + 2.88vw,3rem);--space-s-l:clamp(1.125rem,0.09rem + 5.19vw,4.5rem);--space-m-l:clamp(2.25rem,1.56rem + 3.46vw,4.5rem);--space-l-xl:clamp(3.375rem,2.11rem + 6.35vw,7.5rem);--space-l-2xl:clamp(3.375rem,0.72rem + 13.27vw,12rem);--space-xl-2xl:clamp(5.625rem,3.66rem + 9.81vw,12rem);--space-2xl-3xl:clamp(9rem,5.77rem + 16.15vw,19.5rem);--size-step-min-2:clamp(0.88875rem,0.87rem + 0.11vw,0.96rem);--size-step-min-1:clamp(1rem,0.94rem + 0.31vw,1.2rem);--size-step-0:clamp(1.125rem,1.01rem + 0.58vw,1.5rem);--size-step-1:clamp(1.265625rem,1.08rem + 0.94vw,1.875rem);--size-step-2:clamp(1.42375rem,1.14rem + 1.42vw,2.34375rem);--size-step-3:clamp(1.601875rem,1.19rem + 2.04vw,2.93rem);--size-step-4:clamp(1.801875rem,1.23rem + 2.86vw,3.661875rem);--size-step-5:clamp(2.0275rem,1.24rem + 3.92vw,4.5775rem);--size-step-6:clamp(2.280625rem,1.22rem + 5.29vw,5.721875rem);--leading-flat:1;--leading-fine:1.25;--leading-standard:1.5;--font-base:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Cascadia Mono,Consolas,Segoe UI Mono,Roboto Mono,Oxygen Mono,Ubuntu Monospace,Source Code Pro,Fira Mono,Droid Sans Mono,Courier New,monospace;--font-regular:400;--font-medium:500;--font-bold:600;--font-extra-bold:700;color-scheme:dark light;--gutter:var(--space-s-m);--border-radius:0.25rem;--transition-base:250ms ease;--wrapper-max-inline-size:60rem;--logo-size-multiplier:2.5;--logo-gap-multiplier:1;--logo-font-size:var(--size-step-1);--logo-extender:calc(var(--logo-size-multiplier)*var(--logo-font-size) + var(--logo-gap-multiplier)*var(--logo-font-size))}:root,:root[data-theme=dark]{--color-text:var(--color-gray-1);--color-text-contrast:#000;--color-neutral:var(--color-gray-4);--color-neutral-accent:var(--color-gray-3);--color-border:var(--color-gray-6);--color-border-accent:var(--color-gray-5);--color-bg:var(--color-gray-9);--color-bg-accent:var(--color-gray-8);--color-bg-accent-2:var(--color-gray-7);--color-primary:var(--color-red-4);--color-primary-accent:var(--color-red-3);--color-secondary:var(--color-blue-3);--color-secondary-accent:var(--color-blue-2);--color-highlight:var(--color-yellow-3);--color-highlight-text:var(--color-gray-9)}@media (prefers-color-scheme:light){:root{--color-text:var(--color-gray-9);--color-text-contrast:#fff;--color-neutral:var(--color-gray-7);--color-neutral-accent:var(--color-gray-8);--color-border:var(--color-gray-5);--color-border-accent:var(--color-gray-6);--color-bg:var(--color-gray-1);--color-bg-accent:var(--color-gray-2);--color-bg-accent-2:var(--color-gray-3);--color-primary:var(--color-red-8);--color-primary-accent:var(--color-red-9);--color-secondary:var(--color-blue-7);--color-secondary-accent:var(--color-blue-8);--color-highlight:var(--color-yellow-4)}}:root[data-theme=light]{--color-text:var(--color-gray-9);--color-text-contrast:#fff;--color-neutral:var(--color-gray-7);--color-neutral-accent:var(--color-gray-8);--color-border:var(--color-gray-5);--color-border-accent:var(--color-gray-6);--color-bg:var(--color-gray-1);--color-bg-accent:var(--color-gray-2);--color-bg-accent-2:var(--color-gray-3);--color-primary:var(--color-red-8);--color-primary-accent:var(--color-red-9);--color-secondary:var(--color-blue-7);--color-secondary-accent:var(--color-blue-8);--color-highlight:var(--color-yellow-4)}body{accent-color:var(--color-primary);background-color:var(--color-bg);color:var(--color-text);display:flex;flex-direction:column;font-family:var(--font-base);font-size:var(--size-step-0);font-weight:var(--font-regular);line-height:1.5}main{flex:auto}h1,h2,h3,h4{font-weight:var(--font-bold);line-height:1.125;text-wrap:balance}h1{font-size:var(--size-step-4)}h2{font-size:var(--size-step-3)}h3{font-size:var(--size-step-2)}h4{font-size:var(--size-step-1)}blockquote{border-inline-start:.5rem solid var(--color-primary);padding:var(--space-m-l)}blockquote>*+*{margin-block-start:var(--flow-space,1em)}blockquote :last-child{font-family:var(--font-base);font-size:var(--size-step-0);font-style:normal}svg{block-size:2ex;flex:none;inline-size:auto}strong{font-weight:var(--font-extra-bold)}button,input,label{line-height:1.125}hr{background-color:var(--color-border);border:0;height:2px;margin-block:var(--space-m-l);margin-inline-start:0;width:10%}code,kbd,pre{background:var(--color-bg-accent-2);border-radius:var(--border-radius);-webkit-box-decoration-break:clone;box-decoration-break:clone;font-family:var(--font-mono);font-size:var(--size-step-min-1);padding:.25em .375em;word-break:normal;word-spacing:normal;word-wrap:normal;-webkit-hyphens:none;hyphens:none}pre{overflow:auto;position:relative}mark{background-color:var(--color-highlight);color:var(--color-highlight-text);margin-inline-end:.125ch;padding-inline:.25ch}sub,sup{line-height:0;position:relative;top:-.4em;vertical-align:baseline}sub{top:.4em}a{--underline-offset:calc(0.375em - 0.375ex);color:currentColor;text-decoration:underline;-webkit-text-decoration-skip:ink;text-decoration-color:var(--color-border);text-decoration-skip-ink:auto;text-decoration-thickness:.075em;text-underline-offset:var(--underline-offset)}a:hover{text-underline-offset:calc(var(--underline-offset) + 1px)}:focus-visible{border-radius:var(--border-radius);outline:3px solid var(--color-primary-accent);outline-offset:.5ch}main:focus{outline:none}::-moz-selection{background-color:var(--color-text);color:var(--color-bg)}::selection{background-color:var(--color-text);color:var(--color-bg)}.preload-transitions *{transition:none!important}@media (prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.button{--button-bg:var(--color-neutral);--button-text:var(--color-text-contrast);--button-border:var(--button-bg);--button-bg-hover:var(--color-neutral-accent);--button-text-hover:var(--color-text-contrast);--button-border-hover:var(--button-bg-hover);--button-bg-selected:var(--button-bg-hover);--button-text-selected:var(--button-text-hover) --button-border-selected:var(--button-border-hover);align-items:center;background-color:var(--button-bg);border:2px solid var(--button-border);border-radius:var(--border-radius);color:var(--button-text);cursor:pointer;display:inline-flex;font:inherit;font-weight:var(--font-bold);line-height:1!important;overflow:hidden;padding:.5em 1em;position:relative;text-align:center;text-decoration:none}.button[data-type=primary]{--button-bg:var(--color-primary);--button-bg-hover:var(--color-primary-accent)}.button[data-type=clear]{--button-bg:var(--color-bg);--button-text:var(--color-text);--button-border:var(--color-border);--button-bg-hover:var(--color-bg);--button-text-hover:var(--color-text);--button-border-hover:var(--color-border-accent);--button-border-selected:var(--color-text)}.button:hover{--button-bg:var(--button-bg-hover);--button-text:var(--button-text-hover);--button-border:var(--button-border-hover)}.button[aria-current=page],.button[aria-pressed=true],.button[data-state=active]{--button-bg:var(--button-bg-selected);--button-text:var(--button-text-selected);--button-border:var(--button-border-selected)}.button:active{transform:scale(98%)}.meta{color:var(--color-neutral);font-size:var(--size-step-min-1);--cluster-row-gap:1em;--cluster-column-gap:1.5em}.meta dd,.meta dt{display:inline-block;margin:0}.meta dt{font-weight:400}.pages a{display:inline-flex;padding-block:.25em;padding-inline-end:1em}.prose :is(pre,pre+*,figure,figure+*){--flow-space:var(--space-s-m)}.prose figcaption{font-size:var(--size-step-min-1);text-align:center;--flow-space:var(--space-xs);border-bottom:2px solid var(--color-border);padding-block-end:var(--space-xs)}.prose ul{list-style-type:disc}.prose ol,.prose ul{padding-inline-start:1em}.prose ol{list-style-type:decimal}.prose li+li,.prose ul ul{margin-block-start:.25em}.prose li{padding-inline-start:.125em}.prose ul li::marker{color:var(--color-neutral);content:"• "}.prose ol li::marker{color:var(--color-neutral);font-weight:var(--font-bold)}.prose dt{font-weight:var(--font-bold);inline-size:-moz-fit-content;inline-size:fit-content}.prose dd+dt{margin-block-start:var(--flow-space,1em)}.prose dd{margin-inline-start:1em}.prose figure img,.prose>img{aspect-ratio:16/9;block-size:auto;border-radius:var(--border-radius);max-inline-size:var(--max-img-width,100%);-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center}.credit{background-color:var(--color-bg);border-radius:var(--border-radius);color:var(--color-neutral);font-size:var(--size-step-min-1);max-inline-size:-moz-fit-content;max-inline-size:fit-content;padding:var(--space-xs) var(--space-s);transform:translateY(-4ch) translateX(-.5ch)}@media (max-width:640px){.prose a,.prose>*{overflow-wrap:break-word;word-wrap:break-word;word-break:break-word}}.prose a{text-decoration-color:var(--color-primary)}.prose aside{background:var(--color-bg-accent);border-radius:var(--border-radius);font-size:var(--size-step-0);padding:var(--space-2xs-xs)}.prose aside>*+*{margin-block-start:var(--flow-space,.5em)}.site-foot{--region-space-start:var(--space-m-l);--region-space-end:var(--space-s-m);color:var(--color-neutral);font-size:var(--size-step-min-1)}.site-head{--region-space-start:var(--space-xs-s)}.logo{align-items:center;display:flex;font-size:var(--logo-font-size);font-weight:var(--font-bold);gap:calc(var(--logo-gap-multiplier)*var(--logo-font-size))}.logo img{border-radius:50%;height:calc(var(--logo-size-multiplier)*var(--logo-font-size));width:calc(var(--logo-size-multiplier)*var(--logo-font-size))}@media screen and (prefers-reduced-motion:no-preference){.logo img{transition:scale var(--transition-base)}.logo:hover img{scale:1.125}}.site-nav ul{--cluster-row-gap:0.75em;--cluster-column-gap:0.75em;line-height:.5em}.site-nav a{--text-color:var(--color-text);--background-color:var(--color-bg);--border-color:var(--color-border);background-color:var(--background-color);border:2px solid var(--border-color);border-radius:var(--border-radius);color:var(--color-text);display:block;padding:var(--space-xs);text-decoration:none}.site-nav a:where(:hover,:focus){--border-color:var(--color-border-accent)}.site-nav [aria-current=page],.site-nav [data-state=active]{--border-color:var(--color-text)}@media (min-width:1000px){.site-nav a{--text-color:var(--color-text);--background-color:transparent;--border-color:transparent;--text-decoration-color:transparent;--underline-offset:calc(0.75em - 0.75ex);background-color:var(--background-color);color:var(--color-text);padding:var(--space-xs) .2em;text-decoration-color:var(--text-decoration-color,transparent);text-decoration-line:underline;text-decoration-thickness:.125em;text-underline-offset:var(--underline-offset)}.site-nav a:where(:hover,:focus){--text-decoration-color:var(--color-border-accent);--text-color:var(--color-text);--background-color:transparent;--border-color:transparent}.site-nav [aria-current=page],.site-nav [data-state=active]{--text-decoration-color:var(--color-text);--text-color:var(--color-primary);--background-color:transparent;--border-color:transparent}}.skip-link{background-color:var(--color-text);border-radius:var(--border-radius);color:var(--color-bg);display:block;line-height:1;padding:var(--space-xs) var(--space-s-m);position:absolute;z-index:999}.skip-link[href="#main"]{left:1rem;top:1rem}.theme-switch{--cluster-row-gap:0.5em;--cluster-column-gap:0.5em}.cluster{align-items:var(--cluster-vertical-alignment,center);-moz-column-gap:var(--cluster-column-gap,1em);column-gap:var(--cluster-column-gap,1em);display:flex;flex-wrap:wrap;justify-content:var(--cluster-horizontal-alignment,flex-start);row-gap:var(--cluster-row-gap,1em)}.column{-moz-column-count:1;column-count:1}@media (min-width:1000px){.column{-moz-column-count:2;column-count:2;gap:var(--gutter,var(--space-l-xl))}}.grid{display:grid;gap:var(--gutter,var(--space-s-m));grid-template-columns:repeat(var(--grid-placement,auto-fill),minmax(var(--grid-min-item-size,16rem),1fr))}.grid[data-layout="50-50"]{--grid-placement:auto-fit;--grid-min-item-size:clamp(16rem,50vw,28rem)}.icon{height:var(--icon-size,.75em);height:var(--icon-size,1cap);width:var(--icon-size,.75em);width:var(--icon-size,1cap);fill:var(--spot-color,currentColor);display:inline}@media screen and (prefers-reduced-motion:no-preference){.icon{transition:transform var(--transition-jump)}a:not(.button):hover .icon{transform:translateY(-1px)}}.with-icon{display:inline-block}.with-icon .icon{margin-inline-end:var(--icon-margin-inline-end,.333em)}.badge{--icon-size:1em}.with-icon .badge{--icon-margin-inline-end:0.25em;vertical-align:-.125em}.with-icon img{background:#fff}.sprite-container{block-size:0;inline-size:0;overflow:hidden;pointer-events:none;position:absolute;visibility:hidden}.repel{align-items:var(--repel-vertical-alignment,center);display:flex;flex-wrap:wrap;gap:var(--repel-gap,var(--space-xs-s));justify-content:space-between}.repel[data-nowrap]{flex-wrap:nowrap}.flow>*+*{margin-block-start:var(--flow-space,1em)}.flow-space-size-1{--flow-space:1em}.ontop{position:relative;z-index:1}.region{padding-block-end:var(--region-space-end,0);padding-block-start:var(--region-space-start,var(--space-m-l))}.silent-link{text-decoration-line:none}.silent-link:hover{text-decoration-color:var(--color-border);text-decoration-line:underline;text-underline-offset:var(--underline-offset)}.de-em{color:var(--color-neutral);font-weight:var(--font-regular)}.visually-hidden:not(:focus):not(:active){overflow:hidden;position:absolute;clip:rect(0 0 0 0);block-size:1px;clip-path:inset(50%);inline-size:1px;white-space:nowrap}.wrapper{--gap:clamp(1rem,6vw,3rem);--full:minmax(var(--gap),1fr);--content:min(var(--wrapper-max-inline-size,60rem),100% - var(--gap) * 2);--feature:minmax(0,var(--logo-extender));display:grid;grid-template-columns:[full-start] var(--full) [feature-start] var(--feature) [content-start] var(--content) [content-end] var(--feature) [feature-end] var(--full) [full-end]}.wrapper>*{grid-column:content}.feature{grid-column:feature}.full{grid-column:full}.collapse{visibility:collapse}.static{position:static}.inline{display:inline}.grid{display:grid}.contents{display:contents}.hidden{display:none}.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)}