@keyframes textShimmer {
    0% {
        background-position: 110% center;
    }
    100% {
        background-position: -110% center;
    }
}

@keyframes spin {
    to {
        transform: translate(-50%, -50%) rotate(360deg);
    }
}

@keyframes spinReverse {
    to {
        transform: translate(-50%, -50%) rotate(-360deg);
    }
}

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

@keyframes scrollLine {
    0% {
        transform: translateY(0);
    }
    100% {
        transform: translateY(70px);
    }
}

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

@keyframes statusPulse {
    0% {
        box-shadow: 0 0 0 0 rgba(98, 230, 173, 0.42);
    }
    70% {
        box-shadow: 0 0 0 8px rgba(98, 230, 173, 0);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(98, 230, 173, 0);
    }
}

@keyframes radar {
    to {
        transform: rotate(360deg);
    }
}

@keyframes dialogIn {
    from {
        opacity: 0;
        transform: translateY(-18px) scale(0.96);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

@keyframes loaderLine {
    0% {
        transform: translateX(-130%);
    }
    100% {
        transform: translateX(300%);
    }
}

@keyframes heroEnter {
    from {
        opacity: 0;
        filter: blur(10px);
        transform: translateY(28px);
    }
    to {
        opacity: 1;
        filter: blur(0);
        transform: none;
    }
}

.hero-enter {
    opacity: 0;
    animation: heroEnter 0.9s var(--ease-out) forwards;
}

.hero-enter--1 {
    animation-delay: 0.2s;
}

.hero-enter--2 {
    animation-delay: 0.32s;
}

.hero-enter--3 {
    animation-delay: 0.46s;
}

.hero-enter--4 {
    animation-delay: 0.6s;
}

.hero-enter--5 {
    animation-delay: 0.75s;
}

[data-reveal] {
    opacity: 0;
    filter: blur(8px);
    transform: translateY(30px);
    transition:
        opacity 0.75s var(--ease-out),
        transform 0.75s var(--ease-out),
        filter 0.75s var(--ease-out);
}

[data-reveal].is-revealed {
    opacity: 1;
    filter: blur(0);
    transform: none;
}

.venture-grid [data-reveal]:nth-child(3n + 2),
.services-grid [data-reveal]:nth-child(2),
.principles-grid [data-reveal]:nth-child(2),
.process-track [data-reveal]:nth-child(2) {
    transition-delay: 0.08s;
}

.venture-grid [data-reveal]:nth-child(3n + 3),
.services-grid [data-reveal]:nth-child(3),
.principles-grid [data-reveal]:nth-child(3),
.process-track [data-reveal]:nth-child(3) {
    transition-delay: 0.16s;
}

.services-grid [data-reveal]:nth-child(4),
.process-track [data-reveal]:nth-child(4) {
    transition-delay: 0.24s;
}

@media (prefers-reduced-motion: reduce) {
    .hero-enter,
    [data-reveal] {
        opacity: 1;
        filter: none;
        transform: none;
    }

    .text-gradient {
        background-position: 50% center;
    }

    .marquee-band__track,
    .hero-orbit,
    .stack-orbit__ring,
    .shuttle-orbit,
    .floating-chip,
    .security-radar span,
    .status-dot {
        animation: none;
    }

    .cursor-glow,
    .particle-field {
        display: none;
    }
}
