@layer reset{*,:before,:after{box-sizing:border-box}html{text-size-adjust:100%}body,h1,h2,h3,p,ul,ol{margin:0}img,svg{max-width:100%;display:block}button,input{font:inherit}}@layer tokens{:root{color-scheme:light dark;--font-sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--color-bg:#fbfaf7;--color-surface:#fff;--color-surface-muted:#f2f0e9;--color-text:#20201d;--color-text-muted:#66635d;--color-border:#d7d3c8;--color-accent:#175c4c;--color-accent-strong:#0e4538;--color-focus:#0969da;--color-code:#f5f2eb;--color-note:#2167ae;--color-warning:#946200;--color-tip:#19734c;--color-error:#a33a33;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4.5rem;--radius-sm:.25rem;--radius-md:.5rem;--content-wide:76rem;--content-reading:70ch;--border:1px solid var(--color-border)}:root[data-theme=dark]{--color-bg:#151614;--color-surface:#1d1f1c;--color-surface-muted:#262824;--color-text:#edece7;--color-text-muted:#b7b5ad;--color-border:#41443e;--color-accent:#75cdb8;--color-accent-strong:#9ce1d0;--color-focus:#79b8ff;--color-code:#20231f;--color-note:#78b7f1;--color-warning:#e3b654;--color-tip:#72cda2;--color-error:#ee8b84}@media (prefers-color-scheme:dark){:root:not([data-theme]){--color-bg:#151614;--color-surface:#1d1f1c;--color-surface-muted:#262824;--color-text:#edece7;--color-text-muted:#b7b5ad;--color-border:#41443e;--color-accent:#75cdb8;--color-accent-strong:#9ce1d0;--color-focus:#79b8ff;--color-code:#20231f}}}@layer base{html{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);scroll-behavior:smooth;line-height:1.65}body{background:var(--color-bg);min-width:20rem;min-height:100vh}a{color:var(--color-accent);text-underline-offset:.18em;text-decoration-thickness:.08em}a:hover{color:var(--color-accent-strong)}:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}h1,h2,h3{text-wrap:balance;line-height:1.18}h1{letter-spacing:-.035em;font-size:clamp(2rem,8vw,4rem)}h2{letter-spacing:-.02em;font-size:clamp(1.45rem,5vw,2.25rem)}h3{font-size:clamp(1.15rem,4vw,1.45rem)}}@layer layout{.container{width:min(100% - 2rem, var(--content-wide));margin-inline:auto}.reading-width{width:min(100%, var(--content-reading))}.site-main{min-height:65vh;padding-block:var(--space-7) var(--space-8)}.stack{gap:var(--space-5);display:grid}.cluster{gap:var(--space-3) var(--space-4);flex-wrap:wrap;align-items:center;display:flex}.listing{gap:var(--space-4);padding:0;list-style:none;display:grid}.article-grid{gap:var(--space-7);grid-template-areas:"toc""body";display:grid}.article-body{grid-area:body}@media (width>=68rem){.article-grid{grid-template-columns:minmax(0, var(--content-reading)) 16rem;grid-template-areas:"body toc";align-items:start}}}@layer components{.skip-link{inset:var(--space-3) auto auto var(--space-3);z-index:10;padding:var(--space-2) var(--space-4);background:var(--color-text);color:var(--color-bg);position:fixed;transform:translateY(-200%)}.skip-link:focus{transform:none}.site-header{border-bottom:var(--border);background:var(--color-bg)}.site-header__inner{justify-content:space-between;align-items:center;gap:var(--space-4);min-height:4.5rem;display:flex}.site-brand{color:var(--color-text);letter-spacing:-.02em;font-weight:750;text-decoration:none}.main-nav{margin-left:auto}.desktop-nav{margin-left:auto;display:none}.desktop-nav ul{gap:var(--space-2);padding:0;list-style:none;display:flex}.desktop-nav a{min-height:2.75rem;padding-inline:var(--space-3);align-items:center;display:grid}.main-nav summary{min-height:2.75rem;padding:var(--space-2) var(--space-3);cursor:pointer}.main-nav ul{right:var(--space-4);gap:var(--space-2);min-width:13rem;padding:var(--space-4);border:var(--border);border-radius:var(--radius-md);background:var(--color-surface);list-style:none;display:grid;position:absolute}.main-nav a{min-height:2.75rem;padding:var(--space-2);display:block}.theme-toggle{border:var(--border);border-radius:var(--radius-sm);background:var(--color-surface);min-width:2.75rem;min-height:2.75rem;color:var(--color-text);cursor:pointer;display:none}.js .theme-toggle{display:block}.site-footer{padding-block:var(--space-6);border-top:var(--border);color:var(--color-text-muted)}.eyebrow,.meta{color:var(--color-text-muted);font-size:.9rem}.hero{gap:var(--space-5);max-width:58rem;padding-block:var(--space-5) var(--space-7);display:grid}.hero>p{max-width:58ch;color:var(--color-text-muted);font-size:clamp(1.1rem,3vw,1.35rem)}.section-heading{margin-top:var(--space-7);margin-bottom:var(--space-5)}.card{padding:var(--space-5);border:var(--border);border-radius:var(--radius-md);background:var(--color-surface)}.card h2,.card h3{font-size:1.25rem}.card__link{color:var(--color-text)}.tag{padding:var(--space-1) var(--space-2);border:var(--border);border-radius:999px;font-size:.875rem;text-decoration:none;display:inline-flex}.tag-list{gap:var(--space-3) var(--space-4);flex-wrap:wrap;padding:0;list-style:none;display:flex}.breadcrumbs ol{gap:var(--space-2);color:var(--color-text-muted);flex-wrap:wrap;padding:0;font-size:.875rem;list-style:none;display:flex}.breadcrumbs li:not(:last-child):after{margin-left:var(--space-2);content:"/"}.article-header{gap:var(--space-4);margin-block:var(--space-5) var(--space-7);display:grid}.article-toc{padding:var(--space-4);border:var(--border);border-radius:var(--radius-md);background:var(--color-surface);grid-area:toc}.article-toc ol{gap:var(--space-2);margin-top:var(--space-3);padding-left:var(--space-5);display:grid}.article-toc__item--nested{margin-left:var(--space-4)}@media (width>=68rem){.desktop-nav{display:block}.mobile-nav{display:none}.article-toc{top:var(--space-5);position:sticky}}}@layer prose{.prose{max-width:var(--content-reading);font-size:clamp(1.0625rem,2vw,1.125rem)}.prose>*+*{margin-top:1.4em}.prose h2,.prose h3{scroll-margin-top:var(--space-5)}.prose h2{margin-top:2.2em}.prose h3{margin-top:1.8em}.prose ul,.prose ol{padding-left:1.4em}.prose li+li{margin-top:.45em}.prose blockquote{padding-left:var(--space-4);border-left:.25rem solid var(--color-border);color:var(--color-text-muted)}.prose :not(pre)>code{border-radius:var(--radius-sm);background:var(--color-code);font-family:var(--font-mono);padding:.12em .32em;font-size:.9em}.prose pre{max-width:100%;padding:var(--space-5);border:var(--border);border-radius:var(--radius-md);font-family:var(--font-mono);font-size:.9rem;line-height:1.6;overflow-x:auto}html[data-theme=dark] .astro-code,html[data-theme=dark] .astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;text-decoration:var(--shiki-dark-text-decoration)!important}@media (prefers-color-scheme:dark){html:not([data-theme]) .astro-code,html:not([data-theme]) .astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important}}.prose table{border-collapse:collapse;width:max-content;max-width:100%;font-size:.95rem;display:block;overflow-x:auto}.prose th,.prose td{padding:var(--space-2) var(--space-3);border:var(--border);text-align:left}.prose th{background:var(--color-surface-muted)}.callout{padding:var(--space-4) var(--space-5);border:var(--border);border-left:.3rem solid var(--callout-color);border-radius:var(--radius-md);background:var(--color-surface)}.callout[data-type=note]{--callout-color:var(--color-note)}.callout[data-type=warning]{--callout-color:var(--color-warning)}.callout[data-type=tip]{--callout-color:var(--color-tip)}.callout[data-type=error]{--callout-color:var(--color-error)}.callout__title{color:var(--callout-color);font-weight:750}.callout__body>*+*{margin-top:var(--space-2)}.sources{margin-top:var(--space-8);padding-top:var(--space-6);border-top:var(--border)}.sources ol{gap:var(--space-3);margin-top:var(--space-4);display:grid}.source-meta{color:var(--color-text-muted);font-size:.9rem}.source-meta span+span:before{content:" · "}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
