﻿/**
 * cssanimation.css
 * Current Version: 1.0.2
 * https://www.cssanimatio.io
 * Created and maintained by: Pavel
 * Find me at: https://www.linkedin.com/in/yesiamrocks/
 * Email: hello@cssanimation.io
 * Github: https://github.com/yesiamrocks/cssanimation.io
 * Title: A CSS Animation Library for Developers and Ninjas
 * Copyright (c) 2017 Pavel
 * License: cssanimation.io is licensed under the MIT license
 **/

.cssanimation {
    animation-duration: .9s;
    animation-fill-mode: both
}

.cssanimation span {
    animation-duration: .3s;
    animation-fill-mode: both;
    display: inline-block
}

.open,
.wipe {
    margin: 0 auto;
    overflow: hidden;
    display: inline-flex
}

.infinite {
    animation-iteration-count: infinite !important
}

.hu__hu__ {
    animation: hu__hu__ 2s ease-in-out;
    animation-iteration-count: 1
}

@keyframes hu__hu__ {
    50% {
        transform: translateY(30px)
    }
}

.leSnake span {
    animation: leSnake 1.5s ease-in-out;
    animation-iteration-count: 1
}

@keyframes leSnake {

    from,
    to {
        transform: translateY(0)
    }

    50% {
        transform: translateY(30px)
    }
}

.lePeek span {
    animation-name: lePeek
}

@keyframes lePeek {
    25% {
        transform: rotateX(30deg) translateY(10px) rotate(-13deg)
    }

    50% {
        transform: translateY(-22px) rotate(3deg) scale(1.1)
    }
}

.effect3d {
    animation-name: effect3d
}

@keyframes effect3d {
    to {
        text-shadow: 0 1px 0 #ccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaa, 0 6px 1px rgba(0, 0, 0, .1), 0 0 5px rgba(0, 0, 0, .1), 0 1px 3px rgba(0, 0, 0, .3), 0 3px 5px rgba(0, 0, 0, .2), 0 5px 10px rgba(0, 0, 0, .25), 0 10px 10px rgba(0, 0, 0, .2), 0 20px 20px rgba(0, 0, 0, .15)
    }
}

.leRainDrop span {
    animation-name: leRainDrop;
    animation-iteration-count: 1
}

@keyframes leRainDrop {

    0%,
    100%,
    25%,
    55%,
    75%,
    87%,
    97% {
        transform: scaleX(1)
    }

    26%,
    56%,
    76% {
        transform: scaleX(1.3) scaleY(.8)
    }

    31%,
    61%,
    81% {
        transform: scaleX(.8) scaleY(1.2)
    }

    76%,
    88% {
        transform: scaleX(1.2)
    }

    98% {
        transform: scaleX(1.1)
    }
}

.pepe {
    animation-name: pepe;
    animation-iteration-count: infinite
}

@keyframes pepe {

    33%,
    66%,
    from,
    to {
        transform: rotate(4deg)
    }

    16%,
    50%,
    83% {
        transform: rotate(-4deg)
    }
}

.leWaterWave span {
    animation: leWaterWave .2s linear 1
}

@keyframes leWaterWave {
    50% {
        transform: skewY(1deg) skewX(-1deg) scale(1.06)
    }
}

.lightning {
    animation-name: lightning
}

@keyframes lightning {

    50%,
    from,
    to {
        opacity: 1
    }

    25%,
    75% {
        opacity: 0
    }
}

.leJoltZoom span {
    animation-name: leJoltZoom
}

@keyframes leJoltZoom {
    10% {
        font-size: 140%
    }

    40% {
        font-size: 80%
    }

    100% {
        font-size: 100%
    }
}

.typing {
    width: 473px;
    overflow: hidden;
    white-space: nowrap;
    border-right: 2px solid #7E2EA0;
    animation: typing 2s steps(12, end), cursor .2s steps(12, end) infinite
}

@keyframes typing {
    from {
        width: 0
    }
}

@keyframes cursor {
    50% {
        border-color: transparent
    }
}

.electricity {
    animation-name: electricity;
    animation-iteration-count: infinite
}

.leSkateX span,
.leSkateXY span,
.leSkateY span {
    animation-iteration-count: 1
}

@keyframes electricity {

    37%,
    48%,
    67%,
    72%,
    80%,
    85%,
    93%,
    96%,
    from {
        transform: translateY(30px)
    }

    12%,
    20%,
    28%,
    4%,
    52%,
    56%,
    60%,
    64%,
    88% {
        transform: translateY(10px)
    }

    16%,
    24%,
    32%,
    40%,
    44%,
    8% {
        transform: translateY(5px)
    }

    76%,
    to {
        transform: translateY(40px)
    }
}

.wipe {
    width: 473px;
    animation-name: wipe
}

@keyframes wipe {
    to {
        width: 0
    }
}

.open {
    width: 473px;
    animation-name: open
}

@keyframes open {
    from {
        width: 0
    }
}

.leMagnify span {
    animation-name: leMagnify
}

@keyframes leMagnify {
    50% {
        transform: scale(1.8);
        letter-spacing: 26px
    }
}

.leBeat span {
    animation-name: leBeat
}

@keyframes leBeat {

    14%,
    42% {
        transform: scale(1.3)
    }

    28%,
    70% {
        transform: scale(1)
    }
}

.leFadeIn span {
    animation-name: leFadeIn
}

@keyframes leFadeIn {
    from {
        opacity: 0
    }

    to {
        opacity: 1
    }
}

.leFadeInLeft span {
    animation-name: leFadeInLeft
}

@keyframes leFadeInLeft {
    from {
        opacity: 0;
        transform: translateX(-60px)
    }

    to {
        opacity: 1
    }
}

.leFadeInRight span {
    animation-name: leFadeInRight
}

@keyframes leFadeInRight {
    from {
        opacity: 0;
        transform: translateX(60px)
    }

    to {
        opacity: 1
    }
}

.leFadeInTop span {
    animation-name: leFadeInTop
}

@keyframes leFadeInTop {
    from {
        opacity: 0;
        transform: translateY(-100%)
    }

    to {
        opacity: 1
    }
}

.leFadeInBottom span {
    animation-name: leFadeInBottom
}

@keyframes leFadeInBottom {
    from {
        opacity: 0;
        transform: translateY(100%)
    }

    to {
        opacity: 1
    }
}

.leFadeOut span {
    animation-name: leFadeOut
}

@keyframes leFadeOut {
    to {
        opacity: 0
    }
}

.leFadeOutLeft span {
    animation-name: leFadeOutLeft
}

@keyframes leFadeOutLeft {
    from {
        opacity: 1
    }

    to {
        opacity: 0;
        transform: translateX(-60px)
    }
}

.leFadeOutRight span {
    animation-name: leFadeOutRight
}

@keyframes leFadeOutRight {
    from {
        opacity: 1
    }

    to {
        opacity: 0;
        transform: translateX(60px)
    }
}

.leFadeOutTop span {
    animation-name: leFadeOutTop
}

@keyframes leFadeOutTop {
    from {
        opacity: 1
    }

    to {
        opacity: 0;
        transform: translateY(-100%)
    }
}

.leFadeOutBottom span {
    animation-name: leFadeOutBottom
}

@keyframes leFadeOutBottom {
    from {
        opacity: 1
    }

    to {
        opacity: 0;
        transform: translateY(100%)
    }
}

.leMovingBackFromRight span {
    animation-name: leMovingBackFromRight;
    transform-origin: bottom
}

@keyframes leMovingBackFromRight {
    40% {
        transform: rotate(45deg)
    }

    100% {
        transform: rotate(0);
        animation-timing-function: cubic-bezier(0, .9, .7, 1.45)
    }
}

.leMovingBackFromLeft span {
    animation-name: leMovingBackFromLeft;
    transform-origin: bottom
}

@keyframes leMovingBackFromLeft {
    40% {
        transform: rotate(-45deg)
    }

    100% {
        transform: rotate(0);
        animation-timing-function: cubic-bezier(0, .9, .7, 1.45)
    }
}

.leKickOutBehind span {
    animation-name: leKickOutFront;
    transform-origin: top
}

@keyframes leKickOutFront {
    40% {
        transform: rotate(45deg)
    }

    100% {
        transform: rotate(0);
        animation-timing-function: cubic-bezier(0, .9, .7, 1.45)
    }
}

.leKickOutFront span {
    animation-name: leKickOutBehind;
    transform-origin: top
}

@keyframes leKickOutBehind {
    40% {
        transform: rotate(-45deg)
    }

    100% {
        transform: rotate(0);
        animation-timing-function: cubic-bezier(0, .9, .7, 1.45)
    }
}

.leSkateX span {
    animation-name: leScaleX
}

@keyframes leScaleX {
    50% {
        transform: scaleX(.4)
    }
}

.leSkateY span {
    animation-name: leSkateY
}

@keyframes leSkateY {
    50% {
        transform: scaleY(.4)
    }
}

.leSkateXY span {
    animation-name: leSkateXY;
    animation-duration: 1.5s
}

@keyframes leSkateXY {
    25% {
        transform: scale3d(1, .4, 0)
    }

    50% {
        transform: scale3d(.4, .4, 1)
    }

    75% {
        transform: scale3d(.4, 1, 1)
    }
}

.leScaleXIn span {
    animation-name: leScaleXIn
}

@keyframes leScaleXIn {
    from {
        transform: perspective(400px) rotateX(90deg);
        opacity: 0
    }

    50% {
        opacity: 1
    }
}

.leScaleXOut span {
    animation-name: leScaleXOut
}

@keyframes leScaleXOut {
    to {
        transform: perspective(400px) rotateX(90deg);
        opacity: 0
    }

    from {
        opacity: 1
    }
}

.leScaleYIn span {
    animation-name: leScaleYIn
}

@keyframes leScaleYIn {
    from {
        transform: perspective(400px) rotateY(90deg);
        opacity: 0
    }

    50% {
        opacity: 1
    }
}

.leScaleYOut span {
    animation-name: leScaleYOut
}

@keyframes leScaleYOut {
    to {
        transform: perspective(400px) rotateY(90deg);
        opacity: 0
    }

    from {
        opacity: 1
    }
}

.leJump span {
    animation-name: leJump;
    animation-iteration-count: infinite
}

@keyframes leJump {
    to {
        transform: translateY(-20px)
    }
}

.leAboundTop span {
    animation-name: leAboundTop
}

@keyframes leAboundTop {
    50% {
        transform: translateY(-100px);
        animation-timing-function: ease-in
    }
}

.leAboundBottom span {
    animation-name: leAboundBottom
}

@keyframes leAboundBottom {
    50% {
        transform: translateY(100px);
        animation-timing-function: ease-in
    }
}

.leAboundLeft span {
    animation-name: leAboundLeft
}

@keyframes leAboundLeft {
    50% {
        transform: translateX(-100px);
        animation-timing-function: ease-in
    }
}

.leAboundRight span {
    animation-name: leAboundRight
}

@keyframes leAboundRight {
    50% {
        transform: translateX(100px);
        animation-timing-function: ease-in
    }
}

.leFlyInLeft span,
.leFlyInRight span,
.leFlyOutLeft span,
.leFlyOutRight span {
    animation-timing-function: ease-in-out
}

.leFlyInTop span {
    animation-name: leFlyInTop
}

@keyframes leFlyInTop {
    0% {
        transform: translate(0, -80px);
        opacity: 0
    }

    50% {
        transform: translate(10px, 50px);
        animation-timing-function: ease-in-out
    }
}

.leFlyInLeft span {
    animation-name: leFlyInLeft
}

@keyframes leFlyInLeft {
    0% {
        transform: translate(-40px, 0);
        opacity: 0
    }

    50% {
        transform: translate(40px, 0)
    }
}

.leFlyInRight span {
    animation-name: leFlyInRight
}

@keyframes leFlyInRight {
    0% {
        transform: translate(40px, 0);
        opacity: 0
    }

    50% {
        transform: translate(-40px, 0)
    }
}

.leFlyInBottom span {
    animation-name: leFlyInBottom
}

@keyframes leFlyInBottom {
    0% {
        transform: translate(0, 80px);
        opacity: 0
    }

    50% {
        transform: translate(10px, -50px);
        animation-timing-function: ease-in-out
    }
}

.leFlyOutTop span {
    animation-name: leFlyOutTop
}

@keyframes leFlyOutTop {
    50% {
        transform: translate(0, 50px)
    }

    to {
        transform: translate(0, -100px);
        opacity: 0
    }
}

.leFlyOutLeft span {
    animation-name: leFlyOutLeft
}

@keyframes leFlyOutLeft {
    50% {
        transform: translate(40px, 0)
    }

    to {
        transform: translate(-100px, 0);
        opacity: 0
    }
}

.leFlyOutRight span {
    animation-name: leFlyOutRight
}

@keyframes leFlyOutRight {
    50% {
        transform: translate(-40px, 0)
    }

    to {
        transform: translate(100px, 0);
        opacity: 0
    }
}

.leFlyOutBottom span {
    animation-name: leFlyOutBottom
}

@keyframes leFlyOutBottom {
    50% {
        transform: translate(0, -40px)
    }

    to {
        transform: translate(0, 100px);
        opacity: 0
    }
}

.leDoorCloseLeft span {
    animation-name: leDoorCloseLeft
}

@keyframes leDoorCloseLeft {

    from,
    to {
        transform: perspective(400px);
        transform-origin: left
    }

    from {
        transform: rotateY(90deg);
        opacity: 0
    }

    to {
        opacity: 1
    }
}

.leDoorOpenRight span {
    animation-name: leDoorOpenRight
}

@keyframes leDoorOpenRight {

    from,
    to {
        transform: perspective(400px);
        transform-origin: left
    }

    to {
        transform: rotateY(90deg);
        opacity: 0
    }
}

.leDoorCloseRight span {
    animation-name: leDoorCloseRight
}

@keyframes leDoorCloseRight {

    from,
    to {
        transform: perspective(400px);
        transform-origin: right
    }

    from {
        transform: rotateY(-90deg);
        opacity: 0
    }

    to {
        opacity: 1
    }
}

.leDoorOpenLeft span {
    animation-name: leDoorOpenLeft
}

@keyframes leDoorOpenLeft {

    from,
    to {
        transform: perspective(400px);
        transform-origin: right
    }

    to {
        transform: rotateY(-90deg);
        opacity: 0
    }
}

.leHangAndDropLeft span {
    animation-name: leHangAndDropLeft
}

@keyframes leHangAndDropLeft {
    from {
        transform-origin: left
    }

    50% {
        transform: rotate(100deg);
        transform-origin: left
    }

    60% {
        transform: rotate(90deg);
        transform-origin: left
    }

    to {
        transform: translateY(800px) rotate(70deg);
        transform-origin: left
    }
}

.leHangAndDropRight span {
    animation-name: leHangAndDropRight
}

@keyframes leHangAndDropRight {
    from {
        transform-origin: right
    }

    50% {
        transform: rotate(-100deg);
        transform-origin: right
    }

    60% {
        transform: rotate(-90deg);
        transform-origin: right
    }

    to {
        transform: translateY(800px) rotate(-70deg);
        transform-origin: right
    }
}

.leRencontre span {
    animation: leRencontre .4s;
    animation-iteration-count: 1
}

.leCrazyCool span,
.leHorizontalShake span,
.leHorizontalTremble span,
.leMadMax span,
.lePulseShake span,
.leVerticalShake span,
.leVerticalTremble span {
    animation-iteration-count: 1
}

@keyframes leRencontre {

    0%,
    100%,
    33% {
        transform-origin: bottom;
        animation-timing-function: cubic-bezier(.17, .67, .79, 1.83)
    }

    33% {
        transform: translateY(-2px) rotate(-3deg)
    }

    66% {
        transform: translateY(2px) rotate(3deg)
    }
}

.lePulseShake span {
    animation-name: lePulseShake
}

@keyframes lePulseShake {
    90% {
        transform: scale(1)
    }

    92% {
        transform: scale(1.2)
    }

    96% {
        transform: scale(1, 1)
    }

    98% {
        transform: scale(1.1)
    }
}

.leHorizontalShake span {
    animation-name: leHorizontalShake
}

@keyframes leHorizontalShake {

    12%,
    21%,
    3%,
    30%,
    39%,
    48%,
    57%,
    65%,
    74%,
    92% {
        transform: translateX(5px)
    }

    15%,
    24%,
    33%,
    42%,
    51%,
    6%,
    60%,
    68%,
    77%,
    86%,
    95% {
        transform: translateX(3px)
    }

    18%,
    27%,
    36%,
    45%,
    54%,
    63%,
    71%,
    80%,
    89%,
    9%,
    98% {
        transform: translateX(-5px)
    }
}

.leVerticalShake span {
    animation-name: leVerticalShake
}

@keyframes leVerticalShake {

    12%,
    21%,
    3%,
    30%,
    39%,
    48%,
    57%,
    65%,
    74%,
    83%,
    92% {
        transform: translateY(5px)
    }

    15%,
    24%,
    33%,
    42%,
    51%,
    6%,
    60%,
    68%,
    77%,
    86%,
    95% {
        transform: translateY(3px)
    }

    18%,
    27%,
    36%,
    45%,
    54%,
    63%,
    71%,
    80%,
    89%,
    9%,
    98% {
        transform: translateY(-5px)
    }
}

.leMadMax span {
    animation-name: leMadMax
}

@keyframes leMadMax {

    12%,
    21%,
    3%,
    30%,
    39%,
    48%,
    57%,
    65%,
    74%,
    83%,
    92% {
        transform: translateY(5px) scale(1.1)
    }

    15%,
    24%,
    33%,
    42%,
    51%,
    6%,
    60%,
    68%,
    77%,
    86%,
    95% {
        transform: translateY(3px) scale(.8)
    }

    18%,
    27%,
    36%,
    45%,
    54%,
    63%,
    71%,
    80%,
    89%,
    9%,
    98% {
        transform: translateY(-5px) scale(1.1)
    }
}

.leHorizontalTremble span {
    animation-name: leHorizontalTremble
}

@keyframes leHorizontalTremble {

    21%,
    3%,
    39%,
    57%,
    74%,
    92% {
        transform: translateX(5px)
    }

    24%,
    42%,
    6%,
    60%,
    77%,
    95% {
        transform: translateX(3px)
    }

    27%,
    45%,
    63%,
    80%,
    9%,
    98% {
        transform: translateX(-5px)
    }
}

.leVerticalTremble span {
    animation-name: leVerticalTremble
}

@keyframes leVerticalTremble {

    21%,
    3%,
    39%,
    57%,
    74%,
    92% {
        transform: translateY(5px)
    }

    24%,
    42%,
    6%,
    60%,
    77%,
    95% {
        transform: translateY(3px)
    }

    27%,
    45%,
    63%,
    80%,
    9%,
    98% {
        transform: translateY(-5px)
    }
}

.leCrazyCool span {
    animation-name: leCrazyCool
}

@keyframes leCrazyCool {

    21%,
    3%,
    39%,
    57%,
    74%,
    92% {
        transform: translateY(5px) scale(1.1)
    }

    24%,
    42%,
    6%,
    60%,
    77%,
    95% {
        transform: translateY(3px) scale(.8)
    }

    27%,
    45%,
    63%,
    80%,
    9%,
    98% {
        transform: translateY(-5px) scale(1.1)
    }
}

.leVibration span {
    animation: leVibration .1s linear 2
}

@keyframes leVibration {
    50% {
        transform: skewY(1deg) skewX(-1deg) scale(1.06)
    }
}

.lePushReleaseFrom span {
    animation-name: lePushReleaseFrom
}

@keyframes lePushReleaseFrom {
    from {
        transform: scale(3, 3);
        opacity: 0
    }

    50% {
        transform: scale(.5, .5)
    }
}

.lePushReleaseFromLeft span {
    animation-name: lePushReleaseFromLeft
}

@keyframes lePushReleaseFromLeft {
    from {
        transform: translateX(-100%);
        opacity: 0
    }

    30% {
        transform: translateX(100px)
    }
}

.lePushReleaseFromTop span {
    animation-name: lePushReleaseFromTop
}

@keyframes lePushReleaseFromTop {
    from {
        transform: translateY(-100%);
        opacity: 0
    }

    30% {
        transform: translateY(100px)
    }
}

.lePushReleaseFromBottom span {
    animation-name: lePushReleaseFromBottom
}

@keyframes lePushReleaseFromBottom {
    from {
        transform: translateY(100%);
        opacity: 0
    }

    30% {
        transform: translateY(-100px)
    }
}

.lePushReleaseTo span {
    animation-name: lePushReleaseTo
}

@keyframes lePushReleaseTo {
    30% {
        transform: scale(.5, .5)
    }

    to {
        transform: scale(5, 5);
        opacity: 0
    }
}

.lePushReleaseToTop span {
    animation-name: lePushReleaseToTop
}

@keyframes lePushReleaseToTop {
    30% {
        transform: translateY(100px)
    }

    to {
        transform: translateY(-100%);
        opacity: 0
    }
}

.lePushReleaseToBottom span {
    animation-name: lePushReleaseToBottom
}

@keyframes lePushReleaseToBottom {
    30% {
        transform: translateY(-100px)
    }

    to {
        transform: translateY(100%);
        opacity: 0
    }
}

.leFlipInTop span {
    animation-name: leFlipInTop
}

@keyframes leFlipInTop {
    from {
        transform: perspective(600px);
        opacity: 0
    }

    30% {
        transform: perspective(600px) rotateX(180deg);
        transform-origin: 0 0;
        animation-timing-function: ease-out
    }

    to {
        transform: perspective(600px)
    }
}

.leFlipOutTop span {
    animation-name: leFlipOutTop
}

@keyframes leFlipOutTop {
    to {
        opacity: 0;
        transform: perspective(600px)
    }

    70% {
        transform: perspective(600px) rotateX(180deg);
        transform-origin: 0 0;
        animation-timing-function: ease-out
    }
}

.leFlipInBottom span {
    animation-name: leFlipInBottom
}

@keyframes leFlipInBottom {
    from {
        transform: perspective(600px);
        opacity: 0
    }

    30% {
        transform: perspective(600px) rotateX(180deg);
        transform-origin: bottom;
        animation-timing-function: ease-out
    }

    to {
        transform: perspective(600px)
    }
}

.leFlipOutBottom span {
    animation-name: leFlipOutBottom
}

@keyframes leFlipOutBottom {
    to {
        opacity: 0;
        transform: perspective(600px)
    }

    70% {
        transform: perspective(600px) rotateX(180deg);
        transform-origin: bottom;
        animation-timing-function: ease-out
    }
}

.leElevateLeft span {
    animation-name: leElevateLeft
}

@keyframes leElevateLeft {
    from {
        transform: translateY(100%) rotate(-20deg);
        transform-origin: right;
        opacity: 0
    }

    40% {
        transform: rotate(20deg);
        transform-origin: right
    }

    65% {
        transform: rotate(0);
        transform-origin: right
    }
}

.leElevateRight span {
    animation-name: leElevateRight
}

@keyframes leElevateRight {
    from {
        transform: translateY(100%) rotate(20deg);
        transform-origin: left;
        opacity: 0
    }

    40% {
        transform: rotate(-20deg);
        transform-origin: left
    }

    65% {
        transform: rotate(0);
        transform-origin: left
    }
}

.leRollFromLeft span {
    animation-name: leRollFromLeft
}

@keyframes leRollFromLeft {
    from {
        transform: translateX(-60px) perspective(600px) rotateY(180deg);
        opacity: 0
    }
}

.leRollFromRight span {
    animation-name: leRollFromRight
}

@keyframes leRollFromRight {
    from {
        transform: translateX(60px) perspective(600px) rotateY(-180deg);
        opacity: 0
    }
}

.leRollFromTop span {
    animation-name: leRollFromTop
}

@keyframes leRollFromTop {
    from {
        transform: translateY(-60px) perspective(600px) rotateX(180deg);
        opacity: 0
    }
}

.leRollFromBottom span {
    animation-name: leRollFromBottom
}

@keyframes leRollFromBottom {
    from {
        transform: translateY(60px) perspective(600px) rotateX(-180deg);
        opacity: 0
    }
}

.leRollToLeft span {
    animation-name: leRollToLeft
}

@keyframes leRollToLeft {
    to {
        transform: translateX(-60px) perspective(600px) rotateY(180deg);
        opacity: 0
    }
}

.leRollToRight span {
    animation-name: leRollToRight
}

@keyframes leRollToRight {
    to {
        transform: translateX(60px) perspective(600px) rotateY(-180deg);
        opacity: 0
    }
}

.leRollToTop span {
    animation-name: leRollToTop
}

@keyframes leRollToTop {
    to {
        transform: translateY(-60px) perspective(600px) rotateX(180deg);
        opacity: 0
    }
}

.leRollToBottom span {
    animation-name: leRollToBottom
}

@keyframes leRollToBottom {
    to {
        transform: translateY(60px) perspective(600px) rotateX(-180deg);
        opacity: 0
    }
}

.leRotateSkateInRight span {
    animation-name: leRotateSkateInRight
}

@keyframes leRotateSkateInRight {
    from {
        transform: scaleX(.2) translateX(100px);
        opacity: 0
    }
}

.leRotateSkateInLeft span {
    animation-name: leRotateSkateInLeft
}

@keyframes leRotateSkateInLeft {
    from {
        transform: scaleX(.2) translateX(-100px);
        opacity: 0
    }
}

.leRotateSkateInTop span {
    animation-name: leRotateSkateInTop
}

@keyframes leRotateSkateInTop {
    from {
        transform: scaleY(.2) translateY(-100px);
        opacity: 0
    }
}

.leRotateSkateInBottom span {
    animation-name: leRotateSkateInBottom
}

@keyframes leRotateSkateInBottom {
    from {
        transform: scaleY(.2) translateY(100px);
        opacity: 0
    }
}

.leRotateSkateOutRight span {
    animation-name: leRotateSkateOutRight
}

@keyframes leRotateSkateOutRight {
    to {
        transform: scaleX(.2) translateX(100px);
        opacity: 0
    }
}

.leRotateSkateOutLeft span {
    animation-name: leRotateSkateOutLeft
}

@keyframes leRotateSkateOutLeft {
    to {
        transform: scaleX(.2) translateX(-100px);
        opacity: 0
    }
}

.leRotateSkateOutTop span {
    animation-name: leRotateSkateOutTop
}

@keyframes leRotateSkateOutTop {
    to {
        transform: scaleY(.2) translateY(-100px);
        opacity: 0
    }
}

.leRotateSkateOutBottom span {
    animation-name: leRotateSkateOutBottom
}

@keyframes leRotateSkateOutBottom {
    to {
        transform: scaleY(.2) translateY(100px);
        opacity: 0
    }
}

.leRotateXZoomIn span {
    animation-name: leRotateXZoomIn
}

@keyframes leRotateXZoomIn {
    from {
        transform: perspective(600px) translate3d(0, -60px, -2000px) rotateX(75deg);
        opacity: 0
    }

    5% {
        transform: perspective(600px) translate3d(0, -60px, -1500px) rotateX(75deg)
    }
}

.leRotateXZoomOut span {
    animation-name: leRotateXZoomOut
}

@keyframes leRotateXZoomOut {
    95% {
        transform: perspective(600px) translate3d(0, -60px, -1500px) rotateX(75deg)
    }

    to {
        transform: perspective(600px) translate3d(0, -60px, -2000px) rotateX(75deg);
        opacity: 0
    }
}

.leRotateYZoomIn span {
    animation-name: leRotateYZoomIn
}

@keyframes leRotateYZoomIn {
    from {
        transform: perspective(600px) translate3d(0, -60px, -2000px) rotateY(75deg);
        opacity: 0
    }

    5% {
        transform: perspective(600px) translate3d(0, -60px, -1500px) rotateY(75deg)
    }
}

.leRotateYZoomOut span {
    animation-name: leRotateYZoomOut
}

@keyframes leRotateYZoomOut {
    95% {
        transform: perspective(600px) translate3d(0, -60px, -1500px) rotateY(75deg)
    }

    to {
        transform: perspective(600px) translate3d(0, -60px, -2000px) rotateY(75deg);
        opacity: 0
    }
}

.leRotateIn span {
    animation-name: leRotateIn
}

@keyframes leRotateIn {
    from {
        transform: rotate(-180deg);
        opacity: 0
    }

    to {
        opacity: 1
    }
}

.leRotateOut span {
    animation-name: leRotateOut
}

@keyframes leRotateOut {
    from {
        opacity: 1
    }

    to {
        transform: rotate(180deg);
        opacity: 0
    }
}

.leRotateInLeft span {
    animation-name: leRotateInLeft
}

@keyframes leRotateInLeft {
    from {
        transform: rotate(-180deg) translateX(150px);
        opacity: 0
    }

    to {
        opacity: 1
    }
}

.leRotateOutLeft span {
    animation-name: leRotateOutLeft
}

@keyframes leRotateOutLeft {
    from {
        opacity: 1
    }

    to {
        transform: rotate(180deg) translateX(150px);
        opacity: 0
    }
}

.leRotateInRight span {
    animation-name: leRotateInRight
}

@keyframes leRotateInRight {
    from {
        transform: rotate(-180deg) translateX(-150px);
        opacity: 0
    }

    to {
        opacity: 1
    }
}

.leRotateOutRight span {
    animation-name: leRotateOutRight
}

@keyframes leRotateOutRight {
    from {
        opacity: 1
    }

    to {
        transform: rotate(180deg) translateX(-150px);
        opacity: 0
    }
}

.leSpinInLeft span {
    animation-name: leSpinInLeft
}

@keyframes leSpinInLeft {

    from,
    to {
        transform-origin: left bottom
    }

    from {
        transform: rotate(90deg);
        opacity: 0
    }
}

.leSpinInRight span {
    animation-name: leSpinInRight
}

@keyframes leSpinInRight {

    from,
    to {
        transform-origin: right bottom
    }

    from {
        transform: rotate(-90deg);
        opacity: 0
    }
}

.leSpinOutLeft span {
    animation-name: leSpinOutLeft
}

@keyframes leSpinOutLeft {

    from,
    to {
        transform-origin: left bottom
    }

    to {
        transform: rotate(90deg);
        opacity: 0
    }
}

.leSpinOutRight span {
    animation-name: leSpinOutRight
}

@keyframes leSpinOutRight {

    from,
    to {
        transform-origin: right bottom
    }

    to {
        transform: rotate(-90deg);
        opacity: 0
    }
}

.leBlurIn span {
    animation-name: leBlurIn
}

@keyframes leBlurIn {
    from {
        transform: scaleX(.2);
        filter: blur(20px);
        opacity: 0
    }
}

.leBlurInRight span {
    animation-name: leBlurInRight
}

@keyframes leBlurInRight {
    from {
        transform: scaleX(.2) translateX(100px);
        filter: blur(20px);
        opacity: 0
    }
}

.leBlurInLeft span {
    animation-name: leBlurInLeft
}

@keyframes leBlurInLeft {
    from {
        transform: scaleX(.2) translateX(-100px);
        filter: blur(20px);
        opacity: 0
    }
}

.leBlurInTop span {
    animation-name: leBlurInTop
}

@keyframes leBlurInTop {
    from {
        transform: scaleY(.2) translateY(-100px);
        filter: blur(20px);
        opacity: 0
    }
}

.leBlurInBottom span {
    animation-name: leBlurInBottom
}

@keyframes leBlurInBottom {
    from {
        transform: scaleY(.2) translateY(100px);
        filter: blur(20px);
        opacity: 0
    }
}

.leBlurOut span {
    animation-name: leBlurOut
}

@keyframes leBlurOut {
    to {
        transform: scaleX(.2);
        filter: blur(20px);
        opacity: 0
    }
}

.leBlurOutRight span {
    animation-name: leBlurOutRight
}

@keyframes leBlurOutRight {
    to {
        transform: scaleX(.2) translateX(100px);
        filter: blur(20px);
        opacity: 0
    }
}

.leBlurOutLeft span {
    animation-name: leBlurOutLeft
}

@keyframes leBlurOutLeft {
    to {
        transform: scaleX(.2) translateX(-100px);
        filter: blur(20px);
        opacity: 0
    }
}

.leBlurOutTop span {
    animation-name: leBlurOutTop
}

@keyframes leBlurOutTop {
    to {
        transform: scaleY(.2) translateY(-100px);
        filter: blur(20px);
        opacity: 0
    }
}

.leBlurOutBottom span {
    animation-name: leBlurOutBottom
}

@keyframes leBlurOutBottom {
    to {
        transform: scaleY(.2) translateY(100px);
        filter: blur(20px);
        opacity: 0
    }
}

.lePopUp span {
    animation-name: lePopUp
}

@keyframes lePopUp {
    50% {
        transform: scale(1.5)
    }
}

.lePopUpLeft span {
    animation-name: lePopUpLeft
}

@keyframes lePopUpLeft {
    50% {
        transform: translateX(-50px) scale(1.5);
        animation-timing-function: ease-in
    }
}

.lePopUpRight span {
    animation-name: lePopUpRight
}

@keyframes lePopUpRight {
    50% {
        transform: translateX(50px) scale(1.5);
        animation-timing-function: ease-in
    }
}

.lePopOut span {
    animation-name: lePopOut
}

@keyframes lePopOut {
    50% {
        transform: scale(.5)
    }
}

.lePopOutLeft span {
    animation-name: lePopOutLeft
}

@keyframes lePopOutLeft {
    50% {
        transform: translateX(-50px) scale(.5);
        animation-timing-function: ease-in
    }
}

.lePopOutRight span {
    animation-name: lePopOutRight
}

@keyframes lePopOutRight {
    50% {
        transform: translateX(50px) scale(.5);
        animation-timing-function: ease-in
    }
}

.leBounceFromTop span {
    animation-name: leBounceFromTop
}

@keyframes leBounceFromTop {

    0%,
    100%,
    25%,
    55%,
    85% {
        animation-timing-function: ease-out;
        transform: translate3d(0, 0, 0)
    }

    41%,
    44% {
        animation-timing-function: ease-in;
        transform: translate3d(0, -80px, 0) scale3d(1, 1.2, 1)
    }

    70% {
        animation-timing-function: ease-in;
        transform: translate3d(0, -20px, 0)
    }

    90% {
        transform: translate3d(0, -4px, 0)
    }
}

.leBounceFromDown span {
    animation-name: leBounceFromDown
}

@keyframes leBounceFromDown {

    0%,
    100%,
    25%,
    55%,
    85% {
        animation-timing-function: ease-out;
        transform: translate3d(0, 0, 0)
    }

    41%,
    44% {
        animation-timing-function: ease-in;
        transform: translate3d(0, 80px, 0) scale3d(1, 1.2, 1)
    }

    70% {
        animation-timing-function: ease-in;
        transform: translate3d(0, 20px, 0)
    }

    90% {
        transform: translate3d(0, 4px, 0)
    }
}

.leBounceY span {
    animation-name: leBounceY
}

@keyframes leBounceY {

    0%,
    100%,
    25%,
    55%,
    85% {
        animation-timing-function: ease-out;
        transform: scale3d(1, 1, 1)
    }

    41%,
    44% {
        animation-timing-function: ease-in;
        transform: scale3d(1, 2, 1)
    }

    70% {
        animation-timing-function: ease-in;
        transform: scale3d(1, 1.5, 1)
    }

    90% {
        transform: scale3d(1, 1.1, 1)
    }
}

.leBounceZoomIn span {
    animation-name: leBounceZoomIn
}

@keyframes leBounceZoomIn {

    0%,
    100%,
    25%,
    55%,
    85% {
        animation-timing-function: ease-out;
        transform: scale(1)
    }

    41%,
    44% {
        animation-timing-function: ease-in;
        transform: scale(1.7)
    }

    70% {
        animation-timing-function: ease-in;
        transform: scale(1.9)
    }

    90% {
        transform: scale(1.1)
    }
}

.leBounceZoomOut span {
    animation-name: leBounceZoomOut
}

@keyframes leBounceZoomOut {

    0%,
    100%,
    25%,
    55%,
    85% {
        animation-timing-function: ease-out;
        transform: scale(1)
    }

    41%,
    44% {
        animation-timing-function: ease-in;
        transform: scale(.5)
    }

    70% {
        animation-timing-function: ease-in;
        transform: scale(.7)
    }

    90% {
        transform: scale(.9)
    }
}

.lePerspectiveOutTop span {
    animation-name: lePerspectiveOutTop;
    transform: perspective(500px);
    transform-style: preserve-3d
}

@keyframes lePerspectiveOutTop {
    50% {
        opacity: 1
    }

    to {
        transform: perspective(500px) rotateX(90deg) translateY(-50px) translateZ(50px);
        opacity: 0
    }
}

.lePerspectiveOutBottom span {
    animation-name: lePerspectiveOutBottom;
    transform: perspective(500px);
    transform-style: preserve-3d
}

@keyframes lePerspectiveOutBottom {
    50% {
        opacity: 1
    }

    to {
        transform: perspective(500px) rotateX(90deg) translateY(50px) translateZ(-50px);
        opacity: 0
    }
}

.leZoomIn span {
    animation-name: leZoomIn
}

@keyframes leZoomIn {
    from {
        transform: scale(10);
        opacity: 0
    }
}

.leZoomInLeft span {
    animation-name: leZoomInLeft
}

@keyframes leZoomInLeft {
    from {
        transform: scale(10) translateX(-150%);
        opacity: 0
    }
}

.leZoomInRight span {
    animation-name: leZoomInRight
}

@keyframes leZoomInRight {
    from {
        transform: scale(10) translateX(150%);
        opacity: 0
    }
}

.leZoomInTop span {
    animation-name: LetterZoomInTop
}

@keyframes LetterZoomInTop {
    from {
        transform: scale(10) translateY(-50%);
        opacity: 0
    }
}

.leZoomInBottom span {
    animation-name: leZoomInBottom
}

@keyframes leZoomInBottom {
    from {
        transform: scale(10) translateY(50%);
        opacity: 0
    }
}

.leZoomOut span {
    animation-name: leZoomOut
}

@keyframes leZoomOut {
    to {
        transform: scale(10);
        opacity: 0
    }
}

.leZoomOutLeft span {
    animation-name: leZoomOutLeft
}

@keyframes leZoomOutLeft {
    to {
        transform: scale(10) translateX(-150%);
        opacity: 0
    }
}

.leZoomOutRight span {
    animation-name: leZoomOutRight
}

@keyframes leZoomOutRight {
    to {
        transform: scale(10) translateX(150%);
        opacity: 0
    }
}

.leZoomOutTop span {
    animation-name: leZoomOutTop
}

@keyframes leZoomOutTop {
    to {
        transform: scale(10) translateY(-50%);
        opacity: 0
    }
}

.leZoomOutBottom span {
    animation-name: leZoomOutBottom
}

@keyframes leZoomOutBottom {
    to {
        transform: scale(10) translateY(50%);
        opacity: 0
    }
}

.leDanceInTop span {
    animation-name: leDanceInTop;
    transform-origin: top
}

@keyframes leDanceInTop {
    from {
        opacity: 0
    }

    16% {
        transform: skew(-14deg)
    }

    33% {
        transform: skew(12deg)
    }

    49% {
        transform: skew(-8deg)
    }

    66% {
        transform: skew(6deg)
    }

    83% {
        transform: skew(-4deg)
    }
}

.leDanceInMiddle span {
    animation-name: leDanceInMiddle
}

@keyframes leDanceInMiddle {
    from {
        opacity: 0
    }

    16% {
        transform: skew(-14deg)
    }

    33% {
        transform: skew(12deg)
    }

    49% {
        transform: skew(-8deg)
    }

    66% {
        transform: skew(6deg)
    }

    83% {
        transform: skew(-4deg)
    }
}

.leDanceInBottom span {
    animation-name: leDanceInBottom;
    transform-origin: bottom
}

@keyframes leDanceInBottom {
    from {
        opacity: 0
    }

    16% {
        transform: skew(-14deg)
    }

    33% {
        transform: skew(12deg)
    }

    49% {
        transform: skew(-8deg)
    }

    66% {
        transform: skew(6deg)
    }

    83% {
        transform: skew(-4deg)
    }
}

.leDanceOutTop span {
    animation-name: leDanceOutTop;
    transform-origin: top
}

@keyframes leDanceOutTop {
    16% {
        transform: skew(-14deg)
    }

    33% {
        transform: skew(12deg)
    }

    49% {
        transform: skew(-8deg)
    }

    66% {
        transform: skew(6deg)
    }

    83% {
        transform: skew(-4deg)
    }

    to {
        opacity: 0
    }
}

.leDanceOutMiddle span {
    animation-name: leDanceOutMiddle
}

@keyframes leDanceOutMiddle {
    16% {
        transform: skew(-14deg)
    }

    33% {
        transform: skew(12deg)
    }

    49% {
        transform: skew(-8deg)
    }

    66% {
        transform: skew(6deg)
    }

    83% {
        transform: skew(-4deg)
    }

    to {
        opacity: 0
    }
}

.leDanceOutBottom span {
    animation-name: leDanceOutBottom;
    transform-origin: bottom
}

@keyframes leDanceOutBottom {
    16% {
        transform: skew(-14deg)
    }

    33% {
        transform: skew(12deg)
    }

    49% {
        transform: skew(-8deg)
    }

    66% {
        transform: skew(6deg)
    }

    83% {
        transform: skew(-4deg)
    }

    to {
        opacity: 0
    }
}

.oaoFadeIn span:nth-child(even) {
    animation-name: leoaoFadeInTop;
    animation-duration: .7s;
    animation-timing-function: ease-out
}

@keyframes leoaoFadeInTop {
    from {
        transform: translateY(-100px);
        opacity: 0
    }
}

.oaoFadeIn span:nth-child(odd) {
    animation-name: leoaoFadeInBottom;
    animation-duration: .7s;
    animation-timing-function: ease-out
}

@keyframes leoaoFadeInBottom {
    from {
        transform: translateY(100px);
        opacity: 0
    }
}

.oaoFadeOut span:nth-child(even) {
    animation-name: leoaoFadeOutop;
    animation-duration: .7s;
    animation-timing-function: ease-in
}

@keyframes leoaoFadeOutop {
    to {
        transform: translateY(-100px);
        opacity: 0
    }
}

.oaoFadeOut span:nth-child(odd) {
    animation-name: leoaoFadeOutBottom;
    animation-duration: .7s;
    animation-timing-function: ease-in
}

@keyframes leoaoFadeOutBottom {
    to {
        transform: translateY(100%);
        opacity: 0
    }
}

.oaoFlyIn span:nth-child(even) {
    animation-name: leoaoFlyInTop
}

@keyframes leoaoFlyInTop {
    0% {
        transform: translateY(80px);
        opacity: 0
    }

    50% {
        transform: translateY(-50px);
        animation-timing-function: ease-out
    }
}

.oaoFlyIn span:nth-child(odd) {
    animation-name: leoaoFlyInBottom
}

@keyframes leoaoFlyInBottom {
    0% {
        transform: translateY(-80px);
        opacity: 0
    }

    50% {
        transform: translateY(50px);
        animation-timing-function: ease-out
    }
}

.oaoFlyOut span:nth-child(even) {
    animation-name: leoaoFlyOutTop
}

@keyframes leoaoFlyOutTop {
    30% {
        transform: translateY(80px);
        animation-timing-function: ease-out
    }

    80% {
        transform: translateY(-50px);
        animation-timing-function: ease-out
    }

    to {
        opacity: 0
    }
}

.oaoFlyOut span:nth-child(odd) {
    animation-name: leoaoFlyOutBottom
}

@keyframes leoaoFlyOutBottom {
    30% {
        transform: translateY(-80px);
        animation-timing-function: ease-out
    }

    80% {
        transform: translateY(50px);
        animation-timing-function: ease-out
    }

    to {
        opacity: 0
    }
}

.oaoRotateIn span:nth-child(even) {
    animation-name: oaoRotateInTop
}

@keyframes oaoRotateInTop {
    from {
        transform: translateY(-100px) rotate(360deg);
        opacity: 0
    }
}

.oaoRotateIn span:nth-child(odd) {
    animation-name: oaoRotateInBottom
}

@keyframes oaoRotateInBottom {
    from {
        transform: translateY(100px) rotate(360deg);
        opacity: 0
    }
}

.oaoRotateOut span:nth-child(even) {
    animation-name: oaoRotateOutTop
}

@keyframes oaoRotateOutTop {
    to {
        transform: translateY(-100px) rotate(360deg);
        opacity: 0
    }
}

.oaoRotateOut span:nth-child(odd) {
    animation-name: oaoRotateOutBottom
}

@keyframes oaoRotateOutBottom {
    to {
        transform: translateY(100px) rotate(360deg);
        opacity: 0
    }
}

.oaoRotateXIn span:nth-child(even) {
    animation-name: oaoRotateXInTop
}

@keyframes oaoRotateXInTop {
    from {
        transform: translateY(-100px) rotateX(360deg);
        opacity: 0
    }
}

.oaoRotateXIn span:nth-child(odd) {
    animation-name: oaoRotateXInBottom
}

@keyframes oaoRotateXInBottom {
    from {
        transform: translateY(100px) rotateX(360deg);
        opacity: 0
    }
}

.oaoRotateXOut span:nth-child(even) {
    animation-name: oaoRotateXOutTop
}

@keyframes oaoRotateXOutTop {
    to {
        transform: translateY(-100px) rotateX(360deg);
        opacity: 0
    }
}

.oaoRotateXOut span:nth-child(odd) {
    animation-name: oaoRotateXOutBottom
}

@keyframes oaoRotateXOutBottom {
    to {
        transform: translateY(100px) rotateX(360deg);
        opacity: 0
    }
}

.oaoRotateYIn span:nth-child(even) {
    animation-name: oaoRotateYInTop
}

@keyframes oaoRotateYInTop {
    from {
        transform: translateY(-100px) rotateY(360deg);
        opacity: 0
    }
}

.oaoRotateYIn span:nth-child(odd) {
    animation-name: oaoRotateYInBottom
}

@keyframes oaoRotateYInBottom {
    from {
        transform: translateY(100px) rotateY(360deg);
        opacity: 0
    }
}

.oaoRotateYOut span:nth-child(even) {
    animation-name: oaoRotateYOutTop
}

@keyframes oaoRotateYOutTop {
    to {
        transform: translateY(-100px) rotateY(360deg);
        opacity: 0
    }
}

.oaoRotateYOut span:nth-child(odd) {
    animation-name: oaoRotateYOutBottom
}

@keyframes oaoRotateYOutBottom {
    to {
        transform: translateY(100px) rotateY(360deg);
        opacity: 0
    }
}

.fadeIn {
    animation-name: fadeIn
}

@keyframes fadeIn {
    from {
        opacity: 0
    }

    to {
        opacity: 1
    }
}

.cssanimation.fadeInLeft {
    animation-name: bfadeInLeft
}

@keyframes bfadeInLeft {
    from {
        opacity: 0;
        transform: translateX(-150px)
    }

    to {
        opacity: 1
    }
}

.cssanimation.fadeInRight {
    animation-name: bfadeInRight
}

@keyframes bfadeInRight {
    from {
        opacity: 0;
        transform: translateX(150px)
    }

    to {
        opacity: 1
    }
}

.cssanimation.fadeInTop {
    animation-name: bfadeInTop
}

@keyframes bfadeInTop {
    from {
        opacity: 0;
        transform: translateY(-50px)
    }

    to {
        opacity: 1
    }
}

.cssanimation.fadeInBottom {
    animation-name: bfadeInBottom
}

@keyframes bfadeInBottom {
    from {
        opacity: 0;
        transform: translateY(50px)
    }

    to {
        opacity: 1
    }
}

.fadeOut {
    animation-name: fadeOut
}

@keyframes fadeOut {
    to {
        opacity: 0
    }
}

.fadeOutLeft {
    animation-name: fadeOutLeft
}

@keyframes fadeOutLeft {
    from {
        opacity: 1
    }

    to {
        opacity: 0;
        transform: translateX(-100%)
    }
}

.fadeOutRight {
    animation-name: fadeOutRight
}

@keyframes fadeOutRight {
    from {
        opacity: 1
    }

    to {
        opacity: 0;
        transform: translateX(100%)
    }
}

.fadeOutTop {
    animation-name: fadeOutTop
}

@keyframes fadeOutTop {
    from {
        opacity: 1
    }

    to {
        opacity: 0;
        transform: translateY(-100%)
    }
}

.fadeOutBottom {
    animation-name: fadeOutBottom
}

@keyframes fadeOutBottom {
    from {
        opacity: 1
    }

    to {
        opacity: 0;
        transform: translateY(100%)
    }
}

.moveFromLeft {
    animation-name: moveFromLeft
}

@keyframes moveFromLeft {
    from {
        transform: translateX(-300px)
    }
}

.moveFromRight {
    animation-name: moveFromRight
}

@keyframes moveFromRight {
    from {
        transform: translateX(300px)
    }
}

.moveFromTop {
    animation-name: moveFromTop
}

@keyframes moveFromTop {
    from {
        transform: translateY(-300px)
    }
}

.moveFromBottom {
    animation-name: moveFromBottom
}

@keyframes moveFromBottom {
    from {
        transform: translateY(300px)
    }
}

.moveToLeft {
    animation-name: moveToLeft
}

@keyframes moveToLeft {
    to {
        transform: translateX(-800px)
    }
}

.moveToRight {
    animation-name: moveToRight
}

@keyframes moveToRight {
    to {
        transform: translateX(800px)
    }
}

.moveToTop {
    animation-name: moveToTop
}

@keyframes moveToTop {
    to {
        transform: translateY(-800px)
    }
}

.moveToBottom {
    animation-name: moveToBottom
}

@keyframes moveToBottom {
    to {
        transform: translateY(800px)
    }
}

.doorCloseFromLeft {
    animation-name: doorCloseFromLeft
}

@keyframes doorCloseFromLeft {
    from {
        transform: perspective(400px) rotateY(90deg);
        transform-origin: left;
        opacity: 0
    }

    50%,
    to {
        transform: perspective(400px) rotateY(0);
        transform-origin: left;
        opacity: 1
    }
}

.doorOpenFromRight {
    animation-name: doorOpenFromRight
}

@keyframes doorOpenFromRight {
    from {
        transform: perspective(400px) rotateY(0);
        transform-origin: left;
        opacity: 1
    }

    50%,
    to {
        transform: perspective(400px) rotateY(90deg);
        transform-origin: left;
        opacity: 0
    }
}

.doorCloseFromRight {
    animation-name: doorCloseFromRight
}

@keyframes doorCloseFromRight {
    from {
        transform: perspective(400px) rotateY(-90deg);
        transform-origin: right;
        opacity: 0
    }

    50%,
    to {
        transform: perspective(400px) rotateY(0);
        transform-origin: right;
        opacity: 1
    }
}

.doorOpenFromLeft {
    animation-name: doorOpenFromLeft
}

@keyframes doorOpenFromLeft {
    from {
        transform: perspective(400px) rotateY(0);
        transform-origin: right;
        opacity: 1
    }

    50%,
    to {
        transform: perspective(400px) rotateY(-90deg);
        transform-origin: right;
        opacity: 0
    }
}

.heartbeatSlow {
    animation-name: heartbeatSlow;
    animation-iteration-count: 3;
    animation-duration: .5s
}

.coolHorizontalShake,
.coolVerticalShake,
.heartbeatFast,
.horizontalShake,
.madMax,
.pulseShake,
.quietMad,
.verticalShake {
    animation-iteration-count: infinite
}

@keyframes heartbeatSlow {

    35%,
    65% {
        transform: scale(1.2)
    }
}

.heartbeatFast {
    animation-name: heartbeatFast
}

@keyframes heartbeatFast {

    14%,
    42% {
        transform: scale(1.3)
    }

    28%,
    70% {
        transform: scale(1)
    }
}

.hangOnLeft {
    animation-name: hangOnLeft
}

@keyframes hangOnLeft {
    from {
        transform-origin: left
    }

    40% {
        transform: rotate(100deg);
        transform-origin: left
    }

    55% {
        transform: rotate(80deg);
        transform-origin: left
    }

    70% {
        transform: rotate(95deg);
        transform-origin: left
    }

    85% {
        transform: rotate(85deg);
        transform-origin: left
    }

    100% {
        transform: rotate(90deg);
        transform-origin: left
    }
}

.hangOnRight {
    animation-name: hangOnRight
}

@keyframes hangOnRight {
    from {
        transform-origin: right
    }

    40% {
        transform: rotate(-100deg);
        transform-origin: right
    }

    55% {
        transform: rotate(-80deg);
        transform-origin: right
    }

    70% {
        transform: rotate(-95deg);
        transform-origin: right
    }

    85% {
        transform: rotate(-85deg);
        transform-origin: right
    }

    100% {
        transform: rotate(-90deg);
        transform-origin: right
    }
}

.hangAndDropLeft {
    animation-name: hangAndDropLeft
}

@keyframes hangAndDropLeft {
    from {
        transform-origin: left
    }

    50% {
        transform: rotate(100deg);
        transform-origin: left
    }

    60% {
        transform: rotate(90deg);
        transform-origin: left;
        opacity: 1
    }

    to {
        transform: translateY(300px) rotate(70deg);
        transform-origin: left;
        opacity: 0
    }
}

.hangAndDropRight {
    animation-name: hangAndDropRight
}

@keyframes hangAndDropRight {
    from {
        transform-origin: right
    }

    50% {
        transform: rotate(-100deg);
        transform-origin: right
    }

    60% {
        transform: rotate(-90deg);
        transform-origin: right;
        opacity: 1
    }

    to {
        transform: translateY(300px) rotate(-70deg);
        transform-origin: right;
        opacity: 0
    }
}

.pulseShake {
    animation-name: pulseShake
}

@keyframes pulseShake {
    90% {
        transform: scale(1)
    }

    92% {
        transform: scale(1.2)
    }

    96% {
        transform: scale(1, 1)
    }

    98% {
        transform: scale(1.1)
    }
}

.horizontalShake {
    animation-name: horizontalShake
}

@keyframes horizontalShake {

    12%,
    21%,
    3%,
    30%,
    39%,
    48%,
    57%,
    65%,
    74%,
    83%,
    92% {
        transform: translateX(5px)
    }

    15%,
    24%,
    33%,
    42%,
    51%,
    6%,
    60%,
    68%,
    77%,
    86%,
    95% {
        transform: translateX(3px)
    }

    18%,
    27%,
    36%,
    45%,
    54%,
    63%,
    71%,
    80%,
    89%,
    9%,
    98% {
        transform: translateX(-5px)
    }
}

.verticalShake {
    animation-name: verticalShake
}

@keyframes verticalShake {

    12%,
    21%,
    3%,
    30%,
    39%,
    48%,
    57%,
    65%,
    74%,
    83%,
    92% {
        transform: translateY(5px)
    }

    15%,
    24%,
    33%,
    42%,
    51%,
    6%,
    60%,
    68%,
    77%,
    86%,
    95% {
        transform: translateY(3px)
    }

    18%,
    27%,
    36%,
    45%,
    54%,
    63%,
    71%,
    80%,
    89%,
    9%,
    98% {
        transform: translateY(-5px)
    }
}

.madMax {
    animation-name: madMax
}

@keyframes madMax {

    12%,
    21%,
    3%,
    30%,
    39%,
    48%,
    57%,
    65%,
    74%,
    83%,
    92% {
        transform: translateY(5px) scale(1.1)
    }

    15%,
    24%,
    33%,
    42%,
    51%,
    6%,
    60%,
    68%,
    77%,
    86%,
    95% {
        transform: translateY(3px) scale(.8)
    }

    18%,
    27%,
    36%,
    45%,
    54%,
    63%,
    71%,
    80%,
    89%,
    9%,
    98% {
        transform: translateY(-5px) scale(1.1)
    }
}

.coolHorizontalShake {
    animation-name: coolHorizontalShake
}

@keyframes coolHorizontalShake {

    21%,
    3%,
    39%,
    57%,
    74%,
    92% {
        transform: translateX(5px)
    }

    24%,
    42%,
    6%,
    60%,
    77%,
    95% {
        transform: translateX(3px)
    }

    27%,
    45%,
    63%,
    80%,
    9%,
    98% {
        transform: translateX(-5px)
    }
}

.coolVerticalShake {
    animation-name: coolVerticalShake
}

@keyframes coolVerticalShake {

    21%,
    3%,
    39%,
    57%,
    74%,
    92% {
        transform: translateY(5px)
    }

    24%,
    42%,
    6%,
    60%,
    77%,
    95% {
        transform: translateY(3px)
    }

    27%,
    45%,
    63%,
    80%,
    9%,
    98% {
        transform: translateY(-5px)
    }
}

.quietMad {
    animation-name: quietMad
}

@keyframes quietMad {

    21%,
    3%,
    39%,
    57%,
    74%,
    92% {
        transform: translateY(5px) scale(1.1)
    }

    24%,
    42%,
    6%,
    60%,
    77%,
    95% {
        transform: translateY(3px) scale(.8)
    }

    27%,
    45%,
    63%,
    80%,
    9%,
    98% {
        transform: translateY(-5px) scale(1.1)
    }
}

.vibration {
    animation: vibration .1s linear infinite
}

@keyframes vibration {
    50% {
        transform: skewY(1deg) skewX(-1deg) scale(1.06)
    }
}

.pushReleaseFrom {
    animation-name: pushReleaseFrom
}

@keyframes pushReleaseFrom {
    from {
        transform: scale(3, 3);
        opacity: 0
    }

    30% {
        transform: scale(.5, .5)
    }
}

.pushReleaseFromLeft {
    animation-name: pushReleaseFromLeft
}

@keyframes pushReleaseFromLeft {
    from {
        transform: translateX(-100%);
        opacity: 0
    }

    30% {
        transform: translateX(100px);
        opacity: 1
    }
}

.pushReleaseFromRight {
    animation-name: pushReleaseFromRight
}

@keyframes pushReleaseFromRight {
    from {
        transform: translateX(100%);
        opacity: 0
    }

    30% {
        transform: translateX(-100px);
        opacity: 1
    }
}

.pushReleaseFromTop {
    animation-name: pushReleaseFromTop
}

@keyframes pushReleaseFromTop {
    from {
        transform: translateY(-100%);
        opacity: 0
    }

    30% {
        transform: translateY(100px);
        opacity: 1
    }
}

.pushReleaseFromBottom {
    animation-name: pushReleaseFromBottom
}

@keyframes pushReleaseFromBottom {
    from {
        transform: translateY(100%);
        opacity: 0
    }

    30% {
        transform: translateY(-100px);
        opacity: 1
    }
}

.pushReleaseTo {
    animation-name: pushReleaseTo
}

@keyframes pushReleaseTo {
    30% {
        transform: scale(.5, .5)
    }

    to {
        transform: scale(5, 5);
        opacity: 0
    }
}

.pushReleaseToLeft {
    animation-name: pushReleaseToLeft
}

@keyframes pushReleaseToLeft {
    30% {
        transform: translateX(100px)
    }

    to {
        transform: translateX(-100%);
        opacity: 0
    }
}

.pushReleaseToRight {
    animation-name: pushReleaseToRight
}

@keyframes pushReleaseToRight {
    30% {
        transform: translateX(-100px)
    }

    to {
        transform: translateX(100%);
        opacity: 0
    }
}

.pushReleaseToTop {
    animation-name: pushReleaseToTop
}

@keyframes pushReleaseToTop {
    30% {
        transform: translateY(100px)
    }

    to {
        transform: translateY(-100%);
        opacity: 0
    }
}

.pushReleaseToBottom {
    animation-name: pushReleaseToBottom
}

@keyframes pushReleaseToBottom {
    30% {
        transform: translateY(-100px)
    }

    to {
        transform: translateY(100%);
        opacity: 0
    }
}

.flipX {
    animation-name: flipX
}

@keyframes flipX {
    from {
        transform: perspective(600px) rotateX(-180deg);
        opacity: 0
    }

    to {
        transform: perspective(600px) rotateX(-360deg)
    }
}

.flipXZoomIn {
    animation-name: flipXZoomIn
}

@keyframes flipXZoomIn {
    from {
        transform: perspective(600px) rotateX(0) scale(1);
        animation-timing-function: ease-out
    }

    40% {
        transform: perspective(600px) rotateX(-180deg) scale(1.8);
        animation-timing-function: ease-out
    }

    80% {
        transform: perspective(600px) rotateX(-360deg) scale(.7);
        animation-timing-function: ease-in
    }

    to {
        transform: scale(1)
    }
}

.flipXZoomOut {
    animation-name: flipXZoomOut
}

@keyframes flipXZoomOut {
    from {
        transform: perspective(600px) rotateX(0) scale(1);
        animation-timing-function: ease-out
    }

    40% {
        transform: perspective(600px) rotateX(180deg) scale(1.8);
        animation-timing-function: ease-out
    }

    80% {
        transform: perspective(600px) rotateX(360deg) scale(.7);
        animation-timing-function: ease-in
    }

    to {
        transform: scale(1)
    }
}

.flipY {
    animation-name: flipY
}

@keyframes flipY {
    from {
        transform: perspective(600px) rotateY(180deg);
        opacity: 0
    }

    to {
        transform: perspective(600px) rotateY(360deg)
    }
}

.flipYZoomIn {
    animation-name: flipYZoomIn
}

@keyframes flipYZoomIn {
    from {
        transform: perspective(600px) rotateY(0) scale(1);
        animation-timing-function: ease-out
    }

    40% {
        transform: perspective(600px) rotateY(180deg) scale(1.6);
        animation-timing-function: ease-out
    }

    80% {
        transform: perspective(600px) rotateY(360deg) scale(.7);
        animation-timing-function: ease-in
    }

    to {
        transform: scale(1)
    }
}

.flipYZoomOut {
    animation-name: flipYZoomOut
}

@keyframes flipYZoomOut {
    from {
        transform: perspective(600px) rotateY(0) scale(1);
        animation-timing-function: ease-out
    }

    40% {
        transform: perspective(600px) rotateY(180deg) scale(.6);
        animation-timing-function: ease-out
    }

    80% {
        transform: perspective(600px) rotateY(360deg) scale(1.8);
        animation-timing-function: ease-in
    }

    to {
        transform: scale(1)
    }
}

.skewLeft {
    animation-name: skewLeft
}

@keyframes skewLeft {
    70% {
        transform: skewX(40deg)
    }
}

.skewRight {
    animation-name: skewRight
}

@keyframes skewRight {
    70% {
        transform: skewX(-40deg)
    }
}

.skewInLeft {
    animation-name: skewInLeft
}

@keyframes skewInLeft {
    from {
        opacity: 0;
        transform: translateX(-250px) skewX(-40deg)
    }

    70% {
        transform: skewX(-30deg)
    }
}

.skewInRight {
    animation-name: skewInRight
}

@keyframes skewInRight {
    from {
        opacity: 0;
        transform: translateX(250px) skewX(40deg)
    }

    70% {
        transform: skewX(30deg)
    }
}

.skewOutLeft {
    animation-name: skewOutLeft
}

@keyframes skewOutLeft {
    20% {
        transform: skewX(40deg)
    }

    to {
        transform: translateX(-100%) skewX(40deg);
        opacity: 0
    }
}

.skewOutRight {
    animation-name: skewOutRight
}

@keyframes skewOutRight {
    20% {
        transform: skewX(-40deg)
    }

    to {
        transform: translateX(100%) skewX(-40deg);
        opacity: 0
    }
}

.shockZoom {
    animation-name: shockZoom
}

@keyframes shockZoom {
    from {
        transform: matrix(5, 0, 0, 5, 0, 0)
    }

    35% {
        transform: matrix(2, 0, 0, 2, 0, 0)
    }

    43% {
        transform: matrix(1, 0, 0, 1, 0, 0)
    }
}

.shockInLeft {
    animation-name: shockInLeft
}

@keyframes shockInLeft {
    from {
        transform: matrix(1, 0, 0, 1, -800, 0)
    }

    35% {
        transform: matrix(1, 0, 0, 1, 50, 0)
    }

    43% {
        transform: matrix(1, 0, 0, 1, 0, 0)
    }
}

.shockInRight {
    animation-name: shockInRight
}

@keyframes shockInRight {
    from {
        transform: matrix(1, 0, 0, 1, 800, 0)
    }

    35% {
        transform: matrix(1, 0, 0, 1, -50, 0)
    }

    43% {
        transform: matrix(1, 0, 0, 1, 0, 0)
    }
}

.shockInTop {
    animation-name: shockInTop
}

@keyframes shockInTop {
    from {
        transform: matrix(1, 0, 0, 1, 0, -400)
    }

    35% {
        transform: matrix(1, 0, 0, 1, 0, 50)
    }

    43% {
        transform: matrix(1, 0, 0, 1, 0, 0)
    }
}

.shockInBottom {
    animation-name: shockInBottom
}

@keyframes shockInBottom {
    from {
        transform: matrix(1, 0, 0, 1, 0, 400)
    }

    35% {
        transform: matrix(1, 0, 0, 1, 0, -50)
    }

    43% {
        transform: matrix(1, 0, 0, 1, 0, 0)
    }
}

.pullRelease {
    animation-name: pullRelease
}

@keyframes pullRelease {
    15% {
        transform: scale(1.8)
    }
}

.pushRelease {
    animation-name: pushRelease
}

@keyframes pushRelease {
    15% {
        transform: scale(.5)
    }
}

.swingInLeft {
    animation-name: swingInLeft
}

@keyframes swingInLeft {
    from {
        transform: matrix(3, 0, 0, 3, -800, 0);
        animation-timing-function: ease-out
    }

    50% {
        transform: matrix(1.3, 0, 0, 1.3, 20, 0)
    }
}

.swingInRight {
    animation-name: swingInRight
}

@keyframes swingInRight {
    from {
        transform: matrix(3, 0, 0, 3, 800, 0);
        animation-timing-function: ease-out
    }

    50% {
        transform: matrix(1.3, 0, 0, 1.3, -20, 0)
    }
}

.swingInTop {
    animation-name: swingInTop
}

@keyframes swingInTop {
    from {
        transform: matrix(3, 0, 0, 3, 0, -800);
        animation-timing-function: ease-out
    }

    50% {
        transform: matrix(1.3, 0, 0, 1.3, 0, 20)
    }
}

.swingInBottom {
    animation-name: swingInBottom
}

@keyframes swingInBottom {
    from {
        transform: matrix(3, 0, 0, 3, 0, 800);
        animation-timing-function: ease-out
    }

    50% {
        transform: matrix(1.3, 0, 0, 1.3, 0, -20)
    }
}

.elevateLeft {
    animation-name: elevateLeft
}

@keyframes elevateLeft {
    from {
        transform: translateY(100%) rotate(-20deg);
        transform-origin: right
    }

    40% {
        transform: rotate(20deg);
        transform-origin: right
    }

    65% {
        transform: rotate(0);
        transform-origin: right
    }
}

.elevateRight {
    animation-name: elevateRight
}

@keyframes elevateRight {
    from {
        transform: translateY(100%) rotate(20deg);
        transform-origin: left
    }

    40% {
        transform: rotate(-20deg);
        transform-origin: left
    }

    65% {
        transform: rotate(0);
        transform-origin: left
    }
}

.rollFromLeft {
    animation-name: rollFromLeft
}

@keyframes rollFromLeft {
    from {
        transform: translateX(-100%) perspective(600px) rotateY(180deg);
        opacity: 0
    }

    to {
        transform: translateX(0) perspective(600px) rotateY(0);
        opacity: 1
    }
}

.rollFromRight {
    animation-name: rollFromRight
}

@keyframes rollFromRight {
    from {
        transform: translateX(100%) perspective(600px) rotateY(-180deg);
        opacity: 0
    }

    to {
        transform: translateX(0) perspective(600px) rotateY(0);
        opacity: 1
    }
}

.rollFromTop {
    animation-name: rollFromTop
}

@keyframes rollFromTop {
    from {
        transform: translateY(-100%) perspective(600px) rotateY(180deg);
        opacity: 0
    }

    to {
        transform: translateY(0) perspective(600px) rotateY(0);
        opacity: 1
    }
}

.rollFromBottom {
    animation-name: rollFromBottom
}

@keyframes rollFromBottom {
    from {
        transform: translateY(100%) perspective(600px) rotateY(-180deg);
        opacity: 0
    }

    to {
        transform: translateY(0) perspective(600px) rotateY(0);
        opacity: 1
    }
}

.rollToLeft {
    animation-name: rollToLeft
}

@keyframes rollToLeft {
    from {
        transform: translateX(0) perspective(600px) rotateY(0);
        opacity: 1
    }

    to {
        transform: translateX(-100%) perspective(600px) rotateY(180deg);
        opacity: 0
    }
}

.rollToRight {
    animation-name: rollToRight
}

@keyframes rollToRight {
    from {
        transform: translateX(0) perspective(600px) rotateY(0);
        opacity: 1
    }

    to {
        transform: translateX(100%) perspective(600px) rotateY(-180deg);
        opacity: 0
    }
}

.rollToTop {
    animation-name: rollToTop
}

@keyframes rollToTop {
    from {
        transform: translateY(0) perspective(600px) rotateX(0);
        opacity: 1
    }

    to {
        transform: translateY(-100%) perspective(600px) rotateX(180deg);
        opacity: 0
    }
}

.rollToBottom {
    animation-name: rollToBottom
}

@keyframes rollToBottom {
    to {
        transform: translateY(100%) perspective(600px) rotateX(-180deg);
        opacity: 0
    }
}

.rotate {
    animation-name: rotate;
    animation-timing-function: ease-in-out
}

@keyframes rotate {
    from {
        transform: rotate(0)
    }

    to {
        transform: rotate(360deg)
    }
}

.rotateX {
    animation-name: rotateX
}

@keyframes rotateX {
    from {
        transform: perspective(600px) rotateX(0)
    }

    to {
        transform: perspective(600px) rotateX(90deg)
    }
}

.rotateXIn {
    animation-name: rotateXIn
}

@keyframes rotateXIn {
    from {
        transform: perspective(600px) translate3d(0, -60px, -2000px) rotateX(75deg);
        opacity: 0
    }

    5% {
        transform: perspective(600px) translate3d(0, -60px, -1500px) rotateX(75deg)
    }
}

.rotateXOut {
    animation-name: rotateXOut
}

@keyframes rotateXOut {
    95% {
        transform: perspective(600px) translate3d(0, -60px, -1500px) rotateX(75deg)
    }

    to {
        transform: perspective(600px) translate3d(0, -60px, -2000px) rotateX(75deg);
        opacity: 0
    }
}

.rotateY {
    animation-name: rotateY
}

@keyframes rotateY {
    from {
        transform: perspective(600px) rotateY(0)
    }

    to {
        transform: perspective(600px) rotateY(90deg)
    }
}

.rotateYIn {
    animation-name: rotateYIn
}

@keyframes rotateYIn {
    from {
        transform: perspective(600px) translate3d(0, -60px, -2000px) rotateY(75deg);
        opacity: 0
    }

    5% {
        transform: perspective(600px) translate3d(0, -60px, -1500px) rotateY(75deg)
    }
}

.rotateYOut {
    animation-name: rotateYOut
}

@keyframes rotateYOut {
    95% {
        transform: perspective(600px) translate3d(0, -60px, -1500px) rotateY(75deg)
    }

    to {
        transform: perspective(600px) translate3d(0, -60px, -2000px) rotateY(75deg);
        opacity: 0
    }
}

.rotateInLeft {
    animation-name: rotateInLeft
}

@keyframes rotateInLeft {
    from {
        opacity: 0;
        transform: translateX(-100%) rotate(0)
    }

    to {
        transform: translateX(0) rotate(360deg)
    }
}

.rotateInRight {
    animation-name: rotateInRight
}

@keyframes rotateInRight {
    from {
        opacity: 0;
        transform: translateX(100%) rotate(0)
    }

    to {
        transform: translateX(0) rotate(-360deg)
    }
}

.rotateInTop {
    animation-name: rotateInTop
}

@keyframes rotateInTop {
    from {
        opacity: 0;
        transform: translateY(-400%) rotate(0)
    }

    to {
        transform: translateX(0) rotate(360deg)
    }
}

.rotateInBottom {
    animation-name: rotateInBottom
}

@keyframes rotateInBottom {
    from {
        opacity: 0;
        transform: translateY(400%) rotate(0)
    }

    to {
        transform: translateX(0) rotate(360deg)
    }
}

.rotateOutLeft {
    animation-name: rotateOutLeft
}

@keyframes rotateOutLeft {
    from {
        transform: translateX(0) rotate(360deg)
    }

    to {
        transform: translateX(-800px) rotate(0);
        opacity: 0
    }
}

.rotateOutRight {
    animation-name: rotateOutRight
}

@keyframes rotateOutRight {
    from {
        transform: translateX(0) rotate(-360deg)
    }

    to {
        transform: translateX(800px) rotate(0);
        opacity: 0
    }
}

.rotateOutTop {
    animation-name: rotateOutTop
}

@keyframes rotateOutTop {
    from {
        transform: translateX(0) rotate(360deg)
    }

    to {
        transform: translateY(-800px) rotate(0);
        opacity: 0
    }
}

.rotateOutBottom {
    animation-name: rotateOutBottom
}

@keyframes rotateOutBottom {
    from {
        transform: translateX(0) rotate(360deg)
    }

    to {
        transform: translateY(800px) rotate(0);
        opacity: 0
    }
}

.spinToLeft {
    animation-name: spinToLeft
}

@keyframes spinToLeft {

    from,
    to {
        transform-origin: left bottom
    }

    from {
        transform: rotate(90deg);
        opacity: 0
    }
}

.spinToRight {
    animation-name: spinToRight
}

@keyframes spinToRight {

    from,
    to {
        transform-origin: right bottom
    }

    from {
        transform: rotate(-90deg);
        opacity: 0
    }
}

.spinToTop {
    animation-name: spinToTop
}

@keyframes spinToTop {

    from,
    to {
        transform-origin: left bottom
    }

    from {
        transform: rotate(-90deg);
        opacity: 0
    }
}

.spinToBottom {
    animation-name: spinToBottom
}

@keyframes spinToBottom {

    from,
    to {
        transform-origin: right bottom
    }

    from {
        transform: rotate(90deg);
        opacity: 0
    }
}

.spinFromLeft {
    animation-name: spinFromLeft
}

@keyframes spinFromLeft {

    from,
    to {
        transform-origin: left bottom
    }

    to {
        transform: rotate(90deg);
        opacity: 0
    }
}

.spinFromRight {
    animation-name: spinFromRight
}

@keyframes spinFromRight {

    from,
    to {
        transform-origin: right bottom
    }

    to {
        transform: rotate(-90deg);
        opacity: 0
    }
}

.spinFromTop {
    animation-name: spinFromTop
}

@keyframes spinFromTop {

    from,
    to {
        transform-origin: left bottom
    }

    to {
        transform: rotate(-90deg);
        opacity: 0
    }
}

.spinFromBottom {
    animation-name: spinFromBottom
}

@keyframes spinFromBottom {

    from,
    to {
        transform-origin: right bottom
    }

    to {
        transform: rotate(90deg);
        opacity: 0
    }
}

.blurIn {
    animation-name: blurIn
}

@keyframes blurIn {
    from {
        filter: blur(20px);
        opacity: 0
    }
}

.blurInLeft {
    animation-name: blurInLeft
}

@keyframes blurInLeft {
    from {
        transform: translateX(250px);
        filter: blur(20px);
        opacity: 0
    }
}

.blurInRight {
    animation-name: blurInRight
}

@keyframes blurInRight {
    from {
        transform: translateX(-250px);
        filter: blur(20px);
        opacity: 0
    }
}

.blurInTop {
    animation-name: blurInTop
}

@keyframes blurInTop {
    from {
        transform: translateY(250px);
        filter: blur(20px);
        opacity: 0
    }
}

.blurInBottom {
    animation-name: blurInBottom
}

@keyframes blurInBottom {
    from {
        transform: translateY(-250px);
        filter: blur(20px);
        opacity: 0
    }
}

.blurOut {
    animation-name: blurOut
}

@keyframes blurOut {

    85%,
    to {
        filter: blur(20px)
    }

    to {
        opacity: 0
    }
}

.blurOutLeft {
    animation-name: blurOutLeft
}

@keyframes blurOutLeft {

    85%,
    to {
        filter: blur(20px);
        transform: translateX(100%)
    }

    to {
        opacity: 0
    }
}

.blurOutRight {
    animation-name: blurOutRight
}

@keyframes blurOutRight {

    85%,
    to {
        filter: blur(20px);
        transform: translateX(-100%)
    }

    to {
        opacity: 0
    }
}

.blurOutTop {
    animation-name: blurOutTop
}

@keyframes blurOutTop {

    85%,
    to {
        filter: blur(20px);
        transform: translateY(100%)
    }

    to {
        opacity: 0
    }
}

.blurOutBottom {
    animation-name: blurOutBottom
}

@keyframes blurOutBottom {

    85%,
    to {
        filter: blur(20px);
        transform: translateY(-100%)
    }

    to {
        opacity: 0
    }
}

.bounceFromTop {
    animation-name: bounceFromTop
}

@keyframes bounceFromTop {

    0%,
    100%,
    25%,
    55%,
    85% {
        animation-timing-function: ease-out;
        transform: translate3d(0, 0, 0)
    }

    41%,
    44% {
        animation-timing-function: ease-in;
        transform: translate3d(0, -80px, 0) scale3d(1, 1.6, 1)
    }

    70% {
        animation-timing-function: ease-in;
        transform: translate3d(0, -20px, 0)
    }

    90% {
        transform: translate3d(0, -4px, 0)
    }
}

.bounceFromDown {
    animation-name: bounceFromDown
}

@keyframes bounceFromDown {

    0%,
    100%,
    25%,
    55%,
    85% {
        animation-timing-function: ease-out;
        transform: translate3d(0, 0, 0)
    }

    41%,
    44% {
        animation-timing-function: ease-in;
        transform: translate3d(0, 80px, 0) scale3d(1, 1.2, 1)
    }

    70% {
        animation-timing-function: ease-in;
        transform: translate3d(0, 20px, 0)
    }

    90% {
        transform: translate3d(0, 4px, 0)
    }
}

.bounceX {
    animation-name: bounceX
}

@keyframes bounceX {

    0%,
    100%,
    25%,
    55%,
    85% {
        animation-timing-function: ease-out;
        transform: scale3d(1, 1, 1)
    }

    41%,
    44% {
        animation-timing-function: ease-in;
        transform: scale3d(1.8, 1, 1)
    }

    70% {
        animation-timing-function: ease-in;
        transform: scale3d(1.5, 1, 1)
    }

    90% {
        transform: scale3d(1.1, 1, 1)
    }
}

.bounceY {
    animation-name: bounceY
}

@keyframes bounceY {

    0%,
    100%,
    25%,
    55%,
    85% {
        animation-timing-function: ease-out;
        transform: scale3d(1, 1, 1)
    }

    41%,
    44% {
        animation-timing-function: ease-in;
        transform: scale3d(1, 2, 1)
    }

    70% {
        animation-timing-function: ease-in;
        transform: scale3d(1, 1.5, 1)
    }

    90% {
        transform: scale3d(1, 1.1, 1)
    }
}

.bounceZoomIn {
    animation-name: bounceZoomIn
}

@keyframes bounceZoomIn {

    0%,
    100%,
    25%,
    55%,
    85% {
        animation-timing-function: ease-out;
        transform: scale(1)
    }

    41%,
    44% {
        animation-timing-function: ease-in;
        transform: scale(1.5)
    }

    70% {
        animation-timing-function: ease-in;
        transform: scale(1.3)
    }

    90% {
        transform: scale(1.1)
    }
}

.bounceZoomOut {
    animation-name: bounceZoomOut
}

@keyframes bounceZoomOut {

    0%,
    100%,
    25%,
    55%,
    85% {
        animation-timing-function: ease-out;
        transform: scale(1)
    }

    41%,
    44% {
        animation-timing-function: ease-in;
        transform: scale(.3)
    }

    70% {
        animation-timing-function: ease-in;
        transform: scale(.5)
    }

    90% {
        transform: scale(.9)
    }
}

.bounceInTop {
    animation-name: bounceInTop
}

@keyframes bounceInTop {
    0% {
        transform: translate3d(0, -300%, 0);
        opacity: 0
    }

    58% {
        transform: translate3d(0, 27px, 0);
        opacity: 1
    }

    73% {
        transform: translate3d(0, -12px, 0)
    }

    88% {
        transform: translate3d(0, 7px, 0)
    }
}

.bounceInBottom {
    animation-name: bounceInBottom
}

@keyframes bounceInBottom {
    0% {
        transform: translate3d(0, 300%, 0);
        opacity: 0
    }

    58% {
        transform: translate3d(0, -27px, 0);
        opacity: 1
    }

    73% {
        transform: translate3d(0, 12px, 0)
    }

    88% {
        transform: translate3d(0, -8px, 0)
    }
}

.bounceInLeft {
    animation-name: bounceInLeft
}

@keyframes bounceInLeft {
    0% {
        transform: translate3d(-300%, 0, 0)
    }

    58% {
        transform: translate3d(27px, 0, 0)
    }

    73% {
        transform: translate3d(-12px, 0, 0)
    }

    88% {
        transform: translate3d(8px, 0, 0)
    }
}

.bounceInRight {
    animation-name: bounceInRight
}

@keyframes bounceInRight {
    0% {
        transform: translate3d(300%, 0, 0)
    }

    58% {
        transform: translate3d(-27px, 0, 0)
    }

    73% {
        transform: translate3d(12px, 0, 0)
    }

    88% {
        transform: translate3d(-8px, 0, 0)
    }
}

.bounceOutTop {
    animation-name: bounceOutTop
}

@keyframes bounceOutTop {

    18%,
    33%,
    48% {
        opacity: 1
    }

    18% {
        transform: translate3d(0, 27px, 0)
    }

    33% {
        transform: translate3d(0, -12px, 0)
    }

    48% {
        transform: translate3d(0, 8px, 0)
    }

    100% {
        opacity: 0;
        transform: translate3d(0, -300%, 0)
    }
}

.bounceOutBottom {
    animation-name: bounceOutBottom
}

@keyframes bounceOutBottom {

    18%,
    33%,
    48% {
        opacity: 1
    }

    18% {
        transform: translate3d(0, -27px, 0)
    }

    33% {
        transform: translate3d(0, 12px, 0)
    }

    48% {
        transform: translate3d(0, -8px, 0)
    }

    100% {
        opacity: 0;
        transform: translate3d(0, 300%, 0)
    }
}

.bounceOutLeft {
    animation-name: bounceOutLeft
}

@keyframes bounceOutLeft {

    18%,
    33%,
    48% {
        opacity: 1
    }

    18% {
        transform: translate3d(27px, 0, 0)
    }

    33% {
        transform: translate3d(-12px, 0, 0)
    }

    48% {
        transform: translate3d(8px, 0, 0)
    }

    100% {
        opacity: 0;
        transform: translate3d(-300%, 0, 0)
    }
}

.bounceOutRight {
    animation-name: bounceOutRight
}

@keyframes bounceOutRight {

    18%,
    33%,
    48% {
        opacity: 1
    }

    18% {
        transform: translate3d(-27px, 0, 0)
    }

    33% {
        transform: translate3d(12px, 0, 0)
    }

    48% {
        transform: translate3d(-8px, 0, 0)
    }

    100% {
        opacity: 0;
        transform: translate3d(300%, 0, 0)
    }
}

.perspectiveToTop {
    animation-name: perspectiveToTop;
    transform: perspective(500px);
    transform-style: preserve-3d
}

@keyframes perspectiveToTop {
    50% {
        opacity: 1
    }

    to {
        transform: perspective(500px) rotateX(90deg) translateY(-50px) translateZ(50px);
        opacity: 0
    }
}

.perspectiveToBottom {
    animation-name: perspectiveToBottom;
    transform: perspective(500px);
    transform-style: preserve-3d
}

@keyframes perspectiveToBottom {
    50% {
        opacity: 1
    }

    to {
        transform: perspective(500px) rotateX(90deg) translateY(50px) translateZ(-50px);
        opacity: 0
    }
}

.zoomIn {
    animation-name: zoomIn
}

@keyframes zoomIn {
    from {
        transform: scale(10);
        opacity: 0
    }
}

.zoomInLeft {
    animation-name: zoomInLeft
}

@keyframes zoomInLeft {
    from {
        transform: scale(10) translateX(-50%);
        opacity: 0
    }
}

.zoomInRight {
    animation-name: zoomInRight
}

@keyframes zoomInRight {
    from {
        transform: scale(10) translateX(50%);
        opacity: 0
    }
}

.zoomInTop {
    animation-name: zoomInTop
}

@keyframes zoomInTop {
    from {
        transform: scale(10) translateY(-50%);
        opacity: 0
    }
}

.zoomInBottom {
    animation-name: zoomInBottom
}

@keyframes zoomInBottom {
    from {
        transform: scale(10) translateY(50%);
        opacity: 0
    }
}

.zoomOut {
    animation-name: zoomOut
}

@keyframes zoomOut {
    to {
        transform: scale(10);
        opacity: 0
    }
}

.zoomOutLeft {
    animation-name: zoomOutLeft
}

@keyframes zoomOutLeft {
    to {
        transform: scale(10) translateX(-50%);
        opacity: 0
    }
}

.zoomOutRight {
    animation-name: zoomOutRight
}

@keyframes zoomOutRight {
    to {
        transform: scale(10) translateX(50%);
        opacity: 0
    }
}

.zoomOutTop {
    animation-name: zoomOutTop
}

@keyframes zoomOutTop {
    to {
        transform: scale(10) translateY(-50%);
        opacity: 0
    }
}

.zoomOutBottom {
    animation-name: zoomOutBottom
}

@keyframes zoomOutBottom {
    to {
        transform: scale(10) translateY(50%);
        opacity: 0
    }
}

.danceTop {
    animation-name: danceTop;
    transform-origin: top
}

@keyframes danceTop {
    16% {
        transform: skew(-14deg)
    }

    33% {
        transform: skew(12deg)
    }

    49% {
        transform: skew(-8deg)
    }

    66% {
        transform: skew(6deg)
    }

    83% {
        transform: skew(-4deg)
    }
}

.danceMiddle {
    animation-name: danceMiddle
}

@keyframes danceMiddle {
    16% {
        transform: skew(-14deg)
    }

    33% {
        transform: skew(12deg)
    }

    49% {
        transform: skew(-8deg)
    }

    66% {
        transform: skew(6deg)
    }

    83% {
        transform: skew(-4deg)
    }
}

.danceBottom {
    animation-name: danceBottom;
    transform-origin: bottom
}

@keyframes danceBottom {
    16% {
        transform: skew(-14deg)
    }

    33% {
        transform: skew(12deg)
    }

    49% {
        transform: skew(-8deg)
    }

    66% {
        transform: skew(6deg)
    }

    83% {
        transform: skew(-4deg)
    }
}