/* Animation CSS */

/* --- Keyframes --- */

/* Floating Animation (Hero Images) */
@keyframes float {
  0% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-20px);
  }
  100% {
    transform: translateY(0px);
  }
}

.animate-float {
  animation: float 6s ease-in-out infinite;
}

/* Pulse Glow (Buttons/Accents) */
@keyframes pulse-glow {
  0% {
    box-shadow: 0 0 0 0 rgba(10, 245, 206, 0.4);
  }
  70% {
    box-shadow: 0 0 0 10px rgba(10, 245, 206, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(10, 245, 206, 0);
  }
}

.animate-pulse-glow {
  animation: pulse-glow 2s infinite;
}

/* Gradient Flow (Text Backgrounds) */
@keyframes gradient-flow {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

.animate-gradient-text {
  background-size: 200% auto;
  animation: gradient-flow 3s linear infinite;
}

/* Spin Slow (Exisiting optimization) */
@keyframes spin-slow {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

.animate-spin-slow {
  animation: spin-slow 10s linear infinite;
}

/* Fade In Up (Custom if AOS fails) */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translate3d(0, 40px, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

.animate-fade-in-up {
  animation-name: fadeInUp;
  animation-duration: 1s;
  animation-fill-mode: both;
}

/* --- Utility Classes for Interactivity --- */

/* Hover Tilt & Lift */
.hover-lift {
  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;
}

.hover-lift:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
}

/* Hover Scale */
.hover-scale {
  transition: transform 0.3s ease;
}

.hover-scale:hover {
  transform: scale(1.05);
}

/* Skill Bar Animation Base state */
.skill-progress-bar {
  width: 0;
  /* transition: width 1.5s ease-in-out;  <-- Removed to let GSAP handle animation */
}

/* AOS Customization to match theme */
[data-aos] {
  pointer-events: none;
}
[data-aos].aos-animate {
  pointer-events: auto;
}

/* --- GSAP Initial States (Prevent FOUC) --- */
/* Hide elements that will be animated by GSAP */
.bento-card,
.skill-card,
.project-card,
.project-item,
.service-card,
.timeline-content,
.card-wrapper,
.pricing-card,
.process-card,
.swiper, /* Target Sliders */
section h1, 
section h2, 
section h3, 
section h4, 
section p.lead,
/* section p.text-secondary,  Be careful with generic p, but lead and text-secondary are usually main text */
section .d-inline-flex {
  opacity: 0;
  /* We handle transform in JS or set here if we want absolute safety */
  visibility: hidden; /* Recommended for accessibility/layout until needed, but opacity 0 is often enough for GSAP */
}

/* Hide process-card internal elements for staggered animation */
.process-card .process-icon-box,
.process-card h4,
.process-card p {
  opacity: 0;
  visibility: hidden;
}

/* Ensure they are visible if JS is disabled */
.no-js .bento-card,
.no-js .skill-card,
.no-js .project-card,
.no-js .service-card,
.no-js .timeline-content,
.no-js .card-wrapper,
.no-js .swiper,
.no-js section h1,
.no-js section h2,
.no-js section p {
  opacity: 1 !important;
  visibility: visible !important;
}
