/* All coordinates follow the approved, uncropped 1672 × 941 bedroom. */
#bedroom .room-computer{left:7.6%;top:18.4%;width:17.5%;height:22%;z-index:1}
#bedroom .room-phone{left:5.1%;top:37.3%;width:9%;height:10%;z-index:1}
#bedroom .room-music{left:80.2%;right:auto;top:38.6%;width:11.8%;height:12.2%}
#bedroom .room-board{left:3.2%;top:.7%;width:17.5%;height:29%;clip-path:polygon(0 0,100% 4%,100% 61%,48% 61%,44% 100%,0 100%)}
#bedroom .room-lamp{left:63.55%;top:22.4%;width:7%;height:15.6%}
#bedroom .room-window{left:71.8%;top:0;width:21.8%;height:36.8%}
#bedroom .room-your-stuff{left:2.9%;top:55.4%;bottom:auto;width:25%;height:44%;clip-path:polygon(8% 4%,59% 0,93% 12%,99% 37%,89% 98%,18% 98%,3% 27%)}
#bedroom .room-boxes{left:68.18%;top:57.7%;bottom:auto;width:21.83%;height:37.9%;clip-path:polygon(24.6% 0,100% 10%,89% 85%,75% 100%,0 76.5%,0 13.2%)}
#bedroom .room-bed{left:34%;top:25%;width:32%;height:45%;clip-path:polygon(6% 0,58% 0,83% 9%,93% 32%,100% 60%,72% 71%,69% 100%,48% 95%,2% 79%,0 39%)}
/* Optional, reversible dimming only after the lamp is clicked. No image filter
   or asset changes; the initial bedroom is pixel-for-pixel the approved scene. */
#bedroom .bedside-shade{position:absolute;left:61%;top:17%;width:13%;height:29%;pointer-events:none;z-index:2;opacity:0;background:radial-gradient(ellipse at 50% 43%,#080f26ad 0,#0d142a70 24%,#0c152726 47%,transparent 73%);mix-blend-mode:multiply;transition:opacity .4s ease}
#bedroom.lamp-off .bedside-shade{opacity:1}
#bedroom .room-reaction{position:fixed;z-index:30;left:50%;bottom:20px;transform:translateX(-50%);width:max-content;max-width:calc(100vw - 32px);margin:0;padding:10px 15px;border-radius:3px;background:#102031ed;color:#f4e8d2;font:400 .875rem/1.5 "DM Mono",monospace;pointer-events:none}
#bedroom .room-reaction[hidden]{display:none}
#bedroom dialog:not([open]){display:none}
#bedroom .room-computer-dialog,#bedroom .room-phone-dialog,#bedroom .room-inspection-dialog{max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);color:#16191d;overscroll-behavior:contain}
#bedroom .room-computer-dialog::backdrop,#bedroom .room-phone-dialog::backdrop{background:#02091180}
#bedroom .room-computer-dialog{width:850px;margin:auto;padding:5px;border:3px outset #e8e6dc;background:#bdbeb8;font:400 .875rem/1.4 "Courier New",monospace}
#bedroom .computer-titlebar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:4px 5px;background:#172b68;color:white}
#bedroom .computer-titlebar h2,#bedroom .computer-titlebar h3{margin:0;font:bold .9375rem/1.4 "Courier New",monospace}
#bedroom .computer-titlebar button,#bedroom .desktop-program-body button{border:2px outset #eeeae0;border-radius:0;background:#c8c8c0;color:#121820;cursor:pointer}
#bedroom .computer-titlebar button{width:32px;min-height:30px;padding:0;font:bold 1.1rem monospace}
#bedroom .computer-desktop{position:relative;min-height:460px;padding:12px;background:#216864;box-shadow:inset 1px 1px #444;overflow:auto}
#bedroom .desktop-icons{display:grid;gap:10px;width:104px}
#bedroom .desktop-icons button{display:grid;justify-items:center;gap:3px;padding:3px;border:0;background:transparent;color:#fff;font:400 .875rem/1.2 "Courier New",monospace;cursor:pointer;text-shadow:1px 1px #133839}
#bedroom .desktop-icons button>span{display:grid;place-items:center;min-width:40px;height:34px;border:2px outset #f1f0df;background:#d4d6c8;color:#20315b;font:bold 1.1rem/1 "Courier New",monospace;text-shadow:none}
#bedroom .desktop-program{position:absolute;top:22px;left:140px;right:20px;padding:3px;border:2px outset #e8e6dc;background:#c3c3b9;box-shadow:4px 5px #10363899}
#bedroom .desktop-program[hidden]{display:none}
#bedroom .desktop-program-body{min-height:255px;max-height:345px;overflow:auto;padding:14px;background:#eeeee6;overflow-wrap:anywhere}
#bedroom .desktop-program-body p{margin:0 0 16px}
#bedroom .desktop-program-body button{min-height:36px;padding:6px 10px;font:inherit}
#bedroom .desktop-program-body ul{margin:0 0 18px;padding:0;list-style:none}
#bedroom .desktop-program-body li{padding:10px 0;border-bottom:1px solid #c5c5bc}
#bedroom .desktop-program-body .drive-line{display:flex;justify-content:space-between;gap:8px}
#bedroom .computer-taskbar{display:flex;justify-content:space-between;gap:12px;min-height:32px;padding:6px 8px;border-top:2px outset #e8e6dc}
#bedroom .computer-taskbar time{white-space:nowrap;border:1px inset #d8d7ca;padding:0 5px}
#bedroom .mail-list{display:grid;gap:4px;margin-bottom:14px}
#bedroom .mail-list button{text-align:left}
#bedroom .mail-letter{background:#fffdf2;padding:12px;border:1px inset #c5c5bc;white-space:pre-line}
#bedroom .dialup-status{min-height:3em;white-space:pre-line}
#bedroom .maplenet-page{padding:16px;border:1px inset #ccc;background:#fff7d9;text-align:center;color:#172563}
#bedroom .maplenet-page h4{margin:0 0 12px;font:bold 1.15rem Georgia,serif}
#bedroom .maplenet-page hr{border:0;border-top:2px ridge #b7ac83}
#bedroom .room-phone-dialog{position:fixed;inset:auto auto 24px 24px;width:310px;margin:0;padding:18px;border:3px outset #e3dbcb;background:#bbb8ac;font:400 .875rem/1.4 "Courier New",monospace;box-shadow:6px 8px 24px #0005}
#bedroom .phone-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
#bedroom .phone-heading h2{margin:0;font:bold 1rem "Courier New",monospace}
#bedroom .phone-heading button{width:36px;height:36px;background:transparent;border:0;font-size:1.6rem;cursor:pointer}
#bedroom #phoneNumber{display:block;width:100%;margin-top:4px;padding:9px;border:2px inset #d6d6c9;border-radius:0;background:#d5ddba;color:#293629;font:1.2rem/1.3 "Courier New",monospace;letter-spacing:.12em}
#bedroom .phone-status{min-height:2.8em;margin:10px 0;font-size:.875rem}
#bedroom .phone-keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
#bedroom .phone-keypad button,#bedroom .phone-actions button{min-height:48px;border:2px outset #f0ede0;border-radius:4px;background:#d7d3c6;color:#262a29;cursor:pointer;font:1.2rem "Courier New",monospace}
#bedroom .phone-keypad small{display:block;font-size:.65rem;letter-spacing:.1em}
#bedroom .phone-actions{display:flex;gap:10px;margin-top:14px}
#bedroom .phone-actions button{flex:1;min-height:40px;font-size:.875rem}
#bedroom .room-phone-dialog button:active,#bedroom .computer-titlebar button:active,#bedroom .desktop-program-body button:active{border-style:inset}
#bedroom .room-inspection-dialog{margin:auto;padding:0;border:0;background:#07131f;color:#eee5d4;overflow:hidden}
#bedroom .room-inspection-dialog::backdrop{background:#02070bea}
#bedroom .inspection-heading{display:flex;justify-content:flex-end;padding:5px 10px}
#bedroom .inspection-heading button{min-height:44px;padding:8px 4px;border:0;background:transparent;color:inherit;font:400 .875rem "DM Mono",monospace;cursor:pointer}
#bedroom .room-inspection-view{position:relative;overflow:hidden;width:min(90vw,calc(75dvh * var(--view-ratio)));aspect-ratio:var(--view-ratio);max-height:75dvh;background:#07131f}
#bedroom .room-inspection-view>img{position:absolute;display:block;max-width:none;height:auto;pointer-events:none;animation:roomInspectZoom .45s ease-out both;transform-origin:var(--view-origin)}
#bedroom .room-inspection-dialog[data-inspect="window"] .room-inspection-view{width:min(90vw,calc(75dvh * var(--view-ratio)))}
#bedroom .room-computer-dialog button:focus-visible,#bedroom .room-phone-dialog button:focus-visible,#bedroom .room-inspection-dialog button:focus-visible{outline:2px solid #98730b;outline-offset:2px}
#bedroom .desktop-icons button:focus-visible{outline-color:#fff}
@keyframes roomInspectZoom{from{transform:scale(.86)}to{transform:scale(1)}}
@media(max-width:600px){
  #bedroom .room-computer-dialog{padding:3px}
  #bedroom .computer-desktop{min-height:440px;padding:8px}
  #bedroom .desktop-icons{width:100%;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}
  #bedroom .desktop-icons button{font-size:.75rem;overflow-wrap:anywhere}
  #bedroom .desktop-icons button>span{min-width:32px;height:30px;font-size:.875rem}
  #bedroom .desktop-program{left:8px;right:8px;top:105px}
  #bedroom .desktop-program-body{min-height:240px;max-height:270px;padding:10px}
  #bedroom .room-phone-dialog{inset:auto 12px 12px 12px;width:min(310px,calc(100vw - 24px));margin:auto;max-height:calc(100dvh - 24px);overflow:auto}
}
@media(prefers-reduced-motion:reduce){#bedroom .room-inspection-view>img{animation:none}#bedroom .bedside-shade{transition:none}}
