/*************
* Animations *
**************

Supported animation classes

.bounceInRight 
.bounceInLeft 
.bounceInUp 
.bounceInDown

.fadeInRight 
.fadeInLeft 
.fadeInUp 
.fadeInDown

.flipInX
.flipInY 
.rotateIn 
.rotateInUpLeft
.rotateInUpRight
.rotateInDownLeft
.rotateDownUpRight
.rollIn

.lightSpeedInRight 
.lightSpeedInLeft

*/

.sAnimFast { 
    -webkit-animation-duration: 0.5s; 
    animation-duration: 0.5s; 
    -webkit-animation-fill-mode: both; 
    animation-fill-mode: both; 
} 
.sAnimNormal { 
    -webkit-animation-duration: 1s; 
    animation-duration: 1s; 
    -webkit-animation-fill-mode: both; 
    animation-fill-mode: both; 
} 
.sAnimSlow {
     -webkit-animation-duration: 1.5s; 
    animation-duration: 1.5s; 
    -webkit-animation-fill-mode: both; 
    animation-fill-mode: both; 
}
.sAnimSlower {
     -webkit-animation-duration: 2s; 
    animation-duration: 2s; 
    -webkit-animation-fill-mode: both; 
    animation-fill-mode: both; 
}
.sAnimSlowest {
     -webkit-animation-duration: 3s; 
    animation-duration: 3s; 
    -webkit-animation-fill-mode: both; 
    animation-fill-mode: both; 
}

.sAnimbounceInRight, .sAnimbounceInLeft, .sAnimbounceInUp, .sAnimbounceInDown{
    opacity:0;
    transform: translateX(123px); 
}
.sAnimfadeInRight, .sAnimfadeInLeft, .sAnimfadeInUp, .sAnimfadeInDown{
    opacity:0;
    transform: translateX(123px); 
}

.sAnimflipInX, .sAnimflipInY, .sAnimrotateIn, .sAnimrotateInUpLeft, .sAnimrotateInUpRight, .sAnimrotateInDownLeft, .sAnimrotateInDownRight, .sAnimrollIn{
    opacity:0;
}

.sAnimlightSpeedInRight, .sAnimlightSpeedInLeft{
    opacity:0;
    transform: translateX(123px); 
}

/***********
* bounceIn *
************/
@keyframes sAnimbounceIn { 
    0% { 
        opacity: 0; 
        transform: scale(.3); 
    } 

    50% { 
        opacity: 1; 
        transform: scale(1.05); 
    } 

    70% { 
        transform: scale(.9); 
    } 

    100% { 
        transform: scale(1); 
    } 
} 

.sAnimbounceIn.sAnimgo { 
    animation-name: sAnimbounceIn; 
}

/****************
* bounceInRight *
****************/
@keyframes sAnimbounceInRight { 
    0% { 
        opacity: 0;         
        transform: translateX(123px); 
    } 
    60% {         
        transform: translateX(-30px); 
    } 
    80% { 
        transform: translateX(10px); 
    } 
    100% {
        opacity: 1;     
        transform: translateX(0); 
    } 
} 


.sAnimbounceInRight.sAnimgo { 
    animation-name: sAnimbounceInRight; 
}

/******************
* Bounce in left *
*******************/


@keyframes sAnimbounceInLeft { 
    0% { 
        opacity: 0; 
        
        transform: translateX(-123px); 
    } 
    60% { 
       
        transform: translateX(30px); 
    } 
    80% { 
        transform: translateX(-10px); 
    } 
    100% {
        opacity: 1;
        transform: translateX(0); 
    } 
} 

.sAnimbounceInLeft.sAnimgo { 
    animation-name: sAnimbounceInLeft; 
}

/******************
* Bounce in up *
*******************/


@keyframes sAnimbounceInUp { 
    0% { 
        opacity: 0; 
        transform: translateY(123px); 
    } 
    60% { 
       
        transform: translateY(-30px); 
    } 
    80% { 
        transform: translateY(10px); 
    } 
    100% {
        opacity: 1;
         
        transform: translateY(0); 
    } 
} 

.sAnimbounceInUp.sAnimgo { 
    animation-name: sAnimbounceInUp; 
}


/******************
* Bounce in down *
*******************/



@keyframes sAnimbounceInDown { 
    0% { 
        opacity: 0;         
        transform: translateY(-123px); 
    } 
    60% {        
        transform: translateY(30px); 
    } 
    80% { 
        transform: translateY(-10px); 
    } 
    100% {
        opacity: 1;         
        transform: translateY(0); 
    } 
} 

.sAnimbounceInDown.sAnimgo { 
    animation-name: sAnimbounceInDown; 
}


/**********
* Fade In *
**********/ 

@keyframes sAnimfadeIn { 
    0% {opacity: 0;} 
    100% {opacity: 1;
        display:block;} 
}
.sAnimfadeIn{
    opacity:0;
}
.sAnimfadeIn.sAnimgo { 
    animation-name: sAnimfadeIn; 
}

/**********
* Grow in *
***********/

@keyframes sAnimgrowIn { 
    0% { 
        transform: scale(0.2); 
        opacity:0;
    } 
    50% { 
        transform: scale(1.2); 
        
    } 
    100% { 
        transform: scale(1); 
        opacity:1;
    } 
} 
.sAnimgrowIn { 
    transform: scale(0.2);
    opacity:0;
}
.sAnimgrowIn.sAnimgo{
    animation-name: sAnimgrowIn; 
}

/********
* Shake *
********/

@keyframes sAnimshake { 
    0%, 100% {transform: translateX(0);} 
    10%, 30%, 50%, 70%, 90% {transform: translateX(-10px);} 
    20%, 40%, 60%, 80% {transform: translateX(10px);} 
} 
.sAnimshake.sAnimgo { 
    animation-name: sAnimshake; 
}

/********
* ShakeUp *
********/

@keyframes sAnimshakeUp { 
    0%, 100% {transform: translateY(0);} 
    10%, 30%, 50%, 70%, 90% {transform: translateY(-10px);} 
    20%, 40%, 60%, 80% {transform: translateY(10px);} 
} 
.sAnimshakeUp.sAnimgo { 
    animation-name: sAnimshakeUp; 
}

/*************
* FadeInLeft *
*************/


@keyframes sAnimfadeInLeft { 
    0% { 
        opacity: 0; 
        transform: translateX(-123px); 
    } 
    50%{
       opacity: 0.3; 
    }
    100% { 
        opacity: 1; 
        transform: translateX(0); 
    } 
} 
.sAnimfadeInLeft{ 
    opacity: 0; 
    transform: translateX(-123px);
}
.sAnimfadeInLeft.sAnimgo { 
    animation-name: sAnimfadeInLeft; 
}


/*************
* FadeInRight *
*************/


@keyframes sAnimfadeInRight { 
    0% { 
        opacity: 0; 
        transform: translateX(123px); 
    } 
    50%{
       opacity: 0.3; 
    }
    100% { 
        opacity: 1; 
        transform: translateX(0); 
    } 
} 
.sAnimfadeInRight{ 
    opacity: 0; 
    transform: translateX(123px);
}
.sAnimfadeInRight.sAnimgo { 
    animation-name: sAnimfadeInRight; 
}

/*************
* FadeInUp *
*************/


@keyframes sAnimfadeInUp { 
    0% { 
        opacity: 0; 
        transform: translateY(123px); 
    } 
    50%{
       opacity: 0.3; 
    }
    100% { 
        opacity: 1; 
        transform: translateY(0); 
    } 
} 
.sAnimfadeInUp{ 
    opacity: 0; 
    transform: translateY(123px);
}
.sAnimfadeInUp.sAnimgo { 
    animation-name: sAnimfadeInUp; 
}

/*************
* FadeInDown *
*************/


@keyframes sAnimfadeInDown { 
    0% { 
        opacity: 0; 
        transform: translateY(-123px); 
    } 
    50%{
       opacity: 0.3; 
    }
    100% { 
        opacity: 1; 
        transform: translateY(0); 
    } 
} 
.sAnimfadeInDown{ 
    opacity: 0; 
    transform: translateY(-123px);
}
.sAnimfadeInDown.sAnimgo { 
    animation-name: sAnimfadeInDown; 
}

/*****************
* rotateIn *
*****************/

@keyframes sAnimrotateIn { 
    0% { 
        transform-origin: center center; 
        transform: rotate(-200deg); 
        opacity: 0; 
    } 
    100% { 
        transform-origin: center center; 
        transform: rotate(0); 
        opacity: 1; 
    } 
} 
.sAnimrotateIn.sAnimgo { 
    animation-name: sAnimrotateIn; 
}

/*****************
* rotateInUpLeft *
*****************/

@keyframes sAnimrotateInUpLeft { 
    0% { 
        transform-origin: left bottom; 
        transform: rotate(90deg); 
        opacity: 0; 
    } 
    100% { 
        transform-origin: left bottom; 
        transform: rotate(0); 
        opacity: 1; 
    } 
} 
.sAnimrotateInUpLeft.sAnimgo { 
    animation-name: sAnimrotateInUpLeft; 
}

/*******************
* rotateInDownLeft *
*******************/

@keyframes sAnimrotateInDownLeft { 
    0% { 
        transform-origin: left bottom; 
        transform: rotate(-90deg); 
        opacity: 0; 
    } 
    100% { 
        transform-origin: left bottom; 
        transform: rotate(0); 
        opacity: 1; 
    } 
} 
.sAnimrotateInDownLeft.sAnimgo { 
    animation-name: sAnimrotateInDownLeft; 
}

/******************
* rotateInUpRight *
*******************/

@keyframes sAnimrotateInUpRight { 
    0% { 
        transform-origin: right bottom; 
        transform: rotate(-90deg); 
        opacity: 0; 
    } 
    100% { 
        transform-origin: right bottom; 
        transform: rotate(0); 
        opacity: 1; 
    } 
} 
.sAnimrotateInUpRight.sAnimgo { 
    animation-name: sAnimrotateInUpRight; 
}

/********************
* rotateInDownRight *
********************/

@keyframes sAnimrotateInDownRight { 
    0% { 
        transform-origin: right bottom; 
        transform: rotate(90deg); 
        opacity: 0; 
    } 
    100% { 
        transform-origin: right bottom; 
        transform: rotate(0); 
        opacity: 1; 
    } 
} 
.sAnimrotateInDownRight.sAnimgo { 
    animation-name: sAnimrotateInDownRight; 
}

/*********
* rollIn *
**********/

@keyframes sAnimrollIn { 
    0% { opacity: 0; transform: translateX(-100%) rotate(-120deg); } 
    100% { opacity: 1; transform: translateX(0px) rotate(0deg); } 
} 
.sAnimrollIn.sAnimgo { 
    animation-name: sAnimrollIn; 
}

/*********
* wiggle *
**********/

@keyframes sAnimwiggle { 
    0% { transform: skewX(9deg); } 
    10% { transform: skewX(-8deg); } 
    20% { transform: skewX(7deg); } 
    30% { transform: skewX(-6deg); } 
    40% { transform: skewX(5deg); } 
    50% { transform: skewX(-4deg); } 
    60% { transform: skewX(3deg); } 
    70% { transform: skewX(-2deg); } 
    80% { transform: skewX(1deg); } 
    90% { transform: skewX(0deg); } 
    100% { transform: skewX(0deg); } 
} 
.sAnimwiggle.sAnimgo { 
    animation-name: sAnimwiggle; 
    animation-timing-function: ease-in; 
} 

/********
* swing *
*********/

@keyframes sAnimswing { 
    20% { transform: rotate(15deg); } 
    40% { transform: rotate(-10deg); } 
    60% { transform: rotate(5deg); } 
    80% { transform: rotate(-5deg); } 
    100% { transform: rotate(0deg); } 
} 
.sAnimswing.sAnimgo { 
    transform-origin: top center; 
    animation-name: sAnimswing; 
}

/*******
* tada *
********/

@keyframes sAnimtada { 
    0% {transform: scale(1);} 
    10%, 20% {transform: scale(0.9) rotate(-3deg);} 
    30%, 50%, 70%, 90% {transform: scale(1.1) rotate(3deg);} 
    40%, 60%, 80% {transform: scale(1.1) rotate(-3deg);} 
    100% {transform: scale(1) rotate(0);} 
} 
.sAnimtada.sAnimgo { 
    animation-name: sAnimtada; 
}

/*********
* wobble *
**********/

@keyframes sAnimwobble { 
  0% { transform: translateX(0%); } 
  15% { transform: translateX(-25%) rotate(-5deg); } 
  30% { transform: translateX(20%) rotate(3deg); } 
  45% { transform: translateX(-15%) rotate(-3deg); } 
  60% { transform: translateX(10%) rotate(2deg); } 
  75% { transform: translateX(-5%) rotate(-1deg); } 
  100% { transform: translateX(0%); } 
} 
.sAnimwobble.sAnimgo { 
    animation-name: sAnimwobble; 
}

/********
* pulse *
*********/

@keyframes sAnimpulse { 
    0% { transform: scale(1); } 
    50% { transform: scale(1.1); } 
    100% { transform: scale(1); } 
} 
.sAnimpulse.sAnimgo { 
    animation-name: sAnimpulse; 
}

/***************
* lightSpeedInRight *
****************/
@keyframes sAnimlightSpeedInRight { 
    0% { transform: translateX(100%) skewX(-30deg); opacity: 0; } 
    60% { transform: translateX(-20%) skewX(30deg); opacity: 1; } 
    80% { transform: translateX(0%) skewX(-15deg); opacity: 1; } 
    100% { transform: translateX(0%) skewX(0deg); opacity: 1; } 
} 
.sAnimlightSpeedInRight.sAnimgo { 
    animation-name: sAnimlightSpeedInRight; 
    animation-timing-function: ease-out; 
} 

/***************
* lightSpeedInLeft *
****************/
@keyframes sAnimlightSpeedInLeft { 
    0% { transform: translateX(-100%) skewX(30deg); opacity: 0; } 
    60% { transform: translateX(20%) skewX(-30deg); opacity: 1; } 
    80% { transform: translateX(0%) skewX(15deg); opacity: 1; } 
    100% { transform: translateX(0%) skewX(0deg); opacity: 1; } 
} 
.sAnimlightSpeedInLeft.sAnimgo { 
    animation-name: sAnimlightSpeedInLeft; 
    animation-timing-function: ease-out; 
} 


/*******
* Flip *
*******/

@keyframes sAnimflip { 
    0% { 
        transform: perspective(123px) rotateY(0); 
        animation-timing-function: ease-out; 
    } 
    40% { 
        transform: perspective(123px) translateZ(150px) rotateY(170deg); 
        animation-timing-function: ease-out; 
    } 
    50% { 
        transform: perspective(123px) translateZ(150px) rotateY(190deg) scale(1); 
        animation-timing-function: ease-in; 
    } 
    80% { 
        transform: perspective(123px) rotateY(360deg) scale(.95); 
        animation-timing-function: ease-in; 
    } 
    100% { 
        transform: perspective(123px) scale(1); 
        animation-timing-function: ease-in; 
    } 
} 
.sAnimflip.sAnimgo { 
    backface-visibility: visible !important; 
    animation-name: sAnimflip; 
}

/**********
* flipInX *
**********/

@keyframes sAnimflipInX { 
    0% { 
        transform: perspective(123px) rotateX(90deg); 
        opacity: 0; 
    } 
    40% { 
        transform: perspective(123px) rotateX(-10deg); 
    } 
    70% { 
        transform: perspective(123px) rotateX(10deg); 
    } 
    100% { 
        transform: perspective(123px) rotateX(0deg); 
        opacity: 1; 
    } 
} 
.sAnimflipInX.sAnimgo { 
    backface-visibility: visible !important; 
    animation-name: sAnimflipInX; 
}

/**********
* flipInY *
**********/


@keyframes sAnimflipInY { 
    0% { 
        transform: perspective(123px) rotateY(90deg); 
        opacity: 0; 
    } 
    40% { 
        transform: perspective(123px) rotateY(-10deg); 
    } 
    70% { 
        transform: perspective(123px) rotateY(10deg); 
    } 
    100% { 
        transform: perspective(123px) rotateY(0deg); 
        opacity: 1; 
    } 
} 
.sAnimflipInY.sAnimgo { 
    backface-visibility: visible !important; 
    animation-name: sAnimflipInY; 
}

/*****************
* Out animations *
*****************/


/************
* bounceOut *
*************/

@keyframes sAnimbounceOut { 
    0% { 
        transform: scale(1); 
    } 
    25% { 
        transform: scale(.95); 
    } 
    50% { 
        opacity: 1; 
        transform: scale(1.1); 
    } 
    100% { 
        opacity: 0; 
        transform: scale(.3); 
    } 
} 
.sAnimbounceOut.sAnimgoAway { 
    animation-name: sAnimbounceOut; 
}

/************
* bounceOutUp *
*************/

@keyframes sAnimbounceOutUp { 
    0% { 
        transform: translateY(0); 
    } 
    20% { 
        opacity: 1; 
        transform: translateY(20px); 
    } 
    100% { 
        opacity: 0; 
        transform: translateY(-2000px); 
    } 
} 
.sAnimbounceOutUp.sAnimgoAway { 
    animation-name: sAnimbounceOutUp; 
}

/************
* bounceOutDown *
*************/

@keyframes sAnimbounceOutDown { 
    0% { 
        transform: translateY(0); 
    } 
    20% { 
        opacity: 1; 
        transform: translateY(-20px); 
    } 
    100% { 
        opacity: 0; 
        transform: translateY(2000px); 
    } 
} 
.sAnimbounceOutDown.sAnimgoAway { 
    animation-name: sAnimbounceOutDown; 
}


/************
* bounceOutLeft *
*************/

@keyframes sAnimbounceOutLeft { 
    0% { 
        transform: translateX(0); 
    } 
    20% { 
        opacity: 1; 
        transform: translateX(20px); 
    } 
    100% { 
        opacity: 0; 
        transform: translateX(-2000px); 
    } 
} 
.sAnimbounceOutLeft.sAnimgoAway { 
    animation-name: sAnimbounceOutLeft; 
}

/************
* bounceOutRight *
*************/

@keyframes sAnimbounceOutRight { 
    0% { 
        transform: translateX(0); 
    } 
    20% { 
        opacity: 1; 
        transform: translateX(-20px); 
    } 
    100% { 
        opacity: 0; 
        transform: translateX(2000px); 
    } 
} 
.sAnimbounceOutRight.sAnimgoAway { 
    animation-name: sAnimbounceOutRight; 
}

/************
* fadeOut *
*************/

@keyframes sAnimfadeOut { 
    0% {opacity: 1;} 
    100% {opacity: 0;} 
} 
.sAnimfadeOut.sAnimgoAway { 
    animation-name: sAnimfadeOut; 
}

/************
* fadeOutUp *
*************/

@keyframes sAnimfadeOutUp { 
    0% { 
        opacity: 1; 
        transform: translateY(0); 
    } 
    100% { 
        opacity: 0; 
        transform: translateY(-2000px); 
    } 
} 
.sAnimfadeOutUp.sAnimgoAway { 
    animation-name: sAnimfadeOutUp; 
}

/************
* fadeOutDown *
*************/

@keyframes sAnimfadeOutDown { 
    0% { 
        opacity: 1; 
        transform: translateY(0); 
    } 
    100% { 
        opacity: 0; 
        transform: translateY(2000px); 
    } 
} 
.sAnimfadeOutDown.sAnimgoAway { 
    animation-name: sAnimfadeOutDown; 
}

/************
* fadeOutLeft *
*************/

@keyframes sAnimfadeOutLeft { 
    0% { 
        opacity: 1; 
        transform: translateX(0); 
    } 
    100% { 
        opacity: 0; 
        transform: translateX(-2000px); 
    } 
} 
.sAnimfadeOutLeft.sAnimgoAway { 
    animation-name: sAnimfadeOutLeft; 
}

/************
* fadeOutRight *
*************/

@keyframes sAnimfadeOutRight { 
    0% { 
        opacity: 1; 
        transform: translateX(0); 
    } 
    100% { 
        opacity: 0; 
        transform: translateX(2000px); 
    } 
} 
.sAnimAnimfadeOutRight.sAnimgoAway { 
    animation-name: sAnimfadeOutRight; 
}
/************
* flipOutX *
*************/

@keyframes sAnimflipOutX { 
    0% { 
        transform: perspective(123px) rotateX(0deg); 
        opacity: 1; 
    } 
    100% { 
        transform: perspective(123px) rotateX(90deg); 
        opacity: 0; 
    } 
} 
.sAnimAnimflipOutX.sAnimgoAway { 
    animation-name: sAnimflipOutX; 
    backface-visibility: visible !important; 
}

/************
* flipOutY *
*************/

@keyframes sAnimflipOutY { 
    0% { 
        transform: perspective(123px) rotateY(0deg); 
        opacity: 1; 
    } 
    100% { 
        transform: perspective(123px) rotateY(90deg); 
        opacity: 0; 
    } 
} 
.sAnimflipOutY { 
    backface-visibility: visible !important; 
    animation-name: sAnimflipOutY; 
}

/************
* lightSpeedOutRight *
*************/

@keyframes sAnimlightSpeedOutRight { 
    0% { transform: translateX(0%) skewX(0deg); opacity: 1; } 
    100% { transform: translateX(100%) skewX(-30deg); opacity: 0; } 
} 
.sAnimlightSpeedOutRight.sAnimgoAway { 
    animation-name: sAnimlightSpeedOutRight; 
    animation-timing-function: ease-in; 
} 


/************
* lightSpeedOutLeft *
*************/

@keyframes sAnimlightSpeedOutLeft { 
    0% { transform: translateX(0%) skewX(0deg); opacity: 1; } 
    100% { transform: translateX(-100%) skewX(30deg); opacity: 0; } 
} 
.sAnimlightSpeedOutLeft.sAnimgoAway { 
    animation-name: sAnimlightSpeedOutLeft; 
    animation-timing-function: ease-in; 

} 

/************
* rotateOut *
*************/

@keyframes sAnimrotateOut { 
    0% { 
        transform-origin: center center; 
        transform: rotate(0); 
        opacity: 1; 
    } 
    100% { 
        transform-origin: center center; 
        transform: rotate(200deg); 
        opacity: 0; 
    } 
} 
.sAnimrotateOut.sAnimgoAway { 
    animation-name: sAnimrotateOut; 
}


/************
* rotateOutUpLeft *
*************/

@keyframes sAnimrotateOutUpLeft { 
    0% { 
        transform-origin: left bottom; 
        transform: rotate(0); 
        opacity: 1; 
    } 
    100% { 
        -transform-origin: left bottom; 
        -transform: rotate(-90deg); 
        opacity: 0; 
    } 
} 
.sAnimrotateOutUpLeft.sAnimgoAway { 
    animation-name: sAnimrotateOutUpLeft; 
}

/************
* rotateOutDownLeft *
*************/

@keyframes sAnimrotateOutDownLeft { 
    0% { 
        transform-origin: left bottom; 
        transform: rotate(0); 
        opacity: 1; 
    } 
    100% { 
        transform-origin: left bottom; 
        transform: rotate(90deg); 
        opacity: 0; 
    } 
} 
.sAnimrotateOutDownLeft.sAnimgoAway { 
    animation-name: sAnimrotateOutDownLeft; 
}
/************
* rotateOutUpRight *
*************/

@keyframes sAnimrotateOutUpRight { 
    0% { 
        transform-origin: right bottom; 
        transform: rotate(0); 
        opacity: 1; 
    } 
    100% { 
        transform-origin: right bottom; 
        transform: rotate(90deg); 
        opacity: 0; 
    } 
} 
.sAnimrotateOutUpRight.sAnimgoAway { 
    animation-name: sAnimrotateOutUpRight; 
}

/************
* rollOut *
*************/

@keyframes sAnimrollOut { 
    0% { 
        opacity: 1; 
        transform: translateX(0px) rotate(0deg); 
    } 
    100% { 
        opacity: 0; 
        transform: translateX(100%) rotate(120deg); 
    } 
} 
.sAnimrollOut.sAnimgoAway { 
    animation-name: sAnimrollOut; 
}
