/* Immersive lobby scene — interactive hotspots remain HTML overlays. */
.experience{background:#132f2f}.scene{width:min(1680px,100%);height:min(56.25vw,860px);min-height:620px;background:linear-gradient(90deg,#10232422,transparent 30%,transparent 75%,#10232425),url('assets/safety-central-lobby.png') center/cover no-repeat}.floor-grid,.sky-glow{display:none}.room{top:25%;width:18%;height:25%;padding:0;border:0;border-radius:12px;background:transparent;box-shadow:none;justify-content:flex-end}.room:before{display:none}.room:hover,.room:focus-visible{transform:none;box-shadow:none;outline:none}.room:hover .room-label,.room:focus-visible .room-label{background:#113a39;color:#fff;transform:translateY(-5px)}.onboarding{left:26%}.hazard{left:42%}.iipp{right:23%}.door-icon{display:none}.room-label{width:max-content;max-width:190px;padding:9px 14px;border:1px solid #ffffff80;border-radius:9px;background:#fffffff0;color:#153c3d;box-shadow:0 5px 15px #122b2c44;font-size:13px;text-align:center;letter-spacing:.2px;transition:.2s}.room-sub{display:none}.waiting-area,.water-feature,.garden{display:none}.reception{left:1%;bottom:24%;width:28%;height:28%;opacity:0}.reception:hover{opacity:1;background:linear-gradient(90deg,#103c3a99,transparent);border-radius:18px}.reception:hover #helpLabel{display:block;position:absolute;top:35%;left:20px;width:max-content;padding:9px 14px;border-radius:9px;background:#fff;color:#174442;font-weight:700}.reception-sign,.counter,.receptionist{display:none}.reception>span{display:none}.safety,.emergency-sign,.evacuation-map{display:none}.avatar{left:49%;bottom:10%;transform:scale(1.45);filter:drop-shadow(0 5px 5px #132d2e77)}.avatar-shadow{left:calc(49% + 1px);bottom:9%;transform:scale(1.6)}.guide-card{top:22px;background:#fffffff0}.legend{bottom:18px}.activity-bar{box-shadow:0 -5px 24px #102d3022}@media(max-width:900px){.scene{height:620px;background-position:center}.room{top:20%;height:28%}.onboarding{left:20%;width:24%}.hazard{left:39%;width:24%}.iipp{right:14%;width:24%}.room-label{font-size:11px}.reception{left:0;bottom:22%;width:32%}}

/* Desktop: the full lobby must fit inside the viewport, including ultrawide screens. */
@media (min-width: 901px) {
  html, body { height: 100%; overflow: hidden; }
  .app-shell { height: 100dvh; min-height: 0; display: flex; flex-direction: column; }
  .topbar { flex: 0 0 72px; }
  .experience { flex: 1 1 auto; min-height: 0; }
  .scene { height: 100%; min-height: 0; }
  .activity-bar { flex: 0 0 68px; min-height: 68px; }
  dialog { max-height: calc(100dvh - 48px); overflow: auto; }
}
