@keyframes logoFloat {

    0%,
    100% {
        transform: translateY(0) rotateY(-8deg) rotateX(4deg);
    }

    50% {
        transform: translateY(-6px) rotateY(10deg) rotateX(-3deg);
    }
}

@keyframes sparkPulse {

    0%,
    100% {
        transform: scale(.55);
        opacity: .25;
    }

    50% {
        transform: scale(1.2);
        opacity: 1;
    }
}

@keyframes scrollBounce {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(8px);
    }
}

@keyframes tapeMove {
    from {
        transform: translateX(0);
    }

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

@keyframes tapeMoveReverse {
    from {
        transform: translateX(-50%);
    }

    to {
        transform: translateX(0);
    }
}

@keyframes sealFloat {

    0%,
    100% {
        transform: translateY(0) rotate(-5deg);
    }

    50% {
        transform: translateY(-12px) rotate(3deg);
    }
}

@keyframes subtlePulse {

    0%,
    100% {
        box-shadow: 0 14px 34px rgba(0, 0, 0, .4);
    }

    50% {
        box-shadow: 0 16px 44px rgba(37, 211, 102, .38);
    }
}

.reveal-up,
.reveal-left,
.reveal-right {
    opacity: 0;
    transition:
        opacity .85s cubic-bezier(.2, .75, .25, 1),
        transform .85s cubic-bezier(.2, .75, .25, 1);
}

.reveal-up {
    transform: translateY(38px);
}

.reveal-left {
    transform: translateX(-42px);
}

.reveal-right {
    transform: translateX(42px);
}

.reveal-up.revealed,
.reveal-left.revealed,
.reveal-right.revealed {
    opacity: 1;
    transform: translate(0, 0);
}

.services-grid .service-card:nth-child(2) {
    transition-delay: .06s;
}

.services-grid .service-card:nth-child(3) {
    transition-delay: .12s;
}

.services-grid .service-card:nth-child(4) {
    transition-delay: .18s;
}

.services-grid .service-card:nth-child(5) {
    transition-delay: .04s;
}

.services-grid .service-card:nth-child(6) {
    transition-delay: .10s;
}

.services-grid .service-card:nth-child(7) {
    transition-delay: .16s;
}

.services-grid .service-card:nth-child(8) {
    transition-delay: .22s;
}

.hero .reveal-up {
    animation: heroReveal .95s both cubic-bezier(.2, .75, .25, 1);
}

.hero .hero-title {
    animation-delay: .12s;
}

.hero .hero-text {
    animation-delay: .24s;
}

.hero .hero-actions {
    animation-delay: .34s;
}

.hero .hero-proof {
    animation-delay: .46s;
}

@keyframes heroReveal {
    from {
        opacity: 0;
        transform: translateY(34px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.whatsapp-float {
    animation: subtlePulse 3.2s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {

    *,
    *::before,
    *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }

    .hero-video {
        display: block;
    }

    .reveal-up,
    .reveal-left,
    .reveal-right {
        opacity: 1;
        transform: none;
    }
}
@keyframes logoGlint {
    0%, 56%, 100% { transform: translateX(0) skewX(-18deg); opacity: 0; }
    64% { opacity: .8; }
    78% { transform: translateX(430%) skewX(-18deg); opacity: 0; }
}

@keyframes emblemFloat {
    0%, 100% { translate: 0 0; }
    50% { translate: 0 -9px; }
}

@keyframes emblemShine {
    0%, 52%, 100% { transform: translateX(0) skewX(-19deg); opacity: 0; }
    60% { opacity: .75; }
    74% { transform: translateX(520%) skewX(-19deg); opacity: 0; }
}

@keyframes orbitSpin {
    from { transform: rotateX(68deg) rotateZ(-12deg); }
    to { transform: rotateX(68deg) rotateZ(348deg); }
}

@keyframes orbitSpinReverse {
    from { transform: rotateY(72deg) rotateZ(18deg); }
    to { transform: rotateY(72deg) rotateZ(-342deg); }
}

@keyframes emblemFloor {
    0%, 100% { opacity: .5; transform: rotateX(75deg) translateZ(-100px) scale(.94); }
    50% { opacity: .78; transform: rotateX(75deg) translateZ(-100px) scale(1.06); }
}

.hero-emblem-stage {
    animation: heroEmblemReveal 1.15s .3s both cubic-bezier(.18,.75,.25,1);
}

@keyframes heroEmblemReveal {
    from { opacity: 0; transform: translateX(55px) scale(.9); }
    to { opacity: 1; transform: translateX(0) scale(1); }
}
