@tailwind base;
@tailwind components;
@tailwind utilities;

@layer utilities {
  /* Float Animation */
  @keyframes float {
    0%, 100% {
      transform: translateY(0px);
    }
    50% {
      transform: translateY(-20px);
    }
  }

  .animate-float {
    animation: float 3s ease-in-out infinite;
  }

  /* Float Animation with Delay */
  .animate-float-delayed {
    animation: float 6s ease-in-out infinite;
    animation-delay: 3s;
  }

  /* Fade In Up */
  @keyframes fadeInUp {
    from {
      opacity: 0;
      transform: translateY(30px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }

  /* Marquee Animation */
  @keyframes marquee {
    0% {
      transform: translateX(0%);
    }
    100% {
      transform: translateX(-50%);
    }
  }

  .animate-marquee {
    animation: marquee 30s linear infinite;
  }

  .pause-animation:hover {
    animation-play-state: paused;
  }

  /* Counter Animation */
  @keyframes countUp {
    from {
      opacity: 0;
      transform: scale(0.5);
    }
    to {
      opacity: 1;
      transform: scale(1);
    }
  }

  .animate-countUp {
    animation: countUp 0.6s ease-out;
  }

  /* Pulse Glow Effect */
  @keyframes pulseGlow {
    0%, 100% {
      box-shadow: 0 0 20px rgba(147, 51, 234, 0.5);
    }
    50% {
      box-shadow: 0 0 40px rgba(147, 51, 234, 0.8);
    }
  }

  .animate-pulse-glow {
    animation: pulseGlow 2s ease-in-out infinite;
  }

  /* Gradient Shift */
  @keyframes gradientShift {
    0% {
      background-position: 0% 50%;
    }
    50% {
      background-position: 100% 50%;
    }
    100% {
      background-position: 0% 50%;
    }
  }

  .animate-gradient {
    background-size: 200% 200%;
    animation: gradientShift 5s ease infinite;
  }

  /* Bounce X Animation */
  @keyframes bounceX {
    0%, 100% {
      transform: translateX(0);
    }
    50% {
      transform: translateX(30px);
    }
  }

  .animate-bounce-x {
    animation: bounceX 7s infinite linear;
  }

  /* Bob Y Animation */
  @keyframes bobY {
    0%, 100% {
      transform: translateY(-30px);
    }
    50% {
      transform: translateY(-10px);
    }
  }

  .animate-bob-y {
    animation: bobY 3s infinite linear;
  }

  /* Rotate Animation */
  @keyframes rotate360 {
    from {
      transform: rotate(0deg);
    }
    to {
      transform: rotate(360deg);
    }
  }

  .animate-rotate {
    animation: rotate360 40s linear infinite;
  }

  /* Slide Down */
  @keyframes slideDown {
    from {
      opacity: 0;
      transform: translateY(-20px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }

  .animate-slideDown {
    animation: slideDown 0.5s ease-out;
  }

  /* Ripple Effect */
  @keyframes ripple {
    70% {
      box-shadow: 0 0 0 40px rgba(147, 51, 234, 0);
    }
    100% {
      box-shadow: 0 0 0 0 rgba(147, 51, 234, 0);
    }
  }

  .animate-ripple {
    animation: ripple 1.5s ease-out infinite;
  }
}

/* Custom Scrollbar */
::-webkit-scrollbar {
  width: 10px;
}

::-webkit-scrollbar-track {
  background: #1a1a1a;
}

::-webkit-scrollbar-thumb {
  background: linear-gradient(to bottom, #9333ea, #3b82f6);
  border-radius: 10px;
}

::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(to bottom, #7c3aed, #2563eb);
}
