/* Image-space hit regions move together with the artwork. */
#corridorPlane{position:absolute;transform-origin:center;pointer-events:none}
#corridorPlane>img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}
#emptyPlate{mask-image:radial-gradient(ellipse 4.5% 15.5% at 75.1% 35.8%,#000 90%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse 4.5% 15.5% at 75.1% 35.8%,#000 90%,transparent 100%)}
#corridorPlane>img:first-child{visibility:hidden}
#corridorPlane.plateReady>img:first-child{visibility:visible}
#stairMap{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
#stairTarget{fill:transparent;stroke:transparent;stroke-width:2;pointer-events:all;cursor:pointer;transition:fill .25s,stroke .25s;outline:none}
.stairAccent{fill:none;stroke:#eadd78;stroke-width:3;opacity:.35;pointer-events:none;transition:opacity .25s;filter:drop-shadow(0 0 7px #ffdd5b)}
.stairLabel{fill:#fff0a5;font:12px 'DM Sans',sans-serif;letter-spacing:2px;text-anchor:middle;opacity:0;pointer-events:none;transition:opacity .25s}
#exitDoor:hover #stairTarget,#exitDoor:focus-within #stairTarget{fill:#ffe57924;stroke:#ffe78e}
#exitDoor:hover .stairAccent,#exitDoor:focus-within .stairAccent,#exitDoor:hover .stairLabel,#exitDoor:focus-within .stairLabel{opacity:1}
#roomComposition{position:absolute}
#roomComposition .roomPhoto{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}
#objectMap{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.roomObject{pointer-events:none}
.objectTarget{fill:transparent;stroke:transparent;stroke-width:2;cursor:pointer;pointer-events:all;outline:none;transition:fill .25s,stroke .25s;vector-effect:non-scaling-stroke}
.roomObject:hover .objectTarget,.roomObject:focus-within .objectTarget{fill:#f4df7a14;stroke:#e4d777;filter:drop-shadow(0 0 5px #ebd27050)}
.objectNumber{pointer-events:none;fill:#ede6c3;font:500 18px 'DM Sans',sans-serif;text-anchor:middle;paint-order:stroke;stroke:#152017;stroke-width:4px;stroke-linejoin:round}
.objectLabel{opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;transform:translateY(5px)}
.objectLabel rect{fill:#17261bec;stroke:#e5db9470;stroke-width:1}
.objectLabel text{fill:#fff0c0;font:18px 'DM Sans',sans-serif;text-anchor:middle}
.roomObject:hover .objectLabel,.roomObject:focus-within .objectLabel{opacity:1;transform:translateY(0)}
.roomWorld>.shade{pointer-events:none;background:linear-gradient(0deg,#0c160fcc,transparent 23%,transparent 85%,#101a124d)}
.roomHeading{bottom:8%;pointer-events:none}
.roomHeading h2{font-size:clamp(32px,3.1vw,48px)}
.roomHeading>p:last-child{font-size:12px}
#room .roomHeading h2{font-size:32px;line-height:1.1;margin:10px 0}
@media(min-width:701px){.roomHeading{top:100px;bottom:auto;left:4.3%}.roomHeading .eyebrow{font-size:9px}#room .roomHeading h2{font-size:26px}.roomHeading>p:last-child{max-width:220px;font-size:11px}}
#room:focus{outline:none}
@media(max-width:700px){.objectNumber{font-size:38px;stroke-width:7px}.objectLabel text{font-size:25px}.roomHeading{bottom:13%}.roomHeading h2{font-size:36px}.roomHeading>p:last-child{max-width:280px;line-height:1.7}.stairLabel{font-size:14px}}
@media(prefers-reduced-motion:reduce){.objectTarget,.objectLabel,.stairAccent,.stairLabel,#stairTarget{transition:none}}
