@keyframes RollOutRight { 
  0% { transform: translateX(0vw) rotate(0deg); }
  100% { transform: translateX(100vw) rotate(180deg); }
}
@keyframes RollOutLeft { 
  0% { transform: translateX(0vw) rotate(0deg); }
  100% { transform: translateX(-100vw) rotate(-180deg); }
}
@keyframes RollInRight { 
  0% { transform: translateX(100vw) rotate(180deg); }
  100% { transform: translateX(0vw) rotate(0deg); }
}
@keyframes RollInLeft { 
  0% { transform: translateX(-100vw) rotate(-180deg); }
  100% { transform: translateX(0vw) rotate(0deg); }
}
@keyframes RotateOutUpRight { 
  0% { transform: translateX(0%) translateY(0%) rotate(0deg); opacity: 1; }
  100% { transform: translateX(40%) translateY(-250%) rotate(90deg); opacity: 0; }
}
@keyframes RotateOutUpLeft { 
  0% { transform: translateX(0%) translateY(0%) rotate(0deg); opacity: 1; }
  100% { transform: translateX(-40%) translateY(-250%) rotate(-90deg); opacity: 0; }
}
@keyframes RotateOutDownRight { 
  0% { transform: translateX(0%) translateY(0%) rotate(0deg); opacity: 1; }
  100% { transform: translateX(40%) translateY(250%) rotate(-90deg); opacity: 0; }
}
@keyframes RotateOutDownLeft { 
  0% { transform: translateX(0%) translateY(0%) rotate(0deg); opacity: 1; }
  100% { transform: translateX(-40%) translateY(250%) rotate(90deg); opacity: 0; }
}
@keyframes RotateInUpRight { 
  0% { transform: translateX(40%) translateY(250%) rotate(-90deg); opacity: 0; }
  100% { transform: translateX(0%) translateY(0%) rotate(0deg); opacity: 1; }
}
@keyframes RotateInUpLeft { 
  0% { transform: translateX(-40%) translateY(250%) rotate(90deg); opacity: 0; }
  100% { transform: translateX(0%) translateY(0%) rotate(0deg); opacity: 1; }
}
@keyframes RotateInDownRight { 
  0% { transform: translateX(40%) translateY(-250%) rotate(90deg); opacity: 0; }
  100% { transform: translateX(0%) translateY(0%) rotate(0deg); opacity: 1; }
}
@keyframes RotateInDownLeft { 
  0% { transform: translateX(-50%) translateY(-250%) rotate(-90deg); opacity: 0; }
  100% { transform: translateX(0%) translateY(0%) rotate(0deg); opacity: 1; }
}
@keyframes PinwheelOut { 
  0% { transform: rotate(0rad) scale(1); opacity: 1; }
  100% { transform: rotate(5rad) scale(0); opacity: 0; }
}
@keyframes PinwheelIn { 
  0% { transform: rotate(5rad) scale(0); opacity: 0; }
  100% { transform: rotate(0deg) scale(1); opacity: 1; }
}
@keyframes LightSpeedOutLeft { 
  0% { transform: translateX(0vw) skew(0deg); opacity: 1; }
  100% { transform: translateX(-100vw) skew(45deg); opacity: 0; }
}
@keyframes LightSpeedOutRight { 
  0% { transform: translateX(0vw) skewX(0deg); opacity: 1; }
  100% { transform: translateX(100vw) skewX(-45deg); opacity: 0; }
}
@keyframes LightSpeedInLeft { 
  0% { transform: translateX(-100vw) skewX(45deg); opacity: 0; }
  70% { transform: skewX(-10deg); }
  85% { transform: skewX(5deg); }
  100% { transform: skewX(0deg); }
}
@keyframes LightSpeedInRight { 
  0% { transform: translateX(100vw) skewX(-45deg); opacity: 0; }
  70% { transform: skewX(10deg); }
  85% { transform: skewX(-5deg); }
  100% { transform: skewX(0deg); }
}
@keyframes SlideOutDown { 
  0% { transform: translateY(0%); }
  100% { transform: translateY(100vh); }
}
@keyframes SlideOutUp { 
  0% { transform: translateY(0%); }
  100% { transform: translateY(-100vh); }
}
@keyframes SlideOutLeft { 
  0% { transform: translateX(0%); }
  100% { transform: translateX(-100vw); }
}
@keyframes SlideOutRight { 
  0% { transform: translateX(0%); }
  100% { transform: translateX(100vw); }
}
@keyframes SlideInDown { 
  0% { transform: translateY(100vh); }
  100% { transform: translateY(0%); }
}
@keyframes SlideInUp { 
  0% { transform: translateY(-100vh); }
  100% { transform: translateY(0%); }
}
@keyframes SlideInLeft { 
  0% { transform: translateX(-100vw); }
  100% { transform: translateX(0%); }
}
@keyframes SlideInRight { 
  0% { transform: translateX(100vw); }
  100% { transform: translateX(0%); }
}
@keyframes ZoomOutEasyDown { 
  0% { transform: translateY(0%) scale(1); }
  100% { transform: translateY(100%) scale(0); }
}
@keyframes ZoomOutEasyUp { 
  0% { transform: translateY(0%) scale(1); }
  100% { transform: translateY(-100%) scale(0); }
}
@keyframes ZoomOutDown { 
  0% { transform: translateX(0vh) scale(1); }
  100% { transform: translateY(100vh) scale(0); }
}
@keyframes ZoomOutUp { 
  0% { transform: translateX(0vh) scale(1); }
  100% { transform: translateY(-100vh) scale(0); }
}
@keyframes ZoomOutLeft { 
  0% { transform: translateX(0vw) scale(1); }
  100% { transform: translateX(-100vw) scale(0); }
}
@keyframes ZoomOutRight { 
  0% { transform: translateX(0vw) scale(1); }
  100% { transform: translateX(100vw) scale(0); }
}
@keyframes ZoomOutRotate { 
  0% { transform: scale(1) rotate(0rad); }
  100% { transform: scale(0) rotate(0.3rad); }
}
@keyframes ZoomOut { 
  0% { transform: scale(1); }
  100% { transform: scale(0); }
}
@keyframes ZoomInEasyDown { 
  0% { transform: translateY(100%) scale(0); }
  100% { transform: translateY(0%) scale(1); }
}
@keyframes ZoomInEasyUp { 
  0% { transform: translateY(-100%) scale(0); }
  100% { transform: translateY(0%) scale(1); }
}
@keyframes ZoomInDown { 
  0% { transform: translateY(100vh) scale(0); }
  100% { transform: translateY(0%) scale(1); }
}
@keyframes ZoomInUp { 
  0% { transform: translateY(-100vh) scale(0); }
  100% { transform: translateY(0%) scale(1); }
}
@keyframes ZoomInLeft { 
  0% { transform: translateX(-100vw) scale(0); }
  100% { transform: translateX(0%) scale(1); }
}
@keyframes ZoomInRight { 
  0% { transform: translateX(100vw) scale(0); }
  100% { transform: translateX(0%) scale(1); }
}
@keyframes ZoomInRotate { 
  0% { transform: scale(0) rotate(0.3rad); }
  100% { transform: scale(1) rotate(0deg); }
}
@keyframes ZoomIn { 
  0% { transform: scale(0); }
  100% { transform: scale(1); }
}
@keyframes StretchOutY { 
  0% { transform: scaleY(1); }
  100% { transform: scaleY(0); }
}
@keyframes StretchOutX { 
  0% { transform: scaleX(1); }
  100% { transform: scaleX(0); }
}
@keyframes StretchInY { 
  0% { transform: scaleY(0); }
  100% { transform: scaleY(1); }
}
@keyframes StretchInX { 
  0% { transform: scaleX(0); }
  100% { transform: scaleX(1); }
}
@keyframes FlipOutEasyY { 
  0% { transform: perspective(500px) rotateY(0deg); }
  100% { transform: perspective(500px) rotateY(90deg); }
}
@keyframes FlipOutEasyX { 
  0% { transform: perspective(500px) rotateX(0deg); }
  100% { transform: perspective(500px) rotateX(90deg); }
}
@keyframes FlipOutXDown { 
  0% { transform: perspective(500px) rotateX(0deg) translateY(0%); }
  100% { transform: perspective(500px) rotateX(-90deg) translateY(100%); }
}
@keyframes FlipOutXUp { 
  0% { transform: perspective(500px) rotateX(0deg) translateY(0%); }
  100% { transform: perspective(500px) rotateX(90deg) translateY(-100%); }
}
@keyframes FlipOutYLeft { 
  0% { transform: perspective(500px) rotateY(0deg) translateX(0%); }
  100% { transform: perspective(500px) rotateY(-90deg) translateX(-100%); }
}
@keyframes FlipOutYRight { 
  0% { transform: perspective(500px) rotateY(0deg) translateX(0%); }
  100% { transform: perspective(500px) rotateY(90deg) translateX(100%); }
}
@keyframes FlipInEasyY { 
  0% { transform: perspective(500px) rotateY(90deg); }
  100% { transform: perspective(500px) rotateY(0deg); }
}
@keyframes FlipInEasyX { 
  0% { transform: perspective(500px) rotateX(90deg); }
  100% { transform: perspective(500px) rotateX(0deg); }
}
@keyframes FlipInXDown { 
  0% { transform: perspective(500px) rotateX(-90deg) translateY(100%); }
  100% { transform: perspective(500px) rotateX(0deg) translateY(0%); }
}
@keyframes FlipInXUp { 
  0% { transform: perspective(500px) rotateX(90deg) translateY(-100%); }
  100% { transform: perspective(500px) rotateX(0deg) translateY(0%); }
}
@keyframes FlipInYLeft { 
  0% { transform: perspective(500px) rotateY(-90deg) translateX(-100%); }
  100% { transform: perspective(500px) rotateY(0deg) translateX(0%); }
}
@keyframes FlipInYRight { 
  0% { transform: perspective(500px) rotateY(90deg) translateX(100%); }
  100% { transform: perspective(500px) rotateY(0deg) translateX(0%); }
}
@keyframes BounceOutDown { 
  0% { transform: translateY(0px); }
  15% { transform: translateY(-10px); }
  30% { transform: translateY(10px); }
  45% { transform: translateY(-20px); }
  100% { transform: translateY(100vh); }
}
@keyframes BounceOutUp { 
  0% { transform: translateY(0px); }
  15% { transform: translateY(10px); }
  30% { transform: translateY(-10px); }
  45% { transform: translateY(20px); }
  100% { transform: translateY(-100vh); }
}
@keyframes BounceOutLeft { 
  0% { transform: translateX(0px); }
  15% { transform: translateX(10px); }
  30% { transform: translateX(-10px); }
  45% { transform: translateX(20px); }
  100% { transform: translateX(-100vh); }
}
@keyframes BounceOutRight { 
  0% { transform: translateX(0px); }
  15% { transform: translateX(-10px); }
  30% { transform: translateX(10px); }
  45% { transform: translateX(-20px); }
  100% { transform: translateX(100vh); }
}
@keyframes BounceOut { 
  0% { transform: scale(1); }
  15% { transform: scale(1.1); }
  30% { transform: scale(0.9); }
  45% { transform: scale(1.2); }
  100% { transform: scale(0.1); }
}
@keyframes BounceInDown { 
  0% { transform: translateY(100vh); }
  55% { transform: translateY(-20px); }
  70% { transform: translateY(10px); }
  85% { transform: translateY(-10px); }
  100% { transform: translateY(0px); }
}
@keyframes BounceInUp { 
  0% { transform: translateY(-100vh); }
  55% { transform: translateY(20px); }
  70% { transform: translateY(-10px); }
  85% { transform: translateY(10px); }
  100% { transform: translateY(0px); }
}
@keyframes BounceInLeft { 
  0% { transform: translateX(-100vw); }
  55% { transform: translateX(20px); }
  70% { transform: translateX(-10px); }
  85% { transform: translateX(10px); }
  100% { transform: translateX(0px); }
}
@keyframes BounceInRight { 
  0% { transform: translateX(100vw); }
  55% { transform: translateX(-20px); }
  70% { transform: translateX(10px); }
  85% { transform: translateX(-10px); }
  100% { transform: translateX(0px); }
}
@keyframes BounceIn { 
  0% { transform: scale(0); }
  55% { transform: scale(1.2); }
  70% { transform: scale(0.9); }
  85% { transform: scale(1.1); }
  100% { transform: scale(1); }
}
@keyframes FadeOutDown { 
  0% { opacity: 1; transform: translateY(0px); }
  100% { opacity: 0; transform: translateY(25px); }
}
@keyframes FadeOutUp { 
  0% { opacity: 1; transform: translateY(0px); }
  100% { opacity: 0; transform: translateY(-25px); }
}
@keyframes FadeOutLeft { 
  0% { opacity: 1; transform: translateX(0px); }
  100% { opacity: 0; transform: translateX(-25px); }
}
@keyframes FadeOutRight { 
  0% { opacity: 1; transform: translateX(0px); }
  100% { opacity: 0; transform: translateX(25px); }
}
@keyframes FadeOut { 
  0% { opacity: 1; }
  100% { opacity: 0; }
}
@keyframes FadeInDown { 
  0% { opacity: 0; transform: translateY(25px); }
  100% { opacity: 1; transform: translateY(0px); }
}
@keyframes FadeInUp { 
  0% { opacity: 0; transform: translateY(-25px); }
  100% { opacity: 1; transform: translateY(0px); }
}
@keyframes FadeInLeft { 
  0% { opacity: 0; transform: translateX(-25px); }
  100% { opacity: 1; transform: translateX(0px); }
}
@keyframes FadeInRight { 
  0% { opacity: 0; transform: translateX(25px); }
  100% { opacity: 1; transform: translateX(0px); }
}
@keyframes FadeIn { 
  0% { opacity: 0; }
  100% { opacity: 1; }
}
