/* ── SCROLL-REVEAL: League Filter ── */
.league-filter {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 700ms ease-out, transform 700ms ease-out;
}
.league-filter.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* ── ENHANCED CARD HOVER ── */
.signal-row:hover {
  box-shadow: 0 12px 40px -12px rgba(53, 208, 161, 0.25);
  border-color: rgba(53, 208, 161, 0.25);
  transition: box-shadow 200ms ease-out, border-color 200ms ease-out;
}

/* ── ACCENT BAR PULSE on .signal-row-top ── */
.signal-row-top::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  background: var(--accent-color, #35d0a1);
  animation: accent-pulse 2s ease-in-out infinite;
}

@keyframes accent-pulse {
  0%, 100% {
    box-shadow: 0 0 0 0 rgba(53, 208, 161, 0.3);
  }
  50% {
    box-shadow: 0 0 10px 0 rgba(53, 208, 161, 0.15);
  }
}

/* ── GOLD TEASER OVERLAY ── */
.teaser-overlay {
  background: linear-gradient(135deg, rgba(240, 180, 41, 0.1), rgba(240, 180, 41, 0.05));
  backdrop-filter: blur(1px);
  position: relative;
}

/* ── STICKY UPGRADE BANNER ── */
.upgrade-card {
  position: sticky;
  top: 54px;
  z-index: 50;
  background: var(--card-bg, #ffffff);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
  padding: 16px 20px;
  border-radius: 8px;
  margin: 16px 0;
  transition: box-shadow 200ms ease-out;
}

/* ── RESPECT PREFERS-REDUCED-MOTION ── */
@media (prefers-reduced-motion: reduce) {
  .league-filter,
  .signal-row:hover,
  .signal-row-top::before,
  .accent-pulse {
    animation: none;
    transition: none;
  }
}
