.explorer-page{background:#080c0e}
.explorer-shell{height:100dvh;min-height:410px;display:flex;flex-direction:column}
.explorer-header{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:1rem;padding:.8rem clamp(1rem,3vw,3rem);background:#0b1012;flex:none;border-bottom:1px solid #eee7dc12}
.explorer-header .language-switch{justify-self:end}
.explorer-back a,.explorer-back button{display:inline-flex;align-items:center;gap:.55rem;min-height:44px;padding:.45rem .25rem;background:none;border:0;font-size:.875rem;color:var(--ink);text-align:left;line-height:1.3}
.explorer-heading{text-align:center;min-width:0}
.explorer-heading p{font-size:.75rem;letter-spacing:.24em;text-transform:uppercase;margin:0 0 .15rem;color:var(--gold)}
.explorer-heading h1{font:clamp(1.25rem,2.8vw,2rem)/1.2 var(--serif);margin:0;font-weight:400}
.explorer-view{position:relative;flex:1;min-height:160px;overflow:hidden;isolation:isolate;touch-action:none;background:#080c0e;outline-offset:-5px;cursor:default;user-select:none;-webkit-user-select:none}
.explorer-view.is-zoomed{cursor:grab}.explorer-view.is-dragging{cursor:grabbing}
.explorer-fullscreen{position:absolute;z-index:6;right:12px;top:12px;display:grid;place-items:center;width:44px;height:44px;padding:10px;border:1px solid #c5ac8360;border-radius:5px;background:#0b1012d9;color:var(--gold);cursor:pointer}
.explorer-fullscreen svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.explorer-fullscreen:hover{background:#1a2428}.explorer-fullscreen:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.fullscreen-contract{display:none}.is-fullscreen .fullscreen-contract{display:block}.is-fullscreen .fullscreen-expand{display:none}
.explorer-expanded{overflow:hidden}
.explorer-shell.is-fullscreen{position:fixed;inset:0;width:100%;height:100dvh;min-height:0;z-index:100;background:#080c0e}
.is-fullscreen .explorer-view{flex:1;width:100%;height:auto;min-height:0}
.is-fullscreen .explorer-header{position:absolute;z-index:5;top:0;left:0;right:68px;display:flex;justify-content:space-between;padding:.5rem 1rem;background:none;border:0;pointer-events:none;text-shadow:0 2px 8px #000}
.is-fullscreen .explorer-header .language-switch,.is-fullscreen .explorer-heading p{display:none}
.is-fullscreen:has(.explorer-ambient-toggle:not([hidden])) .explorer-header{right:122px}
.is-fullscreen .explorer-heading h1{font-size:1.25rem}.is-fullscreen .explorer-back{pointer-events:auto;background:#0b1012c9;border-radius:4px;padding:0 .5rem}
.is-fullscreen .explorer-footer{display:flex;justify-content:center;flex-wrap:wrap;width:100%;gap:.3rem .7rem;padding:4px max(12px,env(safe-area-inset-right)) max(4px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));background:#0b1012;border-top:1px solid #c5ac8340}
.is-fullscreen .explorer-destinations,.is-fullscreen .explorer-help{display:none}
.is-fullscreen .explorer-zoom,.is-fullscreen .explorer-music{flex:none;gap:.15rem}.is-fullscreen .explorer-music input{width:72px}
.explorer-plane{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform}
.explorer-plane>img{display:block;width:100%;height:100%;max-width:none;pointer-events:none}
.explorer-ambient{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:contain;background:#080c0e;pointer-events:none}
.explorer-ambient-toggle{position:absolute;z-index:6;right:66px;top:12px;width:44px;height:44px;padding:0;border:1px solid #c5ac8360;border-radius:5px;background:#0b1012d9;color:var(--gold);cursor:pointer;font-size:1.1rem}
.explorer-ambient-toggle:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.explorer-transition{position:absolute;inset:0;z-index:1;overflow:hidden;background:#080c0e;pointer-events:none}
.explorer-transition>img,.explorer-transition>canvas{position:absolute;left:0;top:0;max-width:none;transform-origin:0 0}
.explorer-transition>canvas{object-fit:contain;background:#080c0e}
.explorer-hint{position:absolute;z-index:4;max-width:calc(100% - 24px);padding:.5rem .75rem;border:1px solid #c5ac8370;border-radius:4px;background:#0b1012f2;box-shadow:0 4px 18px #0005;color:var(--ink);font-size:.875rem;line-height:1.4;pointer-events:none}
.explorer-view.is-loading .explorer-plane,.explorer-view.has-error .explorer-plane{visibility:hidden}
.explorer-hotspots{position:absolute;inset:0}
.explorer-hotspot{position:absolute;padding:0;margin:0;border:0;appearance:none;background:none;cursor:pointer;touch-action:none;-webkit-tap-highlight-color:transparent}
.explorer-hotspot svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.explorer-hotspot polygon{fill:#ffd48e;fill-opacity:.08;stroke:#ffe1a6;stroke-opacity:.48;stroke-width:1.5;vector-effect:non-scaling-stroke;transition:fill-opacity .2s,stroke-opacity .2s;filter:drop-shadow(0 0 4px #f4ce91aa)}
.explorer-hotspot:hover polygon,.explorer-hotspot:focus-visible polygon{fill-opacity:.2;stroke-opacity:1}
.explorer-discover polygon{animation:explorer-discover 1.8s ease-in-out var(--discovery-delay,0ms) both}
.explorer-discover:hover polygon,.explorer-discover:focus-visible polygon{animation:none}
@keyframes explorer-discover{0%,100%{fill-opacity:.08;stroke-opacity:.48}45%,60%{fill-opacity:.23;stroke-opacity:1}}
.explorer-hotspot:focus-visible{outline:0}
.explorer-return{width:64px;height:48px;transform-origin:0 0;transform:scale(var(--inverse-zoom,1)) translate(-50%,-50%);border-radius:5px;background:radial-gradient(ellipse at 50% 65%,#f4ce9128,transparent 70%);opacity:.82;transition:opacity .2s;filter:drop-shadow(0 0 5px #f4ce9170)}
.explorer-return ellipse{fill:#ffd48e;fill-opacity:.06;stroke:#ffe1a6;stroke-opacity:.48;stroke-width:1}
.explorer-return path{fill:none;stroke:#ffe1a6;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.explorer-return:hover,.explorer-return:focus-visible{opacity:1}
.explorer-return:hover ellipse,.explorer-return:focus-visible ellipse{fill-opacity:.18;stroke-opacity:1}
.explorer-return:focus-visible{outline:1px solid #ffe1a6;outline-offset:2px}
.explorer-play{width:48px;height:48px;transform-origin:0 0;transform:scale(var(--inverse-zoom,1)) translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,#f4ce9120,transparent 72%);filter:drop-shadow(0 0 6px #f4ce9160)}
.explorer-play circle{fill:#0b1012;fill-opacity:.65;stroke:#ffe1a6;stroke-opacity:.75;stroke-width:1}
.explorer-play path{fill:#ffe1a6;fill-opacity:.85;stroke:none}
.explorer-play:hover circle,.explorer-play:focus-visible circle{fill-opacity:.9;stroke-opacity:1}
.explorer-play:focus-visible{outline:1px solid #ffe1a6;outline-offset:3px}
.explorer-view.is-playing-intro .explorer-hotspot:not(.explorer-return),.explorer-view.is-playing-intro .explorer-hint{display:none}
.explorer-view.is-hall-intro .explorer-return{display:none}
.explorer-hotspot.map-target{border-radius:7px;border:1px solid #e5cca05c;background:#ead4a309;box-shadow:0 0 14px #e7c18314;transition:background .2s,box-shadow .2s}
.explorer-hotspot.map-target:hover,.explorer-hotspot.map-target:focus-visible{background:#ead4a322;border-color:#e5cca0;box-shadow:0 0 18px #e7c18350}
.explorer-hotspot.map-upcoming{cursor:help;border-color:transparent;background:none;box-shadow:none}
.explorer-hotspot.map-upcoming:hover,.explorer-hotspot.map-upcoming:focus-visible{border-style:dashed;border-color:#c5ac8370;background:#ead4a312;box-shadow:none}
.explorer-loading,.explorer-error{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;margin:0;color:var(--ink);padding:1.5rem;text-align:center;background:#080c0e}
.explorer-view.is-changing .explorer-loading{inset:auto;bottom:1rem;left:50%;z-index:3;transform:translateX(-50%);padding:.5rem .9rem;background:#0b1012e8;border-radius:4px;font-size:.875rem;animation:explorer-loading-hint .15s .5s both}
@keyframes explorer-loading-hint{from{opacity:0}to{opacity:1}}
.explorer-error{flex-direction:column;gap:1rem}.explorer-error p{margin:0;max-width:28rem}
.explorer-error button{border:1px solid var(--gold);background:transparent;padding:.7rem 1.1rem;min-height:44px}
.explorer-footer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.65rem 1rem;align-items:center;padding:.7rem clamp(1rem,3vw,3rem) .8rem;background:#0b1012;border-top:1px solid #eee7dc12;flex:none}
.explorer-destinations{display:flex;flex-wrap:wrap;gap:.45rem 1rem;min-width:0}
.explorer-destinations a{display:inline-flex;align-items:center;gap:.6rem;min-height:44px;padding:.4rem .2rem;font-size:1rem;color:var(--ink);text-underline-offset:5px}
.explorer-destinations a:hover{text-decoration:underline;text-decoration-color:var(--gold)}
.explorer-destinations a span{color:var(--gold)}
.explorer-zoom{display:flex;align-items:center;gap:.15rem;justify-content:flex-end}
.explorer-zoom button{border:1px solid #c5ac8345;background:#10191c;min-width:44px;min-height:44px;padding:.4rem .6rem;font-size:1.2rem;line-height:1.2}
.explorer-zoom button:disabled{opacity:.35;cursor:default}
.explorer-zoom output{font-size:.875rem;font-variant-numeric:tabular-nums;min-width:4.2rem;text-align:center;padding:.4rem}
.explorer-zoom .explorer-fit{font-size:.875rem;padding:.5rem .8rem;margin-left:.5rem}
.explorer-help{grid-column:1/-1;margin:0;text-align:center;color:var(--muted);font-size:.875rem;line-height:1.4}
.explorer-music{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:.65rem;flex-wrap:wrap;min-width:0}
.music-toggle{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:44px;padding:.4rem .6rem;border:1px solid #c5ac8330;border-radius:4px;background:transparent;color:var(--ink);font-size:.875rem;cursor:pointer}
.music-toggle[aria-pressed="true"]{color:var(--gold);border-color:#c5ac8360}
.music-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.explorer-music input{width:96px;min-height:44px;accent-color:var(--gold);cursor:pointer;margin:0}
.explorer-music output{font-size:.875rem;color:var(--muted);min-width:2.8rem;font-variant-numeric:tabular-nums}
.explorer-music p{flex-basis:100%;margin:0;font-size:.875rem;color:var(--muted);text-align:center}
.scene-player{width:min(1100px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);padding:0;margin:auto;border:1px solid #c5ac8345;border-radius:6px;background:#0b1012;color:var(--ink);overflow:auto;box-shadow:0 24px 100px #0008}
.scene-player::backdrop{background:#030609e8;transition:background .45s ease-in-out}
.scene-player.is-ending{opacity:0;transition:opacity .45s ease-in-out;pointer-events:none}
.scene-player.is-ending::backdrop{background:#03060900}
.scene-player-heading{position:absolute;z-index:2;top:.6rem;right:.6rem;display:flex}
.scene-player-heading button{flex:none;display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid #c5ac8360;background:#0b1012d9;border-radius:50%;font-size:1.8rem;line-height:1;cursor:pointer}
.scene-player-media{background:#000;line-height:0}
.scene-player video{display:block;width:100%;height:auto;max-height:calc(100dvh - 112px);object-fit:contain;background:#000}
.scene-player-notice{display:flex;align-items:center;justify-content:center;gap:1rem;flex-wrap:wrap;padding:.8rem 1rem}
.scene-player-notice p{font-size:1rem;line-height:1.4;margin:0}
.scene-player-notice button{min-height:44px;padding:.5rem .9rem;border:1px solid var(--gold);background:none;cursor:pointer}
.scene-controls{display:flex;align-items:center;gap:12px;padding:4px 12px;background:#0b1012;line-height:1.3}
.scene-controls button{min-width:76px;min-height:44px;border:1px solid #c5ac8345;border-radius:4px;background:none;color:var(--ink);font-size:.875rem;cursor:pointer}
.scene-controls input{flex:1;min-width:0;min-height:44px;margin:0;accent-color:var(--gold)}
.scene-controls output{flex:none;font-size:.75rem;font-variant-numeric:tabular-nums;color:var(--muted)}
.scene-controls :focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.scene-controls .scene-subtitle-toggle{min-width:44px;flex:none}
.scene-subtitle-toggle abbr{text-decoration:none;font-weight:600;letter-spacing:.03em}
.scene-subtitle-toggle[aria-pressed=true]{color:#f4d8a6;border-color:#dbbb80;background:#dbbb8012}
.scene-player video::cue{font:400 clamp(15px,2.1vw,23px)/1.35 Arial,sans-serif;color:#fff;background:#080b0de8;text-shadow:0 1px 2px #000}
@media(max-width:420px){.scene-controls{gap:8px;padding-inline:8px}.scene-controls [data-scene-toggle]{min-width:68px}.scene-controls output{font-size:.6875rem}}
/* Rotating a phone leaves room for the picture and all essential navigation. */
@media(orientation:landscape) and (max-height:540px){
 .explorer-shell{height:100dvh;min-height:0}
 .explorer-header{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:.4rem;padding:0 max(12px,env(safe-area-inset-right)) 0 max(12px,env(safe-area-inset-left))}
 .explorer-heading{grid-column:auto;grid-row:auto}.explorer-heading p{display:none}.explorer-heading h1{font-size:1.15rem}
 .explorer-view{min-height:0}
 .explorer-footer{grid-template-columns:minmax(0,1fr) auto auto;gap:4px 12px;padding:2px max(12px,env(safe-area-inset-right)) max(2px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}
 .explorer-destinations{justify-content:flex-start;gap:4px 12px;flex-wrap:nowrap}.explorer-destinations a{font-size:.8125rem;white-space:nowrap;gap:3px}
 .explorer-footer [data-page-music-slot]{grid-column:2;grid-row:1}
 .explorer-footer .explorer-zoom{grid-column:3;grid-row:1}
 .explorer-footer .explorer-fit,.explorer-footer .explorer-zoom output,.explorer-help,.explorer-footer [data-music-caption]{display:none}
 .explorer-footer .world-music-panel input{width:60px}.explorer-footer .world-music-panel .explorer-music{gap:4px;flex-wrap:nowrap}
 .scene-player{width:100%;max-height:100dvh;border:0;border-radius:0;overflow:hidden}
 .scene-player video{height:calc(100dvh - 52px - env(safe-area-inset-bottom));max-height:none;width:100%;object-fit:contain}
 .scene-controls{padding:4px max(12px,env(safe-area-inset-right)) max(4px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}
 .scene-player-heading{top:6px;right:max(6px,env(safe-area-inset-right))}
 .scene-player:has(.scene-player-notice:not([hidden])) video{height:calc(100dvh - 120px - env(safe-area-inset-bottom))}
}
@media(max-width:640px) and (orientation:portrait){
 .explorer-header{grid-template-columns:1fr auto;gap:.25rem .6rem;padding:.4rem 1rem .7rem}
 .explorer-heading{grid-column:1/-1;grid-row:2}.explorer-heading p{display:none}
 .explorer-footer{grid-template-columns:1fr;gap:.3rem;padding:.4rem .8rem .6rem}
 .explorer-destinations{justify-content:center;gap:.2rem .8rem}
 .explorer-zoom{justify-content:center}.explorer-help{font-size:.8125rem}
}
@media(prefers-reduced-motion:reduce){.explorer-hotspot polygon,.explorer-hotspot.map-target,.explorer-return,.scene-player,.scene-player::backdrop{transition:none!important}.explorer-loading,.explorer-discover polygon{animation:none!important}}
