:root { color-scheme: dark; font-family: Inter, ui-sans-serif, system-ui, sans-serif; }
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; display: grid; place-items: center; overflow: hidden; background: #030405; color: #f0eee7; }
button { font: inherit; color: inherit; }
.game { position: relative; width: min(100vw, 177.78vh); aspect-ratio: 16/9; overflow: hidden; background: #0b0d0e; box-shadow: 0 0 80px #000; user-select: none; }
.game.hot::after{content:"";position:absolute;z-index:9;inset:0;pointer-events:none;background:radial-gradient(circle at 22% 16%,#cdd8d818 0 1%,transparent 2%),radial-gradient(circle at 78% 25%,#cdd8d812 0 .8%,transparent 1.8%),radial-gradient(ellipse at center,transparent 52%,#9aa7a524 82%,#20282878);backdrop-filter:blur(.35px);animation:hot-breathe 1.8s ease-in-out infinite alternate}@keyframes hot-breathe{to{opacity:.72}}
.room,.room.ball-used,.room.room-closed,.room.balcony-closed,.room.room-closed.balcony-closed { --mx:36%;--my:47%;position:absolute;inset:0;overflow:hidden;cursor:crosshair;background:#090807 url('scene-01.png') center/cover no-repeat; }
.hand-overlay{position:absolute;z-index:5;inset:0;pointer-events:none;background:url('hand-ball.png') center/cover no-repeat;clip-path:polygon(0 100%,0 82%,15% 76%,20% 61%,27% 55%,36% 57%,39% 72%,34% 80%,28% 100%)}.room.ball-used .hand-overlay{background-image:url('hand-empty.png')}
.right-hand{display:none;position:absolute;z-index:9;inset:-4% 0 4%;pointer-events:none;background-position:center;background-size:cover;background-repeat:no-repeat;animation:raise-hand .28s ease-out}.right-hand.remote{display:block;background-image:url('hand-remote.png')}.right-hand.phone{display:block;background-image:url('hand-phone.png'),linear-gradient(#020303,#020303);background-size:cover,19% 67%;background-position:center,44.8% 37%;background-repeat:no-repeat}.right-hand.monster-phone{display:block;background-image:url('hand-phone-monster.png'),linear-gradient(#020303,#020303);background-size:cover,19% 67%;background-position:center,44.8% 37%;background-repeat:no-repeat}@keyframes raise-hand{from{transform:translateY(22%);opacity:0}to{transform:none;opacity:1}}
.phone-actions{position:absolute;z-index:12;inset:0;pointer-events:none}.phone-actions[hidden]{display:none}.phone-hotspot{position:absolute;top:51.2%;width:5.1%;aspect-ratio:1;border:2px solid #fff8;border-radius:50%;padding:0;color:#fff;font-size:clamp(16px,2.1vw,34px);line-height:1;cursor:pointer;pointer-events:auto;box-shadow:0 0 16px #000,0 0 18px currentColor;transition:transform .12s,filter .12s}.phone-hotspot:hover,.phone-hotspot:active{transform:scale(1.13);filter:brightness(1.3)}.phone-hotspot.answer{left:39.75%;background:#22a851}.phone-hotspot.decline{left:48.05%;background:#e22b32;transform:rotate(135deg)}.phone-hotspot.decline:hover,.phone-hotspot.decline:active{transform:rotate(135deg) scale(1.13)}
.phone-scare{display:none;position:absolute;z-index:45;inset:0;place-items:center;background:#000c;pointer-events:none}.phone-scare.visible{display:grid;animation:scare-flash .7s ease-out 1}.phone-scare img{width:min(68%,680px);filter:contrast(1.25) grayscale(.25) drop-shadow(0 0 24px #fff5);animation:scare-face .65s ease-out both}@keyframes scare-face{from{transform:scale(.5) rotate(-3deg);opacity:.3}65%{transform:scale(1.04) rotate(1deg);opacity:1}to{transform:scale(1);opacity:.88}}@keyframes scare-flash{0%,100%{background:#000c}35%{background:#581010e8}50%{background:#050505e8}}
.phone-dialogue{display:none;position:absolute;z-index:13;right:6%;top:20%;width:min(360px,42%);padding:16px 20px;background:#070909eb;border:1px solid #676b67;border-left:4px solid #dfb53f;box-shadow:0 14px 40px #000b}.phone-dialogue.visible{display:block;animation:dialogue-in .25s ease-out}.phone-dialogue span{font-size:10px;letter-spacing:.22em;color:#dfb53f}.phone-dialogue p{min-height:1.5em;margin:7px 0 0;font-size:clamp(14px,1.5vw,23px);line-height:1.35}.phone-dialogue.child{border-left-color:#7caed8}.phone-dialogue.child span{color:#7caed8}@keyframes dialogue-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.room::before { content:""; position:absolute; z-index:4; inset:0; pointer-events:none; background:radial-gradient(circle at 50% 45%,transparent 35%,rgba(0,0,0,.16) 75%,rgba(0,0,0,.48)); }
.window { position:absolute; right:1%; top:5%; width:17%; height:65%; background:transparent; }
.balcony-door{display:block;position:absolute;z-index:2;left:84.63%;top:0;width:15.37%;height:90.33%;opacity:0;pointer-events:none;background:url('door-balcony-sprite.png') center/100% 100% no-repeat;transform-origin:right center;transition:opacity .18s}.balcony-door.closed{opacity:1}
.window::before,.window::after { display:none; }
.figure { opacity:0; position:absolute; right:22%; bottom:12%; width:23%; height:54%; border-radius:50% 50% 20% 20%; background:#010101; filter:blur(2px); transition:opacity .3s; }
.figure.visible { opacity:.85; }
.tv { z-index:1;position:absolute; left:40.1%; top:23.5%; width:26.4%; height:26.6%; padding:0; background:transparent; border:0; transform:none; }
.tv::after { display:none; }
.tv-screen { position:relative;width:100%;height:100%;overflow:hidden;background:transparent; }
.tv-video{display:none;position:absolute;z-index:2;inset:0;width:100%;height:100%;object-fit:contain;border:0;pointer-events:none;background:#000}.tv.on .tv-video{display:block}.tv-loading{display:none;position:absolute;z-index:5;inset:0;place-items:center;background:#050606;color:#ddd;font-size:clamp(8px,.8vw,13px);letter-spacing:.18em}.tv.on.loading .tv-loading{display:grid}.tv.on .voxel-sky,.tv.on .voxel-ground,.tv.on .voxel-player{display:none!important}
.voxel-sky,.voxel-ground,.voxel-player{display:none;position:absolute}.tv.on .voxel-sky,.tv.on .voxel-ground,.tv.on .voxel-player{display:block}
.tv.on .tv-screen{background:linear-gradient(#77bfea 0 58%,#6cac3b 58%);box-shadow:0 0 45px #9fd4ad88;animation:tv-flicker .18s steps(2) infinite}
.voxel-sky{inset:0;background:linear-gradient(90deg,transparent 10%,#fff 10% 25%,transparent 25% 68%,#fff 68% 82%,transparent 82%);height:12%;top:13%;opacity:.8;animation:clouds 8s linear infinite}
.voxel-ground{left:-10%;right:-10%;bottom:0;height:44%;background:repeating-linear-gradient(90deg,#3e7328 0 13%,#579736 13% 25%);clip-path:polygon(0 40%,18% 40%,18% 15%,38% 15%,38% 50%,62% 50%,62% 0,82% 0,82% 32%,100% 32%,100% 100%,0 100%);animation:voxel-pan 5s linear infinite}
.voxel-player{left:43%;bottom:23%;width:9%;height:31%;background:#3c8fb0;box-shadow:0 -11px 0 2px #a76f4a,7px 9px 0 #303c91,-7px 9px 0 #303c91;animation:voxel-walk .5s steps(2) infinite}
.tv-virus{display:none;position:absolute;z-index:4;inset:0;background:#050505 url('virus.png') center/contain no-repeat;filter:grayscale(.65) contrast(1.4);animation:virus-jump .13s steps(2) infinite}.tv.virus .tv-virus{display:block}
@keyframes virus-jump{50%{transform:scale(1.08) translate(2px,-2px);filter:grayscale(.8) contrast(1.8) invert(.08)}}
@keyframes clouds{to{transform:translateX(-55%)}}@keyframes voxel-pan{to{transform:translateX(-12%)}}@keyframes voxel-walk{50%{transform:translateY(-4px)}}@keyframes tv-flicker{50%{filter:brightness(.92)}}
.door{display:block;position:absolute;z-index:3;left:34.1%;top:29%;width:4.7%;height:39.5%;opacity:0;pointer-events:none;background:url('door-room-v2.png') center/100% 100% no-repeat;filter:brightness(.58);transform:perspective(500px) rotateY(-5deg);transform-origin:right center;transition:opacity .16s}.door.closed{opacity:1}
.handle { display:none; }
@keyframes door-alert { 50% { filter:brightness(1.35) drop-shadow(0 0 9px #f2b35b); } }
.rug { display:none; }
.intruder { --approach:.72;opacity:0;z-index:2;position:absolute;left:31.5%;top:24%;width:10%;height:45%;transform:scale(var(--approach));transform-origin:center bottom;background:url('monster-walk.png') 0 center/300% 100% no-repeat;filter:brightness(.48) drop-shadow(0 8px 8px #000);transition:opacity .3s,transform .45s,filter .25s;animation:monster-walk .72s steps(1) infinite; }
.intruder.enemy-vor{background-image:url('vor-walk.png');width:9%}.intruder.enemy-pirate{background-image:url('pirate-walk.png');width:11%}.intruder.enemy-mechanicon{background-image:url('monster-walk.png')}@keyframes monster-walk{0%,100%{background-position:0 center}33%{background-position:50% center}66%{background-position:100% center}}
.intruder.at-balcony{left:82.5%;top:18%;width:13%;height:55%;transform:scaleX(-1) scale(var(--approach))}
.intruder.at-balcony.scared{transform:scaleX(-1) translateX(-34px) scale(calc(var(--approach) * .86))}
.intruder i { display:none; }
.intruder.visible { opacity:1; }
.intruder.scared{transform:translateX(-34px) scale(calc(var(--approach) * .86));filter:brightness(.25) drop-shadow(0 8px 8px #000)}
.intruder.tv-scared{transform:translateY(-28px) scale(calc(var(--approach) * .72));filter:brightness(.28) drop-shadow(0 8px 8px #000)}.intruder.at-balcony.tv-scared{transform:scaleX(-1) translateY(-28px) scale(calc(var(--approach) * .72))}
.intruder.hit{transform:rotate(-22deg) translate(-15px,28px) scale(var(--approach));filter:brightness(.7) drop-shadow(0 8px 8px #000)}
.sneaking-cat{position:absolute;z-index:15;right:9%;bottom:22%;width:25%;aspect-ratio:1.82;background:url('cat-sneak.png') center/contain no-repeat;opacity:0;filter:brightness(.72) drop-shadow(0 6px 5px #000);pointer-events:none;cursor:pointer}.sneaking-cat.visible{opacity:1;pointer-events:auto;animation:cat-sneak 15s ease-in-out both}@keyframes cat-sneak{0%{transform:translateX(30%) scale(.78);opacity:0}8%,88%{opacity:1}55%{transform:translateX(-18%) scale(.96)}100%{transform:translateX(-42%) scale(.86);opacity:0}}
.monster-scare{display:none;position:absolute;z-index:46;inset:0;place-items:center;overflow:hidden;background:#020202e8;pointer-events:none}.monster-scare.visible{display:grid;animation:monster-scare-bg .85s ease-out}.monster-scare img{height:125%;max-width:92%;object-fit:contain;filter:contrast(1.25) brightness(.65) drop-shadow(0 0 35px #a00);animation:monster-lunge .85s cubic-bezier(.12,.75,.2,1) both}@keyframes monster-lunge{from{transform:scale(.2) translateY(28%);opacity:.2}70%{transform:scale(1.12) translateY(1%);opacity:1}to{transform:scale(1.04)}}@keyframes monster-scare-bg{35%{background:#3d0707eb}}
.monster-scare.gentle.visible{animation:none;background:#050606e8}.monster-scare.gentle img{height:88%;filter:brightness(.52);animation:gentle-appear .55s ease-out both}@keyframes gentle-appear{from{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(.82)}}
.flashlight-beam { pointer-events:none;z-index:7;opacity:0;position:absolute;inset:0;background:radial-gradient(circle at var(--mx) var(--my),rgba(255,250,207,.62) 0 5%,rgba(213,221,190,.22) 14%,rgba(0,0,0,.66) 37%,rgba(0,0,0,.84));transition:opacity .15s; }
.flashlight-beam.on { opacity:1; }
.ball { opacity:0;pointer-events:none;z-index:15;position:absolute;left:29%;top:69%;width:7%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 32% 26%,#e6ee4c,#9ca815 58%,#343a00);box-shadow:inset -7px -5px 11px #3d4400,0 0 18px #dce940,0 5px 12px #000;will-change:transform; }
.crosshair{display:none;position:absolute;z-index:8;width:34px;height:34px;margin:-17px;place-items:center;border:2px solid #d8e18d;border-radius:50%;color:#d8e18d;font-size:24px;text-shadow:0 0 8px #000;pointer-events:none}.room.aiming .crosshair{display:grid}.room.aiming{cursor:none}
.hud { position:absolute;z-index:10;left:3%;right:3%;top:3%;display:flex;justify-content:space-between;text-shadow:0 2px 5px #000; }
.hud div { display:flex;flex-direction:column; }.hud strong{font-size:clamp(18px,2vw,32px);}.label{font-size:clamp(8px,.7vw,12px);letter-spacing:.22em;color:#969b96;}
.message-panel { position:absolute;z-index:10;left:4%;bottom:15%;width:52%;padding:12px 16px;background:#080a0ae8;border-left:3px solid #b72525; }
.notice-toggle{position:absolute;right:0;top:-27px;padding:5px 9px;border:1px solid #555;background:#090b0be8;color:#bbb;font-size:9px;letter-spacing:.12em;cursor:pointer}.game.notices-hidden .message-panel{width:auto;min-width:0;padding:0;border:0;background:transparent}.game.notices-hidden .message-panel>*:not(.notice-toggle){display:none}.game.notices-hidden .notice-toggle{position:fixed;left:2%;right:auto;top:auto;bottom:19%;color:#eee}.game.virus-alert .message-panel{display:block!important;width:52%;padding:12px 16px;border-left:3px solid #b72525;background:#080a0ae8}.game.virus-alert .message-panel>*{display:block!important}
.message-panel p { margin:0 0 8px;font-size:clamp(12px,1.2vw,20px); }
.objective{display:flex;gap:10px;align-items:center;margin-bottom:5px}.objective span{font-size:9px;letter-spacing:.2em;color:#c63838}.objective strong{font-size:clamp(11px,1vw,16px)}
.danger-track{height:4px;background:#333;overflow:hidden;}.danger-track span{display:block;width:10%;height:100%;background:#c72b2b;transition:width .3s;}
.track-labels{display:flex;justify-content:space-between;margin-top:4px;font-size:8px;letter-spacing:.12em;color:#777}
.blanket-overlay{position:absolute;z-index:18;inset:0;pointer-events:none;background:#020303 url('odeyalo-game.png') center/cover no-repeat;opacity:0;clip-path:inset(100% 0 0);transform:scale(1.08) translateY(8%);transition:clip-path .48s cubic-bezier(.2,.8,.2,1),opacity .18s,transform .48s cubic-bezier(.2,.8,.2,1)}.blanket-overlay.visible{opacity:1;clip-path:inset(0);transform:scale(1) translateY(0)}
.controls { position:absolute;z-index:20;left:3%;right:3%;bottom:3%;display:grid;grid-template-columns:repeat(7,1fr);gap:1%; }
.controls button[hidden]{display:none}.controls .decline-call{background:#651616;border-color:#a93636}.controls .decline-call:hover,.controls .decline-call.recommended{background:#d4473f;color:#fff}
.controls button,.card button { padding:clamp(8px,1.1vw,16px);border:1px solid #4b4f4c;background:#111514dd;cursor:pointer;transition:.15s; }
.fullscreen-button{position:absolute;z-index:14;right:3%;top:9%;width:38px;height:38px;border:1px solid #555;background:#090b0bcc;color:#ddd;font-size:21px;cursor:pointer}.rotate-hint{display:none;position:absolute;z-index:70;inset:0;place-items:center;align-content:center;gap:8px;background:#020303f5;text-align:center}.rotate-hint strong{letter-spacing:.16em}.rotate-hint span{font-size:12px;color:#929692}
.controls button:hover,.controls button.active,.controls button.recommended,.card button:hover { background:#d8d6cc;color:#090a09; }.controls button.recommended{animation:hint .8s infinite alternate;box-shadow:0 0 18px #e5e0c544}.controls button:disabled{opacity:.35;cursor:not-allowed;}
@keyframes hint{to{transform:translateY(-3px);box-shadow:0 0 30px #e5e0c588}}
.noise { pointer-events:none;position:absolute;z-index:20;inset:-50%;opacity:.08;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E");animation:noise .25s steps(2) infinite; }
@keyframes noise{25%{transform:translate(3%,-2%)}50%{transform:translate(-2%,3%)}75%{transform:translate(2%,2%)}}
.overlay { display:none;position:absolute;z-index:30;inset:0;place-items:center;background:#020303e8;text-align:center;padding:20px; }.overlay.visible{display:grid;}
.splash{display:none;position:absolute;z-index:50;inset:0;place-items:center;align-content:center;gap:12px;overflow:hidden;background:#030405;cursor:pointer;text-align:center}.splash.visible{display:grid}.splash::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 3px,#fff 4px);opacity:.025;pointer-events:none}.splash-glow{position:absolute;width:55%;aspect-ratio:1;border-radius:50%;background:#ff9d0030;filter:blur(70px);animation:splash-pulse 1.4s ease-in-out infinite alternate}.splash-logo{position:relative;width:min(52%,600px);height:auto;filter:drop-shadow(0 12px 22px #000) drop-shadow(0 0 28px #ffad2144);animation:logo-in .8s cubic-bezier(.2,.8,.2,1) both}.splash p{position:relative;margin:8px 0 0;letter-spacing:.38em;font-size:clamp(11px,1.2vw,18px);color:#e7e3d8;animation:text-in .7s .35s both}.splash span{position:absolute;bottom:6%;font-size:10px;letter-spacing:.16em;color:#686b68;animation:text-in .7s 1s both}@keyframes logo-in{from{opacity:0;transform:scale(.76);filter:blur(12px)}to{opacity:1;transform:scale(1)}}@keyframes text-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes splash-pulse{to{transform:scale(1.16);opacity:.65}}.splash.leaving{animation:splash-out .45s forwards}@keyframes splash-out{to{opacity:0;transform:scale(1.04)}}
.card{width:min(520px,90%);}.card h1,.card h2{margin:.15em 0;font-size:clamp(38px,6vw,82px);line-height:.88;text-transform:uppercase;letter-spacing:-.05em;}.card h2{font-size:clamp(35px,5vw,68px)}.card p{line-height:1.5;color:#b8bcb8}.card button{min-width:180px;margin-top:12px}.eyebrow{letter-spacing:.28em!important;color:#b52c2c!important;font-weight:700;font-size:12px;}
.ransom-title{line-height:1.12!important;letter-spacing:0!important}.ransom-title span{display:inline-grid;place-items:center;min-width:.66em;margin:.03em;padding:.04em .1em;color:#111;background:#e7dfc9;font-family:Georgia,serif;font-weight:900;box-shadow:1px 3px 4px #0009;clip-path:polygon(3% 4%,97% 0,100% 94%,5% 100%);transform:rotate(-2deg)}.ransom-title span:nth-child(3n){color:#eee;background:#171717;font-family:Impact,Haettenschweiler,sans-serif;transform:rotate(3deg)}.ransom-title span:nth-child(4n){color:#111;background:#d6b44b;font-family:"Courier New",monospace;transform:rotate(-5deg) translateY(2px)}.ransom-title span:nth-child(5n){color:#6d1212;background:#d9d4ca;font-family:Arial Black,sans-serif;transform:rotate(5deg)}.ransom-title span:nth-child(7n){color:#eee;background:#7a1717;transform:rotate(-4deg) scale(1.08)}
.difficulty-buttons,.end-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:8px}.difficulty-buttons button,.end-actions button{min-width:130px}.ransom-game-over{margin:.2em 0;font-size:clamp(42px,7vw,92px);font-weight:900;line-height:1}.ransom-game-over span{display:inline-block;margin:.01em;padding:.03em .09em;color:#111;background:#e3ddce;font-family:Georgia,serif;clip-path:polygon(3% 5%,98% 0,95% 97%,0 92%);transform:rotate(-4deg);box-shadow:2px 3px 5px #000}.ransom-game-over span:nth-child(2n){color:#eee;background:#761919;font-family:Impact,sans-serif;transform:rotate(4deg)}.ransom-game-over span:nth-child(3n){background:#d5b648;font-family:"Courier New",monospace;transform:rotate(-2deg) translateY(3px)}
.end-actions .clips-action{background:#d99431;color:#090705;border-color:#ffc567;font-weight:900;box-shadow:0 0 24px #d9943155;animation:clips-pulse 1.2s ease-in-out infinite alternate}@keyframes clips-pulse{to{transform:translateY(-3px);box-shadow:0 0 38px #eaa43d99}}
@media(max-width:900px){.game{width:100vw;height:100dvh;aspect-ratio:auto}.controls{left:max(2%,env(safe-area-inset-left));right:max(2%,env(safe-area-inset-right));bottom:max(2%,env(safe-area-inset-bottom));grid-template-columns:repeat(6,1fr);gap:4px}.controls button{min-height:44px;font-size:9px;padding:5px 3px;touch-action:manipulation}.message-panel{left:max(2%,env(safe-area-inset-left));bottom:19%;width:62%;padding:8px 10px}.message-panel p{font-size:11px}.hud{left:max(2%,env(safe-area-inset-left));right:max(2%,env(safe-area-inset-right));top:max(2%,env(safe-area-inset-top))}.fullscreen-button{right:max(2%,env(safe-area-inset-right));top:12%}}
@media(max-width:700px) and (orientation:portrait){.rotate-hint{display:flex;position:absolute;inset:auto 7% 18%;min-height:110px;padding:18px;flex-direction:column;justify-content:center;border:2px solid #d99431;background:#080a0af2;box-shadow:0 8px 35px #000;text-align:center;pointer-events:none}.rotate-hint strong{font-size:clamp(20px,7vw,32px);color:#fff}.rotate-hint span{font-size:14px;color:#ddd}}
@supports(height:100svh){@media(max-width:900px){body{min-height:100svh}.game{width:100vw;height:100svh;max-height:100dvh}}}
.splash span{padding:9px 14px;border:1px solid #aaa8;color:#f0eee7!important;background:#0009;text-shadow:0 2px 5px #000;font-size:11px!important}.difficulty-buttons button[data-difficulty="calm"]{border-color:#6c91bd}.difficulty-buttons button[data-difficulty="normal"]{border-color:#d7b24e}.difficulty-buttons button[data-difficulty="scary"]{border-color:#a22;color:#ffb4b4}
.game[data-difficulty="scary"] .phone-scare.visible{animation:phone-dread 1.05s ease-in-out 3;background-color:#260000cc}.game[data-difficulty="scary"] .monster-scare.visible{animation:scary-pulse .8s ease-in-out 2}@keyframes phone-dread{0%,100%{filter:brightness(.62) contrast(1.08);background-color:#100000dd}50%{filter:brightness(1.18) contrast(1.3) saturate(1.18);background-color:#5b0808e8}}@keyframes scary-pulse{0%,100%{filter:none}50%{filter:brightness(1.25) contrast(1.2);background-color:#5b0808}}
.room.prelude{filter:none;transition:filter 7s ease}.room.prelude.dimming{filter:brightness(.82) saturate(.78)}.room.prelude::after{content:"";position:absolute;z-index:0;inset:0;pointer-events:none;background:url('scene-01-day.png') center/cover no-repeat;opacity:1;transition:opacity 7s ease}.room.prelude.dimming::after{opacity:0}
.room.prelude .hand-overlay{opacity:0}.hand-overlay{transition:opacity .5s ease}
.room.morning::after{content:"";position:absolute;z-index:0;inset:0;pointer-events:none;background:url('scene-01-day.png') center/cover no-repeat;opacity:1;animation:morning-in 3.8s ease both}.room.morning::before{background:linear-gradient(90deg,#ffe3a922,transparent 52%),radial-gradient(circle at 86% 28%,#fff2bd55,transparent 34%)}.room.morning .intruder,.room.morning .figure{display:none!important}@keyframes morning-in{from{opacity:0;filter:brightness(.55) saturate(.65)}to{opacity:1;filter:brightness(.93) saturate(.88)}}
@media(prefers-reduced-motion:reduce){.phone-scare.visible,.monster-scare.visible,.game[data-difficulty="scary"] .phone-scare.visible,.game[data-difficulty="scary"] .monster-scare.visible{animation:none!important}.phone-scare img,.monster-scare img{animation:none!important;transform:scale(.9)}}
.noise{opacity:.025!important;animation-duration:.8s!important}.game:has(.room.prelude) .noise{display:none!important}
#startScreen{background:rgba(2,3,3,.78)!important;backdrop-filter:brightness(.56) saturate(.82)}
.heat-warning{display:none;position:absolute;z-index:26;top:3%;left:50%;transform:translateX(-50%);padding:10px 18px;border:2px solid #ff796d;background:#4b0a0af2;color:#fff;font-weight:800;font-size:clamp(12px,1.25vw,21px);white-space:nowrap;box-shadow:0 0 24px #d22b2b99}.game.hot .heat-warning{display:block;animation:heat-warning .8s ease-in-out infinite alternate}@keyframes heat-warning{to{filter:brightness(1.3);transform:translateX(-50%) scale(1.025)}}
.game.hot::before{content:"";position:absolute;z-index:25;inset:0;pointer-events:none;background:radial-gradient(ellipse at 8% 20%,transparent 0 3px,#d8eef34d 4px 7px,transparent 8px),radial-gradient(ellipse at 94% 38%,transparent 0 4px,#d8eef342 5px 9px,transparent 10px),linear-gradient(90deg,#79a6ad16,transparent 16%,transparent 84%,#79a6ad16);background-size:70px 150px,90px 190px,100% 100%;animation:sweat-run 2.8s linear infinite}@keyframes sweat-run{to{background-position:0 150px,0 190px,0 0}}
.noise{display:none!important}
.tv.virus .tv-virus{display:grid!important;place-items:center;color:#fff;font:900 clamp(8px,1vw,16px)/1.1 monospace;white-space:pre-line;text-align:center;text-shadow:0 0 8px #f00;background-color:#140000dd!important}
.game:has(#startScreen.visible) .message-panel,.game:has(#startScreen.visible) .hud,.game:has(#startScreen.visible) .controls,.game:has(#startScreen.visible) .fullscreen-button{visibility:hidden}
.piano-keys{position:absolute;z-index:12;left:37.5%;top:59.2%;width:27.5%;height:5.8%;display:grid;grid-template-columns:repeat(8,1fr);transform:perspective(300px) rotateX(12deg)}.piano-keys button{min-width:0;padding:0;border:0;border-right:1px solid transparent;background:transparent;cursor:pointer;touch-action:manipulation}.piano-keys button:active,.piano-keys button.played{background:#ffd76b99;box-shadow:0 0 14px #ffb52b}.room.peeking{background-size:142%;background-position:31% 48%;transition:background-size .45s,background-position .45s}.room.peeking .hand-overlay{opacity:.15}.door{cursor:zoom-in}
.notice-toggle{top:-48px!important;min-height:44px!important;padding:9px 13px!important;font-size:11px!important;font-weight:800!important;color:#eee!important;touch-action:manipulation}.game.notices-hidden .notice-toggle{min-width:150px;bottom:20%!important}
.game.warm::after{content:"";position:absolute;z-index:9;inset:0;pointer-events:none;background:linear-gradient(90deg,#7b3c1518,transparent 24%,transparent 76%,#7b3c1518);backdrop-filter:blur(.18px)}.game.hot::after{background:linear-gradient(90deg,#8e4c262b,transparent 28%,transparent 72%,#8e4c262b);backdrop-filter:blur(.45px)}.game.hot::before{background:linear-gradient(100deg,transparent 0 5%,#d9edf037 5.5% 5.8%,transparent 6.2% 91%,#d9edf032 91.4% 91.7%,transparent 92%),linear-gradient(96deg,transparent 0 12%,#b9d7dc2b 12.4% 12.7%,transparent 13% 96%,#b9d7dc28 96.3% 96.6%,transparent 97%);background-size:100% 170%,100% 220%;animation:sweat-run 4.6s linear infinite}
.tv-video{inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:50% 50%!important;transform:none!important}.tv-screen{contain:paint}.controls{grid-template-columns:repeat(9,1fr)}
.notice-toggle{min-width:190px!important;min-height:52px!important;font-size:13px!important;padding:10px 14px!important;white-space:nowrap}.game.notices-hidden .notice-toggle{min-width:210px!important;font-size:13px!important}
.right-hand.phone,.right-hand.monster-phone{inset:0!important;background-size:contain,19% 67%!important;background-position:center,center!important}
@media(max-width:900px){.game{width:min(100vw,calc(100dvh * 1.77778))!important;height:min(100dvh,calc(100vw / 1.77778))!important;aspect-ratio:16/9!important}}

/* release 0.59 — location quests, sound direction and mobile controls */
.sound-radar{display:flex;justify-content:space-between;gap:8px;margin-top:7px;font-size:clamp(8px,.72vw,11px);font-weight:800;letter-spacing:.08em;color:#6e7470}.sound-radar span{padding:3px 5px;border:1px solid transparent;transition:.15s}.sound-radar span.active{color:#fff1c2;border-color:#d89a3e;background:#5c2608aa;box-shadow:0 0 15px #e99e3e77;animation:radar-pulse .7s ease-in-out infinite alternate}@keyframes radar-pulse{to{filter:brightness(1.45)}}
.location-view{position:absolute;z-index:29;inset:0;overflow:hidden;background:#030405}.location-view[hidden]{display:none}.location-view>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.72) saturate(.8);animation:location-in .38s ease-out both}.location-view.light-on>img{filter:brightness(1.12) saturate(.85)}.location-shade{position:absolute;inset:0;background:linear-gradient(90deg,#000c 0,transparent 65%),linear-gradient(0deg,#000c 0,transparent 45%);pointer-events:none}.location-card{position:absolute;left:4%;bottom:6%;width:min(520px,58%);padding:18px 22px;border-left:4px solid #d99431;background:#060807e8;box-shadow:0 16px 50px #000}.location-card>span{font-size:10px;letter-spacing:.24em;color:#d99431}.location-card>strong{display:block;margin-top:6px;font-size:clamp(20px,2.4vw,38px);line-height:1}.location-card>p{margin:8px 0 12px;color:#d5d6d1;font-size:clamp(12px,1.15vw,18px)}.location-actions{display:flex;gap:8px;flex-wrap:wrap}.location-actions button{min-height:42px;padding:9px 16px;border:1px solid #777;background:#151917;color:#fff;font-weight:800;cursor:pointer}.location-actions button:first-child{border-color:#d99431;background:#d99431;color:#080604}.location-actions button[hidden]{display:none}@keyframes location-in{from{opacity:0;transform:scale(1.035)}to{opacity:1;transform:none}}
.balcony-door.shake{animation:door-alert .42s infinite}.difficulty-buttons small{display:block;margin-top:3px;font-size:9px;font-weight:500;letter-spacing:.08em;opacity:.75}.game[data-difficulty="calm"] .monster-scare{filter:saturate(.55)}
#startScreen{background:rgba(2,3,3,.82)!important}.room.prelude::after{background-image:url('scene-01-day.png');filter:brightness(.88) saturate(.88)}.room.prelude.dimming::after{opacity:0}.room.prelude .hand-overlay{opacity:0}
.controls{grid-template-columns:repeat(6,1fr);gap:6px;bottom:2%}.controls button{min-height:40px;padding:clamp(6px,.72vw,11px);font-size:clamp(9px,.68vw,12px);line-height:1.12}.message-panel{bottom:18%;width:58%}
@media(max-width:900px){
  .controls{left:max(1.5%,env(safe-area-inset-left));right:max(1.5%,env(safe-area-inset-right));bottom:max(1.5%,env(safe-area-inset-bottom));grid-template-columns:repeat(6,1fr);gap:3px}
  .controls button{min-height:34px;padding:3px 2px;font-size:8px}
  .message-panel{left:max(1.5%,env(safe-area-inset-left));bottom:23%;width:63%;padding:6px 9px}.message-panel p{margin-bottom:4px;font-size:10px}.objective{margin-bottom:2px}.track-labels{display:none}.sound-radar{margin-top:3px;font-size:7px}.sound-radar span{padding:1px 3px}
  .notice-toggle{top:-34px!important;min-width:140px!important;min-height:32px!important;padding:5px 8px!important;font-size:8px!important}.game.notices-hidden .notice-toggle{min-width:140px!important;bottom:24%!important;font-size:8px!important}
  .location-card{left:max(2%,env(safe-area-inset-left));bottom:max(3%,env(safe-area-inset-bottom));width:64%;padding:10px 12px}.location-card>strong{font-size:20px}.location-card>p{font-size:10px;margin:4px 0 7px}.location-actions button{min-height:34px;padding:5px 9px;font-size:9px}
  .phone-dialogue{right:max(3%,env(safe-area-inset-right));top:12%;width:44%;padding:10px 12px}.phone-dialogue p{font-size:12px}
  .right-hand.phone,.right-hand.monster-phone{background-size:contain!important;background-position:center!important}
}
@media(max-height:430px) and (orientation:landscape){.hud{top:1%}.hud strong{font-size:16px}.fullscreen-button{top:8%;width:32px;height:32px}.heat-warning{top:1%;padding:5px 10px;font-size:10px}.controls button{min-height:30px}.message-panel{bottom:22%}}
@media(max-width:700px) and (orientation:portrait){
  body{display:block;min-height:100%;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}
  .game{width:100vw!important;height:calc(56.25vw + 610px)!important;max-height:none!important;aspect-ratio:auto!important;overflow:visible!important;box-shadow:none}
  .room{inset:0 0 auto!important;width:100%;height:56.25vw;background-size:cover!important}
  .hud{top:8px}.fullscreen-button{top:45px}.heat-warning{top:8px;max-width:72%;white-space:normal;text-align:center}
  .message-panel{top:calc(56.25vw + 22px);bottom:auto!important;left:3%;right:3%;width:94%;min-height:128px;padding:12px 14px}.message-panel p{font-size:13px}.objective strong{font-size:13px}.sound-radar{font-size:9px}
  .controls{top:calc(56.25vw + 176px);bottom:auto!important;left:3%;right:3%;grid-template-columns:repeat(2,1fr);gap:7px}.controls button{min-height:48px;padding:8px 5px;font-size:11px}
  .rotate-hint{display:flex;position:absolute;z-index:24;inset:calc(56.25vw + 140px) auto auto 50%;width:auto;min-height:0;padding:4px 9px;transform:translateX(-50%);justify-content:center;border:0;background:#080a0abd;pointer-events:none;white-space:nowrap}.rotate-hint strong{font-size:9px;color:#c5a66e}
  .overlay,.splash,.location-view,.phone-scare,.monster-scare{position:fixed;height:100svh;inset:0;overflow-y:auto}.overlay .card{margin:auto}.phone-dialogue{position:fixed;top:10%;right:4%;width:70%;z-index:44}.game.notices-hidden .notice-toggle{position:absolute;top:calc(56.25vw + 20px)!important;bottom:auto!important}
}
.game.pseudo-fullscreen{position:fixed!important;z-index:100;inset:0!important;width:100vw!important;height:100svh!important;max-height:none!important;background:#030405}
