/* Separate night paintings retain the same room geometry and interactive objects. */
.room-night-art{position:absolute;inset:0;z-index:0;background:url(assets/room-night-v1.webp) center/100% 100%;opacity:0;pointer-events:none;transition:opacity 1.2s}
.close-view .room-night-art{background-image:url(assets/sofa-night-v1.webp)}
.app.night .room-night-art{opacity:1}
.app.night .room-art,.app.night.rainy .room-art{filter:none}
.app.night .daylight,.app.night .night-wash{opacity:0}
.app.night .ambient-light{opacity:.08;background:linear-gradient(135deg,#3d587833,transparent 65%)}
.app.night.rainy .ambient-light{opacity:.30;background:linear-gradient(130deg,#344c7a70,transparent 75%)}
.app.night .room-night-art{filter:none}
.app.night.rainy .room-night-art{filter:saturate(.87)}
.app.night .rain{background:linear-gradient(#182c4e99,#2541557d)}
.app.night .rain i{background:linear-gradient(transparent,#b4ccd88c,transparent);box-shadow:none;width:1px}
.app.night .lamp-glow{opacity:.65;background:radial-gradient(ellipse 22% 23% at 91% 39%,#ffda832e,transparent 90%),radial-gradient(ellipse 44% 32% at 76% 64%,#f7c78914,transparent 90%)}
.app.night.close-view .lamp-glow{background:radial-gradient(ellipse 24% 24% at 98% 44%,#ffda8330,transparent 90%),radial-gradient(ellipse 48% 35% at 75% 63%,#f7c78918,transparent 90%)}
.app.night .character,.app.night.rainy .character{filter:drop-shadow(2px 1px 2px #e8bd5b12)}
.app.night .character-ground{background:#111b3370;filter:blur(6px)}
.app.night .seat-contact{background:#1b213d65}
/* The quiet date and weather occupy one compact corner; no large room title. */
.app .topbar{padding:calc(20px + env(safe-area-inset-top)) 22px 26px;background:linear-gradient(#fff7e4a1,transparent);pointer-events:none}
.app .dayline{margin:0;font-size:10px;line-height:1.5}
.app .weather-status{top:calc(43px + env(safe-area-inset-top));left:22px}
.app.night .topbar{background:linear-gradient(#17213285,transparent)}
.app.night .dayline,.app.night .weather-status{color:#e0d1bb}
.app.night .weather-status svg{color:#e8c98f}
.app.night .tiny-dot{background:#c9b18d}
.app.night .speech{background:#e7d6baed;border-color:#b49b7a;color:#554238;box-shadow:0 5px 18px #111a2926}
.app.night .speech::before{background:#e7d6ba;border-color:#b49b7a}
.app.night .speech-name{color:#887360}
.app.night .speech-mark{color:#b39873}
.app.night .bottom-bar{background:#e1d2b9;border-color:#9f8b73;color:#5c4a3b}
.app.night .drawer-edge{background:linear-gradient(90deg,transparent,#e1d2b9 60%);color:#8b755b}
.app.night .drawer-toggle{background:#cbbc9f}
.app.night .drawer-toggle:disabled{background:none}
.app.night .drawer-track>button:active,.app.night .expression-picker [aria-pressed=true]{background:#c8ccb0}
.app.night .companion-mini{background:#ded7bdef;border-color:#a3a386}
.app.night .table-lamp:focus-visible{outline-color:#f0d299}
@media(max-width:350px){.app .topbar{padding-left:16px}.app .weather-status{left:16px}}
@media(prefers-reduced-motion:reduce){.room-night-art{transition:none}}
