/* filmstrip */

@keyframes filmstrip
{
	from {background-position: -0px -0px;}
	to {background-position: -0px -900px;}
}

@-webkit-keyframes filmstrip
{
	from {background-position: -0px -0px;}
	to {background-position: -0px -900px;}
}

@-mozkeyframes filmstrip
{
	from {background-position: -0px -0px;}
	to {background-position: -0px -900px;}
}

@-o-keyframes filmstrip
{
	from {background-position: -0px -0px;}
	to {background-position: -0px -900px;}
}

.animated.filmstrip {
  -webkit-animation-name: filmstrip;
  -moz-animation-name: filmstrip;
  -ms-animation-name: filmstrip;
  -o-animation-name: filmstrip;
  animation-name: filmstrip;
  -webkit-animation-timing-function: linear;
  -moz-animation-timing-function: linear;
  -ms-animation-timing-function: linear;
  -o-animation-timing-function: linear;
  animation-timing-function: linear;
  -webkit-animation-duration: 0.5s;
  -moz-animation-duration: 0.5s;
  -ms-animation-duration: 0.5s;
  -o-animation-duration: 0.5s;
  animation-duration: 0.5s;
}

/* flicker */

@-webkit-keyframes flicker {
  0%, 4%, 8% {opacity: 0;}
  2%  {opacity: 0.8;}
  6% {opacity: 0.5;}
  10%, 100% {opacity: 1;}
}

@-moz-keyframes flicker {
  0%, 4%, 8% {opacity: 0;}
  2%  {opacity: 0.8;}
  6% {opacity: 0.5;}
  10%, 100% {opacity: 1;}
}

@-o-keyframes flicker {
  0%, 4%, 8% {opacity: 0;}
  2%  {opacity: 0.8;}
  6% {opacity: 0.5;}
  10%, 100% {opacity: 1;}
}

@keyframes flicker {
  0%, 4%, 8% {opacity: 0;}
  2%  {opacity: 0.8;}
  6% {opacity: 0.5;}
  10%, 100% {opacity: 1;}
}

.animated.flicker {
  -webkit-animation-name: flicker;
  -moz-animation-name: flicker;
  -ms-animation-name: flicker;
  -o-animation-name: flicker;
  animation-name: flicker;
  -webkit-animation-timing-function: linear;
  -moz-animation-timing-function: linear;
  -ms-animation-timing-function: linear;
  -o-animation-timing-function: linear;
  animation-timing-function: linear;
}

/* custom flash */

@-webkit-keyframes flash {
	0%, 50%, 100% {opacity: 1;}
	25%  {opacity: 0.9;}
	75% {opacity: 0.8;}
}

@-moz-keyframes flash {
	0%, 50%, 100% {opacity: 1;}
	25%  {opacity: 0.9;}
	75% {opacity: 0.8;}
}

@-o-keyframes flash {
	0%, 50%, 100% {opacity: 1;}
	25%  {opacity: 0.9;}
	75% {opacity: 0.8;}
}

@keyframes flash {
	0%, 50%, 100% {opacity: 1;}
	25%  {opacity: 0.9;}
	75% {opacity: 0.8;}
}

/* custom shake */

@-webkit-keyframes shake {
	0%, 30%, 70%, 100% {-webkit-transform: translateX(0);}
	40% {-webkit-transform: translateX(-2px);}
	60% {-webkit-transform: translateX(2px);}
}

@-moz-keyframes shake {
	0%, 30%, 70%, 100% {-moz-transform: translateX(0);}
	40% {-moz-transform: translateX(-2px);}
	60% {-moz-transform: translateX(2px);}
}

@-o-keyframes shake {
	0%, 30%, 70%, 100% {-o-transform: translateX(0);}
	40% {-o-transform: translateX(-2px);}
	60% {-o-transform: translateX(2px);}
}

@keyframes shake {
	0%, 30%, 70%, 100% {transform: translateX(0);}
	40% {transform: translateX(-2px);}
	60% {transform: translateX(2px);}
}

/* custom pulse */

@-webkit-keyframes pulse {
    0% { -webkit-transform: scale(1); }
	50% { -webkit-transform: scale(1.05); }
    100% { -webkit-transform: scale(1); }
}
@-moz-keyframes pulse {
    0% { -moz-transform: scale(1); }
	50% { -moz-transform: scale(1.05); }
    100% { -moz-transform: scale(1); }
}
@-o-keyframes pulse {
    0% { -o-transform: scale(1); }
	50% { -o-transform: scale(1.05); }
    100% { -o-transform: scale(1); }
}
@keyframes pulse {
    0% { transform: scale(1); }
	50% { transform: scale(1.05); }
    100% { transform: scale(1); }
}

/* particles */

@-webkit-keyframes particle-a {
  0% {
   -webkit-transform: translate3D(-9rem,-9rem,0);
    z-index: 1;
    -webkit-animation-timing-function: ease-in-out;
  } 25% {
    width: 1.5rem;
    height: 1.5rem;
  }
  
  50% {
    -webkit-transform: translate3D(12rem, 9rem, 0);
    opacity: 1;
    z-index: 1;
    -webkit-animation-timing-function: ease-in-out;
  }
  
  55% {
    z-index: -1;
  }
  
  75% {
    width: .75rem;
    height: .75rem;
    opacity: .5;
  }
  
  100% {
   -webkit-transform: translate3D(-9rem,-9rem,0); 
    z-index: -1;
  }
}

@-moz-keyframes particle-a {
  0% {
   -moz-transform: translate3D(-9rem,-9rem,0);
    z-index: 1;
    -moz-animation-timing-function: ease-in-out;
  }
  
  25% {
    width: 1.5rem;
    height: 1.5rem;
  }
  
  50% {
    -moz-transform: translate3D(12rem, 9rem, 0);
    opacity: 1;
    z-index: 1;
    -moz-animation-timing-function: ease-in-out;
  }
  
  55% {
    z-index: -1;
  }
  
  75% {
    width: .75rem;
    height: .75rem;
    opacity: .5;
  }
  
  100% {
   -moz-transform: translate3D(-9rem,-9rem,0); 
    z-index: -1;
  }
}

@-o-keyframes particle-a {
  0% {
   -o-transform: translate3D(-9rem,-9rem,0);
    z-index: 1;
    -o-animation-timing-function: ease-in-out;
  }
  
  25% {
    width: 1.5rem;
    height: 1.5rem;
  }
  
  50% {
    -o-transform: translate3D(12rem, 9rem, 0);
    opacity: 1;
    z-index: 1;
    -o-animation-timing-function: ease-in-out;
  }
  
  55% {
    z-index: -1;
  }
  
  75% {
    width: .75rem;
    height: .75rem;
    opacity: .5;
  }
  
  100% {
   -o-transform: translate3D(-9rem,-9rem,0); 
    z-index: -1;
  }
}

@keyframes particle-a {
  0% {
   transform: translate3D(-9rem,-9rem,0);
    z-index: 1;
    animation-timing-function: ease-in-out;
  }
  
  25% {
    width: 1.5rem;
    height: 1.5rem;
  }
  
  50% {
    transform: translate3D(12rem, 9rem, 0);
    opacity: 1;
    z-index: 1;
    animation-timing-function: ease-in-out;
  }
  
  55% {
    z-index: -1;
  }
  
  75% {
    width: .75rem;
    height: .75rem;
    opacity: .5;
  }
  
  100% {
   transform: translate3D(-9rem,-9rem,0); 
    z-index: -1;
  }
}

@-webkit-keyframes particle-b {
  0% {
   -webkit-transform: translate3D(9rem,-9rem,0);
    z-index: 1;
    -webkit-animation-timing-function: ease-in-out;
  }
  
  25% {
    width: 1.5rem;
    height: 1.5rem;
  }
  
  50% {
    -webkit-transform: translate3D(-9rem, 10rem, 0);
    opacity: 1;
    z-index: 1;
    -webkit-animation-timing-function: ease-in-out;
  }
  
  55% {
    z-index: -1;
  }
  
  75% {
    width: .5rem;
    height: .5rem;
    opacity: .5;
  }
  
  100% {
   -webkit-transform: translate3D(9rem,-9rem,0); 
    z-index: -1;
  }
}

@-moz-keyframes particle-b {
  0% {
   -moz-transform: translate3D(9rem,-9rem,0);
    z-index: 1;
    -moz-animation-timing-function: ease-in-out;
  }
  
  25% {
    width: 1.5rem;
    height: 1.5rem;
  }
  
  50% {
    -moz-transform: translate3D(-9rem, 10rem, 0);
    opacity: 1;
    z-index: 1;
    -moz-animation-timing-function: ease-in-out;
  }
  
  55% {
    z-index: -1;
  }
  
  75% {
    width: .5rem;
    height: .5rem;
    opacity: .5;
  }
  
  100% {
   -moz-transform: translate3D(9rem,-9rem,0); 
    z-index: -1;
  }
}

@-o-keyframes particle-b {
  0% {
   -o-transform: translate3D(9rem,-9rem,0);
    z-index: 1;
    -o-animation-timing-function: ease-in-out;
  }
  
  25% {
    width: 1.5rem;
    height: 1.5rem;
  }
  
  50% {
    -o-transform: translate3D(-9rem, 10rem, 0);
    opacity: 1;
    z-index: 1;
    -o-animation-timing-function: ease-in-out;
  }
  
  55% {
    z-index: -1;
  }
  
  75% {
    width: .5rem;
    height: .5rem;
    opacity: .5;
  }
  
  100% {
   -o-transform: translate3D(9rem,-9rem,0); 
    z-index: -1;
  }
}

@keyframes particle-b {
  0% {
   transform: translate3D(9rem,-9rem,0);
    z-index: 1;
    animation-timing-function: ease-in-out;
  }
  
  25% {
    width: 1.5rem;
    height: 1.5rem;
  }
  
  50% {
    transform: translate3D(-9rem, 10rem, 0);
    opacity: 1;
    z-index: 1;
    animation-timing-function: ease-in-out;
  }
  
  55% {
    z-index: -1;
  }
  
  75% {
    width: .5rem;
    height: .5rem;
    opacity: .5;
  }
  
  100% {
   transform: translate3D(9rem,-9rem,0); 
    z-index: -1;
  }
}

@-webkit-keyframes particle-c {
  0% {
   -webkit-transform: translate3D(-3rem,-9rem,0);
    z-index: 1;
    -webkit-animation-timing-function: ease-in-out;
  }
  
  25% {
    width: 1.9rem;
    height: 1.9rem;
  }
  
  50% {
    -webkit-transform: translate3D(6rem, 7rem, 0);
    opacity: 1;
    z-index: 1;
    -webkit-animation-timing-function: ease-in-out;
  }
  
  55% {
    z-index: -1;
  }
  
  75% {
    width: .5rem;
    height: .5rem;
    opacity: .5;
  }
  
  100% {
   -webkit-transform: translate3D(-3rem,-9rem,0); 
    z-index: -1;
  }
}

@-moz-keyframes particle-c {
  0% {
   -moz-transform: translate3D(-3rem,-9rem,0);
    z-index: 1;
    -moz-animation-timing-function: ease-in-out;
  }
  
  25% {
    width: 1.9rem;
    height: 1.9rem;
  }
  
  50% {
    -moz-transform: translate3D(6rem, 7rem, 0);
    opacity: 1;
    z-index: 1;
    -moz-animation-timing-function: ease-in-out;
  }
  
  55% {
    z-index: -1;
  }
  
  75% {
    width: .5rem;
    height: .5rem;
    opacity: .5;
  }
  
  100% {
   -moz-transform: translate3D(-3rem,-9rem,0); 
    z-index: -1;
  }
}

@-o-keyframes particle-c {
  0% {
   -o-transform: translate3D(-3rem,-9rem,0);
    z-index: 1;
    -o-animation-timing-function: ease-in-out;
  }
  
  25% {
    width: 1.9rem;
    height: 1.9rem;
  }
  
  50% {
    -o-transform: translate3D(6rem, 7rem, 0);
    opacity: 1;
    z-index: 1;
    -o-animation-timing-function: ease-in-out;
  }
  
  55% {
    z-index: -1;
  }
  
  75% {
    width: .5rem;
    height: .5rem;
    opacity: .5;
  }
  
  100% {
   -o-transform: translate3D(-3rem,-9rem,0); 
    z-index: -1;
  }
}

@keyframes particle-c {
  0% {
   transform: translate3D(-3rem,-9rem,0);
    z-index: 1;
    animation-timing-function: ease-in-out;
  }
  
  25% {
    width: 1.9rem;
    height: 1.9rem;
  }
  
  50% {
    transform: translate3D(6rem, 7rem, 0);
    opacity: 1;
    z-index: 1;
    animation-timing-function: ease-in-out;
  }
  
  55% {
    z-index: -1;
  }
  
  75% {
    width: .5rem;
    height: .5rem;
    opacity: .5;
  }
  
  100% {
   transform: translate3D(-3rem,-9rem,0); 
    z-index: -1;
  }
}