/* Blog pages – builds on site.css tokens */
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.blog-hero{position:relative;border-bottom:1px solid var(--line);overflow:hidden}
.blog-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(50% 90% at 90% 10%,color-mix(in srgb,var(--red) 26%,transparent),transparent 70%);pointer-events:none}
.blog-hero .wrap{position:relative;padding-block:56px 44px}
.blog-hero h1{font-size:clamp(2.4rem,6vw,4.4rem);margin-top:12px}
.blog-hero h1 .slash{display:inline-block;background:var(--red);color:#fff;padding:0 .14em;transform:skew(-6deg)}
.blog-hero .lede{margin-top:16px;font-size:1.1rem}
.blog-search{display:flex;gap:10px;margin-top:26px;max-width:520px}
.blog-search input{flex:1;min-width:0;font:inherit;color:var(--fg);background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:10px 12px}
.blog-search input:focus{border-color:var(--red);outline:none}

.tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:30px}
.tabs a{text-decoration:none;font-weight:600;font-size:.95rem;padding:9px 16px;border:1px solid var(--line);border-radius:30px;color:var(--muted);min-height:44px;display:inline-flex;align-items:center}
.tabs a:hover{color:var(--fg);border-color:var(--red)}
.tabs a.on{background:var(--red);border-color:var(--red);color:#fff}

.pgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
@media (max-width:900px){.pgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.pgrid{grid-template-columns:1fr}}
.pcard{background:var(--panel);border:1px solid var(--line);border-radius:8px;overflow:hidden;display:flex;flex-direction:column;min-width:0;transition:border-color .2s}
.pcard:hover{border-color:var(--red)}
.pimg{display:block;aspect-ratio:16/9;background:var(--panel-2);overflow:hidden}
.pimg img{width:100%;height:100%;object-fit:cover;display:block}
.noimg{display:grid;place-items:center;width:100%;height:100%;background:linear-gradient(135deg,var(--panel-2),color-mix(in srgb,var(--red) 20%,var(--panel)))}
.noimg img{width:72px;height:72px;object-fit:contain;opacity:.85}
.pbody{padding:18px 20px 22px;display:flex;flex-direction:column;gap:10px;flex:1}
.pbody h2,.pbody h3{font-size:1.35rem;letter-spacing:.01em}
.pbody h2 a,.pbody h3 a{text-decoration:none}
.pbody h2 a:hover,.pbody h3 a:hover{color:var(--amber)}
.pex{color:var(--muted);font-size:.98rem}
.more{margin-top:auto;font-weight:700;font-size:.95rem;text-decoration:none;color:var(--red)}
.more:hover{color:var(--amber)}
.pmeta{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;font-family:var(--mono);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.ptag{border:1px solid var(--red);color:var(--red);padding:2px 8px;border-radius:3px}
.pcard.lead{grid-column:1/-1;display:grid;grid-template-columns:1.2fr 1fr}
.pcard.lead .pimg{aspect-ratio:auto;min-height:300px}
.pcard.lead h2{font-size:clamp(1.7rem,3vw,2.4rem)}
@media (max-width:760px){.pcard.lead{grid-template-columns:1fr}.pcard.lead .pimg{min-height:0;aspect-ratio:16/9}}

.pager{display:flex;justify-content:center;align-items:center;gap:22px;margin-top:36px;font-weight:600}
.pager a{text-decoration:none;padding:10px 18px;border:1px solid var(--line);border-radius:4px}
.pager a:hover{border-color:var(--red)}
.empty{text-align:center;padding:60px 20px;border:1px dashed var(--line);border-radius:8px;color:var(--muted)}
.empty h1,.empty h2{color:var(--fg);margin-bottom:10px}
.empty .btn{margin-top:16px}

/* single post */
.wrap.narrow{max-width:780px}
.article{padding-block:48px 64px;border-bottom:1px solid var(--line)}
.crumbs{font-size:.9rem;color:var(--muted);margin-bottom:16px}
.crumbs a{color:var(--muted)}
.article h1{font-size:clamp(2.1rem,5.5vw,3.6rem);margin-bottom:18px}
.cover{width:100%;border-radius:8px;border:1px solid var(--line);margin:28px 0 8px;display:block}
.content{margin-top:28px;font-size:1.12rem;line-height:1.75}
.content>*+*{margin-top:1.1em}
.content h2{font-size:clamp(1.6rem,3.6vw,2.1rem);margin-top:1.6em}
.content h3{font-size:1.35rem;margin-top:1.4em}
.content ul,.content ol{padding-left:1.4em}
.content li+li{margin-top:.4em}
.content blockquote{margin:1.4em 0;padding:14px 20px;border-left:3px solid var(--red);background:var(--panel);font-style:italic}
.content img{border-radius:6px;border:1px solid var(--line);height:auto}
.content a{color:var(--amber)}
.content hr{border:0;border-top:1px solid var(--line);margin:2em 0}
.draft-note{background:var(--amber);color:#111;font-weight:700;padding:10px 14px;border-radius:4px;margin-bottom:18px}
.sharebar{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;margin-top:40px;padding-top:22px;border-top:1px solid var(--line)}
.sharebar span{font-family:var(--mono);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.sharebar a{font-weight:700;text-decoration:none;border:1px solid var(--line);padding:8px 14px;border-radius:4px;min-height:44px;display:inline-flex;align-items:center}
.sharebar a:hover{border-color:var(--red)}
.cta-box{margin-top:36px;padding:26px;border:1px solid var(--red-deep);border-radius:8px;background:linear-gradient(90deg,color-mix(in srgb,var(--red) 14%,var(--panel)),var(--panel))}
.cta-box h2{font-size:1.8rem}
.cta-box p{color:var(--muted);margin:8px 0 18px}

/* homepage latest strip */
#latest .pgrid{margin-top:4px}
#latest .all{margin-top:26px}
