.site-header-logo[data-astro-cid-6tspmjrh]{color:var(--color-text);align-items:baseline;gap:var(--space-2xs);z-index:1;text-decoration:none;display:flex}a[data-astro-cid-6tspmjrh]{text-decoration:none}.has-product[data-astro-cid-6tspmjrh],.logo-has-product-link[data-astro-cid-6tspmjrh]{align-items:center;column-gap:var(--space-3xs);display:flex}.logo-brand-name[data-astro-cid-6tspmjrh]{font-size:var(--step-1);font-family:var(--font-mono);font-weight:var(--font-semibold);color:var(--color-text)}.logo-product-name[data-astro-cid-6tspmjrh]{font-size:var(--step--1);font-weight:var(--font-regular);color:var(--color-primary);padding:var(--space-3xs);background-color:var(--color-bg-light);border:1px solid var(--color-border);line-height:1}.logo-product-name[data-astro-cid-6tspmjrh]:hover{color:var(--color-primary-hover)}.site-header-logo[data-astro-cid-6tspmjrh] svg{width:var(--space-s);height:auto}.menu-toggle[data-astro-cid-moarx4ta]{gap:var(--space-xs);cursor:pointer;color:var(--color-text);z-index:1;transition:var(--transition-duration);background-color:#0000;border:0;justify-content:center;align-items:center;margin:0;padding:0;display:flex;position:relative}@media (width>=64rem){.menu-toggle[data-astro-cid-moarx4ta]{display:none}}.menu-toggle-lines[data-astro-cid-moarx4ta]{transition:var(--transition-duration-fast);width:var(--step-2);height:var(--step-3);transition-timing-function:cubic-bezier(.445,.05,.55,.95);position:relative}.menu-toggle-lines[data-astro-cid-moarx4ta]:before,.menu-toggle-lines[data-astro-cid-moarx4ta]:after{content:"";border-radius:var(--border-radius);background-color:var(--color-text);width:100%;height:1px;transition:var(--transition-duration-fast) ease-out;position:absolute;right:0}.menu-toggle-lines[data-astro-cid-moarx4ta]:before{width:var(--step-0);top:33.3333%}.menu-toggle-lines[data-astro-cid-moarx4ta]:after{bottom:calc(33.3333% - 2px)}.menu-toggle[data-astro-cid-moarx4ta][aria-expanded=true] .menu-toggle-lines[data-astro-cid-moarx4ta]{width:var(--step-2);transform:rotate(-45deg)}.menu-toggle[data-astro-cid-moarx4ta][aria-expanded=true] .menu-toggle-lines[data-astro-cid-moarx4ta]:before{width:100%;top:50%}.menu-toggle[data-astro-cid-moarx4ta][aria-expanded=true] .menu-toggle-lines[data-astro-cid-moarx4ta]:after{top:50%;transform:rotate(90deg)}.header-navigation[data-astro-cid-yxete6jp]{background-color:var(--color-bg);max-height:100svh;transition:transform var(--transition-duration) cubic-bezier(.6, 0, .4, 1);flex-direction:column;justify-content:center;display:flex;position:fixed;inset:0;transform:translate(100%)}.header-navigation[data-astro-cid-yxete6jp][data-state=open]{overflow-y:auto;transform:translate(0)}@media (width>=64rem){.header-navigation[data-astro-cid-yxete6jp]{background-color:#0000;position:relative;transform:none}}.menu-list[data-astro-cid-yxete6jp]{text-align:end;margin-block:0;padding-left:0;list-style:none}@media (width>=64rem){.menu-list[data-astro-cid-yxete6jp]{align-items:center;gap:var(--space-2xs);display:flex}}.menu-link[data-astro-cid-yxete6jp]{font-size:var(--step-3);font-weight:var(--font-regular);color:var(--color-text);padding:var(--space-2xs) var(--space-s);width:fit-content;margin-left:auto;margin-right:var(--space-s);line-height:1.3;text-decoration:none;display:block}@media (width>=64rem){.menu-link[data-astro-cid-yxete6jp]{font-size:var(--step-0);color:var(--color-text-link);box-shadow:var(--bshadow-s);margin-right:0}.menu-link[data-astro-cid-yxete6jp]:hover{color:var(--color-text);text-shadow:0 0 1px var(--color-border)}}.menu-link[data-astro-cid-yxete6jp].button{font-size:var(--step-2)}@media (width>=64rem){.menu-link[data-astro-cid-yxete6jp].button{font-size:var(--step-0)}}.ui-button.menu-link{font-size:var(--step-0);font-weight:var(--font-regular);line-height:1.3}.header-navigation[data-astro-cid-yxete6jp] .ui-button--secondary{color:var(--color-text-link)}.header-navigation[data-astro-cid-yxete6jp] .ui-button--secondary:hover{color:var(--color-text)}.header-navigation[data-astro-cid-yxete6jp] .ui-button--primary:hover{color:var(--color-stone-950)}[data-astro-cid-ijxc6blt][data-theme-switcher] [data-astro-cid-ijxc6blt][data-theme-icon][hidden]{display:none}.ui-icon-button[data-astro-cid-ijxc6blt][data-theme-switcher]{--icon-button-icon-size:var(--step-3);--button-min-block-size:auto;border:none;& img{height:var(--step-3);width:auto}}.site-header[data-astro-cid-nen7h5rs]{height:var(--header-height);background-color:var(--color-bg);border-bottom:1px solid var(--color-divider);z-index:2;width:100%;transition:var(--transition-duration);position:fixed;top:0}.site-header-actions[data-astro-cid-nen7h5rs]{align-items:center;gap:var(--space-2xs);display:flex}.container[data-astro-cid-nen7h5rs]{max-width:100%;height:100%;padding-inline:var(--space-s);justify-content:space-between;align-items:center;gap:var(--space-2xs);display:flex;position:relative}@media (width>=48rem){.container[data-astro-cid-nen7h5rs]{padding-inline:var(--space-m)}}footer[data-astro-cid-jo6i4kqk]{height:var(--footer-height);background-color:var(--color-bg);align-items:center;display:flex}.container[data-astro-cid-jo6i4kqk]{z-index:2;width:100%;max-width:100%;padding-inline:var(--space-s);justify-content:space-between;display:flex;position:relative}@media (width>=48rem){.container[data-astro-cid-jo6i4kqk]{padding-inline:var(--space-m)}}.site-contact[data-astro-cid-jo6i4kqk],.site-legal[data-astro-cid-jo6i4kqk]{align-items:center;gap:var(--space-3xs);display:flex}.site-legal[data-astro-cid-jo6i4kqk]{font-size:var(--step--1);letter-spacing:.05em}.site-legal[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{text-decoration:none}.site-contact[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{width:32px;height:32px;color:var(--color-text-link);border:1px solid var(--color-border);border-radius:var(--radius-s);justify-content:center;align-items:center;display:flex}.site-contact[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{color:var(--color-text);border-color:var(--color-border-active)}.site-contact[data-astro-cid-jo6i4kqk] svg[data-astro-cid-jo6i4kqk]{width:auto;height:16px}.github[data-astro-cid-jo6i4kqk]{fill:currentColor}*,:before,:after{box-sizing:border-box}*{margin:0}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{min-height:100vh}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}a{color:var(--color-text-link);text-underline-offset:.15em;text-decoration-thickness:.08em}a:hover{color:var(--color-text)}body{font-family:var(--font-body);font-size:var(--step-0);font-weight:var(--font-light);color:var(--color-text);background-color:var(--color-bg-dark);font-optical-sizing:auto;margin:0;line-height:1.5}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}:root{--color-neutral-50:oklch(98.5% 0 0);--color-neutral-100:oklch(97% 0 0);--color-neutral-200:oklch(92.2% 0 0);--color-neutral-300:oklch(87% 0 0);--color-neutral-400:oklch(70.8% 0 0);--color-neutral-500:oklch(55.6% 0 0);--color-neutral-600:oklch(43.9% 0 0);--color-neutral-700:oklch(37.1% 0 0);--color-neutral-800:oklch(26.9% 0 0);--color-neutral-900:oklch(20.5% 0 0);--color-neutral-950:oklch(14.5% 0 0);--color-stone-50:oklch(98.5% .001 106.423);--color-stone-100:oklch(97% .001 106.424);--color-stone-200:oklch(92.3% .003 48.717);--color-stone-300:oklch(86.9% .005 56.366);--color-stone-400:oklch(70.9% .01 56.259);--color-stone-500:oklch(55.3% .013 58.071);--color-stone-600:oklch(44.4% .011 73.639);--color-stone-700:oklch(37.4% .01 67.558);--color-stone-800:oklch(26.8% .007 34.298);--color-stone-900:oklch(21.6% .006 56.043);--color-stone-950:oklch(14.7% .004 49.25);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-yellow-300:oklch(90.5% .182 98.111);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-purple-800:oklch(43.8% .218 303.724);--color-shaka-light:oklch(79.081% .10183 56.8);--color-shaka-dark:oklch(75.582% .12688 55.398);--color-brand-400:var(--color-shaka-light);--color-brand-500:var(--color-shaka-dark);--color-brand-600:oklch(70% .13 55.5);--color-brand-700:oklch(66% .135 55.5);--color-brand-800:oklch(52% .12 55.5);--color-brand-hover:light-dark(var(--color-brand-700),var(--color-brand-400));--color-brand-active:var(--color-brand-700);--color-white:#fff;--color-primary:light-dark(var(--color-brand-800),var(--color-brand-400));--color-primary-hover:var(--color-brand-hover);--color-bg-dark:light-dark(color-mix(in oklab, var(--color-brand-400) 5%, var(--color-stone-100)),color-mix(in oklab, var(--color-brand-400) 7.5%, var(--color-stone-950)));--color-bg:light-dark(color-mix(in oklab, var(--color-brand-400) 5%, var(--color-stone-50)),color-mix(in oklab, var(--color-brand-400) 3.5%, var(--color-stone-900)));--color-bg-light:light-dark(color-mix(in oklab, var(--color-brand-400) 5%, var(--color-white)),color-mix(in oklab, var(--color-brand-400) 3.5%, var(--color-stone-800)));--color-text:light-dark(var(--color-stone-700),var(--color-stone-100));--color-text-link:var(--color-text-muted);--color-text-muted:light-dark(var(--color-stone-600),var(--color-stone-300));--color-divider:light-dark(var(--color-stone-200),var(--color-stone-800));--color-border:light-dark(var(--color-stone-300),var(--color-stone-700));--color-border-hover:light-dark(var(--color-stone-400),var(--color-stone-500));--color-text-status:light-dark(var(--color-brand-800),var(--color-brand-400));--color-bg-status:color-mix(in oklch, var(--color-button-tertiary-text) 10%, transparent);--color-success:light-dark(var(--color-green-800),var(--color-green-500));--color-danger:oklch(from var(--color-red-600) l c h / 80%);--color-focus:var(--color-stone-500);--color-review-stars:gold;--color-code-bg:light-dark(color-mix(in oklab, var(--color-brand-400) 5%, var(--color-stone-800)),var(--color-bg));--color-button-primary-bg:light-dark(var(--color-brand-600),var(--color-brand-500));--color-button-primary-bg-hover:light-dark(var(--color-brand-700),var(--color-brand-400));--color-button-primary-bg-active:light-dark(var(--color-brand-800),var(--color-brand-600));--color-button-primary-border:transparent;--color-button-primary-text:light-dark(var(--color-neutral-800),var(--color-neutral-700));--color-button-secondary-bg:transparent;--color-button-secondary-bg-hover:color-mix(in oklch, var(--color-brand-800) 8%, transparent);--color-button-secondary-bg-active:color-mix(in oklch, var(--color-text) 14%, transparent);--color-button-secondary-border:var(--color-border);--color-button-secondary-text:var(--color-text);--color-button-tertiary-bg:transparent;--color-button-tertiary-bg-hover:color-mix(in oklch, var(--color-button-tertiary-text) 10%, transparent);--color-button-tertiary-bg-active:color-mix(in oklch, var(--color-button-tertiary-text) 16%, transparent);--color-button-tertiary-border:transparent;--color-button-tertiary-text:light-dark(var(--color-brand-800),var(--color-brand-400));--color-button-danger-bg:var(--color-red-700);--color-button-danger-bg-hover:var(--color-red-800);--color-button-danger-bg-active:var(--color-red-900);--color-button-danger-border:transparent;--color-button-danger-text:var(--color-neutral-50);--color-button-disabled-bg:light-dark(var(--color-stone-200),var(--color-stone-800));--color-button-disabled-border:light-dark(var(--color-stone-300),var(--color-stone-700));--color-button-disabled-text:light-dark(var(--color-stone-500),var(--color-stone-400));--color-input-bg:var(--color-bg);--color-input-bg-disabled:var(--color-bg-dark);--color-input-text:var(--color-text);--color-input-placeholder:var(--color-text-muted);--color-input-border:var(--color-border);--color-input-border-hover:var(--color-border-hover);--color-input-border-focus:var(--color-text-link);--color-input-border-invalid:var(--color-danger);--shadow-s:inset 0 1px 2px #ffffff30,  0 1px 2px #00000030,  0 2px 4px #00000015;--shadow-m:inset 0 1px 2px #ffffff50,  0 2px 4px #00000030,  0 4px 8px #00000015;--shadow-l:inset 0 1px 2px #ffffff70,  0 4px 6px #00000030,  0 6px 10px #00000015;--inset-s:inset 0 2px 4px #00000030,  0 1px 2px #ffffff10,  0 1px 2px #ffffff05;--inset-m:inset 0 3px 5px #00000030,  0 2px 4px #ffffff10,  0 1px 2px #ffffff05;--inset-l:inset 0 4px 6px #00000030,  0 4px 6px #ffffff10,  0 1px 2px #ffffff05;--breakpoint-sm:40rem;--breakpoint-md:48rem;--breakpoint-lg:64rem;--breakpoint-xl:80rem;--breakpoint-2xl:96rem;--container-3xs:16rem;--container-2xs:18rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--container-7xl:80rem;--container-8xl:96rem}@media (width>=40rem){.container{padding-inline:var(--gutter-s)}}@media (width>=48rem){.container{padding-inline:var(--gutter-m);max-width:48rem}}@media (width>=56rem){.container{padding-inline:var(--gutter-l);max-width:56rem}}@media (width>=64rem){.container{padding-inline:var(--gutter-xl);max-width:64rem}}@media (width>=72rem){.container{max-width:72rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=90rem){.container{max-width:90rem}}@media (width>=96rem){.container{max-width:96rem}}:root{--radius-3xs:.125rem;--radius-2xs:.25rem;--radius-xs:.375rem;--radius-s:.5rem;--radius-m:.75rem;--radius-l:1rem;--radius-xl:1.25rem;--radius-2xl:1.5rem;--radius-3xl:1.75rem;--radius-4xl:2rem;--border-radius:var(--radius-s);--space-3xs:clamp(.25rem, .2375rem + .0625vw, .3125rem);--space-2xs:clamp(.5rem, .4875rem + .0625vw, .5625rem);--space-xs:clamp(.75rem, .725rem + .125vw, .875rem);--space-s:clamp(1rem, .975rem + .125vw, 1.125rem);--space-m:clamp(1.5rem, 1.4625rem + .1875vw, 1.6875rem);--space-l:clamp(2rem, 1.95rem + .25vw, 2.25rem);--space-xl:clamp(3rem, 2.925rem + .375vw, 3.375rem);--space-2xl:clamp(4rem, 3.9rem + .5vw, 4.5rem);--space-3xl:clamp(6rem, 5.85rem + .75vw, 6.75rem);--space-3xs-2xs:clamp(.25rem, .1875rem + .3125vw, .5625rem);--space-2xs-xs:clamp(.5rem, .425rem + .375vw, .875rem);--space-xs-s:clamp(.75rem, .675rem + .375vw, 1.125rem);--space-s-m:clamp(1rem, .8625rem + .6875vw, 1.6875rem);--space-m-l:clamp(1.5rem, 1.35rem + .75vw, 2.25rem);--space-l-xl:clamp(2rem, 1.725rem + 1.375vw, 3.375rem);--space-xl-2xl:clamp(3rem, 2.7rem + 1.5vw, 4.5rem);--space-2xl-3xl:clamp(4rem, 3.45rem + 2.75vw, 6.75rem);--space-s-l:clamp(1rem, .75rem + 1.25vw, 2.25rem);--space-m-xl:clamp(1.5rem, 1.125rem + 1.875vw, 3.375rem);--space-l-2xl:clamp(2rem, 1.5rem + 2.5vw, 4.5rem);--gutter-xs:var(--space-s);--gutter-s:var(--space-s-m);--gutter-m:var(--space-m-l);--gutter-l:var(--space-l-xl);--gutter-xl:var(--space-xl-2xl);--gutter-2xl:var(--space-2xl-3xl);--gutter-width:2.5rem;--phi:1.618;--transition-duration:.618s;--transition-duration-fast:.382s;--transition-duration-turbo:.145898s;--transition-duration-slow:1.618s;--step--2:clamp(.72rem, .8041rem + -.0701vw, .7901rem);--step--1:clamp(.8889rem, .8867rem + .0111vw, .9rem);--step-0:clamp(1rem, .975rem + .125vw, 1.125rem);--step-1:clamp(1.125rem, 1.0688rem + .2813vw, 1.4063rem);--step-2:clamp(1.2656rem, 1.1672rem + .4922vw, 1.7578rem);--step-3:clamp(1.4238rem, 1.2691rem + .7734vw, 2.1973rem);--step-4:clamp(1.6018rem, 1.3729rem + 1.1448vw, 2.7466rem);--step-5:clamp(1.802rem, 1.4758rem + 1.6312vw, 3.4332rem);--step-6:clamp(2.0273rem, 1.5744rem + 2.2642vw, 4.2915rem);--step-7:clamp(2.2807rem, 1.664rem + 3.0837vw, 5.3644rem);--font-heading:var(--font-fira), system-ui, sans-serif;--font-body:var(--font-fira), system-ui, sans-serif;--font-mono:var(--font-jetbrains-mono), ui-monospace, monospace;--font-thin:100;--font-extralight:200;--font-light:300;--font-regular:400;--font-medium:500;--font-semibold:600;--font-bold:700;--font-extrabold:800}.heading{font-family:var(--font-fira);font-weight:var(--font-medium);font-optical-sizing:auto;font-style:normal}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.overflow-hidden{overflow-y:hidden}.skip-link{padding:var(--space-3xs) var(--space-2xs);text-align:center;background-color:var(--color-bg-light);font-size:var(--step--1);color:var(--color-text);z-index:99;opacity:0;border-radius:0 0 .25rem .25rem;transition:translate .25s ease-in-out;position:fixed;top:0;left:50%;translate:-50% -100%}.skip-link:focus{opacity:1;translate:-50%}.no-bullets{padding-left:0;list-style:none}.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}.truncate{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.isolate{max-width:100vw;min-height:100dvh;overflow-x:hidden}.container{padding-inline:var(--gutter-s);margin-inline:auto}@media (width>=40rem){.container{padding-inline:var(--gutter-s)}}@media (width>=48rem){.container{padding-inline:var(--gutter-m);max-width:48rem}}@media (width>=56rem){.container{padding-inline:var(--gutter-l);max-width:56rem}}@media (width>=64rem){.container{padding-inline:var(--gutter-xl);max-width:64rem}}@media (width>=72rem){.container{max-width:72rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=90rem){.container{max-width:90rem}}@media (width>=96rem){.container{max-width:96rem}}.page-layout{padding-top:var(--header-height);min-height:calc(100dvh - var(--footer-height));background-color:var(--color-bg-dark);grid-template-rows:1fr auto;grid-template-columns:repeat(1,minmax(0,1fr));margin-inline:auto;display:grid;position:relative}@media (width>=64rem){.page-layout{justify-content:center}}.page-layout--lab{background-color:var(--color-bg-dark)}.page-layout--entry{padding-top:calc(var(--header-height) + var(--mobile-toc-height));background-color:var(--color-bg-dark)}:root{--content-padding:var(--space-s);--max-article-width:var(--container-7xl)}.eyebrow{font-family:var(--font-mono);font-size:var(--step--1);font-weight:var(--font-extralight);text-transform:uppercase}:root{color-scheme:dark;--color-green-500:oklch(72.3% .219 149.579);--color-green-700:oklch(52.7% .154 150.069);--header-color-bg:var(--color-bg);--footer-color-bg:var(--color-bg);--color-glass-gradient:linear-gradient(134deg, oklch(from var(--color-neutral-50) l c h / 6%), oklch(from var(--color-neutral-50) l c h / 2%), oklch(from var(--color-neutral-50) l c h / 0%) 55%);--header-height:3.5rem;--footer-height:3rem;--mobile-toc-height:3rem;--toc-width:var(--container-2xs);--layout-max-width:90rem;--content-padding:var(--space-s);--max-article-width:var(--container-7xl);--color-success:var(--color-green-500);--color-success-border:light-dark(var(--color-green-500),var(--color-green-700));--color-eyebrow:light-dark(var(--color-brand-800),var(--color-brand-500))}@media (width>=56rem){:root{--header-height:4rem;--mobile-toc-height:0rem}}.container{max-width:90rem}@media (width>=90rem){.container{padding-inline:var(--gutter-m)}}.scroll-down[data-astro-cid-z4jru4n3],.scroll-up[data-astro-cid-z4jru4n3]{& .logo-image{display:none}& .logo-heading{display:block}& .site-header{background-color:oklch(from var(--color-bg) l c h / 95%)}}main[data-astro-cid-z4jru4n3]{min-height:calc(100vh - var(--footer-height));padding-top:var(--header-height);background:var(--color-glass-gradient);display:grid}
