/* One camera view, one spatial view. Detailed room surfaces remain static. */
.iv-exhibit {
  position: relative;
  isolation: isolate;
  width: 100%;
  max-width: 1880px;
  margin: clamp(58px, 7vw, 122px) auto 10px;
  color: #056bff;
}
.iv-atmosphere {
  position: absolute;
  z-index: -1;
  inset: 3% 0 -2%;
  pointer-events: none;
  background: radial-gradient(ellipse at 66% 54%, rgba(137, 188, 246, .18), rgba(224, 238, 255, .06) 40%, transparent 71%);
}
.iv-stage { position: relative; width: 100%; aspect-ratio: 1.84; }
.iv-capture { position: absolute; z-index: 2; width: 27%; left: 4%; top: 31%; }
.iv-view-label { display: flex; align-items: center; gap: 9px; color: #52759f; font-size: clamp(11px, .85vw, 15px); letter-spacing: .025em; line-height: 1.4; margin-bottom: 17px; }
.iv-view-label > svg { width: 19px; height: 19px; flex: 0 0 19px; }
.iv-viewfinder { position: relative; overflow: hidden; border-radius: 12px; background: #e5effa; border: 1px solid #fff; box-shadow: 0 20px 48px -25px #183e793d, 0 1px 3px #15365c14; }
.iv-capture-svg { width: 100%; height: auto; display: block; }
.iv-focus { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.iv-connection { position: absolute; z-index: 3; top: 53%; left: 32.2%; width: 7%; color: #5c98e7; }
.iv-connection > svg { width: 100%; height: auto; overflow: visible; }
.iv-room { position: absolute; width: 63%; left: 37%; top: 0; aspect-ratio: 920 / 770; }
.iv-room-surface { position: absolute; inset: 0; }
.iv-room-svg { width: 100%; height: 100%; display: block; overflow: visible; }
.iv-room-svg path, .iv-room-svg polygon { stroke-linecap: round; }
.iv-room-svg .iv-floor-line { opacity: .4; }
.iv-room-label { position: absolute; right: 10%; top: 5%; color: #3675c9; margin: 0; }
.iv-measure { position: absolute; width: 100%; height: 100%; inset: 0; overflow: visible; pointer-events: none; }
@media (max-width: 767px) {
  .iv-exhibit { margin-top: 58px; margin-bottom: 25px; max-width: 550px; }
  .iv-stage { aspect-ratio: .68; }
  .iv-capture { top: 0; left: 16%; width: 68%; }
  .iv-view-label { font-size: 11px; gap: 7px; margin-bottom: 12px; }
  .iv-view-label > svg { width: 16px; height: 16px; flex-basis: 16px; }
  .iv-viewfinder { border-radius: 10px; }
  .iv-connection { top: calc(36.8% + 14.3px); left: 47.5%; width: 5%; transform: rotate(90deg); }
  .iv-room { width: 100%; left: 0; top: 42%; }
  .iv-room-label { top: 1%; right: 9%; }
  .iv-atmosphere { inset: 27% 0 -3%; }
}
@media (prefers-reduced-motion: reduce) {
  .iv-capture, .iv-room-surface, .iv-room-label, .iv-measure { transform: none !important; opacity: 1 !important; }
  .iv-connection { opacity: 1 !important; }
  .iv-measure-line, .iv-connection-line { stroke-dashoffset: 0 !important; }
}
