.room-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:20px 0}.room-heading h2{margin:9px 0;font-size:28px}.room-heading p{font-size:13px;color:#728169}.room-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:20px;align-items:start}.room-main{background:#fffdf5;border:1px solid #e0e6d3;border-radius:25px;overflow:hidden}.room-stage{height:510px;position:relative;background:#f4f0e4;display:grid;place-items:center;border-radius:25px 25px 0 0;overflow:hidden}.room-stage canvas{display:block;width:100%;height:100%;touch-action:none}.room-toolbar{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;padding:15px 10px 7px}.room-toolbar button{font-size:12px;background:#eaf0df;color:#49663d;padding:11px}.room-tip{font-size:11px;color:#7a876c;padding:9px 20px;text-align:center}.room-message{margin:0 20px 18px;padding:12px 15px;border-radius:14px;background:#f1f4e6;font-size:12px;color:#526e43}.room-decor{border:1px solid #dfe5d4;border-radius:23px;background:#fffef8;padding:20px}.room-decor h3{font-size:16px;margin:0 0 11px}.room-help{font-size:12px;color:#7b876c;margin-bottom:15px}.room-items{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.room-items button{padding:10px 3px;background:#f2f4e9;color:#496442;font-weight:400;border:1px solid transparent;display:grid;justify-items:center;gap:5px}.room-items button[aria-pressed=true],.room-slots button[aria-pressed=true]{border-color:#4d8059;background:#e6efd9;box-shadow:inset 0 0 0 1px #4d8059}.room-items span{font-size:26px}.room-items b{font-size:10px;line-height:1.5}.room-items small{font-size:10px}.room-items button:disabled{opacity:.55;cursor:default}.room-unlock{font-size:11px;margin:10px 0;color:#75836c}.room-reward-rules{font-size:11px;color:#637b53;line-height:1.8;margin:10px 0 20px}.room-reward-rules summary{cursor:pointer}.room-reward-rules p{margin:7px 0}.room-slots{display:grid;grid-template-columns:1fr 1fr;gap:7px}.room-slots button{font-size:11px;text-align:left;padding:10px;background:#f4f3e9;color:#52654b;border:1px solid #e4e6d7}.room-slots small{display:block;font-size:10px;margin-top:5px;color:#869078}.room-place-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:13px}.room-place-actions button{font-size:11px;padding:10px}.room-save-status{min-height:40px;font-size:11px;color:#6b7c5c;margin-top:15px;line-height:1.8}.room-save-actions{display:flex;justify-content:space-between;gap:8px}.room-save-actions button{font-size:12px}.room-unavailable{font-size:14px;text-align:center;padding:30px;line-height:2;color:#768665}.room-preview-page{max-width:1400px;margin:auto;padding:25px}.room-preview-page>a{font-size:13px}.room-reward-notice{position:fixed;bottom:60px;left:16px;z-index:30;border:1px solid #cad8bb;background:#fffce9;border-radius:14px;padding:12px 17px;font-size:13px;color:#42663d;box-shadow:0 4px 25px #304b3520}
@media(max-width:1000px){.room-layout{grid-template-columns:minmax(0,1fr)}.room-decor{max-width:none}.room-items{grid-template-columns:repeat(4,1fr)}.room-slots{grid-template-columns:repeat(3,1fr)}.room-stage{height:500px}}
@media(max-width:600px){.room-stage{height:350px}.room-heading{align-items:flex-start;flex-direction:column}.room-heading h2{font-size:24px}.room-decor{padding:16px}.room-items{grid-template-columns:repeat(3,1fr)}.room-slots{grid-template-columns:1fr 1fr}.room-tip{padding:7px 12px}.room-message{margin:5px 12px 15px}.room-toolbar{gap:5px}.room-toolbar button{font-size:11px;padding:10px}.room-preview-page{padding:18px}.room-reward-notice{right:16px;text-align:center}}

.room-stage.room-stage-2d{height:auto;aspect-ratio:3/2;display:block;background:#f3e6ce}
.room-painted-background{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none}
.room-pet-2d{position:absolute!important;left:34%;top:24%;width:30%;height:51%;padding:0!important;border:0!important;background:transparent!important;z-index:3;box-shadow:none!important;cursor:pointer}
.room-pet-2d>img{width:100%;height:100%;object-fit:contain}.room-pet-2d>img[hidden]{display:none}
.room-pet-2d canvas{width:100%;height:100%;touch-action:auto}
.room-collection-slot{position:absolute;width:9.8%;height:12.5%;transform:translate(-50%,-50%);padding:0!important;background:transparent!important;border:1px dashed #f7e8b58a!important;border-radius:15px;z-index:4;display:grid;place-items:center;box-shadow:none!important}
.room-collection-slot img{width:100%;height:100%;object-fit:contain;pointer-events:none}.room-collection-slot span{font-size:clamp(15px,2vw,25px);color:#f9edc6;background:#86614360;border-radius:50%;width:26px;height:26px;line-height:26px}
.room-collection-slot[aria-pressed=true]{outline:2px solid #fff1a2;outline-offset:2px;background:#fff1b71a!important}
.room-hotspot{position:absolute;z-index:2;background:transparent!important;border:0!important;box-shadow:none!important;border-radius:18px;padding:0!important;cursor:pointer}.room-hotspot:hover,.room-hotspot:focus-visible{outline:2px dashed #fff6ce;outline-offset:-4px}.room-kitchen{left:2%;top:30%;width:24%;height:34%}.room-reading{left:79%;top:55%;width:20%;height:25%}
.room-pet-2d:focus-visible{outline:3px dashed #436b40;outline-offset:2px;border-radius:30%}
@media(min-width:1001px){.room-layout{grid-template-columns:minmax(0,1fr) 285px}.room-decor{padding:16px}}

.room-night-shade{position:absolute;inset:0;background:#122349;opacity:0;pointer-events:none;z-index:1;transition:opacity 1s}.room-stage[data-night=true] .room-night-shade{opacity:.53}.room-stage[data-night=true][data-light=true] .room-night-shade{opacity:.32}
.room-window-weather{position:absolute;left:26.1%;top:8.9%;width:26.9%;height:37.9%;border-radius:48% 48% 0 0;overflow:hidden;pointer-events:none;z-index:2}.room-stage[data-night=true] .room-window-weather{background:#10223d70}
.room-moon{display:none;position:absolute;right:19%;top:12%;width:13%;aspect-ratio:1;border-radius:50%;background:#fff2bf;box-shadow:0 0 14px #fff3b060}.room-stage[data-night=true] .room-moon{display:block}
.room-rain{position:absolute;inset:0;opacity:0;background:repeating-linear-gradient(112deg,transparent 0 18px,#d5eaffaa 19px 20px,transparent 21px 37px);background-size:49px 100px;animation:room-rain 1s linear infinite}.room-stage[data-weather=rain] .room-rain{opacity:.55}.room-stage[data-weather=rain] .room-window-weather{background-color:#4f72934a}
.room-breeze{position:absolute;left:20%;bottom:8%;font-size:clamp(12px,3vw,35px);color:#fff9d5;opacity:0;animation:room-breeze 2.5s ease-in-out infinite}.room-stage[data-window-open=true] .room-breeze{opacity:.85}
.room-window{left:26%;top:9%;width:27%;height:38%;border-radius:45% 45% 0 0;z-index:2}.room-rug{left:27%;top:68%;width:44%;height:11%;border-radius:50%;z-index:2}.room-plant{left:0;top:68%;width:20%;height:31%;z-index:6}
.room-stage.rug-touched .room-rug{box-shadow:0 0 18px 6px #fff6a999!important;background:#d7efa730!important;animation:room-rug 1.1s ease-in-out}.room-water{position:absolute;left:8%;top:71%;width:9%;height:14%;pointer-events:none;z-index:7;opacity:0}.room-water i{position:absolute;width:9%;height:18%;border-radius:50% 50% 60% 60%;background:#a2e2f3;left:20%;animation:room-water .7s ease-in infinite}.room-water i:nth-child(2){left:50%;animation-delay:.2s}.room-water i:nth-child(3){left:80%;animation-delay:.4s}.plant-watered .room-water{opacity:1}
.room-life-object{position:absolute!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;z-index:5;cursor:pointer}.room-life-object img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}.room-life-object[hidden],.room-pet-2d[hidden]{display:none!important}.room-bed,.room-sleep-sticker{left:57%;top:76%;width:31%;height:23%}.room-lamp{left:69%;top:63%;width:7%;height:15%;z-index:4}.room-alarm{left:86%;top:81%;width:7%;height:10%;z-index:6}.room-life-object:focus-visible{outline:2px dashed #fff4b0;outline-offset:2px;border-radius:15px}
.room-sleep-sticker span{position:absolute;left:25%;top:-10%;font-family:serif;font-size:clamp(14px,3vw,32px);color:#eee5c9;text-shadow:0 1px 3px #283951;animation:room-breeze 3s ease-in-out infinite;pointer-events:none}
.room-stage[data-night=true] .room-life-object img,.room-stage[data-night=true] .room-collection-slot img{filter:brightness(.75) saturate(.8)}.room-stage[data-light=true] .room-life-object img{filter:brightness(.96)}
.room-lamp-glow{position:absolute;left:49%;top:46%;width:43%;height:48%;z-index:2;pointer-events:none;background:radial-gradient(ellipse at 55% 55%,#ffe4a078,#ffc96815 50%,transparent 72%);opacity:0;transition:opacity .6s}.room-stage[data-light=true] .room-lamp-glow{opacity:1}
.room-life-controls{padding:13px 18px 6px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;background:#f7f4e8}.room-life-controls p{font-size:12px;color:#526b49;margin:0}.room-life-controls small{width:100%;font-size:10px;color:#8a927a}.room-weather-buttons{display:flex;gap:6px;flex-wrap:wrap}.room-weather-buttons button{padding:8px 11px;font-size:11px;background:#e8efdc;color:#506846;border:1px solid transparent}.room-weather-buttons button[aria-pressed=true]{border-color:#698653;background:#dbe9cb}
.room-alarm-dialog{border:1px solid #d2dcbc;border-radius:22px;background:#fffdf2;color:#3a5942;width:min(420px,calc(100vw - 28px));padding:26px;box-shadow:0 15px 80px #1d382c40}.room-alarm-dialog::backdrop{background:#142d2466}.room-alarm-dialog h2{font-size:22px;margin:0 0 12px}.room-alarm-dialog p{font-size:13px;line-height:1.7}.room-alarm-dialog label{display:flex;justify-content:space-between;align-items:center;margin:15px 0;gap:15px}.room-alarm-dialog input{font:inherit;color:inherit;border:1px solid #cfd9bf;border-radius:8px;padding:9px;background:#fff}.room-alarm-dialog form>div{display:flex;justify-content:flex-end;gap:10px}.room-alarm-dialog button{padding:10px 15px;border:0;border-radius:12px;background:#e7eddb;color:#45643f;cursor:pointer}.room-alarm-dialog button[type=submit]{background:#477252;color:white}.room-alarm-dialog small{display:block;margin-top:15px;line-height:1.7;color:#79856b}.room-alarm-error{color:#ad493e}
@keyframes room-rain{to{background-position:-24px 100px}}@keyframes room-breeze{50%{transform:translateY(-5px)}}@keyframes room-water{from{transform:translateY(-10px);opacity:1}to{transform:translateY(50px);opacity:0}}@keyframes room-rug{50%{transform:scale(1.03)}}
@media(prefers-reduced-motion:reduce){.room-rain,.room-breeze,.room-water i,.room-sleep-sticker span,.room-stage.rug-touched .room-rug{animation:none}.room-night-shade,.room-lamp-glow{transition:none}}

.room-stage[data-light=false] .room-lamp img{filter:brightness(.65) saturate(.55)}.room-stage[data-light=true] .room-lamp img{filter:brightness(1.12) drop-shadow(0 0 7px #ffe1a5)}

/* Approved bedroom layout: the bed, wall sconce and clock align to the painting. */
.room-stage-2d .room-pet-2d{left:26.8%;top:34%;width:21.5%;height:41%}
.room-stage-2d .room-bed,.room-stage-2d .room-sleep-sticker{left:56.8%;top:46.5%;width:43.2%;height:41.5%;border-radius:20% 25% 8% 8%}
.room-stage-2d .room-lamp{left:56.5%;top:20.2%;width:11.3%;height:13.2%;border-radius:30%}
.room-stage-2d .room-alarm{left:64.6%;top:49.1%;width:5.6%;height:8.9%;border-radius:30%}
.room-stage-2d .room-lamp-glow{left:43%;top:7%;width:38%;height:43%;background:radial-gradient(ellipse at 50% 48%,#ffe3a582,#ffda8218 48%,transparent 70%)}
.room-stage-2d .room-rug{left:21%;top:71%;width:37%;height:14%}
.room-stage-2d .room-sleep-sticker span{left:72%;top:2%}
.room-stage-2d .room-collection-slot:last-child{height:7%;width:8%}
.room-stage-2d .room-bed:hover,.room-stage-2d .room-lamp:hover,.room-stage-2d .room-alarm:hover{outline:2px dashed #fff1b2;outline-offset:-2px}

/* Story bubbles pass taps through; dreams have a full-size accessible pop button. */
.room-stage .room-thought{position:absolute;z-index:10;box-sizing:border-box;width:max-content;max-width:min(260px,72%);margin:0;padding:12px 16px;border:2px solid #d8cba6;border-radius:24px;background:#fffdf2f5;color:#506443;font-size:13px;line-height:1.65;box-shadow:0 5px 18px #493e3026;pointer-events:none;text-align:center;overflow-wrap:anywhere}
.room-thought::before,.room-thought::after{content:"";position:absolute;border:2px solid #d8cba6;background:#fffdf2;border-radius:50%;left:var(--thought-tail)}
.room-thought::before{width:11px;height:9px;bottom:-13px;transform:translateX(-50%)}
.room-thought::after{width:5px;height:4px;bottom:-23px;transform:translateX(-20%)}
.room-stage .room-thought[data-kind=dream]{width:116px;padding:10px 15px;border-radius:40%;background:#fffdf8f5}
.room-thought[data-kind=dream] img{display:block;width:64px;height:64px;object-fit:contain;margin:0 auto 3px}
.room-thought[data-kind=dream] span{display:block;font-size:11px}
@media(max-width:600px){.room-stage .room-thought{font-size:11px;padding:8px 11px;max-width:72%;line-height:1.5}.room-stage .room-thought[data-kind=dream]{width:90px;padding:7px 10px}.room-thought[data-kind=dream] img{width:44px;height:44px}}
.room-thought .room-dream-pop{position:absolute;inset:0;width:100%;height:100%;min-width:44px;min-height:44px;padding:0;background:transparent;border:0;border-radius:inherit;pointer-events:auto;cursor:pointer;z-index:2;touch-action:manipulation}
.room-thought .room-dream-pop:hover{background:#fff4c51a;filter:none}
.room-thought .room-dream-pop:focus-visible{outline:3px solid #8aa768;outline-offset:3px}
.room-thought .room-dream-pop[aria-disabled=true]{cursor:default}
.room-stage .room-thought.is-popping{animation:room-dream-shell .9s ease-out forwards}
.room-thought.is-popping img{animation:room-dream-fruit .9s ease-out forwards}
.room-thought.is-popping::before,.room-thought.is-popping::after{animation:room-dream-tail .9s ease-out forwards}
.room-dream-star{position:absolute;left:50%;top:42%;font-style:normal;font-size:15px;color:#e8b959;opacity:0;pointer-events:none;animation:room-dream-star .9s ease-out forwards}
@keyframes room-dream-fruit{0%{transform:scale(1)}22%{transform:translateY(-6px) scale(1.1)}40%{transform:translateY(0) scale(.98);opacity:1}80%,100%{transform:translateY(-3px) scale(.9);opacity:0}}
@keyframes room-dream-shell{0%,25%{background:#fffdf8f5;border-color:#d8cba6}65%,100%{background:transparent;border-color:transparent;box-shadow:none}75%{opacity:1}100%{opacity:0}}
@keyframes room-dream-tail{0%,25%{opacity:1}65%,100%{opacity:0}}
@keyframes room-dream-star{0%,25%{opacity:0;transform:translate(-50%,-50%) scale(.4)}40%{opacity:.9}100%{opacity:0;transform:translate(calc(-50% + var(--star-x)),calc(-50% + var(--star-y))) scale(.65)}}
@media(prefers-reduced-motion:reduce){.room-stage .room-thought.is-popping{animation:room-dream-tail .9s linear forwards}.room-thought.is-popping img,.room-thought.is-popping::before,.room-thought.is-popping::after{animation:none}.room-dream-star{display:none;animation:none}}
.room-wardrobe{position:absolute;left:53%;top:30%;width:15%;height:36%;z-index:4;text-align:center;color:#4f6544;text-decoration:none;filter:drop-shadow(2px 5px 3px #674b3426)}
.room-wardrobe img{width:100%;height:100%;object-fit:contain}.room-wardrobe span{position:absolute;left:25%;right:25%;bottom:3%;background:#fff7de;border-radius:12px;font-size:clamp(10px,1.2vw,14px);padding:3px}.room-wardrobe:focus-visible{outline:3px dashed #567647;border-radius:20px}
.room-stage .room-watering-layer{position:absolute;inset:0;z-index:3;pointer-events:none}.room-stage .room-watering-layer[hidden]{display:none}.room-stage[data-watering=true] .room-pet-2d{opacity:0;pointer-events:none}.room-stage[data-sleeping=true] .room-watering-layer{display:none}

.room-stage[data-watering=true]:not([data-watering-busy=true]) .room-pet-2d{pointer-events:auto}
.room-stage .room-wardrobe{z-index:7}

/* Painted clock is a foreground cutout: wardrobe < clock < clock hit target. */
.room-clock-foreground{position:absolute;left:64.58333%;top:49.02344%;width:5.66406%;height:9.27734%;z-index:8;pointer-events:none}
.room-stage-2d .room-alarm{z-index:9}
.room-stage[data-night=true] .room-clock-foreground{filter:brightness(.55)}
.room-stage[data-night=true][data-light=true] .room-clock-foreground{filter:brightness(.73)}
.room-lamp-material{position:absolute;left:56.51042%;top:23.4375%;width:7.8125%;height:8.88672%;z-index:2;pointer-events:none;opacity:1}
.room-lamp-material{filter:brightness(.5)}
.room-stage-2d .room-lamp-glow{opacity:0}
.room-stage-2d[data-night=true][data-light=true] .room-lamp-glow{opacity:.16}

/* Visible table silhouette sits over the wardrobe, below the clock. */
.room-clock-table{position:absolute;left:61.39323%;top:55.46875%;width:11.84896%;height:10.25391%;z-index:8;pointer-events:none}
.room-stage[data-night=true] .room-clock-table{filter:brightness(.55)}
.room-stage[data-night=true][data-light=true] .room-clock-table{filter:brightness(.73)}
