@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-vietnamese-wght-normal.CnvboYUG.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-latin-ext-wght-normal.Ca2vKHc0.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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-latin-wght-normal.ukD16Tqj.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}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/_astro/dm-sans-latin-ext-wght-normal.BOFOeGcA.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:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/_astro/dm-sans-latin-wght-normal.Xz1IZZA0.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{--cream-50:#fffaf0;--cream-100:#fbf1df;--cream-200:#f4e4c8;--cream-300:#ead5b0;--ink-950:#1a1420;--ink-900:#2d2420;--ink-600:#5e5049;--ink-400:#92857b;--plum-950:#1d1a2b;--plum-900:#262238;--plum-800:#312b47;--plum-700:#3d3656;--plum-300:#c9bfd9;--plum-500:#8e85a3;--pastel-peach:#f7b89b;--pastel-rose:#f4aabd;--pastel-butter:#f6d98b;--pastel-mint:#a9dcc3;--pastel-sky:#a8cfea;--pastel-lilac:#cdbdeb;--white:#fff;--coral-500:#ee8466;--terracotta-700:#a3412a;--green-700:#2f6f4a;--red-700:#a8332b;--amber-700:#8a5a0e;--font-display:"Fraunces Variable", "Iowan Old Style", Georgia, serif;--font-body:"DM Sans Variable", system-ui, sans-serif;--font-mono:ui-monospace, "Cascadia Code", Menlo, monospace;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--space-9:6rem;--gutter:clamp(1rem, 4vw, 3rem);--section:clamp(3.5rem, 8vw, 6rem);--radius-sm:.5rem;--radius-md:.875rem;--radius-lg:1.5rem;--radius-pill:999px;--container-prose:68ch;--container-content:72rem;--line:2px;--offset:5px;--motion-fast:.12s;--motion-base:.2s;--ease:cubic-bezier(.2, .7, .3, 1)}:root,[data-mode=light]{color-scheme:light;--background:var(--cream-100);--surface:var(--cream-50);--surface-alt:var(--cream-200);--surface-sunken:var(--cream-300);--text:var(--ink-900);--text-dim:var(--ink-600);--text-faint:var(--ink-400);--text-on-accent:var(--ink-900);--text-on-tint:var(--ink-900);--accent:var(--coral-500);--link:var(--terracotta-700);--outline:var(--ink-900);--shadow:var(--ink-900);--focus-ring:var(--terracotta-700);--success:var(--green-700);--danger:var(--red-700);--attention:var(--amber-700);--state-target:black;--hover-mix:10%;--pressed-mix:18%;--tint-peach:var(--pastel-peach);--tint-rose:var(--pastel-rose);--tint-butter:var(--pastel-butter);--tint-mint:var(--pastel-mint);--tint-sky:var(--pastel-sky);--tint-lilac:var(--pastel-lilac)}[data-mode=dark]{color-scheme:dark;--background:var(--plum-950);--surface:var(--plum-900);--surface-alt:var(--plum-800);--surface-sunken:var(--plum-700);--text:var(--cream-100);--text-dim:var(--plum-300);--text-faint:var(--plum-500);--text-on-accent:var(--ink-900);--text-on-tint:var(--ink-900);--accent:var(--coral-500);--link:var(--pastel-peach);--outline:var(--ink-950);--shadow:var(--plum-700);--focus-ring:var(--pastel-butter);--success:var(--pastel-mint);--danger:var(--pastel-rose);--attention:var(--pastel-butter);--state-target:white;--hover-mix:14%;--pressed-mix:22%}:root{--border:color-mix(in oklch, var(--text-dim) 30%, transparent);--hairline:color-mix(in oklch, var(--text-dim) 16%, transparent);--selection:color-mix(in oklch, var(--accent) 40%, transparent);--hard-shadow:var(--offset) var(--offset) 0 var(--shadow)}[data-tint=peach]{--tint:var(--tint-peach)}[data-tint=rose]{--tint:var(--tint-rose)}[data-tint=butter]{--tint:var(--tint-butter)}[data-tint=mint]{--tint:var(--tint-mint)}[data-tint=sky]{--tint:var(--tint-sky)}[data-tint=lilac]{--tint:var(--tint-lilac)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{min-height:100vh;font-family:var(--font-body);background:var(--background);color:var(--text);transition:background var(--motion-base) var(--ease), color var(--motion-base) var(--ease);flex-direction:column;margin:0;font-size:clamp(1rem,.97rem + .15vw,1.0625rem);line-height:1.6;display:flex}::selection{background:var(--selection)}main{width:100%;max-width:var(--container-content);padding:0 var(--gutter) var(--section);flex:1;margin:0 auto}h1,h2,h3,h4{font-family:var(--font-display);margin:0 0 var(--space-4);font-variation-settings:"SOFT" 100, "WONK" 1;font-weight:600;line-height:1.1}h1{letter-spacing:-.015em;font-size:clamp(2.25rem,1.6rem + 3vw,3.75rem)}h2{font-size:clamp(1.5rem,1.25rem + 1.2vw,2.125rem)}h3{font-size:clamp(1.15rem,1.05rem + .4vw,1.375rem)}p{margin:0 0 var(--space-4)}a{color:var(--link);text-underline-offset:.2em;text-decoration-thickness:1.5px}a:hover{text-decoration-thickness:3px}:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px;border-radius:var(--radius-sm)}img{max-width:100%;height:auto;display:block}.display{font-family:var(--font-display);letter-spacing:-.025em;font-variation-settings:"SOFT" 100, "WONK" 1;margin:0 0 var(--space-5);font-size:clamp(3rem,1.8rem + 5vw,5.75rem);font-weight:650;line-height:.95}.lead{max-width:40ch;font-size:clamp(1.125rem,1rem + .5vw,1.375rem);line-height:1.5}.eyebrow{letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);margin:0 0 var(--space-3);font-size:.75rem;font-weight:700;display:inline-block}.meta{color:var(--text-dim);margin:0 0 var(--space-2);font-size:.8125rem;font-weight:500}.dim{color:var(--text-dim)}.section{margin-top:var(--section)}.section-head{justify-content:space-between;align-items:end;gap:var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.section-head h2{margin:0}.page-head{padding-top:var(--space-7);margin-bottom:var(--space-7);max-width:var(--container-prose)}.grid{gap:var(--space-6);grid-template-columns:repeat(auto-fill,minmax(min(100%,17rem),1fr));display:grid}.cluster{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.stripes{border-radius:var(--radius-pill);border:var(--line) solid var(--outline);height:.6rem;display:flex;overflow:hidden}.stripes span{flex:1}.stripes span:first-child{background:var(--tint-rose)}.stripes span:nth-child(2){background:var(--tint-peach)}.stripes span:nth-child(3){background:var(--tint-butter)}.stripes span:nth-child(4){background:var(--tint-mint)}.stripes span:nth-child(5){background:var(--tint-sky)}.stripes span:nth-child(6){background:var(--tint-lilac)}.tinted{background:var(--tint,var(--surface-alt));color:var(--text-on-tint);--text-dim:var(--text-on-tint);--link:var(--text-on-tint);border:var(--line) solid var(--outline);border-radius:var(--radius-lg);box-shadow:var(--hard-shadow)}.panel{background:var(--surface);border:var(--line) solid var(--outline);border-radius:var(--radius-lg);box-shadow:var(--hard-shadow);padding:var(--space-5)}.btn{--btn-fill:transparent;--btn-label:var(--text);align-items:center;gap:var(--space-2);min-height:2.75rem;padding:0 var(--space-5);font:600 .9375rem/1 var(--font-body);color:var(--btn-label);background:var(--btn-fill);border:var(--line) solid var(--outline);border-radius:var(--radius-pill);box-shadow:3px 3px 0 var(--shadow);cursor:pointer;transition:transform var(--motion-fast) var(--ease), box-shadow var(--motion-fast) var(--ease), background var(--motion-fast);text-decoration:none;display:inline-flex}.btn:hover{background:color-mix(in oklch, var(--btn-fill), var(--state-target) var(--hover-mix));box-shadow:4px 4px 0 var(--shadow);text-decoration:none;transform:translate(-1px,-1px)}.btn:active{background:color-mix(in oklch, var(--btn-fill), var(--state-target) var(--pressed-mix));box-shadow:0 0 0 var(--shadow);transform:translate(3px,3px)}.btn-primary{--btn-fill:var(--accent);--btn-label:var(--text-on-accent)}.btn-secondary{--btn-fill:var(--surface)}.btn-quiet{box-shadow:none;border-color:#0000}.tag{padding:var(--space-1) var(--space-3);background:var(--tint,var(--surface-alt));color:var(--text-on-tint);border:var(--line) solid var(--outline);border-radius:var(--radius-pill);font-size:.8125rem;font-weight:600;display:inline-block}.tabs{gap:var(--space-2);padding-bottom:var(--space-2);margin-bottom:var(--space-6);display:flex;overflow-x:auto}.tabs a{padding:var(--space-2) var(--space-4);color:var(--text);border:var(--line) solid transparent;border-radius:var(--radius-pill);flex:none;font-size:.9375rem;font-weight:600;text-decoration:none}.tabs a:hover{border-color:var(--border)}.tabs a[aria-current=page]{background:var(--tint,var(--accent));color:var(--text-on-tint);border-color:var(--outline);box-shadow:3px 3px 0 var(--shadow)}.media{aspect-ratio:4/3;border-radius:var(--radius-md);border:var(--line) solid var(--outline);background:var(--surface-sunken);overflow:hidden}.media img{object-fit:cover;width:100%;height:100%}.media-placeholder{background:radial-gradient(circle at 70% 35%, color-mix(in oklch, var(--tint,var(--accent)), var(--white) 35%) 0 18%, transparent 18.5%), repeating-linear-gradient(-45deg, var(--tint,var(--surface-alt)) 0 14px, color-mix(in oklch, var(--tint,var(--surface-alt)), var(--white) 25%) 14px 28px);font-family:var(--font-display);color:var(--text-on-tint);place-items:center;font-size:1.25rem;display:grid}.prose{max-width:var(--container-prose)}.prose h2{margin-top:var(--space-7)}.prose h3{margin-top:var(--space-6)}.prose ul,.prose ol{margin:0 0 var(--space-4);padding-left:1.25rem}.prose blockquote{margin:var(--space-6) 0;padding-left:var(--space-5);border-left:4px solid var(--accent);font-size:1.2rem}.prose code{font-family:var(--font-mono);background:var(--surface-alt);border-radius:var(--radius-sm);padding:.1em .35em;font-size:.875em}.prose img{border-radius:var(--radius-md);margin:var(--space-6) 0}.prose hr{border:0;border-top:var(--line) dashed var(--border);margin:var(--space-7) 0}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}header[data-astro-cid-nen7h5rs]{justify-content:space-between;align-items:center;gap:var(--space-4);width:100%;max-width:var(--container-content);padding:var(--space-5) var(--gutter);flex-wrap:wrap;margin:0 auto;display:flex}.wordmark[data-astro-cid-nen7h5rs]{align-items:center;gap:var(--space-2);font-family:var(--font-display);color:var(--text);font-size:1.5rem;font-weight:700;text-decoration:none;display:inline-flex}.badge[data-astro-cid-nen7h5rs]{background:var(--accent);width:2.4rem;height:2.4rem;color:var(--text-on-accent);border:var(--line) solid var(--outline);box-shadow:2px 2px 0 var(--shadow);transition:transform var(--motion-base) var(--ease);border-radius:50%;place-items:center;font-size:1.05rem;display:inline-grid;transform:rotate(-8deg)}.wordmark[data-astro-cid-nen7h5rs]:hover .badge[data-astro-cid-nen7h5rs]{transform:rotate(8deg)}nav[data-astro-cid-nen7h5rs]{align-items:center;gap:var(--space-1);flex-wrap:wrap;display:flex}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{padding:var(--space-2) var(--space-3);color:var(--text);border:var(--line) solid transparent;border-radius:var(--radius-pill);font-size:.9375rem;font-weight:600;text-decoration:none}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:hover{border-color:var(--border)}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current=page]{background:var(--tint-butter);color:var(--text-on-tint);border-color:var(--outline)}.mode[data-astro-cid-nen7h5rs]{width:2.75rem;height:2.75rem;margin-left:var(--space-2);background:var(--surface);border:var(--line) solid var(--outline);cursor:pointer;border-radius:50%;place-items:center;display:grid}.mode-icon[data-astro-cid-nen7h5rs]{border:var(--line) solid var(--text);background:linear-gradient(90deg, var(--text) 50%, transparent 50%);border-radius:50%;width:1.1rem;height:1.1rem}[data-pref=light] .mode-icon[data-astro-cid-nen7h5rs]{background:var(--tint-butter);border-color:var(--text)}[data-pref=dark] .mode-icon[data-astro-cid-nen7h5rs]{box-shadow:inset -.35rem -.1rem 0 0 var(--tint-butter);background:0 0;border-color:#0000}footer[data-astro-cid-jo6i4kqk]{width:100%;max-width:var(--container-content);padding:var(--space-6) var(--gutter) var(--space-7);margin:0 auto}.row[data-astro-cid-jo6i4kqk]{justify-content:space-between;gap:var(--space-4);margin-top:var(--space-5);color:var(--text-dim);flex-wrap:wrap;font-size:.875rem;display:flex}p[data-astro-cid-jo6i4kqk]{margin:0}ul[data-astro-cid-jo6i4kqk]{gap:var(--space-2) var(--space-4);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}a[data-astro-cid-jo6i4kqk]{color:var(--text-dim)}a[data-astro-cid-jo6i4kqk]:hover{color:var(--text)}
