/* Presentation-only siblings. The original image keeps layout, source,
   choreography, hit-testing and native scale. No stage/UI resizing. */
.aot-environment-canvas {
  position: absolute; inset: 0; width: 100%; height: 100%;
  pointer-events: none; user-select: none;
}
.aot-environment-scenery { z-index: 0; }
.aot-environment-floor { z-index: 1; }
.aot-environment-weather { z-index: 3; }
.battle-viewport.aot-environment-painted .stage-shade { visibility: hidden; }
.aot-lit-sprite {
  position: absolute; pointer-events: none; user-select: none;
  display: block; image-rendering: auto;
}
.combatant.aot-surface-ready > :is(.party-sprite,.enemy-sprite) { visibility: hidden; }
.combatant:not(.aot-surface-ready) > .aot-lit-sprite { display: none !important; }
.aot-environment-canvas[hidden] { display: none; }
