:root{--bg:#fff;--bg-subtle:#f5f7fa;--text:#1a1d21;--text-muted:#5b6470;--border:#e2e6eb;--accent:#1d4ed8;--accent-soft:#e8efff;--code-bg:#f5f7fa;--radius:10px;--wrap:72rem;--measure:44rem;--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, monospace;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#111418;--bg-subtle:#181c22;--text:#e6e9ed;--text-muted:#9aa4b1;--border:#2a3039;--accent:#7aa2ff;--accent-soft:#1b2540;--code-bg:#0d1117;color-scheme:dark}}:root[data-theme=dark]{--bg:#111418;--bg-subtle:#181c22;--text:#e6e9ed;--text-muted:#9aa4b1;--border:#2a3039;--accent:#7aa2ff;--accent-soft:#1b2540;--code-bg:#0d1117;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .astro-code,:root:not([data-theme=light]) .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}}:root[data-theme=dark] .astro-code,:root[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}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);text-rendering:optimizelegibility;margin:0;font-size:1.0625rem;line-height:1.7}a{color:var(--accent);text-underline-offset:.15em}img{max-width:100%;height:auto}picture{display:contents}.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:1rem}.skip-link{position:absolute;left:-999px}.skip-link:focus{z-index:10;background:var(--bg);padding:.5rem 1rem;top:1rem;left:1rem}.site-header{border-bottom:1px solid var(--border);background:var(--bg)}.header-inner{flex-wrap:wrap;align-items:center;gap:1.5rem;min-height:4rem;display:flex}.brand{color:var(--text);align-items:center;gap:.5rem;font-size:1.15rem;font-weight:700;text-decoration:none;display:flex}.brand img{border-radius:6px}.site-header nav{flex:1;min-width:0}.site-header nav ul{scrollbar-width:none;gap:1.25rem;margin:0;padding:0;list-style:none;display:flex;overflow-x:auto}.site-header nav a{color:var(--text-muted);white-space:nowrap;font-size:.95rem;text-decoration:none}.site-header nav a:hover,.site-header nav a[aria-current=page]{color:var(--text)}.header-actions{gap:.25rem;margin-left:auto;display:flex}.icon-button{width:2.5rem;height:2.5rem;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;display:inline-grid}.icon-button:hover{background:var(--bg-subtle);color:var(--text)}#theme-toggle .moon,:root[data-theme=dark] #theme-toggle .sun{display:none}:root[data-theme=dark] #theme-toggle .moon{display:block}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) #theme-toggle .sun{display:none}:root:not([data-theme=light]) #theme-toggle .moon{display:block}}@media (width<=720px){.header-inner{gap:.25rem 1rem;padding-block:.5rem}.site-header nav{flex-basis:100%;order:3}}.site-footer{border-top:1px solid var(--border);color:var(--text-muted);margin-top:5rem;font-size:.95rem}.footer-inner{padding-block:2rem}.footer-links{flex-wrap:wrap;gap:1rem;display:flex}.page-head{max-width:var(--measure);margin:3rem auto 2rem;padding-inline:1rem}.page-head h1{margin:0 0 .5rem;font-size:clamp(1.8rem,4vw,2.4rem);line-height:1.2}.page-head p{color:var(--text-muted);margin:0}.post-list{max-width:var(--measure);margin:0 auto;padding:0 1rem;list-style:none}.post-list li{border-bottom:1px solid var(--border);padding-block:1.1rem}.post-list a.title{color:var(--text);font-size:1.1rem;font-weight:650;text-decoration:none}.post-list a.title:hover{color:var(--accent)}.post-list .meta{color:var(--text-muted);margin:.15rem 0 .3rem;font-size:.875rem}.post-list .excerpt{color:var(--text-muted);margin:0;font-size:.95rem}.year-heading{max-width:var(--measure);margin:2.5rem auto 0;padding-inline:1rem;font-size:1.25rem}.series-grid{max-width:var(--measure);grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:1rem;margin:0 auto 2rem;padding:0 1rem;display:grid}.series-card{border:1px solid var(--border);border-radius:var(--radius);color:var(--text);background:var(--bg-subtle);padding:1rem 1.1rem;text-decoration:none;display:block}.series-card:hover{border-color:var(--accent)}.series-card strong{display:block}.series-card span{color:var(--text-muted);font-size:.875rem}.section-title{max-width:var(--measure);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin:2.5rem auto .5rem;padding-inline:1rem;font-size:.8rem}.more-link{max-width:var(--measure);margin:1.5rem auto 0;padding-inline:1rem}.post{max-width:var(--measure);margin:0 auto;padding:0 1rem}.post-header{margin:3rem 0 1.5rem}.post-header .series-link{background:var(--accent-soft);border-radius:999px;margin-bottom:.75rem;padding:.15rem .6rem;font-size:.85rem;font-weight:600;text-decoration:none;display:inline-block}.post-header h1{letter-spacing:-.01em;margin:0;font-size:clamp(1.9rem,4.5vw,2.6rem);line-height:1.15}.post-header .subtitle{color:var(--text-muted);margin:.5rem 0 0;font-size:1.2rem}.post-header .meta{color:var(--text-muted);margin-top:1rem;font-size:.925rem}.post-header .meta span+span:before{content:" · "}.cover{margin:0 0 2rem}.cover img{border-radius:var(--radius);aspect-ratio:1.9;object-fit:cover;width:100%;display:block}.cover figcaption{color:var(--text-muted);margin-top:.4rem;font-size:.8rem}.prose h2{margin:2.5rem 0 .75rem;font-size:1.55rem;line-height:1.3}.prose h3{margin:2rem 0 .5rem;font-size:1.25rem}.prose h2,.prose h3,.prose h4{scroll-margin-top:1rem}.prose img{border-radius:6px;margin:1.5rem auto;display:block}.prose blockquote{border-left:3px solid var(--border);color:var(--text-muted);margin:1.5rem 0;padding:.25rem 1.25rem}.prose hr{border:0;border-top:1px solid var(--border);margin:2.5rem 0}.prose table{border-collapse:collapse;margin:1.5rem 0;font-size:.925rem;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--border);text-align:left;padding:.4rem .75rem}.prose th{background:var(--bg-subtle)}.prose :not(pre)>code{font-family:var(--font-mono);background:var(--code-bg);border:1px solid var(--border);overflow-wrap:anywhere;border-radius:5px;padding:.1em .35em;font-size:.9em}.prose pre{font-family:var(--font-mono);border-radius:var(--radius);border:1px solid var(--border);margin:1.5rem 0;padding:1rem 1.1rem;font-size:.875rem;line-height:1.6;overflow-x:auto}.prose pre code{font-family:inherit}.tag-list{flex-wrap:wrap;gap:.5rem;margin:2.5rem 0 0;padding:0;list-style:none;display:flex}.tag-list a{border:1px solid var(--border);color:var(--text-muted);border-radius:999px;padding:.2rem .65rem;font-size:.85rem;text-decoration:none;display:inline-block}.tag-list a:hover{color:var(--accent);border-color:var(--accent)}.series-nav{grid-template-columns:1fr 1fr;gap:1rem;margin-top:2.5rem;display:grid}.series-nav a{border:1px solid var(--border);border-radius:var(--radius);color:var(--text);padding:.9rem 1rem;text-decoration:none;display:block}.series-nav a:hover{border-color:var(--accent)}.series-nav small{color:var(--text-muted);display:block}.series-nav .older{text-align:right;grid-column:2}@media (width<=560px){.series-nav{grid-template-columns:1fr}.series-nav .older{grid-column:1}}.related{margin-top:3rem}.related h2{margin-bottom:.25rem;font-size:1.2rem}.related .post-list{padding:0}.related .post-list li{padding-block:.75rem}.related .post-list a.title{font-size:1rem}.author-box{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-subtle);align-items:center;gap:1rem;margin-top:3rem;padding:1.25rem;display:flex}.author-box img{border-radius:50%;flex-shrink:0}.author-box p{margin:.15rem 0;font-size:.95rem}.author-box .bio{color:var(--text-muted)}.comments{margin-top:3rem}.comments h2{font-size:1.2rem}.comment{border-top:1px solid var(--border);padding-block:1rem;font-size:.95rem}.comment .who{color:var(--text-muted);font-size:.85rem}.comment .replies{margin-left:1.25rem}
