/* coma.fm Radar — Pearl Broadcast Modernism / Signal Atmosphere
   Swiss International Style / Bauhaus / Mid-century editorial
   Stage 25: Ghost Transmission Layer — late-night archive atmosphere */

:root {
  /* ── Primary palette ────────────────────────────────────── */
  --paper:   #F3EBDD;
  --bg:      #F3EBDD;   /* alias for compat */
  --ivory:   #EFE6D6;
  --cream:   #E6D9C6;
  --ink:     #1F2523;
  --umber:   #3A3128;
  --muted:   #6A5F52;
  --teal:    #2E8C8A;
  --orange:  #D86F32;
  --ochre:   #C6A13A;
  --red:     #A93A32;
  --line:    rgba(31,37,35,.35);
  --max:     1200px;

  /* ── Legacy aliases ─────────────────────────────────────── */
  --surface:   #EFE6D6;
  --surface-2: #E6D9C6;
  --text:      #1F2523;
  --accent:    #D86F32;
  --accent-2:  #2E8C8A;
  --danger:    #A93A32;
  --border:    rgba(31,37,35,.14);
  --rule:      rgba(31,37,35,.35);

  /* ── Font stacks ────────────────────────────────────────── */
  --mono:      "Arial Narrow","IBM Plex Mono","Roboto Condensed",Arial,sans-serif;
  --serif:     Georgia,"Times New Roman",serif;
  --sans:      Arial,Helvetica,sans-serif;
  --font-ui:   Arial,Helvetica,sans-serif;
  --font-text: Georgia,"Times New Roman",serif;
  --font-label:"Arial Narrow","IBM Plex Mono",Arial,sans-serif;

  /* ── Legacy spacing ─────────────────────────────────────── */
  --sp-xs: .25rem; --sp-sm: .5rem; --sp-md: 1rem;
  --sp-lg: 2rem;   --sp-xl: 3rem;  --sp-2xl: 4rem;
}

/* ── Reset ──────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { background: var(--paper); color: var(--ink); }

body {
  font-family: var(--sans);
  background:
    repeating-linear-gradient(45deg, rgba(31,37,35,.012) 0 0.5px, transparent 0.5px 18px),
    linear-gradient(90deg, rgba(31,37,35,.035) 1px, transparent 1px) 0 0 / 72px 72px,
    repeating-linear-gradient(0deg, rgba(31,37,35,.022) 0 1px, transparent 1px 7px),
    radial-gradient(circle at 8% 12%, rgba(216,111,50,.10), transparent 32%),
    radial-gradient(ellipse at 92% 88%, rgba(46,140,138,.05), transparent 38%),
    var(--paper);
  min-height: 100vh;
}

a { color: inherit; text-decoration: none; border-bottom: 1px solid currentColor; }
a:hover { color: var(--orange); text-decoration: none; }

/* ── Layout ─────────────────────────────────────────────────── */

.page,
.site-shell,
.container {
  max-width: var(--max);
  margin: 0 auto;
  padding: 28px clamp(18px,3vw,38px) 48px;
}

/* ── Masthead / Header ───────────────────────────────────────── */

.masthead,
.site-header {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: end;
  gap: 24px;
  border-bottom: 3px solid var(--ink);
  padding-bottom: 18px;
  margin-bottom: 48px;
  text-transform: uppercase;
  font-family: var(--mono);
  letter-spacing: .16em;
  font-weight: 800;
  font-size: 13px;
}

.brand-grid,
.brand-mark,
.header-row {
  display: flex;
  align-items: center;
  gap: 10px;
}

.brand-mark::before,
.brand-grid::before {
  content: "";
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: radial-gradient(circle, var(--ochre) 0 28%, var(--orange) 31% 55%, transparent 58%);
  border: 1px solid var(--orange);
  flex-shrink: 0;
}

.brand-signal { display: none; }

.brand-name { font-weight: 800; letter-spacing: .16em; color: var(--ink); }
.brand-sub   { color: var(--muted); font-weight: 500; letter-spacing: .22em; }
.muted       { color: var(--muted); font-weight: 500; letter-spacing: .22em; }
.brand-line  { display: none; }

/* ── Language switch ─────────────────────────────────────────── */

.lang,
.language-switch {
  display: flex;
  gap: 18px;
  font-family: var(--mono);
  font-size: 13px;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.lang a,
.language-switch a { border-bottom: none; color: var(--ink); }
.lang a:hover,
.language-switch a:hover { color: var(--orange); }
.lang a.active,
.language-switch a.active { color: var(--orange); border-bottom: 2px solid var(--orange); }

/* ── Nav links ───────────────────────────────────────────────── */

.nav-links {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  margin-top: 1.5rem;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.nav-links a { border-bottom: none; color: var(--muted); }
.nav-links a:hover { color: var(--orange); }

.back {
  display: inline-block;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--muted);
  border-bottom: none;
  margin-bottom: 1rem;
}

.back:hover { color: var(--orange); }

/* ── Hero ────────────────────────────────────────────────────── */

.hero {
  display: grid;
  grid-template-columns: minmax(0,1.65fr) minmax(260px,.85fr);
  gap: clamp(28px,6vw,80px);
  min-height: 420px;
  border-bottom: 1px solid var(--line);
  padding-bottom: 72px;
}

.hero.compact {
  min-height: 290px;
  padding-bottom: 48px;
}

.kicker,
.hero-kicker {
  font-family: var(--mono);
  color: var(--orange);
  letter-spacing: .32em;
  text-transform: uppercase;
  font-size: 13px;
  margin-bottom: 28px;
  border-bottom: none;
}

.hero-title {
  font-family: "Arial Black",Impact,var(--sans);
  font-size: clamp(58px,10vw,120px);
  line-height: .78;
  letter-spacing: -.075em;
  margin: 0;
  color: var(--ink);
  border-bottom: none;
}

.hero-title.md {
  font-size: clamp(48px,7.5vw,96px);
}

.hero-deck {
  margin-top: 26px;
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(18px,2vw,25px);
  color: var(--muted);
}

.hero-panel,
.hero-meta {
  border-left: 2px solid var(--ink);
  padding-left: 32px;
  align-self: center;
}

.hero-panel h2 {
  font-family: var(--mono);
  color: var(--teal);
  letter-spacing: .18em;
  text-transform: uppercase;
  font-size: 20px;
  margin: 0 0 22px;
  border-bottom: none;
}

.hero-panel p { font-size: 22px; line-height: 1.45; }

.hero-meta a { border-bottom: none; }

.quick-links {
  display: grid;
  grid-template-columns: repeat(3,max-content);
  gap: 14px 22px;
  font-family: var(--mono);
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: .12em;
  border-top: 1px solid var(--line);
  padding-top: 18px;
  margin-top: 18px;
}

.quick-links a { border-bottom: none; color: var(--ink); }
.quick-links a:hover { color: var(--orange); }

/* ── Signal hero graphic ─────────────────────────────────────── */

.signal-hero-graphic {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 190px;
  margin-top: -18px;
  border: 2px solid var(--ink);
  overflow: hidden;
  background: var(--ivory);
}

.radio-field {
  position: relative;
  background:
    radial-gradient(circle at 22% 56%, transparent 0 35px,
      rgba(46,140,138,.25) 36px 37px, transparent 38px 70px,
      rgba(46,140,138,.22) 71px 72px, transparent 73px 115px,
      rgba(46,140,138,.18) 116px 117px, transparent 118px),
    linear-gradient(180deg, rgba(46,140,138,.35), rgba(46,140,138,.05));
}

.radio-field::before {
  content: "";
  position: absolute;
  left: 22%; bottom: 0;
  width: 2px; height: 105px;
  background: var(--ink);
  transform: translateX(-1px);
}

.radio-field::after {
  content: "";
  position: absolute;
  left: 22%; bottom: 0;
  width: 90px; height: 68px;
  border-left: 2px solid var(--ink);
  border-right: 2px solid var(--ink);
  clip-path: polygon(50% 0, 0 100%, 100% 100%);
  transform: translateX(-45px);
}

.frequency-field,
.frequency-lines {
  padding: 26px 30px 18px;
  background:
    linear-gradient(90deg, transparent 0 50%, rgba(169,58,50,.9) 50% 50.6%, transparent 50.6%),
    repeating-linear-gradient(90deg, rgba(31,37,35,.25) 0 1px, transparent 1px 24px);
}

.frequency-numbers {
  display: flex;
  justify-content: space-between;
  font-family: var(--mono);
  font-size: 12px;
}

/* ── Signal strip ────────────────────────────────────────────── */

.signal-strip {
  display: grid;
  grid-template-columns: repeat(7,1fr);
  border-left: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.signal-token {
  min-height: 54px;
  border-top: 1px solid var(--line);
  border-right: 1px solid var(--line);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--mono);
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-size: 12px;
  color: var(--ink);
  border-bottom: none;
  text-decoration: none;
}

.signal-token:nth-child(1) { color: var(--teal); }
.signal-token:nth-child(4) { color: var(--red); }
.signal-token:nth-child(6) { color: var(--orange); }
.signal-token:hover { color: var(--orange); background: var(--cream); }

/* ── Section head / rule ─────────────────────────────────────── */

.section-head,
.section-rule {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  border-bottom: 2px solid var(--line);
  margin: 56px 0 24px;
  padding-bottom: 14px;
}

hr.section-rule {
  display: none;
  border: none;
}

.section-title,
.section-heading {
  font-family: var(--mono);
  text-transform: uppercase;
  letter-spacing: .22em;
  font-size: 15px;
  margin: 0;
  color: var(--ink);
  border-bottom: none;
}

.section-link {
  font-family: var(--mono);
  text-transform: uppercase;
  letter-spacing: .10em;
  font-size: 12px;
  color: var(--muted);
  border-bottom: none;
}

/* ── Program grid / Issue grid ───────────────────────────────── */

.program-grid,
.issue-grid,
.issue-list {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  border-left: 1px solid var(--line);
  border-top: 1px solid var(--line);
}

.program-card,
.issue-card,
.issue-row {
  min-height: 205px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  display: grid;
  grid-template-columns: 82px 1fr;
  background: rgba(239,230,214,.72);
}

.program-date {
  background: var(--teal);
  color: var(--paper);
  font-family: "Arial Black",Impact,sans-serif;
  font-size: 31px;
  line-height: .92;
  padding: 18px 12px;
  letter-spacing: -.04em;
}

.program-date.orange { background: var(--orange); }
.program-date.ochre  { background: var(--ochre); color: var(--ink); }

.issue-card-date,
.issue-date { color: var(--orange); }

.program-body {
  padding: 26px 22px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.program-body h3 {
  margin: 0;
  font-size: 23px;
  line-height: 1.05;
  letter-spacing: -.035em;
  border-bottom: none;
}

.issue-card-title,
.issue-link {
  font-size: 23px;
  line-height: 1.05;
  letter-spacing: -.035em;
  color: var(--ink);
  border-bottom: none;
  font-weight: 700;
}

.issue-card-title:hover,
.issue-link:hover { color: var(--orange); }

.program-meta,
.issue-card-meta,
.issue-meta {
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .11em;
  color: var(--muted);
}

/* ── Tag line & pills ────────────────────────────────────────── */

.tag-line { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }

.tag-list,
.tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }

.tag-pill,
.tag,
.related-tag {
  border: 1px solid var(--ink);
  padding: 4px 8px;
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .11em;
  background: var(--ivory);
  color: var(--ink);
  display: inline-block;
  border-bottom: 1px solid var(--ink);
}

.tag-pill:hover,
.tag:hover,
.related-tag:hover { color: var(--orange); border-color: var(--orange); }

.tag-pill.teal   { background: var(--teal);   color: var(--paper); border-color: var(--teal); }
.tag-pill.orange { background: var(--orange); color: var(--paper); border-color: var(--orange); }
.tag-pill.red    { background: var(--red);    color: var(--paper); border-color: var(--red); }

/* ── Issue layout ────────────────────────────────────────────── */

.issue-layout { display: grid; gap: 38px; }

.issue-hero {
  display: grid;
  grid-template-columns: minmax(260px,.85fr) minmax(0,1.15fr);
  gap: 38px;
  border-bottom: 2px solid var(--ink);
  padding-bottom: 60px;
}

.issue-cover {
  width: 100%;
  aspect-ratio: 4 / 5;
  border: 1px solid var(--ink);
  background: var(--ivory);
  object-fit: cover;
  display: block;
}

.issue-title {
  font-family: "Arial Black",Impact,sans-serif;
  font-size: clamp(44px,7vw,86px);
  line-height: .9;
  letter-spacing: -.055em;
  margin: 0 0 16px;
  color: var(--ink);
  border-bottom: none;
}

.issue-meta-panel { }

.meta-grid {
  display: grid;
  grid-template-columns: 130px 1fr;
  gap: 10px 24px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 18px 0;
  font-family: var(--mono);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.meta-grid span:nth-child(odd) { color: var(--muted); }

/* ── Transmission summary block — editorial field report ─────── */
.transmission-block {
  margin: 14px 0 16px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}

.tx-summary {
  font-family: var(--mono);
  font-size: .62rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--muted);
  line-height: 1.65;
  margin: 0;
}

/* ── Legacy issue page compat ────────────────────────────────── */
.issue-header { margin-bottom: 1.5rem; }
.issue-date-label { color: var(--orange); font-family: var(--mono); font-size: .8rem; letter-spacing: .08em; }
.intro { font-family: var(--serif); font-style: italic; color: var(--muted); font-size: .9rem; margin-top: .4rem; }
.site-title { font-size: 1.55rem; font-weight: 700; letter-spacing: -.02em; color: var(--ink); border-bottom: none; }
.site-description, .tagline { font-family: var(--serif); color: var(--muted); font-size: .9rem; margin-top: .4rem; font-style: italic; }

/* ── Entry list / Item grid ──────────────────────────────────── */

.entry-list,
.item-grid { border-top: 1px solid var(--ink); counter-reset: item-counter; }

.entry-card,
.item-card,
.item {
  display: grid;
  grid-template-columns: 76px minmax(0,1fr) 80px;
  gap: 24px;
  border-bottom: 1px solid var(--line);
  padding: 24px 0;
  align-items: start;
  counter-increment: item-counter;
}

.entry-number,
.item-number {
  color: var(--orange);
  font-family: "Arial Black",Impact,sans-serif;
  font-size: 42px;
  line-height: .9;
  user-select: none;
}

.item-body { min-width: 0; }

.entry-kicker {
  font-family: var(--mono);
  color: var(--teal);
  letter-spacing: .12em;
  text-transform: uppercase;
  font-size: 11px;
  margin-bottom: 6px;
}

.entry-title,
.item-title,
.entry-card h2,
.entry-card h3,
.item-card h2,
.item-card h3,
.item h2,
.item h3 {
  font-size: 24px;
  line-height: 1.08;
  letter-spacing: -.025em;
  margin: 0 0 8px;
  font-weight: 700;
  color: var(--ink);
}

.entry-title a,
.item-title a,
.entry-card h2 a,
.entry-card h3 a,
.item-card h2 a,
.item-card h3 a {
  color: var(--ink);
  border-bottom: none;
}

.entry-title a:hover,
.item-title a:hover,
.entry-card h2 a:hover,
.entry-card h3 a:hover,
.item-card h2 a:hover,
.item-card h3 a:hover { color: var(--orange); }

.entry-source,
.item-meta,
.meta {
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .11em;
  color: var(--muted);
  line-height: 1.4;
}

.entry-score {
  font-family: var(--mono);
  color: var(--teal);
  text-align: right;
  font-size: 12px;
}

.score  { color: var(--teal); }
.source { color: var(--muted); }
.artists { font-family: var(--mono); font-size: 12px; color: var(--orange); margin-bottom: .3rem; }

/* ── Archive index ───────────────────────────────────────────── */

.archive-index,
.archive-list { border-top: 2px solid var(--ink); }

.archive-row,
.archive-item {
  display: grid;
  grid-template-columns: 150px minmax(0,1fr) 80px 100px 90px;
  gap: 22px;
  align-items: center;
  border-bottom: 1px solid var(--line);
  padding: 18px 0;
  font-family: var(--mono);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .06em;
}

.archive-date { color: var(--orange); font-weight: 800; }

.archive-title,
.archive-link {
  font-family: var(--sans);
  text-transform: none;
  letter-spacing: 0;
  font-size: 17px;
  font-weight: 700;
  color: var(--ink);
  border-bottom: none;
}

.archive-title:hover,
.archive-link:hover { color: var(--orange); }

.archive-meta { color: var(--muted); }

/* ── Taxonomy board ──────────────────────────────────────────── */

.taxonomy-board {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  border-top: 2px solid var(--ink);
  border-left: 1px solid var(--line);
}

.taxonomy-module,
.group {
  min-height: 280px;
  padding: 28px 24px 36px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.taxonomy-module h2,
.group-heading {
  margin: 0 0 22px;
  font-family: var(--mono);
  text-transform: uppercase;
  letter-spacing: .18em;
  font-size: 13px;
  color: var(--orange);
  border-bottom: none;
}

.taxonomy-list,
.tag-grid { display: grid; gap: 11px; }

.taxonomy-list a,
.tag-grid a {
  border-bottom: none;
  font-family: var(--mono);
  text-transform: uppercase;
  letter-spacing: .07em;
  font-size: 12px;
  color: var(--ink);
}

.taxonomy-list a:hover,
.tag-grid a:hover { color: var(--orange); }

/* ── Legacy tag-card ─────────────────────────────────────────── */
.tag-card { border: 1px solid var(--line); padding: .65rem 1rem; background: var(--ivory); }
.tag-count { font-family: var(--mono); font-size: .68rem; color: var(--teal); margin-top: .15rem; }
.tag-desc  { font-size: .74rem; color: var(--muted); margin-top: .22rem; }

/* ── Tag dossier ─────────────────────────────────────────────── */

.tag-dossier {
  display: grid;
  grid-template-columns: minmax(0,1fr) 260px;
  gap: 44px;
  border-top: 2px solid var(--ink);
  padding-top: 38px;
}

.dossier-title {
  font-family: "Arial Black",Impact,sans-serif;
  font-size: clamp(58px,11vw,130px);
  letter-spacing: -.065em;
  line-height: .82;
  margin: 0 0 20px;
  color: var(--ink);
  border-bottom: none;
}

.dossier-note {
  max-width: 620px;
  font-size: 18px;
  line-height: 1.55;
}

.tag-description { font-family: var(--serif); color: var(--muted); font-size: .9rem; margin-top: .5rem; font-style: italic; }
.tag-type        { font-family: var(--mono); font-size: .65rem; letter-spacing: .22em; text-transform: uppercase; color: var(--teal); margin-top: .3rem; }

.tag-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: .5rem 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  margin: .5rem 0 1rem;
}

.related-tags  { display: flex; flex-wrap: wrap; gap: 6px; margin-top: .5rem; }
.related-section { margin: 1.5rem 0; }

.related-section h2,
.items-section h2 {
  font-family: var(--mono);
  font-size: .66rem;
  font-weight: 700;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: .5rem;
  border-bottom: none;
}

.signal-target {
  width: 180px;
  height: 180px;
  border-radius: 50%;
  margin-left: auto;
  background:
    radial-gradient(circle, var(--teal) 0 17%, transparent 18% 35%,
      rgba(46,140,138,.35) 36% 37%, transparent 38% 56%,
      rgba(31,37,35,.35) 57% 58%, transparent 59%),
    linear-gradient(90deg, transparent 0 49%, var(--red) 49.5% 50.5%, transparent 51%);
}

/* ── Transmission metadata / micro labels ───────────────────── */

.micro-grid {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: .2rem .65rem;
  margin-bottom: .4rem;
}

.micro-label {
  font-family: var(--mono);
  font-size: .52rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--muted);
  line-height: 1.6;
  opacity: .72;
}

.tx-code,
.transmission-code {
  font-family: var(--mono);
  font-size: .52rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--teal);
  font-variant-numeric: tabular-nums;
}

.frequency-scale {
  display: flex;
  align-items: stretch;
  height: 14px;
  border-left: 1px solid var(--line);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  margin: .25rem 0 .5rem;
  overflow: hidden;
}

.frequency-mark {
  font-family: var(--mono);
  font-size: .44rem;
  letter-spacing: .04em;
  color: var(--muted);
  opacity: .50;
  padding: 0 .24rem;
  border-right: 1px solid var(--line);
  display: flex;
  align-items: center;
  line-height: 1;
  white-space: nowrap;
}

.signal-dot {
  display: inline-block;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--orange);
  opacity: .50;
  margin-right: .24rem;
  vertical-align: middle;
  flex-shrink: 0;
}

.instrument-line {
  height: 1px;
  background: repeating-linear-gradient(
    90deg,
    var(--orange),
    var(--orange) 2px,
    transparent 2px,
    transparent 7px
  );
  opacity: .15;
  margin: .3rem 0;
}

.field-tags {
  font-family: var(--mono);
  font-size: .52rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--orange);
  opacity: .68;
  margin-bottom: .35rem;
  line-height: 1.5;
}

/* ── Badges ──────────────────────────────────────────────────── */

.badge-draft {
  font-family: var(--mono);
  font-size: .62rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  background: rgba(169,58,50,.10);
  color: var(--red);
  border: 1px solid rgba(169,58,50,.22);
  padding: .08rem .38rem;
  margin-left: .35rem;
}

.badge-published {
  font-family: var(--mono);
  font-size: .62rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  background: rgba(46,140,138,.10);
  color: var(--teal);
  border: 1px solid rgba(46,140,138,.22);
  padding: .08rem .38rem;
  margin-left: .35rem;
}

.draft-notice {
  display: inline-block;
  font-family: var(--mono);
  font-size: .64rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  background: rgba(169,58,50,.08);
  color: var(--red);
  border: 1px solid rgba(169,58,50,.20);
  padding: .18rem .55rem;
  margin-bottom: 1rem;
}

/* ── Empty states ────────────────────────────────────────────── */

.no-items,
.no-issues {
  font-family: var(--serif);
  color: var(--muted);
  font-style: italic;
  padding: 3rem 0;
  font-size: .9rem;
}

/* ── Footer ──────────────────────────────────────────────────── */

.footer,
footer {
  margin-top: 68px;
  padding-top: 18px;
  border-top: 3px solid var(--ink);
  display: flex;
  justify-content: space-between;
  font-family: var(--mono);
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: 11px;
  color: var(--muted);
}

.footer a { color: var(--muted); border-bottom: none; }
.footer a:hover { color: var(--orange); }

/* ── Cover frame system — Stage 24 ──────────────────────────────── */

.cover-frame {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.cover-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 6px;
}

.cover-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 12px;
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .09em;
  color: var(--muted);
  padding-top: 6px;
  border-top: 1px solid var(--line);
  margin-top: 4px;
}

.cover-code {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--teal);
}

.cover-band {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: .09em;
  text-transform: uppercase;
  color: var(--muted);
  opacity: .70;
}

.cover-node {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: .09em;
  text-transform: uppercase;
  color: var(--muted);
  opacity: .60;
}

.cover-mini {
  width: 100%;
  max-width: 120px;
  aspect-ratio: 4 / 5;
  border: 1px solid var(--line);
  display: block;
  object-fit: cover;
  margin-bottom: 10px;
}

.issue-cover-large {
  display: block;
  border: 1px solid var(--ink);
  background: var(--ivory);
  overflow: hidden;
}

.signal-cluster {
  display: flex;
  flex-direction: column;
  gap: 3px;
  margin: 6px 0;
}

.registration-mark {
  width: 16px;
  height: 16px;
  border-left: 1px solid var(--line);
  border-top: 1px solid var(--line);
  opacity: .32;
  flex-shrink: 0;
}

/* ── Stage 25 — Signal Atmosphere / Ghost Transmission Layer ──────── */
/* Direction: late-night transmission archive from alternate radio infrastructure */

/* signal-noise: faint 17°/−73° paper grain overlay */
.signal-noise {
  background-image:
    repeating-linear-gradient(17deg, rgba(31,37,35,.020) 0 0.5px, transparent 0.5px 5px),
    repeating-linear-gradient(-73deg, rgba(31,37,35,.014) 0 0.5px, transparent 0.5px 7px);
}

/* ghost-trace: dashed transmission remnant line */
.ghost-trace {
  height: 1px;
  margin: 1.8rem 0;
  background: repeating-linear-gradient(
    90deg,
    rgba(31,37,35,.24) 0 2px,
    transparent 2px 10px
  );
  opacity: .35;
}

/* relay-line: structural relay connection with endpoint signal dots */
.relay-line {
  height: 1px;
  margin: 3rem 0;
  background: var(--line);
  position: relative;
}
.relay-line::before,
.relay-line::after {
  content: "";
  position: absolute;
  top: -3px;
  width: 7px;
  height: 7px;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: var(--bg);
}
.relay-line::before { left: 0; }
.relay-line::after  { right: 0; }

/* coordinate-mark: engineering crosshair at section origins */
.coordinate-mark {
  display: inline-block;
  width: 16px;
  height: 16px;
  position: relative;
  flex-shrink: 0;
  align-self: center;
  opacity: .25;
}
.coordinate-mark::before,
.coordinate-mark::after {
  content: "";
  position: absolute;
  background: var(--ink);
}
.coordinate-mark::before {
  left: 50%; top: 2px;
  width: 1px; height: calc(100% - 4px);
  transform: translateX(-50%);
}
.coordinate-mark::after {
  top: 50%; left: 2px;
  height: 1px; width: calc(100% - 4px);
  transform: translateY(-50%);
}

/* atmospheric-field: warm atmospheric background zone */
.atmospheric-field {
  background:
    radial-gradient(ellipse at 18% 38%, rgba(216,111,50,.08), transparent 52%),
    radial-gradient(ellipse at 82% 72%, rgba(46,140,138,.05), transparent 45%);
}

/* quiet-meta: secondary instrumentation data — whisper register */
.quiet-meta {
  opacity: .38;
  font-size: .46rem;
}

/* dominant-signal: primary broadcast identifier — authority register */
.dominant-signal {
  opacity: 1;
  letter-spacing: .24em;
}

/* print-drift: editorial tension through typographic offset */
.print-drift {
  position: relative;
  left: 1px;
}

/* transmission-residue: ghost atmospheric fade at element base */
.transmission-residue {
  background-image:
    linear-gradient(to bottom, transparent 62%, rgba(31,37,35,.04) 100%);
}

/* ── Responsive ──────────────────────────────────────────────── */

@media (max-width: 850px) {
  .hero { min-height: auto; }
  .hero,
  .issue-hero,
  .tag-dossier { grid-template-columns: 1fr; }
  .hero-title { font-size: 54px; }
  .hero-panel,
  .hero-meta { border-left: 0; border-top: 2px solid var(--ink); padding: 24px 0 0; }
  .signal-strip { grid-template-columns: repeat(2,1fr); }
  .program-grid,
  .issue-grid,
  .issue-list,
  .taxonomy-board { grid-template-columns: 1fr; }
  .entry-card,
  .item-card,
  .item { grid-template-columns: 54px 1fr; }
  .entry-score { grid-column: 2; text-align: left; }
  .archive-row,
  .archive-item { grid-template-columns: 1fr; gap: 6px; }
  .signal-hero-graphic { grid-template-columns: 1fr; }
}

/* ── Stage 26B — Signal Type System ─────────────────────────────── */

.signal-type {
  display: inline-block;
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  white-space: nowrap;
}

/* ── Stage 26D — Selection Evidence & Editorial Angle ───────────── */

.field-evidence {
  margin-top: 0.55rem;
  font-size: 0.66rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.editorial-angle {
  margin-top: 0.38rem;
  max-width: 42rem;
  font-size: 0.82rem;
  line-height: 1.45;
}

