@charset "UTF-8";

.animated {
    animation-duration: 1s;
    animation-fill-mode: both;
}

.animated.infinite {
    animation-iteration-count: infinite;
}

.animated.hinge {
    animation-duration: 2s;
}

.animated.bounceIn,
.animated.bounceOut,
.animated.flipOutHor,
.animated.flipOutVer {
    animation-duration: .75s;
}

@keyframes bounce {
    from, 20%, 53%, 80%, to {
        animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
        transform: translate3d(0, 0, 0);
    }

    40%, 43% {
        animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
        transform: translate3d(0, -30px, 0);
    }

    70% {
        animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
        transform: translate3d(0, -15px, 0);
    }

    90% {
        transform: translate3d(0, -4px, 0);
    }
}

.bounce {
    animation: bounce both;
    transform-origin: center bottom;
}

@keyframes flash {
    from, 50%, to {
        opacity: 1;
    }

    25%, 75% {
        opacity: 0;
    }
}

.flash {
    animation: flash both;
}

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */

@keyframes rubber-band {
    from, to {
        transform: scale3d(1, 1, 1);
    }

    30% {
        transform: scale3d(1.25, 0.75, 1);
    }

    40% {
        transform: scale3d(0.75, 1.25, 1);
    }

    50% {
        transform: scale3d(1.15, 0.85, 1);
    }

    65% {
        transform: scale3d(.95, 1.05, 1);
    }

    75% {
        transform: scale3d(1.05, .95, 1);
    }
}

.rubberBand {
    animation: rubber-band both;
}

@keyframes shake {
    from, to {
        transform: translate3d(0, 0, 0);
    }

    10%, 30%, 50%, 70%, 90% {
        transform: translate3d(-10px, 0, 0);
    }

    20%, 40%, 60%, 80% {
        transform: translate3d(10px, 0, 0);
    }
}

.shake {
    animation: shake both;
}

@keyframes swing {
    20% {
        transform: rotate3d(0, 0, 1, 15deg);
    }

    40% {
        transform: rotate3d(0, 0, 1, -10deg);
    }

    60% {
        transform: rotate3d(0, 0, 1, 5deg);
    }

    80% {
        transform: rotate3d(0, 0, 1, -5deg);
    }

    to {
        transform: rotate3d(0, 0, 1, 0deg);
    }
}

.swing {
    transform-origin: top center;
    animation: swing both;
}

.swingInDown {
    animation: swing-in-down both;
}

@keyframes swing-in-down {
    0% {
        transform: rotateX(-100deg);
        transform-origin: top;
        opacity: 0;
    }

    100% {
        transform: rotateX(0deg);
        transform-origin: top;
        opacity: 1;
    }
}

.swingInUp {
    animation: swing-in-up both;
}

@keyframes swing-in-up {
    0% {
        transform: rotateX(100deg);
        transform-origin: bottom;
        opacity: 0;
    }

    100% {
        transform: rotateX(0);
        transform-origin: bottom;
        opacity: 1;
    }
}

.swingIn {
    animation: swing-in both;
}

@keyframes swing-in {
    0% {
        transform: rotateY(100deg);
        transform-origin: left;
        opacity: 0;
    }

    100% {
        transform: rotateY(0);
        transform-origin: left;
        opacity: 1;
    }
}

.swingInLeft {
    animation: swing-in-left both;
}

@keyframes swing-in-left {
    0% {
        transform: rotateY(100deg);
        transform-origin: left;
        opacity: 0;
    }

    100% {
        transform: rotateY(0);
        transform-origin: left;
        opacity: 1;
    }
}

.swingInRight {
    animation: swing-in-right both;
}

@keyframes swing-in-right {
    0% {
        transform: rotateY(-100deg);
        transform-origin: right;
        opacity: 0;
    }

    100% {
        transform: rotateY(0);
        transform-origin: right;
        opacity: 1;
    }
}

@keyframes tada {
    from, to {
        transform: scale3d(1, 1, 1);
    }

    10%, 20% {
        transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
    }

    30%, 50%, 70%, 90% {
        transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
    }

    40%, 60%, 80% {
        transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
    }
}

.tada {
    animation: tada both;
}

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */

@keyframes wobble {
    from, to {
        transform: none;
    }

    15% {
        transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
    }

    30% {
        transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
    }

    45% {
        transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
    }

    60% {
        transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
    }

    75% {
        transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
    }
}

.wobble {
    animation: wobble both;
}

@keyframes jello {
    from, 11.1%, to {
        transform: none;
    }

    22.2% {
        transform: skewX(-12.5deg) skewY(-12.5deg);
    }

    33.3% {
        transform: skewX(6.25deg) skewY(6.25deg);
    }

    44.4% {
        transform: skewX(-3.125deg) skewY(-3.125deg);
    }

    55.5% {
        transform: skewX(1.5625deg) skewY(1.5625deg);
    }

    66.6% {
        transform: skewX(-0.78125deg) skewY(-0.78125deg);
    }

    77.7% {
        transform: skewX(0.390625deg) skewY(0.390625deg);
    }

    88.8% {
        transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
    }
}

.jello {
    animation: jello both;
    transform-origin: center;
}

@keyframes bounce-in {
    from, 20%, 40%, 60%, 80%, to {
        animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
    }

    0% {
        opacity: 0;
        transform: scale3d(.3, .3, .3);
    }

    20% {
        transform: scale3d(1.1, 1.1, 1.1);
    }

    40% {
        transform: scale3d(.9, .9, .9);
    }

    60% {
        opacity: 1;
        transform: scale3d(1.03, 1.03, 1.03);
    }

    80% {
        transform: scale3d(.97, .97, .97);
    }

    to {
        opacity: 1;
        transform: scale3d(1, 1, 1);
    }
}

.bounceIn {
    animation: bounce-in both;
}

@keyframes bounce-in-down {
    from, 60%, 75%, 90%, to {
        animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
    }

    0% {
        opacity: 0;
        transform: translate3d(0, -3000px, 0);
    }

    60% {
        opacity: 1;
        transform: translate3d(0, 25px, 0);
    }

    75% {
        transform: translate3d(0, -10px, 0);
    }

    90% {
        transform: translate3d(0, 5px, 0);
    }

    to {
        transform: none;
    }
}

.bounceInDown {
    animation: bounce-in-down both;
}

@keyframes bounce-in-left {
    from, 60%, 75%, 90%, to {
        animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
    }

    0% {
        opacity: 0;
        transform: translate3d(-3000px, 0, 0);
    }

    60% {
        opacity: 1;
        transform: translate3d(25px, 0, 0);
    }

    75% {
        transform: translate3d(-10px, 0, 0);
    }

    90% {
        transform: translate3d(5px, 0, 0);
    }

    to {
        transform: none;
    }
}

.bounceInLeft {
    animation: bounce-in-left both;
}

@keyframes bounce-in-right {
    from, 60%, 75%, 90%, to {
        animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
    }

    from {
        opacity: 0;
        transform: translate3d(3000px, 0, 0);
    }

    60% {
        opacity: 1;
        transform: translate3d(-25px, 0, 0);
    }

    75% {
        transform: translate3d(10px, 0, 0);
    }

    90% {
        transform: translate3d(-5px, 0, 0);
    }

    to {
        transform: none;
    }
}

.bounceInRight {
    animation: bounce-in-right both;
}

@keyframes bounce-in-up {
    from, 60%, 75%, 90%, to {
        animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
    }

    from {
        opacity: 0;
        transform: translate3d(0, 3000px, 0);
    }

    60% {
        opacity: 1;
        transform: translate3d(0, -20px, 0);
    }

    75% {
        transform: translate3d(0, 10px, 0);
    }

    90% {
        transform: translate3d(0, -5px, 0);
    }

    to {
        transform: translate3d(0, 0, 0);
    }
}

.bounceInUp {
    animation: bounce-in-up both;
}

@keyframes bounce-out {
    20% {
        transform: scale3d(.9, .9, .9);
    }

    50%, 55% {
        opacity: 1;
        transform: scale3d(1.1, 1.1, 1.1);
    }

    to {
        opacity: 0;
        transform: scale3d(.3, .3, .3);
    }
}

.bounceOut {
    animation: bounce-out both;
}

@keyframes bounce-out-down {
    20% {
        transform: translate3d(0, 10px, 0);
    }

    40%, 45% {
        opacity: 1;
        transform: translate3d(0, -20px, 0);
    }

    to {
        opacity: 0;
        transform: translate3d(0, 2000px, 0);
    }
}

.bounceOutDown {
    animation: bounce-out-down both;
}

@keyframes bounce-out-left {
    20% {
        opacity: 1;
        transform: translate3d(20px, 0, 0);
    }

    to {
        opacity: 0;
        transform: translate3d(-2000px, 0, 0);
    }
}

.bounceOutLeft {
    animation: bounce-out-left both;
}

@keyframes bounce-out-right {
    20% {
        opacity: 1;
        transform: translate3d(-20px, 0, 0);
    }

    to {
        opacity: 0;
        transform: translate3d(2000px, 0, 0);
    }
}

.bounceOutRight {
    animation: bounce-out-right both;
}

@keyframes bounce-out-up {
    20% {
        transform: translate3d(0, -10px, 0);
    }

    40%, 45% {
        opacity: 1;
        transform: translate3d(0, 20px, 0);
    }

    to {
        opacity: 0;
        transform: translate3d(0, -2000px, 0);
    }
}

.bounceOutUp {
    animation: bounce-out-up both;
}

@keyframes fade-in {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

.fadeIn {
    animation: fade-in both;
}

@keyframes fade-in-down {
    from {
        opacity: 0;
        transform: translate3d(0, -100%, 0);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

.fadeInDown {
    animation: fade-in-down both;
}

@keyframes fade-in-down-big {
    from {
        opacity: 0;
        transform: translate3d(0, -2000px, 0);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

.fadeInDownBig {
    animation: fade-in-down-big both;
}

@keyframes fade-in-left {
    from {
        opacity: 0;
        transform: translate3d(-100%, 0, 0);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

.fadeInLeft {
    animation: fade-in-left both;
}

@keyframes fade-in-left-big {
    from {
        opacity: 0;
        transform: translate3d(-2000px, 0, 0);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

.fadeInLeftBig {
    animation: fade-in-left-big both;
}

@keyframes fade-in-right {
    from {
        opacity: 0;
        transform: translate3d(100%, 0, 0);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

.fadeInRight {
    animation: fade-in-right both;
}

@keyframes fade-in-right-big {
    from {
        opacity: 0;
        transform: translate3d(2000px, 0, 0);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

.fadeInRightBig {
    animation: fade-in-right-big both;
}

@keyframes fade-in-up {
    from {
        opacity: 0;
        transform: translate3d(0, 100%, 0);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

.fadeInUp {
    animation: fade-in-up both;
}

@keyframes fade-in-up-big {
    from {
        opacity: 0;
        transform: translate3d(0, 2000px, 0);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

.fadeInUpBig {
    animation: fade-in-up-big both;
}

@keyframes fade-out {
    from {
        opacity: 1;
    }

    to {
        opacity: 0;
    }
}

.fadeOut {
    animation: fade-out both;
}

@keyframes fade-out-down {
    from {
        opacity: 1;
    }

    to {
        opacity: 0;
        transform: translate3d(0, 100%, 0);
    }
}

.fadeOutDown {
    animation: fade-out-down both;
}

@keyframes fade-out-down-big {
    from {
        opacity: 1;
    }

    to {
        opacity: 0;
        transform: translate3d(0, 2000px, 0);
    }
}

.fadeOutDownBig {
    animation: fade-out-down-big both;
}

@keyframes fade-out-left {
    from {
        opacity: 1;
    }

    to {
        opacity: 0;
        transform: translate3d(-100%, 0, 0);
    }
}

.fadeOutLeft {
    animation: fade-out-left both;
}

@keyframes fade-out-left-big {
    from {
        opacity: 1;
    }

    to {
        opacity: 0;
        transform: translate3d(-2000px, 0, 0);
    }
}

.fadeOutLeftBig {
    animation: fade-out-left-big both;
}

@keyframes fade-out-right {
    from {
        opacity: 1;
    }

    to {
        opacity: 0;
        transform: translate3d(100%, 0, 0);
    }
}

.fadeOutRight {
    animation: fade-out-right both;
}

@keyframes fade-out-right-big {
    from {
        opacity: 1;
    }

    to {
        opacity: 0;
        transform: translate3d(2000px, 0, 0);
    }
}

.fadeOutRightBig {
    animation: fade-out-right-big both;
}

@keyframes fade-out-up {
    from {
        opacity: 1;
    }

    to {
        opacity: 0;
        transform: translate3d(0, -100%, 0);
    }
}

.fadeOutUp {
    animation: fade-out-up both;
}

@keyframes fade-out-up-big {
    from {
        opacity: 1;
    }

    to {
        opacity: 0;
        transform: translate3d(0, -2000px, 0);
    }
}

.fadeOutUpBig {
    animation: fade-out-up-big both;
}

@keyframes flip {
    from {
        transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
        animation-timing-function: ease-out;
    }

    40% {
        transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
        animation-timing-function: ease-out;
    }

    50% {
        transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
        animation-timing-function: ease-in;
    }

    80% {
        transform: perspective(400px) scale3d(.95, .95, .95);
        animation-timing-function: ease-in;
    }

    to {
        transform: perspective(400px);
        animation-timing-function: ease-in;
    }
}

.animated.flip {
    backface-visibility: visible;
    animation: flip both;
}

@keyframes flip-in-hor {
    from {
        transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
        animation-timing-function: ease-in;
        opacity: 0;
    }

    40% {
        transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
        animation-timing-function: ease-in;
    }

    60% {
        transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
        opacity: 1;
    }

    80% {
        transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
    }

    to {
        transform: perspective(400px);
    }
}

@keyframes flip-in {
    from {
        transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
        animation-timing-function: ease-in;
        opacity: 0;
    }

    40% {
        transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
        animation-timing-function: ease-in;
    }

    60% {
        transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
        opacity: 1;
    }

    80% {
        transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
    }

    to {
        transform: perspective(400px);
    }
}

.flipIn,
.flipInHor {
    backface-visibility: visible !important;
    animation: flip-in-hor both;
}

@keyframes flip-in-ver {
    from {
        transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
        animation-timing-function: ease-in;
        opacity: 0;
    }

    40% {
        transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
        animation-timing-function: ease-in;
    }

    60% {
        transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
        opacity: 1;
    }

    80% {
        transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
    }

    to {
        transform: perspective(400px);
    }
}

.flipInVer {
    backface-visibility: visible !important;
    animation: flip-in-ver both;
}

@keyframes flip-out-hor {
    from {
        transform: perspective(400px);
    }

    30% {
        transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
        opacity: 1;
    }

    to {
        transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
        opacity: 0;
    }
}

.flipOutHor {
    animation: flip-out-hor both;
    backface-visibility: visible !important;
}

@keyframes flip-out-ver {
    from {
        transform: perspective(400px);
    }

    30% {
        transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
        opacity: 1;
    }

    to {
        transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
        opacity: 0;
    }
}

.flipOutVer {
    backface-visibility: visible !important;
    animation: flip-out-ver both;
}

@keyframes light-speed-in {
    from {
        transform: translate3d(100%, 0, 0) skewX(-30deg);
        opacity: 0;
    }

    60% {
        transform: skewX(20deg);
        opacity: 1;
    }

    80% {
        transform: skewX(-5deg);
        opacity: 1;
    }

    to {
        transform: none;
        opacity: 1;
    }
}

.lightSpeedIn {
    animation: light-speed-in both;
    animation-timing-function: ease-out;
}

@keyframes light-speed-out {
    from {
        opacity: 1;
    }

    to {
        transform: translate3d(100%, 0, 0) skewX(30deg);
        opacity: 0;
    }
}

.lightSpeedOut {
    animation: light-speed-out both;
    animation-timing-function: ease-in;
}

@keyframes rotate-in {
    from {
        transform-origin: center;
        transform: rotate3d(0, 0, 1, -200deg);
        opacity: 0;
    }

    to {
        transform-origin: center;
        transform: none;
        opacity: 1;
    }
}

@keyframes rotate-in-cw {
    from {
        transform-origin: center;
        transform: rotate3d(0, 0, 1, -200deg);
        opacity: 0;
    }

    to {
        transform-origin: center;
        transform: none;
        opacity: 1;
    }
}

.rotateIn {
    animation: rotate-in both;
}
.rotateInCw {
    animation: rotate-in-cw both;
}

@keyframes rotate-in-ccw {
    from {
        transform-origin: center;
        transform: rotate3d(0, 0, 1, 200deg);
        opacity: 0;
    }

    to {
        transform-origin: center;
        transform: none;
        opacity: 1;
    }
}

.rotateInCcw {
    animation: rotate-in-ccw both;
}

@keyframes rotate-corner-in {
    from {
        transform-origin: left bottom;
        transform: rotate3d(0, 0, 1, -45deg);
        opacity: 0;
    }

    to {
        transform-origin: left bottom;
        transform: none;
        opacity: 1;
    }
}

@keyframes rotate-corner-in-down-left {
    from {
        transform-origin: left bottom;
        transform: rotate3d(0, 0, 1, -45deg);
        opacity: 0;
    }

    to {
        transform-origin: left bottom;
        transform: none;
        opacity: 1;
    }
}

.rotateCornerIn,
.rotateCornerInDownLeft {
    animation: rotate-corner-in-down-left both;
}

@keyframes rotate-corner-in-down-right {
    from {
        transform-origin: right bottom;
        transform: rotate3d(0, 0, 1, 45deg);
        opacity: 0;
    }

    to {
        transform-origin: right bottom;
        transform: none;
        opacity: 1;
    }
}

.rotateCornerInDownRight {
    animation: rotate-corner-in-down-right both;
}

@keyframes rotate-corner-in-up-left {
    from {
        transform-origin: left bottom;
        transform: rotate3d(0, 0, 1, 45deg);
        opacity: 0;
    }

    to {
        transform-origin: left bottom;
        transform: none;
        opacity: 1;
    }
}

.rotateCornerInUpLeft {
    animation: rotate-corner-in-up-left both;
}

@keyframes rotate-corner-in-up-right {
    from {
        transform-origin: right bottom;
        transform: rotate3d(0, 0, 1, -90deg);
        opacity: 0;
    }

    to {
        transform-origin: right bottom;
        transform: none;
        opacity: 1;
    }
}

.rotateCornerInUpRight {
    animation: rotate-corner-in-up-right both;
}

@keyframes rotate-out {
    from {
        transform-origin: center;
        opacity: 1;
    }

    to {
        transform-origin: center;
        transform: rotate3d(0, 0, 1, 200deg);
        opacity: 0;
    }
}

.rotateOut {
    animation: rotate-out both;
}

@keyframes rotate-out-down-left {
    from {
        transform-origin: left bottom;
        opacity: 1;
    }

    to {
        transform-origin: left bottom;
        transform: rotate3d(0, 0, 1, 45deg);
        opacity: 0;
    }
}

.rotateOutDownLeft {
    animation: rotate-out-down-left both;
}

@keyframes rotate-out-down-right {
    from {
        transform-origin: right bottom;
        opacity: 1;
    }

    to {
        transform-origin: right bottom;
        transform: rotate3d(0, 0, 1, -45deg);
        opacity: 0;
    }
}

.rotateOutDownRight {
    animation: rotate-out-down-right both;
}

@keyframes rotate-out-up-left {
    from {
        transform-origin: left bottom;
        opacity: 1;
    }

    to {
        transform-origin: left bottom;
        transform: rotate3d(0, 0, 1, -45deg);
        opacity: 0;
    }
}

.rotateOutUpLeft {
    animation: rotate-out-up-left both;
}

@keyframes rotate-out-up-right {
    from {
        transform-origin: right bottom;
        opacity: 1;
    }

    to {
        transform-origin: right bottom;
        transform: rotate3d(0, 0, 1, 90deg);
        opacity: 0;
    }
}

.rotateOutUpRight {
    animation: rotate-out-up-right both;
}

@keyframes hinge {
    0% {
        transform-origin: top left;
        animation-timing-function: ease-in-out;
    }

    20%, 60% {
        transform: rotate3d(0, 0, 1, 80deg);
        transform-origin: top left;
        animation-timing-function: ease-in-out;
    }

    40%, 80% {
        transform: rotate3d(0, 0, 1, 60deg);
        transform-origin: top left;
        animation-timing-function: ease-in-out;
        opacity: 1;
    }

    to {
        transform: translate3d(0, 700px, 0);
        opacity: 0;
    }
}

.hinge {
    animation: hinge both;
}

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */

@keyframes roll-in {
    from {
        opacity: 0;
        transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

.rollIn {
    animation: roll-in both;
}

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */

@keyframes roll-out {
    from {
        opacity: 1;
    }

    to {
        opacity: 0;
        transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
    }
}

.rollOut {
    animation: roll-out both;
}

@keyframes zoom-in {
    from {
        opacity: 0;
        transform: scale3d(.3, .3, .3);
    }

    50% {
        opacity: 1;
    }
}

.rollInBlurredDown {
    animation: roll-in-blurred-down both;
}

@keyframes roll-in-blurred-down {
    0% {
        transform: translateY(-800px) rotate(-720deg);
        filter: blur(50px);
        opacity: 0;
    }

    100% {
        transform: translateY(0) rotate(0deg);
        filter: blur(0);
        opacity: 1;
    }
}

.rollInBlurredUp {
    animation: roll-in-blurred-up both;
}

@keyframes roll-in-blurred-up {
    0% {
        transform: translateY(800px) rotate(720deg);
        filter: blur(50px);
        opacity: 0;
    }

    100% {
        transform: translateY(0) rotate(0deg);
        opacity: 1;
    }
}

.rollInBlurred {
    animation: roll-in-blurred both;
}

@keyframes roll-in-blurred {
    0% {
        transform: translateX(-1000px) rotate(-720deg);
        filter: blur(50px);
        opacity: 0;
    }

    100% {
        transform: translateX(0) rotate(0deg);
        filter: blur(0);
        opacity: 1;
    }
}

.rollInBlurredLeft {
    animation: roll-in-blurred-left both;
}

@keyframes roll-in-blurred-left {
    0% {
        transform: translateX(-1000px) rotate(-720deg);
        filter: blur(50px);
        opacity: 0;
    }

    100% {
        transform: translateX(0) rotate(0deg);
        filter: blur(0);
        opacity: 1;
    }
}

.rollInBlurredRight {
    animation: roll-in-blurred-right both;
}

@keyframes roll-in-blurred-right {
    0% {
        transform: translateX(1000px) rotate(720deg);
        filter: blur(50px);
        opacity: 0;
    }

    100% {
        transform: translateX(0) rotate(0deg);
        filter: blur(0);
        opacity: 1;
    }
}

.zoomIn {
    animation: zoom-in both;
}

@keyframes zoom-in-down {
    from {
        opacity: 0;
        transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
        animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
    }

    60% {
        opacity: 1;
        transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
    }
}

.zoomInDown {
    animation: zoom-in-down both;
}

@keyframes zoom-in-left {
    from {
        opacity: 0;
        transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
        animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
    }

    60% {
        opacity: 1;
        transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
    }
}

.zoomInLeft {
    animation: zoom-in-left both;
}

@keyframes zoom-in-right {
    from {
        opacity: 0;
        transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
        animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
    }

    60% {
        opacity: 1;
        transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
    }
}

.zoomInRight {
    animation: zoom-in-right both;
}

@keyframes zoom-in-up {
    from {
        opacity: 0;
        transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
        animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
    }

    60% {
        opacity: 1;
        transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
    }
}

.zoomInUp {
    animation: zoom-in-up both;
}

@keyframes zoom-out {
    from {
        opacity: 1;
    }

    50% {
        opacity: 0;
        transform: scale3d(.3, .3, .3);
    }

    to {
        opacity: 0;
    }
}

.zoomOut {
    animation: zoom-out both;
}

@keyframes zoom-out-down {
    40% {
        opacity: 1;
        transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
        animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
    }

    to {
        opacity: 0;
        transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
        transform-origin: center bottom;
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
    }
}

.zoomOutDown {
    animation: zoom-out-down both;
}

@keyframes zoom-out-left {
    40% {
        opacity: 1;
        transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
    }

    to {
        opacity: 0;
        transform: scale(.1) translate3d(-2000px, 0, 0);
        transform-origin: left center;
    }
}

.zoomOutLeft {
    animation: zoom-out-left both;
}

@keyframes zoom-out-right {
    40% {
        opacity: 1;
        transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
    }

    to {
        opacity: 0;
        transform: scale(.1) translate3d(2000px, 0, 0);
        transform-origin: right center;
    }
}

.zoomOutRight {
    animation: zoom-out-right both;
}

@keyframes zoom-out-up {
    40% {
        opacity: 1;
        transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
        animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
    }

    to {
        opacity: 0;
        transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
        transform-origin: center bottom;
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
    }
}

.zoomOutUp {
    animation: zoom-out-up both;
}

@keyframes slide-in-down {
    from {
        transform: translate3d(0, -100%, 0);
        visibility: hidden;
    }

    to {
        transform: translate3d(0, 0, 0);
        visibility: visible;
    }
}

.slideInDown {
    animation: slide-in-down both;
}

@keyframes slide-in-left {
    from {
        transform: translate3d(-100%, 0, 0);
        visibility: hidden;
    }

    to {
        transform: translate3d(0, 0, 0);
        visibility: visible;
    }
}

@keyframes slide-in {
    from {
        transform: translate3d(-100%, 0, 0);
        visibility: hidden;
    }

    to {
        transform: translate3d(0, 0, 0);
        visibility: visible;
    }
}

.slideIn,
.slideInLeft {
    animation: slide-in-left both;
}

@keyframes slide-in-right {
    from {
        transform: translate3d(100%, 0, 0);
        visibility: hidden;
    }

    to {
        transform: translate3d(0, 0, 0);
        visibility: visible;
    }
}

.slideInRight {
    animation: slide-in-right both;
}

@keyframes slide-in-up {
    from {
        transform: translate3d(0, 100%, 0);
        visibility: hidden;
    }

    to {
        transform: translate3d(0, 0, 0);
        visibility: visible;
    }
}

.slideInUp {
    animation: slide-in-up both;
}

@keyframes slide-out-down {
    from {
        transform: translate3d(0, 0, 0);
    }

    to {
        visibility: hidden;
        transform: translate3d(0, 100%, 0);
    }
}

.slideOutDown {
    animation: slide-out-down both;
}

@keyframes slide-out-left {
    from {
        transform: translate3d(0, 0, 0);
    }

    to {
        visibility: hidden;
        transform: translate3d(-100%, 0, 0);
    }
}

.slideOutLeft {
    animation: slide-out-left both;
}

@keyframes slide-out-right {
    from {
        transform: translate3d(0, 0, 0);
    }

    to {
        visibility: hidden;
        transform: translate3d(100%, 0, 0);
    }
}

.slideOutRight {
    animation: slide-out-right both;
}

@keyframes slide-out-up {
    from {
        transform: translate3d(0, 0, 0);
    }

    to {
        visibility: hidden;
        transform: translate3d(0, -100%, 0);
    }
}

.slideOutUp {
    animation: slide-out-up both;
}

.slideInEllipticDown {
    animation: slide-in-elliptic-down both;
}

@keyframes slide-in-elliptic-down {
    0% {
        transform: translateY(-600px) rotateX(-30deg) scale(0);
        transform-origin: 50% 100%;
        opacity: 0;
    }

    100% {
        transform: translateY(0) rotateX(0) scale(1);
        transform-origin: 50% 1400px;
        opacity: 1;
    }
}

.slideInEllipticUp {
    animation: slide-in-elliptic-up both;
}

@keyframes slide-in-elliptic-up {
    0% {
        transform: translateY(600px) rotateX(30deg) scale(0);
        transform-origin: 50% 100%;
        opacity: 0;
    }

    100% {
        transform: translateY(0) rotateX(0) scale(1);
        transform-origin: 50% -1400px;
        opacity: 1;
    }
}

.slideInElliptic {
    animation: slide-in-elliptic both;
}

@keyframes slide-in-elliptic {
    0% {
        transform: translateX(-800px) rotateY(30deg) scale(0);
        transform-origin: -100% 50%;
        opacity: 0;
    }

    100% {
        transform: translateX(0) rotateY(0) scale(1);
        transform-origin: 1800px 50%;
        opacity: 1;
    }
}

.slideInEllipticLeft {
    animation: slide-in-elliptic-left both;
}

@keyframes slide-in-elliptic-left {
    0% {
        transform: translateX(-800px) rotateY(30deg) scale(0);
        transform-origin: -100% 50%;
        opacity: 0;
    }

    100% {
        transform: translateX(0) rotateY(0) scale(1);
        transform-origin: 1800px 50%;
        opacity: 1;
    }
}

.slideInEllipticRight {
    animation: slide-in-elliptic-right both;
}

@keyframes slide-in-elliptic-right {
    0% {
        transform: translateX(800px) rotateY(-30deg) scale(0);
        transform-origin: -100% 50%;
        opacity: 0;
    }

    100% {
        transform: translateX(0) rotateY(0) scale(1);
        transform-origin: -1800px 50%;
        opacity: 1;
    }
}

.tiltInDown {
    animation: tilt-in-down both;
}

@keyframes tilt-in-down {
    0% {
        transform: rotateY(30deg) translateY(-300px) skewY(-30deg);
        opacity: 0;
    }

    100% {
        transform: rotateY(0deg) translateY(0) skewY(0deg);
        opacity: 1;
    }
}

.tiltInUp {
    animation: tilt-in-up both;
}

@keyframes tilt-in-up {
    0% {
        transform: rotateY(30deg) translateY(300px) skewY(-30deg);
        opacity: 0;
    }

    100% {
        transform: rotateY(0deg) translateY(0) skewY(0deg);
        opacity: 1;
    }
}

.tiltIn,
.tiltInLeft {
    animation: tilt-in-left both;
}

@keyframes tilt-in-left {
    0% {
        transform: rotateX(-30deg) translateX(-300px) skewX(-30deg);
        opacity: 0;
    }

    100% {
        transform: rotateX(0deg) translateX(0) skewX(0deg);
        opacity: 1;
    }
}

@keyframes tilt-in {
    0% {
        transform: rotateX(-30deg) translateX(-300px) skewX(-30deg);
        opacity: 0;
    }

    100% {
        transform: rotateX(0deg) translateX(0) skewX(0deg);
        opacity: 1;
    }
}

.tiltInRight {
    animation: tilt-in-right both;
}

@keyframes tilt-in-right {
    0% {
        transform: rotateX(-30deg) translateX(300px) skewX(30deg);
        opacity: 0;
    }

    100% {
        transform: rotateX(0deg) translateX(0) skewX(0deg);
        opacity: 1;
    }
}

.puffIn {
    animation: puff-in both;
}

@keyframes puff-in {
    0% {
        transform: scale(2);
        filter: blur(4px);
        opacity: 0;
    }

    100% {
        transform: scale(1);
        filter: blur(0px);
        opacity: 1;
    }
}

.puffInHor {
    animation: puff-in-hor both;
}

@keyframes puff-in-hor {
    0% {
        transform: scaleX(2);
        filter: blur(4px);
        opacity: 0;
    }

    100% {
        transform: scaleX(1);
        filter: blur(0px);
        opacity: 1;
    }
}

.puffInVer {
    animation: puff-in-ver both;
}

@keyframes puff-in-ver {
    0% {
        transform: scaleY(2);
        filter: blur(4px);
        opacity: 0;
    }

    100% {
        transform: scaleY(1);
        filter: blur(0px);
        opacity: 1;
    }
}

.shine-me {
    width: 100%; /*Make sure the animation is over the whole element*/
    animation-name: shine-animation;
    animation-duration: 5s;
    animation-iteration-count: infinite;
    animation-timing-function: cubic-bezier(.12, .89, .98, .47);
}

@keyframes shine-animation {
    from {
        background-repeat: no-repeat;
        background-image: linear-gradient(
            to top left,
            rgba(255, 255, 255, 0.0) 0%,
            rgba(255, 255, 255, 0.0) 45%,
            rgba(255, 255, 255, 0.5) 48%,
            rgba(255, 255, 255, 0.8) 50%,
            rgba(255, 255, 255, 0.5) 52%,
            rgba(255, 255, 255, 0.0) 57%,
            rgba(255, 255, 255, 0.0) 100%
        );
        background-position: -250px -250px;
        background-size: 600px 600px
    }
    to {
        background-repeat: no-repeat;
        background-position: 250px 250px;
    }
}
