/* Entrance animations — the six keyframes actually used, extracted from
   animate.css (73 KB, now removed). Driven by js/init.js via .animated,
   replacing WOW.js. Without .js (no scripting) elements stay visible. */

.js .wow { visibility: hidden; }
.js .wow.animated { visibility: visible; animation-duration: 1s; animation-fill-mode: both; }
.js .wow.animated.fadeIn        { animation-name: fadeIn; }
.js .wow.animated.fadeInLeft    { animation-name: fadeInLeft; }
.js .wow.animated.fadeInRight   { animation-name: fadeInRight; }
.js .wow.animated.fadeInUp      { animation-name: fadeInUp; }
.js .wow.animated.fadeInDownBig { animation-name: fadeInDownBig; }
.js .wow.animated.bounceInUp    { animation-name: bounceInUp; }

.js .wow[data-animate-delay="0.5s"] { animation-delay: 0.5s; }
.js .wow[data-animate-delay="0.8s"] { animation-delay: 0.8s; }
.js .wow[data-animate-delay="1s"]   { animation-delay: 1s; }
.js .wow[data-animate-delay="1.5s"] { animation-delay: 1.5s; }

@keyframes fadeIn {
  0%   { opacity: 0; }
  100% { opacity: 1; }
}
@keyframes fadeInLeft {
  0%   { opacity: 0; transform: translate3d(-100%, 0, 0); }
  100% { opacity: 1; transform: none; }
}
@keyframes fadeInRight {
  0%   { opacity: 0; transform: translate3d(100%, 0, 0); }
  100% { opacity: 1; transform: none; }
}
@keyframes fadeInUp {
  0%   { opacity: 0; transform: translate3d(0, 100%, 0); }
  100% { opacity: 1; transform: none; }
}
@keyframes fadeInDownBig {
  0%   { opacity: 0; transform: translate3d(0, -2000px, 0); }
  100% { opacity: 1; transform: none; }
}
@keyframes bounceInUp {
  0%, 60%, 75%, 90%, 100% {
    transition-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, -20px, 0); }
  75%  { transform: translate3d(0, 10px, 0); }
  90%  { transform: translate3d(0, -5px, 0); }
  100% { transform: translate3d(0, 0, 0); }
}
