/* =========================================================
   FlowUp — Keyframes globais e sistema de scroll reveal
========================================================= */

/* Scroll reveal */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.75s var(--ease-spring), transform 0.75s var(--ease-spring);
}
.reveal.visible { opacity: 1; transform: translateY(0); }

.reveal-group .reveal:nth-child(1) { transition-delay: 0ms; }
.reveal-group .reveal:nth-child(2) { transition-delay: 90ms; }
.reveal-group .reveal:nth-child(3) { transition-delay: 180ms; }
.reveal-group .reveal:nth-child(4) { transition-delay: 270ms; }
.reveal-group .reveal:nth-child(5) { transition-delay: 360ms; }
.reveal-group .reveal:nth-child(6) { transition-delay: 450ms; }

/* Mensagem WhatsApp */
@keyframes msgIn {
  from { opacity: 0; transform: translateY(10px) scale(0.97); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}

/* Fade+slide para case card */
@keyframes caseFade {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Ticker */
@keyframes ticker {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* Typing indicator */
@keyframes typingDot {
  0%, 80%, 100% { transform: scale(0.6); opacity: 0.4; }
  40%           { transform: scale(1);   opacity: 1; }
}

/* Ripple de clique (feedback tátil em botões) */
@keyframes rippleAnim {
  to { transform: scale(1); opacity: 0; }
}

/* Entrada do botão WhatsApp float */
@keyframes floatIn {
  from { opacity: 0; transform: translateY(20px) scale(0.8); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
.whatsapp-float {
  animation: floatIn 0.5s var(--ease-spring) 1.5s both;
}

/* Counter tick */
@keyframes counterTick {
  from { transform: translateY(8px); opacity: 0; }
  to   { transform: translateY(0); opacity: 1; }
}
