.screen-room { padding: 0; overflow: hidden; }
.room-scroll { position: absolute; inset: 0; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; background: #0d0b14; cursor: grab; touch-action: pan-x; }
.room-scroll::-webkit-scrollbar { display: none; }
.room-scroll:active { cursor: grabbing; }
.room-world { position: relative; margin: 0 auto; overflow: hidden; }
.room-world > canvas, .room-layer { position: absolute; left: 0; top: 0; }
.room-layer { inset: 0; }
.room-world canvas { display: block; image-rendering: pixelated; }
.room-dark, .room-glow, .room-actors, .room-fx { pointer-events: none; }
.room-glow { mix-blend-mode: screen; }
.room-piece, .room-item, .room-slot, .room-jar { position: absolute; }
.room-item { pointer-events: none; }
.room-item canvas { position: absolute; left: 0; top: 0; }
.room-slot { padding: 0; border: 0; background: none; cursor: pointer; z-index: 1; }
.room-slot:not(.full) { box-shadow: inset 0 0 0 calc(var(--S) / 2) color-mix(in srgb, var(--accent) 0%, transparent); transition: box-shadow .15s; }
.room-slot:not(.full)::after { content: '+'; position: absolute; inset: 0; display: grid; place-items: center; font: 700 calc(var(--S) * 8) / 1 "Pixelify Cases", monospace; color: var(--accent); opacity: 0; transition: opacity .15s; }
.room-world:hover .room-slot:not(.full) { box-shadow: inset 0 0 0 calc(var(--S) / 2) color-mix(in srgb, var(--accent) 35%, transparent); }
.room-slot:not(.full):hover { box-shadow: inset 0 0 0 calc(var(--S) / 2) var(--accent); }
.room-slot:not(.full):hover::after { opacity: 1; }
.room-slot.full:hover { filter: drop-shadow(0 0 0 var(--accent)); }
.room-items:has(.room-slot.full:hover) { z-index: 1; }
.room-jar { padding: 0; border: 0; background: none; cursor: pointer; z-index: 2; }
.room-jar.has { filter: drop-shadow(0 0 calc(var(--S) * 2) #f2c23a88); }

.room-ui { position: absolute; left: 0; right: 0; top: 0; padding: 26px 30px 0; z-index: 3; pointer-events: none; }
.room-ui .view-head > * { pointer-events: auto; }
.room-score { display: inline-flex; align-items: baseline; gap: 10px; padding: 6px 14px; background: color-mix(in srgb, var(--bg) 82%, transparent); border: 3px solid var(--ink, #0e0c18); }
.room-score-n { font-weight: 700; font-size: 22px; color: var(--accent); }
.room-rank { color: var(--fg); }
.room-sets { color: #f2c23a; font-size: 14px; cursor: help; }

.room-modal h2 { margin: 0 0 10px; }
.room-modal h3 { margin: 18px 0 8px; color: var(--muted); font-size: 15px; text-transform: uppercase; letter-spacing: 1px; }
.room-note { color: var(--muted); margin: 0 0 12px; }
.room-pick { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; max-height: 62vh; overflow-y: auto; padding: 4px; }
.room-pick .card { cursor: pointer; }
.room-menu { display: flex; flex-direction: column; align-items: center; gap: 14px; }
.room-btns { display: flex; gap: 10px; }
.room-shop-list { display: flex; flex-direction: column; gap: 8px; }
.room-shop-row { display: grid; grid-template-columns: 110px 1fr auto; align-items: center; gap: 14px; padding: 8px 12px; background: color-mix(in srgb, var(--fg) 5%, transparent); }
.room-shop-row.owned { opacity: .7; }
.room-shop-art { display: grid; place-items: center; min-height: 40px; }
.room-shop-art canvas { image-rendering: pixelated; }
.room-shop-name { font-weight: 700; }
.room-shop-sub { color: var(--muted); font-size: 14px; }
.room-owned, .room-lock { color: var(--muted); padding: 0 8px; }
.room-review-list { display: flex; flex-direction: column; gap: 10px; max-height: 60vh; overflow-y: auto; }
.room-review { padding: 8px 12px; background: color-mix(in srgb, var(--fg) 5%, transparent); }
.room-review-head { display: flex; gap: 12px; align-items: baseline; }
.room-stars { color: #f2c23a; letter-spacing: 2px; }
.room-who { font-weight: 700; }
.room-review-text { color: var(--fg); margin-top: 4px; }
.room-rod { position: absolute; background: #0e0c18; }
.room-ropes { pointer-events: none; }
.room-critic { color: #f2c23a; font-size: 13px; }
.room-ex-ready { box-shadow: 0 0 0 2px #f2c23a; }
