.header-links{display:flex;align-items:center;gap:10px;pointer-events:auto}.header-links>button{border:1px solid var(--line);background:#24231ecc;padding:11px 15px;font-size:12px;border-radius:2px}.header-links>button:hover{background:#ded0b6;color:#27241e}.caption{max-width:440px}.caption h1{font-size:clamp(29px,3vw,42px)}
#near-action{position:absolute;z-index:3;left:50%;bottom:34px;transform:translateX(-50%);display:flex;align-items:center;gap:16px;background:#eee4d1;color:#29241b;border:0;padding:16px 20px;box-shadow:0 8px 28px #0907035c;font-size:13px;max-width:calc(100% - 40px)}#near-action kbd{font-size:11px;border-color:#84765d8c;padding:3px 6px}#near-action:hover{background:#fff6e4}
.cave-layer{padding:0;max-width:none;max-height:none;width:calc(100% - 56px);height:calc(100% - 56px);margin:auto;border:1px solid #b398646b;background:#27241e;box-shadow:0 20px 80px #0008;color:#f5efe2;overflow:hidden}.cave-layer::backdrop{background:#110d08b8}.cave-layer iframe{position:absolute;inset:44px 0 0;width:100%;height:calc(100% - 44px);border:0;background:transparent}.layer-bar{height:44px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;background:#26221c;color:#f5efe2;font-size:12px;border-bottom:1px solid #ad967b55}.layer-bar button{border:0;background:none;padding:10px;color:inherit}.layer-bar button:hover{background:#6a57384d}.layer-bar svg{height:16px;width:16px;stroke:currentColor;fill:none;stroke-width:1.5;vertical-align:middle;margin-left:12px}#collection-loading{position:absolute;inset:44px 0 0;display:grid;place-items:center;margin:0;background:#27241e}
#story-layer{width:min(750px,calc(100% - 48px));height:auto;max-height:calc(100% - 48px);overflow:auto;background:#eee5d5;color:#28231b}#story-layer .story-inner{padding:32px 42px 40px}#story-title{font:400 clamp(32px,4vw,48px)/1.05 Cormorant,Georgia,serif;margin:0 0 24px;max-width:520px;text-wrap:balance}#story-copy{max-width:62ch;font-size:15px;line-height:1.8}#story-copy p{margin:0 0 16px}#story-film{display:block;width:100%;max-height:260px;background:#211b14;margin:25px 0 10px}#story-film-note{font-size:12px;line-height:1.6;color:#655843}.story-actions{display:flex;gap:18px;flex-wrap:wrap;margin-top:28px;align-items:center}.story-actions button,.story-actions a{padding:14px 18px;background:#2b271f;border:0;color:#f5efe2;font:inherit;font-size:13px;text-decoration:none}.story-actions a{background:transparent;color:#342a1d;text-decoration:underline;text-underline-offset:5px}body[data-overlay=open] .walk-controls,body[data-overlay=open] #near-action{visibility:hidden}::selection{background:#d5bc84;color:#211c15}.cave-layer{scrollbar-color:#927b55 #e6dbc7}
@media(max-width:650px){.header-links{gap:6px}.header-links>button{font-size:11px;padding:9px 10px}.header-links #help-toggle{padding:8px;font-size:0}.header-links #help-toggle span{font-size:12px;margin:0}.brand{max-width:145px}.caption{max-width:190px;bottom:240px}.caption h1{font-size:30px}.viewpoints{bottom:20px;gap:12px}.viewpoints button{font-size:11px}.instruction{bottom:58px}.walk-controls{bottom:115px}#near-action{bottom:78px;max-width:calc(100% - 32px);padding:12px 14px;font-size:12px;width:max-content;gap:8px}#near-action kbd{display:none}.cave-layer{width:100%;height:100%;border:0}.layer-bar{padding:0 12px;font-size:11px}.layer-bar button{padding:10px 0}#story-layer{width:calc(100% - 24px);max-height:calc(100% - 24px)}#story-layer .story-inner{padding:27px 23px 30px}.story-actions{gap:10px}#story-copy{font-size:14px}.caption>span{font-size:11px;line-height:1.7;display:block}}
#projector-toggle{position:absolute;right:var(--spacing);top:86px;padding:10px 14px;background:#24231ecc;color:#f5efe2;border:1px solid var(--line);font-size:12px;z-index:3} @media(max-width:650px){#projector-toggle{top:70px;font-size:11px}}
#help-toggle:hover{background:#ded0b6;color:#27241e}
@media(max-width:650px){body[data-projection-near=true] .caption{opacity:0;visibility:hidden}.caption{transition:opacity .2s ease}.header-links>button,.viewpoints button,.layer-bar,#projector-toggle,.caption>span{font-size:12px}}
@media(prefers-reduced-motion:reduce){.caption{transition:none}}

/* A contextual viewing shortcut: existing videos stay on the mineral wall. */
#frame-film{position:fixed;right:40px;top:183px;z-index:3;min-height:40px;border:1px solid #dbc69d66;background:#211d17d9;color:#f5efe2;padding:10px 14px;font:12px Manrope,sans-serif;box-shadow:0 4px 16px #0002}
#frame-film::before{content:'⛶';font:18px/1 Arial,sans-serif;vertical-align:-1px;margin-right:8px}
#frame-film:hover{background:#eee4d1;color:#29241b}
body[data-film-focus] .caption,body[data-film-focus] .instruction{visibility:hidden}
body[data-overlay=open] #frame-film,body.portal-preparing #frame-film{visibility:hidden}
@media(max-width:650px){#frame-film{right:18px;top:158px;min-height:40px;padding:9px 11px}}
@media(max-width:650px){
 body[data-film-focus] #near-action{bottom:calc(10px + env(safe-area-inset-bottom));min-height:44px}
 body[data-film-focus] .viewpoints{visibility:hidden}
}

/* R27: navigation remains available without narrative overlays over the cave. */
#help{max-height:calc(100dvh - 110px);overflow:auto;overscroll-behavior:contain}
#help .viewpoints{position:static;display:flex;flex-wrap:wrap;justify-content:flex-start;gap:8px 18px;margin-top:18px;visibility:visible}
#help .viewpoints button{font-size:12px;margin:0;padding:10px 0}
#help #render-quality{position:static;display:inline-flex;margin-top:14px;min-height:44px;padding:10px 14px;font-size:12px}
#frame-film{top:137px}
.joystick-guide{display:none}
@media(max-width:650px){#help{max-height:calc(100dvh - 92px)}#frame-film{top:116px}body #near-action{bottom:calc(12px + env(safe-area-inset-bottom));min-height:44px}}
