@charset "utf-8";
/*!
 * animate.css -http://daneden.me/animate
 * version - 3.5.2
 * licensed under the mit license - http://opensource.org/licenses/mit
 *
 * copyright (c) 2017 daniel eden
 */

/*这是关于position absolute或者fixed改版的animate */ 
/*是由于水平居中translate无法使用*/

.animated { animation-duration: 0.5s; animation-fill-mode: both; }
.animated.infinite { animation-iteration-count: infinite; }
.animated.hinge-hastrans { animation-duration: 2s; }
.animated.flipoutx-hastrans, .animated.flipouty-hastrans, .animated.bouncein-hastrans, .animated.bounceout-hastrans { animation-duration: .75s; }
 @keyframes bounce-hastrans {
 from, 20%, 53%, 80%, to {
 animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
 transform: translate(-50%, 0);
 transform: translate3d(-50%, 0, 0);
}
 40%, 43% {
 animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
 transform: translate(-50%, -67%);
 transform: translate3d(-50%, -67%, 0);
}
 70% {
 animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
 transform: translate(-50%, -58%);
 transform: translate3d(-50%, -58%, 0);
}
 90% {
 transform: translate(-50%, -52%);
 transform: translate3d(-50%, -52%, 0);
}
 100% {
 transform: translate(-50%, -50%);
 transform: translate3d(-50%, -50%, 0);
}
}
.bounce-hastrans { animation-name: bounce-hastrans; transform-origin: center bottom; }
 @keyframes flash-hastrans {
 from, 50%, to {
 opacity: 1;
}
 25%, 75% {
 opacity: 0;
}
}
.flash-hastrans { animation-name: flash-hastrans; }

/* originally authored by nick pettit - https://github.com/nickpettit/glide */

@keyframes pulse-hastrans {
 from {
 transform: scale3d(1, 1, 1) translate(-50%, -50%) translate3d(-50%, -50%, 0);
}
 50% {
 transform: scale3d(1.05, 1.05, 1.05) translate(-50%, -50%) translate3d(-50%, -50%, 0);
}
 to {
 transform: scale3d(1, 1, 1) translate(-50%, -50%) translate3d(-50%, -50%, 0);
}
}
.pulse-hastrans { animation-name: pulse-hastrans; transform-origin: 0 0; }
 @keyframes rubberband-hastrans {
 from {
 transform: scale3d(1, 1, 1) translate(-50%, -50%) translate3d(-50%, -50%, 0);
}
 30% {
 transform: scale3d(1.25, 0.75, 1) translate(-50%, -50%) translate3d(-50%, -50%, 0);
}
 40% {
 transform: scale3d(0.75, 1.25, 1) translate(-50%, -50%) translate3d(-50%, -50%, 0);
}
 50% {
 transform: scale3d(1.15, 0.85, 1) translate(-50%, -50%) translate3d(-50%, -50%, 0);
}
 65% {
 transform: scale3d(.95, 1.05, 1) translate(-50%, -50%) translate3d(-50%, -50%, 0);
}
 75% {
 transform: scale3d(1.05, .95, 1) translate(-50%, -50%) translate3d(-50%, -50%, 0);
}
 to {
 transform: scale3d(1, 1, 1 ) translate(-50%, -50%) translate3d(-50%, -50%, 0);
}
}
.rubberband-hastrans { animation-name: rubberband-hastrans; transform-origin: 0 0; }
 @keyframes shake-hastrans {
 from, to {
 transform: translate3d(-50%, -50%, 0);
}
 10%, 30%, 50%, 70%, 90% {
 transform: translate3d(-54px, -50%, 0);
}
 20%, 40%, 60%, 80% {
 transform: translate3d(-46%, -50%, 0);
}
 100% {
 transform: translate3d(-50%, -50%, 0);
}
}
.shake-hastrans { animation-name: shake-hastrans; }
 @keyframes headshake-hastrans {
 0% {
 transform: translate3d(-50%, -50%, 0);
}
 6.5% {
 transform: rotatey(-9deg) translate3d(-53%, -50%, 0);
}
 18.5% {
 transform: rotatey(7deg) translate3d(-47.5%, -50%, 0);
}
 31.5% {
 transform: rotatey(-5deg) translate3d(-51.5%, -50%, 0);
}
 43.5% {
 transform: rotatey(3deg) translate3d(-49%, -50%, 0);
}
 50% {
 transform: translate3d(-50%, -50%, 0);
}
}
.headshake-hastrans { animation-timing-function: ease-in-out; animation-name: headshake-hastrans; }
 @keyframes swing-hastrans {
 20% {
 transform: rotate3d(0, 0, 1, 15deg) translate3d(-50%, -50%, 0);
}
 40% {
 transform: rotate3d(0, 0, 1, -10deg) translate3d(-50%, -50%, 0);
}
 60% {
 transform: rotate3d(0, 0, 1, 5deg) translate3d(-50%, -50%, 0);
}
 80% {
 transform: rotate3d(0, 0, 1, -5deg) translate3d(-50%, -50%, 0);
}
 to {
 transform: rotate3d(0, 0, 1, 0deg) translate3d(-50%, -50%, 0);
}
}
.swing-hastrans { transform-origin: top center; animation-name: swing-hastrans; transform-origin: 0 0; }
 @keyframes tada-hastrans {
 from {
 transform: scale3d(1, 1, 1) translate3d(-50%, -50%, 0);
}
 10%, 20% {
 transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg) translate3d(-50%, -50%, 0);
}
 30%, 50%, 70%, 90% {
 transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg) translate3d(-50%, -50%, 0);
}
 40%, 60%, 80% {
 transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg) translate3d(-50%, -50%, 0);
}
 to {
 transform: scale3d(1, 1, 1) translate3d(-50%, -50%, 0);
}
}
.tada-hastrans { animation-name: tada-hastrans; transform-origin: 0 0; }

/* originally authored by nick pettit - https://github.com/nickpettit/glide */

@keyframes wobble-hastrans {
 from {
 transform: none;
}
 15% {
 transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg) translate3d(-50%, -50%, 0);
}
 30% {
 transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg) translate3d(-50%, -50%, 0);
}
 45% {
 transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg) translate3d(-50%, -50%, 0);
}
 60% {
 transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg) translate3d(-50%, -50%, 0);
}
 75% {
 transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg) translate3d(-50%, -50%, 0);
}
 to {
 transform: none;
 transform:translate3d(-50%, -50%, 0);
}
}
.wobble-hastrans { animation-name: wobble-hastrans; }
 @keyframes jello-hastrans {
 from, 11.1%, to {
 transform: none;
 transform:translate3d(-50%, -50%, 0);
}
 22.2% {
 transform: skewx(-12.5deg) skewy(-12.5deg) translate3d(-50%, -50%, 0);
}
 33.3% {
 transform: skewx(6.25deg) skewy(6.25deg) translate3d(-50%, -50%, 0);
}
 44.4% {
 transform: skewx(-3.125deg) skewy(-3.125deg) translate3d(-50%, -50%, 0);
}
 55.5% {
 transform: skewx(1.5625deg) skewy(1.5625deg) translate3d(-50%, -50%, 0);
}
 66.6% {
 transform: skewx(-0.78125deg) skewy(-0.78125deg) translate3d(-50%, -50%, 0);
}
 77.7% {
 transform: skewx(0.390625deg) skewy(0.390625deg) translate3d(-50%, -50%, 0);
}
 88.8% {
 transform: skewx(-0.1953125deg) skewy(-0.1953125deg) translate3d(-50%, -50%, 0);
}
}
.jello-hastrans { animation-name: jello-hastrans; transform-origin: center; }
 @keyframes bouncein-hastrans {
 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) translate3d(-50%, -50%, 0);
}
 20% {
 transform: scale3d(1.1, 1.1, 1.1) translate3d(-50%, -50%, 0);
}
 40% {
 transform: scale3d(.9, .9, .9) translate3d(-50%, -50%, 0);
}
 60% {
 opacity: 1;
 transform: scale3d(1.03, 1.03, 1.03) translate3d(-50%, -50%, 0);
}
 80% {
 transform: scale3d(.97, .97, .97) translate3d(-50%, -50%, 0);
}
 to {
 opacity: 1;
 transform: scale3d(1, 1, 1) translate3d(-50%, -50%, 0);
}
}
.bouncein-hastrans { animation-name: bouncein-hastrans; transform-origin: 0 0; }
 @keyframes bounceindown-hastrans {
 from, 60%, 75%, 90%, to {
 animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
}
 0% {
 opacity: 0;
 transform: translate3d(-50%, -3000px, 0);
}
 60% {
 opacity: 1;
 transform: translate3d(-50%, -30%, 0);
}
 75% {
 transform: translate3d(-50%, -70%, 0);
}
 90% {
 transform: translate3d(-50%, -54%, 0);
}
 to {
 transform: none;
 transform: translate3d(-50%, -50%, 0);
}
}
.bounceindown-hastrans { animation-name: bounceindown-hastrans; }
 @keyframes bounceinleft-hastrans {
 from, 60%, 75%, 90%, to {
 animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
}
 0% {
 opacity: 0;
 transform: translate3d(-3000px, -50%, 0);
}
 60% {
 opacity: 1;
 transform: translate3d(-30%, -50%, 0);
}
 75% {
 transform: translate3d(-70%, -50%, 0);
}
 90% {
 transform: translate3d(-54%, -50%, 0);
}
 to {
 transform: none;
 transform: translate3d(-50%, -50%, 0);
}
}
.bounceinleft-hastrans { animation-name: bounceinleft-hastrans; }
 @keyframes bounceinright-hastrans {
 from, 60%, 75%, 90%, to {
 animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
}
 from {
 opacity: 0;
 transform: translate3d(3000px, -50%, 0);
}
 60% {
 opacity: 1;
 transform: translate3d(-70%, -50%, 0);
}
 75% {
 transform: translate3d(-30%, -50%, 0);
}
 90% {
 transform: translate3d(-46%, -50%, 0);
}
 to {
 transform: none;
 transform: translate3d(-50%, -50%, 0);
}
}
.bounceinright-hastrans { animation-name: bounceinright-hastrans; }
 @keyframes bounceinup-hastrans {
 from, 60%, 75%, 90%, to {
 animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
}
 from {
 opacity: 0;
 transform: translate3d(-50%, 3000px, 0);
}
 60% {
 opacity: 1;
 transform: translate3d(-50%, -70px, 0);
}
 75% {
 transform: translate3d(-50%, -30px, 0);
}
 90% {
 transform: translate3d(-50%, -46px, 0);
}
 to {
 transform: translate3d(-50%, -50%, 0);
}
}
.bounceinup-hastrans { animation-name: bounceinup-hastrans; }
 @keyframes bounceout-hastrans {
 20% {
 transform: scale3d(.9, .9, .9) translate3d(-50%, -50%, 0);
}
 50%, 55% {
 opacity: 1;
 transform: scale3d(1.1, 1.1, 1.1) translate3d(-50%, -50%, 0);
}
 to {
 opacity: 0;
 transform: scale3d(.3, .3, .3) translate3d(-50%, -50%, 0);
}
}
.bounceout-hastrans { animation-name: bounceout-hastrans; transform-origin: 0 0; }
 @keyframes bounceoutdown-hastrans {
 20% {
 transform: translate3d(-50%, -40%, 0);
}
 40%, 45% {
 opacity: 1;
 transform: translate3d(-50%, -60%, 0);
}
 to {
 opacity: 0;
 transform: translate3d(-50%, 3000px, 0);
}
}
.bounceoutdown-hastrans { animation-name: bounceoutdown-hastrans; }
 @keyframes bounceoutleft-hastrans {
 20% {
 opacity: 1;
 transform: translate3d(-40%, -50%, 0);
}
 to {
 opacity: 0;
 transform: translate3d(-2000px, -50%, 0);
}
}
.bounceoutleft-hastrans { animation-name: bounceoutleft-hastrans; }
 @keyframes bounceoutright-hastrans {
 20% {
 opacity: 1;
 transform: translate3d(-60%, -50%, 0);
}
 to {
 opacity: 0;
 transform: translate3d(2000px, -50%, 0);
}
}
.bounceoutright-hastrans { animation-name: bounceoutright-hastrans; }
 @keyframes bounceoutup-hastrans {
 20% {
 transform: translate3d(-50%, -60%, 0);
}
 40%, 45% {
 opacity: 1;
 transform: translate3d(-50%, -40%, 0);
}
 to {
 opacity: 0;
 transform: translate3d(-50%, -2000px, 0);
}
}
.bounceoutup-hastrans { animation-name: bounceoutup-hastrans; }
 @keyframes fadein-hastrans {
 from {
 opacity: 0;
 transform: translate(-50%, -50%);
 transform: translate3d(-50%, -50%, 0);
}
 to {
 opacity: 1;
 transform: translate(-50%, -50%);
 transform: translate3d(-50%, -50%, 0);
}
}
.fadein-hastrans { animation-name: fadein-hastrans; }
 @keyframes fadeindown-hastrans {
 from {
 opacity: 0;
 transform: translate3d(-50%, 100%, 0);
}
 to {
 opacity: 1;
 transform: none;
 transform: translate3d(-50%, -50%, 0);
}
}
.fadeindown-hastrans { animation-name: fadeindown-hastrans; }
 @keyframes fadeindownbig-hastrans {
 from {
 opacity: 0;
 transform: translate3d(-50%, -2000px, 0);
}
 to {
 opacity: 1;
 transform: none;
 transform: translate3d(-50%, -50%, 0);
}
}
.fadeindownbig-hastrans { animation-name: fadeindownbig-hastrans; }
 @keyframes fadeinleft-hastrans {
 from {
 opacity: 0;
 transform: translate3d(-100%, -50%, 0);
}
 to {
 opacity: 1;
 transform: none;
 transform: translate3d(-50%, -50%, 0);
}
}
.fadeinleft-hastrans { animation-name: fadeinleft-hastrans; }
 @keyframes fadeinleftbig-hastrans {
 from {
 opacity: 0;
 transform: translate3d(-2000px, -50%, 0);
}
 to {
 opacity: 1;
 transform: none;
 transform: translate3d(-50%, -50%, 0);
}
}
.fadeinleftbig-hastrans { animation-name: fadeinleftbig-hastrans; }
 @keyframes fadeinright-hastrans {
 from {
 opacity: 0;
 transform: translate3d(100%, -50%, 0);
}
 to {
 opacity: 1;
 transform: none;
 transform: translate3d(-50%, -50%, 0);
}
}
.fadeinright-hastrans { animation-name: fadeinright-hastrans; }
 @keyframes fadeinrightbig-hastrans {
 from {
 opacity: 0;
 transform: translate3d(2000px, -50%, 0);
}
 to {
 opacity: 1;
 transform: none;
 transform: translate3d(-50%, -50%, 0);
}
}
.fadeinrightbig-hastrans { animation-name: fadeinrightbig-hastrans; }
 @keyframes fadeinup-hastrans {
 from {
 opacity: 0;
 transform: translate3d(-50%, 100%, 0);
}
 to {
 opacity: 1;
 transform: none;
 transform: translate3d(-50%, -50%, 0);
}
}
.fadeinup-hastrans { animation-name: fadeinup-hastrans; }
 @keyframes fadeinupbig-hastrans {
 from {
 opacity: 0;
 transform: translate3d(-50%, 2000px, 0);
}
 to {
 opacity: 1;
 transform: none;
 transform: translate3d(-50%, -50%, 0);
}
}
.fadeinupbig-hastrans { animation-name: fadeinupbig-hastrans; }
 @keyframes fadeout-hastrans {
 from {
 opacity: 1;
 transform: translate(-50%, -50%);
 transform: translate3d(-50%, -50%, 0);
}
 to {
 opacity: 0;
 transform: translate(-50%, -50%);
 transform: translate3d(-50%, -50%, 0);
}
}
.fadeout-hastrans { animation-name: fadeout-hastrans; }
 @keyframes fadeoutdown-hastrans {
 from {
 opacity: 1;
 transform: translate3d(-50%, -50%, 0);
}
 to {
 opacity: 0;
 transform: translate3d(-50%, 100%, 0);
}
}
.fadeoutdown-hastrans { animation-name: fadeoutdown-hastrans; }
 @keyframes fadeoutdownbig-hastrans {
 from {
 opacity: 1;
 transform: translate3d(-50%, -50%, 0);
}
 to {
 opacity: 0;
 transform: translate3d(-50%, 2000px, 0);
}
}
.fadeoutdownbig-hastrans { animation-name: fadeoutdownbig-hastrans; }
 @keyframes fadeoutleft-hastrans {
 from {
 opacity: 1;
}
 to {
 opacity: 0;
 transform: translate3d(-100%, -50%, 0);
}
}
.fadeoutleft-hastrans { animation-name: fadeoutleft-hastrans; }
 @keyframes fadeoutleftbig-hastrans {
 from {
 opacity: 1;
}
 to {
 opacity: 0;
 transform: translate3d(-2000px, -50%, 0);
}
}
.fadeoutleftbig-hastrans { animation-name: fadeoutleftbig-hastrans; }
 @keyframes fadeoutright-hastrans {
 from {
 opacity: 1;
}
 to {
 opacity: 0;
 transform: translate3d(100%, -50%, 0);
}
}
.fadeoutright-hastrans { animation-name: fadeoutright-hastrans; }
 @keyframes fadeoutrightbig-hastrans {
 from {
 opacity: 1;
}
 to {
 opacity: 0;
 transform: translate3d(2000px, -50%, 0);
}
}
.fadeoutrightbig-hastrans { animation-name: fadeoutrightbig-hastrans; }
 @keyframes fadeoutup-hastrans {
 from {
 opacity: 1;
}
 to {
 opacity: 0;
 transform: translate3d(-50%, -100%, 0);
}
}
.fadeoutup-hastrans { animation-name: fadeoutup-hastrans; }
 @keyframes fadeoutupbig-hastrans {
 from {
 opacity: 1;
}
 to {
 opacity: 0;
 transform: translate3d(-50%, -2000px, 0);
}
}
.fadeoutupbig-hastrans { animation-name: fadeoutupbig-hastrans; }
 @keyframes flip-hastrans {
 from {
 transform: perspective(400px) rotate3d(0, 1, 0, -360deg) translate3d(-50%, -50%, 0);
 animation-timing-function: ease-out;
}
 40% {
 transform: perspective(400px) translate3d(-50%, -50%, 150px) rotate3d(0, 1, 0, -190deg);
 animation-timing-function: ease-out;
}
 50% {
 transform: perspective(400px) translate3d(-50%, -50%, 150px) rotate3d(0, 1, 0, -170deg);
 animation-timing-function: ease-in;
}
 80% {
 transform: perspective(400px) scale3d(.95, .95, .95) translate3d(-50%, -50%, 0);
 animation-timing-function: ease-in;
}
 to {
 transform: perspective(400px) translate3d(-50%, -50%, 0);
 animation-timing-function: ease-in;
}
}
.animated.flip-hastrans { -webkit-backface-visibility: visible; backface-visibility: visible; animation-name: flip-hastrans; }
 @keyframes flipinx-hastrans {
 from {
 transform: perspective(400px) rotate3d(1, 0, 0, 90deg) translate(-50%, -50%) translate3d(-50%, -50%, 0);
 animation-timing-function: ease-in;
 opacity: 0;
}
 40% {
 transform: perspective(400px) rotate3d(1, 0, 0, -20deg) translate(-50%, -50%) translate3d(-50%, -50%, 0);
 animation-timing-function: ease-in;
}
 60% {
 transform: perspective(400px) rotate3d(1, 0, 0, 10deg) translate(-50%, -50%) translate3d(-50%, -50%, 0);
 opacity: 1;
}
 80% {
 transform: perspective(400px) rotate3d(1, 0, 0, -5deg) translate(-50%, -50%) translate3d(-50%, -50%, 0);
}
 to {
 transform: perspective(400px) translate(-50%, -50%) translate3d(-50%, -50%, 0);
}
}
.flipinx-hastrans { -webkit-backface-visibility: visible !important; backface-visibility: visible !important; animation-name: flipinx-hastrans; }
 @keyframes flipiny-hastrans {
 from {
 transform: perspective(400px) rotate3d(0, 1, 0, 90deg) translate3d(-50%, -50%, 0);
 animation-timing-function: ease-in;
 opacity: 0;
}
 40% {
 transform: perspective(400px) rotate3d(0, 1, 0, -20deg) translate3d(-50%, -50%, 0);
 animation-timing-function: ease-in;
}
 60% {
 transform: perspective(400px) rotate3d(0, 1, 0, 10deg) translate3d(-50%, -50%, 0);
 opacity: 1;
}
 80% {
 transform: perspective(400px) rotate3d(0, 1, 0, -5deg) translate3d(-50%, -50%, 0);
}
 to {
 transform: perspective(400px) translate3d(-50%, -50%, 0);
}
}
.flipiny-hastrans { -webkit-backface-visibility: visible !important; backface-visibility: visible !important; animation-name: flipiny-hastrans; }
 @keyframes flipoutx-hastrans {
 from {
 transform: perspective(400px) translate3d(-50%, -50%, 0);
}
 30% {
 transform: perspective(400px) rotate3d(1, 0, 0, -20deg) translate3d(-50%, -50%, 0);
 opacity: 1;
}
 to {
 transform: perspective(400px) rotate3d(1, 0, 0, 90deg) translate3d(-50%, -50%, 0);
 opacity: 0;
}
}
.flipoutx-hastrans { animation-name: flipoutx-hastrans; -webkit-backface-visibility: visible !important; backface-visibility: visible !important; }
 @keyframes flipouty-hastrans {
 from {
 transform: perspective(400px) translate3d(-50%, -50%, 0);
}
 30% {
 transform: perspective(400px) rotate3d(0, 1, 0, -15deg) translate3d(-50%, -50%, 0);
 opacity: 1;
}
 to {
 transform: perspective(400px) rotate3d(0, 1, 0, 90deg) translate3d(-50%, -50%, 0);
 opacity: 0;
}
}
.flipouty-hastrans { -webkit-backface-visibility: visible !important; backface-visibility: visible !important; animation-name: flipouty-hastrans; }
 @keyframes lightspeedin-hastrans {
 from {
 transform: translate3d(100%, -50%, 0) skewx(-30deg);
 opacity: 0;
}
 60% {
 transform: skewx(20deg) translate3d(10%, -50%, 0);
 opacity: 1;
}
 80% {
 transform: skewx(-5deg) translate3d(-30%, -50%, 0);
 opacity: 1;
}
 to {
 transform: none;
 transform:translate3d(-50%, -50%, 0);
 opacity: 1;
}
}
.lightspeedin-hastrans { animation-name: lightspeedin-hastrans; animation-timing-function: ease-out; }
 @keyframes lightspeedout-hastrans {
 from {
 transform:translate3d(-50%, -50%, 0);
 opacity: 1;
}
 to {
 transform: translate3d(100%, -50%, 0) skewx(30deg);
 opacity: 0;
}
}
.lightspeedout-hastrans { animation-name: lightspeedout-hastrans; animation-timing-function: ease-in; }
 @keyframes rotatein-hastrans {
 from {
 transform-origin: 50% 0;
 transform: rotate3d(0, 0, 1, -200deg) translate3d(-50%, -50%, 0);
 opacity: 0;
}
 to {
 transform-origin: 50% 0;
 transform: none;
 transform:translate3d(-50%, -50%, 0);
 opacity: 1;
}
}
.rotatein-hastrans { animation-name: rotatein-hastrans; }
 @keyframes rotateindownleft-hastrans {
 from {
 transform-origin: left bottom;
 transform: rotate3d(0, 0, 1, -45deg) translate3d(-50%, -50%, 0);
 opacity: 0;
}
 to {
 transform-origin: left bottom;
 transform: none;
 transform:translate3d(-50%, -50%, 0);
 opacity: 1;
}
}
.rotateindownleft-hastrans { animation-name: rotateindownleft-hastrans; }
 @keyframes rotateindownright-hastrans {
 from {
 transform-origin: right bottom;
 transform: rotate3d(0, 0, 1, 45deg) translate3d(-50%, -50%, 0);
 opacity: 0;
}
 to {
 transform-origin: right bottom;
 transform: none;
 transform:translate3d(-50%, -50%, 0);
 opacity: 1;
}
}
.rotateindownright-hastrans { animation-name: rotateindownright-hastrans; }
 @keyframes rotateinupleft-hastrans {
 from {
 transform-origin: left bottom;
 transform: rotate3d(0, 0, 1, 45deg) translate3d(-50%, -50%, 0);
 opacity: 0;
}
 to {
 transform-origin: left bottom;
 transform: none;
 transform:translate3d(-50%, -50%, 0);
 opacity: 1;
}
}
.rotateinupleft-hastrans { animation-name: rotateinupleft-hastrans; }
 @keyframes rotateinupright-hastrans {
 from {
 transform-origin: right bottom;
 transform: rotate3d(0, 0, 1, -90deg) translate3d(-50%, -50%, 0);
 opacity: 0;
}
 to {
 transform-origin: right bottom;
 transform: none;
 transform:translate3d(-50%, -50%, 0);
 opacity: 1;
}
}
.rotateinupright-hastrans { animation-name: rotateinupright-hastrans; }
 @keyframes rotateout-hastrans {
 from {
 transform-origin: center;
 opacity: 1;
}
 to {
 transform-origin: center;
 transform: rotate3d(0, 0, 1, 200deg);
 opacity: 0;
}
}
.rotateout-hastrans { animation-name: rotateout-hastrans; }
 @keyframes rotateoutdownleft-hastrans {
 from {
 transform-origin: left bottom;
 opacity: 1;
}
 to {
 transform-origin: left bottom;
 transform: rotate3d(0, 0, 1, 45deg);
 opacity: 0;
}
}
.rotateoutdownleft-hastrans { animation-name: rotateoutdownleft-hastrans; }
 @keyframes rotateoutdownright-hastrans {
 from {
 transform-origin: right bottom;
 opacity: 1;
}
 to {
 transform-origin: right bottom;
 transform: rotate3d(0, 0, 1, -45deg);
 opacity: 0;
}
}
.rotateoutdownright-hastrans { animation-name: rotateoutdownright-hastrans; }
 @keyframes rotateoutupleft-hastrans {
 from {
 transform-origin: left bottom;
 opacity: 1;
}
 to {
 transform-origin: left bottom;
 transform: rotate3d(0, 0, 1, -45deg);
 opacity: 0;
}
}
.rotateoutupleft-hastrans { animation-name: rotateoutupleft-hastrans; }
 @keyframes rotateoutupright-hastrans {
 from {
 transform-origin: right bottom;
 opacity: 1;
}
 to {
 transform-origin: right bottom;
 transform: rotate3d(0, 0, 1, 90deg);
 opacity: 0;
}
}
.rotateoutupright-hastrans { animation-name: rotateoutupright-hastrans; }
 @keyframes hinge-hastrans {
 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-hastrans { animation-name: hinge-hastrans; }
 @keyframes jackinthebox-hastrans {
 from {
 opacity: 0;
 transform: scale(0.1) rotate(30deg) translate3d(-50%, -50%, 0);
 transform-origin: center bottom;
}
 50% {
 transform: rotate(-10deg) translate3d(-50%, -50%, 0);
}
 70% {
 transform: rotate(3deg) translate3d(-50%, -50%, 0);
}
 to {
 opacity: 1;
 transform: scale(1) translate3d(-50%, -50%, 0);
}
}
.jackinthebox-hastrans { animation-name: jackinthebox-hastrans; transform-origin: 0 0; }

/* originally authored by nick pettit - https://github.com/nickpettit/glide */

@keyframes rollin-hastrans {
 from {
 opacity: 0;
 transform: translate3d(-150%, -50%, 0) rotate3d(0, 0, 1, -120deg);
}
 to {
 opacity: 1;
 transform: none translate3d(-50%, -50%, 0);
}
}
.rollin-hastrans { animation-name: rollin-hastrans; }

/* originally authored by nick pettit - https://github.com/nickpettit/glide */

@keyframes rollout-hastrans {
 from {
 opacity: 1;
}
 to {
 opacity: 0;
 transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
}
}
.rollout-hastrans { animation-name: rollout-hastrans; }
 @keyframes zoomin-hastrans {
 from {
 opacity: 0;
/*transform: translate(-50%, -50%);*/
}
 50% {
 opacity: 1;
 transform: scale3d(.3, .3, .3);
}
 to {
 opacity: 1;
/*transform: translate(-50%, -50%);*/
}
}
.zoomin-hastrans { animation-name: zoomin-hastrans; transform-origin: -25% -25%; }
 @keyframes zoomindown-hastrans {
 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-hastrans { animation-name: zoomindown-hastrans; transform: translate3d(-50%, -50%, 0); }
 @keyframes zoominleft-hastrans {
 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-hastrans { animation-name: zoominleft-hastrans; }
 @keyframes zoominright-hastrans {
 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-hastrans { animation-name: zoominright-hastrans; }
 @keyframes zoominup-hastrans {
 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-hastrans { animation-name: zoominup-hastrans; }
 @keyframes zoomout-hastrans {
 from {
 opacity: 1;
 transform:translate3d(-50%, -50%, 0);
}
 50% {
 opacity: 0;
 transform: scale3d(.3, .3, .3) translate3d(-50%, -50%, 0);
}
 to {
 opacity: 0;
 transform: translate3d(-50%, -50%, 0);
}
}
.zoomout-hastrans { animation-name: zoomout-hastrans; transform-origin: 0 0; }
 @keyframes zoomoutdown-hastrans {
 40% {
 opacity: 1;
 transform: scale3d(.475, .475, .475) translate3d(-50%, -60px, 0);
 animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
}
 to {
 opacity: 0;
 transform: scale3d(.1, .1, .1) translate3d(-50%, 2000px, 0);
 transform-origin: center bottom;
 animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
}
}
.zoomoutdown-hastrans { animation-name: zoomoutdown-hastrans; transform-origin: 0 0; }
 @keyframes zoomoutleft-hastrans {
 40% {
 opacity: 1;
 transform: scale3d(.475, .475, .475) translate3d(-50%, -50%, 0);
}
 to {
 opacity: 0;
 transform: scale(.1) translate3d(-2000px, -50%, 0);
 transform-origin: left center;
}
}
.zoomoutleft-hastrans { animation-name: zoomoutleft-hastrans; }
 @keyframes zoomoutright-hastrans {
 40% {
 opacity: 1;
 transform: scale3d(.475, .475, .475) translate3d(-50%, -50%, 0);
}
 to {
 opacity: 0;
 transform: scale(.1) translate3d(2000px, -50%, 0);
 transform-origin: right center;
}
}
.zoomoutright-hastrans { animation-name: zoomoutright-hastrans; }
 @keyframes zoomoutup-hastrans {
 40% {
 opacity: 1;
 transform: scale3d(.475, .475, .475) translate3d(-50%, -50%, 0);
 animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
}
 to {
 opacity: 0;
 transform: scale3d(.1, .1, .1) translate3d(-50%, -2000px, 0);
 transform-origin: center bottom;
 animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
}
}
.zoomoutup-hastrans { animation-name: zoomoutup-hastrans; }
 @keyframes slideindown-hastrans {
 from {
 transform: translate3d(-50%, -100%, 0);
 visibility: visible;
}
 to {
 transform: translate3d(-50%, -50%, 0);
}
}
.slideindown-hastrans { animation-name: slideindown-hastrans; }
 @keyframes slideinleft-hastrans {
 from {
 transform: translate3d(-100%, -50%, 0);
 visibility: visible;
}
 to {
 transform: translate3d(-50%, -50%, 0);
}
}
.slideinleft-hastrans { animation-name: slideinleft-hastrans; }
 @keyframes slideinright-hastrans {
 from {
 transform: translate3d(100%, -50%, 0);
 visibility: visible;
}
 to {
 transform: translate3d(-50%, -50%, 0);
}
}
.slideinright-hastrans { animation-name: slideinright-hastrans; }
 @keyframes slideinup-hastrans {
 from {
 transform: translate3d(-50%, 100%, 0);
 visibility: visible;
}
 to {
 transform: translate3d(-50%, -50%, 0);
}
}
.slideinup-hastrans { animation-name: slideinup-hastrans; }
 @keyframes slideoutdown-hastrans {
 from {
 transform: translate3d(-50%, -50%, 0);
}
 to {
 visibility: hidden;
 transform: translate3d(-50%, 100%, 0);
}
}
.slideoutdown-hastrans { animation-name: slideoutdown-hastrans; }
 @keyframes slideoutleft-hastrans {
 from {
 transform: translate3d(-50%, -50%, 0);
}
 to {
 visibility: hidden;
 transform: translate3d(-100%, -50%, 0);
}
}
.slideoutleft-hastrans { animation-name: slideoutleft-hastrans; }
 @keyframes slideoutright-hastrans {
 from {
 transform: translate3d(-50%, -50%, 0);
}
 to {
 visibility: hidden;
 transform: translate3d(100%, -50%, 0);
}
}
.slideoutright-hastrans { animation-name: slideoutright-hastrans; }
 @keyframes slideoutup-hastrans {
 from {
 transform: translate3d(-50%, -50%, 0);
}
 to {
 visibility: hidden;
 transform: translate3d(-50%, -100%, 0);
}
}
.slideoutup-hastrans { animation-name: slideoutup-hastrans; }

/***************************这是原版本***************************/
@charset "utf-8";
/*!
 * animate.css -http://daneden.me/animate
 * version - 3.5.2
 * licensed under the mit license - http://opensource.org/licenses/mit
 *
 * copyright (c) 2017 daniel eden
 */

.animated { animation-duration: 1s; animation-fill-mode: both; }
.animated.infinite { animation-iteration-count: infinite; }
.animated.hinge { animation-duration: 2s; }
.animated.flipoutx, .animated.flipouty, .animated.bouncein, .animated.bounceout { 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-name: bounce; transform-origin: center bottom; }
 @keyframes flash {
 from, 50%, to {
 opacity: 1;
}
 25%, 75% {
 opacity: 0;
}
}
.flash { animation-name: flash; }

/* originally authored by nick pettit - https://github.com/nickpettit/glide */

@keyframes pulse {
 from {
 transform: scale3d(1, 1, 1);
}
 50% {
 transform: scale3d(1.05, 1.05, 1.05);
}
 to {
 transform: scale3d(1, 1, 1);
}
}
.pulse { animation-name: pulse; }
 @keyframes rubberband {
 from {
 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);
}
 to {
 transform: scale3d(1, 1, 1);
}
}
.rubberband { animation-name: rubberband; }
 @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-name: shake; }
 @keyframes headshake {
 0% {
 transform: translatex(0);
}
 6.5% {
 transform: translatex(-6px) rotatey(-9deg);
}
 18.5% {
 transform: translatex(5px) rotatey(7deg);
}
 31.5% {
 transform: translatex(-3px) rotatey(-5deg);
}
 43.5% {
 transform: translatex(2px) rotatey(3deg);
}
 50% {
 transform: translatex(0);
}
}
.headshake { animation-timing-function: ease-in-out; animation-name: headshake; }
 @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-name: swing; }
 @keyframes tada {
 from {
 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);
}
 to {
 transform: scale3d(1, 1, 1);
}
}
.tada { animation-name: tada; }

/* originally authored by nick pettit - https://github.com/nickpettit/glide */

@keyframes wobble {
 from {
 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);
}
 to {
 transform: none;
}
}
.wobble { animation-name: wobble; }
 @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-name: jello; transform-origin: center; }
 @keyframes bouncein {
 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-name: bouncein; }
 @keyframes bounceindown {
 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-name: bounceindown; }
 @keyframes bounceinleft {
 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-name: bounceinleft; }
 @keyframes bounceinright {
 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-name: bounceinright; }
 @keyframes bounceinup {
 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-name: bounceinup; }
 @keyframes bounceout {
 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-name: bounceout; }
 @keyframes bounceoutdown {
 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-name: bounceoutdown; }
 @keyframes bounceoutleft {
 20% {
 opacity: 1;
 transform: translate3d(20px, 0, 0);
}
 to {
 opacity: 0;
 transform: translate3d(-2000px, 0, 0);
}
}
.bounceoutleft { animation-name: bounceoutleft; }
 @keyframes bounceoutright {
 20% {
 opacity: 1;
 transform: translate3d(-20px, 0, 0);
}
 to {
 opacity: 0;
 transform: translate3d(2000px, 0, 0);
}
}
.bounceoutright { animation-name: bounceoutright; }
 @keyframes bounceoutup {
 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-name: bounceoutup; }
 @keyframes fadein {
 from {
 opacity: 0;
}
 to {
 opacity: 1;
}
}
.fadein { animation-name: fadein; }
 @keyframes fadeindown {
 from {
 opacity: 0;
 transform: translate3d(0, -100%, 0);
}
 to {
 opacity: 1;
 transform: none;
}
}
.fadeindown { animation-name: fadeindown; }
 @keyframes fadeindownbig {
 from {
 opacity: 0;
 transform: translate3d(0, -2000px, 0);
}
 to {
 opacity: 1;
 transform: none;
}
}
.fadeindownbig { animation-name: fadeindownbig; }
 @keyframes fadeinleft {
 from {
 opacity: 0;
 transform: translate3d(-100%, 0, 0);
}
 to {
 opacity: 1;
 transform: none;
}
}
.fadeinleft { animation-name: fadeinleft; }
 @keyframes fadeinleftbig {
 from {
 opacity: 0;
 transform: translate3d(-2000px, 0, 0);
}
 to {
 opacity: 1;
 transform: none;
}
}
.fadeinleftbig { animation-name: fadeinleftbig; }
 @keyframes fadeinright {
 from {
 opacity: 0;
 transform: translate3d(100%, 0, 0);
}
 to {
 opacity: 1;
 transform: none;
}
}
.fadeinright { animation-name: fadeinright; }
 @keyframes fadeinrightbig {
 from {
 opacity: 0;
 transform: translate3d(2000px, 0, 0);
}
 to {
 opacity: 1;
 transform: none;
}
}
.fadeinrightbig { animation-name: fadeinrightbig; }
 @keyframes fadeinup {
 from {
 opacity: 0;
 transform: translate3d(0, 100%, 0);
}
 to {
 opacity: 1;
 transform: none;
}
}
.fadeinup { animation-name: fadeinup; }
 @keyframes fadeinupbig {
 from {
 opacity: 0;
 transform: translate3d(0, 2000px, 0);
}
 to {
 opacity: 1;
 transform: none;
}
}
.fadeinupbig { animation-name: fadeinupbig; }
 @keyframes fadeout {
 from {
 opacity: 1;
}
 to {
 opacity: 0;
}
}
.fadeout { animation-name: fadeout; }
 @keyframes fadeoutdown {
 from {
 opacity: 1;
}
 to {
 opacity: 0;
 transform: translate3d(0, 100%, 0);
}
}
.fadeoutdown { animation-name: fadeoutdown; }
 @keyframes fadeoutdownbig {
 from {
 opacity: 1;
}
 to {
 opacity: 0;
 transform: translate3d(0, 2000px, 0);
}
}
.fadeoutdownbig { animation-name: fadeoutdownbig; }
 @keyframes fadeoutleft {
 from {
 opacity: 1;
}
 to {
 opacity: 0;
 transform: translate3d(-100%, 0, 0);
}
}
.fadeoutleft { animation-name: fadeoutleft; }
 @keyframes fadeoutleftbig {
 from {
 opacity: 1;
}
 to {
 opacity: 0;
 transform: translate3d(-2000px, 0, 0);
}
}
.fadeoutleftbig { animation-name: fadeoutleftbig; }
 @keyframes fadeoutright {
 from {
 opacity: 1;
}
 to {
 opacity: 0;
 transform: translate3d(100%, 0, 0);
}
}
.fadeoutright { animation-name: fadeoutright; }
 @keyframes fadeoutrightbig {
 from {
 opacity: 1;
}
 to {
 opacity: 0;
 transform: translate3d(2000px, 0, 0);
}
}
.fadeoutrightbig { animation-name: fadeoutrightbig; }
 @keyframes fadeoutup {
 from {
 opacity: 1;
}
 to {
 opacity: 0;
 transform: translate3d(0, -100%, 0);
}
}
.fadeoutup { animation-name: fadeoutup; }
 @keyframes fadeoutupbig {
 from {
 opacity: 1;
}
 to {
 opacity: 0;
 transform: translate3d(0, -2000px, 0);
}
}
.fadeoutupbig { animation-name: fadeoutupbig; }
 @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 { -webkit-backface-visibility: visible; backface-visibility: visible; animation-name: flip; }
 @keyframes flipinx {
 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);
}
}
.flipinx { -webkit-backface-visibility: visible !important; backface-visibility: visible !important; animation-name: flipinx; }
 @keyframes flipiny {
 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);
}
}
.flipiny { -webkit-backface-visibility: visible !important; backface-visibility: visible !important; animation-name: flipiny; }
 @keyframes flipoutx {
 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;
}
}
.flipoutx { animation-name: flipoutx; -webkit-backface-visibility: visible !important; backface-visibility: visible !important; }
 @keyframes flipouty {
 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;
}
}
.flipouty { -webkit-backface-visibility: visible !important; backface-visibility: visible !important; animation-name: flipouty; }
 @keyframes lightspeedin {
 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-name: lightspeedin; animation-timing-function: ease-out; }
 @keyframes lightspeedout {
 from {
 opacity: 1;
}
 to {
 transform: translate3d(100%, 0, 0) skewx(30deg);
 opacity: 0;
}
}
.lightspeedout { animation-name: lightspeedout; animation-timing-function: ease-in; }
 @keyframes rotatein {
 from {
 transform-origin: center;
 transform: rotate3d(0, 0, 1, -200deg);
 opacity: 0;
}
 to {
 transform-origin: center;
 transform: none;
 opacity: 1;
}
}
.rotatein { animation-name: rotatein; }
 @keyframes rotateindownleft {
 from {
 transform-origin: left bottom;
 transform: rotate3d(0, 0, 1, -45deg);
 opacity: 0;
}
 to {
 transform-origin: left bottom;
 transform: none;
 opacity: 1;
}
}
.rotateindownleft { animation-name: rotateindownleft; }
 @keyframes rotateindownright {
 from {
 transform-origin: right bottom;
 transform: rotate3d(0, 0, 1, 45deg);
 opacity: 0;
}
 to {
 transform-origin: right bottom;
 transform: none;
 opacity: 1;
}
}
.rotateindownright { animation-name: rotateindownright; }
 @keyframes rotateinupleft {
 from {
 transform-origin: left bottom;
 transform: rotate3d(0, 0, 1, 45deg);
 opacity: 0;
}
 to {
 transform-origin: left bottom;
 transform: none;
 opacity: 1;
}
}
.rotateinupleft { animation-name: rotateinupleft; }
 @keyframes rotateinupright {
 from {
 transform-origin: right bottom;
 transform: rotate3d(0, 0, 1, -90deg);
 opacity: 0;
}
 to {
 transform-origin: right bottom;
 transform: none;
 opacity: 1;
}
}
.rotateinupright { animation-name: rotateinupright; }
 @keyframes rotateout {
 from {
 transform-origin: center;
 opacity: 1;
}
 to {
 transform-origin: center;
 transform: rotate3d(0, 0, 1, 200deg);
 opacity: 0;
}
}
.rotateout { animation-name: rotateout; }
 @keyframes rotateoutdownleft {
 from {
 transform-origin: left bottom;
 opacity: 1;
}
 to {
 transform-origin: left bottom;
 transform: rotate3d(0, 0, 1, 45deg);
 opacity: 0;
}
}
.rotateoutdownleft { animation-name: rotateoutdownleft; }
 @keyframes rotateoutdownright {
 from {
 transform-origin: right bottom;
 opacity: 1;
}
 to {
 transform-origin: right bottom;
 transform: rotate3d(0, 0, 1, -45deg);
 opacity: 0;
}
}
.rotateoutdownright { animation-name: rotateoutdownright; }
 @keyframes rotateoutupleft {
 from {
 transform-origin: left bottom;
 opacity: 1;
}
 to {
 transform-origin: left bottom;
 transform: rotate3d(0, 0, 1, -45deg);
 opacity: 0;
}
}
.rotateoutupleft { animation-name: rotateoutupleft; }
 @keyframes rotateoutupright {
 from {
 transform-origin: right bottom;
 opacity: 1;
}
 to {
 transform-origin: right bottom;
 transform: rotate3d(0, 0, 1, 90deg);
 opacity: 0;
}
}
.rotateoutupright { animation-name: rotateoutupright; }
 @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-name: hinge; }
 @keyframes jackinthebox {
 from {
 opacity: 0;
 transform: scale(0.1) rotate(30deg);
 transform-origin: center bottom;
}
 50% {
 transform: rotate(-10deg);
}
 70% {
 transform: rotate(3deg);
}
 to {
 opacity: 1;
 transform: scale(1);
}
}
.jackinthebox { animation-name: jackinthebox; }

/* originally authored by nick pettit - https://github.com/nickpettit/glide */

@keyframes rollin {
 from {
 opacity: 0;
 transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
}
 to {
 opacity: 1;
 transform: none;
}
}
.rollin { animation-name: rollin; }

/* originally authored by nick pettit - https://github.com/nickpettit/glide */

@keyframes rollout {
 from {
 opacity: 1;
}
 to {
 opacity: 0;
 transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
}
}
.rollout { animation-name: rollout; }
 @keyframes zoomin {
 from {
 opacity: 0;
 transform: scale3d(.3, .3, .3);
}
 50% {
 opacity: 1;
}
}
.zoomin { animation-name: zoomin; }
 @keyframes zoomindown {
 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-name: zoomindown; }
 @keyframes zoominleft {
 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-name: zoominleft; }
 @keyframes zoominright {
 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-name: zoominright; }
 @keyframes zoominup {
 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-name: zoominup; }
 @keyframes zoomout {
 from {
 opacity: 1;
}
 50% {
 opacity: 0;
 transform: scale3d(.3, .3, .3);
}
 to {
 opacity: 0;
}
}
.zoomout { animation-name: zoomout; }
 @keyframes zoomoutdown {
 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-name: zoomoutdown; }
 @keyframes zoomoutleft {
 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-name: zoomoutleft; }
 @keyframes zoomoutright {
 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-name: zoomoutright; }
 @keyframes zoomoutup {
 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-name: zoomoutup; }
 @keyframes slideindown {
 from {
 transform: translate3d(0, -100%, 0);
 visibility: visible;
}
 to {
 transform: translate3d(0, 0, 0);
}
}
.slideindown { animation-name: slideindown; }
 @keyframes slideinleft {
 from {
 transform: translate3d(-100%, 0, 0);
 visibility: visible;
}
 to {
 transform: translate3d(0, 0, 0);
}
}
.slideinleft { animation-name: slideinleft; }
 @keyframes slideinright {
 from {
 transform: translate3d(100%, 0, 0);
 visibility: visible;
}
 to {
 transform: translate3d(0, 0, 0);
}
}
.slideinright { animation-name: slideinright; }
 @keyframes slideinup {
 from {
 transform: translate3d(0, 100%, 0);
 visibility: visible;
}
 to {
 transform: translate3d(0, 0, 0);
}
}
.slideinup { animation-name: slideinup; }
 @keyframes slideoutdown {
 from {
 transform: translate3d(0, 0, 0);
}
 to {
 visibility: hidden;
 transform: translate3d(0, 100%, 0);
}
}
.slideoutdown { animation-name: slideoutdown; }
 @keyframes slideoutleft {
 from {
 transform: translate3d(0, 0, 0);
}
 to {
 visibility: hidden;
 transform: translate3d(-100%, 0, 0);
}
}
.slideoutleft { animation-name: slideoutleft; }
 @keyframes slideoutright {
 from {
 transform: translate3d(0, 0, 0);
}
 to {
 visibility: hidden;
 transform: translate3d(100%, 0, 0);
}
}
.slideoutright { animation-name: slideoutright; }
 @keyframes slideoutup {
 from {
 transform: translate3d(0, 0, 0);
}
 to {
 visibility: hidden;
 transform: translate3d(0, -100%, 0);
}
}
.slideoutup { animation-name: slideoutup; }
