.stage{touch-action:pan-y pinch-zoom;cursor:grab;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.stage.is-looking,.stage.is-looking *{cursor:grabbing!important}
.walk-marker{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;filter:drop-shadow(0 2px 3px #12253d80)}
.walk-marker path{fill:#dccbff24;stroke:#f8f4ff;stroke-width:2;vector-effect:non-scaling-stroke}
.explore-tools{position:absolute;right:var(--pad);top:136px;z-index:5;display:flex;align-items:center;gap:8px;font-size:10px}
.navigation-help{position:relative}.navigation-help summary,.resume-tour{display:flex;align-items:center;gap:7px;padding:9px 12px;border:1px solid #ffffff80;border-radius:30px;background:#20394d24;color:white;box-shadow:inset 0 1px 0 #ffffff60,0 3px 10px #102a421a;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);text-shadow:0 1px 5px #10223380;cursor:pointer;font-size:10px;font-weight:600}
.navigation-help summary{list-style:none}.navigation-help summary::-webkit-details-marker{display:none}.navigation-help svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.5}
.navigation-help>div{position:absolute;right:0;top:46px;width:min(285px,calc(100vw - 40px));padding:18px;border:1px solid #ffffffb0;border-radius:20px;background:#eaf0f2ed;color:#273c4f;box-shadow:0 12px 35px #0a213333;font-size:12px;line-height:1.6;cursor:default;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
.navigation-help p{margin:10px 0}.navigation-help small{font-size:10px;color:#566d7b}.resume-tour{display:none}.stage.is-exploring .resume-tour{display:flex}
.stage.is-looking .captions{opacity:0}.stage.is-looking .captions *{pointer-events:none!important}
.stage.is-travelling .hotspots *{pointer-events:none!important}
.stage.is-looking .walk-marker{display:none}
.static .explore-tools,.static .walk-marker{display:none!important}.static .stage{cursor:auto;touch-action:auto;user-select:auto;-webkit-user-select:auto}
@media(max-width:760px){.explore-tools{top:136px;right:20px;gap:6px}.navigation-help summary{padding:9px}.navigation-help summary>span{display:none}.resume-tour{font-size:9px;padding:10px}.travel-hint{width:calc(100% - 50px);text-align:center;font-size:9px;bottom:104px}.navigation-help>div{font-size:11px}}
.door-stop{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;gap:11px;max-width:210px;min-height:52px;padding:11px 14px;border:1px solid #ffffffa8;border-radius:16px;background:linear-gradient(130deg,#ffffff40,#ffffff10),#19344830;color:white;box-shadow:inset 0 1px 1px #ffffff7a,0 6px 22px #142b4030;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);text-shadow:0 1px 5px #15293d;pointer-events:auto;cursor:pointer;text-align:left;font:inherit;transition:background .18s,box-shadow .18s}
.door-stop svg{width:21px;height:24px;fill:none;stroke:currentColor;stroke-width:1.4;flex:none}.door-stop strong{display:block;font-size:10px;font-weight:700}.door-stop small{display:block;font-size:9px;opacity:.85;margin-top:4px}.door-stop>span:last-child{font-size:16px;margin-left:2px}.door-stop:hover,.door-stop:focus-visible{background:#9d82b56b;box-shadow:inset 0 1px 1px #fff9,0 5px 24px #52326b44;outline:2px solid #e5caff;outline-offset:3px}.door-stop[hidden]{display:none}.stage.is-looking .door-stop{opacity:0;pointer-events:none}
@media(max-width:760px){.door-stop{max-width:190px;padding:9px 11px;gap:8px;min-height:50px}.door-stop strong{font-size:9px}.door-stop small{font-size:8px}}

/* Scene actions: readable labels, an explicit action and generous hit targets. */
.hotspot{width:242px;min-height:64px;gap:12px;padding:11px 14px;border:1px solid #fff9;border-radius:20px;justify-content:flex-start;white-space:normal;text-align:left;background:linear-gradient(135deg,#4a41575e,#192332a3),#1b2635d9;color:#fff;box-shadow:inset 0 1px 1px #ffffff8c,0 5px 22px #0b122f44,0 0 0 4px #cda9ff20;transform:translate(-50%,calc(-100% - 23px));text-shadow:none;transition:background .18s,border-color .18s,box-shadow .18s}
.hotspot[data-kind=person]{width:164px}.interaction-icon{display:grid;place-items:center;width:34px;height:34px;flex:none;border-radius:11px;background:linear-gradient(145deg,#be71ec,#8a4caa);border:1px solid #ecd3ffb3;box-shadow:inset 0 1px 1px #ffffff63}.interaction-icon svg{width:23px;height:23px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.interaction-copy{display:grid;gap:4px;min-width:0}.interaction-copy strong{font-size:14px;line-height:1.25;font-weight:750}.interaction-copy small{font-size:11px;line-height:1.3;font-weight:500;color:#eee4fa}.hotspot:before{left:calc(50% + var(--anchor-offset,0px));height:23px;width:2px;background:#f3dfff}.hotspot:after{left:calc(50% - 7px + var(--anchor-offset,0px));top:calc(100% + 16px);width:14px;height:14px;background:#d0a2fa;border:2px solid #fff;box-shadow:0 0 0 5px #ca9af74d,0 0 18px #cc92fa88}.object-hit{left:calc(50% + var(--anchor-offset,0px));top:calc(100% + 23px);width:76px;height:64px}.hotspot:hover,.hotspot[aria-pressed=true]{background:linear-gradient(135deg,#76509bd9,#35284cf2);border-color:#fff;box-shadow:inset 0 1px 1px #fff8,0 6px 24px #1a0d354f,0 0 0 4px #d9b8ff52}.hotspot:focus-visible,.door-stop:focus-visible{outline:3px solid #f3ddff;outline-offset:5px}
.door-stop{width:276px;max-width:none;min-height:76px;padding:14px 17px;gap:13px;border-color:#ffffffe0;border-radius:21px;background:linear-gradient(135deg,#74788660,#273141a3),#253445b8;box-shadow:inset 0 1px 2px #ffffff9c,0 6px 24px #142b4055,0 0 0 4px #d4b5ff20;text-shadow:0 1px 3px #07102080}.door-stop svg{width:29px;height:31px;stroke-width:1.7}.door-stop strong{font-size:14px;line-height:1.25}.door-stop small{font-size:12px;line-height:1.25;opacity:1;color:#f0e7f9;margin-top:5px}.door-stop>span:last-child{font-size:23px;margin-left:auto}.door-stop:hover{background:linear-gradient(135deg,#795b97c9,#3b334fe8)}
.captions .team-choices{gap:8px;flex-wrap:wrap}.captions .team-choices button,.captions .gallery-choices button{min-height:44px;min-width:74px;padding:10px 15px;font-size:13px;font-weight:700;border-color:#ffffff9c;background:linear-gradient(135deg,#60536f9e,#263244dc);box-shadow:inset 0 1px 1px #fff6,0 3px 12px #11203833}.captions .team-choices button:hover,.captions .gallery-choices button:hover{background:#77558ac9}.captions .text-action{min-height:44px;font-size:13px}.captions .team-choices [data-presence-dot]{width:9px;height:9px}
@media(max-width:760px){.hotspot{width:210px;min-height:60px;padding:10px 12px;gap:9px}.hotspot[data-kind=person]{width:138px}.interaction-icon{width:30px;height:32px}.interaction-icon svg{width:21px;height:21px}.interaction-copy strong{font-size:13px}.interaction-copy small{font-size:10px}.door-stop{width:238px;min-height:70px;padding:12px 13px;gap:10px}.door-stop strong{font-size:13px}.door-stop small{font-size:11px}.door-stop svg{width:26px;height:28px}.captions .team-choices button,.captions .gallery-choices button{font-size:12px;padding:10px 12px;min-width:69px}.stage[data-chapter="6"] .service-chapter{width:290px}.captions .text-action{font-size:12px}}
@media(prefers-contrast:more){.hotspot,.door-stop{background:#1c2435;border-color:#fff}.interaction-copy small{color:#fff}}
.hotspot.is-below{transform:translate(-50%,23px)}.hotspot.is-below:before{top:-23px}.hotspot.is-below:after{top:-30px}.hotspot.is-below .object-hit{top:-23px}

/* Common floor affordance: visible circle only, accessible label stays hidden. */
.walk-marker[hidden],.walk-target[hidden]{display:none}.walk-target{position:absolute;transform:translate(-50%,-50%);width:56px;height:48px;background:transparent;border:0;border-radius:50%;padding:0;z-index:2;pointer-events:none}.walk-target:focus-visible{outline:2px solid #f8f4ff;outline-offset:4px}.static .walk-target{display:none!important}
/* The stage owns floor taps and drags. Keep this button for keyboard activation
   without letting its invisible hit area swallow looking or touch scrolling. */

/* The header only carries the logo and the local clock/opening state. */
.stage{--vp-pad:var(--pad)}
.vp-place-header .daylight-control{position:relative;top:auto;left:auto;font-size:inherit;color:inherit}
.vp-place-header .daylight-panel{right:0;left:auto;top:48px;text-align:left;text-shadow:none}
.vp-place-header .studio-status{position:static;top:auto;left:auto;font-size:11px;color:#ffffffe8;text-shadow:inherit;pointer-events:none}
.vp-place-header .studio-status::before{margin:0}
.menu-help{background:none;border:0;color:inherit;font:inherit;font-size:12px;padding:16px 0;min-height:44px;cursor:pointer}
@media(max-width:760px){.vp-place-header .studio-status{font-size:10px}}
