.room-float-card{transition:height .22s ease,opacity .18s ease,background .22s ease}
#room-cards.is-orbiting .room-float-card{pointer-events:none;opacity:.75}
#room-cards>svg{transition:opacity .18s ease}
#home-bar h1{margin:0}
.curtain-preview{height:100px;margin:0 14px 14px;border:0;background:none;box-shadow:none;overflow:visible;color:#c4c7c9}
.curtain-preview::after{display:none}
.curtain-preview svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:.85;stroke-linecap:round;stroke-linejoin:round}
.curtain-preview .curtain-window{stroke-opacity:.18}
.curtain-preview .curtain-cloth{fill:#85898d;fill-opacity:.65;stroke-opacity:.8}
.curtain-preview .curtain-sheer{fill:#f3f3f3;fill-opacity:.12;stroke-opacity:.6}
.curtain-preview .curtain-fold{stroke-opacity:.35;stroke-width:.65}
.curtain-preview .curtain-weave{stroke-opacity:.18;stroke-width:.5}
.curtain-preview .curtain-rail{stroke-width:2;stroke-opacity:.85}
.curtain-preview .curtain-slat{stroke-opacity:.8}
.curtain-preview .curtain-arrow{stroke:rgb(var(--theme));stroke-width:1.1;stroke-opacity:.8}
#curtain-controls .device-control{display:grid;grid-template-columns:96px minmax(0,1fr);column-gap:12px}
#curtain-controls h3{grid-column:1/-1;margin:4px 0 12px}
#curtain-controls .curtain-preview{grid-column:1;grid-row:2/5;width:96px;height:90px;margin:0;align-self:center}
#curtain-controls .views,#curtain-controls .setting,#curtain-controls input{grid-column:2;margin:0}
#curtain-controls .views{gap:4px}
#curtain-controls .views button{padding:8px 4px;min-height:36px;border-radius:9px}
#curtain-controls .setting{margin-top:8px}
#curtain-controls output{font-size:16px}
#curtain-controls input[type=range]{margin:5px 0 2px}
#curtain-controls small{grid-column:1/-1;margin-top:8px}
#curtain-controls .device-control+.device-control{margin-top:18px;padding-top:14px}
@media(max-width:900px){#curtain-controls .views button{min-height:44px}}
#room-cards>svg>path{opacity:.14}
#room-cards>svg>path.is-active{opacity:.3}
#room-cards>svg>path.is-open{opacity:1}
#room-cards .room-float-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
.room-float-card.is-open:not(:has(.room-float-actions>button:nth-child(3))){height:82px}
.room-scenes button>span{font-size:15px;font-weight:700;letter-spacing:.03em}
.room-scenes button[aria-pressed=true]{border-color:rgba(var(--theme),.9)!important;background:rgba(var(--theme),.15)!important;box-shadow:inset 0 0 0 1px rgba(var(--theme),.35)}
#time-dock .daylight-label{font-size:11px;color:#b7b9be;align-self:center;padding:0 8px 0 10px;letter-spacing:.12em}
.stage-pointer-glow{position:absolute;inset:-12%;pointer-events:none;transform:translate(var(--pointer-x,0px),var(--pointer-y,0px));transition:transform .65s cubic-bezier(.2,.65,.25,1);will-change:transform}
.stage-pointer-glow i{display:block;position:absolute;inset:0;background:radial-gradient(ellipse at 42% 37%,rgba(var(--stage-warm),.17),transparent 46%),radial-gradient(ellipse at 70% 70%,rgba(var(--stage-cool),.13),transparent 45%);animation:stage-breathe 16s ease-in-out infinite alternate}
@keyframes stage-breathe{from{transform:translate(-2%,-1%) scale(.97);opacity:.55}to{transform:translate(2%,2%) scale(1.05);opacity:1}}
#scene-aura.motion-paused::before,#scene-aura.motion-paused::after,#scene-aura.motion-paused i{animation-play-state:paused}
@media(max-width:900px){#time-dock .daylight-label{padding:0 2px;font-size:10px}}
@media(prefers-reduced-motion:reduce){.room-float-card,#room-cards>svg,.stage-pointer-glow{transition:none}.stage-pointer-glow i{animation:none}}
