/* A small visitor in the distant Play landscape. */
.scene--play .play-dragon-flight {
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  width: 36px;
  aspect-ratio: 3 / 2;
  opacity: 0;
  pointer-events: none;
  user-select: none;
  transform-origin: 50% 50%;
}

.play-dragon-flight .play-dragon-body,
.play-dragon-flight .play-dragon-sprite {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.play-dragon-flight .play-dragon-sprite {
  background-size: 200% 200%;
  background-position: 0 0;
  background-repeat: no-repeat;
  filter: saturate(.54) contrast(.76) brightness(1.09) blur(.18px);
}

.play-dragon-flight.is-flying {
  will-change: transform, opacity;
}

.play-dragon-flight.is-flying .play-dragon-body {
  animation: play-dragon-breath 1.8s ease-in-out infinite;
}

.play-dragon-flight.is-flying .play-dragon-sprite {
  animation: play-dragon-wings 1.8s steps(1, end) infinite;
}

.play-dragon-flight.is-paused .play-dragon-body,
.play-dragon-flight.is-paused .play-dragon-sprite {
  animation-play-state: paused;
}

@keyframes play-dragon-wings {
  0%, 100% { background-position: 0 0; }
  25% { background-position: 100% 0; }
  50% { background-position: 0 100%; }
  75% { background-position: 100% 100%; }
}

@keyframes play-dragon-breath {
  0%, 100% { transform: translateY(0) rotate(.5deg); }
  48% { transform: translateY(.45px) rotate(-.5deg); }
}

@media (prefers-reduced-motion: reduce) {
  .scene--play .play-dragon-flight { display: none; }
  .play-dragon-flight .play-dragon-body,
  .play-dragon-flight .play-dragon-sprite { animation: none; }
}
