*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--font-serif:"EB Garamond",Georgia,serif;--font-mono:"DM Mono","Courier New",monospace;--bg:#fff;--fg:#0a0a0a;--fg-muted:#555;--fg-subtle:#767676;--border:#e5e5e5;--border-hover:#bbb;--max-w:600px}.dark{--bg:#1c1c1d;--fg:#ededed;--fg-muted:#aaa;--fg-subtle:#666;--border:#2a2a2a;--border-hover:#444;background:var(--bg);color:var(--fg);min-height:100vh}.theme-toggle{align-items:center;background:none;border:none;color:var(--fg-subtle);cursor:pointer;display:flex;padding:0;transition:color .15s}.theme-toggle:hover{color:#e91e8c}html{background:var(--bg);color:var(--fg);font-family:var(--font-serif);font-size:18px;line-height:1.6;-webkit-font-smoothing:antialiased}body{display:flex;flex-direction:column;min-height:100vh}a{color:inherit;text-decoration:none}img{display:block;height:auto;max-width:100%}.container{max-width:var(--max-w)}.container,.container-wide{margin:0 auto;padding:0 1.5rem;width:100%}.container-wide{max-width:var(--max-w-wide)}nav{border-bottom:1px solid var(--border);padding:1.25rem 0}.nav-inner{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:600px;padding:0 1.5rem}.nav-logo{color:var(--fg);font-family:var(--font-mono);font-size:.85rem;font-weight:400;letter-spacing:.02em}.nav-logo strong{font-weight:700}.nav-links{display:flex;gap:2rem;list-style:none}.nav-links a{color:var(--fg-muted);font-family:var(--font-mono);font-size:.78rem;letter-spacing:.05em;text-transform:uppercase;transition:color .15s}.nav-links a.active,.nav-links a:hover{color:var(--fg)}footer{border-top:1px solid var(--border);margin-top:auto;padding:2rem 0}.footer-inner{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin:0 auto;max-width:600px;padding:0 1.5rem}.footer-copy{color:var(--fg-subtle);font-family:var(--font-mono);font-size:.75rem}.footer-links{display:flex;gap:1.5rem}.footer-links a{color:var(--fg-subtle);font-family:var(--font-mono);font-size:.75rem;transition:color .15s}.footer-links a:hover{color:var(--fg)}.home{min-height:calc(100vh - 120px);padding:5rem 0 4rem}.home h1{font-family:var(--font-serif);font-size:1.6rem;font-weight:400;margin-bottom:.75rem}.home h1 strong{font-weight:700}.home>.container>p{color:var(--fg-muted);font-size:1rem;line-height:1.7;margin-bottom:.75rem;max-width:480px}.home-divider{border-top:1px solid var(--border);margin:2.5rem 0}.social-list{display:flex;flex-direction:column;gap:.3rem;list-style:disc;margin-top:1rem;padding-left:1.2rem}.social-list a{color:#e91e8c;font-size:.95rem;transition:color .15s}.social-list a:hover{color:#c4186f}.section-header{align-items:baseline;display:flex;justify-content:space-between;margin-bottom:2rem}.section-header h2{letter-spacing:.08em;text-transform:uppercase}.section-header a,.section-header h2{color:var(--fg-subtle);font-family:var(--font-mono);font-size:.75rem}.section-header a{transition:color .15s}.section-header a:hover{color:var(--fg)}.post-list{list-style:none}.post-item{border-bottom:1px solid var(--border)}.post-item:first-child{border-top:1px solid var(--border)}.post-item a{align-items:baseline;display:flex;gap:1.5rem;padding:.65rem 0;transition:color .15s}.post-item a .post-title{color:#e91e8c}.post-item a:hover .post-title{text-decoration:underline;text-underline-offset:3px}.dataset-item{padding:.75rem 0}.dataset-desc{color:var(--fg-subtle);font-size:.8rem;line-height:1.5;margin-top:.2rem}.post-meta{color:var(--fg-subtle);flex-shrink:0;font-family:var(--font-mono);font-size:.7rem;white-space:nowrap;width:6.5rem}.post-title{flex:1;font-size:1rem;font-weight:400;line-height:1.4}.blog-container{margin:0 auto;max-width:600px;padding:3rem 1.5rem;width:100%}.blog-header{border-bottom:1px solid var(--border);padding:4rem 0 2.5rem}.blog-header h1{font-family:var(--font-serif);font-size:clamp(1.8rem,4vw,2.8rem);font-weight:400;margin-bottom:.5rem}.blog-header p{color:var(--fg-muted);font-size:1rem}.blog-list{padding:1rem 0}.post-header{border-bottom:1px solid var(--border);margin-bottom:3rem;padding:4rem 0 2.5rem}.post-header h1{font-family:var(--font-serif);font-size:clamp(1.8rem,4vw,2.6rem);font-weight:400;line-height:1.2;margin-bottom:1rem}.post-header-meta{display:flex;flex-wrap:wrap;gap:1.5rem}.post-header-meta span{color:var(--fg-subtle);font-family:var(--font-mono);font-size:.75rem}.post-categories{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.post-category{border:1px solid var(--border);font-size:.68rem;letter-spacing:.04em;padding:.15rem .5rem;text-transform:uppercase}.back-link,.post-category{color:var(--fg-subtle);font-family:var(--font-mono)}.back-link{align-items:center;display:inline-flex;font-size:.75rem;gap:.4rem;margin-bottom:2rem;transition:color .15s}.back-link:hover,.prose{color:var(--fg)}.prose{font-family:var(--font-serif);font-size:1.05rem;line-height:1.8;padding-bottom:5rem}.prose h1,.prose h2,.prose h3,.prose h4{font-weight:500;line-height:1.25;margin:2.5rem 0 1rem}.prose h1{font-size:1.7rem}.prose h2{border-bottom:1px solid var(--border);font-size:1.4rem;padding-bottom:.4rem}.prose h3{font-size:1.15rem}.prose h4{font-size:1rem}.prose p{margin-bottom:1.4rem}.prose a{text-decoration:underline;text-decoration-color:var(--border-hover);text-underline-offset:3px;transition:text-decoration-color .15s}.prose a:hover{text-decoration-color:var(--fg)}.prose strong{font-weight:600}.prose em{font-style:italic}.prose ol,.prose ul{margin-bottom:1.4rem;padding-left:1.5rem}.prose li{margin-bottom:.4rem}.prose blockquote{border-left:2px solid var(--border);color:var(--fg-muted);font-style:italic;margin:1.5rem 0;padding-left:1.25rem}.prose code{background:#f5f5f5;border-radius:2px;font-family:var(--font-mono);font-size:.82em;padding:.1em .35em}.prose pre{background:#f7f7f7;border:1px solid var(--border);border-radius:4px;margin:1.5rem 0;overflow-x:auto;padding:1.25rem 1.5rem}.dark .prose,.dark .prose h1,.dark .prose h2,.dark .prose h3,.dark .prose h4{color:var(--fg)}.dark .prose blockquote,.dark .prose li,.dark .prose p,.dark .prose td,.dark .prose th{color:var(--fg-muted)}.dark .prose pre{background:#2a2a2a;border-color:#3a3a3a}.dark .prose pre code{color:#e0e0e0}.dark .prose code{background:#2a2a2a;color:#e0e0e0}.prose pre code{background:none;font-size:.82rem;line-height:1.7;padding:0}.prose img{border:1px solid var(--border);border-radius:4px;margin:2rem auto}.prose table{border-collapse:collapse;font-size:.9rem;margin:1.5rem 0;width:100%}.prose th{border-bottom:2px solid var(--border);font-weight:500;text-align:left}.prose td,.prose th{padding:.5rem .75rem}.prose td{border-bottom:1px solid var(--border)}.prose hr{border:none;border-top:1px solid var(--border);margin:2.5rem 0}.page-header{border-bottom:1px solid var(--border);margin-bottom:3rem;padding:4rem 0 2.5rem}.page-header h1{font-family:var(--font-serif);font-size:clamp(1.8rem,4vw,2.8rem);font-weight:400;margin-bottom:.5rem}.page-header p{color:var(--fg-muted);font-size:1rem}.card-grid{border:1px solid var(--border);display:grid;gap:1px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));margin-bottom:4rem}.card{background:var(--bg);border:none;padding:1.75rem;position:relative;transition:background .15s}.card:hover{background:#fafafa}.card-title{font-family:var(--font-serif);font-size:1.15rem;font-weight:500;line-height:1.3;margin-bottom:.6rem}.card-desc{color:var(--fg-muted);font-size:.9rem;line-height:1.6;margin-bottom:1rem}.card-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1rem}.card-tag{border:1px solid var(--border);color:var(--fg-subtle);font-family:var(--font-mono);font-size:.65rem;letter-spacing:.04em;padding:.1rem .4rem;text-transform:uppercase}.card-highlights{list-style:none;margin-bottom:1.25rem}.card-highlights li{color:var(--fg-muted);font-size:.85rem;padding:.2rem 0 .2rem .9rem;position:relative}.card-highlights li:before{color:var(--fg-subtle);content:"–";left:0;position:absolute}.card-link{border-bottom:1px solid var(--border);color:var(--fg-muted);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.04em;padding-bottom:1px;text-transform:uppercase;transition:color .15s,border-color .15s}.card-link:hover{border-color:var(--fg);color:var(--fg)}@media(max-width:600px){.post-item a{flex-direction:column;gap:.25rem}.footer-inner{align-items:flex-start;flex-direction:column}.card-grid{grid-template-columns:1fr}}
