@font-face{font-family:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/_astro/instrument-sans-latin-ext-wght-normal.B5bTHO_g.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/_astro/instrument-sans-latin-wght-normal.BbzFLZTg.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:dark;--gray-50:oklch(11.5% 0 0);--gray-100:oklch(14.5% 0 0);--gray-150:oklch(15.9% 0 0);--gray-200:oklch(20.5% 0 0);--gray-300:oklch(23.9% 0 0);--gray-400:oklch(26% 0 0);--gray-950:oklch(98.5% 0 0);--white:oklch(100% 0 0);--hue-rose:oklch(72% .17 16.4);--hue-amber:oklch(82.5% .167 89.7);--hue-green:oklch(72% .165 156.6);--bg-canvas:var(--gray-50);--bg-sheet:var(--gray-100);--bg-card:var(--gray-150);--bg-popover:var(--gray-200);--bg-control:var(--gray-300);--bg-control-hover:var(--gray-400);--fg-1:oklch(100% 0 0/.95);--fg-2:oklch(100% 0 0/.72);--fg-3:oklch(100% 0 0/.6);--fg-disabled:oklch(100% 0 0/.4);--line-subtle:oklch(100% 0 0/.05);--line:oklch(100% 0 0/.08);--line-strong:oklch(100% 0 0/.16);--line-control:oklch(100% 0 0/.38);--hairline:1px;--fill-hover:oklch(100% 0 0/.04);--fill-active:oklch(100% 0 0/.08);--fill-chip:oklch(100% 0 0/.06);--selection:oklch(100% 0 0/.2);--accent:var(--gray-950);--accent-hover:var(--white);--on-accent:var(--gray-200);--focus:oklch(100% 0 0/.65);--danger:var(--hue-rose);--danger-tint:oklch(72% .17 16.4/.14);--warning:var(--hue-amber);--warning-tint:oklch(82.5% .167 89.7/.12);--success:var(--hue-green);--grade-a:oklch(100% 0 0/.22);--grade-b:oklch(100% 0 0/.15);--grade-c:oklch(100% 0 0/.1);--grade-d:oklch(100% 0 0/.05);--chart-line:oklch(100% 0 0/.72);--chart-fill-top:oklch(100% 0 0/.14);--chart-fill-bottom:oklch(100% 0 0/0);--dot-grid:oklch(100% 0 0/.07);--font-sans:"Instrument Sans Variable", -apple-system, system-ui, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, monospace;--weight-regular:400;--weight-medium:500;--type-display:var(--weight-medium) 64px/1 var(--font-sans);--type-display-sm:var(--weight-medium) 40px/1.05 var(--font-sans);--type-metric:var(--weight-medium) 56px/1 var(--font-sans);--type-stat:var(--weight-medium) 32px/1.1 var(--font-sans);--type-title:var(--weight-medium) 24px/1.25 var(--font-sans);--type-heading:var(--weight-medium) 16px/1.5 var(--font-sans);--type-lead:var(--weight-regular) 18px/1.5 var(--font-sans);--type-body:var(--weight-regular) 16px/1.6 var(--font-sans);--type-ui:var(--weight-regular) 14px/1.43 var(--font-sans);--type-ui-strong:var(--weight-medium) 14px/1.43 var(--font-sans);--type-caption:var(--weight-medium) 12px/1.33 var(--font-sans);--type-label:var(--weight-regular) 12px/1.33 var(--font-sans);--type-mono:var(--weight-regular) 12px/1.4 var(--font-mono);--tracking-display:-.03em;--tracking-title:-.02em;--tracking-ui:.01em;--tracking-caption:.02em;--tracking-label:.05em;--radius-sm:8px;--radius-md:16px;--radius-lg:24px;--radius-pill:9999px;--ring-card:0 0 0 1px var(--line);--ring-card-hover:0 0 0 1px var(--line-strong);--shadow-popover:0 0 0 1px var(--line), 0 8px 24px oklch(0% 0 0/.5);--dur-fast:.12s;--dur-press:.16s;--dur-base:.2s;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--z-sticky:10;--z-popover:40;--topbar-h:64px;--sidebar-w:240px;--measure:65ch;--content-max:1280px;--page-inset:max(24px, calc((100% - var(--content-max)) / 2));--tap:44px}@media (resolution>=192dpi){:root{--hairline:.5px}}*{box-sizing:border-box}html{background:var(--bg-canvas);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-size-adjust:100%;font-synthesis:none;scroll-padding-block-start:calc(var(--topbar-h) + 16px)}body{color:var(--fg-2);font:var(--type-ui);letter-spacing:var(--tracking-ui);margin:0}h1,h2,h3,p,ul,ol,dl,dd{margin:0;padding:0}ul,ol{list-style:none}h1{color:var(--fg-1);font:var(--type-title);letter-spacing:var(--tracking-title);text-wrap:balance}h2{color:var(--fg-1);font:var(--type-heading);letter-spacing:0;text-wrap:balance}a{color:inherit;text-underline-offset:2px;text-decoration-thickness:from-font;text-decoration-color:var(--fg-3)}a,button,input,select{touch-action:manipulation}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}::selection{background:var(--selection)}.num{font-variant-numeric:tabular-nums}.mono{font:var(--type-mono);letter-spacing:0}.label{font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--fg-3)}.page-head{gap:8px;margin-block-end:24px;display:grid}.page-head p{color:var(--fg-3);max-width:var(--measure);text-wrap:pretty}.section{gap:12px;margin-block-start:32px;display:grid}.card{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--ring-card)}.card-title{color:var(--fg-3);font:var(--type-ui);letter-spacing:var(--tracking-ui);padding:16px 24px 8px;position:relative}.card-title:before{content:"";background:var(--line-strong);border-start-end-radius:var(--radius-pill);border-end-end-radius:var(--radius-pill);width:4px;height:12px;position:absolute;inset-block-start:20px;inset-inline-start:0}.chip{border-radius:var(--radius-pill);background:var(--fill-chip);min-height:24px;color:var(--fg-2);font:var(--type-caption);letter-spacing:var(--tracking-caption);white-space:nowrap;align-items:center;gap:6px;padding:2px 8px;display:inline-flex}.chip--outline{box-shadow:inset 0 0 0 1px var(--line-strong);color:var(--fg-2);background:0 0}.chip--warning{background:var(--warning-tint);color:var(--warning)}.chip--danger{background:var(--danger-tint);color:var(--danger)}.table-wrap{border-radius:var(--radius-lg);overflow-x:auto}table{border-collapse:collapse;width:100%}th{color:var(--fg-3);font:var(--type-caption);letter-spacing:var(--tracking-caption);text-align:start;white-space:nowrap;padding:12px 16px}td{border-block-start:var(--hairline) solid var(--line);vertical-align:top;padding:12px 16px}tbody th{border-block-start:var(--hairline) solid var(--line)}.input,.select{border:1px solid var(--line-control);border-radius:var(--radius-pill);background:var(--fill-hover);min-height:40px;color:var(--fg-1);font:var(--type-ui);letter-spacing:var(--tracking-ui);transition:border-color var(--dur-fast) ease, box-shadow var(--dur-fast) ease;padding:8px 16px}.input::placeholder{color:var(--fg-3)}.input:focus,.select:focus{outline:2px solid var(--focus);outline-offset:2px}.select option{background:var(--bg-popover)}.button{min-height:var(--tap);border-radius:var(--radius-pill);background:var(--bg-control);color:var(--fg-1);font:var(--type-ui-strong);letter-spacing:var(--tracking-ui);white-space:nowrap;cursor:pointer;user-select:none;transition:background-color var(--dur-fast) ease, color var(--dur-fast) ease, transform var(--dur-press) var(--ease-out);border:0;justify-content:center;align-items:center;gap:8px;padding:8px 16px;text-decoration:none;display:inline-flex}.button:active{transform:scale(.97)}.button[disabled],.button[aria-disabled=true]{color:var(--fg-disabled);cursor:not-allowed}.button--primary{background:var(--accent);color:var(--on-accent)}.button--ghost{color:var(--fg-2);background:0 0}.prose{max-width:var(--measure);color:var(--fg-2);font:var(--type-body);letter-spacing:0;gap:12px;display:grid}.prose h2{font:var(--type-title);letter-spacing:var(--tracking-title);margin-block-start:24px}.prose h3{color:var(--fg-1);font:var(--type-heading);margin-block-start:8px}.prose ul,.prose ol{gap:6px;padding-inline-start:20px;display:grid}.prose ul{list-style:outside}.prose ol{list-style:decimal}.prose li::marker{color:var(--fg-3)}.prose a{color:var(--fg-1);text-decoration:underline;text-decoration-color:var(--fg-3)}.prose table{font:var(--type-ui)}.prose strong{color:var(--fg-1);font-weight:var(--weight-medium)}.prose .cite{color:var(--fg-3);font:var(--type-mono);text-decoration-color:var(--fg-3)}@media (hover:hover) and (pointer:fine){.input:hover,.select:hover{border-color:var(--focus)}.button:hover{background:var(--bg-control-hover)}.button--primary:hover{background:var(--accent-hover)}.button--ghost:hover{background:var(--fill-hover);color:var(--fg-1)}}@media (pointer:coarse){.input,.select{font:var(--type-body)}}@media (prefers-reduced-motion:reduce){*{transition-duration:1ms!important}.button:active{transform:none}}
