/* css/animations.css */

/* Floating bubbles */
@keyframes bubble-rise {
  0%   { transform: translateY(0) scale(1); opacity: 0.6; }
  100% { transform: translateY(-120px) scale(1.3); opacity: 0; }
}

/* Bounce arrow */
@keyframes bounce {
  0%, 100% { transform: translateY(0); }
  50%       { transform: translateY(8px); }
}

/* Pulse dot */
@keyframes pulse-dot {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%       { opacity: 0.5; transform: scale(1.4); }
}

/* Text reveal (used by GSAP, but fallback) */
@keyframes fade-up {
  from { opacity: 0; transform: translateY(30px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Ripple on CTA hover */
@keyframes ripple {
  0%   { transform: scale(0); opacity: 0.4; }
  100% { transform: scale(4); opacity: 0; }
}

.cta-btn::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: rgba(255,255,255,0.3);
  transform: scale(0);
  opacity: 0;
}
.cta-btn:active::after {
  animation: ripple 0.5s ease-out forwards;
}

/* Scroll-driven elements — initial hidden state for GSAP */
.gsap-fade-up    { opacity: 0; transform: translateY(40px); }
.gsap-fade-right { opacity: 0; transform: translateX(-40px); }
.gsap-scale-in   { opacity: 0; transform: scale(0.85); }
.gsap-stagger    { opacity: 0; transform: translateY(30px); }
