/*!
 * WickedCSS v1.0 (https://github.com/kristofferandreasen/wickedCSS)
 * Copyright 2015 Kristoffer Andreasen
 * MIT License
 */
 
 /*
==========
Rotation
==========
*/
.rotation{
  animation-name: rotation;
  -webkit-animation-name: rotation; 

  animation-duration: 4s; 
  -webkit-animation-duration: 4s;

  animation-timing-function: linear;  
  -webkit-animation-timing-function: linear;

  -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite;  

  visibility: visible !important;           
}
@-webkit-keyframes rotation {
    from { -webkit-transform: rotate(0deg) translateX(50%) rotate(0deg); }
    to   { -webkit-transform: rotate(360deg) translateX(50%) rotate(-360deg); }
}
@keyframes rotation {
    from { transform: rotate(0deg) translateX(50%) rotate(0deg); }
    to   { transform: rotate(360deg) translateX(50%) rotate(-360deg); }
}
 
 /*
==========
sideToSide
==========
*/
.sideToSide{
  animation-name: sideToSide;
  -webkit-animation-name: sideToSide; 

  animation-duration: 3s; 
  -webkit-animation-duration: 3s;

  animation-timing-function: ease;  
  -webkit-animation-timing-function: ease;

  -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite;  

  visibility: visible !important;           
}
@-webkit-keyframes sideToSide {
  0% {
    -webkit-transform: translate(100%, 0);
  }
  50% {
    -webkit-transform: translate(-100%, 0);
  }
  100% {
    -webkit-transform: translate(100%, 0);
  }
}
@keyframes sideToSide {
  0% {
    transform: translate(100%, 0);
  }
  50% {
    transform: translate(-100%, 0);
  }
  100% {
    transform: translate(100%, 0);
  }
}

/*
==========
zoomer
==========
*/
.zoomer{
  animation-name: zoomer;
  -webkit-animation-name: zoomer; 

  animation-duration: 1s; 
  -webkit-animation-duration: 1s;

  animation-timing-function: cubic-bezier(0.5, 0.2, 0.3, 1.0);  
  -webkit-animation-timing-function: cubic-bezier(0.5, 0.2, 0.3, 1.0);

  -webkit-animation-iteration-count: 1;
    animation-iteration-count: 1; 

  visibility: visible !important;           
}
@-webkit-keyframes zoomer {
  0% {
    -webkit-transform: scale(.3);
  }
  100% {
    -webkit-transform: scale(1);
  }
}
@keyframes zoomer {
  0% {
    transform: scale(.3);
  }
  100% {
    transform: scale(1);
  }
}

/*
==========
zoomerOut
==========
*/
.zoomerOut{
  animation-name: zoomerOut;
  -webkit-animation-name: zoomerOut;  

  animation-duration: 1s; 
  -webkit-animation-duration: 1s;

  animation-timing-function: cubic-bezier(0.5, 0.2, 0.3, 1.0);  
  -webkit-animation-timing-function: cubic-bezier(0.5, 0.2, 0.3, 1.0);

  -webkit-animation-iteration-count: 1;
    animation-iteration-count: 1;

    -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards;  

  visibility: visible !important;           
}
@-webkit-keyframes zoomerOut {
  0% {
    -webkit-transform: scale(1);
  }
  100% {
    -webkit-transform: scale(0);
  }
}
@keyframes zoomerOut {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(0);
  }
}

/*
==========
spinner
==========
*/
.spinner{
  animation-name: spinner;
  -webkit-animation-name: spinner;  

  animation-duration: 2s; 
  -webkit-animation-duration: 2s;

  animation-timing-function: linear;  
  -webkit-animation-timing-function: linear;

  -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite;  

  visibility: visible !important;           
}
@-webkit-keyframes spinner {
    from { -webkit-transform: rotate(0deg); }
    to { -webkit-transform: rotate(360deg); }
}
@keyframes spinner {
    from {transform:rotate(0deg);}
    to {transform:rotate(360deg);}
}

/*
==========
pulse
==========
*/
.pulse{
  animation-name: pulse;
  -webkit-animation-name: pulse;  

  animation-duration: 2s; 
  -webkit-animation-duration: 2s;

  animation-timing-function: linear;  
  -webkit-animation-timing-function: linear;

  animation-iteration-count: infinite;
  -webkit-animation-iteration-count: infinite;

  visibility: visible !important; 
}

@keyframes pulse {
  0% {
    transform: scale(0.9);
    opacity: 0.9;   
  }
  50% {
    transform: scale(1);
    opacity: 1; 
  } 
  100% {
    transform: scale(0.9);
    opacity: 0.9; 
  }     
}

@-webkit-keyframes pulse {
  0% {
    -webkit-transform: scale(0.95);
    opacity: 0.9;   
  }
  50% {
    -webkit-transform: scale(1);
    opacity: 1; 
  } 
  100% {
    -webkit-transform: scale(0.95);
    opacity: 0.9; 
  }     
}



/*
==========
shake
==========
*/
.shake{
  animation-name: shake;
  -webkit-animation-name: shake;  

  animation-duration: 0.4s; 
  -webkit-animation-duration: 0.4s;

  animation-timing-function: ease;  
  -webkit-animation-timing-function: ease;

  animation-iteration-count: 1;
  -webkit-animation-iteration-count: 1;

  visibility: visible !important; 
}

@keyframes shake {
  0%, 100% {transform: translateX(0);}
    16%, 50%, 83% {transform: translateX(-10px);}
    33%, 66% {transform: translateX(10px);}
}

@-webkit-keyframes shake {
  0%, 100% {-webkit-transform: translateX(0);}
    16%, 50%, 83% {-webkit-transform: translateX(-10px);}
    33%, 66% {-webkit-transform: translateX(10px);} 
}

/*
==========
barrelRoll
==========
*/
.barrelRoll{
  animation-name: barrelRoll;
  -webkit-animation-name: barrelRoll; 

  animation-duration: 0.4s; 
  -webkit-animation-duration: 0.4s;

  animation-timing-function: ease;  
  -webkit-animation-timing-function: ease;

  animation-iteration-count: 1;
  -webkit-animation-iteration-count: 1;

  visibility: visible !important; 
}

@keyframes barrelRoll {
    from { transform: rotate(0deg) }
    to   { transform: rotate(360deg) }
}

@-webkit-keyframes barrelRoll {
    from { -webkit-transform: rotate(0deg) }
    to   { -webkit-transform: rotate(360deg) }
}


/*
=========
floater
=========
*/

.floater{
  animation-name: floater;
  -webkit-animation-name: floater;

  animation-duration: 1.5s; 
  -webkit-animation-duration: 1.5s;

  animation-iteration-count: infinite;
  -webkit-animation-iteration-count: infinite;

  visibility: visible !important; 
}

@keyframes floater {
  0% {
    transform: translateY(0%);  
  }
  50% {
    transform: translateY(8%);  
  } 
  100% {
    transform: translateY(0%);
  }     
}

@-webkit-keyframes floater {
  0% {
    -webkit-transform: translateY(0%);  
  }
  50% {
    -webkit-transform: translateY(8%);  
  } 
  100% {
    -webkit-transform: translateY(0%);
  }     
}


/*
======
wiggle
======
*/

.wiggle{
  animation-name: wiggle;
  -webkit-animation-name: wiggle; 

  animation-duration: 2.5s; 
  -webkit-animation-duration: 2.5s;

  animation-iteration-count: infinite;
  -webkit-animation-iteration-count: infinite;

  visibility: visible !important; 
}

@keyframes wiggle {
  0% {
    transform: rotate(-4deg); 
  }
  50% {
    transform: rotate(4deg);
  }
  100% {
    transform: rotate(-4deg); 
  }           
}

@-webkit-keyframes wiggle {
  0% {
    -webkit-transform: rotate(-4deg); 
  }
  50% {
    -webkit-transform: rotate(4deg);
  }
  100% {
    -webkit-transform: rotate(-4deg); 
  }       
}

/*
======
pound
======
*/

.pound{
  animation-name: pound;
  -webkit-animation-name: pound;
  animation-duration: 1s;
  -webkit-animation-duration: 1s;
  animation-timing-function: ease;
  -webkit-animation-timing-function: ease;
  animation-iteration-count: infinite;
  -webkit-animation-iteration-count: infinite;
  visibility: visible !important;
}
@keyframes pound {
  to { transform: scale(1.2); }
}
@-webkit-keyframes pound {
  to { transform: scale(1.2); }
}

/*
======
heartbeat
======
*/

.heartbeat{
  animation-name: heartbeat;
  -webkit-animation-name: heartbeat;  

  animation-duration: 3s; 
  -webkit-animation-duration: 3s;

  animation-timing-function: ease;  
  -webkit-animation-timing-function: ease;

  animation-iteration-count: infinite;
  -webkit-animation-iteration-count: infinite;

  visibility: visible !important; 
}

@keyframes heartbeat {
  0% {
    transform: scale(1);  
  }
  10% {
    transform: scale(1.2);
  }
  20% {
    transform: scale(1.4);
  }
  100% {
    transform: scale(1);  
  }           
}

@-webkit-keyframes heartbeat {
  0% {
    -webkit-transform: scale(1);  
  }
  10% {
    -webkit-transform: scale(1.2);
  }
  20% {
    -webkit-transform: scale(1.4);
  }
  100% {
    -webkit-transform: scale(1);  
  }       
}


/*
======
rollerRight
======
*/

.rollerRight{
  animation-name: rollerRight;
  -webkit-animation-name: rollerRight;  

  animation-duration: 2s; 
  -webkit-animation-duration: 2s;

  animation-timing-function: ease;  
  -webkit-animation-timing-function: ease;

  animation-iteration-count: 1;
  -webkit-animation-iteration-count: 1;

  -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards;

}
@keyframes rollerRight {
  0% {
    transform: translateX(-200px) rotate(0);
    opacity: 0; 
  }       
  100% {
    transform: translateX(0) rotate(2turn);
    opacity: 1;
  }
}
@-webkit-keyframes rollerRight {
  0% {
    -webkit-transform: translateX(-200px) rotate(0);
  opacity: 0; 
  }       
100% {
  -webkit-transform: translateX(0) rotate(2turn);
  opacity: 1; 
  }
}

/*
======
rollerLeft
======
*/

.rollerLeft{
  animation-name: rollerLeft;
  -webkit-animation-name: rollerLeft; 

  animation-duration: 2s; 
  -webkit-animation-duration: 2s;

  animation-timing-function: ease;  
  -webkit-animation-timing-function: ease;

  animation-iteration-count: 1;
  -webkit-animation-iteration-count: 1;

  -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards;

}
@keyframes rollerLeft {
  0% {
    transform: translateX(200px) rotate(0);
    opacity: 0; 
  } 
  100% {
    transform: translateX(0) rotate(-2turn);
    opacity: 1; 
  }
}
@-webkit-keyframes rollerLeft {
  0% {
    -webkit-transform: translateX(200px) rotate(0);
    opacity: 0; 
  }       
  100% {
    -webkit-transform: translateX(0) rotate(-2turn);
  opacity: 1; 
  }
}


/*
==========
Boring ones from here on down
==========
*/

/*
==========
slideDown
==========
*/
.slideDown{
  animation-name: slideDown;
  -webkit-animation-name: slideDown;  

  animation-duration: 1s; 
  -webkit-animation-duration: 1s;

  animation-timing-function: ease;  
  -webkit-animation-timing-function: ease;  
        
}

@keyframes slideDown {
  0% {
    transform: translateY(-100%);
    opacity: 0;
  } 
  100% {
    transform: translateY(0%);
    opacity: 1;
  }   
}

@-webkit-keyframes slideDown {
  0% {
    -webkit-transform: translateY(-100%);
    opacity: 0;
  }   
  100% {
    -webkit-transform: translateY(0%);
    opacity: 1;
  } 
}

/*
==========
slideUp
==========
*/


.slideUp{
  animation-name: slideUp;
  -webkit-animation-name: slideUp;  

  animation-duration: 1s; 
  -webkit-animation-duration: 1s;

  animation-timing-function: ease;  
  -webkit-animation-timing-function: ease;
  
}

@keyframes slideUp {
  0% {
    transform: translateY(100%);
    opacity: 0;
  }
  100% {
    transform: translateY(0%);
    opacity: 1;
  } 
}

@-webkit-keyframes slideUp {
  0% {
    -webkit-transform: translateY(100%);
    opacity: 0;
  } 
  100% {
    -webkit-transform: translateY(0%);
    opacity: 1;
  } 
}

/*
==========
slideLeft
==========
*/


.slideLeft{
  animation-name: slideLeft;
  -webkit-animation-name: slideLeft;  

  animation-duration: 1s; 
  -webkit-animation-duration: 1s;

  animation-timing-function: ease;  
  -webkit-animation-timing-function: ease;    

}

@keyframes slideLeft {
  0% {
    transform: translateX(150%);
    opacity: 0;
  }   
  100% {
    transform: translateX(0%);
    opacity: 1;
  } 
}

@-webkit-keyframes slideLeft {
  0% {
    -webkit-transform: translateX(150%);
    opacity: 0;
  }   
  100% {
    -webkit-transform: translateX(0%);
    opacity: 1;
  }
}

/*
==========
slideRight
==========
*/


.slideRight{
  animation-name: slideRight;
  -webkit-animation-name: slideRight; 

  animation-duration: 1s; 
  -webkit-animation-duration: 1s;

  animation-timing-function: ease;  
  -webkit-animation-timing-function: ease;    

}

@keyframes slideRight {
  0% {
    transform: translateX(-150%);
    opacity: 0;
  }   
  100% {
    transform: translateX(0%);
    opacity: 1;
  } 
}

@-webkit-keyframes slideRight {
  0% {
    -webkit-transform: translateX(-150%);
    opacity: 0;
  }   
  100% {
    -webkit-transform: translateX(0%);
    opacity: 1;
  }
}

/*
==========
fadeIn
==========
*/


.fadeIn{
  animation-name: fadeIn;
  -webkit-animation-name: fadeIn; 

  animation-duration: 2s; 
  -webkit-animation-duration: 2s;

  animation-timing-function: ease;  
  -webkit-animation-timing-function: ease;  

  visibility: visible !important;   
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  } 
}

@-webkit-keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}


/*
==========
fadeOut
==========
*/


.fadeOut{
  animation-name: fadeOut;
  -webkit-animation-name: fadeOut;  

  animation-duration: 2s; 
  -webkit-animation-duration: 2s;

  animation-timing-function: ease;  
  -webkit-animation-timing-function: ease;

  -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards;    
}

@keyframes fadeOut {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  } 
}

@-webkit-keyframes fadeOut {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}


/*
==========
rotateInRight
==========
*/
.rotateInRight{
  animation-name: rotateInRight;
  -webkit-animation-name: rotateInRight;  

  animation-duration: 3s; 
  -webkit-animation-duration: 3s;

  animation-timing-function: ease-in-out; 
  -webkit-animation-timing-function: ease-in-out;

  -webkit-animation-iteration-count: 1;
    animation-iteration-count: 1; 
          
}
@-webkit-keyframes rotateInRight {
    from { 
      -webkit-transform: rotate(0deg) translateX(100%) rotate(0deg); 
    }
    to   { 
      -webkit-transform: rotate(360deg) translateX(0) rotate(-360deg); 
    }
}
@keyframes rotateInRight {
    from { 
      transform: rotate(0deg) translateX(100%) rotate(0deg); 
    }
    to   { 
      transform: rotate(360deg) translateX(0) rotate(-360deg); 
    }
}

/*
==========
rotateInLeft
==========
*/
.rotateInLeft{
  animation-name: rotateInLeft;
  -webkit-animation-name: rotateInLeft; 

  animation-duration: 3s; 
  -webkit-animation-duration: 3s;

  animation-timing-function: ease-in-out; 
  -webkit-animation-timing-function: ease-in-out;

  -webkit-animation-iteration-count: 1;
    animation-iteration-count: 1; 
          
}
@-webkit-keyframes rotateInLeft {
    from { 
      -webkit-transform: rotate(0deg) translateX(-100%) rotate(0deg); 
    }
    to   { 
      -webkit-transform: rotate(360deg) translateX(0) rotate(-360deg); 
    }
}
@keyframes rotateInLeft {
    from { 
      transform: rotate(0deg) translateX(-100%) rotate(0deg); 
    }
    to   { 
      transform: rotate(360deg) translateX(0) rotate(-360deg); 
    }
}

/*
==========
rotateIn
==========
*/
.rotateIn {
 animation-name: rotateIn;
 -webkit-animation-name: rotateIn;

 animation-duration: 3s;  
 -webkit-animation-duration: 3s;

 animation-timing-function: ease; 
 -webkit-animation-timing-function: ease;

 -webkit-animation-iteration-count: 1;
 animation-iteration-count: 1;  

 -webkit-transform-origin: center;
 transform-origin: center;
    
}


@-webkit-keyframes rotateIn {
  0% {
    -webkit-transform: rotate3d(0, 0, 1, -720deg);
    transform: rotate3d(0, 0, 1, -720deg);
    opacity: 0;
  }

  100% {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: none;
    transform: none;
    opacity: 1;
  }
}

@keyframes rotateIn {
  0% {
    -webkit-transform: rotate3d(0, 0, 1, -720deg);
    transform: rotate3d(0, 0, 1, -720deg);
    opacity: 0;
  }

  100% {
    -webkit-transform: none;
    transform: none;
    opacity: 1;
  }
}


/*
==========
bounceIn
==========
*/

.bounceIn{
   
   -webkit-animation-name: bounceIn;
  animation-name: bounceIn;

  -webkit-animation-duration: .8s;
  animation-duration: .8s;

  -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
   animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
}

@-webkit-keyframes bounceIn {
  0% {
    opacity: 0;
    -webkit-transform: scale3d(.3, .3, .3);
    transform: scale3d(.3, .3, .3);
  }

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

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

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

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

  100% {
    opacity: 1;
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
}

@keyframes bounceIn {
  0% {
    opacity: 0;
    -webkit-transform: scale3d(.3, .3, .3);
    transform: scale3d(.3, .3, .3);
  }

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

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

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

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

  100% {
    opacity: 1;
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
}