/* Shared article imagery and latest-post sliders. */
.post-card { min-width:0; }
.post-card > a { display:flex; flex-direction:column; height:100%; }
.post-card .post-card-image { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; background:#edf3f8; margin-bottom:20px; }
.post-card .eyebrow { margin-block:0 12px; font-size:12px; }
.post-card h2,.post-card h3 { font-size:21px; line-height:1.65; margin-block:0 14px; overflow-wrap:anywhere; }
.post-card .post-card-summary { font-size:14px; line-height:1.9; margin:0; }
.post-card > a:hover { opacity:1; }
.post-card > a:hover h2,.post-card > a:hover h3 { color:var(--blue); text-decoration:underline; text-underline-offset:5px; }
.post-card > a:focus-visible { outline:2px solid var(--blue); outline-offset:5px; }
.post-date { margin:0; color:#526679; font-size:12px; line-height:1.8; letter-spacing:.04em; font-variant-numeric:tabular-nums; }
.post-date > span { margin-right:6px; }
.post-card .post-date { margin-bottom:12px; }
.post-badges { display:flex; flex-wrap:wrap; align-items:flex-start; gap:7px; min-width:0; }
.post-badge { display:inline-flex; max-width:100%; padding:4px 10px; border:1px solid #dce6ef; border-radius:4px; background:#eef4fa; color:var(--blue); font-size:11px; font-weight:600; line-height:1.7; letter-spacing:.02em; overflow-wrap:anywhere; text-decoration:none; }
.post-badge-tag { background:#f7f8fa; border-color:#e0e5eb; color:#526679; }
.post-card .post-badges { margin-bottom:14px; }
.post-detail .page-heading { padding-bottom:32px; }
.article.post-detail .page-heading h1 { font-size:clamp(1.5rem,2.8vw,2.25rem); line-height:1.65; letter-spacing:.035em; overflow-wrap:anywhere; }
.post-detail-meta { display:flex; flex-wrap:wrap; align-items:center; gap:12px 20px; margin-top:18px; }
.post-detail-meta:empty { display:none; }
.post-detail-meta .post-date { flex-shrink:0; }
.post-detail-meta .post-badge { font-size:12px; }
.post-detail .entry-content h2,.post-detail .work-comparison > h2 { font-size:clamp(1.375rem,2.2vw,1.75rem); }
.post-archive-link { text-align:right; margin-top:26px; }
.post-slider { margin-block:28px 32px; min-width:0; }
.post-slider-controls { display:flex; align-items:center; justify-content:flex-end; gap:10px; margin-bottom:20px; }
.post-slider-controls[hidden] { display:none; }
.post-slider-status { color:var(--blue); font-size:13px; font-variant-numeric:tabular-nums; letter-spacing:.08em; margin-right:8px; }
.post-slider-controls button { width:46px; height:46px; padding:0; border:1px solid var(--line); background:#fff; color:var(--blue); cursor:pointer; font:inherit; font-size:20px; display:grid; place-items:center; }
.post-slider-controls button:hover:not(:disabled) { background:var(--blue); border-color:var(--blue); color:#fff; }
.post-slider-controls button:disabled { opacity:.35; cursor:default; }
.post-slider-controls button:focus-visible,.post-slider-track:focus-visible { outline:2px solid var(--blue); outline-offset:3px; }
.post-slider-track { display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - (var(--post-columns,3) - 1)*28px)/var(--post-columns,3)); gap:28px; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scroll-behavior:smooth; scrollbar-width:thin; scrollbar-color:#ccd6e0 transparent; padding-block:4px 12px; }
.post-slider[data-count="1"] .post-slider-track { grid-auto-columns:min(440px,100%); }
.post-slide { min-width:0; scroll-snap-align:start; }
.post-slide .post-card { height:100%; margin:0; }
.post-slide h3 { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.post-slide .post-card-summary { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
@media(max-width:1000px) { .post-slider-track { --post-columns:2 !important; gap:24px; grid-auto-columns:calc((100% - 24px)/2); } }
@media(max-width:700px) {
 .post-slider-track { grid-auto-columns:88%; gap:18px; }
 .post-slider-controls { gap:8px; margin-bottom:15px; }
 .post-card h2,.post-card h3 { font-size:19px; }
 .post-card .post-card-image { margin-bottom:16px; }
 .post-detail .page-heading { padding-bottom:26px; }
 .post-detail-meta { gap:10px; margin-top:15px; }
 .post-detail-meta .post-date { flex-basis:100%; }
 .post-slider[data-count="1"] .post-slider-track { grid-auto-columns:100%; }
}
@media(prefers-reduced-motion:reduce) { .post-slider-track { scroll-behavior:auto; } }
@media print { .post-slider-controls { display:none; } .post-slider-track { overflow:visible; grid-auto-flow:row; grid-template-columns:repeat(2,minmax(0,1fr)); } }

/* Automatic table of contents for articles with four or more H2 headings. */
.article-toc { max-width:850px; margin:0 0 46px; padding:28px 34px; border:1px solid var(--line); border-left:3px solid var(--blue); background:var(--pale); color:var(--ink); }
.article-toc .article-toc-title { margin:0 0 14px; color:var(--blue); font-size:17px; font-weight:700; letter-spacing:.1em; }
.article-toc ol { margin:0; padding:0; list-style:none; }
.article-toc li { margin:0; }
.article-toc a { display:flex; align-items:baseline; gap:14px; padding:10px 0; color:var(--ink); font-size:15px; line-height:1.8; text-decoration:none; overflow-wrap:anywhere; }
.article-toc li + li { border-top:1px solid #dce4eb; }
.article-toc a:hover { color:var(--blue); opacity:1; }
.article-toc a:focus-visible { outline:2px solid var(--blue); outline-offset:3px; }
.post-detail .entry-content h2[id] { scroll-margin-top:30px; }
@media(max-width:700px) {
 .article-toc { margin-bottom:34px; padding:22px 20px; }
 .article-toc a { font-size:14px; gap:10px; }
}
