/* Additional keyframes or custom animations beyond AOS */

@keyframes float {
    0% { transform: translateY(0px); }
    50% { transform: translateY(-10px); }
    100% { transform: translateY(0px); }
}

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

@keyframes pulse {
    0% { transform: scale(1); }
    50% { transform: scale(1.05); }
    100% { transform: scale(1); }
}

.animate-pulse {
    animation: pulse 4s ease-in-out infinite;
}

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

.animate-marquee {
    display: flex;
    white-space: nowrap;
    animation: marquee 30s linear infinite;
    will-change: transform;
}
.animate-marquee:hover {
    animation-play-state: paused;
}
@keyframes pulse-teal {
  0%, 100% { box-shadow: 0 0 0 0 rgba(54, 181, 187, 0.4); }
  50%       { box-shadow: 0 0 0 10px rgba(54, 181, 187, 0); }
}
.btn-primary--pulse { animation: pulse-teal 2.5s ease-in-out infinite; }

@keyframes heroFadeUp {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}
.hero-fade-up { animation: heroFadeUp 0.8s ease-out both; }
