.night-shade{position:absolute;inset:0;z-index:2;background:#061126;opacity:0;pointer-events:none;transition:opacity 9s linear;mix-blend-mode:multiply}
.light-map{position:absolute;inset:0;z-index:3;pointer-events:none}
.room-glow{position:absolute;opacity:0;transition:opacity 9s ease-in-out;background:radial-gradient(ellipse at 50% 35%,rgba(255,212,122,.34),rgba(241,169,78,.13) 45%,transparent 76%);mix-blend-mode:screen}
.room-glow.lit{opacity:1}
.scene.is-night .building>img{transition:opacity 9s linear}
.sprite-actor.sleeping{opacity:1;filter:brightness(.55) saturate(.75)}
.sprite-actor.sleeping .sprite-art{display:none}
.sleep-art{display:none;position:absolute;inset:0;background-image:url('sleep-sprites.png');background-repeat:no-repeat;background-size:300% 300%;background-position:var(--sleep-x,0%) var(--sleep-y,0%)}
.sprite-actor.sleeping .sleep-art{display:block;animation:sleep-breathe 3.7s ease-in-out infinite}
.sleep-zzz{display:none;position:absolute;left:69%;bottom:83px;font:bold 15px 'DM Sans',sans-serif;color:#deedff;text-shadow:0 1px 3px #162b57;white-space:nowrap}
.sprite-actor.sleeping .sleep-zzz{display:block;animation:zzz-float 2.4s ease-out infinite}
.sprite-actor.awake-at-night{filter:drop-shadow(0 0 6px rgba(255,201,116,.55))}
@keyframes sleep-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.015)}}
@keyframes zzz-float{0%{opacity:0;transform:translateY(7px) scale(.8)}45%{opacity:1}100%{opacity:0;transform:translate(8px,-17px) scale(1.15)}}
@keyframes light-flicker{to{filter:brightness(.9)}}
@media(max-width:850px){.sleep-zzz{bottom:65px;font-size:13px}}
