/* ===== 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;
} 

/* 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.8s ease-in-out infinite;
}

.dot-wave {
  display: flex;
  align-items: center;
}

.wave-dot {
  animation: dotScaleWave 1.5s infinite ease-in-out;
}

/* stagger timing */
.wave-dot:nth-child(1) { animation-delay: 0s; }
.wave-dot:nth-child(2) { animation-delay: 0.2s; }
.wave-dot:nth-child(3) { animation-delay: 0.4s; }

@keyframes dotScaleWave {
  0%, 100% {
    transform: scale(1);
    opacity: 0.5;
  }
  50% {
    transform: scale(1.3);
    opacity: 1;
  }
}

/* Icon Pop Animation */


.icon-pop {
  animation: iconBounceIn 0.8s cubic-bezier(0.68, -0.55, 0.265, 1.55) forwards;
  transition: transform 0.45s cubic-bezier(0.34, 1.56, 0.64, 1);
}



@keyframes iconBounceIn {
  0% {
    /* opacity: 0; */
    transform: scale(1) rotate(-15deg);
  }
  50% {
    opacity: 1;
    transform: scale(1) rotate(8deg);
  }
  70% {
    transform: scale(1) rotate(-5deg);
  }
  85% {
    transform: scale(1) rotate(3deg);
  }
  100% {
    opacity: 1;
    transform: scale(1) rotate(0deg);
  }
}


/* Hover Animation - Scale, Rotate & Jiggle */
.icon-pop:hover {
  animation: iconHoverJiggle 0.6s ease-in-out forwards;
}

@keyframes iconHoverJiggle {
  0%   { transform: scale(1) rotate(0deg); }
  25%  { transform: scale(1.2) rotate(-10deg); }
  50%  { transform: scale(1.3) rotate(10deg); }
  75%  { transform: scale(1.4) rotate(-10deg); }
  100% { transform: scale(1.3) rotate(0deg); }
}

/* Outer Circle Pulse Animation - Smooth reversing */
.pulse-ring {
  animation: pulseRing 2.5s ease-in-out infinite;
}

@keyframes pulseRing {
  0% {
    transform: scale(1);
    opacity: 1;
  }
  50% {
    transform: scale(1.4);
    opacity: 0;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}


  .zoom-fade {
    animation-name: zoomFade;
    transform-origin: center;
  }

  @keyframes zoomFade {
    from {
      opacity: 0;
      transform: scale(0.5);
    }
    to {
      opacity: 1;
      transform: scale(1);
    }
  }










  /* new css added */
 
.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);
}
 
 
.border-card:hover .icon-container {
  /* translateY rotate(360deg) */
  transform: translateY(-8px) rotate(360deg);
}
 
.icon-container {
  transition: transform 1s cubic-bezier(0.34, 1.56, 0.64, 1);
}
 
/* line animation part*/
@keyframes flowLoop {
  0% {
    stroke-dashoffset: 600;
  }
  100% {
    stroke-dashoffset: 0;
  }
}
 
.animated-flow-path {
  stroke-dasharray: 100, 200;
  stroke-linecap: round;
  animation: flowLoop 4s linear infinite;
  filter: drop-shadow(0 0 5px rgba(255, 255, 255, 0.8));
}
 
 @keyframes drawLine {
    from {
      stroke-dashoffset: 1;
    }
    to {
      stroke-dashoffset: 0;
    }
  }
 
  .animate-line {
    animation: drawLine 3s ease-out infinite;
  }
 
  .animate-line-delay-1 {
    animation-delay: 3s;
  }
 
  .animate-line-delay-2 {
    animation-delay: 6s;
  }
 
 
  /* Button zoom effect */
  .btn-hover-zoom {
  transition: transform 0.3s ease;
}
 
.btn-hover-zoom:hover {
  transform: scale(1.05);
}
.btn-hover-zoom:active {
  transform: scale(0.95);
}
 
 
/* ===== Card Pop Animation ===== */
@keyframes cardPop {
  0% {
    opacity: 0;
    transform: scale(0.8) translateY(30px);
  }
  60% {
    transform: scale(1.05) translateY(-5px);
  }
  100% {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}
 
.card-pop {
  animation: cardPop 1.3s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}
 
 
/* ===== Floating Background Circles ===== */
@keyframes circleFloat {
  0%, 100% {
    transform: translateY(0) translateX(0);
  }
  25% {
    transform: translateY(-20px) translateX(10px);
  }
  50% {
    transform: translateY(-10px) translateX(-15px);
  }
  75% {
    transform: translateY(-25px) translateX(5px);
  }
}
 
.circle-float {
  animation: circleFloat 8s ease-in-out infinite;
}
 
 
/* ===== Pyramid Highlight Pulse ===== */
@keyframes pyramidPulse {
  0%, 100% {
    transform: scale(1);
    opacity: 0.6;
  }
  50% {
    transform: scale(1.05);
    opacity: 1;
  }
}
 
.pyramid-active {
  animation: pyramidPulse 1.3s ease-in-out;
  opacity: 1 !important;
  transform: scale(1.05) !important;
}
 
 
/* ===== Decorative Dot Floating ===== */
@keyframes dotFloat {
  0%, 100% {
    transform: translateX(0) translateY(0);
  }
  33% {
    transform: translateX(-5px) translateY(-15px);
  }
  66% {
    transform: translateX(5px) translateY(-20px);
  }
}
 
.dot-float {
  animation: dotFloat 6s ease-in-out infinite;
}
 
 
/* ===== Gradient Pulse ===== */
@keyframes gradientPulse {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.1);
  }
}
 
.gradient-pulse {
  animation: gradientPulse 3s ease-in-out infinite;
}
 
 
   /* NAVBAR SCROLL ANIMATION */
 
/* Base navbar styles */
.navbar-scroll-wrapper {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
 
/* Logo size animation */
.navbar-scroll-wrapper img {
  transition: height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
 
.navbar-scrolled img {
  height: 60px !important;
}
 
.navbar-scrolled .navbar-height-wrapper {
  height: 70px !important;
}
 
 
/* Smooth card hover with thicker left border + icon float + inner scale */
.border-card {
  position: relative;
}
.border-card .left-border {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;                    /* Starting thin */
  transition: width 1s cubic-bezier(0.34, 1.56, 0.64, 1);
  border-radius: 24px 0 0 24px;
}
.border-card:hover .left-border {
  width: 8px;                    /* Expands to thicker */
}
 
/* Icon float up on hover */
.border-card:hover .icon-container {
  transform: translateY(-8px);
}
.icon-container {
  transition: transform 1s cubic-bezier(0.34, 1.56, 0.64, 1);
}
 
/* Inner card content scale on hover */
.border-card > div:last-child {
  transition: transform 1s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.border-card:hover > div:last-child {
  transform: scale(1.05);
}
 
/* Stronger accessibility rule */
@media (prefers-reduced-motion: reduce) {
  * {
    animation: none !important;
    transition: none !important;
  }
}






  