/* ══════════════════════════════════
   ANIMATIONS — @keyframes centralisés
   ══════════════════════════════════ */

/* Point pulsant */
@keyframes pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%       { opacity: 0.3; transform: scale(0.7); }
}

/* Badge flottant 1 */
@keyframes hover-1 {
  0%, 100% { transform: translateY(0) rotate(2deg); }
  50%      { transform: translateY(-12px) rotate(-1deg); }
}

/* Badge flottant 2 */
@keyframes hover-2 {
  0%, 100% { transform: translateY(0) rotate(-2deg); }
  50%      { transform: translateY(-10px) rotate(1deg); }
}

/* Slide-up (confirmation SMS) */
@keyframes slide-up {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Fade-in */
@keyframes fade-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}

/* Compteur live — flash or */
@keyframes counter-flash {
  0%, 100% { color: var(--gold); }
  50%      { color: var(--gold-soft); }
}

/* Grille de fond animée */
@keyframes grid-drift {
  from { background-position: 0 0, 0 0; }
  to   { background-position: 80px 80px, 80px 80px; }
}

/* SMS flow overlay — step transition */
@keyframes step-in {
  from { opacity: 0; transform: translateX(24px); }
  to   { opacity: 1; transform: translateX(0); }
}
