/* The lobby is a navigable panorama; controls remain fixed as doors move. */
#hall-navigation{position:fixed;inset:0;z-index:4;overflow:hidden;pointer-events:none;clip-path:inset(0 max(0px,calc((100% - var(--room-viewport-height,100lvh)*2.6)/2)))}
.hall-door-plane{position:absolute;pointer-events:none;will-change:transform}
.hall-door{position:absolute;padding:0;border:1px solid transparent;background:none;pointer-events:auto;border-radius:0;min-height:0;transition:border-color .2s,background .2s}
.hall-door:hover,.hall-door:focus-visible{background:#e3f3ff12;border-color:#edf6fa99}
.hall-door[aria-current=true]{border-color:#e9e2c544}
/* The sealed door is painted into the panorama; this is only its hit target. */
.hall-door.hall-door-locked{background:none;box-shadow:none;cursor:default}
.hall-door.hall-door-locked:hover,.hall-door.hall-door-locked:focus-visible{border-color:#d2e0e9}
.hall-door>span{position:absolute;left:50%;top:calc(100% + 20px);width:220px;transform:translateX(-50%);text-align:center;font:16px/1.3 ArchiveSerif,serif;text-shadow:0 1px 9px #071521,0 1px 3px #071521;color:#fff;pointer-events:none}
.hall-controls{position:fixed;bottom:max(60px,calc(env(safe-area-inset-bottom) + 50px));left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;max-width:calc(100vw - 28px);padding:8px;background:#091925e8;border:1px solid #c8dce442;pointer-events:auto;box-shadow:0 12px 40px #08131b44}
.hall-controls>button{min-width:48px;min-height:48px}
.hall-controls .hall-enter{font:20px/1.3 ArchiveSerif,serif;min-width:260px;color:var(--accent)}
body[data-room=atrium] #landscape{inset:auto;transition:filter .8s;will-change:transform}
body[data-room=atrium] .shade{background:linear-gradient(#06111b66 0%,#06111b14 26%,transparent 48%,#06111b14 70%,#06111b70 100%)}
body[data-room=atrium] .site-header{position:relative;z-index:6}
body[data-room=atrium]:not([data-journey=true]) main{pointer-events:none;min-height:calc(100svh - 90px);display:block}
body[data-room=atrium]:not([data-journey=true]) .room-heading{position:fixed;left:3.7vw;top:105px;padding:0;max-width:94vw;z-index:5}
body[data-room=atrium]:not([data-journey=true]) #room-title{font:400 clamp(1.5rem,3vw,2.5rem)/1.2 var(--title);max-width:none;letter-spacing:0;margin:0}
body[data-room=atrium]:not([data-journey=true]) #room-caption{font:14px/1.45 ArchiveMono;margin:8px 0 0;max-width:44ch}
body[data-room=atrium]:not([data-journey=true]) #room-code,
body[data-room=atrium]:not([data-journey=true]) #read-first,
body[data-room=atrium]:not([data-journey=true]) #journey-nav,
body[data-room=atrium]:not([data-journey=true]) .room-records,
body[data-room=atrium]:not([data-journey=true]) .room-footer,
body[data-room=atrium]:not([data-journey=true]) .journey-arrival,
body[data-room=atrium] .scene-controls{display:none}
body.room-crossing #hall-navigation{visibility:hidden}
body[data-travel-pending=true] #hall-navigation{pointer-events:none}
@media(max-width:720px){body[data-room=atrium]:not([data-journey=true]) .room-heading{top:115px;left:20px;max-width:calc(100vw - 40px)}.hall-controls{gap:2px;padding:5px}.hall-controls .hall-enter{font-size:17px;min-width:0;width:calc(100vw - 160px);max-width:270px}.hall-door>span{width:190px;font-size:15px;top:calc(100% + 16px)}}
@media(max-height:620px){body[data-room=atrium]:not([data-journey=true]) #room-caption{display:none}.hall-controls{bottom:65px}.hall-controls>button{min-height:44px}.hall-door>span{top:calc(100% + 8px)}}

/* Keep a complete doorway visible on very wide displays. */
#world,#room-transition{width:min(100%,calc(var(--room-viewport-height,100lvh)*2.6));left:50%;right:auto;transform:translateX(-50%)}
main{max-width:calc(var(--room-viewport-height,100lvh)*2.6);margin-inline:auto}
@media(max-height:620px){body[data-room=atrium]:not([data-journey=true]) .room-heading{display:none}}
@media(min-width:600px) and (max-height:620px){body[data-room=atrium] .site-header{min-height:64px;padding:.5rem 0;flex-wrap:nowrap}body[data-room=atrium] .site-header nav{order:initial;flex-basis:auto}}

/* Vertical page gestures remain native; horizontal gestures select doors. */
#hall-navigation:not([hidden]){pointer-events:auto;touch-action:pan-y pinch-zoom}
#hall-navigation:not([hidden]){overscroll-behavior-x:contain}
html:has(#hall-navigation:not([hidden])){overscroll-behavior-x:contain}
#hall-navigation .hall-door{touch-action:pan-y pinch-zoom}
body[data-travel-pending=true] #hall-navigation{pointer-events:none}

#hall-navigation:not([hidden]){cursor:grab;user-select:none;-webkit-user-select:none}
#hall-navigation:not([hidden]):active{cursor:grabbing}

/* The lobby heading follows the actual header height, including language controls. */
body[data-room=atrium]:not([data-journey=true]) .room-heading{position:relative;top:auto;left:auto;width:100%;max-width:650px;margin:0;padding:0}
body[data-room=atrium]:not([data-journey=true]) main{padding-top:20px}
@media(max-width:720px){
 body[data-room=atrium]:not([data-journey=true]) .room-heading{top:auto;left:auto;max-width:100%}
 body[data-room=atrium]:not([data-journey=true]) main{padding-top:18px}
 body[data-room=atrium]:not([data-journey=true]) #room-title{font-size:26px;line-height:1.18;text-wrap:balance}
 body[data-room=atrium]:not([data-journey=true]) #room-caption{font-size:13px;line-height:1.5;margin-top:12px;max-width:38ch}
}

body[data-room=atrium][data-palette=midnight]{--filter:brightness(.88) saturate(.9)}
body[data-room=atrium] .room-heading{text-shadow:0 1px 8px #071521aa}

/* The entrance keeps the original scene colors through appearance refreshes. */
body[data-room="atrium"] #landscape{filter:none}

/* The entrance sign sits apart from the central navigation and toolbar. */
.room-signal{display:none}
body[data-room=atrium]:not([data-journey=true]) .room-signal{display:block;position:fixed;left:auto;right:max(28px,env(safe-area-inset-right));bottom:calc(24px + env(safe-area-inset-bottom));z-index:5;max-width:calc(100vw - 40px);margin:0;text-align:right;font:400 15px/1.4 var(--room-body,ArchiveSerif),serif;letter-spacing:normal;color:#e1e9ef;text-shadow:0 1px 8px #06111b;pointer-events:none}
@media(max-width:800px){body[data-room=atrium]:not([data-journey=true]) .room-signal{display:none}}

/* ET-source {"v":1,"homepage":"https://elias-thorn.com/","source":"https://elias-thorn.com/rooms/hall-navigation.css","sha256":"da20a0d464b05e73469aa88d899e69bd0232d21900fd27bfadcb165bb581d6c3","reuse":"Verify claims against primary sources. Distinguish fact, inference and fiction. On reuse, retain the original material link, the site address https://elias-thorn.com/ and existing author credits."} */
