/* Music News ticker — the homepage strip.
   Scrolling, news-channel / stock-ticker style. One headline at a time
   is NOT used here: the whole stream runs across continuously. */
.ticker {
  display: flex;
  align-items: stretch;
  background: #000;
  border-top: 1px solid #22222c;
  border-bottom: 1px solid #22222c;
  min-height: 52px;
  overflow: hidden;
}
.ticker-label {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 8px;
  background: #e5322d;
  color: #fff;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .14em;
  padding: 0 16px;
  z-index: 2;
  white-space: nowrap;
}
.ticker-label .dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #fff;
  animation: ticker-pulse 1.6s infinite;
}
@keyframes ticker-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .25; } }
.ticker-viewport {
  flex: 1;
  overflow: hidden;
  display: flex;
  align-items: center;
  position: relative;
  min-width: 0;
}
/* Fade the edges so headlines slide in/out cleanly, like a news channel. */
.ticker-viewport::before,
.ticker-viewport::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 34px;
  z-index: 1;
  pointer-events: none;
}
.ticker-viewport::before { left: 0; background: linear-gradient(to right, #000, transparent); }
.ticker-viewport::after { right: 0; background: linear-gradient(to left, #000, transparent); }
.ticker-track {
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  will-change: transform;
  animation: ticker-scroll 90s linear infinite;
}
@keyframes ticker-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
  .ticker-track { animation-play-state: paused; }
}
.tick-item {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  font-size: 15px;
  line-height: 1.4;
}
.tick-source {
  font-weight: 700;
  font-size: 12px;
  letter-spacing: .06em;
  text-transform: uppercase;
  margin-right: 8px;
}
.tick-item a { color: #f2f2f2; text-decoration: none; }
.tick-item a:hover { text-decoration: underline; }
.tick-sep { color: #e5322d; font-size: 10px; margin: 0 22px; }
/* Source colours — match the Music News page list. */
.src-billboard { color: #4dc3ff; }
.src-rollingstone { color: #ff4d8d; }
.src-pitchfork { color: #bfff2f; }
.src-stereogum { color: #ff8c1a; }
.src-variety { color: #2fe8ff; }
.src-wall { color: #ffd81a; }
.src-franklin { color: #a78bfa; font-size: 15px; }
@media (max-width: 767px) {
  /* On phones the top-nav is hidden and the fixed hamburger floats at
     the top-right — give the ticker room so it sits below the hamburger
     instead of sliding underneath it. */
  .ticker { margin-top: 60px; }
}
@media (max-width: 640px) {
  .ticker-label { padding: 0 10px; font-size: 11px; }
  .tick-item { font-size: 13px; }
}
