/* Entrada em cascata: desfoque + transparência + deslize. No máximo 600 ms no total
   (450 ms de movimento + até 150 ms de espera). Nunca nos botões do fechamento. */
.entra {
  /* backwards: o estado final é o normal do elemento, então o hover (transform) continua valendo */
  animation: entra 450ms cubic-bezier(.2,.7,.2,1) backwards;
  animation-delay: min(calc(var(--i, 0) * 70ms), 150ms);
}
@keyframes entra {
  from { opacity: 0; filter: blur(var(--blur-entrada)); transform: translateY(12px); }
  to   { opacity: 1; filter: blur(0); transform: none; }
}
@keyframes pulo { 50% { transform: scale(1.08); } }
@keyframes brilho { to { background-position: -200% 0; } }
@keyframes sobe { from { transform: translateY(24px); opacity: 0; } to { transform: none; opacity: 1; } }

/* Quem pede menos movimento vê tudo sem animação. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
}
