/* The interface takes its cues from brass room plaques and printed catalogues. */
:root{--house-ink:#273c34;--house-paper:#eee5cf;--house-brass:#d7bd86}
.atmosphere-mixer{display:flex;align-items:center;gap:9px;width:100%;padding:14px 0;margin-top:17px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:10px;color:var(--cream)}.atmosphere-mixer svg{width:15px;height:15px}.atmosphere-mixer svg:last-child{margin-left:auto;color:var(--gold)}
.masthead .eyebrow{letter-spacing:.19em!important;color:#f4e5c7}.masthead h1{font-size:35px}.masthead{filter:drop-shadow(0 2px 8px #18261d66)}
.house-wayfinding{position:absolute;left:33px;top:103px;z-index:4;display:flex;align-items:center;gap:16px}.house-wayfinding button{display:flex;align-items:center;gap:12px;background:linear-gradient(130deg,#f5eddaee,#e5d9bfe8);color:#334d41;border:1px solid #fff6e299;border-radius:12px;padding:11px 14px;box-shadow:0 6px 30px #12282020;backdrop-filter:blur(18px);transition:background .2s,transform .3s}.house-wayfinding button:hover{transform:translateY(-2px);background:#fff3d9}.house-wayfinding button>span:nth-child(2){text-align:left}.house-wayfinding small{display:block;font-size:7px;letter-spacing:.19em;margin-bottom:5px;color:#786b51}.house-wayfinding strong{display:block;font:17px Georgia,serif;letter-spacing:-.2px}.house-map-icon{width:28px;display:grid;place-items:center}.house-map-icon svg{width:27px;height:27px;stroke-width:1.1}.room-number{font:27px Georgia,serif;color:#9c8b63;padding-left:16px;border-left:1px solid #9e8b6638;line-height:35px}.house-map-arrow{font-size:19px;color:#8e7d57}.life-count{font-size:8px;letter-spacing:.04em;color:#f4ead3;text-shadow:0 1px 10px #163329;display:flex;align-items:center;gap:6px}.life-count:before{content:'';width:4px;height:4px;background:#d5dfb1;border-radius:50%;box-shadow:0 0 0 3px #bac79a1c}
.district-nav{top:179px;left:33px;background:#243c32bc;padding:3px}.district-nav button{font-size:9px;padding:8px 11px}.room-places{position:absolute;left:33px;top:179px;display:flex;padding:3px;background:#243c32d9;border:1px solid #e9d8af22;border-radius:24px;gap:2px;z-index:4;backdrop-filter:blur(16px)}.room-places:empty{display:none}.room-places button{border-radius:20px;padding:9px 12px;font-size:9px;color:#e0ddc8}.room-places button:hover,.room-places button.chosen{background:#e8d1a42a;color:#fae4bc}.annex .district-nav{display:none}.annex #routeBtn,.annex #stopBtn,.annex [data-camera=station]{display:none}.annex .dock{width:min(820px,calc(100% - 60px))}
.immersion-entry{position:absolute;right:33px;top:91px;z-index:4;display:flex;align-items:center;gap:7px}.immersion-entry button{height:40px;display:flex;align-items:center;gap:9px;background:#253d33e3;border:1px solid #d5bc7b66;border-radius:30px;padding:0 17px;color:#f2dfb8;font-size:11px;box-shadow:0 6px 24px #14261e26;backdrop-filter:blur(14px);transition:background .2s,transform .2s}.immersion-entry button:hover{background:#4c5b40;transform:translateY(-2px)}.immersion-entry svg{width:16px;height:16px}.immersion-entry kbd{font:8px inherit;border:1px solid #d2b4803d;border-radius:4px;padding:3px 5px;margin-left:4px;color:#bdb493}.immersion-entry #soundMixerButton{padding:0;width:40px;justify-content:center;border-color:#d4c4992b}
.sound-panel{position:absolute;z-index:35;right:33px;top:147px;width:296px;padding:23px 24px 20px;border-radius:18px;border:1px solid #dfcf9f6b;background:linear-gradient(145deg,#f1e9d6fb,#e2d6bdfb);color:#35493b;box-shadow:0 24px 75px #0c1c2544;backdrop-filter:blur(25px)}.sound-panel[hidden]{display:none}.sound-panel-top{display:flex;justify-content:space-between;align-items:center}.sound-panel .eyebrow{color:#817253;font-size:7px}.sound-panel-top button{font-size:24px;line-height:1;color:#817253;margin:-8px -6px -8px 0}.sound-panel h2{font:28px/1.15 Georgia,serif;letter-spacing:-.7px;margin:19px 0 9px;max-width:190px}.sound-panel p{font-size:10px;line-height:1.8;color:#78806b;margin:0 0 17px}.sound-enable{width:100%;background:#3f5948;color:#f1e4c7;border-radius:8px;padding:11px;font-size:10px;margin-bottom:3px}.sound-enable:hover{background:#527058}.sound-panel label{display:flex;justify-content:space-between;font-size:10px;margin:23px 0 13px}.sound-panel output{color:#937c4f;font-variant-numeric:tabular-nums}.sound-panel input[type=range]{--gold:#9b8050;background:linear-gradient(to right,#9b8050 0%,#9b8050 var(--fill),#c7bda5 var(--fill),#c7bda5 100%)}.sound-status{font-size:8px;color:#8b7857;line-height:1.6;text-align:left;padding:15px 0 0;margin-top:22px;border-top:1px solid #9d8e6b3b;width:100%}.headphone-note{display:block;font:italic 12px Georgia,serif;color:#6c785f;margin-top:8px}
.room-transition{position:fixed;inset:0;background:#233c32;z-index:90;display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .7s,visibility .7s}.room-transition.visible{opacity:1;visibility:visible;pointer-events:auto}.room-transition>span{font:italic 90px Georgia,serif;color:#dac4964a;margin-bottom:30px}.room-transition .eyebrow{font-size:8px;letter-spacing:.3em;color:#bcb597}.room-transition h2{font:40px Georgia,serif;color:#e8d9b8;font-weight:400;margin:15px 0}.transition-rule{width:55px;height:1px;background:#b99d5c;margin-top:15px}
.building .house-wayfinding,.building .room-places,.building .immersion-entry,.hidden-ui #houseUI{display:none}.building .sound-panel{display:none}
#cinemaUI{display:none;position:absolute;inset:0;pointer-events:none;z-index:20;color:#e4ddc9}.cinematic #cinemaUI{display:block}.cinematic #ui,.cinematic .mode-switch,.cinematic .district-nav,.cinematic .house-wayfinding,.cinematic .room-places,.cinematic .immersion-entry,.cinematic #restore{opacity:0;pointer-events:none!important;visibility:hidden}.cinematic #editorOverlay{display:none}.cinema-matte{position:absolute;left:0;right:0;height:7vh;background:#101b17}.cinema-matte.top{top:0}.cinema-matte.bottom{bottom:0}.cinema-wordmark{position:absolute;left:33px;top:2.6vh;font:9px Georgia,serif;letter-spacing:.16em;color:#d9cba9}.cinema-wordmark i{font:6px Arial,sans-serif;letter-spacing:.2em;color:#7f8d7d;margin-left:12px}.cinema-caption{position:absolute;left:44px;bottom:14vh;text-shadow:0 2px 18px #0d201bb3;transition:opacity 2.8s}.cinema-caption>span{font-size:7px;letter-spacing:.26em;color:#dfd0af}.cinema-caption h2{font:44px Georgia,serif;letter-spacing:-1.1px;margin:12px 0 7px;font-weight:400}.cinema-caption p{font:italic 15px Georgia,serif;color:#d0ceba;margin:0}.cinema-session{position:absolute;right:33px;bottom:2.6vh;display:flex;align-items:center;gap:10px;font-size:6px;letter-spacing:.17em;color:#81927f}.cinema-live-dot{width:4px;height:4px;border-radius:50%;background:#b4c59c}.cinema-session time{font-size:9px;letter-spacing:.08em;color:#bfb898;margin-left:9px;font-variant-numeric:tabular-nums}#cinemaExit{position:absolute;right:33px;top:2.1vh;font-size:9px;color:#b9bba5;display:flex;align-items:center;gap:16px;padding:5px 0;pointer-events:auto}#cinemaExit kbd{font:7px Arial,sans-serif;border:1px solid #8f9c7d40;border-radius:4px;padding:3px 5px}#cinemaExit:hover{color:#fff1cd}#cinemaControls{position:absolute;left:50%;bottom:11vh;transform:translateX(-50%);display:flex;align-items:center;gap:12px;padding:9px 15px;border:1px solid #d9cfaa30;border-radius:35px;background:#172e25b8;backdrop-filter:blur(22px);box-shadow:0 8px 35px #18231922;pointer-events:auto;transition:opacity 1.5s,transform 1.5s}#cinemaControls button{display:flex;align-items:center;gap:7px;padding:8px 4px;font-size:9px;white-space:nowrap;color:#e6dcc0}#cinemaControls button:hover{color:#fff4d8}#cinemaControls svg{width:14px;height:14px}.cinema-separator{height:20px;width:1px;background:#d0c89c30}.cinema-camera-label{font-size:8px;color:#b1b69f}#cinemaShot{background:#1b3328;color:#e6dcc0;border:1px solid #cfc6952a;border-radius:15px;padding:7px 9px;font:9px inherit;max-width:140px}.cinema-idle #cinemaControls{opacity:0;transform:translate(-50%,8px);pointer-events:none}.cinema-idle .cinema-caption{opacity:0}.cinema-idle #cinemaControls:focus-within{opacity:1;transform:translateX(-50%);pointer-events:auto}.cinematic .sound-panel{top:auto;bottom:20vh}
@media(min-width:1600px){.cinema-caption h2{font-size:52px}}
@media(max-width:1100px){.life-count{display:none}.house-wayfinding{left:24px}.immersion-entry{right:24px}.masthead h1{font-size:30px}.district-nav{left:24px}.house-wayfinding strong{font-size:16px}}
@media(max-width:820px){.masthead .eyebrow{font-size:6px!important;max-width:180px}.masthead h1{font-size:28px}.mode-switch{top:79px}.house-wayfinding{top:137px;left:17px;right:17px;justify-content:space-between}.house-wayfinding button{padding:9px 12px;gap:8px}.house-wayfinding strong{font-size:15px}.house-wayfinding small{font-size:6px}.room-number{font-size:24px;padding-left:12px;line-height:28px}.house-map-icon{width:24px}.house-map-icon svg{width:24px;height:24px}.immersion-entry{top:140px;right:17px;gap:4px}.immersion-entry button{font-size:9px;padding:0 11px;height:37px;gap:5px}.immersion-entry kbd{display:none}.immersion-entry #soundMixerButton{display:none}.district-nav{top:201px;left:17px;transform:none;max-width:calc(100% - 34px);border-radius:18px}.room-places{left:17px;right:17px;top:201px;overflow:auto;scrollbar-width:none;width:max-content;max-width:calc(100% - 34px)}.room-places button{font-size:8px;white-space:nowrap;padding:9px 10px}.sound-panel{right:17px;top:202px;max-height:calc(100dvh - 220px);overflow:auto}.annex .dock{width:calc(100% - 28px)}.annex .view-caption{max-width:75%}.view-caption p{display:none}.cinema-caption{left:25px;bottom:23vh}.cinema-caption h2{font-size:34px}.cinema-caption p{font-size:13px}.cinema-wordmark{left:20px;font-size:7px}.cinema-wordmark i{display:none}#cinemaExit{right:20px;gap:8px;font-size:8px}#cinemaControls{gap:7px;padding:7px 10px;bottom:10vh;width:max-content;max-width:calc(100% - 25px)}#cinemaControls button{font-size:8px}#cinemaShot{font-size:8px;padding:7px;max-width:110px}.cinema-camera-label{display:none}.cinema-session{right:21px;font-size:5px}.cinema-session time{font-size:8px}.room-transition h2{font-size:29px}.room-transition>span{font-size:70px}.cinematic .sound-panel{bottom:21vh;max-height:66vh}}
@media(max-width:380px){.house-wayfinding strong{font-size:13px}.house-wayfinding button{padding:8px}.house-map-arrow{display:none}.house-wayfinding .room-number{padding-left:7px}.immersion-entry{right:13px}.immersion-entry button{font-size:8px;padding:0 9px}.cinema-separator{display:none}#cinemaControls{gap:5px}#cinemaMix{display:none}}
@media(max-height:600px) and (min-width:700px){.house-wayfinding{top:81px}.district-nav,.room-places{top:148px}.immersion-entry{top:80px}.sound-panel{top:128px;max-height:calc(100dvh - 147px);overflow:auto}.cinema-caption{bottom:27vh}.cinema-caption h2{font-size:31px}}
@media(prefers-reduced-motion:reduce){.room-transition,#cinemaControls,.cinema-caption{transition:none}}

/* Keep captions legible over pale floors and sea without tinting the model. */
#ui{isolation:isolate}
#ui::before{z-index:-1}
#ui::after{height:300px;background:linear-gradient(transparent,#12241d0a 15%,#12241d9c);z-index:-1}
.view-caption{text-shadow:0 2px 12px #14261dd9;pointer-events:none!important}
.view-caption .eyebrow{color:#ece2c9}
.view-caption p{color:#e3dfcd;font-size:11px;line-height:1.65}
.speed-badge{text-shadow:0 2px 12px #14261dcc}
@media(max-width:820px){#ui::after{height:280px;background:linear-gradient(transparent,#14261db8)}.view-caption p{display:none}}

/* Readable touch controls stay at the edges; the railway keeps the centre. */
@media(max-width:820px){
 .house-wayfinding{right:169px}
 .house-wayfinding button{min-width:0;max-width:100%;min-height:46px}
 .house-wayfinding button>span:nth-child(2){min-width:0}
 .house-wayfinding strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .house-wayfinding .room-number,.house-wayfinding .house-map-arrow{display:none}
 .immersion-entry button{height:44px;min-height:44px;font-size:13px;padding:0 12px;gap:6px}
 .immersion-entry #cinemaStart{min-width:132px}
 .room-places,.district-nav{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;flex-wrap:nowrap;width:max-content}
 .room-places button,.district-nav button{flex:0 0 auto;min-width:44px;min-height:44px;font-size:13px;line-height:1.25;padding:10px 13px;white-space:nowrap}
 #cinemaExit{right:12px;top:max(8px,env(safe-area-inset-top));min-height:44px;font-size:13px;padding:10px 12px}
 #cinemaExit kbd{display:none}
 #cinemaControls{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:2px 6px;width:min(400px,calc(100% - 28px));max-width:none;padding:7px 9px;border-radius:18px;bottom:max(20px,env(safe-area-inset-bottom))}
 #cinemaControls .cinema-separator{display:none}
 #cinemaControls button{justify-content:center;min-width:44px;min-height:44px;padding:8px 6px;font-size:13px;gap:5px}
 #cinemaPause{grid-column:1;grid-row:1}
 #cinemaShot{grid-column:2;grid-row:1;min-height:44px;min-width:0;width:100%;max-width:none;padding:8px;font-size:13px;border-radius:10px}
 #cinemaMute{grid-column:1;grid-row:2}
 #cinemaControls #cinemaMix{display:flex;grid-column:2;grid-row:2}
 #cinemaMix:after{content:'Mix sound'}
 .cinema-caption{bottom:calc(max(20px,env(safe-area-inset-bottom)) + 152px)}
 .cinema-session{display:none}
 .cinematic .sound-panel{bottom:calc(max(20px,env(safe-area-inset-bottom)) + 126px);max-height:calc(100dvh - max(20px,env(safe-area-inset-bottom)) - 150px)}
 .sound-panel-top button{display:grid;place-items:center;min-width:44px;min-height:44px}
 .sound-enable,.atmosphere-mixer{min-height:44px;font-size:13px}
}
@media(max-width:380px){
 .house-wayfinding .house-map-icon{display:none}
 #cinemaControls button{font-size:12px}
}

/* A quiet default: the room, a sound button, and one small control bar.
 * Legacy operating controls live inside disclosures so they keep their state. */
.quiet-ui #ui::before{height:110px;background:linear-gradient(#101e2473,transparent)}
.quiet-ui #ui::after{height:100px;background:linear-gradient(transparent,#12241d45)}
.quiet-ui .masthead{left:max(24px,env(safe-area-inset-left))!important;top:24px!important;gap:0;filter:none}
.quiet-ui .masthead .seal,.quiet-ui .masthead .eyebrow{display:none}
.quiet-ui .masthead h1{font-size:27px!important;margin:0;letter-spacing:-.8px}
.quiet-ui .house-wayfinding{top:max(18px,env(safe-area-inset-top));right:80px;left:auto;max-width:calc(100% - 260px)}
.quiet-ui .house-wayfinding button{width:202px;min-height:48px;max-width:100%;padding:8px 12px;gap:10px;border-radius:14px;background:linear-gradient(145deg,#344b40ed,#263e34ed);border:1px solid #d9c28c66;box-shadow:inset 0 1px #f7e6bc14,0 3px 12px #12231b24;color:#eee5cf;transition:background .2s,border-color .2s}
.quiet-ui .house-wayfinding button:hover{transform:none;background:#3b5546;border-color:#e6cd8da6}
.quiet-ui .house-wayfinding button:active{background:#294335}
.quiet-ui .house-wayfinding .room-switch-copy{display:flex;flex:1;flex-direction:column;gap:3px;min-width:0;text-align:left}
.quiet-ui .room-switch-label{font-size:12px;line-height:14px;font-weight:600;white-space:nowrap;color:#f2e2bc}
.quiet-ui .house-wayfinding strong{font-family:inherit;font-size:11px;line-height:14px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#c6d0bc}
.quiet-ui .house-wayfinding .house-map-icon{display:grid;place-items:center;flex:0 0 23px;width:23px;color:#d9c795}
.quiet-ui .house-map-icon svg{width:23px;height:23px;stroke-width:1.3}
.quiet-ui .house-wayfinding .room-switch-arrow{width:16px;height:16px;color:#d9c795}
.quiet-ui .room-number,.quiet-ui .life-count{display:none}
.quiet-sound{position:absolute;right:max(24px,env(safe-area-inset-right));top:max(18px,env(safe-area-inset-top))}
.quiet-ui .quiet-sound .round-btn{width:44px;height:44px;background:#1c302bc9;border-color:#eee5cf26;box-shadow:none}
.quiet-ui .quiet-sound svg{width:18px;height:18px}
.quiet-ui .view-caption,.quiet-ui .speed-badge,.quiet-ui .key-hint,.quiet-ui .cab-mark,.quiet-ui .immersion-entry{display:none}
.rail-controls{position:absolute;z-index:10;left:50%;bottom:max(24px,env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;align-items:center;justify-content:space-between;gap:5px;width:358px;max-width:calc(100% - 32px);padding:6px 9px;border:1px solid #eee5cf2e;border-radius:32px;background:#1b302be6;backdrop-filter:blur(18px);box-shadow:0 4px 24px #091d1529}
.rail-controls>button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:54px;min-height:46px;padding:4px 7px;border-radius:20px;font-size:11px;line-height:1.3;color:#e0decc}
.rail-controls>button svg{width:18px;height:18px}
.rail-controls>button:hover,.rail-controls>button[aria-expanded=true]{background:#d5c49b1c;color:#fff0d2}
.rail-controls #playBtn{min-width:44px;width:44px;height:44px;min-height:44px;padding:0;border:1px solid #decc9842;background:#d3be8621}
.rail-controls #cinemaStart kbd{display:none}
.quiet-ui .quiet-panel{position:fixed;z-index:40;inset:auto auto calc(max(24px,env(safe-area-inset-bottom)) + 76px) 50%;transform:translateX(-50%);width:380px;max-width:calc(100% - 32px);max-height:calc(100dvh - 185px);padding:18px 20px 20px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;border:1px solid #ddd1ad38;border-radius:18px;background:#20372ff5;box-shadow:0 12px 45px #091c183d;backdrop-filter:blur(22px);color:var(--cream);pointer-events:auto}
.quiet-ui .quiet-panel[hidden],.control-panel[hidden]{display:none!important}
.control-panel-head{display:flex;align-items:center;gap:5px;margin:-5px -7px 14px 0}
.quiet-panel>.control-panel-head{position:sticky;top:0;z-index:2;background:#20372f}
.control-panel-head h2{flex:1;margin:0;font:23px/1.2 Georgia,serif;letter-spacing:-.4px;outline:none}
.control-panel-head button{display:grid;place-items:center;flex-shrink:0;min-width:44px;min-height:44px;border-radius:50%;font-size:25px;color:#d8d2ba}
.control-panel-head button:hover{background:#e5d9b914}
.control-panel-head [data-panel-back][hidden]{display:none}
.control-label{font-size:11px;line-height:1.4;font-weight:400;color:#b7c1ae;margin:20px 0 9px}
.control-panel .camera-bar,.control-panel .district-nav,.control-panel .room-places{position:static;inset:auto;transform:none;width:100%;max-width:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px;background:none;border:0;border-radius:0;box-shadow:none;backdrop-filter:none;overflow:visible}
.control-panel .camera-bar button,.control-panel .district-nav button,.control-panel .room-places button{flex:1 0 auto;min-height:44px;padding:10px 13px;display:flex;align-items:center;justify-content:center;gap:6px;font-size:13px;line-height:1.3;border:1px solid #ded3b521;border-radius:10px;background:#d9d5b908;color:#dce0ce}
.control-panel .camera-bar button.selected,.control-panel .district-nav button.chosen,.control-panel .room-places button.chosen{background:#d3bc8126;border-color:#cfb98370;box-shadow:none;color:#f4dfb2}
.control-panel .camera-bar svg{width:16px;height:16px}
.quiet-ui.annex .control-panel .district-nav,.control-panel .room-places:empty{display:none}
.quiet-ui.annex .control-panel [data-camera=station]{display:none}
.quiet-ui .control-panel .dock{position:static;inset:auto;transform:none;width:100%;min-height:0;display:flex;flex-direction:column;align-items:stretch;gap:20px;margin:0;padding:0;border:0;border-radius:0;box-shadow:none;background:none;backdrop-filter:none}
.control-panel .dock .divider{display:none}
.control-panel .engine{min-width:0;gap:12px}
.control-panel .engine-medallion{min-width:44px;width:44px;height:44px}
.control-panel .engine-title{font-size:21px;white-space:normal;margin:3px 0}
.control-panel .engine .eyebrow{display:none}
.control-panel .engine-sub{font-size:11px;line-height:1.5;white-space:normal}
.control-panel .throttle-header{margin:0;align-items:center;min-height:24px}
.control-panel .throttle-header label{font-size:11px;letter-spacing:.05em}
.control-panel .throttle-header output{font-size:13px}
.control-panel .throttle-meta{font-size:10px;margin:0}
.quiet-ui .quiet-panel input[type=range]{height:44px;background-size:100% 4px;background-position:center;background-repeat:no-repeat;margin:0}
.quiet-ui .quiet-panel input:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.control-panel .dock-actions{display:flex;gap:6px;border:0;padding:0}
.control-panel .action{flex:1;min-height:48px;min-width:0;padding:8px;flex-direction:column;gap:6px;border:1px solid #ded3b526}
.control-panel .action span{font-size:12px}
.control-panel .action svg{width:18px;height:18px}
.quiet-ui .control-panel .train-inspector{position:static;inset:auto;width:100%;padding:18px 0 0;margin-top:22px;border:0;border-top:1px solid var(--line);border-radius:0;box-shadow:none;background:none;backdrop-filter:none}
.control-panel .train-inspector>h2,.control-panel .train-inspector>p,.control-panel .train-inspector>.eyebrow{display:none}
.control-panel .livery-swatches{position:static;margin:0 0 10px;gap:10px}
.control-panel .livery-swatches button{width:44px;height:44px}
.control-panel .livery-swatches span{display:block;font-size:11px}
.control-panel .train-close{position:static;width:100%;min-height:44px;font-size:13px;margin-top:16px}
.quiet-ui .control-panel .train-inspector .setting{max-width:none;margin:10px 0 0;padding:0}
.quiet-ui .control-panel .top-actions,.quiet-ui .control-panel .mode-switch{position:static;inset:auto;transform:none;display:flex;flex-direction:column;align-items:stretch;gap:0!important;width:100%;padding:0;margin:0;border:0;border-radius:0;box-shadow:none;background:none;backdrop-filter:none}
.quiet-ui .control-panel .top-actions button,.quiet-ui .control-panel .mode-switch button,.control-link{display:flex;align-items:center;justify-content:flex-start;gap:12px;width:100%;height:auto;min-height:48px;padding:10px 9px;border:0;border-radius:10px;box-shadow:none;background:none;backdrop-filter:none;font-size:13px;text-align:left;color:#e6e1cb;transform:none}
.quiet-ui .control-panel .top-actions button:hover,.control-panel .mode-switch button:hover,.control-link:hover{background:#dfd4b415}
.quiet-ui .control-panel .top-actions button svg,.quiet-ui .control-panel .mode-switch button svg,.control-link svg{width:18px;height:18px}
.quiet-ui .control-panel .top-actions #lightBtn{display:none}
.quiet-ui .control-panel .top-actions #photoBtn{display:flex}
.quiet-ui .control-panel .top-actions button span{display:inline}
.quiet-ui .control-panel #operateMode{display:none}
.quiet-ui.annex #morePanel #mapBtn{display:none}
.quiet-ui #morePanel .control-panel-head{margin-bottom:6px}
.builders-panel .builders-intro{margin:0 0 14px;line-height:1.6;color:#c5cbb9;font-size:13px}
#buildersList{list-style:none;padding:0;margin:0}
#buildersList li{padding:14px 0;border-top:1px solid #d1c59e25}
#buildersList h3{font:20px Georgia,serif;margin:3px 0 7px;color:#efdfbb}
#buildersList p{font-size:13px;line-height:1.65;margin:3px 0;overflow-wrap:anywhere}
#buildersList .builders-room{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#b7c3ac}
.builders-panel a{color:#e7cc92;text-underline-offset:4px}
.builders-panel a:focus-visible{outline:2px solid #e7cc92;outline-offset:4px;border-radius:2px}
.builders-panel .builders-contribute{display:block;padding:14px 0;min-height:44px;font-size:13px}
.quiet-ui .quiet-panel .setting{font-size:13px;min-height:44px;margin:8px 0;gap:12px}
.quiet-ui .quiet-panel .setting output{font-size:12px}
.quiet-ui .quiet-panel .toggle{flex-shrink:0;width:44px;height:44px;margin:0;border:0;background:none}
.quiet-ui .quiet-panel .toggle::after{content:'';position:absolute;inset:8px 0;border:1px solid #c4c3a13a;border-radius:20px;background:#576451;z-index:0}
.quiet-ui .quiet-panel .toggle[aria-pressed=true]::after{background:#a28955}
.quiet-ui .quiet-panel .toggle::before{top:16px;left:6px;z-index:1}
.quiet-ui .quiet-panel .toggle[aria-pressed=true]::before{transform:translateX(18px)}
.quiet-ui #ambiencePanel>.eyebrow,.quiet-ui #ambiencePanel>.setting-title,.quiet-ui #soundPanel>.sound-panel-top,.quiet-ui #soundPanel>h2,.quiet-ui #soundPanel>p,.quiet-ui #soundPanel>.headphone-note,.quiet-ui #layoutPanel>.panel-head,.quiet-ui #playlistPanel>.eyebrow,.quiet-ui #playlistPanel>h3,.quiet-ui #help>.eyebrow,.quiet-ui #help>#helpTitle{display:none}
.quiet-ui .ambient-presets button{min-height:44px;font-size:12px}
.quiet-ui #ambiencePanel .setting:has(#diagramToggle),.quiet-ui #ambiencePanel .setting-actions,.quiet-ui #ambiencePanel .tiny-info,.quiet-ui #ambiencePanel .atmosphere-mixer{display:none}
.quiet-ui .quiet-panel .setting-actions button,.quiet-ui .quiet-panel .tiny-info button,.quiet-ui .quiet-panel .atmosphere-mixer{min-height:44px;font-size:13px}
.quiet-ui .quiet-panel .tiny-info{margin-top:0;padding-top:0}
.quiet-ui #soundPanel label{margin:16px 0 0;font-size:13px;color:#d9ddc9}
.quiet-ui #soundPanel output{color:var(--gold)}
.quiet-ui #soundPanel .sound-status{font-size:11px;color:#b8c2ab;padding-top:12px;margin-top:10px;min-height:44px}
.quiet-ui #soundPanel input[type=range]{background-image:linear-gradient(to right,var(--gold) 0%,var(--gold) var(--fill),#70816e40 var(--fill),#70816e40 100%)}
.quiet-ui #soundPanel .sound-enable{min-height:44px;font-size:13px}
.quiet-ui .quiet-panel .playlist-title{font-size:13px}
.quiet-ui .quiet-panel .playlist-blurb,.quiet-ui .quiet-panel .playlist-note{font-size:11px;line-height:1.6}
.quiet-ui #layoutPanel #map{width:100%;height:auto;aspect-ratio:560/360}
.quiet-ui .quiet-panel .network-close{min-height:44px}
.quiet-ui .quiet-panel .turntable-action,.quiet-ui .quiet-panel .route-row button{min-height:44px;font-size:12px}
.quiet-ui .quiet-panel .service-row small{font-size:11px}
.quiet-ui .toast{top:auto;bottom:calc(max(24px,env(safe-area-inset-bottom)) + 78px);font-size:12px;max-width:calc(100% - 40px);border-radius:14px;padding:10px 15px;z-index:41}
.quiet-ui:has(.quiet-panel:not([hidden])) .toast{visibility:hidden}
.quiet-ui #restore{min-height:44px;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));font-size:12px}
.quiet-ui.building .rail-controls{display:none}
.quiet-ui.building .quiet-sound{display:none}
.quiet-ui.building #runMyRailway{display:flex;top:max(18px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));bottom:auto;min-height:44px;width:145px;border-radius:24px;font-size:12px}
.quiet-ui.hidden-ui #ui{visibility:hidden}
.quiet-ui.cinematic .rail-controls{visibility:hidden;pointer-events:none}
.quiet-ui .cinema-matte{height:0}
.quiet-ui #cinemaUI::before{content:'';position:absolute;inset:0 0 auto;height:90px;background:linear-gradient(#12241d65,transparent)}
.quiet-ui .cinema-caption{left:28px;bottom:120px}
.quiet-ui .cinema-caption h2{font-size:28px;margin:8px 0}
.quiet-ui .cinema-caption p,.quiet-ui .cinema-caption>span,.quiet-ui .cinema-wordmark i,.quiet-ui .cinema-session{display:none}
.quiet-ui .cinema-wordmark{top:30px;font-size:10px;text-shadow:0 1px 8px #12241d}
.quiet-ui #cinemaExit{top:15px;min-height:44px;font-size:12px;padding:10px 12px;border:1px solid #eee5cf26;border-radius:24px;background:#1c302bc9;color:#eee5cf;backdrop-filter:blur(16px)}
.quiet-ui #cinemaControls{bottom:max(24px,env(safe-area-inset-bottom));padding:6px 12px;gap:8px}
.quiet-ui #cinemaControls button{min-height:44px;font-size:12px}
.quiet-ui #cinemaShot{min-height:44px;font-size:12px}
.quiet-ui.cinematic .sound-panel{bottom:calc(max(24px,env(safe-area-inset-bottom)) + 76px)}
@media(max-width:820px){
 .quiet-ui .masthead{left:max(16px,env(safe-area-inset-left))!important;top:max(26px,calc(env(safe-area-inset-top) + 8px))!important}
 .quiet-ui .masthead h1{font-size:23px!important}
 .quiet-ui .house-wayfinding{top:max(18px,env(safe-area-inset-top));right:max(68px,calc(env(safe-area-inset-right) + 56px));max-width:calc(100% - 213px)}
 .quiet-ui .house-wayfinding button{min-width:0;min-height:48px;padding:8px 9px;gap:7px}
 .quiet-ui .house-wayfinding strong{font-size:11px}
 .quiet-sound{right:max(16px,env(safe-area-inset-right))}
 .rail-controls{bottom:max(12px,env(safe-area-inset-bottom));padding:5px 8px;max-width:calc(100% - 24px)}
 .quiet-ui .quiet-panel{bottom:calc(max(12px,env(safe-area-inset-bottom)) + 73px);max-width:calc(100% - 24px);max-height:min(62dvh,calc(100dvh - 154px));padding:14px 17px 18px}
 .quiet-ui .toast{bottom:calc(max(12px,env(safe-area-inset-bottom)) + 74px)}
 .quiet-ui .cinema-wordmark{left:18px;top:max(30px,calc(env(safe-area-inset-top) + 12px));font-size:8px}
 .quiet-ui #cinemaExit{top:max(15px,env(safe-area-inset-top));right:12px}
 .quiet-ui #cinemaControls{display:flex;width:358px;max-width:calc(100% - 24px);gap:4px;padding:5px 8px;border-radius:28px;bottom:max(12px,env(safe-area-inset-bottom))}
 .quiet-ui #cinemaControls button{flex:1;min-width:44px;padding:8px 4px;font-size:11px;gap:4px}
 .quiet-ui #cinemaShot{width:105px;max-width:32%;font-size:11px;padding:6px}
 .quiet-ui #cinemaControls #cinemaPause{font-size:0;flex:0 0 44px}
 .quiet-ui #cinemaControls #cinemaPause svg{width:18px;height:18px}
 .quiet-ui #cinemaControls #cinemaMix{flex:0 0 44px}
 .quiet-ui #cinemaMix::after{content:none}
 .quiet-ui .cinema-caption{left:20px;bottom:98px}
 .quiet-ui .cinema-caption h2{font-size:23px}
 .quiet-ui.cinematic .sound-panel{bottom:calc(max(12px,env(safe-area-inset-bottom)) + 73px)}
}
@media(max-width:360px){
 .quiet-ui .masthead h1{font-size:20px!important}
 .quiet-ui .house-wayfinding{max-width:calc(100% - 188px)}
 .quiet-ui .house-wayfinding .house-map-icon{display:none}
 .rail-controls{gap:1px}
 .rail-controls>button{min-width:48px;padding:4px}
}
@media(max-height:550px){
 .quiet-ui .masthead{top:max(21px,env(safe-area-inset-top))!important}
 .quiet-ui .quiet-panel{max-height:calc(100dvh - 170px);left:auto;right:max(16px,env(safe-area-inset-right));transform:none;width:360px}
 .quiet-ui .cinema-caption{display:none}
}

/* Manual cinema framing uses the existing camera slot, keeping the bar compact. */
#cinemaControls [hidden]{display:none!important}
.quiet-ui #cinemaControls{transition:opacity .18s,transform .18s}
.quiet-ui.cinema-idle #cinemaControls{transition:opacity 1.5s,transform 1.5s}
.quiet-ui #cinemaControls #cinemaAuto{justify-content:center;border:1px solid #d7bd8659;border-radius:15px;padding:7px 10px;color:#f2dfb8;background:#344b37}
.quiet-ui .cinema-caption .cinema-camera-hint{display:block;font:11px/1.5 Arial,sans-serif;color:#e0decc;letter-spacing:0;text-shadow:0 1px 5px #10251d,0 1px 12px #10251d}
.cinematic #world{cursor:grab}
@media(max-width:820px){
 .quiet-ui #cinemaControls #cinemaAuto{flex:0 1 105px;width:105px;max-width:32%;padding:6px;font-size:11px}
 .quiet-ui .cinema-caption .cinema-camera-hint{max-width:calc(100vw - 40px);font-size:10px}
}
@media(prefers-reduced-motion:reduce){.quiet-ui #cinemaControls,.quiet-ui.cinema-idle #cinemaControls{transition:none}}

.contribute-panel .builders-intro{font-size:14px;line-height:1.65;margin:0 0 16px;color:#e9ddbd}
.contribute-path{padding:12px 0;border-top:1px solid #d1c59e25}
.contribute-path h3{font:20px Georgia,serif;margin:0 0 6px;color:#efdfbb}
.contribute-path p,.contribute-credit,.contribute-agent{font-size:13px;line-height:1.65;color:#c5cbb9;margin:0}
.contribute-credit{margin:12px 0}
.contribute-link{display:flex;align-items:center;min-height:44px;color:#e7cc92;text-underline-offset:4px;font-size:14px}
.contribute-link:focus-visible{outline:2px solid #e7cc92;outline-offset:3px}
.contribute-agent{margin-top:12px;font-size:12px}
.hall-invitation{position:absolute;left:max(24px,env(safe-area-inset-left));bottom:calc(max(24px,env(safe-area-inset-bottom)) + 78px);z-index:4;display:flex;width:320px;max-width:calc(100% - 32px);border:1px solid #dbcaa354;border-radius:15px;background:#20372fef;color:#eee5cf;box-shadow:0 8px 28px #12282025;pointer-events:auto}
.hall-invitation a{display:flex;flex:1;flex-direction:column;gap:6px;min-width:0;padding:15px 0 15px 17px;color:inherit;text-decoration:none}
.hall-invitation strong{font:20px/1.2 Georgia,serif;font-weight:400;color:#f1dfb8}
.hall-invitation a>span{font:12px/1.5 Arial,sans-serif;color:#d6decc}
.hall-invitation button{flex:0 0 44px;align-self:flex-start;min-height:44px;color:#c6c9b7;font-size:22px;border-radius:12px}
.hall-invitation a:hover strong{color:#fff2d7}.hall-invitation button:hover{background:#dfd4b415}
.hall-invitation a:focus-visible,.hall-invitation button:focus-visible{outline:2px solid #e7cc92;outline-offset:3px;border-radius:12px}
.hall-invitation[hidden],body:not([data-room=valley]) .hall-invitation,.building .hall-invitation,.hidden-ui .hall-invitation,.cinematic .hall-invitation,body:has(.quiet-panel:not([hidden])) .hall-invitation{display:none}
@media(max-width:700px){.hall-invitation{left:16px;bottom:calc(max(12px,env(safe-area-inset-bottom)) + 73px);width:calc(100% - 32px)}.hall-invitation a{padding:12px 0 12px 14px;gap:5px}.hall-invitation strong{font-size:18px}.hall-invitation a>span{font-size:11px}}

.builders-panel summary{cursor:pointer;min-height:44px;padding:12px 0;font-size:13px;color:#d6d9c4}
.builders-works{list-style:none;margin:0;padding:0 0 0 12px}.builders-works strong,.builders-works span{display:block;font-size:13px;line-height:1.6}.builders-works span{font-size:11px;color:#b7c3ac}.builders-author-link{display:inline-flex;align-items:center;min-height:44px}

/* Scenery rooms keep only controls that act on their visible world. */
.landscape-room #trainBtn,.landscape-room #playBtn,.landscape-room #cinemaPause,.landscape-room .cinema-separator,.landscape-room .speed-badge,.landscape-room .engine-medallion{display:none!important}
.landscape-room [data-camera][hidden]{display:none!important}

.builders-author-link{gap:10px}.builders-author-link small{font:11px Arial,sans-serif;letter-spacing:.03em;color:#c4c7ad}

/* Contextual film controls only appear beside a visible nearby screen. */
.room-places button[hidden]{display:none!important}

.moonlight-access{position:fixed;z-index:5;left:24px;bottom:106px;max-width:calc(100% - 48px);padding:13px 17px;text-align:left;border:1px solid #c8b58355;border-radius:12px;background:#20372fed;box-shadow:0 8px 25px #10221d22;color:#efe4c7}
.moonlight-access>span{display:block;font:19px/1.2 Georgia,serif}.moonlight-access small{display:flex;align-items:center;gap:18px;margin-top:5px;font:11px/1.4 Arial;color:#c1c9b4}.moonlight-access small span{margin-left:auto;font-size:22px;line-height:1}
.moonlight-access[hidden],.cinematic .moonlight-access,.building .moonlight-access,.hidden-ui .moonlight-access{display:none!important}
@media(max-width:700px){.moonlight-access{left:16px;bottom:96px;padding:10px 13px}.moonlight-access>span{font-size:16px}.moonlight-access small{font-size:10px}}

.moonlight-focused #hallInvitation{display:none}

/* Embedded projects — somebody else's renderer, on the table.
   The stage never takes pointer events while the work is docked: the room's
   camera stays in charge until a visitor deliberately steps closer. */
/* Guest canvas has real geometry and shares the house camera. Input passes
   through to the house; only the attribution dock receives pointer events. */
#embedStage{position:fixed;inset:0;z-index:5;pointer-events:none}
#embedStage[hidden]{display:none!important}
.embed-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.embed-build{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:1;transition:opacity .6s ease-out}
.embed-build.done{opacity:0}
#embedStage[data-state=loading] .embed-credit-dock{display:none}
.embed-loading{position:absolute;left:26px;bottom:88px;width:min(310px,calc(100vw - 32px));padding:20px 21px 13px;border:1px solid #b5a26f66;border-radius:12px;background:#18251ff5;box-shadow:0 16px 44px #08120e5c;pointer-events:auto}
.embed-loading[hidden]{display:none}
.embed-progress{height:3px;margin:17px 0 9px;border-radius:3px;background:#b5a26f2b;overflow:hidden}.embed-progress span{display:block;width:0;height:100%;background:#e7cf94;transition:width .3s ease}
.embed-loading-back{display:block;margin:7px 0 0;padding:8px 0;min-height:44px;border:0;background:none;color:#d0c3a4;font:12px Arial,sans-serif;text-decoration:underline;text-underline-offset:4px;cursor:pointer}.embed-loading-back:focus-visible{outline:2px solid #e7cf94;outline-offset:4px}
.embed-status{margin:11px 0 0;padding-top:10px;border-top:1px solid #a7b79b33;color:#e3d5ac;font:12px/1.45 Arial,sans-serif}
.embed-status[hidden]{display:none}
.embed-credit-dock{position:absolute;left:22px;bottom:88px;max-width:min(355px,calc(100vw - 44px));pointer-events:auto;background:#192b24f5;border:1px solid #7d8a6f80;border-left:3px solid #c2a672;border-radius:9px;padding:14px 17px;box-shadow:0 8px 32px #08120e44;color:#e3e7d5}
.embed-credit-lead{margin:0 0 5px;font:18px/1.25 Georgia,serif;color:#f1ead2}
.embed-credit-by{margin:0 0 6px;font:13px/1.5 Georgia,serif;color:#dfe4cf}
.embed-credit-dock a{color:#ecd8a3;text-underline-offset:3px}
.embed-credit-meta{margin:0;font:12px/1.6 Arial,sans-serif;color:#a8b39a}
.embed-credit-note{margin:7px 0 0;font:11px/1.45 Arial,sans-serif;color:#b8c2ae}
.embed-actions{display:flex;gap:7px;margin-top:10px}
.embed-actions button{min-height:44px;padding:8px 11px;border:1px solid #b3a06b66;border-radius:5px;background:#304739;color:#f0e3bf;font:12px/1.3 Arial,sans-serif;cursor:pointer}
.embed-actions button:hover{background:#3d5542}
.embed-actions button:disabled{opacity:.5;cursor:default}
.embed-credit-dock :focus-visible{outline:2px solid #ecd8a3;outline-offset:3px}
.embed-credit-dock.queens-compact-controls{right:auto;max-width:calc(100vw - 28px);padding:0;border-left-width:1px;border-radius:12px}
.queens-controls summary{min-height:48px;padding:0 15px;display:flex;align-items:center;gap:10px;cursor:pointer;font:12px Arial,sans-serif;color:#ecd8a3;list-style:none}
.queens-controls summary::-webkit-details-marker{display:none}
.queens-controls summary::before{content:'+';font-size:20px;width:14px}
.queens-controls[open] summary::before{content:'−'}
.queens-controls-body{width:min(326px,calc(100vw - 54px));padding:0 12px 12px}
.queens-controls-body .embed-actions{margin-top:7px}
.queens-controls-body .embed-actions button{flex:1}
.queens-seat-action button{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#dcc389;color:#203a30;border-color:#efdcaa}
.queens-seat-action button:hover{background:#edd8a5}
.queens-seat-action span{font:bold 15px Georgia,serif}
.queens-seat-action small{max-width:125px;text-align:right;font:11px/1.4 Arial,sans-serif}
@media(max-width:700px){.quiet-ui #cinemaControls #queensMatchPause{flex:0 0 44px;justify-content:center}.quiet-ui #queensMatchPause span{display:none}.quiet-ui #queensMatchPause svg{width:18px;height:18px}}
.queens-point-note{font:italic 11px/1.4 Georgia,serif;color:#b7c1a6;margin:9px 0 0}
@media(max-width:760px){
 .embed-loading{width:min(300px,calc(100vw - 24px));padding:13px 13px 12px}
 .embed-status{margin-top:8px;padding-top:7px;font-size:11px}
 .embed-credit-dock{left:10px;right:10px;bottom:85px;max-width:none;padding:10px 12px}
 .embed-credit-lead{font-size:16px}
 .embed-credit-by{font-size:12px;margin-bottom:3px}
 .embed-credit-note{margin-top:4px;font-size:10px}
 .embed-actions{margin-top:7px}
 .embed-actions button{flex:1}
}
/* The visible artist dock supplies the cinema title too. */
body.has-embed.cinematic .cinema-caption,body.has-embed.cinematic #embedCloser{display:none}
body.has-embed.cinematic .cinema-separator{display:none}

.embed-loading-kicker{margin:0 0 6px;font:9px Arial,sans-serif;letter-spacing:1.8px;text-transform:uppercase;color:#c2a672}
.embed-loading-title{display:block;font:18px/1.25 Georgia,serif;color:#f1ead2}
.embed-loading-by{display:block;margin-top:4px;font:italic 12px/1.45 Georgia,serif;color:#b3c0ab}
.embed-loading-by[hidden]{display:none}
.embed-steps{display:flex;flex-wrap:wrap;gap:4px 6px;margin:11px 0 0;padding:0;list-style:none}
.embed-steps li{font:9px Arial,sans-serif;letter-spacing:.9px;text-transform:uppercase;color:#71806c;
 border:1px solid #71806c4d;border-radius:3px;padding:3px 6px;transition:color .35s,border-color .35s,background .35s}
.embed-steps li.done{color:#e9dcb4;border-color:#c2a67288;background:#c2a6721f}
.embed-steps li.current{color:#fff2ca;border-color:#dfc789;background:#c2a67230}
@media(max-width:760px){
 .embed-loading{left:12px;right:12px;bottom:108px;width:auto;padding:12px 13px 11px}
 .embed-loading-title{font-size:16px}
 .embed-steps{gap:4px}
 .embed-steps li{font-size:8px;padding:3px 5px;letter-spacing:.6px}
}
@media(prefers-reduced-motion:reduce){.embed-build{transition:none}.embed-steps li{transition:none}}

body.cinematic .embed-credit-dock{opacity:0;pointer-events:none;transition:opacity .35s}
@media(prefers-reduced-motion:reduce){body.cinematic .embed-credit-dock,.embed-progress span{transition:none}}
