 
.room2-panel{--r2-red:#9f2636;--r2-red-bright:#df3d53;--r2-gold:#c8a969;--r2-ink:#07090d;--r2-paper:#e8e1d2}
.room2-panel .room-two-heading p{max-width:760px}
.room2-game{position:relative;overflow:hidden;border-radius:28px;background:#0a0c11;border:1px solid rgba(255,255,255,.16);box-shadow:0 28px 80px rgba(32,8,18,.28)}
.room2-topbar{min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 14px;background:linear-gradient(180deg,#151821,#10131a);border-bottom:1px solid rgba(255,255,255,.08);color:#e8e3d8}
.room2-stage-copy{display:flex;align-items:center;gap:9px;font-size:10px;font-weight:900;letter-spacing:.12em}
.room2-stage-dot{width:8px;height:8px;border-radius:50%;background:var(--r2-red-bright);box-shadow:0 0 15px rgba(223,61,83,.8)}
.room2-top-actions{display:flex;align-items:center;gap:12px;font-size:9px;font-weight:800;color:rgba(232,227,216,.66)}
.room2-top-actions button{border:1px solid rgba(255,255,255,.12);border-radius:9px;padding:8px 10px;background:#1b202a;color:#f7f0e3;cursor:pointer;font-size:9px;font-weight:900}
.room2-top-actions button:hover{background:#252c38}
.room2-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;min-height:700px}
.room2-world{position:relative;min-width:0;min-height:700px;background:#030407;outline:none;overflow:hidden;border-right:1px solid rgba(255,255,255,.07)}
.room2-world:focus-visible{box-shadow:inset 0 0 0 2px rgba(223,61,83,.55)}
.room2-viewport{position:absolute;inset:0;overflow:hidden;background:#020305;isolation:isolate}
.room2-map{position:absolute;left:0;top:0;width:1200px;height:1650px;transform:translate3d(0,0,0);transform-origin:0 0;will-change:transform}
.room2-main-map{background:#11151d}
.r2-floor{position:absolute;left:120px;top:90px;width:760px;height:1450px;background:repeating-linear-gradient(0deg,#2a241f 0 23px,#312922 23px 46px),repeating-linear-gradient(90deg,rgba(255,255,255,.018) 0 2px,transparent 2px 30px);box-shadow:inset 0 0 0 6px #5a4b3b,inset 0 0 80px rgba(0,0,0,.65)}
.r2-main-floor::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 25% 45%,rgba(0,0,0,.16),transparent 24%),radial-gradient(circle at 71% 60%,rgba(0,0,0,.22),transparent 21%),linear-gradient(90deg,transparent,rgba(255,255,255,.015),transparent);pointer-events:none}
.r2-wall{position:absolute;background:#1a1b1d;box-shadow:inset 0 0 0 4px #4a4036,0 14px 22px rgba(0,0,0,.25);z-index:130}
.r2-wall-north{left:120px;top:78px;width:760px;height:34px}.r2-wall-south{left:120px;top:1520px;width:760px;height:34px}.r2-wall-west{left:108px;top:78px;width:34px;height:1476px}.r2-wall-east{left:858px;top:78px;width:34px;height:1476px}
.r2-rug{position:absolute;left:390px;top:420px;width:220px;height:690px;background:linear-gradient(90deg,#341118,#711826 12%,#8c2031 50%,#711826 88%,#341118);border:5px solid #8b7448;box-shadow:0 0 0 4px #291b19,0 18px 26px rgba(0,0,0,.24);opacity:.78;z-index:3}
.r2-rug::after{content:"";position:absolute;inset:15px;border:2px dashed rgba(216,190,128,.28)}
.r2-door{position:absolute;left:435px;width:130px;height:34px;border:0;background:#1a1112;color:#bdb3a4;font-size:9px;font-weight:900;letter-spacing:.08em;box-shadow:inset 0 0 0 4px #5f4b3e,0 5px 8px rgba(0,0,0,.4);z-index:140}
.r2-door span{position:absolute;left:50%;transform:translateX(-50%);white-space:nowrap}.r2-entrance-door{top:1500px}.r2-entrance-door span{top:-18px}.r2-exit-door{top:93px;cursor:pointer}.r2-exit-door span{top:40px}.r2-exit-door.is-forced{transform:rotate(-8deg) translateX(-8px);background:#291417}.r2-entrance-door.is-crack-1::after,.r2-entrance-door.is-crack-2::after,.r2-entrance-door.is-crack-3::after{content:"";position:absolute;inset:4px 16px;background:linear-gradient(112deg,transparent 0 45%,#030405 46% 49%,transparent 50%)}
.r2-entrance-door.is-crack-2::after{background:linear-gradient(112deg,transparent 0 43%,#030405 44% 47%,transparent 48%),linear-gradient(75deg,transparent 0 59%,#030405 60% 62%,transparent 63%)}
.r2-entrance-door.is-crack-3::after{background:linear-gradient(112deg,transparent 0 43%,#030405 44% 47%,transparent 48%),linear-gradient(75deg,transparent 0 59%,#030405 60% 62%,transparent 63%),linear-gradient(145deg,transparent 0 28%,#030405 29% 32%,transparent 33%)}
.r2-entrance-door.is-broken{height:18px;transform:rotate(5deg);background:#3a2119;box-shadow:17px 12px 0 -3px #2d1b18,-21px 15px 0 -6px #4b2a1d,inset 0 0 0 3px #6b4a34}
.room2-obstacle,.room2-interactable{position:absolute}
.r2-prop{border:0;color:#8d8172;font-size:8px;font-weight:900;letter-spacing:.06em;cursor:default;box-shadow:0 9px 12px rgba(0,0,0,.26),inset 0 0 0 3px rgba(255,255,255,.05)}
.r2-prop span{pointer-events:none}
.r2-cabinet{left:160px;top:1280px;width:100px;height:72px;background:#3a2f25}.r2-desk{left:635px;top:1265px;width:150px;height:86px;background:#463527}.r2-chair{left:620px;top:1184px;width:60px;height:58px;background:#35281f}.r2-crates{left:200px;top:885px;width:120px;height:92px;background:repeating-linear-gradient(0deg,#453426 0 21px,#3a2d22 21px 42px)}.r2-bookshelf{left:128px;top:548px;width:115px;height:170px;background:repeating-linear-gradient(0deg,#3f2d21 0 18px,#211813 18px 22px)}.r2-table{left:460px;top:855px;width:160px;height:90px;background:#3f3024}
.r2-flashlight{left:740px;top:1370px;width:44px;height:24px;border:0;background:transparent;cursor:pointer;z-index:1392;opacity:0;transform:translateY(-34px) rotate(-9deg)}.r2-flashlight span{position:absolute;left:5px;top:8px;width:30px;height:8px;border-radius:4px;background:#c8b48d;box-shadow:9px 0 0 2px #5d6467,0 0 12px rgba(255,241,187,.25);transform:rotate(-13deg)}.r2-flashlight:not(.is-concealed){opacity:1}.r2-flashlight.is-dropping{animation:r2FlashlightDrop .46s cubic-bezier(.2,.86,.22,1) both}.r2-flashlight.is-picked{display:none}@keyframes r2FlashlightDrop{0%{opacity:0;transform:translate(6px,-76px) rotate(-42deg)}55%{opacity:1;transform:translate(-3px,8px) rotate(14deg)}72%{transform:translate(0,-6px) rotate(-9deg)}100%{opacity:1;transform:translateY(0) rotate(-9deg)}}
.r2-symbol{position:absolute;left:var(--sx);top:var(--sy);width:52px;height:52px;display:grid;place-items:center;transform:translate(-50%,-50%);font-size:29px;font-weight:900;color:rgba(165,83,86,.05);text-shadow:none;z-index:44;transition:color .24s,text-shadow .24s,transform .24s,opacity .24s;pointer-events:none}.r2-symbol small{position:absolute;bottom:-5px;font-size:8px;letter-spacing:.1em;color:transparent}.r2-symbol.is-lit,.r2-symbol.is-discovered{color:#b56a66;text-shadow:0 0 10px rgba(194,98,95,.68),0 0 26px rgba(194,98,95,.38);transform:translate(-50%,-50%) scale(1.05)}.r2-symbol.is-discovered small{color:#d8b6a5}
.r2-panel,.r2-clue-plaque{border:0;cursor:pointer;color:#c0b7a8;font-size:8px;font-weight:900;letter-spacing:.08em;box-shadow:inset 0 0 0 3px #4a4c4f,0 8px 12px rgba(0,0,0,.32)}.r2-symbol-panel{left:198px;top:1010px;width:74px;height:58px;background:#25282b}.r2-photo-panel{left:750px;top:820px;width:80px;height:55px;background:#242629}.r2-switch-panel{left:215px;top:682px;width:80px;height:62px;background:#25282c}.r2-clue-plaque{left:382px;top:735px;width:96px;height:38px;background:#4c402f;color:#cbb581}
.r2-photo{width:48px;height:62px;border:4px solid #4e3f32;background:#d1c5ad;color:#302b28;font:900 9px/1 Inter,sans-serif;cursor:pointer;box-shadow:0 7px 12px rgba(0,0,0,.28)}.r2-photo[data-photo="1"]{left:708px;top:1098px;transform:rotate(-5deg)}.r2-photo[data-photo="2"]{left:780px;top:900px;transform:rotate(4deg)}.r2-photo[data-photo="3"]{left:705px;top:660px;transform:rotate(-2deg)}.r2-photo[data-photo="4"]{left:615px;top:500px;transform:rotate(5deg)}.r2-photo.is-read{box-shadow:0 0 0 2px rgba(200,169,105,.5),0 0 18px rgba(200,169,105,.25)}
.r2-secret-wall{left:820px;top:600px;width:70px;height:190px;background:repeating-linear-gradient(0deg,#3d2e23 0 16px,#221914 16px 21px);box-shadow:inset 0 0 0 5px #49372a,0 12px 18px rgba(0,0,0,.38);z-index:730;display:grid;place-items:center;color:#73695e;font-size:7px;font-weight:900;transition:transform 1.2s cubic-bezier(.25,.8,.25,1),filter .25s}.r2-secret-wall.is-shaking{animation:r2SecretShake .28s linear 3}.r2-secret-wall.is-open{transform:translateX(-145px)}@keyframes r2SecretShake{0%,100%{margin-left:0}33%{margin-left:-5px}66%{margin-left:5px}}
.r2-secret-gap{position:absolute;left:855px;top:620px;width:80px;height:150px;background:#050609;box-shadow:inset 16px 0 22px rgba(0,0,0,.75);z-index:5;opacity:0;transition:opacity .7s}.r2-secret-gap.is-open{opacity:1}
.r2-generator-room{position:absolute;left:900px;top:450px;width:300px;height:470px;opacity:.4;filter:brightness(.45);transition:opacity .6s,filter .6s}.r2-generator-room.is-visible{opacity:1;filter:none}.r2-generator-floor{position:absolute;inset:0;background:repeating-linear-gradient(0deg,#26292b 0 22px,#212326 22px 44px);box-shadow:inset 0 0 0 6px #55595a,inset 0 0 70px rgba(0,0,0,.62)}.r2-pipes{position:absolute;right:25px;top:30px;width:18px;height:230px;background:#4c5153;box-shadow:-36px 0 0 #3b4144,-72px 0 0 #555b5d}.r2-oil-stain{position:absolute;left:82px;bottom:70px;width:105px;height:54px;border-radius:50%;background:radial-gradient(ellipse,#08090a 0 30%,rgba(8,9,10,.48) 45%,transparent 72%);transform:rotate(-14deg)}
.r2-red-box{left:1035px;top:705px;width:90px;height:70px;border:4px solid #4e191f;background:#7b1c28;color:#e3c6c6;font-size:9px;font-weight:900;cursor:pointer;box-shadow:0 8px 14px rgba(0,0,0,.35)}.r2-red-box.is-open{transform:perspective(160px) rotateY(-18deg);background:#3d1418}.r2-red-box.is-open span::after{content:" · OPEN"}
.r2-generator{left:960px;top:535px;width:150px;height:100px;border:0;background:linear-gradient(180deg,#4a4d48,#272a29);color:#b7b6a9;font-size:9px;font-weight:900;cursor:pointer;box-shadow:inset 0 0 0 5px #6b6e67,0 10px 16px rgba(0,0,0,.38)}.r2-generator::before{content:"";position:absolute;left:18px;top:32px;width:58px;height:40px;border-radius:50%;border:6px solid #202322}.r2-generator::after{content:"";position:absolute;right:18px;top:25px;width:12px;height:12px;border-radius:50%;background:#54191d;box-shadow:0 25px 0 #151817}.r2-generator.is-running{animation:r2Generator .16s linear infinite}.r2-generator.is-running::after{background:#63c772;box-shadow:0 0 12px rgba(99,199,114,.7),0 25px 0 #1d2b21}@keyframes r2Generator{50%{transform:translateY(1px)}}
.r2-breaker{left:1116px;top:500px;width:50px;height:82px;border:3px solid #555b5c;background:#25292a;color:#d1cbc0;font-size:8px;font-weight:900;cursor:pointer}.r2-breaker::after{content:"";position:absolute;left:18px;top:22px;width:10px;height:32px;background:#8c8f87;transform-origin:50% 80%;transform:rotate(20deg)}.r2-breaker.is-on::after{transform:rotate(-35deg);background:#d7d0bb}.r2-breaker.is-on span{color:#69d77d}
.r2-crowbar{left:485px;top:273px;width:72px;height:32px;border:0;background:transparent;cursor:pointer;z-index:310}.r2-crowbar span{position:absolute;left:8px;top:14px;width:55px;height:7px;background:#8a3b36;border-radius:6px;transform:rotate(-14deg);box-shadow:0 0 0 2px #40221f,0 0 18px rgba(225,86,74,.28)}.r2-crowbar span::after{content:"";position:absolute;right:-6px;top:-5px;width:14px;height:16px;border:5px solid #8a3b36;border-left:0;border-radius:0 12px 12px 0}.r2-crowbar.is-highlighted{animation:r2CrowbarGlow 1s ease-in-out infinite alternate}@keyframes r2CrowbarGlow{to{filter:drop-shadow(0 0 8px #f2cf87)}}
.room2-player,.room2-jinkson{position:absolute;left:0;top:0;width:96px;height:128px;transform:translate(-48px,-112px);transform-origin:50% 88%;z-index:100;pointer-events:none;will-change:left,top,transform}.room2-player img,.room2-jinkson img{position:absolute;inset:0;width:96px;height:128px;object-fit:contain;image-rendering:pixelated;user-select:none;-webkit-user-drag:none;filter:drop-shadow(0 5px 5px rgba(0,0,0,.5));z-index:3}.room2-player.is-moving{animation:r2WalkBob .25s steps(2,end) infinite}.room2-player.is-running{animation-duration:.16s}@keyframes r2WalkBob{0%,100%{transform:translate(-48px,-112px) translateY(0)}50%{transform:translate(-48px,-112px) translateY(-2px)}}.room2-player-shadow{position:absolute;left:32px;bottom:10px;width:34px;height:12px;border-radius:50%;background:rgba(0,0,0,.42);filter:blur(3px);z-index:1}.room2-held-item{position:absolute;left:63px;top:72px;width:18px;height:6px;border-radius:5px;background:#a7a28f;box-shadow:0 0 8px rgba(255,240,176,.5);z-index:5;transform-origin:left center;opacity:0}.room2-player[data-item="phone"] .room2-held-item{opacity:1;width:9px;height:16px;border-radius:2px;background:#263249;box-shadow:0 0 10px rgba(155,198,255,.55)}.room2-player[data-item="flashlight"] .room2-held-item{opacity:1}.room2-player[data-facing="n"] .room2-held-item{left:43px;top:48px;transform:rotate(-92deg)}.room2-player[data-facing="ne"] .room2-held-item{left:60px;top:55px;transform:rotate(-45deg)}.room2-player[data-facing="e"] .room2-held-item{left:66px;top:69px;transform:rotate(0)}.room2-player[data-facing="se"] .room2-held-item{left:61px;top:77px;transform:rotate(43deg)}.room2-player[data-facing="s"] .room2-held-item{left:42px;top:84px;transform:rotate(90deg)}.room2-player[data-facing="sw"] .room2-held-item{left:34px;top:77px;transform:rotate(137deg)}.room2-player[data-facing="w"] .room2-held-item{left:28px;top:68px;transform:rotate(180deg)}.room2-player[data-facing="nw"] .room2-held-item{left:34px;top:54px;transform:rotate(-137deg)}
.room2-jinkson{z-index:100}.room2-jinkson.is-moving{animation:r2JinksonStep .19s steps(2,end) infinite}@keyframes r2JinksonStep{50%{transform:translate(-48px,-112px) translateY(-3px)}}.room2-jinkson-light{position:absolute;left:48px;top:64px;width:110px;height:60px;clip-path:polygon(0 45%,100% 0,100% 100%,0 55%);background:linear-gradient(90deg,rgba(255,238,181,.28),transparent);filter:blur(5px);opacity:.45;transform-origin:0 50%}
.room2-lighting{position:absolute;inset:0;z-index:500;pointer-events:none}.room2-darkness{position:absolute;inset:0;background:radial-gradient(circle at var(--light-x,50%) var(--light-y,70%),rgba(4,5,8,.03) 0 var(--r2-radius,44px),rgba(4,5,8,.48) calc(var(--r2-radius,44px) + 42px),rgba(2,3,5,.92) calc(var(--r2-radius,44px) + 130px),rgba(1,2,4,.985) 100%);transition:background .18s,opacity .35s;opacity:1}.room2-light-cone{position:absolute;left:var(--beam-x,50%);top:var(--beam-y,70%);width:var(--beam-length,0px);height:220px;transform:translateY(-50%) rotate(var(--beam-angle,-90deg));transform-origin:0 50%;clip-path:polygon(0 47%,100% 2%,100% 98%,0 53%);background:linear-gradient(90deg,rgba(255,244,195,.3),rgba(255,237,171,.14) 36%,rgba(255,244,201,.05) 72%,transparent);filter:blur(8px);mix-blend-mode:screen;opacity:var(--beam-opacity,0)}.room2-light-hotspot{position:absolute;left:var(--beam-x,50%);top:var(--beam-y,70%);width:26px;height:26px;border-radius:50%;transform:translate(-50%,-50%);background:rgba(255,244,205,.12);filter:blur(6px);opacity:var(--beam-opacity,0)}.room2-vignette{position:absolute;inset:0;box-shadow:inset 0 0 110px 55px rgba(0,0,0,.62)}.room2-world.is-powered .room2-darkness{opacity:.34}.room2-world.is-powered .room2-vignette{box-shadow:inset 0 0 85px 35px rgba(0,0,0,.48)}.room2-world.is-hallway .room2-darkness{opacity:.88}.room2-world.is-hallway.is-hall-lit .room2-darkness{opacity:.32}
.room2-impact-vfx{position:absolute;inset:0;z-index:710;pointer-events:none}.room2-impact-vfx.is-impact::before{content:"";position:absolute;left:50%;bottom:40px;width:180px;height:60px;transform:translateX(-50%);background:radial-gradient(ellipse,rgba(196,164,115,.22),transparent 70%);filter:blur(8px);animation:r2Dust .6s ease-out}.room2-viewport.is-shaking{animation:r2CameraShake .22s linear}.room2-viewport.is-heavy-shake{animation:r2CameraHeavy .42s linear}@keyframes r2CameraShake{25%{transform:translateX(-4px)}50%{transform:translateX(4px)}75%{transform:translateX(-2px)}}@keyframes r2CameraHeavy{20%{transform:translate(-7px,2px)}40%{transform:translate(6px,-2px)}60%{transform:translate(-5px,1px)}80%{transform:translate(3px,-1px)}}@keyframes r2Dust{from{opacity:.1;transform:translateX(-50%) scale(.7)}to{opacity:0;transform:translateX(-50%) scale(1.35)}}
.room2-interaction-prompt{position:absolute;left:50%;bottom:25px;z-index:850;transform:translateX(-50%);padding:9px 13px;border:1px solid rgba(255,255,255,.16);border-radius:10px;background:rgba(7,9,13,.9);color:#f3eee3;font-size:10px;font-weight:900;letter-spacing:.06em;box-shadow:0 7px 20px rgba(0,0,0,.35)}.room2-event-banner{position:absolute;left:50%;top:26%;z-index:900;transform:translate(-50%,-50%);padding:12px 17px;border-radius:8px;background:rgba(7,9,13,.82);border:1px solid rgba(255,255,255,.12);color:#f3eee4;font-size:12px;font-weight:900;letter-spacing:.08em;text-align:center;box-shadow:0 12px 30px rgba(0,0,0,.42)}.room2-event-banner.is-danger{color:#ffd1d5;border-color:rgba(223,61,83,.45)}
.room2-dialogue{position:absolute;left:26px;right:26px;bottom:22px;z-index:950;display:flex;align-items:flex-end;gap:18px;padding:17px 20px 15px;background:rgba(8,10,15,.95);border:1px solid rgba(202,176,112,.32);box-shadow:0 16px 40px rgba(0,0,0,.55);color:#f3eee3;cursor:pointer}.room2-dialogue-copy{flex:1 1 auto;min-width:0}.room2-dialogue.has-portrait{padding-left:16px;min-height:208px}.room2-dialogue-portrait{position:relative;flex:0 0 260px;align-self:flex-end;height:220px;pointer-events:none}.room2-dialogue-portrait[hidden]{display:none!important}.room2-dialogue-portrait img{width:100%;height:100%;display:block;object-fit:contain;object-position:center bottom;image-rendering:pixelated;filter:drop-shadow(0 12px 18px rgba(0,0,0,.55))}.room2-dialogue strong{display:block;color:#d6b86c;font-size:10px;letter-spacing:.12em}.room2-dialogue p{margin:7px 0 5px;font-size:18px;line-height:1.25}.room2-dialogue span{display:block;text-align:right;font-size:8px;color:rgba(243,238,227,.46)}
.room2-modal,.room2-pause,.room2-result{position:absolute;inset:0;z-index:1100;display:grid;place-items:center;background:rgba(1,2,4,.82);backdrop-filter:blur(4px)}.room2-modal[hidden],.room2-pause[hidden],.room2-result[hidden]{display:none}.room2-modal-card{position:relative;width:min(520px,90%);max-height:84%;overflow:auto;padding:26px;border:1px solid rgba(255,255,255,.12);background:#13171e;color:#eee8dd;box-shadow:0 26px 70px rgba(0,0,0,.6)}.room2-modal-close{position:absolute;right:12px;top:12px;width:34px;height:34px;border:1px solid rgba(255,255,255,.12);border-radius:50%;background:#20252e;color:#fff;cursor:pointer;font-size:20px}.room2-modal-kicker{font-size:9px;font-weight:900;letter-spacing:.18em;color:#b99856}.room2-modal-card h3{margin:7px 0 18px;font-size:28px}.room2-modal-body{font-size:14px;line-height:1.55;color:#cbc5ba}.room2-modal-body p{margin:0 0 14px}.room2-modal-body .r2-choice-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.room2-modal-body button,.room2-modal-body input{border:1px solid rgba(255,255,255,.14);background:#20252c;color:#f4efe5;border-radius:8px;padding:11px;font-weight:900}.room2-modal-body button{cursor:pointer}.room2-modal-body button:hover{background:#2b323d}.room2-modal-body input{width:100%;font-size:20px;letter-spacing:.2em;text-align:center}.room2-modal-feedback{min-height:22px;margin-top:12px;color:#d7ba73;font-weight:800}.r2-photo-inspect{display:grid;grid-template-columns:120px 1fr;gap:18px;align-items:center}.r2-photo-paper{height:150px;display:grid;place-items:center;background:#cdbfa7;border:8px solid #574637;color:#26231f;font:900 54px/1 Inter,sans-serif;box-shadow:0 12px 28px rgba(0,0,0,.34)}.r2-switch-row{display:flex;gap:8px;justify-content:center}.r2-switch-row button{min-width:64px}.r2-switch-progress{text-align:center;font-weight:900;letter-spacing:.18em;margin-bottom:12px}
.room2-pause>div,.room2-result>div{width:min(520px,88%);padding:34px;text-align:center;border:1px solid rgba(255,255,255,.12);background:#11151b;color:#eee8dd;box-shadow:0 28px 80px rgba(0,0,0,.62)}.room2-pause span,.room2-result span{font-size:9px;font-weight:900;letter-spacing:.18em;color:#b99856}.room2-pause h3,.room2-result h3{margin:8px 0 10px;font-size:34px}.room2-result p{margin:0 0 20px;color:#b9b2a7}.room2-pause button,.room2-result button,.room2-result a{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 17px;border:1px solid rgba(255,255,255,.14);background:#242a33;color:#fff;text-decoration:none;font-size:10px;font-weight:900;cursor:pointer}.room2-victory>div{border-color:rgba(200,169,105,.38);background:radial-gradient(circle at 50% 0,rgba(144,87,50,.22),transparent 42%),#12161b}.room2-victory h3{font-size:44px}.room2-victory p{font-size:22px;letter-spacing:.22em;color:#d9bd7b}.room2-victory-actions{display:flex;gap:8px;justify-content:center}
.room2-hud{padding:14px;display:flex;flex-direction:column;gap:10px;background:linear-gradient(180deg,#12161e,#0d1016);color:#e8e2d7}.room2-hud-card{padding:15px;border:1px solid rgba(255,255,255,.08);background:#181c24;box-shadow:0 10px 24px rgba(0,0,0,.2)}.room2-hud-card>span,.room2-card-row span{font-size:8px;font-weight:900;letter-spacing:.15em;color:#a98e59}.room2-objective-card h2{margin:8px 0 6px;font-size:20px;line-height:1.1}.room2-objective-card p,.room2-status-card p{margin:0;color:#aaa397;font-size:11px;line-height:1.45}.room2-card-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.room2-card-row strong{font-size:11px}.room2-integrity-track{height:10px;margin:10px 0 8px;background:#090b0f;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}.room2-integrity-track i{display:block;width:100%;height:100%;background:linear-gradient(90deg,#7f1d2b,#d34555);transition:width .35s}.room2-integrity-card small,.room2-status-card small{color:#77736c;font-size:8px}.room2-puzzle-list{display:grid;gap:7px;margin-top:10px}.room2-puzzle-list b{font-size:10px;color:#8f8a81}.room2-puzzle-list b.is-done{color:#7fcc8b}.room2-inventory{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.room2-item-chip{display:flex;align-items:center;gap:6px;padding:7px 8px;border:1px solid rgba(255,255,255,.08);background:#0f1217;font-size:9px;font-weight:900}.room2-item-chip i{width:9px;height:9px;border-radius:2px;background:#927d4e}.room2-item-chip[data-item="red-key"] i{background:#d43b49}.room2-item-chip[data-item="flashlight"] i{background:#d2c391}.room2-item-chip[data-item="crowbar"] i{background:#8f3a34}.room2-item-chip[data-item="fuse"] i{background:#6fa77b}
.room2-hallway-map{background:#05070b}.r2-hall-floor{position:absolute;left:420px;top:0;width:360px;height:1650px;background:repeating-linear-gradient(0deg,#1b1d22 0 30px,#20232a 30px 60px);box-shadow:inset 0 0 0 8px #3d3f43,inset 0 0 70px rgba(0,0,0,.72)}.r2-hall-floor::after{content:"";position:absolute;left:122px;top:0;width:116px;height:100%;background:#4f111d;box-shadow:0 0 0 4px #8d7545,inset 0 0 0 2px rgba(255,255,255,.08)}.r2-hall-wall{position:absolute;top:0;width:54px;height:1650px;background:#101216;box-shadow:inset 0 0 0 5px #33363d;z-index:200}.r2-hall-wall.left{left:380px}.r2-hall-wall.right{left:766px}.r2-hall-lamp{position:absolute;left:396px;width:28px;height:48px;z-index:230}.r2-hall-lamp::before{content:"";position:absolute;left:0;top:0;width:28px;height:20px;background:#181b1f;box-shadow:inset 0 0 0 3px #45484c}.r2-hall-lamp::after{content:"";position:absolute;left:11px;top:20px;width:6px;height:28px;background:#35383c}.r2-hall-lamp span{position:absolute;left:10px;top:5px;width:8px;height:8px;border-radius:50%;background:#3b3830}.r2-hall-lamp.is-on span{background:#ffd993;box-shadow:0 0 18px 8px rgba(255,208,127,.66)}.r2-hall-lamp.is-on{filter:drop-shadow(0 0 20px rgba(255,202,113,.34))}.r2-hall-lamp:nth-of-type(odd){left:775px;transform:scaleX(-1)}.r2-hall-lamp.lamp-1{top:1320px}.r2-hall-lamp.lamp-2{top:1120px}.r2-hall-lamp.lamp-3{top:920px}.r2-hall-lamp.lamp-4{top:720px}.r2-hall-lamp.lamp-5{top:520px}.r2-hall-lamp.lamp-6{top:320px}.r2-hall-end{position:absolute;left:470px;top:150px;width:260px;text-align:center;color:rgba(214,184,110,.25);font-size:18px;font-weight:900;letter-spacing:.16em}.room2-bouquet{position:absolute;left:640px;top:610px;z-index:920;font-size:38px;filter:drop-shadow(0 8px 12px rgba(0,0,0,.48))}
.room2-game[data-phase="FAILURE_CHASE"] .room2-objective-card,.room2-game[data-phase="JINKSON_BREAK_IN"] .room2-objective-card{border-color:rgba(211,69,85,.38);box-shadow:0 0 24px rgba(211,69,85,.08)}
.room2-game[data-phase="VICTORY"] .room2-stage-dot{background:#d7b668;box-shadow:0 0 15px rgba(215,182,104,.8)}
@media(max-width:1050px){.room2-layout{grid-template-columns:1fr}.room2-world{border-right:0;min-height:650px}.room2-hud{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.room2-objective-card{grid-column:1/-1}}
@media(max-width:700px){.room2-topbar{align-items:flex-start;flex-direction:column}.room2-top-actions{width:100%;justify-content:space-between}.room2-top-actions>span{display:none}.room2-world{min-height:560px}.room2-hud{grid-template-columns:1fr}.room2-objective-card{grid-column:auto}.room2-dialogue{left:12px;right:12px;bottom:12px;gap:10px;padding:14px 14px 12px}.room2-dialogue.has-portrait{min-height:170px}.room2-dialogue-portrait{flex-basis:138px;height:148px}.room2-modal-card{padding:22px 18px}.r2-photo-inspect{grid-template-columns:1fr}.room2-victory h3{font-size:34px}}

 
.room2-interactable{transition:filter .16s ease,box-shadow .16s ease,transform .16s ease}
.room2-interactable.is-nearby{filter:brightness(1.18) drop-shadow(0 0 7px rgba(217,190,121,.36));outline:1px solid rgba(216,185,111,.35);outline-offset:3px}
.room2-player.is-occluded img,.room2-jinkson.is-occluded img{opacity:.9;filter:brightness(.72) saturate(.9) drop-shadow(0 5px 5px rgba(0,0,0,.58))}
.room2-player.is-occluded .room2-held-item,.room2-jinkson.is-occluded .room2-jinkson-light{opacity:.75}
.r2-prop.is-rattled,.r2-room-scenery .is-rattled,.r2-door.is-rattled{animation:r2PropRattle .28s ease-in-out 1}
@keyframes r2PropRattle{0%,100%{transform:translate(0,0)}25%{transform:translate(-2px,0)}55%{transform:translate(2px,0)}80%{transform:translate(-1px,0)}}
.r2-prop.is-covering-player,.r2-secret-wall.is-covering-player,.r2-maintenance-locker.is-covering-player{filter:brightness(1.06) drop-shadow(0 0 4px rgba(0,0,0,.24))}
.room2-world.is-powered .room2-player.is-occluded img,.room2-world.is-powered .room2-jinkson.is-occluded img{filter:brightness(.8) saturate(.95) drop-shadow(0 5px 5px rgba(0,0,0,.52))}


.room2-item-chip{min-height:34px;padding:5px 8px}
.room2-item-chip img{width:23px;height:23px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 2px 2px rgba(0,0,0,.45))}
.room2-item-chip>span{display:block}
.room2-item-chip i{display:none}

.r2-flashlight{background:url('../images/room2/items/flashlight.png') center/32px 32px no-repeat}
.r2-flashlight span{display:none}
.r2-crowbar{background:url('../images/room2/items/crowbar.png') center/42px 42px no-repeat!important}
.r2-crowbar span{display:none}
.room2-bouquet{font-size:0}
.room2-bouquet img{display:block;width:64px;height:64px;image-rendering:pixelated;filter:drop-shadow(0 8px 12px rgba(0,0,0,.5))}

 
.room2-player[data-item="crowbar"] .room2-held-item{opacity:1;width:31px;height:4px;border-radius:3px;background:linear-gradient(90deg,#6f2926,#b34c43 45%,#692723);box-shadow:0 1px 0 rgba(255,255,255,.12),0 3px 5px rgba(0,0,0,.45)}
.room2-player.is-defensive[data-item="crowbar"] .room2-held-item{animation:r2CrowbarReady .62s ease-in-out infinite alternate}
.room2-player.is-prying[data-item="crowbar"] .room2-held-item{animation:r2CrowbarPry .36s ease-in-out infinite alternate}
@keyframes r2CrowbarReady{to{filter:brightness(1.18);margin-top:-2px}}
@keyframes r2CrowbarPry{from{margin-left:-2px}to{margin-left:3px}}

 
.room2-jinkson-body{z-index:3!important}
.room2-jinkson-mask{z-index:5!important;transition:opacity .48s ease,transform .58s cubic-bezier(.2,.8,.2,1);transform-origin:50% 32%}
.room2-jinkson.is-unmasked .room2-jinkson-mask{opacity:0;transform:translateY(17px) rotate(-9deg)}
.room2-jinkson-held-item{position:absolute;left:63px;top:72px;width:18px;height:6px;border-radius:5px;background:#9d9989;box-shadow:0 0 8px rgba(255,239,177,.42);z-index:6;transform-origin:left center;opacity:1}
.room2-jinkson[data-facing="n"] .room2-jinkson-held-item{left:43px;top:48px;transform:rotate(-92deg)}
.room2-jinkson[data-facing="ne"] .room2-jinkson-held-item{left:60px;top:55px;transform:rotate(-45deg)}
.room2-jinkson[data-facing="e"] .room2-jinkson-held-item{left:66px;top:69px;transform:rotate(0)}
.room2-jinkson[data-facing="se"] .room2-jinkson-held-item{left:61px;top:77px;transform:rotate(43deg)}
.room2-jinkson[data-facing="s"] .room2-jinkson-held-item{left:42px;top:84px;transform:rotate(90deg)}
.room2-jinkson[data-facing="sw"] .room2-jinkson-held-item{left:34px;top:77px;transform:rotate(137deg)}
.room2-jinkson[data-facing="w"] .room2-jinkson-held-item{left:28px;top:68px;transform:rotate(180deg)}
.room2-jinkson[data-facing="nw"] .room2-jinkson-held-item{left:34px;top:54px;transform:rotate(-137deg)}
.room2-jinkson.is-unmasked .room2-jinkson-held-item{opacity:.35}

 
.room2-jinkson-cone{position:absolute;left:var(--j-beam-x,50%);top:var(--j-beam-y,70%);width:var(--j-beam-length,0px);height:170px;transform:translateY(-50%) rotate(var(--j-beam-angle,-90deg));transform-origin:0 50%;clip-path:polygon(0 47%,100% 5%,100% 95%,0 53%);background:linear-gradient(90deg,rgba(255,231,169,.22),rgba(255,220,144,.1) 42%,transparent);filter:blur(8px);mix-blend-mode:screen;opacity:var(--j-beam-opacity,0);transition:opacity .18s}
.room2-jinkson-hotspot{position:absolute;left:var(--j-beam-x,50%);top:var(--j-beam-y,70%);width:24px;height:24px;border-radius:50%;transform:translate(-50%,-50%);background:rgba(255,222,154,.1);filter:blur(5px);opacity:var(--j-beam-opacity,0)}

 
.room2-jinkson-light{display:none!important}

 
.r2-room-lamp{position:absolute;width:26px;height:34px;z-index:126;pointer-events:none}
.r2-room-lamp::before{content:"";position:absolute;left:4px;top:3px;width:18px;height:15px;background:#262322;box-shadow:inset 0 0 0 3px #554c42;border-radius:4px 4px 8px 8px}
.r2-room-lamp::after{content:"";position:absolute;left:11px;top:18px;width:4px;height:14px;background:#50463c}
.r2-room-lamp span{position:absolute;left:9px;top:7px;width:8px;height:7px;border-radius:50%;background:#302e29;transition:background .15s,box-shadow .15s}
.r2-room-lamp.lamp-a{left:152px;top:310px}.r2-room-lamp.lamp-b{left:820px;top:330px}.r2-room-lamp.lamp-c{left:150px;top:1190px}.r2-room-lamp.lamp-d{left:820px;top:1165px}
.room2-world.is-powered .r2-room-lamp span{background:#ffd891;box-shadow:0 0 20px 9px rgba(255,211,137,.42)}
.room2-world.is-powered .r2-room-lamp{filter:drop-shadow(0 0 13px rgba(255,208,128,.2))}
.room2-world.is-restoring-power .r2-room-lamp span{animation:r2RoomLampFlicker .55s steps(2,end) infinite}
.room2-world.is-restoring-power .room2-darkness{animation:r2PowerDarkness 1.15s steps(2,end) infinite}
@keyframes r2RoomLampFlicker{0%,45%,100%{background:#302e29;box-shadow:none}52%,72%{background:#ffd891;box-shadow:0 0 17px 7px rgba(255,211,137,.4)}}
@keyframes r2PowerDarkness{0%,42%,100%{opacity:1}48%,70%{opacity:.58}76%{opacity:.88}}

 
.room2-player.is-moving .room2-player-shadow{animation:r2ShadowStep .25s steps(2,end) infinite}
.room2-player.is-running .room2-player-shadow{animation-duration:.16s}
.room2-jinkson.is-moving .room2-player-shadow{animation:r2ShadowStep .19s steps(2,end) infinite}
@keyframes r2ShadowStep{50%{transform:scaleX(.86);opacity:.7}}

.room2-world.is-hallway .room2-jinkson-cone{filter:blur(10px);opacity:calc(var(--j-beam-opacity,0) * .72)}

 
.room2-main-map{background:radial-gradient(circle at 50% 48%,#171a20 0,#10131a 62%,#080a0f 100%)}
.r2-main-floor{background:
  linear-gradient(90deg,rgba(0,0,0,.12) 0 2px,transparent 2px 30px),
  repeating-linear-gradient(0deg,#29231f 0 22px,#342b24 22px 44px);
  box-shadow:inset 0 0 0 6px #5a4b3b,inset 0 0 100px rgba(0,0,0,.72),0 0 0 16px #101216}
.r2-main-floor::before{content:"";position:absolute;inset:22px;background:
  linear-gradient(90deg,transparent 0 49.7%,rgba(117,89,62,.18) 50%,transparent 50.3%),
  radial-gradient(ellipse at 21% 73%,rgba(22,13,10,.5),transparent 8%),
  radial-gradient(ellipse at 78% 29%,rgba(17,10,9,.48),transparent 7%);pointer-events:none}
.r2-wall{background:linear-gradient(180deg,#232222,#17181a 68%,#0d0f13);box-shadow:inset 0 0 0 4px #51453a,inset 0 -9px 0 #2b2521,0 14px 22px rgba(0,0,0,.32)}
.r2-rug{background:
  repeating-linear-gradient(90deg,transparent 0 18px,rgba(225,187,116,.06) 18px 20px),
  linear-gradient(90deg,#2a0d14,#6b1624 10%,#8a2132 50%,#6a1523 90%,#290d13)}
.r2-rug::before{content:"";position:absolute;inset:28px;border:1px solid rgba(228,197,127,.2);box-shadow:0 0 0 7px rgba(47,14,20,.34)}

.r2-room-scenery{position:absolute;inset:0;pointer-events:none;z-index:12}
.r2-window{position:absolute;width:78px;height:112px;background:#080c13;border:7px solid #40362e;box-shadow:inset 0 0 0 3px #75614b,0 9px 14px rgba(0,0,0,.4)}
.r2-window::before,.r2-window::after{content:"";position:absolute;background:#6b5b4a;opacity:.7}.r2-window::before{left:50%;top:0;width:4px;height:100%;transform:translateX(-50%)}.r2-window::after{left:0;top:50%;height:4px;width:100%;transform:translateY(-50%)}
.r2-window i{position:absolute;inset:7px;background:radial-gradient(circle at 62% 28%,rgba(177,192,205,.16),transparent 18%),linear-gradient(150deg,#131d27,#070a10 66%);box-shadow:inset 0 0 22px #030406}
.r2-window b{position:absolute;left:9px;right:9px;bottom:12px;height:1px;box-shadow:0 -18px 0 rgba(204,215,218,.08),0 -42px 0 rgba(204,215,218,.06)}
.r2-window-west{left:150px;top:175px}
.r2-curtain{position:absolute;width:24px;height:132px;top:165px;background:repeating-linear-gradient(90deg,#3b1721 0 5px,#5b2030 5px 10px);filter:brightness(.7);box-shadow:0 8px 9px rgba(0,0,0,.28)}
.r2-curtain-west{left:137px}.r2-curtain-west::after{content:"";position:absolute;left:94px;top:0;width:24px;height:132px;background:inherit;box-shadow:inherit}
.r2-painting{position:absolute;border:6px solid #3f3025;background:#161412;box-shadow:inset 0 0 0 2px #806c4a,0 7px 9px rgba(0,0,0,.32)}
.r2-painting i{position:absolute;inset:7px;background:linear-gradient(145deg,#513c35,#1b2226 55%,#6b5c49);filter:saturate(.55) brightness(.65)}
.r2-painting-a{left:305px;top:150px;width:86px;height:58px;transform:rotate(-1deg)}
.r2-painting-b{left:646px;top:155px;width:72px;height:52px;transform:rotate(1.5deg)}
.r2-mirror{position:absolute;left:775px;top:210px;width:62px;height:98px;border:7px solid #3a3028;border-radius:44% 44% 10px 10px;box-shadow:inset 0 0 0 2px #75624f,0 8px 10px rgba(0,0,0,.3)}
.r2-mirror i{position:absolute;inset:7px;border-radius:inherit;background:linear-gradient(135deg,#1a2328 0 35%,#344148 36% 39%,#11171b 40% 100%);opacity:.72}
.r2-wall-crack{position:absolute;width:52px;height:46px;opacity:.5;background:linear-gradient(118deg,transparent 0 46%,#08090b 47% 50%,transparent 51%),linear-gradient(68deg,transparent 0 56%,#08090b 57% 60%,transparent 61%)}
.r2-wall-crack.crack-a{left:808px;top:470px;transform:rotate(14deg)}.r2-wall-crack.crack-b{left:142px;top:790px;transform:rotate(-19deg) scale(.8)}
.r2-floor-stain{position:absolute;border-radius:50%;background:radial-gradient(ellipse,rgba(12,9,8,.54),rgba(14,10,9,.22) 45%,transparent 72%)}
.r2-floor-stain.stain-a{left:646px;top:1185px;width:118px;height:48px;transform:rotate(-9deg)}.r2-floor-stain.stain-b{left:276px;top:760px;width:86px;height:38px;transform:rotate(17deg)}
.r2-scattered-papers{position:absolute;left:385px;top:1158px;width:90px;height:62px}.r2-scattered-papers::before,.r2-scattered-papers i,.r2-scattered-papers b{content:"";position:absolute;width:34px;height:25px;background:#8e8877;box-shadow:0 3px 4px rgba(0,0,0,.32)}.r2-scattered-papers::before{left:2px;top:17px;transform:rotate(13deg)}.r2-scattered-papers i{left:27px;top:6px;transform:rotate(-8deg)}.r2-scattered-papers b{left:48px;top:28px;transform:rotate(5deg)}
.r2-book-pile{position:absolute;left:660px;top:790px;width:72px;height:34px}.r2-book-pile::before,.r2-book-pile i,.r2-book-pile b,.r2-book-pile em{content:"";position:absolute;left:0;width:60px;height:8px;border-radius:2px;box-shadow:0 2px 3px rgba(0,0,0,.35)}.r2-book-pile::before{top:24px;background:#43302b;transform:rotate(1deg)}.r2-book-pile i{top:16px;left:6px;background:#25423c;transform:rotate(-3deg)}.r2-book-pile b{top:8px;left:2px;background:#5a3a28;transform:rotate(2deg)}.r2-book-pile em{top:0;left:9px;background:#353844;transform:rotate(-4deg)}

.r2-prop{appearance:none;padding:0;margin:0;border:0;outline:0;color:transparent;overflow:visible;image-rendering:pixelated;box-shadow:0 9px 12px rgba(0,0,0,.31),inset 0 0 0 3px rgba(255,255,255,.035)}
.r2-prop>span{position:absolute;inset:0;font-size:0;pointer-events:none}
.r2-prop.is-inspected{filter:brightness(1.05)}
.r2-cabinet{left:160px;top:1274px;width:100px;height:78px;background:linear-gradient(90deg,#35281f,#443226 50%,#34271f)}
.r2-cabinet::before{content:"";position:absolute;inset:8px 9px 14px;border:2px solid #251b16;box-shadow:inset 39px 0 0 rgba(0,0,0,.09)}
.r2-cabinet::after{content:"";position:absolute;left:46px;top:37px;width:7px;height:5px;border-radius:50%;background:#94784a;box-shadow:0 0 0 2px #251a13}
.r2-desk{left:630px;top:1260px;width:158px;height:88px;background:linear-gradient(#533e2c 0 17px,#3d2d23 17px 100%)}
.r2-desk::before{content:"";position:absolute;left:15px;right:15px;top:27px;height:25px;border:2px solid #2c2019;background:#443126;box-shadow:0 25px 0 -6px #261c17}
.r2-desk::after{content:"";position:absolute;left:76px;top:37px;width:9px;height:5px;border-radius:4px;background:#9c8050;transition:transform .35s,box-shadow .35s}
.r2-desk.is-open::before{transform:translateY(10px);box-shadow:0 13px 9px rgba(0,0,0,.5),0 30px 0 -6px #261c17}
.r2-desk.is-open::after{transform:translateY(10px)}
.r2-broken-chair{left:303px;top:1184px;width:64px;height:63px;background:transparent;box-shadow:none;transform:rotate(-21deg)}
.r2-broken-chair::before{content:"";position:absolute;left:8px;top:24px;width:46px;height:28px;background:#3c2b20;box-shadow:0 -21px 0 -8px #493326,7px 28px 0 -5px #2c2019,-30px 19px 0 -5px #2c2019}
.r2-broken-chair::after{content:"";position:absolute;left:11px;top:22px;width:40px;height:4px;background:#6a4a34;box-shadow:0 14px 0 #2a1e18}
.r2-crates{left:190px;top:900px;width:128px;height:91px;background:repeating-linear-gradient(0deg,#4b3828 0 20px,#3c2e23 20px 39px);box-shadow:0 9px 12px rgba(0,0,0,.33),inset 0 0 0 5px #2b2019}
.r2-crates::before{content:"";position:absolute;inset:9px;border:3px solid rgba(28,19,14,.65);background:linear-gradient(35deg,transparent 46%,rgba(32,22,16,.7) 47% 52%,transparent 53%)}
.r2-bookshelf{left:128px;top:548px;width:115px;height:170px;background:#342419;box-shadow:0 12px 14px rgba(0,0,0,.34),inset 0 0 0 6px #4a3424}
.r2-bookshelf::before{content:"";position:absolute;inset:10px;background:repeating-linear-gradient(0deg,transparent 0 27px,#1d1511 27px 33px),repeating-linear-gradient(90deg,#5f3b2d 0 6px,#253532 6px 11px,#52422c 11px 18px,#3f2833 18px 23px)}
.r2-bookshelf::after{content:"";position:absolute;left:11px;right:11px;bottom:14px;height:4px;background:#806046;box-shadow:0 -34px 0 #806046,0 -68px 0 #806046,0 -102px 0 #806046}
.r2-table{left:456px;top:852px;width:184px;height:91px;background:linear-gradient(#513b2b 0 22px,#39291f 22px 100%);border-radius:3px}
.r2-table::before{content:"";position:absolute;left:14px;right:14px;top:13px;height:6px;background:rgba(128,92,61,.6);box-shadow:0 58px 0 -1px #221a15}
.r2-table::after{content:"";position:absolute;left:20px;top:36px;width:14px;height:48px;background:#2a2019;box-shadow:130px 0 0 #2a2019}
.r2-armchair{left:744px;top:1039px;width:94px;height:88px;background:#3a2425;border-radius:26px 26px 12px 12px;box-shadow:0 11px 13px rgba(0,0,0,.35),inset 0 0 0 5px #251819}
.r2-armchair::before{content:"";position:absolute;left:15px;right:15px;top:17px;height:38px;border-radius:18px 18px 8px 8px;background:#523033;box-shadow:inset 0 -7px 0 rgba(0,0,0,.18)}
.r2-armchair::after{content:"";position:absolute;left:6px;right:6px;bottom:10px;height:23px;border-radius:8px;background:#43272a;box-shadow:inset 20px 0 0 #321f21,inset -20px 0 0 #321f21}
.r2-grandfather-clock{left:162px;top:315px;width:68px;height:126px;background:linear-gradient(90deg,#32241b,#483326 50%,#302219);box-shadow:0 10px 12px rgba(0,0,0,.32),inset 0 0 0 5px #261b15}
.r2-grandfather-clock::before{content:"";position:absolute;left:14px;top:10px;width:40px;height:40px;border-radius:50%;background:radial-gradient(circle,#b9a474 0 7%,#2a2b28 8% 12%,#b9a474 13% 58%,#2e251d 59%);box-shadow:0 0 0 4px #211712}
.r2-grandfather-clock::after{content:"";position:absolute;left:31px;top:58px;width:6px;height:43px;background:#1e1713;box-shadow:0 32px 0 5px #6d553d}
.r2-coat-rack{left:786px;top:1154px;width:52px;height:96px;background:transparent;box-shadow:none}
.r2-coat-rack::before{content:"";position:absolute;left:23px;top:7px;width:7px;height:76px;background:#3d2e24;box-shadow:-17px 13px 0 -2px #3d2e24,17px 13px 0 -2px #3d2e24}
.r2-coat-rack::after{content:"";position:absolute;left:8px;bottom:4px;width:36px;height:9px;border-radius:50%;background:#2d221b;box-shadow:0 -67px 0 -3px #654a35}
.r2-sideboard{left:710px;top:408px;width:122px;height:72px;background:linear-gradient(#4b3828,#38291f)}
.r2-sideboard::before{content:"";position:absolute;inset:12px;border:2px solid #241a15;box-shadow:45px 0 0 -43px #241a15,0 23px 0 -10px #241a15}
.r2-sideboard::after{content:"";position:absolute;left:58px;top:34px;width:7px;height:5px;border-radius:50%;background:#a88b55}

.r2-flashlight{transition:opacity .28s,transform .28s,filter .28s}.r2-flashlight.is-concealed{opacity:0;transform:translateY(-7px) scale(.72);filter:brightness(.2);pointer-events:none}.r2-flashlight:not(.is-concealed):not(.is-picked):not(.is-dropping){animation:r2ItemBreath 1.15s ease-in-out infinite alternate}
.r2-crowbar{transition:opacity .35s,filter .35s}.r2-crowbar.is-shadowed{opacity:.1;filter:brightness(.22) saturate(.5);pointer-events:none}.r2-crowbar.is-highlighted{opacity:1}
@keyframes r2ItemBreath{to{filter:drop-shadow(0 0 8px rgba(245,221,155,.62));transform:translateY(-2px)}}

 
.r2-utility-wall{position:absolute;left:16px;right:16px;top:17px;height:72px;background:repeating-linear-gradient(90deg,#303638 0 28px,#292f31 28px 31px);box-shadow:inset 0 0 0 4px #4c5354}
.r2-cable-bundle{position:absolute;left:28px;top:112px;width:62px;height:120px;border-left:7px solid #22292b;border-right:5px solid #45282c;border-radius:40% 0 0 40%;transform:rotate(6deg);opacity:.85}
.r2-cable-bundle::after{content:"";position:absolute;left:14px;top:18px;width:7px;height:92px;background:#4a4431;box-shadow:16px -9px 0 #252b36,29px 4px 0 #542d28}
.r2-warning-stripe{position:absolute;left:12px;right:12px;bottom:16px;height:18px;background:repeating-linear-gradient(135deg,#bd933d 0 13px,#242322 13px 26px);opacity:.52}
.r2-toolbox{position:absolute;left:43px;bottom:48px;width:84px;height:44px;background:#69242c;border:4px solid #32161a;box-shadow:0 7px 9px rgba(0,0,0,.4)}.r2-toolbox::before{content:"";position:absolute;left:25px;top:-12px;width:28px;height:12px;border:5px solid #39272a;border-bottom:0}.r2-toolbox i{position:absolute;left:8px;right:8px;top:13px;height:4px;background:#a24e52}
.r2-maintenance-locker{position:absolute;right:14px;bottom:47px;width:62px;height:142px;background:#3d4748;box-shadow:inset 0 0 0 5px #252b2c,0 8px 10px rgba(0,0,0,.35)}.r2-maintenance-locker::before{content:"";position:absolute;left:10px;right:10px;top:18px;height:3px;background:#202728;box-shadow:0 9px 0 #202728,0 18px 0 #202728}.r2-maintenance-locker i,.r2-maintenance-locker b{position:absolute;right:10px;width:5px;height:16px;border-radius:2px;background:#89908e}.r2-maintenance-locker i{top:57px}.r2-maintenance-locker b{top:91px}
.r2-floor-drain{position:absolute;left:146px;bottom:63px;width:46px;height:46px;border-radius:50%;background:repeating-linear-gradient(90deg,#1a1d1e 0 4px,#474d4d 4px 7px);box-shadow:inset 0 0 0 6px #24292a}
.r2-pipes{box-shadow:-36px 0 0 #3b4144,-72px 0 0 #555b5d,0 0 0 2px #242829}.r2-pipes::after{content:"";position:absolute;left:-72px;top:82px;width:90px;height:18px;background:#4a5052;box-shadow:0 78px 0 #363b3d}

 
.r2-wall-south{z-index:1570}.r2-wall-north{z-index:120}.r2-wall-west,.r2-wall-east{z-index:125}
.r2-entrance-door{z-index:1530!important}.r2-exit-door{z-index:165!important}

 
.r2-dust-mote{position:absolute;width:3px;height:3px;border-radius:50%;background:rgba(212,198,172,.25);pointer-events:none;z-index:420;animation:r2FloatDust var(--dust-duration,9s) linear var(--dust-delay,0s) infinite;box-shadow:0 0 5px rgba(219,206,180,.12)}
@keyframes r2FloatDust{0%{opacity:0;transform:translate(0,12px)}18%{opacity:.42}55%{opacity:.18;transform:translate(11px,-12px)}82%{opacity:.38}100%{opacity:0;transform:translate(-7px,-28px)}}
.r2-wood-chip{position:absolute;width:8px;height:4px;background:#6b4930;box-shadow:inset 0 0 0 1px #2e1e15;pointer-events:none;z-index:1580;animation:r2WoodChip var(--chip-life,.65s) ease-out forwards}
@keyframes r2WoodChip{0%{opacity:1;transform:translate(0,0) rotate(0)}70%{opacity:.9}100%{opacity:0;transform:translate(var(--chip-x),var(--chip-y)) rotate(var(--chip-r))}}

 
.room2-world.is-restoring-power .r2-room-lamp span{animation:none}
.r2-room-lamp.is-test-flicker span{animation:r2RoomLampFlicker .22s steps(2,end) infinite}
.r2-room-lamp.is-test-on span{background:#ffd891;box-shadow:0 0 20px 9px rgba(255,211,137,.42)}

 
button.room2-item-chip{appearance:none;color:#e8e2d7;cursor:pointer;text-align:left;font-family:inherit}
button.room2-item-chip:hover{border-color:rgba(200,169,105,.35);background:#171b22}
.room2-item-chip.is-equipped{border-color:rgba(214,184,108,.55);box-shadow:inset 0 0 0 1px rgba(214,184,108,.14),0 0 14px rgba(183,145,75,.08)}
.room2-item-chip.is-equipped>span::after{content:" · đang cầm";color:#b99856;font-size:8px}
.room2-item-chip[data-item="bare-hand"].is-equipped>span::after{content:""}
.room2-item-chip[data-item="phone"] img{width:25px;height:25px;object-fit:contain}

 
.room2-world.is-powered .r2-window i{background:linear-gradient(145deg,#1a2022,#111416 62%)}
.room2-world.is-powered .r2-painting i,.room2-world.is-powered .r2-mirror i{filter:none;opacity:.9}
.room2-world.is-powered .r2-prop{filter:brightness(1.08)}
.room2-world.is-powered .r2-floor-stain{opacity:.8}

@media(max-width:700px){
  .r2-dust-mote{display:none}
  .room2-item-chip.is-equipped>span::after{display:none}
}

 
.room2-integrity-card{transition:border-color .2s,box-shadow .2s,background .2s}
.room2-integrity-card.is-warning{border-color:rgba(202,137,62,.34);box-shadow:inset 0 0 18px rgba(144,84,29,.06),0 10px 24px rgba(0,0,0,.2)}
.room2-integrity-card.is-warning .room2-integrity-track i{background:linear-gradient(90deg,#82471d,#d28535)}
.room2-integrity-card.is-critical{border-color:rgba(223,61,83,.46);background:linear-gradient(180deg,#21161b,#18191f);animation:r2IntegrityCritical .72s ease-in-out infinite alternate}
.room2-integrity-card.is-critical .room2-integrity-track i{background:linear-gradient(90deg,#781623,#ee4058);box-shadow:0 0 12px rgba(238,64,88,.34)}
@keyframes r2IntegrityCritical{to{box-shadow:inset 0 0 24px rgba(170,26,47,.08),0 0 18px rgba(170,26,47,.11)}}

.r2-secret-wall.is-half-open{transform:translateX(-72px);filter:brightness(.8)}
.r2-secret-gap.is-opening{opacity:.55}

.r2-red-box{overflow:visible;transition:transform .3s,background .3s,filter .3s}
.r2-red-box.is-key-inserted::after{content:"";position:absolute;right:-24px;top:28px;width:31px;height:7px;border-radius:2px;background:linear-gradient(90deg,#a42d38 0 58%,#c9b17a 59% 100%);box-shadow:0 0 0 2px #2b1818,0 2px 5px rgba(0,0,0,.45);transform-origin:4px 50%;z-index:3}
.r2-red-box.is-key-turning::after{transform:rotate(38deg)}
.r2-red-box.is-key-turning{filter:brightness(1.14)}
.r2-red-box.is-open::after{opacity:.55;transform:rotate(75deg) translateY(2px)}

.r2-generator.has-fuse::before{box-shadow:0 0 0 1px #1d2020,46px 1px 0 -17px #c6a85f,46px 1px 0 -13px #202323}
.r2-generator.has-fuse:not(.is-running)::after{background:#9a7e34;box-shadow:0 0 7px rgba(194,158,67,.32),0 25px 0 #151817}
.r2-breaker::after{transition:transform .28s cubic-bezier(.2,.85,.35,1.3),background .2s}
.r2-breaker.is-pulling::after{transform:rotate(2deg) translateY(4px);background:#b9b39f}
.r2-breaker.is-pulling{box-shadow:0 0 0 2px rgba(200,169,105,.18),0 7px 16px rgba(0,0,0,.4)}

.r2-exit-door{transition:transform .24s,background .24s,box-shadow .24s}
.r2-exit-door.is-damage-1{transform:rotate(-2deg) translateX(-2px);box-shadow:inset 0 0 0 4px #5f4b3e,-6px 4px 0 -3px #37201c,0 5px 8px rgba(0,0,0,.4)}
.r2-exit-door.is-damage-2{transform:rotate(3deg) translateX(5px);background:#261619;box-shadow:inset 0 0 0 4px #634739,-11px 8px 0 -6px #40231d,12px 7px 0 -7px #2d1815}
.r2-exit-door.is-damage-2::after{content:"";position:absolute;inset:5px 21px;background:linear-gradient(63deg,transparent 0 45%,#080506 46% 50%,transparent 51%)}

.r2-photo-inspect{align-items:start}
.r2-photo-large{position:relative;width:120px;height:150px;transform-style:preserve-3d;transition:transform .45s cubic-bezier(.2,.7,.2,1);filter:drop-shadow(0 12px 18px rgba(0,0,0,.34))}
.r2-photo-large.is-back{transform:rotateY(180deg)}
.r2-photo-front,.r2-photo-back{position:absolute;inset:0;display:grid;place-items:center;backface-visibility:hidden;border:8px solid #574637;box-sizing:border-box}
.r2-photo-front{background:linear-gradient(150deg,rgba(255,255,255,.12),transparent 38%),radial-gradient(circle at 55% 33%,#776b5b 0 13%,transparent 14%),linear-gradient(180deg,#aaa28f 0 43%,#675f53 44% 60%,#4c493f 61%);color:rgba(240,232,213,.58);font:900 13px/1 Inter,sans-serif;letter-spacing:.15em;text-shadow:0 2px 3px rgba(0,0,0,.7)}
.r2-photo-back{transform:rotateY(180deg);background:repeating-linear-gradient(0deg,#cfc1a8 0 22px,#c7b89f 22px 23px);color:#26231f;font:900 54px/1 Inter,sans-serif}
.r2-photo-clue{min-height:24px;margin-top:10px!important;color:#d7ba73;font-weight:800}
#r2FlipPhoto{min-width:130px}

@media(max-width:700px){
  .r2-photo-large{margin:auto}
}





 
.r2-door-threat{position:absolute;left:438px;top:1488px;width:124px;height:102px;z-index:1510;pointer-events:none;opacity:0;transition:opacity .35s,filter .35s;--door-threat:.2;--threat-sway:0deg}
.r2-door-threat.is-active{opacity:calc(.28 + var(--door-threat) * .62);filter:drop-shadow(0 -5px 13px rgba(238,209,146,.12))}
.r2-door-threat-body{position:absolute;left:39px;top:39px;width:45px;height:76px;border-radius:42% 42% 18% 18%;background:linear-gradient(90deg,#050608,#11141a 50%,#040506);box-shadow:0 -13px 0 -5px #08090c,0 8px 16px rgba(0,0,0,.65)}
.r2-door-threat-hand{position:absolute;left:75px;top:48px;width:28px;height:7px;border-radius:5px;background:#15181a;transform:rotate(-8deg);transform-origin:left center}
.r2-door-threat-beam{position:absolute;left:62px;top:32px;width:175px;height:76px;clip-path:polygon(0 46%,100% 4%,100% 96%,0 54%);transform:translateY(-50%) rotate(calc(-90deg + var(--threat-sway)));transform-origin:0 50%;background:linear-gradient(90deg,rgba(255,232,171,.28),rgba(255,228,153,.07) 48%,transparent 100%);filter:blur(7px);mix-blend-mode:screen;opacity:calc(.14 + var(--door-threat) * .38)}
.r2-door-threat.is-hit{animation:r2ThreatHit .34s steps(2,end)}
.r2-door-threat.is-critical .r2-door-threat-beam{animation:r2ThreatSweep .9s ease-in-out infinite alternate}
@keyframes r2ThreatHit{0%,100%{transform:translateX(0)}30%{transform:translateX(-7px)}60%{transform:translateX(5px)}}
@keyframes r2ThreatSweep{from{transform:translateY(-50%) rotate(-102deg);opacity:.24}to{transform:translateY(-50%) rotate(-78deg);opacity:.54}}

 
.room2-chase-pressure{position:absolute;inset:0;z-index:720;pointer-events:none;opacity:0;transition:opacity .16s;background:radial-gradient(circle at 50% 52%,transparent 0 41%,rgba(97,4,15,.05) 62%,rgba(118,5,18,.44) 100%);box-shadow:inset 0 0 100px 22px rgba(87,0,13,.32)}
.room2-chase-pressure.is-active{opacity:var(--chase-pressure,0)}
.room2-chase-pressure.is-caught{animation:r2CaughtFlash .5s ease-out forwards}
@keyframes r2CaughtFlash{0%{opacity:.15}30%{opacity:.95;background:rgba(133,8,24,.45)}100%{opacity:.28}}

 
.room2-player.is-moving{animation:r2WalkBobStable .28s steps(4,end) infinite}
.room2-player.is-running{animation:r2RunBobStable .18s steps(4,end) infinite}
.room2-jinkson.is-moving{animation:r2JinksonRunStable .17s steps(4,end) infinite}
@keyframes r2WalkBobStable{0%,100%{transform:translate(-48px,-112px) translateY(0)}25%{transform:translate(-48px,-112px) translateY(-1px)}50%{transform:translate(-48px,-112px) translateY(-2px)}75%{transform:translate(-48px,-112px) translateY(-1px)}}
@keyframes r2RunBobStable{0%,100%{transform:translate(-48px,-112px) translateY(0)}25%{transform:translate(-48px,-112px) translateY(-2px)}50%{transform:translate(-48px,-112px) translateY(-3px)}75%{transform:translate(-48px,-112px) translateY(-1px)}}
@keyframes r2JinksonRunStable{0%,100%{transform:translate(-48px,-112px) translateY(0)}25%{transform:translate(-48px,-112px) translateY(-2px)}50%{transform:translate(-48px,-112px) translateY(-4px)}75%{transform:translate(-48px,-112px) translateY(-1px)}}
.room2-player.is-moving .room2-player-shadow,.room2-jinkson.is-moving .room2-player-shadow{animation:r2ShadowStep .28s steps(2,end) infinite}
.room2-jinkson.is-moving .room2-player-shadow{animation-duration:.17s}
@keyframes r2ShadowStep{50%{width:30px;left:34px;opacity:.72}}

 
.room2-player[data-item="crowbar"] .room2-held-item{opacity:1;width:31px;height:6px;border-radius:5px;background:#8f3d38;box-shadow:0 0 0 1px #3c201e,0 2px 4px rgba(0,0,0,.45)}
.room2-player[data-item="crowbar"] .room2-held-item::after{content:"";position:absolute;right:-6px;top:-5px;width:11px;height:14px;border:4px solid #8f3d38;border-left:0;border-radius:0 10px 10px 0}
.room2-player[data-item="crowbar"][data-facing="n"] .room2-held-item{left:45px;top:53px;transform:rotate(-84deg)}
.room2-player[data-item="crowbar"][data-facing="ne"] .room2-held-item{left:58px;top:57px;transform:rotate(-48deg)}
.room2-player[data-item="crowbar"][data-facing="e"] .room2-held-item{left:64px;top:67px;transform:rotate(-5deg)}
.room2-player[data-item="crowbar"][data-facing="se"] .room2-held-item{left:59px;top:76px;transform:rotate(38deg)}
.room2-player[data-item="crowbar"][data-facing="s"] .room2-held-item{left:46px;top:81px;transform:rotate(82deg)}
.room2-player[data-item="crowbar"][data-facing="sw"] .room2-held-item{left:35px;top:76px;transform:rotate(142deg)}
.room2-player[data-item="crowbar"][data-facing="w"] .room2-held-item{left:31px;top:67px;transform:rotate(184deg)}
.room2-player[data-item="crowbar"][data-facing="nw"] .room2-held-item{left:35px;top:57px;transform:rotate(222deg)}
.room2-player.is-pickup img{animation:r2PickupPose .48s ease-in-out}
@keyframes r2PickupPose{0%,100%{transform:translateY(0)}45%{transform:translateY(7px)}}
.room2-player.is-prying img{animation:r2PryBody .42s ease-in-out infinite alternate;transform-origin:50% 88%}
.room2-player.is-prying .room2-held-item{animation:r2PryTool .42s ease-in-out infinite alternate}
@keyframes r2PryBody{to{transform:translateY(-1px) rotate(-1.5deg)}}
@keyframes r2PryTool{to{filter:brightness(1.25);margin-top:-2px}}
.room2-player.is-defensive[data-item="crowbar"] .room2-held-item{filter:brightness(1.2);box-shadow:0 0 0 1px #3c201e,0 0 8px rgba(201,116,93,.25)}

 
.room2-jinkson-mask{transition:opacity .34s ease,transform .62s cubic-bezier(.18,.72,.2,1);transform-origin:58% 22%}
.room2-jinkson.is-lifting-mask .room2-jinkson-mask{transform:translate(9px,-18px) rotate(16deg);opacity:.88}
.room2-jinkson.is-unmasked .room2-jinkson-mask{transform:translate(27px,-31px) rotate(30deg);opacity:0}
.room2-jinkson.is-lifting-mask .room2-jinkson-held-item,.room2-jinkson.is-unmasked .room2-jinkson-held-item{opacity:.28}

 
.room2-hallway-map{background:radial-gradient(ellipse at 50% 45%,#0d1015,#040507 62%)}
.r2-hall-floor{background:repeating-linear-gradient(0deg,#1b1d22 0 28px,#20232a 28px 56px),linear-gradient(90deg,rgba(255,255,255,.018),transparent 40%,rgba(255,255,255,.012));}
.r2-hall-floor::before{content:"";position:absolute;inset:18px 26px;border-left:2px solid rgba(166,145,98,.14);border-right:2px solid rgba(166,145,98,.14);pointer-events:none}
.r2-hall-trim{position:absolute;top:0;width:18px;height:1650px;background:repeating-linear-gradient(0deg,#312b25 0 48px,#26211e 48px 52px);z-index:206;box-shadow:inset 0 0 0 2px #171719}
.r2-hall-trim.left{left:434px}.r2-hall-trim.right{left:748px}
.r2-hall-picture{position:absolute;width:62px;height:86px;border:6px solid #3c3027;background:#121416;z-index:210;box-shadow:0 9px 12px rgba(0,0,0,.42),inset 0 0 0 2px #6e5a42}
.r2-hall-picture i{position:absolute;inset:7px;background:linear-gradient(145deg,#2b3437,#5a4239 45%,#171b1e);opacity:.54}
.r2-hall-picture.picture-a{left:447px;top:1040px;transform:rotate(-1.5deg)}
.r2-hall-picture.picture-b{left:687px;top:805px;transform:rotate(1deg)}
.r2-hall-picture.picture-c{left:447px;top:460px;transform:rotate(.7deg)}
.r2-hall-console{position:absolute;width:88px;height:42px;background:#322820;z-index:215;box-shadow:inset 0 0 0 4px #1f1915,0 8px 10px rgba(0,0,0,.38)}
.r2-hall-console::after{content:"";position:absolute;left:13px;right:13px;bottom:-18px;height:18px;background:linear-gradient(90deg,#221b17 0 9px,transparent 9px calc(100% - 9px),#221b17 calc(100% - 9px))}
.r2-hall-console i{position:absolute;left:19px;top:12px;width:50px;height:5px;background:#60503a;opacity:.7}
.r2-hall-console.console-a{left:456px;top:690px}.r2-hall-console.console-b{left:657px;top:1180px}
.r2-hall-threshold{position:absolute;left:437px;top:1392px;width:326px;height:34px;border-top:4px solid #6d5a3d;border-bottom:4px solid #29231d;background:repeating-linear-gradient(90deg,#2e2925 0 28px,#231f1d 28px 56px);z-index:35}
.r2-hall-end{top:128px;color:rgba(222,193,119,.18);text-shadow:0 0 18px rgba(218,178,92,.09)}
.room2-world.is-hall-lit .r2-hall-end{color:rgba(229,204,143,.5);text-shadow:0 0 22px rgba(242,207,126,.2);transition:color 1.4s,text-shadow 1.4s}
.r2-hall-lamp.is-on::after{filter:brightness(1.2)}
.r2-hall-lamp.is-on span{animation:r2HallLampWarm .32s steps(2,end) 2}
@keyframes r2HallLampWarm{50%{opacity:.35;box-shadow:0 0 7px 3px rgba(255,208,127,.4)}}

 
.room2-bouquet{width:62px;height:72px;transform:translate(-50%,-100%);opacity:0;transition:left .75s cubic-bezier(.2,.75,.25,1),top .75s cubic-bezier(.2,.75,.25,1),opacity .42s,transform .55s;pointer-events:none}
.room2-bouquet img{display:block;width:62px;height:72px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 7px 9px rgba(0,0,0,.5))}
.room2-bouquet.is-behind{opacity:.2;transform:translate(-70%,-92%) scale(.86)}
.room2-bouquet.is-offered{opacity:1;transform:translate(-50%,-100%) scale(1)}
.room2-bouquet.is-received{opacity:1;transform:translate(-50%,-100%) scale(.96)}

 
.room2-world.is-hallway .room2-vignette{box-shadow:inset 0 0 130px 58px rgba(0,0,0,.72)}
.room2-world.is-hallway.is-hall-lit .room2-vignette{box-shadow:inset 0 0 90px 34px rgba(0,0,0,.52)}

@media(max-width:700px){
  .r2-hall-picture,.r2-hall-console{filter:brightness(.82)}
  .room2-chase-pressure{box-shadow:inset 0 0 70px 16px rgba(87,0,13,.28)}
}







.room2-player.is-moving,
.room2-player.is-running,
.room2-jinkson.is-moving{animation:none!important}
.room2-player>img,.room2-jinkson>img{image-rendering:pixelated;backface-visibility:hidden}

 
.room2-player[data-motion="walk"][data-anim-frame="1"] .room2-player-shadow,
.room2-jinkson[data-motion="walk"][data-anim-frame="1"] .room2-player-shadow{width:31px;left:33px;opacity:.68}
.room2-player[data-motion="walk"][data-anim-frame="3"] .room2-player-shadow,
.room2-jinkson[data-motion="walk"][data-anim-frame="3"] .room2-player-shadow{width:29px;left:35px;opacity:.76}
.room2-player[data-motion="run"][data-anim-frame="1"] .room2-player-shadow,
.room2-jinkson[data-motion="run"][data-anim-frame="1"] .room2-player-shadow{width:33px;left:32px;opacity:.64}
.room2-player[data-motion="run"][data-anim-frame="3"] .room2-player-shadow,
.room2-jinkson[data-motion="run"][data-anim-frame="3"] .room2-player-shadow{width:28px;left:36px;opacity:.78}

 
.room2-player[data-anim-frame="1"] .room2-held-item,
.room2-jinkson[data-anim-frame="1"] .room2-jinkson-held-item{translate:1px -1px}
.room2-player[data-anim-frame="3"] .room2-held-item,
.room2-jinkson[data-anim-frame="3"] .room2-jinkson-held-item{translate:-1px 1px}
.room2-player[data-motion="idle"] .room2-held-item,
.room2-jinkson[data-motion="idle"] .room2-jinkson-held-item{translate:0 0}



.room2-player.is-searching[data-item="flashlight"] .room2-held-item{filter:brightness(1.25) drop-shadow(0 0 5px rgba(255,231,165,.34));animation:r2SearchHand .35s ease-in-out infinite alternate}
@keyframes r2SearchHand{from{translate:-1px 0}to{translate:1px -1px}}

 
.room2-player.is-look-behind .room2-player-shadow{transform:scaleX(.92);opacity:.62}
.room2-player.is-step-back img{animation:r2StepBackBody .34s cubic-bezier(.2,.75,.25,1)}
.room2-player.is-step-back .room2-player-shadow{animation:r2StepBackShadow .34s cubic-bezier(.2,.75,.25,1)}
@keyframes r2StepBackBody{0%{translate:0 0}45%{translate:0 -4px}100%{translate:0 0}}
@keyframes r2StepBackShadow{0%,100%{scale:1 1}45%{scale:.86 .8}}

 
.room2-jinkson.is-offering-bouquet .room2-jinkson-body{animation:r2MinhOffer .72s ease-in-out infinite alternate;transform-origin:50% 86%}
.room2-player.is-receiving-bouquet .room2-player-sprite{animation:r2ChocoReceive .58s ease-out 1;transform-origin:50% 86%}
@keyframes r2MinhOffer{to{translate:0 1px;rotate:-1deg}}
@keyframes r2ChocoReceive{0%{translate:0 0}45%{translate:0 2px;rotate:1deg}100%{translate:0 0}}

 
.room2-player-sprite,.room2-jinkson-body{width:96px!important;height:128px!important;object-fit:contain!important;object-position:center bottom!important}

@media(prefers-reduced-motion:reduce){
  .room2-player.is-searching .room2-held-item,
  .room2-player.is-step-back img,
  .room2-jinkson.is-offering-bouquet .room2-jinkson-body,
  .room2-player.is-receiving-bouquet .room2-player-sprite{animation:none!important}
}
 
.room2-player.is-moving .room2-player-shadow,
.room2-jinkson.is-moving .room2-player-shadow{animation:none!important}





 
.room2-player.has-action .room2-player-sprite,
.room2-jinkson.has-action .room2-jinkson-body{animation:none!important;transform:none!important;translate:0 0!important;rotate:0deg!important;scale:1!important}
.room2-player.has-action,.room2-jinkson.has-action{animation:none!important}

 
.room2-player[data-motion="action"][data-anim-frame="1"] .room2-player-shadow,
.room2-jinkson[data-motion="action"][data-anim-frame="1"] .room2-player-shadow{width:31px;left:33px;opacity:.68}
.room2-player[data-motion="action"][data-anim-frame="2"] .room2-player-shadow,
.room2-jinkson[data-motion="action"][data-anim-frame="2"] .room2-player-shadow{width:29px;left:35px;opacity:.74}
.room2-player[data-motion="action"][data-anim-frame="3"] .room2-player-shadow,
.room2-jinkson[data-motion="action"][data-anim-frame="3"] .room2-player-shadow{width:32px;left:33px;opacity:.7}

 
.room2-player[data-action="flashlight_search"][data-item="flashlight"] .room2-held-item{animation:none!important;filter:brightness(1.28) drop-shadow(0 0 5px rgba(255,231,165,.34))}
.room2-player[data-action="flashlight_search"][data-action-frame="0"] .room2-held-item{translate:-1px 0}
.room2-player[data-action="flashlight_search"][data-action-frame="1"] .room2-held-item{translate:1px -1px}
.room2-player[data-action="flashlight_search"][data-action-frame="2"] .room2-held-item{translate:1px 0}
.room2-player[data-action="flashlight_search"][data-action-frame="3"] .room2-held-item{translate:-1px -1px}

 
.room2-player[data-item="crowbar"][data-action="crowbar_defensive"] .room2-held-item{animation:none!important;left:40px!important;top:58px!important;transform:rotate(-42deg)!important;filter:brightness(1.16);box-shadow:0 0 0 1px #3c201e,0 0 8px rgba(201,116,93,.24)}
.room2-player.is-crowbar-insert[data-item="crowbar"] .room2-held-item{animation:none!important;left:45px!important;top:45px!important;transform:rotate(-86deg)!important;translate:0 -5px}
.room2-player.is-crowbar-lever[data-item="crowbar"] .room2-held-item{animation:none!important;left:44px!important;top:48px!important;transform:rotate(-71deg)!important;translate:5px -2px}
.room2-player.is-crowbar-hit[data-item="crowbar"] .room2-held-item{animation:r2Pass06CrowbarStrike .36s cubic-bezier(.18,.78,.25,1) 1!important;left:45px!important;top:52px!important}
@keyframes r2Pass06CrowbarStrike{0%{transform:rotate(-150deg);translate:-7px 5px}55%{transform:rotate(-70deg);translate:4px -5px}100%{transform:rotate(-85deg);translate:0 0}}

 
.r2-door-threat.is-winding-up .r2-door-threat-body{animation:r2ThreatWindup .43s cubic-bezier(.2,.8,.2,1) forwards;transform-origin:50% 88%}
.r2-door-threat.is-winding-up .r2-door-threat-hand{animation:r2ThreatArmWindup .43s cubic-bezier(.2,.8,.2,1) forwards}
.r2-door-threat.is-heavy-windup .r2-door-threat-body{filter:drop-shadow(0 -2px 8px rgba(255,232,178,.12))}
@keyframes r2ThreatWindup{0%{transform:translateY(0) rotate(0)}70%{transform:translateY(5px) rotate(-5deg)}100%{transform:translateY(3px) rotate(-3deg)}}
@keyframes r2ThreatArmWindup{0%{transform:rotate(-8deg) translateX(0)}100%{transform:rotate(-28deg) translate(-5px,-4px)}}

 
.room2-jinkson[data-action="door_hit"] .room2-jinkson-held-item{transition:none;filter:brightness(.9)}
.room2-jinkson[data-action="door_hit"][data-action-frame="1"] .room2-jinkson-held-item{translate:-3px -3px;rotate:-7deg}
.room2-jinkson[data-action="door_hit"][data-action-frame="2"] .room2-jinkson-held-item{translate:-5px -5px;rotate:-12deg}
.room2-jinkson[data-action="door_hit"][data-action-frame="3"] .room2-jinkson-held-item{translate:4px 4px;rotate:8deg}

 
.room2-player[data-action="startled"] .room2-held-item{filter:brightness(1.12)}
.room2-jinkson[data-action="lower_flashlight"] .room2-jinkson-held-item{animation:r2LowerFlashlight .34s ease-out forwards;transform-origin:left center}
@keyframes r2LowerFlashlight{to{translate:0 7px;rotate:18deg;opacity:.28}}
.room2-jinkson[data-action="bouquet_offer"] .room2-jinkson-held-item{opacity:.08}
.room2-player[data-action="receive_bouquet"] .room2-held-item{opacity:0!important}
.room2-jinkson.is-offering-bouquet .room2-jinkson-body,
.room2-player.is-receiving-bouquet .room2-player-sprite{animation:none!important}

 
.room2-world.is-cinematic .room2-viewport::before,
.room2-world.is-cinematic .room2-viewport::after{content:"";position:absolute;left:0;right:0;height:7.5%;background:rgba(3,4,7,.96);z-index:910;pointer-events:none;animation:r2CinemaBarIn .42s ease-out both}
.room2-world.is-cinematic .room2-viewport::before{top:0;transform-origin:top}
.room2-world.is-cinematic .room2-viewport::after{bottom:0;transform-origin:bottom}
@keyframes r2CinemaBarIn{from{scale:1 .05;opacity:0}to{scale:1 1;opacity:1}}

@media(prefers-reduced-motion:reduce){
  .r2-door-threat.is-winding-up .r2-door-threat-body,
  .r2-door-threat.is-winding-up .r2-door-threat-hand,
  .room2-player.is-crowbar-hit .room2-held-item,
  .room2-jinkson[data-action="lower_flashlight"] .room2-jinkson-held-item,
  .room2-world.is-cinematic .room2-viewport::before,
  .room2-world.is-cinematic .room2-viewport::after{animation:none!important}
}


 
.room2-viewport::after{content:"";position:absolute;inset:0;z-index:705;pointer-events:none;opacity:.18;background:repeating-linear-gradient(0deg,rgba(255,255,255,.012) 0 1px,transparent 1px 3px);mix-blend-mode:soft-light}
.room2-lighting{--beam-jitter:0px}
.room2-light-cone{margin-left:var(--beam-jitter);height:236px;background:linear-gradient(90deg,rgba(255,247,210,.34),rgba(255,235,170,.16) 34%,rgba(255,232,156,.065) 68%,transparent 100%);filter:blur(7px)}
.room2-light-core{position:absolute;left:var(--beam-x,50%);top:var(--beam-y,70%);width:calc(var(--beam-length,0px)*.78);height:68px;transform:translateY(-50%) rotate(var(--beam-angle,-90deg));transform-origin:0 50%;clip-path:polygon(0 43%,100% 18%,100% 82%,0 57%);background:linear-gradient(90deg,rgba(255,249,220,.42),rgba(255,240,185,.16) 55%,transparent);filter:blur(3px);mix-blend-mode:screen;opacity:var(--beam-core-opacity,0);margin-left:var(--beam-jitter);transition:opacity .07s}
.room2-lighting.is-flashlight-flicker .room2-light-cone,.room2-lighting.is-flashlight-flicker .room2-light-core{filter:blur(9px) brightness(.88)}
.room2-beam-dust{position:absolute;inset:0;opacity:0;transition:opacity .25s;pointer-events:none}.room2-beam-dust.is-visible{opacity:1}
.room2-beam-mote{position:absolute;left:0;top:0;width:2px;height:2px;border-radius:50%;background:#fff0c9;box-shadow:0 0 5px rgba(255,235,190,.42);will-change:transform,opacity;mix-blend-mode:screen}
.room2-world.is-powered .room2-beam-dust{opacity:.25}

.r2-door-dust{position:absolute;width:120px;height:54px;transform:translate(-50%,-50%);z-index:1575;pointer-events:none;background:radial-gradient(ellipse,rgba(194,163,119,.32) 0,rgba(126,97,66,.14) 38%,transparent 72%);filter:blur(8px);animation:r2DoorDustCloud .82s ease-out forwards}.r2-door-dust.is-heavy{width:190px;height:80px;animation-duration:1.18s}
@keyframes r2DoorDustCloud{0%{opacity:.2;transform:translate(-50%,-45%) scale(.55)}28%{opacity:.9}100%{opacity:0;transform:translate(-50%,-78%) scale(1.7)}}
.r2-entrance-door.is-crack-1{filter:brightness(.96)}.r2-entrance-door.is-crack-2{filter:brightness(.9)}.r2-entrance-door.is-crack-3{filter:brightness(.82) drop-shadow(0 3px 4px rgba(0,0,0,.55))}
.r2-entrance-door.is-crack-3::before{content:"";position:absolute;left:18px;right:18px;bottom:-8px;height:7px;background:repeating-linear-gradient(90deg,#5a3d29 0 6px,transparent 6px 13px);opacity:.8}

.r2-generator{overflow:visible}.r2-generator span{position:relative;z-index:2}.r2-generator.is-running::before{animation:r2GeneratorRotor .42s linear infinite}.r2-generator.is-starting{animation:r2GeneratorStart .12s linear 5}
@keyframes r2GeneratorRotor{to{transform:rotate(360deg)}}@keyframes r2GeneratorStart{25%{transform:translate(-2px,1px)}50%{transform:translate(2px,-1px)}75%{transform:translate(-1px,-1px)}}
.r2-generator-vfx{position:absolute;left:950px;top:510px;width:190px;height:150px;z-index:650;pointer-events:none;overflow:visible}.r2-generator-vfx .smoke{position:absolute;left:76px;top:24px;width:18px;height:18px;border-radius:50%;background:rgba(170,175,168,.18);filter:blur(4px);opacity:0}.r2-generator-vfx .smoke-b{left:92px;top:30px}.r2-generator-vfx .smoke-c{left:64px;top:34px}.r2-generator-vfx.is-running .smoke{animation:r2GeneratorSmoke 2.7s ease-out infinite}.r2-generator-vfx.is-running .smoke-b{animation-delay:.8s}.r2-generator-vfx.is-running .smoke-c{animation-delay:1.55s}
@keyframes r2GeneratorSmoke{0%{opacity:0;transform:translate(0,10px) scale(.45)}18%{opacity:.28}100%{opacity:0;transform:translate(12px,-62px) scale(2.2)}}
.r2-generator-vfx .spark{position:absolute;left:140px;top:56px;width:3px;height:3px;background:#fff3af;box-shadow:0 0 8px 3px rgba(255,195,92,.85);opacity:0}.r2-generator-vfx .spark-b{left:132px;top:70px}.r2-generator-vfx .spark-c{left:149px;top:78px}.r2-generator-vfx.is-sparking .spark{animation:r2SparkBurst .28s steps(2,end) forwards}.r2-generator-vfx.is-sparking .spark-b{animation-delay:.05s}.r2-generator-vfx.is-sparking .spark-c{animation-delay:.11s}
@keyframes r2SparkBurst{0%{opacity:0;transform:translate(0,0) scale(.2)}18%{opacity:1}100%{opacity:0;transform:translate(22px,-26px) scale(1.3)}}

.r2-panel.is-solved{background:#1f3027!important;box-shadow:inset 0 0 0 3px #56705c,0 0 22px rgba(105,198,129,.25)!important;color:#9dd2aa!important}.r2-panel.is-solved::after{content:"✓";position:absolute;right:5px;top:3px;color:#8ed39e;font-size:11px}
.room2-modal-card.is-wrong{animation:r2PuzzleWrong .34s linear;box-shadow:0 26px 70px rgba(0,0,0,.6),0 0 0 1px rgba(208,62,75,.35)}.room2-modal-card.is-correct{animation:r2PuzzleCorrect .42s ease-out;box-shadow:0 0 42px rgba(100,196,125,.19),0 26px 70px rgba(0,0,0,.6)}
@keyframes r2PuzzleWrong{25%{transform:translateX(-7px)}50%{transform:translateX(6px)}75%{transform:translateX(-3px)}}@keyframes r2PuzzleCorrect{0%{transform:scale(.985)}55%{transform:scale(1.008)}100%{transform:scale(1)}}

.room2-world.is-powered .r2-room-lamp::before{background:#3a3329}.room2-world.is-powered .r2-room-lamp span{animation:r2PoweredLampBreathe 4.8s ease-in-out infinite}.room2-world.is-powered .r2-room-lamp.lamp-b span{animation-delay:-1.3s}.room2-world.is-powered .r2-room-lamp.lamp-c span{animation-delay:-2.6s}.room2-world.is-powered .r2-room-lamp.lamp-d span{animation-delay:-3.7s}
@keyframes r2PoweredLampBreathe{0%,92%,100%{filter:brightness(1)}94%{filter:brightness(.55)}96%{filter:brightness(1.2)}}

.room2-chase-pressure.is-active::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(80,0,10,.055),transparent 20%,transparent 80%,rgba(80,0,10,.055));animation:r2ChasePulse .95s ease-in-out infinite;opacity:var(--chase-pressure,.3)}
@keyframes r2ChasePulse{50%{transform:scale(1.012);filter:brightness(1.15)}}

@media(prefers-reduced-motion:reduce){.room2-light-core,.room2-beam-mote,.r2-door-dust,.r2-generator-vfx .smoke,.r2-generator-vfx .spark,.room2-chase-pressure.is-active::after{animation:none!important}.room2-beam-dust{display:none}}



.r2-generator-room .r2-generator{left:55px;top:85px}
.r2-generator-room .r2-red-box{left:135px;top:250px}
.r2-generator-room .r2-breaker{left:215px;top:34px}
.r2-generator-room .r2-generator-vfx{left:43px;top:54px}







.r2-architecture{position:absolute;inset:0;pointer-events:none;z-index:118}
.r2-wall-moulding{position:absolute;background:repeating-linear-gradient(90deg,#5a4938 0 34px,#3b3028 34px 37px);opacity:.72;box-shadow:0 4px 0 #171719,0 7px 8px rgba(0,0,0,.32)}
.r2-wall-moulding.north{left:144px;top:118px;width:710px;height:9px}.r2-wall-moulding.west{left:145px;top:142px;width:9px;height:1345px;background:repeating-linear-gradient(0deg,#5a4938 0 34px,#3b3028 34px 37px)}.r2-wall-moulding.east{left:844px;top:142px;width:9px;height:1345px;background:repeating-linear-gradient(0deg,#5a4938 0 34px,#3b3028 34px 37px)}
.r2-column{position:absolute;width:34px;height:82px;background:linear-gradient(90deg,#1b1a1b,#4b4037 16%,#5d4f42 50%,#3e352f 84%,#171719);box-shadow:0 11px 13px rgba(0,0,0,.42),inset 0 -8px 0 #2a2522}.r2-column::before{content:"";position:absolute;left:-7px;right:-7px;top:-9px;height:13px;background:#5b4c3d;box-shadow:inset 0 -4px #29231f}.r2-column::after{content:"";position:absolute;left:-9px;right:-9px;bottom:-7px;height:13px;background:#3f342c}.r2-column.column-a{left:139px;top:500px}.r2-column.column-b{left:827px;top:930px}
.r2-ceiling-shadow{position:absolute;left:142px;width:712px;height:62px;pointer-events:none}.r2-ceiling-shadow.north{top:128px;background:linear-gradient(180deg,rgba(0,0,0,.64),rgba(0,0,0,.08),transparent)}.r2-ceiling-shadow.south{top:1430px;background:linear-gradient(0deg,rgba(0,0,0,.66),rgba(0,0,0,.08),transparent)}

 
.r2-wall-shelf{position:absolute;left:496px;top:245px;width:118px;height:27px;background:#3b2b22;box-shadow:0 7px 9px rgba(0,0,0,.35),inset 0 -5px #221914}.r2-wall-shelf::before{content:"";position:absolute;left:7px;right:7px;bottom:-7px;height:7px;background:#221914}.r2-wall-shelf i,.r2-wall-shelf b,.r2-wall-shelf em{position:absolute;bottom:8px;width:10px;border-radius:1px 1px 0 0;box-shadow:2px 0 rgba(0,0,0,.22)}.r2-wall-shelf i{left:18px;height:25px;background:#5d392f}.r2-wall-shelf b{left:32px;height:20px;background:#2b4a43}.r2-wall-shelf em{left:46px;height:28px;background:#4c405a;box-shadow:16px 4px 0 -1px #6b4b2d,31px 1px 0 -2px #34434d,47px 6px 0 -1px #56353b}
.r2-storage-stack{position:absolute;left:325px;top:1325px;width:95px;height:62px}.r2-storage-stack::before,.r2-storage-stack i,.r2-storage-stack b{content:"";position:absolute;background:#59402d;border:3px solid #2e2119;box-shadow:0 5px 6px rgba(0,0,0,.28)}.r2-storage-stack::before{left:0;bottom:0;width:54px;height:34px}.r2-storage-stack i{right:0;bottom:5px;width:42px;height:29px}.r2-storage-stack b{left:31px;bottom:30px;width:47px;height:27px;background:#47382c}.r2-storage-stack::after{content:"FRAGILE";position:absolute;left:8px;bottom:13px;font:900 5px/1 Inter,sans-serif;letter-spacing:.11em;color:#a48861;transform:rotate(-2deg)}
.r2-side-table{position:absolute;left:658px;top:1060px;width:60px;height:55px;background:#3f2d22;border-radius:50% 50% 7px 7px;box-shadow:0 8px 9px rgba(0,0,0,.28),inset 0 -9px #2b211b}.r2-side-table::before{content:"";position:absolute;left:8px;right:8px;top:8px;height:7px;border-radius:50%;background:#71523a}.r2-side-table::after{content:"";position:absolute;left:11px;bottom:-19px;width:8px;height:27px;background:#2a201a;box-shadow:30px 0 #2a201a}.r2-side-table i{position:absolute;left:23px;top:-22px;width:15px;height:23px;background:#2b3334;border-radius:8px 8px 3px 3px;box-shadow:0 0 0 3px #171b1c}
.r2-old-floor-lamp{position:absolute;left:750px;top:350px;width:48px;height:115px}.r2-old-floor-lamp::before{content:"";position:absolute;left:20px;top:24px;width:6px;height:78px;background:#55473a}.r2-old-floor-lamp::after{content:"";position:absolute;left:6px;top:0;width:34px;height:31px;clip-path:polygon(18% 0,82% 0,100% 100%,0 100%);background:#4a3028;box-shadow:inset 0 0 0 3px rgba(23,17,15,.45)}.r2-old-floor-lamp i{position:absolute;left:7px;bottom:1px;width:34px;height:8px;border-radius:50%;background:#342920}
.r2-flower-pot{position:absolute;left:281px;top:337px;width:39px;height:53px}.r2-flower-pot::before{content:"";position:absolute;left:8px;bottom:0;width:23px;height:24px;background:#59392e;clip-path:polygon(0 0,100% 0,84% 100%,16% 100%)}.r2-flower-pot i{position:absolute;left:17px;bottom:19px;width:5px;height:26px;background:#334535;box-shadow:-8px -8px 0 -1px #425a42,8px -11px 0 -1px #304c37,-5px -21px 0 -1px #3c533b,7px -24px 0 -1px #4a6046;transform:rotate(-4deg)}

 
.r2-cabinet,.r2-desk,.r2-crates,.r2-bookshelf,.r2-sideboard{border-top:5px solid rgba(137,103,72,.2)}
.r2-cabinet{background:linear-gradient(180deg,#5a4030 0 18px,#39291f 18px 100%)}.r2-desk{background:linear-gradient(180deg,#6a4a33 0 19px,#3c2c22 19px 100%)}.r2-crates{background:linear-gradient(180deg,rgba(121,87,53,.35),transparent 17px),repeating-linear-gradient(0deg,#4b3828 0 20px,#3c2e23 20px 39px)}.r2-bookshelf{background:linear-gradient(90deg,#281b14,#3d291d 18%,#3b291e 82%,#241912)}
.room2-world.is-powered .r2-cabinet,.room2-world.is-powered .r2-desk,.room2-world.is-powered .r2-crates,.room2-world.is-powered .r2-bookshelf{filter:brightness(1.12) saturate(1.04)}

 
.r2-door-debris-field{position:absolute;left:425px;top:1507px;width:150px;height:53px;z-index:1544;pointer-events:none;opacity:0;transition:opacity .25s}.r2-door-debris-field i{position:absolute;width:31px;height:8px;background:#4d3223;border:2px solid #2b1c15;box-shadow:0 4px 4px rgba(0,0,0,.35);transform-origin:center}.r2-door-debris-field i:nth-child(1){left:8px;top:8px;transform:rotate(14deg)}.r2-door-debris-field i:nth-child(2){left:47px;top:17px;width:19px;transform:rotate(-22deg)}.r2-door-debris-field i:nth-child(3){left:77px;top:4px;width:38px;transform:rotate(8deg)}.r2-door-debris-field i:nth-child(4){left:111px;top:24px;width:23px;transform:rotate(-11deg)}.r2-door-debris-field i:nth-child(5){left:24px;top:34px;width:15px;transform:rotate(37deg)}.r2-door-debris-field i:nth-child(6){left:70px;top:35px;width:19px;transform:rotate(-31deg)}.r2-door-debris-field i:nth-child(7){left:124px;top:5px;width:11px;transform:rotate(46deg)}
.r2-door-debris-field.damage-1{opacity:.32}.r2-door-debris-field.damage-1 i:nth-child(n+3){opacity:0}.r2-door-debris-field.damage-2{opacity:.68}.r2-door-debris-field.damage-2 i:nth-child(n+6){opacity:0}.r2-door-debris-field.damage-3,.r2-door-debris-field.is-broken{opacity:1}.r2-door-debris-field.is-broken{filter:brightness(1.1)}
.r2-entrance-door.is-crack-1::before,.r2-entrance-door.is-crack-2::before,.r2-entrance-door.is-crack-3::before{content:"";position:absolute;left:50%;top:4px;width:3px;height:calc(100% - 8px);background:#120c0a;transform-origin:top;box-shadow:7px 10px 0 -1px #130c09,-8px 24px 0 -1px #130c09;opacity:.62}.r2-entrance-door.is-crack-1::before{transform:rotate(4deg) scaleY(.55)}.r2-entrance-door.is-crack-2::before{transform:rotate(7deg) scaleY(.82);opacity:.78}.r2-entrance-door.is-crack-3::before{transform:rotate(10deg) scaleY(1);opacity:1}

 
.r2-symbol{background:none!important;font-size:0;width:58px;height:58px;color:transparent;filter:none;opacity:.13;transition:opacity .18s,filter .18s,transform .22s}
.r2-symbol i,.r2-symbol::before,.r2-symbol::after{content:"";position:absolute;display:block;box-sizing:border-box}
.r2-symbol i{left:50%;top:50%;transform:translate(-50%,-50%)}
.r2-symbol.rune-moon i{width:34px;height:34px;border:5px solid #b96662;border-radius:50%}.r2-symbol.rune-moon i::after{content:"";position:absolute;width:29px;height:29px;left:9px;top:-3px;border-radius:50%;background:#252323}
.r2-symbol.rune-eye i{width:42px;height:25px;border:4px solid #b96662;border-radius:70% 25% 70% 25%;transform:translate(-50%,-50%) rotate(45deg)}.r2-symbol.rune-eye i::after{content:"";position:absolute;left:11px;top:3px;width:10px;height:10px;border:4px solid #b96662;border-radius:50%;background:#292323}
.r2-symbol.rune-star i{width:38px;height:38px;background:#b96662;clip-path:polygon(50% 0,61% 35%,100% 50%,61% 62%,50% 100%,39% 62%,0 50%,39% 35%)}.r2-symbol.rune-star i::after{content:"";position:absolute;inset:8px;background:#292323;clip-path:inherit}
.r2-symbol.rune-diamond i{width:31px;height:31px;border:5px solid #b96662;transform:translate(-50%,-50%) rotate(45deg)}.r2-symbol.rune-diamond i::after{content:"";position:absolute;left:7px;top:7px;width:7px;height:7px;background:#b96662}
.r2-symbol.is-lit{opacity:.82;filter:drop-shadow(0 0 5px rgba(202,107,101,.8)) drop-shadow(0 0 16px rgba(187,73,72,.45));transform:translate(-50%,-50%) scale(1.08)}.r2-symbol.is-discovered{opacity:.45}.r2-symbol.is-lit.is-discovered{opacity:1}.r2-symbol.is-discovered small{bottom:-7px;color:#d8b6a5;font-size:8px;text-shadow:0 2px 4px #000}
.r2-symbol-panel{overflow:visible}.r2-symbol-panel>span{position:absolute;left:50%;top:9px;transform:translateX(-50%)}.r2-symbol-panel>i{position:absolute;top:36px;width:8px;height:8px;border-radius:50%;background:#3b3431;box-shadow:inset 0 0 0 2px #171819;transition:background .2s,box-shadow .2s}.r2-symbol-panel>i:nth-of-type(1){left:14px}.r2-symbol-panel>i:nth-of-type(2){left:28px}.r2-symbol-panel>i:nth-of-type(3){left:42px}.r2-symbol-panel>i:nth-of-type(4){left:56px}.r2-symbol-panel>i.is-found{background:#b96662;box-shadow:0 0 8px rgba(190,94,91,.65),inset 0 0 0 1px #f1bbb4}.r2-symbol-panel.is-solved>i{background:#7fa16f;box-shadow:0 0 8px rgba(127,161,111,.55)}

 
.r2-secret-wall{overflow:visible;background:linear-gradient(90deg,#2b1d16,#3f2b1f 18%,#36241c 82%,#211713);box-shadow:inset 0 0 0 7px #4d3526,0 12px 18px rgba(0,0,0,.42)}
.r2-secret-wall::before{content:"";position:absolute;left:10px;right:10px;top:15px;bottom:21px;background:repeating-linear-gradient(0deg,transparent 0 34px,#1f1511 34px 40px);box-shadow:inset 0 0 0 2px #201510}.r2-secret-wall::after{content:"";position:absolute;left:8px;right:8px;bottom:8px;height:12px;background:#5b3e2a;box-shadow:inset 0 -4px #2a1b14}
.r2-secret-books{position:absolute;left:15px;right:15px;top:23px;height:127px;z-index:2;background:repeating-linear-gradient(90deg,#513129 0 7px,#283a35 7px 13px,#5c4730 13px 19px,#332a3c 19px 25px,#693c31 25px 31px);opacity:.85}.r2-secret-books i,.r2-secret-books b,.r2-secret-books em,.r2-secret-books u{position:absolute;height:5px;background:#856345;left:-3px;right:-3px;text-decoration:none}.r2-secret-books i{top:31px}.r2-secret-books b{top:70px}.r2-secret-books em{top:107px}.r2-secret-books u{display:none}.r2-secret-plinth{position:absolute;left:3px;right:3px;bottom:-8px;height:12px;background:#302119;z-index:3;box-shadow:0 6px 6px rgba(0,0,0,.35)}
.r2-secret-wall.is-half-open,.r2-secret-wall.is-open{box-shadow:inset 0 0 0 7px #4d3526,-25px 8px 24px rgba(0,0,0,.55)}

 
.r2-generator-gauges{position:absolute;left:102px;top:25px;width:94px;height:48px;z-index:2;background:#262b2d;box-shadow:inset 0 0 0 4px #4a5050}.r2-generator-gauges i,.r2-generator-gauges b{position:absolute;top:9px;width:30px;height:30px;border-radius:50%;background:radial-gradient(circle,#111416 0 45%,#b6aa82 46% 49%,#272b2c 50%);box-shadow:inset 0 0 0 3px #15191a}.r2-generator-gauges i{left:10px}.r2-generator-gauges b{right:10px}.r2-generator-gauges em{position:absolute;left:45px;bottom:6px;width:5px;height:5px;border-radius:50%;background:#7b292d;box-shadow:0 0 0 2px #161819}.r2-generator-room.is-visible .r2-generator-gauges em{animation:r2GaugeBlink 2.3s steps(2,end) infinite}.room2-world.is-powered .r2-generator-gauges em{background:#7ea06b;box-shadow:0 0 7px rgba(126,160,107,.45)}@keyframes r2GaugeBlink{50%{filter:brightness(1.7)}}
.r2-generator-sign{position:absolute;left:28px;top:23px;color:#8e948f;font:900 6px/1 Inter,sans-serif;letter-spacing:.12em;writing-mode:vertical-rl;opacity:.65}

 
.r2-hall-light-pool{position:absolute;left:438px;width:325px;height:245px;z-index:30;opacity:0;pointer-events:none;transition:opacity .75s ease;background:radial-gradient(ellipse at 50% 35%,rgba(255,219,155,.19) 0 16%,rgba(225,182,111,.09) 30%,rgba(86,58,38,.035) 53%,transparent 72%);mix-blend-mode:screen;filter:blur(1px)}.r2-hall-light-pool::after{content:"";position:absolute;left:35px;right:35px;top:38px;height:165px;background:linear-gradient(180deg,rgba(244,211,147,.065),transparent 78%);clip-path:polygon(38% 0,62% 0,100% 100%,0 100%)}.r2-hall-light-pool.is-on{opacity:1}.r2-hall-light-pool.pool-1{top:1200px}.r2-hall-light-pool.pool-2{top:1000px}.r2-hall-light-pool.pool-3{top:800px}.r2-hall-light-pool.pool-4{top:600px}.r2-hall-light-pool.pool-5{top:400px}.r2-hall-light-pool.pool-6{top:200px}
.r2-hall-arch{position:absolute;left:466px;top:88px;width:268px;height:132px;border:18px solid #1e1f23;border-bottom:0;border-radius:136px 136px 0 0;z-index:225;box-shadow:inset 0 0 0 4px #444047,0 14px 28px rgba(0,0,0,.6)}.r2-hall-arch i{position:absolute;left:30px;right:30px;bottom:-22px;height:22px;background:#141519;box-shadow:0 6px 12px rgba(0,0,0,.5)}
.r2-hall-mist{position:absolute;left:465px;width:270px;height:92px;border-radius:50%;background:radial-gradient(ellipse,rgba(159,151,143,.055),transparent 70%);filter:blur(13px);z-index:42;pointer-events:none;animation:r2HallMist 8s ease-in-out infinite alternate}.r2-hall-mist.mist-a{top:560px}.r2-hall-mist.mist-b{top:1010px;animation-delay:-4s}@keyframes r2HallMist{to{transform:translateX(19px) scaleX(1.12);opacity:.45}}
.r2-hall-end{display:flex;flex-direction:column;gap:8px;align-items:center}.r2-hall-end small{font-size:7px;letter-spacing:.22em;color:rgba(189,180,158,.22)}.r2-hall-end strong{font-size:18px;letter-spacing:.16em;color:inherit}.room2-world.is-hall-lit .r2-hall-end small{color:rgba(222,210,182,.48)}
.r2-hall-picture,.r2-hall-console,.r2-hall-trim{transition:filter .8s,opacity .8s}.room2-world.is-hall-silent .r2-hall-picture,.room2-world.is-hall-silent .r2-hall-console{filter:brightness(.42);opacity:.72}.room2-world.is-hall-lit .r2-hall-picture,.room2-world.is-hall-lit .r2-hall-console{filter:brightness(.95);opacity:1}

@media(max-width:700px){.r2-hall-mist,.r2-ceiling-shadow{display:none}.r2-symbol{filter:none}}
 
.r2-hall-lamp.lamp-1,.r2-hall-lamp.lamp-3,.r2-hall-lamp.lamp-5{left:775px;transform:scaleX(-1)}
.r2-hall-lamp.lamp-2,.r2-hall-lamp.lamp-4,.r2-hall-lamp.lamp-6{left:396px;transform:none}







 
.r2-photo{overflow:visible;transform-origin:50% 90%}
.r2-photo .r2-photo-read-dot{position:absolute;right:-7px;top:-7px;width:8px;height:8px;border-radius:50%;background:#322d28;box-shadow:0 0 0 2px #161515;opacity:.55}
.r2-photo .r2-photo-reveal{position:absolute;right:3px;bottom:3px;min-width:16px;height:16px;display:grid;place-items:center;background:#c7b99e;color:#2c2823;font:900 10px/1 Inter,sans-serif;transform:rotate(-5deg);opacity:0;filter:blur(2px);transition:opacity .2s,filter .2s}
.r2-photo.is-read .r2-photo-read-dot{background:#c39c59;box-shadow:0 0 8px rgba(195,156,89,.65),0 0 0 2px #2b241b}
.r2-photo.is-read .r2-photo-reveal{opacity:.78;filter:none}
.r2-photo.is-flipping{animation:r2WorldPhotoFlip .34s ease both}
@keyframes r2WorldPhotoFlip{0%{filter:brightness(1);transform:var(--photo-rot,rotate(0)) scale(1)}45%{filter:brightness(1.25);transform:scaleX(.18) scaleY(1.08)}100%{filter:brightness(1);transform:scale(1)}}

.r2-photo-panel{display:grid!important;grid-template-columns:repeat(4,1fr);align-content:end;gap:2px;padding:7px 7px 8px!important;box-sizing:border-box;overflow:visible}
.r2-photo-panel>span{position:absolute;left:8px;top:7px;color:#8e9598;font-size:6px;letter-spacing:.18em}
.r2-photo-panel>[data-code-slot]{height:18px;display:grid;place-items:center;background:#101214;color:#4a4e4c;font:900 9px/1 ui-monospace,monospace;box-shadow:inset 0 0 0 1px #41474a;border-radius:1px;font-style:normal;transition:color .2s,box-shadow .2s,background .2s}
.r2-photo-panel>[data-code-slot].is-known{color:#d1b16d;background:#171816;box-shadow:inset 0 0 0 1px #685d45,0 0 7px rgba(209,177,109,.18)}
.r2-photo-panel .r2-code-ready-led{position:absolute;right:7px;top:7px;width:6px;height:6px;border-radius:50%;background:#4a2427;box-shadow:0 0 0 1px #171719}
.r2-photo-panel.is-ready .r2-code-ready-led{background:#c49750;box-shadow:0 0 8px rgba(196,151,80,.6)}
.r2-photo-panel.is-solved .r2-code-ready-led{background:#72976a;box-shadow:0 0 9px rgba(114,151,106,.6)}
.r2-photo-panel.is-wrong{animation:r2PhysicalWrong .36s ease}

 
.r2-clue-plaque{overflow:visible;transition:filter .25s,box-shadow .25s}
.r2-clue-plaque>span{display:flex;align-items:center;justify-content:center;gap:6px;height:100%;filter:blur(.45px);opacity:.62;transition:filter .25s,opacity .25s}
.r2-clue-plaque>span i{font-style:normal;font-size:7px;color:#bca66f;text-shadow:0 1px #251f18}
.r2-clue-plaque.is-read{filter:brightness(1.16);box-shadow:inset 0 0 0 3px #66583e,0 0 12px rgba(194,165,104,.16),0 8px 12px rgba(0,0,0,.32)}
.r2-clue-plaque.is-read>span{filter:none;opacity:1}
.r2-switch-panel{overflow:visible;padding:0!important}
.r2-switch-panel>span{position:absolute;left:8px;right:8px;top:7px;text-align:center;color:#8f9492;font-size:5px;letter-spacing:.08em}
.r2-switch-panel>[data-world-switch]{position:absolute;top:25px;width:8px;height:24px;background:#111415;box-shadow:inset 0 0 0 1px #565c5c;border-radius:2px}
.r2-switch-panel>[data-world-switch]::after{content:"";position:absolute;left:1px;top:8px;width:6px;height:13px;border-radius:1px;background:#7b7f79;transform-origin:50% 90%;transform:rotate(17deg);transition:transform .18s cubic-bezier(.2,.8,.3,1.4),background .18s,box-shadow .18s}
.r2-switch-panel>[data-world-switch="1"]{left:10px}.r2-switch-panel>[data-world-switch="2"]{left:28px}.r2-switch-panel>[data-world-switch="3"]{left:46px}.r2-switch-panel>[data-world-switch="4"]{left:64px}
.r2-switch-panel>[data-world-switch].is-on::after{transform:rotate(-25deg) translateY(-2px);background:#d1c4a0;box-shadow:0 0 5px rgba(209,196,160,.28)}
.r2-switch-panel.is-armed{box-shadow:inset 0 0 0 3px #5a5d5e,0 0 12px rgba(197,169,100,.13),0 8px 12px rgba(0,0,0,.32)}
.r2-switch-panel.is-wrong{animation:r2PhysicalWrong .42s ease}
.r2-switch-panel.is-solved>[data-world-switch]::after{background:#9fc38f;box-shadow:0 0 7px rgba(159,195,143,.38)}
@keyframes r2PhysicalWrong{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}55%{transform:translateX(4px)}78%{transform:translateX(-2px)}}

 
.r2-code-entry{display:grid;grid-template-columns:repeat(4,44px);justify-content:center;gap:8px;margin:16px 0}
.r2-clock-entry{grid-template-columns:44px 44px 16px 44px 44px;align-items:center}
.r2-clock-entry b{display:grid;place-items:center;color:#d7cda9;font:900 24px/1 ui-monospace,monospace}
.r2-code-entry i{height:50px;display:grid;place-items:center;background:#0f1112;color:#ddc17f;font:900 27px/1 ui-monospace,monospace;font-style:normal;border:3px solid #404547;box-shadow:inset 0 0 15px rgba(0,0,0,.8),0 7px 13px rgba(0,0,0,.24)}
.r2-code-keypad{display:grid;grid-template-columns:repeat(3,minmax(54px,1fr));gap:7px;max-width:270px;margin:0 auto 12px}
.r2-code-keypad button{height:42px;border:1px solid #555b5b;background:linear-gradient(#303536,#222627);color:#d8d3c7;font-weight:900;box-shadow:inset 0 1px rgba(255,255,255,.05),0 4px 7px rgba(0,0,0,.24)}
.r2-code-keypad button:active{transform:translateY(2px);box-shadow:inset 0 2px 5px rgba(0,0,0,.5)}
.r2-switch-row button{position:relative;display:grid;place-items:end center;height:86px;padding-bottom:9px!important;background:#222627!important;border:2px solid #505657!important;color:#cfc8b8!important;overflow:hidden}
.r2-switch-row button i{position:absolute;left:50%;top:13px;width:14px;height:48px;transform:translateX(-50%);background:#121515;box-shadow:inset 0 0 0 2px #525858;border-radius:2px}
.r2-switch-row button i::after{content:"";position:absolute;left:3px;top:16px;width:8px;height:24px;background:#888b83;transform-origin:50% 90%;transform:rotate(18deg);transition:transform .18s,background .18s}
.r2-switch-row button.is-on i::after{transform:rotate(-28deg) translateY(-4px);background:#d2c7a9}
.r2-switch-row button:disabled{opacity:1}
.r2-clue-sequence{display:flex;align-items:center;justify-content:center;gap:12px;font-size:22px;font-weight:900;color:#d2b56f}.r2-clue-sequence i{font-style:normal;padding:6px 8px;background:#4a3d2d;box-shadow:inset 0 0 0 2px #66563e}.r2-clue-sequence b{color:#716452;font-size:14px}

 
.r2-secret-floor-track{position:absolute;left:790px;top:785px;width:185px;height:18px;z-index:8;opacity:.18;transition:opacity .4s;pointer-events:none}.r2-secret-floor-track::before,.r2-secret-floor-track::after{content:"";position:absolute;left:0;right:0;height:2px;background:#0e0c0b;box-shadow:0 1px rgba(113,87,60,.23)}.r2-secret-floor-track::before{top:4px}.r2-secret-floor-track::after{bottom:4px}.r2-secret-floor-track i,.r2-secret-floor-track b{position:absolute;top:2px;width:7px;height:14px;border-radius:50%;background:#15120f}.r2-secret-floor-track i{left:28px}.r2-secret-floor-track b{right:28px}
.r2-secret-wall.is-half-open~.r2-secret-floor-track,.r2-secret-wall.is-open~.r2-secret-floor-track{opacity:.62}
.r2-secret-dust{position:absolute;left:790px;top:575px;width:220px;height:235px;z-index:760;pointer-events:none;opacity:0}
.r2-secret-dust i{position:absolute;left:90px;top:150px;width:20px;height:20px;border-radius:50%;background:rgba(151,133,110,.16);filter:blur(3px);opacity:0}
.r2-secret-dust.is-primed{opacity:1}.r2-secret-dust.is-bursting i{animation:r2SecretDust 1.35s ease-out forwards}.r2-secret-dust.is-bursting i:nth-child(2){animation-delay:.06s;--dx:-70px;--dy:-45px}.r2-secret-dust.is-bursting i:nth-child(3){animation-delay:.11s;--dx:80px;--dy:-60px}.r2-secret-dust.is-bursting i:nth-child(4){animation-delay:.03s;--dx:-55px;--dy:35px}.r2-secret-dust.is-bursting i:nth-child(5){animation-delay:.14s;--dx:62px;--dy:25px}.r2-secret-dust.is-bursting i:nth-child(6){animation-delay:.18s;--dx:-25px;--dy:-95px}.r2-secret-dust.is-bursting i:nth-child(7){animation-delay:.09s;--dx:25px;--dy:-75px}
@keyframes r2SecretDust{0%{opacity:0;transform:translate(0,0) scale(.5)}18%{opacity:.65}100%{opacity:0;transform:translate(var(--dx,42px),var(--dy,-65px)) scale(2.3)}}
.room2-world.is-secret-cinematic .room2-vignette{box-shadow:inset 0 0 145px 64px rgba(0,0,0,.82)}
.room2-world.is-secret-cinematic .r2-main-floor{animation:r2MechanismRumble .13s linear 5}
@keyframes r2MechanismRumble{0%,100%{filter:none}50%{filter:brightness(.94)}}

 
.r2-red-box .r2-red-box-door{position:absolute;inset:5px;background:linear-gradient(135deg,#8d2732,#631823);box-shadow:inset 0 0 0 2px #4e151b;transform-origin:left center;transition:transform .45s cubic-bezier(.2,.8,.2,1),filter .2s;z-index:2;pointer-events:none}
.r2-red-box>span{position:relative;z-index:4}.r2-red-box .r2-red-box-fuse{position:absolute;left:29px;top:28px;color:#e0c67b;font-size:6px;letter-spacing:.08em;opacity:0;z-index:1}.r2-red-box.is-door-open .r2-red-box-door,.r2-red-box.is-open .r2-red-box-door{transform:perspective(100px) rotateY(-78deg);filter:brightness(.7)}.r2-red-box.is-door-open .r2-red-box-fuse,.r2-red-box.is-open .r2-red-box-fuse{opacity:1}
.r2-generator .r2-fuse-slot{position:absolute;right:14px;top:32px;width:16px;height:34px;background:#111516;box-shadow:inset 0 0 0 2px #4d5554;z-index:4}.r2-generator .r2-fuse-slot::after{content:"";position:absolute;left:5px;top:6px;width:6px;height:22px;background:#242929;transition:background .25s,box-shadow .25s}.r2-generator.has-fuse .r2-fuse-slot::after{background:#cab06c;box-shadow:0 0 7px rgba(202,176,108,.4)}.r2-generator.is-installing-fuse .r2-fuse-slot{animation:r2FuseSlotPulse .18s linear 3}.r2-generator .r2-generator-status{position:absolute;left:14px;bottom:10px;color:#777f7d;font-size:6px;letter-spacing:.1em}.r2-generator.is-running .r2-generator-status{color:#8fb284;text-shadow:0 0 5px rgba(143,178,132,.35)}
.r2-breaker .r2-breaker-led{position:absolute;right:5px;bottom:6px;width:6px;height:6px;border-radius:50%;background:#762d31;box-shadow:0 0 0 1px #121414}.r2-breaker.is-on .r2-breaker-led{background:#73a16b;box-shadow:0 0 7px rgba(115,161,107,.55)}
.room2-world.is-generator-cinematic .room2-vignette{box-shadow:inset 0 0 140px 58px rgba(0,0,0,.78)}
.room2-world.is-generator-cinematic .r2-generator-room{filter:brightness(1.05)}
@keyframes r2FuseSlotPulse{50%{filter:brightness(1.5)}}

 
.room2-world.is-ambient-creak .r2-old-floor-lamp{animation:r2AmbientLean .38s ease}.room2-world.is-ambient-creak .r2-curtain{filter:brightness(.94)}
@keyframes r2AmbientLean{0%,100%{transform:rotate(0)}50%{transform:rotate(-1.2deg)}}

@media(prefers-reduced-motion:reduce){.r2-photo.is-flipping,.r2-secret-dust.is-bursting i,.room2-world.is-secret-cinematic .r2-main-floor,.room2-world.is-ambient-creak .r2-old-floor-lamp{animation:none!important}}


 
.r2-room-scenery{z-index:126}
.r2-window{z-index:133;overflow:visible;box-shadow:inset 0 0 0 3px #75614b,0 6px 0 #2f2822,0 14px 18px rgba(0,0,0,.34)}
.r2-window i{overflow:visible}
.r2-window i::after{content:"";position:absolute;left:14px;right:14px;top:10px;height:12px;background:linear-gradient(180deg,rgba(200,218,236,.22),rgba(200,218,236,0));filter:blur(2px);opacity:.55}
.r2-window b{bottom:-6px;height:8px;background:linear-gradient(180deg,#5b4b3e,#302821);box-shadow:0 3px 5px rgba(0,0,0,.32)}
.r2-window-west{top:126px;transform:translateY(-10px)}
.r2-curtain{top:112px;height:146px;z-index:132}
.r2-window-cast{position:absolute;pointer-events:none;z-index:14;opacity:.12;mix-blend-mode:screen;filter:blur(2px)}
.r2-window-cast-west{left:138px;top:212px;width:168px;height:216px;background:linear-gradient(180deg,rgba(168,190,217,.13),rgba(168,190,217,.05) 38%,rgba(168,190,217,0) 78%);clip-path:polygon(29% 0,70% 0,100% 100%,0 100%)}
.room2-world.is-powered .r2-window-cast{opacity:.045}

.r2-breaker{left:1108px;top:418px;width:66px;height:116px;border:4px solid #5a5f60;border-radius:3px;background:linear-gradient(180deg,#2e3337,#212629);box-shadow:inset 0 0 0 2px #131618,0 10px 16px rgba(0,0,0,.42);color:#d7cfbf;overflow:visible}
.r2-breaker::before{content:"MAIN";position:absolute;left:0;right:0;top:9px;text-align:center;font-size:7px;font-weight:900;letter-spacing:.18em;color:#8f9797}
.r2-breaker::after{left:23px;top:28px;width:16px;height:50px;border-radius:9px;background:linear-gradient(180deg,#d4d1c5,#8f948c);box-shadow:inset 0 0 0 2px rgba(0,0,0,.18),0 3px 4px rgba(0,0,0,.3);transform-origin:50% 8px;transform:rotate(18deg)}
.r2-breaker>span{position:absolute;left:0;right:0;bottom:14px;text-align:center;font-size:10px;font-weight:900;letter-spacing:.12em}
.r2-breaker .r2-breaker-led{right:8px;top:9px;bottom:auto;width:8px;height:8px}
.r2-breaker.is-on::after{transform:rotate(-34deg);background:linear-gradient(180deg,#ede7d7,#bcc1b8)}
.r2-breaker.is-pulling::after{transform:rotate(-4deg) translateY(6px);background:linear-gradient(180deg,#dcd7c7,#a8ac9e)}
.r2-breaker.is-on span{color:#7fda8e;text-shadow:0 0 5px rgba(127,218,142,.32)}

.room2-held-item,.room2-jinkson-held-item{transform-origin:10% 50%;box-shadow:0 1px 0 rgba(255,255,255,.1),0 3px 5px rgba(0,0,0,.42)}
.room2-player[data-item="phone"] .room2-held-item,.room2-player[data-item="flashlight"] .room2-held-item{opacity:1}
.room2-player[data-item="phone"] .room2-held-item{width:10px;height:18px;border-radius:2px;background:linear-gradient(180deg,#445267,#263249 45%,#141c28);box-shadow:0 0 0 1px rgba(9,12,18,.82),0 0 10px rgba(155,198,255,.38)}
.room2-player[data-item="flashlight"] .room2-held-item,.room2-jinkson-held-item{width:22px;height:7px;border-radius:6px;background:linear-gradient(90deg,#cdb88f 0 52%,#62696c 53% 100%);box-shadow:0 0 0 1px rgba(31,28,25,.72),0 0 9px rgba(255,240,176,.26)}
.room2-player[data-item="phone"][data-facing="n"] .room2-held-item{left:46px;top:54px;transform:rotate(-15deg)}
.room2-player[data-item="phone"][data-facing="ne"] .room2-held-item{left:58px;top:58px;transform:rotate(16deg)}
.room2-player[data-item="phone"][data-facing="e"] .room2-held-item{left:63px;top:68px;transform:rotate(70deg)}
.room2-player[data-item="phone"][data-facing="se"] .room2-held-item{left:58px;top:76px;transform:rotate(121deg)}
.room2-player[data-item="phone"][data-facing="s"] .room2-held-item{left:46px;top:79px;transform:rotate(165deg)}
.room2-player[data-item="phone"][data-facing="sw"] .room2-held-item{left:34px;top:76px;transform:rotate(214deg)}
.room2-player[data-item="phone"][data-facing="w"] .room2-held-item{left:28px;top:68px;transform:rotate(260deg)}
.room2-player[data-item="phone"][data-facing="nw"] .room2-held-item{left:34px;top:58px;transform:rotate(322deg)}
.room2-player[data-item="flashlight"][data-facing="n"] .room2-held-item{left:45px;top:55px;transform:rotate(-78deg)}
.room2-player[data-item="flashlight"][data-facing="ne"] .room2-held-item{left:58px;top:58px;transform:rotate(-40deg)}
.room2-player[data-item="flashlight"][data-facing="e"] .room2-held-item{left:65px;top:68px;transform:rotate(1deg)}
.room2-player[data-item="flashlight"][data-facing="se"] .room2-held-item{left:59px;top:76px;transform:rotate(41deg)}
.room2-player[data-item="flashlight"][data-facing="s"] .room2-held-item{left:46px;top:79px;transform:rotate(84deg)}
.room2-player[data-item="flashlight"][data-facing="sw"] .room2-held-item{left:35px;top:76px;transform:rotate(140deg)}
.room2-player[data-item="flashlight"][data-facing="w"] .room2-held-item{left:29px;top:68px;transform:rotate(180deg)}
.room2-player[data-item="flashlight"][data-facing="nw"] .room2-held-item{left:35px;top:58px;transform:rotate(224deg)}
.room2-player[data-item="crowbar"][data-facing="n"] .room2-held-item{left:46px;top:58px;transform:rotate(-72deg)}
.room2-player[data-item="crowbar"][data-facing="ne"] .room2-held-item{left:58px;top:60px;transform:rotate(-40deg)}
.room2-player[data-item="crowbar"][data-facing="e"] .room2-held-item{left:64px;top:69px;transform:rotate(-3deg)}
.room2-player[data-item="crowbar"][data-facing="se"] .room2-held-item{left:59px;top:77px;transform:rotate(34deg)}
.room2-player[data-item="crowbar"][data-facing="s"] .room2-held-item{left:47px;top:80px;transform:rotate(78deg)}
.room2-player[data-item="crowbar"][data-facing="sw"] .room2-held-item{left:36px;top:77px;transform:rotate(140deg)}
.room2-player[data-item="crowbar"][data-facing="w"] .room2-held-item{left:31px;top:69px;transform:rotate(183deg)}
.room2-player[data-item="crowbar"][data-facing="nw"] .room2-held-item{left:36px;top:60px;transform:rotate(221deg)}
.room2-jinkson[data-facing="n"] .room2-jinkson-held-item{left:45px;top:55px;transform:rotate(-78deg)}
.room2-jinkson[data-facing="ne"] .room2-jinkson-held-item{left:58px;top:58px;transform:rotate(-40deg)}
.room2-jinkson[data-facing="e"] .room2-jinkson-held-item{left:65px;top:68px;transform:rotate(1deg)}
.room2-jinkson[data-facing="se"] .room2-jinkson-held-item{left:59px;top:76px;transform:rotate(41deg)}
.room2-jinkson[data-facing="s"] .room2-jinkson-held-item{left:46px;top:79px;transform:rotate(84deg)}
.room2-jinkson[data-facing="sw"] .room2-jinkson-held-item{left:35px;top:76px;transform:rotate(140deg)}
.room2-jinkson[data-facing="w"] .room2-jinkson-held-item{left:29px;top:68px;transform:rotate(180deg)}
.room2-jinkson[data-facing="nw"] .room2-jinkson-held-item{left:35px;top:58px;transform:rotate(224deg)}

.room2-player[data-item="phone"] img,.room2-player[data-item="flashlight"] img{filter:drop-shadow(0 5px 5px rgba(0,0,0,.5))}



 
.room2-puzzle-list b.is-hidden{display:none}
.room2-status-card small[hidden]{display:none!important}

 
body.room2-lock-scroll{overflow:hidden}
.room2-panel.is-focus-mode{position:fixed;inset:0;z-index:9998;padding:10px 14px 14px;background:#07090d;overflow:auto}
.room2-panel.is-focus-mode .game-heading{display:none}
.room2-panel.is-focus-mode .room2-game{min-height:calc(100vh - 24px);border-radius:18px}
.room2-panel.is-focus-mode .room2-layout{min-height:calc(100vh - 80px);grid-template-columns:minmax(0,1fr) 320px}
.room2-panel.is-focus-mode .room2-world{min-height:calc(100vh - 80px)}
#room2ExitFocus{position:fixed;top:14px;right:14px;z-index:10020;padding:7px 10px;border-radius:999px;background:rgba(14,17,24,.92)!important;border:1px solid rgba(255,255,255,.18)!important;box-shadow:0 8px 20px rgba(0,0,0,.35)}
.room2-panel:not(.is-focus-mode) #room2ExitFocus{position:static}

 
.room2-player .room2-held-item,.room2-jinkson .room2-jinkson-held-item{z-index:5}
.room2-player[data-facing="n"] .room2-held-item,.room2-player[data-facing="ne"] .room2-held-item,.room2-player[data-facing="nw"] .room2-held-item,.room2-jinkson[data-facing="n"] .room2-jinkson-held-item,.room2-jinkson[data-facing="ne"] .room2-jinkson-held-item,.room2-jinkson[data-facing="nw"] .room2-jinkson-held-item{z-index:2}
.room2-player img,.room2-jinkson img{z-index:3}
.room2-player.is-occluded img,.room2-jinkson.is-occluded img{opacity:1}

 
.r2-symbol{z-index:172!important}
.r2-symbol small{filter:drop-shadow(0 1px 1px rgba(0,0,0,.62))}

 
.r2-breaker{left:1098px;top:400px;width:88px;height:146px}
.r2-breaker::before{top:10px;font-size:8px}
.r2-breaker::after{left:31px;top:34px;width:18px;height:62px}
.r2-breaker>span{bottom:18px;font-size:12px}
.r2-breaker .r2-breaker-led{right:10px;top:11px;width:9px;height:9px}

 
.r2-window-west{left:122px;top:64px;width:84px;height:96px;transform:none}
.r2-curtain-west{left:110px;top:54px;height:118px}
.r2-curtain-west::after{left:86px}
.r2-window-cast-west{left:118px;top:152px;width:210px;height:248px;opacity:.18;background:linear-gradient(180deg,rgba(176,197,221,.13),rgba(176,197,221,.045) 35%,rgba(176,197,221,0) 82%);clip-path:polygon(28% 0,72% 0,100% 100%,0 100%)}
.room2-world.is-powered .r2-window-cast-west{opacity:.04}

 
.room2-world .r2-window-cast-west{mix-blend-mode:screen;filter:blur(3px)}

@media(max-width:1050px){.room2-panel.is-focus-mode .room2-layout{grid-template-columns:1fr}.room2-panel.is-focus-mode .room2-hud{grid-template-columns:repeat(2,minmax(0,1fr))}.room2-panel.is-focus-mode .room2-objective-card{grid-column:1/-1}}
@media(max-width:700px){.room2-panel.is-focus-mode{padding:8px}.room2-panel.is-focus-mode .room2-hud{grid-template-columns:1fr}.room2-panel.is-focus-mode .room2-topbar{padding-right:56px}#room2ExitFocus{top:10px;right:10px;padding:6px 9px}}


 
body.room2-lock-scroll .game-nav{display:none!important}
body.room2-lock-scroll #keyInventory{display:none!important}
.room2-panel.is-focus-mode #room2ExitFocus{position:fixed;left:10px;right:auto;top:78px;z-index:10020;min-width:96px;padding:10px 16px;border-radius:14px;background:rgba(245,239,239,.96)!important;color:#24232c!important;border:1px solid rgba(255,255,255,.72)!important;box-shadow:0 8px 22px rgba(0,0,0,.26);font-size:11px;font-weight:900;letter-spacing:.06em}
.room2-panel:not(.is-focus-mode) #room2ExitFocus{display:none!important}
.room2-panel.is-focus-mode{padding-top:0}
.room2-panel.is-focus-mode .room2-game{min-height:100vh;border-radius:0;border-left:0;border-right:0;border-top:0}
.room2-panel.is-focus-mode .room2-layout{min-height:calc(100vh - 52px)}
.room2-panel.is-focus-mode .room2-world{min-height:calc(100vh - 52px)}
@media(max-width:700px){.room2-panel.is-focus-mode #room2ExitFocus{left:8px;top:68px;min-width:78px;padding:8px 11px}}
@media (min-width:901px) and (pointer:fine){
  .room2-camera-toolbar{
    position:relative;
    z-index:auto;
    display:block;
    user-select:none;
  }
  .room2-camera-toolbar[hidden]{display:none!important}
  .room2-camera-toolbar>span{display:block;margin-bottom:10px}
  .room2-camera-controls{
    display:grid;
    grid-template-columns:40px minmax(58px,1fr) 40px;
    align-items:center;
    gap:7px;
  }
  .room2-camera-actions{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:7px;
    margin-top:7px;
  }
  .room2-camera-toolbar button{
    width:100%;
    min-width:0;
    height:34px;
    padding:0 9px;
    border:1px solid rgba(255,255,255,.10);
    border-radius:6px;
    background:#0f1217;
    color:#f5eee1;
    font:900 10px/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    letter-spacing:.02em;
    cursor:pointer;
  }
  .room2-camera-toolbar .room2-camera-tool{font-size:18px;line-height:1;padding:0}
  .room2-camera-toolbar button:hover{background:#252c38;border-color:rgba(255,255,255,.22)}
  .room2-camera-toolbar button:focus-visible{outline:2px solid rgba(223,61,83,.75);outline-offset:2px}
  .room2-camera-toolbar button:disabled{opacity:.38;cursor:not-allowed}
  .room2-camera-toolbar .room2-camera-fit.is-active{
    background:#342029;
    border-color:rgba(223,61,83,.54);
    color:#ffdbe0;
  }
  .room2-camera-value{
    display:block;
    height:34px;
    padding:0 5px;
    border:1px solid rgba(255,255,255,.08);
    border-radius:6px;
    background:#11151c;
    text-align:center;
    font:900 10px/32px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
    color:#e9ddc8;
  }
  .room2-world.is-camera-overview .room2-map,
  .room2-world.is-camera-zoomed .room2-map{
    image-rendering:pixelated;
    image-rendering:crisp-edges;
  }

  .room2-admin-panel{
    position:relative;
    z-index:auto;
    display:block;
    user-select:none;
  }
  .room2-admin-panel[hidden]{display:none!important}
  .room2-admin-panel>span{display:block;margin-bottom:10px}
  .room2-admin-lock>label{display:block;margin:0 0 7px;color:#c9b98e;font:800 10px/1.2 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:.08em;text-transform:uppercase}
  .room2-admin-password-row{display:grid;grid-template-columns:minmax(0,1fr) 58px;gap:7px}
  .room2-admin-password-row input{
    width:100%;height:36px;box-sizing:border-box;padding:0 10px;border:1px solid rgba(255,255,255,.11);border-radius:6px;
    background:#0f1217;color:#f6efe4;font:900 13px/34px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.18em;outline:none;
  }
  .room2-admin-password-row input:focus{border-color:rgba(211,170,75,.72);box-shadow:0 0 0 2px rgba(211,170,75,.10)}
  .room2-admin-password-row button{
    height:36px;border:1px solid rgba(211,170,75,.34);border-radius:6px;background:#181716;color:#f0d595;
    font:900 10px/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;cursor:pointer;
  }
  .room2-admin-password-row button:hover{background:#28231a;border-color:rgba(211,170,75,.62)}
  .room2-admin-message{display:block;min-height:14px;margin-top:6px;color:#98b995;font:800 10px/1.3 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
  .room2-admin-message.is-error{color:#ef7b86}
  .room2-admin-controls[hidden]{display:none!important}
  .room2-admin-toggle{
    display:flex;align-items:flex-start;gap:10px;padding:10px;border:1px solid rgba(211,170,75,.24);border-radius:7px;background:#101319;cursor:pointer;
  }
  .room2-admin-toggle:hover{background:#171b22;border-color:rgba(211,170,75,.42)}
  .room2-admin-toggle input{margin:3px 0 0;width:18px;height:18px;accent-color:#d3aa4b;cursor:pointer}
  .room2-admin-toggle>span{display:block;min-width:0}
  .room2-admin-toggle b{display:block;color:#f4ead6;font:900 12px/1.2 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
  .room2-admin-toggle small{display:block;margin-top:4px;color:#a8acb5;font:700 9px/1.35 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
}



 
.room2-door-jinkson-presence{position:absolute;left:var(--door-presence-x,50%);top:var(--door-presence-y,100%);width:78px;height:116px;transform:translate(-50%,-78%);pointer-events:none;z-index:4;opacity:var(--door-presence-opacity,0);transition:opacity .25s;filter:drop-shadow(0 -6px 12px rgba(230,205,151,.08))}
.room2-door-jinkson-presence::before{content:"";position:absolute;left:21px;top:19px;width:38px;height:72px;border-radius:44% 44% 17% 17%;background:linear-gradient(90deg,rgba(2,3,5,.92),rgba(17,20,26,.94) 50%,rgba(2,3,5,.94));box-shadow:0 -13px 0 -5px rgba(4,5,8,.98),0 10px 18px rgba(0,0,0,.62)}
.room2-door-jinkson-presence::after{content:"";position:absolute;left:44px;top:34px;width:27px;height:7px;border-radius:5px;background:#171a1d;transform:rotate(-12deg);transform-origin:left center}
.room2-door-jinkson-presence i{position:absolute;left:31px;top:6px;width:26px;height:18px;border-radius:45% 45% 38% 38%;background:linear-gradient(180deg,#b7a996,#736d67);clip-path:polygon(12% 10%,88% 10%,100% 58%,75% 100%,25% 100%,0 58%);opacity:.72;box-shadow:0 0 8px rgba(220,205,173,.08)}
.room2-door-jinkson-presence b{position:absolute;left:48px;top:46px;width:11px;height:5px;background:#d7c18e;border-radius:5px;opacity:.55;box-shadow:0 0 9px rgba(248,221,156,.18)}
.room2-world.is-powered .room2-door-jinkson-presence{filter:brightness(.7)}


 
.room2-modal-card.is-correct{border-color:#70c989!important;box-shadow:0 0 0 3px rgba(112,201,137,.75),0 0 46px rgba(100,196,125,.25),0 26px 70px rgba(0,0,0,.6)!important;animation:r2PuzzleCorrectStrong .68s ease-out both!important}
.room2-modal-feedback.is-success{color:#8ed7a0!important;text-shadow:0 0 10px rgba(112,201,137,.25);font-weight:900;letter-spacing:.04em}
@keyframes r2PuzzleCorrectStrong{0%{transform:scale(.985);filter:brightness(1)}45%{transform:scale(1.012);filter:brightness(1.13)}100%{transform:scale(1);filter:brightness(1)}}

 
.room2-jinkson-mask{z-index:7!important;pointer-events:none;opacity:1;transition:opacity .28s ease,transform .52s cubic-bezier(.18,.78,.2,1);transform-origin:55% 28%}
.room2-jinkson.is-lifting-mask .room2-jinkson-mask{transform:translate(15px,-12px) rotate(18deg)!important;opacity:1!important}
.room2-jinkson.is-unmasked .room2-jinkson-mask{transform:translate(31px,-25px) rotate(28deg)!important;opacity:0!important}

 
.room2-intro-hallway-map{
  --intro-world-height:5760px;
  height:var(--intro-world-height);
  background:
    linear-gradient(90deg,#020306 0 23%,#090a0d 23% 77%,#020306 77% 100%),
    radial-gradient(ellipse at 50% 42%,#17150f 0,#090a0d 54%,#020306 100%);
  overflow:visible
}
.r2-intro-corridor-chunks{position:absolute;inset:0;width:1200px;height:var(--intro-world-height);pointer-events:none}
.r2-corridor-chunk{position:absolute;left:0;width:1200px;overflow:hidden;pointer-events:none}
.r2-corridor-floor{
  position:absolute;left:350px;top:0;width:500px;height:100%;z-index:1;
  background:
    radial-gradient(ellipse at 19% 18%,rgba(64,51,36,.18) 0 2px,transparent 3px),
    radial-gradient(ellipse at 74% 68%,rgba(9,8,7,.31) 0 3px,transparent 5px),
    repeating-linear-gradient(0deg,transparent 0 47px,rgba(12,13,13,.68) 47px 50px),
    repeating-linear-gradient(90deg,transparent 0 49px,rgba(10,11,12,.62) 49px 52px),
    linear-gradient(135deg,#45443d,#30312f 48%,#3a3933);
  background-size:83px 97px,121px 103px,auto,auto,auto;
  box-shadow:inset 0 0 0 5px #22211e,inset 0 0 62px 18px rgba(0,0,0,.48),0 0 52px rgba(0,0,0,.64)
}
.r2-corridor-floor::before{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(74deg,transparent 0 31%,rgba(10,9,8,.45) 31.4% 31.9%,transparent 32.3%),
    linear-gradient(111deg,transparent 0 68%,rgba(10,9,8,.33) 68.3% 68.8%,transparent 69.1%),
    radial-gradient(ellipse at 15% 44%,rgba(23,18,14,.46),transparent 12%),
    radial-gradient(ellipse at 82% 77%,rgba(18,13,11,.42),transparent 10%);
  opacity:.72
}
.r2-corridor-floor::after{
  content:"";position:absolute;inset:0;border-left:4px solid #61594b;border-right:4px solid #61594b;
  box-shadow:inset 18px 0 30px rgba(0,0,0,.42),inset -18px 0 30px rgba(0,0,0,.42)
}
.r2-corridor-carpet{
  position:absolute;left:492px;top:-8px;width:216px;height:calc(100% + 16px);z-index:3;
  background:
    radial-gradient(circle at 31% 12%,rgba(28,18,13,.82) 0 2px,transparent 3px),
    radial-gradient(circle at 72% 66%,rgba(14,10,8,.68) 0 2px,transparent 4px),
    repeating-linear-gradient(0deg,rgba(215,172,91,.25) 0 2px,transparent 2px 22px),
    linear-gradient(90deg,#4d1b1c 0 8px,#a07d43 8px 11px,#5f2223 11px 22px,#762a2b 22px 194px,#5f2223 194px 205px,#a07d43 205px 208px,#4d1b1c 208px 216px);
  background-size:91px 117px,137px 101px,100% 24px,100% 100%;
  border-top:1px solid rgba(183,133,76,.3);border-bottom:1px solid rgba(24,8,8,.86);
  box-shadow:0 3px 9px rgba(0,0,0,.55),inset 0 0 24px rgba(19,7,8,.55),inset 0 0 0 1px rgba(210,160,91,.12);
  filter:saturate(.72) brightness(.72)
}
.r2-corridor-carpet::before{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(103deg,transparent 0 23%,rgba(11,8,7,.46) 23.5% 25%,transparent 26%),
    radial-gradient(ellipse at 51% 34%,rgba(20,10,9,.36) 0 10%,transparent 22%),
    radial-gradient(ellipse at 43% 81%,rgba(7,6,5,.48),transparent 9%);
  mix-blend-mode:multiply;opacity:.86
}
.r2-corridor-chunk.tone-blood .r2-corridor-carpet::after,
.r2-corridor-chunk.tone-decay .r2-corridor-carpet::after{
  content:"";position:absolute;left:46%;top:18%;width:50px;height:110px;border-radius:50%;
  background:radial-gradient(ellipse,rgba(45,4,8,.68),rgba(31,3,6,.24) 56%,transparent 72%);
  transform:rotate(-12deg);filter:blur(.8px)
}
.r2-corridor-wall{
  position:absolute;top:0;width:68px;height:100%;z-index:22;
  background:
    repeating-linear-gradient(0deg,rgba(100,83,60,.16) 0 2px,transparent 2px 86px),
    linear-gradient(90deg,#12120f,#2e2a22 21%,#3d3529 48%,#1b1915 76%,#090a09);
  box-shadow:inset 0 0 0 4px #151511,inset 0 0 0 7px rgba(87,75,56,.55),0 0 30px rgba(0,0,0,.75)
}
.r2-corridor-wall.left{left:282px}.r2-corridor-wall.right{left:850px;transform:scaleX(-1)}
.r2-corridor-wall::before{
  content:"";position:absolute;left:8px;right:8px;top:0;bottom:0;
  background:
    linear-gradient(98deg,transparent 0 46%,rgba(8,7,6,.66) 47% 48%,transparent 49%),
    radial-gradient(ellipse at 48% 24%,rgba(53,66,52,.2),transparent 18%),
    radial-gradient(ellipse at 52% 72%,rgba(39,54,40,.17),transparent 22%);
  opacity:.9
}
.r2-corridor-wall::after{
  content:"";position:absolute;left:56px;top:0;width:12px;height:100%;
  background:linear-gradient(90deg,#76654c,#2d2921 32%,#11120f 100%);
  box-shadow:-4px 0 5px rgba(0,0,0,.45)
}
.r2-corridor-grime{
  position:absolute;left:350px;top:0;width:500px;height:100%;z-index:4;opacity:.42;
  background:
    radial-gradient(ellipse at 4% 16%,rgba(37,30,23,.74),transparent 10%),
    radial-gradient(ellipse at 96% 49%,rgba(34,25,21,.67),transparent 12%),
    radial-gradient(ellipse at 13% 81%,rgba(14,15,13,.72),transparent 8%),
    linear-gradient(91deg,rgba(0,0,0,.28),transparent 14% 86%,rgba(0,0,0,.3));
  mix-blend-mode:multiply
}

.r2-corridor-prop,.r2-corridor-decor{
  position:absolute;box-sizing:border-box;pointer-events:none;transform:rotate(var(--r2-rot,0deg)) scale(var(--r2-scale,1));transform-origin:50% 72%
}
.r2-corridor-prop{filter:drop-shadow(0 9px 7px rgba(0,0,0,.7))}
.r2-corridor-prop i,.r2-corridor-prop b,.r2-corridor-prop em,.r2-corridor-prop span,
.r2-corridor-decor i,.r2-corridor-decor b,.r2-corridor-decor em,.r2-corridor-decor span{position:absolute;display:block;box-sizing:border-box}

.r2-corridor-lamp{
  position:absolute;width:42px;height:58px;pointer-events:none;filter:brightness(var(--lamp-brightness,1));opacity:var(--lamp-opacity,.8)
}
.r2-corridor-lamp::before{content:"";position:absolute;left:18px;top:27px;width:7px;height:27px;background:linear-gradient(90deg,#32281d,#8c6b3b,#2b241c);box-shadow:0 0 0 1px #17130f}
.r2-corridor-lamp i{left:9px;top:6px;width:24px;height:23px;border-radius:46% 46% 38% 38%;background:radial-gradient(circle at 50% 42%,#fff0a9 0 10%,#dca94b 22%,#6a4d24 50%,#201b16 72%);border:2px solid #6b5534;box-shadow:0 0 var(--lamp-glow-size,20px) rgba(236,170,67,var(--lamp-glow-alpha,.2))}
.r2-corridor-lamp span{left:4px;top:25px;width:34px;height:5px;border-radius:50%;background:#34271b;border:1px solid #725937}
.r2-corridor-lamp b{left:18px;top:0;width:7px;height:10px;background:#4a3724;border-radius:3px}
.r2-corridor-lamp.is-off i{background:#211f1a;box-shadow:none;border-color:#39342a}
.r2-corridor-lamp.side-left{transform:rotate(-2deg)}.r2-corridor-lamp.side-right{transform:rotate(2deg)}

.prop-broken-chair{background:transparent}
.prop-broken-chair::before{content:"";position:absolute;left:12%;top:31%;width:70%;height:31%;background:linear-gradient(150deg,#503322,#2d1c15);border:3px solid #1b120e;box-shadow:inset 0 0 0 2px #785039}
.prop-broken-chair::after{content:"";position:absolute;left:15%;top:13%;width:57%;height:10%;background:#432a1d;box-shadow:7px 41px 0 -2px #2b1b14,-14px 38px 0 -2px #2b1b14;transform:rotate(-8deg)}
.prop-crate,.prop-crates{background:linear-gradient(145deg,#604022,#382613);border:4px solid #21180f;box-shadow:inset 0 0 0 3px #7a5530}
.prop-crate::before,.prop-crates::before{content:"";position:absolute;inset:9% 8%;border:4px solid rgba(28,19,12,.8);background:linear-gradient(31deg,transparent 46%,rgba(29,18,10,.72) 47% 53%,transparent 54%)}
.prop-crates::after{content:"";position:absolute;left:50%;top:-22%;width:55%;height:58%;background:linear-gradient(145deg,#694624,#3c2815);border:3px solid #21180f;box-shadow:inset 0 0 0 2px #78502d}
.prop-broken-cabinet,.prop-collapsed-shelf{background:linear-gradient(90deg,#211712,#4d3223 28%,#302019 72%,#17100e);border:5px solid #1b1210}
.prop-broken-cabinet::before,.prop-collapsed-shelf::before{content:"";position:absolute;left:8%;right:8%;top:14%;bottom:18%;background:repeating-linear-gradient(0deg,#181210 0 6px,#5a3d29 7px 11px,#221712 12px 25px);box-shadow:inset 0 0 16px #070605}
.prop-broken-cabinet::after,.prop-collapsed-shelf::after{content:"";position:absolute;left:63%;top:4%;width:22%;height:95%;background:#2b1a14;transform:rotate(11deg);box-shadow:-5px 2px 0 rgba(110,69,42,.38)}
.prop-rubble{background:transparent}
.prop-rubble::before{content:"";position:absolute;left:7%;top:42%;width:30%;height:30%;background:#494843;clip-path:polygon(10% 19%,79% 0,100% 74%,54% 100%,0 72%);box-shadow:30px -10px 0 #393a37,55px 8px 0 #555047,23px 17px 0 #2e302e}
.prop-rubble::after{content:"";position:absolute;left:14%;top:70%;width:72%;height:8%;background:rgba(12,11,10,.72);filter:blur(3px)}
.prop-planks{background:transparent}
.prop-planks::before{content:"";position:absolute;left:3%;top:38%;width:94%;height:13%;background:linear-gradient(#5f4027,#2e1d14);box-shadow:0 14px 0 #48301f,0 -13px 0 #382419;transform:rotate(7deg)}
.prop-planks::after{content:"";position:absolute;left:46%;top:15%;width:12%;height:70%;background:#402817;transform:rotate(-55deg)}
.prop-book-pile{background:transparent}
.prop-book-pile::before{content:"";position:absolute;left:3%;top:44%;width:76%;height:18%;background:#34271c;box-shadow:7px -10px 0 #5b2b27,17px -20px 0 #283849,2px -29px 0 #62533a,20px 7px 0 #44352a}
.prop-book-pile::after{content:"";position:absolute;left:9%;top:65%;width:74%;height:6%;background:rgba(0,0,0,.48);filter:blur(3px)}
.prop-rolled-carpet{border-radius:50%;background:repeating-linear-gradient(90deg,#4a171c 0 9px,#7a2b31 9px 18px,#b08a4c 18px 21px);border:4px solid #2e1517;box-shadow:inset 0 0 15px #16090a}
.prop-rolled-carpet::after{content:"";position:absolute;right:-5px;top:16%;height:68%;width:17px;border-radius:50%;background:radial-gradient(circle,#a8824d,#422126 62%,#1a0c0e)}
.prop-trolley{background:linear-gradient(#403830,#201c19);border:4px solid #766a57;border-radius:4px}
.prop-trolley::before{content:"";position:absolute;left:8%;right:8%;top:16%;height:8%;background:#94856c;box-shadow:0 34px 0 #665b4c}
.prop-trolley::after{content:"";position:absolute;left:10%;bottom:-8px;width:13px;height:13px;border-radius:50%;background:#151515;box-shadow:62px 0 0 #151515}
.prop-overturned-table{background:linear-gradient(145deg,#4e3424,#2b1c15);border:4px solid #1d130f}
.prop-overturned-table::before{content:"";position:absolute;left:8%;right:8%;top:16%;height:13px;background:#6e4930;box-shadow:8px 31px 0 -3px #38251a,-35px 31px 0 -3px #38251a;transform:rotate(-8deg)}
.prop-draped-obstacle{border-radius:44% 40% 12% 12%;background:linear-gradient(105deg,#817e72,#c0b9a3 38%,#7a766c 72%,#4a4944);clip-path:polygon(14% 0,82% 4%,100% 91%,75% 100%,52% 91%,31% 100%,0 91%);box-shadow:inset 14px 0 18px rgba(255,255,255,.08),inset -18px 0 22px rgba(0,0,0,.38)}

.decor-portrait,.decor-frame{background:#1d1713;border:6px solid #5c4227;box-shadow:inset 0 0 0 3px #17120e,0 8px 10px rgba(0,0,0,.6)}
.decor-portrait::before{content:"";position:absolute;inset:9px;background:radial-gradient(circle at 50% 34%,#8a7a66 0 12%,#302b27 13% 30%,#141517 31% 100%);filter:sepia(.45) brightness(.55)}
.decor-frame::before{content:"";position:absolute;inset:8px;background:linear-gradient(145deg,#211b17,#0d0d0e)}
.decor-bust::before{content:"";position:absolute;left:23%;top:4%;width:54%;height:48%;border-radius:50% 50% 43% 43%;background:linear-gradient(110deg,#a29c8b,#665f53 60%,#322f2b);box-shadow:0 19px 0 -7px #746e61}
.decor-bust::after{content:"";position:absolute;left:17%;bottom:3%;width:66%;height:28%;background:linear-gradient(#71695c,#302d29);clip-path:polygon(19% 0,81% 0,100% 100%,0 100%)}
.decor-covered-furniture{border-radius:42% 48% 8% 8%;background:linear-gradient(100deg,#77766e,#bbb5a3 43%,#66665f 78%);clip-path:polygon(18% 0,82% 7%,100% 93%,77% 100%,57% 91%,30% 100%,0 91%);filter:brightness(.62)}
.decor-grandfather-clock{background:linear-gradient(90deg,#201714,#543620 46%,#261913);border:4px solid #1a120e}
.decor-grandfather-clock::before{content:"";position:absolute;left:18%;top:8%;width:64%;height:30%;border-radius:50%;background:radial-gradient(circle,#d0be8e 0 8%,#827450 9% 42%,#211d17 44%);box-shadow:inset 0 0 0 4px #392517}
.decor-grandfather-clock::after{content:"";position:absolute;left:32%;top:42%;width:36%;height:43%;background:linear-gradient(#171511,#54412b);box-shadow:inset 0 0 0 3px #1d1510}
.decor-broken-mirror{background:#2e261f;border:6px solid #60492f;box-shadow:0 8px 12px rgba(0,0,0,.55)}
.decor-broken-mirror::before{content:"";position:absolute;inset:8px;background:linear-gradient(135deg,#4b5558,#1f292e 48%,#616967);clip-path:polygon(0 0,45% 0,50% 35%,68% 0,100% 0,100% 47%,73% 54%,100% 78%,100% 100%,54% 100%,48% 70%,25% 100%,0 100%,0 52%,29% 43%)}
.decor-chair::before{content:"";position:absolute;left:18%;top:26%;width:64%;height:36%;background:#4c2f22;border:3px solid #231711;box-shadow:0 -22px 0 -6px #583828,9px 31px 0 -6px #291a14,-25px 31px 0 -6px #291a14}
.decor-side-table::before{content:"";position:absolute;left:8%;top:28%;width:84%;height:24%;background:#50351f;border:3px solid #21150f;box-shadow:8px 30px 0 -7px #2c1d14,-32px 30px 0 -7px #2c1d14}
.decor-collapsed-books::before{content:"";position:absolute;left:0;top:40%;width:80%;height:16%;background:#502a25;box-shadow:17px -12px 0 #2e3d46,39px 3px 0 #4d4431,11px 16px 0 #33251f,59px -8px 0 #624033}
.decor-plant::before,.decor-pot::before{content:"";position:absolute;left:28%;bottom:4%;width:44%;height:34%;background:#463125;clip-path:polygon(8% 0,92% 0,76% 100%,24% 100%)}
.decor-plant::after,.decor-pot::after{content:"";position:absolute;left:8%;top:2%;width:84%;height:55%;background:radial-gradient(ellipse at 23% 62%,#35402e 0 19%,transparent 20%),radial-gradient(ellipse at 56% 40%,#253326 0 22%,transparent 23%),radial-gradient(ellipse at 78% 68%,#34402f 0 20%,transparent 21%);filter:brightness(.55)}
.decor-blood,.decor-stain{border-radius:46%;background:radial-gradient(ellipse at 48% 48%,rgba(55,5,9,.72),rgba(44,8,9,.38) 45%,transparent 72%);filter:blur(.4px)}
.decor-papers::before{content:"";position:absolute;left:4%;top:22%;width:45%;height:42%;background:#8d8774;box-shadow:26px 10px 0 #706b5e,45px -8px 0 #918b7a;transform:rotate(-12deg);filter:brightness(.58)}
.decor-glass::before{content:"";position:absolute;inset:12%;background:linear-gradient(32deg,transparent 0 31%,rgba(139,158,161,.58) 32% 35%,transparent 36% 60%,rgba(139,158,161,.45) 61% 63%,transparent 64%);clip-path:polygon(0 40%,18% 12%,38% 31%,57% 0,72% 35%,100% 22%,84% 61%,100% 87%,60% 73%,44% 100%,25% 67%)}
.decor-crack::before{content:"";position:absolute;left:48%;top:0;width:3px;height:100%;background:#090908;box-shadow:12px 22px 0 -1px #090908,-10px 47px 0 -1px #090908;transform:rotate(9deg);opacity:.72}
.decor-web::before{content:"";position:absolute;inset:0;background:repeating-radial-gradient(circle at 0 0,transparent 0 12px,rgba(176,173,157,.16) 13px 14px),repeating-conic-gradient(from 0deg at 0 0,rgba(190,186,171,.12) 0 1deg,transparent 2deg 29deg);clip-path:polygon(0 0,100% 0,0 100%)}
.decor-cable::before{content:"";position:absolute;left:42%;top:0;width:5px;height:100%;background:#121313;border-radius:999px;box-shadow:9px 0 0 #0b0c0d;transform:rotate(4deg)}
.decor-pot::after{opacity:.45}

.r2-corridor-decor.is-falling{animation:r2CorridorPictureFall .62s cubic-bezier(.2,.75,.3,1) forwards}
.r2-corridor-decor.is-shifting{animation:r2CorridorChairShift .48s cubic-bezier(.2,.75,.3,1) forwards}
.r2-corridor-decor.is-fallen{translate:21px 58px;rotate:78deg;filter:brightness(.58)}
.r2-corridor-decor.is-shifted{translate:-18px 9px;rotate:-9deg}
@keyframes r2CorridorPictureFall{0%{translate:0 0;rotate:0}38%{translate:7px 8px;rotate:18deg}100%{translate:21px 58px;rotate:78deg;filter:brightness(.58)}}
@keyframes r2CorridorChairShift{0%{translate:0 0}45%{translate:-9px 4px;rotate:-5deg}100%{translate:-18px 9px;rotate:-9deg}}

.r2-intro-room1-door{
  position:absolute;left:520px;top:calc(var(--intro-world-height) - 80px);width:160px;height:66px;z-index:5798;
  background:linear-gradient(90deg,#251914,#5a3924 50%,#251914);border:7px solid #3a2a20;
  box-shadow:inset 0 0 0 3px #17100e,0 -9px 22px rgba(0,0,0,.72);
  color:#8f806d;font:900 8px/1 Inter,sans-serif;letter-spacing:.16em;text-align:center;padding-top:24px;box-sizing:border-box
}
.r2-intro-red-door{position:absolute;left:520px;top:18px;width:160px;height:54px;z-index:238;color:transparent;cursor:pointer}
.r2-intro-run-callout{position:absolute;left:50%;top:63%;transform:translate(-50%,-50%);z-index:900;color:#f3eee4;font:900 34px/1 Inter,sans-serif;letter-spacing:.18em;text-shadow:0 4px 18px rgba(0,0,0,.85);animation:r2RunCallout 1.25s ease both;pointer-events:none}
@keyframes r2RunCallout{0%{opacity:0;transform:translate(-50%,-42%) scale(.96)}18%,72%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-58%) scale(1.02)}}

.r2-intro-corridor-lighting{position:absolute;inset:0;z-index:480;pointer-events:none;mix-blend-mode:screen;opacity:.96}
.room2-world.is-intro-hallway .room2-darkness{
  opacity:.79;
  background:radial-gradient(circle at var(--light-x,50%) var(--light-y,70%),rgba(8,7,6,.04) 0 var(--r2-radius,45px),rgba(5,6,8,.38) calc(var(--r2-radius,45px) + 50px),rgba(3,4,7,.78) calc(var(--r2-radius,45px) + 158px),rgba(1,2,4,.91) 100%)
}
.room2-world.is-intro-hallway .room2-vignette{box-shadow:inset 0 0 132px 52px rgba(0,0,0,.56)}
.room2-world.is-intro-hallway .room2-light-cone{filter:blur(9px);opacity:var(--beam-opacity,.18)}
.room2-world.is-intro-hallway .room2-jinkson-cone,.room2-world.is-intro-hallway .room2-jinkson-hotspot{opacity:0!important}
.room2-world.is-intro-hallway .room2-chase-pressure{
  background:radial-gradient(circle at 50% 66%,transparent 0 43%,rgba(64,4,12,.04) 60%,rgba(104,5,20,.42) 100%)
}
.room2-world.is-intro-hallway.is-intro-back-blackout .room2-vignette{box-shadow:inset 0 0 160px 68px rgba(0,0,0,.68)}

 
.r2-barricade-chair{position:absolute;left:295px;top:1354px;width:70px;height:62px;z-index:1420;pointer-events:none;transform-origin:50% 72%;transition:left .55s cubic-bezier(.22,.8,.28,1),top .55s cubic-bezier(.22,.8,.28,1),transform .4s ease,filter .25s;background:transparent;box-shadow:none}
.r2-barricade-chair::before{content:"";position:absolute;left:11px;top:23px;width:48px;height:28px;background:#463127;box-shadow:0 -25px 0 -7px #5a3b2d,7px 30px 0 -5px #2e211c,-32px 22px 0 -5px #2e211c}
.r2-barricade-chair::after{content:"";position:absolute;left:9px;top:13px;width:52px;height:8px;background:#33231e;box-shadow:0 31px 0 #2a1e1a}
.r2-barricade-chair.is-grabbed{filter:brightness(1.15);transform:rotate(-8deg)}
.r2-barricade-chair.is-dragging{transform:rotate(12deg)}
.r2-barricade-chair.is-rotating{transform:rotate(78deg)}
.r2-barricade-chair.is-braced{left:465px!important;top:1450px!important;transform:rotate(90deg);filter:brightness(.9);z-index:1530}
.r2-barricade-chair.is-hit{animation:r2ChairHit .25s linear}
.r2-barricade-chair.is-damage-75{transform:rotate(91deg) translateX(2px)}
.r2-barricade-chair.is-damage-50{transform:rotate(94deg) translate(8px,2px)}
.r2-barricade-chair.is-damage-25{transform:rotate(99deg) translate(16px,6px)}
.r2-barricade-chair.is-displaced{left:545px!important;top:1495px!important;transform:rotate(138deg);filter:brightness(.65);transition:left .35s ease-out,top .35s ease-out,transform .35s ease-out}
@keyframes r2ChairHit{0%,100%{translate:0 0}30%{translate:-6px 0}65%{translate:5px 1px}}

.room2-game[data-phase="HALLWAY_CHASE"] .room2-hud,.room2-game[data-phase="ROOM1_EXIT"] .room2-hud,.room2-game[data-phase="HALLWAY_INTRO"] .room2-hud,.room2-game[data-phase="RED_DOOR_ESCAPE"] .room2-hud,.room2-game[data-phase="ROOM2_ENTRY"] .room2-hud,.room2-game[data-phase="CHAIR_BARRICADE"] .room2-hud{opacity:.18;pointer-events:none}
.room2-game[data-phase="HALLWAY_CHASE"] .room2-objective-card,.room2-game[data-phase="HALLWAY_CHASE"] .room2-puzzle-list{visibility:hidden}

@media(prefers-reduced-motion:reduce){.r2-intro-run-callout{animation:none}.r2-barricade-chair{transition:none}}
.room2-game[data-phase="ROOM1_EXIT"] .room2-layout,.room2-game[data-phase="HALLWAY_INTRO"] .room2-layout,.room2-game[data-phase="HALLWAY_CHASE"] .room2-layout,.room2-game[data-phase="RED_DOOR_RANGE"] .room2-layout,.room2-game[data-phase="RED_DOOR_ESCAPE"] .room2-layout,.room2-game[data-phase="ROOM2_ENTRY"] .room2-layout,.room2-game[data-phase="CHAIR_BARRICADE"] .room2-layout{grid-template-columns:1fr}
.room2-game[data-phase="ROOM1_EXIT"] .room2-hud,.room2-game[data-phase="HALLWAY_INTRO"] .room2-hud,.room2-game[data-phase="HALLWAY_CHASE"] .room2-hud,.room2-game[data-phase="RED_DOOR_RANGE"] .room2-hud,.room2-game[data-phase="RED_DOOR_ESCAPE"] .room2-hud,.room2-game[data-phase="ROOM2_ENTRY"] .room2-hud,.room2-game[data-phase="CHAIR_BARRICADE"] .room2-hud{display:none}

.room2-game[data-phase="ROOM1_EXIT"] .room2-stage-copy,.room2-game[data-phase="HALLWAY_INTRO"] .room2-stage-copy,.room2-game[data-phase="HALLWAY_CHASE"] .room2-stage-copy,.room2-game[data-phase="RED_DOOR_RANGE"] .room2-stage-copy,.room2-game[data-phase="RED_DOOR_ESCAPE"] .room2-stage-copy,.room2-game[data-phase="ROOM2_ENTRY"] .room2-stage-copy,.room2-game[data-phase="CHAIR_BARRICADE"] .room2-stage-copy,.room2-game[data-phase="ROOM1_EXIT"] .room2-top-actions>span,.room2-game[data-phase="HALLWAY_INTRO"] .room2-top-actions>span,.room2-game[data-phase="HALLWAY_CHASE"] .room2-top-actions>span,.room2-game[data-phase="RED_DOOR_RANGE"] .room2-top-actions>span,.room2-game[data-phase="RED_DOOR_ESCAPE"] .room2-top-actions>span,.room2-game[data-phase="ROOM2_ENTRY"] .room2-top-actions>span,.room2-game[data-phase="CHAIR_BARRICADE"] .room2-top-actions>span,.room2-game[data-phase="ROOM1_EXIT"] #room2Reset,.room2-game[data-phase="HALLWAY_INTRO"] #room2Reset,.room2-game[data-phase="HALLWAY_CHASE"] #room2Reset,.room2-game[data-phase="RED_DOOR_RANGE"] #room2Reset,.room2-game[data-phase="RED_DOOR_ESCAPE"] #room2Reset,.room2-game[data-phase="ROOM2_ENTRY"] #room2Reset,.room2-game[data-phase="CHAIR_BARRICADE"] #room2Reset,.room2-game[data-phase="ROOM1_EXIT"] #room2ZoomButton,.room2-game[data-phase="HALLWAY_INTRO"] #room2ZoomButton,.room2-game[data-phase="HALLWAY_CHASE"] #room2ZoomButton,.room2-game[data-phase="RED_DOOR_RANGE"] #room2ZoomButton,.room2-game[data-phase="RED_DOOR_ESCAPE"] #room2ZoomButton,.room2-game[data-phase="ROOM2_ENTRY"] #room2ZoomButton,.room2-game[data-phase="CHAIR_BARRICADE"] #room2ZoomButton{visibility:hidden}

 
.room2-cinematic-dialogue{position:absolute;inset:0;z-index:980;overflow:hidden;pointer-events:auto;color:#f4efe6}
.room2-cinematic-dialogue[hidden]{display:none!important}
.room2-cinematic-backdrop{position:absolute;inset:0;background:linear-gradient(180deg,rgba(3,5,9,.18),rgba(2,4,8,.54));backdrop-filter:blur(1.2px);pointer-events:none}
.room2-cinematic-portrait{position:absolute;z-index:2;bottom:116px;width:min(43%,430px);height:72%;display:flex;align-items:flex-end;justify-content:center;pointer-events:none;opacity:0;transition:opacity .2s ease,transform .2s ease}
.room2-cinematic-portrait.is-left{left:4%;transform:translateX(-24px)}
.room2-cinematic-portrait.is-right{right:4%;transform:translateX(24px)}
.room2-cinematic-dialogue.is-visible .room2-cinematic-portrait{opacity:1;transform:translateX(0)}
.room2-cinematic-portrait img{display:block;max-width:100%;max-height:100%;object-fit:contain;object-position:center bottom;image-rendering:pixelated;filter:drop-shadow(0 14px 20px rgba(0,0,0,.68))}
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="confused"] img,.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="confused_opening"] img{transform:rotate(-1.4deg);transform-origin:50% 90%}
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="confused"] .room2-expression-mark::before{content:"?";position:absolute;right:14%;top:16%;font:900 34px/1 Inter,sans-serif;color:#d9c582;text-shadow:0 3px 12px rgba(0,0,0,.85);animation:r2QuestionFloat 1.3s ease-in-out infinite alternate}
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="confused_opening"] .room2-expression-mark::before{content:""}
.room2-cinematic-portrait[data-speaker="JINKSON"][data-expression="laugh"] img{animation:r2JinksonLaugh .34s ease-in-out infinite alternate;transform-origin:50% 85%;filter:drop-shadow(0 14px 20px rgba(0,0,0,.72)) drop-shadow(0 0 16px rgba(137,27,34,.12))}
.room2-cinematic-portrait[data-speaker="JINKSON"][data-expression="laugh_intro"] img{animation:r2PortraitFloat .8s ease-in-out infinite alternate;transform-origin:50% 85%;filter:drop-shadow(0 14px 20px rgba(0,0,0,.72)) drop-shadow(0 0 16px rgba(137,27,34,.14))}
.room2-cinematic-portrait[data-speaker="JINKSON"][data-expression="laugh"] .room2-expression-mark::before,.room2-cinematic-portrait[data-speaker="JINKSON"][data-expression="laugh_intro"] .room2-expression-mark::before{content:"HA";position:absolute;left:11%;top:20%;font:900 16px/1 Inter,sans-serif;letter-spacing:.12em;color:rgba(196,89,91,.72);text-shadow:0 2px 7px #000;transform:rotate(-12deg)}
@keyframes r2QuestionFloat{to{transform:translateY(-7px);opacity:.72}}
@keyframes r2JinksonLaugh{from{transform:translateY(0) rotate(-.4deg)}to{transform:translateY(-4px) rotate(.6deg)}}
.room2-cinematic-box{position:absolute;left:5%;right:5%;bottom:22px;z-index:4;min-height:120px;padding:28px 34px 26px;background:linear-gradient(180deg,rgba(11,17,28,.97),rgba(5,9,16,.985));border:2px solid rgba(107,133,164,.42);box-shadow:inset 0 0 0 1px rgba(255,255,255,.035),0 20px 50px rgba(0,0,0,.62);opacity:0;transform:translateY(12px);transition:opacity .18s ease,transform .18s ease}
.room2-cinematic-dialogue.is-visible .room2-cinematic-box{opacity:1;transform:translateY(0)}
.room2-cinematic-name{position:absolute;left:26px;top:-18px;min-width:130px;padding:9px 18px;background:#233346;border:1px solid rgba(152,183,211,.45);clip-path:polygon(8px 0,100% 0,calc(100% - 9px) 100%,0 100%);font:900 12px/1 Inter,sans-serif;letter-spacing:.16em;color:#f3e8cf;text-shadow:0 1px 4px #000}
.room2-cinematic-portrait[data-speaker="JINKSON"]~.room2-cinematic-box .room2-cinematic-name{background:#5e2028;border-color:rgba(207,105,105,.45)}
.room2-cinematic-box p{margin:4px 110px 0 0;min-height:56px;font:700 clamp(18px,2vw,29px)/1.42 Inter,system-ui,sans-serif;letter-spacing:.01em;color:#f3efe8;text-shadow:0 2px 5px rgba(0,0,0,.62)}
.room2-cinematic-next{position:absolute;right:24px;bottom:20px;border:0;background:transparent;color:#d9bd6d;font:900 10px/1 Inter,sans-serif;letter-spacing:.08em;cursor:pointer;padding:10px 0}
.room2-cinematic-next::after{content:"»";display:inline-block;margin-left:8px;font-size:18px;vertical-align:-2px;animation:r2DialogueArrow .75s ease-in-out infinite alternate}
@keyframes r2DialogueArrow{to{transform:translateX(4px)}}
.room2-cinematic-dialogue.is-typing .room2-cinematic-next{opacity:.54}

.r2-intro-room1-door{transform-origin:left center;transition:transform .48s cubic-bezier(.2,.8,.2,1),filter .2s;overflow:visible}
.r2-intro-room1-door i{position:absolute;right:16px;top:30px;width:8px;height:8px;border-radius:50%;background:#a4895d;box-shadow:0 0 0 2px #241815}
.r2-intro-room1-door.is-opening{transform:perspective(330px) rotateY(-58deg);filter:brightness(1.14)}
.r2-intro-room1-door.is-open{transform:perspective(330px) rotateY(-78deg);filter:brightness(.78)}
.r2-intro-room1-door.is-open::after{content:"";position:absolute;inset:5px 14px;background:#030508;transform:translateZ(-1px);z-index:-1}

@media(max-width:900px){
  .room2-cinematic-portrait{width:48%;height:66%;bottom:132px}
  .room2-cinematic-box{left:3%;right:3%;bottom:14px;padding:24px 22px 23px;min-height:112px}
  .room2-cinematic-box p{margin-right:76px;font-size:18px}
  .room2-cinematic-next{right:18px;bottom:15px}
}
@media(max-width:600px){
  .room2-cinematic-portrait{width:60%;height:58%;bottom:150px}
  .room2-cinematic-portrait.is-left{left:-4%}.room2-cinematic-portrait.is-right{right:-4%}
  .room2-cinematic-box{left:10px;right:10px;bottom:10px;padding:24px 16px 48px;min-height:130px}
  .room2-cinematic-box p{margin-right:0;font-size:17px}
  .room2-cinematic-name{left:14px;min-width:110px;padding:8px 13px}
  .room2-cinematic-next{right:16px;bottom:12px}
}
@media(prefers-reduced-motion:reduce){
  .room2-cinematic-portrait,.room2-cinematic-box{transition:none}
  .room2-cinematic-portrait[data-speaker="JINKSON"][data-expression="laugh"] img,.room2-cinematic-portrait[data-speaker="JINKSON"][data-expression="laugh_intro"] img,.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="confused"] .room2-expression-mark::before,.room2-cinematic-next::after{animation:none}
}


 
.r2-intro-red-door{left:526px!important;top:54px!important;width:148px!important;height:42px!important;border:0!important;background:transparent!important;box-shadow:none!important;color:transparent!important;letter-spacing:0!important;overflow:visible}
.r2-intro-red-door::before{content:"";position:absolute;inset:0;border-radius:4px 4px 9px 9px;background:linear-gradient(180deg,#6f222b 0 26%,#3f171c 27% 46%,#170a0d 47% 100%);box-shadow:inset 0 0 0 4px #5b463f,inset 0 0 0 6px rgba(124,39,49,.42),inset 0 -11px 0 rgba(0,0,0,.34),0 8px 14px rgba(0,0,0,.46)}
.r2-intro-red-door::after{content:"";position:absolute;right:18px;top:15px;width:10px;height:10px;border-radius:50%;background:#d0b170!important;box-shadow:0 0 0 3px #40231d,0 0 9px rgba(244,208,122,.18)!important}
.r2-intro-red-door .r2-intro-door-trim{position:absolute;left:11px;right:11px;top:-8px;height:9px;border-radius:4px 4px 0 0;background:linear-gradient(180deg,#87656a,#4d3639);box-shadow:0 3px 0 rgba(0,0,0,.22)}
.r2-intro-red-door .r2-intro-door-shadow{position:absolute;left:18px;right:18px;bottom:-8px;height:10px;border-radius:0 0 14px 14px;background:rgba(0,0,0,.26);filter:blur(1.6px)}
.r2-intro-red-door span{display:none!important}
.r2-intro-red-door.is-nearby::before{box-shadow:inset 0 0 0 4px #6f544d,inset 0 0 0 6px rgba(158,56,67,.56),inset 0 -11px 0 rgba(0,0,0,.34),0 0 0 2px rgba(214,180,95,.28),0 10px 16px rgba(0,0,0,.52)}
.r2-intro-red-door.is-opening{transform:perspective(300px) rotateX(6deg) rotateY(-58deg) translateX(-8px)!important;filter:brightness(1.12)!important}
.r2-intro-red-door.is-open{transform:perspective(300px) rotateX(6deg) rotateY(-74deg) translateX(-11px)!important;filter:brightness(.84)!important}
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="confused_opening"]{width:min(45%,450px)}
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="confused_opening"] img{transform:none!important;filter:drop-shadow(0 14px 20px rgba(0,0,0,.68))}
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="confused_opening"] .room2-expression-mark::before{content:none!important}
.room2-cinematic-portrait[data-speaker="JINKSON"][data-expression="laugh_intro"] img{image-rendering:auto;animation:r2PortraitFloat .8s ease-in-out infinite alternate;transform-origin:50% 85%}
@keyframes r2PortraitFloat{from{transform:translateY(0)}to{transform:translateY(-3px)}}
@media(prefers-reduced-motion:reduce){.room2-cinematic-portrait[data-speaker="JINKSON"][data-expression="laugh_intro"] img{animation:none!important}}


 
.r2-intro-red-door{position:absolute!important;left:522px!important;top:58px!important;width:156px!important;height:32px!important;border:0!important;background:transparent!important;box-shadow:none!important;overflow:visible!important;cursor:pointer;z-index:232;color:transparent!important}
.r2-intro-red-door::before,.r2-intro-red-door::after{content:none!important}
.r2-intro-red-door .r2-intro-door-back{position:absolute;left:6px;right:6px;top:0;height:14px;border-radius:4px 4px 8px 8px;background:linear-gradient(180deg,#120b0d,#070608);box-shadow:inset 0 0 0 2px #4f4644,inset 0 0 0 4px rgba(118,34,45,.4),0 6px 12px rgba(0,0,0,.36)}
.r2-intro-red-door .r2-intro-door-leaf{position:absolute;left:10px;top:1px;width:128px;height:12px;border-radius:3px 3px 7px 7px;background:linear-gradient(180deg,#8c2f39 0 20%,#67212a 22% 60%,#3f151a 61% 100%);box-shadow:inset 0 0 0 2px rgba(238,177,186,.12),inset 0 -3px 0 rgba(0,0,0,.28),0 2px 0 rgba(0,0,0,.22);transform-origin:8px 50%;transition:transform .42s cubic-bezier(.2,.8,.2,1),filter .2s,width .2s}
.r2-intro-red-door .r2-intro-door-knob{position:absolute;right:16px;top:2px;width:10px;height:10px;border-radius:50%;background:#d6b16a;box-shadow:0 0 0 2px #513229,0 0 12px rgba(244,208,122,.15);transition:transform .42s cubic-bezier(.2,.8,.2,1),opacity .2s}
.r2-intro-red-door .r2-intro-door-shadow{position:absolute;left:12px;right:24px;top:14px;height:10px;border-radius:0 0 14px 14px;background:rgba(0,0,0,.28);filter:blur(2px);opacity:.78;transition:transform .42s cubic-bezier(.2,.8,.2,1),opacity .2s}
.r2-intro-red-door.is-nearby .r2-intro-door-leaf{box-shadow:inset 0 0 0 2px rgba(248,215,168,.16),inset 0 -3px 0 rgba(0,0,0,.28),0 0 0 2px rgba(214,180,95,.28),0 2px 0 rgba(0,0,0,.22)}
.r2-intro-red-door.is-opening .r2-intro-door-leaf{transform:rotate(58deg) translate(6px,18px);filter:brightness(1.08)}
.r2-intro-red-door.is-open .r2-intro-door-leaf{transform:rotate(72deg) translate(10px,22px);filter:brightness(1.04)}
.r2-intro-red-door.is-opening .r2-intro-door-knob,.r2-intro-red-door.is-open .r2-intro-door-knob{transform:translate(-34px,18px)}
.r2-intro-red-door.is-opening .r2-intro-door-shadow,.r2-intro-red-door.is-open .r2-intro-door-shadow{transform:translateY(10px) scaleX(.72);opacity:.56}


 
.room2-cinematic-sprite{display:block;width:min(100%,var(--sprite-frame-width,320px));height:min(100%,var(--sprite-frame-height,480px));background-image:var(--sprite-url);background-repeat:no-repeat;background-position:0 0;background-size:calc(var(--sprite-frame-width,320px) * var(--sprite-frames,1)) var(--sprite-frame-height,480px);image-rendering:pixelated;filter:drop-shadow(0 14px 20px rgba(0,0,0,.72));animation:r2SpriteLaugh .95s steps(var(--sprite-frames,1)) infinite}
.room2-cinematic-sprite[hidden]{display:none!important}
.room2-cinematic-portrait img[hidden]{display:none!important}
@keyframes r2SpriteLaugh{from{background-position:0 0}to{background-position:calc(-1 * var(--sprite-frame-width,320px) * var(--sprite-frames,1)) 0}}
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="confused_opening"] .room2-expression-mark::before{content:none!important}
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="confused_opening"] img{transform:none!important;filter:drop-shadow(0 14px 20px rgba(0,0,0,.68));max-width:92%;max-height:92%}
.room2-cinematic-portrait[data-speaker="JINKSON"][data-expression="laugh_intro"] .room2-expression-mark::before{content:none!important}
.room2-cinematic-portrait[data-speaker="JINKSON"][data-expression="laugh_intro"] img{display:none!important}

.r2-intro-red-door{position:absolute!important;left:536px!important;top:63px!important;width:124px!important;height:18px!important;border:0!important;background:transparent!important;box-shadow:none!important;overflow:visible!important;z-index:235!important;color:transparent!important}
.r2-intro-red-door::before,.r2-intro-red-door::after{content:none!important}
.r2-intro-red-door .r2-intro-door-back{position:absolute;left:0;top:0;width:124px;height:8px;border-radius:3px 3px 7px 7px;background:linear-gradient(180deg,#151012,#060508);box-shadow:inset 0 0 0 2px #5a514f,inset 0 0 0 3px rgba(128,40,50,.28),0 5px 12px rgba(0,0,0,.38)}
.r2-intro-red-door .r2-intro-door-leaf{position:absolute;left:7px;top:1px;width:106px;height:6px;border-radius:3px 3px 5px 5px;background:linear-gradient(180deg,#7e2b34,#4d171e);box-shadow:inset 0 0 0 1px rgba(255,224,214,.16),0 1px 0 rgba(0,0,0,.28);transform-origin:8px 50%;transition:transform .32s cubic-bezier(.2,.8,.2,1),filter .18s,width .18s}
.r2-intro-red-door .r2-intro-door-knob{position:absolute;left:95px;top:-1px;width:9px;height:9px;border-radius:50%;background:#d7b472;box-shadow:0 0 0 2px #52342a,0 0 10px rgba(247,214,141,.12);transition:transform .32s cubic-bezier(.2,.8,.2,1),opacity .18s}
.r2-intro-red-door .r2-intro-door-shadow{position:absolute;left:8px;top:8px;width:100px;height:7px;border-radius:0 0 12px 12px;background:rgba(0,0,0,.24);filter:blur(1.6px);opacity:.62;transition:transform .32s cubic-bezier(.2,.8,.2,1),opacity .18s}
.r2-intro-red-door.is-nearby .r2-intro-door-back{box-shadow:inset 0 0 0 2px #6b5f5d,inset 0 0 0 3px rgba(157,56,66,.38),0 0 0 2px rgba(221,184,100,.26),0 5px 12px rgba(0,0,0,.38)}
.r2-intro-red-door.is-opening .r2-intro-door-leaf{transform:rotate(82deg) translate(8px,14px);filter:brightness(1.06)}
.r2-intro-red-door.is-open .r2-intro-door-leaf{transform:rotate(92deg) translate(9px,16px);filter:brightness(1.03)}
.r2-intro-red-door.is-opening .r2-intro-door-knob,.r2-intro-red-door.is-open .r2-intro-door-knob{transform:translate(-32px,12px)}
.r2-intro-red-door.is-opening .r2-intro-door-shadow,.r2-intro-red-door.is-open .r2-intro-door-shadow{transform:translate(16px,8px) scaleX(.58);opacity:.4}
@media(prefers-reduced-motion:reduce){.room2-cinematic-sprite{animation:none!important}}


 
.room2-cinematic-sprite{display:none!important}
.room2-cinematic-portrait[data-speaker="JINKSON"][data-expression="laugh_intro"] img{display:block!important;image-rendering:pixelated;animation:r2PortraitFloat .72s ease-in-out infinite alternate;transform-origin:50% 84%;max-width:92%;max-height:92%;filter:drop-shadow(0 14px 20px rgba(0,0,0,.74)) drop-shadow(0 0 10px rgba(122,28,33,.18))}
.room2-cinematic-portrait[data-speaker="JINKSON"][data-expression="laugh_intro"] .room2-expression-mark::before{content:none!important}
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="confused_opening"] img{image-rendering:pixelated}

.r2-intro-red-door{left:536px!important;top:63px!important;width:124px!important;height:18px!important}
.r2-intro-red-door .r2-intro-door-back{left:0!important;top:0!important;width:124px!important;height:8px!important;background:linear-gradient(180deg,#140f11,#050507)!important;box-shadow:inset 0 0 0 2px #5b5150,inset 0 0 0 3px rgba(110,35,42,.22),0 5px 12px rgba(0,0,0,.38)!important}
.r2-intro-red-door .r2-intro-door-leaf{left:7px!important;top:1px!important;width:106px!important;height:6px!important;border-radius:3px 3px 5px 5px!important;background:linear-gradient(180deg,#772830,#4a161d)!important;box-shadow:inset 0 0 0 1px rgba(255,224,214,.14),0 1px 0 rgba(0,0,0,.28)!important;transform:none!important;transition:filter .18s ease, opacity .18s ease, background .18s ease!important}
.r2-intro-red-door .r2-intro-door-knob{left:95px!important;top:-1px!important;width:9px!important;height:9px!important;transform:none!important;transition:opacity .18s ease, filter .18s ease!important}
.r2-intro-red-door .r2-intro-door-shadow{left:8px!important;top:8px!important;width:100px!important;height:7px!important;transform:none!important;transition:opacity .18s ease!important}
.r2-intro-red-door.is-opening .r2-intro-door-leaf,.r2-intro-red-door.is-open .r2-intro-door-leaf{transform:none!important;background:linear-gradient(180deg,#0d0d10,#040406)!important;filter:brightness(.78)!important}
.r2-intro-red-door.is-opening .r2-intro-door-knob,.r2-intro-red-door.is-open .r2-intro-door-knob{transform:none!important;opacity:.16!important;filter:brightness(.6)!important}
.r2-intro-red-door.is-opening .r2-intro-door-shadow,.r2-intro-red-door.is-open .r2-intro-door-shadow{transform:none!important;opacity:.78!important}


 
.room2-cinematic-portrait[data-speaker="JINKSON"][data-expression="laugh_intro"] img{display:block!important;animation:none!important;transform:none!important;image-rendering:pixelated;max-width:90%;max-height:90%;filter:drop-shadow(0 14px 20px rgba(0,0,0,.72))}
.r2-intro-red-door .r2-intro-door-leaf,.r2-intro-red-door .r2-intro-door-knob,.r2-intro-red-door .r2-intro-door-shadow{transition:opacity .18s ease, filter .18s ease, background .18s ease!important}
.r2-intro-red-door.is-opening .r2-intro-door-leaf,.r2-intro-red-door.is-open .r2-intro-door-leaf{transform:none!important;background:linear-gradient(180deg,#0b0b0f,#020204)!important;filter:brightness(.55)!important}
.r2-intro-red-door.is-opening .r2-intro-door-knob,.r2-intro-red-door.is-open .r2-intro-door-knob{transform:none!important;opacity:.12!important;filter:brightness(.45)!important}
.r2-intro-red-door.is-opening .r2-intro-door-shadow,.r2-intro-red-door.is-open .r2-intro-door-shadow{transform:none!important;opacity:.84!important}


 
.room2-panel.is-focus-mode #room2ExitFocus{top:96px!important;left:12px!important}
@media(max-width:700px){.room2-panel.is-focus-mode #room2ExitFocus{top:86px!important;left:8px!important}}

.room2-cinematic-portrait[data-speaker="JINKSON"][data-expression="laugh_intro"]{width:min(56%,560px)!important;height:82%!important;bottom:128px!important}
.room2-cinematic-portrait[data-speaker="JINKSON"][data-expression="laugh_intro"].is-right{right:1.5%!important}
.room2-cinematic-portrait[data-speaker="JINKSON"][data-expression="laugh_intro"] img{display:block!important;animation:none!important;transform:none!important;image-rendering:pixelated!important;object-fit:contain!important;object-position:center bottom!important;max-width:100%!important;max-height:100%!important;filter:drop-shadow(0 18px 24px rgba(0,0,0,.78))!important}
.room2-cinematic-portrait[data-speaker="JINKSON"][data-expression="laugh_intro"] .room2-expression-mark::before{content:none!important}

.r2-intro-room1-door{transition:filter .18s ease, background .18s ease!important;transform:none!important}
.r2-intro-room1-door.is-opening,.r2-intro-room1-door.is-open{transform:none!important;filter:brightness(.56)!important;background:#07080d!important;box-shadow:inset 0 0 0 3px #0a0b10, inset 0 0 0 7px #262226, 0 -10px 22px rgba(0,0,0,.58)!important}
.r2-intro-room1-door.is-opening i,.r2-intro-room1-door.is-open i{opacity:.18!important;filter:brightness(.5)!important;transform:none!important}
.r2-intro-room1-door.is-opening::after,.r2-intro-room1-door.is-open::after{content:"";position:absolute;inset:6px 12px;background:#020306!important;z-index:-1;opacity:1!important}

.r2-intro-red-door,.r2-intro-red-door .r2-intro-door-leaf,.r2-intro-red-door .r2-intro-door-knob,.r2-intro-red-door .r2-intro-door-shadow{transition:opacity .18s ease, filter .18s ease, background .18s ease!important}
.r2-intro-red-door{transform:none!important}
.r2-intro-red-door.is-opening,.r2-intro-red-door.is-open{transform:none!important;filter:none!important}
.r2-intro-red-door.is-opening .r2-intro-door-leaf,.r2-intro-red-door.is-open .r2-intro-door-leaf{transform:none!important;background:linear-gradient(180deg,#09090d,#020204)!important;filter:brightness(.45)!important}
.r2-intro-red-door.is-opening .r2-intro-door-knob,.r2-intro-red-door.is-open .r2-intro-door-knob{transform:none!important;opacity:.08!important;filter:brightness(.35)!important}
.r2-intro-red-door.is-opening .r2-intro-door-shadow,.r2-intro-red-door.is-open .r2-intro-door-shadow{transform:none!important;opacity:.9!important}

 
.room2-stage-copy{display:flex;align-items:center;gap:10px}
.room2-panel.is-focus-mode #room2ExitFocus{
  position:static!important;left:auto!important;right:auto!important;top:auto!important;
  min-width:0!important;margin-left:8px;padding:5px 10px!important;border-radius:999px!important;
  background:rgba(245,239,239,.96)!important;color:#24232c!important;
  border:1px solid rgba(255,255,255,.72)!important;box-shadow:0 4px 12px rgba(0,0,0,.22)!important;
  font-size:10px!important;font-weight:900!important;letter-spacing:.05em!important;
}
.room2-panel:not(.is-focus-mode) #room2ExitFocus{display:none!important}
.room2-zoom-button{
  border:1px solid rgba(35,35,48,.16);background:#242334;color:#fff;border-radius:999px;
  padding:8px 13px;font:900 10px/1 Inter,sans-serif;letter-spacing:.05em;white-space:nowrap;cursor:pointer;
  box-shadow:0 5px 14px rgba(31,29,44,.14)
}
.room2-zoom-button:hover{transform:translateY(-1px);filter:brightness(1.08)}
.room2-zoom-button[hidden]{display:none!important}

.r2-intro-room1-door,
.r2-intro-room1-door.is-opening,
.r2-intro-room1-door.is-open{
  transform:none!important;transition:none!important;
}
.r2-intro-room1-door.is-open{
  background:#010205!important;filter:none!important;color:transparent!important;
  box-shadow:inset 0 0 0 3px #030407,inset 0 0 0 7px #111318,0 -10px 22px rgba(0,0,0,.7)!important;
}
.r2-intro-room1-door.is-open i{opacity:0!important;transition:none!important}
.r2-intro-room1-door.is-open span{opacity:0!important;transition:none!important}
.r2-intro-room1-door.is-open::after{content:""!important;position:absolute;inset:5px 12px!important;background:#000!important;opacity:1!important;z-index:2!important;transform:none!important}

.r2-intro-red-door,
.r2-intro-red-door.is-opening,
.r2-intro-red-door.is-open,
.r2-intro-red-door .r2-intro-door-leaf,
.r2-intro-red-door .r2-intro-door-knob,
.r2-intro-red-door .r2-intro-door-shadow{
  transform:none!important;transition:none!important;
}
.r2-intro-red-door.is-open .r2-intro-door-back,
.r2-intro-red-door.is-open .r2-intro-door-leaf{
  background:#000!important;filter:none!important;opacity:1!important;
}
.r2-intro-red-door.is-open .r2-intro-door-knob{opacity:0!important}
.r2-intro-red-door.is-open .r2-intro-door-shadow{opacity:.94!important}

.r2-intro-run-callout{
  color:#ff334f!important;font-size:42px!important;letter-spacing:.22em!important;
  text-shadow:0 0 8px rgba(255,48,79,.92),0 0 24px rgba(255,33,68,.72),0 5px 18px rgba(0,0,0,.96)!important;
  background:rgba(23,3,8,.48);border:1px solid rgba(255,71,98,.42);border-radius:12px;
  padding:12px 20px 12px 28px;animation:r2RunCalloutHot 2.05s ease both!important;
}
@keyframes r2RunCalloutHot{
  0%{opacity:0;transform:translate(-50%,-44%) scale(.9)}
  12%{opacity:1;transform:translate(-50%,-50%) scale(1.08)}
  22%,78%{opacity:1;transform:translate(-50%,-50%) scale(1)}
  100%{opacity:0;transform:translate(-50%,-56%) scale(1.04)}
}
@media(max-width:700px){
  .room2-panel.is-focus-mode #room2ExitFocus{padding:4px 8px!important;font-size:9px!important}
  .r2-intro-run-callout{font-size:34px!important}
}


 
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="escape_relief"],
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="call_help"],
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="no_signal"],
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="determined_escape"]{
  width:min(56%,600px)!important;
  height:84%!important;
  bottom:112px!important;
}
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="escape_relief"] img,
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="call_help"] img,
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="no_signal"] img,
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="determined_escape"] img{
  display:block!important;
  max-width:100%!important;
  max-height:100%!important;
  object-fit:contain!important;
  object-position:center bottom!important;
  image-rendering:pixelated!important;
  filter:drop-shadow(0 18px 26px rgba(0,0,0,.76))!important;
  transform:none!important;
}
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="escape_relief"] .room2-expression-mark::before,
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="call_help"] .room2-expression-mark::before,
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="no_signal"] .room2-expression-mark::before,
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="determined_escape"] .room2-expression-mark::before{content:none!important}
@media(max-width:900px){
  .room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="escape_relief"],
  .room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="call_help"],
  .room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="no_signal"],
  .room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="determined_escape"]{width:min(68%,560px)!important;height:78%!important;bottom:126px!important}
}
@media(max-width:600px){
  .room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="escape_relief"],
  .room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="call_help"],
  .room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="no_signal"],
  .room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="determined_escape"]{width:min(82%,520px)!important;height:70%!important;bottom:146px!important}
}


 
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="key_notice"],
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="red_key_notice"],
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="fuse_found"],
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="crowbar_found"],
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="crowbar_hurry"]{
  left:2%!important;
  width:min(62%,680px)!important;
  height:87%!important;
  bottom:108px!important;
}
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="install_fuse"],
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="power_restored"]{
  left:1.5%!important;
  width:min(74%,860px)!important;
  height:86%!important;
  bottom:108px!important;
}
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="key_notice"] img,
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="red_key_notice"] img,
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="fuse_found"] img,
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="install_fuse"] img,
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="power_restored"] img,
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="crowbar_found"] img,
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="crowbar_hurry"] img{
  display:block!important;
  width:auto!important;
  height:auto!important;
  max-width:100%!important;
  max-height:100%!important;
  object-fit:contain!important;
  object-position:left bottom!important;
  image-rendering:pixelated!important;
  filter:drop-shadow(0 18px 26px rgba(0,0,0,.76))!important;
  transform:none!important;
}
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="key_notice"] .room2-expression-mark::before,
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="red_key_notice"] .room2-expression-mark::before,
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="fuse_found"] .room2-expression-mark::before,
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="install_fuse"] .room2-expression-mark::before,
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="power_restored"] .room2-expression-mark::before,
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="crowbar_found"] .room2-expression-mark::before,
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="crowbar_hurry"] .room2-expression-mark::before{content:none!important}
@media(max-width:900px){
  .room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="key_notice"],
  .room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="red_key_notice"],
  .room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="fuse_found"],
  .room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="crowbar_found"],
  .room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="crowbar_hurry"]{left:0!important;width:min(76%,620px)!important;height:82%!important;bottom:122px!important}
  .room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="install_fuse"],
  .room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="power_restored"]{left:0!important;width:min(88%,760px)!important;height:80%!important;bottom:124px!important}
}
@media(max-width:600px){
  .room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="key_notice"],
  .room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="red_key_notice"],
  .room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="fuse_found"],
  .room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="crowbar_found"],
  .room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="crowbar_hurry"]{left:-3%!important;width:min(92%,560px)!important;height:73%!important;bottom:145px!important}
  .room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="install_fuse"],
  .room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="power_restored"]{left:-4%!important;width:min(98%,660px)!important;height:70%!important;bottom:148px!important}
}

 
.room2-top-actions #room2ZoomButton{margin-left:-4px}
@media(max-width:700px){.room2-top-actions #room2ZoomButton{margin-left:0}}


 
body .room2-panel.is-focus-mode .room2-game .room2-topbar .room2-stage-copy #room2ExitFocus{
  display:inline-flex!important;
  position:static!important;
  inset:auto!important;
  top:auto!important;right:auto!important;bottom:auto!important;left:auto!important;
  transform:none!important;
  margin:0 0 0 8px!important;
  min-width:0!important;
  width:auto!important;height:auto!important;
  padding:5px 10px!important;
  border-radius:999px!important;
  background:rgba(245,239,239,.96)!important;
  color:#24232c!important;
  border:1px solid rgba(255,255,255,.72)!important;
  box-shadow:0 4px 12px rgba(0,0,0,.22)!important;
  font-size:10px!important;font-weight:900!important;letter-spacing:.05em!important;
  vertical-align:middle!important;
}
body .room2-panel:not(.is-focus-mode) #room2ExitFocus{display:none!important}
.room2-stage-copy{display:flex!important;align-items:center!important;gap:10px!important;min-height:28px}
.room2-top-actions #room2ZoomButton{display:inline-flex;align-items:center;justify-content:center;margin-left:0!important}
.room2-top-actions #room2ZoomButton[hidden]{display:none!important}
@media(max-width:700px){
  body .room2-panel.is-focus-mode .room2-game .room2-topbar .room2-stage-copy #room2ExitFocus{padding:4px 8px!important;font-size:9px!important;margin-left:6px!important}
}


 
body .room2-panel.is-focus-mode .room2-game .room2-topbar .room2-stage-copy{
  display:flex!important;
  visibility:visible!important;
  opacity:1!important;
  align-items:center!important;
  gap:8px!important;
  min-height:28px!important;
  white-space:nowrap!important;
}
body .room2-panel.is-focus-mode .room2-game .room2-topbar .room2-stage-copy #room2PhaseLabel{
  display:inline-block!important;
  visibility:visible!important;
}
body .room2-panel.is-focus-mode .room2-game .room2-topbar .room2-stage-copy #room2ExitFocus{
  display:inline-flex!important;
  visibility:visible!important;
  position:static!important;
  inset:auto!important;
  transform:none!important;
  margin:0 0 0 6px!important;
  width:auto!important;
  min-width:0!important;
  height:24px!important;
  padding:4px 9px!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 auto!important;
  border-radius:999px!important;
  font-size:9px!important;
  line-height:1!important;
  z-index:auto!important;
}
body .room2-panel:not(.is-focus-mode) #room2ExitFocus{display:none!important}

 
.room2-dialogue{
  overflow:visible!important;
}
.room2-dialogue.has-portrait{
  min-height:132px!important;
  padding:28px 28px 22px 40px!important;
  display:block!important;
}
.room2-dialogue.has-portrait .room2-dialogue-copy{
  position:relative!important;
  z-index:3!important;
  width:100%!important;
  min-width:0!important;
}
.room2-dialogue.has-portrait .room2-dialogue-portrait{
  display:block!important;
  position:absolute!important;
  left:72px!important;
  bottom:calc(100% - 10px)!important;
  width:520px!important;
  height:620px!important;
  max-width:42vw!important;
  max-height:72vh!important;
  margin:0!important;
  pointer-events:none!important;
  z-index:2!important;
  overflow:visible!important;
  transform:none!important;
}
.room2-dialogue.has-portrait .room2-dialogue-portrait img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:contain!important;
  object-position:left bottom!important;
  image-rendering:pixelated!important;
  transform:none!important;
  filter:drop-shadow(0 16px 22px rgba(0,0,0,.62))!important;
}

 
.room2-dialogue.has-portrait strong,
.room2-dialogue.has-portrait p,
.room2-dialogue.has-portrait span{
  position:relative!important;
  z-index:4!important;
}

@media(max-width:1100px){
  .room2-dialogue.has-portrait .room2-dialogue-portrait{
    left:36px!important;
    width:430px!important;
    height:520px!important;
    max-width:46vw!important;
    max-height:66vh!important;
  }
}

@media(max-width:700px){
  .room2-dialogue.has-portrait{
    min-height:112px!important;
    padding:20px 16px 16px!important;
  }
  .room2-dialogue.has-portrait .room2-dialogue-portrait{
    left:8px!important;
    bottom:calc(100% - 6px)!important;
    width:310px!important;
    height:390px!important;
    max-width:64vw!important;
    max-height:58vh!important;
  }
}

 
.room2-player,.room2-jinkson{
  translate:var(--stride-x,0px) var(--stride-y,0px)!important;
  rotate:var(--stride-rot,0deg)!important;
  scale:1 var(--stride-sy,1)!important;
  transition:translate 48ms linear,rotate 58ms ease-out,scale 58ms ease-out!important;
}
.room2-player[data-stride="run"] .room2-player-shadow,
.room2-jinkson[data-stride="run"] .room2-player-shadow{
  transform:scaleX(.94) scaleY(.9);
  opacity:.38;
}
.room2-player[data-stride="walk"] .room2-player-shadow,
.room2-jinkson[data-stride="walk"] .room2-player-shadow{
  transform:scaleX(.97) scaleY(.95);
}



.room2-held-item,.room2-jinkson-held-item{
  left:var(--held-x,48px)!important;
  top:var(--held-y,72px)!important;
  background-color:transparent!important;
  background-repeat:no-repeat!important;
  background-position:center!important;
  background-size:contain!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  pointer-events:none!important;
  will-change:left,top,transform;
}
.room2-player[data-item="phone"] .room2-held-item{
  width:26px!important;height:26px!important;
  background-image:url('../images/room2/items/phone.png')!important;
  transform-origin:13px 21px!important;
  transform:translate(-13px,-21px) rotate(var(--held-rot,0deg))!important;
  filter:drop-shadow(0 0 5px rgba(134,190,255,.42));
}
.room2-player[data-item="flashlight"] .room2-held-item{
  width:31px!important;height:31px!important;
  background-image:url('../images/room2/items/flashlight.png')!important;
  transform-origin:22px 16px!important;
  transform:translate(-22px,-16px) rotate(var(--held-rot,0deg))!important;
  filter:drop-shadow(0 0 5px rgba(255,232,165,.36));
}
.room2-player[data-item="crowbar"] .room2-held-item{
  width:36px!important;height:36px!important;
  background-image:url('../images/room2/items/crowbar.png')!important;
  transform-origin:9px 26px!important;
  transform:translate(-9px,-26px) rotate(var(--held-rot,0deg))!important;
  filter:drop-shadow(0 2px 3px rgba(0,0,0,.5));
}
.room2-jinkson .room2-jinkson-held-item{
  width:31px!important;height:31px!important;
  background-image:url('../images/room2/items/flashlight.png')!important;
  transform-origin:22px 16px!important;
  transform:translate(-22px,-16px) rotate(var(--held-rot,0deg))!important;
  filter:drop-shadow(0 0 4px rgba(255,232,165,.3));
}

 
.room2-player[data-action] .room2-held-item,
.room2-jinkson[data-action] .room2-jinkson-held-item{
  transition:none!important;
}



.room2-player[data-facing="n"] .room2-held-item,
.room2-player[data-facing="ne"] .room2-held-item,
.room2-player[data-facing="nw"] .room2-held-item,
.room2-jinkson[data-facing="n"] .room2-jinkson-held-item,
.room2-jinkson[data-facing="ne"] .room2-jinkson-held-item,
.room2-jinkson[data-facing="nw"] .room2-jinkson-held-item{z-index:2!important}
.room2-player[data-facing="s"] .room2-held-item,
.room2-player[data-facing="se"] .room2-held-item,
.room2-player[data-facing="sw"] .room2-held-item,
.room2-player[data-facing="e"] .room2-held-item,
.room2-player[data-facing="w"] .room2-held-item,
.room2-jinkson[data-facing="s"] .room2-jinkson-held-item,
.room2-jinkson[data-facing="se"] .room2-jinkson-held-item,
.room2-jinkson[data-facing="sw"] .room2-jinkson-held-item,
.room2-jinkson[data-facing="e"] .room2-jinkson-held-item,
.room2-jinkson[data-facing="w"] .room2-jinkson-held-item{z-index:6!important}

 
.room2-world.is-intro-hallway .room2-player[data-stride="run"] img,
.room2-world.is-intro-hallway .room2-jinkson[data-stride="run"] img,
.room2-world.is-hallway .room2-player[data-stride="run"] img,
.room2-world.is-hallway .room2-jinkson[data-stride="run"] img{
  filter:drop-shadow(0 6px 5px rgba(0,0,0,.56));
}
@media(prefers-reduced-motion:reduce){
  .room2-player,.room2-jinkson{translate:0 0!important;rotate:0deg!important;scale:1!important;transition:none!important}
}



.room2-player,.room2-jinkson{
  translate:0 0;
  rotate:0deg!important;
  scale:1!important;
  animation:none!important;
  transition:none!important;
  will-change:left,top!important;
}
.room2-player.is-moving,.room2-player.is-running,.room2-jinkson.is-moving{
  animation:none!important;
}
.room2-player-sprite,.room2-jinkson-body{
  width:96px!important;
  height:128px!important;
  object-fit:contain!important;
  image-rendering:pixelated!important;
}
.room2-player-shadow{
  left:31px!important;
  bottom:9px!important;
  width:34px!important;
  height:11px!important;
  transform:none!important;
  animation:none!important;
  transition:none!important;
  opacity:.4!important;
}
.room2-player.is-moving .room2-player-shadow,
.room2-player.is-running .room2-player-shadow,
.room2-jinkson.is-moving .room2-player-shadow{
  transform:none!important;
  animation:none!important;
}

 
.room2-held-item,.room2-jinkson-held-item{
  left:var(--held-x,48px)!important;
  top:var(--held-y,78px)!important;
  z-index:var(--held-z,6)!important;
  transition:none!important;
  will-change:auto!important;
}
.room2-player[data-facing] .room2-held-item,
.room2-jinkson[data-facing] .room2-jinkson-held-item{
  z-index:var(--held-z,6)!important;
}
.room2-player[data-item="phone"] .room2-held-item{
  transform:translate(-13px,-21px) rotate(var(--held-rot,0deg))!important;
}
.room2-player[data-item="flashlight"] .room2-held-item,
.room2-jinkson .room2-jinkson-held-item{
  transform:translate(-22px,-16px) rotate(var(--held-rot,0deg))!important;
}
.room2-player[data-item="crowbar"] .room2-held-item{
  transform:translate(-9px,-26px) rotate(var(--held-rot,0deg))!important;
}

 
.r2-controller-debug-layer{position:absolute;inset:0;z-index:1900;pointer-events:none;font-family:monospace}
.r2-controller-debug-layer[hidden],.r2-controller-debug-panel[hidden]{display:none!important}
.r2-debug-geometry{position:absolute;inset:0;pointer-events:none}
.r2-debug-map-rect{position:absolute;box-sizing:border-box;pointer-events:none;font-style:normal}
.r2-debug-map-rect::after{content:attr(data-label);position:absolute;left:2px;top:2px;padding:1px 3px;border-radius:2px;background:rgba(0,0,0,.7);color:#fff;font:700 8px/1.25 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:nowrap}
.r2-debug-map-rect.is-domain{border:2px dashed rgba(213,130,255,.92);background:rgba(213,130,255,.025)}
.r2-debug-map-rect.is-walkable{border:1px solid rgba(62,255,145,.9);background:rgba(62,255,145,.075)}
.r2-debug-map-rect.is-stair{border:1px solid rgba(67,219,255,.95);background:rgba(67,219,255,.10)}
.r2-debug-map-rect.is-door{border:1px solid rgba(255,223,88,.98);background:rgba(255,223,88,.12)}
.r2-debug-map-rect.is-solid{border:1px solid rgba(255,82,82,.98);background:rgba(255,82,82,.095)}
.r2-debug-collider,.r2-debug-feet,.r2-debug-hand,.r2-debug-light,.r2-debug-interaction,.r2-debug-vector{position:absolute;box-sizing:border-box;pointer-events:none}
.r2-debug-collider{border:1px solid #4cff6a;background:rgba(76,255,106,.08)}
.r2-debug-feet{width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;background:#46a7ff;box-shadow:0 0 0 1px #07111d}
.r2-debug-hand{width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;background:#ff4d55;box-shadow:0 0 0 1px #170609}
.r2-debug-light{width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;background:#45f4ff;box-shadow:0 0 0 1px #061819}
.r2-debug-interaction{border:1px solid #ffe15a;background:rgba(255,225,90,.08);transform-origin:center}
.r2-debug-vector{height:2px;background:#fff;transform-origin:0 50%;box-shadow:0 0 0 1px rgba(0,0,0,.5)}
.r2-controller-debug-panel{position:absolute;right:12px;top:52px;z-index:1950;margin:0;padding:9px 11px;border:1px solid rgba(255,255,255,.24);border-radius:6px;background:rgba(0,0,0,.78);color:#e8f6ff;font:700 10px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace;pointer-events:none;white-space:pre}

@media(prefers-reduced-motion:reduce){
  .room2-player,.room2-jinkson,.room2-held-item,.room2-jinkson-held-item{transition:none!important;animation:none!important}
}





.room2-player[data-motion="run"] > #room2PlayerSprite,
.room2-jinkson[data-motion="run"] > #room2JinksonSprite,
.room2-jinkson[data-motion="run"] > #room2JinksonMask{
  transform:translate(var(--run-visual-x,0px),var(--run-visual-y,0px)) rotate(var(--run-visual-rot,0deg))!important;
  transform-origin:50% 82%!important;
  transition:transform 46ms linear!important;
  will-change:transform!important;
}
.room2-player:not([data-motion="run"]) > #room2PlayerSprite,
.room2-jinkson:not([data-motion="run"]) > #room2JinksonSprite,
.room2-jinkson:not([data-motion="run"]) > #room2JinksonMask{
  transform:none!important;
  transition:none!important;
}
.room2-player[data-motion="run"] .room2-player-shadow,
.room2-jinkson[data-motion="run"] .room2-player-shadow{
  transform:scaleX(var(--run-shadow-scale,1)) scaleY(calc(.88 * var(--run-shadow-scale,1)))!important;
  opacity:var(--run-shadow-opacity,.4)!important;
  transform-origin:center!important;
  transition:transform 46ms linear,opacity 46ms linear!important;
}



.room2-player[data-motion="run"][data-anim-frame="1"] > #room2PlayerSprite,
.room2-player[data-motion="run"][data-anim-frame="3"] > #room2PlayerSprite,
.room2-jinkson[data-motion="run"][data-anim-frame="1"] > #room2JinksonSprite,
.room2-jinkson[data-motion="run"][data-anim-frame="3"] > #room2JinksonSprite,
.room2-jinkson[data-motion="run"][data-anim-frame="1"] > #room2JinksonMask,
.room2-jinkson[data-motion="run"][data-anim-frame="3"] > #room2JinksonMask{
  filter:drop-shadow(0 8px 5px rgba(0,0,0,.48))!important;
}

/* Jinkson custom masked locomotion (RUN + opening WALK): code-only head proportion correction.
   Reuses the same runtime sprite source; no alternate/generated artwork. */
.room2-jinkson{
  --jinkson-head-scale:1.10;
  --jinkson-head-origin-x:50%;
  --jinkson-head-origin-y:29%;
}
.room2-jinkson > #room2JinksonHeadBoost{
  z-index:4!important;
  pointer-events:none!important;
  opacity:0;
  clip-path:inset(0 7% 55% 7%);
  transform-origin:var(--jinkson-head-origin-x) var(--jinkson-head-origin-y)!important;
  filter:none!important;
  will-change:transform,opacity!important;
}
.room2-jinkson.has-custom-jinkson-head-boost[data-motion="run"] > #room2JinksonHeadBoost,
.room2-jinkson.has-custom-jinkson-head-boost[data-motion="walk"] > #room2JinksonHeadBoost{
  opacity:1;
  transform:
    translate(var(--run-visual-x,0px),var(--run-visual-y,0px))
    rotate(var(--run-visual-rot,0deg))
    scale(var(--jinkson-head-scale))!important;
  transition:transform 46ms linear!important;
}
.room2-jinkson.has-custom-jinkson-head-boost[data-motion="idle"] > #room2JinksonHeadBoost{
  opacity:1;
  transform:scale(var(--jinkson-head-scale))!important;
  transition:none!important;
}
.room2-jinkson:not(.has-custom-jinkson-head-boost) > #room2JinksonHeadBoost{
  display:none!important;
}

/* Small per-facing registration nudges so the enlarged head stays centered
   over the original neck/shoulder line in all eight directions. */
.room2-jinkson[data-facing="n"]{--jinkson-head-origin-x:50%;--jinkson-head-origin-y:31%}
.room2-jinkson[data-facing="ne"]{--jinkson-head-origin-x:53%;--jinkson-head-origin-y:30%}
.room2-jinkson[data-facing="e"]{--jinkson-head-origin-x:55%;--jinkson-head-origin-y:29%}
.room2-jinkson[data-facing="se"]{--jinkson-head-origin-x:54%;--jinkson-head-origin-y:29%}
.room2-jinkson[data-facing="s"]{--jinkson-head-origin-x:50%;--jinkson-head-origin-y:28%}
.room2-jinkson[data-facing="sw"]{--jinkson-head-origin-x:46%;--jinkson-head-origin-y:29%}
.room2-jinkson[data-facing="w"]{--jinkson-head-origin-x:45%;--jinkson-head-origin-y:29%}
.room2-jinkson[data-facing="nw"]{--jinkson-head-origin-x:47%;--jinkson-head-origin-y:30%}

@media(prefers-reduced-motion:reduce){
  .room2-player[data-motion="run"] > #room2PlayerSprite,
  .room2-jinkson[data-motion="run"] > #room2JinksonSprite,
  .room2-jinkson[data-motion="run"] > #room2JinksonMask{
    transform:none!important;
    transition:none!important;
  }
}





.room2-player[data-motion="run"] > #room2PlayerSprite,
.room2-jinkson[data-motion="run"] > #room2JinksonSprite,
.room2-jinkson[data-motion="run"] > #room2JinksonMask{
  transition:transform 28ms linear!important;
  transform-origin:50% 80%!important;
}
.room2-player[data-motion="run"] .room2-player-shadow,
.room2-jinkson[data-motion="run"] .room2-player-shadow{
  transition:transform 28ms linear,opacity 28ms linear!important;
}
 
.room2-player[data-run-phase="LEFT_EXTREME"] > #room2PlayerSprite,
.room2-player[data-run-phase="RIGHT_EXTREME"] > #room2PlayerSprite,
.room2-jinkson[data-run-phase="LEFT_EXTREME"] > #room2JinksonSprite,
.room2-jinkson[data-run-phase="RIGHT_EXTREME"] > #room2JinksonSprite,
.room2-jinkson[data-run-phase="LEFT_EXTREME"] > #room2JinksonMask,
.room2-jinkson[data-run-phase="RIGHT_EXTREME"] > #room2JinksonMask{
  filter:drop-shadow(0 9px 5px rgba(0,0,0,.50))!important;
}
.room2-player[data-run-phase="LEFT_FLIGHT"] > #room2PlayerSprite,
.room2-player[data-run-phase="RIGHT_FLIGHT"] > #room2PlayerSprite,
.room2-jinkson[data-run-phase="LEFT_FLIGHT"] > #room2JinksonSprite,
.room2-jinkson[data-run-phase="RIGHT_FLIGHT"] > #room2JinksonSprite,
.room2-jinkson[data-run-phase="LEFT_FLIGHT"] > #room2JinksonMask,
.room2-jinkson[data-run-phase="RIGHT_FLIGHT"] > #room2JinksonMask{
  filter:drop-shadow(0 8px 5px rgba(0,0,0,.44))!important;
}
 
.room2-player[data-run-phase="LEFT_CONTACT"] > #room2PlayerSprite,
.room2-player[data-run-phase="RIGHT_CONTACT"] > #room2PlayerSprite,
.room2-jinkson[data-run-phase="LEFT_CONTACT"] > #room2JinksonSprite,
.room2-jinkson[data-run-phase="RIGHT_CONTACT"] > #room2JinksonSprite,
.room2-jinkson[data-run-phase="LEFT_CONTACT"] > #room2JinksonMask,
.room2-jinkson[data-run-phase="RIGHT_CONTACT"] > #room2JinksonMask{
  filter:none!important;
}







.r2-intro-run-callout{
  position:absolute!important;
  left:50%!important;
  top:18px!important;
  bottom:auto!important;
  transform:translateX(-50%)!important;
  z-index:2400!important;
  opacity:1!important;
  animation:r2RunCalloutTop .72s ease-in-out infinite alternate!important;
  pointer-events:none!important;
  white-space:nowrap;
}
@keyframes r2RunCalloutTop{
  from{transform:translateX(-50%) scale(1);filter:brightness(1)}
  to{transform:translateX(-50%) scale(1.055);filter:brightness(1.22)}
}

 
.room2-survival-warning{
  position:absolute;
  left:50%;
  top:72px;
  width:min(760px,calc(100% - 40px));
  transform:translate(-50%,-14px) scale(.98);
  z-index:2450;
  box-sizing:border-box;
  padding:16px 20px;
  border:1px solid rgba(255,75,90,.58);
  border-left:5px solid #ff4357;
  border-radius:10px;
  background:linear-gradient(180deg,rgba(35,5,11,.95),rgba(14,7,10,.94));
  box-shadow:0 16px 38px rgba(0,0,0,.55),0 0 28px rgba(214,35,55,.18);
  color:#f7eee9;
  font:800 13px/1.55 Inter,system-ui,sans-serif;
  letter-spacing:.015em;
  text-align:center;
  opacity:0;
  transition:opacity .24s ease,transform .24s ease;
  pointer-events:none;
}
.room2-survival-warning.is-visible{
  opacity:1;
  transform:translate(-50%,0) scale(1);
}
.room2-survival-warning::before{
  content:'⚠  CẢNH BÁO';
  display:block;
  margin-bottom:6px;
  color:#ff6576;
  font-size:10px;
  letter-spacing:.2em;
}

 
.room2-jinkson-cone{
  height:420px!important;
  clip-path:polygon(0 48%,100% 8%,100% 92%,0 52%)!important;
  background:linear-gradient(90deg,rgba(255,239,187,.38) 0%,rgba(255,225,151,.19) 38%,rgba(255,216,132,.08) 72%,transparent 100%)!important;
  filter:blur(7px)!important;
  transition:opacity .1s linear!important;
}
.room2-jinkson-hotspot{
  left:var(--j-target-x,50%)!important;
  top:var(--j-target-y,70%)!important;
  width:92px!important;
  height:92px!important;
  opacity:var(--j-hotspot-opacity,0)!important;
  background:radial-gradient(circle,rgba(255,244,202,.62) 0 10%,rgba(255,224,148,.28) 30%,rgba(255,202,111,.08) 58%,transparent 72%)!important;
  filter:blur(5px)!important;
  box-shadow:0 0 34px rgba(255,219,135,.18);
  transition:opacity .12s linear!important;
}
.room2-world.is-jinkson-spotted .room2-jinkson-cone{
  filter:blur(4px) brightness(1.28)!important;
}
.room2-world.is-jinkson-spotted .room2-jinkson-hotspot{
  animation:r2JinksonTargetPulse .38s ease-in-out infinite alternate;
}
.room2-world.is-jinkson-spotted .room2-vignette{
  box-shadow:inset 0 0 120px 48px rgba(103,7,17,.22),inset 0 0 42px rgba(255,48,69,.08)!important;
}
@keyframes r2JinksonTargetPulse{
  from{transform:translate(-50%,-50%) scale(.92);filter:blur(5px) brightness(1)}
  to{transform:translate(-50%,-50%) scale(1.08);filter:blur(4px) brightness(1.32)}
}

@media(max-width:700px){
  .r2-intro-run-callout{top:12px!important;font-size:30px!important;padding:9px 14px 9px 20px!important}
  .room2-survival-warning{top:58px;width:calc(100% - 20px);padding:13px 14px;font-size:11px}
}








.room2-world.is-jinkson-searching .r2-door-threat-beam,
.room2-world.is-jinkson-searching .room2-jinkson-light,
.room2-world.is-jinkson-searching .r2-window-cast{
  display:none!important;
}



.room2-jinkson-cone{
  height:82px!important;
  clip-path:polygon(0 42%,100% 34%,100% 66%,0 58%)!important;
  background:linear-gradient(90deg,
    rgba(255,244,205,.48) 0%,
    rgba(255,232,166,.28) 42%,
    rgba(255,220,135,.10) 76%,
    rgba(255,214,128,0) 100%)!important;
  filter:blur(5px)!important;
  mix-blend-mode:screen!important;
  opacity:var(--j-beam-opacity,0)!important;
  box-shadow:none!important;
}
.room2-jinkson-cone::before,
.room2-jinkson-cone::after{
  content:none!important;
  display:none!important;
}
.room2-world.is-jinkson-spotted .room2-jinkson-cone{
  height:70px!important;
  clip-path:polygon(0 43%,100% 38%,100% 62%,0 57%)!important;
  filter:blur(3px) brightness(1.32)!important;
}

 
.room2-jinkson-hotspot{
  width:78px!important;
  height:78px!important;
  opacity:var(--j-hotspot-opacity,0)!important;
  background:radial-gradient(circle,
    rgba(255,246,210,.52) 0 12%,
    rgba(255,224,150,.22) 34%,
    rgba(255,204,110,.06) 58%,
    transparent 72%)!important;
  filter:blur(5px)!important;
  box-shadow:0 0 26px rgba(255,219,135,.14)!important;
}

 
.room2-jinkson-pressure-warning{
  margin:9px 0 0!important;
  padding:8px 10px!important;
  border-left:3px solid #ff354f!important;
  background:rgba(115,7,22,.20)!important;
  color:#ff4059!important;
  font:900 11px/1.35 Inter,system-ui,sans-serif!important;
  letter-spacing:.02em!important;
  text-shadow:0 0 12px rgba(255,49,72,.28)!important;
  opacity:0;
  transform:translateY(-3px);
  transition:opacity .18s ease,transform .18s ease;
}
.room2-jinkson-pressure-warning.is-visible{
  opacity:1!important;
  transform:translateY(0)!important;
}

 
.room2-spotlight-escape-prompt{
  position:absolute;
  left:50%;
  top:118px;
  z-index:2520;
  transform:translate(-50%,-8px) scale(.98);
  min-width:min(520px,calc(100% - 42px));
  box-sizing:border-box;
  padding:12px 18px;
  border:1px solid rgba(255,77,91,.72);
  border-radius:10px;
  background:rgba(32,4,8,.94);
  box-shadow:0 14px 34px rgba(0,0,0,.52),0 0 22px rgba(255,45,65,.16);
  color:#fff2ed;
  font:900 13px/1.35 Inter,system-ui,sans-serif;
  letter-spacing:.025em;
  text-align:center;
  opacity:0;
  pointer-events:none;
  transition:opacity .18s ease,transform .18s ease;
}
.room2-spotlight-escape-prompt.is-visible{
  opacity:1;
  transform:translate(-50%,0) scale(1);
  animation:r2SpotlightEscapePulse .7s ease-in-out infinite alternate;
}
.room2-spotlight-escape-prompt::before{
  content:'⚠ ';
  color:#ff4059;
}
@keyframes r2SpotlightEscapePulse{
  from{filter:brightness(1)}
  to{filter:brightness(1.15)}
}

@media(max-width:700px){
  .room2-spotlight-escape-prompt{
    top:100px;
    min-width:calc(100% - 24px);
    padding:10px 12px;
    font-size:11px;
  }
}










.room2-world.is-powered .r2-door-threat-beam{
  display:none!important;
  opacity:0!important;
}




.room2-world.is-jinkson-in-room-light .r2-door-threat-beam,
.room2-world.is-jinkson-in-room-light .room2-door-jinkson-presence{
  display:none!important;
  opacity:0!important;
}




.room2-world.is-jinkson-in-room-light .room2-jinkson-cone{
  height:236px!important;
  clip-path:polygon(0 47%,100% 2%,100% 98%,0 53%)!important;
  background:linear-gradient(90deg,rgba(255,247,210,.34),rgba(255,235,170,.16) 34%,rgba(255,232,156,.065) 68%,transparent 100%)!important;
  filter:blur(7px)!important;
  mix-blend-mode:screen!important;
  box-shadow:none!important;
}
.room2-world.is-jinkson-in-room-light .room2-jinkson-cone::before{
  content:""!important;
  display:block!important;
  position:absolute;
  left:0;
  top:50%;
  width:78%;
  height:68px;
  transform:translateY(-50%);
  transform-origin:0 50%;
  clip-path:polygon(0 43%,100% 18%,100% 82%,0 57%);
  background:linear-gradient(90deg,rgba(255,249,220,.42),rgba(255,240,185,.16) 55%,transparent);
  filter:blur(3px);
  mix-blend-mode:screen;
  opacity:var(--j-core-opacity,0);
  pointer-events:none;
}
.room2-world.is-jinkson-in-room-light .room2-jinkson-cone::after{
  content:none!important;
  display:none!important;
}
.room2-world.is-jinkson-in-room-light .room2-jinkson-hotspot{
  left:var(--j-beam-x,50%)!important;
  top:var(--j-beam-y,70%)!important;
  width:26px!important;
  height:26px!important;
  background:rgba(255,244,205,.12)!important;
  filter:blur(6px)!important;
  box-shadow:none!important;
  opacity:var(--j-beam-opacity,0)!important;
  animation:none!important;
}

 
.room2-dialogue.has-portrait p{
  white-space:pre-line!important;
}
.room2-dialogue.has-portrait .room2-dialogue-portrait[data-expression="mask_tease"],
.room2-dialogue.has-portrait .room2-dialogue-portrait[data-expression="scared_angry"],
.room2-dialogue.has-portrait .room2-dialogue-portrait[data-expression="bouquet_hide"],
.room2-dialogue.has-portrait .room2-dialogue-portrait[data-expression="pout_angry"],
.room2-dialogue.has-portrait .room2-dialogue-portrait[data-expression="bouquet_hold"]{
  left:56px!important;
  bottom:calc(100% - 12px)!important;
  width:540px!important;
  height:650px!important;
  max-width:44vw!important;
  max-height:74vh!important;
}
.room2-dialogue.has-portrait .room2-dialogue-portrait[data-expression="mosquito_tease"]{
  left:30px!important;
  bottom:calc(100% - 14px)!important;
  width:720px!important;
  height:640px!important;
  max-width:56vw!important;
  max-height:72vh!important;
}
.room2-dialogue.has-portrait .room2-dialogue-portrait[data-expression="bouquet_offer_scene"],
.room2-dialogue.has-portrait .room2-dialogue-portrait[data-expression="bouquet_hug_scene"],
.room2-dialogue.has-portrait .room2-dialogue-portrait[data-expression="final_hug_scene"]{
  left:26px!important;
  bottom:calc(100% - 2px)!important;
  width:960px!important;
  height:600px!important;
  max-width:66vw!important;
  max-height:66vh!important;
}
.room2-dialogue.has-portrait .room2-dialogue-portrait[data-expression="bouquet_offer_scene"] img,
.room2-dialogue.has-portrait .room2-dialogue-portrait[data-expression="bouquet_hug_scene"] img,
.room2-dialogue.has-portrait .room2-dialogue-portrait[data-expression="final_hug_scene"] img{
  object-position:center bottom!important;
}
@media(max-width:1100px){
  .room2-dialogue.has-portrait .room2-dialogue-portrait[data-expression="mask_tease"],
  .room2-dialogue.has-portrait .room2-dialogue-portrait[data-expression="scared_angry"],
  .room2-dialogue.has-portrait .room2-dialogue-portrait[data-expression="bouquet_hide"],
  .room2-dialogue.has-portrait .room2-dialogue-portrait[data-expression="pout_angry"],
  .room2-dialogue.has-portrait .room2-dialogue-portrait[data-expression="bouquet_hold"]{
    left:28px!important;
    width:450px!important;
    height:560px!important;
    max-width:50vw!important;
  }
  .room2-dialogue.has-portrait .room2-dialogue-portrait[data-expression="mosquito_tease"]{
    left:12px!important;
    width:560px!important;
    height:520px!important;
    max-width:60vw!important;
  }
  .room2-dialogue.has-portrait .room2-dialogue-portrait[data-expression="bouquet_offer_scene"],
  .room2-dialogue.has-portrait .room2-dialogue-portrait[data-expression="bouquet_hug_scene"],
  .room2-dialogue.has-portrait .room2-dialogue-portrait[data-expression="final_hug_scene"]{
    left:8px!important;
    width:720px!important;
    height:500px!important;
    max-width:72vw!important;
    max-height:60vh!important;
  }
}
@media(max-width:700px){
  .room2-dialogue.has-portrait .room2-dialogue-portrait[data-expression="mask_tease"],
  .room2-dialogue.has-portrait .room2-dialogue-portrait[data-expression="scared_angry"],
  .room2-dialogue.has-portrait .room2-dialogue-portrait[data-expression="bouquet_hide"],
  .room2-dialogue.has-portrait .room2-dialogue-portrait[data-expression="pout_angry"],
  .room2-dialogue.has-portrait .room2-dialogue-portrait[data-expression="bouquet_hold"]{
    left:0!important;
    width:300px!important;
    height:400px!important;
    max-width:68vw!important;
    max-height:56vh!important;
  }
  .room2-dialogue.has-portrait .room2-dialogue-portrait[data-expression="mosquito_tease"]{
    left:-8px!important;
    width:360px!important;
    height:360px!important;
    max-width:82vw!important;
    max-height:52vh!important;
  }
  .room2-dialogue.has-portrait .room2-dialogue-portrait[data-expression="bouquet_offer_scene"],
  .room2-dialogue.has-portrait .room2-dialogue-portrait[data-expression="bouquet_hug_scene"],
  .room2-dialogue.has-portrait .room2-dialogue-portrait[data-expression="final_hug_scene"]{
    left:-6px!important;
    width:410px!important;
    height:290px!important;
    max-width:92vw!important;
    max-height:45vh!important;
  }
}

 
.r2-hall-dropped-crowbar{
  position:absolute;
  width:62px;
  height:28px;
  background:url('../images/room2/items/crowbar.png') center/contain no-repeat;
  pointer-events:none;
  opacity:0;
  transform-origin:50% 50%;
  filter:drop-shadow(0 6px 7px rgba(0,0,0,.68));
}
.r2-hall-dropped-crowbar.is-throwing{
  animation:r2FinalCrowbarThrow .86s cubic-bezier(.22,.72,.24,1) forwards;
}
.r2-hall-dropped-crowbar.has-landed{
  filter:drop-shadow(0 3px 3px rgba(0,0,0,.62));
}
@keyframes r2FinalCrowbarThrow{
  0%{opacity:1;translate:0 -18px;rotate:-42deg;scale:.88}
  42%{opacity:1;translate:-72px -38px;rotate:118deg;scale:1}
  68%{opacity:1;translate:-112px 22px;rotate:215deg;scale:1}
  80%{opacity:1;translate:-120px 7px;rotate:238deg;scale:.97}
  100%{opacity:1;translate:-134px 28px;rotate:252deg;scale:.94}
}
.room2-player.is-throwing-crowbar{
  animation:r2FinalStartle .36s ease-out 1;
}
@keyframes r2FinalStartle{
  0%{translate:0 0}
  35%{translate:0 5px}
  65%{translate:0 -3px}
  100%{translate:0 0}
}

 
.room2-dialogue.has-portrait .room2-dialogue-portrait{
  opacity:1;
  will-change:opacity,translate,scale;
}
.room2-dialogue.is-portrait-enter:not(.is-event-cg) .room2-dialogue-portrait{
  animation:r2FinalPortraitIn .24s cubic-bezier(.2,.75,.25,1) both,
            r2FinalPortraitIdle 2.8s ease-in-out .24s infinite alternate;
}
.room2-dialogue.is-portrait-enter.is-event-cg .room2-dialogue-portrait{
  animation:r2FinalCgIn .34s ease-out both,
            r2FinalCgDrift 6.8s ease-in-out .34s infinite alternate;
}
.room2-dialogue.is-heartfelt .room2-dialogue-portrait img{
  filter:drop-shadow(0 18px 28px rgba(0,0,0,.66))!important;
}
.room2-dialogue.is-ending-beat .room2-dialogue-portrait{
  animation-duration:.48s,8s!important;
}
@keyframes r2FinalPortraitIn{
  from{opacity:0;translate:-10px 8px;scale:.985}
  to{opacity:1;translate:0 0;scale:1}
}
@keyframes r2FinalCgIn{
  from{opacity:0;translate:-50% 8px;scale:.975}
  to{opacity:1;translate:-50% 0;scale:1}
}
@keyframes r2FinalPortraitIdle{
  from{translate:0 0;scale:1}
  to{translate:0 -4px;scale:1.012}
}
@keyframes r2FinalCgDrift{
  from{translate:-50% 0;scale:1}
  to{translate:-50% -3px;scale:1.022}
}

 
.room2-dialogue.has-portrait .room2-dialogue-portrait[data-speaker="MINH"][data-expression="mask_tease"],
.room2-dialogue.has-portrait .room2-dialogue-portrait[data-speaker="MINH"][data-expression="bouquet_hide"],
.room2-dialogue.has-portrait .room2-dialogue-portrait[data-speaker="MINH"][data-expression="bouquet_hold"]{
  left:52px!important;
  right:auto!important;
}
 
.room2-dialogue.has-portrait .room2-dialogue-portrait[data-speaker="CHOCO"][data-expression="scared_angry"],
.room2-dialogue.has-portrait .room2-dialogue-portrait[data-speaker="CHOCO"][data-expression="pout_angry"]{
  left:auto!important;
  right:58px!important;
}
.room2-dialogue.has-portrait .room2-dialogue-portrait[data-speaker="CHOCO"][data-expression="scared_angry"] img,
.room2-dialogue.has-portrait .room2-dialogue-portrait[data-speaker="CHOCO"][data-expression="pout_angry"] img{
  object-position:right bottom!important;
}

 
.room2-dialogue.is-event-cg .room2-dialogue-portrait{
  left:50%!important;
  right:auto!important;
  translate:-50% 0;
  object-position:center bottom!important;
}
.room2-dialogue.is-event-cg .room2-dialogue-portrait img{
  object-position:center bottom!important;
}
.room2-dialogue.is-event-cg .room2-dialogue-copy{
  text-shadow:0 2px 10px rgba(0,0,0,.7);
}

@media(max-width:1100px){
  .room2-dialogue.has-portrait .room2-dialogue-portrait[data-speaker="CHOCO"][data-expression="scared_angry"],
  .room2-dialogue.has-portrait .room2-dialogue-portrait[data-speaker="CHOCO"][data-expression="pout_angry"]{
    right:26px!important;
  }
}
@media(max-width:700px){
  .room2-dialogue.has-portrait .room2-dialogue-portrait[data-speaker="MINH"][data-expression="mask_tease"],
  .room2-dialogue.has-portrait .room2-dialogue-portrait[data-speaker="MINH"][data-expression="bouquet_hide"],
  .room2-dialogue.has-portrait .room2-dialogue-portrait[data-speaker="MINH"][data-expression="bouquet_hold"]{
    left:2px!important;
  }
  .room2-dialogue.has-portrait .room2-dialogue-portrait[data-speaker="CHOCO"][data-expression="scared_angry"],
  .room2-dialogue.has-portrait .room2-dialogue-portrait[data-speaker="CHOCO"][data-expression="pout_angry"]{
    right:2px!important;
  }
}

 
.r2-intro-run-callout{
  position:absolute!important;
  left:auto!important;
  right:12px!important;
  top:12px!important;
  bottom:auto!important;
  transform:scale(1)!important;
  transform-origin:100% 0!important;
  z-index:2400!important;
  opacity:1!important;
  animation:r2RunCalloutTopRight .72s ease-in-out infinite alternate!important;
  pointer-events:none!important;
  white-space:nowrap!important;
}
@keyframes r2RunCalloutTopRight{
  from{transform:scale(1);filter:brightness(1)}
  to{transform:scale(1.055);filter:brightness(1.22)}
}
@media(max-width:700px){
  .r2-intro-run-callout{
    left:auto!important;
    right:8px!important;
    top:8px!important;
    transform:scale(1)!important;
    transform-origin:100% 0!important;
  }
}

 

.room2-pre-character-warmup{
  position:absolute;
  inset:0;
  z-index:1650;
  display:grid;
  place-items:center;
  padding:28px;
  opacity:0;
  pointer-events:none;
  transition:opacity .18s ease;
}
.room2-pre-character-warmup[hidden]{display:none!important}
.room2-pre-character-warmup.is-visible{opacity:1}
.room2-pre-character-warmup.is-closing{opacity:0}
.room2-pre-character-warmup-backdrop{
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 50% 44%,rgba(211,180,105,.07),transparent 38%),
    linear-gradient(180deg,rgba(3,5,9,.91),rgba(3,5,9,.97));
  backdrop-filter:blur(6px);
}
.room2-pre-character-warmup-panel{
  position:relative;
  width:min(920px,94%);
  padding:34px 36px 30px;
  border:1px solid rgba(220,190,118,.28);
  background:linear-gradient(180deg,rgba(15,18,25,.97),rgba(8,10,15,.985));
  box-shadow:0 28px 76px rgba(0,0,0,.72),inset 0 1px 0 rgba(255,255,255,.04);
  color:#f5efe3;
  text-align:center;
}
.room2-pre-character-warmup-panel>span{
  display:block;
  margin-bottom:14px;
  color:#d5b76e;
  font-size:10px;
  font-weight:900;
  letter-spacing:.2em;
}
.room2-pre-character-warmup-panel>strong{
  display:block;
  max-width:820px;
  margin:0 auto;
  font-size:clamp(15px,1.55vw,21px);
  line-height:1.55;
  font-weight:850;
  letter-spacing:.01em;
  text-wrap:balance;
}
.room2-pre-character-warmup-progress{
  width:min(560px,82%);
  height:3px;
  margin:24px auto 0;
  overflow:hidden;
  background:rgba(255,255,255,.08);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.025);
}
.room2-pre-character-warmup-progress i{
  display:block;
  width:0;
  height:100%;
  background:linear-gradient(90deg,rgba(194,157,77,.72),#e7c879);
  box-shadow:0 0 16px rgba(218,184,101,.25);
}
@keyframes r2PreCharacterWarmup{from{width:0}to{width:100%}}

@media (pointer:coarse) and (max-height:700px){
  .room2-pre-character-warmup{padding:12px}
  .room2-pre-character-warmup-panel{width:min(760px,95%);padding:20px 22px 18px}
  .room2-pre-character-warmup-panel>span{margin-bottom:9px;font-size:7px}
  .room2-pre-character-warmup-panel>strong{font-size:clamp(11px,2.25vw,15px);line-height:1.45}
  .room2-pre-character-warmup-progress{margin-top:14px;height:2px}
}

.room2-character-select{
  position:absolute;
  inset:0;
  z-index:1600;
  display:grid;
  place-items:center;
  padding:28px;
  opacity:0;
  pointer-events:none;
  transition:opacity .2s ease;
}
.room2-character-select[hidden]{display:none!important}
.room2-character-select.is-visible{opacity:1;pointer-events:auto}
.room2-character-select.is-closing{opacity:0;pointer-events:none}
.room2-character-select-backdrop{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(3,5,9,.78),rgba(3,5,9,.9));
  backdrop-filter:blur(5px);
}
.room2-character-select-panel{
  position:relative;
  width:min(900px,94%);
  padding:28px 30px 24px;
  border:1px solid rgba(220,190,118,.24);
  background:rgba(10,13,20,.95);
  box-shadow:0 26px 70px rgba(0,0,0,.68);
  color:#f5efe3;
}
.room2-character-select-copy{text-align:center;margin-bottom:22px}
.room2-character-select-copy>span{
  display:block;
  margin-bottom:7px;
  color:#d5b76e;
  font-size:10px;
  font-weight:900;
  letter-spacing:.2em;
}
.room2-character-select-copy h3{
  margin:0;
  font-size:28px;
  line-height:1.05;
}
.room2-character-select-copy p{
  margin:8px 0 0;
  color:rgba(245,239,227,.62);
  font-size:12px;
}
.room2-character-select-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}
.room2-character-card{
  position:relative;
  min-height:350px;
  padding:14px 14px 17px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-end;
  border:1px solid rgba(220,190,118,.2);
  background:linear-gradient(180deg,rgba(25,30,40,.94),rgba(12,15,22,.98));
  color:#f5efe3;
  cursor:pointer;
  overflow:hidden;
  transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,filter .16s ease;
}
.room2-character-card::before{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 50% 34%,rgba(214,184,108,.13),transparent 48%);
  pointer-events:none;
}
.room2-character-card:hover,
.room2-character-card:focus-visible{
  transform:translateY(-5px);
  border-color:rgba(225,195,120,.56);
  box-shadow:0 18px 34px rgba(0,0,0,.38);
  outline:none;
}
.room2-character-card.is-available{
  border-color:rgba(222,190,109,.5);
  box-shadow:inset 0 0 0 1px rgba(222,190,109,.08);
}
.room2-character-card.is-locked{
  filter:saturate(.72) brightness(.82);
}
.room2-character-card.is-locked::after{
  content:"LOCKED";
  position:absolute;
  top:13px;
  right:13px;
  padding:5px 8px;
  border:1px solid rgba(255,85,104,.35);
  background:rgba(72,9,18,.72);
  color:#ff8190;
  font-size:8px;
  font-weight:900;
  letter-spacing:.14em;
}
.room2-character-card-art{
  position:absolute;
  inset:8px 10px 70px;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  pointer-events:none;
}
.room2-character-card-art img{
  display:block;
  width:auto;
  height:100%;
  max-width:100%;
  object-fit:contain;
  object-position:center bottom;
  image-rendering:pixelated;
  filter:drop-shadow(0 14px 18px rgba(0,0,0,.55));
}
.room2-character-card strong{
  position:relative;
  z-index:2;
  font-size:16px;
  letter-spacing:.08em;
}
.room2-character-card small{
  position:relative;
  z-index:2;
  margin-top:4px;
  color:rgba(245,239,227,.54);
  font-size:9px;
}
.room2-character-card.is-available small{color:#d8bb75}
.room2-character-card.is-denied{animation:r2CharacterDenied .28s ease}
.room2-character-select-message{
  min-height:22px;
  margin:16px 0 0;
  text-align:center;
  color:#ff7184;
  font-size:13px;
  font-weight:900;
  letter-spacing:.02em;
}
.room2-character-select-message.is-pop{animation:r2CharacterMessage .25s ease}
@keyframes r2CharacterDenied{
  0%,100%{transform:translateX(0)}
  30%{transform:translateX(-7px)}
  65%{transform:translateX(7px)}
}
@keyframes r2CharacterMessage{
  0%{opacity:0;transform:translateY(4px)}
  100%{opacity:1;transform:translateY(0)}
}
@media(max-width:760px){
  .room2-character-select{padding:14px}
  .room2-character-select-panel{padding:20px 14px 18px}
  .room2-character-select-copy h3{font-size:22px}
  .room2-character-select-grid{gap:8px}
  .room2-character-card{min-height:260px;padding:10px 8px 14px}
  .room2-character-card-art{inset:8px 4px 62px}
  .room2-character-card strong{font-size:12px}
  .room2-character-card small{font-size:7px}
  .room2-character-card.is-locked::after{top:8px;right:8px;padding:4px 6px;font-size:6px}
}

 
.room2-top-actions>span{
  color:#fff!important;
  text-shadow:0 1px 8px rgba(0,0,0,.72)!important;
}
.room2-character-select-copy{margin-bottom:22px}
.room2-character-select-copy h3{font-size:30px}
.room2-character-card{
  padding:10px!important;
  filter:none;
}
.room2-character-card-art{
  inset:8px 8px 10px!important;
}
.room2-character-card.is-locked{
  filter:saturate(.32) brightness(.48)!important;
  border-color:rgba(255,85,104,.42)!important;
  box-shadow:inset 0 0 0 1px rgba(255,85,104,.08),0 18px 34px rgba(0,0,0,.36)!important;
}
.room2-character-card.is-locked::after{content:none!important;display:none!important}
.room2-character-card-lock{
  position:absolute;
  inset:0;
  z-index:5;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:24px;
  background:linear-gradient(180deg,rgba(10,7,10,.16),rgba(19,4,8,.68));
  opacity:0;
  pointer-events:none;
  transition:opacity .16s ease;
}
.room2-character-card.is-locked .room2-character-card-lock{opacity:1}
.room2-character-card-lock b{
  padding:7px 11px;
  border:1px solid rgba(255,100,117,.5);
  background:rgba(75,8,18,.86);
  color:#ff8796;
  font-size:11px;
  font-weight:1000;
  letter-spacing:.18em;
  box-shadow:0 6px 18px rgba(0,0,0,.4);
}
.room2-character-card-lock em{
  max-width:210px;
  color:#fff;
  font-size:12px;
  line-height:1.45;
  font-style:normal;
  font-weight:900;
  text-align:center;
  text-shadow:0 2px 8px #000;
}
 
.room2-character-card>strong,
.room2-character-card>small{display:none!important}
.room2-character-select-message{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
@media(max-width:760px){
  .room2-character-card-art{inset:6px 4px 8px!important}
  .room2-character-card-lock{padding:12px;gap:7px}
  .room2-character-card-lock b{font-size:8px;padding:5px 7px}
  .room2-character-card-lock em{font-size:9px;max-width:150px}
}

 
 
.room2-dialogue.is-event-cg .room2-dialogue-portrait[data-expression="mosquito_tease"]{
  left:68%!important;
  right:auto!important;
  width:720px!important;
  height:640px!important;
  max-width:54vw!important;
  max-height:72vh!important;
}


.room2-dialogue.is-event-cg .room2-dialogue-portrait[data-expression="bouquet_offer_scene"]{
  left:67%!important;
  right:auto!important;
  width:720px!important;
  height:460px!important;
  max-width:52vw!important;
  max-height:54vh!important;
  bottom:calc(100% - 4px)!important;
}
.room2-dialogue.is-event-cg .room2-dialogue-portrait[data-expression="bouquet_hug_scene"]{
  left:68%!important;
  right:auto!important;
  width:700px!important;
  height:455px!important;
  max-width:51vw!important;
  max-height:53vh!important;
  bottom:calc(100% - 4px)!important;
}
.room2-dialogue.is-event-cg .room2-dialogue-portrait[data-expression="final_hug_scene"]{
  left:68%!important;
  right:auto!important;
  width:700px!important;
  height:455px!important;
  max-width:51vw!important;
  max-height:53vh!important;
  bottom:calc(100% - 4px)!important;
}

@media(max-width:1100px){
  .room2-dialogue.is-event-cg .room2-dialogue-portrait[data-expression="mosquito_tease"]{
    left:66%!important;
    width:550px!important;
    height:500px!important;
    max-width:58vw!important;
    max-height:66vh!important;
  }
  .room2-dialogue.is-event-cg .room2-dialogue-portrait[data-expression="bouquet_offer_scene"],
  .room2-dialogue.is-event-cg .room2-dialogue-portrait[data-expression="bouquet_hug_scene"],
  .room2-dialogue.is-event-cg .room2-dialogue-portrait[data-expression="final_hug_scene"]{
    left:66%!important;
    width:570px!important;
    height:370px!important;
    max-width:58vw!important;
    max-height:48vh!important;
  }
}

@media(max-width:700px){
  .room2-dialogue.is-event-cg .room2-dialogue-portrait[data-expression="mosquito_tease"]{
    left:61%!important;
    width:350px!important;
    height:350px!important;
    max-width:80vw!important;
    max-height:50vh!important;
  }
  .room2-dialogue.is-event-cg .room2-dialogue-portrait[data-expression="bouquet_offer_scene"],
  .room2-dialogue.is-event-cg .room2-dialogue-portrait[data-expression="bouquet_hug_scene"],
  .room2-dialogue.is-event-cg .room2-dialogue-portrait[data-expression="final_hug_scene"]{
    left:61%!important;
    width:360px!important;
    height:245px!important;
    max-width:84vw!important;
    max-height:39vh!important;
  }
}

 
.room2-completed-skip-card{
  display:grid;
  gap:10px;
}
.room2-completed-skip-card>span{
  color:#caa552;
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em;
}
.room2-skip-label{
  color:#f4efe4;
  font-size:12px;
  line-height:1.45;
  font-weight:800;
}
.room2-skip-label small{
  color:rgba(244,239,228,.62);
  font-size:10px;
  font-weight:700;
}
.room2-skip-password-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
}
.room2-skip-password-row input{
  min-width:0;
  height:38px;
  padding:0 12px;
  border:1px solid rgba(202,165,82,.38);
  background:#0c1017;
  color:#fff;
  outline:none;
  font:900 15px/1 monospace;
  letter-spacing:.22em;
}
.room2-skip-password-row input:focus{
  border-color:#e1be69;
  box-shadow:0 0 0 2px rgba(225,190,105,.12);
}
.room2-skip-password-row button,
.room2-skip-actions button{
  border:1px solid rgba(202,165,82,.34);
  background:#10151d;
  color:#f6f1e7;
  cursor:pointer;
  font:800 10px/1.2 Inter,system-ui,sans-serif;
}
.room2-skip-password-row button{
  min-width:54px;
  padding:0 12px;
}
.room2-skip-password-row button:hover,
.room2-skip-actions button:hover{
  border-color:#e1be69;
  background:#171d27;
}
.room2-skip-password-row button:disabled,
.room2-skip-password-row input:disabled{
  opacity:.55;
  cursor:default;
}
.room2-skip-feedback{
  min-height:14px;
  margin:0;
  color:#79df9d;
  font-size:9px;
  line-height:1.4;
}
.room2-skip-feedback.is-error{color:#ff7782}
.room2-skip-actions{
  display:grid;
  gap:7px;
}
.room2-skip-actions[hidden]{display:none!important}
.room2-skip-actions button{
  min-height:38px;
  padding:8px 10px;
  display:grid;
  grid-template-columns:24px 1fr;
  align-items:center;
  gap:8px;
  text-align:left;
}
.room2-skip-actions button b{
  display:grid;
  place-items:center;
  width:24px;
  height:24px;
  border:1px solid rgba(202,165,82,.48);
  color:#e1be69;
  font-size:10px;
}
.room2-skip-actions button span{font-size:10px}
.room2-completed-skip-card.is-unlocked{
  border-color:rgba(121,223,157,.3);
}



@keyframes r2FinalCgRightIn{
  from{opacity:0;translate:12px 8px;scale:.98}
  to{opacity:1;translate:0 0;scale:1}
}
@keyframes r2FinalCgRightDrift{
  from{translate:0 0;scale:1}
  to{translate:0 -3px;scale:1.012}
}
.room2-dialogue.is-portrait-enter.is-event-cg .room2-dialogue-portrait[data-expression="mosquito_tease"],
.room2-dialogue.is-portrait-enter.is-event-cg .room2-dialogue-portrait[data-expression="bouquet_offer_scene"],
.room2-dialogue.is-portrait-enter.is-event-cg .room2-dialogue-portrait[data-expression="bouquet_hug_scene"],
.room2-dialogue.is-portrait-enter.is-event-cg .room2-dialogue-portrait[data-expression="final_hug_scene"]{
  animation:r2FinalCgRightIn .28s ease-out both,
            r2FinalCgRightDrift 7s ease-in-out .28s infinite alternate!important;
  translate:0 0;
}
.room2-dialogue.is-event-cg .room2-dialogue-portrait[data-expression="mosquito_tease"]{
  left:auto!important;
  right:34px!important;
  width:545px!important;
  height:505px!important;
  max-width:43vw!important;
  max-height:60vh!important;
  bottom:calc(100% - 8px)!important;
  translate:0 0;
}
.room2-dialogue.is-event-cg .room2-dialogue-portrait[data-expression="bouquet_offer_scene"]{
  left:auto!important;
  right:24px!important;
  width:575px!important;
  height:383px!important;
  max-width:44vw!important;
  max-height:45vh!important;
  bottom:calc(100% - 3px)!important;
  translate:0 0;
}
.room2-dialogue.is-event-cg .room2-dialogue-portrait[data-expression="bouquet_hug_scene"]{
  left:auto!important;
  right:24px!important;
  width:540px!important;
  height:360px!important;
  max-width:42vw!important;
  max-height:43vh!important;
  bottom:calc(100% - 3px)!important;
  translate:0 0;
}
.room2-dialogue.is-event-cg .room2-dialogue-portrait[data-expression="final_hug_scene"]{
  left:auto!important;
  right:24px!important;
  width:540px!important;
  height:360px!important;
  max-width:42vw!important;
  max-height:43vh!important;
  bottom:calc(100% - 3px)!important;
  translate:0 0;
}
@media(max-width:1100px){
  .room2-dialogue.is-event-cg .room2-dialogue-portrait[data-expression="mosquito_tease"]{
    right:16px!important;width:430px!important;height:410px!important;max-width:48vw!important;max-height:55vh!important;
  }
  .room2-dialogue.is-event-cg .room2-dialogue-portrait[data-expression="bouquet_offer_scene"]{
    right:12px!important;width:445px!important;height:297px!important;max-width:50vw!important;max-height:40vh!important;
  }
  .room2-dialogue.is-event-cg .room2-dialogue-portrait[data-expression="bouquet_hug_scene"],
  .room2-dialogue.is-event-cg .room2-dialogue-portrait[data-expression="final_hug_scene"]{
    right:12px!important;width:420px!important;height:280px!important;max-width:48vw!important;max-height:38vh!important;
  }
}
@media(max-width:700px){
  .room2-dialogue.is-event-cg .room2-dialogue-portrait[data-expression="mosquito_tease"]{
    right:2px!important;width:285px!important;height:285px!important;max-width:72vw!important;max-height:44vh!important;
  }
  .room2-dialogue.is-event-cg .room2-dialogue-portrait[data-expression="bouquet_offer_scene"]{
    right:2px!important;width:300px!important;height:200px!important;max-width:76vw!important;max-height:32vh!important;
  }
  .room2-dialogue.is-event-cg .room2-dialogue-portrait[data-expression="bouquet_hug_scene"],
  .room2-dialogue.is-event-cg .room2-dialogue-portrait[data-expression="final_hug_scene"]{
    right:2px!important;width:290px!important;height:193px!important;max-width:74vw!important;max-height:31vh!important;
  }
}

 
.room2-victory .room2-victory-status{
  width:min(440px,100%);
  margin:18px auto 22px;
  padding:15px 18px;
  border:1px solid rgba(217,189,123,.24);
  background:rgba(255,255,255,.035);
  text-align:left;
}
.room2-victory .room2-victory-status strong{
  display:block;
  margin-bottom:7px;
  color:#d9bd7b;
  font-size:9px;
  font-weight:900;
  letter-spacing:.18em;
}
.room2-victory .room2-victory-status p{
  margin:0!important;
  color:#d8d1c7!important;
  font-size:13px!important;
  line-height:1.55;
  letter-spacing:0!important;
}

 
.room2-mobile-controls{display:none}
@media (max-width:900px) and (pointer:coarse){
  .room2-mobile-controls{
    position:absolute;
    left:0;
    right:0;
    bottom:14px;
    z-index:940;
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    padding:0 16px;
    pointer-events:none;
    user-select:none;
    -webkit-user-select:none;
  }
  .room2-mobile-stick-zone,
  .room2-mobile-action{
    pointer-events:auto;
    touch-action:none;
    -webkit-tap-highlight-color:transparent;
  }
  .room2-mobile-stick-zone{
    width:126px;
    height:126px;
    display:grid;
    place-items:center;
  }
  .room2-mobile-stick-ring{
    position:relative;
    width:112px;
    height:112px;
    border-radius:50%;
    border:2px solid rgba(235,241,249,.2);
    background:
      radial-gradient(circle at 50% 50%,rgba(255,255,255,.08) 0 17%,transparent 18%),
      radial-gradient(circle,rgba(21,27,38,.42),rgba(9,13,20,.72));
    box-shadow:inset 0 0 0 8px rgba(255,255,255,.025),0 10px 28px rgba(0,0,0,.28);
    backdrop-filter:blur(5px);
    -webkit-backdrop-filter:blur(5px);
  }
  .room2-mobile-stick-ring::before,
  .room2-mobile-stick-ring::after{
    content:"";
    position:absolute;
    left:50%;
    top:50%;
    background:rgba(232,238,247,.12);
    transform:translate(-50%,-50%);
    pointer-events:none;
  }
  .room2-mobile-stick-ring::before{width:64%;height:1px}
  .room2-mobile-stick-ring::after{width:1px;height:64%}
  .room2-mobile-stick-knob{
    position:absolute;
    left:50%;
    top:50%;
    width:52px;
    height:52px;
    margin:-26px 0 0 -26px;
    border-radius:50%;
    border:1px solid rgba(255,255,255,.28);
    background:radial-gradient(circle at 36% 30%,rgba(255,255,255,.28),rgba(108,123,147,.4) 38%,rgba(25,32,45,.82) 76%);
    box-shadow:0 7px 16px rgba(0,0,0,.36),inset 0 0 0 5px rgba(255,255,255,.035);
    transform:translate3d(0,0,0);
    transition:transform .08s ease-out,filter .12s,box-shadow .12s;
    will-change:transform;
  }
  .room2-mobile-stick-zone.is-active .room2-mobile-stick-knob{
    filter:brightness(1.18);
    box-shadow:0 8px 18px rgba(0,0,0,.42),0 0 18px rgba(102,175,218,.16),inset 0 0 0 5px rgba(255,255,255,.05);
    transition:none;
  }
  .room2-mobile-action-zone{
    display:flex;
    align-items:flex-end;
    gap:10px;
    padding-bottom:5px;
  }
  .room2-mobile-action{
    appearance:none;
    -webkit-appearance:none;
    width:78px;
    height:78px;
    border-radius:50%;
    border:1px solid rgba(255,255,255,.24);
    color:#f8f5ef;
    background:radial-gradient(circle at 34% 28%,rgba(255,255,255,.13),rgba(26,31,42,.82) 58%,rgba(8,11,17,.92));
    box-shadow:0 9px 22px rgba(0,0,0,.34),inset 0 0 0 5px rgba(255,255,255,.025);
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:2px;
    font:900 8px/1 Inter,system-ui,sans-serif;
    letter-spacing:.08em;
    text-transform:uppercase;
  }
  .room2-mobile-action-icon{font-size:19px;line-height:1;color:#e8d789;text-shadow:0 0 12px rgba(232,215,137,.26)}
  .room2-mobile-interact{width:86px;height:86px;border-color:rgba(212,181,105,.38)}
  .room2-mobile-interact .room2-mobile-action-icon{font-size:15px;color:#d6b86c}
  .room2-mobile-action.is-active{
    transform:scale(.93);
    filter:brightness(1.24);
    background:radial-gradient(circle at 50% 45%,rgba(218,188,117,.22),rgba(25,30,40,.9) 68%);
  }
  .room2-game[data-phase="VICTORY"] .room2-mobile-controls,
  .room2-game:has(.room2-pause:not([hidden])) .room2-mobile-controls,
  .room2-game:has(.room2-result:not([hidden])) .room2-mobile-controls{
    opacity:0;
    pointer-events:none;
  }
}
@media (max-width:430px) and (pointer:coarse){
  .room2-mobile-controls{bottom:10px;padding:0 10px}
  .room2-mobile-stick-zone{width:112px;height:112px}
  .room2-mobile-stick-ring{width:100px;height:100px}
  .room2-mobile-stick-knob{width:46px;height:46px;margin:-23px 0 0 -23px}
  .room2-mobile-action-zone{gap:7px}
  .room2-mobile-action{width:68px;height:68px;font-size:7px}
  .room2-mobile-interact{width:76px;height:76px}
  .room2-mobile-action-icon{font-size:17px}
}

 
@media (max-width:900px) and (pointer:coarse){
   
  #room2InteractionPrompt,
  .room2-interaction-prompt{
    display:none!important;
  }

   
  #room2Dialogue .room2-dialogue-copy > span{
    font-size:0!important;
    line-height:1!important;
  }
  #room2Dialogue .room2-dialogue-copy > span::after{
    content:"Nhấp vào đây.";
    display:block;
    font-size:9px;
    line-height:1.25;
    color:rgba(243,238,227,.54);
  }

  #room2CinematicNext{
    font-size:0!important;
  }
  #room2CinematicNext::before{
    content:"Nhấp vào đây.";
    font-size:10px;
    line-height:1;
    letter-spacing:.04em;
  }
}


/* Mobile Room 2 HUD drawer: keep gameplay full-screen while status remains one tap away. */
.room2-mobile-hud-toggle,.room2-mobile-hud-scrim,.room2-mobile-hud-head{display:none}
@media (max-width:900px) and (pointer:coarse){
  .room2-layout{position:relative}
  .room2-hud{
    position:fixed!important;
    left:10px!important;
    right:10px!important;
    bottom:max(10px,env(safe-area-inset-bottom))!important;
    z-index:1200!important;
    display:flex!important;
    flex-direction:column!important;
    gap:9px!important;
    width:auto!important;
    max-height:min(68dvh,570px)!important;
    min-height:0!important;
    padding:10px!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    border:1px solid rgba(214,184,110,.28);
    border-radius:20px 20px 16px 16px;
    background:linear-gradient(180deg,rgba(18,22,30,.985),rgba(10,13,18,.995))!important;
    box-shadow:0 -18px 60px rgba(0,0,0,.48),inset 0 1px 0 rgba(255,255,255,.05);
    transform:translate3d(0,calc(100% + 28px),0);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:transform .28s cubic-bezier(.2,.8,.2,1),opacity .2s ease,visibility .2s ease;
  }
  .room2-game.is-mobile-hud-open .room2-hud{
    transform:translate3d(0,0,0);
    opacity:1;
    visibility:visible;
    pointer-events:auto;
  }
  .room2-mobile-hud-head{
    position:sticky;
    top:-10px;
    z-index:3;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin:-10px -10px 1px;
    padding:12px 12px 10px;
    border-bottom:1px solid rgba(255,255,255,.08);
    background:linear-gradient(180deg,rgba(18,22,30,.995),rgba(18,22,30,.95));
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
  }
  .room2-mobile-hud-head>div{display:grid;gap:2px;min-width:0}
  .room2-mobile-hud-head span{font:900 8px/1 Inter,system-ui,sans-serif;letter-spacing:.18em;color:#a98e59}
  .room2-mobile-hud-head strong{font:900 13px/1.2 Inter,system-ui,sans-serif;color:#f3eee5}
  .room2-mobile-hud-head button{
    appearance:none;
    border:1px solid rgba(255,255,255,.12);
    border-radius:999px;
    padding:8px 10px;
    background:#0d1016;
    color:#eee9df;
    font:900 9px/1 Inter,system-ui,sans-serif;
    letter-spacing:.04em;
  }
  .room2-hud .room2-hud-card{flex:0 0 auto}
  .room2-mobile-hud-scrim{
    position:fixed;
    inset:0;
    z-index:1190;
    display:block;
    border:0;
    padding:0;
    background:rgba(2,4,8,.46);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    backdrop-filter:blur(2px);
    -webkit-backdrop-filter:blur(2px);
    transition:opacity .2s ease,visibility .2s ease;
  }
  .room2-game.is-mobile-hud-open .room2-mobile-hud-scrim{opacity:1;visibility:visible;pointer-events:auto}
  .room2-mobile-hud-toggle{
    position:fixed;
    top:max(10px,env(safe-area-inset-top));
    right:10px;
    z-index:1180;
    display:inline-flex;
    align-items:center;
    gap:6px;
    min-height:34px;
    padding:7px 10px 7px 7px;
    border:1px solid rgba(214,184,110,.38);
    border-radius:999px;
    background:rgba(14,18,25,.9);
    color:#f5f0e7;
    box-shadow:0 8px 24px rgba(0,0,0,.28);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    font:900 8px/1 Inter,system-ui,sans-serif;
    letter-spacing:.1em;
    touch-action:manipulation;
  }
  .room2-mobile-hud-toggle span{
    width:20px;
    height:20px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#d4b569;
    color:#11151c;
    font:900 12px/1 Georgia,serif;
  }
  .room2-game.is-mobile-hud-open .room2-mobile-hud-toggle{opacity:0;visibility:hidden;pointer-events:none}

  .room2-game[data-phase="ROOM2_OPENING_START"] .room2-mobile-hud-toggle,
  .room2-game[data-phase="ROOM2_CHOCO_ENTER_HALL"] .room2-mobile-hud-toggle,
  .room2-game[data-phase="ROOM2_CHOCO_DIALOGUE"] .room2-mobile-hud-toggle,
  .room2-game[data-phase="ROOM2_JINKSON_DOOR_OPEN"] .room2-mobile-hud-toggle,
  .room2-game[data-phase="ROOM2_JINKSON_DIALOGUE"] .room2-mobile-hud-toggle,
  .room2-game[data-phase="ROOM2_RUN_CUE"] .room2-mobile-hud-toggle,
  .room2-game[data-phase="ROOM1_EXIT"] .room2-mobile-hud-toggle,
  .room2-game[data-phase="HALLWAY_INTRO"] .room2-mobile-hud-toggle,
  .room2-game[data-phase="HALLWAY_CHASE"] .room2-mobile-hud-toggle,
  .room2-game[data-phase="HALLWAY_CAUGHT"] .room2-mobile-hud-toggle,
  .room2-game[data-phase="RED_DOOR_RANGE"] .room2-mobile-hud-toggle,
  .room2-game[data-phase="RED_DOOR_ESCAPE"] .room2-mobile-hud-toggle,
  .room2-game[data-phase="ROOM2_ENTRY"] .room2-mobile-hud-toggle,
  .room2-game[data-phase="CHAIR_BARRICADE"] .room2-mobile-hud-toggle,
  .room2-game[data-phase="FAILURE_CHASE"] .room2-mobile-hud-toggle,
  .room2-game[data-phase="VICTORY"] .room2-mobile-hud-toggle{display:none!important}

  .room2-game[data-phase="ROOM1_EXIT"] .room2-hud,
  .room2-game[data-phase="HALLWAY_INTRO"] .room2-hud,
  .room2-game[data-phase="HALLWAY_CHASE"] .room2-hud,
  .room2-game[data-phase="RED_DOOR_RANGE"] .room2-hud,
  .room2-game[data-phase="RED_DOOR_ESCAPE"] .room2-hud,
  .room2-game[data-phase="ROOM2_ENTRY"] .room2-hud,
  .room2-game[data-phase="CHAIR_BARRICADE"] .room2-hud{display:none!important}
}
@media (max-width:430px) and (pointer:coarse){
  .room2-hud{left:7px!important;right:7px!important;bottom:max(7px,env(safe-area-inset-bottom))!important;max-height:min(72dvh,540px)!important}
  .room2-mobile-hud-toggle{right:7px;padding-right:9px}
}


/* Mobile landscape gate + compact side HUD. Desktop stays untouched. */
.room2-orientation-gate{display:none}

@media (max-width:900px) and (orientation:portrait) and (pointer:coarse){
  .room2-panel.is-active .room2-orientation-gate{
    position:fixed;
    inset:0;
    z-index:5000;
    display:grid;
    place-items:center;
    padding:max(24px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));
    background:
      radial-gradient(circle at 18% 18%,rgba(210,181,110,.08),transparent 28%),
      radial-gradient(circle at 82% 78%,rgba(112,151,188,.08),transparent 30%),
      #06080c;
    color:#eee9df;
  }
  .room2-orientation-card{
    width:min(360px,92vw);
    padding:28px 24px 24px;
    border:1px solid rgba(214,184,110,.28);
    background:linear-gradient(180deg,rgba(24,28,36,.98),rgba(10,13,18,.99));
    box-shadow:0 28px 80px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.05);
    text-align:center;
  }
  .room2-orientation-phone{
    position:relative;
    width:54px;
    height:92px;
    margin:0 auto 20px;
    border:3px solid #d4b569;
    border-radius:11px;
    box-shadow:0 0 28px rgba(212,181,105,.12);
    animation:r2RotatePhone 1.8s ease-in-out infinite;
  }
  .room2-orientation-phone::before{
    content:"";
    position:absolute;
    left:50%;
    top:6px;
    width:16px;
    height:3px;
    border-radius:3px;
    background:rgba(238,233,223,.5);
    transform:translateX(-50%);
  }
  .room2-orientation-phone i{
    position:absolute;
    inset:11px 5px 7px;
    border:1px solid rgba(255,255,255,.09);
    background:linear-gradient(145deg,#111722,#080b10);
  }
  .room2-orientation-kicker{margin-bottom:8px;font:900 8px/1 Inter,system-ui,sans-serif;letter-spacing:.2em;color:#c8a969}
  .room2-orientation-card strong{display:block;font:900 clamp(24px,7vw,34px)/1.05 Inter,system-ui,sans-serif;color:#f3eee5}
  .room2-orientation-card p{margin:11px auto 0;max-width:280px;font:600 12px/1.55 Inter,system-ui,sans-serif;color:#aaa397}
  .room2-orientation-card>span{display:block;margin-top:17px;font:900 24px/1 Georgia,serif;color:#d4b569;animation:r2RotateArrow 1.8s ease-in-out infinite}
  @keyframes r2RotatePhone{0%,28%{transform:rotate(0deg)}72%,100%{transform:rotate(90deg)}}
  @keyframes r2RotateArrow{0%,28%{transform:rotate(0deg);opacity:.55}72%,100%{transform:rotate(90deg);opacity:1}}
}

@media (orientation:landscape) and (pointer:coarse) and (max-height:700px){
  .room2-orientation-gate{display:none!important}

  .room2-panel.is-focus-mode{
    padding:0!important;
    min-height:100dvh!important;
    height:100dvh!important;
    overflow:hidden!important;
  }
  .room2-panel.is-focus-mode .room2-game{
    height:100dvh!important;
    min-height:100dvh!important;
    border-radius:0!important;
  }
  .room2-panel.is-focus-mode .room2-topbar{
    min-height:38px!important;
    height:38px!important;
    padding:5px 9px!important;
  }
  .room2-panel.is-focus-mode .room2-topbar .room2-stage-copy{min-height:0!important;font-size:8px!important;gap:7px!important}
  .room2-panel.is-focus-mode .room2-topbar .room2-top-actions{gap:6px!important}
  .room2-panel.is-focus-mode .room2-topbar .room2-top-actions>span{display:none!important}
  .room2-panel.is-focus-mode .room2-topbar .room2-top-actions button{padding:5px 7px!important;font-size:7px!important}

  .room2-panel.is-focus-mode .room2-layout{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) clamp(188px,25vw,235px)!important;
    grid-template-rows:minmax(0,1fr)!important;
    height:calc(100dvh - 38px)!important;
    min-height:0!important;
    overflow:hidden!important;
  }
  .room2-panel.is-focus-mode .room2-world{
    position:relative!important;
    height:100%!important;
    min-height:0!important;
    border-right:1px solid rgba(255,255,255,.08)!important;
  }

  /* In landscape the information becomes a real side rail, never an overlay on the game. */
  .room2-panel.is-focus-mode .room2-hud{
    position:relative!important;
    inset:auto!important;
    z-index:30!important;
    display:flex!important;
    flex-direction:column!important;
    gap:6px!important;
    width:auto!important;
    height:100%!important;
    max-height:none!important;
    min-height:0!important;
    padding:7px!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    border:0!important;
    border-radius:0!important;
    background:linear-gradient(180deg,#12161e,#0d1016)!important;
    box-shadow:none!important;
    transform:none!important;
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transition:none!important;
  }
  .room2-panel.is-focus-mode .room2-hud-card{padding:8px!important;box-shadow:none!important}
  .room2-panel.is-focus-mode .room2-hud-card>span,
  .room2-panel.is-focus-mode .room2-card-row span{font-size:6px!important;letter-spacing:.12em!important}
  .room2-panel.is-focus-mode .room2-objective-card h2{margin:5px 0 3px!important;font-size:13px!important;line-height:1.12!important}
  .room2-panel.is-focus-mode .room2-objective-card p,
  .room2-panel.is-focus-mode .room2-status-card p{font-size:8px!important;line-height:1.35!important}
  .room2-panel.is-focus-mode .room2-card-row strong{font-size:8px!important}
  .room2-panel.is-focus-mode .room2-puzzle-list{gap:4px!important;margin-top:5px!important}
  .room2-panel.is-focus-mode .room2-puzzle-list b{font-size:7px!important}
  .room2-panel.is-focus-mode .room2-inventory{gap:4px!important;margin-top:5px!important}
  .room2-panel.is-focus-mode .room2-item-chip{padding:5px 6px!important;font-size:7px!important;gap:4px!important}
  .room2-panel.is-focus-mode .room2-integrity-track{height:6px!important;margin:6px 0 5px!important}
  .room2-panel.is-focus-mode .room2-integrity-card small,
  .room2-panel.is-focus-mode .room2-status-card small{font-size:6px!important}
  .room2-panel.is-focus-mode .room2-mobile-hud-head,
  .room2-panel.is-focus-mode .room2-mobile-hud-toggle,
  .room2-panel.is-focus-mode .room2-mobile-hud-scrim{display:none!important}

  .room2-panel.is-focus-mode .room2-mobile-controls{
    display:flex!important;
    bottom:max(5px,env(safe-area-inset-bottom))!important;
    padding:0 max(8px,env(safe-area-inset-left))!important;
  }
  .room2-panel.is-focus-mode .room2-mobile-stick-zone{width:94px!important;height:94px!important}
  .room2-panel.is-focus-mode .room2-mobile-stick-ring{width:82px!important;height:82px!important}
  .room2-panel.is-focus-mode .room2-mobile-stick-knob{width:38px!important;height:38px!important;margin:-19px 0 0 -19px!important}
  .room2-panel.is-focus-mode .room2-mobile-action-zone{gap:6px!important;padding-bottom:2px!important}
  .room2-panel.is-focus-mode .room2-mobile-action{width:58px!important;height:58px!important;font-size:6px!important}
  .room2-panel.is-focus-mode .room2-mobile-interact{width:64px!important;height:64px!important}
  .room2-panel.is-focus-mode .room2-mobile-action-icon{font-size:14px!important}
  .room2-panel.is-focus-mode #room2InteractionPrompt,
  .room2-panel.is-focus-mode .room2-interaction-prompt{display:none!important}

  .room2-panel.is-focus-mode .room2-dialogue{left:8px!important;right:8px!important;bottom:6px!important}
  .room2-panel.is-focus-mode .room2-cinematic-dialogue{max-width:none!important}

  /* Keep the cinematic/chase phases full width exactly as before, because HUD is intentionally hidden there. */
  .room2-game[data-phase="ROOM1_EXIT"] .room2-layout,
  .room2-game[data-phase="HALLWAY_INTRO"] .room2-layout,
  .room2-game[data-phase="HALLWAY_CHASE"] .room2-layout,
  .room2-game[data-phase="RED_DOOR_RANGE"] .room2-layout,
  .room2-game[data-phase="RED_DOOR_ESCAPE"] .room2-layout,
  .room2-game[data-phase="ROOM2_ENTRY"] .room2-layout,
  .room2-game[data-phase="CHAIR_BARRICADE"] .room2-layout{
    grid-template-columns:1fr!important;
  }
}


/* Room 2 mobile browser-viewport lock.
   Prevent Safari page zoom/pan from fighting the game after orientation changes.
   Desktop is intentionally excluded. */
@media (pointer:coarse) and (max-width:1000px), (pointer:coarse) and (max-height:700px){
  html.room2-mobile-browser-lock,
  html.room2-mobile-browser-lock body{
    width:100%!important;
    max-width:100%!important;
    min-height:100%!important;
    overflow:hidden!important;
    overscroll-behavior:none!important;
  }
  html.room2-mobile-browser-lock body{
    position:fixed!important;
    inset:0!important;
    margin:0!important;
    -webkit-text-size-adjust:100%!important;
    text-size-adjust:100%!important;
  }
  html.room2-mobile-browser-lock .room2-panel.is-active,
  html.room2-mobile-browser-lock .room2-panel.is-active .room2-game,
  html.room2-mobile-browser-lock .room2-panel.is-active .room2-layout{
    overscroll-behavior:none!important;
    -webkit-user-select:none!important;
    user-select:none!important;
  }
  html.room2-mobile-browser-lock .room2-panel.is-active .room2-world,
  html.room2-mobile-browser-lock .room2-panel.is-active .room2-mobile-controls{
    touch-action:none!important;
  }
  html.room2-mobile-browser-lock .room2-panel.is-active button,
  html.room2-mobile-browser-lock .room2-panel.is-active input,
  html.room2-mobile-browser-lock .room2-panel.is-active [role="button"]{
    touch-action:manipulation!important;
  }
  html.room2-mobile-browser-lock .room2-panel.is-active .room2-hud{
    touch-action:pan-y!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch;
  }
}

@media (orientation:landscape) and (pointer:coarse) and (max-height:700px){
  html.room2-mobile-browser-lock .room2-panel.is-focus-mode{
    width:var(--r2-mobile-vw,100vw)!important;
    max-width:var(--r2-mobile-vw,100vw)!important;
    height:var(--r2-mobile-vh,100dvh)!important;
    min-height:var(--r2-mobile-vh,100dvh)!important;
  }
  html.room2-mobile-browser-lock .room2-panel.is-focus-mode .room2-game{
    width:100%!important;
    height:var(--r2-mobile-vh,100dvh)!important;
    min-height:var(--r2-mobile-vh,100dvh)!important;
  }
  html.room2-mobile-browser-lock .room2-panel.is-focus-mode .room2-layout{
    height:calc(var(--r2-mobile-vh,100dvh) - 38px)!important;
  }
}

/* PASS: mobile landscape viewport composition
   Keep Room 2 completely inside the visible mobile landscape viewport without
   changing desktop layout/gameplay. */
@media (orientation:landscape) and (pointer:coarse) and (max-height:700px){
  /* Never expose the pink birthday page around the fixed Room 2 surface. */
  html.room2-mobile-browser-lock,
  html.room2-mobile-browser-lock body{
    background:#07090d!important;
  }
  html.room2-mobile-browser-lock .game-bg-orb,
  html.room2-mobile-browser-lock .game-bg-star{
    display:none!important;
  }
  html.room2-mobile-browser-lock .games-shell{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
  }
  html.room2-mobile-browser-lock .room2-panel.is-active.is-focus-mode{
    position:fixed!important;
    inset:0!important;
    width:var(--r2-mobile-vw,100vw)!important;
    max-width:none!important;
    height:var(--r2-mobile-vh,100dvh)!important;
    min-height:var(--r2-mobile-vh,100dvh)!important;
    margin:0!important;
    padding:0!important;
    background:#07090d!important;
    overflow:hidden!important;
    transform:none!important;
  }
  html.room2-mobile-browser-lock .room2-panel.is-active.is-focus-mode .room2-game{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    max-width:none!important;
    height:100%!important;
    min-height:0!important;
    margin:0!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
  }
  html.room2-mobile-browser-lock .room2-panel.is-active.is-focus-mode .room2-topbar{
    padding-left:max(8px,env(safe-area-inset-left))!important;
    padding-right:max(8px,env(safe-area-inset-right))!important;
  }

  /* Use a narrower, non-scrolling rail so every status card is visible at once. */
  .room2-panel.is-focus-mode .room2-layout{
    grid-template-columns:minmax(0,1fr) clamp(174px,22vw,210px)!important;
  }
  .room2-panel.is-focus-mode .room2-hud{
    gap:3px!important;
    padding:4px!important;
    overflow:hidden!important;
    overscroll-behavior:none!important;
    -webkit-overflow-scrolling:auto!important;
  }
  .room2-panel.is-focus-mode .room2-hud-card{
    flex:0 0 auto!important;
    min-height:0!important;
    padding:5px 6px!important;
    border-width:1px!important;
  }
  .room2-panel.is-focus-mode .room2-hud-card>span,
  .room2-panel.is-focus-mode .room2-card-row span,
  .room2-panel.is-focus-mode .room2-completed-skip-card>span{
    font-size:5.5px!important;
    line-height:1!important;
    letter-spacing:.11em!important;
  }
  .room2-panel.is-focus-mode .room2-objective-card h2{
    margin:3px 0 2px!important;
    font-size:10px!important;
    line-height:1.08!important;
  }
  .room2-panel.is-focus-mode .room2-objective-card p,
  .room2-panel.is-focus-mode .room2-status-card p{
    margin:2px 0 0!important;
    font-size:6.5px!important;
    line-height:1.18!important;
  }
  .room2-panel.is-focus-mode .room2-card-row strong{
    font-size:7px!important;
    line-height:1!important;
  }
  .room2-panel.is-focus-mode .room2-puzzle-list{
    gap:2px!important;
    margin-top:3px!important;
  }
  .room2-panel.is-focus-mode .room2-puzzle-list b{
    font-size:6px!important;
    line-height:1.1!important;
  }
  .room2-panel.is-focus-mode .room2-integrity-track{
    height:4px!important;
    margin:3px 0 2px!important;
  }
  .room2-panel.is-focus-mode .room2-integrity-card small,
  .room2-panel.is-focus-mode .room2-status-card small{
    font-size:5px!important;
    line-height:1.1!important;
  }
  .room2-panel.is-focus-mode .room2-inventory{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:2px!important;
    margin-top:3px!important;
  }
  .room2-panel.is-focus-mode .room2-item-chip{
    min-height:22px!important;
    padding:2px 4px!important;
    gap:3px!important;
    font-size:5.8px!important;
    line-height:1.05!important;
    white-space:nowrap!important;
    overflow:hidden!important;
  }
  .room2-panel.is-focus-mode .room2-item-chip img{
    width:14px!important;
    height:14px!important;
    flex:0 0 14px!important;
  }

  /* Completed-room jump card was the tallest item in the rail; compact it rather than hiding it. */
  .room2-panel.is-focus-mode .room2-completed-skip-card{
    gap:3px!important;
  }
  .room2-panel.is-focus-mode .room2-skip-label{
    font-size:6.4px!important;
    line-height:1.12!important;
  }
  .room2-panel.is-focus-mode .room2-skip-label small{
    font-size:5.5px!important;
  }
  .room2-panel.is-focus-mode .room2-skip-password-row{
    grid-template-columns:minmax(0,1fr) 38px!important;
    gap:3px!important;
  }
  .room2-panel.is-focus-mode .room2-skip-password-row input{
    height:25px!important;
    padding:0 7px!important;
    font-size:10px!important;
  }
  .room2-panel.is-focus-mode .room2-skip-password-row button{
    min-width:0!important;
    padding:0 5px!important;
    font-size:6.5px!important;
  }
  .room2-panel.is-focus-mode .room2-skip-feedback{
    min-height:0!important;
    margin:0!important;
    font-size:5.5px!important;
    line-height:1.1!important;
  }
  .room2-panel.is-focus-mode .room2-skip-feedback:empty{display:none!important}
  .room2-panel.is-focus-mode .room2-skip-actions{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:2px!important;
  }
  .room2-panel.is-focus-mode .room2-skip-actions button{
    min-height:27px!important;
    padding:2px!important;
    grid-template-columns:1fr!important;
    justify-items:center!important;
    gap:1px!important;
    text-align:center!important;
  }
  .room2-panel.is-focus-mode .room2-skip-actions button b{
    width:13px!important;
    height:13px!important;
    font-size:5.5px!important;
  }
  .room2-panel.is-focus-mode .room2-skip-actions button span{
    font-size:5px!important;
    line-height:1.05!important;
  }

  /* Character choice must fit inside the world height after rotation. */
  .room2-panel.is-focus-mode .room2-character-select{
    padding:5px!important;
    place-items:stretch center!important;
  }
  .room2-panel.is-focus-mode .room2-character-select-panel{
    width:min(720px,96%)!important;
    height:100%!important;
    max-height:100%!important;
    min-height:0!important;
    padding:8px 10px!important;
    display:grid!important;
    grid-template-rows:auto minmax(0,1fr)!important;
    overflow:hidden!important;
  }
  .room2-panel.is-focus-mode .room2-character-select-copy{
    margin:0 0 6px!important;
  }
  .room2-panel.is-focus-mode .room2-character-select-copy>span{
    display:none!important;
  }
  .room2-panel.is-focus-mode .room2-character-select-copy h3{
    font-size:19px!important;
    line-height:1!important;
  }
  .room2-panel.is-focus-mode .room2-character-select-copy p{
    margin-top:4px!important;
    font-size:8px!important;
    line-height:1.15!important;
  }
  .room2-panel.is-focus-mode .room2-character-select-grid{
    min-height:0!important;
    height:100%!important;
    gap:7px!important;
  }
  .room2-panel.is-focus-mode .room2-character-card{
    min-height:0!important;
    height:100%!important;
    padding:3px!important;
  }
  .room2-panel.is-focus-mode .room2-character-card-art{
    inset:3px!important;
  }
  .room2-panel.is-focus-mode .room2-character-card-art img{
    width:auto!important;
    height:100%!important;
    max-width:100%!important;
    max-height:100%!important;
    object-fit:contain!important;
    object-position:center bottom!important;
  }
  .room2-panel.is-focus-mode .room2-character-card-lock{
    padding:6px!important;
    gap:4px!important;
  }
  .room2-panel.is-focus-mode .room2-character-card-lock b{
    padding:3px 5px!important;
    font-size:5.5px!important;
  }
  .room2-panel.is-focus-mode .room2-character-card-lock em{
    max-width:120px!important;
    font-size:6px!important;
    line-height:1.15!important;
  }

  /* Cinematic portraits use the available height instead of desktop-sized bottom offsets.
     This keeps Choco and Jinkson's full body/head inside the landscape world. */
  .room2-panel.is-focus-mode .room2-cinematic-box{
    left:2%!important;
    right:2%!important;
    bottom:5px!important;
    min-height:78px!important;
    padding:17px 16px 11px!important;
  }
  .room2-panel.is-focus-mode .room2-cinematic-name{
    left:12px!important;
    top:-11px!important;
    min-width:82px!important;
    padding:5px 9px!important;
    font-size:7px!important;
  }
  .room2-panel.is-focus-mode .room2-cinematic-box p{
    min-height:0!important;
    margin:0 80px 0 0!important;
    font-size:12px!important;
    line-height:1.2!important;
  }
  .room2-panel.is-focus-mode .room2-cinematic-next{
    right:13px!important;
    bottom:9px!important;
    padding:5px 0!important;
    font-size:6.5px!important;
  }
  .room2-panel.is-focus-mode .room2-cinematic-portrait,
  .room2-panel.is-focus-mode .room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="confused_opening"],
  .room2-panel.is-focus-mode .room2-cinematic-portrait[data-speaker="JINKSON"][data-expression="laugh_intro"]{
    top:3px!important;
    bottom:auto!important;
    width:min(40%,270px)!important;
    height:calc(100% - 94px)!important;
    max-height:none!important;
    align-items:flex-start!important;
  }
  .room2-panel.is-focus-mode .room2-cinematic-portrait.is-left{left:3%!important}
  .room2-panel.is-focus-mode .room2-cinematic-portrait.is-right,
  .room2-panel.is-focus-mode .room2-cinematic-portrait[data-speaker="JINKSON"][data-expression="laugh_intro"].is-right{right:3%!important}
  .room2-panel.is-focus-mode .room2-cinematic-portrait img,
  .room2-panel.is-focus-mode .room2-cinematic-portrait[data-speaker="JINKSON"][data-expression="laugh_intro"] img{
    width:auto!important;
    height:100%!important;
    max-width:100%!important;
    max-height:100%!important;
    object-fit:contain!important;
    object-position:center top!important;
    transform:none!important;
  }
}

@media (orientation:landscape) and (pointer:coarse) and (max-height:390px){
  .room2-panel.is-focus-mode .room2-layout{
    grid-template-columns:minmax(0,1fr) clamp(164px,21vw,194px)!important;
  }
  .room2-panel.is-focus-mode .room2-hud{gap:2px!important;padding:3px!important}
  .room2-panel.is-focus-mode .room2-hud-card{padding:4px 5px!important}
  .room2-panel.is-focus-mode .room2-objective-card h2{font-size:9px!important}
  .room2-panel.is-focus-mode .room2-objective-card p,
  .room2-panel.is-focus-mode .room2-status-card p{font-size:5.8px!important}
  .room2-panel.is-focus-mode .room2-item-chip{min-height:19px!important;font-size:5px!important}
  .room2-panel.is-focus-mode .room2-character-select-copy h3{font-size:17px!important}
  .room2-panel.is-focus-mode .room2-character-select-copy p{font-size:7px!important}
  .room2-panel.is-focus-mode .room2-cinematic-box{min-height:70px!important;padding:15px 14px 9px!important}
  .room2-panel.is-focus-mode .room2-cinematic-box p{font-size:11px!important}
  .room2-panel.is-focus-mode .room2-cinematic-portrait,
  .room2-panel.is-focus-mode .room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="confused_opening"],
  .room2-panel.is-focus-mode .room2-cinematic-portrait[data-speaker="JINKSON"][data-expression="laugh_intro"]{
    height:calc(100% - 84px)!important;
  }
}

/* Room 2 / Intro hallway door — final override on the current landscape-fit baseline. */
.r2-intro-red-door,
.r2-intro-red-door.is-opening,
.r2-intro-red-door.is-open{
  left:520px!important;
  top:18px!important;
  width:160px!important;
  height:34px!important;
  border:0!important;
  padding:0!important;
  margin:0!important;
  overflow:visible!important;
  background:transparent!important;
  box-shadow:none!important;
  transform:none!important;
  filter:none!important;
  z-index:238!important;
  color:transparent!important;
}
.r2-intro-red-door::before{
  content:""!important;
  position:absolute!important;
  left:-110px!important;
  top:-8px!important;
  width:380px!important;
  height:48px!important;
  border-radius:0!important;
  background:linear-gradient(180deg,#20242b 0%,#171b21 54%,#0e1117 100%)!important;
  box-shadow:inset 0 -3px 0 #34383e,inset 0 -8px 14px rgba(0,0,0,.34)!important;
  pointer-events:none!important;
  z-index:0!important;
}
.r2-intro-red-door .r2-intro-door-back{
  display:block!important;
  position:absolute!important;
  left:0!important;
  top:-1px!important;
  width:160px!important;
  height:36px!important;
  border-radius:0!important;
  background:linear-gradient(180deg,#872b36 0%,#6e222c 48%,#4d171f 100%)!important;
  box-shadow:inset 0 0 0 2px rgba(235,194,177,.15),inset 0 -6px 0 rgba(0,0,0,.22),-3px 0 0 #393238,3px 0 0 #393238!important;
  opacity:1!important;
  filter:none!important;
  transform:none!important;
  z-index:1!important;
}
.r2-intro-red-door .r2-intro-door-leaf,
.r2-intro-red-door .r2-intro-door-shadow{
  display:none!important;
}
.r2-intro-red-door .r2-intro-door-knob{
  display:block!important;
  position:absolute!important;
  left:73px!important;
  top:27px!important;
  width:14px!important;
  height:7px!important;
  border-radius:999px!important;
  background:linear-gradient(180deg,#f0d58d 0%,#c99a49 100%)!important;
  box-shadow:0 0 0 2px #5a3b2d,0 2px 4px rgba(0,0,0,.42)!important;
  opacity:1!important;
  filter:none!important;
  transform:none!important;
  z-index:3!important;
}
.r2-intro-red-door.is-nearby .r2-intro-door-back{
  background:linear-gradient(180deg,#9a3541 0%,#7b2934 48%,#571c24 100%)!important;
  box-shadow:inset 0 0 0 2px rgba(250,218,190,.18),inset 0 -6px 0 rgba(0,0,0,.22),-3px 0 0 #40383d,3px 0 0 #40383d,0 0 0 2px rgba(219,185,94,.18)!important;
}
.r2-intro-red-door.is-opening .r2-intro-door-back,
.r2-intro-red-door.is-open .r2-intro-door-back{
  background:linear-gradient(180deg,#17191e,#07090d)!important;
}
.r2-intro-red-door.is-opening .r2-intro-door-knob,
.r2-intro-red-door.is-open .r2-intro-door-knob{
  opacity:.14!important;
}

.room2-game.is-intro-door-blackout .room2-viewport::after{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  z-index:5000!important;
  opacity:1!important;
  background:#000!important;
  mix-blend-mode:normal!important;
  pointer-events:none!important;
  transition:opacity .08s linear!important;
}

/* Desktop-only Room 2 focus sizing.
   The gameplay map is authored for a 1200px world plus the 320px HUD rail.
   Prevent very wide desktop screens from stretching the viewport past the map
   and creating an unused black strip. Mobile landscape rules stay untouched. */
/* Room 2 mansion-map redesign: code-built world, no background image. */
.room2-main-map.r2m-mansion-map{width:2850px;height:1950px;background:#05070b;overflow:hidden;isolation:isolate}
.r2m-mansion-map .r2m-void{position:absolute;inset:0;background:radial-gradient(ellipse at 49% 47%,#0b0e14 0 34%,#05070b 70%,#020305 100%);z-index:0}
.r2m-room,.r2m-connector{position:absolute;box-sizing:border-box;z-index:1;overflow:hidden;border:10px solid #181821;box-shadow:0 0 0 3px #07080c,0 0 0 5px rgba(66,61,80,.42),0 16px 35px rgba(0,0,0,.62),inset 0 0 42px rgba(0,0,0,.58)}
.r2m-room::before{content:"";position:absolute;inset:8px;border:2px solid rgba(99,87,85,.22);box-shadow:inset 0 0 22px rgba(0,0,0,.48);pointer-events:none;z-index:2}
.r2m-room::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 18% 20%,rgba(255,218,142,.035),transparent 28%),radial-gradient(circle at 82% 70%,rgba(35,41,55,.18),transparent 38%),repeating-linear-gradient(92deg,transparent 0 69px,rgba(255,255,255,.012) 70px 71px);pointer-events:none;z-index:3}
.r2m-room-title{position:absolute;left:16px;top:12px;z-index:18;font:800 10px/1.1 ui-monospace,monospace;letter-spacing:.16em;color:rgba(206,190,164,.22);text-shadow:0 1px 2px #000}
.r2m-study{left:90px;top:130px;width:590px;height:600px}
.r2m-main-hall{left:800px;top:130px;width:1250px;height:1550px}
.r2m-nursery{left:2160px;top:110px;width:590px;height:600px}
.r2m-storage{left:80px;top:1030px;width:610px;height:650px}
.r2m-service{left:2110px;top:760px;width:380px;height:270px}
.r2m-generator-zone{left:2320px;top:890px;width:470px;height:400px}
.r2m-tool-room{left:2320px;top:1430px;width:470px;height:300px}
.r2m-connector{border-width:8px;background:#18191f;box-shadow:0 0 0 3px #06070a,inset 0 0 24px rgba(0,0,0,.62)}
.r2m-connector::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(255,255,255,.025) 0 1px,transparent 1px 38px),repeating-linear-gradient(0deg,rgba(0,0,0,.22) 0 1px,transparent 1px 38px);opacity:.7}
.r2m-connector.study-link{left:670px;top:420px;width:150px;height:130px}
.r2m-connector.nursery-link{left:2035px;top:420px;width:145px;height:130px}
.r2m-connector.storage-link{left:680px;top:1160px;width:145px;height:140px}
.r2m-connector.service-link{left:2025px;top:815px;width:105px;height:140px}
.r2m-connector.generator-link{left:2470px;top:1005px;width:90px;height:135px;border-left:0;border-right:0}
.r2m-connector.tool-link{left:2470px;top:1340px;width:130px;height:110px;border-top:0;border-bottom:0}
.r2m-floor{position:absolute;inset:0;z-index:0}
.r2m-floor.wood{background:repeating-linear-gradient(90deg,#241b19 0 30px,#1c1615 30px 33px,#30211c 33px 62px,#171314 62px 65px),linear-gradient(#231918,#171214)}
.r2m-floor.wood.dark{filter:brightness(.72) saturate(.75)}
.r2m-floor.marble{background:linear-gradient(45deg,#24252b 25%,transparent 25% 75%,#24252b 75%),linear-gradient(45deg,#15171d 25%,#303138 25% 75%,#15171d 75%);background-size:72px 72px;background-position:0 0,36px 36px}
.r2m-floor.nursery-floor{background:repeating-linear-gradient(90deg,#29232a 0 42px,#1e1a20 42px 44px),linear-gradient(#2b242a,#1a171c)}
.r2m-floor.service-floor,.r2m-floor.industrial{background:linear-gradient(90deg,rgba(255,255,255,.025),transparent 20%),repeating-linear-gradient(0deg,#1d2227 0 34px,#14181c 34px 36px),repeating-linear-gradient(90deg,transparent 0 70px,rgba(5,7,9,.55) 70px 72px)}
.r2m-floor.industrial.tool{background-color:#171b1f;filter:brightness(.86)}
.r2m-main-runner{position:absolute;left:213px;top:86px;width:118px;height:760px;z-index:4;background:linear-gradient(90deg,#351019,#641622 11%,#7a1d2b 50%,#61151f 89%,#2d0d15);border:3px solid #7b643a;box-shadow:0 0 0 3px rgba(33,19,18,.9),0 14px 20px rgba(0,0,0,.35);opacity:.78}
.r2m-main-runner::before{content:"";position:absolute;inset:12px;border:1px dashed rgba(210,176,104,.34);background:radial-gradient(ellipse at 44% 17%,rgba(0,0,0,.25),transparent 12%),radial-gradient(ellipse at 62% 58%,rgba(78,8,17,.55),transparent 9%),linear-gradient(173deg,transparent 0 42%,rgba(219,198,152,.07) 43% 44%,transparent 45%)}
.r2m-main-runner::after{content:"";position:absolute;left:16px;right:20px;bottom:78px;height:86px;background:repeating-linear-gradient(155deg,transparent 0 10px,rgba(210,190,150,.08) 11px 12px);transform:rotate(2deg);opacity:.8}
.r2m-carpet{position:absolute;z-index:4;border:3px solid #6d5935;background:#631825;box-shadow:0 0 0 3px #211617,0 9px 14px rgba(0,0,0,.38)}
.study-carpet{left:92px;top:270px;width:300px;height:150px;transform:rotate(-2deg);opacity:.72}
.nursery-rug{position:absolute;left:76px;top:290px;width:182px;height:122px;border-radius:50%;background:radial-gradient(ellipse,#543544 0 58%,#251b25 60% 66%,#805c49 68% 71%,#1d171d 73%);z-index:4;opacity:.7}
.r2m-wall-detail.books{position:absolute;z-index:7;background:repeating-linear-gradient(90deg,#1a1213 0 12px,#493329 12px 17px,#261b1a 17px 25px,#653f2b 25px 30px,#1f1516 30px 38px);border:4px solid #291c1a;box-shadow:inset 0 0 0 2px #0b090a,0 7px 13px rgba(0,0,0,.55)}
.r2m-wall-detail.books.north{left:72px;top:38px;width:360px;height:74px}.r2m-wall-detail.books.west{left:18px;top:138px;width:72px;height:230px}
.r2m-web{position:absolute;width:70px;height:70px;z-index:12;background:repeating-conic-gradient(from 0deg at 0 0,rgba(194,194,190,.18) 0 1deg,transparent 1deg 18deg);clip-path:polygon(0 0,100% 0,0 100%);opacity:.7}.web-a{right:14px;top:14px}.web-b{left:12px;top:12px}
.r2m-crack{position:absolute;width:72px;height:96px;z-index:10;background:linear-gradient(72deg,transparent 0 46%,rgba(3,3,4,.72) 47% 49%,transparent 50%),linear-gradient(108deg,transparent 0 56%,rgba(4,4,5,.62) 57% 59%,transparent 60%);opacity:.75}.crack-a{right:26px;bottom:70px}
.r2m-statue{position:absolute;left:252px;top:345px;width:72px;height:130px;z-index:9;background:linear-gradient(#777875,#35383b);clip-path:polygon(30% 0,70% 0,84% 20%,74% 52%,94% 70%,83% 100%,17% 100%,7% 70%,26% 52%,16% 20%);filter:drop-shadow(0 10px 8px rgba(0,0,0,.6));opacity:.78}.r2m-statue i{position:absolute;left:13px;right:13px;bottom:0;height:24px;background:#2a2c2e}
.r2m-console{position:absolute;width:118px;height:46px;z-index:7;background:linear-gradient(#4f3429,#221817);border:3px solid #171011;box-shadow:0 9px 10px rgba(0,0,0,.45),inset 0 0 0 2px rgba(120,85,55,.35)}.console-left{left:55px;top:535px}.console-right{right:55px;top:535px}
.r2m-bust{position:absolute;width:54px;height:78px;z-index:9;background:linear-gradient(#77736d,#3b3938);clip-path:polygon(34% 0,66% 0,76% 22%,68% 44%,86% 65%,100% 100%,0 100%,14% 65%,32% 44%,24% 22%);filter:drop-shadow(0 6px 5px #000)}.bust-left{left:72px;top:650px}.bust-right{right:72px;top:650px}
.r2m-decor{position:absolute;z-index:8;filter:drop-shadow(0 5px 5px rgba(0,0,0,.48))}.r2m-decor.chair{width:46px;height:54px;background:#491d24;border:3px solid #2a1618;border-radius:13px 13px 6px 6px}.hall-chair-a{left:156px;top:680px;transform:rotate(-19deg)}.hall-chair-b{right:160px;top:785px;transform:rotate(24deg)}
.r2m-decor.candelabra{width:34px;height:62px;background:linear-gradient(90deg,transparent 43%,#806334 44% 56%,transparent 57%);}.r2m-decor.candelabra::before{content:"";position:absolute;left:2px;right:2px;top:8px;height:5px;background:#8b6e38;box-shadow:0 -8px 0 -1px #f1b747,12px -5px 0 -2px #e9aa3c,-12px -5px 0 -2px #e9aa3c}.hall-candle-a{left:106px;top:355px}.hall-candle-b{right:110px;top:355px}
.r2m-decor.papers{width:66px;height:44px;background:linear-gradient(18deg,transparent 0 25%,#8d836c 26% 45%,transparent 46%),linear-gradient(-17deg,transparent 0 38%,#a79a7d 39% 60%,transparent 61%);opacity:.6}.study-papers{left:330px;top:405px}.hall-papers-a{left:355px;top:520px}
.r2m-decor.books-pile{width:64px;height:32px;background:linear-gradient(0deg,#4b2528 0 7px,#242f39 8px 15px,#5a4324 16px 22px,#30242c 23px 30px);transform:rotate(7deg)}.study-books{left:117px;top:425px}
.r2m-decor.blood{width:92px;height:58px;background:radial-gradient(ellipse at 40% 60%,rgba(84,6,13,.68) 0 18%,transparent 20%),radial-gradient(ellipse at 58% 42%,rgba(99,8,17,.52) 0 13%,transparent 15%),linear-gradient(66deg,transparent 45%,rgba(90,7,16,.44) 46% 49%,transparent 50%);opacity:.8}.hall-blood-a{left:360px;top:410px}.nursery-blood{right:114px;top:220px}.storage-blood{left:320px;bottom:46px}
.r2m-decor.plant{width:54px;height:74px;background:radial-gradient(ellipse at 50% 75%,#34281d 0 22%,transparent 24%),repeating-conic-gradient(from -25deg at 50% 60%,#3c4731 0 7deg,transparent 8deg 29deg);filter:grayscale(.5) brightness(.65)}.dead-plant-a{left:45px;top:160px}.dead-plant-b{right:42px;top:160px}
.r2m-bed{position:absolute;right:54px;top:105px;width:230px;height:180px;z-index:7;background:#2d2931;border:7px solid #19151a;box-shadow:0 12px 18px rgba(0,0,0,.5)}.r2m-bed i{position:absolute;left:20px;right:20px;top:12px;height:54px;background:#b0a99c;border-radius:8px;filter:brightness(.62)}.r2m-bed b{position:absolute;left:8px;right:8px;top:63px;bottom:12px;background:linear-gradient(160deg,#6d4b59,#301f29);opacity:.8}.r2m-bed em{position:absolute;left:100px;top:58px;width:52px;height:48px;border-radius:50%;background:#6b4934;box-shadow:0 22px 0 -8px #59402f}
.r2m-decor.rocking-horse{left:210px;top:275px;width:92px;height:66px;background:#60412d;clip-path:polygon(20% 25%,60% 20%,78% 4%,89% 10%,78% 34%,69% 39%,70% 68%,88% 82%,84% 90%,55% 78%,26% 82%,8% 94%,3% 87%,17% 67%)}
.r2m-decor.teddy{right:145px;top:122px;width:38px;height:54px;background:radial-gradient(circle at 50% 30%,#72523b 0 29%,transparent 30%),radial-gradient(ellipse at 50% 72%,#654833 0 38%,transparent 39%)}
.r2m-decor.toybox{left:55px;bottom:45px;width:110px;height:70px;background:#4a2d25;border:4px solid #251918}.r2m-decor.nursery-drawings{right:24px;top:28px;width:86px;height:72px;background:linear-gradient(11deg,#998b70 0 45%,transparent 46%),linear-gradient(-9deg,transparent 0 48%,#766d5d 49% 82%,transparent 83%);opacity:.45}
.r2m-decor.mirror{width:74px;height:106px;border:7px solid #59432c;background:linear-gradient(145deg,#27303a,#0b0d11 70%);box-shadow:inset 0 0 20px #000}.nursery-mirror{left:40px;top:95px}.r2m-curtain{position:absolute;right:18px;top:20px;width:72px;height:105px;background:repeating-linear-gradient(90deg,#3e1c2c 0 11px,#25131d 11px 20px);opacity:.78;z-index:6}
.r2m-decor.crates{width:112px;height:90px;background:repeating-linear-gradient(0deg,#523a2a 0 26px,#261c17 27px 30px);border:4px solid #241812;box-shadow:inset 0 0 0 3px rgba(126,87,54,.35)}.storage-crates-a{left:42px;top:75px}.storage-crates-b{right:40px;bottom:55px;transform:rotate(4deg)}
.r2m-decor.covered{width:138px;height:122px;background:linear-gradient(160deg,#77756f,#4f5050 62%,#2e3032);clip-path:polygon(18% 0,78% 3%,94% 94%,7% 100%);opacity:.65}.covered-a{left:110px;top:215px}.covered-b{right:80px;top:130px;transform:scale(.8)}
.r2m-decor.wheel{left:40px;bottom:42px;width:92px;height:92px;border:9px solid #39281f;border-radius:50%;box-sizing:border-box;background:repeating-conic-gradient(#39281f 0 4deg,transparent 5deg 42deg)}.r2m-decor.broken-frame{right:55px;top:55px;width:88px;height:112px;border:8px solid #574027;transform:rotate(13deg)}
.r2m-decor.barrel{width:54px;height:68px;border-radius:45%;background:repeating-linear-gradient(0deg,#3f3028 0 18px,#191618 19px 23px)}.barrel-a{left:275px;top:78px}.barrel-b{left:328px;top:92px}
.r2m-pipe{position:absolute;z-index:7;background:#44494a;box-shadow:inset 0 0 0 3px #24292b}.pipe-a{left:14px;top:40px;width:16px;height:150px}.pipe-b{right:18px;top:20px;width:13px;height:180px}.generator-pipe-a{left:20px;top:42px;width:16px;height:245px}.generator-pipe-b{right:20px;top:35px;width:19px;height:255px}
.r2m-wire{position:absolute;z-index:8;width:170px;height:120px;border:4px solid #1c1d21;border-color:#1c1d21 transparent transparent #1c1d21;border-radius:50%;opacity:.8}.wire-a{left:60px;top:25px}.generator-wire{right:55px;top:12px;transform:rotate(22deg)}
.r2m-decor.cart{left:96px;top:88px;width:94px;height:56px;background:#34383a;border:4px solid #1a1c1e;box-shadow:0 12px 0 -8px #111}.r2m-decor.locker{right:38px;top:36px;width:64px;height:142px;background:linear-gradient(90deg,#34383b,#202428);border:4px solid #141719}.r2m-decor.broken-lamp{left:205px;bottom:26px;width:15px;height:75px;background:#514837;transform:rotate(31deg)}
.r2m-generator-backwall{position:absolute;left:48px;right:48px;top:40px;height:108px;background:linear-gradient(#282f31,#121719);border:5px solid #0c1012;z-index:5;box-shadow:inset 0 0 0 2px #46504d}.r2m-warning-floor{position:absolute;left:72px;right:72px;bottom:22px;height:36px;z-index:5;background:repeating-linear-gradient(135deg,#715b1d 0 14px,#181919 14px 28px);opacity:.65}.r2m-decor.oil{width:120px;height:58px;background:radial-gradient(ellipse,rgba(6,8,9,.74),transparent 65%)}.generator-oil{left:190px;bottom:30px}.tool-oil{right:55px;bottom:24px}
.r2m-tool-wall{position:absolute;left:30px;right:30px;top:38px;height:72px;background:radial-gradient(circle,#090b0c 0 3px,transparent 4px) 0 0/18px 18px,#303538;border:4px solid #171a1c;z-index:5}.r2m-decor.toolbox{left:70px;bottom:34px;width:92px;height:48px;background:#7f2027;border:4px solid #351217;border-radius:5px}.r2m-decor.tool-shelf{width:90px;height:112px;background:repeating-linear-gradient(0deg,#303436 0 7px,transparent 7px 32px);border:5px solid #1a1d1f}.tool-shelf-a{right:35px;top:96px}.tool-shelf-b{left:190px;top:112px;transform:scale(.8)}.r2m-decor.boxes{width:100px;height:72px;background:linear-gradient(90deg,#4a3526 0 48%,#2c211b 49% 52%,#59402c 53%)}.tool-boxes{right:145px;bottom:25px}
.r2m-lamp-grid .r2-room-lamp{z-index:20}.r2m-lamp.lamp-a{left:640px!important;top:420px!important}.r2m-lamp.lamp-b{left:1105px!important;top:520px!important}.r2m-lamp.lamp-c{left:140px!important;top:350px!important}.r2m-lamp.lamp-d{left:1210px!important;top:350px!important}.r2m-lamp.lamp-e{left:120px!important;top:900px!important}.r2m-lamp.lamp-f{left:1185px!important;top:735px!important}.r2m-lamp.lamp-g{left:1330px!important;top:760px!important}.r2m-lamp.lamp-h{left:1680px!important;top:1140px!important}
.r2m-mansion-map .r2-entrance-door{left:980px!important;top:1318px!important;width:120px!important;height:40px!important;transform:none}.r2m-mansion-map .r2-exit-door{left:980px!important;top:174px!important;width:120px!important;height:48px!important}.r2m-mansion-map .r2-exit-door span{top:51px}.r2m-mansion-map .r2-door-debris-field{left:805px!important;top:1140px!important}.r2m-mansion-map .r2-door-threat{left:810px!important;top:1120px!important}
.r2m-mansion-map .r2-barricade-chair{left:670px;top:1055px}
.r2m-photo-clue-spread{position:absolute;inset:0;pointer-events:none;z-index:388}
.r2m-clue-photo{position:absolute;width:24px;height:30px;padding:2px;border:0;background:linear-gradient(145deg,#d4cab4,#a99d88);box-shadow:0 3px 5px rgba(0,0,0,.72),0 0 0 1px rgba(42,32,26,.9);cursor:pointer;color:#d5c8aa;pointer-events:auto;transform-origin:50% 80%;transition:filter .2s,box-shadow .2s,transform .2s}
.r2m-clue-photo::before{content:"";position:absolute;inset:3px;background:linear-gradient(160deg,rgba(255,255,255,.24),transparent 42%),#777067;opacity:.7;box-shadow:inset 0 0 0 1px rgba(40,34,31,.45);pointer-events:none}
.r2m-clue-photo img{display:block;width:100%;height:100%;object-fit:cover;opacity:0;pointer-events:none}
.r2m-clue-photo b,.r2m-clue-photo .r2-power-digit{display:none!important}
.r2m-mansion-map .r2m-clue-photo[data-portrait="1"]{left:678px;top:370px;z-index:410;transform:rotate(-8deg)}
.r2m-mansion-map .r2m-clue-photo[data-portrait="2"]{left:788px;top:377px;z-index:418;transform:rotate(5deg)}
.r2m-mansion-map .r2m-clue-photo[data-portrait="3"]{left:918px;top:367px;z-index:408;transform:rotate(-4deg)}
.r2m-mansion-map .r2m-clue-photo[data-portrait="4"]{left:1033px;top:375px;z-index:416;transform:rotate(7deg)}
.r2m-clue-photo.is-photo-checked{filter:brightness(1.06);box-shadow:0 3px 5px rgba(0,0,0,.72),0 0 9px rgba(173,203,204,.16),0 0 0 1px rgba(120,145,145,.7)}
.r2m-clue-photo.is-nearby{filter:brightness(1.25);box-shadow:0 3px 6px rgba(0,0,0,.72),0 0 0 2px rgba(205,223,214,.7),0 0 14px rgba(185,208,194,.22);transform:scale(1.12) rotate(0deg)}
.r2-clue-photo-inspect{display:grid;grid-template-columns:minmax(128px,180px) 1fr;gap:18px;align-items:center;margin-top:10px}
.r2-clue-photo-inspect figure{margin:0;padding:8px 8px 18px;background:#d7d0c0;box-shadow:0 10px 28px rgba(0,0,0,.4);transform:rotate(-1.5deg)}
.r2-clue-photo-inspect figure img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;filter:grayscale(.75) contrast(1.12) brightness(.72)}
.r2-clue-photo-back{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:150px;border:1px solid rgba(186,206,201,.22);background:radial-gradient(circle at 50% 40%,rgba(198,228,224,.08),transparent 52%),#111416;box-shadow:inset 0 0 34px rgba(0,0,0,.55)}
.r2-clue-photo-back small{font:700 10px/1.4 ui-monospace,monospace;letter-spacing:.1em;color:#9ba6a5;text-transform:uppercase}
.r2-clue-photo-back strong{margin-top:10px;font:900 42px/1 Georgia,serif;color:#d9ece7;text-shadow:0 0 8px rgba(197,226,219,.65),0 0 20px rgba(143,191,184,.35)}
.r2-clue-photo-space-hint{margin-top:16px!important;padding:8px 10px;border:1px solid rgba(214,184,108,.28);background:rgba(0,0,0,.28);font:800 10px/1 ui-monospace,monospace;letter-spacing:.08em;color:#d8c38e;text-align:center}
.r2-power-digit{position:absolute;right:-10px;top:-13px;min-width:20px;height:20px;border-radius:50%;background:#d3aa4b;color:#20170e;font:900 12px/20px ui-monospace,monospace;font-style:normal;opacity:0;transform:scale(.6);transition:opacity .3s,transform .3s;box-shadow:0 0 16px rgba(255,202,78,.65)}.room2-world.is-powered.is-power-restored .r2-power-digit{opacity:1;transform:scale(1)}
.r2m-furniture{position:absolute;border:0;cursor:pointer;box-sizing:border-box}.r2m-library-desk{left:245px;top:350px;width:170px;height:94px;background:linear-gradient(#5e3a27 0 17px,#34231d 18px 70px,#171317 71px);border:5px solid #261914;box-shadow:0 13px 12px rgba(0,0,0,.5),inset 0 0 0 2px rgba(122,79,43,.38)}.r2m-library-desk::before{content:"";position:absolute;left:10px;right:10px;top:31px;height:28px;background:linear-gradient(90deg,#2b1d1a 0 48%,#161013 49% 51%,#2b1d1a 52%);border:2px solid #171011}.r2m-library-desk.is-open::after{content:"";position:absolute;left:28px;top:46px;width:105px;height:28px;background:#241817;border:3px solid #110d0e;transform:translateY(14px);box-shadow:0 10px 8px rgba(0,0,0,.6)}
.r2m-grandfather-clock{position:absolute;left:466px;top:405px;width:78px;height:138px;border:6px solid #221615;background:linear-gradient(90deg,#3d2921,#1d1516 48%,#4c3022);box-shadow:0 8px 10px rgba(0,0,0,.55);cursor:pointer}.r2m-grandfather-clock::before{content:"";position:absolute;left:13px;top:9px;width:40px;height:40px;border:5px solid #8a6d3c;border-radius:50%;background:radial-gradient(circle,#d1c39a 0 58%,#4a3624 60%)}.r2m-grandfather-clock::after{content:"";position:absolute;left:31px;top:58px;width:7px;height:48px;background:#8d6c35;transform-origin:top;transform:rotate(7deg)}.r2m-grandfather-clock span{position:absolute;left:0;right:0;bottom:5px;font:800 8px/1 ui-monospace,monospace;color:#baa66b;opacity:.28}.r2m-grandfather-clock.is-solved span{opacity:.85}
.r2m-mansion-map .r2-flashlight{left:470px!important;top:526px!important;z-index:552!important}.r2m-mansion-map .r2-symbol{font-size:22px}.r2m-mansion-map .r2-symbol i{font-style:normal}.r2m-mansion-map .r2-symbol small{font-size:10px;color:#f2e9c2}
.r2m-archive-box{position:absolute!important;left:374px!important;top:994px!important;width:112px!important;height:72px!important}.r2m-doll-table{position:absolute!important;left:1345px!important;top:431px!important;width:150px!important;height:78px!important}.r2m-bookshelf-puzzle{position:absolute!important;left:120px!important;top:179px!important;width:170px!important;height:132px!important;padding:12px!important;background:repeating-linear-gradient(90deg,#2b1c1b 0 20px,#553429 21px 27px,#1a1516 28px 34px)!important;border:7px solid #211516!important;color:#b99e67!important;text-align:center!important;font-size:8px!important}.r2m-bookshelf-puzzle span{position:absolute;left:8px;right:8px;bottom:9px}.r2m-mansion-map .r2-clue-plaque{left:325px!important;top:315px!important;width:85px!important;min-height:36px!important}.r2m-mansion-map .r2-clue-plaque span{font-size:7px!important}
.r2m-mansion-map .r2-generator-room{display:block!important;visibility:visible!important;opacity:1!important;position:static!important}.r2m-mansion-map .r2-generator{left:1415px!important;top:790px!important;width:190px!important;height:120px!important;z-index:905}.r2m-mansion-map .r2-breaker{left:2305px!important;top:760px!important;width:110px!important;height:140px!important;z-index:920!important;background:transparent!important;border:0!important;box-shadow:none!important;color:transparent!important;opacity:.01}.r2m-mansion-map .r2-generator-sign,.r2m-mansion-map .r2-generator-floor,.r2m-mansion-map .r2-utility-wall,.r2m-mansion-map .r2-pipes,.r2m-mansion-map .r2-cable-bundle,.r2m-mansion-map .r2-warning-stripe,.r2m-mansion-map .r2-oil-stain,.r2m-mansion-map .r2-toolbox,.r2m-mansion-map .r2-maintenance-locker,.r2m-mansion-map .r2-floor-drain,.r2m-mansion-map .r2-generator-gauges{display:none!important}
.r2m-security-door{position:absolute;left:1425px;top:1032px;width:170px;height:52px;z-index:1082;background:linear-gradient(#31383a,#171c1f);border:7px solid #0c0f11;box-shadow:0 0 0 2px #4b5050,inset 0 0 0 2px #171b1e;color:#8d9992;text-align:center;font:900 10px/38px ui-monospace,monospace;letter-spacing:.15em;transition:transform .55s,opacity .55s}.r2m-security-door i{position:absolute;left:15px;top:11px;width:11px;height:11px;border-radius:50%;background:#84232b;box-shadow:0 0 9px rgba(211,46,57,.4)}.r2m-security-door.is-powered i{background:#c39a32}.r2m-security-door.is-open{transform:translateY(-48px);opacity:.15;pointer-events:none}.r2m-keypad{position:absolute;left:1371px;top:1008px;width:54px;height:78px;z-index:1078;border:5px solid #161a1d;background:#303639;color:#7f8c82;cursor:pointer;box-shadow:0 6px 8px rgba(0,0,0,.5)}.r2m-keypad i{display:block;margin:8px auto 5px;width:24px;height:16px;background:#131818;box-shadow:inset 0 0 8px #000}.r2m-keypad span{display:block;font:800 6px/1.2 ui-monospace,monospace}.r2m-keypad.is-online i{background:#173925;box-shadow:inset 0 0 7px #06110a,0 0 8px rgba(71,204,106,.2)}.r2m-keypad.is-unlocked i{background:#287640;box-shadow:0 0 12px rgba(75,232,113,.48)}
.r2m-mansion-map .r2-crowbar{left:1488px!important;top:1166px!important;z-index:1200}.r2m-mansion-map .r2-crowbar.is-shadowed{display:block!important;opacity:.26!important;filter:grayscale(1) brightness(.5)!important;pointer-events:none}.r2m-mansion-map .r2-crowbar.is-highlighted{opacity:1!important;filter:drop-shadow(0 0 11px rgba(226,75,64,.55))!important}
.r2m-study-shelf-a{left:100px;top:108px;width:120px;height:168px;background:repeating-linear-gradient(90deg,#251717 0 13px,#513026 14px 20px,#171317 21px 28px);border:6px solid #1c1313}.r2m-study-shelf-b{left:370px;top:98px;width:120px;height:168px;background:repeating-linear-gradient(90deg,#251717 0 13px,#513026 14px 20px,#171317 21px 28px);border:6px solid #1c1313}.r2m-nursery-bed-hit{left:1405px;top:170px;width:210px;height:150px;background:transparent}.r2m-storage-covered-hit{left:170px;top:716px;width:160px;height:125px;background:transparent}.r2m-storage-crates-hit{left:405px;top:908px;width:130px;height:95px;background:transparent}.r2m-hall-console-hit-a{left:630px;top:660px;width:120px;height:58px;background:transparent}.r2m-hall-console-hit-b{left:980px;top:660px;width:120px;height:58px;background:transparent}
.r2m-mansion-map .room2-interactable.is-nearby{filter:brightness(1.18) drop-shadow(0 0 9px rgba(232,201,132,.22))}.r2m-mansion-map .r2-symbol{opacity:.03;transition:opacity .18s,filter .18s}.r2m-mansion-map .r2-symbol.is-lit,.r2m-mansion-map .r2-symbol.is-discovered{opacity:.92}.r2m-mansion-map .r2-symbol.is-discovered{filter:drop-shadow(0 0 9px rgba(221,204,139,.45))}
.room2-world.is-powered:not(.is-power-restored) .room2-darkness{opacity:.18}.room2-world.is-blackout .room2-darkness{opacity:.90}.room2-world.is-blackout .room2-vignette{box-shadow:inset 0 0 125px 62px rgba(0,0,0,.74)}.room2-world.is-blackout .r2-room-lamp{filter:brightness(.22);opacity:.45}.room2-world.is-power-flicker .r2-room-lamp{animation:r2MansionFlicker .19s steps(2,end) infinite}.room2-world.is-power-restored .r2-room-lamp{opacity:.92;filter:brightness(.92)}.room2-world.is-power-restored .r2-room-lamp:nth-child(3n){opacity:.48;filter:brightness(.6)}
@keyframes r2MansionFlicker{0%,23%,54%,100%{opacity:1;filter:brightness(1)}24%,32%{opacity:.16;filter:brightness(.35)}55%,63%{opacity:.55;filter:brightness(.72)}}
.r2m-mansion-map .r2-dust-mote{z-index:22}.r2m-mansion-map .room2-player,.r2m-mansion-map .room2-jinkson{z-index:100}.r2m-mansion-map .r2m-furniture.is-covering-player{z-index:999!important}
@media(max-width:760px){.r2m-room-title{display:none}.r2m-mansion-map .r2m-clue-photo b{display:none}.r2-clue-photo-inspect{grid-template-columns:1fr}.r2-clue-photo-inspect figure{max-width:160px;margin:auto}}


/* Drawer clue polish: keep the solved-count visually separate from the Roman controls. */
.r2-drawer-roman-row{gap:12px!important;margin-top:4px}
.r2-portrait-feedback{margin-top:30px!important;padding-top:4px}
.room2-item-chip[data-item="brass-key"] img{width:16px;height:30px;object-fit:contain;image-rendering:pixelated}


/* Main Hall UI refinement — match the reference foyer much more closely. */
.r2m-main-hall{overflow:hidden}
.r2m-main-hall .r2m-room-title{display:none}
.r2m-main-hall .r2m-floor.marble{
  background:
    linear-gradient(180deg,rgba(21,17,20,.96) 0 110px,transparent 110px),
    linear-gradient(90deg,rgba(255,255,255,.018),rgba(0,0,0,.05)),
    linear-gradient(45deg,#363944 25%,transparent 25% 75%,#363944 75%),
    linear-gradient(45deg,#1a1e26 25%,#474b56 25% 75%,#1a1e26 75%);
  background-size:auto,auto,74px 74px,74px 74px;
  background-position:0 0,0 0,0 0,37px 37px;
  filter:saturate(.82) brightness(.95);
}
.r2m-main-wallband{position:absolute;z-index:4;pointer-events:none}
.r2m-main-wallband.top{left:0;right:0;top:0;height:110px;background:linear-gradient(180deg,#1b161b 0,#241f26 40%,#0f1016 100%);box-shadow:inset 0 -16px 24px rgba(0,0,0,.55)}
.r2m-main-wallband.left,.r2m-main-wallband.right{top:110px;bottom:0;width:42px;background:linear-gradient(90deg,#1d1c24 0,#2a262d 28%,#14151c 100%);box-shadow:inset -8px 0 14px rgba(0,0,0,.45)}
.r2m-main-wallband.left{left:0}.r2m-main-wallband.right{right:0;transform:scaleX(-1)}

.r2m-main-runner{left:211px;top:92px;width:138px;height:760px;z-index:5;
  background:linear-gradient(90deg,#340b15 0,#6f1320 10%,#8a1d2a 50%,#6b1220 90%,#2e0911 100%);
  border:3px solid #8f7340;box-shadow:0 0 0 4px rgba(30,17,14,.95),0 16px 20px rgba(0,0,0,.38);opacity:.92}
.r2m-main-runner::before{content:"";position:absolute;inset:7px;border:2px solid rgba(217,188,121,.28);box-shadow:inset 0 0 0 1px rgba(125,84,44,.3);
  background:
    radial-gradient(circle at 50% 18%,rgba(0,0,0,.20) 0 18%,transparent 24%),
    radial-gradient(circle at 43% 46%,rgba(90,8,18,.44) 0 11%,transparent 14%),
    radial-gradient(circle at 59% 62%,rgba(0,0,0,.14) 0 11%,transparent 13%),
    linear-gradient(180deg,rgba(255,255,255,.02),rgba(0,0,0,.06));}
.r2m-main-runner::after{content:"";position:absolute;left:0;right:0;bottom:0;height:24px;background:linear-gradient(180deg,transparent,rgba(0,0,0,.22))}
.r2m-main-runner-shadow{position:absolute;left:223px;top:96px;width:114px;height:742px;z-index:4;opacity:.15;background:linear-gradient(180deg,transparent,rgba(0,0,0,.45) 75%,transparent);pointer-events:none}

.r2m-statue{left:247px;top:322px;width:66px;height:145px;z-index:10;background:linear-gradient(180deg,#8d8c88 0,#6b6b68 18%,#4a4d4f 52%,#787774 74%,#4b4e4f 100%);
  clip-path:polygon(48% 0,58% 6%,61% 12%,67% 22%,64% 34%,58% 41%,62% 59%,73% 76%,74% 87%,66% 100%,34% 100%,26% 87%,27% 76%,38% 59%,42% 41%,36% 34%,33% 22%,39% 12%,42% 6%);
  filter:drop-shadow(0 9px 8px rgba(0,0,0,.55));opacity:.9}
.r2m-statue i{left:5px;right:5px;bottom:-12px;height:28px;border:2px solid #2b2b30;background:linear-gradient(180deg,#777873,#42454a 58%,#272a2f 100%);box-shadow:0 4px 10px rgba(0,0,0,.5)}

.r2m-hall-door-portrait{position:absolute;top:20px;width:62px;height:82px;z-index:8;border:4px solid #6c5230;background:linear-gradient(180deg,#3f3128,#1b1618);box-shadow:0 6px 10px rgba(0,0,0,.45),inset 0 0 0 2px rgba(26,18,13,.9)}
.r2m-hall-door-portrait::before{content:"";position:absolute;inset:6px;background:radial-gradient(circle at 50% 28%,rgba(221,213,205,.24) 0 14%,transparent 16%),radial-gradient(circle at 50% 50%,rgba(130,120,116,.35) 0 23%,transparent 25%),linear-gradient(180deg,#5d4a52,#2a2731 48%,#17141a 100%);filter:blur(.2px)}
.r2m-hall-door-portrait::after{content:"";position:absolute;left:18px;right:18px;bottom:14px;height:9px;border-radius:50%;background:rgba(18,10,10,.4)}
.r2m-hall-door-portrait.portrait-left{left:84px}.r2m-hall-door-portrait.portrait-right{right:84px}

.r2m-hall-sconce{position:absolute;z-index:9;width:18px;height:42px;pointer-events:none}
.r2m-hall-sconce::before{content:"";position:absolute;left:8px;top:10px;width:3px;height:22px;background:linear-gradient(180deg,#97733a,#58411f)}
.r2m-hall-sconce::after{content:"";position:absolute;left:1px;top:0;width:16px;height:16px;border-radius:50%;background:radial-gradient(circle,#ffd985 0 22%,#ffbd59 24% 42%,rgba(255,205,115,.24) 43% 70%,transparent 71%);box-shadow:0 0 12px rgba(255,194,82,.35)}
.sconce-top-left{left:154px;top:38px}.sconce-top-right{right:154px;top:38px}.sconce-mid-left{left:48px;top:545px}.sconce-mid-right{right:48px;top:545px}

.r2m-hall-urn{position:absolute;top:120px;width:48px;height:72px;z-index:8;background:radial-gradient(ellipse at 50% 68%,#6b746d 0 28%,transparent 29%),radial-gradient(circle at 50% 86%,#463c2f 0 18%,transparent 19%),repeating-conic-gradient(from -10deg at 50% 46%,#30422f 0 8deg,transparent 8deg 27deg);
  filter:grayscale(.3) brightness(.8)}
.r2m-hall-urn::after{content:"";position:absolute;left:12px;right:12px;bottom:0;height:22px;background:linear-gradient(180deg,#8f948b,#4a4d4f);clip-path:polygon(20% 0,80% 0,92% 45%,86% 100%,14% 100%,8% 45%)}
.planter-left{left:122px}.planter-right{right:122px}

.r2m-hall-rubble{position:absolute;left:66px;top:204px;width:82px;height:52px;z-index:8;background:radial-gradient(circle at 18% 64%,#4a3a2b 0 16%,transparent 18%),radial-gradient(circle at 35% 44%,#584837 0 20%,transparent 22%),radial-gradient(circle at 54% 65%,#6d533f 0 18%,transparent 20%),radial-gradient(circle at 76% 39%,#4f4235 0 15%,transparent 17%),radial-gradient(circle at 88% 62%,#382d24 0 13%,transparent 15%);opacity:.95}
.r2m-hall-paper{position:absolute;z-index:8;width:18px;height:26px;background:linear-gradient(180deg,#b1a790,#7e7564);box-shadow:0 2px 3px rgba(0,0,0,.42)}
.r2m-hall-paper.paper-top{left:404px;top:230px;transform:rotate(18deg)}
.r2m-hall-paper.note-center{left:315px;top:655px;width:16px;height:22px;transform:rotate(9deg)}
.r2m-hall-paper.paper-right{right:74px;top:612px;transform:rotate(-14deg)}
.r2m-hall-blood{position:absolute;z-index:7;pointer-events:none}
.r2m-hall-blood.blood-top{left:316px;top:256px;width:86px;height:70px;background:radial-gradient(circle at 36% 60%,rgba(113,7,19,.72) 0 14%,transparent 16%),radial-gradient(circle at 58% 48%,rgba(98,5,17,.62) 0 11%,transparent 13%),radial-gradient(circle at 73% 31%,rgba(83,7,14,.48) 0 7%,transparent 9%)}
.r2m-hall-blood.blood-mid{left:362px;top:396px;width:96px;height:78px;background:radial-gradient(circle at 38% 58%,rgba(116,10,20,.56) 0 14%,transparent 16%),radial-gradient(circle at 58% 42%,rgba(92,8,17,.52) 0 12%,transparent 14%),linear-gradient(66deg,transparent 44%,rgba(102,11,18,.36) 45% 48%,transparent 49%)}

.r2m-hall-table{position:absolute;left:194px;top:650px;width:168px;height:40px;z-index:9;background:linear-gradient(180deg,#624135,#3b241f 40%,#201517 100%);border:3px solid #221416;box-shadow:0 10px 14px rgba(0,0,0,.5),inset 0 0 0 1px rgba(137,95,63,.35)}
.r2m-hall-table::before,.r2m-hall-table::after{content:"";position:absolute;bottom:-12px;width:7px;height:14px;background:#251719;box-shadow:inset 0 0 0 1px rgba(111,78,47,.24)}
.r2m-hall-table::before{left:18px}.r2m-hall-table::after{right:18px}
.r2m-hall-vase{position:absolute;left:239px;top:634px;width:72px;height:42px;z-index:10;background:radial-gradient(circle at 50% 26%,#d9d5ce 0 8%,transparent 9%),repeating-conic-gradient(from -18deg at 50% 38%,#d3e7da 0 8deg,transparent 8deg 25deg),radial-gradient(ellipse at 50% 86%,#6a6d78 0 15%,transparent 16%)}

.r2m-hall-stair{position:absolute;left:0;top:548px;width:148px;height:170px;z-index:8;overflow:hidden}
.r2m-hall-stair::before{content:"";position:absolute;left:-6px;top:18px;width:188px;height:136px;background:repeating-linear-gradient(135deg,#5b4232 0 13px,#34251d 13px 19px);clip-path:polygon(0 58%,74% 0,100% 0,25% 100%,0 100%);box-shadow:0 10px 18px rgba(0,0,0,.5)}
.r2m-hall-stair::after{content:"";position:absolute;left:0;bottom:8px;width:124px;height:34px;background:linear-gradient(180deg,#2b252c,#16151b);clip-path:polygon(0 100%,72% 100%,100% 0,0 0)}

.r2m-hall-pedestal{position:absolute;top:724px;width:54px;height:86px;z-index:9;background:linear-gradient(180deg,#7b7b77,#4b4e52 36%,#2b2e34 100%);clip-path:polygon(18% 0,82% 0,94% 18%,86% 100%,14% 100%,6% 18%);box-shadow:0 6px 8px rgba(0,0,0,.45)}
.pedestal-left{left:70px}.pedestal-right{right:70px}
.r2m-hall-bust{position:absolute;left:7px;top:-30px;width:40px;height:48px;background:linear-gradient(180deg,#8a8882,#5d5b58 58%,#454445 100%);clip-path:polygon(40% 0,60% 0,70% 18%,67% 32%,81% 53%,100% 100%,0 100%,19% 53%,33% 32%,30% 18%);filter:drop-shadow(0 4px 4px rgba(0,0,0,.5))}

.r2m-hall-chair{position:absolute;z-index:8;width:44px;height:56px;background:linear-gradient(180deg,#642c35,#401c24 55%,#2d171b 100%);border:2px solid #2a1619;border-radius:12px 12px 6px 6px;box-shadow:0 8px 9px rgba(0,0,0,.5)}
.r2m-hall-chair::before{content:"";position:absolute;left:8px;right:8px;top:6px;height:15px;border-radius:8px;background:rgba(255,240,210,.08)}
.hall-chair-left{left:112px;top:780px;transform:rotate(-28deg)}
.hall-chair-right{right:98px;top:812px;transform:rotate(27deg)}

.r2m-hall-side-table{position:absolute;right:42px;top:594px;width:56px;height:78px;z-index:8;background:linear-gradient(180deg,#553930,#332220 48%,#23171a 100%);border:2px solid #1a1214;box-shadow:0 8px 12px rgba(0,0,0,.46)}
.r2m-hall-side-table::before{content:"";position:absolute;left:10px;right:10px;top:14px;height:8px;background:#2c1d1b}
.r2m-hall-side-table::after{content:"";position:absolute;left:12px;right:12px;bottom:10px;height:2px;background:rgba(0,0,0,.45)}
.r2m-hall-lamp{position:absolute;right:56px;top:558px;width:30px;height:42px;z-index:9}
.r2m-hall-lamp::before{content:"";position:absolute;left:11px;bottom:0;width:7px;height:22px;background:linear-gradient(180deg,#8c6d3b,#594321)}
.r2m-hall-lamp::after{content:"";position:absolute;left:4px;top:0;width:22px;height:18px;border-radius:50%;background:radial-gradient(circle,#ffe09f 0 18%,#eab04d 20% 42%,rgba(255,197,95,.25) 43% 70%,transparent 71%);box-shadow:0 0 14px rgba(255,196,86,.3)}

.r2m-main-hall .console-left,.r2m-main-hall .console-right,.r2m-main-hall .dead-plant-a,.r2m-main-hall .dead-plant-b,.r2m-main-hall .hall-candle-a,.r2m-main-hall .hall-candle-b,.r2m-main-hall .hall-papers-a,.r2m-main-hall .hall-blood-a,.r2m-main-hall .bust-left,.r2m-main-hall .bust-right,.r2m-main-hall .hall-chair-a,.r2m-main-hall .hall-chair-b{display:none!important}

.r2m-mansion-map .r2-exit-door{left:980px!important;top:174px!important;width:140px!important;height:90px!important;z-index:18!important;border:8px solid #2a1e1c!important;border-radius:22px 22px 10px 10px/18px 18px 10px 10px!important;background:linear-gradient(180deg,#593326 0,#3f241d 30%,#2b1917 54%,#4a2a23 100%)!important;box-shadow:0 0 0 4px #5f544a,0 10px 20px rgba(0,0,0,.55),inset 0 0 0 2px rgba(124,93,58,.3)!important;color:transparent!important;text-indent:-9999px!important;overflow:visible!important}
.r2m-mansion-map .r2-exit-door::before{content:"";position:absolute;left:-12px;right:-12px;top:-14px;bottom:-10px;border:6px solid #3e383a;border-radius:26px 26px 12px 12px/24px 24px 12px 12px;box-shadow:0 0 0 2px #161216,inset 0 0 0 2px rgba(130,119,101,.28)}
.r2m-mansion-map .r2-exit-door::after{content:"";position:absolute;left:50%;top:12px;bottom:8px;width:2px;background:rgba(20,10,8,.65);box-shadow:-32px 26px 0 -1px #b88b46,32px 26px 0 -1px #b88b46;transform:translateX(-50%)}
.r2m-mansion-map .r2-exit-door span{display:none!important}
.r2m-mansion-map .r2-entrance-door{left:980px!important;top:1318px!important;width:140px!important;height:52px!important;background:linear-gradient(180deg,#2c2628,#161519)!important;border:8px solid #1c171b!important;box-shadow:0 0 0 3px #53463f,inset 0 0 0 1px rgba(128,103,76,.24)!important;color:transparent!important;text-indent:-9999px!important}
.r2m-mansion-map .r2-entrance-door span{display:none!important}

/* ==========================================================
   MAIN HALL V2 — dense Victorian horror hall, source-built
   Baseline geometry is preserved; this block only refines the
   Main Hall architecture, props, depth, lighting and clutter.
   ========================================================== */
.r2m-main-hall{
  background:#14151b;
  box-shadow:
    0 0 0 3px #07080c,
    0 0 0 6px rgba(61,55,72,.52),
    0 18px 40px rgba(0,0,0,.72),
    inset 0 0 72px rgba(0,0,0,.62);
}
.r2m-main-hall::before{
  inset:6px;
  border:2px solid rgba(102,87,78,.22);
  box-shadow:
    inset 0 0 0 5px rgba(13,12,16,.62),
    inset 0 0 38px rgba(0,0,0,.42);
}
.r2m-main-hall::after{
  z-index:36;
  background:
    linear-gradient(90deg,rgba(0,0,0,.32),transparent 9%,transparent 91%,rgba(0,0,0,.34)),
    linear-gradient(180deg,rgba(0,0,0,.10),transparent 18%,transparent 78%,rgba(0,0,0,.18)),
    radial-gradient(ellipse at 18% 29%,rgba(89,56,35,.10),transparent 20%),
    radial-gradient(ellipse at 84% 72%,rgba(40,46,58,.14),transparent 30%);
  pointer-events:none;
}

.r2m-main-hall .r2m-floor.marble{
  background-color:#23262f;
  background-image:
    radial-gradient(circle at 18% 19%,rgba(255,255,255,.035) 0 2px,transparent 3px),
    radial-gradient(circle at 74% 67%,rgba(0,0,0,.12) 0 5px,transparent 7px),
    linear-gradient(45deg,rgba(255,255,255,.035) 0 1px,transparent 1px 100%),
    linear-gradient(-45deg,rgba(0,0,0,.16) 0 1px,transparent 1px 100%),
    linear-gradient(45deg,#343842 25%,transparent 25% 75%,#343842 75%),
    linear-gradient(45deg,#161a21 25%,#474b55 25% 75%,#161a21 75%);
  background-size:53px 53px,73px 73px,37px 37px,37px 37px,74px 74px,74px 74px;
  background-position:0 0,17px 29px,0 0,0 0,0 0,37px 37px;
  filter:saturate(.72) brightness(.90) contrast(1.04);
}
.r2m-main-hall .r2m-floor.marble::before{
  content:"";
  position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(74deg,transparent 0 32%,rgba(14,15,20,.42) 33% 34%,transparent 35% 100%) 62px 160px/155px 130px no-repeat,
    linear-gradient(105deg,transparent 0 48%,rgba(18,17,22,.40) 49% 50%,transparent 51% 100%) 372px 612px/145px 120px no-repeat,
    linear-gradient(28deg,transparent 0 44%,rgba(90,80,68,.12) 45% 47%,transparent 48% 100%) 70px 735px/170px 105px no-repeat,
    radial-gradient(ellipse at 28% 27%,rgba(40,34,30,.22),transparent 16%),
    radial-gradient(ellipse at 79% 61%,rgba(12,13,17,.23),transparent 20%);
  opacity:.82;
}
.r2m-main-hall .r2m-floor.marble::after{
  content:"";
  position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(13deg,transparent 0 92px,rgba(227,223,210,.018) 93px 94px,transparent 95px 167px);
  mix-blend-mode:screen;opacity:.42;
}

/* multi-layer Victorian wall treatment */
.r2m-main-hall .r2m-main-wallband.top{
  height:116px;
  background:
    linear-gradient(180deg,#151016 0 9px,#34272a 10px 13px,#211a20 14px 68px,#17141a 69px 100%);
  box-shadow:
    inset 0 -8px 0 #0f1015,
    inset 0 -12px 0 rgba(102,72,48,.28),
    inset 0 -30px 28px rgba(0,0,0,.44);
}
.r2m-main-hall .r2m-main-wallband.top::before{
  content:"";position:absolute;left:8px;right:8px;top:13px;height:52px;
  background:
    repeating-linear-gradient(90deg,transparent 0 68px,rgba(119,84,55,.20) 69px 72px,transparent 73px 138px),
    linear-gradient(180deg,rgba(88,56,49,.20),rgba(20,17,21,.08));
  border-top:2px solid rgba(105,75,50,.24);border-bottom:2px solid rgba(92,64,45,.18);
}
.r2m-main-hall .r2m-main-wallband.left,
.r2m-main-hall .r2m-main-wallband.right{
  top:116px;width:48px;
  background:
    linear-gradient(90deg,#15141a 0,#29232a 18%,#332a2d 42%,#19171d 74%,#0f1117 100%);
  box-shadow:
    inset -5px 0 0 rgba(87,61,42,.19),
    inset -13px 0 20px rgba(0,0,0,.34);
}
.r2m-main-hall .r2m-hall-molding{
  position:absolute;z-index:7;pointer-events:none;
}
.r2m-main-hall .molding-top{
  left:12px;right:12px;top:107px;height:16px;
  background:linear-gradient(180deg,#4f3a30 0 3px,#1d171a 4px 7px,#624833 8px 10px,#1a171b 11px 16px);
  box-shadow:0 5px 8px rgba(0,0,0,.34);
}
.r2m-hall-column{
  position:absolute;top:8px;width:32px;height:112px;z-index:8;
  background:linear-gradient(90deg,#171218,#49352d 18%,#2b2226 48%,#563e31 72%,#171218 100%);
  border-left:2px solid rgba(102,77,55,.32);border-right:2px solid rgba(15,12,15,.86);
  box-shadow:0 3px 8px rgba(0,0,0,.48);
}
.r2m-hall-column::before,.r2m-hall-column::after{
  content:"";position:absolute;left:-6px;right:-6px;height:10px;
  background:linear-gradient(180deg,#6a4c37,#2b2022);border:1px solid #171115;
}
.r2m-hall-column::before{top:4px}.r2m-hall-column::after{bottom:5px}
.column-left{left:174px}.column-right{right:174px}
.r2m-hall-panel{
  position:absolute;z-index:6;width:35px;height:126px;
  border:2px solid #171319;background:linear-gradient(90deg,#342a2d,#1e1b20 42%,#3b2e2d);
  box-shadow:inset 0 0 0 3px rgba(87,62,46,.12),inset 0 0 18px rgba(0,0,0,.46);
}
.panel-left-a{left:5px;top:142px}.panel-left-b{left:5px;top:286px}
.panel-right-a{right:5px;top:142px}.panel-right-b{right:5px;top:286px}
.r2m-hall-cobweb{position:absolute;width:62px;height:62px;z-index:10;opacity:.32;pointer-events:none;background:repeating-conic-gradient(from 0deg at 0 0,rgba(212,214,208,.32) 0 1deg,transparent 1deg 18deg);clip-path:polygon(0 0,100% 0,0 100%)}
.web-top-left{left:42px;top:117px}.web-top-right{right:42px;top:117px;transform:scaleX(-1)}

/* carpet: dark burgundy, antique gold pattern, grime, wear */
.r2m-main-hall .r2m-main-runner{
  left:218px;top:90px;width:124px;height:774px;z-index:5;
  background:
    linear-gradient(90deg,#2f0710 0,#5d101a 7%,#7d1825 16%,#8c1d29 50%,#761722 84%,#571019 93%,#2b0710 100%);
  border:2px solid #8c6b3a;
  box-shadow:0 0 0 3px #211413,0 13px 22px rgba(0,0,0,.36),inset 0 0 22px rgba(0,0,0,.24);
  opacity:.95;
}
.r2m-main-hall .r2m-main-runner::before{
  inset:7px;
  border:1px solid rgba(218,183,103,.36);
  background:
    radial-gradient(circle at 12px 14px,rgba(190,152,76,.32) 0 2px,transparent 3px) 0 0/22px 28px,
    radial-gradient(circle at calc(100% - 12px) 14px,rgba(190,152,76,.30) 0 2px,transparent 3px) 0 0/22px 28px,
    linear-gradient(90deg,rgba(213,173,93,.15) 0 2px,transparent 3px calc(100% - 3px),rgba(213,173,93,.15) calc(100% - 2px)),
    radial-gradient(ellipse at 46% 19%,rgba(30,0,4,.27) 0 10%,transparent 13%),
    radial-gradient(ellipse at 63% 57%,rgba(77,3,13,.43) 0 8%,transparent 11%),
    radial-gradient(ellipse at 41% 83%,rgba(29,0,5,.24) 0 7%,transparent 10%);
  box-shadow:inset 0 0 0 2px rgba(122,81,44,.18);
}
.r2m-main-hall .r2m-main-runner::after{
  left:8px;right:8px;bottom:0;height:100%;
  background:
    linear-gradient(167deg,transparent 0 26%,rgba(226,206,160,.08) 27% 27.5%,transparent 28% 100%) 0 0/100% 185px,
    linear-gradient(17deg,transparent 0 45%,rgba(10,5,7,.18) 46% 48%,transparent 49% 100%) 0 35px/100% 260px;
  opacity:.72;
}
.r2m-main-runner-shadow{left:226px;top:96px;width:108px;height:758px;opacity:.22;filter:blur(5px)}

/* ornate top door and portraits */
.r2m-mansion-map .r2-exit-door{
  left:804px!important;top:222px!important;width:152px!important;height:94px!important;z-index:30!important;
  border:7px solid #281a18!important;border-radius:24px 24px 7px 7px/18px 18px 7px 7px!important;
  background:
    linear-gradient(90deg,transparent 49%,rgba(12,7,6,.78) 49.2% 50.8%,transparent 51%),
    linear-gradient(180deg,#5b3225 0,#47251d 18%,#321c18 44%,#4e2a21 67%,#2b1917 100%)!important;
  box-shadow:
    0 0 0 3px #68513d,
    0 0 0 7px #1b1719,
    0 9px 18px rgba(0,0,0,.62),
    inset 0 0 0 2px rgba(133,95,58,.33)!important;
}
.r2m-mansion-map .r2-exit-door::before{
  left:-16px;right:-16px;top:-22px;bottom:-11px;
  border:6px solid #423a39;border-radius:33px 33px 12px 12px/26px 26px 12px 12px;
  box-shadow:0 0 0 2px #141116,inset 0 0 0 2px rgba(118,101,82,.26),0 -5px 0 rgba(85,58,40,.32);
}
.r2m-mansion-map .r2-exit-door::after{
  left:50%;top:13px;bottom:9px;width:2px;background:rgba(16,8,7,.75);
  box-shadow:
    -38px 6px 0 -1px rgba(139,90,51,.28),38px 6px 0 -1px rgba(139,90,51,.28),
    -38px 37px 0 -1px rgba(139,90,51,.24),38px 37px 0 -1px rgba(139,90,51,.24),
    -29px 42px 0 1px #a77d43,29px 42px 0 1px #a77d43;
}
.r2m-hall-door-portrait{top:19px;width:56px;height:77px;border:5px solid #5f482d;background:#171217;box-shadow:0 7px 11px rgba(0,0,0,.56),inset 0 0 0 2px #1b1313}
.r2m-hall-door-portrait::before{inset:6px;background:
  radial-gradient(circle at 50% 27%,#7a7270 0 8%,#383033 9% 17%,transparent 18%),
  radial-gradient(ellipse at 50% 58%,rgba(73,65,68,.80) 0 25%,transparent 27%),
  linear-gradient(180deg,#463840,#1c171e 50%,#0d0c11 100%);filter:grayscale(.55) brightness(.66)}
.r2m-hall-door-portrait::after{left:12px;right:12px;bottom:8px;height:5px;background:rgba(0,0,0,.52)}
.r2m-hall-door-portrait.portrait-left{left:74px;transform:rotate(-1.5deg)}
.r2m-hall-door-portrait.portrait-right{right:74px;transform:rotate(1deg)}

/* sconces / local pools; each light has a slightly different flicker rhythm */
.r2m-main-hall .r2m-hall-sconce,
.r2m-main-hall .r2m-hall-lamp,
.r2m-main-hall .r2m-hall-candle,
.r2m-main-hall .r2m-hall-candelabra{filter:drop-shadow(0 0 8px rgba(249,181,73,.22))}
.r2m-main-hall .r2m-hall-sconce::after{box-shadow:0 0 9px rgba(255,192,79,.62),0 0 24px rgba(255,166,55,.18)}
.sconce-top-left{left:150px;top:39px;animation:r2HallFlickerA 4.8s steps(1,end) infinite}
.sconce-top-right{right:150px;top:39px;animation:r2HallFlickerB 5.7s steps(1,end) -.9s infinite}
.sconce-mid-left{left:44px;top:540px;animation:r2HallFlickerB 6.1s steps(1,end) -2s infinite}
.sconce-mid-right{right:44px;top:540px;animation:r2HallFlickerA 5.3s steps(1,end) -1.7s infinite}
@keyframes r2HallFlickerA{0%,7%,10%,44%,47%,100%{opacity:1}8%,9%{opacity:.42}45%{opacity:.72}46%{opacity:.30}}
@keyframes r2HallFlickerB{0%,31%,34%,68%,71%,100%{opacity:.92}32%{opacity:.35}33%{opacity:.74}69%{opacity:.18}70%{opacity:.68}}
.room2-world.is-blackout .r2m-main-hall .r2m-hall-sconce,
.room2-world.is-blackout .r2m-main-hall .r2m-hall-lamp,
.room2-world.is-blackout .r2m-main-hall .r2m-hall-candle,
.room2-world.is-blackout .r2m-main-hall .r2m-hall-candelabra{opacity:.08!important;animation:none!important;filter:brightness(.2)}
.room2-world.is-power-flicker .r2m-main-hall .r2m-hall-sconce,
.room2-world.is-power-flicker .r2m-main-hall .r2m-hall-lamp{animation-duration:.62s}
.room2-world.is-power-restored .r2m-main-hall .r2m-hall-sconce{filter:brightness(.9) drop-shadow(0 0 8px rgba(249,181,73,.18))}

/* plants */
.r2m-hall-urn{top:119px;width:50px;height:80px;z-index:9;
  background:
    radial-gradient(ellipse at 50% 77%,#58514a 0 15%,#2d292a 16% 27%,transparent 28%),
    repeating-conic-gradient(from -22deg at 50% 53%,#47523d 0 6deg,#2a3428 7deg 10deg,transparent 11deg 29deg);
  filter:grayscale(.24) saturate(.74) brightness(.72) drop-shadow(0 7px 6px rgba(0,0,0,.54));
}
.r2m-hall-urn::before{content:"";position:absolute;left:13px;right:13px;bottom:3px;height:27px;border:2px solid #393638;background:linear-gradient(180deg,#82837b,#4a4b4b 45%,#2e3034);clip-path:polygon(10% 0,90% 0,76% 100%,24% 100%)}
.r2m-hall-urn::after{left:8px;right:8px;bottom:-5px;height:11px;background:#3d3f43;clip-path:none;border:1px solid #22242a}
.planter-left{left:111px}.planter-right{right:111px}

/* human-like mourning statue */
.r2m-main-hall .r2m-statue{
  left:247px;top:315px;width:66px;height:152px;z-index:10;background:none;clip-path:none;opacity:1;
  filter:drop-shadow(0 10px 8px rgba(0,0,0,.58));pointer-events:none;
}
.r2m-main-hall .r2m-statue b{
  position:absolute;left:23px;top:3px;width:20px;height:21px;border-radius:48% 48% 44% 44%;
  background:linear-gradient(135deg,#a6a5a1,#74736f 62%,#555654);box-shadow:inset -4px -2px 0 rgba(30,30,31,.15);
}
.r2m-main-hall .r2m-statue::before{
  content:"";position:absolute;left:13px;top:21px;width:40px;height:68px;
  background:linear-gradient(120deg,#9b9b96 0,#6c6e6d 48%,#858581 72%,#505354 100%);
  clip-path:polygon(39% 0,61% 0,69% 12%,80% 27%,72% 40%,68% 57%,88% 92%,70% 100%,30% 100%,12% 92%,32% 57%,28% 40%,20% 27%,31% 12%);
}
.r2m-main-hall .r2m-statue::after{
  content:"";position:absolute;left:6px;top:76px;width:54px;height:51px;
  background:linear-gradient(110deg,#8a8b86,#5e6161 52%,#777874 75%,#45484a);
  clip-path:polygon(32% 0,68% 0,83% 26%,100% 100%,0 100%,17% 26%);
  box-shadow:inset 7px 0 0 rgba(255,255,255,.04),inset -7px 0 0 rgba(0,0,0,.10);
}
.r2m-main-hall .r2m-statue i{
  left:3px;right:3px;bottom:0;height:28px;background:linear-gradient(180deg,#777872 0,#55585a 54%,#34373b 55% 100%);
  border:2px solid #292b30;box-shadow:0 4px 8px rgba(0,0,0,.48),inset 0 0 0 2px rgba(206,201,190,.06);
}

/* staircase fragment and rail */
.r2m-main-hall .r2m-hall-stair{left:0;top:550px;width:150px;height:174px;z-index:8;overflow:visible;pointer-events:none}
.r2m-main-hall .r2m-hall-stair::before{left:-8px;top:21px;width:190px;height:139px;background:
  repeating-linear-gradient(135deg,#604532 0 12px,#3f2c22 13px 18px,#261c19 19px 21px);
  clip-path:polygon(0 63%,78% 0,100% 0,27% 100%,0 100%);box-shadow:0 11px 18px rgba(0,0,0,.52)}
.r2m-main-hall .r2m-hall-stair::after{left:0;bottom:6px;width:132px;height:38px;background:linear-gradient(180deg,#2c252a,#17151a);clip-path:polygon(0 100%,70% 100%,100% 0,0 0)}
.r2m-hall-stair-rail{position:absolute;left:16px;top:532px;width:132px;height:104px;z-index:11;pointer-events:none;
  background:
    linear-gradient(153deg,transparent 0 39%,#4a3325 40% 44%,transparent 45%) 0 0/100% 100%,
    repeating-linear-gradient(90deg,transparent 0 20px,#5a3d2a 21px 25px,transparent 26px 40px);
  clip-path:polygon(0 65%,100% 0,100% 18%,4% 82%);
  filter:drop-shadow(0 4px 3px rgba(0,0,0,.46));
}
.r2m-main-hall .r2m-hall-stair i{position:absolute;left:92px;top:5px;width:19px;height:19px;border-radius:50%;background:#4c3427;box-shadow:0 0 0 3px #211719}

/* central table and still life */
.r2m-main-hall .r2m-hall-table{left:192px;top:647px;width:176px;height:43px;z-index:9;
  background:
    linear-gradient(180deg,#6f4b38 0 7px,#432c26 8px 29px,#2b1c1c 30px 100%);
  border:3px solid #1c1214;box-shadow:0 10px 14px rgba(0,0,0,.54),inset 0 0 0 2px rgba(142,96,57,.28);
}
.r2m-main-hall .r2m-hall-table::before,.r2m-main-hall .r2m-hall-table::after{bottom:-15px;width:8px;height:16px;background:linear-gradient(#34211e,#1f1517)}
.r2m-main-hall .r2m-hall-vase{left:240px;top:624px;width:74px;height:48px;z-index:11;background:
  radial-gradient(circle at 18% 32%,#e4ded7 0 4%,transparent 5%),
  radial-gradient(circle at 33% 21%,#d8d2cc 0 5%,transparent 6%),
  radial-gradient(circle at 54% 27%,#ece8e0 0 5%,transparent 6%),
  radial-gradient(circle at 73% 20%,#d8d3cb 0 5%,transparent 6%),
  repeating-conic-gradient(from -18deg at 50% 48%,#758b72 0 7deg,transparent 8deg 25deg),
  radial-gradient(ellipse at 50% 88%,#777886 0 15%,#4d4d55 16% 24%,transparent 25%)}
.r2m-hall-book{position:absolute;z-index:11;width:27px;height:18px;background:linear-gradient(180deg,#6b4a2e,#3d2c20);border:2px solid #211715;box-shadow:0 3px 4px rgba(0,0,0,.35)}
.book-center{left:323px;top:655px;transform:rotate(8deg)}
.r2m-hall-candle{position:absolute;z-index:11;width:14px;height:28px;background:linear-gradient(90deg,transparent 37%,#a67a3c 38% 62%,transparent 63%)}
.r2m-hall-candle::after{content:"";position:absolute;left:3px;top:-7px;width:8px;height:10px;border-radius:50%;background:#ffc969;box-shadow:0 0 9px rgba(255,185,71,.50)}
.candle-center{left:213px;top:630px}

/* busts, chairs, side furniture */
.r2m-main-hall .r2m-hall-pedestal{top:723px;width:55px;height:87px;background:linear-gradient(180deg,#777873,#55585c 34%,#34373d 100%);box-shadow:0 7px 9px rgba(0,0,0,.5),inset 0 0 0 2px rgba(213,208,194,.04)}
.r2m-main-hall .r2m-hall-bust{left:7px;top:-31px;width:41px;height:49px;background:linear-gradient(180deg,#94918b,#686664 58%,#49494a 100%)}
.pedestal-left{left:69px}.pedestal-right{right:69px}
.r2m-main-hall .r2m-hall-chair{width:45px;height:58px;background:linear-gradient(180deg,#672a33,#3c1b22 58%,#25161a);border:3px solid #291719;box-shadow:0 8px 10px rgba(0,0,0,.56)}
.hall-chair-left{left:110px;top:780px;transform:rotate(-31deg)}
.hall-chair-right{right:96px;top:810px;transform:rotate(29deg)}
.r2m-main-hall .r2m-hall-side-table{right:38px;top:584px;width:61px;height:88px;background:
  linear-gradient(180deg,#634536 0 9px,#3b2925 10px 41px,#2a1e20 42px 100%);border:3px solid #1a1214;box-shadow:0 8px 13px rgba(0,0,0,.50),inset 0 0 0 2px rgba(119,83,54,.18)}
.r2m-main-hall .r2m-hall-side-table::before{left:8px;right:8px;top:18px;height:10px;background:#25191a;box-shadow:0 21px 0 #25191a}
.r2m-main-hall .r2m-hall-lamp{right:53px;top:546px;width:32px;height:44px;animation:r2HallFlickerA 6.4s steps(1,end) -1.2s infinite}

/* extra abandoned clutter */
.r2m-hall-rubble{left:61px;top:201px;width:92px;height:58px;filter:drop-shadow(0 5px 5px rgba(0,0,0,.4))}
.r2m-hall-books{position:absolute;z-index:8;width:50px;height:24px;background:linear-gradient(0deg,#4e2d2b 0 7px,#2e3543 8px 14px,#584029 15px 21px);box-shadow:0 4px 5px rgba(0,0,0,.38)}
.books-top{left:89px;top:244px;transform:rotate(-12deg)}
.r2m-hall-frame{position:absolute;z-index:8;width:54px;height:66px;border:7px solid #4e3726;background:#151419;box-shadow:0 5px 7px rgba(0,0,0,.45)}
.r2m-hall-frame::after{content:"";position:absolute;inset:8px;background:linear-gradient(145deg,#40343a,#18161c)}
.fallen-frame-left{left:34px;top:696px;transform:rotate(-16deg)}
.r2m-hall-paper.paper-top{left:406px;top:231px}.r2m-hall-paper.note-center{left:312px;top:658px}.r2m-hall-paper.paper-right{right:72px;top:609px}
.r2m-hall-blood.blood-top{left:319px;top:252px;filter:saturate(.7) brightness(.7)}
.r2m-hall-blood.blood-mid{left:359px;top:398px;filter:saturate(.72) brightness(.72)}
.r2m-hall-lower-table{position:absolute;left:22px;top:784px;width:57px;height:72px;z-index:8;background:linear-gradient(180deg,#4e352c,#2c1f1f 48%,#1e171a);border:2px solid #171114;box-shadow:0 7px 10px rgba(0,0,0,.48)}
.r2m-hall-candelabra{position:absolute;z-index:10;width:36px;height:58px;background:linear-gradient(90deg,transparent 44%,#90703a 45% 55%,transparent 56%)}
.r2m-hall-candelabra::before{content:"";position:absolute;left:3px;right:3px;top:15px;height:4px;background:#8b6b38;box-shadow:0 -8px 0 -1px #f1b647,-11px -5px 0 -2px #e2a239,11px -5px 0 -2px #e2a239}
.r2m-hall-candelabra::after{content:"";position:absolute;left:11px;bottom:2px;width:14px;height:4px;border-radius:50%;background:#6e542e}
.candelabra-left{left:33px;top:742px;animation:r2HallFlickerB 5.9s steps(1,end) -1.1s infinite}
.candelabra-right{right:28px;top:707px;animation:r2HallFlickerA 5.2s steps(1,end) -2.4s infinite}
.r2m-hall-cracked-pot{position:absolute;right:128px;top:830px;width:35px;height:24px;z-index:8;background:linear-gradient(135deg,#6f5947,#3b312a);clip-path:polygon(6% 0,94% 0,82% 100%,18% 100%);box-shadow:0 4px 6px rgba(0,0,0,.42)}
.r2m-hall-cracked-pot::after{content:"";position:absolute;left:15px;top:0;width:3px;height:18px;background:#241d1a;transform:rotate(14deg)}
.r2m-hall-small-frame{position:absolute;z-index:8;width:31px;height:38px;border:4px solid #4c3424;background:#141318;box-shadow:0 4px 5px rgba(0,0,0,.42)}
.frame-bottom-left{left:44px;bottom:39px;transform:rotate(-4deg)}
.frame-bottom-right{right:61px;bottom:69px;transform:rotate(8deg)}
.r2m-hall-dust{position:absolute;z-index:6;border-radius:50%;pointer-events:none;background:radial-gradient(ellipse,rgba(134,119,98,.14),transparent 68%);filter:blur(2px)}
.dust-a{left:80px;top:470px;width:120px;height:70px}.dust-b{right:72px;top:720px;width:130px;height:78px}

/* stronger local light pools without flattening the whole room */
.r2m-main-hall .r2m-hall-sconce::before{z-index:2}
.r2m-main-hall .r2m-hall-sconce{
  --glow:rgba(255,185,74,.18);
}
.r2m-main-hall .r2m-hall-sconce span{display:none}
.r2m-main-hall .r2m-hall-sconce{box-shadow:0 0 0 transparent}
.r2m-main-hall .r2m-hall-sconce::marker{display:none}
.r2m-main-hall .sconce-top-left{filter:drop-shadow(0 0 13px var(--glow))}
.r2m-main-hall .sconce-top-right{filter:drop-shadow(0 0 13px var(--glow))}
.r2m-main-hall .sconce-mid-left{filter:drop-shadow(0 0 16px var(--glow))}
.r2m-main-hall .sconce-mid-right{filter:drop-shadow(0 0 16px var(--glow))}

/* keep the hall readable while allowing furniture to occlude the character */
.r2m-main-hall .room2-obstacle{pointer-events:none}
.r2m-main-hall .r2-furniture-tall.is-covering-player{z-index:999!important}
.r2m-main-hall .r2m-statue.is-covering-player,
.r2m-main-hall .r2m-hall-table.is-covering-player,
.r2m-main-hall .r2m-hall-pedestal.is-covering-player,
.r2m-main-hall .r2m-hall-side-table.is-covering-player,
.r2m-main-hall .r2m-hall-stair.is-covering-player{filter:brightness(.97) drop-shadow(0 7px 7px rgba(0,0,0,.45))}

/* remove old placeholder-style hall hitboxes and props if present in compiled trees */
.r2m-main-hall .r2m-console,
.r2m-main-hall .r2m-bust:not(.r2m-hall-bust),
.r2m-main-hall .r2m-decor.hall-chair-a,
.r2m-main-hall .r2m-decor.hall-chair-b,
.r2m-main-hall .r2m-decor.hall-candle-a,
.r2m-main-hall .r2m-decor.hall-candle-b,
.r2m-main-hall .r2m-decor.hall-papers-a,
.r2m-main-hall .r2m-decor.hall-blood-a,
.r2m-main-hall .dead-plant-a,
.r2m-main-hall .dead-plant-b{display:none!important}

/* =====================================================================
   MAIN HALL V3 — target-density Gothic/Victorian composition refinement
   Architecture first, then furniture, clutter and local light pools.
   ===================================================================== */
.r2m-main-hall{
  --hall-wall:#17151a;
  --hall-wood:#3b2925;
  --hall-gold:#8c6b3d;
  --hall-blood:#481018;
  --hall-stone:#6a6966;
  overflow:hidden;
  background:#090a0f;
}
.r2m-main-hall::before{
  inset:0;
  border:0;
  box-shadow:
    inset 0 0 0 8px #111118,
    inset 0 0 0 11px rgba(91,72,65,.20),
    inset 0 0 54px rgba(0,0,0,.64),
    inset 22px 0 34px rgba(0,0,0,.35),
    inset -22px 0 34px rgba(0,0,0,.38);
  z-index:34;
}
.r2m-main-hall::after{
  inset:0;
  z-index:35;
  background:
    radial-gradient(ellipse at 17% 21%,rgba(78,57,43,.10),transparent 19%),
    radial-gradient(ellipse at 82% 34%,rgba(61,42,38,.08),transparent 18%),
    radial-gradient(ellipse at 21% 76%,rgba(0,0,0,.18),transparent 24%),
    radial-gradient(ellipse at 83% 79%,rgba(0,0,0,.21),transparent 25%),
    linear-gradient(90deg,rgba(0,0,0,.34),transparent 10%,transparent 89%,rgba(0,0,0,.38)),
    linear-gradient(180deg,rgba(0,0,0,.17),transparent 20%,transparent 74%,rgba(0,0,0,.25));
  pointer-events:none;
}

/* smaller, muted diamond tiles so the hall reads larger around Choco */
.r2m-main-hall .r2m-floor.marble{
  background-color:#20232b;
  background-image:
    linear-gradient(45deg,rgba(83,87,98,.16) 0 1px,transparent 1px 100%),
    linear-gradient(-45deg,rgba(6,7,10,.34) 0 1px,transparent 1px 100%),
    linear-gradient(45deg,#30343d 25%,transparent 25% 75%,#30343d 75%),
    linear-gradient(45deg,#141820 25%,#3f434d 25% 75%,#141820 75%),
    radial-gradient(circle at 22% 38%,rgba(236,228,208,.022) 0 1px,transparent 2px),
    radial-gradient(circle at 77% 64%,rgba(0,0,0,.15) 0 4px,transparent 5px);
  background-size:33px 33px,33px 33px,52px 52px,52px 52px,71px 71px,89px 89px;
  background-position:0 0,0 0,0 0,26px 26px,7px 13px,31px 21px;
  filter:saturate(.70) brightness(.84) contrast(1.02);
}
.r2m-main-hall .r2m-floor.marble::before{
  background:
    linear-gradient(75deg,transparent 0 31%,rgba(8,10,14,.55) 32% 33%,transparent 34% 100%) 68px 175px/124px 91px no-repeat,
    linear-gradient(107deg,transparent 0 49%,rgba(9,11,15,.48) 50% 51%,transparent 52% 100%) 403px 594px/112px 94px no-repeat,
    linear-gradient(29deg,transparent 0 45%,rgba(120,111,94,.09) 46% 47%,transparent 48% 100%) 95px 742px/136px 86px no-repeat,
    radial-gradient(ellipse at 27% 28%,rgba(35,30,28,.24),transparent 15%),
    radial-gradient(ellipse at 76% 58%,rgba(10,11,15,.25),transparent 19%);
}
.r2m-main-floor-age{
  position:absolute;inset:116px 48px 18px;z-index:4;pointer-events:none;
  background:
    repeating-linear-gradient(14deg,transparent 0 93px,rgba(194,188,173,.017) 94px 95px,transparent 96px 171px),
    radial-gradient(ellipse at 18% 34%,rgba(117,104,84,.08),transparent 9%),
    radial-gradient(ellipse at 72% 23%,rgba(17,15,18,.16),transparent 8%),
    radial-gradient(ellipse at 86% 75%,rgba(74,63,51,.07),transparent 8%),
    radial-gradient(ellipse at 39% 89%,rgba(0,0,0,.17),transparent 11%);
  opacity:.92;
}

/* deep layered walls, baseboards, recesses and irregular surface age */
.r2m-main-hall .r2m-main-wallband.top{
  height:122px;
  background:
    linear-gradient(180deg,#0f0d12 0 8px,#3b2c2c 9px 12px,#20191f 13px 72px,#151319 73px 100%);
  box-shadow:inset 0 -9px 0 #0e1015,inset 0 -14px 0 rgba(113,80,53,.24),inset 0 -34px 28px rgba(0,0,0,.48);
}
.r2m-main-hall .r2m-main-wallband.top::before{
  left:10px;right:10px;top:15px;height:54px;
  background:
    repeating-linear-gradient(90deg,transparent 0 56px,rgba(119,84,55,.18) 57px 60px,transparent 61px 114px),
    linear-gradient(180deg,rgba(98,65,57,.15),rgba(18,16,20,.06));
  border-top:2px solid rgba(125,91,58,.22);border-bottom:2px solid rgba(88,62,46,.19);
}
.r2m-main-hall .r2m-main-wallband.left,
.r2m-main-hall .r2m-main-wallband.right{
  top:122px;width:54px;
  background:
    linear-gradient(90deg,#111117 0,#2c252b 15%,#3b2d2d 40%,#1b191e 72%,#0c0e13 100%);
  box-shadow:inset -5px 0 0 rgba(91,62,46,.20),inset -16px 0 22px rgba(0,0,0,.38);
}
.r2m-main-hall .molding-top{top:111px;height:17px;left:10px;right:10px;background:linear-gradient(180deg,#574034 0 3px,#1b161b 4px 7px,#6a4d36 8px 10px,#17151a 11px 17px)}
.r2m-hall-baseboard{position:absolute;z-index:8;top:122px;bottom:8px;width:13px;background:linear-gradient(90deg,#171319,#4a352d 32%,#1f181c 66%,#0e0f14);box-shadow:inset -2px 0 #0a0b0f,0 0 7px rgba(0,0,0,.42)}
.baseboard-left{left:45px}.baseboard-right{right:45px;transform:scaleX(-1)}
.r2m-hall-column{top:7px;width:36px;height:118px;background:linear-gradient(90deg,#100e13,#523b30 20%,#2a2225 49%,#624531 74%,#100e13);box-shadow:0 4px 9px rgba(0,0,0,.55)}
.column-left{left:171px}.column-right{right:171px}
.r2m-hall-column::before,.r2m-hall-column::after{left:-8px;right:-8px;height:11px;background:linear-gradient(180deg,#74533a,#2c2022);border-color:#120f13}
.r2m-hall-panel{width:39px;height:128px;border:2px solid #141217;background:linear-gradient(90deg,#2f272b,#17161b 45%,#3f302e);box-shadow:inset 0 0 0 3px rgba(100,71,52,.10),inset 0 0 19px rgba(0,0,0,.52)}
.panel-left-a{left:5px;top:150px}.panel-left-b{left:5px;top:292px}.panel-left-c{left:5px;top:437px}
.panel-right-a{right:5px;top:145px}.panel-right-b{right:5px;top:302px}.panel-right-c{right:5px;top:452px}
.r2m-hall-alcove{position:absolute;z-index:7;width:44px;height:112px;background:radial-gradient(ellipse at 50% 52%,#17151a 0 44%,#0d0e12 45% 70%,transparent 71%);border:3px solid #42302a;box-shadow:inset 0 0 19px rgba(0,0,0,.74),0 3px 8px rgba(0,0,0,.45)}
.r2m-hall-alcove i{position:absolute;left:12px;right:12px;bottom:10px;height:35px;background:linear-gradient(180deg,#6e6c67,#3d3f43);clip-path:polygon(24% 0,76% 0,88% 100%,12% 100%);filter:brightness(.7)}
.alcove-left{left:9px;top:585px}.alcove-right{right:9px;top:573px}
.r2m-hall-peel{position:absolute;z-index:8;width:35px;height:73px;opacity:.25;background:linear-gradient(145deg,transparent 0 36%,#7f7163 37% 42%,transparent 43%),linear-gradient(35deg,transparent 0 54%,#9a8b76 55% 59%,transparent 60%)}
.peel-left{left:18px;top:370px;transform:rotate(-8deg)}.peel-right{right:20px;top:252px;transform:rotate(6deg)}
.web-top-left{left:46px;top:122px;width:55px;height:55px;opacity:.27}.web-top-right{right:45px;top:122px;width:49px;height:49px;opacity:.22}

/* runner closer to target: narrow, worn, irregular and no casual-game dotted pattern */
.r2m-main-hall .r2m-main-runner{
  left:224px;top:92px;width:112px;height:776px;z-index:5;
  background:
    linear-gradient(90deg,#27060d 0,#53101a 8%,#721824 17%,#7d1825 49%,#6c1420 83%,#4d0e17 93%,#24060d 100%);
  border:2px solid #74552f;
  box-shadow:0 0 0 3px #1b1112,0 15px 20px rgba(0,0,0,.39),inset 0 0 25px rgba(0,0,0,.29);
  opacity:.96;
}
.r2m-main-hall .r2m-main-runner::before{
  inset:6px;border:1px solid rgba(184,145,75,.31);
  background:
    repeating-linear-gradient(180deg,transparent 0 16px,rgba(178,136,69,.10) 17px 18px,transparent 19px 31px),
    linear-gradient(90deg,rgba(166,126,64,.18) 0 2px,transparent 3px calc(100% - 3px),rgba(166,126,64,.18) calc(100% - 2px)),
    radial-gradient(ellipse at 45% 17%,rgba(16,0,4,.33) 0 11%,transparent 14%),
    radial-gradient(ellipse at 58% 53%,rgba(66,3,13,.44) 0 8%,transparent 11%),
    radial-gradient(ellipse at 38% 78%,rgba(20,0,4,.29) 0 8%,transparent 11%);
  box-shadow:inset 0 0 0 2px rgba(101,67,39,.15);
}
.r2m-main-hall .r2m-main-runner::after{
  left:7px;right:7px;bottom:0;height:100%;
  background:
    linear-gradient(166deg,transparent 0 24%,rgba(225,202,154,.065) 25% 25.5%,transparent 26%) 0 0/100% 178px,
    linear-gradient(17deg,transparent 0 46%,rgba(5,2,3,.25) 47% 50%,transparent 51%) 0 49px/100% 239px;
  opacity:.82;
}
.r2m-main-runner-shadow{left:230px;top:98px;width:100px;height:756px;opacity:.26;filter:blur(6px)}

/* richer architectural crown behind the upper door */
.r2m-hall-door-crown{position:absolute;left:184px;top:4px;width:192px;height:104px;z-index:20;pointer-events:none}
.r2m-hall-door-crown::before{content:"";position:absolute;left:16px;right:16px;top:10px;height:20px;background:linear-gradient(180deg,#624532,#2e2222);clip-path:polygon(7% 100%,15% 38%,32% 38%,40% 0,60% 0,68% 38%,85% 38%,93% 100%);box-shadow:0 3px 5px rgba(0,0,0,.45)}
.r2m-hall-door-crown::after{content:"";position:absolute;left:4px;right:4px;bottom:0;height:21px;border-top:5px solid #59402e;border-bottom:4px solid #21181a;background:linear-gradient(180deg,#3f302a,#21191d);box-shadow:0 5px 10px rgba(0,0,0,.38)}
.r2m-hall-door-crown i,.r2m-hall-door-crown b{position:absolute;top:32px;width:17px;height:39px;border:2px solid #3f3027;background:linear-gradient(90deg,#151217,#3b2b28,#171319)}
.r2m-hall-door-crown i{left:5px}.r2m-hall-door-crown b{right:5px}
.r2m-mansion-map .r2-exit-door{left:980px!important;top:174px!important;width:142px!important;height:88px!important;z-index:31!important;border-width:7px!important;border-radius:25px 25px 7px 7px/18px 18px 7px 7px!important;background:linear-gradient(90deg,transparent 49%,rgba(10,6,5,.84) 49.3% 50.7%,transparent 51%),linear-gradient(180deg,#573023,#43231c 20%,#2d1917 48%,#4a2820 72%,#271716 100%)!important;box-shadow:0 0 0 3px #66503b,0 0 0 8px #181519,0 10px 19px rgba(0,0,0,.66),inset 0 0 0 2px rgba(137,96,58,.28)!important}
.r2m-mansion-map .r2-exit-door::before{left:-14px;right:-14px;top:-18px;bottom:-10px;border:6px solid #3d3536;border-radius:31px 31px 11px 11px/23px 23px 11px 11px;box-shadow:0 0 0 2px #121014,inset 0 0 0 2px rgba(116,96,77,.22)}
.r2m-mansion-map .r2-exit-door::after{top:13px;bottom:9px;box-shadow:-34px 8px 0 -1px rgba(127,83,46,.28),34px 8px 0 -1px rgba(127,83,46,.28),-34px 35px 0 -1px rgba(127,83,46,.25),34px 35px 0 -1px rgba(127,83,46,.25),-26px 39px 0 1px #9c7541,26px 39px 0 1px #9c7541}

/* aged portraits with inset canvas, asymmetric tilt and cracked glass */
.r2m-hall-door-portrait{top:21px;width:55px;height:75px;border:5px solid #5a4229;background:linear-gradient(135deg,#2f221c,#171319);box-shadow:0 7px 12px rgba(0,0,0,.59),inset 0 0 0 2px #120e10}
.r2m-hall-door-portrait::before{inset:7px;background:radial-gradient(circle at 50% 25%,#706966 0 8%,#373136 9% 18%,transparent 19%),radial-gradient(ellipse at 50% 58%,rgba(69,60,64,.86) 0 26%,transparent 28%),linear-gradient(180deg,#43343c,#1c171e 52%,#0b0b0f);filter:grayscale(.6) brightness(.57) contrast(1.08)}
.r2m-hall-door-portrait::after{left:15px;right:7px;top:12px;bottom:auto;height:1px;background:rgba(219,211,190,.18);transform:rotate(57deg);box-shadow:7px 9px 0 rgba(219,211,190,.08)}
.r2m-hall-door-portrait i{position:absolute;left:7px;right:7px;bottom:5px;height:5px;background:rgba(8,7,10,.48)}
.r2m-hall-door-portrait.portrait-left{left:71px;transform:rotate(-2.5deg)}.r2m-hall-door-portrait.portrait-right{right:69px;transform:rotate(1.4deg)}

/* plants: old stone planters, one withered, one partially alive */
.r2m-hall-urn{top:120px;width:50px;height:82px;z-index:10;background:repeating-conic-gradient(from -24deg at 50% 51%,#3d4938 0 5deg,#1f2921 6deg 9deg,transparent 10deg 28deg);filter:grayscale(.25) saturate(.68) brightness(.69) drop-shadow(0 8px 7px rgba(0,0,0,.56))}
.r2m-hall-urn i{position:absolute;left:15px;right:15px;top:34px;height:31px;background:radial-gradient(ellipse,#253526 0 23%,transparent 25%);filter:blur(.2px)}
.r2m-hall-urn::before{left:12px;right:12px;bottom:5px;height:28px;border:2px solid #393637;background:linear-gradient(180deg,#7d7f78,#4a4c4c 47%,#2c2e32);clip-path:polygon(10% 0,90% 0,77% 100%,23% 100%)}
.planter-left{left:97px;transform:rotate(-1deg)}.planter-right{right:96px;filter:grayscale(.38) saturate(.48) brightness(.61) drop-shadow(0 8px 7px rgba(0,0,0,.56));transform:rotate(1.5deg)}

/* warm local pools; visually independent and disabled during blackout */
.r2m-hall-light-pool{position:absolute;z-index:6;pointer-events:none;border-radius:50%;mix-blend-mode:screen;opacity:.26;filter:blur(1px);background:radial-gradient(ellipse,rgba(255,185,80,.30) 0,rgba(244,166,68,.12) 31%,rgba(204,128,48,.04) 54%,transparent 72%)}
.light-top-left{left:79px;top:70px;width:140px;height:175px;transform:rotate(8deg)}
.light-top-right{right:74px;top:72px;width:136px;height:168px;transform:rotate(-7deg)}
.light-mid-left{left:0;top:420px;width:125px;height:190px;opacity:.20}.light-mid-right{right:0;top:423px;width:130px;height:190px;opacity:.21}
.light-lower-left{left:4px;top:674px;width:145px;height:190px;opacity:.18}.light-lower-right{right:5px;top:642px;width:150px;height:205px;opacity:.20}
.room2-world.is-blackout .r2m-hall-light-pool{opacity:.025!important}.room2-world.is-power-flicker .r2m-hall-light-pool{animation:r2HallPoolFlicker .55s steps(2,end) infinite}.room2-world.is-power-restored .r2m-hall-light-pool{opacity:.21}
@keyframes r2HallPoolFlicker{0%,35%,58%,100%{opacity:.23}36%,43%{opacity:.06}59%,65%{opacity:.14}}

/* detailed mourning-woman statue assembled from layers, dirty and cracked */
.r2m-main-hall .r2m-statue{left:242px;top:304px;width:68px;height:160px;background:none;clip-path:none;filter:drop-shadow(6px 11px 8px rgba(0,0,0,.52));opacity:1}
.r2m-main-hall .r2m-statue::before,.r2m-main-hall .r2m-statue::after{display:none}
.r2m-statue .statue-head{position:absolute;left:25px;top:8px;width:18px;height:20px;border-radius:46% 46% 42% 42%;background:linear-gradient(135deg,#8f8e89,#686864 63%,#4b4d4d);box-shadow:inset -4px -2px 0 rgba(25,26,27,.17)}
.r2m-statue .statue-veil{position:absolute;left:17px;top:13px;width:34px;height:58px;background:linear-gradient(125deg,#85857f 0,#575a59 48%,#747470 75%,#444748);clip-path:polygon(31% 0,69% 0,81% 18%,88% 62%,100% 100%,70% 88%,50% 100%,30% 88%,0 100%,12% 62%,19% 18%);opacity:.96}
.r2m-statue .statue-torso{position:absolute;left:19px;top:38px;width:31px;height:48px;background:linear-gradient(110deg,#8d8d88,#5c5f5e 52%,#787873);clip-path:polygon(33% 0,67% 0,82% 25%,72% 100%,28% 100%,18% 25%)}
.r2m-statue .statue-arm{position:absolute;top:47px;width:11px;height:49px;background:linear-gradient(120deg,#888883,#5a5c5c);transform-origin:top}
.r2m-statue .arm-left{left:18px;transform:rotate(-18deg)}.r2m-statue .arm-right{right:18px;transform:rotate(18deg)}
.r2m-statue .statue-flowers{position:absolute;left:25px;top:68px;width:21px;height:18px;background:radial-gradient(circle at 22% 40%,#85857e 0 19%,transparent 21%),radial-gradient(circle at 52% 25%,#777974 0 18%,transparent 20%),radial-gradient(circle at 78% 49%,#8a8983 0 17%,transparent 19%),radial-gradient(circle at 48% 72%,#656864 0 19%,transparent 21%)}
.r2m-statue .statue-skirt{position:absolute;left:9px;top:79px;width:52px;height:51px;background:linear-gradient(105deg,#7e807c 0,#545757 47%,#6c6d69 69%,#45484a 100%);clip-path:polygon(36% 0,64% 0,77% 20%,100% 100%,0 100%,23% 20%);box-shadow:inset 7px 0 rgba(255,255,255,.025),inset -7px 0 rgba(0,0,0,.08)}
.r2m-main-hall .r2m-statue i{left:4px;right:4px;bottom:0;height:28px;background:linear-gradient(180deg,#73746f,#53565a 52%,#30343a 53%);border:2px solid #272a30;box-shadow:0 5px 9px rgba(0,0,0,.55),inset 0 0 0 2px rgba(205,199,184,.04)}
.r2m-main-hall .r2m-statue i::before{content:"";position:absolute;left:5px;top:7px;width:24px;height:1px;background:#34363a;transform:rotate(58deg);box-shadow:12px 8px 0 #34363a}
.r2m-statue-contact-shadow{position:absolute;left:244px;top:432px;width:74px;height:28px;z-index:7;border-radius:50%;background:radial-gradient(ellipse,rgba(0,0,0,.58),transparent 69%);filter:blur(2px)}

/* stronger broken staircase silhouette at left mid */
.r2m-main-hall .r2m-hall-stair{left:-3px;top:520px;width:164px;height:190px;z-index:10;overflow:visible}
.r2m-main-hall .r2m-hall-stair::before{left:-9px;top:27px;width:202px;height:153px;background:repeating-linear-gradient(135deg,#624733 0 11px,#3c2a21 12px 17px,#221918 18px 21px);clip-path:polygon(0 65%,80% 0,100% 0,28% 100%,0 100%);box-shadow:0 13px 21px rgba(0,0,0,.59)}
.r2m-main-hall .r2m-hall-stair::after{left:0;bottom:4px;width:145px;height:43px;background:linear-gradient(180deg,#2d272d,#17161b);clip-path:polygon(0 100%,69% 100%,100% 0,0 0)}
.r2m-main-hall .r2m-hall-stair i{left:98px;top:10px;width:18px;height:18px;border-radius:50%;background:#4d3629;box-shadow:0 0 0 3px #201719}
.r2m-main-hall .r2m-hall-stair b{position:absolute;left:26px;bottom:31px;width:77px;height:13px;background:#3a2a22;transform:rotate(-26deg);box-shadow:0 4px 5px rgba(0,0,0,.35)}
.r2m-hall-stair-rail{left:10px;top:498px;width:146px;height:122px;z-index:13;background:linear-gradient(151deg,transparent 0 38%,#513727 39% 43%,transparent 44%),repeating-linear-gradient(90deg,transparent 0 18px,#593c2a 19px 23px,transparent 24px 36px);clip-path:polygon(0 67%,100% 0,100% 19%,4% 84%);filter:drop-shadow(0 5px 4px rgba(0,0,0,.5))}
.r2m-hall-stair-rail i,.r2m-hall-stair-rail b,.r2m-hall-stair-rail em{position:absolute;width:5px;height:57px;background:#4a3326;bottom:5px;transform-origin:bottom}.r2m-hall-stair-rail i{left:18px;transform:rotate(-8deg)}.r2m-hall-stair-rail b{left:64px;transform:rotate(-12deg)}.r2m-hall-stair-rail em{left:109px;transform:rotate(-14deg)}
.r2m-hall-stair-debris{position:absolute;z-index:9;background:#4b3528;box-shadow:0 4px 5px rgba(0,0,0,.4)}
.debris-a{left:104px;top:685px;width:47px;height:8px;transform:rotate(22deg)}.debris-b{left:63px;top:703px;width:59px;height:8px;transform:rotate(-13deg)}

/* console table: smaller depth, real legs, trim and asymmetric still life */
.r2m-main-hall .r2m-hall-table{left:210px;top:647px;width:148px;height:36px;z-index:11;background:linear-gradient(180deg,#694735 0 6px,#3d2923 7px 23px,#291b1b 24px 100%);border:3px solid #1a1113;box-shadow:0 9px 13px rgba(0,0,0,.54),inset 0 0 0 2px rgba(138,91,53,.23)}
.r2m-main-hall .r2m-hall-table::before,.r2m-main-hall .r2m-hall-table::after{display:none}
.r2m-hall-table .table-leg{position:absolute;bottom:-14px;width:7px;height:17px;background:linear-gradient(#34211e,#1c1416);box-shadow:0 3px 3px rgba(0,0,0,.35)}.r2m-hall-table .leg-left{left:17px}.r2m-hall-table .leg-right{right:17px}
.r2m-hall-table .table-trim{position:absolute;left:8px;right:8px;top:8px;height:4px;background:repeating-linear-gradient(90deg,#765139 0 8px,#2e1f1d 9px 11px);opacity:.72}
.r2m-hall-table-shadow{position:absolute;left:212px;top:675px;width:146px;height:27px;z-index:8;border-radius:50%;background:radial-gradient(ellipse,rgba(0,0,0,.48),transparent 72%);filter:blur(2px)}
.r2m-main-hall .r2m-hall-vase{left:239px;top:620px;width:61px;height:43px;z-index:13;background:radial-gradient(circle at 20% 30%,#d6d0c8 0 5%,transparent 6%),radial-gradient(circle at 42% 20%,#e0dbd2 0 6%,transparent 7%),radial-gradient(circle at 70% 29%,#d8d2c9 0 5%,transparent 6%),repeating-conic-gradient(from -18deg at 50% 50%,#687b65 0 7deg,transparent 8deg 25deg),radial-gradient(ellipse at 50% 87%,#696a74 0 16%,#45464e 17% 26%,transparent 27%)}
.book-center{left:308px;top:655px;transform:rotate(8deg)}.book-center-two{left:325px;top:649px;transform:rotate(-6deg) scale(.82);filter:brightness(.8)}
.candle-center{left:219px;top:629px}
.r2m-hall-paper.note-center{left:295px;top:658px;transform:rotate(12deg)}

/* side furniture: asymmetry and smaller, more realistic scale */
.r2m-main-hall .r2m-hall-pedestal{width:52px;height:84px;background:linear-gradient(180deg,#72736f,#4f5256 36%,#30343a);box-shadow:0 7px 9px rgba(0,0,0,.53),inset 0 0 0 2px rgba(206,201,187,.035)}
.r2m-main-hall .r2m-hall-bust{left:7px;top:-29px;width:39px;height:47px;background:linear-gradient(180deg,#87857f,#62615f 57%,#444547)}
.r2m-hall-bust.cracked::after{content:"";position:absolute;left:18px;top:5px;width:2px;height:26px;background:#3b3a3a;transform:rotate(14deg)}
.r2m-hall-bust.damaged::before{content:"";position:absolute;right:4px;top:9px;width:10px;height:12px;background:#313234;clip-path:polygon(0 0,100% 0,70% 100%,0 70%)}
.pedestal-left{left:73px;top:714px}.pedestal-right{right:58px;top:675px;transform:scale(.94)}
.r2m-main-hall .r2m-hall-chair{width:40px;height:52px;background:linear-gradient(180deg,#5b2630,#351a21 58%,#221519);border:3px solid #251619;border-radius:11px 11px 5px 5px;box-shadow:0 8px 9px rgba(0,0,0,.58)}
.r2m-hall-chair i{position:absolute;left:7px;right:7px;top:6px;height:14px;border-radius:8px;background:rgba(159,104,94,.12)}
.hall-chair-left{left:128px;top:771px;transform:rotate(-19deg)}.hall-chair-right{right:92px;top:811px;transform:rotate(67deg)}.hall-chair-right.is-fallen{height:40px;width:52px;border-radius:8px}
.r2m-main-hall .r2m-hall-side-table{right:26px;top:566px;width:60px;height:82px;background:linear-gradient(180deg,#5b3c31 0 8px,#342421 9px 40px,#23191b 41px);border:3px solid #181114;box-shadow:0 9px 13px rgba(0,0,0,.53),inset 0 0 0 2px rgba(110,74,48,.15)}
.r2m-main-hall .r2m-hall-side-table i{position:absolute;left:10px;right:10px;bottom:9px;height:18px;border:2px solid #1c1516;background:#2b1e1e}
.r2m-main-hall .r2m-hall-lamp{right:40px;top:527px}
.r2m-hall-console-small{position:absolute;right:26px;top:725px;width:72px;height:52px;z-index:9;background:linear-gradient(180deg,#563a30,#31211f 55%,#201719);border:3px solid #171114;box-shadow:0 7px 11px rgba(0,0,0,.5)}
.r2m-hall-console-small i{position:absolute;left:12px;right:12px;top:14px;height:9px;background:#241819;box-shadow:0 18px 0 #241819}
.r2m-hall-lower-table{left:18px;top:764px;width:54px;height:70px;filter:brightness(.84)}
.r2m-hall-lower-table i{position:absolute;left:11px;right:11px;top:15px;height:25px;border:2px solid #211719;background:#30211f}

/* candle clusters with different silhouettes and flicker rhythms */
.r2m-hall-candelabra{width:36px;height:58px;filter:drop-shadow(0 0 7px rgba(239,174,67,.22))}
.r2m-hall-candelabra i,.r2m-hall-candelabra b,.r2m-hall-candelabra em{position:absolute;top:5px;width:4px;height:18px;background:#9a7540}.r2m-hall-candelabra i{left:5px}.r2m-hall-candelabra b{left:16px;height:22px;top:1px}.r2m-hall-candelabra em{right:5px;height:16px;top:7px}
.candelabra-left{left:29px;top:716px}.candelabra-right{right:21px;top:675px}.candelabra-upper-right{right:33px;top:365px;animation:r2HallFlickerB 6.6s steps(1,end) -3s infinite}

/* floor clutter in every quadrant */
.r2m-hall-rubble{left:68px;top:206px;width:84px;height:53px;opacity:.86}
.r2m-hall-books{width:46px;height:22px;background:linear-gradient(0deg,#4b2929 0 6px,#29313d 7px 13px,#554027 14px 20px);filter:brightness(.78)}
.r2m-hall-books i{position:absolute;left:6px;right:5px;top:5px;height:2px;background:rgba(215,198,160,.12)}
.books-top{left:100px;top:248px;transform:rotate(-12deg)}.books-mid-left{left:161px;top:513px;transform:rotate(17deg) scale(.82)}.books-lower-right{right:126px;top:768px;transform:rotate(-9deg) scale(.8)}
.r2m-hall-frame{width:49px;height:59px;border:6px solid #463124;filter:brightness(.76)}.fallen-frame-left{left:45px;top:662px;transform:rotate(-18deg)}
.r2m-hall-frame i{position:absolute;inset:7px;border:1px solid rgba(153,127,94,.18);background:linear-gradient(135deg,#3a3036,#17151a)}
.r2m-hall-glass{position:absolute;right:106px;top:266px;width:63px;height:41px;z-index:8;background:linear-gradient(28deg,transparent 0 31%,rgba(173,185,189,.10) 32% 34%,transparent 35%),linear-gradient(153deg,transparent 0 49%,rgba(185,198,201,.09) 50% 52%,transparent 53%);opacity:.55}
.r2m-hall-paper{filter:brightness(.74) saturate(.7)}.paper-top{left:416px;top:245px}.paper-right{right:89px;top:605px}.paper-lower-left{left:161px;top:805px;transform:rotate(-20deg)}.paper-lower-right{right:137px;top:849px;transform:rotate(14deg)}
.r2m-hall-wood{position:absolute;z-index:8;height:7px;background:linear-gradient(90deg,#3c2b22,#57402e,#2c201c);box-shadow:0 3px 4px rgba(0,0,0,.4)}.wood-lower-left{left:105px;top:836px;width:72px;transform:rotate(13deg)}.wood-mid-right{right:112px;top:522px;width:58px;transform:rotate(-18deg)}
.r2m-hall-cracked-pot{right:121px;top:840px;filter:brightness(.67)}
.r2m-hall-small-frame{filter:brightness(.7)}.frame-bottom-left{left:41px;bottom:42px}.frame-bottom-right{right:74px;bottom:78px}
.r2m-hall-dust{opacity:.72}.dust-top{left:67px;top:172px;width:116px;height:69px}.dust-a{left:69px;top:464px;width:124px;height:76px}.dust-b{right:67px;top:703px;width:136px;height:82px}.dust-c{left:209px;top:734px;width:142px;height:77px}
.r2m-hall-blood.blood-top{left:329px;top:254px;width:82px;height:65px;filter:saturate(.55) brightness(.58)}.r2m-hall-blood.blood-mid{left:365px;top:398px;width:88px;height:73px;filter:saturate(.58) brightness(.59)}
.r2m-hall-blood.blood-drops{position:absolute;right:99px;top:772px;width:67px;height:71px;background:radial-gradient(circle at 15% 18%,rgba(75,7,14,.48) 0 3px,transparent 4px),radial-gradient(circle at 44% 35%,rgba(86,7,15,.54) 0 4px,transparent 5px),radial-gradient(ellipse at 71% 64%,rgba(69,7,13,.44) 0 6px,transparent 8px),linear-gradient(64deg,transparent 0 55%,rgba(71,6,13,.26) 56% 59%,transparent 60%);z-index:7;filter:blur(.2px)}

/* local wall lights: uneven placement and brightness */
.sconce-top-left{left:145px;top:40px}.sconce-top-right{right:151px;top:43px;filter:brightness(.82) drop-shadow(0 0 8px rgba(249,181,73,.19))}.sconce-mid-left{left:40px;top:511px;filter:brightness(.76) drop-shadow(0 0 13px rgba(249,181,73,.17))}.sconce-mid-right{right:39px;top:488px;filter:brightness(.91) drop-shadow(0 0 15px rgba(249,181,73,.22))}

/* extra edge vignette only for hall geometry, not HUD */
.r2m-hall-edge-vignette{position:absolute;inset:0;z-index:33;pointer-events:none;box-shadow:inset 0 0 46px 14px rgba(0,0,0,.27),inset 0 0 110px 26px rgba(0,0,0,.15)}

/* y-sort / occlusion tuning for the new tall props */
.r2m-main-hall .r2-furniture-tall.is-covering-player{z-index:999!important;filter:drop-shadow(0 6px 7px rgba(0,0,0,.45))}
.room2-player.is-occluded{filter:brightness(.93)}

/* hide superseded primitives from the older hall composition */
.r2m-main-hall .console-left,.r2m-main-hall .console-right,
.r2m-main-hall .dead-plant-a,.r2m-main-hall .dead-plant-b,
.r2m-main-hall .hall-candle-a,.r2m-main-hall .hall-candle-b,
.r2m-main-hall .hall-papers-a,.r2m-main-hall .hall-blood-a,
.r2m-main-hall .bust-left,.r2m-main-hall .bust-right,
.r2m-main-hall .hall-chair-a,.r2m-main-hall .hall-chair-b{display:none!important}

/* carved double-door detail layers */
.r2m-mansion-map .r2-exit-door .r2-door-leaf{position:absolute;top:7px;bottom:7px;width:43%;border:2px solid rgba(105,70,43,.48);background:linear-gradient(180deg,rgba(115,71,43,.15),rgba(26,14,13,.10));box-shadow:inset 0 0 0 2px rgba(15,8,8,.30);pointer-events:none}
.r2m-mansion-map .r2-exit-door .leaf-left{left:6px}.r2m-mansion-map .r2-exit-door .leaf-right{right:6px}
.r2m-mansion-map .r2-exit-door .r2-door-leaf::before,.r2m-mansion-map .r2-exit-door .r2-door-leaf::after{content:"";position:absolute;left:8px;right:8px;border:2px solid rgba(127,83,47,.36);box-shadow:inset 0 0 0 2px rgba(15,9,8,.22)}
.r2m-mansion-map .r2-exit-door .r2-door-leaf::before{top:8px;height:23px;border-radius:9px 9px 3px 3px}.r2m-mansion-map .r2-exit-door .r2-door-leaf::after{bottom:8px;height:29px}
.r2m-mansion-map .r2-exit-door .r2-door-leaf b{position:absolute;left:50%;top:36px;width:18px;height:18px;border:2px solid rgba(135,91,52,.35);transform:translateX(-50%) rotate(45deg);box-shadow:inset 0 0 7px rgba(0,0,0,.35)}
.r2m-mansion-map .r2-exit-door .r2-door-leaf em{position:absolute;left:50%;bottom:7px;width:2px;height:60%;background:linear-gradient(180deg,transparent,rgba(9,5,5,.50),transparent);transform:translateX(-50%)}
.r2m-mansion-map .r2-exit-door .r2-door-handles{position:absolute;left:50%;top:45%;width:28px;height:32px;transform:translate(-50%,-50%);pointer-events:none}
.r2m-mansion-map .r2-exit-door .r2-door-handles>i,.r2m-mansion-map .r2-exit-door .r2-door-handles>b{position:absolute;top:5px;width:5px;height:20px;background:linear-gradient(90deg,#7a592e,#c0964d 50%,#684821);border-radius:3px;box-shadow:0 2px 3px rgba(0,0,0,.5)}
.r2m-mansion-map .r2-exit-door .r2-door-handles>i{left:4px}.r2m-mansion-map .r2-exit-door .r2-door-handles>b{right:4px}

/* carpet ornamental border and wear details */
.r2m-main-hall .r2m-main-runner{overflow:hidden}
.r2m-main-hall .r2m-main-runner::before{background:
  repeating-linear-gradient(180deg,transparent 0 10px,rgba(160,120,60,.16) 11px 12px,transparent 13px 23px),
  repeating-linear-gradient(135deg,rgba(171,128,63,.13) 0 2px,transparent 2px 8px) left 3px top 4px/12px 22px repeat-y,
  repeating-linear-gradient(45deg,rgba(171,128,63,.12) 0 2px,transparent 2px 8px) right 3px top 4px/12px 22px repeat-y,
  linear-gradient(90deg,rgba(157,117,59,.18) 0 2px,transparent 3px calc(100% - 3px),rgba(157,117,59,.18) calc(100% - 2px)),
  radial-gradient(ellipse at 46% 18%,rgba(11,0,3,.35) 0 10%,transparent 14%),
  radial-gradient(ellipse at 60% 53%,rgba(65,3,12,.43) 0 8%,transparent 11%),
  radial-gradient(ellipse at 38% 79%,rgba(16,0,3,.30) 0 7%,transparent 11%)}
.r2m-main-hall .r2m-main-runner::after{background:
  linear-gradient(166deg,transparent 0 23%,rgba(226,203,155,.055) 24% 24.5%,transparent 25%) 0 0/100% 178px,
  linear-gradient(17deg,transparent 0 45%,rgba(4,1,2,.27) 46% 50%,transparent 51%) 0 49px/100% 239px,
  linear-gradient(96deg,transparent 0 43%,rgba(36,13,15,.35) 44% 49%,transparent 50%) 0 595px/100% 44px no-repeat}

/* micro age marks on architecture */
.r2m-main-wallband.left::before,.r2m-main-wallband.right::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 62px,rgba(112,78,55,.08) 63px 65px,transparent 66px 118px),radial-gradient(ellipse at 35% 33%,rgba(100,82,67,.08),transparent 14%),radial-gradient(ellipse at 58% 71%,rgba(0,0,0,.18),transparent 15%);opacity:.8}
.r2m-main-wallband.right::before{transform:scaleX(-1)}
.r2m-main-hall .r2m-hall-panel:nth-of-type(odd){filter:brightness(.88)}

/* small irregular floor scars to break clean geometry */
.r2m-main-hall .r2m-main-floor-age::before{content:"";position:absolute;left:77px;top:284px;width:48px;height:72px;background:linear-gradient(67deg,transparent 0 47%,rgba(8,8,11,.52) 48% 50%,transparent 51%),linear-gradient(105deg,transparent 0 62%,rgba(8,8,11,.42) 63% 65%,transparent 66%);opacity:.76}
.r2m-main-hall .r2m-main-floor-age::after{content:"";position:absolute;right:68px;bottom:133px;width:65px;height:56px;background:linear-gradient(29deg,transparent 0 51%,rgba(10,10,13,.48) 52% 54%,transparent 55%),linear-gradient(146deg,transparent 0 45%,rgba(10,10,13,.34) 46% 48%,transparent 49%);opacity:.65}

/* ========================================================================== */
/* ROOM 2 — MAIN HALL V4: ARCHITECTURAL ZONES / CLUSTERED STORYTELLING       */
/* ========================================================================== */
.r2m-main-hall.r2v-hall{
  border-color:#121219;
  box-shadow:0 0 0 3px #07080c,0 0 0 7px rgba(64,56,68,.5),0 18px 42px rgba(0,0,0,.72),inset 0 0 60px rgba(0,0,0,.52);
  background:#0a0b10;
  overflow:hidden;
}
.r2v-hall .r2v-floor{
  background:
    radial-gradient(ellipse at 18% 16%,rgba(87,75,69,.08),transparent 20%),
    radial-gradient(ellipse at 84% 74%,rgba(17,21,31,.18),transparent 32%),
    linear-gradient(45deg,#262b34 25%,transparent 25% 75%,#262b34 75%),
    linear-gradient(45deg,#171b22 25%,#343943 25% 75%,#171b22 75%);
  background-size:auto,auto,46px 46px,46px 46px;
  background-position:0 0,0 0,0 0,23px 23px;
  filter:saturate(.68) brightness(.78);
}
.r2v-hall .r2v-floor::before{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.46;
  background:
    repeating-linear-gradient(104deg,transparent 0 91px,rgba(255,255,255,.014) 92px 93px,transparent 94px 188px),
    radial-gradient(ellipse at 14% 71%,rgba(0,0,0,.23),transparent 17%),
    radial-gradient(ellipse at 89% 39%,rgba(0,0,0,.2),transparent 14%),
    linear-gradient(90deg,rgba(0,0,0,.23),transparent 14% 86%,rgba(0,0,0,.26));
}
.r2v-floor-wear{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:.78}
.r2v-floor-wear::before{content:"";position:absolute;left:48px;top:492px;width:142px;height:168px;background:
  linear-gradient(66deg,transparent 0 47%,rgba(5,6,8,.62) 48% 50%,transparent 51%),
  linear-gradient(118deg,transparent 0 57%,rgba(5,6,8,.4) 58% 60%,transparent 61%),
  radial-gradient(ellipse at 34% 71%,rgba(34,24,20,.35),transparent 38%);opacity:.7}
.r2v-floor-wear::after{content:"";position:absolute;right:45px;bottom:64px;width:126px;height:114px;background:
  linear-gradient(24deg,transparent 0 52%,rgba(5,6,8,.46) 53% 55%,transparent 56%),
  radial-gradient(ellipse at 60% 35%,rgba(18,16,17,.42),transparent 40%);opacity:.6}

/* Architecture first: thick wall layers, recesses and vertical rhythm. */
.r2v-architecture{position:absolute;inset:0;z-index:4;pointer-events:none}
.r2v-top-wall{position:absolute;left:0;right:0;top:0;height:116px;background:
  linear-gradient(180deg,#171319 0,#241d23 39%,#16151b 40% 68%,#0c0d12 69% 100%);box-shadow:inset 0 -18px 26px rgba(0,0,0,.5)}
.r2v-top-wall::before{content:"";position:absolute;left:0;right:0;top:72px;height:25px;background:repeating-linear-gradient(90deg,#2b2225 0 37px,#1b161a 38px 40px);border-top:2px solid #4a3a33;border-bottom:3px solid #0d0d11;box-shadow:inset 0 8px 14px rgba(0,0,0,.35)}
.r2v-top-wall .r2v-crown{position:absolute;left:0;right:0;top:0;height:13px;background:linear-gradient(#504239,#2c2526 45%,#17151a 48%);box-shadow:0 3px 5px rgba(0,0,0,.55)}
.r2v-top-wall .r2v-wainscot{position:absolute;left:26px;right:26px;bottom:4px;height:37px;border:2px solid rgba(96,69,51,.22);box-shadow:inset 0 0 0 5px rgba(17,13,15,.34)}
.r2v-side-wall{position:absolute;top:112px;bottom:0;width:54px;background:linear-gradient(90deg,#17161d,#282228 37%,#15161c 72%,#090b10 100%);box-shadow:inset -11px 0 17px rgba(0,0,0,.48)}
.r2v-side-wall.left{left:0}.r2v-side-wall.right{right:0;transform:scaleX(-1)}
.r2v-side-wall::before{content:"";position:absolute;left:6px;right:11px;top:18px;bottom:28px;background:repeating-linear-gradient(180deg,transparent 0 76px,rgba(88,66,54,.2) 77px 80px,transparent 81px 147px);border-left:2px solid rgba(86,62,48,.23);border-right:2px solid rgba(9,8,11,.7)}
.r2v-side-wall i,.r2v-side-wall b,.r2v-side-wall em{position:absolute;left:10px;right:16px;border:2px solid rgba(84,64,53,.23);box-shadow:inset 0 0 13px rgba(0,0,0,.42)}
.r2v-side-wall i{top:58px;height:142px}.r2v-side-wall b{top:301px;height:170px}.r2v-side-wall em{bottom:82px;height:184px}
.r2v-pilaster{position:absolute;width:28px;background:linear-gradient(90deg,#1b171c,#4a392f 31%,#2b2223 57%,#121217);border-left:2px solid #0d0c11;border-right:2px solid #0d0c11;box-shadow:5px 0 11px rgba(0,0,0,.38)}
.r2v-pilaster::before,.r2v-pilaster::after{content:"";position:absolute;left:-5px;right:-5px;height:9px;background:linear-gradient(#58483c,#241d22);border:1px solid #151117}
.r2v-pilaster::before{top:0}.r2v-pilaster::after{bottom:0}
.r2v-pilaster i{position:absolute;left:7px;top:15px;bottom:15px;width:10px;border-left:1px solid rgba(121,94,68,.22);border-right:1px solid rgba(0,0,0,.35)}
.r2v-pilaster.door-left{left:184px;top:8px;height:106px}.r2v-pilaster.door-right{right:184px;top:8px;height:106px}
.r2v-pilaster.side-left-a{left:38px;top:245px;height:135px}.r2v-pilaster.side-right-a{right:38px;top:210px;height:149px}
.r2v-pilaster.side-left-b{left:39px;top:665px;height:152px}.r2v-pilaster.side-right-b{right:39px;top:641px;height:168px}
.r2v-alcove{position:absolute;width:75px;height:154px;top:382px;background:linear-gradient(90deg,#121218,#252027 12%,#0d0e13 24% 76%,#282128 88%,#101116);border:2px solid #342a29;box-shadow:inset 0 0 26px rgba(0,0,0,.83),0 4px 10px rgba(0,0,0,.36)}
.r2v-alcove.left{left:8px}.r2v-alcove.right{right:8px}
.r2v-alcove::before{content:"";position:absolute;left:10px;right:10px;top:11px;height:88px;border-radius:36px 36px 5px 5px/22px 22px 5px 5px;border:3px solid rgba(64,52,48,.55);box-shadow:inset 0 0 19px rgba(0,0,0,.8)}
.r2v-alcove i{position:absolute;left:27px;top:43px;width:20px;height:36px;background:linear-gradient(#4e4d4c,#25262a);border-radius:42% 42% 26% 26%;opacity:.5}
.r2v-alcove b{position:absolute;left:18px;right:18px;bottom:22px;height:7px;background:#272025;box-shadow:0 5px 6px rgba(0,0,0,.5)}
.r2v-bottom-recess{position:absolute;left:177px;right:177px;bottom:0;height:41px;background:linear-gradient(#1c191e,#090a0e);border:5px solid #211b20;box-shadow:inset 0 8px 16px rgba(0,0,0,.65)}
.r2v-bottom-recess i{position:absolute;left:12px;right:12px;top:7px;bottom:7px;border:2px solid rgba(74,58,48,.3)}
.r2v-wall-damage{position:absolute;width:35px;height:65px;opacity:.35;background:linear-gradient(103deg,transparent 0 42%,#08090c 43% 46%,transparent 47%),linear-gradient(66deg,transparent 0 58%,#07080b 59% 62%,transparent 63%)}
.damage-left{left:28px;top:566px}.damage-right{right:27px;top:492px;transform:scaleX(-1)}
.r2v-cobweb{position:absolute;width:52px;height:52px;opacity:.38;background:repeating-conic-gradient(from 0deg at 0 0,rgba(211,207,199,.26) 0 1deg,transparent 1deg 17deg);clip-path:polygon(0 0,100% 0,0 100%)}
.web-left{left:5px;top:117px}.web-right{right:6px;top:115px;transform:scaleX(-1)}

/* Runner is integrated into thresholds, not a floating rectangle. */
.r2v-runner{position:absolute;left:220px;top:94px;width:120px;height:789px;z-index:5;background:
  linear-gradient(90deg,#2a0911,#5f101c 8%,#741723 22%,#7a1824 50%,#68131f 77%,#54101b 92%,#24080e);
  border-left:3px solid #6f5732;border-right:3px solid #6f5732;box-shadow:0 0 0 2px rgba(24,13,14,.88),0 11px 19px rgba(0,0,0,.32);overflow:hidden}
.r2v-runner::before{content:"";position:absolute;inset:7px;border-left:2px solid rgba(169,128,65,.34);border-right:2px solid rgba(169,128,65,.34);background:
  repeating-linear-gradient(135deg,transparent 0 9px,rgba(174,131,67,.12) 10px 11px,transparent 12px 22px) left 0 top 0/11px 100% no-repeat,
  repeating-linear-gradient(45deg,transparent 0 9px,rgba(174,131,67,.11) 10px 11px,transparent 12px 22px) right 0 top 0/11px 100% no-repeat,
  radial-gradient(ellipse at 45% 22%,rgba(5,0,2,.28),transparent 12%),
  radial-gradient(ellipse at 57% 55%,rgba(45,1,8,.42),transparent 10%),
  radial-gradient(ellipse at 39% 82%,rgba(0,0,0,.23),transparent 9%)}
.r2v-runner::after{content:"";position:absolute;left:3px;right:3px;top:0;bottom:0;background:
  linear-gradient(180deg,rgba(0,0,0,.16),transparent 7% 89%,rgba(0,0,0,.26)),
  linear-gradient(103deg,transparent 0 62%,rgba(216,189,134,.04) 63% 64%,transparent 65%) 0 133px/100% 183px repeat-y,
  linear-gradient(79deg,transparent 0 39%,rgba(6,0,1,.24) 40% 45%,transparent 46%) 0 606px/100% 39px no-repeat}
.r2v-runner i,.r2v-runner b,.r2v-runner em{position:absolute;pointer-events:none}
.r2v-runner i{left:14px;right:14px;top:305px;height:16px;border-top:1px solid rgba(209,172,103,.1);border-bottom:1px solid rgba(0,0,0,.16)}
.r2v-runner b{left:0;right:0;top:0;height:18px;background:linear-gradient(180deg,rgba(72,42,28,.25),transparent)}
.r2v-runner em{left:0;right:0;bottom:0;height:20px;background:linear-gradient(0deg,rgba(0,0,0,.38),transparent)}

.r2v-zone{position:absolute;inset:0;z-index:6;pointer-events:none}
.r2v-zone .room2-obstacle{pointer-events:none}

/* ZONE A — formal Grand Entrance. */
.r2v-door-lintel{position:absolute;left:169px;top:0;width:222px;height:105px;z-index:11;pointer-events:none}
.r2v-door-lintel::before{content:"";position:absolute;left:13px;right:13px;top:0;height:20px;border-radius:18px 18px 3px 3px;background:linear-gradient(#5a4436,#2b2424 48%,#15151a);box-shadow:0 5px 10px rgba(0,0,0,.6)}
.r2v-door-lintel::after{content:"";position:absolute;left:1px;right:1px;top:17px;height:76px;border:5px solid #382e2c;border-radius:28px 28px 7px 7px/21px 21px 7px 7px;box-shadow:0 0 0 2px #0d0e12,inset 0 0 0 2px rgba(110,81,55,.25)}
.r2v-door-lintel i{position:absolute;left:84px;top:2px;width:54px;height:15px;background:linear-gradient(90deg,transparent,#80623c 35%,#b58a4c 50%,#80623c 65%,transparent);clip-path:polygon(0 100%,14% 43%,33% 33%,50% 0,67% 33%,86% 43%,100% 100%)}
.r2v-door-lintel b,.r2v-door-lintel em{position:absolute;top:34px;width:18px;height:57px;background:linear-gradient(90deg,#1c181c,#4a382f 44%,#1a171c);border:1px solid #0d0d11}
.r2v-door-lintel b{left:3px}.r2v-door-lintel em{right:3px}
.r2v-portrait{position:absolute;top:21px;width:55px;height:76px;z-index:10;border:4px solid #5e462c;background:#171318;box-shadow:0 4px 8px rgba(0,0,0,.5),inset 0 0 0 2px #231a18}
.r2v-portrait::before{content:"";position:absolute;inset:4px;border:2px solid rgba(155,113,58,.23)}
.r2v-portrait .canvas{position:absolute;inset:8px;background:radial-gradient(circle at 50% 24%,#6d6560 0 9%,#2a262b 10% 20%,transparent 21%),radial-gradient(ellipse at 50% 58%,#343039 0 25%,#17151a 27% 100%);filter:sepia(.18) brightness(.65)}
.r2v-portrait .glass{position:absolute;inset:5px;background:linear-gradient(114deg,transparent 0 45%,rgba(220,223,217,.1) 46% 47%,transparent 48%);opacity:.55}
.r2v-portrait.portrait-left{left:78px}.r2v-portrait.portrait-right{right:75px}.r2v-portrait.is-tilted{transform:rotate(3deg)}
.r2v-sconce{position:absolute;width:24px;height:50px;z-index:12}
.r2v-sconce::before{content:"";position:absolute;left:9px;top:16px;width:6px;height:26px;background:linear-gradient(90deg,#4b331d,#a57836 50%,#392616);border-radius:4px}
.r2v-sconce::after{content:"";position:absolute;left:2px;top:0;width:20px;height:20px;border-radius:50%;background:radial-gradient(circle,#ffe4a3 0 17%,#ffc262 19% 36%,rgba(244,175,76,.22) 37% 70%,transparent 72%);box-shadow:0 0 18px rgba(255,191,82,.36)}
.r2v-sconce i{position:absolute;left:4px;right:4px;bottom:5px;height:5px;border-radius:50%;background:#5a3c20}.r2v-sconce b{position:absolute;left:11px;top:14px;width:2px;height:8px;background:#d3a45b}
.r2v-sconce.entrance-left{left:147px;top:37px}.r2v-sconce.entrance-right{right:145px;top:39px}.r2v-sconce.is-weak{filter:brightness(.72)}
.r2v-planter{position:absolute;top:124px;width:50px;height:76px;z-index:9;filter:drop-shadow(0 7px 6px rgba(0,0,0,.48))}
.r2v-planter.planter-left{left:100px}.r2v-planter.planter-right{right:101px}
.r2v-planter .pot{position:absolute;left:13px;right:13px;bottom:0;height:27px;background:linear-gradient(90deg,#4b4d4c,#85857e 45%,#595a57);clip-path:polygon(17% 0,83% 0,94% 27%,85% 100%,15% 100%,6% 27%);box-shadow:inset 0 5px 8px rgba(0,0,0,.22)}
.r2v-planter .leaves{position:absolute;left:0;right:0;top:0;height:56px;background:repeating-conic-gradient(from -10deg at 50% 82%,#39483b 0 8deg,transparent 8deg 24deg);filter:brightness(.68) saturate(.7)}
.r2v-planter.is-withered .leaves{transform:rotate(5deg) scaleX(.86);filter:grayscale(.5) brightness(.52)}

/* ZONE B — memorial shrine, controlled negative space around it. */
.r2v-zone-memorial{z-index:7}
.r2v-memorial-wear{position:absolute;left:201px;top:292px;width:157px;height:197px;border-radius:50%;background:radial-gradient(ellipse,rgba(18,16,17,.17),transparent 65%);opacity:.8}
.r2v-statue-shadow{position:absolute;left:228px;top:422px;width:119px;height:42px;border-radius:50%;background:radial-gradient(ellipse,rgba(0,0,0,.47),transparent 70%);transform:rotate(8deg);filter:blur(1px)}
.r2v-statue{position:absolute;left:240px;top:278px;width:72px;height:174px;z-index:12;filter:drop-shadow(6px 9px 7px rgba(0,0,0,.46))}
.r2v-statue .head{position:absolute;left:27px;top:5px;width:18px;height:22px;border-radius:48% 48% 42% 42%;background:linear-gradient(120deg,#928f86,#575851 60%,#454741);box-shadow:inset -5px -2px 6px rgba(0,0,0,.22)}
.r2v-statue .veil{position:absolute;left:18px;top:9px;width:38px;height:48px;background:linear-gradient(100deg,#696b65,#4c4f4c 48%,#70716b);clip-path:polygon(27% 0,69% 0,88% 20%,82% 93%,64% 100%,53% 36%,43% 100%,17% 91%,12% 21%)}
.r2v-statue .shoulder{position:absolute;left:16px;top:43px;width:41px;height:37px;background:linear-gradient(120deg,#77766f,#4e504e 62%,#62645f);clip-path:polygon(21% 5%,79% 5%,100% 43%,86% 100%,14% 100%,0 43%)}
.r2v-statue .arm{position:absolute;top:58px;width:12px;height:47px;background:linear-gradient(#666963,#454845);border-radius:8px}.r2v-statue .arm.left{left:15px;transform:rotate(20deg)}.r2v-statue .arm.right{right:15px;transform:rotate(-24deg)}
.r2v-statue .flowers{position:absolute;left:25px;top:72px;width:25px;height:18px;background:radial-gradient(circle at 20% 55%,#8f8d82 0 14%,transparent 15%),radial-gradient(circle at 46% 24%,#77796f 0 15%,transparent 16%),radial-gradient(circle at 72% 54%,#97948a 0 14%,transparent 15%);filter:brightness(.74)}
.r2v-statue .dress{position:absolute;left:12px;top:76px;width:50px;height:73px;background:linear-gradient(100deg,#62645f,#89857c 48%,#535653);clip-path:polygon(30% 0,70% 0,83% 19%,100% 100%,0 100%,16% 19%);box-shadow:inset 8px 0 12px rgba(0,0,0,.12)}
.r2v-statue .fold{position:absolute;top:89px;width:2px;height:53px;background:rgba(36,38,38,.3);z-index:2}.r2v-statue .fold-a{left:29px;transform:rotate(6deg)}.r2v-statue .fold-b{right:24px;transform:rotate(-7deg)}
.r2v-statue .crack{position:absolute;left:41px;top:29px;width:18px;height:48px;background:linear-gradient(76deg,transparent 0 47%,rgba(37,39,38,.65) 48% 51%,transparent 52%),linear-gradient(110deg,transparent 0 67%,rgba(38,40,39,.48) 68% 71%,transparent 72%);opacity:.65}
.r2v-statue .pedestal{position:absolute;left:5px;right:5px;bottom:0;height:34px;background:linear-gradient(180deg,#74746e,#55585a 44%,#33363b 45% 100%);border:2px solid #292c31;box-shadow:0 5px 8px rgba(0,0,0,.55),inset 0 0 0 3px rgba(198,190,173,.04)}
.r2v-statue .pedestal::before{content:"";position:absolute;left:7px;right:7px;top:7px;height:10px;border:1px solid rgba(38,39,41,.7)}
.r2v-offering-bowl{position:absolute;left:263px;top:455px;width:30px;height:12px;border-radius:0 0 50% 50%;background:linear-gradient(90deg,#44371f,#9a7740 50%,#46361e);box-shadow:0 4px 5px rgba(0,0,0,.4)}
.r2v-memorial-candle{position:absolute;width:15px;height:32px;z-index:11}.r2v-memorial-candle.candle-a{left:215px;top:411px}.r2v-memorial-candle.candle-b{left:329px;top:420px}
.r2v-memorial-candle::before{content:"";position:absolute;left:6px;bottom:0;width:5px;height:20px;background:#9d895c}.r2v-memorial-candle::after{content:"";position:absolute;left:3px;top:0;width:9px;height:11px;border-radius:50%;background:radial-gradient(circle,#fff2bd 0 18%,#f0b74f 22% 55%,transparent 58%);box-shadow:0 0 9px rgba(239,168,67,.45)}
.r2v-memorial-candle i{position:absolute;left:2px;right:2px;bottom:0;height:3px;border-radius:50%;background:#574322}.r2v-memorial-candle b{position:absolute;inset:-8px;background:radial-gradient(circle,rgba(255,184,73,.14),transparent 68%)}
.r2v-petals{position:absolute;left:223px;top:445px;width:106px;height:34px}.r2v-petals i{position:absolute;width:7px;height:3px;border-radius:50%;background:#7c605e;opacity:.48}.r2v-petals i:nth-child(1){left:8px;top:8px;transform:rotate(18deg)}.r2v-petals i:nth-child(2){left:39px;top:17px;transform:rotate(-12deg)}.r2v-petals i:nth-child(3){left:70px;top:4px;transform:rotate(35deg)}.r2v-petals i:nth-child(4){left:92px;top:20px;transform:rotate(-24deg)}.r2v-petals i:nth-child(5){left:57px;top:27px}
.r2v-wax{position:absolute;left:316px;top:445px;width:24px;height:12px;background:radial-gradient(ellipse,rgba(146,121,80,.22),transparent 72%)}

/* ZONE C — collapsed staircase: one coherent architectural ruin. */
.r2v-stair-shadow{position:absolute;left:29px;top:646px;width:176px;height:88px;background:radial-gradient(ellipse at 42% 50%,rgba(0,0,0,.47),transparent 72%);transform:rotate(-10deg)}
.r2v-stair{position:absolute;left:17px;top:532px;width:164px;height:185px;z-index:13;overflow:visible}
.r2v-stair .step{position:absolute;left:19px;height:25px;background:linear-gradient(180deg,#72503a,#443021 46%,#271c17 48%);border-top:2px solid rgba(126,91,60,.42);box-shadow:0 5px 6px rgba(0,0,0,.35);transform:skewX(-27deg)}
.r2v-stair .s1{bottom:23px;width:128px}.r2v-stair .s2{bottom:47px;width:113px;left:34px}.r2v-stair .s3{bottom:71px;width:96px;left:49px}.r2v-stair .s4{bottom:95px;width:79px;left:64px}
.r2v-stair .stringer{position:absolute;left:46px;top:31px;width:13px;height:139px;background:linear-gradient(90deg,#241b17,#60442e 48%,#2b201b);transform:rotate(42deg);transform-origin:bottom;box-shadow:3px 4px 6px rgba(0,0,0,.4)}
.r2v-stair .newel{position:absolute;left:8px;bottom:17px;width:18px;height:84px;background:linear-gradient(90deg,#2b1e19,#765038 48%,#2c1f1a);border-radius:7px 7px 3px 3px;box-shadow:3px 4px 7px rgba(0,0,0,.45)}
.r2v-stair .newel::before{content:"";position:absolute;left:-3px;right:-3px;top:-9px;height:15px;border-radius:50%;background:#755039}
.r2v-stair-rail{position:absolute;left:37px;top:527px;width:158px;height:133px;z-index:14;transform:rotate(-2deg)}
.r2v-stair-rail::before{content:"";position:absolute;left:13px;top:84px;width:142px;height:10px;background:linear-gradient(#6c4934,#2f211b);transform:rotate(-32deg);transform-origin:left;box-shadow:0 3px 5px rgba(0,0,0,.45)}
.r2v-stair-rail i,.r2v-stair-rail b,.r2v-stair-rail em,.r2v-stair-rail span{position:absolute;width:7px;background:linear-gradient(90deg,#2a1f1a,#5d402d 50%,#271d19);transform-origin:bottom}
.r2v-stair-rail i{left:45px;top:63px;height:65px;transform:rotate(5deg)}.r2v-stair-rail b{left:75px;top:50px;height:57px;transform:rotate(1deg)}.r2v-stair-rail em{left:105px;top:39px;height:45px;transform:rotate(-5deg)}.r2v-stair-rail span{left:133px;top:25px;height:35px;transform:rotate(14deg)}
.r2v-stair-debris{position:absolute;left:24px;top:672px;width:182px;height:96px;z-index:8}
.r2v-stair-debris .board{position:absolute;height:10px;background:linear-gradient(90deg,#3e2a20,#6b4732,#35251d);box-shadow:0 3px 4px rgba(0,0,0,.4)}.r2v-stair-debris .board-a{left:20px;top:29px;width:74px;transform:rotate(21deg)}.r2v-stair-debris .board-b{left:83px;top:54px;width:70px;transform:rotate(-17deg)}
.r2v-stair-debris .baluster{position:absolute;left:101px;top:12px;width:8px;height:47px;background:#4e3528;transform:rotate(49deg)}
.r2v-stair-debris .frame{position:absolute;left:11px;bottom:1px;width:43px;height:36px;border:5px solid #4a3424;transform:rotate(-13deg);box-shadow:0 4px 5px rgba(0,0,0,.4)}
.r2v-stair-debris .dust{position:absolute;left:65px;right:0;bottom:0;height:31px;background:radial-gradient(ellipse,rgba(97,81,67,.14),transparent 70%)}
.r2v-stair-sconce{position:absolute;left:82px;top:500px;width:21px;height:46px;z-index:15}.r2v-stair-sconce::before{content:"";position:absolute;left:8px;top:15px;width:5px;height:24px;background:#6b4e29}.r2v-stair-sconce::after{content:"";position:absolute;left:2px;top:0;width:17px;height:17px;border-radius:50%;background:radial-gradient(circle,#ffe1a0 0 18%,#e9aa4d 21% 43%,transparent 46%);box-shadow:0 0 14px rgba(238,167,69,.33)}
.r2v-stair-stain{position:absolute;left:74px;top:704px;width:95px;height:60px;background:radial-gradient(ellipse at 42% 52%,rgba(66,10,13,.34),transparent 56%);transform:rotate(-11deg)}

/* ZONE D — preserved formal console cluster. */
.r2v-console-portrait{position:absolute;right:69px;top:417px;width:65px;height:82px;border:5px solid #4b3527;background:#151319;box-shadow:0 5px 8px rgba(0,0,0,.47)}
.r2v-console-portrait::before{content:"";position:absolute;inset:7px;border:2px solid rgba(126,90,51,.25);background:radial-gradient(circle at 52% 24%,#55504d 0 10%,#1d1b20 11% 23%,transparent 24%),linear-gradient(180deg,#322a31,#17151a)}
.r2v-console-portrait i{position:absolute;inset:5px;border-top:1px solid rgba(255,255,255,.05)}.r2v-console-portrait b{position:absolute;left:13px;top:9px;width:1px;height:54px;background:rgba(206,207,201,.1);transform:rotate(12deg)}
.r2v-console{position:absolute;right:30px;top:485px;width:112px;height:72px;z-index:11;filter:drop-shadow(5px 8px 6px rgba(0,0,0,.5))}
.r2v-console .top{position:absolute;left:3px;right:3px;top:7px;height:14px;border-radius:5px 5px 2px 2px;background:linear-gradient(#6b4937,#432c26 60%,#2a1b1a);box-shadow:inset 0 0 0 2px rgba(116,76,49,.22)}
.r2v-console .apron{position:absolute;left:11px;right:11px;top:20px;height:15px;background:linear-gradient(180deg,#4e3228,#2e1e1b);clip-path:polygon(0 0,100% 0,92% 100%,8% 100%)}
.r2v-console .leg{position:absolute;top:32px;width:10px;height:37px;background:linear-gradient(90deg,#241819,#53352a 48%,#201718);clip-path:polygon(12% 0,88% 0,74% 100%,26% 100%)}.r2v-console .l1{left:17px}.r2v-console .l2{right:17px}
.r2v-console .drawer{position:absolute;left:38px;right:38px;top:20px;height:9px;border:1px solid #241818;background:#39241f}.r2v-console .drawer::after{content:"";position:absolute;left:50%;top:3px;width:3px;height:3px;border-radius:50%;background:#8b6a3b}
.r2v-console-vase{position:absolute;right:73px;top:456px;width:42px;height:37px;z-index:12}.r2v-console-vase::before{content:"";position:absolute;left:15px;bottom:0;width:15px;height:19px;background:linear-gradient(90deg,#52555a,#8b8c87 50%,#4a4c51);border-radius:5px 5px 8px 8px}.r2v-console-vase::after{content:"";position:absolute;left:2px;right:0;top:0;height:24px;background:repeating-conic-gradient(from -15deg at 50% 90%,#899185 0 9deg,transparent 9deg 26deg);filter:grayscale(.2) brightness(.8)}
.r2v-console-books{position:absolute;right:35px;top:492px;width:38px;height:16px;z-index:12;transform:rotate(-5deg)}.r2v-console-books::before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#51312c 0 5px,#293442 6px 10px,#6c5430 11px 15px);box-shadow:0 3px 4px rgba(0,0,0,.35)}
.r2v-console-candelabra{position:absolute;right:145px;top:471px;width:50px;height:65px;z-index:13}.r2v-console-candelabra .stem{position:absolute;left:23px;top:24px;width:5px;height:35px;background:#7b5f30}.r2v-console-candelabra .arm{position:absolute;top:24px;width:20px;height:4px;background:#7b5f30}.r2v-console-candelabra .a{left:5px;transform:rotate(-18deg)}.r2v-console-candelabra .b{left:25px;transform:rotate(18deg)}.r2v-console-candelabra .c{left:15px;top:17px}
.r2v-console-candelabra::before,.r2v-console-candelabra::after,.r2v-console-candelabra b{content:"";position:absolute;top:7px;width:8px;height:12px;border-radius:50%;background:radial-gradient(circle,#ffe4a0 0 20%,#eeb04c 22% 54%,transparent 57%);box-shadow:0 0 9px rgba(235,167,72,.35)}.r2v-console-candelabra::before{left:5px}.r2v-console-candelabra::after{right:5px}.r2v-console-candelabra b{left:21px}.r2v-console-candelabra em{position:absolute;left:17px;bottom:0;width:17px;height:5px;border-radius:50%;background:#584221}
.r2v-console-paper{position:absolute;right:58px;top:552px;width:17px;height:22px;background:#847c69;transform:rotate(12deg);opacity:.52}.r2v-console-wax{position:absolute;right:130px;top:540px;width:33px;height:19px;background:radial-gradient(ellipse,rgba(137,111,72,.2),transparent 72%)}

/* ZONE E — purposeful center console table. */
.r2v-center-table-shadow{position:absolute;left:199px;top:659px;width:157px;height:31px;border-radius:50%;background:radial-gradient(ellipse,rgba(0,0,0,.42),transparent 72%)}
.r2v-center-table{position:absolute;left:209px;top:619px;width:136px;height:42px;z-index:14;filter:drop-shadow(4px 7px 5px rgba(0,0,0,.46))}
.r2v-center-table .top{position:absolute;left:0;right:0;top:0;height:13px;border-radius:3px;background:linear-gradient(#684536,#432b24 56%,#2d1c1b);border:2px solid #241717;box-shadow:inset 0 0 0 2px rgba(137,91,57,.22)}
.r2v-center-table .apron{position:absolute;left:8px;right:8px;top:12px;height:12px;background:linear-gradient(#503227,#2e1e1b);clip-path:polygon(0 0,100% 0,93% 100%,7% 100%)}
.r2v-center-table .leg{position:absolute;top:22px;width:9px;height:20px;background:linear-gradient(90deg,#251818,#533429 48%,#221719);clip-path:polygon(10% 0,90% 0,68% 100%,32% 100%)}.r2v-center-table .leg.left{left:19px}.r2v-center-table .leg.right{right:19px}
.r2v-center-table .carving{position:absolute;left:50%;top:13px;width:22px;height:8px;transform:translateX(-50%);border-bottom:2px solid rgba(118,78,47,.5);border-radius:0 0 50% 50%}
.r2v-center-vase{position:absolute;left:249px;top:586px;width:44px;height:36px;z-index:15}.r2v-center-vase::before{content:"";position:absolute;left:15px;bottom:0;width:15px;height:18px;background:linear-gradient(90deg,#545760,#898a87 50%,#4b4d54);border-radius:4px 4px 8px 8px}.r2v-center-vase::after{content:"";position:absolute;left:1px;right:1px;top:0;height:24px;background:radial-gradient(circle at 20% 64%,#b4b7aa 0 8%,transparent 9%),radial-gradient(circle at 50% 26%,#d0cdc0 0 9%,transparent 10%),radial-gradient(circle at 79% 56%,#a4aa9b 0 8%,transparent 9%),repeating-conic-gradient(from -10deg at 50% 90%,#53604f 0 8deg,transparent 9deg 29deg);filter:brightness(.8)}
.r2v-center-book{position:absolute;top:611px;width:27px;height:9px;z-index:15;box-shadow:0 2px 3px rgba(0,0,0,.35)}.r2v-center-book.book-one{left:292px;background:#3e2d2d;transform:rotate(6deg)}.r2v-center-book.book-two{left:314px;top:607px;background:#27313d;transform:rotate(-5deg)}
.r2v-center-paper{position:absolute;left:321px;top:642px;width:18px;height:22px;background:#8d8471;transform:rotate(13deg);opacity:.6;z-index:8}
.r2v-center-candle{position:absolute;left:229px;top:594px;width:14px;height:29px;z-index:15}.r2v-center-candle::before{content:"";position:absolute;left:5px;bottom:0;width:5px;height:19px;background:#a08d65}.r2v-center-candle::after{content:"";position:absolute;left:3px;top:0;width:8px;height:10px;border-radius:50%;background:radial-gradient(circle,#fff0b5 0 18%,#e8ab47 22% 55%,transparent 58%);box-shadow:0 0 8px rgba(232,165,67,.38)}
.r2v-center-fallen-flower{position:absolute;left:338px;top:665px;width:29px;height:14px;background:radial-gradient(circle at 22% 60%,#7d5b59 0 12%,transparent 13%),radial-gradient(circle at 45% 30%,#936b68 0 12%,transparent 13%),linear-gradient(12deg,transparent 0 45%,#4d5747 46% 50%,transparent 51%);opacity:.58}

/* ZONE F1 — abandoned seating corner. */
.r2v-rug-fragment{position:absolute;border:2px solid rgba(108,82,50,.4);background:linear-gradient(145deg,#35141c,#4c1b27 58%,#25131a);opacity:.48;box-shadow:0 4px 8px rgba(0,0,0,.28)}
.seating-rug{left:45px;top:742px;width:132px;height:92px;transform:rotate(-5deg);clip-path:polygon(0 0,100% 5%,94% 84%,72% 86%,65% 100%,0 92%)}
.r2v-chair{position:absolute;z-index:13;filter:drop-shadow(4px 7px 5px rgba(0,0,0,.47))}.r2v-chair.upright{left:83px;top:744px;width:44px;height:60px}.r2v-chair .back{position:absolute;left:6px;right:6px;top:0;height:28px;border-radius:13px 13px 7px 7px;background:linear-gradient(180deg,#5d2630,#3a1b22);border:3px solid #2a171a;box-shadow:inset 0 0 0 3px rgba(103,49,55,.25)}
.r2v-chair .seat{position:absolute;left:8px;right:8px;top:27px;height:15px;border-radius:4px;background:#4d2229;border:2px solid #291619}
.r2v-chair .leg{position:absolute;top:42px;width:5px;height:18px;background:#412921}.r2v-chair .leg.a{left:9px;transform:rotate(4deg)}.r2v-chair .leg.b{right:9px;transform:rotate(-5deg)}
.r2v-side-table{position:absolute;left:37px;top:736px;width:42px;height:48px;z-index:12}.r2v-side-table .top{position:absolute;left:0;right:0;top:4px;height:10px;border-radius:50%;background:linear-gradient(#584035,#2e221f);border:2px solid #24191a}.r2v-side-table .leg{position:absolute;left:18px;top:13px;width:7px;height:32px;background:linear-gradient(90deg,#241919,#4f372d 50%,#241919)}
.r2v-seating-lamp{position:absolute;left:48px;top:693px;width:21px;height:46px;z-index:13}.r2v-seating-lamp::before{content:"";position:absolute;left:8px;top:15px;width:5px;height:26px;background:#70522d}.r2v-seating-lamp::after{content:"";position:absolute;left:2px;top:0;width:17px;height:17px;border-radius:50%;background:radial-gradient(circle,#ffe4a5 0 19%,#e7aa4e 21% 47%,transparent 50%);box-shadow:0 0 13px rgba(236,167,72,.3)}
.r2v-seating-book{position:absolute;left:137px;top:810px;width:28px;height:11px;background:#2d3946;transform:rotate(-17deg);box-shadow:0 2px 3px rgba(0,0,0,.4);opacity:.78}.r2v-seating-paper{position:absolute;left:64px;top:798px;width:17px;height:23px;background:#837b68;transform:rotate(15deg);opacity:.45}
.r2v-seating-frame{position:absolute;left:16px;top:818px;width:38px;height:30px;border:5px solid #4d3525;transform:rotate(-12deg);box-shadow:0 4px 5px rgba(0,0,0,.4)}.r2v-seating-frame i{position:absolute;inset:5px;background:#151318}

/* ZONE F2 — bust/portrait corner. */
.bust-rug{right:39px;top:718px;width:124px;height:98px;transform:rotate(4deg);clip-path:polygon(5% 0,100% 4%,96% 100%,21% 94%,0 72%)}
.r2v-bust-portrait{position:absolute;right:48px;top:658px;width:57px;height:75px;border:5px solid #4b3728;background:#171318;box-shadow:0 5px 8px rgba(0,0,0,.46)}.r2v-bust-portrait::before{content:"";position:absolute;inset:7px;background:radial-gradient(circle at 48% 27%,#58534f 0 9%,#211f23 10% 20%,transparent 21%),linear-gradient(180deg,#2e2930,#161419)}.r2v-bust-portrait b{position:absolute;left:11px;top:6px;width:1px;height:52px;background:rgba(220,220,210,.09);transform:rotate(-13deg)}
.r2v-bust-pedestal{position:absolute;right:48px;top:742px;width:54px;height:90px;z-index:13;background:linear-gradient(90deg,#45484b,#757571 48%,#3b3e42);clip-path:polygon(14% 0,86% 0,96% 18%,86% 100%,14% 100%,4% 18%);box-shadow:0 7px 8px rgba(0,0,0,.45),inset 0 0 0 2px rgba(207,199,184,.04)}
.r2v-bust-pedestal .bust{position:absolute;left:7px;top:-35px;width:40px;height:50px;background:linear-gradient(120deg,#85837c,#5a5a57 64%,#444646);clip-path:polygon(38% 0,62% 0,72% 19%,67% 35%,82% 55%,100% 100%,0 100%,18% 55%,33% 35%,28% 19%);filter:drop-shadow(0 4px 4px rgba(0,0,0,.48))}
.r2v-bust-pedestal .bust::after{content:"";position:absolute;left:22px;top:8px;width:2px;height:24px;background:#353637;transform:rotate(22deg);opacity:.65}.r2v-bust-pedestal .base{position:absolute;left:7px;right:7px;bottom:7px;height:6px;border-top:1px solid rgba(27,28,31,.65)}
.r2v-bust-candle{position:absolute;right:113px;top:772px;width:15px;height:32px;z-index:13}.r2v-bust-candle::before{content:"";position:absolute;left:6px;bottom:0;width:5px;height:20px;background:#98855e}.r2v-bust-candle::after{content:"";position:absolute;left:3px;top:0;width:9px;height:11px;border-radius:50%;background:radial-gradient(circle,#fff0b6 0 18%,#e6a849 22% 55%,transparent 58%);box-shadow:0 0 9px rgba(231,164,66,.33)}
.r2v-chair.fallen{right:103px;top:829px;width:46px;height:52px;transform:rotate(62deg)}
.r2v-bust-dust{position:absolute;right:25px;top:827px;width:154px;height:51px;background:radial-gradient(ellipse,rgba(102,84,67,.12),transparent 70%)}

/* Story accents grouped intentionally, not random clutter. */
.r2v-blood-smear{position:absolute;z-index:5;pointer-events:none}.blood-stair{left:85px;top:705px;width:83px;height:55px;background:radial-gradient(ellipse at 45% 52%,rgba(74,7,13,.36),transparent 58%);transform:rotate(-12deg)}
.blood-carpet{left:332px;top:377px;width:70px;height:48px;background:linear-gradient(70deg,transparent 0 41%,rgba(79,6,13,.42) 42% 47%,transparent 48%),radial-gradient(ellipse at 62% 58%,rgba(85,8,14,.3),transparent 45%)}
.r2v-blood-trail{position:absolute;right:99px;bottom:79px;width:91px;height:48px;z-index:5}.r2v-blood-trail i{position:absolute;width:9px;height:6px;border-radius:54% 44% 58% 40%;background:rgba(87,8,14,.42)}.r2v-blood-trail i:nth-child(1){left:8px;top:21px}.r2v-blood-trail i:nth-child(2){left:38px;top:11px;width:7px;height:5px}.r2v-blood-trail i:nth-child(3){right:8px;bottom:5px;width:11px;height:7px}
.r2v-edge-vignette{position:absolute;inset:0;z-index:40;pointer-events:none;box-shadow:inset 0 0 74px 22px rgba(0,0,0,.26),inset 0 0 18px 3px rgba(0,0,0,.35)}

/* High-detail door styling, still the same gameplay trigger. */
.r2m-mansion-map .r2-exit-door{left:980px!important;top:174px!important;width:142px!important;height:88px!important;z-index:33!important;border:7px solid #302622!important;border-radius:24px 24px 6px 6px/18px 18px 6px 6px!important;background:linear-gradient(90deg,transparent 49%,rgba(10,6,5,.9) 49.2% 50.8%,transparent 51%),linear-gradient(180deg,#543126,#3e241d 20%,#281917 50%,#44271f 75%,#231616 100%)!important;box-shadow:0 0 0 3px #5c4938,0 0 0 8px #171419,0 10px 19px rgba(0,0,0,.68),inset 0 0 0 2px rgba(135,96,58,.23)!important;color:transparent!important;text-indent:-9999px!important;overflow:visible!important}
.r2m-mansion-map .r2-exit-door::before{content:"";position:absolute;left:-19px;right:-19px;top:-18px;bottom:-12px;border:4px solid #3b302b;border-radius:31px 31px 9px 9px/23px 23px 9px 9px;box-shadow:0 0 0 2px #111116,inset 0 0 0 2px rgba(127,94,60,.19)}
.r2m-mansion-map .r2-exit-door::after{content:"";position:absolute;left:-29px;right:-29px;top:-25px;height:16px;background:linear-gradient(#514034,#2b2424 48%,#15151a);clip-path:polygon(0 100%,7% 28%,23% 18%,31% 0,69% 0,77% 18%,93% 28%,100% 100%);box-shadow:0 3px 6px rgba(0,0,0,.6)}
.r2m-mansion-map .r2-exit-door .r2-door-leaf{position:absolute;top:7px;bottom:7px;width:45%;border:2px solid rgba(32,18,14,.75);background:linear-gradient(180deg,rgba(104,62,41,.12),rgba(0,0,0,.06));box-shadow:inset 0 0 0 5px rgba(39,22,18,.32)}
.r2m-mansion-map .r2-exit-door .leaf-left{left:4px}.r2m-mansion-map .r2-exit-door .leaf-right{right:4px}
.r2m-mansion-map .r2-exit-door .r2-door-leaf::before,.r2m-mansion-map .r2-exit-door .r2-door-leaf::after{content:"";position:absolute;left:8px;right:8px;border:2px solid rgba(114,75,48,.24);box-shadow:inset 0 0 7px rgba(0,0,0,.18)}
.r2m-mansion-map .r2-exit-door .r2-door-leaf::before{top:8px;height:23px}.r2m-mansion-map .r2-exit-door .r2-door-leaf::after{bottom:8px;height:25px}
.r2m-mansion-map .r2-exit-door .r2-door-leaf>b{position:absolute;left:50%;top:18px;width:15px;height:20px;transform:translateX(-50%);border:2px solid rgba(108,76,48,.24);border-radius:50% 50% 6px 6px}.r2m-mansion-map .r2-exit-door .r2-door-leaf>em{position:absolute;left:9px;right:9px;bottom:13px;height:1px;background:rgba(137,93,56,.19)}
.r2m-mansion-map .r2-exit-door .r2-door-handles{position:absolute;left:50%;top:47%;width:30px;height:31px;transform:translate(-50%,-50%);pointer-events:none;text-indent:0}
.r2m-mansion-map .r2-exit-door .r2-door-handles>i,.r2m-mansion-map .r2-exit-door .r2-door-handles>b{position:absolute;top:4px;width:5px;height:21px;border-radius:3px;background:linear-gradient(90deg,#68471f,#b78a43 50%,#5e3e1c);box-shadow:0 2px 3px rgba(0,0,0,.5)}.r2m-mansion-map .r2-exit-door .r2-door-handles>i{left:4px}.r2m-mansion-map .r2-exit-door .r2-door-handles>b{right:4px}
.r2m-mansion-map .r2-exit-door span{display:none!important}

/* Lighting composition: focal entrance, medium shrine/console, dark lower corners. */
.r2v-zone-entrance::before,.r2v-zone-memorial::before,.r2v-zone-console::before,.r2v-zone-seating::before,.r2v-zone-bust::before{content:"";position:absolute;pointer-events:none;z-index:1}
.r2v-zone-entrance::before{left:111px;top:0;width:338px;height:232px;background:radial-gradient(ellipse at 50% 32%,rgba(244,181,90,.12),transparent 62%)}
.r2v-zone-memorial::before{left:180px;top:249px;width:211px;height:250px;background:radial-gradient(ellipse at 58% 55%,rgba(219,165,85,.055),transparent 67%)}
.r2v-zone-console::before{right:0;top:393px;width:242px;height:234px;background:radial-gradient(ellipse at 68% 45%,rgba(244,174,73,.105),transparent 64%)}
.r2v-zone-seating::before{left:0;bottom:42px;width:210px;height:250px;background:radial-gradient(ellipse at 31% 48%,rgba(237,168,71,.07),transparent 66%)}
.r2v-zone-bust::before{right:0;bottom:38px;width:214px;height:262px;background:radial-gradient(ellipse at 67% 46%,rgba(229,163,68,.06),transparent 67%)}
.room2-world.is-powered:not(.is-power-restored) .r2v-hall{filter:brightness(.9)}
.room2-world.is-power-flicker .r2v-sconce,.room2-world.is-power-flicker .r2v-memorial-candle,.room2-world.is-power-flicker .r2v-console-candelabra,.room2-world.is-power-flicker .r2v-seating-lamp,.room2-world.is-power-flicker .r2v-bust-candle,.room2-world.is-power-flicker .r2v-center-candle,.room2-world.is-power-flicker .r2v-stair-sconce{animation:r2vLampFlicker .23s steps(2,end) infinite}
.room2-world.is-power-flicker .r2v-sconce.entrance-right,.room2-world.is-power-flicker .r2v-console-candelabra{animation-delay:.11s}.room2-world.is-power-flicker .r2v-stair-sconce{animation-delay:.17s}
.room2-world.is-blackout .r2v-sconce,.room2-world.is-blackout .r2v-memorial-candle,.room2-world.is-blackout .r2v-console-candelabra,.room2-world.is-blackout .r2v-seating-lamp,.room2-world.is-blackout .r2v-bust-candle,.room2-world.is-blackout .r2v-center-candle,.room2-world.is-blackout .r2v-stair-sconce{filter:brightness(.08);opacity:.28}
.room2-world.is-blackout .r2v-zone-entrance::before,.room2-world.is-blackout .r2v-zone-memorial::before,.room2-world.is-blackout .r2v-zone-console::before,.room2-world.is-blackout .r2v-zone-seating::before,.room2-world.is-blackout .r2v-zone-bust::before{opacity:.08}
@keyframes r2vLampFlicker{0%,19%,47%,72%,100%{opacity:1;filter:brightness(1)}20%,25%{opacity:.32;filter:brightness(.45)}48%,53%{opacity:.74;filter:brightness(.72)}73%,76%{opacity:.1;filter:brightness(.25)}}

/* Y-sort / occlusion cues reuse existing class toggled by the engine. */
.r2v-hall .r2-furniture-tall{z-index:12}.r2v-hall .r2-furniture-tall.is-covering-player{z-index:999!important}
.r2v-hall .r2v-statue.is-covering-player,.r2v-hall .r2v-center-table.is-covering-player,.r2v-hall .r2v-console.is-covering-player,.r2v-hall .r2v-bust-pedestal.is-covering-player,.r2v-hall .r2v-chair.is-covering-player,.r2v-hall .r2v-stair.is-covering-player{z-index:999!important}

@media(max-width:760px){
  .r2v-portrait,.r2v-console-portrait,.r2v-bust-portrait{filter:brightness(.82)}
  .r2v-edge-vignette{box-shadow:inset 0 0 54px 15px rgba(0,0,0,.24)}
}


/* ==========================================================
   GRAPHICS PREVIEW MODE — disable puzzle emphasis, keep the
   four portrait photos, and simplify the hall composition.
   ========================================================== */
.room2-world.r2-graphics-preview #room2InteractionPrompt,
.room2-world.r2-graphics-preview #room2PuzzleCount,
.room2-world.r2-graphics-preview .room2-integrity-card,
.room2-world.r2-graphics-preview #room2Inventory{
  opacity:.45;
}
.room2-world.r2-graphics-preview .room2-interactable{cursor:default}
.room2-world.r2-graphics-preview .room2-interactable.is-nearby{outline:none;box-shadow:none}
.room2-world.r2-graphics-preview .r2-symbol,
.room2-world.r2-graphics-preview #room2SwitchClue,
.room2-world.r2-graphics-preview .r2-red-box,
.room2-world.r2-graphics-preview #room2SecurityKeypad,
.room2-world.r2-graphics-preview #room2Crowbar{
  opacity:0!important;
  pointer-events:none!important;
}
.room2-world.r2-graphics-preview .r2m-room-title{opacity:.12}
.room2-world.r2-graphics-preview .r2v-zone-center-table,
.room2-world.r2-graphics-preview .r2v-zone-seating,
.room2-world.r2-graphics-preview .r2v-stair-debris,
.room2-world.r2-graphics-preview .r2v-stair-stain,
.room2-world.r2-graphics-preview .r2v-console-paper,
.room2-world.r2-graphics-preview .r2v-console-wax,
.room2-world.r2-graphics-preview .r2v-seating-paper,
.room2-world.r2-graphics-preview .r2v-seating-frame,
.room2-world.r2-graphics-preview .r2v-seating-book{
  display:none!important;
}
.room2-world.r2-graphics-preview .r2v-zone-bust{left:auto;right:36px;top:768px;width:130px;height:178px}
.room2-world.r2-graphics-preview .r2v-bust-portrait{display:none!important}
.room2-world.r2-graphics-preview .r2v-rug-fragment.bust-rug{display:none!important}
.room2-world.r2-graphics-preview .r2v-bust-pedestal{left:0!important;top:18px!important}
.room2-world.r2-graphics-preview .r2v-bust-candle{left:42px!important;top:16px!important}
.room2-world.r2-graphics-preview .r2v-zone-console{top:635px}
.room2-world.r2-graphics-preview .r2v-console-portrait{top:20px}
.room2-world.r2-graphics-preview .r2v-console{top:104px}
.room2-world.r2-graphics-preview .r2v-console-vase{top:93px}
.room2-world.r2-graphics-preview .r2v-console-books{top:108px}
.room2-world.r2-graphics-preview .r2v-console-candelabra{top:78px}
.room2-world.r2-graphics-preview .r2v-stair-shadow{left:8px;top:570px;width:250px;height:140px;transform:none;opacity:.8}
.room2-world.r2-graphics-preview .r2v-zone-stair{overflow:visible}
.room2-world.r2-graphics-preview .r2v-stair{left:10px;top:548px;width:214px;height:250px}
.room2-world.r2-graphics-preview .r2v-stair::before{content:'';position:absolute;left:84px;top:-10px;width:108px;height:80px;background:linear-gradient(180deg,#6a4b37,#31211b);border:3px solid #231714;box-shadow:0 12px 16px rgba(0,0,0,.42), inset 0 0 0 1px rgba(135,98,64,.22)}
.room2-world.r2-graphics-preview .r2v-stair::after{content:'';position:absolute;left:132px;top:-68px;width:14px;height:86px;background:linear-gradient(90deg,#261b17,#6d4d38 50%,#2b1f1a);box-shadow:56px -2px 0 0 #2a1d18}
.room2-world.r2-graphics-preview .r2v-stair .step{left:24px;width:132px;height:20px;transform:skewX(-26deg)}
.room2-world.r2-graphics-preview .r2v-stair .s1{bottom:28px}
.room2-world.r2-graphics-preview .r2v-stair .s2{bottom:48px;left:36px;width:126px}
.room2-world.r2-graphics-preview .r2v-stair .s3{bottom:68px;left:48px;width:120px}
.room2-world.r2-graphics-preview .r2v-stair .s4{bottom:88px;left:60px;width:114px}
.room2-world.r2-graphics-preview .r2v-stair .stringer{left:76px;top:44px;height:162px}
.room2-world.r2-graphics-preview .r2v-stair .newel{left:12px;bottom:18px;height:95px}
.room2-world.r2-graphics-preview .r2v-stair-rail{left:29px;top:548px;width:188px;height:180px;transform:none}
.room2-world.r2-graphics-preview .r2v-stair-rail::before{left:18px;top:117px;width:152px;transform:rotate(-30deg)}
.room2-world.r2-graphics-preview .r2v-stair-rail i{left:48px;top:84px;height:76px}
.room2-world.r2-graphics-preview .r2v-stair-rail b{left:78px;top:72px;height:68px}
.room2-world.r2-graphics-preview .r2v-stair-rail em{left:108px;top:59px;height:59px}
.room2-world.r2-graphics-preview .r2v-stair-rail span{left:138px;top:47px;height:49px}
.room2-world.r2-graphics-preview .r2v-stair-sconce{left:112px;top:510px}
.room2-world.r2-graphics-preview .r2m-photo-clue-spread{pointer-events:none;z-index:35}
.room2-world.r2-graphics-preview .r2m-clue-photo{pointer-events:none;cursor:default!important;transform:none!important;box-shadow:0 4px 10px rgba(0,0,0,.34)}
.room2-world.r2-graphics-preview .r2m-clue-photo::after{content:'';position:absolute;inset:-4px;border:2px solid rgba(154,119,78,.55);pointer-events:none}
.room2-world.r2-graphics-preview .r2m-clue-photo b,
.room2-world.r2-graphics-preview .r2m-clue-photo em{display:none!important}
.room2-world.r2-graphics-preview .r2m-clue-photo[data-portrait='1']{left:716px!important;top:344px!important;width:38px!important;height:48px!important}
.room2-world.r2-graphics-preview .r2m-clue-photo[data-portrait='2']{left:782px!important;top:340px!important;width:38px!important;height:48px!important}
.room2-world.r2-graphics-preview .r2m-clue-photo[data-portrait='3']{left:998px!important;top:340px!important;width:38px!important;height:48px!important}
.room2-world.r2-graphics-preview .r2m-clue-photo[data-portrait='4']{left:1064px!important;top:344px!important;width:38px!important;height:48px!important}
.room2-world.r2-graphics-preview .r2m-clue-photo img{width:100%;height:100%;display:block;filter:contrast(.95) saturate(.85)}
.room2-world.r2-graphics-preview #room2Desk,
.room2-world.r2-graphics-preview #room2GrandfatherClock,
.room2-world.r2-graphics-preview #room2Flashlight,
.room2-world.r2-graphics-preview #room2SwitchPanel,
.room2-world.r2-graphics-preview #room2PhotoPanel,
.room2-world.r2-graphics-preview #room2Generator,
.room2-world.r2-graphics-preview #room2Breaker{filter:none;box-shadow:0 10px 15px rgba(0,0,0,.42)}
.room2-world.r2-graphics-preview #room2Generator span,
.room2-world.r2-graphics-preview #room2Breaker span,
.room2-world.r2-graphics-preview #room2SecurityDoor span{opacity:.2}

/* ==========================================================
   MAIN HALL V3 — final visual pass
   Architecture-first Victorian foyer. No puzzle clutter.
   ========================================================== */
.r2hall-v3{
  overflow:visible;
  background:#141218!important;
  border-color:#17131a!important;
  box-shadow:0 0 0 3px #07070b,0 0 0 6px rgba(74,64,72,.34),0 22px 44px rgba(0,0,0,.72),inset 0 0 80px rgba(0,0,0,.72)!important;
}
.r2hall-v3::before{
  inset:5px!important;
  z-index:90!important;
  border:1px solid rgba(146,116,84,.14)!important;
  box-shadow:inset 0 0 0 5px rgba(9,8,12,.72),inset 0 0 44px rgba(0,0,0,.55)!important;
  pointer-events:none;
}
.r2hall-v3::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:70!important;
  pointer-events:none;
  background:linear-gradient(90deg,rgba(0,0,0,.52),transparent 10%,transparent 90%,rgba(0,0,0,.55)),linear-gradient(180deg,rgba(0,0,0,.18),transparent 18%,transparent 74%,rgba(0,0,0,.34));
}
.r2h-floor{position:absolute;inset:0;z-index:1;background-color:#20232a;background-image:linear-gradient(45deg,#30343d 25%,transparent 25% 75%,#30343d 75%),linear-gradient(45deg,#14171d 25%,#3a3e47 25% 75%,#14171d 75%),radial-gradient(circle at 20% 16%,rgba(255,255,255,.03) 0 2px,transparent 3px),radial-gradient(circle at 78% 67%,rgba(0,0,0,.18) 0 5px,transparent 7px);background-size:52px 52px,52px 52px,83px 83px,97px 97px;background-position:0 0,26px 26px,0 0,21px 44px;filter:saturate(.72) brightness(.84)}
.r2h-floor::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 42%,transparent 0 42%,rgba(0,0,0,.18) 78%),repeating-linear-gradient(16deg,transparent 0 124px,rgba(225,216,193,.016) 125px 126px,transparent 127px 210px);pointer-events:none}
.r2h-floor-inlay{position:absolute;left:34px;right:34px;top:118px;bottom:52px;z-index:2;border:1px solid rgba(111,93,74,.18);box-shadow:0 0 0 8px rgba(13,12,16,.38),inset 0 0 0 4px rgba(31,27,31,.45);pointer-events:none}

.r2h-runner{position:absolute;left:216px;top:105px;width:128px;height:770px;z-index:4;background:linear-gradient(90deg,#2d0c14 0,#671925 8%,#861f2f 50%,#671925 92%,#2d0c14 100%);border:2px solid #7a6038;box-shadow:0 0 0 2px #211417,0 10px 18px rgba(0,0,0,.38),inset 0 0 18px rgba(35,8,14,.7)}
.r2h-runner::before{content:"";position:absolute;inset:9px;border:1px solid rgba(207,169,92,.42);box-shadow:inset 0 0 0 3px rgba(55,24,23,.34);background:repeating-linear-gradient(180deg,transparent 0 54px,rgba(231,203,139,.035) 55px 56px,transparent 57px 107px)}
.r2h-runner::after{content:"";position:absolute;inset:18px 22px;background:radial-gradient(ellipse at 58% 23%,rgba(0,0,0,.22) 0 5%,transparent 8%),radial-gradient(ellipse at 41% 66%,rgba(93,13,23,.34) 0 6%,transparent 9%),linear-gradient(174deg,transparent 0 36%,rgba(231,219,190,.035) 37% 38%,transparent 39%);opacity:.9}
.r2h-runner i,.r2h-runner b{position:absolute;left:7px;right:7px;height:10px;border-top:1px solid rgba(208,167,90,.26);border-bottom:1px solid rgba(41,18,19,.6)}
.r2h-runner i{top:16px}.r2h-runner b{bottom:18px}

.r2h-architecture{position:absolute;inset:0;z-index:10;pointer-events:none}
.r2h-top-wall{position:absolute;left:18px;right:18px;top:12px;height:112px;background:linear-gradient(180deg,#171115,#24191b 24%,#1d1518 65%,#120f13);border:3px solid #2a2022;box-shadow:inset 0 -16px 22px rgba(0,0,0,.38),0 7px 13px rgba(0,0,0,.42)}
.r2h-top-crown{position:absolute;left:6px;right:6px;top:8px;height:16px;background:linear-gradient(180deg,#4a382d,#241b1b 48%,#120f12);border-top:2px solid rgba(140,104,65,.34);box-shadow:0 8px 0 rgba(11,9,12,.7)}
.r2h-top-panel{position:absolute;top:34px;width:70px;height:54px;border:5px solid #332522;background:linear-gradient(180deg,#1b1518,#111014);box-shadow:inset 0 0 0 2px rgba(107,79,54,.16),0 4px 8px rgba(0,0,0,.35)}
.r2h-top-panel::after{content:"";position:absolute;inset:8px;border:1px solid rgba(125,92,60,.18)}
.r2h-top-panel.panel-a{left:34px}.r2h-top-panel.panel-b{left:112px}.r2h-top-panel.panel-c{right:112px}.r2h-top-panel.panel-d{right:34px}
.r2h-side-wall{position:absolute;top:107px;bottom:36px;width:41px;background:linear-gradient(90deg,#0d0d12,#21181c 48%,#171217);border:3px solid #2a2024;box-shadow:inset 0 0 18px rgba(0,0,0,.58)}
.r2h-side-wall.left{left:9px}.r2h-side-wall.right{right:9px;transform:scaleX(-1)}
.r2h-side-wall i,.r2h-side-wall b,.r2h-side-wall em{position:absolute;left:7px;right:7px;border:2px solid rgba(97,70,53,.26);background:rgba(9,9,12,.23)}
.r2h-side-wall i{top:68px;height:126px}.r2h-side-wall b{top:267px;height:175px}.r2h-side-wall em{bottom:80px;height:145px}
.r2h-corner-column{position:absolute;width:34px;height:150px;background:linear-gradient(90deg,#151117,#3b2a27 48%,#181218);border:2px solid #2a1e22;box-shadow:inset 5px 0 8px rgba(0,0,0,.35),0 7px 12px rgba(0,0,0,.38)}
.r2h-corner-column::before,.r2h-corner-column::after{content:"";position:absolute;left:-5px;right:-5px;height:16px;background:linear-gradient(#4b372d,#251b1d);border:2px solid #171216}
.r2h-corner-column::before{top:-8px}.r2h-corner-column::after{bottom:-8px}
.r2h-corner-column.tl{left:37px;top:105px}.r2h-corner-column.tr{right:37px;top:105px}.r2h-corner-column.bl{left:37px;bottom:78px;height:132px}.r2h-corner-column.br{right:37px;bottom:78px;height:132px}
.r2h-wall-niche{position:absolute;width:64px;height:150px;top:292px;background:linear-gradient(180deg,#171318,#0c0c10);border:7px solid #2b2022;border-radius:31px 31px 5px 5px/43px 43px 5px 5px;box-shadow:inset 0 0 22px rgba(0,0,0,.78),0 5px 10px rgba(0,0,0,.35)}
.r2h-wall-niche.left{left:23px}.r2h-wall-niche.right{right:23px}
.r2h-wall-niche i{position:absolute;left:18px;right:18px;top:26px;height:42px;border-radius:50%;background:linear-gradient(#3f3b3b,#1f1d20);opacity:.58}
.r2h-wall-niche b{position:absolute;left:20px;right:20px;bottom:18px;height:42px;background:#1c171a;border:2px solid #332725}
.r2h-baseboard{position:absolute;top:118px;bottom:49px;width:13px;background:linear-gradient(90deg,#171217,#463129,#1a1418);box-shadow:0 0 0 1px #0d0b0f}
.r2h-baseboard.left{left:48px}.r2h-baseboard.right{right:48px}

.r2h-grand-door-zone{position:absolute;left:176px;top:14px;width:208px;height:142px;z-index:18;pointer-events:none}
.r2h-door-arch{position:absolute;left:10px;right:10px;top:0;height:124px;border:10px solid #3a2926;border-bottom:0;border-radius:74px 74px 12px 12px/46px 46px 8px 8px;background:linear-gradient(180deg,#2a1d1d,#161216 72%);box-shadow:0 0 0 3px #141014,0 9px 16px rgba(0,0,0,.45),inset 0 0 0 2px rgba(117,83,54,.2)}
.r2h-door-arch::before{content:"";position:absolute;left:-15px;right:-15px;top:22px;height:14px;background:linear-gradient(180deg,#624933,#2d211f);border:2px solid #161216;box-shadow:0 4px 8px rgba(0,0,0,.35)}
.r2h-door-arch i,.r2h-door-arch b,.r2h-door-arch em{position:absolute;background:#5e4732;border:2px solid #271b1b}
.r2h-door-arch i{left:-18px;top:70px;width:19px;height:64px}.r2h-door-arch b{right:-18px;top:70px;width:19px;height:64px}.r2h-door-arch em{left:68px;top:-13px;width:46px;height:18px;border-radius:12px 12px 2px 2px}
.r2h-grand-door{position:absolute;left:32px;top:44px;width:144px;height:92px;display:flex;border:5px solid #201516;background:#1c1416;box-shadow:inset 0 0 16px rgba(0,0,0,.55)}
.r2h-grand-door .leaf{position:relative;display:block;width:50%;height:100%;background:linear-gradient(90deg,#2b1917,#573226 52%,#2d1a18);box-shadow:inset 0 0 0 2px rgba(115,77,50,.22)}
.r2h-grand-door .leaf.left{border-right:1px solid #130d0f}.r2h-grand-door .leaf.right{border-left:1px solid #130d0f}
.r2h-grand-door .leaf::before,.r2h-grand-door .leaf::after{content:"";position:absolute;left:12px;right:12px;border:2px solid rgba(112,79,51,.32);box-shadow:inset 0 0 0 2px rgba(17,11,12,.32)}
.r2h-grand-door .leaf::before{top:12px;height:27px}.r2h-grand-door .leaf::after{bottom:10px;height:29px}
.r2h-grand-door .handles{position:absolute;left:50%;top:47px;width:28px;height:18px;transform:translateX(-50%)}
.r2h-grand-door .handles i,.r2h-grand-door .handles b{position:absolute;top:2px;width:5px;height:15px;border-radius:3px;background:linear-gradient(90deg,#8f6a35,#d0a050 50%,#795629);box-shadow:0 1px 3px #000}
.r2h-grand-door .handles i{left:5px}.r2h-grand-door .handles b{right:5px}
.r2h-door-sconce{position:absolute;top:58px;width:27px;height:51px}
.r2h-door-sconce.left{left:-18px}.r2h-door-sconce.right{right:-18px}
.r2h-door-sconce::before{content:"";position:absolute;left:11px;top:18px;width:6px;height:28px;background:linear-gradient(#9b7441,#4e381f)}
.r2h-door-sconce i{position:absolute;left:7px;top:5px;width:14px;height:19px;background:radial-gradient(circle at 50% 34%,#fff2b3 0 13%,#ecb34e 18% 46%,rgba(236,171,73,.2) 48% 100%);border-radius:50% 50% 44% 44%;box-shadow:0 0 16px rgba(245,184,76,.46)}
.r2h-door-sconce b{position:absolute;left:6px;bottom:1px;width:16px;height:6px;border-radius:50%;background:#5b4228}

.r2h-memorial-zone{position:absolute;left:210px;top:240px;width:140px;height:240px;z-index:20;pointer-events:none}
.r2h-statue-glow{position:absolute;left:-25px;top:8px;width:190px;height:190px;background:radial-gradient(ellipse,rgba(231,185,105,.08),transparent 69%);filter:blur(3px)}
.r2h-statue-shadow{position:absolute;left:33px;bottom:31px;width:82px;height:30px;border-radius:50%;background:rgba(0,0,0,.48);filter:blur(5px);transform:skewX(-14deg)}
.r2h-statue{position:absolute;left:31px;top:0;width:78px;height:178px;z-index:24;filter:drop-shadow(7px 11px 7px rgba(0,0,0,.44))}
.r2h-statue .head{position:absolute;left:29px;top:2px;width:23px;height:25px;border-radius:48% 48% 44% 44%;background:linear-gradient(135deg,#a09e95,#5d5e5d)}
.r2h-statue .veil{position:absolute;left:18px;top:14px;width:43px;height:54px;background:linear-gradient(120deg,#777973,#494b4c);clip-path:polygon(36% 0,68% 2%,94% 36%,79% 100%,15% 100%,0 38%)}
.r2h-statue .shoulders{position:absolute;left:14px;top:47px;width:52px;height:32px;background:linear-gradient(180deg,#8d8d85,#595a59);clip-path:polygon(13% 25%,36% 0,67% 0,90% 24%,100% 100%,0 100%)}
.r2h-statue .torso{position:absolute;left:24px;top:65px;width:34px;height:45px;background:linear-gradient(90deg,#656762,#95978d 48%,#595b59);clip-path:polygon(17% 0,83% 0,100% 100%,0 100%)}
.r2h-statue .arm{position:absolute;top:61px;width:13px;height:54px;background:linear-gradient(#8f9087,#565856);border-radius:9px;transform-origin:top}
.r2h-statue .arm.left{left:17px;transform:rotate(14deg)}.r2h-statue .arm.right{right:15px;transform:rotate(-18deg)}
.r2h-statue .skirt{position:absolute;left:8px;top:101px;width:66px;height:58px;background:linear-gradient(90deg,#555756,#8f9189 48%,#505253);clip-path:polygon(26% 0,74% 0,100% 100%,0 100%)}
.r2h-statue .fold{position:absolute;top:109px;width:4px;height:45px;background:linear-gradient(rgba(48,49,49,.25),rgba(255,255,255,.05));transform:skewX(-7deg)}
.r2h-statue .fold.f1{left:24px}.r2h-statue .fold.f2{left:38px}.r2h-statue .fold.f3{left:51px}
.r2h-statue .pedestal{position:absolute;left:4px;bottom:-24px;width:72px;height:33px;background:linear-gradient(180deg,#777a78,#4d5052 45%,#2b2d31);border:3px solid #282b2d;box-shadow:0 6px 8px rgba(0,0,0,.42)}
.r2h-statue .pedestal i{position:absolute;left:-5px;right:-5px;top:-7px;height:8px;background:#747671;border:2px solid #383a3b}.r2h-statue .pedestal em{position:absolute;left:8px;right:8px;bottom:5px;height:4px;background:rgba(25,26,29,.5)}
.r2h-offering{position:absolute;left:47px;bottom:4px;width:48px;height:26px}
.r2h-offering::before{content:"";position:absolute;left:7px;right:7px;bottom:0;height:8px;border-radius:50%;background:#4d3a2a;box-shadow:0 2px 3px rgba(0,0,0,.35)}
.r2h-offering i,.r2h-offering b,.r2h-offering em{position:absolute;width:9px;height:9px;border-radius:50%;background:#a68d7a;box-shadow:0 0 0 1px rgba(35,28,26,.4)}
.r2h-offering i{left:11px;top:3px}.r2h-offering b{left:21px;top:0}.r2h-offering em{right:9px;top:5px}

.r2h-stair-zone{position:absolute;left:24px;top:390px;width:230px;height:390px;z-index:22;pointer-events:none}
.r2h-stair-backdrop{position:absolute;left:0;top:0;width:208px;height:304px;background:linear-gradient(90deg,#131015,#25191c 55%,#161217);border:6px solid #2b2022;box-shadow:inset -24px 0 28px rgba(0,0,0,.52),0 9px 18px rgba(0,0,0,.38)}
.r2h-stair-backdrop::before{content:"";position:absolute;left:20px;right:20px;top:24px;bottom:26px;border:2px solid rgba(113,81,60,.22);box-shadow:inset 0 0 0 6px rgba(9,8,11,.24)}
.r2h-stair-backdrop i{position:absolute;left:12px;right:12px;top:126px;height:12px;background:linear-gradient(#493327,#1e1619);box-shadow:0 4px 8px rgba(0,0,0,.34)}
.r2h-stair-backdrop b{position:absolute;left:13px;right:13px;bottom:34px;height:76px;background:linear-gradient(180deg,rgba(51,38,34,.22),rgba(9,8,11,.48));border-top:2px solid rgba(96,70,54,.18)}
.r2h-stair-under-shadow{position:absolute;left:22px;top:216px;width:175px;height:110px;background:radial-gradient(ellipse at 45% 45%,rgba(0,0,0,.68),transparent 72%);filter:blur(4px);transform:rotate(-9deg)}
.r2h-stair-flight{position:absolute;z-index:26}
.r2h-stair-flight.lower{left:16px;top:140px;width:170px;height:188px}
.r2h-stair-flight.lower i{position:absolute;height:25px;background:linear-gradient(180deg,#795842 0,#5a3d2d 42%,#271c18 45%,#1d1615 100%);border-top:2px solid rgba(152,107,70,.38);box-shadow:0 5px 7px rgba(0,0,0,.42);transform:skewX(-21deg)}
.r2h-stair-flight.lower i:nth-child(1){left:0;bottom:0;width:145px}.r2h-stair-flight.lower i:nth-child(2){left:11px;bottom:20px;width:139px}.r2h-stair-flight.lower i:nth-child(3){left:22px;bottom:40px;width:133px}.r2h-stair-flight.lower i:nth-child(4){left:33px;bottom:60px;width:127px}.r2h-stair-flight.lower i:nth-child(5){left:44px;bottom:80px;width:121px}.r2h-stair-flight.lower i:nth-child(6){left:55px;bottom:100px;width:115px}.r2h-stair-flight.lower i:nth-child(7){left:66px;bottom:120px;width:109px}.r2h-stair-flight.lower i:nth-child(8){left:77px;bottom:140px;width:103px}.r2h-stair-flight.lower i:nth-child(9){left:88px;bottom:160px;width:97px}
.r2h-stair-stringer.lower{position:absolute;left:38px;top:155px;width:14px;height:195px;background:linear-gradient(90deg,#241916,#78533b 45%,#2b1e18);transform:rotate(31deg);transform-origin:bottom;z-index:29;box-shadow:5px 4px 8px rgba(0,0,0,.4)}
.r2h-stair-landing{position:absolute;left:102px;top:111px;width:94px;height:68px;z-index:28;background:linear-gradient(180deg,#684936,#3b2923);border:4px solid #261a18;box-shadow:0 9px 13px rgba(0,0,0,.45),inset 0 0 0 2px rgba(126,87,57,.22)}
.r2h-stair-landing i{position:absolute;inset:10px;border:1px solid rgba(130,91,58,.22)}
.r2h-stair-landing b{position:absolute;left:8px;right:8px;bottom:8px;height:6px;background:rgba(18,13,14,.38)}
.r2h-stair-flight.upper{left:63px;top:29px;width:138px;height:98px;z-index:24;transform:rotate(-2deg)}
.r2h-stair-flight.upper i{position:absolute;left:0;width:124px;height:18px;background:linear-gradient(180deg,#6f4e39,#3e2b24 43%,#211817 46%);box-shadow:0 4px 6px rgba(0,0,0,.36)}
.r2h-stair-flight.upper i:nth-child(1){bottom:0}.r2h-stair-flight.upper i:nth-child(2){bottom:14px;left:-5px;width:118px}.r2h-stair-flight.upper i:nth-child(3){bottom:28px;left:-10px;width:112px}.r2h-stair-flight.upper i:nth-child(4){bottom:42px;left:-15px;width:106px}.r2h-stair-flight.upper i:nth-child(5){bottom:56px;left:-20px;width:100px}.r2h-stair-flight.upper i:nth-child(6){bottom:70px;left:-25px;width:94px}.r2h-stair-flight.upper i:nth-child(7){bottom:84px;left:-30px;width:88px}
.r2h-stair-stringer.upper{position:absolute;left:54px;top:37px;width:125px;height:12px;background:linear-gradient(#76523a,#281c18);z-index:30;transform:rotate(-13deg);box-shadow:0 4px 6px rgba(0,0,0,.38)}
.r2h-stair-rail{position:absolute;z-index:108}
.r2h-stair-rail.lower{left:13px;top:133px;width:185px;height:193px}
.r2h-stair-rail.lower b{position:absolute;left:9px;top:117px;width:175px;height:10px;background:linear-gradient(#805a3e,#2d201a);transform:rotate(-31deg);transform-origin:left;box-shadow:0 4px 5px rgba(0,0,0,.45)}
.r2h-stair-rail.lower i{position:absolute;width:7px;background:linear-gradient(90deg,#2b1e19,#6a4933 48%,#2b1f1a);transform-origin:bottom}
.r2h-stair-rail.lower i:nth-child(1){left:32px;top:111px;height:74px}.r2h-stair-rail.lower i:nth-child(2){left:64px;top:92px;height:68px}.r2h-stair-rail.lower i:nth-child(3){left:96px;top:75px;height:60px}.r2h-stair-rail.lower i:nth-child(4){left:127px;top:59px;height:52px}.r2h-stair-rail.lower i:nth-child(5){left:157px;top:43px;height:45px}
.r2h-stair-rail.lower em{position:absolute;left:8px;top:118px;width:13px;height:85px;background:linear-gradient(90deg,#2b1e19,#765139 48%,#2b1f1a);border-radius:6px;box-shadow:3px 4px 6px rgba(0,0,0,.42)}
.r2h-stair-rail.upper{left:36px;top:26px;width:156px;height:95px;z-index:107}
.r2h-stair-rail.upper b{position:absolute;left:4px;top:28px;width:145px;height:9px;background:linear-gradient(#805a3e,#2d201a);transform:rotate(-12deg);transform-origin:left;box-shadow:0 4px 5px rgba(0,0,0,.45)}
.r2h-stair-rail.upper i{position:absolute;width:7px;height:48px;background:linear-gradient(90deg,#2b1e19,#664631 48%,#2b1f1a)}
.r2h-stair-rail.upper i:nth-child(1){left:26px;top:27px}.r2h-stair-rail.upper i:nth-child(2){left:58px;top:21px}.r2h-stair-rail.upper i:nth-child(3){left:91px;top:15px}.r2h-stair-rail.upper i:nth-child(4){left:124px;top:8px}
.r2h-stair-newel{position:absolute;width:18px;background:linear-gradient(90deg,#2a1d18,#78523a 48%,#2d1f19);z-index:109;box-shadow:3px 5px 7px rgba(0,0,0,.45)}
.r2h-stair-newel::before{content:"";position:absolute;left:-4px;right:-4px;top:-8px;height:16px;border-radius:50%;background:#765039;border:2px solid #271b18}.r2h-stair-newel i{position:absolute;left:4px;right:4px;bottom:8px;height:34px;border:1px solid rgba(20,13,12,.38)}
.r2h-stair-newel.foot{left:12px;top:255px;height:84px}.r2h-stair-newel.landing{left:184px;top:84px;height:76px}
.r2h-upper-opening{position:absolute;left:34px;top:-19px;width:120px;height:72px;border:7px solid #2d2020;border-bottom:0;border-radius:52px 52px 4px 4px/35px 35px 4px 4px;background:linear-gradient(#0a0a0e,#151016);box-shadow:inset 0 0 22px #000,0 4px 8px rgba(0,0,0,.4);z-index:20}
.r2h-upper-opening i{position:absolute;left:11px;right:11px;bottom:0;height:12px;background:#3c2a24}.r2h-upper-opening b{position:absolute;left:-11px;top:20px;width:10px;height:52px;background:#4a3329}.r2h-upper-opening em{position:absolute;right:-11px;top:20px;width:10px;height:52px;background:#4a3329}
.r2h-stair-lamp{position:absolute;left:182px;top:45px;width:24px;height:47px;z-index:40}.r2h-stair-lamp::before{content:"";position:absolute;left:10px;top:17px;width:5px;height:26px;background:#80613a}.r2h-stair-lamp i{position:absolute;left:5px;top:2px;width:15px;height:18px;border-radius:50%;background:radial-gradient(circle,#fff0ad 0 14%,#e8ad4a 20% 48%,transparent 52%);box-shadow:0 0 18px rgba(235,168,67,.42)}.r2h-stair-lamp b{position:absolute;left:5px;bottom:0;width:15px;height:5px;background:#554024;border-radius:50%}
.r2h-stair-rail-collider{position:absolute;left:2px;top:140px;width:70px;height:208px;opacity:0;pointer-events:none}

.r2h-formal-zone{position:absolute;right:34px;top:410px;width:176px;height:410px;z-index:24;pointer-events:none}
.r2h-gallery-panel{position:absolute;left:15px;top:0;width:150px;height:255px;background:linear-gradient(180deg,rgba(42,30,31,.72),rgba(20,15,19,.72));border:4px solid #332525;box-shadow:inset 0 0 0 3px rgba(107,77,51,.12),0 7px 12px rgba(0,0,0,.3)}
.r2h-gallery-panel::before{content:"";position:absolute;inset:13px;border:1px solid rgba(126,88,57,.18)}
.r2h-gallery-panel i{position:absolute;left:12px;right:12px;top:126px;height:9px;background:linear-gradient(#48332a,#1d1518)}
.r2h-gallery-panel b{position:absolute;left:16px;right:16px;bottom:17px;height:70px;border:2px solid rgba(95,66,48,.18)}
.r2h-gallery-mirror{position:absolute;left:49px;top:26px;width:82px;height:106px;border:8px solid #4b352a;border-radius:44px 44px 7px 7px/30px 30px 7px 7px;background:linear-gradient(135deg,#151a20,#2b3138 49%,#0e1116 50%);box-shadow:0 6px 10px rgba(0,0,0,.44),inset 0 0 14px rgba(0,0,0,.58)}
.r2h-gallery-mirror::before{content:"";position:absolute;left:16px;top:10px;width:2px;height:82px;background:rgba(174,184,190,.12);transform:rotate(22deg);box-shadow:24px 9px 0 rgba(174,184,190,.07)}
.r2h-gallery-mirror i{position:absolute;left:-12px;right:-12px;top:-11px;height:12px;background:#5a402f;border:2px solid #231819}.r2h-gallery-mirror b{position:absolute;left:-11px;right:-11px;bottom:-11px;height:12px;background:#463126;border:2px solid #231819}
.r2h-console{position:absolute;left:28px;top:166px;width:124px;height:72px;z-index:31;filter:drop-shadow(0 9px 8px rgba(0,0,0,.38))}
.r2h-console .top{position:absolute;left:0;right:0;top:0;height:17px;background:linear-gradient(#694637,#33221f);border:3px solid #241719}.r2h-console .apron{position:absolute;left:9px;right:9px;top:17px;height:23px;background:linear-gradient(#4d3028,#2b1c1b);border:2px solid #1d1416}.r2h-console .leg{position:absolute;top:38px;width:11px;height:34px;background:linear-gradient(90deg,#261818,#59372d 50%,#241718)}.r2h-console .leg.l{left:16px}.r2h-console .leg.r{right:16px}.r2h-console .drawer{position:absolute;left:42px;top:21px;width:40px;height:12px;border:1px solid rgba(147,101,62,.32);box-shadow:inset 0 0 0 2px rgba(20,12,13,.3)}
.r2h-console-vase{position:absolute;left:69px;top:133px;width:37px;height:44px}.r2h-console-vase::before{content:"";position:absolute;left:8px;right:8px;bottom:0;height:26px;background:linear-gradient(90deg,#4f5357,#8f9390 50%,#4d5053);clip-path:polygon(24% 0,76% 0,94% 38%,80% 100%,20% 100%,6% 38%)}.r2h-console-vase i,.r2h-console-vase b{position:absolute;left:18px;top:0;width:3px;height:26px;background:#59614c;transform-origin:bottom}.r2h-console-vase i{transform:rotate(-25deg)}.r2h-console-vase b{transform:rotate(26deg)}
.r2h-console-books{position:absolute;left:39px;top:151px;width:35px;height:15px;background:linear-gradient(0deg,#503037 0 5px,#313c44 6px 10px,#72532e 11px 15px);transform:rotate(-4deg)}
.r2h-candelabra{position:absolute;right:14px;top:134px;width:47px;height:73px}.r2h-candelabra::before{content:"";position:absolute;left:21px;top:18px;width:6px;height:49px;background:linear-gradient(90deg,#5a431e,#b28a43 50%,#5b431e)}.r2h-candelabra::after{content:"";position:absolute;left:6px;right:6px;top:27px;height:5px;background:#8e6b34;box-shadow:0 24px 0 -1px #7a5a2b}.r2h-candelabra i{position:absolute;top:10px;width:6px;height:17px;background:#b98a3d;box-shadow:0 -8px 0 -1px #f1c466,0 -8px 10px rgba(243,177,69,.28)}.r2h-candelabra i:nth-child(1){left:7px}.r2h-candelabra i:nth-child(2){left:21px}.r2h-candelabra i:nth-child(3){right:7px}.r2h-candelabra b{position:absolute;left:12px;right:12px;bottom:0;height:7px;border-radius:50%;background:#6d5128}.r2h-candelabra em{position:absolute;left:-16px;top:-5px;width:80px;height:80px;background:radial-gradient(circle,rgba(239,177,73,.12),transparent 67%);filter:blur(2px)}
.r2h-bust{position:absolute;right:11px;top:278px;width:58px;height:96px;z-index:33}.r2h-bust i{position:absolute;left:13px;top:0;width:34px;height:43px;background:linear-gradient(#8b8983,#4e4d4e);clip-path:polygon(37% 0,63% 0,74% 18%,67% 39%,84% 58%,100% 100%,0 100%,16% 58%,33% 39%,26% 18%)}.r2h-bust b{position:absolute;left:7px;right:7px;top:40px;height:48px;background:linear-gradient(#60615f,#343638);clip-path:polygon(18% 0,82% 0,96% 100%,4% 100%)}.r2h-bust em{position:absolute;left:2px;right:2px;bottom:0;height:11px;background:#3d3f41;border:2px solid #202225}
.r2h-chair{position:absolute;left:11px;top:308px;width:56px;height:62px;z-index:31;transform:rotate(-9deg);filter:drop-shadow(0 7px 7px rgba(0,0,0,.42))}.r2h-chair i{position:absolute;left:7px;right:7px;top:0;height:39px;border-radius:14px 14px 4px 4px;background:linear-gradient(180deg,#5b2932,#2d171d);border:4px solid #251719}.r2h-chair b{position:absolute;left:4px;right:4px;top:34px;height:18px;background:#4d252d;border:3px solid #241619}.r2h-chair em{position:absolute;left:12px;right:12px;bottom:0;height:22px;border-left:6px solid #2e1b19;border-right:6px solid #2e1b19}

.r2h-lower-left-zone{position:absolute;left:61px;bottom:95px;width:126px;height:150px;z-index:17;pointer-events:none}.r2h-small-console{position:absolute;left:0;bottom:18px;width:102px;height:54px;background:linear-gradient(#4c322a,#25191a);border:3px solid #1a1215;box-shadow:0 8px 12px rgba(0,0,0,.42)}.r2h-small-console::before{content:"";position:absolute;left:14px;right:14px;top:17px;height:12px;border:1px solid rgba(133,92,58,.24)}.r2h-small-console i,.r2h-small-console b{position:absolute;bottom:-20px;width:8px;height:22px;background:#241719}.r2h-small-console i{left:13px}.r2h-small-console b{right:13px}.r2h-lower-lamp{position:absolute;left:78px;top:24px;width:27px;height:49px}.r2h-lower-lamp::before{content:"";position:absolute;left:11px;top:18px;width:5px;height:26px;background:#71542d}.r2h-lower-lamp i{position:absolute;left:5px;top:3px;width:16px;height:18px;border-radius:50%;background:radial-gradient(circle,#fff0b0 0 13%,#e9ae4c 19% 46%,transparent 51%);box-shadow:0 0 15px rgba(237,174,69,.32)}.r2h-lower-lamp b{position:absolute;left:4px;right:4px;bottom:0;height:5px;background:#584126;border-radius:50%}.r2h-lower-rug{position:absolute;left:-14px;bottom:0;width:130px;height:72px;border-radius:50%;background:radial-gradient(ellipse,#3c2029 0 54%,#1f151b 56% 62%,#614634 64% 67%,transparent 69%);opacity:.43}

.r2h-floor-mark{position:absolute;z-index:5;pointer-events:none;opacity:.5}.r2h-floor-mark.mark-a{left:94px;top:264px;width:78px;height:48px;background:linear-gradient(22deg,transparent 0 47%,rgba(45,42,40,.5) 48% 50%,transparent 51%)}.r2h-floor-mark.mark-b{right:76px;bottom:202px;width:92px;height:54px;background:radial-gradient(ellipse at 54% 48%,rgba(25,22,25,.33),transparent 68%)}
.r2h-blood-smear{position:absolute;right:156px;top:326px;width:76px;height:54px;z-index:6;background:radial-gradient(ellipse at 43% 54%,rgba(82,8,17,.46) 0 15%,transparent 18%),radial-gradient(ellipse at 61% 43%,rgba(101,9,20,.36) 0 11%,transparent 14%),linear-gradient(70deg,transparent 42%,rgba(92,7,18,.28) 43% 47%,transparent 48%);transform:rotate(-9deg)}
.r2h-light-pool{position:absolute;z-index:65;pointer-events:none;mix-blend-mode:screen;filter:blur(2px)}.r2h-light-pool.door{left:158px;top:20px;width:245px;height:210px;background:radial-gradient(ellipse,rgba(247,187,83,.13),transparent 69%)}.r2h-light-pool.statue{left:173px;top:200px;width:218px;height:260px;background:radial-gradient(ellipse,rgba(234,175,78,.06),transparent 72%)}.r2h-light-pool.stair{left:0;top:330px;width:280px;height:390px;background:radial-gradient(ellipse at 44% 40%,rgba(238,175,77,.075),transparent 67%)}.r2h-light-pool.console{right:0;top:390px;width:245px;height:360px;background:radial-gradient(ellipse at 64% 38%,rgba(240,173,70,.09),transparent 68%)}
.r2h-vignette{position:absolute;inset:0;z-index:68;pointer-events:none;box-shadow:inset 0 0 78px 18px rgba(0,0,0,.52);background:radial-gradient(ellipse at 50% 46%,transparent 0 54%,rgba(0,0,0,.14) 76%,rgba(0,0,0,.34) 100%)}

/* The four user-approved photos remain unchanged as artwork; only their wall placement is normalized. */
.room2-world.r2-graphics-preview .r2m-photo-clue-spread{z-index:42!important;pointer-events:none!important}
.room2-world.r2-graphics-preview .r2m-clue-photo{width:34px!important;height:44px!important;padding:0!important;border:3px solid #4a352a!important;background:#171217!important;box-shadow:0 0 0 2px #171115,0 5px 9px rgba(0,0,0,.46)!important;overflow:hidden!important;transform:none!important}
.room2-world.r2-graphics-preview .r2m-clue-photo::before{content:"";position:absolute;inset:2px;border:1px solid rgba(161,117,70,.34);z-index:3;pointer-events:none}
.room2-world.r2-graphics-preview .r2m-clue-photo::after{display:none!important}
.room2-world.r2-graphics-preview .r2m-clue-photo img{width:100%!important;height:100%!important;object-fit:cover!important;display:block!important;filter:none!important}
.room2-world.r2-graphics-preview .r2m-clue-photo[data-portrait='1']{left:664px!important;top:270px!important}
.room2-world.r2-graphics-preview .r2m-clue-photo[data-portrait='2']{left:724px!important;top:262px!important}
.room2-world.r2-graphics-preview .r2m-clue-photo[data-portrait='3']{left:1002px!important;top:262px!important}
.room2-world.r2-graphics-preview .r2m-clue-photo[data-portrait='4']{left:1062px!important;top:270px!important}
.room2-world.r2-graphics-preview #room2ExitDoor{opacity:0!important;pointer-events:none!important}
.room2-world.r2-graphics-preview #room2BarricadeChair{opacity:0!important;pointer-events:none!important}
.room2-world.r2-graphics-preview .r2h-grand-door-zone{display:block!important}

/* This pass intentionally keeps the hall clean: no puzzle widgets, no random floor clutter. */
.room2-world.r2-graphics-preview .r2-symbol,
.room2-world.r2-graphics-preview #room2SwitchClue,
.room2-world.r2-graphics-preview #room2SwitchPanel,
.room2-world.r2-graphics-preview #room2PhotoPanel,
.room2-world.r2-graphics-preview #room2SecurityKeypad,
.room2-world.r2-graphics-preview #room2Crowbar,
.room2-world.r2-graphics-preview .r2m-archive-box,
.room2-world.r2-graphics-preview .r2m-doll-table,
.room2-world.r2-graphics-preview .r2m-bookshelf-puzzle{opacity:0!important;pointer-events:none!important}

.room2-world.is-power-flicker .r2h-door-sconce,.room2-world.is-power-flicker .r2h-stair-lamp,.room2-world.is-power-flicker .r2h-candelabra,.room2-world.is-power-flicker .r2h-lower-lamp{animation:r2vLampFlicker .23s steps(2,end) infinite}
.room2-world.is-blackout .r2h-door-sconce,.room2-world.is-blackout .r2h-stair-lamp,.room2-world.is-blackout .r2h-candelabra,.room2-world.is-blackout .r2h-lower-lamp{filter:brightness(.08);opacity:.25}

/* ==========================================================
   MAIN HALL HARD RESET — unified authored environment
   The visible hall is one inline-SVG composition. Gameplay
   colliders remain separate so visuals are no longer assembled
   from dozens of unrelated CSS furniture blocks.
   ========================================================== */
.room2-world.r2-graphics-preview .r2m-main-hall.r2hall-final{
  left:560px!important;
  top:180px!important;
  width:640px!important;
  height:960px!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:visible!important;
  isolation:isolate;
  z-index:20!important;
}
.room2-world.r2-graphics-preview .r2m-main-hall.r2hall-final::before,
.room2-world.r2-graphics-preview .r2m-main-hall.r2hall-final::after{display:none!important}
.r2hall-final .r2hf-art{
  position:absolute;
  left:0;top:0;
  width:640px;height:960px;
  display:block;
  z-index:1;
  overflow:visible;
  filter:saturate(.88) contrast(1.04);
  pointer-events:none;
}
.r2hall-final .r2hf-hitbox{
  position:absolute!important;
  width:1px!important;height:1px!important;
  opacity:0!important;
  pointer-events:none!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}

/* Put the hall in visual control: side rooms are still present for future work,
   but they no longer compete with the Main Hall while the art direction is reviewed. */
.room2-world.r2-graphics-preview .r2m-study,
.room2-world.r2-graphics-preview .r2m-nursery,
.room2-world.r2-graphics-preview .r2m-storage,
.room2-world.r2-graphics-preview .r2m-service,
.room2-world.r2-graphics-preview .r2m-generator-zone,
.room2-world.r2-graphics-preview .r2m-tool-room{
  filter:brightness(.19) saturate(.42)!important;
  opacity:.58!important;
}
.room2-world.r2-graphics-preview .r2m-connector{
  filter:brightness(.18)!important;
  opacity:.5!important;
}

/* Puzzle/gameplay furniture is deliberately removed from the graphics review.
   The four approved portraits are the sole retained puzzle art in this pass. */
.room2-world.r2-graphics-preview #room2Desk,
.room2-world.r2-graphics-preview #room2GrandfatherClock,
.room2-world.r2-graphics-preview #room2Flashlight,
.room2-world.r2-graphics-preview #room2SwitchPanel,
.room2-world.r2-graphics-preview #room2PhotoPanel,
.room2-world.r2-graphics-preview #room2SwitchClue,
.room2-world.r2-graphics-preview #room2SecretWall,
.room2-world.r2-graphics-preview #room2SecretGap,
.room2-world.r2-graphics-preview #room2SecretDust,
.room2-world.r2-graphics-preview #room2GeneratorRoom,
.room2-world.r2-graphics-preview #room2SecurityDoor,
.room2-world.r2-graphics-preview #room2SecurityKeypad,
.room2-world.r2-graphics-preview #room2Crowbar,
.room2-world.r2-graphics-preview #room2EntranceDoor,
.room2-world.r2-graphics-preview #room2ExitDoor,
.room2-world.r2-graphics-preview #room2BarricadeChair,
.room2-world.r2-graphics-preview .r2-symbol,
.room2-world.r2-graphics-preview .r2-panel,
.room2-world.r2-graphics-preview .r2-clue-plaque,
.room2-world.r2-graphics-preview .r2m-study-shelf-a,
.room2-world.r2-graphics-preview .r2m-study-shelf-b,
.room2-world.r2-graphics-preview .r2m-nursery-bed-hit,
.room2-world.r2-graphics-preview .r2m-storage-covered-hit,
.room2-world.r2-graphics-preview .r2m-storage-crates-hit{
  display:none!important;
}

/* Four approved images: unchanged artwork, now treated as a deliberate family gallery. */
.room2-world.r2-graphics-preview .r2m-photo-clue-spread{
  position:absolute!important;
  inset:0!important;
  z-index:44!important;
  pointer-events:none!important;
}
.room2-world.r2-graphics-preview .r2m-clue-photo{
  display:block!important;
  width:38px!important;
  height:50px!important;
  padding:0!important;
  border:4px solid #4a3429!important;
  outline:2px solid #161014!important;
  border-radius:0!important;
  background:#100e12!important;
  box-shadow:0 6px 10px rgba(0,0,0,.56),inset 0 0 0 1px rgba(171,124,76,.28)!important;
  overflow:hidden!important;
  opacity:.96!important;
  transform:none!important;
  pointer-events:none!important;
}
.room2-world.r2-graphics-preview .r2m-clue-photo::before{
  content:"";
  position:absolute;inset:2px;
  border:1px solid rgba(189,145,85,.31);
  z-index:3;pointer-events:none;
}
.room2-world.r2-graphics-preview .r2m-clue-photo::after{display:none!important}
.room2-world.r2-graphics-preview .r2m-clue-photo img{
  width:100%!important;height:100%!important;
  object-fit:cover!important;
  display:block!important;
  filter:none!important;
}
.room2-world.r2-graphics-preview .r2m-clue-photo b,
.room2-world.r2-graphics-preview .r2m-clue-photo em{display:none!important}
.room2-world.r2-graphics-preview .r2m-clue-photo[data-portrait='1']{left:648px!important;top:224px!important}
.room2-world.r2-graphics-preview .r2m-clue-photo[data-portrait='2']{left:706px!important;top:218px!important}
.room2-world.r2-graphics-preview .r2m-clue-photo[data-portrait='3']{left:1056px!important;top:218px!important}
.room2-world.r2-graphics-preview .r2m-clue-photo[data-portrait='4']{left:1114px!important;top:224px!important}

/* Suppress legacy V2/V3 hall fragments in case stale generated markup survives. */
.room2-world.r2-graphics-preview .r2v-hall,
.room2-world.r2-graphics-preview .r2hall-v3{background:transparent}

/* Main Hall is the visual focal point. Keep lighting restrained and unified. */
.room2-world.r2-graphics-preview .r2hall-final{
  --r2hf-ambient:.94;
}
.room2-world.r2-graphics-preview.is-power-flicker .r2hf-art{animation:r2hfPowerFlicker .22s steps(2,end) infinite}
.room2-world.r2-graphics-preview.is-blackout .r2hf-art{filter:brightness(.28) saturate(.7) contrast(1.08)}
@keyframes r2hfPowerFlicker{0%,100%{filter:brightness(1) saturate(.88) contrast(1.04)}35%{filter:brightness(.72) saturate(.82) contrast(1.08)}52%{filter:brightness(1.06) saturate(.9) contrast(1.02)}68%{filter:brightness(.48) saturate(.72) contrast(1.1)}}

/* ==========================================================
   MAIN HALL ASSET COMPOSITE PASS
   Uses the user-provided hall kit as real sprites instead of
   redrawing the furniture with CSS/SVG primitives.
   ========================================================== */
/* MAIN HALL MACRO REBUILD — scale + architecture + spacing first. */
.r2m-main-hall.r2hall-assets{
  overflow:visible!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
.r2hall-assets::before,.r2hall-assets::after{display:none!important}
.r2ha-base{position:absolute;inset:0;overflow:visible;z-index:1;background:transparent}
.r2ha-base img{position:absolute;display:block;user-select:none;pointer-events:none;image-rendering:pixelated;image-rendering:crisp-edges;transform-origin:center bottom}
.r2ha-wall{display:none!important}

/* Irregular mansion footprint: central foyer plus projecting side bays. */
.r2ha-floor,.r2ha-floor-bay,.r2ha-entrance-bay,.r2ha-bottom-throat{position:absolute;box-sizing:border-box;background:
  radial-gradient(ellipse at 18% 20%,rgba(0,0,0,.17),transparent 22%),
  radial-gradient(ellipse at 81% 68%,rgba(20,12,14,.18),transparent 21%),
  linear-gradient(45deg,#343943 25%,transparent 25% 75%,#343943 75%),
  linear-gradient(45deg,#171b22 25%,#4a4e58 25% 75%,#171b22 75%);
  background-size:auto,auto,32px 32px,32px 32px;background-position:0 0,0 0,0 0,16px 16px;
  filter:saturate(.72) brightness(.84) contrast(1.06);
  box-shadow:inset 0 0 46px rgba(0,0,0,.42),0 0 0 7px #17151b,0 0 0 10px #06070a,0 15px 30px rgba(0,0,0,.64);
}
.r2ha-floor{left:165px;right:165px;top:238px;bottom:110px;z-index:2}
.r2ha-floor::before{content:"";position:absolute;inset:0;pointer-events:none;background:
  linear-gradient(74deg,transparent 0 37%,rgba(15,17,22,.34) 38% 39%,transparent 40%) 82px 195px/150px 115px no-repeat,
  linear-gradient(104deg,transparent 0 47%,rgba(17,17,22,.38) 48% 49%,transparent 50%) 612px 760px/170px 128px no-repeat,
  radial-gradient(ellipse at 12% 80%,rgba(37,23,24,.26),transparent 13%),
  radial-gradient(ellipse at 76% 31%,rgba(38,15,20,.17),transparent 14%);opacity:.80}
.r2ha-floor-bay{z-index:1}
.r2ha-floor-bay.west-stair{left:34px;top:550px;width:410px;height:610px}
.r2ha-floor-bay.east-gallery{right:34px;top:620px;width:350px;height:530px}
.r2ha-floor-bay.lower-west{left:92px;top:1110px;width:310px;height:330px}
.r2ha-floor-bay.lower-east{right:92px;top:1125px;width:310px;height:315px}
.r2ha-bottom-throat{left:500px;top:1390px;width:250px;height:150px;z-index:1}
.r2ha-entrance-bay{left:425px;top:12px;width:400px;height:286px;z-index:4;background:linear-gradient(180deg,#2c2021 0,#211718 48%,#0e0f12 100%);border-radius:28px 28px 0 0;box-shadow:inset 0 0 0 3px rgba(113,81,61,.22),inset 0 -34px 44px rgba(0,0,0,.52),0 0 0 8px #17151b,0 0 0 11px #050609,0 18px 30px rgba(0,0,0,.68)}
.r2ha-entrance-bay::before{content:"";position:absolute;left:18px;right:18px;top:18px;height:208px;border:3px solid rgba(107,75,58,.34);border-bottom:0;border-radius:22px 22px 0 0;background:linear-gradient(90deg,rgba(113,77,58,.12),transparent 16% 84%,rgba(113,77,58,.12))}
.r2ha-entrance-bay::after{content:"";position:absolute;left:72px;right:72px;bottom:-14px;height:30px;background:#1c1416;border:4px solid #08090b;box-shadow:0 8px 10px rgba(0,0,0,.54)}

/* Deep wall/alcove structures — architecture, not loose props. */
.r2ha-side-architecture{position:absolute;z-index:5;pointer-events:none}
.r2ha-side-architecture.west{left:24px;top:528px;width:250px;height:640px;background:linear-gradient(90deg,#171216,#2c211f 28%,#1b1517 72%,#0f1013);border:7px solid #17151b;box-shadow:inset -26px 0 34px rgba(0,0,0,.56),0 0 0 3px #050609}
.r2ha-side-architecture.west::before{content:"";position:absolute;left:20px;right:24px;top:35px;height:210px;background:repeating-linear-gradient(90deg,#1b1214 0 12px,#5b3927 12px 18px,#291b1a 18px 26px,#724a2d 26px 31px,#201517 31px 39px);border:5px solid #291c1a;box-shadow:inset 0 0 0 2px #09080a,0 8px 16px rgba(0,0,0,.56)}
.r2ha-side-architecture.west::after{content:"";position:absolute;left:32px;right:36px;bottom:30px;height:150px;background:linear-gradient(180deg,rgba(38,28,29,.88),rgba(18,15,18,.96));border:4px solid rgba(92,65,52,.36);box-shadow:inset 0 0 26px rgba(0,0,0,.52)}
.r2ha-side-architecture.east{right:24px;top:598px;width:252px;height:565px;background:linear-gradient(270deg,#171216,#2b211f 28%,#1b1517 72%,#0f1013);border:7px solid #17151b;box-shadow:inset 26px 0 34px rgba(0,0,0,.56),0 0 0 3px #050609}
.r2ha-side-architecture.east::before{content:"";position:absolute;left:38px;right:34px;top:40px;height:190px;border:5px solid #5d4636;background:radial-gradient(ellipse at 50% 45%,#232a31 0 42%,#14161b 43% 100%);box-shadow:inset 0 0 22px rgba(0,0,0,.58),0 9px 14px rgba(0,0,0,.5)}
.r2ha-side-architecture.east::after{content:"";position:absolute;left:48px;right:48px;bottom:28px;height:128px;background:linear-gradient(180deg,#593b30,#2c1d1b 60%,#171316);border:4px solid #211416;box-shadow:inset 0 0 0 2px rgba(130,90,60,.24),0 8px 12px rgba(0,0,0,.50)}
.r2ha-wall-notch{position:absolute;z-index:7;background:linear-gradient(180deg,#302323,#21181a 45%,#0e0f12);border:5px solid #17151b;box-shadow:inset 0 0 0 2px rgba(116,78,59,.15),0 7px 14px rgba(0,0,0,.55)}
.r2ha-wall-notch.n1{left:152px;top:214px;width:110px;height:168px}.r2ha-wall-notch.n2{right:152px;top:214px;width:110px;height:168px}
.r2ha-wall-notch.n3{left:118px;top:405px;width:76px;height:140px}.r2ha-wall-notch.n4{right:118px;top:415px;width:76px;height:140px}

.r2ha-runner{left:515px;top:270px;width:220px;height:1210px;object-fit:fill;z-index:6;filter:brightness(.86) saturate(.86) drop-shadow(0 8px 7px rgba(0,0,0,.33))}
.r2ha-door{left:468px;top:10px;width:314px;height:318px;object-fit:contain;z-index:14;filter:brightness(.91) saturate(.90) drop-shadow(0 16px 12px rgba(0,0,0,.68))}
.r2ha-plant{top:215px;width:84px;height:160px;object-fit:contain;z-index:10;filter:brightness(.81) saturate(.77) drop-shadow(0 8px 7px rgba(0,0,0,.52))}
.r2ha-plant.plant-left{left:336px}.r2ha-plant.plant-right{right:336px}
.r2ha-wall-candle{top:255px;width:38px;height:88px;object-fit:contain;z-index:11;filter:brightness(.96) drop-shadow(0 0 12px rgba(255,178,72,.34))}
.r2ha-wall-candle.candle-left{left:276px}.r2ha-wall-candle.candle-right{right:276px}
.r2ha-debris{left:250px;top:392px;width:120px;height:74px;object-fit:contain;z-index:7;filter:brightness(.70) saturate(.72) drop-shadow(0 5px 5px rgba(0,0,0,.42))}
.r2ha-papers{right:248px;top:404px;width:126px;height:74px;object-fit:contain;z-index:7;filter:brightness(.76) saturate(.70)}
.r2ha-statue{left:568px;top:462px;width:110px;height:268px;object-fit:contain;z-index:12;filter:brightness(.81) saturate(.55) drop-shadow(0 12px 8px rgba(0,0,0,.60))}
.r2ha-stair{left:58px;top:596px;width:294px;height:414px;object-fit:contain;z-index:15;filter:brightness(.86) saturate(.88) drop-shadow(0 14px 10px rgba(0,0,0,.64))}
.r2ha-center-table{left:500px;top:920px;width:250px;height:165px;object-fit:contain;z-index:17;filter:brightness(.87) saturate(.86) drop-shadow(0 10px 8px rgba(0,0,0,.54))}
.r2ha-bust{top:1085px;width:62px;height:158px;object-fit:contain;z-index:14;filter:brightness(.82) saturate(.63) drop-shadow(0 7px 6px rgba(0,0,0,.52))}
.r2ha-bust.bust-left{left:248px}.r2ha-bust.bust-right{right:248px}
.r2ha-side-cabinet{right:104px;top:790px;width:68px;height:128px;object-fit:contain;z-index:12;filter:brightness(.80) saturate(.80) drop-shadow(0 8px 6px rgba(0,0,0,.54))}
.r2ha-chair{width:70px;height:94px;object-fit:contain;z-index:12;filter:brightness(.80) saturate(.84) drop-shadow(0 7px 5px rgba(0,0,0,.50))}
.r2ha-chair.chair-left{left:208px;top:1285px;transform:rotate(-18deg)}.r2ha-chair.chair-right{right:210px;top:1300px;transform:rotate(12deg)}
.r2ha-candelabra{width:52px;height:120px;object-fit:contain;z-index:13;filter:brightness(.94) drop-shadow(0 0 14px rgba(255,174,66,.38))}
.r2ha-candelabra.cand-left{left:122px;top:1288px}.r2ha-candelabra.cand-right{right:118px;top:1280px}

/* Physical-source lighting: no floating floor orbs in preview. */
.r2ha-lightglow{position:absolute;z-index:9;pointer-events:none;border-radius:50%;background:radial-gradient(circle,rgba(255,219,139,.30) 0,rgba(231,157,67,.12) 28%,rgba(83,43,20,0) 72%);mix-blend-mode:screen}
.r2ha-lightglow.l1{left:238px;top:220px;width:118px;height:118px}.r2ha-lightglow.l2{right:238px;top:220px;width:118px;height:118px}
.r2ha-lightglow.l3{left:90px;top:1240px;width:135px;height:135px}.r2ha-lightglow.l4{right:86px;top:1234px;width:135px;height:135px}
.r2ha-lightglow.l5{right:68px;top:740px;width:108px;height:108px}
.room2-world.is-blackout .r2ha-lightglow{opacity:.04}.room2-world.is-power-flicker .r2ha-lightglow{animation:r2MansionFlicker .19s steps(2,end) infinite}
.room2-world.r2-graphics-preview .r2m-lamp-grid{display:none!important}

.r2ha-vignette{position:absolute;inset:-40px;z-index:40;pointer-events:none;box-shadow:inset 0 0 92px rgba(0,0,0,.60);background:radial-gradient(ellipse at center,transparent 46%,rgba(0,0,0,.30) 100%)}
.r2ha-hitbox{position:absolute;opacity:0;pointer-events:none;z-index:2}

/* Keep the user's four existing clue portraits, but mount them as a real family gallery. */
.room2-world.r2-graphics-preview .r2m-photo-clue-spread{z-index:80!important;pointer-events:none!important}
.room2-world.r2-graphics-preview .r2m-clue-photo{pointer-events:none!important;cursor:default!important;width:38px!important;height:51px!important;background:#171316!important;border:3px solid #8b694d!important;padding:2px!important;box-shadow:0 4px 8px rgba(0,0,0,.55),inset 0 0 0 1px rgba(214,173,112,.20)!important;transform:none!important}
.room2-world.r2-graphics-preview .r2m-clue-photo img{width:100%!important;height:100%!important;object-fit:cover!important;image-rendering:pixelated;filter:brightness(.82) saturate(.76) contrast(1.04)!important}
.room2-world.r2-graphics-preview .r2m-clue-photo b,.room2-world.r2-graphics-preview .r2m-clue-photo em{display:none!important}
.room2-world.r2-graphics-preview .r2m-clue-photo[data-portrait='1']{left:710px!important;top:206px!important}
.room2-world.r2-graphics-preview .r2m-clue-photo[data-portrait='2']{left:780px!important;top:200px!important}
.room2-world.r2-graphics-preview .r2m-clue-photo[data-portrait='3']{left:1280px!important;top:200px!important}
.room2-world.r2-graphics-preview .r2m-clue-photo[data-portrait='4']{left:1350px!important;top:206px!important}

/* The asset kit already draws the architectural door in graphics-preview mode. */
.room2-world.r2-graphics-preview #room2ExitDoor{opacity:0!important;pointer-events:none!important}

/* FINAL MACRO LAYOUT OVERRIDES */
.room2-world.r2-graphics-preview .r2m-clue-photo[data-portrait='1']{left:1132px!important;top:208px!important}
.room2-world.r2-graphics-preview .r2m-clue-photo[data-portrait='2']{left:1188px!important;top:198px!important}
.room2-world.r2-graphics-preview .r2m-clue-photo[data-portrait='3']{left:1610px!important;top:198px!important}
.room2-world.r2-graphics-preview .r2m-clue-photo[data-portrait='4']{left:1666px!important;top:208px!important}
.r2m-mansion-map .r2-exit-door{left:1355px!important;top:220px!important}
.r2m-mansion-map .r2-entrance-door{left:1355px!important;top:1570px!important}

/* New remap architecture is desktop-only. Mobile keeps its existing presentation. */
.r2ha-remap{display:none}

/* ==========================================================
   ROOM 2 FULL MAP REBUILD — target topology / 2026-09-23 pass
   Desktop only. Mobile keeps the existing Room 2 presentation.

   Topology is intentionally explicit:
   Hall -> staircase -> Library -> Storage
   Hall -> Bedroom -> Parlor -> Generator
   Hall -> Lower corridor -> Right corridor
   ========================================================== */
@media (min-width:1051px) and (pointer:fine){
  .room2-world{--r2-room-camera-scale:.84;}
  .r2m-mansion-map{width:2850px!important;height:1950px!important;background:#020306!important;overflow:hidden!important;isolation:isolate}
  .r2m-mansion-map>.r2m-void{display:none!important}
  .r2m-mansion-map>.r2m-room,
  .r2m-mansion-map>.r2m-connector,
  .r2m-mansion-map>.r2m-lamp-grid{display:none!important}
  .r2m-mansion-map .r2hall-assets{display:none!important}
  /* Retire legacy invisible furniture hitboxes on desktop; rebuilt-room colliders below are authoritative. */
  .r2m-study-shelf-a,.r2m-study-shelf-b,.r2m-nursery-bed-hit,.r2m-storage-covered-hit,.r2m-storage-crates-hit{display:none!important}

  .r2fm-world{position:absolute;inset:0;display:block;z-index:1;pointer-events:none;background:
    radial-gradient(ellipse at 48% 44%,rgba(39,34,40,.13),transparent 39%),#020306}
  .r2fm-room{position:absolute;overflow:hidden;background:#0b0c10;box-shadow:0 0 0 6px #111017,0 0 0 9px rgba(56,49,62,.68),0 18px 38px rgba(0,0,0,.72);filter:drop-shadow(0 8px 10px rgba(0,0,0,.46))}
  .r2fm-room::before{content:"";position:absolute;inset:0;z-index:12;pointer-events:none;box-shadow:inset 0 0 46px rgba(0,0,0,.64),inset 0 0 0 4px rgba(111,83,66,.14)}
  .r2fm-room::after{content:"";position:absolute;left:0;right:0;top:0;height:24px;z-index:11;background:linear-gradient(180deg,#17151a,#0b0b10);box-shadow:0 4px 0 rgba(84,65,60,.2),0 10px 18px rgba(0,0,0,.35)}
  .r2fm-floor{position:absolute;inset:20px;z-index:1;background-color:#20242b;background-repeat:repeat;image-rendering:pixelated}
  .r2fm-wallskin{position:absolute;inset:0;z-index:3;pointer-events:none;border:20px solid transparent;box-sizing:border-box;background-repeat:repeat-x;background-position:top left;background-size:auto 104px;filter:brightness(.72) saturate(.72)}
  .r2fm-prop{position:absolute;z-index:6;display:block;object-fit:contain;image-rendering:pixelated;image-rendering:crisp-edges;filter:drop-shadow(0 8px 6px rgba(0,0,0,.48));transform-origin:center bottom}
  .r2fm-prop.wall-prop{z-index:8}.r2fm-prop.floor-prop{z-index:10}.r2fm-prop.decal{z-index:4;filter:brightness(.78) saturate(.78)}
  .r2fm-collision-layer,.r2fm-collider{position:absolute;inset:0;opacity:0;pointer-events:none}.r2fm-collider{width:1px;height:1px}
  .r2fm-connector{position:absolute;z-index:2;overflow:hidden;background:
    linear-gradient(90deg,rgba(0,0,0,.36),transparent 18% 82%,rgba(0,0,0,.36)),
    url('/assets/images/room2/full-map/parlor/floor-c.png') center/138px 109px repeat;
    box-shadow:inset 0 0 24px rgba(0,0,0,.56),0 0 0 5px #131219,0 0 0 8px rgba(57,48,59,.52)}
  .r2fm-connector::before{content:"";position:absolute;inset:0;box-shadow:inset 0 12px 18px rgba(0,0,0,.35),inset 0 -12px 18px rgba(0,0,0,.35)}

  /* MASTER PLAN — irregular mansion silhouette, based on the supplied full-map reference. */
  .zone-library{left:110px;top:70px;width:640px;height:710px;clip-path:polygon(22% 0,72% 0,72% 6%,94% 6%,94% 13%,100% 13%,100% 87%,94% 87%,94% 94%,58% 94%,58% 100%,42% 100%,42% 94%,6% 94%,6% 87%,0 87%,0 13%,6% 13%,6% 6%,22% 6%);background:#596172;filter:drop-shadow(-3px 0 0 #171821) drop-shadow(3px 0 0 #171821) drop-shadow(0 -3px 0 #171821) drop-shadow(0 3px 0 #171821) drop-shadow(-5px 0 0 rgba(82,90,108,.72)) drop-shadow(5px 0 0 rgba(82,90,108,.72)) drop-shadow(0 -5px 0 rgba(82,90,108,.72)) drop-shadow(0 5px 0 rgba(82,90,108,.72)) drop-shadow(0 11px 13px rgba(0,0,0,.62))}
  .zone-hall{left:800px;top:70px;width:720px;height:1320px;clip-path:polygon(5% 0,95% 0,95% 4%,100% 4%,100% 92%,94% 92%,94% 100%,6% 100%,6% 94%,0 94%,0 5%,5% 5%)}
  .zone-bedroom{left:1600px;top:70px;width:650px;height:520px;clip-path:polygon(7% 0,93% 0,93% 6%,100% 6%,100% 92%,94% 92%,94% 100%,0 100%,0 14%,7% 14%)}
  .zone-parlor{left:1550px;top:620px;width:400px;height:430px;clip-path:polygon(7% 0,100% 0,100% 90%,91% 90%,91% 100%,0 100%,0 12%,7% 12%)}
  .zone-generator{left:2000px;top:650px;width:570px;height:620px;clip-path:polygon(0 7%,7% 7%,7% 0,100% 0,100% 91%,92% 91%,92% 100%,15% 100%,15% 95%,0 95%)}
  .zone-storage{left:90px;top:900px;width:700px;height:690px;clip-path:polygon(8% 0,48% 0,48% 6%,100% 6%,100% 88%,94% 88%,94% 100%,0 100%,0 9%,8% 9%)}
  .zone-lower-corridor{left:900px;top:1450px;width:1540px;height:340px;clip-path:polygon(2% 0,96% 0,96% 8%,100% 8%,100% 92%,97% 92%,97% 100%,2% 100%,2% 92%,0 92%,0 8%,2% 8%)}
  .zone-right-corridor{left:2410px;top:1230px;width:230px;height:660px;clip-path:polygon(10% 0,90% 0,90% 4%,100% 4%,100% 94%,88% 94%,88% 100%,12% 100%,12% 94%,0 94%,0 5%,10% 5%)}

  /* Only these physical connections exist. No Hall->Storage and no Hall->Parlor shortcut. */
  /* Library <-> Hall is now a small upper stair landing, not a broad side seam.
     It sits in the black gap and underneath the staircase sprite, so it reads as
     architecture belonging to the stairwell instead of a stray plank on Hall floor. */
  .conn-library-hall{display:block!important;left:716px;top:506px;width:116px;height:86px;z-index:5;box-sizing:border-box;overflow:hidden;background:
    linear-gradient(180deg,rgba(10,9,13,.58),transparent 28% 72%,rgba(5,5,8,.58)),
    url('/assets/images/room2/full-map/library/wood-floor-a.png') center/92px 120px repeat;
    border:6px solid #17171d;border-left-color:#596071;border-top-color:#4d5362;border-radius:2px;box-shadow:inset 0 0 0 3px rgba(69,47,37,.65),inset 0 0 18px rgba(0,0,0,.58),0 0 0 3px #0e0e13,0 7px 12px rgba(0,0,0,.52)}
  .conn-library-hall::before{display:block!important;content:""!important;position:absolute;inset:0;box-shadow:inset 0 10px 16px rgba(0,0,0,.32),inset 0 -10px 14px rgba(0,0,0,.26)}
  .conn-library-hall .r2fm-stair-throat{display:none!important}
  .conn-library-storage{left:382px;top:748px;width:96px;height:172px;box-sizing:border-box;border-left:7px solid #4e5361;border-right:7px solid #4e5361;background-image:url('/assets/images/room2/full-map/library/wood-floor-a.png');background-size:96px 124px;background-position:center top;box-shadow:inset 7px 0 0 #17161c,inset -7px 0 0 #17161c,inset 0 0 18px rgba(0,0,0,.48),0 0 0 3px #111116,0 0 0 6px rgba(80,86,102,.9)}
  .conn-library-storage::after{content:"";position:absolute;left:-7px;right:-7px;top:7px;height:18px;border-top:4px solid #5d6271;border-bottom:4px solid rgba(39,28,25,.92);background:linear-gradient(180deg,#493226 0 38%,#241918 39% 100%);box-shadow:0 5px 9px rgba(0,0,0,.46)}
  .conn-hall-bedroom{left:1500px;top:290px;width:130px;height:135px}
  .conn-bedroom-parlor{left:1755px;top:565px;width:125px;height:105px}
  .conn-parlor-generator{left:1930px;top:820px;width:100px;height:125px}
  .conn-hall-lower{left:1100px;top:1360px;width:220px;height:120px}
  .conn-generator-right{left:2385px;top:1150px;width:135px;height:145px}
  .conn-lower-right{left:2375px;top:1600px;width:125px;height:150px}

  /* Floors */
  .library-floor{background-image:url('/assets/images/room2/full-map/library/wood-floor-a.png');background-size:126px 164px}
  .hall-floor{background:
    linear-gradient(45deg,#353a43 25%,transparent 25% 75%,#353a43 75%) 0 0/44px 44px,
    linear-gradient(45deg,#1c2027 25%,#4c5059 25% 75%,#1c2027 75%) 22px 22px/44px 44px,#1e2228}
  .bedroom-floor{background-image:url('/assets/images/room2/full-map/parlor/floor-a.png');background-size:131px 108px;background-color:#23262c}
  .parlor-floor{background-image:url('/assets/images/room2/full-map/parlor/floor-b.png');background-size:130px 108px;background-color:#24272c}
  .generator-floor{background-image:url('/assets/images/room2/full-map/generator/floor-a.png');background-size:140px 211px;background-color:#1b1f23}
  .storage-floor{background-image:url('/assets/images/room2/full-map/storage/wood-floor.png');background-size:159px 193px;background-color:#201715}
  .corridor-floor,.right-corridor-floor{background-image:url('/assets/images/room2/full-map/parlor/floor-c.png');background-size:138px 109px;background-color:#22252b}

  /* Wall skins */
  .library-wall{background-image:url('/assets/images/room2/full-map/library/wallpaper-panel.png')}
  .zone-library .r2fm-floor{inset:34px 37px 39px;background-position:center top;box-shadow:inset 0 0 0 3px rgba(19,15,17,.72),inset 0 0 18px rgba(0,0,0,.36)}
  .zone-library .library-wall{inset:14px;border:0;background-color:#181619;background-size:116px 170px;background-repeat:repeat-x;background-position:22px 26px;filter:brightness(.74) saturate(.74);box-shadow:inset 0 0 0 3px rgba(17,15,19,.96),inset 0 0 0 7px rgba(84,62,53,.32),0 0 0 3px rgba(15,15,20,.92)}
  .zone-library .library-wall::before,.zone-library .library-wall::after{content:"";position:absolute;top:76px;bottom:28px;width:34px;background:url('/assets/images/room2/full-map/library/wood-column.png') center top/34px 98px no-repeat,linear-gradient(90deg,#201719,#543729 42%,#211719 47% 56%,#64452f 62%,#201719);filter:brightness(.72) saturate(.72);box-shadow:0 0 0 2px rgba(14,12,15,.68),0 0 8px rgba(0,0,0,.4)}
  .zone-library .library-wall::before{left:12px}.zone-library .library-wall::after{right:12px;transform:scaleX(-1)}
  .zone-library::before{inset:0;background:transparent;z-index:13;box-shadow:inset 0 0 0 4px #0d0e14,inset 0 0 0 9px rgba(92,100,119,.96),inset 0 0 0 14px #1a1b24,inset 0 0 0 18px rgba(74,54,48,.5),inset 0 0 46px rgba(0,0,0,.58)}
  .zone-library::after{left:140px;right:178px;top:9px;height:43px;z-index:14;background:url('/assets/images/room2/full-map/library/wallpaper-panel.png') center top/106px 154px repeat-x;border-top:5px solid #656d7f;border-left:6px solid #3b3f4c;border-right:6px solid #3b3f4c;border-bottom:4px solid #17161c;box-shadow:inset 0 -4px 0 rgba(47,31,29,.85),0 4px 0 rgba(16,14,18,.94),0 10px 15px rgba(0,0,0,.34);filter:brightness(.72) saturate(.72)}
  .zone-library .r2fm-floor::after{content:"";position:absolute;left:-1px;right:-1px;bottom:-2px;height:23px;z-index:2;background:linear-gradient(90deg,#18151a 0 42.4%,transparent 42.4% 57.6%,#18151a 57.6% 100%);box-shadow:0 -4px 0 rgba(84,90,106,.64),0 -7px 0 rgba(22,19,24,.88)}
  .hall-wall{background-image:url('/assets/images/room2/full-map/arch/wallpaper-wide.png')}
  .bedroom-wall{background-image:url('/assets/images/room2/full-map/parlor/wallpaper-a.png')}
  .parlor-wall{background-image:url('/assets/images/room2/full-map/parlor/wallpanel-web.png')}
  .generator-wall{background-image:linear-gradient(90deg,#11161a,#20252a,#111418)}
  .storage-wall{background-image:url('/assets/images/room2/full-map/storage/wood-floor.png');background-size:160px 100px}
  .corridor-wall,.right-corridor-wall{background-image:url('/assets/images/room2/full-map/arch/wallpaper-wide.png')}

  /* Library — final polish pass: target spacing, cleaner furniture separation and more breathing room. */
  .lib-shelf-a{left:42px;top:104px;width:142px;height:207px}.lib-shelf-b{left:250px;top:158px;width:158px;height:229px}.lib-shelf-c{left:468px;top:102px;width:144px;height:210px}
  .lib-clock{left:57px;top:230px;width:78px;height:204px}.lib-portrait{left:302px;top:52px;width:88px;height:110px}
  .lib-candle{left:211px;top:104px;width:48px;height:108px}.lib-ladder{left:186px;top:267px;width:64px;height:106px}
  .lib-rug{left:154px;top:390px;width:340px;height:199px;filter:brightness(.81) saturate(.84) drop-shadow(0 5px 5px rgba(0,0,0,.26))}.lib-desk{left:220px;top:382px;width:210px;height:179px}
  .lib-chair{left:295px;top:490px;width:62px;height:105px}.lib-globe{left:512px;right:auto;top:275px;width:72px;height:123px}
  .lib-keydrawer{left:43px;top:492px;width:120px;height:134px}.lib-plant{left:43px;top:585px;width:78px;height:88px}
  .lib-papers-a{left:472px;top:506px;width:66px;transform:rotate(4deg)}.lib-papers-b{display:none}.lib-papers-c{left:406px;top:558px;width:56px;transform:rotate(-5deg)}
  .lib-bookpile{left:220px;top:570px;width:54px;transform:rotate(4deg)}.lib-book-small{left:166px;top:544px;width:46px;transform:rotate(-10deg)}.lib-web{display:none!important}

  /* Hall — narrower, denser, staircase architecturally locked into west side. */
  .hall-door{left:260px;top:-10px;width:200px;height:200px}.hall-portrait{top:27px;width:76px;height:96px}.hall-portrait.p-left{left:180px}.hall-portrait.p-right{right:180px}
  .hall-candle{top:112px;width:40px;height:82px}.hall-candle.c-left{left:235px}.hall-candle.c-right{right:235px}
  .hall-plant{top:144px;width:74px;height:142px}.hall-plant.plant-left{left:164px}.hall-plant.plant-right{right:164px}
  .hall-runner{left:297px;top:160px;width:126px;height:1000px;z-index:3;filter:brightness(.86) saturate(.82) drop-shadow(0 5px 5px rgba(0,0,0,.24))}
  .hall-debris{left:72px;top:268px;width:142px}.hall-papers{right:66px;top:302px;width:150px}.hall-papers-2{right:126px;top:260px;width:58px}
  .hall-statue{left:316px;top:370px;width:88px;height:218px}
  /* Staircase: render the user's already-clean transparent sprite directly.
     The asset is complete (rail + under-stair wall), so no synthetic panels,
     masks or landing blocks are allowed around it. */
  .r2fm-stair-bay{position:absolute;left:-18px;top:448px;width:205px;height:290px;z-index:7;overflow:visible;background:transparent;box-shadow:none;pointer-events:none}
  .r2fm-stair-bay::before,.r2fm-stair-bay::after,.r2fm-stair-wall{display:none!important;content:none!important}
  .hall-stair{left:0;top:10px;width:190px;height:auto;z-index:9;object-fit:contain;filter:none!important;opacity:1;transform:none!important;mix-blend-mode:normal!important}
  .hall-table{left:250px;top:760px;width:220px;height:138px}.hall-bust{top:910px;width:72px;height:170px}.hall-bust.bust-left{left:100px}.hall-bust.bust-right{right:100px}
  .hall-chair{top:1030px;width:84px;height:108px}.hall-chair.chair-left{left:145px;transform:rotate(-13deg)}.hall-chair.chair-right{right:140px;transform:rotate(10deg)}
  .hall-cabinet{right:20px;top:785px;width:84px;height:148px}.hall-candelabra{top:1050px;width:55px;height:112px}.hall-candelabra.cand-left{left:24px}.hall-candelabra.cand-right{right:24px}

  /* Bedroom — entrance upper-left and child-horror cluster wrapped around the perimeter. */
  .bed-door{left:18px;top:40px;width:112px;height:190px}.bed-window{left:235px;top:8px;width:212px;height:164px}.bed-bed{left:340px;top:130px;width:198px;height:255px}.bed-wardrobe{right:18px;top:48px;width:138px;height:218px}
  .bed-covered{left:60px;top:225px;width:160px;height:176px}.bed-drawer{left:72px;top:73px;width:145px;height:134px}.bed-rocker{left:220px;top:294px;width:145px;height:108px}.bed-rug{left:205px;top:268px;width:155px;height:100px}
  .bed-chair{left:470px;top:366px;width:86px;height:116px}.bed-teddy{left:455px;top:204px;width:68px}.bed-doll{left:565px;top:216px;width:60px}
  .drawing{top:28px;width:68px;height:78px}.drawing.d1{left:135px}.drawing.d2{left:205px}.drawing.d3{left:500px}.bedroom-blood{left:315px;top:356px;width:178px}

  /* Parlor — small transition room; wall-side props are kept on perimeter instead of lying flat. */
  .parlor-mirror{left:24px;top:34px;width:108px;height:202px;transform:rotate(-2deg)}.parlor-dresser{right:18px;top:220px;width:148px;height:112px}.parlor-chair{left:43px;top:270px;width:88px;height:122px;transform:rotate(4deg)}
  .parlor-rug{left:95px;top:232px;width:200px;height:124px;z-index:3}.parlor-vase{right:55px;top:183px;width:60px;height:90px}.parlor-plant{left:145px;top:45px;width:86px;height:124px}.parlor-candle{left:172px;top:26px;width:38px;height:100px}.parlor-papers{left:215px;top:330px;width:92px}

  /* Generator — bottom-center entrance deliberately kept clear. */
  .gen-machine{left:28px;top:42px;width:246px;height:226px}.gen-pipes.p1{left:286px;top:18px;width:104px;height:254px}.gen-pipes.p2{left:84px;bottom:38px;width:238px;height:88px}
  .gen-hazard{right:28px;top:60px;width:132px;height:160px}.gen-green{left:296px;top:204px;width:100px;height:174px}.gen-toolbox{right:104px;bottom:34px;width:150px;height:118px}.gen-cylinder{right:26px;bottom:44px;width:90px;height:134px}.gen-pump{left:54px;bottom:44px;width:78px;height:112px}.gen-fan{right:35px;top:252px;width:112px;height:134px}

  /* Storage — denser but readable clusters, with an open path from the Library connector. */
  .storage-shelf{left:34px;top:54px;width:158px;height:266px}.storage-crate.c1{left:28px;top:345px;width:168px;height:164px}.storage-crate.c2{left:202px;top:326px;width:94px;height:146px}.storage-crate.c3{left:118px;top:500px;width:112px;height:95px}.storage-crate.c4{left:248px;top:522px;width:82px;height:75px}
  .storage-crate-table{left:300px;top:343px;width:170px;height:128px}.storage-stool{left:210px;top:192px;width:82px;height:105px}.storage-barrel{left:328px;top:246px;width:88px;height:116px}.storage-ladder{left:205px;top:43px;width:86px;height:145px}
  .storage-planks{left:303px;top:54px;width:78px;height:164px}.storage-covered.a{right:202px;top:140px;width:152px;height:172px}.storage-covered.b{right:24px;top:180px;width:180px;height:214px}.storage-wheel{left:38px;bottom:56px;width:128px;height:128px}
  .storage-mirror{right:180px;top:55px;width:86px;height:142px;transform:rotate(13deg)}.storage-fallen-frame{right:86px;top:60px;width:88px;height:118px;transform:rotate(-8deg)}.storage-bookpapers{left:205px;bottom:68px;width:130px;height:86px;transform:rotate(-7deg)}
  .storage-papers{left:350px;bottom:120px;width:96px}.storage-papers-b{left:470px;bottom:90px;width:90px}.storage-blood{left:285px;bottom:50px;width:174px}.storage-lantern{right:24px;top:46px;width:54px;height:108px}

  /* Lower corridor — target-like furnished wall instead of a black strip. */
  .zone-lower-corridor .r2fm-floor{inset:105px 18px 18px;background-image:url('/assets/images/room2/full-map/parlor/floor-c.png');background-size:138px 109px}
  .zone-lower-corridor .corridor-wall{inset:0 0 auto;height:132px;border:0;background-image:url('/assets/images/room2/full-map/arch/wallpaper-wide.png');background-size:auto 132px;background-repeat:repeat-x;box-shadow:inset 0 -38px 0 rgba(25,19,20,.84),inset 0 -43px 0 rgba(92,63,49,.32)}
  .corridor-runner{left:70px;top:178px;width:1370px;height:102px;object-fit:fill;z-index:3;filter:brightness(.72) saturate(.8)}
  .corridor-portrait{top:22px;height:84px;width:auto;z-index:9}.corridor-portrait.cp1{left:155px}.corridor-portrait.cp2{left:575px}.corridor-portrait.cp3{left:1010px}.corridor-portrait.cp4{left:1320px}
  .corridor-candle{top:61px;width:40px;height:86px}.corridor-candle.cc1{left:375px}.corridor-candle.cc2{left:1165px}.corridor-table{left:1195px;top:118px;width:178px;height:104px}.corridor-crack{left:760px;top:12px;width:102px;height:116px;opacity:.8}.corridor-blood{left:810px;top:180px;width:150px}.corridor-blood-2{left:590px;top:122px;width:85px}
  .zone-right-corridor .r2fm-floor{inset:18px}.right-door{left:37px;bottom:28px;width:150px;height:220px}.right-candle{left:86px;width:43px;height:94px}.right-candle.rc1{top:82px}.right-candle.rc2{top:312px}.right-blood{left:72px;top:438px;width:72px;height:128px}

  /* Existing gameplay nodes are re-anchored to the rebuilt mansion; actions/logic are unchanged. */
  #room2Desk{left:330px!important;top:452px!important;width:210px!important;height:179px!important;z-index:650!important;background:transparent!important;border:0!important;box-shadow:none!important;color:transparent!important;opacity:.02}
  #room2GrandfatherClock{left:167px!important;top:300px!important;width:78px!important;height:204px!important;z-index:520!important;background:transparent!important;border:0!important;box-shadow:none!important;color:transparent!important;opacity:.02}
  #room2Flashlight{left:620px!important;top:438px!important;z-index:555!important}
  #room2PhotoPanel{left:360px!important;top:228px!important;width:158px!important;height:229px!important;z-index:480!important;background:transparent!important;border:0!important;box-shadow:none!important;color:transparent!important;opacity:.02}
  #room2SwitchClue{left:430px!important;top:472px!important;z-index:545!important;opacity:.02}
  #room2SwitchPanel{left:2050px!important;top:440px!important;width:150px!important;height:100px!important;z-index:520!important;background:transparent!important;border:0!important;box-shadow:none!important;color:transparent!important;opacity:.02}
  .r2m-archive-box{left:414px!important;top:1278px!important;width:112px!important;height:72px!important;z-index:1320!important;background:transparent!important;border:0!important;box-shadow:none!important;color:transparent!important;opacity:.02}
  .r2m-mansion-map .r2-generator-room{display:block!important;visibility:visible!important;opacity:1!important;position:static!important;filter:none!important}
  .r2m-mansion-map .r2-generator{left:2100px!important;top:770px!important;width:250px!important;height:230px!important;z-index:910!important;background:transparent!important;border:0!important;box-shadow:none!important;color:transparent!important;opacity:.03}
  .r2m-mansion-map .r2-breaker{left:2305px!important;top:760px!important;width:110px!important;height:140px!important;z-index:920!important;background:transparent!important;border:0!important;box-shadow:none!important;color:transparent!important;opacity:.01}
  #room2SecurityDoor{left:595px!important;top:1412px!important;width:110px!important;height:170px!important;z-index:1540!important;background:url('/assets/images/room2/full-map/storage/wood-gate.png') center/contain no-repeat!important;border:0!important;box-shadow:none!important;color:transparent!important}
  #room2SecurityKeypad{left:560px!important;top:1420px!important;z-index:1550!important}
  #room2Crowbar{left:430px!important;top:1268px!important;width:92px!important;height:48px!important;z-index:1490!important;background-image:url('/assets/images/room2/full-map/storage/crowbar.png')!important;background-size:contain!important;background-repeat:no-repeat!important;background-position:center!important;transform:rotate(-8deg)}
  #room2EntranceDoor{left:1300px!important;top:1360px!important;width:150px!important;height:90px!important;z-index:1480!important}
  #room2ExitDoor{left:2470px!important;top:1750px!important;width:120px!important;height:100px!important;z-index:1780!important}
  #room2BarricadeChair{left:1210px!important;top:1338px!important;z-index:1470!important}

  .r2m-photo-clue-spread{z-index:60!important}.r2m-clue-photo{width:34px!important;height:46px!important;z-index:95!important}
  .r2m-clue-photo[data-portrait="1"]{left:955px!important;top:145px!important}
  .r2m-clue-photo[data-portrait="2"]{left:1045px!important;top:142px!important}
  .r2m-clue-photo[data-portrait="3"]{left:1290px!important;top:142px!important}
  .r2m-clue-photo[data-portrait="4"]{left:1380px!important;top:145px!important}

  .r2m-mansion-map .r2-secret-wall,.r2m-mansion-map .r2-secret-gap,.r2m-mansion-map .r2-secret-dust{z-index:70}
  /* ==========================================================
     LIBRARY WALL REBUILD PASS
     Uses the supplied wall-sheet pieces as real modular architecture.
     Furniture placement is intentionally left unchanged in this pass.
     ========================================================== */
  .zone-library{
    clip-path:polygon(15.3% 0,84.7% 0,84.7% 8.2%,100% 8.2%,100% 87.2%,94% 87.2%,94% 94%,57.2% 94%,57.2% 100%,42.8% 100%,42.8% 94%,6% 94%,6% 87.2%,0 87.2%,0 8.2%,15.3% 8.2%);
    background:#06070a;
    box-shadow:none;
    filter:drop-shadow(0 10px 13px rgba(0,0,0,.7));
  }
  .zone-library::before,.zone-library::after{display:none!important}
  .zone-library .library-wall{display:none!important}
  .zone-library .r2fm-floor{
    inset:38px 34px 34px;
    background-position:center top;
    box-shadow:inset 0 0 28px rgba(0,0,0,.36);
  }
  .zone-library .r2fm-floor::after{display:none!important}

  .lib-wall-architecture{position:absolute;inset:0;z-index:5;pointer-events:none;overflow:hidden}
  .lib-wall-piece{position:absolute;display:block;width:auto;height:auto;max-width:none;object-fit:contain;image-rendering:pixelated;image-rendering:crisp-edges;filter:brightness(.83) saturate(.82) drop-shadow(0 4px 4px rgba(0,0,0,.42))}
  .lib-wall-top-left{left:0;top:0}
  .lib-wall-top-center{left:143px;top:0}
  .lib-wall-top-right{left:493px;top:0}

  .lib-wall-side{top:auto}
  .lib-wall-side-left{left:0;transform:scaleX(-1);transform-origin:center}
  .lib-wall-side-right{right:0}
  .lib-wall-side-left.side-a,.lib-wall-side-right.side-a{top:190px}
  .lib-wall-side-left.side-b{top:425px}
  .lib-wall-side-right.side-b{top:520px}

  .lib-wall-bottom{top:619px;z-index:2}
  .lib-wall-bottom-left{left:35px}
  .lib-wall-bottom-right{right:35px}
  .lib-wall-bottom-trim{position:absolute;top:619px;height:91px;width:56px;z-index:3;background-image:url('/assets/images/room2/full-map/library/walls/bottom-panel.png');background-repeat:no-repeat;background-position:center top;background-size:181px 91px;filter:brightness(.83) saturate(.82)}
  .lib-wall-bottom-trim.trim-left{left:216px}
  .lib-wall-bottom-trim.trim-right{right:216px;transform:scaleX(-1)}

  /* Library <-> Hall stair junction.  This is a doorway cut through the wall,
     not a wooden bridge laid across the void.  The visible staircase begins
     immediately outside the opening and the guided transition follows it. */
  .conn-library-hall{
    left:728px;top:516px;width:82px;height:60px;
    border:0;border-radius:0;overflow:visible;
    background:linear-gradient(180deg,#171319 0 34%,#0b0b10 35% 100%);
    box-shadow:inset 0 7px 10px rgba(0,0,0,.46),0 0 0 2px #0c0d12,0 0 0 4px rgba(75,82,98,.72);
  }
  .conn-library-hall::before{inset:0!important;box-shadow:inset 0 7px 10px rgba(0,0,0,.34)!important}
  .conn-library-hall::after{content:"";position:absolute;left:17px;right:17px;bottom:5px;height:8px;z-index:2;background:url('/assets/images/room2/full-map/library/walls/trim-horizontal.png') center/66px 18px no-repeat;filter:brightness(.73) saturate(.72);opacity:.9}
  .r2fm-stair-throat{display:block!important;position:absolute;left:8px;right:8px;top:22px;height:31px;z-index:1;background:linear-gradient(180deg,#171216,#0d0c10 72%,#211817);box-shadow:inset 0 8px 10px rgba(0,0,0,.38)}
  .lib-stair-opening-frame{position:absolute;inset:0;z-index:3;pointer-events:none}
  .lib-stair-opening-frame i{position:absolute;display:block;background-repeat:no-repeat;image-rendering:pixelated;image-rendering:crisp-edges;filter:brightness(.83) saturate(.82)}
  .lib-stair-opening-frame .top{left:-3px;top:-3px;width:88px;height:20px;background-image:url('/assets/images/room2/full-map/library/walls/trim-horizontal.png');background-size:88px 20px}
  .lib-stair-opening-frame .bottom{display:none}
  .lib-stair-opening-frame .left,.lib-stair-opening-frame .right{top:3px;width:15px;height:58px;background-image:url('/assets/images/room2/full-map/library/walls/side-narrow.png');background-size:15px 76px;background-position:center top}
  .lib-stair-opening-frame .left{left:-2px;transform:scaleX(-1)}.lib-stair-opening-frame .right{right:-2px}
  /* Narrow the raw void around the opening with architectural jambs.  The
     center remains a real opening; these only make the Library and Hall walls
     read as one continuous structure like the reference. */
  .lib-stair-gap-jamb{position:absolute;z-index:2;width:16px;background:url('/assets/images/room2/full-map/walls-global/wall-vertical-narrow.png') center top/16px auto repeat-y;image-rendering:pixelated;filter:brightness(.78) saturate(.78);pointer-events:none}
  .lib-stair-gap-jamb.jamb-upper{left:33px;top:-92px;height:88px}
  .lib-stair-gap-jamb.jamb-lower{left:33px;top:61px;height:82px}

  /* Bottom-center Storage doorway: narrower frame so it reads as a passage,
     not a second room pasted below the Library. */
  .conn-library-storage{
    left:390px;top:748px;width:80px;height:172px;
    border:0;background:url('/assets/images/room2/full-map/library/wood-floor-a.png') center top/80px 124px repeat;
    box-shadow:inset 0 0 15px rgba(0,0,0,.46),0 0 0 3px #101116,0 0 0 5px rgba(76,83,99,.78);
  }
  .conn-library-storage::after{display:none!important}
  .lib-storage-doorframe{position:absolute;left:0;top:-3px;width:80px;height:auto;z-index:4;display:block;image-rendering:pixelated;image-rendering:crisp-edges;filter:brightness(.84) saturate(.82);pointer-events:none}
}

@media (max-width:1050px), (pointer:coarse){.r2fm-world{display:none!important}}



/* ==========================================================
   ROOM 2 MASTER ARCHITECTURE REBUILD — extreme wall pass
   Source: target mansion map + user wall sheets set 1–4 + gameplay video.
   Desktop only. Mobile Room 2 stays untouched.

   Architecture rule:
   playable floor -> wall face/wainscot -> structural rim -> shadow -> true void.
   Connectors are openings inside wall mass, never exposed floor/plank bridges.
   ========================================================== */
@media (min-width:1051px) and (pointer:fine){
  .room2-world{
    --r2-master-rim:#555d72;
    --r2-master-ink:#0b0b10;
    --r2-master-wall:#171318;
    --r2-master-shadow:rgba(0,0,0,.66);
  }

  /* Retire the generic skins. The shell below is the only desktop wall system
     for Hall / Bedroom / Parlor / Generator / Storage / corridors. */
  .zone-hall::after,.zone-bedroom::after,.zone-parlor::after,.zone-generator::after,
  .zone-storage::after,.zone-lower-corridor::after,.zone-right-corridor::after{display:none!important}
  .zone-hall>.r2fm-wallskin,.zone-bedroom>.r2fm-wallskin,.zone-parlor>.r2fm-wallskin,
  .zone-generator>.r2fm-wallskin,.zone-storage>.r2fm-wallskin,
  .zone-lower-corridor>.r2fm-wallskin,.zone-right-corridor>.r2fm-wallskin{display:none!important}

  .r2fw-shell{
    position:absolute;inset:0;z-index:5;pointer-events:none;overflow:hidden;
    image-rendering:pixelated;image-rendering:crisp-edges
  }
  .r2fw-edge{
    position:absolute;display:block;z-index:1;
    image-rendering:pixelated;image-rendering:crisp-edges;
    filter:brightness(.82) saturate(.84) drop-shadow(0 4px 4px rgba(0,0,0,.44))
  }
  /* Native-height master modules are tiled/cropped rather than stretched. */
  .r2fw-edge.top{
    left:0;right:0;top:0;height:100px;
    background-image:url('/assets/images/room2/full-map/walls-master/wall-h-long.png');
    background-repeat:repeat-x;background-position:left top;background-size:auto 145px
  }
  .r2fw-edge.bottom{
    left:0;right:0;bottom:0;height:31px;
    background-image:url('/assets/images/room2/full-map/walls-master/wall-h-long.png');
    background-repeat:repeat-x;background-position:left bottom;background-size:auto 145px
  }
  .r2fw-edge.left,.r2fw-edge.right{
    top:72px;bottom:24px;width:31px;
    background-image:url('/assets/images/room2/full-map/walls-master/wall-v-narrow.png');
    background-repeat:repeat-y;background-size:60px auto
  }
  .r2fw-edge.left{left:0;background-position:left top}
  .r2fw-edge.right{right:0;background-position:right top}

  .r2fw-special{
    position:absolute;display:block;z-index:4;max-width:none;
    image-rendering:pixelated;image-rendering:crisp-edges;
    filter:brightness(.85) saturate(.86) drop-shadow(0 6px 6px rgba(0,0,0,.43))
  }

  /* Real returns at upper corners.  These are wall modules, not black filler. */
  .r2fw-shell-hall::before,.r2fw-shell-bedroom::before,.r2fw-shell-parlor::before,
  .r2fw-shell-storage::before,.r2fw-shell-lower::before,.r2fw-shell-right::before,
  .r2fw-shell-hall::after,.r2fw-shell-bedroom::after,.r2fw-shell-parlor::after,
  .r2fw-shell-storage::after,.r2fw-shell-lower::after,.r2fw-shell-right::after{
    content:"";position:absolute;top:0;z-index:3;width:88px;height:112px;
    background-repeat:no-repeat;background-size:auto 152px;
    image-rendering:pixelated;image-rendering:crisp-edges;
    filter:brightness(.83) saturate(.84)
  }
  .r2fw-shell-hall::before,.r2fw-shell-bedroom::before,.r2fw-shell-parlor::before,
  .r2fw-shell-storage::before,.r2fw-shell-lower::before,.r2fw-shell-right::before{
    left:0;background-image:url('/assets/images/room2/full-map/walls-master/corner-inner-left.png');background-position:left top
  }
  .r2fw-shell-hall::after,.r2fw-shell-bedroom::after,.r2fw-shell-parlor::after,
  .r2fw-shell-storage::after,.r2fw-shell-lower::after,.r2fw-shell-right::after{
    right:0;background-image:url('/assets/images/room2/full-map/walls-master/corner-inner-right.png');background-position:right top
  }

  /* ---------------- MAIN HALL ----------------
     Interior coordinates intentionally remain identical to ROOM2_MAP.desktopAreas. */
  .zone-hall{
    background:#07070b!important;
    clip-path:polygon(5% 0,95% 0,95% 4%,100% 4%,100% 92%,94% 92%,94% 100%,6% 100%,6% 94%,0 94%,0 5%,5% 5%)!important;
    filter:drop-shadow(0 10px 13px rgba(0,0,0,.69))
  }
  .zone-hall>.r2fm-floor{inset:100px 30px 31px!important;box-shadow:inset 0 0 28px rgba(0,0,0,.29)!important}
  .r2fw-shell-hall .r2fw-edge.top{height:100px}
  .r2fw-shell-hall .r2fw-edge.left,.r2fw-shell-hall .r2fw-edge.right{top:74px;width:30px}
  .r2fw-hall-arch{left:50%;top:0;width:294px;height:197px;transform:translateX(-50%);object-fit:contain}
  .zone-hall .hall-door,.zone-hall .hall-candle.c-left,.zone-hall .hall-candle.c-right{opacity:0!important}
  .zone-hall .hall-portrait.p-left{left:112px!important}.zone-hall .hall-portrait.p-right{right:112px!important}
  .zone-hall .hall-plant.plant-left{left:136px!important}.zone-hall .hall-plant.plant-right{right:136px!important}
  .zone-hall::before{
    box-shadow:inset 0 0 0 3px #090a0e,inset 0 0 0 7px rgba(80,88,108,.70),inset 0 0 40px rgba(0,0,0,.50)!important
  }

  /* The supplied transparent staircase remains the visual stair.  Wall shell
     now terminates into its doorway instead of leaving a plank/void seam. */
  .r2fm-stair-bay{left:-18px!important;top:448px!important;width:205px!important;height:290px!important;overflow:visible!important}
  .hall-stair{left:0!important;top:10px!important;width:190px!important;height:auto!important}

  /* ---------------- BEDROOM ---------------- */
  .zone-bedroom{
    background:#07070b!important;
    clip-path:polygon(7% 0,93% 0,93% 6%,100% 6%,100% 92%,94% 92%,94% 100%,0 100%,0 14%,7% 14%)!important;
    filter:drop-shadow(0 9px 12px rgba(0,0,0,.69))
  }
  .zone-bedroom>.r2fm-floor{inset:84px 29px 28px!important}
  .r2fw-shell-bedroom .r2fw-edge.top{height:84px}
  .r2fw-shell-bedroom .r2fw-edge.left,.r2fw-shell-bedroom .r2fw-edge.right{top:64px;width:29px}
  .r2fw-bedroom-doorframe{left:18px;top:46px;width:125px;height:181px;object-fit:contain}
  .zone-bedroom .bed-door{opacity:0!important}
  .zone-bedroom::before{
    box-shadow:inset 0 0 0 3px #090a0e,inset 0 0 0 6px rgba(78,86,104,.66),inset 0 0 31px rgba(0,0,0,.43)!important
  }

  /* ---------------- PARLOR / RIGHT CONNECTOR ROOM ---------------- */
  .zone-parlor{
    background:#07070b!important;
    clip-path:polygon(7% 0,100% 0,100% 89%,91% 89%,91% 100%,0 100%,0 12%,7% 12%)!important;
    filter:drop-shadow(0 8px 11px rgba(0,0,0,.66))
  }
  .zone-parlor>.r2fm-floor{inset:72px 28px 28px!important}
  .r2fw-shell-parlor .r2fw-edge.top{height:72px}
  .r2fw-shell-parlor .r2fw-edge.left,.r2fw-shell-parlor .r2fw-edge.right{top:54px;width:28px}
  .zone-parlor::before{
    box-shadow:inset 0 0 0 3px #0a0a0f,inset 0 0 0 6px rgba(75,83,101,.63),inset 0 0 27px rgba(0,0,0,.46)!important
  }

  /* ---------------- GENERATOR ----------------
     Industrial shell remains independent from furniture/machine colliders. */
  .zone-generator{
    background:#05070a!important;
    clip-path:polygon(0 7%,7% 7%,7% 0,100% 0,100% 91%,92% 91%,92% 100%,15% 100%,15% 95%,0 95%)!important;
    filter:drop-shadow(0 9px 12px rgba(0,0,0,.71))
  }
  .zone-generator>.r2fm-floor{inset:88px 30px 32px!important}
  .r2fw-shell-generator .r2fw-edge.top{
    height:88px;background-image:url('/assets/images/room2/full-map/walls-global/industrial-wall-horizontal.png');
    background-repeat:repeat-x;background-position:left top;background-size:auto 96px
  }
  .r2fw-shell-generator .r2fw-edge.bottom{
    height:32px;background-image:url('/assets/images/room2/full-map/walls-global/industrial-wall-horizontal.png');
    background-repeat:repeat-x;background-position:left bottom;background-size:auto 96px
  }
  .r2fw-shell-generator .r2fw-edge.left,.r2fw-shell-generator .r2fw-edge.right{
    top:66px;bottom:24px;width:30px;background-image:url('/assets/images/room2/full-map/walls-global/industrial-wall-vertical.png');
    background-repeat:repeat-y;background-size:30px auto
  }
  .r2fw-shell-generator .r2fw-edge.left{background-position:left top}
  .r2fw-shell-generator .r2fw-edge.right{background-position:right top}
  .zone-generator::before{
    box-shadow:inset 0 0 0 3px #080a0e,inset 0 0 0 7px rgba(67,75,88,.70),inset 0 0 34px rgba(0,0,0,.50)!important
  }

  /* ---------------- STORAGE ---------------- */
  .zone-storage{
    background:#07070b!important;
    clip-path:polygon(8% 0,44% 0,44% 5%,58% 5%,58% 0,100% 0,100% 88%,94% 88%,94% 100%,0 100%,0 9%,8% 9%)!important;
    filter:drop-shadow(0 9px 12px rgba(0,0,0,.69))
  }
  .zone-storage>.r2fm-floor{inset:74px 30px 30px!important}
  .r2fw-shell-storage .r2fw-edge.top{height:74px}
  .r2fw-shell-storage .r2fw-edge.left,.r2fw-shell-storage .r2fw-edge.right{top:56px;width:30px}
  .r2fw-storage-openframe{left:50%;top:-6px;width:130px;height:181px;transform:translateX(-50%);object-fit:contain;opacity:.94}
  .zone-storage::before{
    box-shadow:inset 0 0 0 3px #0a0a0f,inset 0 0 0 7px rgba(78,86,104,.65),inset 0 0 29px rgba(0,0,0,.47)!important
  }

  /* ---------------- FINAL LOWER HALLWAY ---------------- */
  .zone-lower-corridor{
    left:900px!important;top:1450px!important;width:1540px!important;height:340px!important;
    background:#06070a!important;
    clip-path:polygon(2% 0,96% 0,96% 8%,100% 8%,100% 92%,97% 92%,97% 100%,2% 100%,2% 92%,0 92%,0 8%,2% 8%)!important;
    filter:drop-shadow(0 8px 11px rgba(0,0,0,.67))
  }
  .zone-lower-corridor>.r2fm-floor{inset:104px 25px 27px!important}
  .r2fw-shell-lower .r2fw-edge.top{height:104px}
  .r2fw-shell-lower .r2fw-edge.bottom{height:27px}
  .r2fw-shell-lower .r2fw-edge.left,.r2fw-shell-lower .r2fw-edge.right{top:78px;bottom:22px;width:25px}
  .zone-lower-corridor::before{
    box-shadow:inset 0 0 0 3px #090a0f,inset 0 0 0 6px rgba(77,85,103,.64),inset 0 0 27px rgba(0,0,0,.43)!important
  }

  /* ---------------- RIGHT VERTICAL HALLWAY ---------------- */
  .zone-right-corridor{
    left:2420px!important;top:1230px!important;width:230px!important;height:660px!important;
    background:#06070a!important;filter:drop-shadow(0 8px 10px rgba(0,0,0,.67))
  }
  .zone-right-corridor>.r2fm-floor{inset:76px 25px 28px!important}
  .r2fw-shell-right .r2fw-edge.top{height:76px}
  .r2fw-shell-right .r2fw-edge.bottom{height:28px}
  .r2fw-shell-right .r2fw-edge.left,.r2fw-shell-right .r2fw-edge.right{top:58px;bottom:22px;width:25px}
  .zone-right-corridor::before{
    box-shadow:inset 0 0 0 3px #090a0f,inset 0 0 0 6px rgba(76,84,102,.65),inset 0 0 26px rgba(0,0,0,.45)!important
  }

  /* ==========================================================
     STRUCTURAL WALL MASS — closes false black gaps between shells
     These blocks are deliberately NON-WALKABLE: the positive walkable
     mask only opens the actual doorway/corridor rectangles.  They sit
     beneath connector floors and above the true black void.
     ========================================================== */
  .r2fw-wall-mass{
    position:absolute;z-index:6;pointer-events:none;overflow:hidden;
    background-color:#151217;
    background-image:url('/assets/images/room2/full-map/walls-master/wall-h-short.png');
    background-repeat:repeat;background-position:left top;background-size:auto 143px;
    image-rendering:pixelated;image-rendering:crisp-edges;
    filter:brightness(.78) saturate(.82) drop-shadow(0 5px 5px rgba(0,0,0,.52));
    box-shadow:inset 0 0 0 3px #0a0b0f,inset 0 0 0 6px rgba(77,85,103,.58)
  }
  .r2fw-wall-mass::after{
    content:"";position:absolute;inset:auto 0 0;height:18px;
    background:url('/assets/images/room2/full-map/walls-master/wall-h-long.png') left bottom/auto 145px repeat-x;
    opacity:.82
  }

  .mass-lib-hall-upper,.mass-lib-hall-lower,
  .mass-hall-bedroom-upper,.mass-hall-bedroom-lower,
  .mass-parlor-generator-upper,.mass-parlor-generator-lower{
    background-image:url('/assets/images/room2/full-map/walls-master/wall-v-narrow.png');
    background-repeat:repeat-y;background-size:60px auto;background-position:center top
  }
  .mass-lib-hall-upper::after,.mass-lib-hall-lower::after,
  .mass-hall-bedroom-upper::after,.mass-hall-bedroom-lower::after,
  .mass-parlor-generator-upper::after,.mass-parlor-generator-lower::after{
    height:14px;opacity:.72
  }

  /* Library ↔ stair: leave exactly the doorway + diagonal stair lane open. */
  .mass-lib-hall-upper{left:744px;top:382px;width:72px;height:130px}
  .mass-lib-hall-lower{left:744px;top:578px;width:72px;height:156px}

  /* Library ↔ Storage: bottom-center passage is the only opening. */
  .mass-lib-storage-left{left:270px;top:774px;width:120px;height:132px}
  .mass-lib-storage-right{left:470px;top:774px;width:120px;height:132px}

  /* Hall ↔ Bedroom: close the false void above/below the intentional throat. */
  .mass-hall-bedroom-upper{left:1510px;top:118px;width:100px;height:164px}
  .mass-hall-bedroom-lower{left:1510px;top:414px;width:100px;height:176px}

  /* Bedroom ↔ Parlor vertical doorway surround. */
  .mass-bedroom-parlor-left{left:1600px;top:580px;width:152px;height:66px}
  .mass-bedroom-parlor-right{left:1876px;top:580px;width:74px;height:66px}

  /* Parlor ↔ Generator: wall returns above/below the passage. */
  .mass-parlor-generator-upper{left:1944px;top:706px;width:62px;height:254px}
  .mass-parlor-generator-lower{left:1944px;top:1060px;width:62px;height:196px}

  /* Hall ↔ final hallway: the lower Hall wall is solid except its center opening. */
  .mass-hall-lower-left{left:800px;top:1378px;width:312px;height:84px}
  .mass-hall-lower-right{left:1318px;top:1378px;width:202px;height:84px}

  /* ==========================================================
     CONNECTORS — architectural passages inside wall mass
     ========================================================== */
  .r2fm-connector{
    box-sizing:border-box;border:0!important;border-radius:0!important;
    image-rendering:pixelated;image-rendering:crisp-edges;
    background:url('/assets/images/room2/full-map/parlor/floor-c.png') center/138px 109px repeat!important;
    box-shadow:inset 0 0 16px rgba(0,0,0,.34)!important;
    overflow:hidden
  }

  /* Horizontal openings: wall bands top/bottom, floor only in the middle. */
  .conn-hall-bedroom,.conn-parlor-generator{overflow:hidden!important}
  .conn-hall-bedroom::before,.conn-parlor-generator::before,
  .conn-hall-bedroom::after,.conn-parlor-generator::after{
    content:"";position:absolute;left:0;right:0;height:30px;z-index:3;
    background-image:url('/assets/images/room2/full-map/walls-master/wall-h-short.png');
    background-repeat:repeat-x;background-size:auto 143px;
    image-rendering:pixelated;filter:brightness(.82) saturate(.84)
  }
  .conn-hall-bedroom::before,.conn-parlor-generator::before{top:0;background-position:center top}
  .conn-hall-bedroom::after,.conn-parlor-generator::after{bottom:0;background-position:center bottom}

  /* Vertical openings: structural jambs on both sides. */
  .conn-bedroom-parlor::before,.conn-hall-lower::before,.conn-generator-right::before,.conn-lower-right::before,
  .conn-bedroom-parlor::after,.conn-hall-lower::after,.conn-generator-right::after,.conn-lower-right::after{
    content:"";position:absolute;top:0;bottom:0;width:27px;z-index:3;
    background-image:url('/assets/images/room2/full-map/walls-master/wall-v-narrow.png');
    background-repeat:repeat-y;background-size:60px auto;
    image-rendering:pixelated;filter:brightness(.82) saturate(.84)
  }
  .conn-bedroom-parlor::before,.conn-hall-lower::before,.conn-generator-right::before,.conn-lower-right::before{
    left:0;background-position:left top
  }
  .conn-bedroom-parlor::after,.conn-hall-lower::after,.conn-generator-right::after,.conn-lower-right::after{
    right:0;background-position:right top
  }

  /* Geometry keeps the same logical routes but makes the wall throat visibly
     reach both room shells instead of floating in the black gap. */
  .conn-hall-bedroom{left:1492px!important;top:282px!important;width:142px!important;height:132px!important}
  .conn-bedroom-parlor{left:1752px!important;top:548px!important;width:124px!important;height:166px!important}
  .conn-parlor-generator{left:1900px!important;top:960px!important;width:160px!important;height:100px!important}
  .conn-hall-lower{left:1112px!important;top:1342px!important;width:206px!important;height:218px!important}
  .conn-generator-right{left:2480px!important;top:1180px!important;width:125px!important;height:170px!important}
  .conn-lower-right{left:2372px!important;top:1584px!important;width:148px!important;height:174px!important}

  /* Library -> Storage: a real vertical doorway/corridor through wall thickness.
     The opening floor remains walkable; the wall frame is structural. */
  .conn-library-storage{
    left:390px!important;top:748px!important;width:80px!important;height:230px!important;
    overflow:visible!important;
    background:url('/assets/images/room2/full-map/parlor/floor-c.png') center/80px 109px repeat-y!important;
    box-shadow:inset 11px 0 0 #111116,inset -11px 0 0 #111116,0 0 0 3px rgba(78,85,102,.80)!important
  }
  .conn-library-storage::before,.conn-library-storage::after{content:"";position:absolute;top:18px;bottom:0;width:16px;z-index:3;
    background-image:url('/assets/images/room2/full-map/walls-master/wall-v-narrow.png');background-repeat:repeat-y;background-size:60px auto;
    image-rendering:pixelated;filter:brightness(.82) saturate(.84)}
  .conn-library-storage::before{left:-7px;background-position:left top}
  .conn-library-storage::after{right:-7px;background-position:right top}
  .lib-storage-doorframe{
    position:absolute!important;left:50%!important;top:-8px!important;width:130px!important;height:181px!important;
    transform:translateX(-50%)!important;z-index:5!important;object-fit:contain!important;
    image-rendering:pixelated!important;filter:brightness(.86) saturate(.85)!important
  }

  /* Library -> Stair -> Hall: doorway cut into wall, never a wood/plank bridge. */
  .conn-library-hall{
    display:block!important;left:724px!important;top:512px!important;width:92px!important;height:66px!important;
    overflow:visible!important;z-index:9!important;
    background:url('/assets/images/room2/full-map/parlor/floor-c.png') center/92px 109px no-repeat!important;
    box-shadow:inset 0 8px 11px rgba(0,0,0,.42),0 0 0 2px #0b0c10!important
  }
  .conn-library-hall::before{content:""!important;position:absolute!important;inset:0!important;box-shadow:inset 0 8px 12px rgba(0,0,0,.38)!important}
  .conn-library-hall::after{display:none!important}
  .r2fm-stair-throat{
    display:block!important;position:absolute!important;left:17px!important;right:17px!important;top:22px!important;height:38px!important;z-index:1!important;
    background:linear-gradient(180deg,rgba(30,24,25,.8),rgba(12,11,14,.96))!important;
    box-shadow:inset 0 8px 10px rgba(0,0,0,.36)!important
  }
  .lib-stair-opening-frame{position:absolute!important;inset:0!important;z-index:4!important;pointer-events:none!important}
  .lib-stair-opening-frame i{position:absolute!important;display:block!important;image-rendering:pixelated!important;filter:brightness(.83) saturate(.84)!important}
  .lib-stair-opening-frame .top{
    left:0!important;right:0!important;top:-5px!important;width:auto!important;height:24px!important;
    background-image:url('/assets/images/room2/full-map/walls-master/wall-h-short.png')!important;
    background-repeat:repeat-x!important;background-position:center top!important;background-size:auto 143px!important
  }
  .lib-stair-opening-frame .bottom{display:none!important}
  .lib-stair-opening-frame .left,.lib-stair-opening-frame .right{
    top:0!important;width:19px!important;height:70px!important;
    background-image:url('/assets/images/room2/full-map/walls-master/wall-v-narrow.png')!important;
    background-repeat:repeat-y!important;background-size:60px auto!important
  }
  .lib-stair-opening-frame .left{left:-3px!important;background-position:left top!important;transform:none!important}
  .lib-stair-opening-frame .right{right:-3px!important;background-position:right top!important}
  /* Wall returns above/below the doorway close the structural slit while the
     central opening and diagonal stair lane remain clear. */
  .lib-stair-gap-jamb{
    position:absolute!important;z-index:2!important;width:24px!important;
    background-image:url('/assets/images/room2/full-map/walls-master/wall-v-narrow.png')!important;
    background-repeat:repeat-y!important;background-size:60px auto!important;background-position:center top!important;
    image-rendering:pixelated!important;filter:brightness(.80) saturate(.83)!important
  }
  .lib-stair-gap-jamb.jamb-upper{left:28px!important;top:-112px!important;height:108px!important}
  .lib-stair-gap-jamb.jamb-lower{left:28px!important;top:67px!important;height:116px!important}

  /* Openings render above wall shells but beneath player/interactive layers. */
  .conn-hall-bedroom,.conn-bedroom-parlor,.conn-parlor-generator,.conn-hall-lower,
  .conn-generator-right,.conn-lower-right,.conn-library-storage{z-index:7!important}

  /* Keep floor details and furniture above the wall face where perspective
     requires it; the player remains in the game's own controller layer. */
  .r2fm-prop.wall-prop{z-index:8!important}
  .r2fm-prop.floor-prop{z-index:10!important}
  .r2fm-prop.decal{z-index:4!important}
}


/* ==========================================================
   ROOM 2 — DOORWAY / LOWER RED-CARPET CLEANUP PASS
   2026-09-23. Desktop only; mobile stays on its own layout.

   Goals:
   - clear obsolete remap props from the Hall -> lower hallway throat;
   - make the throat a narrow, readable passage instead of stacked blocks;
   - use the supplied HQ red carpet as a continuous L-shaped route;
   - keep the actual exit interaction while letting the architectural door art
     be the only visible door at the end of the hallway.
   ========================================================== */
@media (min-width:1051px) and (pointer:fine){
  /* The former entrance-door proxy and barricade chair belong to the old room
     composition.  Keeping them rendered here creates the brown block + blank
     framed rectangle shown in the supplied screenshot.  Their JS nodes remain
     in the DOM for state bookkeeping, but the rebuilt map owns the visuals. */
  .r2m-mansion-map #room2EntranceDoor,
  .r2m-mansion-map #room2BarricadeChair{
    display:none!important;
  }

  /* Hall -> lower hallway: one clean stone passage with two thin structural
     jambs.  No extra panel stack and no wood bridge. */
  .conn-hall-lower{
    left:1148px!important;
    top:1344px!important;
    width:124px!important;
    height:298px!important;
    overflow:visible!important;
    z-index:7!important;
    background:url('/assets/images/room2/full-map/parlor/floor-c.png') center/124px 98px repeat-y!important;
    box-shadow:inset 0 0 14px rgba(0,0,0,.26)!important;
  }
  .conn-hall-lower::before,
  .conn-hall-lower::after{
    top:0!important;
    bottom:0!important;
    width:12px!important;
    height:auto!important;
    background-image:url('/assets/images/room2/full-map/walls-master/wall-v-narrow.png')!important;
    background-repeat:repeat-y!important;
    background-size:34px auto!important;
    filter:brightness(.82) saturate(.84)!important;
    opacity:.98!important;
  }
  .conn-hall-lower::before{left:0!important;background-position:left top!important}
  .conn-hall-lower::after{right:0!important;background-position:right top!important}

  /* Vertical leg + corner are cropped from the user's HQ L-carpet.  It remains
     below the wall jambs, then overlaps the horizontal runner by a few pixels so
     there is never a visible seam at the turn. */
  .hall-lower-carpet-vertical{
    position:absolute!important;
    left:50%!important;
    top:2px!important;
    width:128px!important;
    height:313px!important;
    transform:translateX(-50%)!important;
    z-index:1!important;
    object-fit:contain!important;
    image-rendering:pixelated!important;
    image-rendering:crisp-edges!important;
    filter:brightness(.86) saturate(.90) drop-shadow(0 3px 3px rgba(0,0,0,.24))!important;
    pointer-events:none!important;
  }

  /* Replace the stretched short runner with the supplied high-detail carpet.
     This prepared asset is already resized with nearest-neighbour sampling, so
     CSS does not have to distort the pixel pattern. */
  .corridor-runner{
    left:185px!important;
    top:168px!important;
    width:1290px!important;
    height:150px!important;
    object-fit:contain!important;
    z-index:3!important;
    image-rendering:pixelated!important;
    image-rendering:crisp-edges!important;
    filter:brightness(.86) saturate(.90) drop-shadow(0 3px 4px rgba(0,0,0,.24))!important;
  }

  /* The old CSS double-door button was sitting on top of the architectural
     single door at the end of the right corridor.  Keep the button as an
     invisible interaction target; render only the map's door asset. */
  #room2ExitDoor{
    left:2464px!important;
    top:1710px!important;
    width:138px!important;
    height:174px!important;
    opacity:.001!important;
    background:transparent!important;
    border:0!important;
    box-shadow:none!important;
    color:transparent!important;
  }
  #room2ExitDoor>span,
  #room2ExitDoor>.r2-door-leaf,
  #room2ExitDoor>.r2-door-handles{
    display:none!important;
  }
  .right-door{
    left:43px!important;
    bottom:28px!important;
    width:138px!important;
    height:196px!important;
    object-fit:contain!important;
    filter:brightness(.84) saturate(.86) drop-shadow(0 7px 6px rgba(0,0,0,.45))!important;
  }
}

/* ========================================================================== 
   ROOM 2 FULL-MAP PARITY PASS — 2026-09-23
   Reference priority: supplied full-map target > legacy layout.
   This final override deliberately concentrates on the seven visible mansion
   zones: thicker architecture, darker material separation, denser staging and
   a corridor that reads as a finished enclosed space rather than a floor strip.
   Desktop only; mobile composition remains untouched.
   ========================================================================== */
@media (min-width:1051px) and (pointer:fine){
  /* ---------- Global architectural weight / common material treatment ---------- */
  .r2fm-room{
    isolation:isolate;
  }
  .r2fm-room>.r2fm-floor{
    filter:brightness(.83) saturate(.78) contrast(1.04);
    box-shadow:inset 0 0 0 2px rgba(8,8,11,.64),inset 0 0 34px rgba(0,0,0,.43)!important;
  }
  .r2fw-edge{
    filter:brightness(.72) saturate(.78) contrast(1.08) drop-shadow(0 5px 5px rgba(0,0,0,.52))!important;
  }
  .r2fw-special{
    filter:brightness(.77) saturate(.81) contrast(1.05) drop-shadow(0 7px 6px rgba(0,0,0,.49))!important;
  }

  /* ---------- B — MAIN HALL: strongest parity rebuild ---------- */
  .zone-hall>.r2fm-floor{
    inset:126px 42px 38px!important;
  }
  .r2fw-shell-hall .r2fw-edge.top{height:126px!important;background-size:auto 160px!important}
  .r2fw-shell-hall .r2fw-edge.bottom{height:38px!important;background-size:auto 160px!important}
  .r2fw-shell-hall .r2fw-edge.left,.r2fw-shell-hall .r2fw-edge.right{
    top:92px!important;bottom:31px!important;width:42px!important;background-size:68px auto!important;
  }
  .r2fw-shell-hall::before,.r2fw-shell-hall::after{width:106px!important;height:136px!important;background-size:auto 174px!important}
  .r2fw-hall-arch{top:3px!important;width:310px!important;height:210px!important}
  .hall-floor{
    background:
      radial-gradient(circle at 52% 42%,rgba(255,255,255,.035),transparent 38%),
      linear-gradient(45deg,#282d35 25%,transparent 25% 75%,#282d35 75%) 0 0/82px 82px,
      linear-gradient(45deg,#10141a 25%,#3c424b 25% 75%,#10141a 75%) 41px 41px/82px 82px,
      #141820!important;
    filter:brightness(.77) saturate(.62) contrast(1.08)!important;
  }
  .zone-hall::before{
    box-shadow:inset 0 0 0 4px #07080b,inset 0 0 0 9px rgba(71,79,98,.82),inset 0 0 48px rgba(0,0,0,.58)!important;
  }
  .zone-hall .hall-portrait{top:34px!important;width:70px!important;height:90px!important;filter:brightness(.77) saturate(.78)}
  .zone-hall .hall-portrait.p-left{left:100px!important}.zone-hall .hall-portrait.p-right{right:100px!important}
  .zone-hall .hall-plant{top:151px!important;width:78px!important;height:145px!important;filter:brightness(.76) saturate(.78)}
  .zone-hall .hall-plant.plant-left{left:122px!important}.zone-hall .hall-plant.plant-right{right:122px!important}
  .hall-runner{
    left:270px!important;top:178px!important;width:180px!important;height:1040px!important;
    object-fit:fill!important;filter:brightness(.72) saturate(.86) contrast(1.06) drop-shadow(0 5px 5px rgba(0,0,0,.32))!important;
  }
  .hall-debris{left:66px!important;top:286px!important;width:142px!important;filter:brightness(.72) saturate(.72)!important}
  .hall-papers{right:54px!important;top:323px!important;width:158px!important;opacity:.88!important;filter:brightness(.72) saturate(.82)!important}
  .hall-papers-2{right:107px!important;top:420px!important;width:62px!important;transform:rotate(9deg)!important;filter:brightness(.78)!important}
  .hall-statue{left:311px!important;top:388px!important;width:98px!important;height:234px!important;filter:brightness(.77) contrast(1.05) drop-shadow(0 7px 5px rgba(0,0,0,.46))!important}
  .r2fm-stair-bay{left:-8px!important;top:452px!important;width:218px!important;height:310px!important}
  .hall-stair{left:2px!important;top:7px!important;width:202px!important;height:auto!important;filter:brightness(.77) saturate(.78) drop-shadow(0 7px 5px rgba(0,0,0,.48))!important}
  .hall-table{left:241px!important;top:767px!important;width:238px!important;height:145px!important;filter:brightness(.76) saturate(.80) drop-shadow(0 6px 5px rgba(0,0,0,.42))!important}
  .hall-bust{top:917px!important;width:76px!important;height:176px!important;filter:brightness(.72) contrast(1.07) drop-shadow(0 6px 4px rgba(0,0,0,.44))!important}
  .hall-bust.bust-left{left:91px!important}.hall-bust.bust-right{right:91px!important}
  .hall-chair{top:1050px!important;filter:brightness(.72) saturate(.78)!important}
  .hall-chair.chair-left{left:180px!important;width:82px!important;height:104px!important;transform:rotate(-7deg)!important}
  .hall-chair.chair-right{right:174px!important;width:82px!important;height:104px!important;transform:rotate(7deg)!important}
  .hall-cabinet{right:22px!important;top:785px!important;width:86px!important;height:150px!important;filter:brightness(.75) saturate(.80)!important}
  .hall-candelabra{top:1081px!important;width:58px!important;height:118px!important;filter:brightness(.82) saturate(.86)!important}
  .hall-candelabra.cand-left{left:26px!important}.hall-candelabra.cand-right{right:26px!important}
  .hall-extra-sconce{top:642px!important;width:39px!important;height:91px!important;z-index:10!important;filter:brightness(.88) saturate(.92)!important}
  .hall-extra-sconce.hes-left{left:47px!important}.hall-extra-sconce.hes-right{right:47px!important}
  .hall-side-table.hst-left{left:44px!important;top:790px!important;width:74px!important;height:112px!important;filter:brightness(.74) saturate(.78)!important}
  .hall-book-extra.hb-left{left:188px!important;top:1030px!important;width:47px!important;transform:rotate(-16deg)!important;filter:brightness(.76)!important}
  .hall-paper-extra{width:48px!important;filter:brightness(.72)!important;opacity:.92!important}
  .hall-paper-extra.hp-left{left:222px!important;top:706px!important;transform:rotate(12deg)!important}
  .hall-paper-extra.hp-right{right:154px!important;top:698px!important;transform:rotate(-11deg)!important}

  /* ---------- C — BEDROOM: smaller, dirtier, more enclosed ---------- */
  .zone-bedroom>.r2fm-floor{inset:100px 35px 31px!important}
  .r2fw-shell-bedroom .r2fw-edge.top{height:100px!important;background-size:auto 154px!important}
  .r2fw-shell-bedroom .r2fw-edge.bottom{height:31px!important}
  .r2fw-shell-bedroom .r2fw-edge.left,.r2fw-shell-bedroom .r2fw-edge.right{top:73px!important;bottom:25px!important;width:35px!important;background-size:64px auto!important}
  .r2fw-shell-bedroom::before,.r2fw-shell-bedroom::after{width:96px!important;height:121px!important;background-size:auto 162px!important}
  .bedroom-floor{
    background-image:url('/assets/images/room2/full-map/parlor/floor-a.png')!important;
    background-size:118px 98px!important;background-color:#20232a!important;filter:brightness(.72) saturate(.72) contrast(1.07)!important;
  }
  .bed-window{left:292px!important;top:24px!important;width:151px!important;height:139px!important;filter:brightness(.72) saturate(.80)!important}
  .bed-bed{right:90px!important;top:129px!important;width:196px!important;height:231px!important;filter:brightness(.76) saturate(.78)!important}
  .bed-wardrobe{right:12px!important;top:42px!important;width:126px!important;height:203px!important;filter:brightness(.70) saturate(.74)!important}
  .bed-covered{left:74px!important;top:148px!important;width:143px!important;height:164px!important}
  .bed-drawer{left:238px!important;top:104px!important;width:102px!important;height:117px!important}
  .bed-rocker{left:249px!important;top:270px!important;width:105px!important;height:104px!important;transform:rotate(-8deg)!important}
  .bed-rug{left:186px!important;top:248px!important;width:126px!important;height:97px!important;filter:brightness(.67) saturate(.75)!important}
  .bed-chair{right:55px!important;top:327px!important;width:95px!important;height:110px!important;transform:rotate(10deg)!important}
  .drawing{top:57px!important;width:55px!important;height:63px!important;filter:brightness(.66) saturate(.65)!important}
  .drawing.d1{left:465px!important}.drawing.d2{left:515px!important}.drawing.d3{left:560px!important}
  .bedroom-blood{left:335px!important;top:342px!important;width:178px!important;filter:brightness(.65) saturate(1.12)!important}
  .bedroom-blood-small.bbs-a{left:425px!important;top:290px!important;width:92px!important;opacity:.9!important;transform:rotate(8deg)!important}
  .bedroom-paper.bp-a{left:272px!important;top:388px!important;width:56px!important;transform:rotate(-9deg)!important;filter:brightness(.7)!important}
  .bedroom-paper.bp-b{left:492px!important;top:376px!important;width:74px!important;transform:rotate(7deg)!important;filter:brightness(.7)!important}
  .bedroom-handprint{right:32px!important;top:118px!important;width:53px!important;opacity:.72!important;filter:brightness(.65) saturate(1.08)!important}

  /* ---------- D — RIGHT MID / MIRROR ANTECHAMBER ---------- */
  .zone-parlor>.r2fm-floor{inset:84px 33px 31px!important}
  .r2fw-shell-parlor .r2fw-edge.top{height:84px!important;background-size:auto 150px!important}
  .r2fw-shell-parlor .r2fw-edge.bottom{height:31px!important}
  .r2fw-shell-parlor .r2fw-edge.left,.r2fw-shell-parlor .r2fw-edge.right{top:61px!important;bottom:25px!important;width:33px!important;background-size:64px auto!important}
  .r2fw-shell-parlor::before,.r2fw-shell-parlor::after{width:92px!important;height:118px!important;background-size:auto 158px!important}
  .parlor-floor{background-image:url('/assets/images/room2/full-map/parlor/floor-b.png')!important;background-size:110px 92px!important;filter:brightness(.73) saturate(.66) contrast(1.06)!important}
  .parlor-mirror{left:29px!important;top:54px!important;width:104px!important;height:200px!important}
  .parlor-plant{left:151px!important;top:60px!important;width:78px!important;height:114px!important}
  .parlor-candle{left:244px!important;top:45px!important;width:39px!important;height:96px!important}
  .parlor-dresser{right:25px!important;top:211px!important;width:150px!important;height:116px!important}
  .parlor-vase{right:63px!important;top:167px!important;width:58px!important;height:84px!important}
  .parlor-chair{left:54px!important;top:280px!important;width:86px!important;height:117px!important;transform:rotate(5deg)!important}
  .parlor-rug{left:121px!important;top:270px!important;width:193px!important;height:119px!important;filter:brightness(.67) saturate(.76)!important}
  .parlor-papers{left:238px!important;top:346px!important;width:78px!important;filter:brightness(.72)!important}
  .parlor-frame{right:24px!important;top:58px!important;width:60px!important;height:76px!important;filter:brightness(.68)!important}
  .parlor-web{right:3px!important;top:2px!important;width:103px!important;height:78px!important;opacity:.74!important;filter:brightness(.72)!important}
  .parlor-blood{left:165px!important;top:325px!important;width:104px!important;opacity:.78!important;filter:brightness(.65) saturate(1.05)!important}
  .parlor-book{left:281px!important;top:208px!important;width:48px!important;transform:rotate(11deg)!important;filter:brightness(.75)!important}

  /* ---------- E — MACHINE ROOM: dense industrial staging ---------- */
  .zone-generator>.r2fm-floor{inset:98px 35px 35px!important}
  .r2fw-shell-generator .r2fw-edge.top{height:98px!important;background-size:auto 106px!important}
  .r2fw-shell-generator .r2fw-edge.bottom{height:35px!important;background-size:auto 106px!important}
  .r2fw-shell-generator .r2fw-edge.left,.r2fw-shell-generator .r2fw-edge.right{top:72px!important;bottom:27px!important;width:35px!important;background-size:35px auto!important}
  .generator-floor{background-image:url('/assets/images/room2/full-map/generator/floor-a.png')!important;background-size:112px 169px!important;filter:brightness(.67) saturate(.68) contrast(1.10)!important}
  .gen-machine{left:31px!important;top:58px!important;width:258px!important;height:236px!important}
  .gen-pipes.p1{left:294px!important;top:29px!important;width:98px!important;height:246px!important}
  .gen-pipes.p2{left:106px!important;bottom:58px!important;width:240px!important;height:88px!important}
  .gen-hazard{right:24px!important;top:62px!important;width:139px!important;height:171px!important}
  .gen-green{left:301px!important;top:214px!important;width:91px!important;height:158px!important;filter:brightness(.88) saturate(.92) drop-shadow(0 0 12px rgba(129,255,143,.25))!important}
  .gen-toolbox{right:105px!important;bottom:35px!important;width:147px!important;height:115px!important}
  .gen-cylinder{right:24px!important;bottom:45px!important;width:86px!important;height:127px!important}
  .gen-pump{left:48px!important;bottom:48px!important;width:75px!important;height:108px!important}
  .gen-fan{right:31px!important;top:261px!important;width:108px!important;height:128px!important}
  .gen-fuse{left:410px!important;top:220px!important;width:76px!important;height:105px!important;filter:brightness(.72)!important}
  .gen-meter{left:312px!important;top:62px!important;width:82px!important;height:96px!important;filter:brightness(.72)!important}
  .gen-vent{right:39px!important;top:398px!important;width:90px!important;height:82px!important;filter:brightness(.66)!important}
  .gen-pipe-extra{left:397px!important;top:330px!important;width:113px!important;height:75px!important;filter:brightness(.66)!important}
  .gen-hazard-floor{left:200px!important;bottom:31px!important;width:155px!important;height:50px!important;opacity:.88!important;filter:brightness(.72) saturate(.86)!important}

  /* ---------- F — STORAGE: intentionally cramped / clutter-heavy ---------- */
  .zone-storage>.r2fm-floor{inset:88px 36px 35px!important}
  .r2fw-shell-storage .r2fw-edge.top{height:88px!important;background-size:auto 154px!important}
  .r2fw-shell-storage .r2fw-edge.bottom{height:35px!important}
  .r2fw-shell-storage .r2fw-edge.left,.r2fw-shell-storage .r2fw-edge.right{top:64px!important;bottom:28px!important;width:36px!important;background-size:65px auto!important}
  .r2fw-shell-storage::before,.r2fw-shell-storage::after{width:96px!important;height:120px!important;background-size:auto 160px!important}
  .storage-floor{background-size:126px 153px!important;filter:brightness(.69) saturate(.72) contrast(1.05)!important}
  .storage-shelf{left:37px!important;top:77px!important;width:166px!important;height:278px!important}
  .storage-ladder{left:205px!important;top:70px!important;width:88px!important;height:148px!important}
  .storage-planks{left:309px!important;top:79px!important;width:82px!important;height:171px!important}
  .storage-mirror{right:181px!important;top:75px!important;width:91px!important;height:151px!important}
  .storage-fallen-frame{right:85px!important;top:82px!important;width:91px!important;height:121px!important}
  .storage-covered.a{right:206px!important;top:175px!important;width:158px!important;height:180px!important}
  .storage-covered.b{right:31px!important;top:212px!important;width:185px!important;height:219px!important}
  .storage-stool{left:206px!important;top:231px!important;width:80px!important;height:102px!important}
  .storage-barrel{left:323px!important;top:283px!important;width:88px!important;height:116px!important}
  .storage-crate-table{left:303px!important;top:382px!important;width:176px!important;height:132px!important}
  .storage-crate.c1{left:31px!important;top:374px!important;width:171px!important;height:166px!important}
  .storage-crate.c2{left:207px!important;top:356px!important;width:96px!important;height:149px!important}
  .storage-crate.c3{left:115px!important;top:515px!important;width:116px!important;height:98px!important}
  .storage-crate.c4{left:249px!important;top:524px!important;width:84px!important;height:77px!important}
  .storage-wheel{left:37px!important;bottom:45px!important;width:132px!important;height:132px!important}
  .storage-bookpapers{left:204px!important;bottom:45px!important;width:135px!important;height:89px!important}
  .storage-papers{left:352px!important;bottom:88px!important;width:96px!important}.storage-papers-b{left:454px!important;bottom:55px!important;width:91px!important}
  .storage-blood{left:280px!important;bottom:37px!important;width:187px!important;opacity:.84!important;filter:brightness(.61) saturate(1.08)!important}
  .storage-lantern{right:26px!important;top:71px!important;width:55px!important;height:109px!important}
  .storage-plant-crate{right:24px!important;bottom:36px!important;width:112px!important;height:112px!important;filter:brightness(.70) saturate(.78)!important}
  .storage-bin-tools{right:137px!important;bottom:38px!important;width:88px!important;height:112px!important;filter:brightness(.68)!important}
  .storage-rock-bin{left:457px!important;top:474px!important;width:76px!important;height:89px!important;filter:brightness(.68)!important}
  .storage-bucket-extra{left:533px!important;top:408px!important;width:74px!important;height:91px!important;filter:brightness(.66)!important}
  .storage-web-extra{left:7px!important;top:8px!important;width:115px!important;height:84px!important;opacity:.72!important;filter:brightness(.68)!important}
  .storage-letter-extra{left:493px!important;bottom:130px!important;width:52px!important;transform:rotate(10deg)!important;filter:brightness(.72)!important}

  /* ---------- G — LONG BOTTOM CORRIDOR: enclosed mansion hallway ---------- */
  .zone-lower-corridor>.r2fm-floor{inset:120px 30px 31px!important}
  .r2fw-shell-lower .r2fw-edge.top{height:120px!important;background-size:auto 160px!important}
  .r2fw-shell-lower .r2fw-edge.bottom{height:31px!important;background-size:auto 160px!important}
  .r2fw-shell-lower .r2fw-edge.left,.r2fw-shell-lower .r2fw-edge.right{top:88px!important;bottom:25px!important;width:30px!important;background-size:65px auto!important}
  .r2fw-shell-lower::before,.r2fw-shell-lower::after{width:96px!important;height:127px!important;background-size:auto 166px!important}
  .corridor-floor{
    background-image:url('/assets/images/room2/full-map/arch/stone-a.png')!important;
    background-size:94px 94px!important;background-color:#1e2026!important;
    filter:brightness(.66) saturate(.55) contrast(1.12)!important;
  }
  .corridor-runner{
    left:126px!important;top:174px!important;width:1320px!important;height:122px!important;
    object-fit:fill!important;filter:brightness(.66) saturate(.86) contrast(1.06) drop-shadow(0 4px 4px rgba(0,0,0,.34))!important;
  }
  .corridor-portrait{top:23px!important;height:76px!important;filter:brightness(.68) saturate(.72)!important}
  .corridor-portrait.cp1{left:142px!important}.corridor-portrait.cp2{left:508px!important;height:74px!important}.corridor-portrait.cp3{left:895px!important}.corridor-portrait.cp4{left:1274px!important}.corridor-portrait.cp5{left:705px!important;height:73px!important;width:58px!important}
  .corridor-candle{top:53px!important;width:38px!important;height:83px!important;filter:brightness(.88) saturate(.90)!important}
  .corridor-candle.cc1{left:337px!important}.corridor-candle.cc2{left:1138px!important}.corridor-candle.cc3{left:794px!important}
  .corridor-table{left:1202px!important;top:123px!important;width:166px!important;height:98px!important;filter:brightness(.72) saturate(.76)!important}
  .corridor-table-left{left:650px!important;top:120px!important;width:148px!important;height:91px!important}
  .corridor-crack{left:848px!important;top:14px!important;width:100px!important;height:109px!important;opacity:.72!important;filter:brightness(.59)!important}
  .corridor-blood{left:842px!important;top:189px!important;width:164px!important;filter:brightness(.55) saturate(1.08)!important}
  .corridor-blood-2{left:520px!important;top:135px!important;width:78px!important;filter:brightness(.56) saturate(1.08)!important}
  .corridor-blood-symbol{left:425px!important;top:20px!important;width:68px!important;height:86px!important;opacity:.82!important;filter:brightness(.55) saturate(1.12)!important}
  .corridor-paper-extra{left:1002px!important;top:205px!important;width:52px!important;transform:rotate(-10deg)!important;filter:brightness(.69)!important}

  /* Hall -> lower corridor transition reads as a real carpeted doorway. */
  .conn-hall-lower{left:1130px!important;top:1354px!important;width:166px!important;height:136px!important;background-color:#171316!important}
  .hall-lower-carpet-vertical{width:112px!important;height:327px!important;top:-4px!important;filter:brightness(.70) saturate(.85) drop-shadow(0 3px 4px rgba(0,0,0,.30))!important}

  /* ---------- RIGHT END DOOR ZONE ---------- */
  .zone-right-corridor>.r2fm-floor{inset:88px 30px 31px!important}
  .r2fw-shell-right .r2fw-edge.top{height:88px!important;background-size:auto 152px!important}
  .r2fw-shell-right .r2fw-edge.bottom{height:31px!important}
  .r2fw-shell-right .r2fw-edge.left,.r2fw-shell-right .r2fw-edge.right{top:64px!important;bottom:25px!important;width:30px!important;background-size:64px auto!important}
  .r2fw-shell-right::before,.r2fw-shell-right::after{width:82px!important;height:112px!important;background-size:auto 154px!important}
  .right-corridor-floor{background-image:url('/assets/images/room2/full-map/arch/stone-b.png')!important;background-size:92px 92px!important;filter:brightness(.64) saturate(.56) contrast(1.10)!important}
  .right-door{left:43px!important;bottom:25px!important;width:142px!important;height:202px!important;filter:brightness(.69) saturate(.72) drop-shadow(0 7px 6px rgba(0,0,0,.49))!important}
  .right-candle{left:91px!important;width:41px!important;height:90px!important;filter:brightness(.90) saturate(.92)!important}.right-candle.rc1{top:92px!important}.right-candle.rc2{top:326px!important}
  .right-blood{left:70px!important;top:438px!important;width:76px!important;height:134px!important;filter:brightness(.56) saturate(1.10)!important}
  .right-blood-pool{left:49px!important;bottom:198px!important;width:126px!important;opacity:.82!important;filter:brightness(.54) saturate(1.10)!important}
  .right-portrait{left:74px!important;top:196px!important;width:77px!important;height:95px!important;filter:brightness(.64) saturate(.68)!important}

  /* ---------- Connectors / black-void cleanup ---------- */
  .conn-hall-bedroom,.conn-bedroom-parlor,.conn-parlor-generator,.conn-generator-right,.conn-lower-right{
    filter:brightness(.78) saturate(.72) contrast(1.04);
    box-shadow:inset 0 0 0 2px rgba(7,7,10,.62),inset 0 0 20px rgba(0,0,0,.45),0 0 0 3px #0c0d12,0 0 0 6px rgba(72,78,94,.68)!important;
  }
  .r2fw-wall-mass{filter:brightness(.72) saturate(.75) contrast(1.05)!important}
}

/* ==========================================================
   ROOM 2 — FULL MAP PARITY REBUILD V2 / STRUCTURAL PASS
   2026-09-24. Desktop only.
   This pass deliberately changes macro geometry so the zoomed-out mansion
   reads closer to the supplied reference instead of the previous modules.
   ========================================================== */
@media (min-width:1051px) and (pointer:fine){
  /* ---------- MACRO SILHOUETTE ---------- */
  .zone-library{
    left:80px!important;top:40px!important;width:740px!important;height:780px!important;
    clip-path:polygon(14% 0,86% 0,86% 7%,96% 7%,96% 13%,100% 13%,100% 88%,94% 88%,94% 95%,58% 95%,58% 100%,42% 100%,42% 95%,6% 95%,6% 88%,0 88%,0 13%,5% 13%,5% 7%,14% 7%)!important;
  }
  .zone-hall{
    left:880px!important;top:40px!important;width:700px!important;height:1370px!important;
    clip-path:polygon(4% 0,96% 0,96% 4%,100% 4%,100% 91%,96% 91%,96% 97%,91% 97%,91% 100%,9% 100%,9% 97%,4% 97%,4% 93%,0 93%,0 6%,4% 6%)!important;
  }
  .zone-bedroom{
    left:1780px!important;top:40px!important;width:640px!important;height:540px!important;
    clip-path:polygon(8% 0,92% 0,92% 6%,100% 6%,100% 90%,94% 90%,94% 100%,2% 100%,2% 92%,0 92%,0 15%,7% 15%,7% 7%,8% 7%)!important;
  }
  .zone-parlor{
    left:1680px!important;top:600px!important;width:430px!important;height:470px!important;
    clip-path:polygon(8% 0,100% 0,100% 88%,93% 88%,93% 100%,0 100%,0 14%,8% 14%)!important;
  }
  .zone-generator{
    left:2110px!important;top:610px!important;width:610px!important;height:650px!important;
    clip-path:polygon(0 8%,7% 8%,7% 0,100% 0,100% 91%,94% 91%,94% 100%,15% 100%,15% 96%,0 96%)!important;
  }
  .zone-storage{
    left:60px!important;top:920px!important;width:750px!important;height:700px!important;
    clip-path:polygon(7% 0,43% 0,43% 5%,58% 5%,58% 0,100% 0,100% 89%,95% 89%,95% 100%,0 100%,0 9%,7% 9%)!important;
  }
  .zone-lower-corridor{
    left:1140px!important;top:1400px!important;width:1500px!important;height:410px!important;
    clip-path:polygon(2% 0,96% 0,96% 6%,100% 6%,100% 92%,97% 92%,97% 100%,2% 100%,2% 94%,0 94%,0 8%,2% 8%)!important;
  }
  .zone-right-corridor{
    left:2480px!important;top:1380px!important;width:250px!important;height:470px!important;
    clip-path:polygon(10% 0,90% 0,90% 5%,100% 5%,100% 92%,91% 92%,91% 100%,9% 100%,9% 94%,0 94%,0 7%,10% 7%)!important;
  }

  /* ---------- LIBRARY: larger footprint and target-like spacing ---------- */
  .zone-library .r2fm-floor{inset:42px 36px 39px!important;filter:brightness(.80) saturate(.78)!important}
  .lib-wall-top-left{left:0!important;top:0!important}.lib-wall-top-center{left:193px!important;top:0!important}.lib-wall-top-right{left:auto!important;right:0!important;top:0!important}
  .lib-wall-side-left.side-a,.lib-wall-side-right.side-a{top:198px!important}.lib-wall-side-left.side-b{top:455px!important}.lib-wall-side-right.side-b{top:540px!important}
  .lib-wall-bottom{top:684px!important}.lib-wall-bottom-left{left:38px!important}.lib-wall-bottom-right{right:38px!important}
  .lib-wall-bottom-trim{top:684px!important}.lib-wall-bottom-trim.trim-left{left:254px!important}.lib-wall-bottom-trim.trim-right{right:254px!important}
  .lib-shelf-a{left:54px!important;top:112px!important;width:150px!important;height:218px!important}
  .lib-shelf-b{left:286px!important;top:166px!important;width:168px!important;height:242px!important}
  .lib-shelf-c{left:552px!important;top:110px!important;width:150px!important;height:220px!important}
  .lib-clock{left:68px!important;top:255px!important}.lib-portrait{left:326px!important;top:54px!important;width:92px!important;height:116px!important}
  .lib-candle{left:234px!important;top:112px!important}.lib-ladder{left:214px!important;top:292px!important;width:66px!important;height:110px!important}
  .lib-rug{left:190px!important;top:425px!important;width:365px!important;height:214px!important}.lib-desk{left:267px!important;top:416px!important;width:220px!important;height:188px!important}
  .lib-chair{left:346px!important;top:532px!important}.lib-globe{left:622px!important;top:294px!important;width:76px!important;height:129px!important}
  .lib-keydrawer{left:48px!important;top:548px!important}.lib-plant{left:49px!important;top:648px!important}
  .lib-papers-a{left:566px!important;top:563px!important}.lib-papers-c{left:492px!important;top:620px!important}.lib-bookpile{left:275px!important;top:631px!important}.lib-book-small{left:206px!important;top:607px!important}

  /* ---------- MAIN HALL: stronger axis, stair integrated into west wall ---------- */
  .zone-hall>.r2fm-floor{inset:126px 32px 38px!important;box-shadow:inset 0 0 35px rgba(0,0,0,.34)!important}
  .hall-floor{
    background:
      linear-gradient(45deg,#282d35 25%,transparent 25% 75%,#282d35 75%) 0 0/38px 38px,
      linear-gradient(45deg,#12171d 25%,#3a4049 25% 75%,#12171d 75%) 19px 19px/38px 38px,#171b20!important;
    filter:brightness(.80) saturate(.68) contrast(1.05)!important;
  }
  .r2fw-shell-hall .r2fw-edge.top{height:126px!important;background-size:auto 170px!important}.r2fw-shell-hall .r2fw-edge.bottom{height:38px!important}
  .r2fw-shell-hall .r2fw-edge.left,.r2fw-shell-hall .r2fw-edge.right{top:92px!important;bottom:30px!important;width:32px!important}
  .r2fw-hall-arch{width:314px!important;height:210px!important;top:2px!important}
  .zone-hall .hall-portrait{top:37px!important;width:66px!important;height:86px!important}.zone-hall .hall-portrait.p-left{left:92px!important}.zone-hall .hall-portrait.p-right{right:92px!important}
  .zone-hall .hall-plant{top:158px!important;width:80px!important;height:148px!important}.zone-hall .hall-plant.plant-left{left:116px!important}.zone-hall .hall-plant.plant-right{right:116px!important}
  .hall-runner{left:279px!important;top:195px!important;width:142px!important;height:1050px!important;filter:brightness(.72) saturate(.82) contrast(1.04)!important}
  .hall-statue{left:300px!important;top:385px!important;width:100px!important;height:244px!important}
  .hall-table{left:237px!important;top:815px!important;width:226px!important;height:136px!important}
  .hall-bust{top:965px!important;width:70px!important;height:150px!important}.hall-bust.bust-left{left:102px!important}.hall-bust.bust-right{right:102px!important}
  .hall-chair{top:1105px!important;width:76px!important;height:102px!important}.hall-chair.chair-left{left:122px!important;transform:rotate(-16deg)!important}.hall-chair.chair-right{right:118px!important;transform:rotate(13deg)!important}
  .hall-candelabra{top:1120px!important;width:58px!important;height:118px!important}.hall-candelabra.cand-left{left:18px!important}.hall-candelabra.cand-right{right:18px!important}
  .hall-cabinet{right:15px!important;top:758px!important;width:82px!important;height:145px!important}.hall-side-table.hst-left{left:20px!important;top:770px!important;width:82px!important;height:136px!important}
  .hall-debris{left:64px!important;top:275px!important;width:126px!important}.hall-papers{right:58px!important;top:320px!important;width:138px!important}.hall-papers-2{right:122px!important;top:282px!important}
  .hall-book-extra.hb-left{left:126px!important;top:458px!important}.hall-paper-extra.hp-left{left:65px!important;top:520px!important}.hall-paper-extra.hp-right{right:72px!important;top:540px!important}
  .r2fm-stair-bay{left:-112px!important;top:470px!important;width:248px!important;height:330px!important;overflow:visible!important}
  .hall-stair{left:0!important;top:8px!important;width:232px!important;height:auto!important;filter:brightness(.78) saturate(.80) drop-shadow(0 8px 6px rgba(0,0,0,.50))!important}

  /* ---------- BEDROOM: wider visual read, focal bed on right ---------- */
  .zone-bedroom>.r2fm-floor{inset:92px 31px 30px!important}.r2fw-shell-bedroom .r2fw-edge.top{height:92px!important}.r2fw-shell-bedroom .r2fw-edge.left,.r2fw-shell-bedroom .r2fw-edge.right{top:68px!important;width:31px!important}
  .bed-window{left:235px!important;top:10px!important;width:205px!important;height:160px!important}.bed-bed{left:335px!important;top:136px!important;width:198px!important;height:255px!important}.bed-wardrobe{right:18px!important;top:52px!important;width:140px!important;height:220px!important}
  .bed-drawer{left:62px!important;top:82px!important}.bed-covered{left:56px!important;top:232px!important}.bed-rug{left:200px!important;top:278px!important;width:150px!important;height:98px!important}.bed-rocker{left:213px!important;top:312px!important}.bed-chair{left:468px!important;top:380px!important}
  .bedroom-blood{left:310px!important;top:355px!important;width:188px!important}.bbs-a{left:350px!important;top:355px!important}.bp-a{left:225px!important;top:390px!important}.bp-b{left:132px!important;top:320px!important}

  /* ---------- RIGHT-MID ANTECHAMBER: compact intentional room ---------- */
  .zone-parlor>.r2fm-floor{inset:78px 30px 30px!important}.r2fw-shell-parlor .r2fw-edge.top{height:78px!important}.r2fw-shell-parlor .r2fw-edge.left,.r2fw-shell-parlor .r2fw-edge.right{top:58px!important;width:30px!important}
  .parlor-mirror{left:28px!important;top:42px!important;width:116px!important;height:216px!important}.parlor-chair{left:42px!important;top:292px!important;width:90px!important;height:124px!important}.parlor-rug{left:103px!important;top:258px!important;width:205px!important;height:127px!important}
  .parlor-dresser{right:22px!important;top:228px!important;width:152px!important;height:114px!important}.parlor-vase{right:60px!important;top:190px!important}.parlor-plant{left:158px!important;top:52px!important}.parlor-candle{left:190px!important;top:31px!important}

  /* ---------- MACHINE ROOM: larger and denser industrial block ---------- */
  .zone-generator>.r2fm-floor{inset:94px 32px 34px!important}.r2fw-shell-generator .r2fw-edge.top{height:94px!important}.r2fw-shell-generator .r2fw-edge.bottom{height:34px!important}.r2fw-shell-generator .r2fw-edge.left,.r2fw-shell-generator .r2fw-edge.right{top:70px!important;bottom:27px!important;width:32px!important}
  .gen-machine{left:30px!important;top:60px!important;width:270px!important;height:248px!important}.gen-pipes.p1{left:310px!important;top:33px!important;width:106px!important;height:265px!important}.gen-pipes.p2{left:104px!important;bottom:62px!important;width:250px!important;height:92px!important}
  .gen-hazard{right:27px!important;top:70px!important;width:146px!important;height:180px!important}.gen-green{left:325px!important;top:235px!important;width:96px!important;height:168px!important}.gen-fuse{left:438px!important;top:245px!important}.gen-meter{left:336px!important;top:70px!important}.gen-fan{right:36px!important;top:285px!important;width:112px!important;height:132px!important}.gen-vent{right:41px!important;top:425px!important}.gen-pipe-extra{left:430px!important;top:355px!important}
  .gen-toolbox{right:118px!important;bottom:38px!important}.gen-cylinder{right:28px!important;bottom:48px!important}.gen-pump{left:52px!important;bottom:52px!important}.gen-hazard-floor{left:218px!important;bottom:34px!important;width:168px!important}

  /* ---------- STORAGE: fill footprint with clustered clutter ---------- */
  .zone-storage>.r2fm-floor{inset:88px 36px 35px!important}.storage-shelf{left:38px!important;top:78px!important;width:172px!important;height:286px!important}.storage-ladder{left:218px!important;top:76px!important}.storage-planks{left:327px!important;top:82px!important}
  .storage-covered.a{right:230px!important;top:188px!important;width:164px!important;height:186px!important}.storage-covered.b{right:34px!important;top:230px!important;width:190px!important;height:226px!important}.storage-mirror{right:196px!important;top:78px!important}.storage-fallen-frame{right:90px!important;top:85px!important}
  .storage-crate-table{left:318px!important;top:405px!important;width:180px!important;height:135px!important}.storage-crate.c1{left:34px!important;top:393px!important}.storage-crate.c2{left:215px!important;top:372px!important}.storage-crate.c3{left:126px!important;top:535px!important}.storage-crate.c4{left:263px!important;top:545px!important}
  .storage-stool{left:222px!important;top:244px!important}.storage-barrel{left:346px!important;top:302px!important}.storage-wheel{left:40px!important;bottom:45px!important}.storage-bookpapers{left:214px!important;bottom:45px!important}.storage-papers{left:370px!important;bottom:92px!important}.storage-papers-b{left:485px!important;bottom:58px!important}.storage-blood{left:300px!important;bottom:38px!important;width:200px!important}
  .storage-plant-crate{right:25px!important;bottom:36px!important}.storage-bin-tools{right:145px!important;bottom:40px!important}.storage-rock-bin{left:500px!important;top:495px!important}.storage-bucket-extra{left:580px!important;top:430px!important}.storage-letter-extra{left:535px!important;bottom:145px!important}

  /* ---------- BOTTOM CORRIDOR: move right, make a real enclosed gallery ---------- */
  .zone-lower-corridor>.r2fm-floor{inset:126px 30px 34px!important}.r2fw-shell-lower .r2fw-edge.top{height:126px!important}.r2fw-shell-lower .r2fw-edge.bottom{height:34px!important}.r2fw-shell-lower .r2fw-edge.left,.r2fw-shell-lower .r2fw-edge.right{top:92px!important;bottom:27px!important;width:30px!important}
  .corridor-runner{left:92px!important;top:252px!important;width:1315px!important;height:116px!important;object-fit:fill!important}
  .corridor-portrait{top:28px!important;height:78px!important}.corridor-portrait.cp1{left:120px!important}.corridor-portrait.cp2{left:455px!important}.corridor-portrait.cp5{left:690px!important}.corridor-portrait.cp3{left:865px!important}.corridor-portrait.cp4{left:1205px!important}
  .corridor-candle{top:61px!important}.corridor-candle.cc1{left:310px!important}.corridor-candle.cc3{left:760px!important}.corridor-candle.cc2{left:1080px!important}
  .corridor-table-left{left:600px!important;top:132px!important}.corridor-table{left:1160px!important;top:136px!important}.corridor-blood-symbol{left:380px!important;top:30px!important}.corridor-crack{left:810px!important;top:22px!important}.corridor-blood{left:820px!important;top:265px!important}.corridor-blood-2{left:490px!important;top:230px!important}.corridor-paper-extra{left:1000px!important;top:285px!important}
  .corridor-floor{background-size:88px 88px!important;filter:brightness(.60) saturate(.50) contrast(1.12)!important}

  /* Hall -> corridor is now a short architectural throat, not a long dangling bridge. */
  .conn-hall-lower{left:1188px!important;top:1360px!important;width:142px!important;height:118px!important;background-color:#171316!important}
  .hall-lower-carpet-vertical{width:96px!important;height:206px!important;left:23px!important;top:-2px!important;object-fit:cover!important}

  /* ---------- RIGHT END DOOR NICHE: compact like the reference ---------- */
  .zone-right-corridor>.r2fm-floor{inset:84px 28px 31px!important}.r2fw-shell-right .r2fw-edge.top{height:84px!important}.r2fw-shell-right .r2fw-edge.left,.r2fw-shell-right .r2fw-edge.right{top:62px!important;bottom:25px!important;width:28px!important}
  .right-door{left:52px!important;bottom:24px!important;width:146px!important;height:195px!important}.right-candle{left:102px!important;width:40px!important;height:86px!important}.right-candle.rc1{top:75px!important}.right-candle.rc2{top:235px!important}.right-portrait{left:83px!important;top:153px!important;width:72px!important;height:88px!important}.right-blood{left:80px!important;top:285px!important;width:72px!important;height:112px!important}.right-blood-pool{left:57px!important;bottom:177px!important;width:132px!important}

  /* ---------- CONNECTOR GEOMETRY / INTERNAL VOID CLEANUP ---------- */
  .conn-library-hall{left:808px!important;top:522px!important;width:98px!important;height:70px!important}
  .conn-library-storage{left:395px!important;top:786px!important;width:96px!important;height:278px!important}
  .conn-hall-bedroom{left:1572px!important;top:178px!important;width:225px!important;height:180px!important}
  .conn-bedroom-parlor{left:1780px!important;top:540px!important;width:112px!important;height:104px!important}
  .conn-parlor-generator{left:2076px!important;top:760px!important;width:98px!important;height:126px!important}
  .conn-generator-right{left:2550px!important;top:1230px!important;width:115px!important;height:180px!important}
  .conn-lower-right{left:2470px!important;top:1570px!important;width:170px!important;height:128px!important}

  .mass-lib-hall-upper{left:820px!important;top:376px!important;width:60px!important;height:142px!important}.mass-lib-hall-lower{left:820px!important;top:598px!important;width:60px!important;height:184px!important}
  .mass-lib-storage-left{left:270px!important;top:812px!important;width:125px!important;height:108px!important}.mass-lib-storage-right{left:485px!important;top:812px!important;width:145px!important;height:108px!important}
  .mass-hall-bedroom-upper{left:1580px!important;top:86px!important;width:200px!important;height:88px!important}.mass-hall-bedroom-lower{left:1580px!important;top:362px!important;width:200px!important;height:218px!important}
  .mass-bedroom-parlor-left{left:1680px!important;top:574px!important;width:96px!important;height:52px!important}.mass-bedroom-parlor-right{left:1895px!important;top:574px!important;width:105px!important;height:52px!important}
  .mass-parlor-generator-upper,.mass-parlor-generator-lower{display:none!important}
  .mass-hall-lower-left,.mass-hall-lower-right{display:none!important}

  /* darker unified mansion grading; props remain readable */
  .r2fw-shell,.lib-wall-architecture{filter:brightness(.96)}
  .zone-library,.zone-hall,.zone-bedroom,.zone-parlor,.zone-storage,.zone-lower-corridor,.zone-right-corridor{filter:drop-shadow(0 9px 12px rgba(0,0,0,.72))}
}

/* ========================================================================== 
   ROOM 2 — ENTRANCE / LOWER-CORRIDOR DOORWAY + L-CARPET REBUILD V2
   Reference: supplied full-map target.  Desktop only.

   This pass deliberately replaces the old "short throat + unrelated runner"
   composition with one continuous architectural opening and two pixel-identical
   crops from the same master L-carpet.  The corner crop lives in the doorway;
   the horizontal crop lives in the corridor so furniture can still sort above it.
   ========================================================================== */
@media (min-width:1051px) and (pointer:fine){
  /* The target corridor starts beneath the Hall instead of far to the west.
     Keep the right edge at ~2610 so the existing right-door niche still joins it. */
  .zone-lower-corridor{
    left:1170px!important;
    top:1450px!important;
    width:1440px!important;
    height:340px!important;
    clip-path:polygon(2% 0,96.5% 0,96.5% 7%,100% 7%,100% 93%,97.5% 93%,97.5% 100%,2% 100%,2% 93%,0 93%,0 8%,2% 8%)!important;
  }

  /* Keep the corridor wall/floor thickness consistent after the horizontal shift. */
  .zone-lower-corridor>.r2fm-floor{inset:126px 30px 34px!important}
  .r2fw-shell-lower .r2fw-edge.top{height:126px!important}
  .r2fw-shell-lower .r2fw-edge.bottom{height:34px!important}
  .r2fw-shell-lower .r2fw-edge.left,.r2fw-shell-lower .r2fw-edge.right{
    top:92px!important;bottom:27px!important;width:30px!important;
  }

  /* Hall -> Bottom Corridor opening.
     It now overlaps BOTH the Hall bottom wall and the corridor top wall, masking
     those two wall bands only inside the doorway.  This removes the stacked-panel
     / black-gap look and produces one readable passage. */
  .conn-hall-lower{
    left:1078px!important;
    top:1338px!important;
    width:174px!important;
    height:276px!important;
    overflow:visible!important;
    z-index:7!important;
    border:0!important;
    border-radius:0!important;
    background:
      linear-gradient(90deg,rgba(0,0,0,.24),transparent 17% 83%,rgba(0,0,0,.24)),
      url('/assets/images/room2/full-map/arch/stone-a.png') center top/94px 94px repeat!important;
    box-shadow:
      inset 0 0 0 2px rgba(10,10,14,.80),
      inset 0 0 22px rgba(0,0,0,.34),
      0 0 0 3px #0d0e13,
      0 0 0 5px rgba(69,75,91,.58)!important;
  }

  /* Two simple jambs only.  No extra stacked frame pieces. */
  .conn-hall-lower::before,
  .conn-hall-lower::after{
    content:""!important;
    position:absolute!important;
    top:-3px!important;
    bottom:-3px!important;
    width:16px!important;
    height:auto!important;
    z-index:6!important;
    background-image:url('/assets/images/room2/full-map/walls-master/wall-v-narrow.png')!important;
    background-repeat:repeat-y!important;
    background-size:42px auto!important;
    filter:brightness(.78) saturate(.80) contrast(1.04)!important;
    opacity:1!important;
    box-shadow:0 4px 8px rgba(0,0,0,.34)!important;
  }
  .conn-hall-lower::before{left:-2px!important;background-position:left top!important}
  .conn-hall-lower::after{right:-2px!important;background-position:right top!important;transform:scaleX(-1)!important}

  /* Corner/vertical crop from the same master carpet used for the horizontal leg.
     It is rendered 1:1 in map pixels: no CSS stretch, no mismatched motif scale. */
  .hall-lower-carpet-corner{
    position:absolute!important;
    left:16px!important;
    top:0!important;
    width:280px!important;
    height:433px!important;
    max-width:none!important;
    z-index:2!important;
    object-fit:contain!important;
    image-rendering:pixelated!important;
    image-rendering:crisp-edges!important;
    filter:brightness(.74) saturate(.88) contrast(1.04) drop-shadow(0 3px 3px rgba(0,0,0,.28))!important;
    pointer-events:none!important;
  }
  .hall-lower-carpet-vertical{display:none!important}

  /* Horizontal crop begins at the exact same source-pixel origin as the corner.
     Global origin: 1170px; global Y: 1598px (the first 76 master pixels live in the corner crop).  The two pieces overlap with identical
     pixels, so the 90-degree turn has no visible seam or width mismatch. */
  .corridor-runner{
    left:0!important;
    top:148px!important;
    width:1224px!important;
    height:160px!important;
    max-width:none!important;
    object-fit:contain!important;
    z-index:3!important;
    image-rendering:pixelated!important;
    image-rendering:crisp-edges!important;
    filter:brightness(.74) saturate(.88) contrast(1.04) drop-shadow(0 4px 4px rgba(0,0,0,.30))!important;
  }

  /* The entrance wall rhythm starts after the opening rather than passing through
     it.  Moving the first wall details right keeps the doorway readable at zoom-out. */
  .corridor-portrait.cp1{left:170px!important}
  .corridor-candle.cc1{left:350px!important}
  .corridor-blood-symbol{left:432px!important}

  /* Do not let legacy Hall-lower filler masses reappear around the new opening. */
  .mass-hall-lower-left,.mass-hall-lower-right{display:none!important}
}


/* ========================================================================== 
   ROOM 2 — FULL MAP MATCH TARGET V3
   2026-09-24. Desktop only.
   Final parity override based on the supplied target map.  This pass narrows
   the lower runner, recenters the Hall exit throat, tightens the Hall axis,
   and re-stages the major rooms so the mansion reads closer at full-map zoom.
   ========================================================================== */
@media (min-width:1051px) and (pointer:fine){
  /* A — LOWER CORRIDOR / CENTRAL HALL ENTRANCE: highest priority */
  .zone-lower-corridor{
    left:1170px!important;top:1450px!important;width:1440px!important;height:340px!important;
  }
  .conn-hall-lower{
    left:1160px!important;top:1338px!important;width:140px!important;height:282px!important;
    background:
      linear-gradient(90deg,rgba(0,0,0,.22),transparent 16% 84%,rgba(0,0,0,.22)),
      url('/assets/images/room2/full-map/arch/stone-a.png') center top/88px 88px repeat!important;
    box-shadow:inset 0 0 0 2px rgba(8,8,12,.82),inset 0 0 18px rgba(0,0,0,.30),0 0 0 3px #0c0d12,0 0 0 5px rgba(70,76,92,.54)!important;
  }
  .conn-hall-lower::before,.conn-hall-lower::after{width:13px!important;background-size:36px auto!important}
  .hall-lower-carpet-corner{
    left:13px!important;top:0!important;width:196px!important;height:303px!important;
    object-fit:contain!important;filter:brightness(.72) saturate(.86) contrast(1.04) drop-shadow(0 3px 3px rgba(0,0,0,.26))!important;
  }
  .corridor-runner{
    left:100px!important;top:160px!important;width:1180px!important;height:112px!important;
    max-width:none!important;object-fit:contain!important;
    filter:brightness(.72) saturate(.86) contrast(1.04) drop-shadow(0 3px 3px rgba(0,0,0,.27))!important;
  }
  .zone-lower-corridor>.r2fm-floor{inset:126px 30px 34px!important}
  .corridor-floor{background-size:82px 82px!important;filter:brightness(.58) saturate(.48) contrast(1.13)!important}

  /* Target-like wall rhythm: portrait -> blood mark -> portrait -> wall damage ->
     flower table -> long portrait -> sconce -> final door. */
  .corridor-portrait{top:31px!important;height:76px!important;filter:brightness(.67) saturate(.68)!important}
  .corridor-portrait.cp1{left:118px!important;width:68px!important}
  .corridor-blood-symbol{left:283px!important;top:25px!important;width:72px!important;height:98px!important;opacity:.82!important}
  .corridor-portrait.cp2{left:386px!important;width:126px!important}
  .corridor-crack{left:568px!important;top:25px!important;width:90px!important;height:88px!important;opacity:.78!important}
  .corridor-table-left{left:700px!important;top:126px!important;width:105px!important;height:82px!important}
  .corridor-portrait.cp5{left:842px!important;width:74px!important}
  .corridor-portrait.cp3{left:980px!important;width:112px!important}
  .corridor-candle.cc2{left:1148px!important;top:53px!important}
  .corridor-portrait.cp4{left:1238px!important;width:72px!important}
  .corridor-table{left:1060px!important;top:130px!important;width:102px!important;height:80px!important}
  .corridor-candle.cc1{left:220px!important;top:54px!important}.corridor-candle.cc3{left:760px!important;top:55px!important}
  .corridor-blood-2{left:355px!important;top:208px!important;width:90px!important;opacity:.72!important}
  .corridor-blood{left:780px!important;top:220px!important;width:156px!important;opacity:.75!important}
  .corridor-paper-extra{left:935px!important;top:224px!important;width:44px!important;opacity:.72!important}

  /* B — CENTRAL HALL: reduce checker harshness and tighten the vertical axis. */
  .hall-floor{
    background:
      linear-gradient(45deg,#252a31 25%,transparent 25% 75%,#252a31 75%) 0 0/34px 34px,
      linear-gradient(45deg,#11151a 25%,#353b43 25% 75%,#11151a 75%) 17px 17px/34px 34px,#15191f!important;
    filter:brightness(.73) saturate(.58) contrast(1.05)!important;
  }
  .hall-runner{left:286px!important;top:202px!important;width:128px!important;height:1040px!important}
  .hall-statue{left:303px!important;top:392px!important;width:94px!important;height:232px!important}
  .hall-table{left:247px!important;top:808px!important;width:206px!important;height:126px!important}
  .hall-bust{top:958px!important;width:66px!important;height:144px!important}.hall-bust.bust-left{left:108px!important}.hall-bust.bust-right{right:108px!important}
  .hall-chair{top:1096px!important;width:70px!important;height:96px!important}.hall-chair.chair-left{left:134px!important}.hall-chair.chair-right{right:130px!important}
  .hall-candelabra{top:1110px!important;width:52px!important;height:108px!important}.hall-candelabra.cand-left{left:26px!important}.hall-candelabra.cand-right{right:26px!important}
  .r2fm-stair-bay{left:-82px!important;top:478px!important;width:226px!important;height:315px!important}.hall-stair{width:214px!important}
  .zone-hall .hall-plant.plant-left{left:128px!important}.zone-hall .hall-plant.plant-right{right:128px!important}

  /* C — STORAGE / UTILITY: target uses a denser left/top work cluster and one
     dominant covered object group rather than two equally-weighted blocks. */
  .storage-shelf{left:30px!important;top:72px!important;width:170px!important;height:285px!important}
  .storage-ladder{left:205px!important;top:88px!important;width:78px!important;height:150px!important}
  .storage-planks{left:290px!important;top:84px!important;width:88px!important;height:180px!important}
  .storage-covered.a{right:195px!important;top:170px!important;width:178px!important;height:205px!important}
  .storage-covered.b{right:36px!important;top:238px!important;width:168px!important;height:205px!important;filter:brightness(.72) saturate(.64)!important}
  .storage-mirror{right:210px!important;top:64px!important;width:122px!important;height:170px!important}
  .storage-fallen-frame{right:92px!important;top:83px!important;width:110px!important;height:92px!important}
  .storage-crate-table{left:300px!important;top:430px!important;width:182px!important;height:132px!important}
  .storage-wheel{left:36px!important;bottom:42px!important;width:140px!important;height:140px!important}
  .storage-bookpapers{left:178px!important;bottom:48px!important}.storage-papers{left:338px!important;bottom:82px!important}.storage-papers-b{left:446px!important;bottom:58px!important}
  .storage-blood{left:260px!important;bottom:46px!important;width:176px!important;opacity:.70!important}
  .storage-plant-crate{right:26px!important;bottom:35px!important}.storage-bin-tools{right:132px!important;bottom:40px!important}

  /* D — BEDROOM: keep the bed as the right-side focal point and compress the
     loose props around it to match the reference grouping. */
  .bed-window{left:244px!important;top:13px!important;width:194px!important;height:153px!important}
  .bed-bed{left:350px!important;top:140px!important;width:188px!important;height:220px!important}
  .bed-covered{left:78px!important;top:150px!important;width:138px!important;height:157px!important}
  .bed-drawer{left:230px!important;top:104px!important;width:96px!important;height:110px!important}
  .bed-rocker{left:240px!important;top:278px!important;width:98px!important;height:98px!important}
  .bed-rug{left:182px!important;top:261px!important;width:118px!important;height:90px!important}
  .bed-chair{right:45px!important;top:324px!important;width:88px!important;height:104px!important}
  .bed-blood{left:326px!important;top:290px!important;width:184px!important;opacity:.84!important}

  /* E — MIRROR LOUNGE: clearer furniture triangle and stronger target spacing. */
  .parlor-mirror{left:34px!important;top:48px!important;width:104px!important;height:190px!important}
  .parlor-table{left:184px!important;top:154px!important;width:142px!important;height:104px!important}
  .parlor-chair{left:62px!important;top:248px!important;width:82px!important;height:95px!important}
  .parlor-rug{left:160px!important;top:266px!important;width:166px!important;height:102px!important}
  .parlor-flower{left:223px!important;top:126px!important;width:58px!important;height:70px!important}

  /* F — MACHINE ROOM: concentrate the electrical cluster against the upper wall,
     leaving the lower service floor clearer like the reference. */
  .gen-machine{left:34px!important;top:58px!important;width:258px!important;height:236px!important}
  .gen-pipes.p1{left:298px!important;top:35px!important;width:100px!important;height:250px!important}
  .gen-hazard{right:30px!important;top:72px!important;width:138px!important;height:172px!important}
  .gen-green{left:318px!important;top:220px!important;width:88px!important;height:154px!important}
  .gen-fan{right:38px!important;top:270px!important;width:105px!important;height:124px!important}
  .gen-toolbox{right:112px!important;bottom:38px!important;width:112px!important}.gen-cylinder{right:26px!important;bottom:47px!important;width:84px!important}
  .gen-pump{left:48px!important;bottom:50px!important}.gen-hazard-floor{left:212px!important;bottom:34px!important;width:158px!important}

  /* G — LIBRARY: small spacing pass only; it is already one of the closest zones. */
  .lib-rug{left:197px!important;top:430px!important;width:350px!important;height:202px!important}
  .lib-desk{left:274px!important;top:421px!important;width:210px!important;height:180px!important}
  .lib-chair{left:350px!important;top:532px!important;width:78px!important;height:104px!important}
  .lib-keydrawer{left:49px!important;top:550px!important}.lib-plant{left:51px!important;top:647px!important}
  .lib-globe{left:620px!important;top:300px!important;width:72px!important;height:122px!important}

  /* Architectural cleanup: keep intentional openings, suppress floating wall mass. */
  .mass-hall-lower-left,.mass-hall-lower-right{display:none!important}
  .conn-hall-lower,.conn-library-hall,.conn-library-storage,.conn-hall-bedroom,.conn-bedroom-parlor,.conn-parlor-generator,.conn-generator-right,.conn-lower-right{filter:brightness(.76) saturate(.70) contrast(1.04)}
}

/* PATCH · Secret-right-wing blackout + tiny bomb + relocated smaller hall clue photos */
.room2-world:not(.r2-graphics-preview) .r2-right-wing-blackout{position:absolute;left:1566px;top:0;width:1286px;height:1360px;background:#000;pointer-events:none;z-index:9999}
.room2-world:not(.r2-graphics-preview) .r2ha-bomb{position:absolute;left:1096px;top:1108px;width:70px;height:auto;image-rendering:pixelated;pointer-events:none;z-index:1200;filter:drop-shadow(0 2px 2px rgba(0,0,0,.82))}
.room2-world:not(.r2-graphics-preview) .r2m-photo-clue-spread{z-index:1200!important}
.room2-world:not(.r2-graphics-preview) .r2m-clue-photo{width:22px!important;height:30px!important;padding:1px!important;z-index:1202!important}
.room2-world:not(.r2-graphics-preview) .r2m-clue-photo[data-portrait="1"]{left:1466px!important;top:1162px!important;transform:rotate(8deg)!important}
.room2-world:not(.r2-graphics-preview) .r2m-clue-photo[data-portrait="2"]{left:1514px!important;top:590px!important;transform:rotate(5deg)!important}
.room2-world:not(.r2-graphics-preview) .r2m-clue-photo[data-portrait="3"]{left:1150px!important;top:792px!important;transform:rotate(-9deg)!important}
.room2-world:not(.r2-graphics-preview) .r2m-clue-photo[data-portrait="4"]{left:1042px!important;top:506px!important;transform:rotate(7deg)!important}


/* PATCH V5 · darker candlelit mansion + smaller bomb */
.room2-world:not(.r2-graphics-preview) .r2ha-bomb{width:35px!important}
.room2-world:not(.r2-graphics-preview) .room2-main-map.r2m-mansion-map{filter:brightness(.66) saturate(.9)}
.room2-world:not(.r2-graphics-preview) .r2-right-wing-blackout{background:#000!important}
.room2-world:not(.r2-graphics-preview) .r2-room-lamp span,
.room2-world:not(.r2-graphics-preview) .r2m-hall-candelabra,
.room2-world:not(.r2-graphics-preview) .r2m-main-hall .r2m-hall-lamp,
.room2-world:not(.r2-graphics-preview) .r2-hall-lamp.is-on{filter:brightness(1.34) drop-shadow(0 0 12px rgba(255,196,86,.34))}
.room2-world:not(.r2-graphics-preview) .r2-room-lamp span{box-shadow:0 0 22px 10px rgba(255,206,121,.46)!important}

/* PATCH · Initial chase corridor redesign from supplied mansion references */
.room2-intro-hallway-map{
  background:#010204!important;
}
.r2-corridor-floor{
  left:330px!important;width:540px!important;
  background-color:#77756c!important;
  background-image:url('../images/room2/intro-chase/floor-tile.png')!important;
  background-size:135px 135px!important;
  background-repeat:repeat!important;
  box-shadow:inset 0 0 0 5px #292a2a,inset 0 0 42px 16px rgba(0,0,0,.52),0 0 54px rgba(0,0,0,.82)!important;
  filter:brightness(.62) saturate(.70) contrast(1.08)!important;
}
.r2-corridor-floor::before{
  background:linear-gradient(90deg,rgba(0,0,0,.30),transparent 12% 88%,rgba(0,0,0,.30)),radial-gradient(ellipse at 18% 22%,rgba(55,34,24,.20),transparent 12%),radial-gradient(ellipse at 80% 68%,rgba(25,11,13,.24),transparent 10%)!important;
  opacity:1!important;
}
.r2-corridor-floor::after{border-left:3px solid #343633!important;border-right:3px solid #343633!important;box-shadow:inset 24px 0 34px rgba(0,0,0,.34),inset -24px 0 34px rgba(0,0,0,.34)!important}
.r2-corridor-carpet{
  left:510px!important;width:180px!important;top:-2px!important;height:calc(100% + 4px)!important;
  background:#5a181d url('../images/room2/intro-chase/runner.png') center top/180px auto repeat-y!important;
  border:0!important;box-shadow:0 0 0 2px rgba(31,18,16,.82),0 8px 14px rgba(0,0,0,.52)!important;
  filter:brightness(.63) saturate(.82) contrast(1.04)!important;
}
.r2-corridor-carpet::before{background:linear-gradient(90deg,rgba(0,0,0,.18),transparent 12% 88%,rgba(0,0,0,.18))!important;opacity:1!important}
.r2-corridor-wall{width:72px!important;background:linear-gradient(90deg,#0c0e11,#242326 18%,#40382f 45%,#201e1d 72%,#08090b)!important;border-top:0!important;box-shadow:inset 0 0 0 4px #0d0f12,inset 0 0 0 7px rgba(82,72,61,.52),0 0 36px rgba(0,0,0,.92)!important}
.r2-corridor-wall.left{left:258px!important}.r2-corridor-wall.right{left:870px!important}
.r2-corridor-wall::before{background:repeating-linear-gradient(0deg,transparent 0 118px,rgba(117,91,57,.12) 119px 121px,transparent 122px 236px),linear-gradient(90deg,rgba(255,255,255,.03),transparent 38%,rgba(0,0,0,.34))!important;opacity:1!important}
.r2-corridor-wall::after{left:61px!important;width:11px!important;background:linear-gradient(90deg,#6f6251,#292724 35%,#0a0b0d)!important}
.r2-corridor-chunk::before,.r2-corridor-chunk::after{content:"";position:absolute;z-index:20;pointer-events:none;width:32px;height:118px;background:linear-gradient(90deg,#171719,#3d3832 32%,#161719 70%,#090a0c);box-shadow:inset 0 0 0 3px #0e0f11,0 7px 16px rgba(0,0,0,.72)}
.r2-corridor-chunk::before{left:300px;top:92px}.r2-corridor-chunk::after{right:300px;top:410px;transform:scaleX(-1)}
.r2-corridor-chunk.tone-exit::before{left:356px;top:8px;width:488px;height:192px;background:transparent url('../images/room2/intro-chase/door-top.png') center/contain no-repeat;box-shadow:none;z-index:24}
.r2-corridor-chunk.tone-exit::after{display:none}
.r2-corridor-grime{left:330px!important;width:540px!important;opacity:.52!important;background:radial-gradient(ellipse at 5% 20%,rgba(20,13,10,.72),transparent 10%),radial-gradient(ellipse at 93% 61%,rgba(28,12,13,.62),transparent 10%),linear-gradient(90deg,rgba(0,0,0,.30),transparent 16% 84%,rgba(0,0,0,.32))!important}
.r2-corridor-lamp{filter:brightness(calc(var(--lamp-brightness,1) * .96)) drop-shadow(0 0 10px rgba(255,184,62,.20))!important;opacity:.92!important}
.r2-corridor-lamp i{background:radial-gradient(circle at 50% 42%,#fff4b3 0 12%,#efb43e 25%,#8a5b1d 50%,#211a12 73%)!important;box-shadow:0 0 18px 8px rgba(243,168,57,.25)!important}
.r2-corridor-prop,.r2-corridor-decor{image-rendering:pixelated;background-repeat:no-repeat!important;background-position:center bottom!important;background-size:contain!important}
.prop-broken-chair::before,.prop-broken-chair::after,
.prop-crate::before,.prop-crate::after,.prop-crates::before,.prop-crates::after,
.prop-broken-cabinet::before,.prop-broken-cabinet::after,.prop-collapsed-shelf::before,.prop-collapsed-shelf::after,
.prop-rubble::before,.prop-rubble::after,.prop-planks::before,.prop-planks::after,
.prop-book-pile::before,.prop-book-pile::after,.prop-trolley::before,.prop-trolley::after,
.prop-overturned-table::before,.prop-overturned-table::after,.prop-draped-obstacle::before,.prop-draped-obstacle::after,
.decor-bust::before,.decor-bust::after,.decor-covered-furniture::before,.decor-covered-furniture::after,
.decor-grandfather-clock::before,.decor-grandfather-clock::after,.decor-chair::before,.decor-chair::after,
.decor-side-table::before,.decor-side-table::after,.decor-plant::before,.decor-plant::after,.decor-pot::before,.decor-pot::after,
.decor-collapsed-books::before,.decor-collapsed-books::after{content:none!important;display:none!important}
.prop-broken-chair>*,.prop-crate>*,.prop-crates>*,.prop-broken-cabinet>*,.prop-collapsed-shelf>*,.prop-rubble>*,.prop-planks>*,.prop-book-pile>*,.prop-trolley>*,.prop-overturned-table>*,.prop-draped-obstacle>*,.decor-bust>*,.decor-covered-furniture>*,.decor-grandfather-clock>*,.decor-chair>*,.decor-side-table>*,.decor-plant>*,.decor-pot>*,.decor-collapsed-books>*{display:none!important}
.prop-broken-chair{background-image:url('../images/room2/intro-chase/armchair.png')!important}
.prop-crate,.prop-crates{background-image:url('../images/room2/intro-chase/crates.png')!important}
.prop-broken-cabinet{background-image:url('../images/room2/intro-chase/cabinet.png')!important}
.prop-collapsed-shelf{background-image:url('../images/room2/intro-chase/collapsed_shelf.png')!important}
.prop-rubble,.prop-planks{background-image:url('../images/room2/intro-chase/rubble.png')!important}
.prop-book-pile{background-image:url('../images/room2/intro-chase/books.png')!important}
.prop-trolley{background-image:url('../images/room2/intro-chase/trolley.png')!important}
.prop-overturned-table{background-image:url('../images/room2/intro-chase/bloody_table.png')!important}
.prop-draped-obstacle{background-image:url('../images/room2/intro-chase/drape_large.png')!important}
.decor-bust{background-image:url('../images/room2/intro-chase/bust.png')!important}
.decor-covered-furniture{background-image:url('../images/room2/intro-chase/drape_small.png')!important;filter:brightness(.70)!important}
.decor-grandfather-clock{background-image:url('../images/room2/intro-chase/clock.png')!important}
.decor-chair{background-image:url('../images/room2/intro-chase/chair.png')!important}
.decor-side-table{background-image:url('../images/room2/intro-chase/console_candle.png')!important}
.decor-plant,.decor-pot{background-image:url('../images/room2/intro-chase/plant.png')!important}
.decor-collapsed-books{background-image:url('../images/room2/intro-chase/books.png')!important}
.room2-world.is-intro-hallway .room2-darkness{opacity:.86!important;background:radial-gradient(circle at var(--light-x,50%) var(--light-y,70%),rgba(18,13,8,.03) 0 var(--r2-radius,42px),rgba(4,4,6,.46) calc(var(--r2-radius,42px) + 52px),rgba(1,2,4,.82) calc(var(--r2-radius,42px) + 170px),rgba(0,0,0,.94) 100%)!important}
.room2-world.is-intro-hallway .room2-vignette{box-shadow:inset 0 0 160px 72px rgba(0,0,0,.68)!important}


/* PATCH · scripted bomb pickup/placement + lighter inventory */
.room2-world:not(.r2-graphics-preview) .r2ha-bomb.is-picking-up{animation:r2BombPickupScript .36s cubic-bezier(.18,.8,.25,1) both!important}
.room2-world:not(.r2-graphics-preview) .r2ha-bomb.is-carried{opacity:0!important;visibility:hidden!important}
.room2-world:not(.r2-graphics-preview) .r2ha-bomb.is-planted{z-index:1225!important;opacity:1!important;visibility:visible!important;filter:drop-shadow(0 2px 3px rgba(0,0,0,.88))!important}
.room2-world:not(.r2-graphics-preview) .r2ha-bomb.is-placing{animation:r2BombPlaceScript .32s cubic-bezier(.2,.82,.22,1) both!important}
@keyframes r2BombPickupScript{0%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translate(12px,-28px) scale(.58)}}
@keyframes r2BombPlaceScript{0%{opacity:0;transform:translate(18px,-30px) scale(.62)}65%{opacity:1;transform:translate(2px,3px) scale(1.06)}100%{opacity:1;transform:translate(0,0) scale(1)}}
.room2-player.is-carrying-bomb::after{content:"";position:absolute;left:34px;top:68px;width:31px;height:22px;background:url("../images/room2/hall-kit/mini-bomb.png") center/contain no-repeat;image-rendering:pixelated;filter:drop-shadow(0 2px 2px rgba(0,0,0,.82));z-index:7;pointer-events:none}
.room2-player.is-carrying-bomb[data-facing="n"]::after{left:34px;top:55px}
.room2-player.is-carrying-bomb[data-facing="ne"]::after{left:47px;top:59px}
.room2-player.is-carrying-bomb[data-facing="e"]::after{left:52px;top:67px}
.room2-player.is-carrying-bomb[data-facing="se"]::after{left:48px;top:74px}
.room2-player.is-carrying-bomb[data-facing="s"]::after{left:34px;top:78px}
.room2-player.is-carrying-bomb[data-facing="sw"]::after{left:20px;top:74px}
.room2-player.is-carrying-bomb[data-facing="w"]::after{left:15px;top:67px}
.room2-player.is-carrying-bomb[data-facing="nw"]::after{left:20px;top:58px}
.room2-item-chip[data-item="lighter"] img{width:25px;height:25px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5))}

/* PATCH V6 · bomb story dialogue / fuse / cover / explosion / rubble */
.room2-cinematic-dialogue.is-auto .room2-cinematic-next{display:none!important}
.room2-world:not(.r2-graphics-preview) .r2ha-bomb.is-fuse-burning{animation:r2BombFusePulse .28s steps(2,end) infinite!important;filter:brightness(1.12) drop-shadow(0 0 8px rgba(255,141,34,.72)) drop-shadow(0 2px 3px rgba(0,0,0,.88))!important}
@keyframes r2BombFusePulse{50%{filter:brightness(1.34) drop-shadow(0 0 13px rgba(255,185,58,.92)) drop-shadow(0 2px 3px rgba(0,0,0,.88))}}
.r2-bomb-fuse-vfx{position:absolute;width:18px;height:18px;z-index:1260;pointer-events:none;transform:translate(-50%,-50%)}
.r2-bomb-fuse-vfx::before{content:"";position:absolute;left:6px;top:7px;width:6px;height:6px;border-radius:50%;background:#fff6b0;box-shadow:0 0 5px #fff6b0,0 0 12px #ffb11f,0 0 20px rgba(255,87,20,.82);animation:r2FuseCore .22s steps(2,end) infinite}
.r2-bomb-fuse-vfx::after{content:"";position:absolute;left:8px;top:9px;width:2px;height:2px;border-radius:50%;background:#ffcf42;box-shadow:-8px -8px 0 #ff9b22,10px -6px 0 #ffd85b,-6px 8px 0 #ff7624,9px 8px 0 #ffb12a;animation:r2FuseScatter .38s steps(2,end) infinite}
.r2-bomb-fuse-vfx i{position:absolute;left:8px;top:8px;width:3px;height:3px;border-radius:50%;background:#ffca35;box-shadow:0 0 5px rgba(255,170,34,.85);animation:r2FuseSpark .56s linear infinite}
.r2-bomb-fuse-vfx i:nth-child(1){--fx:-15px;--fy:-18px;animation-delay:-.08s}.r2-bomb-fuse-vfx i:nth-child(2){--fx:14px;--fy:-13px;animation-delay:-.26s}.r2-bomb-fuse-vfx i:nth-child(3){--fx:-8px;--fy:-24px;animation-delay:-.41s}
.r2-bomb-fuse-vfx b{position:absolute;left:7px;top:5px;width:4px;height:9px;border-radius:50%;background:linear-gradient(#fff6b0,#ffc02e 48%,#f35d1d);filter:drop-shadow(0 0 4px #ff8b1f);animation:r2FuseFlame .2s ease-in-out infinite alternate}
@keyframes r2FuseCore{50%{transform:scale(1.45);opacity:.78}}
@keyframes r2FuseScatter{50%{transform:rotate(35deg) scale(1.25);opacity:.65}}
@keyframes r2FuseSpark{0%{transform:translate(0,0) scale(1);opacity:1}100%{transform:translate(var(--fx),var(--fy)) scale(.2);opacity:0}}
@keyframes r2FuseFlame{from{transform:translateY(0) scale(.86,1)}to{transform:translateY(-3px) scale(1.14,1.25)}}
.r2-bomb-explosion-vfx{position:absolute;width:260px;height:260px;z-index:1900;pointer-events:none;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,#fff7c9 0 5%,#ffd23f 6% 13%,#ff7a18 14% 25%,rgba(182,43,24,.86) 26% 38%,rgba(60,31,28,.46) 39% 56%,transparent 72%);animation:r2BombBlastCore .72s cubic-bezier(.1,.72,.18,1) both;filter:drop-shadow(0 0 28px rgba(255,108,27,.72))}
.r2-bomb-explosion-vfx::before,.r2-bomb-explosion-vfx::after{content:"";position:absolute;inset:42px;border-radius:50%;border:8px solid rgba(255,178,52,.7);animation:r2BlastRing .72s ease-out both}.r2-bomb-explosion-vfx::after{inset:68px;border-width:5px;border-color:rgba(255,236,158,.8);animation-delay:.05s}
.r2-bomb-explosion-vfx i{position:absolute;left:50%;top:50%;width:9px;height:14px;margin:-7px 0 0 -4px;background:linear-gradient(#ffde67,#a53b20 62%,#3c2724);box-shadow:0 0 6px rgba(255,137,37,.6);transform-origin:50% 50%;animation:r2BlastParticle .68s cubic-bezier(.08,.74,.2,1) var(--blast-delay) both}
@keyframes r2BombBlastCore{0%{transform:translate(-50%,-50%) scale(.05);opacity:1}35%{transform:translate(-50%,-50%) scale(.95);opacity:1}100%{transform:translate(-50%,-50%) scale(1.2);opacity:0}}
@keyframes r2BlastRing{0%{transform:scale(.25);opacity:.95}100%{transform:scale(1.7);opacity:0}}
@keyframes r2BlastParticle{0%{transform:rotate(var(--blast-angle)) translateX(0) rotate(calc(-1 * var(--blast-angle))) scale(1);opacity:1}100%{transform:rotate(var(--blast-angle)) translateX(var(--blast-distance)) rotate(calc(-1 * var(--blast-angle))) scale(.35);opacity:0}}
.r2-bomb-screen-flash{position:absolute;inset:0;z-index:2700;pointer-events:none;background:radial-gradient(circle at 42% 76%,rgba(255,244,189,.94) 0 4%,rgba(255,157,50,.52) 10%,rgba(86,30,19,.18) 24%,transparent 48%);animation:r2BombScreenFlash .64s ease-out both}
@keyframes r2BombScreenFlash{0%{opacity:0}10%{opacity:1}34%{opacity:.72}100%{opacity:0}}
.room2-player.is-bomb-cover-hidden{z-index:9!important;filter:brightness(.84)!important}
.r2-bomb-rubble{position:absolute;z-index:1280;pointer-events:none;background:url('../images/room2/cinematics/bomb-collapse-rubble.png') center/contain no-repeat;image-rendering:pixelated;mix-blend-mode:lighten;filter:brightness(.82) contrast(1.16) saturate(.92) drop-shadow(0 10px 11px rgba(0,0,0,.7));transform-origin:center center;transition:transform .42s cubic-bezier(.12,.8,.22,1),opacity .35s ease}
.r2-bomb-rubble.is-spawning{opacity:0;transform:scale(.65) translateY(-18px)}


/* PATCH V7 · bomb rubble alignment + immediate large story portraits */
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression^="bomb_"]{
  left:-1.5%!important;
  width:min(74%,820px)!important;
  height:92%!important;
  bottom:100px!important;
  transition:opacity .055s linear,transform .055s linear!important;
}
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression^="bomb_"].is-left{transform:translateX(-7px)}
.room2-cinematic-dialogue.is-visible .room2-cinematic-portrait[data-speaker="CHOCO"][data-expression^="bomb_"]{transform:translateX(0)!important}
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression^="bomb_"] img{
  display:block!important;
  width:auto!important;
  height:auto!important;
  max-width:100%!important;
  max-height:100%!important;
  object-fit:contain!important;
  object-position:left bottom!important;
  image-rendering:pixelated!important;
  transform:none!important;
  filter:drop-shadow(0 18px 26px rgba(0,0,0,.76))!important;
}
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression^="bomb_"] .room2-expression-mark::before{content:none!important}
@media(max-width:900px){
  .room2-cinematic-portrait[data-speaker="CHOCO"][data-expression^="bomb_"]{left:-2%!important;width:min(82%,760px)!important;height:86%!important;bottom:114px!important}
}
@media(max-width:600px){
  .room2-cinematic-portrait[data-speaker="CHOCO"][data-expression^="bomb_"]{left:-4%!important;width:min(96%,680px)!important;height:77%!important;bottom:136px!important}
}

/* PATCH V8 · slightly lower/faster entrance run, Jinkson post-blast breach, candle halos, stronger phone illumination */
.room2-cinematic-portrait[data-speaker="JINKSON"][data-expression="bomb_threat"]{
  right:-1.5%!important;
  left:auto!important;
  width:min(74%,820px)!important;
  height:92%!important;
  bottom:100px!important;
  transition:opacity .055s linear,transform .055s linear!important;
}
.room2-cinematic-portrait[data-speaker="JINKSON"][data-expression="bomb_threat"].is-right{transform:translateX(7px)}
.room2-cinematic-dialogue.is-visible .room2-cinematic-portrait[data-speaker="JINKSON"][data-expression="bomb_threat"]{transform:translateX(0)!important}
.room2-cinematic-portrait[data-speaker="JINKSON"][data-expression="bomb_threat"] img{
  display:block!important;
  width:auto!important;
  height:auto!important;
  max-width:100%!important;
  max-height:100%!important;
  object-fit:contain!important;
  object-position:right bottom!important;
  image-rendering:pixelated!important;
  transform:none!important;
  filter:drop-shadow(0 18px 26px rgba(0,0,0,.78))!important;
}
.room2-cinematic-portrait[data-speaker="JINKSON"][data-expression="bomb_threat"] .room2-expression-mark::before{content:none!important}
@media(max-width:900px){
  .room2-cinematic-portrait[data-speaker="JINKSON"][data-expression="bomb_threat"]{right:-2%!important;width:min(82%,760px)!important;height:86%!important;bottom:114px!important}
}
@media(max-width:600px){
  .room2-cinematic-portrait[data-speaker="JINKSON"][data-expression="bomb_threat"]{right:-4%!important;width:min(96%,680px)!important;height:77%!important;bottom:136px!important}
}

/* The far-right entrance door breaks at the same beat as the bomb explosion. */
.room2-world:not(.r2-graphics-preview) .right-door.is-jinkson-breaching{
  transform-origin:50% 86%!important;
  animation:r2JinksonDoorBreaching .26s steps(2,end) both!important;
  filter:brightness(1.12) contrast(1.08) drop-shadow(0 0 13px rgba(173,91,45,.34))!important;
}
.room2-world:not(.r2-graphics-preview) .right-door.is-jinkson-breached{
  transform:translate(13px,10px) rotate(10deg)!important;
  transform-origin:50% 88%!important;
  filter:brightness(.66) contrast(1.12) drop-shadow(7px 10px 9px rgba(0,0,0,.68))!important;
  opacity:.78!important;
}
@keyframes r2JinksonDoorBreaching{
  0%{transform:translate(0,0) rotate(0)}
  25%{transform:translate(-8px,1px) rotate(-3deg)}
  50%{transform:translate(9px,-2px) rotate(4deg)}
  75%{transform:translate(-5px,3px) rotate(-2deg)}
  100%{transform:translate(12px,9px) rotate(9deg)}
}
.r2-jinkson-door-breach-vfx{
  position:absolute;width:120px;height:120px;z-index:1885;pointer-events:none;
  transform:translate(-50%,-50%);opacity:.88;
  background:radial-gradient(circle,rgba(214,177,120,.38) 0 8%,rgba(100,72,49,.22) 22%,transparent 62%);
  filter:drop-shadow(0 0 10px rgba(175,114,66,.24));
}
.r2-jinkson-door-breach-vfx::before{
  content:"";position:absolute;inset:30px;border-radius:50%;
  box-shadow:0 0 18px 8px rgba(137,94,58,.24);animation:r2DoorDustBurst .48s ease-out both;
}
.r2-jinkson-door-breach-vfx i{
  position:absolute;left:50%;top:50%;width:8px;height:12px;margin:-6px 0 0 -4px;
  background:linear-gradient(#75563f,#32241d);box-shadow:0 1px 2px rgba(0,0,0,.55);
  animation:r2DoorChipBurst .54s cubic-bezier(.08,.78,.18,1) var(--chip-delay) both;
}
.r2-jinkson-door-breach-vfx.is-bursting{animation:r2DoorDustFade .82s ease-out both}
@keyframes r2DoorChipBurst{0%{transform:rotate(var(--chip-angle)) translateX(0) scale(1);opacity:1}100%{transform:rotate(var(--chip-angle)) translateX(var(--chip-distance)) scale(.35);opacity:0}}
@keyframes r2DoorDustBurst{from{transform:scale(.35);opacity:.8}to{transform:scale(1.9);opacity:0}}
@keyframes r2DoorDustFade{0%{opacity:.9}100%{opacity:0}}
.room2-jinkson.is-bomb-rubble-blocked{filter:drop-shadow(0 5px 5px rgba(0,0,0,.56)) brightness(.94)!important}

/* Candlelight must read as local illumination, not just a bright flame sprite. */
.room2-world:not(.r2-graphics-preview) :is(
  .lib-candle,.hall-candle,.hall-extra-sconce,.parlor-candle,.corridor-candle,.right-candle,
  .r2ha-wall-candle,.east-candle,.stair-candle,.lower-candle
){
  border-radius:48%!important;
  background:radial-gradient(ellipse at 50% 38%,rgba(255,211,116,.22) 0 20%,rgba(255,172,65,.09) 42%,transparent 72%)!important;
  box-shadow:0 0 24px 9px rgba(255,181,72,.13),0 0 48px 20px rgba(255,154,52,.055)!important;
  filter:brightness(1.12) drop-shadow(0 0 8px rgba(255,206,98,.52)) drop-shadow(0 0 20px rgba(255,162,49,.22))!important;
}
.room2-world:not(.r2-graphics-preview) :is(.r2-room-lamp,.r2m-hall-candelabra,.r2m-decor.candelabra){
  filter:brightness(1.12) drop-shadow(0 0 10px rgba(255,205,103,.42)) drop-shadow(0 0 26px rgba(255,159,50,.16))!important;
}
.room2-world:not(.r2-graphics-preview) .r2-room-lamp span{
  box-shadow:0 0 11px 6px rgba(255,218,130,.54),0 0 30px 16px rgba(255,173,64,.18)!important;
}

/* Phone light: brighten real map pixels instead of painting a milky beam over them. */
.room2-lighting.is-phone-light .room2-darkness{
  opacity:.79!important;
}
.room2-lighting.is-phone-light .room2-light-cone{
  height:var(--beam-height,344px)!important;
  clip-path:polygon(0 40%,100% 0,100% 100%,0 60%)!important;
  background:linear-gradient(90deg,rgba(255,248,214,.035),rgba(255,240,190,.022) 58%,transparent 100%)!important;
  filter:none!important;
  mix-blend-mode:normal!important;
  -webkit-backdrop-filter:brightness(2.75) contrast(1.08) saturate(1.12)!important;
  backdrop-filter:brightness(2.75) contrast(1.08) saturate(1.12)!important;
}
.room2-lighting.is-phone-light .room2-light-core{
  width:calc(var(--beam-length,0px)*.92)!important;
  height:var(--beam-core-height,186px)!important;
  clip-path:polygon(0 34%,100% 7%,100% 93%,0 66%)!important;
  background:linear-gradient(90deg,rgba(255,250,224,.025),rgba(255,244,207,.012) 66%,transparent)!important;
  filter:none!important;
  mix-blend-mode:normal!important;
  -webkit-backdrop-filter:brightness(3.15) contrast(1.10) saturate(1.10)!important;
  backdrop-filter:brightness(3.15) contrast(1.10) saturate(1.10)!important;
}
.room2-lighting.is-phone-light .room2-light-hotspot{
  width:72px!important;height:72px!important;
  background:rgba(255,244,205,.055)!important;
  box-shadow:0 0 18px 7px rgba(255,220,145,.08)!important;
  filter:none!important;
  -webkit-backdrop-filter:brightness(2.55) saturate(1.08)!important;
  backdrop-filter:brightness(2.55) saturate(1.08)!important;
}


/* PATCH V12 · post-Jinkson phone dialogue + scripted candle blackout */
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression^="phone_"]{
  left:-1.5%!important;
  width:min(74%,820px)!important;
  height:92%!important;
  bottom:100px!important;
  transition:opacity .055s linear,transform .055s linear!important;
}
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression^="phone_"].is-left{transform:translateX(-7px)}
.room2-cinematic-dialogue.is-visible .room2-cinematic-portrait[data-speaker="CHOCO"][data-expression^="phone_"]{transform:translateX(0)!important}
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression^="phone_"] img{
  display:block!important;
  width:auto!important;
  height:auto!important;
  max-width:100%!important;
  max-height:100%!important;
  object-fit:contain!important;
  object-position:left bottom!important;
  image-rendering:pixelated!important;
  transform:none!important;
  filter:drop-shadow(0 18px 26px rgba(0,0,0,.76))!important;
}
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression^="phone_"] .room2-expression-mark::before{content:none!important}
@media(max-width:900px){
  .room2-cinematic-portrait[data-speaker="CHOCO"][data-expression^="phone_"]{left:-2%!important;width:min(82%,760px)!important;height:86%!important;bottom:114px!important}
}
@media(max-width:600px){
  .room2-cinematic-portrait[data-speaker="CHOCO"][data-expression^="phone_"]{left:-4%!important;width:min(96%,680px)!important;height:77%!important;bottom:136px!important}
}

/* Final candle flutter: the warm pools visibly collapse before full blackout. */
.room2-world.is-candle-extinguish .r2ha-lightglow,
.room2-world.is-candle-extinguish .r2m-hall-light-pool,
.room2-world.is-candle-extinguish .r2-room-lamp span,
.room2-world.is-candle-extinguish .r2m-hall-sconce,
.room2-world.is-candle-extinguish .r2m-hall-lamp,
.room2-world.is-candle-extinguish .r2m-hall-candle,
.room2-world.is-candle-extinguish .r2m-hall-candelabra,
.room2-world.is-candle-extinguish .r2ha-wall-candle,
.room2-world.is-candle-extinguish .r2ha-candelabra{
  animation:r2ScriptedCandleOut .43s steps(4,end) both!important;
  transform-origin:50% 50%;
}
@keyframes r2ScriptedCandleOut{
  0%{opacity:1;filter:brightness(1.16) drop-shadow(0 0 14px rgba(255,188,77,.46))}
  30%{opacity:.72;filter:brightness(1.36) drop-shadow(0 0 20px rgba(255,193,78,.62))}
  58%{opacity:.42;filter:brightness(.72) drop-shadow(0 0 7px rgba(255,154,52,.28))}
  78%{opacity:.18;filter:brightness(.34);transform:scale(.88)}
  100%{opacity:0;filter:brightness(.08);transform:scale(.72)}
}
.room2-world.is-scripted-phone-blackout .r2ha-lightglow,
.room2-world.is-scripted-phone-blackout .r2m-hall-light-pool{opacity:0!important}


/* PATCH V13 · Ancient book objective / reading sequence */
.r2-ancient-book{
  position:absolute;left:1396px;top:742px;width:58px;height:56px;padding:0;border:0;background:transparent;
  z-index:780;cursor:pointer;filter:drop-shadow(0 5px 5px rgba(0,0,0,.72));transform:rotate(-7deg);transform-origin:center center;
}
.r2-ancient-book img{display:block;width:100%;height:100%;object-fit:contain;image-rendering:pixelated;pointer-events:none}
.r2-ancient-book.is-nearby{filter:brightness(1.15) drop-shadow(0 0 9px rgba(240,197,105,.45)) drop-shadow(0 5px 5px rgba(0,0,0,.72))}
.r2-ancient-book.is-picked{display:none!important}
.r2-ancient-book.is-returning{pointer-events:none;animation:r2AncientBookSetDown .62s cubic-bezier(.2,.8,.22,1) both}
@keyframes r2AncientBookSetDown{
  0%{opacity:0;transform:translateY(-40px) rotate(-15deg) scale(1.28)}
  46%{opacity:1;transform:translateY(-9px) rotate(-10deg) scale(1.06)}
  74%{transform:translateY(4px) rotate(-6deg) scale(.98)}
  100%{opacity:1;transform:translateY(0) rotate(-7deg) scale(1)}
}

.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="book_pickup"],
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="book_shocked"]{
  left:-1%!important;width:min(74%,820px)!important;height:90%!important;bottom:84px!important;
}
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="book_pickup"] img,
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="book_shocked"] img{
  max-width:100%!important;max-height:100%!important;object-fit:contain!important;object-position:center bottom!important;
  image-rendering:pixelated!important;filter:drop-shadow(0 18px 24px rgba(0,0,0,.78))!important;
}
.room2-cinematic-portrait[data-expression="ancient_book_open"] .room2-expression-mark::before,
.room2-cinematic-portrait[data-expression="book_pickup"] .room2-expression-mark::before,
.room2-cinematic-portrait[data-expression="book_shocked"] .room2-expression-mark::before{content:none!important}

/* Long book passage: portrait/book art on the left, readable story panel alongside it. */
.room2-cinematic-dialogue.is-book-reading .room2-cinematic-backdrop{background:rgba(2,4,8,.78);backdrop-filter:blur(1px)}
.room2-cinematic-dialogue.is-book-reading .room2-cinematic-portrait{
  left:2%!important;right:auto!important;top:7%!important;bottom:7%!important;width:43%!important;height:86%!important;
  align-items:center!important;justify-content:center!important;transform:none!important;
}
.room2-cinematic-dialogue.is-book-reading .room2-cinematic-portrait img{
  max-width:100%!important;max-height:100%!important;object-fit:contain!important;object-position:center center!important;
  image-rendering:pixelated!important;filter:drop-shadow(0 18px 30px rgba(0,0,0,.75))!important;
}
.room2-cinematic-dialogue.is-book-reading .room2-cinematic-box{
  left:46%!important;right:3%!important;top:6%!important;bottom:6%!important;min-height:0!important;
  padding:42px 34px 58px!important;display:flex!important;flex-direction:column!important;justify-content:flex-start!important;
  background:linear-gradient(180deg,rgba(17,13,11,.985),rgba(7,7,9,.995))!important;border-color:rgba(183,145,74,.48)!important;
}
.room2-cinematic-dialogue.is-book-reading .room2-cinematic-box p{
  margin:0!important;min-height:0!important;overflow-y:auto!important;padding-right:12px!important;
  font:650 clamp(15px,1.35vw,20px)/1.58 Inter,system-ui,sans-serif!important;white-space:normal!important;color:#f0e8d8!important;
}
.room2-cinematic-dialogue.is-book-reading .room2-cinematic-name{background:#4a3522!important;border-color:rgba(206,167,88,.54)!important}
.room2-cinematic-dialogue.is-book-reading .room2-cinematic-next{right:28px!important;bottom:20px!important}

.room2-cinematic-dialogue.is-book-reaction .room2-cinematic-box p:empty{display:none}
.room2-cinematic-dialogue.is-book-reaction .room2-cinematic-box{min-height:82px!important}

@media(max-width:760px){
  .r2-ancient-book{width:50px;height:48px}
  .room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="book_pickup"],
  .room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="book_shocked"]{left:-4%!important;width:min(96%,680px)!important;height:76%!important;bottom:136px!important}
  .room2-cinematic-dialogue.is-book-reading .room2-cinematic-portrait{left:2%!important;top:4%!important;width:96%!important;height:34%!important}
  .room2-cinematic-dialogue.is-book-reading .room2-cinematic-box{left:4%!important;right:4%!important;top:38%!important;bottom:4%!important;padding:34px 22px 54px!important}
  .room2-cinematic-dialogue.is-book-reading .room2-cinematic-box p{font-size:14px!important;line-height:1.5!important}
}
\n\n/* PATCH V17 · large photo-story portraits; keep all photo reactions visually consistent */
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="photo_first_horror"],
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="photo_first_glow"],
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="photo_family_exit"]{
  left:-2.5%!important;
  width:min(84%,940px)!important;
  height:96%!important;
  bottom:72px!important;
  transition:opacity .045s linear,transform .045s linear!important;
}
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="photo_first_horror"] img,
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="photo_first_glow"] img,
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="photo_family_exit"] img{
  display:block!important;width:auto!important;height:auto!important;max-width:100%!important;max-height:100%!important;
  object-fit:contain!important;object-position:left bottom!important;image-rendering:pixelated!important;
  transform:none!important;filter:drop-shadow(0 18px 26px rgba(0,0,0,.78))!important;
}
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="photo_first_horror"] .room2-expression-mark::before,
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="photo_first_glow"] .room2-expression-mark::before,
.room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="photo_family_exit"] .room2-expression-mark::before{content:none!important}
@media(max-width:900px){
  .room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="photo_first_horror"],
  .room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="photo_first_glow"],
  .room2-cinematic-portrait[data-speaker="CHOCO"][data-expression="photo_family_exit"]{left:-4%!important;width:min(96%,820px)!important;height:88%!important;bottom:102px!important}
}


/* V19 · Admin Bright Map: visual-only full electric illumination.
   This never changes state.power or puzzle/story progression. */
.room2-world.is-admin-bright-map .room2-darkness{opacity:0!important;background:transparent!important}
.room2-world.is-admin-bright-map .room2-vignette{box-shadow:none!important;opacity:0!important}
.room2-world.is-admin-bright-map .room2-light-cone,
.room2-world.is-admin-bright-map .room2-light-core,
.room2-world.is-admin-bright-map .room2-light-hotspot,
.room2-world.is-admin-bright-map .room2-beam-dust{opacity:0!important}
.room2-world.is-admin-bright-map .room2-main-map.r2m-mansion-map{
  filter:brightness(1.34) saturate(1.06) contrast(1.035)!important;
}
.room2-world.is-admin-bright-map .r2ha-vignette{background:transparent!important;box-shadow:none!important}
.room2-world.is-admin-bright-map .r2m-main-hall .r2m-hall-light-pool,
.room2-world.is-admin-bright-map .r2ha-lightglow{opacity:.05!important;animation:none!important}
.room2-world.is-admin-bright-map.is-power-flicker .room2-main-map.r2m-mansion-map{animation:none!important}

/* V20 · Roman safe -> brass key -> grandfather clock -> desk flashlight chain */
@media (min-width:1051px) and (pointer:fine){
  .r2-roman-safe{
    position:absolute!important;left:104px!important;top:1192px!important;width:112px!important;height:78px!important;z-index:1240!important;
    border:0!important;border-radius:3px!important;cursor:pointer!important;color:#9ca4a6!important;
    background:linear-gradient(90deg,#20262a,#3c4548 42%,#252b2f 58%,#171c20)!important;
    box-shadow:inset 0 0 0 4px #15191c,inset 0 0 0 6px #4a5355,0 7px 10px rgba(0,0,0,.55)!important;
    font:900 8px/1 ui-monospace,monospace!important;letter-spacing:.12em!important;text-align:center!important;
  }
  .r2-roman-safe::before{content:"";position:absolute;left:12px;right:12px;top:14px;height:44px;border:2px solid #15191c;background:linear-gradient(#31393c,#1b2023);box-shadow:inset 0 0 0 2px rgba(104,116,118,.35)}
  .r2-roman-safe>span{position:absolute;left:0;right:0;bottom:5px;z-index:2;opacity:.72}
  .r2-roman-safe>i{position:absolute;left:26px;top:29px;width:12px;height:12px;border-radius:50%;z-index:3;background:#14191c;box-shadow:0 0 0 2px #697173,inset 0 0 0 3px #272f33}
  .r2-roman-safe>b{position:absolute;right:23px;top:27px;width:22px;height:16px;z-index:3;background:repeating-linear-gradient(90deg,#9d8b62 0 3px,#403925 3px 6px);border:2px solid #171b1e}
  .r2-roman-safe.is-solved{filter:brightness(1.15);box-shadow:inset 0 0 0 4px #15191c,inset 0 0 0 6px #596867,0 0 12px rgba(174,197,168,.25)!important}
  .r2-roman-safe.is-solved::after{content:"";position:absolute;left:10px;right:10px;top:12px;height:46px;background:#151b1d;border:2px solid #586062;transform:translateY(16px) rotateX(42deg);transform-origin:top;opacity:.92}

  /* Keep the old symbol box out of sight until the flashlight phase starts. */
  .r2m-archive-box[hidden]{display:none!important}

  /* Interaction overlay follows the baked full-map clock rather than drawing a second clock. */
  .r2m-grandfather-clock{left:148px!important;top:294px!important;width:78px!important;height:204px!important;background:transparent!important;border:0!important;box-shadow:none!important}
  .r2m-grandfather-clock::before,.r2m-grandfather-clock::after,.r2m-grandfather-clock>span{display:none!important}

  /* The flashlight is thrown from the library desk and lands just in front of it. */
  .r2m-mansion-map .r2-flashlight{left:442px!important;top:626px!important;z-index:652!important}
}

.r2-clock-inspect{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:380px;padding:6px 12px 2px}
.r2-clock-inspect img{display:block;max-width:min(340px,62vw);max-height:510px;width:auto;height:auto;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 14px 22px rgba(0,0,0,.48))}
.r2-clock-inspect-hint{margin:0!important;padding:9px 14px;border:1px solid rgba(212,183,108,.32);background:rgba(0,0,0,.3);color:#dec88d!important;font:800 11px/1.2 ui-monospace,monospace!important;letter-spacing:.06em;text-align:center}


/* V21 · clock UX / brass key / reachable flashlight / true wide flashlight */
.r2m-mansion-map .r2-flashlight{left:502px!important;top:661px!important;z-index:684!important}
.room2-player[data-item="brass-key"] .room2-held-item{
  opacity:1!important;width:20px!important;height:20px!important;border:0!important;border-radius:0!important;
  background:url('../images/room2/items/brass-key.png') center/contain no-repeat!important;
  box-shadow:none!important;filter:drop-shadow(0 2px 2px rgba(0,0,0,.62))!important;
  transform:translate(-10px,-10px) rotate(var(--held-rot,0deg))!important;
}
.room2-player[data-item="red-key"] .room2-held-item{
  opacity:1!important;width:23px!important;height:23px!important;border:0!important;border-radius:0!important;
  background:url('../images/room2/items/red-key.png') center/contain no-repeat!important;
  box-shadow:none!important;filter:drop-shadow(0 2px 2px rgba(0,0,0,.62))!important;
  transform:translate(-11px,-11px) rotate(var(--held-rot,0deg))!important;
}
.room2-player[data-item="lighter"] .room2-held-item{
  opacity:1!important;width:25px!important;height:25px!important;border:0!important;border-radius:0!important;
  background:url('../images/room2/items/lighter.png') center/contain no-repeat!important;
  box-shadow:none!important;filter:drop-shadow(0 2px 2px rgba(0,0,0,.62))!important;
  transform:translate(-12px,-12px) rotate(var(--held-rot,0deg))!important;
}
.r2m-fuse-install.is-installed::after{display:none!important;content:none!important}
.r2m-fuse-install.is-installing-fuse{outline:3px solid rgba(255,206,91,.95)!important;outline-offset:-3px;background:rgba(255,210,96,.24)!important;box-shadow:0 0 24px rgba(255,185,64,.7)!important;animation:r2BreakerInstallPulse .18s ease-in-out 3}
@keyframes r2BreakerInstallPulse{50%{filter:brightness(1.65)}}
@media(min-width:1051px){
  .r2m-mansion-map #room2Breaker{left:2305px!important;top:760px!important;width:110px!important;height:140px!important;z-index:920!important;opacity:0!important;background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;color:transparent!important;pointer-events:auto!important}
  .r2m-mansion-map #room2Breaker::before,.r2m-mansion-map #room2Breaker>span,.r2m-mansion-map #room2Breaker .r2-breaker-led{display:none!important}
  .r2m-mansion-map #room2Breaker::after{display:none!important;content:none!important}
  .r2m-mansion-map #room2Breaker.is-nearby,.r2m-mansion-map #room2Breaker.is-pulling,.r2m-mansion-map #room2Breaker.is-on{outline:none!important;filter:none!important}
}
.room2-modal-card:has(.r2-clock-inspect){
  width:min(640px,94vw)!important;max-height:calc(100dvh - 24px)!important;overflow:hidden!important;
  padding:18px 22px 16px!important;
}
.room2-modal-card:has(.r2-clock-inspect) h3{margin:5px 0 8px!important;font-size:26px!important}
.r2-clock-inspect{min-height:0!important;height:min(76dvh,720px)!important;gap:7px!important;padding:0 6px!important;overflow:hidden!important}
.r2-clock-inspect img{
  width:auto!important;height:auto!important;max-width:min(470px,78vw)!important;max-height:calc(min(76dvh,720px) - 54px)!important;
  object-fit:contain!important;background:transparent!important;filter:drop-shadow(0 10px 16px rgba(0,0,0,.4))!important;
}
.r2-clock-inspect-hint{flex:0 0 auto!important;margin:0!important;padding:7px 12px!important}
.room2-lighting.is-flashlight-light .room2-light-cone{
  -webkit-backdrop-filter:brightness(3.15) contrast(1.08) saturate(1.1)!important;
  backdrop-filter:brightness(3.15) contrast(1.08) saturate(1.1)!important;
  background:linear-gradient(90deg,rgba(255,250,220,.02),rgba(255,245,205,.01) 65%,transparent)!important;
}
.room2-lighting.is-flashlight-light .room2-light-core{
  -webkit-backdrop-filter:brightness(3.55) contrast(1.1) saturate(1.08)!important;
  backdrop-filter:brightness(3.55) contrast(1.1) saturate(1.08)!important;
  background:linear-gradient(90deg,rgba(255,252,230,.018),rgba(255,248,215,.008) 70%,transparent)!important;
}
.room2-lighting.is-flashlight-light .room2-light-hotspot{width:186px!important;height:186px!important}


/* PATCH V22 · safe progression + north door pressure + admin full map */
.room2-world:not(.r2-graphics-preview) .r2m-mansion-map .r2-flashlight{left:520px!important;top:675px!important;z-index:552!important}
.room2-world:not(.r2-graphics-preview) .r2m-mansion-map .r2-door-threat{left:1168px!important;top:245px!important;z-index:1510!important}
.room2-world:not(.r2-graphics-preview) .r2m-mansion-map .r2-door-debris-field{left:1135px!important;top:290px!important;z-index:1490!important}
.room2-world:not(.r2-graphics-preview) .r2-door-threat-beam{display:none!important}
.room2-world:not(.r2-graphics-preview) .r2-exit-door.is-crack-1::after,
.room2-world:not(.r2-graphics-preview) .r2-exit-door.is-crack-2::after,
.room2-world:not(.r2-graphics-preview) .r2-exit-door.is-crack-3::after{content:"";position:absolute;inset:5px 22px;background:linear-gradient(112deg,transparent 0 45%,#030405 46% 49%,transparent 50%);pointer-events:none}
.room2-world:not(.r2-graphics-preview) .r2-exit-door.is-crack-2::after{background:linear-gradient(112deg,transparent 0 43%,#030405 44% 47%,transparent 48%),linear-gradient(75deg,transparent 0 59%,#030405 60% 62%,transparent 63%)}
.room2-world:not(.r2-graphics-preview) .r2-exit-door.is-crack-3::after{background:linear-gradient(112deg,transparent 0 43%,#030405 44% 47%,transparent 48%),linear-gradient(75deg,transparent 0 59%,#030405 60% 62%,transparent 63%),linear-gradient(145deg,transparent 0 28%,#030405 29% 32%,transparent 33%)}
.room2-world:not(.r2-graphics-preview) .r2-exit-door.is-broken{transform:rotate(-7deg) translate(-7px,9px)!important;filter:brightness(.68)!important;box-shadow:18px 12px 0 -5px #2d1b18,-18px 14px 0 -8px #4b2a1d!important}
.room2-world.is-admin-full-map .r2-right-wing-blackout{display:none!important}

/* ==========================================================
   V23 · FLASHLIGHT RUNE + SECRET BOOKSHELF GATE
   ========================================================== */
/* Retire the four legacy red rune overlays and their old archive box. */
.room2-world .r2-symbol{display:none!important}
.room2-world #room2SymbolPanel,
.room2-world #room2PhotoPanel,
.room2-world #room2SwitchClue{display:none!important}

.r2-secret-bookshelf-gate{
  position:absolute;left:1490px;top:205px;width:164px;height:246px;
  padding:0;border:0;background:transparent;overflow:visible;cursor:pointer;
  z-index:10020;transform-origin:50% 92%;transition:transform .82s cubic-bezier(.2,.75,.2,1),filter .25s,opacity .25s;
  filter:brightness(.52) saturate(.72) drop-shadow(0 11px 8px rgba(0,0,0,.75));
}
.r2-secret-bookshelf-gate img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none}
.r2-secret-bookshelf-gate.is-nearby{filter:brightness(.72) saturate(.86) drop-shadow(0 0 12px rgba(186,218,128,.26)) drop-shadow(0 11px 8px rgba(0,0,0,.75))}
.r2-secret-bookshelf-gate.is-unlocking{animation:r2SecretShelfRattle .13s steps(2,end) 4}
.r2-secret-bookshelf-gate.is-open{transform:translateX(142px);filter:brightness(.62) saturate(.76) drop-shadow(0 12px 8px rgba(0,0,0,.72));pointer-events:none}
@keyframes r2SecretShelfRattle{0%,100%{margin-left:0}50%{margin-left:4px}}

.room2-world.is-secret-wing-open .r2-right-wing-blackout{display:none!important}

.r2-flash-rune{
  position:absolute;left:var(--rx);top:var(--ry);width:68px;height:68px;
  transform:translate(-50%,-50%);z-index:770;pointer-events:none;opacity:0;
  transition:opacity .13s,filter .13s,transform .13s;
}
.r2-flash-rune i,.r2-flash-rune i::after{position:absolute;content:"";display:block;box-sizing:border-box}
.r2-flash-rune i{left:50%;top:47%;transform:translate(-50%,-50%)}
.r2-flash-rune small{position:absolute;left:50%;top:54px;transform:translateX(-50%);font-size:12px;font-weight:900;letter-spacing:.08em;color:currentColor;text-shadow:0 2px 4px #000,0 0 8px currentColor}
.r2-flash-rune.is-discovered{opacity:0}
.r2-flash-rune.is-lit{opacity:1;transform:translate(-50%,-50%) scale(1.08);filter:drop-shadow(0 0 7px currentColor) drop-shadow(0 0 16px currentColor)}
.r2-flash-rune.rune-purple{color:#a875e4}.r2-flash-rune.rune-red{color:#db3e43}.r2-flash-rune.rune-green{color:#2e9b58}.r2-flash-rune.rune-orange{color:#ef7a2a}
.r2-flash-rune.rune-square i{width:33px;height:33px;border:5px solid currentColor;box-shadow:inset 0 0 0 2px rgba(18,18,24,.8)}
.r2-flash-rune.rune-triangle i{width:38px;height:36px;background:currentColor;clip-path:polygon(50% 0,100% 100%,0 100%)}
.r2-flash-rune.rune-triangle i::after{left:8px;top:8px;width:22px;height:21px;background:#252329;clip-path:inherit}
.r2-flash-rune.rune-hex i{width:39px;height:35px;background:currentColor;clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%)}
.r2-flash-rune.rune-hex i::after{left:7px;top:6px;width:25px;height:23px;background:#252329;clip-path:inherit}
.r2-flash-rune.rune-parallelogram i{width:38px;height:29px;border:5px solid currentColor;transform:translate(-50%,-50%) skewX(-18deg);box-shadow:inset 0 0 0 2px rgba(18,18,24,.72)}

/* Large interactive bookshelf modal. Every book hit target can be pulled. */
.r2-secret-shelf-hint{max-width:760px;margin:0 auto 12px;line-height:1.55}
.r2-secret-shelf-hint b{display:inline-block;margin:0 3px;font-size:1.05em;text-shadow:0 0 8px currentColor}
.r2-secret-shelf-hint .purple{color:#a875e4}.r2-secret-shelf-hint .red{color:#db3e43}.r2-secret-shelf-hint .green{color:#2e9b58}.r2-secret-shelf-hint .orange{color:#ef7a2a}
.r2-secret-shelf-puzzle{position:relative;width:min(540px,72vw);aspect-ratio:1312/1199;margin:0 auto 12px;overflow:visible;filter:drop-shadow(0 12px 14px rgba(0,0,0,.55))}
.r2-secret-shelf-puzzle>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none}
.r2-secret-book-pick{position:absolute;left:var(--bx);top:var(--by);width:var(--bw);height:var(--bh);border:0;border-radius:3px;background:transparent;cursor:pointer;z-index:3;transform-origin:center bottom;transition:transform .16s cubic-bezier(.2,.9,.2,1),box-shadow .16s,background .16s;outline:none}
.r2-secret-book-pick:hover{box-shadow:0 0 0 2px rgba(255,233,173,.6),0 0 12px rgba(255,224,140,.35)}
.r2-secret-book-pick.is-pulled{transform:translateY(-13px) scale(1.04);background:var(--book-color);box-shadow:0 8px 0 rgba(20,14,17,.72),0 12px 12px rgba(0,0,0,.62),inset 0 0 0 2px rgba(255,224,142,.55)}
.r2-secret-book-pick.is-pulled::before{content:"";position:absolute;left:46%;top:9%;width:8%;height:82%;background:rgba(255,226,132,.72);box-shadow:-9px 0 0 -3px rgba(255,226,132,.4),9px 0 0 -3px rgba(255,226,132,.4)}
.r2-secret-book-pick.is-horizontal.is-pulled{transform:translateX(-14px) scale(1.03)}
.r2-secret-book-pick.is-horizontal.is-pulled::before{display:none}
.room2-modal-body .r2-secret-book-pick{box-sizing:border-box;appearance:none;padding:0!important;border:0!important;border-radius:1px;background:transparent!important;color:transparent!important;font-size:0!important;line-height:0!important;box-shadow:none;transform:none;}
.room2-modal-body .r2-secret-book-pick:hover{background:transparent!important;box-shadow:inset 0 0 0 2px rgba(255,233,173,.82);}
.room2-modal-body .r2-secret-book-pick:focus-visible{outline:2px solid rgba(255,233,173,.95);outline-offset:-2px;}
.room2-modal-body .r2-secret-book-pick.is-pulled{background:transparent!important;box-shadow:inset 0 0 0 2px rgba(255,224,142,.9);transform:none;}
.room2-modal-body .r2-secret-book-pick.is-pulled::before{display:none!important;}
.room2-modal-card:has(.r2-secret-shelf-puzzle){box-sizing:border-box;width:min(900px,96vw);max-height:96%;overflow:hidden;padding:clamp(12px,2vh,20px);display:flex;flex-direction:column;}
.room2-modal-card:has(.r2-secret-shelf-puzzle) h3{margin:4px 0 6px;font-size:clamp(20px,2.6vh,26px);}
.room2-modal-card:has(.r2-secret-shelf-puzzle) .room2-modal-body{min-height:0;overflow:hidden;display:flex;flex:1 1 auto;flex-direction:column;align-items:center;justify-content:center;}
.room2-modal-card:has(.r2-secret-shelf-puzzle) .r2-secret-shelf-hint{margin:0 auto 5px;line-height:1.3;text-align:center;font-size:clamp(12px,1.6vh,14px);}
.room2-modal-card:has(.r2-secret-shelf-puzzle) .r2-secret-shelf-puzzle{flex:0 1 auto;width:min(640px,90vw,74vh);max-width:100%;aspect-ratio:1312/1199;margin:0 auto;}
.room2-modal-card:has(.r2-secret-shelf-puzzle) .room2-modal-feedback{flex:0 0 auto;min-height:0;margin-top:4px;text-align:center;}
@media(max-height:700px){.room2-modal-card:has(.r2-secret-shelf-puzzle) .r2-secret-shelf-puzzle{width:min(640px,90vw,72vh)}}
@media(max-height:560px){.room2-modal-card:has(.r2-secret-shelf-puzzle){padding:8px}.room2-modal-card:has(.r2-secret-shelf-puzzle) .room2-modal-kicker{display:none}.room2-modal-card:has(.r2-secret-shelf-puzzle) .r2-secret-shelf-puzzle{width:min(640px,90vw,66vh)}}

@media(max-width:1050px){
  .r2-secret-bookshelf-gate{display:none!important}
  .r2-flash-rune{display:none!important}
}

/* Secret powered passage: storage exit connects to the original lower chase hall. */
.r2m-secret-corridor{display:none;position:absolute;left:450px;top:1625px;width:715px;height:172px;z-index:1230;pointer-events:none;filter:drop-shadow(0 8px 10px rgba(0,0,0,.75))}
.r2m-secret-corridor.is-open,.room2-world.is-secret-corridor-open .r2m-secret-corridor{display:block}
.r2m-secret-corridor-floor{position:absolute;inset:24px 0;background:repeating-linear-gradient(90deg,rgba(15,17,22,.2) 0 3px,transparent 3px 66px),repeating-linear-gradient(0deg,#171a20 0 38px,#20232a 38px 40px);box-shadow:inset 0 0 0 3px #0c0e13,inset 0 0 22px rgba(0,0,0,.72)}
.r2m-secret-corridor-wall{position:absolute;inset:0 0 auto;height:25px;background:linear-gradient(180deg,#27232a,#100f15 66%,#634333 78%,#15131a 92%);box-shadow:0 3px 8px #000}
.r2m-secret-corridor-floor::after{content:"";position:absolute;left:0;right:0;bottom:-25px;height:25px;background:linear-gradient(180deg,#17131a,#090a0f);box-shadow:0 -3px 8px #000}
.r2m-electric-door{position:absolute!important;left:1059px!important;top:1647px!important;width:78px!important;height:148px!important;z-index:1410!important;padding:0!important;border:4px ridge #4a4f56!important;background:linear-gradient(90deg,#11151b,#414750 18%,#1c2128 50%,#444a52 82%,#11151b)!important;box-shadow:0 0 0 4px #080a0e,inset 0 0 15px #050608!important;color:#d5d8d9!important}
.r2m-electric-door::before{content:"⚡";position:absolute;left:50%;top:17px;transform:translateX(-50%);font-size:23px;color:#e2b64c;text-shadow:0 0 7px rgba(231,175,55,.55)}
.r2m-electric-door span{position:absolute;left:0;right:0;bottom:15px;font-size:7px;letter-spacing:.08em}
.r2m-electric-door>i{position:absolute;left:50%;top:48%;width:18px;height:36px;transform:translate(-50%,-50%);border:2px solid #8d9297;background:linear-gradient(90deg,#252a30,#555b62,#20252b);box-shadow:0 0 0 3px #11151a}
.r2m-electric-door.is-open{opacity:0!important;visibility:hidden!important;transform:translateX(70px);pointer-events:none;transition:transform .7s,opacity .7s,visibility 0s .7s}
.r2m-fuse-install{position:absolute!important;left:2545px!important;top:680px!important;width:150px!important;height:180px!important;z-index:1210!important;background:transparent!important;border:0!important;box-shadow:none!important;color:transparent!important;cursor:pointer}
.r2m-fuse-install.is-nearby{outline:3px solid rgba(255,206,91,.88)!important;outline-offset:-3px;background:rgba(255,210,96,.13)!important;box-shadow:0 0 19px rgba(255,185,64,.42)!important}
#room2HeldItem[data-held-item="fuse"]{opacity:1!important}
#room2HeldItem[data-held-item="fuse"]::before{content:"";position:absolute;left:4px;top:2px;width:18px;height:7px;border:2px solid #ded9c2;border-radius:2px;background:linear-gradient(90deg,#9ab69a 0 20%,#e9e4ce 20% 80%,#9ab69a 80%);box-shadow:0 0 5px rgba(223,230,191,.75)}
@media (min-width:1051px) and (pointer:fine){
  .room2-world{--r2-room-camera-scale:.84;}
  .room2-panel.is-focus-mode .room2-game{
    width:min(100%,1520px)!important;
    max-width:1520px!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
  .room2-panel.is-focus-mode .room2-layout{
    grid-template-columns:minmax(0,1fr) 320px!important;
    width:100%!important;
  }

  /* ==========================================================
     MAIN HALL REMAP — architecture first, no more blockout bays.
     World size stays unchanged. The existing 1250×1550 hall is
     filled with authored mansion architecture instead.
     ========================================================== */
  .r2m-main-hall.r2hall-assets{
    overflow:hidden!important;
    background:#06080d!important;
    border-color:#12141a!important;
    box-shadow:0 0 0 3px #040507,0 0 0 6px rgba(65,59,72,.42),0 20px 44px rgba(0,0,0,.76),inset 0 0 70px rgba(0,0,0,.62)!important;
  }
  .r2ha-base{background:#07090e!important}
  .r2ha-side-architecture,.r2ha-wall-notch{display:none!important}
  .r2ha-remap{display:block}
  .r2ha-remap-asset{position:absolute;display:block;pointer-events:none;user-select:none;image-rendering:pixelated;image-rendering:crisp-edges;filter:drop-shadow(0 8px 7px rgba(0,0,0,.48))}

  /* Central foyer footprint — narrower than the old blockout, denser at edges. */
  .r2ha-floor{
    left:220px!important;right:220px!important;top:248px!important;bottom:118px!important;
    background-size:auto,auto,30px 30px,30px 30px!important;
    background-position:0 0,0 0,0 0,15px 15px!important;
    filter:saturate(.70) brightness(.82) contrast(1.06)!important;
    box-shadow:inset 0 0 52px rgba(0,0,0,.48),0 0 0 7px #17151b,0 0 0 10px #050609,0 15px 30px rgba(0,0,0,.64)!important;
  }
  .r2ha-floor-bay.west-stair{left:115px!important;top:590px!important;width:335px!important;height:590px!important;background-size:30px 30px!important}
  .r2ha-floor-bay.east-gallery{right:115px!important;top:690px!important;width:320px!important;height:500px!important;background-size:30px 30px!important}
  .r2ha-floor-bay.lower-west{left:170px!important;top:1115px!important;width:300px!important;height:315px!important;background-size:30px 30px!important}
  .r2ha-floor-bay.lower-east{right:170px!important;top:1125px!important;width:300px!important;height:305px!important;background-size:30px 30px!important}
  .r2ha-bottom-throat{left:515px!important;top:1370px!important;width:220px!important;height:180px!important;background-size:30px 30px!important}

  /* Entrance: reduced door prominence, heavy wall bay, four existing portraits stay mounted around it. */
  .r2ha-entrance-bay{
    left:440px!important;top:16px!important;width:370px!important;height:270px!important;
    background:linear-gradient(180deg,#2b2021,#1d1618 54%,#0b0d11)!important;
    border-radius:24px 24px 0 0!important;
    box-shadow:inset 0 0 0 3px rgba(113,81,61,.22),inset 0 -38px 52px rgba(0,0,0,.64),0 0 0 8px #17151b,0 0 0 11px #050609,0 18px 30px rgba(0,0,0,.70)!important;
  }
  .r2ha-entrance-bay::before{left:14px!important;right:14px!important;top:14px!important;height:204px!important}
  .r2ha-door{left:492px!important;top:24px!important;width:266px!important;height:270px!important;z-index:24!important;filter:brightness(.88) saturate(.88) drop-shadow(0 16px 13px rgba(0,0,0,.70))!important}
  .r2ha-runner{left:535px!important;top:267px!important;width:180px!important;height:1180px!important;z-index:6!important;filter:brightness(.83) saturate(.84) drop-shadow(0 9px 8px rgba(0,0,0,.38))!important}
  .r2ha-plant{top:213px!important;width:72px!important;height:138px!important;z-index:20!important}
  .r2ha-plant.plant-left{left:365px!important}.r2ha-plant.plant-right{right:365px!important}
  .r2ha-wall-candle{top:212px!important;width:34px!important;height:80px!important;z-index:22!important}
  .r2ha-wall-candle.candle-left{left:315px!important}.r2ha-wall-candle.candle-right{right:315px!important}
  .entrance-trim{z-index:9!important;opacity:.92;filter:brightness(.68) saturate(.76) drop-shadow(0 7px 8px rgba(0,0,0,.54))!important}
  .entrance-trim.et1{left:420px;top:78px;width:46px;height:182px}.entrance-trim.et2{right:420px;top:78px;width:46px;height:182px;transform:scaleX(-1)}
  .entrance-trim.et3{left:332px;top:85px;width:58px;height:170px}.entrance-trim.et4{right:332px;top:85px;width:58px;height:170px;transform:scaleX(-1)}

  /* Existing four clue photos remain a real family gallery, but no longer float in void. */
  .room2-world.r2-graphics-preview .r2m-clue-photo[data-portrait='1']{left:1148px!important;top:210px!important}
  .room2-world.r2-graphics-preview .r2m-clue-photo[data-portrait='2']{left:1202px!important;top:200px!important}
  .room2-world.r2-graphics-preview .r2m-clue-photo[data-portrait='3']{left:1595px!important;top:200px!important}
  .room2-world.r2-graphics-preview .r2m-clue-photo[data-portrait='4']{left:1649px!important;top:210px!important}

  /* Upper-left library alcove. */
  .r2ha-alcove{position:absolute;z-index:8;overflow:hidden;border:7px solid #17151b;box-shadow:0 0 0 3px #050609,inset 0 0 35px rgba(0,0,0,.54),0 12px 24px rgba(0,0,0,.50)}
  .r2ha-alcove::after{content:"";position:absolute;inset:7px;border:2px solid rgba(104,77,63,.22);pointer-events:none}
  .r2ha-alcove-floor{position:absolute;left:12px;right:12px;top:88px;bottom:12px;background:repeating-linear-gradient(90deg,#251a18 0 25px,#171315 25px 28px,#31211c 28px 53px,#171315 53px 56px);box-shadow:inset 0 0 32px rgba(0,0,0,.44)}
  .r2ha-alcove-wall{position:absolute;left:0;right:0;top:0;height:92px;background:linear-gradient(#2b2020,#171316);border-bottom:5px solid #0a0a0d;box-shadow:inset 0 -16px 25px rgba(0,0,0,.44)}
  .library-alcove{left:24px;top:272px;width:286px;height:322px}
  .library-alcove .lib-bookshelf{left:18px;top:88px;width:128px;height:198px;filter:brightness(.76) saturate(.78) drop-shadow(0 7px 7px rgba(0,0,0,.52))}
  .library-alcove .lib-globe{left:156px;top:150px;width:92px;height:108px;filter:brightness(.78) saturate(.76) drop-shadow(0 6px 6px rgba(0,0,0,.50))}
  .library-alcove .lib-portrait{left:108px;top:12px;width:58px;height:78px;filter:brightness(.72) saturate(.73)}
  .library-alcove .lib-candle{right:16px;top:20px;width:31px;height:76px;filter:brightness(.95) drop-shadow(0 0 10px rgba(255,178,72,.42))}
  .library-alcove .lib-panel{top:4px;width:42px;height:91px;filter:brightness(.60) saturate(.70)}
  .library-alcove .lib-panel.p-a{left:12px}.library-alcove .lib-panel.p-b{right:58px}

  /* Upper-right fragment: actual door, covered object, rug, table and portrait. */
  .east-room{right:24px;top:288px;width:284px;height:338px}
  .east-room .r2ha-alcove-floor{background:linear-gradient(45deg,#252632 25%,transparent 25% 75%,#252632 75%),linear-gradient(45deg,#161820 25%,#363945 25% 75%,#161820 75%);background-size:36px 36px;background-position:0 0,18px 18px}
  .east-room .east-door{left:95px;top:2px;width:76px;height:169px;filter:brightness(.74) saturate(.76) drop-shadow(0 7px 6px rgba(0,0,0,.55))}
  .east-room .east-covered{left:22px;top:150px;width:110px;height:118px;filter:brightness(.72) saturate(.65)}
  .east-room .east-rug{right:20px;bottom:22px;width:104px;height:96px;filter:brightness(.58) saturate(.68)}
  .east-room .east-portrait{right:18px;top:12px;width:57px;height:79px;filter:brightness(.67) saturate(.70)}
  .east-room .east-table{right:24px;top:130px;width:54px;height:108px;filter:brightness(.78) saturate(.78)}
  .east-room .east-candle{left:18px;top:20px;width:30px;height:75px;filter:brightness(.94) drop-shadow(0 0 10px rgba(255,178,72,.38))}

  /* Staircase is now structurally anchored to its wall and landing. */
  .r2ha-stair-architecture{position:absolute;left:60px;top:584px;width:310px;height:470px;z-index:9;background:linear-gradient(90deg,#171317,#30231f 22%,#171417 76%,#0d0f12);border:7px solid #17151b;box-shadow:0 0 0 3px #050609,inset -28px 0 36px rgba(0,0,0,.58),0 12px 25px rgba(0,0,0,.52)}
  .stair-panel{top:96px!important;width:46px!important;height:225px!important;filter:brightness(.55) saturate(.66)!important;z-index:1!important}
  .stair-panel.sp1{left:10px}.stair-panel.sp2{left:55px}.stair-panel.sp3{left:100px}
  .r2ha-stair-landing{position:absolute;left:154px;top:38px;width:142px;height:74px;background:repeating-linear-gradient(90deg,#5e3d2c 0 20px,#2b1d1b 20px 23px);border:5px solid #211617;box-shadow:inset 0 0 0 2px rgba(145,100,67,.22),0 9px 14px rgba(0,0,0,.58)}
  .stair-candle{right:12px;top:10px;width:31px;height:78px;filter:brightness(.96) drop-shadow(0 0 10px rgba(255,178,72,.42))!important;z-index:5!important}
  .r2ha-stair{left:64px!important;top:622px!important;width:258px!important;height:363px!important;z-index:18!important;filter:brightness(.84) saturate(.86) drop-shadow(0 14px 10px rgba(0,0,0,.66))!important}

  /* Main landmarks keep negative space between them. */
  .r2ha-debris{left:348px!important;top:392px!important;width:104px!important;height:64px!important;z-index:10!important}
  .r2ha-papers{right:345px!important;top:402px!important;width:108px!important;height:64px!important;z-index:10!important}
  .r2ha-statue{left:575px!important;top:438px!important;width:100px!important;height:250px!important;z-index:15!important}
  .r2ha-center-table{left:522px!important;top:846px!important;width:206px!important;height:136px!important;z-index:20!important}

  /* Lower hall: two asymmetrical furniture clusters at the perimeter. */
  .r2ha-lower-cluster{position:absolute;z-index:8;pointer-events:none}
  .lower-left-cluster{left:130px;top:1015px;width:210px;height:360px;background:linear-gradient(90deg,#171317,#2c211e 38%,#171417);border:6px solid #17151b;box-shadow:0 0 0 3px #050609,inset 0 0 28px rgba(0,0,0,.54)}
  .lower-left-cluster .lp1{left:8px;top:16px;width:78px;height:180px;filter:brightness(.60) saturate(.68)}
  .lower-left-cluster .lower-table{right:16px;bottom:34px;width:70px;height:106px;filter:brightness(.74) saturate(.78)}
  .lower-left-cluster .lower-candle{right:22px;top:20px;width:29px;height:74px;filter:brightness(.96) drop-shadow(0 0 10px rgba(255,178,72,.4))}
  .lower-right-cluster{right:130px;top:1025px;width:210px;height:350px;background:linear-gradient(270deg,#171317,#2b211e 38%,#171417);border:6px solid #17151b;box-shadow:0 0 0 3px #050609,inset 0 0 28px rgba(0,0,0,.54)}
  .lower-right-cluster .lower-bookshelf{right:8px;bottom:12px;width:92px;height:143px;filter:brightness(.68) saturate(.73)}
  .lower-right-cluster .lower-mirror{left:16px;top:50px;width:76px;height:125px;filter:brightness(.66) saturate(.65)}
  .lower-right-cluster .lower-candle{right:20px;top:18px;width:29px;height:74px;filter:brightness(.96) drop-shadow(0 0 10px rgba(255,178,72,.4))}
  .r2ha-bust{top:1080px!important;width:60px!important;height:154px!important;z-index:18!important}
  .r2ha-bust.bust-left{left:315px!important}.r2ha-bust.bust-right{right:315px!important}
  .r2ha-side-cabinet{right:182px!important;top:1116px!important;width:60px!important;height:114px!important;z-index:16!important}
  .r2ha-chair{width:66px!important;height:88px!important;z-index:16!important}
  .r2ha-chair.chair-left{left:250px!important;top:1264px!important}.r2ha-chair.chair-right{right:248px!important;top:1280px!important}
  .r2ha-candelabra{width:48px!important;height:110px!important;z-index:17!important}
  .r2ha-candelabra.cand-left{left:172px!important;top:1272px!important}.r2ha-candelabra.cand-right{right:168px!important;top:1265px!important}

  /* Bottom is now a real corridor/doorway, never a floating floor tile into black void. */
  .r2ha-bottom-corridor{position:absolute;left:505px;top:1370px;width:240px;height:180px;z-index:9;background:#0c0e13;border-left:7px solid #17151b;border-right:7px solid #17151b;box-shadow:inset 0 0 34px rgba(0,0,0,.62),0 0 0 3px #050609}
  .r2ha-bottom-floor{position:absolute;left:16px;right:16px;top:0;bottom:12px;background:linear-gradient(45deg,#272a33 25%,transparent 25% 75%,#272a33 75%),linear-gradient(45deg,#14171e 25%,#3c4049 25% 75%,#14171e 75%);background-size:30px 30px;background-position:0 0,15px 15px;filter:brightness(.76)}
  .r2ha-bottom-walls{position:absolute;left:0;right:0;bottom:0;height:40px;background:linear-gradient(#261b1c,#0e0f12);border-top:5px solid #090a0d}
  .bottom-door{left:73px;bottom:-8px;width:94px;height:174px;filter:brightness(.62) saturate(.72) drop-shadow(0 8px 8px rgba(0,0,0,.65))!important}
  .room2-world.r2-graphics-preview #room2EntranceDoor{opacity:0!important;pointer-events:none!important}

  /* Lighting comes from actual physical props. */
  .r2ha-lightglow.l1{left:286px!important;top:190px!important;width:104px!important;height:104px!important}
  .r2ha-lightglow.l2{right:286px!important;top:190px!important;width:104px!important;height:104px!important}
  .r2ha-lightglow.l3{left:155px!important;top:1230px!important;width:110px!important;height:110px!important}
  .r2ha-lightglow.l4{right:150px!important;top:1225px!important;width:110px!important;height:110px!important}
  .r2ha-lightglow.l5{right:160px!important;top:1060px!important;width:90px!important;height:90px!important}
  .r2ha-vignette{inset:-28px!important;box-shadow:inset 0 0 88px rgba(0,0,0,.64)!important;background:radial-gradient(ellipse at center,transparent 50%,rgba(0,0,0,.32) 100%)!important}
}


/* Post-toolbox story portraits are scaled down across later scenes. */
.room2-cinematic-dialogue.is-post-toolbox .room2-cinematic-portrait{
  width:min(25vw,300px)!important;height:min(48vh,420px)!important;max-width:300px!important;bottom:112px!important;
}
.room2-cinematic-dialogue.is-post-toolbox .room2-cinematic-portrait.is-left{left:2%!important;right:auto!important}
.room2-cinematic-dialogue.is-post-toolbox .room2-cinematic-portrait.is-right{left:auto!important;right:2%!important}
.room2-cinematic-dialogue.is-post-toolbox .room2-cinematic-portrait img{max-width:100%!important;max-height:100%!important;object-fit:contain!important}
.room2-dialogue.is-post-toolbox .room2-dialogue-portrait{flex-basis:170px!important;height:150px!important}
.room2-dialogue.is-post-toolbox .room2-dialogue-portrait img{max-width:100%!important;max-height:100%!important;object-fit:contain!important}
@media(max-width:900px){
  .room2-cinematic-dialogue.is-post-toolbox .room2-cinematic-portrait{width:min(34vw,220px)!important;height:min(40vh,300px)!important;bottom:106px!important}
  .room2-dialogue.is-post-toolbox .room2-dialogue-portrait{flex-basis:130px!important;height:118px!important}
}
@media(max-width:600px){
  .room2-cinematic-dialogue.is-post-toolbox .room2-cinematic-portrait{width:min(39vw,180px)!important;height:min(34vh,235px)!important;bottom:128px!important}
}
/* Story power uses the same full-map illumination as Admin Bright Map. */
.room2-world.is-story-bright-map .room2-darkness{opacity:0!important;background:transparent!important}
.room2-world.is-story-bright-map .room2-vignette{box-shadow:none!important;opacity:0!important}
.room2-world.is-story-bright-map .room2-light-cone,
.room2-world.is-story-bright-map .room2-light-core,
.room2-world.is-story-bright-map .room2-light-hotspot,
.room2-world.is-story-bright-map .room2-beam-dust{opacity:0!important}
.room2-world.is-story-bright-map .room2-main-map.r2m-mansion-map{filter:brightness(1.34) saturate(1.06) contrast(1.035)!important}
.room2-world.is-story-bright-map .r2ha-vignette{background:transparent!important;box-shadow:none!important}
.room2-world.is-story-bright-map .r2m-main-hall .r2m-hall-light-pool,
.room2-world.is-story-bright-map .r2ha-lightglow{opacity:.05!important;animation:none!important}
.room2-world.is-story-bright-map.is-power-flicker .room2-main-map.r2m-mansion-map{animation:none!important}
.room2-world.is-story-bright-map #room2SecurityDoor.is-powered span{color:#f0d785;text-shadow:0 0 7px rgba(255,219,112,.72);letter-spacing:.04em}
/* Secret route drops from Storage, then turns into the lower original hall. */
.r2m-secret-corridor{left:450px;top:1625px;width:715px;height:172px}
.r2m-secret-corridor-stem{display:none;position:absolute;left:450px;top:1490px;width:172px;height:160px;z-index:1231;pointer-events:none;filter:drop-shadow(0 8px 10px rgba(0,0,0,.75));background:repeating-linear-gradient(90deg,#0c0e13 0 24px,#171a20 24px 26px,transparent 26px calc(100% - 26px),#171a20 calc(100% - 26px) calc(100% - 24px),#0c0e13 calc(100% - 24px)),repeating-linear-gradient(0deg,#171a20 0 38px,#20232a 38px 40px);box-shadow:inset 0 0 0 3px #0c0e13,inset 0 0 22px rgba(0,0,0,.72)}
.r2m-secret-corridor-stem::before{content:"";position:absolute;left:24px;right:24px;top:0;bottom:0;background:repeating-linear-gradient(0deg,#171a20 0 38px,#20232a 38px 40px);box-shadow:inset 0 0 18px rgba(0,0,0,.55)}
.r2m-secret-corridor-stem.is-open,.room2-world.is-secret-corridor-open .r2m-secret-corridor-stem{display:block}
.r2m-electric-door{left:1059px!important;top:1647px!important}

/* Clean legacy artifacts from the desktop map while preserving the active hotspots. */
@media (min-width:1051px) and (pointer:fine){
  .r2m-mansion-map #room2Generator{opacity:0!important;background:transparent!important;border:0!important;box-shadow:none!important;color:transparent!important}
  .r2m-mansion-map #room2Generator::before,.r2m-mansion-map #room2Generator::after,
  .r2m-mansion-map #room2Generator>span,.r2m-mansion-map #room2Generator .r2-fuse-slot,
  .r2m-mansion-map #room2Generator .r2-generator-status{display:none!important;content:none!important}
  .r2m-mansion-map .r2-door-threat{display:none!important}
  .r2m-mansion-map .r2m-electric-door.is-open{opacity:0!important;visibility:hidden!important}
}

/* Remove stale map-only items and door effects while keeping the active safe and exit. */
#room2MainMap img[src*="case-crate.png"],
#room2MainMap .case-crate,
#room2MainMap .storage-case-crate,
#room2MainMap .r2-door-threat,
#room2MainMap .r2-door-debris-field,
#room2MainMap .r2-jinkson-door-breach-vfx,
#room2MainMap .r2-wood-chip,
#room2MainMap .r2-door-dust,
#room2MainMap #room2EntranceDoor{display:none!important;visibility:hidden!important;opacity:0!important}
.room2-world .right-door.is-jinkson-breaching,
.room2-world .right-door.is-jinkson-breached{animation:none!important;transform:none!important;filter:none!important;opacity:1!important}
