/* Two supplied originals. Crop their letterboxing; object-fit preserves proportions.
   Night is slightly wider, so its sides are trimmed by ~1% to register the desk. */
body{--night:0}
.scene-photo{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.scene-photo img{position:absolute;left:0;display:block;width:100%;object-fit:cover;user-select:none;-webkit-user-drag:none;pointer-events:none}
.scene-day img{top:-1.99115044%;height:104.09292035%}
.scene-night img{top:-2.34113712%;height:104.34782609%}
.scene-night{opacity:var(--night)}
.day-atmosphere{position:absolute;inset:0;pointer-events:none;opacity:calc(1 - var(--night))}
.day-atmosphere .window-light{inset:6% 45% 16% 1%;background:radial-gradient(ellipse at 22% 18%,rgba(233,210,160,.08),transparent 70%)}
#board-art{filter:brightness(calc(.84 - var(--night)*.2)) saturate(.65)}
.hotspot[data-object="lamp"]{z-index:3}
body[data-lighting-busy="true"] .object-light{opacity:0}
body[data-lighting-busy="true"] .hotspot-hit{pointer-events:none}
/* Reuse existing detail photos with a restrained night grade. Their photographed
   shadows stay intact; these are not claimed to be re-lit night detail assets. */
#detail-plane,#board-plane,#computer-plane{filter:brightness(calc(1 - var(--night)*.15)) sepia(calc(var(--night)*.12))}
@media(prefers-reduced-motion:reduce){.scene-night{will-change:auto}}

/* Dappled foliage is attached to the room plane, below dust and interaction hints. */
#tree-shadows{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;user-select:none}

/* Above the live artwork: light follows whichever painting is currently selected. */
#board-sunlight{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;user-select:none;mix-blend-mode:screen}
