/* v31: Flamme's living presence, quiet props and one coherent passage. */
.cave-set-background{inset:auto;left:5%;top:62.4%;width:46%;height:auto;aspect-ratio:3/2;background:url('media/cave-set-v31-closed.png') center/contain no-repeat;mask-image:none;-webkit-mask-image:none;filter:brightness(.79) saturate(.78) drop-shadow(0 5px 4px #0008);opacity:.94}
.hero.vault-unlocked .cave-set-background{background-image:url('media/cave-set-v31-open.png')}
.matched-set-hotspots{left:5%!important;top:62.4%!important;width:46%!important;height:auto;aspect-ratio:3/2}
.matched-set-hotspots .cave-table{position:absolute;left:12%;top:8%;width:38%;height:88%}
.matched-set-hotspots .cave-chest{position:absolute;left:64%;top:20%;width:34%;height:76%}
.matched-set-preview{aspect-ratio:3/2;background:linear-gradient(#07131155,#07131155),url('media/gaia-day-depths.png') 0 69%/165% auto no-repeat}
.matched-set-preview:has(.open){background-image:linear-gradient(#07131155,#07131155),url('media/gaia-day-depths.png')}
.matched-set-art{position:absolute;inset:2%;background:url('media/cave-set-v31-closed.png') center/contain no-repeat;filter:brightness(.94)}
.matched-set-preview:has(.open) .matched-set-art{background-image:url('media/cave-set-v31-open.png')}
.matched-set-preview .scene-chest-hotspot{left:66%!important;top:20%!important;width:32%!important;height:76%!important}
.immortal-presence{position:absolute;left:3%;top:35%;width:10%;height:28%;border-radius:45%;background:radial-gradient(ellipse,#ffdc9d66,#ffae4322 46%,transparent 68%);mix-blend-mode:screen;pointer-events:none;animation:flamme-presence 3.7s ease-in-out infinite alternate}
@keyframes flamme-presence{0%,100%{opacity:.35;transform:scale(.93,1)}23%{opacity:.67;transform:scale(1.05,.98)}41%{opacity:.48;transform:scale(.98,1.03)}68%{opacity:.85;transform:scale(1.07,1.02)}87%{opacity:.53;transform:scale(.96,1)}}
#adminOpen.captain-access{opacity:0!important;background:none!important;border:0!important;box-shadow:none!important;min-width:44px;min-height:44px}
#adminOpen.captain-access:hover,#adminOpen.captain-access:focus-visible,#adminOpen.captain-access:active{opacity:.8!important}
#adminOpen.captain-access span{display:none!important}
.door-lock-mark{opacity:0;transition:opacity .2s}
.image-door:hover .door-lock-mark,.image-door:focus-visible .door-lock-mark{opacity:.6}
.ship-corridor.ship-gallery{display:block;position:relative;width:min(1200px,94vw);max-width:94vw;aspect-ratio:3/2;margin:24px auto 45px;overflow:hidden;border-radius:8px;box-shadow:0 15px 50px #0008;transform:perspective(1500px) scale(calc(1 + var(--approach)*.08));transform-origin:center 58%}
.corridor-art{display:block;width:100%;height:100%;object-fit:cover}
.corridor-door{position:absolute;top:24%;height:58%;width:27%;border-radius:22% 22% 2% 2%;background:none}
.corridor-door.captain-door{left:14%}.corridor-door.meeting-door{left:59%}
.corridor-door .door-label{position:absolute;bottom:0;left:-8%;width:116%;font:clamp(10px,1.65vw,20px) Georgia,serif;padding:8px 4px;opacity:0;transition:opacity .2s;text-shadow:0 2px 4px #000,0 0 8px #000}
.corridor-door:hover .door-label,.corridor-door:focus-visible .door-label{opacity:1}
.corridor-door:hover{transform:none;filter:none;box-shadow:inset 0 0 22px #c3a76822}
.corridor-door:focus-visible{outline:2px solid #d9bd81;outline-offset:-2px}
@media(max-width:650px){.cave-set-background,.matched-set-hotspots{left:4%!important;top:62.4%!important;width:49%!important}.ship-corridor.ship-gallery{width:96vw;max-width:96vw}.ship .room-heading{padding:12px}.ship .room-heading h1{font-size:23px}.corridor-door .door-label{opacity:1;font-size:11px}.vault-zoom .matched-set-preview{aspect-ratio:3/2;background-size:165% auto}}
@media(prefers-reduced-motion:reduce){.immortal-presence{animation:none;opacity:.5}.ship-corridor.ship-gallery{transition:none}}
html.motion-paused .immortal-presence{animation-play-state:paused}

.red-door{cursor:pointer}.door-lock{opacity:0;transition:opacity .2s}.red-door:hover .door-lock,.door-lock:focus-visible{opacity:.6}
/* Only Flamme within the glass moves; the brass fanal remains fixed. */
.immortal-presence{inset:0;width:100%;height:100%;border-radius:0;background:url('media/cave-set-v31-closed.png') center/contain no-repeat;clip-path:polygon(5.5% 64%,9.3% 64%,9.3% 74%,5.5% 74%);mix-blend-mode:screen;animation:flamme-living 4.1s ease-in-out infinite alternate}
@keyframes flamme-living{0%,100%{opacity:.18;filter:brightness(1.05);transform:translateY(0)}22%{opacity:.46;filter:brightness(1.4);transform:translateY(-.3px)}43%{opacity:.26;filter:brightness(1.12);transform:translateY(.1px)}71%{opacity:.55;filter:brightness(1.55);transform:translateY(-.5px)}89%{opacity:.3;filter:brightness(1.18);transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.immortal-presence{animation:none;opacity:.2}}

.scene-chess{position:absolute;inset:0;pointer-events:none}.scene-board-grid{position:absolute;inset:0;width:100%;height:100%;filter:brightness(.86)}
.scene-chess .scene-pirate-piece{position:absolute;inset:auto;width:2.65%;height:7.4%;transform:translate(-50%,-94%);filter:drop-shadow(0 1px 1px #0008);background-size:640% 200%}

/* Chest animation is isolated: the board and lantern never shift when it opens. */
.cave-set-background,.hero.vault-unlocked .cave-set-background,.matched-set-art,.matched-set-preview:has(.open) .matched-set-art{background:none}
.cave-set-background::before,.cave-set-background::after,.matched-set-art::before,.matched-set-art::after{content:'';position:absolute;inset:0;background:url('media/cave-set-v31-closed.png') center/contain no-repeat;pointer-events:none}
.cave-set-background::before,.matched-set-art::before{clip-path:polygon(0 0,68% 0,68% 100%,0 100%)}
.cave-set-background::after,.matched-set-art::after{clip-path:polygon(68% 0,100% 0,100% 100%,68% 100%)}
.hero.vault-unlocked .cave-set-background::after,.matched-set-preview:has(.open) .matched-set-art::after{background-image:url('media/cave-set-v31-open.png')}
.scene-chess,.immortal-presence{z-index:2}
/* Align hit areas to the visible doors in the new corridor. */
.corridor-door{top:18%;height:54%;width:25%}.corridor-door.captain-door{left:15%}.corridor-door.meeting-door{left:59%}

/* v33: props sit on the rear part of the LEFT rock shelf, before the water. */
.cave-set-background,.matched-set-hotspots{left:2%!important;top:64.2%!important;width:27%!important}
@media(max-width:650px){.cave-set-background,.matched-set-hotspots{left:2%!important;top:64.2%!important;width:27%!important}}
