@keyframes formFade {
    from { opacity: 0; transform: translateY(16px) scale(.985); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes whatsappPulse {
    0%, 100% { box-shadow: 0 13px 30px rgba(15,23,42,.25), 0 0 0 0 rgba(34,197,94,.32); }
    50% { box-shadow: 0 13px 30px rgba(15,23,42,.25), 0 0 0 12px rgba(34,197,94,0); }
}

@keyframes brandDrive {
    0%, 100% { transform: translateY(0); box-shadow: 0 8px 22px rgba(0,110,232,.24), inset 0 0 0 1px rgba(255,255,255,.14); }
    50% { transform: translateY(-2px); box-shadow: 0 13px 28px rgba(67,201,19,.22), inset 0 0 0 1px rgba(255,255,255,.22); }
}

@keyframes wheelTurn {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

@keyframes roadDash {
    from { background-position: 0 0; }
    to { background-position: 84px 0; }
}

@keyframes lightSweep {
    from { background-position: 220% 0; }
    to { background-position: -80% 0; }
}

@keyframes heroRoad {
    from { background-position: 0 0, 0 0; }
    to { background-position: -360px 0, 0 0; }
}

@keyframes heroPosterDrift {
    0%, 100% { transform: scale(1.02) translate3d(0, 0, 0); }
    50% { transform: scale(1.06) translate3d(-16px, 8px, 0); }
}

@keyframes orbitRoll {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

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

@keyframes routeGlow {
    0%, 100% { filter: drop-shadow(0 0 8px rgba(22,169,255,.18)); opacity: .82; }
    50% { filter: drop-shadow(0 0 18px rgba(67,201,19,.34)); opacity: 1; }
}

@keyframes iconPop {
    0%, 100% { transform: translateY(0) scale(1); }
    50% { transform: translateY(-3px) scale(1.06); }
}

@keyframes tyreRoll {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

@keyframes queryFloat {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-8px); }
}

.floating-whatsapp { animation: whatsappPulse 2.4s ease-in-out infinite; }
.brand-mark { animation: brandDrive 4.8s ease-in-out infinite; }
.brand:hover .brand-wheel { animation: wheelTurn 1.1s linear infinite; }
.brand-road::before, .route-line::before { animation: roadDash 1.15s linear infinite; }
.hero-media { animation: heroPosterDrift 18s ease-in-out infinite; will-change: transform; }
.hero::after { animation: heroRoad 7s linear infinite; }
.hero-orbit-one { animation: orbitRoll 24s linear infinite; }
.hero-orbit-two { animation: orbitRoll 18s linear reverse infinite; }
.quick-booking::before, .image-cta::after, .safety-band::before, .final-cta::before, .compact-cta::before { animation: lightSweep 4.8s ease-in-out infinite; }
.section-dark::before { animation: lightSweep 8s linear infinite; }
.visual-main { animation: floatCard 5.6s ease-in-out infinite; }
.visual-float { animation: floatCard 4.4s ease-in-out infinite reverse; }
.route-line { animation: routeGlow 3s ease-in-out infinite; }
.service-card:hover .service-icon, .popular-card:hover > i:first-child, .need-card:hover i, .content-card:hover > i, .choice-card:hover .choice-icon, .verification-grid span:hover i { animation: iconPop .65s ease both; }
.service-card::before, .popular-card::before, .need-card::before, .content-card::before { animation: lightSweep 2.6s ease-in-out infinite; }
.reveal { opacity: 0; transform: translateY(34px) scale(.985); transition: opacity .78s cubic-bezier(.2,.7,.2,1), transform .78s cubic-bezier(.2,.7,.2,1); }
.reveal.visible { opacity: 1; transform: translateY(0); }
.delay-1 { transition-delay: .08s; }
.delay-2 { transition-delay: .16s; }
.delay-3 { transition-delay: .24s; }
.delay-4 { transition-delay: .32s; }
.delay-5 { transition-delay: .4s; }

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
    .reveal { opacity: 1; transform: none; }
}
