/*!
  Effect.less
  @name effect.css
  @description cross-browser css3 animation library with predefined animation sequences
  @version 1.0.0
  @copyright (c) 2016 Max Lawrence (http://www.avirtum.com)
  @license Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) license.
*/
.fx-infinite {
    -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite;
}

.fx-bounce {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-bounce;
    animation-name: fx-bounce;
    -webkit-transform-origin: center bottom;
    transform-origin: center bottom;
}

@-webkit-keyframes fx-bounce {
    from,
    20%,
    53%,
    80%,
    to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
    }
    40%,
    43% {
        -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
        animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
        -webkit-transform: translate3d(0, -30px, 0);
        transform: translate3d(0, -30px, 0);
    }
    70% {
        -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
        animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
        -webkit-transform: translate3d(0, -15px, 0);
        transform: translate3d(0, -15px, 0);
    }
    90% {
        -webkit-transform: translate3d(0, -4px, 0);
        transform: translate3d(0, -4px, 0);
    }
}

@keyframes fx-bounce {
    from,
    20%,
    53%,
    80%,
    to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
    }
    40%,
    43% {
        -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
        animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
        -webkit-transform: translate3d(0, -30px, 0);
        transform: translate3d(0, -30px, 0);
    }
    70% {
        -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
        animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
        -webkit-transform: translate3d(0, -15px, 0);
        transform: translate3d(0, -15px, 0);
    }
    90% {
        -webkit-transform: translate3d(0, -4px, 0);
        transform: translate3d(0, -4px, 0);
    }
}

.fx-pulse {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-pulse;
    animation-name: fx-pulse;
}

@-webkit-keyframes fx-pulse {
    from {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1);
    }
    50% {
        -webkit-transform: scale3d(1.05, 1.05, 1.05);
        transform: scale3d(1.05, 1.05, 1.05);
    }
    to {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1);
    }
}

@keyframes fx-pulse {
    from {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1);
    }
    50% {
        -webkit-transform: scale3d(1.05, 1.05, 1.05);
        transform: scale3d(1.05, 1.05, 1.05);
    }
    to {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1);
    }
}

.fx-rubberBand {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-rubberBand;
    animation-name: fx-rubberBand;
}

@-webkit-keyframes fx-rubberBand {
    from {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1);
    }
    30% {
        -webkit-transform: scale3d(1.25, 0.75, 1);
        transform: scale3d(1.25, 0.75, 1);
    }
    40% {
        -webkit-transform: scale3d(0.75, 1.25, 1);
        transform: scale3d(0.75, 1.25, 1);
    }
    50% {
        -webkit-transform: scale3d(1.15, 0.85, 1);
        transform: scale3d(1.15, 0.85, 1);
    }
    65% {
        -webkit-transform: scale3d(0.95, 1.05, 1);
        transform: scale3d(0.95, 1.05, 1);
    }
    75% {
        -webkit-transform: scale3d(1.05, 0.95, 1);
        transform: scale3d(1.05, 0.95, 1);
    }
    to {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1);
    }
}

@keyframes fx-rubberBand {
    from {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1);
    }
    30% {
        -webkit-transform: scale3d(1.25, 0.75, 1);
        transform: scale3d(1.25, 0.75, 1);
    }
    40% {
        -webkit-transform: scale3d(0.75, 1.25, 1);
        transform: scale3d(0.75, 1.25, 1);
    }
    50% {
        -webkit-transform: scale3d(1.15, 0.85, 1);
        transform: scale3d(1.15, 0.85, 1);
    }
    65% {
        -webkit-transform: scale3d(0.95, 1.05, 1);
        transform: scale3d(0.95, 1.05, 1);
    }
    75% {
        -webkit-transform: scale3d(1.05, 0.95, 1);
        transform: scale3d(1.05, 0.95, 1);
    }
    to {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1);
    }
}

.fx-shake {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-shake;
    animation-name: fx-shake;
}

@-webkit-keyframes fx-shake {
    from,
    to {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
    }
    10%,
    30%,
    50%,
    70%,
    90% {
        -webkit-transform: translate3d(-10px, 0, 0);
        transform: translate3d(-10px, 0, 0);
    }
    20%,
    40%,
    60%,
    80% {
        -webkit-transform: translate3d(10px, 0, 0);
        transform: translate3d(10px, 0, 0);
    }
}

@keyframes fx-shake {
    from,
    to {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
    }
    10%,
    30%,
    50%,
    70%,
    90% {
        -webkit-transform: translate3d(-10px, 0, 0);
        transform: translate3d(-10px, 0, 0);
    }
    20%,
    40%,
    60%,
    80% {
        -webkit-transform: translate3d(10px, 0, 0);
        transform: translate3d(10px, 0, 0);
    }
}

.fx-headShake {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-headShake;
    animation-name: fx-headShake;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
}

@-webkit-keyframes fx-headShake {
    0% {
        -webkit-transform: translateX(0);
        transform: translateX(0);
    }
    6.5% {
        -webkit-transform: translateX(-6px) rotateY(-20deg);
        transform: translateX(-6px) rotateY(-20deg);
    }
    18.5% {
        -webkit-transform: translateX(5px) rotateY(15deg);
        transform: translateX(5px) rotateY(15deg);
    }
    31.5% {
        -webkit-transform: translateX(-3px) rotateY(-10deg);
        transform: translateX(-3px) rotateY(-10deg);
    }
    43.5% {
        -webkit-transform: translateX(2px) rotateY(5deg);
        transform: translateX(2px) rotateY(5deg);
    }
    50% {
        -webkit-transform: translateX(0);
        transform: translateX(0);
    }
}

@keyframes fx-headShake {
    0% {
        -webkit-transform: translateX(0);
        transform: translateX(0);
    }
    6.5% {
        -webkit-transform: translateX(-6px) rotateY(-20deg);
        transform: translateX(-6px) rotateY(-20deg);
    }
    18.5% {
        -webkit-transform: translateX(5px) rotateY(15deg);
        transform: translateX(5px) rotateY(15deg);
    }
    31.5% {
        -webkit-transform: translateX(-3px) rotateY(-10deg);
        transform: translateX(-3px) rotateY(-10deg);
    }
    43.5% {
        -webkit-transform: translateX(2px) rotateY(5deg);
        transform: translateX(2px) rotateY(5deg);
    }
    50% {
        -webkit-transform: translateX(0);
        transform: translateX(0);
    }
}

.fx-swing {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-swing;
    animation-name: fx-swing;
    -webkit-transform-origin: top center;
    transform-origin: top center;
}

@-webkit-keyframes fx-swing {
    20% {
        -webkit-transform: rotate3d(0, 0, 1, 15deg);
        transform: rotate3d(0, 0, 1, 15deg);
    }
    40% {
        -webkit-transform: rotate3d(0, 0, 1, -10deg);
        transform: rotate3d(0, 0, 1, -10deg);
    }
    60% {
        -webkit-transform: rotate3d(0, 0, 1, 5deg);
        transform: rotate3d(0, 0, 1, 5deg);
    }
    80% {
        -webkit-transform: rotate3d(0, 0, 1, -5deg);
        transform: rotate3d(0, 0, 1, -5deg);
    }
    to {
        -webkit-transform: rotate3d(0, 0, 1, 0deg);
        transform: rotate3d(0, 0, 1, 0deg);
    }
}

@keyframes fx-swing {
    20% {
        -webkit-transform: rotate3d(0, 0, 1, 15deg);
        transform: rotate3d(0, 0, 1, 15deg);
    }
    40% {
        -webkit-transform: rotate3d(0, 0, 1, -10deg);
        transform: rotate3d(0, 0, 1, -10deg);
    }
    60% {
        -webkit-transform: rotate3d(0, 0, 1, 5deg);
        transform: rotate3d(0, 0, 1, 5deg);
    }
    80% {
        -webkit-transform: rotate3d(0, 0, 1, -5deg);
        transform: rotate3d(0, 0, 1, -5deg);
    }
    to {
        -webkit-transform: rotate3d(0, 0, 1, 0deg);
        transform: rotate3d(0, 0, 1, 0deg);
    }
}

.fx-tada {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-tada;
    animation-name: fx-tada;
}

@-webkit-keyframes fx-tada {
    from {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1);
    }
    10%,
    20% {
        -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
        transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
    }
    30%,
    50%,
    70%,
    90% {
        -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
        transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
    }
    40%,
    60%,
    80% {
        -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
        transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
    }
    to {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1);
    }
}

@keyframes fx-tada {
    from {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1);
    }
    10%,
    20% {
        -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
        transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
    }
    30%,
    50%,
    70%,
    90% {
        -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
        transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
    }
    40%,
    60%,
    80% {
        -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
        transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
    }
    to {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1);
    }
}

.fx-wobble {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-wobble;
    animation-name: fx-wobble;
}

@-webkit-keyframes fx-wobble {
    from {
        -webkit-transform: none;
        transform: none;
    }
    15% {
        -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
        transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
    }
    30% {
        -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
        transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
    }
    45% {
        -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
        transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
    }
    60% {
        -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
        transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
    }
    75% {
        -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
        transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
    }
    to {
        -webkit-transform: none;
        transform: none;
    }
}

@keyframes fx-wobble {
    from {
        -webkit-transform: none;
        transform: none;
    }
    15% {
        -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
        transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
    }
    30% {
        -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
        transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
    }
    45% {
        -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
        transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
    }
    60% {
        -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
        transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
    }
    75% {
        -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
        transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
    }
    to {
        -webkit-transform: none;
        transform: none;
    }
}

.fx-jello {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-jello;
    animation-name: fx-jello;
    -webkit-transform-origin: center;
    transform-origin: center;
}

@-webkit-keyframes fx-jello {
    from,
    11.1%,
    to {
        -webkit-transform: none;
        transform: none;
    }
    22.2% {
        -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
        transform: skewX(-12.5deg) skewY(-12.5deg);
    }
    33.3% {
        -webkit-transform: skewX(6.25deg) skewY(6.25deg);
        transform: skewX(6.25deg) skewY(6.25deg);
    }
    44.4% {
        -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
        transform: skewX(-3.125deg) skewY(-3.125deg);
    }
    55.5% {
        -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
        transform: skewX(1.5625deg) skewY(1.5625deg);
    }
    66.6% {
        -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);
        transform: skewX(-0.78125deg) skewY(-0.78125deg);
    }
    77.7% {
        -webkit-transform: skewX(0.390625deg) skewY(0.390625deg);
        transform: skewX(0.390625deg) skewY(0.390625deg);
    }
    88.8% {
        -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
        transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
    }
}

@keyframes fx-jello {
    from,
    11.1%,
    to {
        -webkit-transform: none;
        transform: none;
    }
    22.2% {
        -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
        transform: skewX(-12.5deg) skewY(-12.5deg);
    }
    33.3% {
        -webkit-transform: skewX(6.25deg) skewY(6.25deg);
        transform: skewX(6.25deg) skewY(6.25deg);
    }
    44.4% {
        -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
        transform: skewX(-3.125deg) skewY(-3.125deg);
    }
    55.5% {
        -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
        transform: skewX(1.5625deg) skewY(1.5625deg);
    }
    66.6% {
        -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);
        transform: skewX(-0.78125deg) skewY(-0.78125deg);
    }
    77.7% {
        -webkit-transform: skewX(0.390625deg) skewY(0.390625deg);
        transform: skewX(0.390625deg) skewY(0.390625deg);
    }
    88.8% {
        -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
        transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
    }
}

.fx-hinge {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-hinge;
    animation-name: fx-hinge;
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
}

@-webkit-keyframes fx-hinge {
    20%,
    60% {
        -webkit-transform: rotate3d(0, 0, 1, 40deg);
        transform: rotate3d(0, 0, 1, 40deg);
    }
    40%,
    80% {
        opacity: 1;
        -webkit-transform: rotate3d(0, 0, 1, 5deg);
        transform: rotate3d(0, 0, 1, 5deg);
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(0, 300px, 0);
        transform: translate3d(0, 300px, 0);
    }
}

@keyframes fx-hinge {
    20%,
    60% {
        -webkit-transform: rotate3d(0, 0, 1, 40deg);
        transform: rotate3d(0, 0, 1, 40deg);
    }
    40%,
    80% {
        opacity: 1;
        -webkit-transform: rotate3d(0, 0, 1, 5deg);
        transform: rotate3d(0, 0, 1, 5deg);
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(0, 300px, 0);
        transform: translate3d(0, 300px, 0);
    }
}

.fx-bounceIn {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-bounceIn;
    animation-name: fx-bounceIn;
}

@-webkit-keyframes fx-bounceIn {
    from,
    20%,
    40%,
    60%,
    80%,
    to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    }
    0% {
        opacity: 0;
        -webkit-transform: scale3d(0.3, 0.3, 0.3);
        transform: scale3d(0.3, 0.3, 0.3);
    }
    20% {
        -webkit-transform: scale3d(1.1, 1.1, 1.1);
        transform: scale3d(1.1, 1.1, 1.1);
    }
    40% {
        -webkit-transform: scale3d(0.9, 0.9, 0.9);
        transform: scale3d(0.9, 0.9, 0.9);
    }
    60% {
        opacity: 1;
        -webkit-transform: scale3d(1.03, 1.03, 1.03);
        transform: scale3d(1.03, 1.03, 1.03);
    }
    80% {
        -webkit-transform: scale3d(0.97, 0.97, 0.97);
        transform: scale3d(0.97, 0.97, 0.97);
    }
    to {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1);
    }
}

@keyframes fx-bounceIn {
    from,
    20%,
    40%,
    60%,
    80%,
    to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    }
    0% {
        opacity: 0;
        -webkit-transform: scale3d(0.3, 0.3, 0.3);
        transform: scale3d(0.3, 0.3, 0.3);
    }
    20% {
        -webkit-transform: scale3d(1.1, 1.1, 1.1);
        transform: scale3d(1.1, 1.1, 1.1);
    }
    40% {
        -webkit-transform: scale3d(0.9, 0.9, 0.9);
        transform: scale3d(0.9, 0.9, 0.9);
    }
    60% {
        opacity: 1;
        -webkit-transform: scale3d(1.03, 1.03, 1.03);
        transform: scale3d(1.03, 1.03, 1.03);
    }
    80% {
        -webkit-transform: scale3d(0.97, 0.97, 0.97);
        transform: scale3d(0.97, 0.97, 0.97);
    }
    to {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1);
    }
}

.fx-bounceInDown {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-bounceInDown;
    animation-name: fx-bounceInDown;
}

@-webkit-keyframes fx-bounceInDown {
    from,
    60%,
    75%,
    90%,
    to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    }
    0% {
        opacity: 0;
        -webkit-transform: translate3d(0, -3000px, 0);
        transform: translate3d(0, -3000px, 0);
    }
    60% {
        opacity: 1;
        -webkit-transform: translate3d(0, 25px, 0);
        transform: translate3d(0, 25px, 0);
    }
    75% {
        -webkit-transform: translate3d(0, -10px, 0);
        transform: translate3d(0, -10px, 0);
    }
    90% {
        -webkit-transform: translate3d(0, 5px, 0);
        transform: translate3d(0, 5px, 0);
    }
    to {
        -webkit-transform: none;
        transform: none;
    }
}

@keyframes fx-bounceInDown {
    from,
    60%,
    75%,
    90%,
    to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    }
    0% {
        opacity: 0;
        -webkit-transform: translate3d(0, -3000px, 0);
        transform: translate3d(0, -3000px, 0);
    }
    60% {
        opacity: 1;
        -webkit-transform: translate3d(0, 25px, 0);
        transform: translate3d(0, 25px, 0);
    }
    75% {
        -webkit-transform: translate3d(0, -10px, 0);
        transform: translate3d(0, -10px, 0);
    }
    90% {
        -webkit-transform: translate3d(0, 5px, 0);
        transform: translate3d(0, 5px, 0);
    }
    to {
        -webkit-transform: none;
        transform: none;
    }
}

.fx-bounceInLeft {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-bounceInLeft;
    animation-name: fx-bounceInLeft;
}

@-webkit-keyframes fx-bounceInLeft {
    from,
    60%,
    75%,
    90%,
    to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    }
    0% {
        opacity: 0;
        -webkit-transform: translate3d(-100%, 0, 0);
        transform: translate3d(-100%, 0, 0);
    }
    60% {
        opacity: 1;
        -webkit-transform: translate3d(25px, 0, 0);
        transform: translate3d(25px, 0, 0);
    }
    75% {
        -webkit-transform: translate3d(-10px, 0, 0);
        transform: translate3d(-10px, 0, 0);
    }
    90% {
        -webkit-transform: translate3d(5px, 0, 0);
        transform: translate3d(5px, 0, 0);
    }
    to {
        -webkit-transform: none;
        transform: none;
    }
}

@keyframes fx-bounceInLeft {
    from,
    60%,
    75%,
    90%,
    to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    }
    0% {
        opacity: 0;
        -webkit-transform: translate3d(-100%, 0, 0);
        transform: translate3d(-100%, 0, 0);
    }
    60% {
        opacity: 1;
        -webkit-transform: translate3d(25px, 0, 0);
        transform: translate3d(25px, 0, 0);
    }
    75% {
        -webkit-transform: translate3d(-10px, 0, 0);
        transform: translate3d(-10px, 0, 0);
    }
    90% {
        -webkit-transform: translate3d(5px, 0, 0);
        transform: translate3d(5px, 0, 0);
    }
    to {
        -webkit-transform: none;
        transform: none;
    }
}

.fx-bounceInRight {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-bounceInRight;
    animation-name: fx-bounceInRight;
}

@-webkit-keyframes fx-bounceInRight {
    from,
    60%,
    75%,
    90%,
    to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    }
    from {
        opacity: 0;
        -webkit-transform: translate3d(3000px, 0, 0);
        transform: translate3d(3000px, 0, 0);
    }
    60% {
        opacity: 1;
        -webkit-transform: translate3d(-25px, 0, 0);
        transform: translate3d(-25px, 0, 0);
    }
    75% {
        -webkit-transform: translate3d(10px, 0, 0);
        transform: translate3d(10px, 0, 0);
    }
    90% {
        -webkit-transform: translate3d(-5px, 0, 0);
        transform: translate3d(-5px, 0, 0);
    }
    to {
        -webkit-transform: none;
        transform: none;
    }
}

@keyframes fx-bounceInRight {
    from,
    60%,
    75%,
    90%,
    to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    }
    from {
        opacity: 0;
        -webkit-transform: translate3d(3000px, 0, 0);
        transform: translate3d(3000px, 0, 0);
    }
    60% {
        opacity: 1;
        -webkit-transform: translate3d(-25px, 0, 0);
        transform: translate3d(-25px, 0, 0);
    }
    75% {
        -webkit-transform: translate3d(10px, 0, 0);
        transform: translate3d(10px, 0, 0);
    }
    90% {
        -webkit-transform: translate3d(-5px, 0, 0);
        transform: translate3d(-5px, 0, 0);
    }
    to {
        -webkit-transform: none;
        transform: none;
    }
}

.fx-bounceInUp {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-bounceInUp;
    animation-name: fx-bounceInUp;
}

@-webkit-keyframes fx-bounceInUp {
    from,
    60%,
    75%,
    90%,
    to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    }
    from {
        opacity: 0;
        -webkit-transform: translate3d(0, 3000px, 0);
        transform: translate3d(0, 3000px, 0);
    }
    60% {
        opacity: 1;
        -webkit-transform: translate3d(0, -20px, 0);
        transform: translate3d(0, -20px, 0);
    }
    75% {
        -webkit-transform: translate3d(0, 10px, 0);
        transform: translate3d(0, 10px, 0);
    }
    90% {
        -webkit-transform: translate3d(0, -5px, 0);
        transform: translate3d(0, -5px, 0);
    }
    to {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
    }
}

@keyframes fx-bounceInUp {
    from,
    60%,
    75%,
    90%,
    to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    }
    from {
        opacity: 0;
        -webkit-transform: translate3d(0, 3000px, 0);
        transform: translate3d(0, 3000px, 0);
    }
    60% {
        opacity: 1;
        -webkit-transform: translate3d(0, -20px, 0);
        transform: translate3d(0, -20px, 0);
    }
    75% {
        -webkit-transform: translate3d(0, 10px, 0);
        transform: translate3d(0, 10px, 0);
    }
    90% {
        -webkit-transform: translate3d(0, -5px, 0);
        transform: translate3d(0, -5px, 0);
    }
    to {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
    }
}

.fx-bounceOut {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-bounceOut;
    animation-name: fx-bounceOut;
}

@-webkit-keyframes fx-bounceOut {
    20% {
        -webkit-transform: scale3d(0.9, 0.9, 0.9);
        transform: scale3d(0.9, 0.9, 0.9);
    }
    50%,
    55% {
        opacity: 1;
        -webkit-transform: scale3d(1.1, 1.1, 1.1);
        transform: scale3d(1.1, 1.1, 1.1);
    }
    to {
        opacity: 0;
        -webkit-transform: scale3d(0.3, 0.3, 0.3);
        transform: scale3d(0.3, 0.3, 0.3);
    }
}

@keyframes fx-bounceOut {
    20% {
        -webkit-transform: scale3d(0.9, 0.9, 0.9);
        transform: scale3d(0.9, 0.9, 0.9);
    }
    50%,
    55% {
        opacity: 1;
        -webkit-transform: scale3d(1.1, 1.1, 1.1);
        transform: scale3d(1.1, 1.1, 1.1);
    }
    to {
        opacity: 0;
        -webkit-transform: scale3d(0.3, 0.3, 0.3);
        transform: scale3d(0.3, 0.3, 0.3);
    }
}

.fx-bounceOutDown {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-bounceOutDown;
    animation-name: fx-bounceOutDown;
}

@-webkit-keyframes fx-bounceOutDown {
    20% {
        -webkit-transform: translate3d(0, 10px, 0);
        transform: translate3d(0, 10px, 0);
    }
    40%,
    45% {
        opacity: 1;
        -webkit-transform: translate3d(0, -20px, 0);
        transform: translate3d(0, -20px, 0);
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(0, 2000px, 0);
        transform: translate3d(0, 2000px, 0);
    }
}

@keyframes fx-bounceOutDown {
    20% {
        -webkit-transform: translate3d(0, 10px, 0);
        transform: translate3d(0, 10px, 0);
    }
    40%,
    45% {
        opacity: 1;
        -webkit-transform: translate3d(0, -20px, 0);
        transform: translate3d(0, -20px, 0);
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(0, 2000px, 0);
        transform: translate3d(0, 2000px, 0);
    }
}

.fx-bounceOutLeft {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-bounceOutLeft;
    animation-name: fx-bounceOutLeft;
}

@-webkit-keyframes fx-bounceOutLeft {
    20% {
        opacity: 1;
        -webkit-transform: translate3d(20px, 0, 0);
        transform: translate3d(20px, 0, 0);
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(-100%, 0, 0);
        transform: translate3d(-100%, 0, 0);
    }
}

@keyframes fx-bounceOutLeft {
    20% {
        opacity: 1;
        -webkit-transform: translate3d(20px, 0, 0);
        transform: translate3d(20px, 0, 0);
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(-100%, 0, 0);
        transform: translate3d(-100%, 0, 0);
    }
}

.fx-bounceOutRight {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-bounceOutRight;
    animation-name: fx-bounceOutRight;
}

@-webkit-keyframes fx-bounceOutRight {
    20% {
        opacity: 1;
        -webkit-transform: translate3d(-20px, 0, 0);
        transform: translate3d(-20px, 0, 0);
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(2000px, 0, 0);
        transform: translate3d(2000px, 0, 0);
    }
}

@keyframes fx-bounceOutRight {
    20% {
        opacity: 1;
        -webkit-transform: translate3d(-20px, 0, 0);
        transform: translate3d(-20px, 0, 0);
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(2000px, 0, 0);
        transform: translate3d(2000px, 0, 0);
    }
}

.fx-bounceOutUp {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-bounceOutUp;
    animation-name: fx-bounceOutUp;
}

@-webkit-keyframes fx-bounceOutUp {
    20% {
        -webkit-transform: translate3d(0, -10px, 0);
        transform: translate3d(0, -10px, 0);
    }
    40%,
    45% {
        opacity: 1;
        -webkit-transform: translate3d(0, 20px, 0);
        transform: translate3d(0, 20px, 0);
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(0, -2000px, 0);
        transform: translate3d(0, -2000px, 0);
    }
}

@keyframes fx-bounceOutUp {
    20% {
        -webkit-transform: translate3d(0, -10px, 0);
        transform: translate3d(0, -10px, 0);
    }
    40%,
    45% {
        opacity: 1;
        -webkit-transform: translate3d(0, 20px, 0);
        transform: translate3d(0, 20px, 0);
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(0, -2000px, 0);
        transform: translate3d(0, -2000px, 0);
    }
}

.fx-fadeIn {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-fadeIn;
    animation-name: fx-fadeIn;
}

@-webkit-keyframes fx-fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes fx-fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

.fx-fadeInDown {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-fadeInDown;
    animation-name: fx-fadeInDown;
}

@-webkit-keyframes fx-fadeInDown {
    from {
        opacity: 0;
        -webkit-transform: translate3d(0, -100%, 0);
        transform: translate3d(0, -100%, 0);
    }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none;
    }
}

@keyframes fx-fadeInDown {
    from {
        opacity: 0;
        -webkit-transform: translate3d(0, -100%, 0);
        transform: translate3d(0, -100%, 0);
    }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none;
    }
}

.fx-fadeInLeft {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-fadeInLeft;
    animation-name: fx-fadeInLeft;
}

@-webkit-keyframes fx-fadeInLeft {
    from {
        opacity: 0;
        -webkit-transform: translate3d(-100%, 0, 0);
        transform: translate3d(-100%, 0, 0);
    }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none;
    }
}

@keyframes fx-fadeInLeft {
    from {
        opacity: 0;
        -webkit-transform: translate3d(-100%, 0, 0);
        transform: translate3d(-100%, 0, 0);
    }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none;
    }
}

.fx-fadeInRight {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-fadeInRight;
    animation-name: fx-fadeInRight;
}

@-webkit-keyframes fx-fadeInRight {
    from {
        opacity: 0;
        -webkit-transform: translate3d(100%, 0, 0);
        transform: translate3d(100%, 0, 0);
    }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none;
    }
}

@keyframes fx-fadeInRight {
    from {
        opacity: 0;
        -webkit-transform: translate3d(100%, 0, 0);
        transform: translate3d(100%, 0, 0);
    }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none;
    }
}

.fx-fadeInUp {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-fadeInUp;
    animation-name: fx-fadeInUp;
}

@-webkit-keyframes fx-fadeInUp {
    from {
        opacity: 0;
        -webkit-transform: translate3d(0, 100%, 0);
        transform: translate3d(0, 100%, 0);
    }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none;
    }
}

@keyframes fx-fadeInUp {
    from {
        opacity: 0;
        -webkit-transform: translate3d(0, 100%, 0);
        transform: translate3d(0, 100%, 0);
    }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none;
    }
}

.fx-fadeOut {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-fadeOut;
    animation-name: fx-fadeOut;
}

@-webkit-keyframes fx-fadeOut {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
    }
}

@keyframes fx-fadeOut {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
    }
}

.fx-fadeOutDown {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-fadeOutDown;
    animation-name: fx-fadeOutDown;
}

@-webkit-keyframes fx-fadeOutDown {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(0, 100%, 0);
        transform: translate3d(0, 100%, 0);
    }
}

@keyframes fx-fadeOutDown {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(0, 100%, 0);
        transform: translate3d(0, 100%, 0);
    }
}

.fx-fadeOutLeft {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-fadeOutLeft;
    animation-name: fx-fadeOutLeft;
}

@-webkit-keyframes fx-fadeOutLeft {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(-100%, 0, 0);
        transform: translate3d(-100%, 0, 0);
    }
}

@keyframes fx-fadeOutLeft {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(-100%, 0, 0);
        transform: translate3d(-100%, 0, 0);
    }
}

.fx-fadeOutRight {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-fadeOutRight;
    animation-name: fx-fadeOutRight;
}

@-webkit-keyframes fx-fadeOutRight {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(100%, 0, 0);
        transform: translate3d(100%, 0, 0);
    }
}

@keyframes fx-fadeOutRight {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(100%, 0, 0);
        transform: translate3d(100%, 0, 0);
    }
}

.fx-fadeOutUp {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-fadeOutUp;
    animation-name: fx-fadeOutUp;
}

@-webkit-keyframes fx-fadeOutUp {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(0, -100%, 0);
        transform: translate3d(0, -100%, 0);
    }
}

@keyframes fx-fadeOutUp {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(0, -100%, 0);
        transform: translate3d(0, -100%, 0);
    }
}

.fx-rotateIn {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-rotateIn;
    animation-name: fx-rotateIn;
    -webkit-transform-origin: center;
    transform-origin: center;
}

@-webkit-keyframes fx-rotateIn {
    from {
        opacity: 0;
        -webkit-transform: rotate3d(0, 0, 1, -200deg);
        transform: rotate3d(0, 0, 1, -200deg);
    }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none;
    }
}

@keyframes fx-rotateIn {
    from {
        opacity: 0;
        -webkit-transform: rotate3d(0, 0, 1, -200deg);
        transform: rotate3d(0, 0, 1, -200deg);
    }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none;
    }
}

.fx-rotateInDownLeft {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-rotateInDownLeft;
    animation-name: fx-rotateInDownLeft;
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
}

@-webkit-keyframes fx-rotateInDownLeft {
    from {
        opacity: 0;
        -webkit-transform: rotate3d(0, 0, 1, -45deg);
        transform: rotate3d(0, 0, 1, -45deg);
    }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none;
    }
}

@keyframes fx-rotateInDownLeft {
    from {
        opacity: 0;
        -webkit-transform: rotate3d(0, 0, 1, -45deg);
        transform: rotate3d(0, 0, 1, -45deg);
    }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none;
    }
}

.fx-rotateInDownRight {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-rotateInDownRight;
    animation-name: fx-rotateInDownRight;
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
}

@-webkit-keyframes fx-rotateInDownRight {
    from {
        opacity: 0;
        -webkit-transform: rotate3d(0, 0, 1, 45deg);
        transform: rotate3d(0, 0, 1, 45deg);
    }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none;
    }
}

@keyframes fx-rotateInDownRight {
    from {
        opacity: 0;
        -webkit-transform: rotate3d(0, 0, 1, 45deg);
        transform: rotate3d(0, 0, 1, 45deg);
    }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none;
    }
}

.fx-rotateInUpLeft {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-rotateInUpLeft;
    animation-name: fx-rotateInUpLeft;
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
}

@-webkit-keyframes fx-rotateInUpLeft {
    from {
        opacity: 0;
        -webkit-transform: rotate3d(0, 0, 1, 45deg);
        transform: rotate3d(0, 0, 1, 45deg);
    }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none;
    }
}

@keyframes fx-rotateInUpLeft {
    from {
        opacity: 0;
        -webkit-transform: rotate3d(0, 0, 1, 45deg);
        transform: rotate3d(0, 0, 1, 45deg);
    }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none;
    }
}

.fx-rotateInUpRight {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-rotateInUpRight;
    animation-name: fx-rotateInUpRight;
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
}

@-webkit-keyframes fx-rotateInUpRight {
    from {
        opacity: 0;
        -webkit-transform: rotate3d(0, 0, 1, -90deg);
        transform: rotate3d(0, 0, 1, -90deg);
    }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none;
    }
}

@keyframes fx-rotateInUpRight {
    from {
        opacity: 0;
        -webkit-transform: rotate3d(0, 0, 1, -90deg);
        transform: rotate3d(0, 0, 1, -90deg);
    }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none;
    }
}

.fx-rotateOut {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-rotateOut;
    animation-name: fx-rotateOut;
    -webkit-transform-origin: center;
    transform-origin: center;
}

@-webkit-keyframes fx-rotateOut {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
        -webkit-transform: rotate3d(0, 0, 1, 200deg);
        transform: rotate3d(0, 0, 1, 200deg);
    }
}

@keyframes fx-rotateOut {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
        -webkit-transform: rotate3d(0, 0, 1, 200deg);
        transform: rotate3d(0, 0, 1, 200deg);
    }
}

.fx-rotateOutDownLeft {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-rotateOutDownLeft;
    animation-name: fx-rotateOutDownLeft;
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
}

@-webkit-keyframes fx-rotateOutDownLeft {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
        -webkit-transform: rotate3d(0, 0, 1, 45deg);
        transform: rotate3d(0, 0, 1, 45deg);
    }
}

@keyframes fx-rotateOutDownLeft {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
        -webkit-transform: rotate3d(0, 0, 1, 45deg);
        transform: rotate3d(0, 0, 1, 45deg);
    }
}

.fx-rotateOutDownRight {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-rotateOutDownRight;
    animation-name: fx-rotateOutDownRight;
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
}

@-webkit-keyframes fx-rotateOutDownRight {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
        -webkit-transform: rotate3d(0, 0, 1, -45deg);
        transform: rotate3d(0, 0, 1, -45deg);
    }
}

@keyframes fx-rotateOutDownRight {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
        -webkit-transform: rotate3d(0, 0, 1, -45deg);
        transform: rotate3d(0, 0, 1, -45deg);
    }
}

.fx-rotateOutUpLeft {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-rotateOutUpLeft;
    animation-name: fx-rotateOutUpLeft;
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
}

@-webkit-keyframes fx-rotateOutUpLeft {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
        -webkit-transform: rotate3d(0, 0, 1, -45deg);
        transform: rotate3d(0, 0, 1, -45deg);
    }
}

@keyframes fx-rotateOutUpLeft {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
        -webkit-transform: rotate3d(0, 0, 1, -45deg);
        transform: rotate3d(0, 0, 1, -45deg);
    }
}

.fx-rotateOutUpRight {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-rotateOutUpRight;
    animation-name: fx-rotateOutUpRight;
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
}

@-webkit-keyframes fx-rotateOutUpRight {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
        -webkit-transform: rotate3d(0, 0, 1, 90deg);
        transform: rotate3d(0, 0, 1, 90deg);
    }
}

@keyframes fx-rotateOutUpRight {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
        -webkit-transform: rotate3d(0, 0, 1, 90deg);
        transform: rotate3d(0, 0, 1, 90deg);
    }
}

.fx-zoomIn {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-zoomIn;
    animation-name: fx-zoomIn;
}

@-webkit-keyframes fx-zoomIn {
    from {
        opacity: 0;
        -webkit-transform: scale3d(0.3, 0.3, 0.3);
        transform: scale3d(0.3, 0.3, 0.3);
    }
    50% {
        opacity: 1;
    }
}

@keyframes fx-zoomIn {
    from {
        opacity: 0;
        -webkit-transform: scale3d(0.3, 0.3, 0.3);
        transform: scale3d(0.3, 0.3, 0.3);
    }
    50% {
        opacity: 1;
    }
}

.fx-zoomInDown {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-zoomInDown;
    animation-name: fx-zoomInDown;
    -webkit-transform-origin: top left;
    transform-origin: top left;
}

@-webkit-keyframes fx-zoomInDown {
    from {
        opacity: 0;
        -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
        transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
    }
    60% {
        opacity: 1;
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    }
}

@keyframes fx-zoomInDown {
    from {
        opacity: 0;
        -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
        transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
    }
    60% {
        opacity: 1;
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    }
}

.fx-zoomInLeft {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-zoomInLeft;
    animation-name: fx-zoomInLeft;
}

@-webkit-keyframes fx-zoomInLeft {
    from {
        opacity: 0;
        -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
        transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
    }
    60% {
        opacity: 1;
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
    }
}

@keyframes fx-zoomInLeft {
    from {
        opacity: 0;
        -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
        transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
    }
    60% {
        opacity: 1;
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
    }
}

.fx-zoomInRight {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-zoomInRight;
    animation-name: fx-zoomInRight;
    -webkit-transform-origin: top left;
    transform-origin: top left;
}

@-webkit-keyframes fx-zoomInRight {
    from {
        opacity: 0;
        -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
        transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
    }
    60% {
        opacity: 1;
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
    }
}

@keyframes fx-zoomInRight {
    from {
        opacity: 0;
        -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
        transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
    }
    60% {
        opacity: 1;
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
    }
}

.fx-zoomInUp {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-zoomInUp;
    animation-name: fx-zoomInUp;
}

@-webkit-keyframes fx-zoomInUp {
    from {
        opacity: 0;
        -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
        transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
    }
    60% {
        opacity: 1;
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    }
}

@keyframes fx-zoomInUp {
    from {
        opacity: 0;
        -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
        transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
    }
    60% {
        opacity: 1;
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    }
}

.fx-zoomOut {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-zoomOut;
    animation-name: fx-zoomOut;
}

@-webkit-keyframes fx-zoomOut {
    from {
        opacity: 1;
    }
    50% {
        -webkit-transform: scale3d(0.3, 0.3, 0.3);
        transform: scale3d(0.3, 0.3, 0.3);
    }
    to {
        opacity: 0;
    }
}

@keyframes fx-zoomOut {
    from {
        opacity: 1;
    }
    50% {
        -webkit-transform: scale3d(0.3, 0.3, 0.3);
        transform: scale3d(0.3, 0.3, 0.3);
    }
    to {
        opacity: 0;
    }
}

.fx-zoomOutDown {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-zoomOutDown;
    animation-name: fx-zoomOutDown;
}

@-webkit-keyframes fx-zoomOutDown {
    40% {
        opacity: 1;
        -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    }
    to {
        opacity: 0;
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        -webkit-transform-origin: center bottom;
        transform-origin: center bottom;
        -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
        transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
    }
}

@keyframes fx-zoomOutDown {
    40% {
        opacity: 1;
        -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    }
    to {
        opacity: 0;
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        -webkit-transform-origin: center bottom;
        transform-origin: center bottom;
        -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
        transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
    }
}

.fx-zoomOutLeft {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-zoomOutLeft;
    animation-name: fx-zoomOutLeft;
}

@-webkit-keyframes fx-zoomOutLeft {
    40% {
        opacity: 1;
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
    }
    to {
        opacity: 0;
        -webkit-transform-origin: left center;
        transform-origin: left center;
        -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0);
        transform: scale(0.1) translate3d(-2000px, 0, 0);
    }
}

@keyframes fx-zoomOutLeft {
    40% {
        opacity: 1;
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
    }
    to {
        opacity: 0;
        -webkit-transform-origin: left center;
        transform-origin: left center;
        -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0);
        transform: scale(0.1) translate3d(-2000px, 0, 0);
    }
}

.fx-zoomOutRight {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-zoomOutRight;
    animation-name: fx-zoomOutRight;
}

@-webkit-keyframes fx-zoomOutRight {
    40% {
        opacity: 1;
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
    }
    to {
        opacity: 0;
        -webkit-transform-origin: right center;
        transform-origin: right center;
        -webkit-transform: scale(0.1) translate3d(2000px, 0, 0);
        transform: scale(0.1) translate3d(2000px, 0, 0);
    }
}

@keyframes fx-zoomOutRight {
    40% {
        opacity: 1;
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
    }
    to {
        opacity: 0;
        -webkit-transform-origin: right center;
        transform-origin: right center;
        -webkit-transform: scale(0.1) translate3d(2000px, 0, 0);
        transform: scale(0.1) translate3d(2000px, 0, 0);
    }
}

.fx-zoomOutUp {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-zoomOutUp;
    animation-name: fx-zoomOutUp;
}

@-webkit-keyframes fx-zoomOutUp {
    40% {
        opacity: 1;
        -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    }
    to {
        opacity: 0;
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        -webkit-transform-origin: center bottom;
        transform-origin: center bottom;
        -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -4000px, 0);
        transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -4000px, 0);
    }
}

@keyframes fx-zoomOutUp {
    40% {
        opacity: 1;
        -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    }
    to {
        opacity: 0;
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        -webkit-transform-origin: center bottom;
        transform-origin: center bottom;
        -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -4000px, 0);
        transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -4000px, 0);
    }
}

.fx-slideInDown {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-slideInDown;
    animation-name: fx-slideInDown;
}

@-webkit-keyframes fx-slideInDown {
    from {
        opacity: 0;
        -webkit-transform: translate3d(0, -100%, 0);
        transform: translate3d(0, -100%, 0);
    }
    to {
        opacity: 1;
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
    }
}

@keyframes fx-slideInDown {
    from {
        opacity: 0;
        -webkit-transform: translate3d(0, -100%, 0);
        transform: translate3d(0, -100%, 0);
    }
    to {
        opacity: 1;
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
    }
}

.fx-slideInLeft {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-slideInLeft;
    animation-name: fx-slideInLeft;
}

@-webkit-keyframes fx-slideInLeft {
    from {
        opacity: 0;
        -webkit-transform: translate3d(-100%, 0, 0);
        transform: translate3d(-100%, 0, 0);
    }
    to {
        opacity: 1;
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
    }
}

@keyframes fx-slideInLeft {
    from {
        opacity: 0;
        -webkit-transform: translate3d(-100%, 0, 0);
        transform: translate3d(-100%, 0, 0);
    }
    to {
        opacity: 1;
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
    }
}

.fx-slideInRight {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-slideInRight;
    animation-name: fx-slideInRight;
}

@-webkit-keyframes fx-slideInRight {
    from {
        opacity: 0;
        -webkit-transform: translate3d(100%, 0, 0);
        transform: translate3d(100%, 0, 0);
    }
    to {
        opacity: 1;
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
    }
}

@keyframes fx-slideInRight {
    from {
        opacity: 0;
        -webkit-transform: translate3d(100%, 0, 0);
        transform: translate3d(100%, 0, 0);
    }
    to {
        opacity: 1;
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
    }
}

.fx-slideInUp {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-slideInUp;
    animation-name: fx-slideInUp;
}

@-webkit-keyframes fx-slideInUp {
    from {
        opacity: 0;
        -webkit-transform: translate3d(0, 100%, 0);
        transform: translate3d(0, 100%, 0);
    }
    to {
        opacity: 1;
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
    }
}

@keyframes fx-slideInUp {
    from {
        opacity: 0;
        -webkit-transform: translate3d(0, 100%, 0);
        transform: translate3d(0, 100%, 0);
    }
    to {
        opacity: 1;
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
    }
}

.fx-slideOutDown {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-slideOutDown;
    animation-name: fx-slideOutDown;
}

@-webkit-keyframes fx-slideOutDown {
    from {
        opacity: 1;
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(0, 100%, 0);
        transform: translate3d(0, 100%, 0);
    }
}

@keyframes fx-slideOutDown {
    from {
        opacity: 1;
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(0, 100%, 0);
        transform: translate3d(0, 100%, 0);
    }
}

.fx-slideOutLeft {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-slideOutLeft;
    animation-name: fx-slideOutLeft;
}

@-webkit-keyframes fx-slideOutLeft {
    from {
        opacity: 1;
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(-100%, 0, 0);
        transform: translate3d(-100%, 0, 0);
    }
}

@keyframes fx-slideOutLeft {
    from {
        opacity: 1;
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(-100%, 0, 0);
        transform: translate3d(-100%, 0, 0);
    }
}

.fx-slideOutRight {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-slideOutRight;
    animation-name: fx-slideOutRight;
}

@-webkit-keyframes fx-slideOutRight {
    from {
        opacity: 1;
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(100%, 0, 0);
        transform: translate3d(100%, 0, 0);
    }
}

@keyframes fx-slideOutRight {
    from {
        opacity: 1;
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(100%, 0, 0);
        transform: translate3d(100%, 0, 0);
    }
}

.fx-slideOutUp {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-slideOutUp;
    animation-name: fx-slideOutUp;
}

@-webkit-keyframes fx-slideOutUp {
    from {
        opacity: 1;
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(0, -100%, 0);
        transform: translate3d(0, -100%, 0);
    }
}

@keyframes fx-slideOutUp {
    from {
        opacity: 1;
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(0, -100%, 0);
        transform: translate3d(0, -100%, 0);
    }
}

.fx-perspectiveInDown {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-perspectiveInDown;
    animation-name: fx-perspectiveInDown;
    -webkit-transform-origin: bottom right;
    transform-origin: bottom right;
}

@-webkit-keyframes fx-perspectiveInDown {
    from {
        opacity: 0;
        -webkit-transform: perspective(800px) rotateX(-180deg);
        transform: perspective(800px) rotateX(-180deg);
    }
    to {
        opacity: 1;
        -webkit-transform: perspective(800px) rotateX(0deg);
        transform: perspective(800px) rotateX(0deg);
    }
}

@keyframes fx-perspectiveInDown {
    from {
        opacity: 0;
        -webkit-transform: perspective(800px) rotateX(-180deg);
        transform: perspective(800px) rotateX(-180deg);
    }
    to {
        opacity: 1;
        -webkit-transform: perspective(800px) rotateX(0deg);
        transform: perspective(800px) rotateX(0deg);
    }
}

.fx-perspectiveInLeft {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-perspectiveInLeft;
    animation-name: fx-perspectiveInLeft;
    -webkit-transform-origin: top left;
    transform-origin: top left;
}

@-webkit-keyframes fx-perspectiveInLeft {
    from {
        opacity: 0;
        -webkit-transform: perspective(800px) rotateY(-180deg);
        transform: perspective(800px) rotateY(-180deg);
    }
    to {
        opacity: 1;
        -webkit-transform: perspective(800px) rotateY(0deg);
        transform: perspective(800px) rotateY(0deg);
    }
}

@keyframes fx-perspectiveInLeft {
    from {
        opacity: 0;
        -webkit-transform: perspective(800px) rotateY(-180deg);
        transform: perspective(800px) rotateY(-180deg);
    }
    to {
        opacity: 1;
        -webkit-transform: perspective(800px) rotateY(0deg);
        transform: perspective(800px) rotateY(0deg);
    }
}

.fx-perspectiveInRight {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-perspectiveInRight;
    animation-name: fx-perspectiveInRight;
    -webkit-transform-origin: top right;
    transform-origin: top right;
}

@-webkit-keyframes fx-perspectiveInRight {
    from {
        opacity: 0;
        -webkit-transform: perspective(800px) rotateY(180deg);
        transform: perspective(800px) rotateY(180deg);
    }
    to {
        opacity: 1;
        -webkit-transform: perspective(800px) rotateY(0deg);
        transform: perspective(800px) rotateY(0deg);
    }
}

@keyframes fx-perspectiveInRight {
    from {
        opacity: 0;
        -webkit-transform: perspective(800px) rotateY(180deg);
        transform: perspective(800px) rotateY(180deg);
    }
    to {
        opacity: 1;
        -webkit-transform: perspective(800px) rotateY(0deg);
        transform: perspective(800px) rotateY(0deg);
    }
}

.fx-perspectiveInUp {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-perspectiveInUp;
    animation-name: fx-perspectiveInUp;
    -webkit-transform-origin: top right;
    transform-origin: top right;
}

@-webkit-keyframes fx-perspectiveInUp {
    from {
        opacity: 0;
        -webkit-transform: perspective(800px) rotateX(180deg);
        transform: perspective(800px) rotateX(180deg);
    }
    to {
        opacity: 1;
        -webkit-transform: perspective(800px) rotateX(0deg);
        transform: perspective(800px) rotateX(0deg);
    }
}

@keyframes fx-perspectiveInUp {
    from {
        opacity: 0;
        -webkit-transform: perspective(800px) rotateX(180deg);
        transform: perspective(800px) rotateX(180deg);
    }
    to {
        opacity: 1;
        -webkit-transform: perspective(800px) rotateX(0deg);
        transform: perspective(800px) rotateX(0deg);
    }
}

.fx-perspectiveOutDown {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-perspectiveOutDown;
    animation-name: fx-perspectiveOutDown;
    -webkit-transform-origin: bottom right;
    transform-origin: bottom right;
}

@-webkit-keyframes fx-perspectiveOutDown {
    from {
        opacity: 1;
        -webkit-transform: perspective(800px) rotateX(0deg);
        transform: perspective(800px) rotateX(0deg);
    }
    to {
        opacity: 0;
        -webkit-transform: perspective(800px) rotateX(-180deg);
        transform: perspective(800px) rotateX(-180deg);
    }
}

@keyframes fx-perspectiveOutDown {
    from {
        opacity: 1;
        -webkit-transform: perspective(800px) rotateX(0deg);
        transform: perspective(800px) rotateX(0deg);
    }
    to {
        opacity: 0;
        -webkit-transform: perspective(800px) rotateX(-180deg);
        transform: perspective(800px) rotateX(-180deg);
    }
}

.fx-perspectiveOutLeft {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-perspectiveOutLeft;
    animation-name: fx-perspectiveOutLeft;
    -webkit-transform-origin: top left;
    transform-origin: top left;
}

@-webkit-keyframes fx-perspectiveOutLeft {
    from {
        opacity: 1;
        -webkit-transform: perspective(800px) rotateY(0deg);
        transform: perspective(800px) rotateY(0deg);
    }
    to {
        opacity: 0;
        -webkit-transform: perspective(800px) rotateY(-180deg);
        transform: perspective(800px) rotateY(-180deg);
    }
}

@keyframes fx-perspectiveOutLeft {
    from {
        opacity: 1;
        -webkit-transform: perspective(800px) rotateY(0deg);
        transform: perspective(800px) rotateY(0deg);
    }
    to {
        opacity: 0;
        -webkit-transform: perspective(800px) rotateY(-180deg);
        transform: perspective(800px) rotateY(-180deg);
    }
}

.fx-perspectiveOutRight {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-perspectiveOutRight;
    animation-name: fx-perspectiveOutRight;
    -webkit-transform-origin: top right;
    transform-origin: top right;
}

@-webkit-keyframes fx-perspectiveOutRight {
    from {
        opacity: 1;
        -webkit-transform: perspective(800px) rotateY(0deg);
        transform: perspective(800px) rotateY(0deg);
    }
    to {
        opacity: 0;
        -webkit-transform: perspective(800px) rotateY(180deg);
        transform: perspective(800px) rotateY(180deg);
    }
}

@keyframes fx-perspectiveOutRight {
    from {
        opacity: 1;
        -webkit-transform: perspective(800px) rotateY(0deg);
        transform: perspective(800px) rotateY(0deg);
    }
    to {
        opacity: 0;
        -webkit-transform: perspective(800px) rotateY(180deg);
        transform: perspective(800px) rotateY(180deg);
    }
}

.fx-perspectiveOutUp {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-perspectiveOutUp;
    animation-name: fx-perspectiveOutUp;
    -webkit-transform-origin: top right;
    transform-origin: top right;
}

@-webkit-keyframes fx-perspectiveOutUp {
    from {
        opacity: 1;
        -webkit-transform: perspective(800px) rotateX(0deg);
        transform: perspective(800px) rotateX(0deg);
    }
    to {
        opacity: 0;
        -webkit-transform: perspective(800px) rotateX(180deg);
        transform: perspective(800px) rotateX(180deg);
    }
}

@keyframes fx-perspectiveOutUp {
    from {
        opacity: 1;
        -webkit-transform: perspective(800px) rotateX(0deg);
        transform: perspective(800px) rotateX(0deg);
    }
    to {
        opacity: 0;
        -webkit-transform: perspective(800px) rotateX(180deg);
        transform: perspective(800px) rotateX(180deg);
    }
}

.fx-tinInDown {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-tinInDown;
    animation-name: fx-tinInDown;
}

@-webkit-keyframes fx-tinInDown {
    0% {
        opacity: 0;
        -webkit-transform: scale(1, 1) translateY(900%);
        transform: scale(1, 1) translateY(900%);
    }
    50%,
    70%,
    90% {
        opacity: 1;
        -webkit-transform: scale(1.1, 1.1) translateY(0);
        transform: scale(1.1, 1.1) translateY(0);
    }
    60%,
    80%,
    100% {
        -webkit-transform: scale(1, 1) translateY(0);
        transform: scale(1, 1) translateY(0);
    }
}

@keyframes fx-tinInDown {
    0% {
        opacity: 0;
        -webkit-transform: scale(1, 1) translateY(900%);
        transform: scale(1, 1) translateY(900%);
    }
    50%,
    70%,
    90% {
        opacity: 1;
        -webkit-transform: scale(1.1, 1.1) translateY(0);
        transform: scale(1.1, 1.1) translateY(0);
    }
    60%,
    80%,
    100% {
        -webkit-transform: scale(1, 1) translateY(0);
        transform: scale(1, 1) translateY(0);
    }
}

.fx-tinInLeft {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-tinInLeft;
    animation-name: fx-tinInLeft;
}

@-webkit-keyframes fx-tinInLeft {
    0% {
        opacity: 0;
        -webkit-transform: scale(1, 1) translateX(-900%);
        transform: scale(1, 1) translateX(-900%);
    }
    50%,
    70%,
    90% {
        opacity: 1;
        -webkit-transform: scale(1.1, 1.1) translateX(0);
        transform: scale(1.1, 1.1) translateX(0);
    }
    60%,
    80%,
    100% {
        -webkit-transform: scale(1, 1) translateX(0);
        transform: scale(1, 1) translateX(0);
    }
}

@keyframes fx-tinInLeft {
    0% {
        opacity: 0;
        -webkit-transform: scale(1, 1) translateX(-900%);
        transform: scale(1, 1) translateX(-900%);
    }
    50%,
    70%,
    90% {
        opacity: 1;
        -webkit-transform: scale(1.1, 1.1) translateX(0);
        transform: scale(1.1, 1.1) translateX(0);
    }
    60%,
    80%,
    100% {
        -webkit-transform: scale(1, 1) translateX(0);
        transform: scale(1, 1) translateX(0);
    }
}

.fx-tinInRight {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-tinInRight;
    animation-name: fx-tinInRight;
}

@-webkit-keyframes fx-tinInRight {
    0% {
        opacity: 0;
        -webkit-transform: scale(1, 1) translateX(900%);
        transform: scale(1, 1) translateX(900%);
    }
    50%,
    70%,
    90% {
        opacity: 1;
        -webkit-transform: scale(1.1, 1.1) translateX(0);
        transform: scale(1.1, 1.1) translateX(0);
    }
    60%,
    80%,
    100% {
        -webkit-transform: scale(1, 1) translateX(0);
        transform: scale(1, 1) translateX(0);
    }
}

@keyframes fx-tinInRight {
    0% {
        opacity: 0;
        -webkit-transform: scale(1, 1) translateX(900%);
        transform: scale(1, 1) translateX(900%);
    }
    50%,
    70%,
    90% {
        opacity: 1;
        -webkit-transform: scale(1.1, 1.1) translateX(0);
        transform: scale(1.1, 1.1) translateX(0);
    }
    60%,
    80%,
    100% {
        -webkit-transform: scale(1, 1) translateX(0);
        transform: scale(1, 1) translateX(0);
    }
}

.fx-tinInUp {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-tinInUp;
    animation-name: fx-tinInUp;
}

@-webkit-keyframes fx-tinInUp {
    0% {
        opacity: 0;
        -webkit-transform: scale(1, 1) translateY(-900%);
        transform: scale(1, 1) translateY(-900%);
    }
    50%,
    70%,
    90% {
        opacity: 1;
        -webkit-transform: scale(1.1, 1.1) translateY(0);
        transform: scale(1.1, 1.1) translateY(0);
    }
    60%,
    80%,
    100% {
        -webkit-transform: scale(1, 1) translateY(0);
        transform: scale(1, 1) translateY(0);
    }
}

@keyframes fx-tinInUp {
    0% {
        opacity: 0;
        -webkit-transform: scale(1, 1) translateY(-900%);
        transform: scale(1, 1) translateY(-900%);
    }
    50%,
    70%,
    90% {
        opacity: 1;
        -webkit-transform: scale(1.1, 1.1) translateY(0);
        transform: scale(1.1, 1.1) translateY(0);
    }
    60%,
    80%,
    100% {
        -webkit-transform: scale(1, 1) translateY(0);
        transform: scale(1, 1) translateY(0);
    }
}

.fx-tinOutDown {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-tinOutDown;
    animation-name: fx-tinOutDown;
}

@-webkit-keyframes fx-tinOutDown {
    0%,
    20%,
    40%,
    50% {
        opacity: 1;
        -webkit-transform: scale(1, 1) translateY(0);
        transform: scale(1, 1) translateY(0);
    }
    10%,
    30% {
        -webkit-transform: scale(1.1, 1.1) translateY(0);
        transform: scale(1.1, 1.1) translateY(0);
    }
    100% {
        opacity: 0;
        -webkit-transform: scale(1, 1) translateY(900%);
        transform: scale(1, 1) translateY(900%);
    }
}

@keyframes fx-tinOutDown {
    0%,
    20%,
    40%,
    50% {
        opacity: 1;
        -webkit-transform: scale(1, 1) translateY(0);
        transform: scale(1, 1) translateY(0);
    }
    10%,
    30% {
        -webkit-transform: scale(1.1, 1.1) translateY(0);
        transform: scale(1.1, 1.1) translateY(0);
    }
    100% {
        opacity: 0;
        -webkit-transform: scale(1, 1) translateY(900%);
        transform: scale(1, 1) translateY(900%);
    }
}

.fx-tinOutLeft {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-tinOutLeft;
    animation-name: fx-tinOutLeft;
}

@-webkit-keyframes fx-tinOutLeft {
    0%,
    20%,
    40%,
    50% {
        opacity: 1;
        -webkit-transform: scale(1, 1) translateX(0);
        transform: scale(1, 1) translateX(0);
    }
    10%,
    30% {
        -webkit-transform: scale(1.1, 1.1) translateX(0);
        transform: scale(1.1, 1.1) translateX(0);
    }
    100% {
        opacity: 0;
        -webkit-transform: scale(1, 1) translateX(-900%);
        transform: scale(1, 1) translateX(-900%);
    }
}

@keyframes fx-tinOutLeft {
    0%,
    20%,
    40%,
    50% {
        opacity: 1;
        -webkit-transform: scale(1, 1) translateX(0);
        transform: scale(1, 1) translateX(0);
    }
    10%,
    30% {
        -webkit-transform: scale(1.1, 1.1) translateX(0);
        transform: scale(1.1, 1.1) translateX(0);
    }
    100% {
        opacity: 0;
        -webkit-transform: scale(1, 1) translateX(-900%);
        transform: scale(1, 1) translateX(-900%);
    }
}

.fx-tinOutRight {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-tinOutRight;
    animation-name: fx-tinOutRight;
}

@-webkit-keyframes fx-tinOutRight {
    0%,
    20%,
    40%,
    50% {
        opacity: 1;
        -webkit-transform: scale(1, 1) translateX(0);
        transform: scale(1, 1) translateX(0);
    }
    10%,
    30% {
        -webkit-transform: scale(1.1, 1.1) translateX(0);
        transform: scale(1.1, 1.1) translateX(0);
    }
    100% {
        opacity: 0;
        -webkit-transform: scale(1, 1) translateX(900%);
        transform: scale(1, 1) translateX(900%);
    }
}

@keyframes fx-tinOutRight {
    0%,
    20%,
    40%,
    50% {
        opacity: 1;
        -webkit-transform: scale(1, 1) translateX(0);
        transform: scale(1, 1) translateX(0);
    }
    10%,
    30% {
        -webkit-transform: scale(1.1, 1.1) translateX(0);
        transform: scale(1.1, 1.1) translateX(0);
    }
    100% {
        opacity: 0;
        -webkit-transform: scale(1, 1) translateX(900%);
        transform: scale(1, 1) translateX(900%);
    }
}

.fx-tinOutUp {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-tinOutUp;
    animation-name: fx-tinOutUp;
}

@-webkit-keyframes fx-tinOutUp {
    0%,
    20%,
    40%,
    50% {
        opacity: 1;
        -webkit-transform: scale(1, 1) translateY(0);
        transform: scale(1, 1) translateY(0);
    }
    10%,
    30% {
        -webkit-transform: scale(1.1, 1.1) translateY(0);
        transform: scale(1.1, 1.1) translateY(0);
    }
    100% {
        opacity: 0;
        -webkit-transform: scale(1, 1) translateY(-900%);
        transform: scale(1, 1) translateY(-900%);
    }
}

@keyframes fx-tinOutUp {
    0%,
    20%,
    40%,
    50% {
        opacity: 1;
        -webkit-transform: scale(1, 1) translateY(0);
        transform: scale(1, 1) translateY(0);
    }
    10%,
    30% {
        -webkit-transform: scale(1.1, 1.1) translateY(0);
        transform: scale(1.1, 1.1) translateY(0);
    }
    100% {
        opacity: 0;
        -webkit-transform: scale(1, 1) translateY(-900%);
        transform: scale(1, 1) translateY(-900%);
    }
}

.fx-spaceInDown {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-spaceInDown;
    animation-name: fx-spaceInDown;
    -webkit-transform-origin: center bottom;
    transform-origin: center bottom;
}

@-webkit-keyframes fx-spaceInDown {
    from {
        opacity: 0;
        -webkit-transform: scale(0.2) translate(0%, 200%);
        transform: scale(0.2) translate(0%, 200%);
    }
    to {
        opacity: 1;
        -webkit-transform: scale(1) translate(0%, 0%);
        transform: scale(1) translate(0%, 0%);
    }
}

@keyframes fx-spaceInDown {
    from {
        opacity: 0;
        -webkit-transform: scale(0.2) translate(0%, 200%);
        transform: scale(0.2) translate(0%, 200%);
    }
    to {
        opacity: 1;
        -webkit-transform: scale(1) translate(0%, 0%);
        transform: scale(1) translate(0%, 0%);
    }
}

.fx-spaceInLeft {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-spaceInLeft;
    animation-name: fx-spaceInLeft;
    -webkit-transform-origin: left center;
    transform-origin: left center;
}

@-webkit-keyframes fx-spaceInLeft {
    from {
        opacity: 0;
        -webkit-transform: scale(0.2) translate(-200%, 0%);
        transform: scale(0.2) translate(-200%, 0%);
    }
    to {
        opacity: 1;
        -webkit-transform: scale(1) translate(0%, 0%);
        transform: scale(1) translate(0%, 0%);
    }
}

@keyframes fx-spaceInLeft {
    from {
        opacity: 0;
        -webkit-transform: scale(0.2) translate(-200%, 0%);
        transform: scale(0.2) translate(-200%, 0%);
    }
    to {
        opacity: 1;
        -webkit-transform: scale(1) translate(0%, 0%);
        transform: scale(1) translate(0%, 0%);
    }
}

.fx-spaceInRight {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-spaceInRight;
    animation-name: fx-spaceInRight;
    -webkit-transform-origin: right center;
    transform-origin: right center;
}

@-webkit-keyframes fx-spaceInRight {
    from {
        opacity: 0;
        -webkit-transform: scale(0.2) translate(200%, 0%);
        transform: scale(0.2) translate(200%, 0%);
    }
    to {
        opacity: 1;
        -webkit-transform: scale(1) translate(0%, 0%);
        transform: scale(1) translate(0%, 0%);
    }
}

@keyframes fx-spaceInRight {
    from {
        opacity: 0;
        -webkit-transform: scale(0.2) translate(200%, 0%);
        transform: scale(0.2) translate(200%, 0%);
    }
    to {
        opacity: 1;
        -webkit-transform: scale(1) translate(0%, 0%);
        transform: scale(1) translate(0%, 0%);
    }
}

.fx-spaceInUp {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-spaceInUp;
    animation-name: fx-spaceInUp;
    -webkit-transform-origin: center top;
    transform-origin: center top;
}

@-webkit-keyframes fx-spaceInUp {
    from {
        opacity: 0;
        -webkit-transform: scale(0.2) translate(0%, -200%);
        transform: scale(0.2) translate(0%, -200%);
    }
    to {
        opacity: 1;
        -webkit-transform: scale(1) translate(0%, 0%);
        transform: scale(1) translate(0%, 0%);
    }
}

@keyframes fx-spaceInUp {
    from {
        opacity: 0;
        -webkit-transform: scale(0.2) translate(0%, -200%);
        transform: scale(0.2) translate(0%, -200%);
    }
    to {
        opacity: 1;
        -webkit-transform: scale(1) translate(0%, 0%);
        transform: scale(1) translate(0%, 0%);
    }
}

.fx-spaceOutDown {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-spaceOutDown;
    animation-name: fx-spaceOutDown;
    -webkit-transform-origin: center bottom;
    transform-origin: center bottom;
}

@-webkit-keyframes fx-spaceOutDown {
    from {
        opacity: 1;
        -webkit-transform: scale(1) translate(0%, 0%);
        transform: scale(1) translate(0%, 0%);
    }
    to {
        opacity: 0;
        -webkit-transform: scale(0.2) translate(0%, 200%);
        transform: scale(0.2) translate(0%, 200%);
    }
}

@keyframes fx-spaceOutDown {
    from {
        opacity: 1;
        -webkit-transform: scale(1) translate(0%, 0%);
        transform: scale(1) translate(0%, 0%);
    }
    to {
        opacity: 0;
        -webkit-transform: scale(0.2) translate(0%, 200%);
        transform: scale(0.2) translate(0%, 200%);
    }
}

.fx-spaceOutLeft {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-spaceOutLeft;
    animation-name: fx-spaceOutLeft;
    -webkit-transform-origin: left center;
    transform-origin: left center;
}

@-webkit-keyframes fx-spaceOutLeft {
    from {
        opacity: 1;
        -webkit-transform: scale(1) translate(0%, 0%);
        transform: scale(1) translate(0%, 0%);
    }
    to {
        opacity: 0;
        -webkit-transform: scale(0.2) translate(-200%, 0%);
        transform: scale(0.2) translate(-200%, 0%);
    }
}

@keyframes fx-spaceOutLeft {
    from {
        opacity: 1;
        -webkit-transform: scale(1) translate(0%, 0%);
        transform: scale(1) translate(0%, 0%);
    }
    to {
        opacity: 0;
        -webkit-transform: scale(0.2) translate(-200%, 0%);
        transform: scale(0.2) translate(-200%, 0%);
    }
}

.fx-spaceOutRight {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-spaceOutRight;
    animation-name: fx-spaceOutRight;
    -webkit-transform-origin: right center;
    transform-origin: right center;
}

@-webkit-keyframes fx-spaceOutRight {
    from {
        opacity: 1;
        -webkit-transform: scale(1) translate(0%, 0%);
        transform: scale(1) translate(0%, 0%);
    }
    to {
        opacity: 0;
        -webkit-transform: scale(0.2) translate(200%, 0%);
        transform: scale(0.2) translate(200%, 0%);
    }
}

@keyframes fx-spaceOutRight {
    from {
        opacity: 1;
        -webkit-transform: scale(1) translate(0%, 0%);
        transform: scale(1) translate(0%, 0%);
    }
    to {
        opacity: 0;
        -webkit-transform: scale(0.2) translate(200%, 0%);
        transform: scale(0.2) translate(200%, 0%);
    }
}

.fx-spaceOutUp {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-spaceOutUp;
    animation-name: fx-spaceOutUp;
    -webkit-transform-origin: center top;
    transform-origin: center top;
}

@-webkit-keyframes fx-spaceOutUp {
    from {
        opacity: 1;
        -webkit-transform: scale(1) translate(0%, 0%);
        transform: scale(1) translate(0%, 0%);
    }
    to {
        opacity: 0;
        -webkit-transform: scale(0.2) translate(0%, -200%);
        transform: scale(0.2) translate(0%, -200%);
    }
}

@keyframes fx-spaceOutUp {
    from {
        opacity: 1;
        -webkit-transform: scale(1) translate(0%, 0%);
        transform: scale(1) translate(0%, 0%);
    }
    to {
        opacity: 0;
        -webkit-transform: scale(0.2) translate(0%, -200%);
        transform: scale(0.2) translate(0%, -200%);
    }
}

.fx-flip {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-flip;
    animation-name: fx-flip;
    -webkit-backface-visibility: visible;
    backface-visibility: visible;
}

@-webkit-keyframes fx-flip {
    from {
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
        transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
        -webkit-animation-timing-function: ease-out;
        animation-timing-function: ease-out;
    }
    40% {
        -webkit-transform: perspective(400px) translate3d(0, 0, 30px) rotate3d(0, 1, 0, -190deg);
        transform: perspective(400px) translate3d(0, 0, 30px) rotate3d(0, 1, 0, -190deg);
        -webkit-animation-timing-function: ease-out;
        animation-timing-function: ease-out;
    }
    50% {
        -webkit-transform: perspective(400px) translate3d(0, 0, 30px) rotate3d(0, 1, 0, -170deg);
        transform: perspective(400px) translate3d(0, 0, 30px) rotate3d(0, 1, 0, -170deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
    }
    80% {
        -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
        transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
    }
    to {
        -webkit-transform: perspective(400px);
        transform: perspective(400px);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
    }
}

@keyframes fx-flip {
    from {
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
        transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
        -webkit-animation-timing-function: ease-out;
        animation-timing-function: ease-out;
    }
    40% {
        -webkit-transform: perspective(400px) translate3d(0, 0, 30px) rotate3d(0, 1, 0, -190deg);
        transform: perspective(400px) translate3d(0, 0, 30px) rotate3d(0, 1, 0, -190deg);
        -webkit-animation-timing-function: ease-out;
        animation-timing-function: ease-out;
    }
    50% {
        -webkit-transform: perspective(400px) translate3d(0, 0, 30px) rotate3d(0, 1, 0, -170deg);
        transform: perspective(400px) translate3d(0, 0, 30px) rotate3d(0, 1, 0, -170deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
    }
    80% {
        -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
        transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
    }
    to {
        -webkit-transform: perspective(400px);
        transform: perspective(400px);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
    }
}

.fx-flipInX {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-flipInX;
    animation-name: fx-flipInX;
    -webkit-backface-visibility: visible;
    backface-visibility: visible;
}

@-webkit-keyframes fx-flipInX {
    from {
        opacity: 0;
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
        transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
    }
    40% {
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
        transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
    }
    60% {
        opacity: 1;
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
        transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    }
    80% {
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
        transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
    }
    to {
        -webkit-transform: perspective(400px);
        transform: perspective(400px);
    }
}

@keyframes fx-flipInX {
    from {
        opacity: 0;
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
        transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
    }
    40% {
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
        transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
    }
    60% {
        opacity: 1;
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
        transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    }
    80% {
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
        transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
    }
    to {
        -webkit-transform: perspective(400px);
        transform: perspective(400px);
    }
}

.fx-flipInY {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-flipInY;
    animation-name: fx-flipInY;
    -webkit-backface-visibility: visible;
    backface-visibility: visible;
}

@-webkit-keyframes fx-flipInY {
    from {
        opacity: 0;
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
        transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
    }
    40% {
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
        transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
    }
    60% {
        opacity: 1;
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
        transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
    }
    80% {
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
        transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
    }
    to {
        -webkit-transform: perspective(400px);
        transform: perspective(400px);
    }
}

@keyframes fx-flipInY {
    from {
        opacity: 0;
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
        transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
    }
    40% {
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
        transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
    }
    60% {
        opacity: 1;
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
        transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
    }
    80% {
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
        transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
    }
    to {
        -webkit-transform: perspective(400px);
        transform: perspective(400px);
    }
}

.fx-flipOutX {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-flipOutX;
    animation-name: fx-flipOutX;
    -webkit-backface-visibility: visible;
    backface-visibility: visible;
}

@-webkit-keyframes fx-flipOutX {
    from {
        -webkit-transform: perspective(400px);
        transform: perspective(400px);
    }
    30% {
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
        transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
        opacity: 1;
    }
    to {
        opacity: 0;
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
        transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    }
}

@keyframes fx-flipOutX {
    from {
        -webkit-transform: perspective(400px);
        transform: perspective(400px);
    }
    30% {
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
        transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
        opacity: 1;
    }
    to {
        opacity: 0;
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
        transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    }
}

.fx-flipOutY {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-flipOutY;
    animation-name: fx-flipOutY;
    -webkit-backface-visibility: visible;
    backface-visibility: visible;
}

@-webkit-keyframes fx-flipOutY {
    from {
        -webkit-transform: perspective(400px);
        transform: perspective(400px);
    }
    30% {
        opacity: 1;
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
        transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
    }
    to {
        opacity: 0;
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
        transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    }
}

@keyframes fx-flipOutY {
    from {
        -webkit-transform: perspective(400px);
        transform: perspective(400px);
    }
    30% {
        opacity: 1;
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
        transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
    }
    to {
        opacity: 0;
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
        transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    }
}

.fx-lightSpeedIn {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-lightSpeedIn;
    animation-name: fx-lightSpeedIn;
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out;
}

@-webkit-keyframes fx-lightSpeedIn {
    from {
        opacity: 0;
        -webkit-transform: translate3d(100%, 0, 0) skewX(-10deg);
        transform: translate3d(100%, 0, 0) skewX(-10deg);
    }
    60% {
        opacity: 1;
        -webkit-transform: skewX(5deg);
        transform: skewX(5deg);
    }
    80% {
        -webkit-transform: skewX(-2deg);
        transform: skewX(-2deg);
    }
    to {
        -webkit-transform: none;
        transform: none;
    }
}

@keyframes fx-lightSpeedIn {
    from {
        opacity: 0;
        -webkit-transform: translate3d(100%, 0, 0) skewX(-10deg);
        transform: translate3d(100%, 0, 0) skewX(-10deg);
    }
    60% {
        opacity: 1;
        -webkit-transform: skewX(5deg);
        transform: skewX(5deg);
    }
    80% {
        -webkit-transform: skewX(-2deg);
        transform: skewX(-2deg);
    }
    to {
        -webkit-transform: none;
        transform: none;
    }
}

.fx-lightSpeedOut {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-lightSpeedOut;
    animation-name: fx-lightSpeedOut;
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
}

@-webkit-keyframes fx-lightSpeedOut {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(100%, 0, 0) skewX(5deg);
        transform: translate3d(100%, 0, 0) skewX(5deg);
    }
}

@keyframes fx-lightSpeedOut {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(100%, 0, 0) skewX(5deg);
        transform: translate3d(100%, 0, 0) skewX(5deg);
    }
}

.fx-rollIn {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-rollIn;
    animation-name: fx-rollIn;
}

@-webkit-keyframes fx-rollIn {
    from {
        opacity: 0;
        -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
        transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
    }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none;
    }
}

@keyframes fx-rollIn {
    from {
        opacity: 0;
        -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
        transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
    }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none;
    }
}

.fx-rollOut {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-rollOut;
    animation-name: fx-rollOut;
}

@-webkit-keyframes fx-rollOut {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
        transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
    }
}

@keyframes fx-rollOut {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
        transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
    }
}

.fx-vanishIn {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-vanishIn;
    animation-name: fx-vanishIn;
    -webkit-transform-origin: center center;
    transform-origin: center center;
}

@-webkit-keyframes fx-vanishIn {
    from {
        opacity: 0;
        -webkit-transform: scale(2, 2);
        transform: scale(2, 2);
        -webkit-filter: blur(20px);
    }
    to {
        opacity: 1;
        -webkit-transform: scale(1, 1);
        transform: scale(1, 1);
        -webkit-filter: blur(0px);
    }
}

@keyframes fx-vanishIn {
    from {
        opacity: 0;
        -webkit-transform: scale(2, 2);
        transform: scale(2, 2);
        -webkit-filter: blur(20px);
    }
    to {
        opacity: 1;
        -webkit-transform: scale(1, 1);
        transform: scale(1, 1);
        -webkit-filter: blur(0px);
    }
}

.fx-vanishOut {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-vanishOut;
    animation-name: fx-vanishOut;
}

@-webkit-keyframes fx-vanishOut {
    from {
        opacity: 1;
        -webkit-transform: scale(1, 1);
        transform: scale(1, 1);
        -webkit-filter: blur(0px);
    }
    to {
        opacity: 0;
        -webkit-transform: scale(2, 2);
        transform: scale(2, 2);
        -webkit-filter: blur(20px);
    }
}

@keyframes fx-vanishOut {
    from {
        opacity: 1;
        -webkit-transform: scale(1, 1);
        transform: scale(1, 1);
        -webkit-filter: blur(0px);
    }
    to {
        opacity: 0;
        -webkit-transform: scale(2, 2);
        transform: scale(2, 2);
        -webkit-filter: blur(20px);
    }
}

.fx-swashIn {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-swashIn;
    animation-name: fx-swashIn;
    -webkit-transform-origin: center center;
    transform-origin: center center;
}

@-webkit-keyframes fx-swashIn {
    0% {
        opacity: 0;
        -webkit-transform: scale(0, 0);
        transform: scale(0, 0);
    }
    90% {
        opacity: 1;
        -webkit-transform: scale(0.9, 0.9);
        transform: scale(0.9, 0.9);
    }
    100% {
        -webkit-transform: scale(1, 1);
        transform: scale(1, 1);
    }
}

@keyframes fx-swashIn {
    0% {
        opacity: 0;
        -webkit-transform: scale(0, 0);
        transform: scale(0, 0);
    }
    90% {
        opacity: 1;
        -webkit-transform: scale(0.9, 0.9);
        transform: scale(0.9, 0.9);
    }
    100% {
        -webkit-transform: scale(1, 1);
        transform: scale(1, 1);
    }
}

.fx-swashOut {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-swashOut;
    animation-name: fx-swashOut;
    -webkit-transform-origin: center center;
    transform-origin: center center;
}

@-webkit-keyframes fx-swashOut {
    0% {
        opacity: 1;
        -webkit-transform: scale(1, 1);
        transform: scale(1, 1);
    }
    80% {
        opacity: 1;
        -webkit-transform: scale(0.9, 0.9);
        transform: scale(0.9, 0.9);
    }
    100% {
        opacity: 0;
        -webkit-transform: scale(0, 0);
        transform: scale(0, 0);
    }
}

@keyframes fx-swashOut {
    0% {
        opacity: 1;
        -webkit-transform: scale(1, 1);
        transform: scale(1, 1);
    }
    80% {
        opacity: 1;
        -webkit-transform: scale(0.9, 0.9);
        transform: scale(0.9, 0.9);
    }
    100% {
        opacity: 0;
        -webkit-transform: scale(0, 0);
        transform: scale(0, 0);
    }
}

.fx-foolishIn {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-foolishIn;
    animation-name: fx-foolishIn;
}

@-webkit-keyframes fx-foolishIn {
    0% {
        opacity: 0;
        -webkit-transform-origin: 50% 50%;
        transform-origin: 50% 50%;
        -webkit-transform: scale(0, 0) rotate(360deg);
        transform: scale(0, 0) rotate(360deg);
    }
    20% {
        opacity: 1;
        -webkit-transform-origin: 0% 100%;
        transform-origin: 0% 100%;
        -webkit-transform: scale(0.5, 0.5) rotate(0deg);
        transform: scale(0.5, 0.5) rotate(0deg);
    }
    40% {
        -webkit-transform-origin: 100% 100%;
        transform-origin: 100% 100%;
        -webkit-transform: scale(0.5, 0.5) rotate(0deg);
        transform: scale(0.5, 0.5) rotate(0deg);
    }
    60% {
        -webkit-transform-origin: 0% 0%;
        transform-origin: 0% 0%;
        -webkit-transform: scale(0.5, 0.5) rotate(0deg);
        transform: scale(0.5, 0.5) rotate(0deg);
    }
    80% {
        -webkit-transform-origin: 0% 0%;
        transform-origin: 0% 0%;
        -webkit-transform: scale(0.5, 0.5) rotate(0deg);
        transform: scale(0.5, 0.5) rotate(0deg);
    }
    100% {
        -webkit-transform-origin: 50% 50%;
        transform-origin: 50% 50%;
        -webkit-transform: scale(1, 1) rotate(0deg);
        transform: scale(1, 1) rotate(0deg);
    }
}

@keyframes fx-foolishIn {
    0% {
        opacity: 0;
        -webkit-transform-origin: 50% 50%;
        transform-origin: 50% 50%;
        -webkit-transform: scale(0, 0) rotate(360deg);
        transform: scale(0, 0) rotate(360deg);
    }
    20% {
        opacity: 1;
        -webkit-transform-origin: 0% 100%;
        transform-origin: 0% 100%;
        -webkit-transform: scale(0.5, 0.5) rotate(0deg);
        transform: scale(0.5, 0.5) rotate(0deg);
    }
    40% {
        -webkit-transform-origin: 100% 100%;
        transform-origin: 100% 100%;
        -webkit-transform: scale(0.5, 0.5) rotate(0deg);
        transform: scale(0.5, 0.5) rotate(0deg);
    }
    60% {
        -webkit-transform-origin: 0% 0%;
        transform-origin: 0% 0%;
        -webkit-transform: scale(0.5, 0.5) rotate(0deg);
        transform: scale(0.5, 0.5) rotate(0deg);
    }
    80% {
        -webkit-transform-origin: 0% 0%;
        transform-origin: 0% 0%;
        -webkit-transform: scale(0.5, 0.5) rotate(0deg);
        transform: scale(0.5, 0.5) rotate(0deg);
    }
    100% {
        -webkit-transform-origin: 50% 50%;
        transform-origin: 50% 50%;
        -webkit-transform: scale(1, 1) rotate(0deg);
        transform: scale(1, 1) rotate(0deg);
    }
}

.fx-foolishOut {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-foolishOut;
    animation-name: fx-foolishOut;
}

@-webkit-keyframes fx-foolishOut {
    0% {
        opacity: 1;
        -webkit-transform-origin: 50% 50%;
        transform-origin: 50% 50%;
        -webkit-transform: scale(1, 1) rotate(360deg);
        transform: scale(1, 1) rotate(360deg);
    }
    20% {
        -webkit-transform-origin: 0% 0%;
        transform-origin: 0% 0%;
        -webkit-transform: scale(0.5, 0.5) rotate(0deg);
        transform: scale(0.5, 0.5) rotate(0deg);
    }
    40% {
        -webkit-transform-origin: 100% 0%;
        transform-origin: 100% 0%;
        -webkit-transform: scale(0.5, 0.5) rotate(0deg);
        transform: scale(0.5, 0.5) rotate(0deg);
    }
    60% {
        -webkit-transform-origin: 0%;
        transform-origin: 0%;
        -webkit-transform: scale(0.5, 0.5) rotate(0deg);
        transform: scale(0.5, 0.5) rotate(0deg);
    }
    80% {
        opacity: 1;
        -webkit-transform-origin: 0% 100%;
        transform-origin: 0% 100%;
        -webkit-transform: scale(0.5, 0.5) rotate(0deg);
        transform: scale(0.5, 0.5) rotate(0deg);
    }
    100% {
        opacity: 0;
        -webkit-transform-origin: 50% 50%;
        transform-origin: 50% 50%;
        -webkit-transform: scale(0, 0) rotate(0deg);
        transform: scale(0, 0) rotate(0deg);
    }
}

@keyframes fx-foolishOut {
    0% {
        opacity: 1;
        -webkit-transform-origin: 50% 50%;
        transform-origin: 50% 50%;
        -webkit-transform: scale(1, 1) rotate(360deg);
        transform: scale(1, 1) rotate(360deg);
    }
    20% {
        -webkit-transform-origin: 0% 0%;
        transform-origin: 0% 0%;
        -webkit-transform: scale(0.5, 0.5) rotate(0deg);
        transform: scale(0.5, 0.5) rotate(0deg);
    }
    40% {
        -webkit-transform-origin: 100% 0%;
        transform-origin: 100% 0%;
        -webkit-transform: scale(0.5, 0.5) rotate(0deg);
        transform: scale(0.5, 0.5) rotate(0deg);
    }
    60% {
        -webkit-transform-origin: 0%;
        transform-origin: 0%;
        -webkit-transform: scale(0.5, 0.5) rotate(0deg);
        transform: scale(0.5, 0.5) rotate(0deg);
    }
    80% {
        opacity: 1;
        -webkit-transform-origin: 0% 100%;
        transform-origin: 0% 100%;
        -webkit-transform: scale(0.5, 0.5) rotate(0deg);
        transform: scale(0.5, 0.5) rotate(0deg);
    }
    100% {
        opacity: 0;
        -webkit-transform-origin: 50% 50%;
        transform-origin: 50% 50%;
        -webkit-transform: scale(0, 0) rotate(0deg);
        transform: scale(0, 0) rotate(0deg);
    }
}

.fx-holeIn {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-holeIn;
    animation-name: fx-holeIn;
    -webkit-transform-origin: center center;
    transform-origin: center center;
}

@-webkit-keyframes fx-holeIn {
    from {
        opacity: 0;
        -webkit-transform: scale(0, 0) rotateY(180deg);
        transform: scale(0, 0) rotateY(180deg);
    }
    to {
        opacity: 1;
        -webkit-transform: scale(1, 1) rotateY(0deg);
        transform: scale(1, 1) rotateY(0deg);
    }
}

@keyframes fx-holeIn {
    from {
        opacity: 0;
        -webkit-transform: scale(0, 0) rotateY(180deg);
        transform: scale(0, 0) rotateY(180deg);
    }
    to {
        opacity: 1;
        -webkit-transform: scale(1, 1) rotateY(0deg);
        transform: scale(1, 1) rotateY(0deg);
    }
}

.fx-holeOut {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-holeOut;
    animation-name: fx-holeOut;
    -webkit-transform-origin: center center;
    transform-origin: center center;
}

@-webkit-keyframes fx-holeOut {
    from {
        opacity: 1;
        -webkit-transform: scale(1, 1) rotateY(0deg);
        transform: scale(1, 1) rotateY(0deg);
    }
    to {
        opacity: 0;
        -webkit-transform: scale(0, 0) rotateY(180deg);
        transform: scale(0, 0) rotateY(180deg);
    }
}

@keyframes fx-holeOut {
    from {
        opacity: 1;
        -webkit-transform: scale(1, 1) rotateY(0deg);
        transform: scale(1, 1) rotateY(0deg);
    }
    to {
        opacity: 0;
        -webkit-transform: scale(0, 0) rotateY(180deg);
        transform: scale(0, 0) rotateY(180deg);
    }
}

.fx-bombOutLeft {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-bombOutLeft;
    animation-name: fx-bombOutLeft;
}

@-webkit-keyframes fx-bombOutLeft {
    0% {
        opacity: 1;
        -webkit-transform-origin: 50% 50%;
        transform-origin: 50% 50%;
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg);
        -webkit-filter: blur(0px);
    }
    50% {
        opacity: 1;
        -webkit-transform-origin: -30% 50%;
        transform-origin: -30% 50%;
        -webkit-transform: rotate(-160deg);
        transform: rotate(-160deg);
        -webkit-filter: blur(0px);
    }
    100% {
        opacity: 0;
        -webkit-transform-origin: -30% 50%;
        transform-origin: -30% 50%;
        -webkit-transform: rotate(-160deg);
        transform: rotate(-160deg);
        -webkit-filter: blur(20px);
    }
}

@keyframes fx-bombOutLeft {
    0% {
        opacity: 1;
        -webkit-transform-origin: 50% 50%;
        transform-origin: 50% 50%;
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg);
        -webkit-filter: blur(0px);
    }
    50% {
        opacity: 1;
        -webkit-transform-origin: -30% 50%;
        transform-origin: -30% 50%;
        -webkit-transform: rotate(-160deg);
        transform: rotate(-160deg);
        -webkit-filter: blur(0px);
    }
    100% {
        opacity: 0;
        -webkit-transform-origin: -30% 50%;
        transform-origin: -30% 50%;
        -webkit-transform: rotate(-160deg);
        transform: rotate(-160deg);
        -webkit-filter: blur(20px);
    }
}

.fx-bombOutRight {
    -webkit-animation-duration: .8s;
    animation-duration: .8s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-name: fx-bombOutRight;
    animation-name: fx-bombOutRight;
}

@-webkit-keyframes fx-bombOutRight {
    0% {
        opacity: 1;
        -webkit-transform-origin: 50% 50%;
        transform-origin: 50% 50%;
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg);
        -webkit-filter: blur(0px);
    }
    50% {
        opacity: 1;
        -webkit-transform-origin: 130% 50%;
        transform-origin: 130% 50%;
        -webkit-transform: rotate(160deg);
        transform: rotate(160deg);
        -webkit-filter: blur(0px);
    }
    100% {
        opacity: 0;
        -webkit-transform-origin: 130% 50%;
        transform-origin: 130% 50%;
        -webkit-transform: rotate(160deg);
        transform: rotate(160deg);
        -webkit-filter: blur(20px);
    }
}

@keyframes fx-bombOutRight {
    0% {
        opacity: 1;
        -webkit-transform-origin: 50% 50%;
        transform-origin: 50% 50%;
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg);
        -webkit-filter: blur(0px);
    }
    50% {
        opacity: 1;
        -webkit-transform-origin: 130% 50%;
        transform-origin: 130% 50%;
        -webkit-transform: rotate(160deg);
        transform: rotate(160deg);
        -webkit-filter: blur(0px);
    }
    100% {
        opacity: 0;
        -webkit-transform-origin: 130% 50%;
        transform-origin: 130% 50%;
        -webkit-transform: rotate(160deg);
        transform: rotate(160deg);
        -webkit-filter: blur(20px);
    }
}
