/* One level camera and one coordinate space. Layers follow physical support. */
.legendary-room{position:relative;margin:1rem 0 2rem;color:#f6ecdc;background:#211e31;border:1px solid #776883;border-radius:24px;padding:16px;isolation:isolate}
.legendary-room button{font:inherit;color:inherit;border:1px solid #b4a18b;background:#342e47;border-radius:10px;padding:9px 12px;cursor:pointer}
.legendary-room button:focus-visible{outline:3px solid #ffe498;outline-offset:4px}.legendary-room button:disabled{opacity:.55;cursor:default}
.room-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:6px 2px 14px}.room-heading{margin-right:auto}.room-eyebrow{display:block;font-size:10px;font-weight:600;letter-spacing:.16em;color:#cbbdac;margin-bottom:6px}.room-toolbar h3{font-size:clamp(20px,2.4vw,30px);font-weight:600;letter-spacing:-.03em;margin:0}.room-toolbar>button{font-size:12px;padding:9px 13px;background:#ffffff08;border-color:#8f809969;border-radius:7px}
.room-viewport{position:relative;overflow:hidden;border-radius:16px;background:#262334;aspect-ratio:3/2}
.room-scene{position:relative;width:100%;height:100%;touch-action:pan-y;--pan-x:0px;--pan-y:0px;transform:translate(var(--pan-x),var(--pan-y)) scale(1.025);transform-origin:center;isolation:isolate}
.room-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;z-index:0}
.legendary-room .room-edit-corner{position:absolute;right:14px;top:14px;z-index:30;width:42px;height:42px;padding:10px;background:#211e31dc;border-color:#eee1c677;box-shadow:0 3px 12px #0004;backdrop-filter:blur(8px)}.room-edit-corner svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.legendary-room .room-object{position:absolute;left:calc(var(--x)*1%);top:calc(var(--y)*1%);width:calc(var(--w)*1%);padding:0;background:none;border:0;aspect-ratio:1;z-index:6}
.room-sprite{display:block;width:100%;height:100%;background-repeat:no-repeat;pointer-events:none}.room-object>.room-sprite{filter:drop-shadow(0 2px 1px #1b152321)}
.room-object-label{position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:max-content;max-width:180px;padding:4px 7px;border-radius:6px;background:#181525ed;color:#fff;font-size:12px;opacity:0;pointer-events:none;z-index:25}.room-object:hover .room-object-label,.room-object:focus-visible .room-object-label,.room-object.is-missing-art .room-object-label{opacity:1}
.legendary-room .room-rug{z-index:3}.legendary-room .room-door,.legendary-room .room-wardrobe{z-index:4}.legendary-room .room-desk,.legendary-room .room-drawers{z-index:5}
.legendary-room .room-window,.legendary-room .room-poster,.legendary-room .room-mirror,.legendary-room .room-hat,.legendary-room .room-star-map,.legendary-room .room-fairy-lights,.legendary-room .room-legendary-crest{z-index:2}
.room-bed-anchor{position:absolute;left:10%;top:31%;width:31%;aspect-ratio:1;z-index:6}.legendary-room .room-bed-anchor .room-bed{z-index:0}.legendary-room .room-bed-anchor .room-pillows{z-index:1}.legendary-room .room-bed-anchor .room-pet{z-index:2}
.legendary-room .room-chest,.legendary-room .room-pet-bed,.legendary-room .room-bowls,.legendary-room .room-parcel{z-index:8}.legendary-room .room-egg{z-index:5}.legendary-room .room-companion{z-index:8}.legendary-room .room-gaming-chair{z-index:6}
.room-character{position:absolute;left:47%;top:51%;width:15%;height:39%;z-index:7;pointer-events:none}.room-character img{max-width:100%;height:100%;object-fit:contain;animation:room-character-breathe 7s ease-in-out infinite;transform-origin:50% 96%}
.legendary-room .room-ear{position:absolute;left:41%;top:45%;width:2.5%;height:3.5%;padding:0;font-size:0;background:transparent;border:0;z-index:9;border-radius:50%}.room-ear:hover,.room-ear:focus-visible{background:#fff5}.legendary-room[data-companion-pose=lying] .room-ear{left:44%;top:48%}.legendary-room[data-companion-pose=playing] .room-ear{left:41%;top:47%}
.room-hat::before{content:'';position:absolute;left:22%;top:6%;width:71%;height:10%;background:linear-gradient(#86613c,#624226);border:1px solid #c0956266;border-radius:3px;box-shadow:0 2px 3px #0003;z-index:-1}
.room-companion-bubble{position:absolute;left:48%;top:40%;width:23%;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s,visibility .3s;box-sizing:border-box;padding:10px 28px 10px 13px;z-index:20;background:#18232dc4;color:#f5f1e8;border:1px solid #e7e3d22e;backdrop-filter:blur(18px) saturate(1.15);-webkit-backdrop-filter:blur(18px) saturate(1.15);border-radius:14px;box-shadow:0 5px 16px #20192e24;font-size:clamp(10px,1vw,13px);line-height:1.4}.room-companion-bubble.is-visible{opacity:1;visibility:visible;pointer-events:auto}.room-companion-bubble::after{content:'';position:absolute;left:-11px;top:50%;width:13px;height:15px;background:#18232dc4;clip-path:polygon(100% 0,100% 100%,0 100%)}.room-companion-bubble p{margin:0}.legendary-room .room-companion-bubble button{font-size:11px;padding:3px 9px;background:#655473;color:white;border:0;margin-top:5px}.legendary-room .room-companion-bubble .room-next-message{position:absolute;right:3px;top:0;padding:2px 5px;margin:0;background:transparent;color:#e6d9bd;font-weight:bold;font-size:17px}
.room-light{position:absolute;inset:0;pointer-events:none;z-index:12;transition:background 1s}.room-hint{font-size:12px;color:#d0c2d6}.room-panel{position:relative;z-index:30;background:#30293e;border:1px solid #c0a77e;border-radius:14px;padding:16px;margin-top:12px}.room-panel[hidden]{display:none}.room-panel>button{float:right}.room-panel h4{margin:0 0 12px}.room-panel button{margin:4px}.room-panel input{padding:8px;border-radius:6px;max-width:100%;color:#211e31;background:#fff}.room-panel ul{padding-left:22px}.room-panel li{margin:8px 0}
[data-room-status]{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.room-fish{position:absolute;left:34%;top:43%;width:25%;height:25%;animation:room-swim 9s ease-in-out infinite;pointer-events:none}.has-dirty-aquarium .room-aquarium>.room-sprite{filter:sepia(.6) hue-rotate(30deg) saturate(.75)}
.room-guide-lying{position:absolute;left:0;bottom:0;height:62.2%;background-size:225.08% 120.67%;background-position:50.54% 80.65%;clip-path:polygon(1% 62%,15% 29%,40% 23%,48% 38%,52% 12%,57% 0%,64% 27%,76% 34%,95% 57%,99% 69%,90% 73%,77% 82%,65% 87%,24% 84%,3% 79%)}
[data-room-sprite=creature-sitting]{clip-path:inset(0 10% 0 0)}.room-companion>.room-sprite,.room-guide-frame{animation:room-guide-breathe 6.5s ease-in-out infinite;transform-origin:50% 95%}.room-guide-frame{position:absolute;inset:0}.room-guide-incoming{animation:room-pose-in 1.2s ease both}.room-guide-outgoing{animation:room-pose-out 1.2s ease both;pointer-events:none}
.room-plant>.room-sprite{transform:scale(var(--plant-growth,1));transform-origin:50% 95%;filter:drop-shadow(0 0 var(--plant-glow,0px) #c8d58e66)}
.is-celebrating .room-disco{filter:drop-shadow(0 0 16px #eddc97);animation:room-glow 1s ease-in-out 5}.is-hatching .room-egg{animation:room-wiggle .3s ease-in-out 8}.legendary-room.is-paused *{animation-play-state:paused!important}
.room-advent-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}.room-advent-answers{display:grid;gap:8px}.room-advent-grid button{min-height:44px;padding:6px;font-size:12px}.room-hatch-preview{display:flex;width:220px;height:110px}.room-hatch-preview>.room-sprite{width:110px;height:110px}.room-hatch-preview>.room-sprite:last-child{transform:scale(.35)}
@keyframes room-swim{0%,100%{transform:translateX(-30%) scaleX(1)}45%{transform:translateX(50%) scaleX(1)}50%{transform:translateX(50%) scaleX(-1)}95%{transform:translateX(-30%) scaleX(-1)}}@keyframes room-glow{50%{filter:drop-shadow(0 0 26px #a6f5ee)}}@keyframes room-wiggle{50%{rotate:3deg}}@keyframes room-character-breathe{0%,100%{transform:translateY(0)}50%{transform:translateY(-1px)}}@keyframes room-guide-breathe{50%{transform:translateY(-.5px)}}@keyframes room-pose-in{from{opacity:0}to{opacity:1}}@keyframes room-pose-out{to{opacity:0;visibility:hidden}}
.room-quick-actions{display:none}
@media(max-width:600px){.legendary-room{padding:10px}.room-toolbar{gap:8px}.room-heading{width:100%}.room-toolbar>button{font-size:11px}.room-quick-actions{display:flex;gap:6px;overflow-x:auto;padding:10px 0;scrollbar-width:thin}.room-quick-actions button{flex:none;font-size:12px;min-height:44px}.room-hint{font-size:11px}.legendary-room .room-edit-corner{width:32px;height:32px;right:6px;top:6px;padding:7px}.room-companion-bubble{font-size:9px;left:49%;top:24%;width:42%;padding:6px 18px 6px 8px;border-radius:9px;line-height:1.25}.room-companion-bubble::after{left:-10px;top:75%;height:12px}.legendary-room .room-companion-bubble button{font-size:9px}.room-advent-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.legendary-room *{animation:none!important;transition:none!important}.room-guide-outgoing{display:none}.room-scene{transform:none}}
/* Personalization affects individual surfaces; source artwork stays intact. */
.room-wallpaper-tone,.room-floor-tone{position:absolute;inset:0;pointer-events:none;z-index:1;mix-blend-mode:color;opacity:.65;transition:background .8s}.room-wallpaper-tone{clip-path:polygon(18.5% 6%,81.5% 6%,81.5% 46%,18.5% 46%);background:var(--custom-wallpaper,transparent)}.room-floor-tone{clip-path:polygon(0 70%,18% 63%,82% 63%,100% 70%,100% 100%,0 100%);background:var(--custom-floor,transparent);mix-blend-mode:multiply;opacity:.32}.room-material-tone{position:absolute;inset:0;pointer-events:none;mix-blend-mode:color;opacity:.76}.room-bed .room-material-tone{background:var(--custom-bedding,transparent);clip-path:polygon(12% 47%,48% 34%,72% 38%,84% 59%,77% 89%,55% 87%,12% 70%)}.room-rug .room-material-tone{background:var(--custom-rug,transparent);clip-path:polygon(28% 8%,88% 15%,96% 84%,3% 88%)}.room-pillows .room-material-tone{background:var(--custom-pillows,transparent);clip-path:polygon(12% 30%,77% 13%,94% 69%,13% 89%)}
.legendary-room[data-custom-fish=gold] .room-fish{filter:hue-rotate(0deg) saturate(1.3)}.legendary-room[data-custom-fish=coral] .room-fish{filter:hue-rotate(330deg) saturate(1.2)}.legendary-room[data-custom-fish=azure] .room-fish{filter:hue-rotate(165deg)}.legendary-room[data-custom-fish=violet] .room-fish{filter:hue-rotate(220deg)}.legendary-room[data-custom-fish=mint] .room-fish{filter:hue-rotate(95deg)}.legendary-room[data-custom-fish=pearl] .room-fish{filter:saturate(.1) brightness(1.5)}
.room-poster-design{position:absolute;inset:10% 24% 9% 24%;display:none;align-items:center;justify-content:center;text-align:center;padding:8%;background:var(--custom-poster);color:#f7f2df;font-size:clamp(5px,.72vw,10px);font-weight:700;letter-spacing:.08em;line-height:1.4;overflow:hidden}.legendary-room:not([data-custom-poster=default]) .room-poster-design{display:flex}.room-poster-design img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.room-poster-design .room-poster-caption{position:absolute;bottom:0;left:0;right:0;padding:6%;background:#161622b3;z-index:1;font-size:8px;overflow-wrap:anywhere}.room-custom-categories,.room-custom-options{display:flex;flex-wrap:wrap;gap:7px}.room-custom-categories button{font-size:12px}.room-custom-categories [aria-pressed=true],.room-custom-options [aria-pressed=true]{border-color:#d8cbb2;background:#5e516b}.room-custom-options button{display:flex;gap:8px;align-items:center;font-size:13px}.room-color-swatch{width:18px;height:18px;background:var(--swatch);border-radius:50%;box-shadow:inset 0 0 0 1px #ffffff44}.room-poster-upload{margin-top:20px;border-top:1px solid #ffffff22;padding-top:12px}.room-poster-upload label{display:block;margin:10px 0}.room-poster-upload input{display:block;margin-top:5px}.room-panel h5{font-size:14px;margin:18px 0 10px}
.room-light{background:radial-gradient(ellipse 17% 21% at 93% 67%,var(--custom-light,transparent),transparent 85%);mix-blend-mode:soft-light}.is-night .room-light{mix-blend-mode:normal;background:radial-gradient(ellipse 20% 27% at 93% 67%,#ffc98224 0%,#12182d96 88%)}.is-night.is-lit .room-light{background:radial-gradient(ellipse 25% 35% at 93% 67%,#ffd79c18 0%,#ffc57909 38%,#141b3078 100%)}.is-lit .room-lamp>.room-sprite{filter:drop-shadow(0 0 7px #ffd09177) drop-shadow(0 0 18px var(--custom-light,#fbd19544))}.legendary-room:not(.is-lit) .room-lamp>.room-sprite{filter:brightness(.6)}.legendary-room:not([data-custom-light=default]).is-night.is-lit .room-light{background:radial-gradient(ellipse 25% 35% at 93% 67%,var(--custom-light) 0%,transparent 38%,#141b3090 100%);opacity:.58}

.room-bed .room-material-tone,.room-pillows .room-material-tone{mask-repeat:no-repeat;mask-size:400% 400%;-webkit-mask-repeat:no-repeat;-webkit-mask-size:400% 400%}.room-bed .room-material-tone{mask-image:url('../images/room/room-furniture.webp');-webkit-mask-image:url('../images/room/room-furniture.webp');mask-position:0 0;-webkit-mask-position:0 0;clip-path:polygon(12% 46%,44% 34%,70% 40%,80% 66%,77% 88%,67% 85%,60% 69%,49% 64%,12% 59%)}.legendary-room[data-bed-made=false] .room-bed .room-material-tone{mask-position:33.3333% 0;-webkit-mask-position:33.3333% 0}.room-rug .room-material-tone{mask-image:url('../images/room/room-aligned-decor.webp');-webkit-mask-image:url('../images/room/room-aligned-decor.webp');mask-size:200% 100%;-webkit-mask-size:200% 100%;mask-position:0 0;-webkit-mask-position:0 0;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;clip-path:none}.room-pillows .room-material-tone{mask-image:url('../images/room/room-extras.webp');-webkit-mask-image:url('../images/room/room-extras.webp');mask-position:0 66.6667%;-webkit-mask-position:0 66.6667%;clip-path:none}.room-wallpaper-tone{mix-blend-mode:multiply;opacity:.35}.is-night:not(.is-lit) .room-light{background:linear-gradient(#1017278c,#10172796)}

.room-star-map .room-sprite{clip-path:inset(7% 0 0 0)}
.legendary-room .room-companion-chat{position:absolute;left:45.7%;top:46%;width:22px;height:22px;z-index:19;border-radius:50%;padding:0;background:#fbf3e6;color:#574262;font-size:16px;line-height:1;box-shadow:0 2px 5px #0003}.room-companion-chat:hover{background:#fff}

/* Demo keeps the room visible as a preview, with no interactive controls. */
.legendary-room.is-demo-locked>.room-viewport{filter:blur(5px) saturate(1.08);pointer-events:none;user-select:none}
.room-demo-lock{position:absolute;inset:16px;z-index:60;display:grid;place-items:center;padding:20px;border-radius:16px;background:linear-gradient(135deg,#17142512,#11101e40);text-align:center}
.room-demo-lock[hidden]{display:none}
.room-demo-card{max-width:370px;padding:30px;border:1px solid #d9c59a55;border-radius:20px;background:#181624db;box-shadow:0 18px 65px #0006;backdrop-filter:blur(14px)}
.room-demo-badge{display:inline-block;padding:5px 12px;border:1px solid #d5bd8066;border-radius:99px;color:#ead59f;font-size:11px;font-weight:700;letter-spacing:.16em}
.room-demo-card h4{font-size:clamp(20px,3vw,30px);line-height:1.15;margin:16px 0 12px;color:#f5ecdd}
.room-demo-card p{font-size:16px;margin:0 0 10px;color:#f5ecdd}.room-demo-card>span:not(.room-demo-badge){display:block;color:#c5bfce;font-size:13px;line-height:1.5}.room-demo-card a{display:inline-flex;margin-top:20px;text-decoration:none}
@media(max-width:520px){.room-demo-lock{inset:8px;padding:10px}.room-demo-card{padding:16px}.room-demo-card h4{margin:10px 0 8px}.room-demo-card p{font-size:14px}.room-demo-card>span:not(.room-demo-badge){display:none}.room-demo-card a{margin-top:12px;font-size:12px}}

/* A time-locked room should feel present, but its contents must remain a mystery. */
.legendary-room:is(.is-room-state-pending,.is-time-locked)>.room-viewport{filter:blur(10px) brightness(.52) saturate(.58) contrast(1.08);transform:scale(1.025);pointer-events:none;user-select:none}
.room-time-lock{overflow:hidden;background:
  radial-gradient(ellipse 31% 43% at 14% 21%,#2a26404f 0%,#111321a8 72%),
  radial-gradient(ellipse 27% 38% at 88% 72%,#30244245 0%,#0b101da6 74%),
  linear-gradient(115deg,#080b15b8 0%,#14132694 47%,#090d18b8 100%);
  box-shadow:inset 0 0 120px 30px #03050b9c;backdrop-filter:blur(4px) saturate(.65);-webkit-backdrop-filter:blur(4px) saturate(.65)}
.room-time-lock::before,.room-time-lock::after{content:'';position:absolute;pointer-events:none}
.room-time-lock::before{z-index:0;inset:-28%;background:
  radial-gradient(ellipse 34% 19% at 24% 36%,#77718a1f 0%,transparent 72%),
  radial-gradient(ellipse 31% 17% at 77% 62%,#8c789f1a 0%,transparent 75%),
  radial-gradient(ellipse 25% 14% at 51% 83%,#5965821a 0%,transparent 72%);
  filter:blur(24px);animation:room-locked-mist 18s ease-in-out infinite alternate}
.room-time-lock::after{z-index:1;inset:0;background:repeating-linear-gradient(112deg,transparent 0 11%,#02040a20 15% 20%,transparent 25% 36%);mix-blend-mode:multiply;opacity:.85}
.room-time-lock .room-demo-card{position:relative;z-index:2;background:#101321f2;border-color:#d9c59a45;box-shadow:0 22px 90px #000c,0 0 80px #17182ab8;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
@keyframes room-locked-mist{from{transform:translate3d(-4%,-2%,0) scale(1)}to{transform:translate3d(5%,3%,0) scale(1.12)}}
@media(prefers-reduced-motion:reduce){.room-time-lock::before{animation:none}}

.room-loose-coin{position:absolute;z-index:30;width:24px;height:19px;border:2px solid #ffe2a0;border-radius:50%;background:linear-gradient(140deg,#ffde7c,#ad7226);color:#d99c37;box-shadow:0 0 12px #ffce6a88,0 4px 5px #0007;cursor:pointer;transform:rotate(-18deg)}
.room-loose-coin:hover,.room-loose-coin:focus-visible{box-shadow:0 0 20px #ffe4a3;outline:2px solid #fff1c9}

/* „Do góry nogami" easter egg: clicking the companion or its bubble spins the message upside down. */
@keyframes room-flip-spin{0%{transform:rotate(0)}42%{transform:rotate(180deg) scale(1.06)}58%{transform:rotate(180deg) scale(1.06)}100%{transform:rotate(360deg)}}
@keyframes room-flip-wiggle{25%{transform:translateY(-2px) rotate(-4deg)}75%{transform:translateY(1px) rotate(4deg)}}
.legendary-room.is-companion-flipped .room-companion-bubble{animation:room-flip-spin 1.15s ease-in-out}
.legendary-room.is-companion-flipped .room-companion .room-sprite{animation:room-flip-wiggle .32s ease-in-out 3}

.room-companion>.companion-family-art{background-size:contain;background-position:center;background-repeat:no-repeat;clip-path:none;animation:none}
/* Telefon: pokój 3:2 ma ~220 px wysokości, a karta blokady (odliczanie / PRO) jest wyższa i była ucinana. */
@media(max-width:600px){.legendary-room:is(.is-time-locked,.is-demo-locked,.is-room-state-pending)>.room-viewport{aspect-ratio:auto;width:100%;min-height:360px}}
