.abduction { display: block; width: 168px; height: 168px; image-rendering: pixelated; shape-rendering: crispEdges; filter: drop-shadow(4px 4px 0 #000); overflow: visible; }
.abduction .ufo { animation: ab-bob 1.2s steps(2) infinite; }
.abduction .ufo-light { animation: ab-blink .9s steps(1) infinite; }
.abduction .ufo-light:nth-of-type(2n) { animation-delay: .45s; }
.abduction .beam { opacity: 0; animation: ab-beam 5s steps(1) infinite; }
.abduction .beam-inner { animation: ab-flicker .25s steps(2) infinite; }
.abduction .cow { transform-box: fill-box; transform-origin: 50% 50%; animation: ab-cow 5s steps(40) infinite; }
.abduction .cow-legs { animation: ab-kick .3s steps(2) infinite; }
.abduction .star { animation: ab-blink 1.6s steps(1) infinite; }
.abduction .star:nth-of-type(3n) { animation-delay: .8s; }

@keyframes ab-bob { 50% { transform: translateY(1px); } }
@keyframes ab-blink { 50% { opacity: .15; } }
@keyframes ab-flicker { 50% { opacity: .7; } }
@keyframes ab-kick { 50% { transform: translateY(-1px); } }
@keyframes ab-beam {
  0%, 12% { opacity: 0; }
  14%, 82% { opacity: 1; }
  84%, 100% { opacity: 0; }
}
@keyframes ab-cow {
  0%, 16% { transform: translateY(0) rotate(0) scale(1); opacity: 1; }
  40% { transform: translateY(-12px) rotate(-12deg) scale(.85); opacity: 1; }
  62% { transform: translateY(-24px) rotate(10deg) scale(.6); opacity: 1; }
  78% { transform: translateY(-33px) rotate(0) scale(.3); opacity: 1; }
  80%, 94% { transform: translateY(-34px) scale(.2); opacity: 0; }
  96% { transform: translateY(-6px) scale(1); opacity: 0; }
  100% { transform: translateY(0) scale(1); opacity: 1; }
}

.scene-art { display: block; width: 168px; height: 168px; image-rendering: pixelated; shape-rendering: crispEdges; filter: drop-shadow(4px 4px 0 #000); overflow: visible; }
.storm .flash { opacity: 0; animation: st-flash 3.2s steps(1) infinite; }
.storm .bolt { opacity: 0; animation: st-bolt 3.2s steps(1) infinite; }
.storm .rack { animation: st-shake 3.2s steps(1) infinite; }
.storm .led { animation: ab-blink .5s steps(1) infinite; }
.storm .led.l2 { animation-delay: .2s; }
.storm .led.l3 { animation-delay: .35s; }
.storm .led.dead { animation-duration: 1.4s; }
.storm .flame { transform-box: fill-box; transform-origin: 50% 100%; animation: st-flame .3s steps(2) infinite; }
.storm .flame.f2 { animation-duration: .24s; }
.storm .flame.f3 { animation-duration: .36s; }
.storm .smoke { animation: st-smoke 2.2s steps(11) infinite; }
.storm .smoke.s2 { animation-delay: .7s; }
.storm .smoke.s3 { animation-delay: 1.4s; }
.scene-art .spark { opacity: 0; animation: st-spark .9s steps(1) infinite; }
.scene-art .spark.s2 { animation-delay: .3s; }
.scene-art .spark.s3 { animation-delay: .6s; }
.repair .wrench { transform-box: view-box; transform-origin: 29px 35px; animation: rp-wrench .6s steps(3) infinite alternate; }
.repair .static { animation: ab-blink .2s steps(1) infinite; }
.repair .static.s2 { animation-delay: .1s; }
.repair .worker { animation: ab-bob 1.2s steps(2) infinite; }

@keyframes st-flash { 0%, 100% { opacity: 0; } 20% { opacity: .55; } 22% { opacity: 0; } 25% { opacity: .35; } 27% { opacity: 0; } }
@keyframes st-bolt { 0%, 18%, 30%, 100% { opacity: 0; } 19%, 26% { opacity: 1; } }
@keyframes st-shake { 0%, 18%, 32%, 100% { transform: none; } 20% { transform: translate(-1px, 0); } 24% { transform: translate(1px, 0); } 28% { transform: translate(-1px, 0); } }
@keyframes st-flame { 50% { transform: scaleY(1.4) translateY(-1px); } }
@keyframes st-smoke { from { transform: translateY(0); opacity: .9; } to { transform: translateY(-16px) translateX(3px); opacity: 0; } }
@keyframes st-spark { 0%, 40%, 100% { opacity: 0; } 10%, 30% { opacity: 1; } }
@keyframes rp-wrench { from { transform: rotate(-30deg); } to { transform: rotate(20deg); } }

@media (prefers-reduced-motion: reduce) {
  .scene-art *, .scene-art .bolt { animation: none !important; }
  .storm .bolt { opacity: 1; }
}
.reduce-motion .scene-art * { animation: none !important; }
.reduce-motion .storm .bolt { opacity: 1; }

@media (prefers-reduced-motion: reduce) {
  .abduction .ufo, .abduction .ufo-light, .abduction .beam-inner, .abduction .cow-legs, .abduction .star { animation: none; }
  .abduction .beam { animation: none; opacity: 1; }
  .abduction .cow { animation: none; transform: translateY(-16px) rotate(-8deg) scale(.8); }
}
.reduce-motion .abduction .ufo, .reduce-motion .abduction .ufo-light, .reduce-motion .abduction .beam-inner, .reduce-motion .abduction .cow-legs, .reduce-motion .abduction .star { animation: none; }
.reduce-motion .abduction .beam { animation: none; opacity: 1; }
.reduce-motion .abduction .cow { animation: none; transform: translateY(-16px) rotate(-8deg) scale(.8); }
