*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #fdf8f2;--surface: #f5ede0;--border: #e8d9c8;--text: #4d4d4d;--muted: #7a6a5e;--accent: #8b3a2a;--link: #8b3a2a;--link-vis: #6a2d20;--font-sans: "Crimson Pro", Georgia, serif;--font-head: "Outfit", system-ui, sans-serif;--font-mono: "Menlo", "Consolas", monospace;--measure: 65ch;--space-xs: .5rem;--space-s: 1rem;--space-m: 1.75rem;--space-l: 3rem;--space-xl: 5rem}html{font-size:19px;background:var(--bg);color:var(--text)}body{font-family:var(--font-sans);line-height:1.75;min-height:100dvh;display:flex;flex-direction:column}.wrapper{width:100%;max-width:calc(var(--measure) + 4rem);margin:0 auto;padding:0 var(--space-m)}header{background:var(--surface);border-bottom:1px solid var(--border);padding:var(--space-m) 0}.header-inner{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-m);flex-wrap:wrap}.site-name{font-family:var(--font-head);font-size:1rem;font-weight:500;letter-spacing:.02em}.site-name a{text-decoration:none;color:var(--text)}nav{display:flex;gap:var(--space-m)}nav a{font-family:var(--font-head);font-size:.85rem;font-weight:400;color:var(--muted);text-decoration:none;letter-spacing:.03em;text-transform:uppercase}nav a:hover,nav a[aria-current=page]{color:var(--accent)}main{flex:1;padding:var(--space-xl) 0}footer{background:var(--surface);border-top:1px solid var(--border);padding:var(--space-m) 0;font-size:.85rem;font-family:var(--font-head);color:var(--muted)}h1,h2,h3,h4,h5,h6{font-family:var(--font-head)!important;line-height:1.25;font-weight:400}h1{font-size:2rem;font-weight:300}h2{font-size:1.3rem;font-weight:500;margin-top:var(--space-l);margin-bottom:var(--space-s)}h3{font-size:1.1rem;font-weight:500}p{margin-bottom:var(--space-s);max-width:var(--measure)}p:last-child{margin-bottom:0}a{color:var(--link)}a:visited{color:var(--link-vis)}.prose{max-width:var(--measure)}.prose p{margin-bottom:var(--space-s)}.prose h1,.prose h2,.prose h3{font-family:var(--font-head)}.prose h2{margin-top:var(--space-l)}.prose h3{margin-top:var(--space-m)}.prose ul,.prose ol{margin:var(--space-s) 0 var(--space-s) 1.5rem}.prose li{margin-bottom:var(--space-xs)}.prose blockquote{border-left:3px solid var(--accent);padding-left:var(--space-m);color:var(--muted);margin:var(--space-m) 0}.prose code{font-family:var(--font-mono);font-size:.85em;background:var(--surface);padding:.1em .3em;border-radius:3px}.prose pre{background:var(--surface);border:1px solid var(--border);padding:var(--space-m);border-radius:4px;overflow-x:auto;margin:var(--space-m) 0}.prose pre code{background:none;padding:0}.post-list{list-style:none;margin-top:var(--space-l)}.post-list li{display:flex;gap:var(--space-m);padding:var(--space-m) 0;border-bottom:1px solid var(--border);align-items:baseline;flex-wrap:wrap}.post-list li:first-child{border-top:1px solid var(--border)}.post-date{font-size:.85rem;color:var(--muted);white-space:nowrap;min-width:6.5rem;flex-shrink:0;padding-top:.15rem}.post-title{font-size:1rem;text-decoration:none;color:var(--text)}.post-title:hover{color:var(--accent)}.post-desc{font-size:.9rem;color:var(--muted);margin-top:var(--space-xs)}.page-header{margin-bottom:var(--space-l)}.page-header .tagline{font-size:1rem;color:var(--muted);margin-top:var(--space-xs)}.article-header{margin-bottom:var(--space-l);border-bottom:1px solid var(--border);padding-bottom:var(--space-m)}.article-header time{display:block;font-size:.85rem;color:var(--muted);margin-top:var(--space-xs)}.back-link{display:inline-block;font-size:.85rem;color:var(--muted);text-decoration:none;margin-bottom:var(--space-l)}.back-link:hover{color:var(--text)}.home-intro{max-width:var(--measure);margin-bottom:var(--space-xl)}.home-intro h1{margin-bottom:var(--space-xs)}.home-intro .tagline{font-size:1rem;color:var(--muted);margin-bottom:var(--space-m)}.home-intro p{color:var(--text)}.section-label{font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:var(--space-s)}@media(max-width:600px){html{font-size:16px}.post-list li{flex-direction:column;gap:var(--space-xs)}.post-date{min-width:auto}}
