.blog-shell{width:100%;min-width:0;max-width:60rem;margin:0 auto;font-family:var(--font-sans)}.blog-page-title{color:var(--color-heading);font-size:2rem;font-weight:700;font-family:var(--font-sans)}.blog-page-intro{margin-top:.9rem;max-width:42rem;color:var(--color-text-muted)}.blog-grid{display:grid;grid-template-columns:minmax(0,1fr) 14rem;gap:2.5rem;margin-top:3rem}.blog-year-section{margin-bottom:3rem}.blog-year-heading{color:var(--color-heading);font-size:1.1rem;font-family:var(--font-mono)}.blog-post-list{list-style:none;margin-top:1.25rem;display:grid;gap:1rem}.blog-post-list-item{display:grid;gap:.25rem}.blog-post-row{display:grid;grid-template-columns:9rem minmax(0,1fr);gap:1rem;align-items:start}.blog-date{color:var(--color-text-soft);font-weight:700;font-family:var(--font-mono)}.blog-preview-title{color:var(--color-heading);font-weight:600;text-decoration:none;font-family:var(--font-sans)}.blog-preview-title:hover{color:var(--color-text);text-decoration:underline;text-underline-offset:.18em}.blog-preview-description{color:var(--color-text-muted);font-style:italic}.blog-sidebar{display:grid;align-content:start;gap:1.5rem}.blog-sidebar-title{color:var(--color-heading);font-size:1rem;font-family:var(--font-mono)}.blog-tag-cloud{display:flex;flex-wrap:wrap;gap:.5rem .7rem}.blog-tag-link{color:var(--color-accent)}.blog-tag-link:before{content:"#"}.blog-note{color:var(--color-text-muted);font-family:var(--font-mono)}.blog-post{max-width:48rem}.blog-back{display:inline-block;margin-bottom:2rem;color:var(--color-accent);font-family:var(--font-mono)}.blog-hero-image{margin-bottom:1.5rem;border:1px solid var(--color-border);background:var(--surface-elevated);padding:1rem;display:grid;place-items:center}.blog-hero-image img{display:block;width:auto;max-width:100%;height:auto;max-height:min(70vh,36rem);object-fit:contain}.blog-post-title{color:var(--color-heading);font-size:clamp(2rem,4vw,2.7rem);line-height:1.1;font-family:var(--font-sans)}.blog-post-meta{display:flex;flex-wrap:wrap;gap:.7rem 1rem;margin-top:.8rem;color:var(--color-text-muted);font-weight:700;font-family:var(--font-mono)}.blog-post-updated{color:var(--color-text-muted)}.blog-post-tags{margin-top:.9rem;display:flex;flex-wrap:wrap;gap:.6rem;font-family:var(--font-mono)}.blog-post-tag{color:var(--color-text-muted)}.blog-post-tag:before{content:"#"}.blog-post-lead{margin-top:1rem;color:var(--color-text-muted);font-family:var(--font-sans);font-size:1.04rem}.blog-prose{margin-top:2rem;color:var(--color-text);font-family:var(--font-sans);font-size:1.03rem;line-height:1.8}.blog-prose .katex{font-size:1.02em}.blog-prose .katex-display{position:relative;margin:1.6rem 0;overflow-x:auto;overflow-y:hidden;padding:.1rem 0}.blog-prose p,.blog-prose ul,.blog-prose ol,.blog-prose blockquote{margin-top:1rem}.blog-prose h2,.blog-prose h3{color:var(--color-heading);font-family:var(--font-sans);font-weight:600;line-height:1.3}.blog-prose h2{margin-top:2.6rem;font-size:1.45rem}.blog-prose h3{margin-top:2rem;font-size:1.15rem}.blog-prose ul,.blog-prose ol{padding-left:1.4rem}.blog-prose ul{list-style:disc}.blog-prose ol{list-style:decimal}.blog-prose li+li{margin-top:.4rem}.blog-prose table{display:block;max-width:100%;overflow-x:auto;margin-top:1.5rem;border-collapse:collapse;font-size:.92rem;line-height:1.45;font-variant-numeric:tabular-nums;position:relative}.blog-prose th,.blog-prose td{padding:.45rem .8rem;border-bottom:1px solid var(--color-border)}.blog-prose th{white-space:nowrap}.blog-prose th:not([align]):not([style*=text-align]){text-align:left}.blog-prose th{color:var(--color-heading);font-weight:600;border-bottom-color:var(--color-text-soft)}.blog-prose th:first-child,.blog-prose td:first-child{padding-left:0}.blog-prose a{color:var(--color-accent)}.blog-prose blockquote{border-left:2px solid var(--color-accent);padding-left:1rem;color:var(--color-text-muted)}.blog-prose img{display:block;width:auto;max-width:min(100%,32rem);height:auto;max-height:32rem;margin:1.5rem auto;border:1px solid var(--color-border);background:var(--surface-elevated);padding:.75rem;object-fit:contain}.blog-more{margin-top:3rem;padding-top:1.25rem;border-top:1px solid var(--color-border)}.blog-more-list{list-style:none;display:grid;gap:.85rem;margin-top:1rem}@media(max-width:820px){.blog-grid{grid-template-columns:1fr;gap:2rem}.blog-post-row{grid-template-columns:1fr;gap:.2rem}}
