/* ==========================================================================
   Animazioni. Tutte spente se l'utente chiede "riduci movimento".
   ========================================================================== */

@keyframes view-in {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: none; }
}

@keyframes fade-up {
  from { opacity: 0; transform: translateY(18px) scale(0.98); }
  to   { opacity: 1; transform: none; }
}

@keyframes sheen {
  to { transform: translateX(100%); }
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

@keyframes pulse-dot {
  0%, 100% { box-shadow: 0 0 0 0 rgb(var(--accent-2-rgb) / 0.55); }
  50%      { box-shadow: 0 0 0 7px rgb(var(--accent-2-rgb) / 0); }
}

@keyframes pop {
  0%   { transform: scale(0.9); opacity: 0; }
  60%  { transform: scale(1.04); opacity: 1; }
  100% { transform: scale(1); }
}

@keyframes toast-in {
  from { opacity: 0; transform: translateX(28px) scale(0.96); }
  to   { opacity: 1; transform: none; }
}
@keyframes toast-out {
  to { opacity: 0; transform: translateX(28px) scale(0.96); }
}
@keyframes toast-in-mobile {
  from { opacity: 0; transform: translateY(-16px) scale(0.97); }
  to   { opacity: 1; transform: none; }
}
@keyframes toast-out-mobile {
  to { opacity: 0; transform: translateY(-16px) scale(0.97); }
}

@keyframes drift-a {
  from { transform: translate3d(0, 0, 0) scale(1); }
  to   { transform: translate3d(8vmax, 6vmax, 0) scale(1.15); }
}
@keyframes drift-b {
  from { transform: translate3d(0, 0, 0) scale(1.1); }
  to   { transform: translate3d(-10vmax, 8vmax, 0) scale(0.95); }
}
@keyframes drift-c {
  from { transform: translate3d(0, 0, 0) scale(1); }
  to   { transform: translate3d(12vmax, -6vmax, 0) scale(1.2); }
}

/* Comparsa a cascata di risultati e card (--i imposta dal JS) */
.stagger > * {
  animation: fade-up 0.65s var(--ease) backwards; /* backwards: a fine animazione l'hover può tornare a muovere la card */
  animation-delay: calc(min(var(--i, 0), 14) * 45ms);
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    animation-delay: 0ms !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}
