@font-face{font-family:IBM Plex Sans Fallback;src:local(Arial);size-adjust:97.44%;ascent-override:102.5%;descent-override:27.5%;line-gap-override:0%}@font-face{font-family:IBM Plex Sans;src:url(/fonts/IBMPlexSansVar-Roman.woff2)format("woff2");font-weight:100 700;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(/fonts/IBMPlexSansVar-Italic.woff2)format("woff2");font-weight:100 700;font-style:italic;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/IBMPlexMono-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/IBMPlexMono-Italic.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/IBMPlexMono-Medium.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/IBMPlexMono-MediumItalic.woff2)format("woff2");font-weight:500;font-style:italic;font-display:swap}:root{--font-sans:"IBM Plex Sans", "IBM Plex Sans Fallback", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, "DejaVu Sans Mono", monospace;--color-bg:oklch(14.5% 0 0);--color-text:oklch(98.5% 0 0);--color-border:oklch(25% 0 0);--color-background:var(--color-bg);--color-foreground:var(--color-text);--color-muted-foreground:color-mix(in oklch, var(--color-text) 60%, transparent);--color-surface:color-mix(in oklch, var(--color-text) 6%, transparent);--color-surface-strong:color-mix(in oklch, var(--color-text) 8%, transparent);--color-text-muted:color-mix(in oklch, var(--color-text) 80%, transparent);--step--1:clamp(.875rem, .8519rem + .1127vw, .9375rem);--step-0:clamp(1rem, .9538rem + .2255vw, 1.125rem);--step-1:clamp(1.125rem, 1.0418rem + .4059vw, 1.35rem);--step-2:clamp(1.2656rem, 1.1346rem + .6392vw, 1.62rem);--step-3:clamp(1.4238rem, 1.2309rem + .941vw, 1.944rem);--heading-1:var(--step-3);--text-xs:var(--step--1);--text-sm:var(--step--1);--text-base:var(--step-0);--text-lg:var(--step-1);--text-xl:var(--step-2);--text-2xl:var(--step-3);--text-3xl:var(--step-3);--text-4xl:var(--step-3);--leading-text:calc(.65rem + 1em);--leading-heading:calc(.35rem + 1em);--leading-none:1;--space-3xs:clamp(.25rem, .2269rem + .1127vw, .3125rem);--space-2xs:clamp(.5rem, .4769rem + .1127vw, .5625rem);--space-xs:clamp(.75rem, .7038rem + .2255vw, .875rem);--space-s:clamp(1rem, .9538rem + .2255vw, 1.125rem);--space-m:clamp(1.5rem, 1.4307rem + .3382vw, 1.6875rem);--space-l:clamp(2rem, 1.9076rem + .451vw, 2.25rem);--space-xl:clamp(3rem, 2.8613rem + .6764vw, 3.375rem);--space-2xl:clamp(4rem, 3.8151rem + .9019vw, 4.5rem);--page-inline:var(--space-m);--page-block-start:clamp(5rem, 4.5377rem + 2.255vw, 6.25rem);--page-block-end:var(--space-2xl);--title-subtitle-gap:var(--space-2xs);--section-gap:var(--space-m);--content-gap:var(--space-l);--measure:40rem;--spacing-1:var(--space-3xs);--spacing-2:var(--space-2xs);--spacing-3:var(--space-xs);--spacing-4:var(--space-s);--spacing-6:var(--space-m);--spacing-8:var(--space-l);--spacing-12:var(--space-xl);--spacing-16:var(--space-2xl);--border-width:1px;--transition-base:.15s ease;--letter-spacing-uppercase:.04em;color-scheme:dark}html{box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}*,:before,:after{box-sizing:inherit}body,h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd{margin:0}body{font-family:var(--font-sans);background-color:var(--color-bg);color:var(--color-text);line-height:var(--leading-text);font-size:var(--text-base)}h1,h2,h3,h4,h5,h6{text-wrap:balance;line-height:var(--leading-heading);text-align:left;font-weight:500}p{text-wrap:pretty;text-align:left}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}a{text-decoration:none}.text-link{color:var(--color-text);font-weight:500}.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}button,[role=button],input,select,textarea,summary{touch-action:manipulation}.eyebrow{font-size:var(--text-xs);letter-spacing:var(--letter-spacing-uppercase);text-transform:uppercase;color:var(--color-muted-foreground);font-weight:500;line-height:var(--leading-none)}.section-flow{gap:var(--section-gap);flex-direction:column;display:flex}.footer-link{font-size:var(--text-sm);color:var(--color-text);padding-bottom:var(--spacing-1);border-bottom:var(--border-width) solid var(--color-muted-foreground);transition:border-color var(--transition-base);font-weight:500;line-height:var(--leading-none);text-decoration:none}.footer-link:hover{border-bottom-color:var(--color-text)}.prose{font-size:var(--text-base);line-height:var(--leading-text);max-width:70ch;color:var(--color-text)}.prose :where(p):not(:where(.not-prose,.not-prose *)){margin-top:var(--space-s);margin-bottom:var(--space-s);color:var(--color-text-muted);text-align:left}.prose :where(h1,h2,h3,h4,h5,h6):not(:where(.not-prose,.not-prose *)){color:var(--color-text);font-weight:500;line-height:var(--leading-heading);scroll-margin-top:var(--spacing-16);text-align:left}.prose :first-child:not(:where(.not-prose,.not-prose *)){margin-top:0}.prose :where(h1):not(:where(.not-prose,.not-prose *)){margin-top:var(--space-xl);margin-bottom:var(--space-s);font-size:var(--text-3xl);font-weight:500}.prose :where(h2):not(:where(.not-prose,.not-prose *)){margin-top:var(--space-xl);margin-bottom:var(--space-s);font-size:var(--text-2xl)}.prose :where(h3):not(:where(.not-prose,.not-prose *)){margin-top:var(--space-l);margin-bottom:var(--space-xs);font-size:var(--text-xl)}.prose :where(h4):not(:where(.not-prose,.not-prose *)){margin-top:var(--space-l);margin-bottom:var(--space-2xs);font-size:var(--text-lg)}.prose :where(h5,h6):not(:where(.not-prose,.not-prose *)){margin-top:var(--space-m);margin-bottom:var(--space-2xs);font-weight:500}.prose :where(a):not(:where(.not-prose,.not-prose *)){color:var(--color-text);transition:text-decoration-color var(--transition-base);overflow-wrap:break-word;font-weight:500;text-decoration-line:none}.prose :where(a:hover):not(:where(.not-prose,.not-prose *)){text-decoration-line:underline;text-decoration-color:var(--color-text);text-underline-offset:2px;text-decoration-skip-ink:none;text-decoration-thickness:1px}.prose :where(strong):not(:where(.not-prose,.not-prose *)){color:var(--color-text);font-weight:500}.prose :where(ul):not(:where(.not-prose,.not-prose *)){margin-top:var(--spacing-4);margin-bottom:var(--spacing-4);margin-left:var(--spacing-4);list-style-type:disc}.prose :where(ul>li):not(:where(.not-prose,.not-prose *)){margin-top:var(--spacing-2);padding-left:var(--spacing-2);color:var(--color-text-muted)}.prose :where(ul>li>p):not(:where(.not-prose,.not-prose *)){margin:0}.prose :where(ol):not(:where(.not-prose,.not-prose *)){margin-top:var(--spacing-4);margin-bottom:var(--spacing-4);margin-left:var(--spacing-4);list-style-type:decimal}.prose :where(ol>li):not(:where(.not-prose,.not-prose *)){margin-top:var(--spacing-2);padding-left:var(--spacing-2);color:var(--color-text-muted)}.prose :where(ol>li>p):not(:where(.not-prose,.not-prose *)){margin:0}.prose :where(ul ul,ol ol,ul ol,ol ul):not(:where(.not-prose,.not-prose *)){margin-top:var(--spacing-2);margin-bottom:var(--spacing-2);margin-left:var(--spacing-4)}.prose :where(blockquote):not(:where(.not-prose,.not-prose *)){margin-top:var(--spacing-4);margin-bottom:var(--spacing-4);padding-left:var(--spacing-4);border-left:3px solid var(--color-border);color:var(--color-text-muted);font-style:normal}.prose :where(blockquote>*):not(:where(.not-prose,.not-prose *)){color:inherit}.prose :where(hr):not(:where(.not-prose,.not-prose *)){margin-top:var(--spacing-8);margin-bottom:var(--spacing-8);border:none;border-top:var(--border-width) solid var(--color-border)}.prose :where(code):not(:where(.not-prose,.not-prose *)){font-family:var(--font-mono);font-size:var(--text-sm);background-color:var(--color-surface);overflow-wrap:break-word;padding:.15em .35em;font-weight:500}.prose :where(pre):not(:where(.not-prose,.not-prose *)){max-height:min(68vh,1000px);overflow-y:auto}.prose :where(table):not(:where(.not-prose,.not-prose *)){margin:var(--spacing-4) auto;max-width:fit-content;font-size:var(--text-sm);display:block;overflow-x:auto}.prose :where(thead):not(:where(.not-prose,.not-prose *)){border-bottom:var(--border-width) solid var(--color-border)}.prose :where(th):not(:where(.not-prose,.not-prose *)){padding:var(--spacing-2) var(--spacing-4);text-align:left;color:var(--color-text);font-weight:500}.prose :where(tr):not(:where(.not-prose,.not-prose *)){border-top:var(--border-width) solid var(--color-border)}.prose :where(tr:first-child):not(:where(.not-prose,.not-prose *)){border-top:none}.prose :where(td):not(:where(.not-prose,.not-prose *)){padding:var(--spacing-2) var(--spacing-4);text-align:left;vertical-align:top;color:var(--color-text-muted);overflow-wrap:break-word}.prose :where(img,video,figure,.expressive-code):not(:where(.not-prose,.not-prose *)){margin:var(--spacing-4) auto}.prose :where(kbd):not(:where(.not-prose,.not-prose *)){font-family:var(--font-mono);font-size:var(--text-xs);background-color:var(--color-surface);color:var(--color-text);padding:.15em .5em;font-weight:500}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms;animation-duration:.01ms;animation-iteration-count:1}}:focus-visible{outline:2px solid var(--color-text);outline-offset:2px}.skip-link[data-astro-cid-ju4pidww]{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link[data-astro-cid-ju4pidww]:focus{top:var(--spacing-4);left:var(--spacing-4);z-index:50;width:auto;height:auto;padding:var(--spacing-4) var(--spacing-2);clip:auto;white-space:normal;background-color:var(--color-text);color:var(--color-bg);margin:0;font-weight:500;position:fixed;overflow:visible}
