#ride{position:absolute;inset:0;overflow:hidden;background:#070c0a}#ride .layer{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}#ride canvas{touch-action:none;cursor:grab}#ride .layer.outgoing{pointer-events:none}#ride-controls{position:fixed;z-index:35;left:3%;right:3%;bottom:22px;display:flex;gap:12px;align-items:center;opacity:.35;transition:opacity .3s}#ride-controls:hover,#ride-controls:focus-within{opacity:1}#ride-controls button,#ride-controls select,#worlds button,#sound-controls button,#social-toggle,#music-toggle,#close-social,#close-worlds,#close-music,#enter-door{background:#07120b30;color:#fff7e4;border:1px solid #fff3;border-radius:6px;padding:9px 13px;font:12px system-ui;text-shadow:0 1px 5px #000;cursor:pointer}#ride-controls button:hover{background:#15382399}#ride-name{font-size:11px;letter-spacing:.15em;text-shadow:0 2px 5px #000;flex:1}#ride-title{position:absolute;left:4%;top:8%;z-index:5;pointer-events:none;font:clamp(17px,2vw,30px) Georgia;color:#fff5df;text-shadow:0 2px 6px black;opacity:.8}#sound-controls{position:fixed;z-index:70;right:3%;top:20px;display:flex;align-items:center;gap:8px}#sound-controls input{width:65px;padding:0;accent-color:#e9d59f}#sound-controls button{font-size:10px}#ride-controls .spacer{flex:1}#social-toggle,#music-toggle{position:fixed;z-index:35;top:20px;left:3%}#music-toggle{left:120px}#worlds,#music-panel{position:fixed;z-index:60;right:3%;top:75px;bottom:95px;width:min(380px,94vw);padding:22px;background:#0a1815ea;border:1px solid #b7c9b44d;border-radius:12px;overflow:auto;backdrop-filter:blur(10px)}#worlds h2,#music-panel h2{font:24px Georgia}#worlds-list{display:grid;gap:10px;margin-top:20px}#worlds button{text-align:left;min-height:40px}#close-worlds,#close-music{float:right}#music-panel{bottom:auto}#music-panel label{font:12px system-ui;margin:18px 0}#music-panel select{width:100%;padding:9px;background:#132720;color:#eee;border:1px solid #fff4}#music-panel option{color:#eee;background:#132720}#music-panel input{accent-color:#ecd8a4}#social-panel{position:fixed;z-index:60;inset:75px 3% 90px auto;width:min(580px,94vw);border:1px solid #fff4;border-radius:10px;background:#10241bd9;overflow:hidden}#social-panel iframe{width:100%;height:calc(100% - 43px);border:0;background:transparent}#close-social{display:block;margin:5px 9px 5px auto}#enter-door{position:absolute;z-index:45;left:53%;top:58%;transform:translate(-50%,-50%);background:#11211699;border-color:#ffe7a0aa;font-size:13px}#journey-message{position:fixed;z-index:55;left:50%;top:24px;transform:translateX(-50%);max-width:48vw;color:#fff7dd;font:12px system-ui;text-shadow:0 1px 5px #000}#door-stage{position:absolute;inset:0;z-index:15;perspective:1100px;transform-origin:54% 57%}#door-stage .facade{position:absolute;inset:0;background-size:cover;background-position:center}#door-stage .leaf{position:absolute;background-repeat:no-repeat;backface-visibility:visible;transform-style:preserve-3d}body[data-stitched=true] #transport{display:none}#ride-controls button:disabled{opacity:.3}button:focus-visible,canvas:focus-visible{outline:2px solid #ffe5a4;outline-offset:3px}#ride *[hidden]{display:none!important}@media(max-width:650px){#ride-controls{flex-wrap:wrap;gap:6px;bottom:12px}#ride-controls button{padding:8px;font-size:10px}#ride-name{flex-basis:100%;order:-1}#sound-controls{top:13px;right:10px}#sound-controls input{width:40px}#social-toggle{left:10px;top:13px}#music-toggle{left:90px;top:13px}#social-toggle,#music-toggle{font-size:10px;padding:8px}#ride-title{top:12%}#worlds,#music-panel{top:60px}#journey-message{top:55px;max-width:85vw}}
#music-panel{max-height:calc(100dvh - 175px)}#music-panel label{display:block}#music-panel h2{margin-top:8px;margin-right:50px}#now-playing{font:14px/1.5 system-ui;color:#f4e2b9;min-height:1.5em}#music-note{font:12px/1.5 system-ui;color:#c2cfc3}#music-panel .music-transport{display:flex;align-items:center;gap:12px;justify-content:space-between}#music-panel button:not(#close-music){background:#183329;color:#fff4dc;border:1px solid #c4d6c544;border-radius:6px;padding:9px 11px;font:11px system-ui;cursor:pointer}#queue-position{font:11px system-ui;white-space:nowrap}#music-panel input{display:block;width:100%;margin-top:8px}#music-panel select{margin-top:6px}
/* Keep overlays truly closed and music down at the transport edge. */
#physical-portals{position:absolute;inset:0;z-index:8;pointer-events:none}
#physical-portals[hidden],#physical-portals button[hidden]{display:none!important}
.physical-portal{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;min-width:44px;min-height:44px;padding:6px;border:1px solid #f2dfb4b0;border-radius:50%;background:#14231ca6;color:#fff1ca;box-shadow:0 2px 10px #0008;font:24px system-ui;cursor:pointer;touch-action:manipulation}
.physical-portal:hover,.physical-portal:focus-visible{background:#294635e8;outline:2px solid #ffe8ad;outline-offset:3px}
.portal-label{position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%);font:11px/1.3 system-ui;max-width:170px;width:max-content;padding:4px 7px;border-radius:4px;background:#10201ce6;text-shadow:0 1px 3px #000;pointer-events:none}
@media(max-width:650px){.portal-label{max-width:125px;font-size:10px}}
#ride-ui [hidden]{display:none!important}
#ride-controls{flex-wrap:wrap;gap:8px;opacity:.55;transition:opacity .4s}
#ride-controls:hover,#ride-controls:focus-within{opacity:1}
#ride-controls #music-toggle,#ride-controls #sound-controls{position:static;inset:auto;transform:none}
#ride-controls #music-toggle{font-size:11px;padding:9px 12px}
#ride-controls #sound-controls{display:flex;gap:7px;margin-left:auto}
#ride-controls #sound-controls input{width:64px;margin:0;padding:0}
#music-panel{left:3%;right:3%;top:auto;bottom:80px;width:auto;max-height:36dvh;padding:12px 16px;border-radius:8px;background:#0a1815db;display:grid;grid-template-columns:minmax(150px,1.3fr) minmax(150px,1.4fr) auto minmax(90px,.7fr) minmax(90px,.7fr);gap:8px 14px;align-items:center}
#music-panel h2{font:13px system-ui;margin:0;grid-column:1/3}
#music-panel #close-music{grid-column:5;grid-row:1;justify-self:end;float:none}
#music-panel #now-playing{grid-column:1/5;grid-row:2;margin:0;font-size:12px;min-height:0}
#music-panel label{margin:0;font-size:10px;min-width:0}
#music-panel select{padding:6px;margin-top:3px;font-size:12px}
#music-panel .music-transport{gap:6px}
#music-panel button:not(#close-music){padding:7px;font-size:10px}
#music-panel input{margin:3px 0 0;padding:0}
#music-panel #music-note{grid-column:2/-1;margin:0;font-size:10px}
@media(max-width:650px){
 #ride-controls{bottom:10px;left:12px;right:12px;gap:5px}
 #ride-controls #music-toggle{padding:8px;font-size:10px}
 #music-panel{bottom:150px;left:12px;right:12px;top:auto;max-height:36dvh;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:7px;padding:10px}
 #music-panel h2{grid-column:1;grid-row:1;font-size:11px}
 #music-panel #close-music{grid-column:2;grid-row:1}
 #music-panel #now-playing{grid-column:1/-1;grid-row:2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 #music-panel .music-transport{grid-column:1/-1;justify-content:flex-start}
 #music-panel #music-note{grid-column:2;font-size:9px}
 #ride-controls #sound-controls{margin-left:0}
}
@media(hover:none){#ride-controls{opacity:.65}}

#ride .layer.bridge-view{object-position:20% 65%;transform:scale(1.35);transform-origin:20% 65%}
#ride .layer.arrival-wide{object-fit:contain}
#arrival-route{position:fixed;z-index:38;bottom:105px;left:50%;transform:translateX(-50%);display:flex;gap:14px;max-width:94vw}
#arrival-route button{color:#fff3d7;background:#102219c9;border:1px solid #efd496a0;border-radius:8px;padding:12px 16px;min-height:44px;font:12px system-ui;cursor:pointer;box-shadow:0 2px 12px #0008}
@media(max-width:650px){#arrival-route{bottom:165px;width:max-content;gap:8px}#arrival-route button{font-size:10px;padding:10px;max-width:46vw}}
#ride .layer.welcome-view{object-fit:contain}
/* September 30: the world leads; controls stay subordinate. */
#ride-title,#ride-name,#social-toggle,#enter-door,#music-note{display:none!important}
.portal-label{opacity:0;transition:opacity .15s}.physical-portal:hover .portal-label,.physical-portal:focus-visible .portal-label{opacity:1}
.physical-portal{background:#10201844;border-color:#ead8a466;font-size:19px;box-shadow:none}
#arrival-route{bottom:105px;gap:70px}#arrival-route button{font-size:24px;width:48px;padding:4px;border-radius:50%;background:#10201855}
#ride-controls{opacity:.3;right:60px;gap:6px}#ride-controls button{font-size:10px;padding:8px}#ride-controls:hover,#ride-controls:focus-within{opacity:1}
#controls-toggle{position:fixed;z-index:65;right:12px;bottom:20px;width:40px;height:40px;background:#10201899;color:#fff0d3;border:1px solid #fff4;border-radius:50%;cursor:pointer}
#ride-ui.controls-minimized #ride-controls{display:none}
#trail-guidance{position:absolute;left:4%;right:4%;bottom:150px;z-index:6;display:grid;text-align:left;pointer-events:none;font:italic clamp(12px,1.5vw,20px)/1.5 'Segoe Script','Lucida Handwriting',cursive;color:#fff1d4;text-shadow:0 1px 4px #000,0 0 9px #000;letter-spacing:.025em}
#trail-guidance .title-phrase{grid-area:1/1;white-space:nowrap}
#trail-guidance span{display:inline-block;opacity:0;animation:whisper-letter 5s linear both;animation-delay:calc(var(--phrase-delay,1s) + var(--letter)*var(--letter-step,.055s))}
#room-screen{position:absolute;z-index:12;transform:translate(-50%,-50%);aspect-ratio:16/10;border:10px solid #302b24;border-top:18px solid #49423a;border-bottom:12px solid #28231d;border-radius:4px;box-shadow:0 7px 12px #0009;background:#070b0a;animation:screen-lower .35s ease-out both}
@keyframes screen-lower{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0)}}
#room-screen #social-panel{position:relative;inset:auto;width:100%;height:100%;border:0;border-radius:0;background:#070b0a;overflow:hidden}
#room-screen #social-panel iframe{height:calc(100% - 30px);background:#070b0a}
#room-screen #close-social{height:28px;min-width:44px;margin:0 0 2px auto;padding:3px 15px}
#screen-deploy{position:absolute;z-index:11;transform:translate(-50%,-50%);width:44px;height:44px;font:24px system-ui;color:#f5dbaa;background:#2b241a88;border:1px solid #e3c99988;border-radius:6px;cursor:pointer}
#music-panel{grid-template-columns:repeat(5,minmax(90px,1fr))}#track-progress-label{grid-column:2/5}
@media(max-width:650px){#ride-controls{opacity:.65;bottom:10px;right:52px;gap:4px}#ride-controls button{padding:6px;min-height:34px}#arrival-route{bottom:155px}#trail-guidance{font-size:10px;bottom:210px;left:12px;letter-spacing:0}#music-panel{grid-template-columns:1fr 1fr}#track-progress-label{grid-column:1/-1}#controls-toggle{bottom:12px}}
@media(prefers-reduced-motion:reduce){#room-screen{animation:none}#trail-guidance span{filter:none!important;transform:none!important}}

#room-props{position:absolute;inset:0;pointer-events:none;z-index:6;overflow:hidden}.room-prop{position:absolute;transform:translate(-50%,-100%);padding:0;border:0;background:none;box-shadow:none;pointer-events:none;width:auto;aspect-ratio:858/720;opacity:1}.room-prop img{width:100%;height:100%;object-fit:contain;display:block;pointer-events:none}.room-prop[hidden]{display:none}button.room-prop{pointer-events:auto;cursor:pointer}button.room-prop:hover,button.room-prop:focus-visible{filter:drop-shadow(0 0 4px #e6b468);outline:0}

.room-prop video{width:100%;height:100%;object-fit:contain;display:block;pointer-events:none}

.room-prop{filter:drop-shadow(0 4px 3px #0006)}.room-prop.installed{filter:brightness(.76) sepia(.08) drop-shadow(0 5px 4px #0009)}#room-screen::before{content:"";position:absolute;left:12%;right:12%;bottom:100%;height:60vh;border-left:2px solid #443d32;border-right:2px solid #443d32;pointer-events:none}

/* Brian's readability pass: larger magical lettering; each whole line holds. */
#trail-guidance{left:5%;right:5%;bottom:22%;font-size:clamp(24px,2.8vw,42px);font-weight:700;line-height:1.5;color:#69c8ff;letter-spacing:.02em;text-shadow:0 3px 0 #071126,0 6px 7px #000,0 0 5px #000,0 0 12px #277aff,0 0 23px #4775ff;-webkit-text-stroke:.3px #a9e6ff}
#trail-guidance .title-phrase{white-space:normal;opacity:0;animation:trail-line var(--line-duration,8.5s) linear both;animation-delay:var(--phrase-delay)}
#trail-guidance span{position:relative;animation:trail-ink .38s ease-out both;animation-delay:calc(var(--phrase-delay) + var(--letter)*var(--letter-step));filter:none}
#trail-guidance span::after{content:'✦';position:absolute;left:65%;top:-.45em;font:16px Georgia;color:#c8ffb6;text-shadow:0 0 6px #8dff6a,0 0 13px #6dfaff;pointer-events:none;opacity:0;animation:trail-dust .75s ease-out both;animation-delay:calc(var(--phrase-delay) + var(--letter)*var(--letter-step))}
@keyframes trail-line{0%,90%{opacity:1}100%{opacity:0}}
@keyframes trail-ink{from{opacity:0;transform:translateY(4px);color:#b8ff7c}to{opacity:1;transform:translateY(0);color:#69c8ff}}
@keyframes trail-dust{0%{opacity:0;transform:scale(.3)}20%{opacity:1;transform:scale(1)}100%{opacity:0;transform:translate(10px,-18px) scale(.15)}}
@media(max-width:650px){#trail-guidance{font-size:24px;left:18px;right:18px;bottom:25%;line-height:1.45}}
@media(prefers-reduced-motion:reduce){#trail-guidance span::after{display:none}#trail-guidance span{animation-duration:.01s}}

#trail-guidance .trail-word{display:inline-block;white-space:nowrap;font-weight:inherit}

/* Brian: navigation and audio presence must remain prominent from the path. */
#ride-controls,#ride-controls:hover,#ride-controls:focus-within{opacity:1;background:linear-gradient(115deg,#101c2df0,#12251deb);border:1px solid #76d7ee88;border-radius:14px;padding:10px;box-shadow:0 6px 30px #0009;backdrop-filter:blur(12px)}
#ride-controls button{font-size:12px;min-height:44px;background:#102534df;border-color:#8cd9ed77}
#ride-controls #music-toggle{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#c7f5ff;border-color:#8ce3ff;background:linear-gradient(120deg,#143c52,#32244d);box-shadow:0 0 14px #72cfff33}
body[data-stage="stitched-forest-path"] #ride-ui.controls-minimized #ride-controls{display:flex}
body[data-stage="stitched-forest-path"] #controls-toggle{display:none}
@media(max-width:650px){#ride-controls{left:8px;right:8px;padding:7px;gap:4px}#ride-controls button{font-size:10px;padding:6px;min-height:40px}#ride-controls #music-toggle{max-width:180px}#ride-controls #sound-controls{margin-left:auto}}

/* Upstairs neighbors and a clear downstairs return remain available with the player hidden. */
.upstairs-link .portal-label{display:block!important;opacity:1!important;font-size:12px;white-space:normal;max-width:150px}body[data-stitched=true] #transport{display:none!important}

#ride #arrival-lyrics{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:6;mix-blend-mode:screen;pointer-events:none}

@media(max-width:650px){#ride{--room-link-base:132px}.upstairs-link .portal-label{max-width:90px;font-size:10px}}
/* October 2: smaller lyrics and independent recoverable transport. */
#ride #arrival-lyrics{inset:auto 20% 17%;width:60%;height:60%;object-fit:contain}
body #transport,body[data-stitched=true] #transport{display:flex!important;z-index:100;bottom:calc(var(--deck-height,0px) + 8px);height:auto;gap:6px;padding:6px 10px;opacity:0;pointer-events:none;transition:opacity .25s}
body #transport.awake,body #transport.is-paused,body #transport:hover,body #transport:has(:focus-visible){opacity:1;pointer-events:auto}
body #transport button{font:14px system-ui;min-width:44px;min-height:44px;padding:8px 12px;background:transparent!important;border-color:transparent!important;box-shadow:none!important;backdrop-filter:none!important;border-radius:8px}
body #transport [data-action=play]{min-width:104px}
@media(max-width:600px){body #transport{left:8px;transform:none;gap:4px;padding:4px;max-width:calc(100vw - 16px);bottom:calc(var(--deck-height,0px) + 56px)}body #transport button{padding:6px;font-size:12px}#ride #arrival-lyrics{inset:auto 12% 23%;width:76%;height:50%}}
/* Brian: only the pause/play symbol, with a clear touch target. */
body #transport [data-action=play]{min-width:44px;width:44px;height:44px;padding:0;font:26px system-ui;background:transparent!important;border:0!important;box-shadow:none!important;backdrop-filter:none!important}
/* Quiet lyric preview: small, soft, lower-left rather than center stage. */
#ride #arrival-lyrics{inset:auto auto 12% 3%;width:36%;height:36%;opacity:.72;object-fit:contain}
@media(max-width:600px){#ride #arrival-lyrics{inset:auto auto 19% 3%;width:54%;height:30%}}
/* Brian: quiet lyrics centered low; phrases move in/out, not across. */
#ride #arrival-lyrics{left:50%;right:auto;transform:translateX(-50%)}
/* Brian: readable type throughout the walkthrough. */
body{font-size:18px}
body #ride-title{font-size:clamp(24px,2.5vw,36px)}
body #ride-name,body #journey-message,body #now-playing,body #music-note,body #queue-position{font-size:18px}
body .portal-label,body .upstairs-link .portal-label{font-size:18px;line-height:1.4;max-width:240px}
body #ride-controls button,body #ride-controls select,body #worlds button,body #music-panel button,body #music-panel label,body #music-panel select,body #arrival-route button,body #deck-reveal{font-size:18px;min-height:44px}
body #brian-deck{width:min(1100px,calc(100vw - 16px))}
body #brian-deck button,body #brian-deck select,body #brian-deck #ride-controls button{font-size:16px;min-height:40px;padding:6px 9px}
body #brian-deck header,body #brian-deck .deck-signal{height:auto;min-height:40px}
body #brian-deck header strong,body #brian-deck header span,body #brian-deck .deck-track,body #brian-deck .deck-track small,body #brian-deck .deck-knob,body #brian-deck .deck-knob output,body #brian-deck #deck-options label,body #brian-deck #deck-options small{font-size:16px;line-height:1.4}
body #brian-deck .deck-transport,body #brian-deck #ride-controls,body #brian-deck header>div,body #brian-deck .deck-knobs{flex-wrap:wrap}
body #brian-deck .deck-knob{min-width:70px}body #brian-deck .deck-knob input{width:80px}
body #brian-deck{max-height:65dvh;overflow-y:auto}
body #auth label,body #auth input,body #auth button,body #message,body #error,body #continue{font-size:18px}
body #sound-controls button{font-size:16px;min-height:40px}
#ride #arrival-lyrics{width:60%;height:46%;bottom:12%;left:50%;opacity:.9}
@media(max-width:650px){body #brian-deck .deck-jbl{display:none}body #brian-deck .deck-knobs{display:flex}body #brian-deck .deck-knob input{width:70px}body #brian-deck .deck-knob output{display:block}body .portal-label,body .upstairs-link .portal-label{font-size:16px;max-width:170px}#ride #arrival-lyrics{width:88%;height:38%;bottom:18%}}
/* Brian clarification: enlarge interface text, not lyrics. */
#ride #arrival-lyrics{width:36%;height:36%;bottom:12%;left:50%;opacity:.72;transform:translateX(-50%)}
@media(max-width:600px){#ride #arrival-lyrics{width:54%;height:30%;bottom:19%}}
/* Quiet Perch always has an accessible exit, independent of view/player. */
#perch-exit{position:fixed;z-index:76;left:16px;bottom:calc(var(--deck-height,0px) + 64px);max-width:calc(100vw - 32px);min-height:44px;padding:10px 14px;color:#fff5df;background:#102018b3;border:1px solid #fff6;border-radius:8px;font:18px system-ui;text-shadow:0 1px 4px #000;cursor:pointer}
/* Dragging the room should never select navigation text. */
#ride,#ride-ui,#transport,#brian-deck,#deck-reveal,#perch-exit{user-select:none;-webkit-user-select:none}
#ride-ui input,#ride-ui textarea,#brian-deck input,#brian-deck textarea{user-select:text;-webkit-user-select:text}
/* Temporary Great Room title plaques pending MMRC artwork. */
body #physical-portals .room-plaque{width:174px;min-height:54px;padding:10px 14px;border:2px solid #b99250;border-radius:5px;background:linear-gradient(175deg,#503722,#291c13);box-shadow:inset 0 0 0 3px #24180e,inset 0 0 0 4px #95703b,0 3px 9px #0008;color:#ffedc5}
body #physical-portals .room-plaque .portal-label{position:static;display:block;transform:none;width:auto;max-width:none;margin:0;padding:0;background:none;font:600 18px/1.2 Georgia,serif;letter-spacing:.025em;text-align:center;color:inherit;text-shadow:0 1px 2px #000}
body #physical-portals .room-plaque:hover,body #physical-portals .room-plaque:focus-visible{border-color:#ffe0a0;outline:2px solid #ffe0a0;outline-offset:3px;background:linear-gradient(175deg,#63462b,#362317)}
@media(max-width:650px){body #physical-portals .room-plaque{width:145px;padding:8px 10px}body #physical-portals .room-plaque .portal-label{font-size:16px}}

/* Keep the supplied synchronized lyrics above the opened music player. */
#ride #arrival-lyrics{bottom:max(12%,calc(var(--deck-height,0px) + 8px))}

/* Lyric words sit at the top edge of the player; compensate the film's empty margins. */
#ride #arrival-lyrics{height:160px;width:min(600px,80vw);bottom:max(0px,calc(var(--deck-height,0px) - 72px));left:50%;object-fit:contain;opacity:.9}

/* Pure Invisible Clickable Hotspots over doors, paths, and baked signs */
#physical-portals {
  position: absolute;
  inset: 0;
  z-index: 25;
  pointer-events: none;
}
#physical-portals[hidden], #physical-portals button[hidden] {
  display: none !important;
}

.physical-portal,
body #physical-portals .physical-portal,
body #physical-portals .room-plaque,
body #physical-portals .invisible-sign-hotspot {
  position: absolute;
  transform: translate(-50%, -50%);
  min-width: 0 !important;
  min-height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
  border-radius: 8px !important;
  background: transparent !important;
  box-shadow: none !important;
  outline: none !important;
  cursor: pointer !important;
  pointer-events: auto !important;
  touch-action: manipulation;
  z-index: 100;
  -webkit-tap-highlight-color: transparent;
  user-select: none;
}

/* Visitor Mode: 100% Invisible, Zero Borders, Zero Outlines */
.physical-portal:hover,
.physical-portal:focus-visible,
body #physical-portals .physical-portal:hover,
body #physical-portals .physical-portal:focus-visible {
  background: transparent !important;
  outline: none !important;
  border: none !important;
  box-shadow: none !important;
}

.physical-portal .portal-label,
body #physical-portals .portal-label,
.physical-portal span[aria-hidden="true"] {
  display: none !important;
  opacity: 0 !important;
}

/* Builder Mode Toggle (?builder=1 or press 'B' / 'H') */
body.hotspot-inspect .physical-portal,
body.hotspot-inspect #physical-portals .physical-portal {
  border: 2px dashed rgba(255, 224, 162, 0.85) !important;
  background: rgba(255, 224, 162, 0.16) !important;
  box-shadow: 0 0 12px rgba(255, 224, 162, 0.4) !important;
}

body.hotspot-inspect .physical-portal:hover,
body.hotspot-inspect #physical-portals .physical-portal:hover {
  border: 2px solid #5cf0ff !important;
  background: rgba(92, 240, 255, 0.28) !important;
  box-shadow: 0 0 18px rgba(92, 240, 255, 0.6) !important;
}

body.hotspot-inspect .physical-portal .portal-label,
body.hotspot-inspect #physical-portals .portal-label {
  display: block !important;
  opacity: 1 !important;
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  margin-top: 4px;
  padding: 3px 8px;
  background: rgba(8, 16, 26, 0.92);
  border: 1px solid #ffe0a2;
  border-radius: 4px;
  color: #ffe0a2;
  font: 600 11px system-ui, sans-serif;
  letter-spacing: 0.05em;
  white-space: nowrap;
  pointer-events: none;
  z-index: 105;
}

/* PERMANENTLY HIDE PLACES BUTTONS AND DESTINATION MENUS FROM VISITOR INTERFACE */
#world-toggle,
#worlds,
#worlds-list {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* Small Room Indicator Sign (not a link) */
#current-room-badge {
  position: fixed;
  top: 18px;
  left: 20px;
  z-index: 40;
  pointer-events: none !important;
  display: flex;
  align-items: center;
  user-select: none;
  -webkit-user-select: none;
}
#current-room-badge[hidden] {
  display: none !important;
}
#current-room-badge img {
  max-width: 220px;
  max-height: 70px;
  width: auto;
  height: auto;
  object-fit: contain;
  pointer-events: none !important;
  filter: drop-shadow(0 4px 14px rgba(0,0,0,0.92)) drop-shadow(0 2px 5px rgba(0,0,0,0.85));
  animation: roomBadgeFadeIn 0.45s cubic-bezier(0.16, 1, 0.3, 1) both;
}
@keyframes roomBadgeFadeIn {
  from { opacity: 0; transform: translateY(-6px) scale(0.96); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@media (max-width: 650px) {
  #current-room-badge {
    top: 12px;
    left: 14px;
  }
  #current-room-badge img {
    max-width: 140px;
    max-height: 46px;
  }
}

/* Elepod Step Out Station Disembark Button */
#elepod-step-off {
  transition: transform 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}
#elepod-step-off:hover, #elepod-step-off:focus-visible {
  background: #345c47dd !important;
  border-color: #ffd700 !important;
  transform: translateX(-50%) scale(1.05);
  box-shadow: 0 6px 24px rgba(0,0,0,0.85);
}

/* Elepod Initial Fun Jolt (Single playful launch jolt, smooth ascent throughout) */
.elepod-initial-jolt {
  animation: elepod-launch-jolt 0.75s ease-out both;
}
@keyframes elepod-launch-jolt {
  0% { transform: translate(0, 0); }
  15% { transform: translate(-4px, 5px); }
  35% { transform: translate(5px, -3px); }
  55% { transform: translate(-2px, 3px); }
  75% { transform: translate(2px, -1px); }
  90% { transform: translate(-1px, 1px); }
  100% { transform: translate(0, 0); }
}
@media (prefers-reduced-motion: reduce) {
  .elepod-initial-jolt { animation: none !important; }
}




/* Author-directed single tiny binocular target; all baked-sign hotspots remain invisible. */
body #physical-portals .summit-tiny-link::after{content:'?';display:grid;place-items:center;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:22px;height:22px;border:1px solid #ffe1a3a8;border-radius:50%;background:#12292296;color:#ffe3ac;font:14px system-ui;pointer-events:none;box-shadow:0 0 6px #0008}

/* Minimal day/night selector for Pool, Jacuzzi and Blue Hidden Gem. The original deck can be hidden. */
#ride #blue-day-night{position:absolute;right:14px;bottom:90px;z-index:32;min-width:74px;min-height:40px;padding:8px 12px;border:1px solid #efdaab88;border-radius:22px;background:#0e201c9c;color:#fff0cf;font:600 13px system-ui;letter-spacing:.035em;cursor:pointer;touch-action:manipulation}
#ride #blue-day-night[hidden]{display:none!important}
#ride #blue-day-night:hover,#ride #blue-day-night:focus-visible{background:#234837e0;outline:2px solid #ead99d;outline-offset:2px}
@media(max-width:600px){#ride #blue-day-night{right:9px;bottom:70px;min-height:40px;font-size:12px}}

/* Pool: no separate painted return sign; small spatially anchored Great Room door marker. */
body #physical-portals .pool-great-room-return::after{content:'⌂';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:30px;height:30px;border-radius:50%;border:1px solid #f3e5b9a3;background:#0c2924b0;color:#fff2c4;font:23px Georgia,serif;text-shadow:0 1px 3px #000;pointer-events:none;box-shadow:0 2px 8px #0009}
body #physical-portals .pool-great-room-return:hover::after,body #physical-portals .pool-great-room-return:focus-visible::after{background:#245545e0;box-shadow:0 0 10px #fff3b28a}

/* October 18 founder canon: clickable panoramic hotspots are HUGE and INVISIBLE.
   No question marks, directional plaques, tiny arrows, home circles or overlay labels.
   The original in-scene art is the only sign. Accessibility keeps button aria-labels. */
body:not(.hotspot-inspect) #physical-portals .physical-portal,
body:not(.hotspot-inspect) #physical-portals .physical-portal.room-plaque,
body:not(.hotspot-inspect) #physical-portals .physical-portal.invisible-sign-hotspot{
 background:transparent!important;border:0!important;box-shadow:none!important;
 outline:0!important;color:transparent!important;font-size:0!important;
}
body:not(.hotspot-inspect) #physical-portals .physical-portal::before,
body:not(.hotspot-inspect) #physical-portals .physical-portal::after,
body:not(.hotspot-inspect) #physical-portals .summit-tiny-link::after,
body:not(.hotspot-inspect) #physical-portals .pool-great-room-return::after{
 content:none!important;display:none!important;
}
body:not(.hotspot-inspect) #physical-portals .physical-portal .portal-label,
body:not(.hotspot-inspect) #physical-portals .upstairs-link .portal-label{
 display:none!important;visibility:hidden!important;opacity:0!important;
}

/* FOUNDER REVIEW MODE — 2026-10-18. Keep every spatial hotspot visibly
   labeled with its destination until human walkthrough/canon approval.
   This deliberately overrides the earlier visitor-invisible rule. */
body #ride #physical-portals button.physical-portal {
  border:2px dashed rgba(255,224,148,.92)!important;
  background:rgba(13,58,55,.25)!important;
  box-shadow:inset 0 0 0 1px rgba(10,20,15,.35),0 0 15px rgba(10,10,10,.28)!important;
  outline:0!important;
  border-radius:14px!important;
  min-width:90px!important;
  min-height:64px!important;
  cursor:pointer!important;
}
body #ride #physical-portals button.physical-portal:hover,
body #ride #physical-portals button.physical-portal:focus-visible {
  border:3px solid rgba(255,237,165,.99)!important;
  background:rgba(25,104,78,.39)!important;
  outline:2px solid rgba(255,245,189,.9)!important;
  outline-offset:2px!important;
}
body #ride #physical-portals button.physical-portal::before {
  content:none!important;
  display:none!important;
}
body #ride #physical-portals button.physical-portal::after,
body #ride #physical-portals button.physical-portal.summit-tiny-link::after,
body #ride #physical-portals button.physical-portal.pool-great-room-return::after {
  content:attr(aria-label)!important;
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  transform:translate(-50%,-50%)!important;
  width:max-content!important;
  max-width:min(235px,85%)!important;
  min-width:65px!important;
  height:auto!important;
  padding:6px 9px!important;
  box-sizing:border-box!important;
  color:#fff3d2!important;
  background:rgba(5,24,26,.86)!important;
  border:1px solid #eedaa3!important;
  border-radius:8px!important;
  box-shadow:0 3px 14px rgba(0,0,0,.7)!important;
  font:700 clamp(12px,1.1vw,17px)/1.25 system-ui,sans-serif!important;
  white-space:normal!important;
  text-align:center!important;
  text-shadow:0 1px 2px #000!important;
  pointer-events:none!important;
}
body #ride #physical-portals button.physical-portal .portal-label,
body #ride #physical-portals button.upstairs-link .portal-label {
  display:none!important;
}
@media(max-width:600px){
  body #ride #physical-portals button.physical-portal::after {
    font-size:12px!important;
    max-width:90%!important;
  }
}

/* HardKnocks animated neon: physically anchored in the DAY/NIGHT 360 panorama.
   The founder's original black-backed MP4 stays untouched; screen compositing
   makes black visually transparent, rather than playing it as a flat room film.
   No signage is baked into the underlying approved equirectangular artwork. */
#room-props .room-prop.hardknocks-neon-prop {
  z-index:9;
  aspect-ratio:16/9;
  mix-blend-mode:screen;
  filter:none;
  opacity:.95;
  pointer-events:none;
}
#room-props .room-prop.hardknocks-neon-prop video {
  display:block;
  width:100%;height:100%;
  object-fit:contain;
  mix-blend-mode:screen;
  background:transparent;
  pointer-events:none;
}

/* October 20: consistent controls in every explorable room. */
body[data-stitched="true"] #music-toggle{position:fixed!important;top:auto!important;left:auto!important;right:16px!important;bottom:clamp(115px,20vh,195px)!important;z-index:125!important;display:block!important;opacity:1!important;min-height:46px!important;padding:10px 16px!important;background:#10251cdb!important;color:#fff2d4!important;border:1px solid #f5dca788!important}
body[data-stitched="true"] #ride-controls #ride-back,body[data-stitched="true"] #ride-controls #ride-next{position:fixed!important;top:50%!important;bottom:auto!important;transform:translateY(-50%)!important;z-index:85!important;min-width:50px;min-height:50px;background:#10251cb8!important;opacity:.8!important}
body[data-stitched="true"] #ride-controls #ride-back{left:12px!important;right:auto!important}
body[data-stitched="true"] #ride-controls #ride-next{right:12px!important;left:auto!important}
body[data-stitched="true"] #ride-controls #ride-back:hover,body[data-stitched="true"] #ride-controls #ride-next:hover{opacity:1!important}
@media(max-width:650px){body[data-stitched="true"] #music-toggle{bottom:clamp(96px,18vh,160px)!important;right:10px!important}body[data-stitched="true"] #ride-controls #ride-back,body[data-stitched="true"] #ride-controls #ride-next{min-width:42px;min-height:44px;padding:6px!important;font-size:11px!important}}
