/* ============================================================
   ZUVEXA TECH — animations.css
   Todos los @keyframes del proyecto
   ============================================================ */

/* ── Entrada de página ─────────────────────────────────────── */
@keyframes pgIn {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ── Tipografía / heroes ───────────────────────────────────── */
@keyframes slideUp {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ── Aurora orbs (fondo premium) ──────────────────────────── */
@keyframes aurora1 {
  0%,  100% { transform: translate(0, 0)    scale(1);    }
  33%        { transform: translate(4%, 3%)  scale(1.08); }
  66%        { transform: translate(-3%, 5%) scale(0.95); }
}
@keyframes aurora2 {
  0%,  100% { transform: translate(0, 0)     scale(1);   }
  33%        { transform: translate(-5%, -3%) scale(1.1); }
  66%        { transform: translate(3%, -6%)  scale(0.92);}
}

/* ── Hero visual flotante (index) ─────────────────────────── */
@keyframes floatUp {
  0%, 100% { transform: translateY(0);    }
  50%       { transform: translateY(-10px);}
}

/* ── Cards flotantes en modales (casos) ───────────────────── */
@keyframes ztFloat {
  0%, 100% { transform: translateY(0);   }
  50%       { transform: translateY(-7px);}
}

/* ── Chatbot: botón glow y badge breathe (index) ──────────── */
@keyframes glowPulse {
  0%, 100% { box-shadow: 0 4px 20px rgba(91,44,135,0.45); }
  50%       { box-shadow: 0 6px 40px rgba(91,44,135,0.72),
                          0 0 64px rgba(122,63,209,0.28);  }
}
@keyframes breathe {
  0%, 100% { transform: scale(1);    opacity: 1;   }
  50%       { transform: scale(1.2); opacity: 0.65; }
}

/* ── Chatbot: mensajes y puntos de escritura ──────────────── */
@keyframes ztFadeIn {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0);   }
}
@keyframes ztDot {
  0%, 80%, 100% { transform: scale(0.7); opacity: 0.5; }
  40%            { transform: scale(1);   opacity: 1;   }
}

/* ── Barra de progreso cupos (index) ──────────────────────── */
@keyframes fillAnim {
  from { width: 0;   }
  to   { width: 30%; }
}

/* ── Indicadores de pulso (lanzamiento) ───────────────────── */
@keyframes lzPulse {
  0%, 100% { opacity: 1;   transform: scale(1);   }
  50%       { opacity: 0.6; transform: scale(1.3); }
}
@keyframes lbPulse {
  0%, 100% { opacity: 1;   transform: scale(1);   }
  50%       { opacity: 0.5; transform: scale(1.3); }
}
