@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-wght-normal.BgDaEnEv.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-wght-normal.XN7g48iV.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{--font-body:"Geist Variable", "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--font-mono:"Geist Mono Variable", "SFMono-Regular", Consolas, "Liberation Mono", monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-md:1.125rem;--text-lg:1.375rem;--text-xl:clamp(1.625rem, 1.38rem + 1.1vw, 2.25rem);--text-2xl:clamp(2.25rem, 1.72rem + 2.6vw, 3.75rem);--text-hero:clamp(2.65rem, 1.8rem + 4.2vw, 5.25rem);--leading-tight:1.04;--leading-snug:1.3;--leading-base:1.65;--leading-prose:1.75;--tracking-tight:-.035em;--tracking-wide:.08em;--tracking-widest:.14em;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--radius-sm:.375rem;--radius-md:.625rem;--radius-lg:1rem;--radius-full:999px;--motion-fast:.12s;--motion-base:.18s;--ease-standard:cubic-bezier(.2, 0, 0, 1);--width-shell:72rem;--width-content:48rem;--width-prose:42rem;--border-width:1px;--border-width-strong:2px;--focus-width:2px;--focus-offset:3px}:root,:root[data-theme=light]{color-scheme:light;--color-bg:#f4f0e6;--color-bg-raised:#faf7ef;--color-bg-inset:#ece6d8;--color-bg-code:#f0ece0;--color-bg-hover:#eee7d6;--color-bg-selected:#d9ecdf;--color-text:#1c1a12;--color-text-body:#3a3626;--color-text-muted:#6b6650;--color-accent:#14683a;--color-accent-strong:#0e5330;--color-accent-vivid:#1a7f4b;--color-border:#d6ccae;--color-border-strong:#8a7d55;--color-focus:#147a45;--color-selection:#cce7d4;--color-selection-text:#102a1b;--shadow-raised:0 1px 0 #36311e0d, 0 18px 48px #36311e14}@media (prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--color-bg:#0a0d0b;--color-bg-raised:#0e120f;--color-bg-inset:#171d18;--color-bg-code:#0d110e;--color-bg-hover:#1f2820;--color-bg-selected:#1c3324;--color-text:#eef6ef;--color-text-body:#c7d4c9;--color-text-muted:#8fa393;--color-accent:#6fe6a0;--color-accent-strong:#8bf0b4;--color-accent-vivid:#3f6;--color-border:#36432f;--color-border-strong:#5f7261;--color-focus:#5be08a;--color-selection:#244c31;--color-selection-text:#f2fff5;--shadow-raised:0 1px 0 #00000059, 0 20px 56px #00000042}}:root[data-theme=dark]{color-scheme:dark;--color-bg:#0a0d0b;--color-bg-raised:#0e120f;--color-bg-inset:#171d18;--color-bg-code:#0d110e;--color-bg-hover:#1f2820;--color-bg-selected:#1c3324;--color-text:#eef6ef;--color-text-body:#c7d4c9;--color-text-muted:#8fa393;--color-accent:#6fe6a0;--color-accent-strong:#8bf0b4;--color-accent-vivid:#3f6;--color-border:#36432f;--color-border-strong:#5f7261;--color-focus:#5be08a;--color-selection:#244c31;--color-selection-text:#f2fff5;--shadow-raised:0 1px 0 #00000059, 0 20px 56px #00000042}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;text-size-adjust:100%;min-width:20rem}body{background:var(--color-bg);min-height:100vh;color:var(--color-text-body);font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-base);text-rendering:optimizelegibility;transition:color var(--motion-base) var(--ease-standard), background-color var(--motion-base) var(--ease-standard);flex-direction:column;margin:0;display:flex}::selection{background:var(--color-selection);color:var(--color-selection-text)}img,svg{max-width:100%;height:auto}button,input,textarea,select{font:inherit}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{top:var(--space-3);left:var(--space-3);z-index:100;padding:var(--space-2) var(--space-4);transform:translateY(calc(-100% - var(--space-6)));border:var(--border-width-strong) solid var(--color-focus);border-radius:var(--radius-sm);background:var(--color-bg-raised);color:var(--color-text);font-family:var(--font-mono);font-size:var(--text-sm);box-shadow:var(--shadow-raised);transition:transform var(--motion-base) var(--ease-standard);font-weight:600;text-decoration:none;position:fixed}.skip-link:focus{transform:translateY(0)}:where(a,button,input,textarea,select,[tabindex]):focus-visible{outline:var(--focus-width) solid var(--color-focus);outline-offset:var(--focus-offset)}a{color:var(--color-accent);text-underline-offset:.18em;transition:color var(--motion-fast) var(--ease-standard), text-decoration-color var(--motion-fast) var(--ease-standard);text-decoration-thickness:.08em}a:hover{color:var(--color-accent-strong)}.site-header{z-index:20;border-bottom:var(--border-width) solid var(--color-border);background:var(--color-bg-raised);position:sticky;top:0}.site-nav{width:min(100%, var(--width-shell));min-height:4.5rem;padding:var(--space-4) var(--space-6);justify-content:space-between;align-items:center;gap:var(--space-6);margin:0 auto;display:flex}.site-brand{align-items:center;gap:var(--space-3);color:var(--color-text);font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:-.02em;font-weight:650;line-height:1;text-decoration:none;display:inline-flex}.site-brand:before{background:var(--color-accent-vivid);content:"";border-radius:1px;flex:none;width:.38rem;height:.38rem}.site-brand:hover{color:var(--color-accent)}.site-nav-actions{align-items:center;gap:var(--space-5);display:flex}.site-nav-link{padding:var(--space-2) 0;color:var(--color-text-muted);font-size:var(--text-sm);font-weight:560;line-height:1;text-decoration:none;position:relative}.site-nav-link:after{transform-origin:100%;background:var(--color-accent);content:"";height:1px;transition:transform var(--motion-base) var(--ease-standard);position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.site-nav-link:hover,.site-nav-link[aria-current]{color:var(--color-text)}.site-nav-link:hover:after,.site-nav-link[aria-current]:after{transform-origin:0;transform:scaleX(1)}.theme-toggle{align-items:center;gap:var(--space-2);min-height:2.25rem;padding:var(--space-2) var(--space-3);border:var(--border-width) solid var(--color-border-strong);border-radius:var(--radius-full);color:var(--color-text);cursor:pointer;font-family:var(--font-mono);font-size:var(--text-xs);transition:background-color var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard);background:0 0;font-weight:600;line-height:1;display:none}html[data-theme-ready] .theme-toggle{display:inline-flex}.theme-toggle:hover{border-color:var(--color-accent);background:var(--color-bg-hover);color:var(--color-accent-strong)}.theme-toggle svg{flex:none;width:.95rem;height:.95rem}main{width:min(100%, var(--width-shell));padding:var(--space-16) var(--space-6) var(--space-24);flex:1;margin:0 auto}.site-footer{border-top:var(--border-width) solid var(--color-border);background:var(--color-bg-raised)}.site-footer-inner{width:min(100%, var(--width-shell));padding:var(--space-8) var(--space-6);justify-content:space-between;align-items:center;gap:var(--space-6);color:var(--color-text-muted);font-size:var(--text-sm);margin:0 auto;display:flex}.site-footer p{margin:0}.site-footer-nav{gap:var(--space-5);display:flex}.site-footer-nav a{color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;font-weight:600;text-decoration:none}.site-footer-nav a:hover{color:var(--color-accent)}.eyebrow{margin:0 0 var(--space-5);color:var(--color-accent);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-widest);text-transform:uppercase;font-weight:650;line-height:1.4}.hero{max-width:56rem;padding:var(--space-8) 0 var(--space-20)}.hero h1{max-width:15ch;color:var(--color-text);font-size:var(--text-hero);letter-spacing:var(--tracking-tight);font-weight:520;line-height:var(--leading-tight);text-wrap:balance;margin:0}.section-header{margin-bottom:var(--space-6);justify-content:space-between;align-items:end;gap:var(--space-6);display:flex}.section-header .eyebrow{margin-bottom:var(--space-2)}.section-header h2{color:var(--color-text);font-size:var(--text-xl);letter-spacing:var(--tracking-tight);font-weight:560;line-height:var(--leading-snug);margin:0}.post-list-items{border-top:var(--border-width) solid var(--color-border);margin:0;padding:0;list-style:none}.post-list-item{border-bottom:var(--border-width) solid var(--color-border)}.post-list-entry{gap:var(--space-10);padding:var(--space-8) 0;grid-template-columns:8rem minmax(0,1fr);display:grid}.post-list-meta{margin:var(--space-1) 0 0;color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums;letter-spacing:var(--tracking-wide);line-height:var(--leading-snug);text-transform:uppercase}.post-list-title{font-size:var(--text-lg);letter-spacing:-.02em;font-weight:590;line-height:var(--leading-snug);margin:0}.post-list-title a{color:var(--color-text);text-decoration:none}.post-list-title a:hover{color:var(--color-accent)}.post-list-description{max-width:42rem;margin:var(--space-3) 0 0;color:var(--color-text-muted);line-height:var(--leading-base)}.tag-list{gap:var(--space-2) var(--space-4);margin:var(--space-4) 0 0;flex-wrap:wrap;padding:0;list-style:none;display:flex}.tag-list li{margin:0}.tag-link{color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.02em;font-weight:560;text-decoration:none}.tag-link:before{color:var(--color-accent);content:"#"}.tag-link:hover{color:var(--color-text)}.page-header{max-width:var(--width-content);margin-bottom:var(--space-16)}.page-header h1,.post-header h1,.not-found h1{color:var(--color-text);font-size:var(--text-2xl);letter-spacing:var(--tracking-tight);font-weight:540;line-height:var(--leading-tight);text-wrap:balance;margin:0}.page-header>p:not(.eyebrow){max-width:38rem;margin:var(--space-4) 0 0;color:var(--color-text-muted);font-size:var(--text-md)}.post{max-width:var(--width-prose);margin:0 auto}.post-header{margin-bottom:var(--space-12);padding-bottom:var(--space-8);border-bottom:var(--border-width) solid var(--color-border)}.post-header h1{font-size:var(--text-2xl)}.post-meta{margin:var(--space-5) 0 0;color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums;letter-spacing:var(--tracking-wide);line-height:var(--leading-base);text-transform:uppercase}.post-content{color:var(--color-text-body);font-size:var(--text-md);line-height:var(--leading-prose)}.post-content>:first-child{margin-top:0}.post-content>:last-child{margin-bottom:0}.post-content :where(h2,h3,h4){color:var(--color-text);letter-spacing:-.025em;font-weight:610;line-height:var(--leading-snug);text-wrap:balance;scroll-margin-top:6rem}.post-content h2{margin:var(--space-16) 0 var(--space-5);font-size:var(--text-xl)}.post-content h3{margin:var(--space-12) 0 var(--space-4);font-size:var(--text-lg)}.post-content h4{margin:var(--space-10) 0 var(--space-3);font-size:var(--text-md)}.post-content :where(p,ul,ol,blockquote,pre,table,figure,hr){margin-top:var(--space-6);margin-bottom:var(--space-6)}.post-content :where(ul,ol){padding-left:var(--space-6)}.post-content li+li{margin-top:var(--space-2)}.post-content li::marker{color:var(--color-accent);font-family:var(--font-mono)}.post-content a{font-weight:520}.post-content :not(pre)>code{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-inset);color:var(--color-text);font-family:var(--font-mono);padding:.12em .34em;font-size:.88em}.post-content pre{max-width:100%;padding:var(--space-5);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-code);color:var(--color-text);font-family:var(--font-mono);font-size:var(--text-sm);box-shadow:inset 0 1px 0 var(--color-bg-hover);line-height:1.65;overflow-x:auto}.post-content pre code{font:inherit;background:0 0;border:0;padding:0}.post-content blockquote{padding:var(--space-2) 0 var(--space-2) var(--space-6);border-left:var(--border-width-strong) solid var(--color-accent);color:var(--color-text-muted);font-size:var(--text-lg);line-height:var(--leading-base);margin-left:0;margin-right:0}.post-content blockquote>:first-child{margin-top:0}.post-content blockquote>:last-child{margin-bottom:0}.post-content hr{height:var(--border-width);background:var(--color-border);border:0}.post-content img{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);display:block}.post-content figure{margin-left:0;margin-right:0}.post-content figcaption{margin-top:var(--space-3);color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--leading-base)}.post-content table{border-collapse:collapse;width:100%;font-size:var(--text-base)}.post-content :where(th,td){padding:var(--space-3) var(--space-4);border-bottom:var(--border-width) solid var(--color-border);text-align:left;vertical-align:top}.post-content th{color:var(--color-text);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase}.tag-index-list{border-top:var(--border-width) solid var(--color-border);margin:0;padding:0;list-style:none}.tag-index-item{justify-content:space-between;align-items:baseline;gap:var(--space-6);padding:var(--space-5) 0;border-bottom:var(--border-width) solid var(--color-border);display:flex}.tag-index-item>a{color:var(--color-text);font-size:var(--text-lg);letter-spacing:-.02em;font-weight:570;line-height:var(--leading-snug);overflow-wrap:anywhere;text-decoration:none}.tag-index-item>a:before{color:var(--color-accent);font-family:var(--font-mono);content:"#";margin-right:.08em}.tag-index-item>a:hover{color:var(--color-accent)}.tag-count{color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums;letter-spacing:var(--tracking-wide);text-transform:uppercase;flex:none}.tag-archive .post-list{margin-top:var(--space-16)}.not-found{max-width:var(--width-content);padding:var(--space-12) 0}.not-found p:not(.eyebrow){max-width:36rem;margin:var(--space-5) 0 0;color:var(--color-text-muted);font-size:var(--text-md)}.not-found a{color:var(--color-text);font-weight:570}@media (width<=48rem){main{padding-top:var(--space-12);padding-bottom:var(--space-20)}.hero{padding-top:var(--space-4);padding-bottom:var(--space-16)}.post-list-entry{gap:var(--space-3);padding:var(--space-6) 0;grid-template-columns:1fr}.post-list-meta{margin-top:var(--space-1);grid-row:2}.post-list-body{grid-row:1}.post-list-body .tag-list{margin-top:var(--space-3)}}@media (width<=38rem){.site-nav{padding-right:var(--space-4);padding-left:var(--space-4);gap:var(--space-4)}.site-nav-actions{gap:var(--space-4)}.theme-toggle{justify-content:center;width:2.25rem;padding-left:0;padding-right:0}.theme-toggle-label{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}main,.site-footer-inner{padding-right:var(--space-4);padding-left:var(--space-4)}.site-footer-inner{align-items:flex-start;gap:var(--space-4);flex-direction:column}.section-header{align-items:flex-start;gap:var(--space-2);flex-direction:column}.post-content table{white-space:nowrap;max-width:100%;display:block;overflow-x:auto}}@media (width<=23rem){.site-brand{font-size:var(--text-xs)}.site-nav-actions{gap:var(--space-3)}.site-nav-link{font-size:var(--text-xs)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}@media (forced-colors:active){.site-brand:before,.site-nav-link:after{background:highlight}.site-header,.site-footer,.theme-toggle,.post-list-items,.post-list-item,.post-header,.post-content :where(code,pre,img,th,td),.tag-index-list,.tag-index-item{border-color:canvastext}.site-nav-link[aria-current]{text-decoration:underline}}@media print{:root{color-scheme:light}body{color:canvastext;background:canvas}.site-header,.site-footer,.skip-link,.theme-toggle,.tag-list{display:none!important}main{width:100%;max-width:none;padding:0}.post{max-width:none}a{color:inherit}}
