@-webkit-keyframes fadeIn {
    0% {
    }
    100% {
        opacity: 1;
    }
}

@keyframes fadeIn {
    0% {
    }
    100% {
        opacity: 1;
    }
}

@-webkit-keyframes moveVertical {
    0% {
    }
    100% {
        -webkit-transform: translateY(0);
        opacity: 1;
    }
}

@keyframes moveVertical {
    0% {
    }
    100% {
        -webkit-transform: translateY(0);
        transform: translateY(0);
        opacity: 1;
    }
}

@-webkit-keyframes moveHorizontal {
    0% {
    }
    100% {
        -webkit-transform: translateX(0);
        opacity: 1;
    }
}

@keyframes moveHorizontal {
    0% {
    }
    100% {
        -webkit-transform: translateX(0);
        transform: translateX(0);
        opacity: 1;
    }
}

@-webkit-keyframes scaleUp {
    0% {
    }
    100% {
        -webkit-transform: scale(1);
        opacity: 1;
    }
}

@keyframes scaleUp {
    0% {
    }
    100% {
        -webkit-transform: scale(1);
        transform: scale(1);
        opacity: 1;
    }
}

@-webkit-keyframes fallPerspective {
    0% {
    }
    100% {
        -webkit-transform: translateZ(0px) translateY(0px) rotateX(0deg);
        opacity: 1;
    }
}

@keyframes fallPerspective {
    0% {
    }
    100% {
        -webkit-transform: translateZ(0px) translateY(0px) rotateX(0deg);
        transform: translateZ(0px) translateY(0px) rotateX(0deg);
        opacity: 1;
    }
}

@-webkit-keyframes fly {
    0% {
    }
    100% {
        -webkit-transform: rotateX(0deg);
        opacity: 1;
    }
}

@keyframes fly {
    0% {
    }
    100% {
        -webkit-transform: rotateX(0deg);
        transform: rotateX(0deg);
        opacity: 1;
    }
}

@-webkit-keyframes flip {
    0% {
    }
    100% {
        -webkit-transform: rotateX(0deg);
        opacity: 1;
    }
}

@keyframes flip {
    0% {
    }
    100% {
        -webkit-transform: rotateX(0deg);
        transform: rotateX(0deg);
        opacity: 1;
    }
}

@-webkit-keyframes helix {
    0% {
    }
    100% {
        -webkit-transform: rotateY(0deg);
        opacity: 1;
    }
}

@keyframes helix {
    0% {
    }
    100% {
        -webkit-transform: rotateY(0deg);
        transform: rotateY(0deg);
        opacity: 1;
    }
}

@-webkit-keyframes popUp {
    0% {
    }
    70% {
        -webkit-transform: scale(1.1);
        opacity: .8;
        -webkit-animation-timing-function: ease-out;
    }
    100% {
        -webkit-transform: scale(1);
        opacity: 1;
    }
}

@keyframes popUp {
    0% {
    }
    70% {
        -webkit-transform: scale(1.1);
        transform: scale(1.1);
        opacity: .8;
        -webkit-animation-timing-function: ease-out;
        animation-timing-function: ease-out;
    }
    100% {
        -webkit-transform: scale(1);
        transform: scale(1);
        opacity: 1;
    }
}

.tm-animation {
    opacity: 0;

    &.fade-in {
        &.animate {
            -webkit-animation: fadeIn 0.95s ease forwards;
            animation: fadeIn 0.95s ease forwards;
        }
    }

    &.move-up {
        &.animate {
            -webkit-transform: translateY(150px);
            transform: translateY(150px);
            -webkit-animation: moveVertical 0.65s ease forwards;
            animation: moveVertical 0.65s ease forwards;
        }
    }

    &.move-down {
        &.animate {
            -webkit-transform: translateY(-150px);
            transform: translateY(-150px);
            -webkit-animation: moveVertical 0.65s ease forwards;
            animation: moveVertical 0.65s ease forwards;
        }
    }

    &.move-left {
        &.animate {
            -webkit-transform: translateX(150px);
            transform: translateX(150px);
            -webkit-animation: moveHorizontal 0.65s ease forwards;
            animation: moveHorizontal 0.65s ease forwards;
        }
    }

    &.move-right {
        &.animate {
            -webkit-transform: translateX(-150px);
            transform: translateX(-150px);
            -webkit-animation: moveHorizontal 0.65s ease forwards;
            animation: moveHorizontal 0.65s ease forwards;
        }
    }

    &.scale-up {
        &.animate {
            -webkit-transform: scale(0.6);
            transform: scale(0.6);
            -webkit-animation: scaleUp 0.65s ease-in-out forwards;
            animation: scaleUp 0.65s ease-in-out forwards;
        }
    }

    &.fall-perspective {
        -webkit-perspective: 1300px;
        perspective: 1300px;

        &.animate {
            -webkit-transform-style: preserve-3d;
            transform-style: preserve-3d;
            -webkit-transform: translateZ(400px) translateY(300px) rotateX(-90deg);
            transform: translateZ(400px) translateY(300px) rotateX(-90deg);
            -webkit-animation: fallPerspective .8s ease-in-out forwards;
            animation: fallPerspective .8s ease-in-out forwards;
        }
    }

    &.fly {
        -webkit-perspective: 1300px;
        perspective: 1300px;

        &.animate {
            -webkit-transform-style: preserve-3d;
            transform-style: preserve-3d;
            -webkit-transform-origin: 50% 50% -300px;
            transform-origin: 50% 50% -300px;
            -webkit-transform: rotateX(-180deg);
            transform: rotateX(-180deg);
            -webkit-animation: fly .8s ease-in-out forwards;
            animation: fly .8s ease-in-out forwards;
        }
    }

    &.flip {
        &.animate {
            -webkit-transform-style: preserve-3d;
            transform-style: preserve-3d;
            -webkit-transform-origin: 0% 0%;
            transform-origin: 0% 0%;
            -webkit-transform: rotateX(-80deg);
            transform: rotateX(-80deg);
            -webkit-animation: flip .8s ease-in-out forwards;
            animation: flip .8s ease-in-out forwards;
        }
    }

    &.helix {
        -webkit-perspective: 1300px;
        perspective: 1300px;

        &.animate {
            -webkit-transform-style: preserve-3d;
            transform-style: preserve-3d;
            -webkit-transform: rotateY(-180deg);
            transform: rotateY(-180deg);
            -webkit-animation: helix .8s ease-in-out forwards;
            animation: helix .8s ease-in-out forwards;
        }
    }

    &.pop-up {
        -webkit-perspective: 1300px;
        perspective: 1300px;

        &.animate {
            -webkit-transform-style: preserve-3d;
            transform-style: preserve-3d;
            -webkit-transform: scale(0.4);
            transform: scale(0.4);
            -webkit-animation: popUp .8s ease-in forwards;
            animation: popUp .8s ease-in forwards;
        }
    }
}
