.blog-header{padding:clamp(3.5rem,8vw,6rem) 0 clamp(2rem,4vw,3rem);border-bottom:1px solid var(--rule-2)}.blog-header .meta{font-family:var(--mono);font-size:.78rem;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.75rem}.blog-header h1{font-size:clamp(2.2rem,4vw,3rem);font-weight:600;letter-spacing:-.02em;margin-bottom:1rem}.blog-header p{font-family:var(--serif);font-style:italic;font-size:1.25rem;color:var(--ink-2);max-width:50ch;margin:0}.blog-tools{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;padding:1.25rem 0;border-bottom:1px solid var(--rule-2)}.blog-tools .label{font-family:var(--mono);font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.tag-filter{display:flex;flex-wrap:wrap;gap:.4rem}.tag-chip{font-family:var(--mono);font-size:.74rem;color:var(--ink-2);background:transparent;border:1px solid var(--rule);padding:4px 10px;border-radius:2px;cursor:pointer;text-transform:lowercase;letter-spacing:.02em;transition:all .15s ease}.tag-chip:before{content:"#";color:var(--accent);margin-right:1px}.tag-chip:hover{border-color:var(--accent);color:var(--accent)}.tag-chip.active{background:var(--accent);border-color:var(--accent);color:#fff}.tag-chip.active:before{color:#ffffffb3}.rss-link{font-family:var(--mono);font-size:.74rem;color:var(--muted);text-decoration:none;text-transform:uppercase;letter-spacing:.06em;margin-left:auto;border:1px solid var(--rule);padding:4px 10px;border-radius:2px}.rss-link:hover{color:var(--accent);border-color:var(--accent)}.posts-list{padding:1.5rem 0 4rem}.post-entry{display:grid;grid-template-columns:140px 1fr 80px;gap:2rem;padding:1.6rem 0;border-bottom:1px solid var(--rule-2);align-items:baseline}.post-entry:hover h2 a{color:var(--accent)}.post-entry .date{font-family:var(--mono);font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.post-entry h2{font-size:1.4rem;font-weight:600;margin-bottom:.4rem;line-height:1.25}.post-entry h2 a{text-decoration:none;color:var(--ink)}.post-entry .dek{color:var(--ink-2);font-size:1rem;max-width:60ch;margin-bottom:.65rem}.post-entry .post-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .9rem;font-family:var(--mono);font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.post-entry .post-meta .tag:before{content:"#";color:var(--accent)}.post-entry .reading{font-family:var(--mono);font-size:.78rem;color:var(--muted);text-align:right;text-transform:uppercase;letter-spacing:.04em}.post-entry.draft{opacity:.55}.post-entry.draft .date:after{content:" · DRAFT";color:var(--accent)}@media (max-width: 780px){.post-entry{grid-template-columns:1fr;gap:.4rem}.post-entry .reading{text-align:left}}.empty-state{padding:3rem 0;text-align:center;color:var(--muted);font-family:var(--serif);font-style:italic;font-size:1.1rem}article.post{padding:clamp(3rem,6vw,5rem) 0 3rem}.post-hero{margin-bottom:3rem;padding-bottom:2.5rem;border-bottom:1px solid var(--rule-2)}.post-hero .back{font-family:var(--mono);font-size:.78rem;color:var(--muted);text-decoration:none;text-transform:uppercase;letter-spacing:.08em;display:inline-flex;align-items:center;gap:.4rem;margin-bottom:1.75rem}.post-hero .back:before{content:"←";color:var(--accent)}.post-hero .back:hover{color:var(--accent)}.post-hero .meta{font-family:var(--mono);font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.9rem;display:flex;flex-wrap:wrap;gap:.5rem 1.25rem}.post-hero .meta .tag:before{content:"#";color:var(--accent)}.post-hero h1{font-size:clamp(2rem,3.8vw,2.8rem);font-weight:600;letter-spacing:-.02em;margin-bottom:1rem;max-width:22ch}.post-hero .dek{font-family:var(--serif);font-style:italic;font-size:1.25rem;color:var(--ink-2);max-width:52ch;margin:0}.post-cover{margin:2rem 0 0;border:1px solid var(--rule);background:var(--surface);aspect-ratio:16/7;border-radius:2px;overflow:hidden;position:relative}.post-cover .cover-placeholder{width:100%;height:100%;background:repeating-linear-gradient(135deg,transparent 0,transparent 14px,color-mix(in oklab,var(--rule) 60%,transparent) 14px,color-mix(in oklab,var(--rule) 60%,transparent) 15px);display:flex;align-items:center;justify-content:center}.post-cover .cover-placeholder span{font-family:var(--mono);font-size:.75rem;color:var(--muted);background:var(--surface);padding:6px 12px;border:1px solid var(--rule);letter-spacing:.04em;text-transform:uppercase}.post-cover img{width:100%;height:100%;object-fit:cover;display:block}.post-layout{display:grid;grid-template-columns:1fr 220px;gap:3rem;align-items:start}@media (max-width: 900px){.post-layout{grid-template-columns:1fr}.post-toc{position:static!important;display:none}}.post-body{max-width:70ch;font-size:1.05rem;line-height:1.75;color:var(--ink-2)}.post-body>*+*{margin-top:1.25rem}.post-body h2{font-size:1.6rem;color:var(--ink);margin-top:3rem;margin-bottom:.75rem;padding-bottom:.4rem;border-bottom:1px solid var(--rule-2)}.post-body h3{font-size:1.2rem;color:var(--ink);margin-top:2rem;margin-bottom:.5rem}.post-body p{margin:0 0 1.25rem;text-wrap:pretty}.post-body strong{color:var(--ink);font-weight:600}.post-body em{font-style:italic}.post-body blockquote{font-family:var(--serif);font-style:italic;font-size:1.2rem;line-height:1.5;color:var(--ink);border-left:2px solid var(--accent);padding:.25rem 0 .25rem 1.25rem;margin:2rem 0;max-width:52ch}.post-body ul,.post-body ol{padding-left:1.5rem;margin:1rem 0 1.5rem}.post-body li{margin-bottom:.4rem}.post-body li::marker{color:var(--accent)}.post-body hr{border:none;border-top:1px solid var(--rule);margin:2.5rem 0}.post-body figure{margin:2rem 0}.post-body figure img{max-width:100%;display:block;border:1px solid var(--rule);border-radius:2px}.post-body figcaption{font-family:var(--mono);font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-top:.6rem;text-align:center}.post-body code{font-family:var(--mono);font-size:.88em;background:var(--accent-tint);color:var(--accent);padding:1px 6px;border-radius:2px;border:1px solid color-mix(in oklab,var(--accent) 20%,transparent)}.post-body pre{font-family:var(--mono);font-size:.85rem;background:var(--surface)!important;border:1px solid var(--rule);border-radius:2px;padding:1rem 1.25rem;overflow-x:auto;line-height:1.6;margin:1.5rem 0}.post-body pre code{background:none;color:inherit;padding:0;border:none;font-size:inherit}.post-body .sidenote{font-family:var(--serif);font-style:italic;font-size:.95rem;color:var(--muted);display:block;padding:.4rem 0 .4rem 1rem;border-left:1px solid var(--rule);margin:1rem 0}.post-body .katex-display{margin:1.5rem 0;overflow-x:auto}.post-toc{position:sticky;top:80px;font-family:var(--sans);font-size:.88rem;max-height:calc(100vh - 120px);overflow-y:auto;padding-top:.2rem}.post-toc .label{font-family:var(--mono);font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.75rem;padding-bottom:.4rem;border-bottom:1px solid var(--rule)}.post-toc ul{list-style:none;padding:0;margin:0}.post-toc li{margin:.35rem 0}.post-toc a{display:block;text-decoration:none;color:var(--muted);line-height:1.35;padding:3px 0 3px 10px;border-left:1px solid var(--rule);transition:all .15s ease}.post-toc a:hover{color:var(--ink);border-left-color:var(--accent)}.post-toc a.active{color:var(--accent);border-left-color:var(--accent);font-weight:500}.post-toc li.h3 a{padding-left:20px;font-size:.82rem}.post-footer{margin-top:4rem;padding:2rem 0;border-top:1px solid var(--rule)}.post-footer .share{font-family:var(--mono);font-size:.76rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:1rem}.post-footer .share a{color:var(--ink-2);margin-right:1rem;text-decoration:none;border-bottom:1px solid var(--accent)}.post-footer .share a:hover{color:var(--accent)}.prev-next{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:2rem}.prev-next a{text-decoration:none;color:var(--ink-2);padding:1rem 1.25rem;border:1px solid var(--rule);border-radius:2px;display:block}.prev-next a:hover{border-color:var(--accent);color:var(--accent)}.prev-next .label{font-family:var(--mono);font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.4rem}.prev-next .title{font-family:var(--serif);font-size:1.05rem;font-weight:500}.prev-next .next{text-align:right}@media (max-width: 600px){.prev-next{grid-template-columns:1fr}.prev-next .next{text-align:left}}
