.room-page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:35px 0}.room-page-heading h1{margin:10px 0}.room-page-heading p{margin:8px 0}.room-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:22px}.room-view{min-width:0}#room-stage{height:550px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 60%,#17131b 0,#08070a 55%,#030304 85%);border:1px solid #302c34;border-radius:8px;perspective:1400px;touch-action:none;cursor:grab;isolation:isolate}#room-stage:active{cursor:grabbing}#room-stage:focus-visible{outline:2px solid #eee;outline-offset:4px}#room-world{position:absolute;width:600px;height:460px;left:50%;top:62%;transform-style:preserve-3d;transform:translate(-50%,-50%) scale(var(--room-scale,.7)) rotateX(var(--room-tilt,58deg)) rotateZ(var(--room-yaw,-35deg));--wall:#202126;--floor:#29272b;--accent:#b32945}.room-floor{position:absolute;inset:0;background-color:var(--floor);background-image:repeating-linear-gradient(0deg,transparent 0 45px,#0006 46px 47px),repeating-linear-gradient(90deg,transparent 0 98px,#ffffff0a 99px 100px);box-shadow:0 0 0 6px #121114,0 35px 65px #000;transform:translateZ(-1px)}.room-wall{position:absolute;background-color:var(--wall);background-image:repeating-linear-gradient(0deg,transparent 0 38px,#0003 39px 40px),linear-gradient(90deg,#ffffff08,#0003);border:3px solid #121115;border-bottom:8px solid #111;box-sizing:border-box;transform-origin:0 0;transform-style:preserve-3d}.room-wall-back{width:600px;height:240px;left:0;top:0;transform:rotateX(90deg)}.room-wall-left{width:460px;height:240px;left:0;top:0;transform:rotateZ(90deg) rotateX(90deg)}.room-window{position:absolute;left:350px;top:55px;width:128px;height:120px;border:10px solid #111;background:linear-gradient(150deg,#080a13,#2d3155);box-shadow:0 0 30px #7c87c62b;transform:rotateX(180deg)}.room-window:before,.room-window:after{content:'';position:absolute;background:#111}.room-window:before{width:8px;height:100%;left:48%}.room-window:after{height:8px;width:100%;top:48%}.room-wall-mark{position:absolute;left:30px;top:90px;color:#bbb3c2;font:18px monospace;letter-spacing:5px;transform:rotateX(180deg)}.room-poster{position:absolute;left:200px;top:50px;width:105px;height:150px;background:#080809;border:5px solid #514650;color:#d5cbd1;transform:rotateX(180deg);text-align:center}.room-poster b{display:block;color:var(--accent);font:80px/1 monospace}.room-poster span{font:13px/1.5 monospace;letter-spacing:3px}.room-neon{position:absolute;left:45px;top:200px;width:70px;height:5px;background:var(--accent);box-shadow:0 0 25px 8px var(--accent)}#room-objects,.room-object,.room-cube{position:absolute;transform-style:preserve-3d}.room-object{border:0;background:none;padding:0;cursor:pointer;outline:0}.room-object:focus-visible:after,.room-object.is-selected:after{content:'';position:absolute;inset:-8px;border:2px dashed #eee;transform:translateZ(2px);pointer-events:none}.room-object:before{content:'';position:absolute;inset:-5px;background:#0008;filter:blur(7px);transform:translateZ(.1px)}.room-object[data-kind=rug]:before{display:none}.room-cube{pointer-events:none}.room-face{position:absolute;backface-visibility:visible;box-sizing:border-box;border:1px solid #ffffff0a;pointer-events:none}.room-face-top{filter:brightness(1.15)}.room-face-front{filter:brightness(.7)}.room-face-side{filter:brightness(.55)}.room-face-back{filter:brightness(.9)}.room-view-label{position:absolute;left:18px;right:18px;bottom:16px;display:flex;justify-content:space-between;gap:10px;pointer-events:none;font:10px/1.5 monospace;letter-spacing:2px;color:#c0b5c5}.room-camera{display:flex;gap:9px;align-items:center;flex-wrap:wrap;padding:14px 0}.room-camera button{min-width:40px;padding:8px 12px}.room-camera label{display:flex;align-items:center;gap:10px;font-size:11px;margin:0}.room-camera input{width:110px}.room-view #room-status{font:13px/1.6 monospace;min-height:2em;color:#ccc}#room-editor{background:#09090b;border:1px solid #29252d;border-radius:6px;padding:18px;align-self:start}#room-editor[hidden]{display:none}.room-editor-heading{display:flex;justify-content:space-between;align-items:center;gap:8px}.room-editor-heading h2{font-size:23px;margin:0 0 18px}.room-editor-heading span{font:11px monospace;color:#a59da9}#room-editor label{display:block;font-size:12px;margin:12px 0;letter-spacing:1px}#room-editor input:not([type=color]),#room-editor select{width:100%;margin-top:8px;min-width:0}#room-editor input[type=range]{accent-color:#aaa}#room-editor input[type=text],#room-title,#room-editor select{background:#171419;border:1px solid #37303c;color:#eee;font:14px/1.5 monospace;padding:9px}#room-editor details{border-top:1px solid #2a252e;margin-top:16px;padding-top:14px}#room-editor summary{font-family:"XBAND Rough",monospace;font-size:18px;cursor:pointer}.room-colors{display:flex;justify-content:space-between;gap:10px}.room-colors input{display:block;width:62px;height:34px;background:transparent;border:1px solid #4b414e;margin-top:8px}#room-catalog{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:14px}#room-catalog button{background:#19151c;color:#eee;border:1px solid #403447;padding:10px 6px;font-size:15px;text-align:left}#room-catalog button:hover{background:#332538}.room-item-actions,.room-save-bar{display:flex;gap:8px;flex-wrap:wrap}.room-item-actions button,.room-save-bar button{padding:9px 11px;font-size:15px}.room-save-bar{margin-top:20px}.room-hint{font:11px/1.7 monospace;color:#b8adbd;letter-spacing:0}.profile-room-card{margin:24px 0;border-top:1px solid #333;padding-top:20px}.profile-room-card h2{font-size:24px}.profile-room-card a{display:inline-block;font-family:"XBAND Rough",monospace;font-size:22px;border:1px solid #776878;border-radius:3px;padding:12px 20px;text-decoration:none}.profile-room-card p{font-size:14px}#room-guest-note{border-top:1px solid #333;padding-top:12px}#room-guest-note p{font:13px/1.7 monospace}@media(max-width:900px){.room-layout{grid-template-columns:1fr}#room-stage{height:500px}#room-editor{max-width:none}#room-catalog{grid-template-columns:repeat(4,1fr)}}@media(max-width:560px){.room-page-heading{align-items:flex-start;margin:24px 0;gap:10px}.room-page-heading h1{font-size:38px}.room-page-heading p{font-size:12px}.room-page-heading a{font-size:14px}#room-stage{height:390px;border-radius:4px}.room-view-label{font-size:8px;letter-spacing:1px;left:10px;right:10px}.room-camera{gap:7px}.room-camera label{width:100%}#room-catalog{grid-template-columns:repeat(3,1fr)}#room-editor{padding:14px}}

.room-face-top{filter:brightness(calc(1.15 * var(--room-light,.85)))}.room-face-front{filter:brightness(calc(.7 * var(--room-light,.85)))}.room-face-side{filter:brightness(calc(.55 * var(--room-light,.85)))}.room-face-back{filter:brightness(calc(.9 * var(--room-light,.85)))}

.room-page-heading h1,#room-editor h2,#room-editor summary,#room-catalog button,.room-camera button,.room-item-actions button,.room-save-bar button{font-family:"XBAND Rough",sans-serif;font-weight:400}.room-layout.is-visiting{grid-template-columns:1fr}.room-floor{filter:brightness(var(--room-light,.85))}

.room-wall-right,.room-wall-front,.room-ceiling{display:none}.room-first-person{perspective:var(--walk-perspective,450px)!important;cursor:crosshair!important}.room-first-person #room-world{top:50%;left:50%;transform-origin:0 0}.room-first-person .room-wall-right{display:block;width:460px;height:240px;left:600px;top:0;transform:rotateZ(90deg) rotateX(90deg)}.room-first-person .room-wall-front{display:block;width:600px;height:240px;left:0;top:460px;transform:rotateX(90deg)}.room-first-person .room-ceiling{display:block;position:absolute;width:600px;height:460px;background:#17171b;transform:translateZ(240px)}.room-first-person:after{content:'+';position:absolute;left:50%;top:50%;color:#ffffffb0;font:20px/1 monospace;transform:translate(-50%,-50%);pointer-events:none}.room-first-person .room-object{cursor:inherit}.room-walk-pad{display:none;position:absolute;left:18px;bottom:55px;grid-template-columns:repeat(3,38px);grid-template-rows:repeat(2,36px);gap:5px;z-index:2}.room-first-person .room-walk-pad{display:grid}.room-walk-pad button{padding:0;background:#141019d9;color:white;border:1px solid #79667f;touch-action:none;user-select:none;font:22px monospace}.room-walk-pad [data-walk=forward]{grid-column:2}.room-walk-pad [data-walk=left]{grid-column:1;grid-row:2}.room-walk-pad [data-walk=back]{grid-column:2;grid-row:2}.room-walk-pad [data-walk=right]{grid-column:3;grid-row:2}.room-view-modes{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.room-view-modes button{font:16px "XBAND Rough",sans-serif;padding:10px 12px;background:#151019;color:#d3c8d8;border:1px solid #493c51}.room-view-modes button[aria-pressed=true]{background:#eee;color:#111;border-color:#eee}.room-camera[hidden]{display:none}.room-first-person .room-view-label{font-size:9px;letter-spacing:1px;align-items:end;text-shadow:0 1px 4px black}.room-first-person .room-view-label span:last-child{text-align:right;max-width:55%}@media(max-width:560px){.room-view-modes button{font-size:15px;padding:10px}.room-walk-pad{left:12px;bottom:55px}.room-first-person .room-view-label{font-size:8px}}

#room-stage:fullscreen{width:100vw;height:100dvh;border:0;border-radius:0}#room-stage:fullscreen .room-view-label{font-size:12px}#room-stage:fullscreen .room-walk-pad{left:25px;bottom:70px}

.room-wall-left .room-poster{transform:rotateZ(180deg)}

/* Bare concrete cells: decoration is added only by the owner. */
.room-wall{background-image:radial-gradient(ellipse at 20% 35%,#0002,transparent 55%),radial-gradient(ellipse at 80% 80%,#0003,transparent 45%),repeating-linear-gradient(0deg,transparent 0 49px,#0004 50px 51px),repeating-linear-gradient(90deg,transparent 0 98px,#0002 99px 100px);border-color:#222325;border-bottom:7px solid #242526;filter:brightness(var(--room-light,.85))}.room-floor{background-image:radial-gradient(ellipse at 70% 25%,#b6bdc016,transparent 45%),repeating-linear-gradient(0deg,transparent 0 98px,#0004 99px 100px),repeating-linear-gradient(90deg,transparent 0 98px,#0003 99px 100px);box-shadow:0 0 0 6px #242527,0 35px 65px #000}.room-floor:after{content:'';position:absolute;left:350px;top:50px;width:105px;height:260px;background:repeating-linear-gradient(90deg,#cdd9dd15 0 15px,transparent 16px 22px);transform:skewX(-18deg);pointer-events:none}.room-window{left:315px;top:145px;width:110px;height:65px;border:7px solid #202125;background:linear-gradient(145deg,#d1d8d9,#747e89);box-shadow:0 0 30px #bacbd233}.room-window:before{content:'';left:0;top:0;width:100%;height:100%;background:repeating-linear-gradient(90deg,transparent 0 16px,#17191b 17px 23px)}.room-window:after{content:'';left:0;top:46%;width:100%;height:5px;background:#17191b}.room-first-person .room-ceiling{background-color:var(--wall);background-image:radial-gradient(ellipse at 30% 50%,#0003,transparent 55%),repeating-linear-gradient(90deg,transparent 0 148px,#0003 149px 150px);filter:brightness(calc(.7 * var(--room-light,.85)))}.room-door{position:absolute;left:245px;top:0;width:110px;height:200px;background:linear-gradient(90deg,#25292c,#3b4043 40%,#24272a);border:7px solid #191b1d;box-sizing:border-box;transform:translateZ(1px)}.room-door:before{content:'';position:absolute;left:18px;top:135px;width:60px;height:30px;background:repeating-linear-gradient(90deg,#090a0b 0 10px,#454a4e 11px 15px);border:4px solid #15171a}.room-door:after{content:'';position:absolute;right:8px;top:77px;width:12px;height:28px;background:#0c0d0e;border:3px solid #62686c}.room-first-person .room-wall-left .room-poster{display:none}@media(max-width:560px){.room-walk-pad{grid-template-columns:repeat(3,44px);grid-template-rows:repeat(2,42px)}}

.room-wall{background-image:url('assets--rooms--prison-wall.webp');background-size:240px 240px;background-repeat:repeat;background-blend-mode:multiply;background-color:color-mix(in srgb,var(--wall) 15%,#d0d0d0 85%)}.room-floor{background-image:url('assets--rooms--prison-floor.jpg');background-size:260px 173px;background-repeat:repeat;background-blend-mode:multiply;background-color:color-mix(in srgb,var(--floor) 45%,#777 55%)}.room-first-person .room-ceiling{background-image:url('assets--rooms--prison-floor.jpg');background-size:260px 173px;background-blend-mode:multiply;background-color:#555}

.room-window{box-shadow:0 0 30px color-mix(in srgb,var(--accent) 30%,transparent)}

.room-wall .room-user-poster{position:absolute;object-fit:fill;max-width:none;transform:translateZ(2px) rotateX(180deg);transform-origin:center;pointer-events:none;border:1px solid #151515;box-shadow:0 1px 3px #0009}.room-wall-left .room-user-poster,.room-wall-front .room-user-poster{transform:translateZ(2px) rotateZ(180deg)}.room-poster-placing{outline:2px solid #ddd;outline-offset:2px}.room-poster-placing:after{content:'CLICK A WALL TO HANG POSTER';position:absolute;top:14px;left:14px;color:#fff;background:#000b;padding:8px;font:12px monospace;pointer-events:none}#room-poster-file{font:12px monospace;color:#ddd}#room-poster-remove,#room-poster-cancel{font:16px "XBAND Rough",sans-serif;padding:9px}

.room-first-person.room-mouse-locked{cursor:none!important}

/* Permanent 3D game-completion display, separate from editable furniture. */
#room-trophy-display,.room-trophy-shelf,.room-game-trophy,.room-trophy-cube{position:absolute;transform-style:preserve-3d;pointer-events:none}
#room-trophy-display{left:0;top:0}
.room-trophy-cube i{display:block;position:absolute;left:0;top:0;transform-origin:0 0;backface-visibility:visible;border:.25px solid #0002;box-sizing:border-box}
.room-game-trophy{width:45px;height:28px}
.room-trophy-plaque{position:absolute;left:1px;top:29px;width:43px;height:9px;transform-origin:0 0;transform:translateZ(10px) rotateX(-90deg);display:flex;align-items:center;gap:1px;background:#262321;border:.5px solid #ac925c;color:#ead9a8;box-sizing:border-box;overflow:hidden;padding:.5px}
.room-trophy-plaque img{width:7px;height:7px;max-width:none;object-fit:cover;flex:none}
.room-trophy-plaque span{font:2.8px/1.1 monospace;letter-spacing:0;text-align:center;flex:1}
.room-trophy-info{margin:15px 0;border:1px solid #333;padding:12px 14px;background:#080808}
.room-trophy-info summary{font:19px "XBAND Rough",monospace;cursor:pointer}
.room-trophy-info p,.room-trophy-info li{font:12px/1.7 monospace;color:#ccc}
.room-trophy-info button{font:16px "XBAND Rough",monospace;padding:8px 12px}

/* Rounded polished gold cups with curved handles and a circular foot. */
.room-trophy-gold-face,.room-trophy-cup-inside{position:absolute;left:0;top:0;display:block;transform-origin:0 0;backface-visibility:visible;pointer-events:none}
.room-trophy-cup-inside{left:7.1px;top:-1.4px;width:30.8px;height:30.8px;transform:translateZ(44.1px);border:1.3px solid #edc86e;border-radius:50%;box-sizing:border-box;background:radial-gradient(ellipse at 35% 25%,#b88129,#6c4313 55%,#39200c);box-shadow:inset 0 0 1px #fff6c4}
.room-trophy-handles{position:absolute;left:0;top:0;width:57px;height:55px;max-width:none!important;overflow:visible;backface-visibility:visible;transform-origin:0 0;pointer-events:none}
.room-trophy-plaque{left:10px;top:26.5px;width:25px;height:5px;transform:translateZ(5px) rotateX(-90deg);border:.3px solid #d9b866;padding:.2px;gap:.3px;background:#5b421d;color:#fff0c7}
.room-trophy-plaque img{width:4px;height:4px}
.room-trophy-plaque span{font-size:1.8px;line-height:1.05}
