:root,[data-theme=light]{color-scheme:light;--bg:#fcfcfb;--text:#1b1b1b;--muted:#667074;--line:#e7e7e4;--surface:#f4f4f1;--link:#1b1b1b}[data-theme=dark]{color-scheme:dark;--bg:#121212;--text:#efefec;--muted:#a3a39c;--line:#2c2c2a;--surface:#1c1c1a;--link:#efefec}:root{font-family:"Source Sans 3",ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:var(--bg);color:var(--text);transition:background-color .2s,color .2s}body{margin:0;font-size:18px;line-height:1.7}a{color:var(--link);text-underline-offset:.2em}.shell{width:min(1180px,100% - 48px);margin:0 auto}.site-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:28px;min-height:96px;display:flex}.identity{letter-spacing:-.02em;font-size:1.05rem;font-weight:700;text-decoration:none}nav{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.nav-link,.language,.theme-toggle{color:var(--muted);cursor:pointer;background:0 0;font-family:inherit;font-size:.92rem;text-decoration:none}.nav-link:hover,.nav-link.active,.language:hover,.theme-toggle:hover{color:var(--text)}.language,.theme-toggle{border:1px solid var(--line);border-radius:4px;padding:3px 10px;line-height:1.35}.theme-toggle{min-width:2.6rem}main{padding:72px 0 110px}.hero{max-width:920px;padding:36px 0 80px}.eyebrow{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin:0 0 18px;font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8rem}h1,h2{letter-spacing:-.03em;font-weight:650;line-height:1.12}h1{max-width:18ch;margin:0;font-size:clamp(2.6rem,6.5vw,5rem)}.lead{max-width:760px;color:var(--muted);margin-top:28px;font-size:clamp(1.15rem,2vw,1.35rem);line-height:1.55}.grid{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:0;display:grid}.grid article{padding:36px 32px 40px 0}.grid article+article{border-left:1px solid var(--line);padding-left:32px}.grid h2,.list h2{margin-top:0;font-size:1.4rem}.grid p,.list p,.muted{color:var(--muted)}.note{max-width:720px;margin-top:88px;font-size:1.45rem;line-height:1.5}.section-title{margin-bottom:56px}.section-title h1{max-width:20ch;font-size:clamp(2.3rem,5vw,4rem)}.post{width:100%}.post-header{max-width:920px;margin-bottom:56px}.post-header h1{max-width:28ch;font-size:clamp(2.1rem,4.8vw,3.4rem)}.post-header .eyebrow a{color:inherit;text-decoration:none}.post-header .eyebrow a:hover{color:var(--text)}.post-header .lead{margin-top:22px;font-size:1.2rem}.prose{max-width:860px;font-size:1.05rem;line-height:1.75}.prose>:first-child{margin-top:0}.prose p,.prose ul,.prose ol,.prose pre,.prose blockquote{margin:0 0 1.35em}.prose h2{margin:2.6em 0 .8em;font-size:1.5rem}.prose h3{margin:2.1em 0 .6em;font-size:1.18rem}.prose strong{font-weight:650}.prose code{background:var(--surface);border-radius:3px;padding:.12em .35em;font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.88em}.prose pre{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:1.15rem 1.25rem;font-size:.9rem;line-height:1.6;overflow-x:auto}.prose pre code{background:0 0;border-radius:0;padding:0}.prose blockquote{border-left:2px solid var(--line);color:var(--muted);margin-left:0;padding:.2em 0 .2em 1.15rem}.list{border-top:1px solid var(--line)}.list-item{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;align-items:start;gap:40px;padding:34px 0;display:grid}.list-item p{max-width:70ch;margin-bottom:0}footer{border-top:1px solid var(--line);color:var(--muted);padding:32px 0 48px;font-size:.9rem}footer p{margin:0}.footer-meta{max-width:68ch;margin-top:12px;font-size:.82rem;line-height:1.55}.footer-meta a{color:inherit}@media (width<=760px){.shell{width:calc(100% - 32px)}.site-header{flex-direction:column;align-items:flex-start;padding:24px 0}nav{gap:12px}main{padding:40px 0 72px}.hero{padding-top:12px}.grid{grid-template-columns:1fr}.grid article,.grid article+article{border-left:0;border-bottom:1px solid var(--line);padding:28px 0}.grid article:last-child{border-bottom:0}.list-item{grid-template-columns:1fr;gap:12px}.prose{max-width:none}}
