/* The RainingMoney Report — homepage showcase, archive, breakdown.
   Loaded on the homepage and on /the-report/*. Breakdown rules live under
   .decoder so they do not fight article typography on other pages. */

/* ---- stamp + ledger (shared) ---- */
.tr-stamp {
  width: 40px;
  height: 40px;
  background: var(--paper);
  border: 1px solid var(--rule-2);
  color: var(--navy);
  font-family: var(--serif);
  font-weight: 700;
  font-size: 11px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  overflow: hidden;
}
.tr-stamp img { width: 100%; height: 100%; object-fit: contain; }
.tr-stamp--sm { width: 32px; height: 32px; font-size: 10px; }

.tr-ledger {
  width: 100%;
  border-top: 1px solid var(--rule-2);
  border-bottom: 1px solid var(--rule-2);
  margin-bottom: 16px;
  border-collapse: collapse;
}
.tr-ledger td {
  padding: 6px 0;
  font-size: 12.5px;
  border-bottom: 1px dashed var(--rule);
}
.tr-ledger tr:last-child td { border-bottom: none; }
.tr-ledger-label {
  font-family: var(--sans);
  color: var(--muted);
  text-transform: uppercase;
  font-size: 9.5px;
  letter-spacing: .1em;
}
.tr-ledger-value {
  text-align: right;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  font-family: var(--mono);
  font-size: 12px;
}
.tr-ledger-value.up { color: var(--up); }
.tr-ledger-value.down { color: var(--down); }
.tr-ledger-value.flat { color: var(--ink-2); }

.tr-editorial-link {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--navy);
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-family: var(--sans);
}
.tr-editorial-link:hover { color: var(--gold); }

/* ---- homepage showcase ---- */
.sec--the-report {
  background: var(--panel);
  border-top: 4px solid var(--navy);
  border-bottom: 1px solid var(--rule-2);
  margin-block: var(--gap);
}
.tr-editorial-header {
  padding: 28px var(--gut) 20px;
  border-bottom: 1px solid var(--rule);
  text-align: center;
}
.tr-editorial-kicker {
  font-family: var(--sans);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .25em;
  text-transform: uppercase;
  color: var(--gold);
  display: block;
  margin-bottom: 6px;
}
.tr-editorial-title {
  font-family: var(--serif);
  font-size: clamp(1.8rem, 1.2rem + 1.5vw, 2.6rem);
  font-weight: 700;
  letter-spacing: -.02em;
  color: var(--navy);
  line-height: 1.1;
  text-transform: uppercase;
}
.tr-editorial-subquote {
  font-family: var(--serif);
  font-size: 14.5px;
  font-style: italic;
  color: var(--muted);
  margin-top: 6px;
}
.tr-editorial-body {
  padding: 24px var(--gut);
  display: grid;
  gap: 24px;
}
.tr-lead-kicker {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--navy);
  border-bottom: 1px solid var(--navy);
  padding-bottom: 3px;
  display: inline-block;
  margin-bottom: 12px;
  font-family: var(--sans);
}
.tr-lead-head {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 12px;
}
.tr-lead-headline {
  font-family: var(--serif);
  font-size: clamp(1.15rem, 1rem + 0.6vw, 1.4rem);
  font-weight: 700;
  color: var(--navy);
  line-height: 1.25;
}
.tr-lead-headline a:hover { color: var(--gold); }
.tr-lead-period {
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--muted);
  margin-top: 3px;
  font-family: var(--sans);
}
.tr-lead-excerpt {
  font-family: var(--serif);
  font-size: 14.5px;
  line-height: 1.5;
  color: var(--ink-2);
  margin-bottom: 16px;
}
.tr-editorial-grid {
  display: grid;
  gap: 20px;
  grid-template-columns: 1fr;
}
.tr-grid-entry {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding-top: 14px;
  border-top: 1px solid var(--rule-2);
}
.tr-grid-head {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 10px;
}
.tr-grid-title {
  font-family: var(--serif);
  font-size: 16px;
  font-weight: 700;
  color: var(--navy);
  line-height: 1.25;
}
.tr-grid-title a:hover { color: var(--gold); }
.tr-grid-period {
  font-size: 10px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--muted);
  margin-top: 2px;
}
.tr-editorial-footer {
  padding: 14px var(--gut);
  background: var(--panel-2);
  border-top: 1px solid var(--rule);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.tr-archive-btn {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--navy);
  border-bottom: 2px solid var(--gold-lite);
  padding-bottom: 2px;
  font-family: var(--sans);
}
.tr-archive-btn:hover { color: var(--gold); border-color: var(--navy); }

/* ---- archive ---- */
.tr-archive-header {
  background: var(--panel);
  border-top: 4px solid var(--navy);
  border-bottom: 1px solid var(--rule-2);
  padding: 36px var(--gut) 24px;
  text-align: center;
  margin-top: var(--gap);
}
.tr-archive-kicker {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--gold);
  display: block;
  margin-bottom: 6px;
}
.tr-archive-main-title {
  font-family: var(--serif);
  font-size: clamp(2rem, 1.4rem + 2vw, 3.2rem);
  font-weight: 700;
  letter-spacing: -.02em;
  color: var(--navy);
  line-height: 1.1;
  text-transform: uppercase;
}
.tr-archive-subhead {
  font-family: var(--serif);
  font-size: 16px;
  font-style: italic;
  color: var(--muted);
  margin-top: 8px;
}
.tr-archive-filters {
  background: var(--panel-2);
  border-bottom: 1px solid var(--rule-2);
  padding: 20px var(--gut);
  margin-bottom: var(--gap);
}
.tr-filter-title {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--navy);
  margin-bottom: 10px;
  display: block;
  font-family: var(--sans);
}
.tr-filter-group {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 16px;
}
.tr-filter-group:last-child { margin-bottom: 0; }
.tr-filter-pill {
  background: var(--panel);
  border: 1px solid var(--rule-2);
  padding: 6px 14px;
  font-size: 12px;
  font-family: var(--sans);
  color: var(--ink-2);
  text-decoration: none;
}
.tr-filter-pill:hover { border-color: var(--navy); }
.tr-filter-pill.is-active {
  background: var(--navy);
  color: #fff;
  border-color: var(--navy);
  font-weight: 600;
}
.tr-filter-divider {
  height: 1px;
  background: var(--rule);
  margin-block: 14px;
}
.tr-filter-row {
  display: flex;
  flex-wrap: wrap;
  gap: 32px;
}
.tr-archive-count {
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 16px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--rule);
  font-family: var(--sans);
}
.tr-archive-grid {
  display: grid;
  gap: 24px;
  grid-template-columns: 1fr;
  margin-bottom: 40px;
}
.tr-archive-card {
  background: var(--panel);
  border: 1px solid var(--rule-2);
  padding: 18px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.tr-archive-card:hover { border-color: var(--navy); }
.tr-archive-card-header {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 14px;
}
.tr-archive-card-copy { flex-grow: 1; min-width: 0; }
.tr-archive-card-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 6px;
  gap: 8px;
}
.tr-sector-badge {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--gold);
}
.tr-period-badge {
  font-size: 9.5px;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--muted);
}
.tr-archive-card-title {
  font-family: var(--serif);
  font-size: 18px;
  font-weight: 700;
  color: var(--navy);
  line-height: 1.2;
}
.tr-archive-card-excerpt {
  font-family: var(--serif);
  font-size: 13.5px;
  color: var(--ink-2);
  line-height: 1.45;
  margin-bottom: 14px;
}
.tr-archive-empty {
  text-align: center;
  padding: 48px var(--gut);
  color: var(--muted);
  font-family: var(--serif);
  font-size: 1.1rem;
}
.tr-pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 6px;
  margin-bottom: 60px;
  flex-wrap: wrap;
}
.tr-page-num {
  padding: 8px 14px;
  border: 1px solid var(--rule-2);
  background: var(--panel);
  font-size: 12px;
  font-weight: 600;
  color: var(--navy);
  text-decoration: none;
}
.tr-page-num.is-active {
  background: var(--navy);
  color: #fff;
  border-color: var(--navy);
}

/* ---- rail ---- */
.tr-watch-period {
  font-family: var(--mono);
  font-size: 11px;
  color: var(--muted);
  letter-spacing: .06em;
  text-transform: uppercase;
}

/* ---- breakdown (.decoder) ----
   Body styling follows the Report Decoder mockup (Newsreader + Archivo,
   Ndem / Isong). Site masthead and footer stay on the live chrome. */
.decoder {
  --decoder-serif: "Newsreader", Georgia, serif;
  --decoder-sans: "Archivo", sans-serif;
  --decoder-measure: 34em;
  --decoder-ndem: #0D3B5C;
  --decoder-ndem-deep: #082740;
  --decoder-ndem-soft: #2E6489;
  --decoder-ndem-pale: #9DBDD4;
  --decoder-isong: #C08A2E;
  --decoder-isong-light: #E3B45C;
  --decoder-isong-deep: #8F6415;
  --decoder-paper: #F5F3EE;
  --decoder-paper-d: #E9E5DC;
  --decoder-ink: #17202A;
  --decoder-muted: #5D6B78;
  --decoder-rule: #D6D1C6;
  --decoder-alarm: #9E3620;
  color: var(--decoder-ink);
  font-family: var(--decoder-serif);
  font-weight: 300;
  font-size: clamp(17px, 1.05rem + .2vw, 19.5px);
  line-height: 1.65;
}
/* :where() keeps specificity at 0 so later decoder rules always win. */
.decoder :where(h1, h2, h3, p, button) { all: revert; }
.decoder [hidden] { display: none !important; }

.decoder-wrap {
  width: min(700px, 100%);
  margin-inline: auto;
  padding-inline: 20px;
  padding-bottom: 80px;
}
.decoder-crumb {
  font-family: var(--decoder-sans);
  font-size: 12.5px;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  color: var(--decoder-ndem-soft);
  padding: 26px 0 0;
  margin: 0;
}
.decoder-crumb a { color: var(--decoder-ndem); text-decoration: none; }
.decoder-crumb a:hover { color: var(--decoder-isong-deep); }
.decoder-kicker {
  font-family: var(--decoder-sans);
  font-size: 12.5px;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  color: var(--decoder-ndem-soft);
  display: block;
  margin: 8px 0 0;
}
.decoder .decoder-h1 {
  font-family: var(--decoder-serif);
  font-weight: 400;
  font-size: clamp(31px, 6.2vw, 48px);
  line-height: 1.08;
  letter-spacing: -.022em;
  color: var(--decoder-ndem);
  margin: 16px 0 18px;
}
.decoder-standfirst {
  font-family: var(--decoder-serif);
  font-size: 1.08em;
  font-style: normal;
  font-weight: 300;
  line-height: 1.58;
  color: var(--decoder-ink);
  margin: 0 0 24px;
  max-width: var(--decoder-measure);
}
.decoder-byline {
  font-family: var(--decoder-sans);
  font-size: 13px;
  color: var(--decoder-muted);
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  align-items: center;
  margin: 0 0 0;
  padding-bottom: 22px;
  border-bottom: 1px solid var(--decoder-rule);
}
.decoder-byline b { color: var(--decoder-ink); font-weight: 600; }
.decoder-byline-dot { color: var(--decoder-rule); padding: 0; }
.decoder-verified {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--decoder-ndem);
  font-weight: 600;
}
.decoder-verified::before {
  content: "";
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--decoder-isong);
  flex-shrink: 0;
}

.decoder-body { font-size: inherit; line-height: 1.65; }
.decoder-body p {
  font-family: var(--decoder-serif);
  font-weight: 300;
  margin: 0 0 20px;
  max-width: var(--decoder-measure);
}
.decoder-num {
  font-family: var(--decoder-sans);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

/* section heads inside the pasted body */
.decoder-q,
.decoder-body h2.decoder-q,
.decoder h2.decoder-q {
  font-family: var(--decoder-serif);
  font-weight: 400;
  font-size: clamp(24px, 4.6vw, 32px);
  line-height: 1.22;
  letter-spacing: -.018em;
  color: var(--decoder-ndem);
  margin: 50px 0 18px;
  padding-top: 24px;
  border-top: 1px solid var(--decoder-rule);
}

/* five things — published singular + older plural */
.decoder-fivething,
.decoder-fivethings {
  background: var(--decoder-ndem);
  color: #fff;
  padding: 26px 22px;
  margin: 30px 0 40px;
  border: 0;
  border-left: 5px solid var(--decoder-isong);
}
.decoder-fivething h2,
.decoder-fivethings h2 {
  font-family: var(--decoder-sans);
  font-size: 13px;
  font-weight: 600;
  color: var(--decoder-isong-light);
  margin: 0 0 16px;
}
.decoder-fivething ol,
.decoder-fivethings ol {
  margin: 0;
  padding-left: 20px;
}
.decoder-fivething li,
.decoder-fivethings li {
  margin-bottom: 12px;
  line-height: 1.5;
  color: #EAF1F6;
  font-size: .97em;
  max-width: var(--decoder-measure);
}
.decoder-fivething li::marker,
.decoder-fivethings li::marker {
  color: var(--decoder-isong);
  font-family: var(--decoder-sans);
  font-weight: 700;
}
.decoder-fivething li:last-child,
.decoder-fivethings li:last-child { margin-bottom: 0; }

/* hero wedge + bars */
.decoder-hero {
  background: var(--decoder-ndem-deep);
  color: #fff;
  padding: 28px 22px 24px;
  margin: 0;
}
.decoder-hero h2 {
  font-family: var(--decoder-sans);
  font-size: 12.5px;
  font-weight: 600;
  color: var(--decoder-ndem-pale);
  margin: 0 0 22px;
}
.decoder-bar-row { margin-bottom: 24px; }
.decoder-bar-label {
  font-family: var(--decoder-sans);
  font-size: 13.5px;
  margin-bottom: 9px;
  color: #DCE8F0;
}
.decoder-bar-track {
  height: 13px;
  background: rgba(157, 189, 212, .22);
}
.decoder-bar-fill {
  height: 13px;
  background: #fff;
}
.decoder-bar-fill.is-gold,
.decoder-bar-fill.gold { background: var(--decoder-isong); }
.decoder-bar-value {
  font-family: var(--decoder-sans);
  font-size: clamp(26px, 7vw, 32px);
  font-weight: 700;
  letter-spacing: -.025em;
  display: block;
  margin-top: 9px;
}
.decoder-bar-value.is-gold,
.decoder-bar-value.gold { color: var(--decoder-isong-light); }
.decoder-hero-note {
  font-size: .94em;
  line-height: 1.55;
  color: #C6D8E4;
  margin: 0;
  max-width: none;
  border-top: 1px solid rgba(157, 189, 212, .25);
  padding-top: 18px;
}
.decoder-caption {
  font-family: var(--decoder-sans);
  font-size: 12px;
  color: var(--decoder-muted);
  margin: 10px 0 42px;
  max-width: var(--decoder-measure);
  line-height: 1.5;
}

/* jargon */
.decoder-jargon {
  display: inline;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  color: var(--decoder-ndem);
  border-bottom: 1.5px dotted var(--decoder-isong);
  cursor: pointer;
}
.decoder-jargon:hover,
.decoder-jargon.is-open { background: var(--decoder-paper-d); }
.decoder-jargon-body,
.decoder-jargon-tip {
  display: none;
  font-family: var(--decoder-sans);
  font-size: .85em;
  line-height: 1.6;
  background: var(--decoder-paper-d);
  border-left: 3px solid var(--decoder-isong);
  padding: 14px 16px;
  margin: 0 0 22px;
  max-width: var(--decoder-measure);
  color: var(--decoder-ink);
}
.decoder-jargon-body.is-open,
.decoder-jargon-body.open,
.decoder-jargon-tip { display: block; }

/* toggle — published tabs are bare buttons inside .decoder-toggle-tabs */
.decoder-toggle {
  border: 1px solid var(--decoder-rule);
  margin: 0 0 14px;
  max-width: var(--decoder-measure);
  background: #fff;
}
.decoder-toggle-tabs { display: flex; }
.decoder-toggle-tabs button,
.decoder-toggle-tab {
  flex: 1;
  font-family: var(--decoder-sans);
  font-size: 13px;
  font-weight: 500;
  padding: 13px 8px;
  background: var(--decoder-paper-d);
  color: var(--decoder-muted);
  border: 0;
  border-bottom: 1px solid var(--decoder-rule);
  cursor: pointer;
  line-height: 1.3;
  letter-spacing: 0;
  text-transform: none;
}
.decoder-toggle-tabs button[aria-selected="true"],
.decoder-toggle-tab.is-active {
  background: #fff;
  color: var(--decoder-ndem);
  font-weight: 600;
  border-bottom: 2px solid var(--decoder-isong);
  box-shadow: none;
}
.decoder-toggle-panel {
  display: none;
  padding: 20px 18px;
  font-family: var(--decoder-serif);
  font-size: inherit;
  line-height: 1.55;
}
.decoder-toggle-panel.is-open,
.decoder-toggle-panel.is-active,
.decoder-toggle-panel.open { display: block; }
.decoder-toggle-panel p:last-child { margin-bottom: 0; }
.decoder-flag-gold { color: var(--decoder-isong-deep); font-family: var(--decoder-sans); font-weight: 700; }
.decoder-flag-alarm { color: var(--decoder-alarm); font-family: var(--decoder-sans); font-weight: 700; }
.decoder-attribution {
  font-family: var(--decoder-sans);
  font-size: 12.5px;
  color: var(--decoder-muted);
  max-width: var(--decoder-measure);
  margin-bottom: 26px;
}

/* money map */
.decoder-map { max-width: var(--decoder-measure); margin-bottom: 12px; }
.decoder-map-row { padding: 13px 0; border-bottom: 1px solid var(--decoder-rule); }
.decoder-map-top {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 14px;
}
.decoder-map-name { font-family: var(--decoder-sans); font-size: 15px; font-weight: 600; }
.decoder-map-amt {
  font-family: var(--decoder-sans);
  font-weight: 700;
  font-size: 19px;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  color: var(--decoder-ndem);
}
.decoder-map-bar { height: 8px; background: var(--decoder-paper-d); margin: 9px 0 7px; }
.decoder-map-bar i { display: block; height: 8px; background: var(--decoder-ndem-soft); }
.decoder-map-bar i.is-gold,
.decoder-map-bar i.gold { background: var(--decoder-isong); }
.decoder-map-note { font-size: .87em; color: var(--decoder-muted); line-height: 1.45; }
.decoder-map-row.is-keep,
.decoder-map-row.keep {
  background: var(--decoder-ndem);
  color: #fff;
  border-bottom: 0;
  padding: 16px;
  margin-top: 8px;
}
.decoder-map-row.is-keep .decoder-map-amt,
.decoder-map-row.keep .decoder-map-amt { color: var(--decoder-isong-light); }
.decoder-map-row.is-keep .decoder-map-note,
.decoder-map-row.keep .decoder-map-note { color: var(--decoder-ndem-pale); }
.decoder-map-row.is-keep .decoder-map-bar,
.decoder-map-row.keep .decoder-map-bar { background: rgba(157, 189, 212, .25); }

/* what changed */
.decoder-attn { max-width: var(--decoder-measure); }
.decoder-attn-item { padding: 18px 0; border-bottom: 1px solid var(--decoder-rule); }
.decoder-attn-item h3 {
  font-family: var(--decoder-sans);
  font-size: 16.5px;
  font-weight: 600;
  margin: 0 0 7px;
  color: var(--decoder-ndem);
}
.decoder-attn-item p { margin: 0; font-size: .97em; }

/* scorecard — published .decoder-score + field-built .decoder-scorecard */
.decoder-score {
  max-width: var(--decoder-measure);
  border-top: 2px solid var(--decoder-ndem);
}
.decoder-score-item {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px 14px;
  align-items: start;
  padding: 15px 0;
  border-bottom: 1px solid var(--decoder-rule);
}
.decoder-score-cat { font-family: var(--decoder-sans); font-size: 15px; font-weight: 600; }
.decoder-score-rule { font-size: .87em; color: var(--decoder-muted); line-height: 1.45; margin-top: 3px; }
.decoder-tag {
  font-family: var(--decoder-sans);
  font-size: 12px;
  font-weight: 700;
  padding: 5px 11px;
  white-space: nowrap;
}
.decoder-tag.is-strong,
.decoder-tag.strong { background: var(--decoder-ndem); color: #fff; }
.decoder-tag.is-steady,
.decoder-tag.steady {
  background: transparent;
  color: var(--decoder-ndem);
  border: 1.5px solid var(--decoder-ndem-soft);
}
.decoder-tag.is-watch,
.decoder-tag.watch { background: var(--decoder-isong); color: #241900; }
.decoder-score-foot {
  font-family: var(--decoder-sans);
  font-size: 13px;
  color: var(--decoder-muted);
  line-height: 1.6;
  margin-top: 16px;
  max-width: var(--decoder-measure);
}

.decoder-scorecard { margin: 32px 0; max-width: var(--decoder-measure); border-top: 2px solid var(--decoder-ndem); }
.decoder-scorecard-list { list-style: none; margin: 0; padding: 0; }
.decoder-scorecard-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px 14px;
  padding: 15px 0;
  border-bottom: 1px solid var(--decoder-rule);
  font-size: 15px;
  align-items: start;
}
.decoder-scorecard-cat { font-weight: 600; color: var(--decoder-ndem); font-family: var(--decoder-sans); }
.decoder-scorecard-rule { color: var(--decoder-muted); font-size: .87em; line-height: 1.45; }
.decoder-scorecard-label {
  font-family: var(--decoder-sans);
  font-size: 12px;
  font-weight: 700;
  padding: 5px 11px;
  white-space: nowrap;
  letter-spacing: 0;
  text-transform: none;
}
.decoder-scorecard-label--strong { background: var(--decoder-ndem); color: #fff; }
.decoder-scorecard-label--steady {
  background: transparent;
  color: var(--decoder-ndem);
  border: 1.5px solid var(--decoder-ndem-soft);
}
.decoder-scorecard-label--watch { background: var(--decoder-isong); color: #241900; }

/* comprehension checks */
.decoder-check {
  border: 1px solid var(--decoder-ndem-soft);
  background: #fff;
  padding: 16px 18px;
  margin-bottom: 12px;
  max-width: var(--decoder-measure);
}
.decoder-check > p:not(.decoder-check-answer):not(.decoder-check-a),
.decoder-check-q {
  font-family: var(--decoder-sans);
  font-size: 14.5px;
  font-weight: 600;
  margin: 0 0 12px;
  line-height: 1.5;
  color: var(--decoder-ink);
}
.decoder-check-reveal,
.decoder-check-btn {
  font-family: var(--decoder-sans);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  background: var(--decoder-ndem);
  color: #fff;
  border: 0;
  padding: 9px 16px;
  cursor: pointer;
}
.decoder-check-reveal:hover,
.decoder-check-btn:hover { background: var(--decoder-ndem-deep); }
.decoder-check-answer,
.decoder-check-a {
  display: none;
  font-family: var(--decoder-serif);
  font-size: .95em;
  font-weight: 300;
  margin: 14px 0 0;
  padding: 14px 0 0;
  border-top: 1px solid var(--decoder-rule);
  background: transparent;
  max-width: none;
}
.decoder-check-answer.is-open,
.decoder-check-answer.open,
.decoder-check-a:not([hidden]) { display: block; }

/* bottom line — published + older name */
.decoder-bottom,
.decoder-bottomline {
  background: var(--decoder-ndem);
  color: #fff;
  padding: 30px 24px;
  margin-top: 50px;
  border: 0;
  border-top: 5px solid var(--decoder-isong);
}
.decoder-bottom h2,
.decoder-bottomline h2 {
  font-family: var(--decoder-sans);
  font-size: 13px;
  font-weight: 600;
  color: var(--decoder-isong-light);
  margin: 0 0 16px;
}
.decoder-bottom p,
.decoder-bottomline p {
  font-size: 1.08em;
  line-height: 1.55;
  color: #EAF1F6;
  margin-bottom: 16px;
  max-width: none;
}
.decoder-bottom p:last-child,
.decoder-bottomline p:last-child { margin-bottom: 0; }

.decoder-block-title {
  font-family: var(--decoder-sans);
  font-size: 19px;
  font-weight: 700;
  color: var(--decoder-ndem);
  margin: 0 0 8px;
}

.decoder-pdf {
  background: #fff;
  border: 2px solid var(--decoder-ndem);
  padding: 26px 24px;
  margin-top: 34px;
}
.decoder-speak-card, .decoder-trust {
  margin: 34px 0 0;
  padding: 20px 20px;
  border: 1px solid var(--decoder-rule);
  border-left: 5px solid var(--decoder-isong);
  background: #fff;
  max-width: var(--decoder-measure);
}
.decoder-pdf-dek, .decoder-speak-card p, .decoder-trust p, .decoder-trust li {
  font-family: var(--decoder-serif);
  font-size: .95em;
  color: var(--decoder-ink);
}
.decoder-pdf-form {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 12px 0;
}
.decoder-pdf-form input {
  flex: 1 1 220px;
  min-width: 0;
  font-family: var(--decoder-sans);
  font-size: 15px;
  padding: 13px 14px;
  border: 1px solid var(--decoder-rule);
  background: var(--decoder-paper);
  color: var(--decoder-ink);
}
.decoder-pdf-form button {
  flex: 0 0 auto;
  font-family: var(--decoder-sans);
  font-size: 15px;
  font-weight: 700;
  background: var(--decoder-isong);
  color: #241900;
  border: 0;
  padding: 13px 24px;
  letter-spacing: 0;
  text-transform: none;
  cursor: pointer;
}
.decoder-pdf-form button:hover { background: var(--decoder-isong-light); }
.decoder-pdf-direct { font-family: var(--decoder-sans); font-size: 12.5px; color: var(--decoder-muted); }
.decoder-pdf-direct a { color: var(--decoder-ndem); }
.decoder-speak-kicker {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  color: var(--decoder-isong-deep);
  font-family: var(--decoder-sans);
}
.decoder-speak-title {
  font-family: var(--decoder-sans);
  font-size: 15.5px;
  font-weight: 600;
  color: var(--decoder-ndem);
  margin: 6px 0 8px;
}
.decoder-speak-card a.tr-editorial-link {
  font-family: var(--decoder-sans);
  font-size: 13.5px;
  font-weight: 600;
  color: var(--decoder-ndem);
  text-decoration: none;
  border-bottom: 2px solid var(--decoder-isong);
  letter-spacing: 0;
  text-transform: none;
}
.decoder-trust-checks { padding-left: 1.2rem; list-style: decimal; }
.decoder-trust-advice {
  font-weight: 600;
  color: var(--decoder-ndem) !important;
}

@media (prefers-reduced-motion: no-preference) {
  .decoder-bar-fill, .decoder-map-bar i { transition: width .7s cubic-bezier(.2, .7, .3, 1); }
}
@media (max-width: 420px) {
  .decoder-hero,
  .decoder-bottom,
  .decoder-bottomline,
  .decoder-fivething,
  .decoder-fivethings,
  .decoder-pdf { padding-left: 18px; padding-right: 18px; }
  .decoder-score-item { grid-template-columns: 1fr; }
  .decoder-tag { justify-self: start; }
}

.tr-preview-banner {
  background: var(--navy);
  color: var(--paper);
  padding: 10px var(--gut);
  font-family: var(--sans);
  font-size: 12px;
  letter-spacing: .08em;
  text-transform: uppercase;
  text-align: center;
}
.tr-preview-banner strong { color: var(--gold); }
.tr-preview-switch {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
  padding: 12px var(--gut);
  background: var(--panel-2);
  border-bottom: 1px solid var(--rule);
}
.tr-preview-switch a, .tr-preview-switch button {
  border: 1px solid var(--navy);
  background: transparent;
  color: var(--navy);
  padding: 6px 12px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
  font-family: var(--sans);
  text-decoration: none;
}
.tr-preview-switch .is-active {
  background: var(--navy);
  color: #fff;
}
.tr-preview-panel { display: none; }
.tr-preview-panel.is-active { display: block; }

@media (min-width: 640px) {
  .tr-archive-grid { grid-template-columns: repeat(2, 1fr); }
  .decoder-scorecard-row { grid-template-columns: 140px 1fr auto; }
}
@media (min-width: 960px) {
  .tr-editorial-body {
    grid-template-columns: 1.1fr 1.9fr;
    gap: 32px;
  }
  .tr-lead-article {
    border-right: 1px solid var(--rule-2);
    padding-right: 32px;
  }
  .tr-editorial-grid { grid-template-columns: repeat(3, 1fr); }
  .tr-grid-entry {
    border-top: none;
    padding-top: 0;
    border-right: 1px dashed var(--rule);
    padding-right: 16px;
  }
  .tr-grid-entry:last-child {
    border-right: none;
    padding-right: 0;
  }
  .tr-archive-grid { grid-template-columns: repeat(3, 1fr); }
}
