/* ===== Word Wave Animation ===== */

.word-wave {
  display: inline-flex;
  align-items: baseline;
  flex-wrap: wrap;
}

.wave-word {
  display: inline-block;
  animation: wordWave 2.5s ease-in-out infinite;
  animation-delay: calc(var(--i) * 0.3s);
}

/* Colors (optional, or use Tailwind) */
.orange { color: rgb(245, 154, 42); }
.blue   { color: rgb(72, 185, 216); }
.mint   { color: rgb(195, 234, 223); }

@keyframes wordWave {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-12px);
  }
}

/* Accessibility */
@media (prefers-reduced-motion: reduce) {
  .wave-word {
    animation: none;
  }
}

/* ===============================
   BASE ANIMATION
================================ */
.animate {
  opacity: 0;
  animation-fill-mode: forwards;
  animation-duration: 0.8s;
  animation-timing-function: ease-out;
  animation-play-state: paused;
}

.animate.in-view {
  animation-play-state: running;
}

/* Default animation for elements with only 'animate' class */
.animate:not(.fade-up):not(.fade-left):not(.fade-right):not(.fade-scale):not(.zoom-fade) {
  animation-name: fadeUp; /* Default to fade-up */
}

.fade-up {
  animation-name: fadeUp;
}

.fade-left {
  animation-name: fadeLeft;
}

.fade-right {
  animation-name: fadeRight ;
}

.fade-scale {
  animation-name: fadeScale;
} 



  .zoom-fade {
    animation-name: zoomFade;
    transform-origin: center;
  }

  @keyframes zoomFade {
    from {
      opacity: 0;
      transform: scale(0.5);
    }
    to {
      opacity: 1;
      transform: scale(1);
    }
  }

/* Fade Up */
@keyframes fadeUp {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Fade Down */
@keyframes fadeDown {
  from {
    opacity: 0;
    transform: translateY(-24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Fade Left */
@keyframes fadeLeft {
  from {
    opacity: 0;
    transform: translateX(-50px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* Fade Right */
@keyframes fadeRight {
  from {
    opacity: 0;
    transform: translateX(24px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}


/* Fade + Scale */
.fade-scale {
  animation-name: fadeScale;
}

@keyframes fadeScale {
  from {
    opacity: 0;
    transform: scale(0.94);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}


.delay-100 { animation-delay: 0.1s; }
.delay-200 { animation-delay: 0.2s; }
.delay-300 { animation-delay: 0.3s; }
.delay-400 { animation-delay: 0.4s; }
.delay-500 { animation-delay: 0.5s; }

/* ===============================
   BUTTON HOVER
================================ */
.btn-hover {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.btn-hover:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 30px rgba(0,0,0,0.25);
}

@media (prefers-reduced-motion: reduce) {
  .animate,
  .wave-word {
    animation: none !important;
    transform: none !important;
    opacity: 1 !important;
  }
}

 .card-container {
            transition: transform 0.3s ease, box-shadow 0.3s ease !important;
        }
        
           .card-container:hover {
            transform: scale(1.05) !important;
            box-shadow: 0 20px 40px rgba(0,0,0,0.15);
        }

   .gradient-overlay {
            pointer-events: none !important;
        }


 
.hover-up {
  transition: transform 0.3s ease;
  will-change: transform;
}

.hover-up:hover {
  transform: translateY(-10px);
  z-index: 10;
}       


 .hover-scale-up {
  transition:
    transform 1s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 1s ease;
  will-change: transform;
}

.hover-scale-up:hover {
  transform: translateY(-6px) scale(1.05);
  z-index: 10;
}       



/* Floating decorative circles */
.float-shape {
  animation: floatRotate 8s ease-in-out infinite alternate;
}

.float-shape-reverse {
  animation: floatRotateReverse 10s ease-in-out infinite alternate;
}

@keyframes floatRotate {
  0% {
    transform: scale(1) rotate(0deg);
  }
  100% {
    transform: scale(1.15) rotate(60deg);
  }
}

@keyframes floatRotateReverse {
  0% {
    transform: scale(1) rotate(0deg);
  }
  100% {
    transform: scale(1.1) rotate(-40deg);
  }
}


/* Learn More arrow animation */
.arrow-swing {
  display: inline-block;
  animation: arrowSwing 1.2s ease-in-out infinite;
}

@keyframes arrowSwing {
  0%, 100% {
    transform: translateX(0);
  }
  50% {
    transform: translateX(6px);
  }
}


/* Premium icon jiggle: rotate + move + scale */
.icon-wiggle {
  transform-origin: center;
}

.icon-wiggle:hover {
  animation: iconWiggleScale 0.7s ease-in-out;
}

@keyframes iconWiggleScale {
  0% {
    transform: rotate(0deg) translate(0, 0) scale(1);
  }

  15% {
    transform: rotate(-8deg) translate(-2px, 0) scale(1.05);
  }

  30% {
    transform: rotate(8deg) translate(2px, 0) scale(1.08);
  }

  45% {
    transform: rotate(-6deg) translate(-1px, 1px) scale(1.06);
  }

  60% {
    transform: rotate(6deg) translate(1px, -1px) scale(1.04);
  }

  75% {
    transform: rotate(-3deg) translate(-1px, 0) scale(1.02);
  }

  100% {
    transform: rotate(0deg) translate(0, 0) scale(1);
  }
}



.icon-container {
    transition: transform 0.1s ease-out;
}

.icon-container:hover {
    animation: spinWithJerk 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}

.icon-container:not(:hover) {
    animation: spinBackWithJerk 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}

@keyframes spinWithJerk {
    0% {
        transform: rotate(0deg);
    }
    15% {
        transform: rotate(20deg);
    }
    30% {
        transform: rotate(80deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

@keyframes spinBackWithJerk {
    0% {
        transform: rotate(360deg);
    }
    15% {
        transform: rotate(340deg);
    }
    30% {
        transform: rotate(280deg);
    }
    100% {
        transform: rotate(0deg);
    }
}



.border-card {
  position: relative;
}

/* LEFT BORDER BASE */
.left-border {
  position: absolute;
  top: 0;
  left: 0;
  width: 8px;
  height: 100%;
 

  transform: scaleY(0);
  transform-origin: center;
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

/* HOVER EFFECT */
.border-card:hover .left-border {
  transform: scaleY(1);
}



.circle {
  position: absolute;
  width: 600px;
  height: 600px;
  border: 2px solid rgba(96, 165, 250, 0.8); /* blue-400 */
  border-radius: 50%;
}

/* FAST rotation + pulse */
.circle-1 { left: 20%; top: -10%; animation: ringFast 14s linear infinite; }
.circle-2 { left: 35%; top: 10%;  animation: ringFast 18s linear infinite reverse; }
.circle-3 { left: 50%; top: 30%; animation: ringFast 22s linear infinite; }
.circle-4 { left: 65%; top: 50%; animation: ringFast 26s linear infinite reverse; }
.circle-5 { left: 80%; top: 70%; animation: ringFast 30s linear infinite; }

@keyframes ringFast {
  0%   { transform: scale(1) rotate(0deg); }
  50%  { transform: scale(1.18) rotate(180deg); }
  100% { transform: scale(1) rotate(360deg); }
}

.dot {
  position: absolute;
  width: 4px;
  height: 4px;
  background: #60a5fa; /* blue-400 */
  border-radius: 50%;
}

/* FAST */
.float-fast {
  animation: floatFast 2.2s ease-in-out infinite;
}

/* MEDIUM */
.float-medium {
  animation: floatFast 3s ease-in-out infinite;
}

/* SLOW (still visible) */
.float-slow {
  animation: floatFast 3.8s ease-in-out infinite;
}

@keyframes floatFast {
  0%   { transform: translateY(0); opacity: 0; }
  50%  { transform: translateY(-55px); opacity: 1; }
  100% { transform: translateY(0); opacity: 0; }
}


/* Card expand on hover */
.card-expand-content {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height 0.5s ease, opacity 0.4s ease;
}

.card-hover:hover .card-expand-content {
  max-height: 200px;
  opacity: 1;
}

/* Enhanced card hover with bounce */
.card-hover {
  transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.3s ease;
}

.card-hover:hover {
  transform: translateY(-12px) scale(1.03);
  box-shadow: 0 25px 50px rgba(0,0,0,0.4);
}

.card-hover:hover .pulse-dot {
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.3s ease, transform 0.3s ease;
}

/* Wave animation */
@keyframes dotWave {
  0% {
    transform: translateY(0);
    opacity: 0.4;
  }
  50% {
    transform: translateY(-8px);
    opacity: 1;
  }
  100% {
    transform: translateY(0);
    opacity: 0.4;
  }
}

.pulse-dot {
  animation: dotWave 1.2s ease-in-out infinite;
}


/* Wave animation with delays */
/* @keyframes dotWave {
  0% {
    transform: translateY(0);
    opacity: 0.4;
  }
  50% {
    transform: translateY(-8px);
    opacity: 1;
  }
  100% {
    transform: translateY(0);
    opacity: 0.4;
  }
} */



/* Delay classes for pulse-dot */
/* Delay classes for gentle-pulse - ADD THIS */
.gentle-pulse-delay-1 { animation-delay: 0.5s; }
.gentle-pulse-delay-2 { animation-delay: 1s; }
.gentle-pulse-delay-3 { animation-delay: 1.5s; }
.gentle-pulse-delay-4 { animation-delay: 2s; }
.gentle-pulse-delay-5 { animation-delay: 2.5s; }



/* Infinite zoom in/out card animation */
.zoom-pulse {
  animation: zoomPulse 4s ease-in-out infinite;
  transform-origin: center;
}

@keyframes zoomPulse {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.05);
  }
  100% {
    transform: scale(1);
  }
}

/* Alternative: More dramatic zoom effect */
.zoom-bounce {
  animation: zoomBounce 3s ease-in-out infinite;
  transform-origin: center;
}

@keyframes zoomBounce {
  0%, 100% {
    transform: scale(1);
  }
  25% {
    transform: scale(1.03);
  }
  50% {
    transform: scale(1.05);
  }
  75% {
    transform: scale(1.03);
  }
}

/* Subtle breathing effect */
.card-breathe {
  animation: cardBreathe 6s ease-in-out infinite;
}

@keyframes cardBreathe {
  0%, 100% {
    transform: scale(1);
    box-shadow: 0 10px 20px rgba(0,0,0,0.1);
  }
  50% {
    transform: scale(1.1);
    box-shadow: 0 15px 30px rgba(0,0,0,0.15);
  }
}

/* Slow gentle pulse animation */
.gentle-pulse {
  animation: gentlePulse 2s ease-in-out infinite;
}

@keyframes gentlePulse {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-8px);
  }
}