
@keyframes melRunnerUpdateIn {
  from { opacity: 0; transform: translateY(10px) scale(0.985); }
  to   { opacity: 1; transform: none; }
}
@keyframes melRunnerNeon {
  0%, 100% { opacity: 0.45; }
  50%      { opacity: 1; }
}
.mel-runner-update-card { animation: melRunnerUpdateIn 280ms cubic-bezier(0.22, 1, 0.36, 1) both; }
.mel-runner-neon {
  box-shadow:
    0 0 0 1px rgba(251, 191, 36, 0.28),
    0 0 14px 1px rgba(251, 191, 36, 0.34),
    0 0 38px 6px rgba(251, 191, 36, 0.20),
    0 0 76px 18px rgba(251, 191, 36, 0.10);
  animation: melRunnerNeon 3.2s ease-in-out infinite;
}
.mel-runner-halo { animation: melRunnerNeon 3.2s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) {
  .mel-runner-update-card { animation: none; }
  /* Hold the glow at its bright end rather than dropping it — the separation
     it provides is structural, and only the movement is the accessibility
     concern. */
  .mel-runner-neon, .mel-runner-halo { animation: none; opacity: 0.85; }
}