@charset "UTF-8";@font-face{font-display:swap;font-family:inter;font-style:normal;font-weight:400;src:url(../fonts/inter-v12-latin-regular.woff2)format("woff2"),url(../fonts/inter-v12-latin-regular.woff)format("woff")}@font-face{font-display:swap;font-family:inter;font-style:normal;font-weight:700;src:url(../fonts/inter-v12-latin-700.woff2)format("woff2"),url(../fonts/inter-v12-latin-700.woff)format("woff")}:root{--space-3xs:clamp(0.25rem, calc(0.23rem + 0.11vw), 0.31rem);--space-2xs:clamp(0.50rem, calc(0.46rem + 0.22vw), 0.63rem);--space-xs:clamp(0.75rem, calc(0.68rem + 0.33vw), 0.94rem);--space-s:clamp(1.00rem, calc(0.91rem + 0.43vw), 1.25rem);--space-m:clamp(1.50rem, calc(1.37rem + 0.65vw), 1.88rem);--space-l:clamp(2.00rem, calc(1.83rem + 0.87vw), 2.50rem);--space-xl:clamp(3.00rem, calc(2.74rem + 1.30vw), 3.75rem);--space-2xl:clamp(4.00rem, calc(3.65rem + 1.74vw), 5.00rem);--space-3xl:clamp(6.00rem, calc(5.48rem + 2.61vw), 7.50rem);--space-3xs-2xs:clamp(0.25rem, calc(0.12rem + 0.65vw), 0.63rem);--space-2xs-xs:clamp(0.50rem, calc(0.35rem + 0.76vw), 0.94rem);--space-xs-s:clamp(0.75rem, calc(0.58rem + 0.87vw), 1.25rem);--space-s-m:clamp(1.00rem, calc(0.70rem + 1.52vw), 1.88rem);--space-m-l:clamp(1.50rem, calc(1.15rem + 1.74vw), 2.50rem);--space-l-xl:clamp(2.00rem, calc(1.39rem + 3.04vw), 3.75rem);--space-xl-2xl:clamp(3.00rem, calc(2.30rem + 3.48vw), 5.00rem);--space-2xl-3xl:clamp(4.00rem, calc(2.78rem + 6.09vw), 7.50rem);--space-s-l:clamp(1.00rem, calc(0.48rem + 2.61vw), 2.50rem)}:root{--font-base:'Inter', -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;--font-display:var(--font-base);--font-accent:'Menlo', 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Mono', 'Droid Sans Mono', 'Source Code Pro', 'Courier New', monospace;--font-weight-regular:400;--font-weight-bold:700;--line-height-compact:1.2;--line-height-base:1.5;--line-height-loose:1.7;--width-compact:35ch;--width-longform:65ch;--tracking:-0.05ch;--tracking-s:-0.05ch;--color-text:#1D1D1D;--color-text-mod-1:#494949;--color-text-mod-2:#616161;--color-bg:#ffffff;--color-bg-mod-1:#F8F8F8;--color-bg-mod-2:#EDEDED;--color-border:#1D1D1D;--color-brand:#4f29f0;--color-accent:#9F2C5E;--color-highlight:#eefbc1;--gutter:var(--space-s-m);--border-radius:0;--shadow:0px 3px 7px rgba(0, 0, 0, 0.08), 0px 0px 1px rgba(0, 0, 0, 0.025)}@media(prefers-color-scheme:dark){:root{--color-text:#CED3E8;--color-text-mod-1:#C4CAE3;--color-text-mod-2:#8995C8;--color-bg:#0D101A;--color-bg-mod-1:#121626;--color-bg-mod-2:#212845;--color-border:#CED3E8;--color-brand:#a08aff;--color-accent:#FF70AE}}:root{--step--1:clamp(0.83rem, calc(0.78rem + 0.29vw), 1.00rem);--step-0:clamp(1.00rem, calc(0.91rem + 0.43vw), 1.25rem);--step-1:clamp(1.20rem, calc(1.07rem + 0.63vw), 1.56rem);--step-2:clamp(1.44rem, calc(1.26rem + 0.89vw), 1.95rem);--step-3:clamp(1.73rem, calc(1.48rem + 1.24vw), 2.44rem);--step-4:clamp(2.07rem, calc(1.73rem + 1.70vw), 3.05rem)}*,*::before,*::after{box-sizing:border-box}html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none}html:focus-within{scroll-behavior:smooth}body{min-height:100vh;text-rendering:optimizeSpeed;line-height:1.5}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0}ul[role=list],ol[role=list]{list-style:none}a:not([class]){-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}img,picture{max-width:100%;display:block}input,button,textarea,select{font:inherit}@media(prefers-reduced-motion:reduce){*{animation-duration:.01s!important;animation-iteration-count:1!important;transition-duration:.01s!important;scroll-behavior:auto!important}}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{background:var(--color-bg);color:var(--color-text);font-size:var(--step-0);font-family:var(--font-base);letter-spacing:var(--tracking)}:is(h1,h2,h3){font-family:var(--font-display);font-weight:var(--font-weight-bold);line-height:var(--line-height-compact);letter-spacing:var(--tracking-s);max-width:var(--width-compact);text-wrap:balance}h1,.h1{font-size:var(--step-4)}h2,.h2{font-size:var(--step-3)}h3,.h3{font-size:var(--step-2)}h4,.h4{font-size:var(--step-1)}h5,.h5{font-size:var(--step-0)}h6,.h6{font-size:var(--step--1)}p,li,blockquote:not([class]){max-width:var(--width-longform)}hr{border:none;border-top:2px dotted}kbd{background-color:var(--color-bg-mod-1);border:solid 1px var(--color-bg-mod-2);border-radius:var(--border-radius-sm);font-family:var(--font-accent);font-size:1rem;padding:.115rem .25rem}figcaption{font-size:var(--step--1);-webkit-margin-before:.5rem;margin-block-start:.5rem;text-align:center}small{font-size:var(--step--1)}blockquote:not([class]){border-left:solid 3px var(--color-text);font-family:var(--font-display);font-size:var(--step-1);line-height:var(--line-height-base);-webkit-padding-start:var(--space-s);padding-inline-start:var(--space-s)}blockquote:not([class]) p:last-of-type,blockquote:not([class]) cite,blockquote:not([class]) footer{font-family:var(--font-base);font-size:var(--step-0);font-weight:400;-webkit-margin-before:var(--space-2xs);margin-block-start:var(--space-2xs)}svg:not([class]){height:2ex;width:auto}svg:not([class]) path{fill:var(--color-text)}svg{flex-shrink:0}svg[role=img][width][height]{width:revert;height:revert}:is(ul,ol):not([class]){-webkit-padding-start:1.7ch;padding-inline-start:1.7ch}[role=list]{margin:0;padding:0}a{color:currentcolor;color:var(--color-brand)}a:hover{background-color:var(--color-brand);color:var(--color-bg);text-decoration:none}a[data-variant=naked]{color:var(--color-text);text-decoration:none}a[data-variant=naked]:hover,a[data-variant=naked]:focus{background-color:unset;text-decoration:underline}:focus:not(:focus-visible){outline:0}:focus-visible{outline:dotted 2px var(--focus-color,currentColor);outline-offset:var(--focus-offset,2px)}:target{scroll-margin-top:2ex}main:focus{outline:none}::-moz-selection{color:var(--color-text);background-color:var(--color-highlight)}mark,::selection{color:var(--color-text);background-color:var(--color-highlight)}@media(prefers-color-scheme:dark){::-moz-selection{color:var(--color-bg)}mark,::selection{color:var(--color-bg)}}@media(prefers-color-scheme:dark){img,picture{filter:brightness(.8)contrast(1.2)}}fieldset{border:solid .1rem var(--color-border)}legend{font-weight:var(--font-weight-bold)}label{display:block;margin-block:var(--space-3xs)}form button{display:block;-webkit-margin-before:var(--space-xs);margin-block-start:var(--space-xs)}:is(input:not([type=checkbox],[type=radio],[type=color]),select,textarea){background:var(--color-bg);border:solid .1rem var(--color-border);border-radius:var(--border-radius);box-shadow:none;color:var(--color-text);letter-spacing:-.5px;padding:var(--space-3xs)var(--space-2xs)}:is(input[type=submit],input[type=checkbox],input[type=radio]),select{appearance:none;-moz-appearance:none;-webkit-appearance:none;position:relative}select:not([multiple]){background-image:linear-gradient(45deg,transparent 49%,var(--color-text) 51%),linear-gradient(135deg,var(--color-text) 51%,transparent 49%);background-position:calc(100% - 16px),calc(100% - 11px);background-size:5px 5px,5px 5px;background-repeat:no-repeat;-webkit-padding-end:2rem;padding-inline-end:2rem}input[type=checkbox],input[type=radio]{border:solid .1rem var(--color-border);padding:var(--space-2xs);vertical-align:middle;position:relative;width:-moz-min-content;width:min-content;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:.25rem;margin-inline-end:.25rem;-webkit-margin-after:.3rem;margin-block-end:.3rem}input[type=checkbox]{border-radius:var(--border-radius)}input[type=radio]{border-radius:100%}input[type=checkbox]:checked,input[type=radio]:checked{border:solid .1rem var(--color-brand);background-color:var(--color-brand)}input[type=checkbox]:checked::after{content:" ";width:.17em;height:.32em;border-radius:0;position:absolute;top:.06em;left:.16em;background-color:transparent;border-right:solid var(--color-bg).07em;border-bottom:solid var(--color-bg).07em;font-size:2em;transform:rotate(45deg)}input[type=radio]:checked::after{content:" ";width:.25em;height:.25em;border-radius:100%;position:absolute;top:.13em;background-color:var(--color-bg);left:.13em;font-size:2em}input:disabled{background:var(--color-bg-mod-2)}input:disabled,label input:disabled+*{cursor:not-allowed}pre:has(code){background:var(--color-bg-mod-1);overflow:auto;overflow-x:scroll;overflow-wrap:normal;padding:var(--space-xs-s);margin:0}code{background:var(--color-bg-mod-1);color:var(--color-accent);font-size:93%;-webkit-box-decoration-break:clone;box-decoration-break:clone}pre code{color:var(--color-text)}p code,li code{padding:.125rem .35rem}details{background:var(--color-bg-mod-1);border-radius:var(--border-radius)}summary{cursor:pointer;font-weight:var(--font-weight-bold);padding:.5rem 1rem}details[open]{padding:.5rem 1rem .75rem}details[open] summary{margin-bottom:.5rem;padding:0}details[open]>*:last-child{margin-bottom:0}details[data-variant=fancy]{position:relative}details[data-variant=fancy] summary::-webkit-details-marker,details[data-variant=fancy] summary::marker{content:"";display:none}details[data-variant=fancy] summary:after{content:url(data:image/svg+xml,%3Csvg%20width=%2224%22%20height=%2224%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath%20d=%22M12%2015.375%206%209.37499l1.075-1.075L12%2013.25l4.925-4.92501L18%209.39999%2012%2015.375z%22%20fill=%22%231d1d1d%22/%3E%3C/svg%3E);height:1.5rem;pointer-events:none;position:absolute;right:1rem;top:.7rem;transform:rotate(180deg)}@media(prefers-color-scheme:dark){details[data-variant=fancy] summary:after{content:url(data:image/svg+xml,%3Csvg%20width=%2224%22%20height=%2224%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath%20d=%22M12%2015.375%206%209.37499l1.075-1.075L12%2013.25l4.925-4.92501L18%209.39999%2012%2015.375z%22%20fill=%22%23ced3e8%22/%3E%3C/svg%3E)}}details[open][data-variant=fancy] summary:after{top:.7rem;transform:rotate(0)}table{border-collapse:collapse;margin:1.5rem 0;overflow-x:scroll;width:100%}td,th{border:.1rem solid var(--color-border);padding:.5rem;text-align:left}th{background:var(--color-bg-mod-1);font-weight:700}tr:nth-child(even){background:var(--color-bg-mod-1)}table caption{padding:.5rem;caption-side:bottom}button,.button,input[type=submit],input[type=reset],input[type=button]{--focus-color:var(--color-brand);background-color:var(--color-brand);border:solid .1rem var(--color-brand);border-radius:var(--border-radius);color:var(--color-bg);cursor:pointer;padding:var(--space-3xs)var(--space-2xs);display:inline-block;text-decoration:none;text-align:center}button:hover,button:focus,.button:hover,.button:focus,input[type=submit]:hover,input[type=submit]:focus,input[type=reset]:hover,input[type=reset]:focus,input[type=button]:hover input[type=button]:focus{filter:brightness(1.2);transform:translateY(-2px)}button:disabled,.button[aria-disabled=true],input[type=submit]:disabled,input[type=reset]:disabled,input[type=button]:disabled{background-color:var(--color-bg-mod-2);border:solid .1rem var(--color-bg-mod-2);color:var(--color-text-mod-2);cursor:not-allowed;transform:none;filter:none}button[data-variant=outline],.button[data-variant=outline],input[type=submit][data-variant=outline],input[type=reset][data-variant=outline],input[type=button][data-variant=outline]{color:var(--color-brand);background:var(--color-bg);border:solid .1rem var(--color-brand)}button[data-variant=outline]:hover,.button[data-variant=outline]:hover,input[type=submit][data-variant=outline]:hover,input[type=reset][data-variant=outline]:hover,input[type=button][data-variant=outline]:hover{filter:brightness(1.2);border:solid .1rem var(--color-brand)}nav[data-variant=main] a[data-state=active]{text-decoration:underline}nav[data-variant=main] li a{display:flex}nav[data-variant=main] li a span{display:flex;align-items:center;margin-right:.5rem}nav[data-variant=sidebar] a[data-state=active]{text-decoration:line-through}nav[data-variant=sidebar] li{max-width:unset}nav[data-variant=sidebar] li[data-children=true]{position:relative}nav[data-variant=sidebar] li[data-children=true]::before{content:url(data:image/svg+xml,%3Csvg%20width=%2224%22%20height=%2224%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath%20d=%22M12%2015.375%206%209.37499l1.075-1.075L12%2013.25l4.925-4.92501L18%209.39999%2012%2015.375z%22%20fill=%22%231d1d1d%22/%3E%3C/svg%3E);height:1.2rem;pointer-events:none;position:absolute;right:1rem;top:.6rem;transform:rotate(180deg)}@media(prefers-color-scheme:dark){nav[data-variant=sidebar] li[data-children=true]::before{content:url(data:image/svg+xml,%3Csvg%20width=%2224%22%20height=%2224%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath%20d=%22M12%2015.375%206%209.37499l1.075-1.075L12%2013.25l4.925-4.92501L18%209.39999%2012%2015.375z%22%20fill=%22%23ced3e8%22/%3E%3C/svg%3E)}}nav[data-variant=sidebar] li[data-children=true][data-state=active]::before{top:.2rem;transform:rotate(0)}nav[data-variant=sidebar] li[data-state=active]+ul,nav[data-variant=sidebar] ul[data-state=visible]{display:block;padding-inline:1rem;width:100%;height:auto;clip:auto}nav[data-variant=sidebar] ul>li ul{display:none}.prose{--flow-space:var(--space-s-m);line-height:var(--line-height-loose)}.prose :is(p,ul:not([class]),ol:not([class])){max-width:var(--width-longform)}.prose :is(blockquote){max-width:52ch}.prose :is(pre,pre+*,figure,figure+*,h2,h3,h4){--flow-space:var(--space-l-xl)}.hero{--region-space:8rem;background-image:radial-gradient(var(--color-text) 7%,transparent 20%),radial-gradient(var(--color-bg) 20%,transparent 20%);background-color:var(--color-bg);background-position:0 0,50px 50px;background-size:3px 3px;padding-inline:var(--space-s-m);text-align:center}.hero>*{--flow-space:1rem;margin-inline:auto}.callout{padding:var(--space-xs-s);border:dotted 2px var(--color-text-mod-2);max-width:var(--width-longform);border-radius:var(--border-radius)}.callout>*{line-height:var(--line-height-base)}.callout[data-variant=brand]{color:var(--color-brand);border:dotted 2px var(--color-brand)}.callout[data-variant=brand]>*{color:var(--color-brand)}.card{--img-ratio:3/2;display:flex;flex-direction:column;position:relative;border:solid .1rem;border-radius:var(--border-radius)}.card :is(h2,h3,h4){font-size:var(--step-1)}.card>:not(h2,h3,h4){font-size:var(--step--1)}.card :is(h2,h3,h4)>a::after{content:'';position:absolute;left:0;top:0;right:0;bottom:0}.card p,.card button,.card .button{position:relative;z-index:1}.card a:focus{text-decoration:underline}.card:focus-within{box-shadow:0 0 0 .1rem}.card:focus-within a:focus{text-decoration:none}.card>img{aspect-ratio:var(--img-ratio);-o-object-fit:cover;object-fit:cover;width:100%}.card>div{--flow-space:1rem;display:flex;flex-direction:column;flex-grow:1;padding:1rem;max-width:60ch}.card>div :last-child{margin-top:auto}.card>div :nth-last-child(2){margin-bottom:var(--space-xs-s)}.card[data-state=reversed]{display:flex;flex-direction:column-reverse}.grid{display:grid;grid-template-columns:repeat(var(--grid-placement,auto-fill),minmax(var(--grid-min-item-size,16rem),1fr));gap:var(--gutter,var(--space-s-l))}.grid[data-rows=masonry]{grid-template-rows:masonry;align-items:start}.grid[data-layout='50-50']{--grid-placement:auto-fit;--grid-min-item-size:clamp(16rem, 50vw, 26rem)}.grid[data-layout='33x3']{--grid-placement:auto-fit;--grid-min-item-size:clamp(16rem, 33vw, 18rem)}.repel{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:var(--repel-vertical-alignment,center);gap:var(--gutter,var(--space-s-l))}.repel[data-nowrap]{flex-wrap:nowrap}.cluster{display:flex;flex-wrap:wrap;gap:var(--gutter,var(--space-s-l));justify-content:var(--cluster-horizontal-alignment,flex-start);align-items:var(--cluster-vertical-alignment,center)}.sidebar{display:flex;flex-wrap:wrap;gap:var(--gutter,var(--space-s-l))}.sidebar:not([data-direction])>:first-child{flex-basis:var(--sidebar-target-width,20rem);flex-grow:1}.sidebar:not([data-direction])>:last-child{flex-basis:0;flex-grow:999;min-width:var(--sidebar-content-min-width,50%)}.sidebar[data-direction=rtl]>:last-child{flex-basis:var(--sidebar-target-width,20rem);flex-grow:1}.sidebar[data-direction=rtl]>:first-child{flex-basis:0;flex-grow:999;min-width:var(--sidebar-content-min-width,50%)}@media screen and (min-width:960px){.sidebar:not([data-direction])[data-variant=sticky]>:first-child,.sidebar[data-direction][data-variant=sticky]>:last-child{position:sticky;top:2rem;overflow:auto;height:100vh}}.reel{--reel-space:2rem;display:flex;height:auto;max-width:100%;margin-inline:auto;padding:.5rem;overflow-x:auto;-webkit-overflow-scrolling:touch}.reel>*{flex-basis:var(--reel-item-width,calc(33.333% - var(--reel-space)));flex-shrink:0}.reel>*+*{-webkit-margin-start:var(--reel-space);margin-inline-start:var(--reel-space)}.reel[data-scroll=snap]{scroll-snap-type:x mandatory}.reel[data-scroll=snap]>*{scroll-snap-align:start}.reel[data-variant=img]{block-size:var(--reel-height,50vh)}.reel[data-variant=img]>img{block-size:100%;width:auto}.switcher{display:flex;flex-wrap:wrap;gap:var(--gutter,1rem);align-items:var(--switcher-vertical-alignment,flex-start)}.switcher>*{flex-grow:1;flex-basis:calc((var(--switcher-target-container-width,40rem) - 100%) * 999)}.switcher>:nth-last-child(n+5),.switcher>:nth-last-child(n+5)~*{flex-basis:100%}.frame{--n:16;--d:9;aspect-ratio:var(--n)/var(--d);overflow:hidden;display:flex;justify-content:center;align-items:center}.frame>img,.frame>video{inline-size:100%;block-size:100%;-o-object-fit:cover;object-fit:cover}.visually-hidden{border:0;clip:rect(0 0 0 0);height:auto;margin:0;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.flow>*+*{margin-top:var(--flow-space,1em)}.region{padding-top:var(--region-space,var(--space-l-xl));padding-bottom:var(--region-space,var(--space-l-xl))}.wrapper{max-width:var(--wrapper-max-width,90rem);margin-inline:auto;padding-inline:var(--gutter);position:relative}.w-full{width:100%;max-width:unset}.text-center{text-align:center}.skip-link{clip:rect(1px,1px,1px,1px);display:block;height:1px;overflow:hidden;position:absolute;width:1px;top:1rem;left:1rem;z-index:999}.skip-link:focus{clip:auto;height:auto;overflow:visible;width:auto;background-color:var(--color-bg);color:var(--color-text);padding:var(--space-xs);line-height:1}.skip-link:not(:focus){border:0;clip:rect(0 0 0 0);height:auto;margin:0;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}