/*!
  Flashy - jQuery Lightbox & Popup Plugin
  @name flashy.css
  @description jQuery plugin for creating responsive lightboxes & popups with focus on performance and effects
  @author Max Lavretiev
  @site http://www.avirtum.com
  @copyright (c) Max Lavretiev
*/

.flashy-container .flashy-content-outer, .flashy-overlay {
    display: -webkit-box;
    display: -ms-flexbox;
    -webkit-box-direction: normal
}

.flashy-overlay, body.flashy-active {
    overflow: hidden
}

    body.flashy-active .flashy-overlay {
        opacity: 1;
        pointer-events: auto
    }

.flashy-overlay {
    -webkit-transition: all .3s;
    transition: all .3s;
    display: flex;
    -webkit-box-orient: vertical;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    position: fixed;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    -webkit-transform: translateZ(1000px);
    transform: translateZ(1000px);
    -webkit-transform-style: preserve-3d;
    transform-style: preserve-3d;
    background-color: #000;
    opacity: 0;
    pointer-events: none;
    z-index: 9999999
}

.flashy-container {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    outline: 0;
    overflow-x: hidden;
    overflow-y: scroll;
    overflow-scrolling: touch;
    z-index: 1002
}

    .flashy-container .flashy-content-outer {
        position: absolute;
        display: flex;
        -webkit-box-orient: horizontal;
        -ms-flex-direction: row;
        flex-direction: row
    }

    .flashy-container .flashy-content-inner {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        min-width: 100vw;
        min-height: 100vh;
        padding: 30px;
        -webkit-box-sizing: border-box;
        box-sizing: border-box
    }

    .flashy-container .flashy-content {
        display: inline-block;
        padding: 10px;
        background: #fff;
        opacity: 0;
        pointer-events: none
    }

        .flashy-container .flashy-content * {
            -webkit-backface-visibility: hidden;
            backface-visibility: hidden;
            -webkit-box-sizing: border-box;
            box-sizing: border-box
        }

        .flashy-container .flashy-content.flashy-show {
            opacity: 1;
            pointer-events: auto
        }

        .flashy-container .flashy-content.flashy-error {
            color: #a94442;
            background-color: #f2dede;
            border: 1px solid #a94442;
            -webkit-box-shadow: 0 0 40px rgba(169,68,66,.9);
            box-shadow: 0 0 40px rgba(169,68,66,.9);
            font-family: Arial,Helvetica,sans-serif;
            font-size: 14px;
            width: auto !important
        }

.flashy-overlay .flashy-numeration, .flashy-overlay .flashy-title {
    padding: 0 10px;
    line-height: 38px;
    color: #fff;
    font-family: Arial,Helvetica,sans-serif;
    font-size: 13px;
    letter-spacing: .6px;
    text-align: center;
    left: 0
}

.flashy-container .flashy-content.flashy-image img {
    max-width: 100%
}

.flashy-container .flashy-content.flashy-ajax, .flashy-container .flashy-content.flashy-inline {
    width: 100%
}

.flashy-container .flashy-content.flashy-iframe iframe {
    width: 100%;
    height: 70vh;
    border: none
}

.flashy-container .flashy-content.flashy-video {
    width: 100%;
    height: 260px
}

    .flashy-container .flashy-content.flashy-video iframe {
        width: 100%;
        height: 100%;
        border: none;
        background-color: #000
    }

@media (min-width:768px) {
    .flashy-container .flashy-content.flashy-iframe {
        width: 90%;
        height: 70vh
    }

    .flashy-container .flashy-content.flashy-video {
        width: 640px;
        height: 360px
    }
}

@media (min-width:992px) {
    .flashy-container .flashy-content.flashy-ajax, .flashy-container .flashy-content.flashy-inline {
        max-width: 1200px;
        width: 80%
    }

    .flashy-container .flashy-content.flashy-iframe {
        width: 90%;
        height: 70vh
    }

    .flashy-container .flashy-content.flashy-video {
        width: 960px;
        height: 540px
    }
}

.flashy-overlay.flashy-fullscreen .flashy-close, .flashy-overlay.flashy-fullscreen .flashy-next, .flashy-overlay.flashy-fullscreen .flashy-numeration, .flashy-overlay.flashy-fullscreen .flashy-prev, .flashy-overlay.flashy-fullscreen .flashy-title {
    opacity: 0 !important;
    pointer-events: none !important
}

.flashy-overlay .flashy-numeration {
    -webkit-transition: all .3s;
    transition: all .3s;
    position: absolute;
    top: 0;
    background-color: rgba(0,0,0,.8);
    opacity: 0;
    pointer-events: none;
    z-index: 1003
}

.flashy-overlay .flashy-close, .flashy-overlay .flashy-title {
    -webkit-transition: all .3s;
    position: absolute;
    background-color: rgba(0,0,0,.8);
    z-index: 1003;
    right: 0
}

.flashy-overlay .flashy-numeration.flashy-show {
    opacity: 1;
    pointer-events: auto
}

.flashy-overlay .flashy-title {
    transition: all .3s;
    bottom: 0;
    opacity: 0;
    pointer-events: none
}

    .flashy-overlay .flashy-title.flashy-show {
        pointer-events: auto;
        opacity: 1
    }

.flashy-overlay .flashy-close {
    transition: all .3s;
    top: 15px;
    right: 15px;
    width: 24px;
    height: 24px;
    padding: 7px;
    background-repeat: no-repeat;
    background-position: center center;
    background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSIyNHB4IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9Ii01IC01IDI0IDI0IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IC01IC01IDI0IDI0IiB4bWw6c3BhY2U9InByZXNlcnZlIj48cGF0aCBmaWxsPSIjZmZmZmZmIiBkPSJNMTMuNywwLjNjLTAuNC0wLjQtMS0wLjQtMS40LDBMNyw1LjZMMS43LDAuM2MtMC40LTAuNC0xLTAuNC0xLjQsMGMtMC40LDAuNC0wLjQsMSwwLDEuNEw1LjYsN2wtNS4zLDUuM2MtMC40LDAuNC0wLjQsMSwwLDEuNEMwLjUsMTMuOSwwLjcsMTQsMSwxNHMwLjUtMC4xLDAuNy0wLjNMNyw4LjRsNS4zLDUuM2MwLjIsMC4yLDAuNSwwLjMsMC43LDAuM3MwLjUtMC4xLDAuNy0wLjNjMC4zOTktMC40LDAuMzk5LTEsMC0xLjRMOC40LDdsNS4zLTUuM0MxNC4xLDEuMywxNC4xLDAuNywxMy43LDAuM3oiLz48L3N2Zz4=);
    cursor: pointer;
    opacity: 1
}

    .flashy-overlay .flashy-close:hover {
        opacity: 1
    }

.flashy-overlay .flashy-next, .flashy-overlay .flashy-prev {
    -webkit-transition: all .3s;
    transition: all .3s;
    position: absolute;
    top: 50vh;
    width: 28px;
    height: 28px;
    margin-top: -34px;
    padding: 20px 5px;
    background-color: rgba(0,0,0,.8);
    background-repeat: no-repeat;
    background-position: center center;
    cursor: pointer;
    opacity: 0;
    pointer-events: none;
    z-index: 1003
}

    .flashy-overlay .flashy-next.flashy-show, .flashy-overlay .flashy-prev.flashy-show {
        pointer-events: auto;
        opacity: .8
    }

        .flashy-overlay .flashy-next.flashy-show:hover, .flashy-overlay .flashy-prev.flashy-show:hover {
            opacity: 1
        }

.flashy-overlay .flashy-prev {
    left: 0;
    background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSIyOHB4IiBoZWlnaHQ9IjI4cHgiIHZpZXdCb3g9IjAgMCAyOCAyOCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjggMjgiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxwYXRoIGZpbGw9IiNmZmZmZmYiIGQ9Ik0zLjI5MywxNC43MDdMMTEsMjIuNDE0TDEyLjQxNCwyMWwtNi02SDI0YzAuNTUzLDAsMS0wLjQ0OCwxLTFzLTAuNDQ3LTEtMS0xSDYuNDE0bDYtNkwxMSw1LjU4NmwtNy43MDcsNy43MDdDMi45MDIsMTMuNjg0LDIuOTAyLDE0LjMxNiwzLjI5MywxNC43MDd6Ii8+PC9zdmc+)
}

.flashy-overlay .flashy-next {
    right: 0;
    background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSIyOHB4IiBoZWlnaHQ9IjI4cHgiIHZpZXdCb3g9IjAgMCAyOCAyOCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjggMjgiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxwYXRoIGZpbGw9IiNmZmZmZmYiIGQ9Ik0yNC43MDcsMTMuMjkzTDE3LDUuNTg2TDE1LjU4Niw3bDYsNkg0Yy0wLjU1MywwLTEsMC40NDgtMSwxczAuNDQ3LDEsMSwxaDE3LjU4NmwtNiw2TDE3LDIyLjQxNGw3LjcwNy03LjcwN0MyNS4wOTgsMTQuMzE2LDI1LjA5OCwxMy42ODQsMjQuNzA3LDEzLjI5M3oiLz48L3N2Zz4=)
}

.flashy-preloader {
    -webkit-transition: all .5s;
    transition: all .5s;
    -webkit-animation: flashy-spin 1.2s infinite linear;
    animation: flashy-spin 1.2s infinite linear;
    width: 80px;
    height: 80px;
    background-color: rgba(0,0,0,.25);
    background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB3aWR0aD0iMTM4cHgiIGhlaWdodD0iMTM4cHgiIHZpZXdCb3g9IjgxIDgxIDEzOCAxMzgiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgODEgODEgMTM4IDEzOCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTIxOSwxNTBjMC0zOC4xLTMwLjktNjktNjktNjljLTM4LjEwMSwwLTY5LDMwLjktNjksNjkgTTkyLjcsMTUwYzAtMzEuNSwyNS41LTU3LjMsNTcuMy01Ny4zczU3LjMsMjUuOCw1Ny4zLDU3LjMiLz48L3N2Zz4=);
    background-size: cover;
    border-radius: 100%;
    -webkit-box-shadow: 0 0 40px rgba(0,0,0,.5);
    box-shadow: 0 0 40px rgba(0,0,0,.5);
    opacity: 0;
    pointer-events: none;
    z-index: 2002
}

    .flashy-preloader.flashy-show {
        opacity: 1
    }

@-webkit-keyframes flashy-spin {
    from {
        -webkit-transform: rotate(0);
        transform: rotate(0)
    }

    to {
        -webkit-transform: rotate(360deg);
        transform: rotate(360deg)
    }
}

@keyframes flashy-spin {
    from {
        -webkit-transform: rotate(0);
        transform: rotate(0)
    }

    to {
        -webkit-transform: rotate(360deg);
        transform: rotate(360deg)
    }
}


/*!
  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);
    }
}
