/* Shared listing block layout: archive and related content. */
.post-index { padding-inline: var(--gutter); padding-block: var(--reading-space-2xl); min-height: 70vh; }
.post-index__intro { padding-bottom: var(--reading-space-xl); }
.post-index__intro .reading-title { width: min(100%, 20ch); }
.post-index__intro .reading-lead { width: min(100%, 58ch); margin-top: var(--reading-space-md); }
.post-index .topic-links { margin-bottom: var(--reading-space-md); }
.post-index__listing-heading { margin-bottom: var(--reading-space-lg); }
.post-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--reading-space-xl) var(--reading-space-lg); }
.post-index__empty { border-top: 1px solid var(--line); padding-block: var(--reading-space-xl) var(--reading-space-2xl); }
.post-index__empty p { width: min(100%, 50ch); margin-block: var(--reading-space-sm); }
/* Empty archives still offer two useful, readable starting points. */
.post-index:has(> div.post-index__empty) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--reading-space-2xl); align-content: start; }
.post-index:has(> div.post-index__empty) .post-index__intro { grid-column: 1 / -1; text-align: center; padding-bottom: var(--reading-space-2xl); }
.post-index:has(> div.post-index__empty) .post-index__intro :is(.reading-title, .reading-lead) { margin-inline: auto; }
.post-index:has(> div.post-index__empty) .post-index__empty { border: 0; padding-block: var(--reading-space-lg); }
.post-index:has(> div.post-index__empty) .post-index__empty .reading-subtitle { max-width: 22ch; font-size: var(--reading-heading-size); }
.post-index__intro .reading-lead p + p { margin-top: var(--reading-space-sm); }
.post-index__empty p { line-height: var(--reading-leading); color: var(--ink-secondary); font-size: var(--reading-size); text-wrap: pretty; }
@media (max-width: 640px) { .post-index:has(> div.post-index__empty) { grid-template-columns: 1fr; } .post-index:has(> div.post-index__empty) .post-index__intro { padding-bottom: var(--reading-space-lg); } }
@media (max-width: 1023px) { .post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .post-grid { grid-template-columns: minmax(0, 1fr); } }
