/* ==========================================================================
   YM INNOTECH & MODIQ ANIMATION KEYFRAMES
   ========================================================================== */

/* Floating animation for hero elements */
@keyframes float {
  0% {
    transform: translateY(0px) rotate(0deg);
  }
  50% {
    transform: translateY(-12px) rotate(1deg);
  }
  100% {
    transform: translateY(0px) rotate(0deg);
  }
}

@keyframes floatSlow {
  0% {
    transform: translateY(0px) scale(1);
  }
  50% {
    transform: translateY(-16px) scale(1.02);
  }
  100% {
    transform: translateY(0px) scale(1);
  }
}

/* Glowing dot pulse */
@keyframes pulseDot {
  0% {
    transform: scale(0.95);
    box-shadow: 0 0 0 0 rgba(0, 110, 130, 0.7);
  }
  70% {
    transform: scale(1.15);
    box-shadow: 0 0 0 10px rgba(0, 110, 130, 0);
  }
  100% {
    transform: scale(0.95);
    box-shadow: 0 0 0 0 rgba(0, 110, 130, 0);
  }
}

/* MODIQ lightning flash */
@keyframes flashLightning {
  0%, 100% {
    opacity: 0.8;
    filter: drop-shadow(0 0 2px #38BDF8);
  }
  50% {
    opacity: 1;
    filter: drop-shadow(0 0 12px #00E5FF);
    transform: scale(1.15);
  }
}

/* Shimmer gradient effect */
@keyframes shimmer {
  0% {
    background-position: -200% 0;
  }
  100% {
    background-position: 200% 0;
  }
}

/* 3D Spin for YM Cube */
@keyframes spin3d {
  0% {
    transform: rotateX(15deg) rotateY(0deg);
  }
  50% {
    transform: rotateX(25deg) rotateY(180deg);
  }
  100% {
    transform: rotateX(15deg) rotateY(360deg);
  }
}

/* Fade in up animation */
.fade-in-up {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.fade-in-up.visible {
  opacity: 1;
  transform: translateY(0);
}
