/* ==============================================
   Baleon Cloud — Animações
   Arquivo: static/css/animacoes.css
   ============================================== */

@keyframes fadeInUp    { from { opacity:0; transform:translateY(28px); } to { opacity:1; transform:translateY(0); } }
@keyframes fadeInDown  { from { opacity:0; transform:translateY(-20px); } to { opacity:1; transform:translateY(0); } }
@keyframes fadeInScale { from { opacity:0; transform:scale(.92); } to { opacity:1; transform:scale(1); } }
@keyframes slideInLeft { from { opacity:0; transform:translateX(-28px); } to { opacity:1; transform:translateX(0); } }
@keyframes float       { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-8px); } }

/* Utilitários — animam ao ganhar .is-visible via JS */
.animate-fade-up    { opacity:0; transform:translateY(28px); }
.animate-fade-down  { opacity:0; transform:translateY(-20px); }
.animate-fade-scale { opacity:0; transform:scale(.92); }
.animate-slide-left { opacity:0; transform:translateX(-28px); }

.animate-fade-up.is-visible    { animation: fadeInUp    0.55s cubic-bezier(0.4,0,0.2,1) forwards; }
.animate-fade-down.is-visible  { animation: fadeInDown  0.45s cubic-bezier(0.4,0,0.2,1) forwards; }
.animate-fade-scale.is-visible { animation: fadeInScale 0.45s cubic-bezier(0.4,0,0.2,1) forwards; }
.animate-slide-left.is-visible { animation: slideInLeft 0.55s cubic-bezier(0.4,0,0.2,1) forwards; }

.float { animation: float 3.5s ease-in-out infinite; }

/* Stagger delays */
.stagger-1 { animation-delay:.05s; }
.stagger-2 { animation-delay:.1s; }
.stagger-3 { animation-delay:.15s; }
.stagger-4 { animation-delay:.2s; }
.stagger-5 { animation-delay:.25s; }
.stagger-6 { animation-delay:.3s; }
.stagger-7 { animation-delay:.35s; }
.stagger-8 { animation-delay:.4s; }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration:.01ms !important; transition-duration:.01ms !important; }
    .animate-fade-up, .animate-fade-down, .animate-fade-scale, .animate-slide-left { opacity:1; transform:none; }
}
