/* Keyframes e classes de animação, herdados do design system de Identidade-visual3/design-system:
   marquee da faixa de termos, fade-in de entrada, flutuação lenta de cards em destaque, ping do
   selo, sweep de brilho (shimmer) dos CTAs e borda em gradiente animado (gradient-xy). */
@keyframes scroll { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
.anima-marquee { animation: scroll 30s linear infinite; }

@keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
.fade-in { animation: fadeIn 1s ease-out forwards; }
.fade-in-2 { opacity: 0; animation: fadeIn 1s ease-out 0.15s forwards; }
.fade-in-3 { opacity: 0; animation: fadeIn 1s ease-out 0.3s forwards; }

@keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
.anima-flutuar { animation: float 6s ease-in-out infinite; }

@keyframes ping { 75%, 100% { transform: scale(2.2); opacity: 0; } }

@keyframes shimmer-continuo { 0% { transform: translateX(-150%); } 20%, 100% { transform: translateX(150%); } }
.anima-shimmer { animation: shimmer-continuo 4s infinite; }

@keyframes gradient-xy { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }
.anima-gradiente { animation: gradient-xy 4s ease infinite; background-size: 200% 200%; }

@keyframes crescer-barra { from { transform: scaleY(0); } to { transform: scaleY(1); } }
@keyframes crescer-barra-h { from { transform: scaleX(0); } to { transform: scaleX(1); } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
}
