/* Production-only guards layered above the frozen Archive Pulse base. */
html { overflow-x: hidden; }

/* Keep the heading fixed while the real ledger scrolls inside its instrument rail. */
.timeline-section {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  height: 318px;
  min-width: 0;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-x: contain;
}

.timeline-track {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0;
  width: 100%;
  min-width: 0;
  min-height: 0;
  height: auto;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 8px 24px 12px;
  overscroll-behavior-x: contain;
  scrollbar-color: var(--mint) rgba(86, 239, 180, .08);
  scrollbar-width: thin;
}

.timeline-track .track-line {
  top: 50%;
  right: 24px;
  bottom: auto;
  left: 24px;
  transform: translateY(-50%);
}

.timeline-node {
  flex: 0 0 116px;
  min-width: 116px;
  display: grid;
  grid-template-rows: auto auto 16px auto;
  align-items: center;
  justify-items: center;
  align-content: center;
  gap: 5px;
  min-height: 0;
  padding-inline: 6px;
}

.timeline-node .timeline-year {
  color: var(--dim);
  font: var(--telemetry-floor) var(--mono);
  letter-spacing: .12em;
  text-transform: uppercase;
}

.timeline-node .event-label {
  max-width: 104px;
  overflow: hidden;
  color: var(--muted);
  font: 600 var(--telemetry-floor)/1.2 var(--mono);
  letter-spacing: .06em;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.timeline-node i {
  width: 12px;
  height: 12px;
  margin: 0;
  border: 2px solid var(--mint);
  border-radius: 50%;
  background: var(--canvas);
  transition: box-shadow var(--ease), transform var(--ease), background var(--ease);
}

.timeline-node.targeted i { border-color: var(--amber); }
.timeline-node small {
  margin: 0;
  color: var(--dim);
  font: var(--telemetry-floor) var(--mono);
  letter-spacing: .11em;
  text-transform: uppercase;
}
.timeline-node:hover i { transform: scale(1.17); }
.timeline-node.is-selected i {
  transform: scale(1.34);
  background: var(--mint-soft);
  box-shadow: 0 0 0 5px rgba(86, 239, 180, .12), 0 0 20px rgba(86, 239, 180, .4);
}
.timeline-node.is-selected .timeline-year,
.timeline-node.is-selected .event-label,
.timeline-node.is-selected small { color: var(--mint); }

.timeline-range {
  display: block;
  margin-top: 8px;
  color: var(--dim);
  font: var(--telemetry-floor) var(--mono);
  letter-spacing: .08em;
  text-transform: uppercase;
}

.timeline-hint {
  display: block;
  margin-top: 6px;
  color: var(--amber);
  font: var(--telemetry-floor) var(--mono);
  letter-spacing: .08em;
  text-transform: uppercase;
}

.future-node {
  flex: 0 0 98px;
  min-width: 98px;
  display: grid;
  grid-template-rows: 16px auto auto;
  align-items: center;
  justify-items: center;
  align-content: center;
  gap: 5px;
  padding-inline: 6px;
  color: var(--dim);
  font: var(--telemetry-floor)/1.35 var(--mono);
  text-align: center;
}
.future-node i {
  width: 12px;
  height: 12px;
  margin: 0;
  border: 1px dashed var(--dim);
  border-radius: 50%;
  background: var(--canvas);
}
.future-node span, .future-node strong {
  color: var(--dim);
  font: var(--telemetry-floor) var(--mono);
  letter-spacing: .1em;
  text-transform: uppercase;
}
.future-node strong { color: var(--muted); font-size: .76rem; }

/* Healthy is affirmative; amber is reserved for uncertainty and fail-closed states. */
.preview-banner {
  border-color: rgba(86, 239, 180, .34);
  color: var(--mint);
  background: rgba(86, 239, 180, .045);
}
.preview-banner i { background: var(--mint); }
.preview-banner span:nth-child(2) { color: rgba(189, 249, 220, .7); }
.preview-banner.is-stale {
  border-color: rgba(229, 183, 95, .45);
  color: var(--amber);
  background: rgba(229, 183, 95, .055);
}
.preview-banner.is-stale i { background: var(--amber); }
.preview-banner.is-stale span:nth-child(2) { color: rgba(229, 183, 95, .72); }

.instrument-state { color: var(--mint); }
.instrument-state.is-stale, .instrument-state.is-research { color: var(--amber); }

.latest-module { min-width: 0; }
.latest-module time { margin: 0 0 7px; }
.latest-classification {
  width: max-content;
  max-width: 100%;
  margin: 17px 0 11px;
  padding: 6px 8px;
  overflow-wrap: anywhere;
  border: 1px solid rgba(229, 183, 95, .55);
  color: var(--amber);
  font: 600 var(--telemetry-floor) var(--mono);
  letter-spacing: .08em;
  text-transform: uppercase;
}
.latest-classification.is-broad { border-color: rgba(86, 239, 180, .45); color: var(--mint); }
.latest-classification.is-muted { border-color: var(--line-soft); color: var(--dim); }

/* First-party sponsor availability stays visible even when monetization mode is none. */
.sponsor-availability,
.partner-slot {
  width: 300px;
  height: 250px;
  min-height: 250px;
  overflow: hidden;
  padding: 14px;
  border: 1px dashed rgba(229, 183, 95, .36);
  background: rgba(229, 183, 95, .035);
}
.right-rail > .sponsor-availability,
.right-rail > .partner-slot { order: 3; }
.sponsor-availability-label,
.partner-slot .sponsor-label {
  margin: 0 0 12px;
  color: var(--amber);
  font: var(--telemetry-floor) var(--mono);
  letter-spacing: .1em;
  text-transform: uppercase;
}
.sponsor-availability-content {
  display: flex;
  height: 194px;
  min-height: 0;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 9px;
  border: 1px dashed rgba(229, 183, 95, .28);
  text-align: center;
}
.sponsor-availability-content strong {
  color: var(--amber);
  font: 600 .78rem var(--mono);
  letter-spacing: .035em;
}
.sponsor-availability-content span {
  max-width: 220px;
  color: var(--muted);
  font: var(--telemetry-floor)/1.5 var(--mono);
}
.sponsor-availability-content small {
  max-width: 230px;
  margin-top: 7px;
  color: var(--dim);
  font: .56rem/1.45 var(--mono);
  letter-spacing: .025em;
}
.partner-slot .adsense-placement {
  display: flex;
  height: 194px;
  min-height: 0;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 9px;
  border: 1px dashed rgba(229, 183, 95, .28);
  color: rgba(229, 183, 95, .78);
  text-align: center;
}
.partner-slot .adsense-placement strong { color: var(--amber); font: 600 .74rem var(--mono); letter-spacing: .04em; }
.partner-slot .adsense-placement span { max-width: 220px; color: var(--dim); font: var(--telemetry-floor)/1.45 var(--mono); }
.partner-slot .direct-sponsor {
  display: flex;
  height: 194px;
  min-height: 0;
  flex-direction: column;
  justify-content: space-between;
  gap: 14px;
  color: var(--muted);
}
.partner-slot .direct-sponsor-copy { display: grid; gap: 7px; }
.partner-slot .direct-sponsor-copy strong { color: var(--mint-soft); font: 600 .9rem var(--mono); }
.partner-slot .direct-sponsor-copy span { color: var(--muted); font-size: .68rem; line-height: 1.45; }
.partner-slot .direct-sponsor-cta { color: var(--mint); font: var(--telemetry-floor) var(--mono); }

.status-module, .latest-module, .status-list, .status-list div, .status-list strong { min-width: 0; }
.status-list strong, .latest-module p, .event-facts dd, .linked-head, .source-meta { overflow-wrap: anywhere; }
.reading-telemetry div strong { white-space: normal; overflow-wrap: anywhere; }
.event-facts div { min-width: 0; }
.status-list div.is-good i { background: var(--mint); }
.status-list div.is-amber i { background: var(--amber); }
.status-list div.is-muted i { background: var(--dim); }
.status-list div.is-muted strong { color: var(--muted); }

.compare-strip.is-empty {
  display: block;
  padding: 9px 18px;
  color: var(--dim);
}
.compare-strip.is-empty strong {
  color: var(--muted);
  font-size: var(--telemetry-floor);
  letter-spacing: .08em;
}

@media (max-width: 1120px) {
  .status-column > .sponsor-availability,
  .status-column > .partner-slot { grid-column: 1 / -1; width: min(300px, 100%); }
}

@media (max-width: 820px) {
  .timeline-section { height: 318px; }
  .timeline-node { flex-basis: 108px; min-width: 108px; }
  .timeline-node .event-label { max-width: 96px; }
  .future-node { flex-basis: 94px; min-width: 94px; }
}

@media (max-width: 560px) {
  .timeline-section { height: 326px; }
  .timeline-track { padding-inline: 16px; }
  .timeline-track .track-line { right: 16px; left: 16px; }
  .timeline-node { flex-basis: 104px; min-width: 104px; }
  .timeline-node .event-label { max-width: 92px; }
  .future-node { flex-basis: 90px; min-width: 90px; }
  .sponsor-availability,
  .partner-slot { width: auto; height: 138px; min-height: 138px; }
  .sponsor-availability-content,
  .partner-slot .adsense-placement,
  .partner-slot .direct-sponsor { height: 82px; min-height: 0; }
  .sponsor-availability-content small { display: none; }
  .watch-button { width: 100%; max-width: 100%; justify-content: center; white-space: normal; }
  .watch-note { white-space: normal; }
  .footer nav { flex-wrap: wrap; gap: 10px 14px; }
}
