@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(22px)
    }

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

@keyframes fadeUp {
    from {
        opacity: 0;
        transform: translate(-50%, 14px)
    }

    to {
        opacity: 1;
        transform: translate(-50%, 0)
    }
}

@keyframes scrollAnim {
    0% {
        transform: scaleY(0);
        transform-origin: top
    }

    50% {
        transform: scaleY(1);
        transform-origin: top
    }

    51% {
        transform: scaleY(1);
        transform-origin: bottom
    }

    100% {
        transform: scaleY(0);
        transform-origin: bottom
    }
}

@keyframes spinRing {
    from {
        transform: rotate(0deg)
    }

    to {
        transform: rotate(360deg)
    }
}

@keyframes pulseDot {

    0%,
    100% {
        opacity: 1
    }

    50% {
        opacity: 0.4
    }
}

@keyframes pdot {

    0%,
    100% {
        transform: scale(1);
        opacity: 1
    }

    50% {
        transform: scale(1.4);
        opacity: 0.6
    }
}

.hero-greeting {
    animation: fadeInUp 0.7s 0.1s both
}

.hero-name {
    animation: fadeInUp 0.7s 0.25s both
}

.hero-tagline {
    animation: fadeInUp 0.7s 0.4s both
}

.hero-desc {
    animation: fadeInUp 0.7s 0.5s both
}

.hero-ctas {
    animation: fadeInUp 0.7s 0.6s both
}

.hero-socials {
    animation: fadeInUp 0.7s 0.7s both
}

.hero-badges {
    animation: fadeInUp 0.7s 0.8s both
}

.reveal {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 0.7s ease, transform 0.7s ease
}

.reveal.vis {
    opacity: 1;
    transform: translateY(0)
}

.d1 {
    transition-delay: 0.1s
}

.d2 {
    transition-delay: 0.2s
}

.d3 {
    transition-delay: 0.3s
}

.d4 {
    transition-delay: 0.4s
}