.lucky-motion {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  aspect-ratio: 1920 / 1184;
  overflow: hidden;
  pointer-events: none;
  opacity: 0;
  contain: layout paint;
}
.lucky-motion.is-ready { opacity: 1; }
.lucky-motion.is-reduced { opacity: 0; }
.lucky-motion img { position: absolute; display: block; height: auto; }
.lucky-motion-backdrop { inset: 0; width: 100%; }
.lucky-lantern { animation: lucky-lantern-sway var(--sway-duration) ease-in-out infinite; animation-play-state: paused; }
.lucky-lantern--large {
  left: 80.052083%; top: 0; width: 19.739583%;
  transform-origin: 50.325857% 0;
  --sway-duration: 7.8s; --sway-angle: 2deg;
}
.lucky-lantern--small {
  left: 46.927083%; top: 9.037162%; width: 15.3125%;
  transform-origin: 50.207483% 0;
  --sway-duration: 6.4s; --sway-angle: -2.6deg;
  animation-delay: -1.6s;
}
.lucky-motion.is-running .lucky-lantern { animation-play-state: running; }
@keyframes lucky-lantern-sway {
  0%, 100% { transform: rotate(calc(-1 * var(--sway-angle))); }
  50% { transform: rotate(var(--sway-angle)); }
}
@media (prefers-reduced-motion: reduce) {
  .lucky-motion { display: none; }
  .lucky-lantern { animation: none; }
}
