:root { color-scheme: dark; }
* { box-sizing: border-box; }
body { margin: 0; background: #000; }
main { min-height: 100svh; display: grid; place-items: center; }
.scene {
  position: relative;
  isolation: isolate;
  margin: 0;
  width: min(100%, 2560px, calc(100svh * 16 / 9));
  aspect-ratio: 16 / 9;
  container-type: inline-size;
}
.base-artwork {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
/* Future overlays use the same canvas; cropped targets use percentage positions. */
.layer { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.target { position: absolute; z-index: 1; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; }
}
