/* ==========================================================================
   HilSec - Keyframes, motion utility classes, reduced-motion overrides
   ========================================================================== */

@keyframes loaderSlide {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(350%); }
}

@keyframes pulseGlow {
    0%, 100% { filter: drop-shadow(0 0 4px rgba(0, 255, 243, 0.4)); }
    50% { filter: drop-shadow(0 0 16px rgba(0, 255, 243, 0.8)); }
}

@keyframes scrollCueMove {
    0% { top: 6px; opacity: 1; }
    70% { opacity: 1; }
    100% { top: 24px; opacity: 0; }
}

@keyframes marqueeScroll {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}

@keyframes fadeInBlock {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes socPulse {
    0% { box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.5); }
    70% { box-shadow: 0 0 0 8px rgba(34, 197, 94, 0); }
    100% { box-shadow: 0 0 0 0 rgba(34, 197, 94, 0); }
}

@keyframes timelinePulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(0, 255, 243, 0.35); }
    50% { box-shadow: 0 0 0 10px rgba(0, 255, 243, 0); }
}

/* Hero entrance reveal targets (animated in by animations.js via GSAP) */
.hero-reveal {
    will-change: transform, opacity;
}

/* Page transition fade (app.js intercepts internal link clicks) */
body.page-transition-ready {
    transition: opacity 0.22s ease;
}

body.page-fade-out {
    opacity: 0;
}

/* Respect reduced motion: disable custom cursor, tilt, magnetic pull, parallax */
@media (prefers-reduced-motion: reduce) {
    #cursor-dot,
    #cursor-glow {
        display: none !important;
    }

    body.has-custom-cursor,
    body.has-custom-cursor a,
    body.has-custom-cursor button,
    body.has-custom-cursor .btn {
        cursor: auto;
    }

    .btn,
    .service-card,
    .product-card,
    .why-card,
    .case-study-card,
    .industry-card {
        transform: none !important;
        transition: none !important;
    }
}
