/* Animations Keyframes */

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes floatBubble {
  0% { transform: translateY(0) translateX(0) scale(1); }
  33% { transform: translateY(-30px) translateX(20px) scale(1.1); }
  66% { transform: translateY(-60px) translateX(-15px) scale(0.9); }
  100% { transform: translateY(-100px) translateX(0) scale(1); opacity: 0; }
}

@keyframes pulse {
  0% { transform: scale(1); }
  50% { transform: scale(1.05); }
  100% { transform: scale(1); }
}

@keyframes wave {
  0% { transform: translateX(0); }
  50% { transform: translateX(-25%); }
  100% { transform: translateX(-50%); }
}

@keyframes rippleSplash {
  0% { transform: scale(0); opacity: 0.5; }
  100% { transform: scale(4); opacity: 0; }
}

/* Animation Classes */
.animate {
  opacity: 0;
}

.animate.fadeInUp {
  animation: fadeInUp 0.8s ease-out forwards;
}

/* Hero Bubbles */
.bubble {
  position: absolute;
  background: rgba(255, 255, 255, 0.2);
  border-radius: 50%;
  pointer-events: none;
  animation: floatBubble 6s linear infinite;
}

/* Button Ripple Effect Helper */
.ripple {
  position: absolute;
  background: rgba(255, 255, 255, 0.4);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none;
  animation: rippleSplash 0.6s linear;
}
