@font-face{font-family:Instrument Sans;src:url(/fonts/instrumentsans-latin.woff2)format("woff2");font-weight:400 500;font-style:normal;font-display:swap}@font-face{font-family:Geist Mono;src:url(/fonts/geistmono-latin.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{--font-sans:"Instrument Sans";--font-mono:"Geist Mono";--bg:#fff;--ink:#1a1a1a;--ink-2:#767676;--ink-3:#a8a8a8;--rule:#e3e4e5;--panel:#f5f5f4;--accent:#ff4e1a;--selection:#1a1a1a;--selection-ink:#fff;--sans:var(--font-sans), "Helvetica Neue", Arial, sans-serif;--mono:var(--font-mono), ui-monospace, "SF Mono", Menlo, monospace;--f-display:clamp(2.75rem, 7.2vw, 6.5rem);--f-h1:clamp(2.5rem, 5.6vw, 4.75rem);--f-h2:clamp(1.875rem, 3.6vw, 3rem);--f-h3:clamp(1.375rem, 2.2vw, 1.875rem);--f-h4:clamp(1.125rem, 1.5vw, 1.375rem);--f-body-lg:clamp(1.125rem, 1.4vw, 1.375rem);--f-body:1rem;--f-caption:.8125rem;--f-number:.75rem;--cols:12;--gutter:12px;--outer:16px;--measure:34em;--s-1:.5rem;--s-2:1rem;--s-3:1.5rem;--s-4:2rem;--s-5:3rem;--s-6:4.5rem;--s-7:7rem;--s-8:10rem;--radius:4px;--ease:cubic-bezier(.2, 0, 0, 1);--t:.3s;--paper:var(--bg);--display:var(--sans);--ink-soft:var(--ink-2);--ink-muted:var(--ink-2);--ink-faint:var(--ink-3);--rule-soft:var(--rule)}@media (width>=40em){:root{--gutter:16px;--outer:24px}}@media (width>=64em){:root{--outer:32px}}@media (width>=90em){:root{--outer:40px}}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0e0e0f;--ink:#f2f2f0;--ink-2:#8f8f8f;--ink-3:#5c5c5c;--rule:#2a2a2c;--panel:#161617;--selection:#f2f2f0;--selection-ink:#0e0e0f;color-scheme:dark}}:root[data-theme=dark]{--bg:#0e0e0f;--ink:#f2f2f0;--ink-2:#8f8f8f;--ink-3:#5c5c5c;--rule:#2a2a2c;--panel:#161617;--selection:#f2f2f0;--selection-ink:#0e0e0f;color-scheme:dark}.band-dark{--bg:#0e0e0f;--ink:#f2f2f0;--ink-2:#8f8f8f;--ink-3:#5c5c5c;--rule:#2a2a2c;--panel:#161617;--selection:#f2f2f0;--selection-ink:#0e0e0f;color-scheme:dark;background:var(--bg);color:var(--ink)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:var(--f-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;font-weight:400;line-height:1.4}::selection{background:var(--selection);color:var(--selection-ink)}h1,h2,h3,h4,h5,h6{text-wrap:balance;margin:0;font-weight:400}p{margin:0}a{color:inherit;transition:color var(--t) var(--ease);text-decoration:none}img,svg,video{max-width:100%;height:auto;display:block}hr{border:0;border-top:1px solid var(--rule);margin:var(--s-5) 0}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.t-display{font-size:var(--f-display);letter-spacing:-.03em;text-wrap:balance;line-height:.98}.t-h1{font-size:var(--f-h1);letter-spacing:-.025em;text-wrap:balance;line-height:1.02}.t-h2{font-size:var(--f-h2);letter-spacing:-.02em;text-wrap:balance;line-height:1.06}.t-h3{font-size:var(--f-h3);letter-spacing:-.015em;text-wrap:balance;line-height:1.12}.t-h4{font-size:var(--f-h4);letter-spacing:-.01em;line-height:1.2}.t-lg{font-size:var(--f-body-lg);letter-spacing:-.01em;line-height:1.32}.t-body{font-size:var(--f-body);line-height:1.4}.t-caption{font-size:var(--f-caption);line-height:1.35}.t-mono{font-family:var(--mono);font-size:var(--f-number);letter-spacing:.02em;text-transform:uppercase;line-height:1.2}.em{font-family:var(--mono);letter-spacing:.01em;text-transform:uppercase;color:var(--ink);font-size:.86em}.t-2{color:var(--ink-2)}.t-3{color:var(--ink-3)}.accent{color:var(--accent)}.measure{max-width:var(--measure)}.measure-wide{max-width:44em}.balance{text-wrap:balance}.count{font-family:var(--mono);font-size:var(--f-number);letter-spacing:.02em;color:var(--ink-2);vertical-align:.9em;margin-left:.6em;line-height:1}.wrap{padding-inline:var(--outer);max-width:90rem;margin-inline:auto}.grid{grid-template-columns:repeat(var(--cols), minmax(0, 1fr));column-gap:var(--gutter);row-gap:var(--s-4);display:grid}.c-2,.c-3,.c-4,.c-5,.c-6,.c-7,.c-8,.c-9,.c-10,.start-2,.start-5,.start-7,.start-9{grid-column:span 12}@media (width>=48em){.c-2{grid-column:span 2}.c-3{grid-column:span 3}.c-4{grid-column:span 4}.c-5{grid-column:span 5}.c-6{grid-column:span 6}.c-7{grid-column:span 7}.c-8{grid-column:span 8}.c-9{grid-column:span 9}.c-10{grid-column:span 10}.start-2{grid-column:2/span 10}.start-5{grid-column:5/span 8}.start-7{grid-column:7/span 6}.start-9{grid-column:9/span 4}}.section{padding-block:var(--s-6)}.section-lg{padding-block:var(--s-7)}@media (width>=48em){.section{padding-block:var(--s-7)}.section-lg{padding-block:var(--s-8)}}.rule{border-top:1px solid var(--rule)}.rule-b{border-bottom:1px solid var(--rule)}.mt-1{margin-top:var(--s-1)}.mt-2{margin-top:var(--s-2)}.mt-3{margin-top:var(--s-3)}.mt-4{margin-top:var(--s-4)}.mt-5{margin-top:var(--s-5)}.mt-6{margin-top:var(--s-6)}.mt-7{margin-top:var(--s-7)}.head{grid-template-columns:repeat(var(--cols), minmax(0, 1fr));column-gap:var(--gutter);row-gap:var(--s-2);padding-top:var(--s-2);border-top:1px solid var(--rule);align-items:baseline;display:grid}.head .idx,.head .title,.head .aside{grid-column:span 12}@media (width>=48em){.head .idx{grid-column:span 2}.head .title{grid-column:span 7}.head .aside{grid-column:10/span 3}}.meta{font-family:var(--mono);font-size:var(--f-number);letter-spacing:.02em;text-transform:uppercase;color:var(--ink-2);line-height:1.6}.n{font-family:var(--mono);font-size:var(--f-number);letter-spacing:.02em;color:var(--ink-2);line-height:1.6}.index{border-top:1px solid var(--rule)}.body-split{column-gap:var(--gutter);row-gap:var(--s-1);grid-template-columns:1fr;display:grid}@media (width>=48em){.body-split{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}}@media (width>=64em){.body-split{grid-template-columns:minmax(0,4fr) minmax(0,8fr)}}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--rule);font-family:var(--mono);font-size:var(--f-number);letter-spacing:.02em;text-transform:uppercase;color:var(--ink-2);transition:color var(--t) var(--ease), border-color var(--t) var(--ease);border-radius:999px;padding:.3rem .7rem;line-height:1;display:inline-block}a.chip:hover{color:var(--ink);border-color:var(--ink-3)}.u{transition:color var(--t) var(--ease);background-image:linear-gradient(currentColor 0 100%);background-position:0 100%;background-repeat:no-repeat;background-size:100% 1px;padding-bottom:1px}.u:hover{color:var(--accent)}.link-lg{font-size:var(--f-h4);letter-spacing:-.01em;line-height:1.25}.btn{border:1px solid var(--ink);border-radius:var(--radius);font-size:var(--f-caption);color:var(--ink);transition:background var(--t) var(--ease), color var(--t) var(--ease), border-color var(--t) var(--ease);align-items:center;gap:.6em;padding:.8rem 1.1rem;line-height:1;display:inline-flex}.btn:hover,.btn.solid{background:var(--ink);color:var(--bg)}.btn.solid:hover{color:var(--ink);background:0 0}.btn.sm{padding:.5rem .8rem;font-size:.75rem}.actions{flex-wrap:wrap;gap:.6rem;display:flex}.cards{gap:var(--gutter);grid-template-columns:repeat(1,minmax(0,1fr));display:grid}@media (width>=40em){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=64em){.cards{grid-template-columns:repeat(3,minmax(0,1fr))}}.card{border:1px solid var(--rule);border-radius:var(--radius);transition:border-color var(--t) var(--ease);flex-direction:column;display:flex;overflow:hidden}.card:hover{border-color:var(--ink-3)}.card .text{flex-direction:column;flex:1;gap:.6rem;padding:1rem 1rem 1.1rem;display:flex}.card .chips{margin-top:auto;padding-top:.6rem}.code,pre{font-family:var(--mono);background:var(--panel);border:1px solid var(--rule);border-radius:var(--radius);padding:1rem 1.1rem;font-size:.8125rem;line-height:1.6;overflow-x:auto}code{font-family:var(--mono);font-size:.9em}pre code{font-size:inherit;background:0 0;border:0;padding:0}.steps{gap:var(--gutter);grid-template-columns:1fr;display:grid}@media (width>=48em){.steps{grid-template-columns:repeat(3,minmax(0,1fr))}}.step{gap:var(--s-2);border-top:1px solid var(--rule);padding-top:var(--s-2);flex-direction:column;display:flex}.muted{color:var(--ink-2)}.wrap-wide{max-width:90rem}.sr,.skip:not(:focus){clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip:focus{z-index:100;background:var(--ink);color:var(--bg);border-radius:var(--radius);font-family:var(--mono);font-size:var(--f-number);text-transform:uppercase;padding:.6rem .9rem;position:fixed;top:.5rem;left:.5rem}.nav[data-astro-cid-nen7h5rs]{z-index:40;background:color-mix(in srgb, var(--bg) 88%, transparent);backdrop-filter:saturate(140%)blur(10px);border-bottom:1px solid var(--rule);position:sticky;top:0}.bar[data-astro-cid-nen7h5rs]{justify-content:space-between;align-items:center;height:3.5rem;display:flex}.wordmark[data-astro-cid-nen7h5rs]{letter-spacing:-.01em;color:var(--ink);font-size:1rem}.wordmark[data-astro-cid-nen7h5rs]:hover{color:var(--accent)}.links[data-astro-cid-nen7h5rs]{align-items:center;gap:1.25rem;display:flex}.links[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{color:var(--ink-2)}.links[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:hover,.links[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs].on{color:var(--ink)}@media (width>=40em){.links[data-astro-cid-nen7h5rs]{gap:1.75rem}}.footer[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--rule);padding-block:var(--s-5) var(--s-4);margin-top:var(--s-6)}.cols[data-astro-cid-jo6i4kqk]{grid-template-columns:repeat(var(--cols), minmax(0, 1fr));column-gap:var(--gutter);row-gap:var(--s-4);display:grid}.lead[data-astro-cid-jo6i4kqk]{grid-column:span 12}.col[data-astro-cid-jo6i4kqk]{grid-column:span 6}@media (width>=48em){.lead[data-astro-cid-jo6i4kqk]{grid-column:span 6}.col[data-astro-cid-jo6i4kqk]{grid-column:span 2}}ul[data-astro-cid-jo6i4kqk]{margin:var(--s-1) 0 0;gap:.35rem;padding:0;list-style:none;display:grid}.col[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{color:var(--ink-2)}.col[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{color:var(--ink)}.legal[data-astro-cid-jo6i4kqk]{justify-content:space-between;gap:var(--s-2);margin-top:var(--s-5);padding-top:var(--s-2);border-top:1px solid var(--rule);flex-wrap:wrap;display:flex}
