/* Shared reading layout for blog posts. */
.journal-article { width: min(calc(100% - 2 * var(--page-gutter)), 74ch); margin: 0 auto; padding: clamp(2.5rem, 5vw, 5rem) 0; }
.post-header { padding-bottom: 2.5rem; border-bottom: 1px solid var(--line); }
.post-back { display: inline-block; margin-bottom: 2rem; font-size: 0.85rem; }
.post-header .eyebrow { color: var(--muted); margin-bottom: 1rem; }
.post-header h1 { font-size: clamp(2.4rem, 5vw, 4.5rem); overflow-wrap: break-word; }
.post-subtitle { margin-top: 1rem; font-size: clamp(1.3rem, 2.5vw, 2rem); }
.post-meta { color: var(--muted); font-size: 0.9rem; }
.post-series { display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; margin-top: 1.5rem; font-size: 0.9rem; }
.post-series a { display: inline-flex; align-items: center; min-height: 2.75rem; }
.post-series a[aria-current="page"] { font-weight: 600; text-decoration: none; }
.post-contents { display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; margin-top: 1.5rem; font-size: 0.85rem; }
.post-body { padding-top: 2.5rem; font-weight: 400; }
.post-note { margin-bottom: 3rem; padding-left: 1.25rem; border-left: 2px solid var(--line); color: var(--muted); font-size: 0.95rem; }
.post-body > section + section { margin-top: 3.5rem; }
.post-body h2 { margin-bottom: 1.5rem; font-size: clamp(1.8rem, 3vw, 2.6rem); }
.post-body h3 { margin: 2rem 0 1rem; color: var(--muted); font-size: 1rem; font-weight: 600; line-height: 1.5; }
.post-figure { margin: 2rem 0; padding: 1.5rem; background: var(--navy); }
.post-figure img { width: auto; max-width: 100%; height: auto; margin: 0 auto; }
.post-figure figcaption { margin-top: 1rem; color: var(--muted); font-size: 0.85rem; text-align: center; }
.post-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 2rem 0; align-items: start; }
.post-gallery .post-figure { margin: 0; padding: 1rem; }
.post-gallery--three .post-figure:last-child { grid-column: 1 / -1; }
.post-body ol { margin: 1.5rem 0; padding-left: 1.5rem; }
.post-body li { padding-left: 0.5rem; }
.post-body li + li { margin-top: 1rem; }
.post-credits { padding-top: 2rem; border-top: 1px solid var(--line); }
.post-end { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--line); }
.post-end .contact-actions { margin-top: 1.5rem; }
@media (max-width: 736px) {
    .post-contents { flex-direction: column; gap: 0.25rem; }
    .post-contents a { display: inline-flex; align-items: center; min-height: 2.75rem; }
    .post-figure { padding: 1rem; }
    .post-gallery { grid-template-columns: 1fr; }
}
