/* Shared archive/article styles; palette, fonts and widths come from site tokens. */
.blog-shell{width:var(--wrap);margin-inline:auto;padding:calc(var(--header-h) + 48px) 0 var(--section-space)}
.blog-breadcrumb{display:flex;flex-wrap:wrap;gap:8px;color:var(--ink2);font-size:1rem;margin-bottom:36px}
.blog-heading{max-width:var(--measure-copy);margin-bottom:40px}
.blog-heading h1{font-size:clamp(28px,3.2vw,46px);line-height:1.55;text-wrap:pretty;overflow-wrap:anywhere}
.blog-heading p{margin-top:20px;color:var(--ink2)}
.blog-topline{font-family:var(--mono);color:var(--ink2);font-size:1rem;margin-bottom:16px}
.blog-categories{display:flex;gap:10px;flex-wrap:wrap;list-style:none;padding:0;margin:24px 0 36px}
.blog-categories a,.blog-pagination a,.blog-pagination span{display:inline-flex;align-items:center;min-height:44px;border:1px solid var(--line);padding:8px 14px;font-size:1rem;text-decoration:none}
.blog-categories a:hover,.blog-pagination a:hover{border-color:var(--ink2)}
.blog-categories [aria-current],.blog-pagination [aria-current]{background:var(--ink);color:var(--on-ink)}
.blog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px var(--card-gap);list-style:none;margin:0;padding:0}
.blog-tile{min-width:0;border-top:1px solid var(--line);padding-top:18px}
.blog-tile a{display:block;text-decoration:none}
.blog-tile img,.blog-tile .blog-no-image{width:100%;aspect-ratio:var(--media-aspect);object-fit:cover;display:block;height:auto;background:var(--media-editorial)}
.blog-tile h2,.blog-tile h3{font-size:clamp(18px,1.5vw,22px);line-height:1.65;margin:14px 0;overflow-wrap:anywhere;text-wrap:pretty}
.blog-tile a:hover h2,.blog-tile a:hover h3{color:var(--ember-2)}
.blog-meta{color:var(--ink2);font-size:1rem;margin:16px 0 10px;display:flex;gap:12px;flex-wrap:wrap}
.blog-excerpt{font-size:1rem;color:var(--ink2);line-height:1.9}
.blog-pagination{display:flex;flex-wrap:wrap;gap:8px;margin-top:48px;align-items:center}
.blog-article{max-width:var(--reading-max);margin-inline:auto;min-width:0}
.blog-hero{width:100%;height:auto;display:block;margin:32px 0 48px}
.blog-prose{font-size:clamp(1rem,.95rem + .2vw,1.125rem);line-height:2;overflow-wrap:anywhere}
.blog-prose :is(h2,h3,h4,h5,h6){font-family:var(--sans);text-wrap:pretty;line-height:1.6;scroll-margin-top:calc(var(--header-h) + 24px)}
.blog-prose h2{font-size:clamp(24px,2.4vw,30px);margin:2.7em 0 1em;padding-top:1em;border-top:1px solid var(--line)}
.blog-prose h3{font-size:clamp(21px,2vw,25px);margin:2em 0 .8em}
.blog-prose :is(h4,h5,h6){font-size:1.125rem;margin:1.8em 0 .8em}
.blog-prose p{margin:0 0 1.3em}
.blog-prose :is(ul,ol){padding-left:1.5em;margin:1.3em 0}
.blog-prose li{margin:.45em 0}
.blog-prose img{display:block;max-width:100%;height:auto;margin:24px auto}
.blog-prose figure{margin:32px 0}
.blog-prose figcaption{font-size:1rem;color:var(--ink2)}
.blog-prose iframe{width:100%;aspect-ratio:16/9;height:auto;border:0;display:block;margin:32px 0}
.blog-prose table{width:100%;border-collapse:collapse;font-size:1rem}
.blog-prose .blog-table{max-width:100%;overflow-x:auto;margin:28px 0}
.blog-prose :is(td,th){border:1px solid var(--line);padding:12px;min-width:120px;text-align:left}
.blog-prose th{background:var(--bg-2)}
.blog-prose blockquote{border-left:2px solid var(--ink3);padding:16px 24px;margin:24px 0;background:var(--bg-2)}
.blog-prose hr{border:0;border-top:1px solid var(--line);margin:36px 0}
.blog-missing{background:var(--media-editorial);border:1px solid var(--line);padding:24px;color:var(--ink2);font-size:1rem}
.blog-toc{border:1px solid var(--line);padding:20px 24px;margin:32px 0;font-size:1rem}
.blog-toc summary{cursor:pointer;min-height:32px;font-weight:700}
.blog-toc li{margin:12px 0;line-height:1.7}
.blog-back{border-top:1px solid var(--line);margin-top:56px;padding-top:24px}
.blog-home-link{margin-top:32px}
@media(max-width:1000px){.blog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.blog-grid{grid-template-columns:minmax(0,1fr)}.blog-shell{padding-top:calc(var(--header-h) + 28px)}.blog-breadcrumb{margin-bottom:24px}.blog-categories{gap:8px}.blog-categories a{padding:8px 10px}.blog-heading{margin-bottom:28px}}
