/* Motion belongs to the approved composition, with stable body/foot anchors. */
.butterfly-figure {
  position: absolute;
  inset: 0 auto auto 0;
  width: 118px;
  height: auto;
  aspect-ratio: 3 / 2;
  transform-origin: 65% 91%;
  pointer-events: none;
  contain: layout;
}
.butterfly-figure > img,
.butterfly-figure > canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.footer-butterfly { z-index: 3; }
.scene .stage-air {
  z-index: 5;
  opacity: var(--dust-level, .72);
  transition: opacity 700ms ease;
}
.scene[data-film-paused] .stage-air span,
.scene[data-offstage] .stage-air span { animation-play-state: paused; }
.stage-air .wood-dust { animation: dust-lift var(--time) var(--delay) ease-in-out infinite; }
.stage-air .light-dust {
  background: #ede3ff;
  box-shadow: 0 0 4px #ddd1ed55;
}
@media (min-width: 44rem) { .butterfly-figure { width: 126px; } }
@media (prefers-reduced-motion: reduce) {
  .scene .stage-air { display: none; }
  .scene .stage-air span { animation: none !important; }
}
