/* Self-contained illustrative scenes; no telemetry or control logic. */
.prop-scene{position:relative;height:256px;margin:-8px -8px 24px;overflow:hidden;pointer-events:none;border-radius:3px;background:radial-gradient(ellipse at 50% 80%,#9ba48614,transparent 65%),linear-gradient(#10161070,#10161015);isolation:isolate}
.scene-caption{position:absolute;bottom:12px;left:16px;font:500 8px/1.5 var(--body);letter-spacing:2px;text-transform:uppercase;color:#a5ad998c}
/* A stone floor plan with extruded walls, doorways and discrete LED sconces. */
.dungeon-model{position:absolute;left:50%;top:45%;width:360px;height:210px;transform:translate(-50%,-50%) perspective(650px) rotateX(28deg) rotateZ(-8deg);filter:drop-shadow(0 16px 12px #0006)}
.dungeon-room,.dungeon-hall{position:absolute;background-color:#252c27;background-image:linear-gradient(#89918516 1px,transparent 1px),linear-gradient(90deg,#89918516 1px,transparent 1px);background-size:19px 19px;border:6px solid #657064;box-shadow:0 5px 0 #303d33,inset 0 0 0 2px #111a13,inset 0 0 20px #0007}
.dungeon-room:before{content:'';position:absolute;inset:-6px;border:1px solid #abb19b55;pointer-events:none}
.dungeon-room:after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at center,rgb(var(--led)/.27),transparent 75%);opacity:.1;animation:room-light 12s linear infinite;animation-delay:var(--phase)}
.dungeon-room.entry-room{left:20px;top:45px;width:86px;height:112px;--led:255 177 70;--phase:0s}
.dungeon-room.rune-room{left:140px;top:12px;width:80px;height:80px;--led:78 222 209;--phase:-9s}
.dungeon-room.vault-room{left:260px;top:65px;width:80px;height:120px;--led:236 91 80;--phase:-3s}
.dungeon-room.ritual-room{left:142px;top:133px;width:80px;height:65px;--led:174 142 255;--phase:-6s}
.dungeon-hall{z-index:2;border-width:5px 0;box-shadow:0 4px 0 #303d33,inset 0 2px 0 #111a13,inset 0 -2px 0 #111a13}
.hall-cross{left:100px;top:73px;width:166px;height:25px}
.dungeon-hall.hall-spine{left:167px;top:86px;width:26px;height:53px;border-width:0 5px;box-shadow:inset 2px 0 #111a13,inset -2px 0 #111a13}
.dungeon-stairs{position:absolute;left:18px;top:64px;width:38px;height:25px;border:1px solid #a5ab9160;background:repeating-linear-gradient(0deg,transparent 0 5px,#8f998b80 5px 6px)}
.dungeon-altar{position:absolute;left:23px;top:23px;width:23px;height:23px;border:1px solid #a3b8a076;transform:rotate(45deg);box-shadow:inset 0 0 0 5px #151c17,0 3px 0 #101710}
.dungeon-rune{position:absolute;left:18px;top:9px;width:30px;height:30px;border:1px solid #9a8da370;border-radius:50%;box-shadow:inset 0 0 0 5px #252c27,inset 0 0 0 6px #9a8da340}
.dungeon-plinth{position:absolute;left:18px;top:42px;width:32px;height:40px;background:linear-gradient(90deg,#2d332b,#414638);border:2px solid #96977a85;box-shadow:0 4px 0 #151b13}
.dungeon-led{position:absolute;z-index:3;width:5px;height:5px;border-radius:50%;background:rgb(var(--led)/.26);box-shadow:0 0 0 2px #141c16;animation:led-sequence 12s linear infinite;animation-delay:var(--phase)}
.dungeon-led:nth-of-type(1){left:8px;top:8px}.dungeon-led:nth-of-type(2){right:8px;top:8px}.dungeon-led:nth-of-type(3){left:8px;bottom:8px}.dungeon-led:nth-of-type(4){right:8px;bottom:8px}
@keyframes led-sequence{0%,3%,28%,100%{background:rgb(var(--led)/.22);box-shadow:0 0 0 2px #141c16}7%,23%{background:#fff4da;box-shadow:0 0 0 2px rgb(var(--led)/.5),0 0 9px 3px rgb(var(--led)/.8),0 0 26px 10px rgb(var(--led)/.25)}}
@keyframes room-light{0%,3%,28%,100%{opacity:.08}7%,23%{opacity:1}}
/* Real 3D hinge: the lid rotates around the rear edge, across the chest's width. */
.chest-scene{background:radial-gradient(ellipse at 50% 68%,#a8833d1a,transparent 65%),linear-gradient(#10161070,#10161015)}
.chest-shadow{position:absolute;left:50%;top:76%;width:205px;height:35px;transform:translate(-50%,-50%) rotate(-6deg);border-radius:50%;background:#0007;filter:blur(10px)}
.chest-camera{position:absolute;inset:0;perspective:800px}
.chest-object{position:absolute;left:50%;top:53%;width:160px;height:78px;transform:translate(-50%,-20%) rotateX(-22deg) rotateY(-30deg);transform-style:preserve-3d}
.chest-face{position:absolute;border:3px solid #a48650;background:linear-gradient(90deg,transparent 15%,#9c7d48 15% 21%,transparent 21% 79%,#9c7d48 79% 85%,transparent 85%),repeating-linear-gradient(0deg,#4a3322 0 15px,#30251b 16px 18px);box-shadow:inset 0 0 0 2px #31271b,inset 0 0 18px #0005;backface-visibility:visible}
.chest-front,.chest-back{width:160px;height:78px;left:0;top:0}.chest-front{transform:translateZ(48px)}.chest-back{transform:translateZ(-48px) rotateY(180deg)}
.chest-side{width:96px;height:78px;left:32px;top:0;background:repeating-linear-gradient(0deg,#382a1d 0 15px,#271e16 16px 18px)}
.chest-right{transform:rotateY(90deg) translateZ(80px)}.chest-left{transform:rotateY(-90deg) translateZ(80px)}
.chest-mouth{position:absolute;left:0;top:-48px;width:160px;height:96px;transform:rotateX(90deg);border:6px solid #9e7c44;background:radial-gradient(ellipse at center,#b18a34,#17180d 70%);box-shadow:inset 0 0 0 3px #362a15,inset 0 0 20px #000;backface-visibility:visible}
.chest-mouth:after{content:'';position:absolute;inset:4px;background:radial-gradient(ellipse,#fff3b1,#d9a24490 45%,transparent 75%);opacity:0;animation:treasure-glow 10s ease-in-out infinite}
.chest-hinge{position:absolute;left:0;top:0;width:160px;height:0;transform-style:preserve-3d;transform:translateZ(-48px);animation:chest-open 10s cubic-bezier(.45,0,.25,1) infinite}
.chest-lid-panel{position:absolute;left:0;top:-96px;width:160px;height:96px;transform-origin:center bottom;transform:rotateX(-90deg);transform-style:preserve-3d}
.chest-lid-panel:after{content:'';position:absolute;inset:0;border:5px solid #8f713e;background:linear-gradient(90deg,#453420,#211b14 45%,#453420);transform:translateZ(-1px);backface-visibility:hidden;rotate:y 180deg;box-shadow:inset 0 0 0 2px #b99b5e55}
.chest-latch{position:absolute;left:64px;top:9px;width:26px;height:32px;background:linear-gradient(110deg,#d5b478,#8e6e37);border:2px solid #d2af6e;border-radius:2px;box-shadow:0 2px 4px #0009}
.chest-latch:after{content:'';position:absolute;left:8px;top:8px;width:6px;height:11px;background:#241d13;clip-path:polygon(0 0,100% 0,100% 48%,70% 60%,85% 100%,15% 100%,30% 60%,0 48%)}
.treasure-aura{position:absolute;left:50%;top:24%;width:150px;height:130px;transform:translateX(-50%);background:radial-gradient(ellipse at 50% 100%,#ffdb8270,transparent 68%);opacity:0;mix-blend-mode:screen;animation:treasure-glow 10s ease-in-out infinite;pointer-events:none}
.treasure-spark{position:absolute;left:46%;top:46%;width:3px;height:3px;border-radius:50%;background:#fff1b8;box-shadow:0 0 6px #ffcf69;opacity:0;animation:treasure-spark 10s ease-in-out infinite}.treasure-spark.spark-two{left:55%;animation-delay:.3s}.treasure-spark.spark-three{left:50%;animation-delay:.65s}
@keyframes chest-open{0%,14%,88%,100%{transform:translateZ(-48px) rotateX(0deg)}35%,65%{transform:translateZ(-48px) rotateX(105deg)}}
@keyframes treasure-glow{0%,20%,85%,100%{opacity:0}38%,65%{opacity:1}}
@keyframes treasure-spark{0%,30%,75%,100%{opacity:0;transform:translateY(12px) scale(.5)}42%{opacity:.85}65%{opacity:0;transform:translateY(-70px) scale(1)}}
@media(max-width:480px){.prop-scene{height:232px;margin-inline:-8px}.dungeon-model{transform:translate(-50%,-50%) perspective(650px) rotateX(28deg) rotateZ(-8deg) scale(.76)}.chest-object{transform:translate(-50%,-20%) rotateX(-22deg) rotateY(-30deg) scale(.9)}}
@media(prefers-reduced-motion:reduce){.prop-scene *,.prop-scene *:before,.prop-scene *:after{animation:none!important}.dungeon-led{background:rgb(var(--led)/.8);box-shadow:0 0 8px rgb(var(--led)/.4)}.chest-hinge{transform:translateZ(-48px) rotateX(55deg)}}
