/* Editorial index and reading pages share the site's active color tokens. */
.legacy-content:has(#blog),.legacy-content:has(#article){max-width:1280px;padding-block:clamp(3rem,7vw,6rem)}
#blog .proc-sub{max-width:60ch;color:var(--muted);font-size:1rem}
#blog .title-line + .title-line::before{content:' '}
#blog .blog-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);margin-top:3rem}
#blog .blog-card{display:flex;flex-direction:column;gap:1.2rem;padding:0 0 2rem;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}
#blog .blog-card-visual{overflow:hidden;background:var(--mat);aspect-ratio:1.55}
#blog .blog-card-visual img{display:block;width:100%;height:100%;max-height:none;object-fit:cover;object-position:top;transition:transform .25s ease}
#blog .blog-card-visual img[src*="journal-source-code"]{object-fit:contain}
#blog .blog-card:hover img{transform:scale(1.025)}
#blog .blog-card-meta{margin:0;color:var(--muted);font-size:.85rem}
#blog .blog-card-title{font-size:clamp(1.5rem,2.5vw,2.3rem);line-height:1.12;margin:.65rem 0;text-wrap:balance}
#blog .blog-card-excerpt{margin:0;color:var(--muted);line-height:1.6}
#blog .blog-card:focus-visible{outline:3px solid var(--link);outline-offset:6px}
#article .article-inner{max-width:1100px;margin:auto}
#article .article-meta{display:flex;flex-wrap:wrap;gap:1rem;color:var(--muted);font-size:.85rem}
#article .article-title{max-width:19ch;text-wrap:balance;line-height:1.04;margin:1.5rem 0 2.5rem}
#article .article-title .title-line{display:inline}
#article .article-title .title-line + .title-line::before{content:' '}
#article .article-hero figure{margin:0}
#article .article-hero img{width:100%;max-height:600px;object-fit:contain;display:block;background:var(--mat)}
#article .article-hero figcaption{margin-top:.7rem;color:var(--muted);font-size:.85rem}
#article .article-body,#article .service-cta{max-width:72ch;margin:clamp(3rem,6vw,5rem) auto 0}
#article .article-body p,#article .article-body li{font-size:1rem;line-height:1.8}
#article .article-body h2{font-size:clamp(1.75rem,3vw,2.8rem);line-height:1.14;margin:3.5rem 0 1rem;text-wrap:balance}
#article .article-body h3{line-height:1.2}
#article .article-body li{margin-block:.35rem}
#article .article-body a,#article .service-cta a{color:var(--link);text-underline-offset:.16em}
#article .article-related,#article .service-cta{border-top:1px solid var(--line);padding-top:1.5rem}
#article .article-related a{display:grid;gap:.5rem}
#article .rel-title{font-weight:700}
#article .rel-excerpt{color:var(--muted)}
@media(max-width:700px){#blog .blog-grid{grid-template-columns:1fr;gap:2rem}#article .article-title{margin-bottom:1.75rem}#article .article-body p,#article .article-body li{font-size:1rem}}
@media(prefers-reduced-motion:reduce){#blog .blog-card-visual img{transition:none}#blog .blog-card:hover img{transform:none}}
