/* Core Animations */

/* Fade Up on Scroll */
.fade-up {
  opacity: 0;
  transform: translateY(40px);
  animation: fadeUpAnim 1s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}

@keyframes fadeUpAnim {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Floating Elements */
.float {
  animation: floatAnim 6s ease-in-out infinite;
}

.float-delayed {
  animation: floatAnim 8s ease-in-out infinite 2s;
}

@keyframes floatAnim {
  0% { transform: translateY(0); }
  50% { transform: translateY(-15px); }
  100% { transform: translateY(0); }
}

/* Water Shimmer Parallax */
.shimmer-bg {
  position: absolute;
  top: -50%; left: -50%; width: 200%; height: 200%;
  background: linear-gradient(45deg, transparent 40%, rgba(56, 189, 248, 0.05) 50%, transparent 60%);
  background-size: 200% 200%;
  animation: shimmerAnim 15s linear infinite;
  pointer-events: none;
}

@keyframes shimmerAnim {
  0% { transform: translate(0, 0); }
  100% { transform: translate(10%, 10%); }
}

/* Audio Visualizer Waves */
.bar {
  animation: soundWave 1.5s ease-in-out infinite alternate;
}

.bar:nth-child(1) { height: 20%; animation-delay: 0.1s; }
.bar:nth-child(2) { height: 40%; animation-delay: 0.3s; }
.bar:nth-child(3) { height: 70%; animation-delay: 0.5s; }
.bar:nth-child(4) { height: 100%; animation-delay: 0.2s; }
.bar:nth-child(5) { height: 60%; animation-delay: 0.6s; }
.bar:nth-child(6) { height: 30%; animation-delay: 0.4s; }
.bar:nth-child(7) { height: 80%; animation-delay: 0.7s; }
.bar:nth-child(8) { height: 50%; animation-delay: 0.2s; }
.bar:nth-child(9) { height: 90%; animation-delay: 0.8s; }
.bar:nth-child(10) { height: 40%; animation-delay: 0.3s; }
.bar:nth-child(11) { height: 20%; animation-delay: 0.1s; }

@keyframes soundWave {
  0% { transform: scaleY(0.5); opacity: 0.3; }
  100% { transform: scaleY(1); opacity: 1; box-shadow: 0 0 15px rgba(56, 189, 248, 0.5); }
}

/* Image Slow Zoom / Drift */
.drift-img {
  animation: drift 20s linear infinite alternate;
}

@keyframes drift {
  0% { transform: scale(1) translate(0, 0); }
  100% { transform: scale(1.05) translate(-1%, 1%); }
}

/* Load Delays for Staggering */
.delay-1 { animation-delay: 0.2s; }
.delay-2 { animation-delay: 0.4s; }
.delay-3 { animation-delay: 0.6s; }