@keyframes float {

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

    50% {
        transform: translateY(-10px)
    }
}

@keyframes slideInUp {
    from {
        opacity: 0;
        transform: translateY(100px)
    }

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

@keyframes slideInLeft {
    from {
        opacity: 0;
        transform: translateX(-50px)
    }

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

@keyframes slideInRight {
    from {
        opacity: 0;
        transform: translateX(50px)
    }

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

@keyframes pulse {
    0% {
        transform: scale(1)
    }

    50% {
        transform: scale(1.05)
    }

    100% {
        transform: scale(1)
    }
}

@keyframes shimmer {
    0% {
        background-position: -200px 0
    }

    100% {
        background-position: calc(200px + 100%) 0
    }
}

@keyframes countUp {
    from {
        opacity: 0
    }

    to {
        opacity: 1
    }
}

.animate-float {
    animation: float 3s ease-in-out infinite
}

.animate-pulse {
    animation: pulse 2s infinite
}

.animate-slide-up {
    animation: slideInUp .8s var(--cubic-bezier) forwards
}

.animate-slide-left {
    animation: slideInLeft .8s var(--cubic-bezier) forwards
}

.animate-slide-right {
    animation: slideInRight .8s var(--cubic-bezier) forwards
}

.fade-in {
    opacity: 0;
    transform: translateY(50px);
    transition: all .8s var(--cubic-bezier)
}

.fade-in.show {
    opacity: 1;
    transform: translateY(0)
}

.counting {
    animation: countUp .5s ease-in-out
}