* { box-sizing: border-box; }
html, body { height: 100%; margin: 0; }
body {
  background: #050505;
  overflow: hidden;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.stage {
  position: fixed;
  inset: 0;
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at center, rgba(255,255,255,.08), transparent 45%),
    #050505;
}
.poster,
.hotspots {
  width: min(100vw, calc(100vh * 1086 / 1536));
  height: min(100vh, calc(100vw * 1536 / 1086));
}
.poster {
  display: block;
  object-fit: contain;
  filter: drop-shadow(0 0 28px rgba(0,0,0,.65));
}
.hotspots {
  position: absolute;
  inset: auto;
}
.spot {
  position: absolute;
  left: var(--x);
  top: var(--y);
  width: var(--w);
  height: var(--h);
  border-radius: 10px;
  cursor: pointer;
  transition: background .18s ease, outline .18s ease, box-shadow .18s ease;
}
.spot:hover,
.spot:focus-visible {
  outline: 2px solid rgba(235, 204, 156, .95);
  background: rgba(235, 204, 156, .12);
  box-shadow: 0 0 24px rgba(235, 204, 156, .45);
}
@media (max-aspect-ratio: 1086/1536) {
  body { overflow-y: auto; }
  .stage { min-height: 100svh; }
}
