/* =========================================================================
   THE ACTIVITY PERIOD — rhsbr.org
   Louisiana school yearbook: cream paper, emerald green, brass gold,
   letterpress slab headings. Two-column journal: wide tribune + narrow
   margin. Zero external request, system type only.
   Prefix: tap- (the activity period). No jdc-, skb-, card-, wrap-, grid-, btn-.
   ========================================================================= */

/* ---------- 1. TOKENS ---------- */
:root {
  --tap-cream: #f6f1e3;
  --tap-paper: #fbf7ec;
  --tap-ink: #1e2a22;
  --tap-soft: #4c5a50;
  --tap-pine: #0e5c3f;
  --tap-pine-deep: #083c2a;
  --tap-gold: #b08a2e;
  --tap-gold-soft: #e7d6a4;
  --tap-rule: #cfc4a4;
  --tap-rule-strong: #1e2a22;
  --tap-wash: #e9e0c8;
  --tap-title-stack: "Rockwell", "Courier Bold", Courier, Georgia, serif;
  --tap-body-stack: Georgia, "Iowan Old Style", "Palatino Linotype", Palatino, serif;
  --tap-caps-stack: "Avenir Next Condensed", "Arial Narrow", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --tap-page: 74rem;
  --tap-rail: 20rem;
  --tap-gap: 2.5rem;
  --tap-step: 1.15rem;
  --tap-inset: clamp(1rem, 4vw, 2.75rem);
  --tap-size: 1.0625rem;
  --tap-lead: 1.62;
  --tap-track: 0.115em;
  --tap-thin: 1px solid var(--tap-rule);
  --tap-thick: 3px solid var(--tap-rule-strong);
  --tap-double: 4px double var(--tap-rule-strong);
}

/* ---------- 2. BASE ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--tap-cream);
  color: var(--tap-ink);
  font-family: var(--tap-body-stack);
  font-size: var(--tap-size);
  line-height: var(--tap-lead);
  overflow-wrap: break-word;
}
img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: var(--tap-pine); text-decoration-thickness: 1px; text-underline-offset: 0.14em; }
a:hover { color: var(--tap-pine-deep); }
:focus-visible { outline: 3px solid var(--tap-gold); outline-offset: 2px; }
h1, h2, h3, h4 {
  font-family: var(--tap-title-stack);
  font-weight: 700;
  line-height: 1.1;
  margin: 0 0 calc(var(--tap-step) * 0.6);
  letter-spacing: 0.004em;
}
p, ul, ol, figure, table, blockquote { margin: 0 0 var(--tap-step); }

/* skip link */
.tap-skip {
  position: absolute; left: -9999px; top: 0;
  background: var(--tap-pine-deep); color: var(--tap-paper);
  padding: 0.6rem 1rem;
  font-family: var(--tap-caps-stack);
  text-transform: uppercase; letter-spacing: var(--tap-track);
  z-index: 50;
}
.tap-skip:focus { left: 0; color: var(--tap-paper); }

/* ---------- 3. FOLIO (page frame) ---------- */
.tap-folio {
  max-width: var(--tap-page);
  margin: 0 auto;
  padding: 0 var(--tap-inset) calc(var(--tap-step) * 3);
  background: var(--tap-paper);
  border-inline: var(--tap-thin);
}

/* ---------- 4. MASTHEAD ---------- */
.tap-masthead {
  border-block-end: var(--tap-double);
  padding-block: calc(var(--tap-step) * 1.4) calc(var(--tap-step) * 0.7);
  background:
    linear-gradient(var(--tap-gold-soft), var(--tap-gold-soft)) left top / 100% 0.35rem no-repeat,
    var(--tap-paper);
}
.tap-masthead__dateline {
  display: flex; flex-wrap: wrap;
  gap: 0.5rem 1.25rem;
  align-items: baseline; justify-content: space-between;
  font-family: var(--tap-caps-stack);
  font-size: 0.78rem; text-transform: uppercase;
  letter-spacing: var(--tap-track);
  color: var(--tap-soft);
  padding-block-end: 0.55rem;
  border-block-end: var(--tap-thin);
  margin-block-end: calc(var(--tap-step) * 0.9);
}
.tap-masthead__name {
  font-family: var(--tap-title-stack);
  font-size: clamp(2.35rem, 7.5vw, 4.6rem);
  letter-spacing: 0.002em;
  margin: 0; text-align: center;
  color: var(--tap-pine-deep);
  text-shadow: 0 1px 0 var(--tap-gold-soft);
}
.tap-masthead__name--small { font-size: clamp(1.55rem, 4vw, 2.6rem); font-weight: 700; }
.tap-masthead__name a { color: inherit; text-decoration: none; }
.tap-masthead__name a:hover { color: var(--tap-pine); }
.tap-masthead__motto {
  font-family: var(--tap-caps-stack);
  text-transform: uppercase; letter-spacing: 0.22em;
  font-size: 0.72rem; color: var(--tap-soft);
  text-align: center; margin: 0.45rem 0 0;
}
.tap-masthead__motto b { color: var(--tap-gold); }
.tap-ears {
  display: grid; gap: 0.4rem 1rem;
  grid-template-columns: 1fr;
  margin-block-start: calc(var(--tap-step) * 0.8);
  font-family: var(--tap-caps-stack);
  font-size: 0.76rem; text-transform: uppercase;
  letter-spacing: var(--tap-track);
  color: var(--tap-soft);
}
.tap-ear { border-block-start: var(--tap-thin); padding-block-start: 0.4rem; }
.tap-ear b { color: var(--tap-ink); font-weight: 700; }

/* ---------- 5. SECTION BAR (checkbox menu, two states) ---------- */
.tap-sections {
  border-block-end: var(--tap-thick);
  background: var(--tap-pine-deep);
  padding-block: 0.55rem;
}
.tap-sections__inner {
  max-width: var(--tap-page);
  margin: 0 auto;
  padding: 0 var(--tap-inset);
  background: transparent;
  border: 0;
}
.tap-sections__toggle {
  position: absolute; opacity: 0; pointer-events: none;
}
.tap-sections__handle {
  display: inline-block;
  font-family: var(--tap-caps-stack);
  font-size: 0.85rem; text-transform: uppercase;
  letter-spacing: var(--tap-track);
  color: var(--tap-paper);
  border: 1px solid var(--tap-gold);
  padding: 0.35rem 0.8rem;
  cursor: pointer;
}
.tap-sections ul {
  list-style: none; margin: 0; padding: 0;
  font-family: var(--tap-caps-stack);
  font-size: 0.85rem; text-transform: uppercase;
  letter-spacing: var(--tap-track);
}
.tap-sections a { color: var(--tap-paper); text-decoration: none; padding-block: 0.15rem; }
.tap-sections a:hover { color: var(--tap-gold-soft); text-decoration: underline; }
.tap-sections [aria-current="page"] { color: var(--tap-gold-soft); box-shadow: inset 0 -3px 0 var(--tap-gold); }

/* desktop: handle hidden, horizontal bar */
@media (min-width: 52rem) {
  .tap-sections__handle { display: none; }
  .tap-sections ul {
    display: flex; flex-wrap: wrap;
    gap: 0.25rem 1.5rem;
  }
}
/* mobile: handle visible, list folded until checked */
@media (max-width: 51.99rem) {
  .tap-sections__handle { display: inline-block; }
  .tap-sections ul { display: none; margin-block-start: 0.6rem; }
  .tap-sections__toggle:checked ~ ul { display: grid; gap: 0.15rem; }
  .tap-sections ul a { display: block; padding: 0.45rem 0.2rem; border-block-start: 1px solid rgba(231, 214, 164, 0.35); }
}

/* ---------- 6. TWO-COLUMN SPREAD ---------- */
.tap-spread {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: calc(var(--tap-step) * 1.8);
  padding-block-start: calc(var(--tap-step) * 1.5);
}
.tap-tribune { min-width: 0; }
.tap-margin { min-width: 0; }
@media (min-width: 62rem) {
  .tap-spread {
    grid-template-columns: minmax(0, 1fr) var(--tap-rail);
    gap: var(--tap-gap);
  }
  .tap-margin {
    border-inline-start: var(--tap-thin);
    padding-inline-start: calc(var(--tap-gap) / 2);
  }
}

/* ---------- 7. KICKER / DATELINE ---------- */
.tap-kicker {
  display: inline-block;
  font-family: var(--tap-caps-stack);
  font-size: 0.75rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: var(--tap-track);
  color: var(--tap-pine); text-decoration: none;
}
.tap-kicker--gold { color: var(--tap-gold); }
.tap-kicker--plate {
  background: var(--tap-wash); color: var(--tap-ink);
  padding: 0.15rem 0.45rem;
}
.tap-dateline {
  font-family: var(--tap-caps-stack);
  font-size: 0.78rem; text-transform: uppercase;
  letter-spacing: 0.08em; color: var(--tap-soft);
}
.tap-byline {
  display: flex; flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.75rem;
  margin-block-end: 0.4rem;
}

/* ---------- 8. LEAD STORY ---------- */
.tap-lead { padding-block-end: calc(var(--tap-step) * 1.2); border-block-end: var(--tap-thick); }
.tap-lead__title { font-size: clamp(1.85rem, 5.2vw, 3.15rem); margin-block: 0.25rem 0.6rem; }
.tap-lead__title a { color: inherit; text-decoration: none; }
.tap-lead__title a:hover { color: var(--tap-pine); text-decoration: underline; }
.tap-lead__deck { font-size: 1.15rem; color: var(--tap-soft); max-width: 38em; }
.tap-lead__art { margin-block: var(--tap-step); overflow: hidden; }
.tap-lead__art img { width: 100%; border: var(--tap-thin); }
@media (min-width: 48rem) {
  .tap-lead__deck { columns: 2; column-gap: var(--tap-gap); column-rule: var(--tap-thin); max-width: none; }
}

/* captions */
.tap-caption {
  font-family: var(--tap-caps-stack);
  font-size: 0.78rem; color: var(--tap-soft);
  padding-block-start: 0.35rem;
  border-block-start: var(--tap-thin);
  margin-block-start: 0.35rem;
}

/* ---------- 9. STORY WIRE (article lists) ---------- */
.tap-bandhead {
  display: flex; flex-wrap: wrap;
  align-items: baseline; justify-content: space-between;
  gap: 0.5rem 1rem;
  border-block-end: var(--tap-thick);
  padding-block-end: 0.35rem;
  margin-block: calc(var(--tap-step) * 1.6) var(--tap-step);
}
.tap-bandhead h2 {
  font-family: var(--tap-caps-stack);
  font-size: 1rem; text-transform: uppercase;
  letter-spacing: var(--tap-track); margin: 0;
}
.tap-bandhead h2 .tap-bandhead__no {
  color: var(--tap-gold); margin-inline-end: 0.5rem;
}
.tap-bandhead__lede { max-width: 38em; color: var(--tap-soft); margin-block-end: var(--tap-step); }
.tap-wire { list-style: none; margin: 0; padding: 0; }
.tap-story {
  display: grid; gap: 0.35rem 1.1rem;
  padding-block: var(--tap-step);
  border-block-end: var(--tap-thin);
}
.tap-story:last-child { border-block-end: 0; }
.tap-story--pictured { grid-template-columns: 7.5rem minmax(0, 1fr); }
.tap-story--pictured .tap-story__thumb { grid-row: span 3; }
.tap-story__thumb img { width: 100%; border: var(--tap-thin); }
.tap-story__thumb { overflow: hidden; margin: 0; }
.tap-story__title { font-size: 1.28rem; margin: 0 0 0.25rem; }
.tap-story__title a { color: inherit; text-decoration: none; }
.tap-story__title a:hover { color: var(--tap-pine); text-decoration: underline; }
.tap-story__tease { margin: 0 0 0.4rem; color: var(--tap-soft); max-width: 38em; }
.tap-story__tag {
  display: block;
  font-family: var(--tap-caps-stack);
  font-size: 0.78rem; color: var(--tap-soft);
  margin-block-start: 0.2rem;
}
.tap-more {
  font-family: var(--tap-caps-stack);
  font-size: 0.8rem; text-transform: uppercase;
  letter-spacing: var(--tap-track);
  text-decoration: none;
  border-block-end: 1px solid currentColor;
}
.tap-more::after { content: " \203A"; }
@media (max-width: 34rem) {
  .tap-story--pictured { grid-template-columns: minmax(0, 1fr); }
  .tap-story--pictured .tap-story__thumb { grid-row: auto; max-width: 10rem; }
}

/* section tiles on home (numbered photo tiles) */
.tap-tiles { list-style: none; margin: 0 0 var(--tap-step); padding: 0; display: grid; gap: var(--tap-step); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 48rem) {
  .tap-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.tap-tile {
  display: grid; grid-template-columns: 8.5rem minmax(0, 1fr);
  gap: 0 1rem; align-items: start;
  border: var(--tap-thin);
  border-block-start: var(--tap-thick);
  background: var(--tap-paper);
  padding: 0.8rem;
}
.tap-tile__thumb { margin: 0; overflow: hidden; }
.tap-tile__thumb img { width: 100%; border: var(--tap-thin); }
.tap-tile__no {
  font-family: var(--tap-caps-stack); font-weight: 700;
  font-size: 0.8rem; letter-spacing: var(--tap-track);
  color: var(--tap-gold);
}
.tap-tile h3 { font-size: 1.15rem; margin: 0.15rem 0 0.3rem; }
.tap-tile h3 a { color: inherit; text-decoration: none; }
.tap-tile h3 a:hover { color: var(--tap-pine); text-decoration: underline; }
.tap-tile p { margin: 0; color: var(--tap-soft); font-size: 0.98rem; }

/* ---------- 10. MARGIN NOTEBOOKS ---------- */
.tap-notebook { margin-block-end: calc(var(--tap-step) * 1.8); }
.tap-notebook__title {
  font-family: var(--tap-caps-stack);
  font-size: 0.85rem; text-transform: uppercase;
  letter-spacing: var(--tap-track);
  margin: 0 0 0.6rem;
  padding-block-end: 0.3rem;
  border-block-end: var(--tap-double);
}
.tap-notebook__note {
  font-family: var(--tap-caps-stack);
  font-size: 0.76rem; color: var(--tap-soft);
  margin-block-start: 0.6rem;
}
.tap-briefs { list-style: none; margin: 0; padding: 0; counter-reset: tapbref; }
.tap-brief {
  padding-block: 0.7rem;
  border-block-end: var(--tap-thin);
  display: grid;
  grid-template-columns: 1.6rem minmax(0, 1fr);
  gap: 0.15rem 0.6rem;
}
.tap-brief:last-child { border-block-end: 0; }
.tap-brief::before {
  counter-increment: tapbref;
  content: counter(tapbref, decimal-leading-zero);
  font-family: var(--tap-caps-stack);
  font-size: 0.9rem; font-weight: 700;
  color: var(--tap-gold);
  grid-row: span 2;
  padding-block-start: 0.15rem;
}
.tap-brief h3 { font-size: 1.02rem; margin: 0; }
.tap-brief h3 a { color: inherit; text-decoration: none; }
.tap-brief h3 a:hover { color: var(--tap-pine); text-decoration: underline; }
.tap-brief p { margin: 0.2rem 0 0; font-size: 0.95rem; color: var(--tap-soft); }
.tap-tallies { list-style: none; margin: 0; padding: 0; }
.tap-tally { padding-block: 0.7rem; border-block-end: var(--tap-thin); }
.tap-tally:last-child { border-block-end: 0; }
.tap-tally__figure {
  display: block;
  font-family: var(--tap-title-stack);
  font-size: 2.15rem; line-height: 1;
  color: var(--tap-pine);
}
.tap-tally__label {
  display: block;
  font-family: var(--tap-caps-stack);
  font-size: 0.8rem; color: var(--tap-soft);
  margin-block-start: 0.2rem;
}
.tap-box {
  border: var(--tap-thin);
  border-block-start: var(--tap-thick);
  background: var(--tap-cream);
  padding: calc(var(--tap-step) * 0.9);
}
.tap-box--pine { background: var(--tap-pine-deep); color: var(--tap-paper); border: 0; }
.tap-box--pine a { color: var(--tap-gold-soft); }
.tap-box--pine .tap-notebook__title { color: var(--tap-gold-soft); border-color: var(--tap-gold); }
.tap-box p:last-child { margin-block-end: 0; }
.tap-fixtures { list-style: none; margin: 0; padding: 0; }
.tap-fixtures li {
  display: grid;
  grid-template-columns: 5.2rem minmax(0, 1fr);
  gap: 0.5rem;
  padding-block: 0.55rem;
  border-block-end: var(--tap-thin);
  font-size: 0.95rem;
}
.tap-fixtures li:last-child { border-block-end: 0; }
.tap-fixtures time {
  font-family: var(--tap-caps-stack);
  font-size: 0.8rem; text-transform: uppercase;
  letter-spacing: 0.06em; color: var(--tap-soft);
  padding-block-start: 0.18rem;
}
.tap-links { list-style: none; margin: 0; padding: 0; }
.tap-links li { padding-block: 0.45rem; border-block-end: var(--tap-thin); }
.tap-links li:last-child { border-block-end: 0; }
.tap-links a { text-decoration: none; }
.tap-links a:hover { text-decoration: underline; }

/* ---------- 11. ARTICLE BODY ---------- */
.tap-trail {
  font-family: var(--tap-caps-stack);
  font-size: 0.78rem; text-transform: uppercase;
  letter-spacing: 0.08em; color: var(--tap-soft);
  margin-block-end: 0.8rem;
}
.tap-trail ol { list-style: none; display: flex; flex-wrap: wrap; gap: 0.3rem 0.5rem; margin: 0; padding: 0; }
.tap-trail li + li::before { content: "\203A\00a0"; color: var(--tap-rule); }
.tap-headline { border-block-end: var(--tap-double); padding-block-end: var(--tap-step); margin-block-end: var(--tap-step); }
.tap-headline h1 { font-size: clamp(1.95rem, 5.4vw, 3.2rem); margin-block: 0.3rem 0.55rem; }
.tap-standfirst { font-size: 1.2rem; color: var(--tap-soft); max-width: 38em; margin-block-end: var(--tap-step); }
.tap-dateline-row {
  display: flex; flex-wrap: wrap;
  gap: 0.3rem 1rem;
  font-family: var(--tap-caps-stack);
  font-size: 0.8rem; text-transform: uppercase;
  letter-spacing: var(--tap-track);
  color: var(--tap-soft);
}
.tap-dateline-row b { color: var(--tap-ink); }
.tap-prose { max-width: 38em; }
.tap-prose h2 {
  font-size: 1.5rem;
  margin-block: calc(var(--tap-step) * 1.5) 0.5rem;
  padding-block-start: 0.5rem;
  border-block-start: var(--tap-thin);
}
.tap-prose h3 {
  font-family: var(--tap-caps-stack);
  font-size: 1.02rem; text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-block: var(--tap-step) 0.35rem;
}
.tap-prose ul, .tap-prose ol { padding-inline-start: 1.3rem; }
.tap-prose li { margin-block-end: 0.35rem; }
.tap-prose > p:first-of-type::first-letter {
  float: left;
  font-family: var(--tap-title-stack);
  font-size: 3.6em; line-height: 0.8;
  padding-inline-end: 0.07em;
  padding-block-start: 0.04em;
  color: var(--tap-pine);
}
.tap-pull {
  border-inline-start: 4px solid var(--tap-gold);
  padding: 0.2rem 0 0.2rem 1rem;
  margin-block: calc(var(--tap-step) * 1.2);
  font-family: var(--tap-title-stack);
  font-size: 1.3rem; line-height: 1.32;
}
.tap-figure { margin-block: calc(var(--tap-step) * 1.3); max-width: 100%; }
.tap-figure img { width: 100%; border: var(--tap-thin); }
.tap-figure figcaption {
  font-family: var(--tap-caps-stack);
  font-size: 0.78rem; color: var(--tap-soft);
  padding-block-start: 0.35rem;
  border-block-start: var(--tap-thin);
  margin-block-start: 0.35rem;
}
.tap-scroll { overflow-x: auto; margin-block-end: var(--tap-step); border-block: var(--tap-thin); }
.tap-scroll table { border-collapse: collapse; width: 100%; min-width: 32rem; margin: 0; font-size: 0.97rem; }
.tap-scroll caption {
  font-family: var(--tap-caps-stack);
  font-size: 0.78rem; text-transform: uppercase;
  letter-spacing: var(--tap-track);
  text-align: left; padding-block: 0.5rem; color: var(--tap-soft);
}
.tap-scroll th, .tap-scroll td { text-align: left; padding: 0.5rem 0.75rem; border-block-end: var(--tap-thin); vertical-align: top; }
.tap-scroll thead th {
  font-family: var(--tap-caps-stack);
  font-size: 0.8rem; text-transform: uppercase;
  letter-spacing: 0.06em;
  border-block-end: var(--tap-thick);
}
.tap-scroll tbody tr:last-child td { border-block-end: 0; }
.tap-colophon {
  border-block-start: var(--tap-double);
  margin-block-start: calc(var(--tap-step) * 1.6);
  padding-block-start: var(--tap-step);
}
.tap-tags { display: flex; flex-wrap: wrap; gap: 0.4rem; list-style: none; margin: 0 0 var(--tap-step); padding: 0; }
.tap-tags a {
  display: inline-block;
  font-family: var(--tap-caps-stack);
  font-size: 0.76rem; text-transform: uppercase;
  letter-spacing: 0.06em; text-decoration: none;
  border: var(--tap-thin); padding: 0.18rem 0.5rem;
  color: var(--tap-ink);
}
.tap-tags a:hover { border-color: var(--tap-pine); color: var(--tap-pine); }

/* ---------- 12. HUB OPENING ---------- */
.tap-opening {
  border-block-end: var(--tap-double);
  padding-block: calc(var(--tap-step) * 0.6) var(--tap-step);
  margin-block-end: var(--tap-step);
}
.tap-opening h1 { font-size: clamp(1.9rem, 5vw, 3rem); margin-block: 0.3rem 0.5rem; }
.tap-opening p { max-width: 38em; color: var(--tap-soft); margin: 0; }
.tap-filters {
  display: flex; flex-wrap: wrap;
  gap: 0.35rem 0.6rem;
  list-style: none; margin: var(--tap-step) 0 0; padding: 0;
  font-family: var(--tap-caps-stack);
  font-size: 0.78rem; text-transform: uppercase;
  letter-spacing: 0.06em;
}
.tap-filters a { text-decoration: none; border: var(--tap-thin); padding: 0.2rem 0.55rem; color: var(--tap-ink); }
.tap-filters a:hover { border-color: var(--tap-pine); color: var(--tap-pine); }
.tap-filters [aria-current="true"] { background: var(--tap-ink); color: var(--tap-paper); border-color: var(--tap-ink); }
.tap-pages {
  display: flex; flex-wrap: wrap; align-items: center;
  gap: 0.4rem; list-style: none;
  margin: calc(var(--tap-step) * 1.5) 0 0;
  padding-block-start: var(--tap-step);
  border-block-start: var(--tap-thick);
  font-family: var(--tap-caps-stack); font-size: 0.85rem;
}
.tap-pages a, .tap-pages span { display: inline-block; padding: 0.3rem 0.65rem; border: var(--tap-thin); text-decoration: none; color: var(--tap-ink); }
.tap-pages [aria-current="page"] { background: var(--tap-ink); color: var(--tap-paper); border-color: var(--tap-ink); }

/* ---------- 13. COLOPHON (footer) ---------- */
.tap-colophon-site {
  border-block-start: var(--tap-double);
  margin-block-start: calc(var(--tap-step) * 2);
  padding-block-start: calc(var(--tap-step) * 1.2);
  font-size: 0.95rem;
  background: var(--tap-pine-deep); color: var(--tap-paper);
  margin-inline: calc(var(--tap-inset) * -1);
  padding-inline: var(--tap-inset);
  padding-block-end: calc(var(--tap-step) * 1.2);
}
.tap-colophon-site a { color: var(--tap-gold-soft); }
.tap-colophon-site p { color: var(--tap-gold-soft); }
.tap-colophon-site h2 {
  font-family: var(--tap-caps-stack);
  font-size: 0.82rem; text-transform: uppercase;
  letter-spacing: var(--tap-track);
  margin: 0 0 0.5rem;
  padding-block-end: 0.25rem;
  border-block-end: 1px solid var(--tap-gold);
  color: var(--tap-paper);
}
.tap-colophon-site__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--tap-step) var(--tap-gap);
}
@media (min-width: 48rem) {
  .tap-colophon-site__row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.tap-colophon-site ul { list-style: none; margin: 0; padding: 0; }
.tap-colophon-site li { padding-block: 0.2rem; }
.tap-colophon-site__line {
  border-block-start: 1px solid var(--tap-gold);
  margin-block-start: var(--tap-step);
  padding-block-start: 0.6rem;
  font-family: var(--tap-caps-stack);
  font-size: 0.76rem; text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--tap-gold-soft);
  display: flex; flex-wrap: wrap;
  gap: 0.3rem 1.2rem; justify-content: space-between;
}

/* ---------- 14. SMALL UTILITIES ---------- */
.tap-tight { margin-block-end: 0; }
.tap-lede { max-width: 38em; color: var(--tap-soft); }
.tap-printed-rule { border: 0; border-block-start: var(--tap-double); margin-block: calc(var(--tap-step) * 1.5); }
@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; }
}
@media print {
  body { background: #fff; }
  .tap-folio { border: 0; max-width: none; }
  .tap-sections { display: none; }
}

/* ---------- 15. PICTURE FRAMES ---------- */
.tap-frame--16x9 { aspect-ratio: 16 / 9; }
.tap-frame--4x3 { aspect-ratio: 4 / 3; }
.tap-frame--1x1 { aspect-ratio: 1 / 1; }
.tap-frame--3x2 { aspect-ratio: 3 / 2; }
.tap-figure img,
.tap-lead__art img,
.tap-story__thumb img,
.tap-tile__thumb img,
.tap-banner img { width: 100%; height: 100%; object-fit: cover; }
.tap-figure.tap-frame--16x9,
.tap-figure.tap-frame--4x3,
.tap-figure.tap-frame--3x2 { overflow: hidden; }
.tap-lead__art { overflow: hidden; }
.tap-story__thumb { overflow: hidden; margin: 0; }
.tap-banner { margin-block: calc(var(--tap-step) * 1.5); overflow: hidden; }
.tap-banner figcaption { max-width: 38em; }
