/* ══════════════════════════════════════════
   ANIMATIONS — keyframes condivise
   ══════════════════════════════════════════ */

/* Card ingresso (login, contatti, thank-you, maintenance, legali) */
@keyframes cardReveal {
   0% {
      opacity: 0;
      transform: translateY(40px);
   }

   100% {
      opacity: 1;
      transform: translateY(0);
   }
}

/* Fade up generico (footer, badge, label, testi) */
@keyframes fadeUp {
   0% {
      opacity: 0;
      transform: translateY(15px);
   }

   100% {
      opacity: 1;
      transform: translateY(0);
   }
}

/* Spinner bottone (contatti) */
@keyframes spin {
   to {
      transform: rotate(360deg);
   }
}

/* Shake errore (contatti) */
@keyframes cardShake {

   0%,
   100% {
      transform: translateX(0);
   }

   10%,
   50%,
   90% {
      transform: translateX(-6px);
   }

   30%,
   70% {
      transform: translateX(6px);
   }
}

/* Scroll hint (home) */
@keyframes scrollPulse {

   0%,
   100% {
      opacity: 1;
      transform: scaleY(1);
   }

   50% {
      opacity: 0.4;
      transform: scaleY(0.6);
   }
}

/* Dot pulse (manutenzione) */
@keyframes dotPulse {

   0%,
   100% {
      opacity: 1;
   }

   50% {
      opacity: 0.3;
   }
}

/* Logo ingresso (home, contatti, chi-siamo) */
@keyframes logoIn {
   0% {
      opacity: 0;
      transform: translateY(25px) scale(0.95);
      filter: blur(6px) drop-shadow(0 0 0 rgba(191, 148, 10, 0));
   }

   100% {
      opacity: 1;
      transform: translateY(0) scale(1);
      filter: blur(0) drop-shadow(0 0 20px rgba(191, 148, 10, 0.12));
   }
}

/* Video slow zoom (home, chi-siamo, festeggiare) */
@keyframes videoSlowZoom {
   0% {
      transform: scale(1.04);
   }

   100% {
      transform: scale(1.14);
   }
}

/* Particles (chi-siamo) */
@keyframes particleFloat {
   0% {
      transform: translateY(105vh) scale(0.8);
      opacity: 0;
   }

   15% {
      opacity: 0.2;
   }

   85% {
      opacity: 0.2;
   }

   100% {
      transform: translateY(-15vh) scale(1.2);
      opacity: 0;
   }
}