/* Scenery only: game layout, typography and input remain untouched. */
.lab-laser-cinematic #labLaserDepth,.lab-laser-cinematic .lab-scene-lasers{display:none!important}
.lab-laser-cinematic .lab-scenery[data-scene="lasers"] .lab-scene-image{background-image:url('../images/backgrounds/lasers-clean-v1.webp');filter:brightness(.72)}
.scenery-laser-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;mix-blend-mode:screen}
.scenery-laser-corner{position:fixed;inset:0;width:100%;height:100%;z-index:4;pointer-events:none;mix-blend-mode:screen}
.scenery-gold-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.gold-effects-ready .lab-scene-visual{visibility:hidden;animation:none!important;transform:none!important}
.gold-effects-ready .lab-gold-field{display:none}
.gold-effects-ready .lab-scene-gold{z-index:1;pointer-events:none}
.scenery-fire-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.fire-effects-ready .lab-scene-visual{visibility:hidden}
.fire-effects-ready :is(.lab-scene-haze,.lab-scene-firelight){display:none!important}
/* Light from below catches the rim; the upper controls keep their own colours. */
.scenery-fire-reflection{position:absolute!important;inset:0;z-index:8!important;pointer-events:none;border-radius:inherit;mix-blend-mode:screen;opacity:0;will-change:opacity;
  background:radial-gradient(ellipse 100% 110% at 15% 110%,rgba(255,143,49,.28),rgba(255,75,16,.10) 45%,transparent 76%);
  box-shadow:inset 0 -2px 2px rgba(255,182,79,.78),inset 0 -12px 18px -12px rgba(255,72,12,.65);
  -webkit-mask-image:linear-gradient(to top,#000 0%,#000 9%,transparent 68%);mask-image:linear-gradient(to top,#000 0%,#000 9%,transparent 68%)}
.scenery-fire-reflection.fire-right{background:radial-gradient(ellipse 100% 110% at 88% 110%,rgba(255,118,29,.31),rgba(255,61,12,.09) 45%,transparent 76%)}
.scenery-fire-vault{position:fixed;z-index:4;pointer-events:none;overflow:hidden;border-radius:32px}
.scenery-fire-vault>.scenery-fire-reflection{background:radial-gradient(ellipse 110% 65% at 14% 106%,rgba(255,146,53,.32),rgba(255,83,17,.12) 43%,transparent 76%);
  box-shadow:inset 0 -3px 3px rgba(255,190,94,.87),inset 0 -18px 26px -18px rgba(255,89,22,.82);
  -webkit-mask-image:linear-gradient(to top,#000,transparent 46%);mask-image:linear-gradient(to top,#000,transparent 46%)}
.scenery-fire-vault>.scenery-fire-reflection.fire-right{background:radial-gradient(ellipse 110% 65% at 88% 106%,rgba(255,126,34,.35),rgba(255,70,14,.12) 43%,transparent 76%)}
body.lab-modal-open .scenery-fire-reflection,body:not([data-background="smoke"]) .scenery-fire-reflection{visibility:hidden}
.lab-scenery[data-scene="drowned"] .lab-scene-image{filter:none;background-position:50% 100%}
.dv-water{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.drowned-effects-ready .lab-scene-image{visibility:hidden}
.scene-effects-paused .dv-atmosphere *{animation-play-state:paused!important}
.dv-atmosphere{display:none}
.dv-ready.study-cinematic .lab-scene-image{visibility:hidden}
.dv-atmosphere{overflow:hidden;pointer-events:none}
.dv-bubble{position:absolute;left:var(--x);top:110%;width:var(--s);height:calc(var(--s)*1.12);border:1px solid #b8fff87a;border-radius:50%;box-shadow:inset 1px 1px 1px #e8fffa70,0 0 4px #70dde222;background:radial-gradient(ellipse at 35% 25%,#eaffff70,transparent 33%,transparent 55%,#83bfc22a);opacity:0;animation:dv-bubble-rise var(--duration) linear var(--delay) infinite}
.dv-dust{position:absolute;left:var(--x);top:var(--y);width:var(--s);height:var(--s);border-radius:50%;background:#b5e8da;opacity:0;box-shadow:0 0 3px #a6ecea80;animation:dv-silt var(--duration) ease-in-out var(--delay) infinite}
@keyframes dv-bubble-rise{0%{transform:translate3d(0,0,0) scale(.55);opacity:0}10%{opacity:.42}50%{transform:translate3d(18px,-65vh,0) scale(.86);opacity:.26}90%{opacity:.16}100%{transform:translate3d(-12px,-140vh,0) scale(1.15);opacity:0}}
@keyframes dv-silt{0%,100%{transform:translate3d(-14px,12px,0);opacity:.02}45%{opacity:.4}75%{transform:translate3d(19px,-28px,0);opacity:.18}}

@media(max-width:880px){.lab-scenery[data-scene="drowned"] .lab-scene-image{background-position:80% 100%}.dv-extra{display:none}}
@media(prefers-reduced-motion:reduce){.dv-atmosphere *{animation:none!important}.dv-dust{opacity:.16}.dv-bubble{display:none}}
