[data-animate] {
    opacity: 0;
}

[data-animate].animated {
    opacity: 1;
    animation-fill-mode: both;
}

[data-animate="fadeIn"] {
    animation: fadeIn 0.8s ease-out;
}

[data-animate="fadeInUp"] {
    animation: fadeInUp 0.8s ease-out;
}

[data-animate="fadeInLeft"] {
    animation: fadeInLeft 0.8s ease-out;
}

[data-animate="fadeInRight"] {
    animation: fadeInRight 0.8s ease-out;
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeInLeft {
    from {
        opacity: 0;
        transform: translateX(-30px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes fadeInRight {
    from {
        opacity: 0;
        transform: translateX(30px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

[data-delay] {
    animation-delay: calc(var(--delay, 0) * 1ms);
}



