/* Animações globais do site */

.visible,
.animate-on-scroll {
    opacity: 0;
    visibility: hidden;
}

.animated {
    animation-duration: 0.85s;
    animation-fill-mode: both;
    animation-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
    will-change: opacity, transform, filter;
}

.full-visible {
    opacity: 1 !important;
    visibility: visible !important;
}

[data-anim-delay="1"] { animation-delay: 0.08s; }
[data-anim-delay="2"] { animation-delay: 0.16s; }
[data-anim-delay="3"] { animation-delay: 0.24s; }
[data-anim-delay="4"] { animation-delay: 0.32s; }
[data-anim-delay="5"] { animation-delay: 0.40s; }
[data-anim-delay="6"] { animation-delay: 0.48s; }

.full-visible.fadeInUp { animation-name: fadeInUpKey; }
.full-visible.slideInLeft { animation-name: slideInLeftKey; }
.full-visible.slideInRight { animation-name: slideInRightKey; }
.full-visible.slideInUp { animation-name: slideInUpKey; }
.full-visible.zoomInSoft { animation-name: zoomInSoftKey; }
.full-visible.blurIn { animation-name: blurInKey; }
.full-visible.pulseSoft { animation-name: pulseSoftKey; }

@keyframes fadeInUpKey {
    from {
        opacity: 0;
        transform: translate3d(0, 34px, 0);
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

@keyframes slideInLeftKey {
    from {
        opacity: 0;
        transform: translate3d(-46px, 0, 0);
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

@keyframes slideInRightKey {
    from {
        opacity: 0;
        transform: translate3d(46px, 0, 0);
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

@keyframes slideInUpKey {
    from {
        opacity: 0;
        transform: translate3d(0, 46px, 0);
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

@keyframes zoomInSoftKey {
    from {
        opacity: 0;
        transform: scale(0.92);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes blurInKey {
    from {
        opacity: 0;
        filter: blur(10px);
        transform: translate3d(0, 20px, 0);
    }
    to {
        opacity: 1;
        filter: blur(0);
        transform: translate3d(0, 0, 0);
    }
}

@keyframes pulseSoftKey {
    0% {
        opacity: 0;
        transform: scale(0.9);
    }
    65% {
        opacity: 1;
        transform: scale(1.03);
    }
    100% {
        opacity: 1;
        transform: scale(1);
    }
}

@media (prefers-reduced-motion: reduce) {
    .visible,
    .animate-on-scroll,
    .animated,
    .full-visible {
        animation: none !important;
        transition: none !important;
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
        filter: none !important;
    }
}
