/* Blog pages — builds on styles.css tokens */
.blog-page{background:var(--bg)}
.blog-wrap{padding-top:120px;min-height:70vh}
.blog-head{padding-block:clamp(32px,6vw,72px) clamp(28px,4vw,48px);max-width:820px;margin-inline:0}
.blog-head h1{font-size:clamp(38px,6vw,68px);color:var(--teal);margin-bottom:18px}
.blog-head .sub{color:var(--muted);font-size:18px;max-width:52ch}
.blog-page .blog-head{margin-inline:auto;width:min(1180px,100% - var(--gutter)*2)}

.post-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,3vw,40px);padding-bottom:clamp(64px,9vw,120px)}
.post-card a{display:block;height:100%}
.thumb{aspect-ratio:3/2;border-radius:20px;overflow:hidden;background:var(--mist);margin-bottom:18px}
.thumb img{width:100%;height:100%;object-fit:cover;transition:transform 700ms var(--ease-out)}
.post-card .meta{font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--sky);font-weight:600;margin-bottom:8px}
.post-card h2{font-size:clamp(22px,2.2vw,28px);margin-bottom:10px;transition:color 200ms}
.post-card p{color:var(--muted);font-size:15px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.post-card .more{display:inline-block;margin-top:14px;font-size:14px;font-weight:600;color:var(--teal)}
@media (hover:hover) and (pointer:fine){
  .post-card a:hover .thumb img{transform:scale(1.04)}
  .post-card a:hover h2{color:var(--sky)}
}
.empty-note{color:var(--muted);padding-bottom:120px}

/* Article */
.article{max-width:760px;padding-bottom:clamp(64px,9vw,110px)}
.crumbs{display:flex;gap:10px;font-size:13px;color:var(--muted);margin-bottom:22px}
.crumbs a{color:var(--sky);font-weight:500}
.article h1{font-size:clamp(34px,5.2vw,56px);color:var(--teal);margin-bottom:18px}
.byline{font-size:14px;color:var(--muted);margin-bottom:34px}
.cover{margin:0 0 40px;border-radius:24px;overflow:hidden;aspect-ratio:16/9;background:var(--mist)}
.cover img{width:100%;height:100%;object-fit:cover}

.prose{font-size:18px;line-height:1.8;color:var(--ink)}
.prose>*+*{margin-top:1.3em}
.prose h2{font-size:clamp(26px,3vw,34px);color:var(--teal);margin-top:2em}
.prose h3{font-size:clamp(21px,2.3vw,26px);color:var(--teal);margin-top:1.7em}
.prose a{color:var(--sky);border-bottom:1px solid rgba(45,156,219,.35);transition:border-color 200ms}
@media (hover:hover){.prose a:hover{border-color:var(--sky)}}
.prose ul,.prose ol{padding-left:1.4em}
.prose ul{list-style:disc}.prose ol{list-style:decimal}
.prose li+li{margin-top:.4em}
.prose li>p{margin:0}
.prose blockquote{font:italic 400 1.25em/1.5 var(--serif);color:var(--teal);padding-left:22px;border-left:2px solid var(--gold);margin-block:1.8em}
.prose blockquote p{margin:0}
.prose figure{margin-block:2em}
.prose figure img{width:100%;border-radius:18px}
.prose hr{border:0;border-top:1px solid var(--line);margin-block:2.4em}

.article-cta{margin-top:clamp(48px,7vw,80px);padding:clamp(28px,4vw,44px);border-radius:24px;background:var(--teal);color:#fff;text-align:center}
.article-cta h2{color:#fff;font-size:clamp(24px,3vw,32px);margin-bottom:8px}
.article-cta p{color:rgba(255,255,255,.8);margin-bottom:22px}

.blog-footer{border-top:1px solid var(--line);padding:26px 0 34px;font-size:13px;color:var(--muted)}
.blog-footer .wrap{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.blog-footer a{color:var(--teal);font-weight:500}

@media (max-width:900px){.post-grid{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.post-grid{grid-template-columns:1fr}.prose{font-size:17px}}
@media (prefers-reduced-motion:reduce){.thumb img{transition:none}}
