/* Variables  */
:root {
    --animation-duration: 500ms;
    --anim-timing: 1s;
    --animation-timing-function: 1s;
}

/* basic Animations ///////////////////////////////////////////////////////// */
@keyframes slideInUp {
    0% {
        opacity: 0;
        transform: translateY(25%);
    }
    100% {
        opacity: 1;
        transform: none;
    }
}
@-webkit-keyframes slideInUp {
    0% {
        opacity: 0;
        transform: translateY(25%);
    }
    100% {
        opacity: 1;
        transform: none;
    }
}
@keyframes slideInDown {
    0% {
        opacity: 0;
        transform: translateY(-25%);
    }
    100% {
        opacity: 1;
        transform: none;
    }
}
@-webkit-keyframes slideInDown {
    0% {
        opacity: 0;
        transform: translateY(-25%);
    }
    100% {
        opacity: 1;
        transform: none;
    }
}
@keyframes slideInleft {
    0% {
        opacity: 0;
        transform: translateX(25%);
    }
    100% {
        opacity: 1;
        transform: none;
    }
}
@-webkit-keyframes slideInleft {
    0% {
        opacity: 0;
        transform: translateX(25%);
    }
    100% {
        opacity: 1;
        transform: none;
    }
}
@keyframes slideInRight {
    0% {
        opacity: 0;
        transform: translateX(-25%);
    }
    100% {
        opacity: 1;
        transform: none;
    }
}
@-webkit-keyframes slideInRight {
    0% {
        opacity: 0;
        transform: translateX(-25%);
    }
    100% {
        opacity: 1;
        transform: none;
    }
}
@keyframes fadeIn {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}
@-webkit-keyframes fadeIn {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}
@keyframes zoomIn {
    0% {
        opacity: 0;
        transform: scale(0.75);
    }
    100% {
        opacity: 1;
        transform: none;
    }
}
@-webkit-keyframes zoomIn {
    0% {
        opacity: 0;
        transform: scale(0.75);
    }
    100% {
        opacity: 1;
        transform: none;
    }
}
@keyframes zoomReverseIn {
    0% {
        opacity: 0;
        transform: scale(1.25);
    }
    100% {
        opacity: 1;
        transform: none;
    }
}
@-webkit-keyframes zoomReverseIn {
    0% {
        opacity: 0;
        transform: scale(1.25);
    }
    100% {
        opacity: 1;
        transform: none;
    }
}
@keyframes flipInY {
    0% {
        opacity: 0;
        transform: perspective(90vw) rotateY(67.5deg);
    }
    100% {
        opacity: 1;
        transform: none;
    }
}
@-webkit-keyframes flipInY {
    0% {
        opacity: 0;
        transform: perspective(90vw) rotateY(67.5deg);
    }
    100% {
        opacity: 1;
        transform: none;
    }
}

/* Animations */
[data-animation] {
    opacity: 0;
    animation-timing-function: var(--animation-timing-function);
    animation-fill-mode: both;
    animation-duration: var(--animation-duration);
    will-change: transform, opacity;
}
.animations-disabled [data-animation] {
    animation: none !important;
    opacity: 1 !important;
}

/* Slide Animations */
.slideInUp {
    animation-name: slideInUp;
}
.slideInDown {
    animation-name: slideInDown;
}
.slideInLeft {
    animation-name: slideInleft;
}
.slideInRight {
    animation-name: slideInRight;
}
/* Fade Animations */
.fadeIn {
    animation-name: fadeIn;
}

/* Zoom Animations */
.zoomIn {
    animation-name: zoomIn;
}
.zoomReverseIn {
    animation-name: zoomReverseIn;
}

/* Flip Animations */
.flipInY {
    animation-name: flipInY;
}
.flipOutY {
    animation-name: flipInY;
    animation-direction: reverse;
}

/* header arrow animation */
@keyframes vertical-arrow {
    0% {
        transform: none;
    }
    50% {
        transform: translateY(50%);
    }

    100% {
        transform: none;
    }
}

@-webkit-keyframes vertical-arrow {
    0% {
        transform: none;
    }
    50% {
        transform: translateY(35%);
    }
    100% {
        transform: none;
    }
}
