/* Supplemental motion layer for the CyberVision HomeExperience.
   Keep motion restrained and fully disabled when reduced motion is requested. */

@media (prefers-reduced-motion: no-preference) {
    /* Disable the older component-wide rise animation so this layer owns motion timing. */
    .cv-concept-page .cv-concept-hero-copy,
    .cv-concept-page .cv-concept-outcome-grid article,
    .cv-concept-page .cv-concept-service-card,
    .cv-concept-page .cv-concept-offering-grid article {
        animation: none;
    }

    .cv-concept-page .cv-concept-nav {
        animation: cv-home-nav-in 1.05s 0.08s cubic-bezier(0.22, 1, 0.36, 1) both;
    }

    .cv-concept-page .cv-concept-hero-copy > * {
        animation: cv-home-rise-in 1.15s cubic-bezier(0.22, 1, 0.36, 1) both;
    }

    .cv-concept-page .cv-concept-hero-copy > .cv-concept-eyebrow { animation-delay: 0.35s; }
    .cv-concept-page .cv-concept-hero-copy > h1 { animation-delay: 0.70s; }
    .cv-concept-page .cv-concept-hero-copy > .cv-concept-supporting { animation-delay: 1.05s; }
    .cv-concept-page .cv-concept-hero-copy > .cv-concept-lede { animation-delay: 1.40s; }
    .cv-concept-page .cv-concept-hero-copy > .cv-concept-actions { animation-delay: 1.75s; }
    .cv-concept-page .cv-concept-hero-copy > .cv-concept-hero-trust { animation-delay: 2.10s; }

    .cv-concept-page .cv-concept-hero-system {
        animation: cv-home-system-in 1.4s 0.90s cubic-bezier(0.22, 1, 0.36, 1) both;
    }

    .cv-concept-page .cv-concept-system-node img {
        animation: cv-home-node-in 0.9s cubic-bezier(0.22, 1, 0.36, 1) both;
    }

    .cv-concept-page .cv-concept-system-node-build img { animation-delay: 1.75s; }
    .cv-concept-page .cv-concept-system-node-automate img { animation-delay: 2.05s; }
    .cv-concept-page .cv-concept-system-node-connect img { animation-delay: 2.35s; }
    .cv-concept-page .cv-concept-system-node-support img { animation-delay: 2.65s; }

    .cv-concept-page .cv-concept-system-core-mark {
        animation: cv-home-core-glow 7s 3.5s ease-in-out infinite;
    }

    /* IntersectionObserver adds these classes only to below-the-fold reveal targets. */
    .cv-concept-page .cv-motion-reveal {
        opacity: 0;
        filter: blur(1.5px);
        transform: translate3d(0, 28px, 0) scale(0.988);
        transition:
            opacity 1.05s cubic-bezier(0.22, 1, 0.36, 1),
            filter 1.05s cubic-bezier(0.22, 1, 0.36, 1),
            transform 1.15s cubic-bezier(0.22, 1, 0.36, 1);
        transition-delay: var(--cv-motion-delay, 0ms);
        will-change: opacity, filter, transform;
    }

    .cv-concept-page .cv-motion-reveal.cv-motion-visible {
        opacity: 1;
        filter: none;
        transform: translate3d(0, 0, 0) scale(1);
    }
}

@keyframes cv-home-nav-in {
    from { opacity: 0; transform: translateY(-14px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes cv-home-rise-in {
    from { opacity: 0; transform: translateY(24px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes cv-home-system-in {
    from { opacity: 0; transform: translate3d(30px, 12px, 0) scale(0.978); }
    to { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
}

@keyframes cv-home-node-in {
    from { opacity: 0; transform: scale(0.84); }
    to { opacity: 1; transform: scale(1); }
}

@keyframes cv-home-core-glow {
    0%, 100% { filter: drop-shadow(0 0 0 rgba(6, 98, 248, 0)); }
    50% { filter: drop-shadow(0 0 16px rgba(6, 98, 248, 0.24)); }
}

@media (prefers-reduced-motion: reduce) {
    .cv-concept-page *,
    .cv-concept-page *::before,
    .cv-concept-page *::after {
        animation: none !important;
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }

    .cv-concept-page .cv-motion-reveal {
        opacity: 1 !important;
        filter: none !important;
        transform: none !important;
    }
}