:root{color-scheme:dark;--paper:#e7e0cf;--ash:#89918a;--red:#9b101a;--line:#c4b68b30}*{box-sizing:border-box}html,body{margin:0;background:#050807;color:var(--paper);font-family:Tahoma,sans-serif}button,input{font:inherit}button{cursor:pointer;color:inherit;border:0;background:transparent}button:focus-visible{outline:1px solid #dcba83;outline-offset:6px}button:disabled{cursor:not-allowed}button:hover:not(:disabled){color:#e8a7a7}.screen{display:none;position:relative;min-height:100svh;isolation:isolate;overflow:hidden}.screen.active{display:block}.menu-bg,.chapter-bg,.shade{position:absolute;inset:0;z-index:-2;background-position:center;background-size:cover}.menu-bg{background-image:url(assets/menu.webp);animation:menuBreath 22s ease-in-out infinite alternate}.chapter-bg{background-image:url(assets/chapters.webp)}.shade{z-index:-1;background:linear-gradient(90deg,#050909ed,#05090955 75%,#05090925)}#menu{height:100svh;background:#030605}.menu-content{position:absolute;top:69%;width:100%;text-align:center}#play-button{font-family:Georgia,Tahoma,serif;font-size:clamp(26px,3.2vw,48px);letter-spacing:.2em;padding:20px 70px;position:relative;opacity:0;animation:revealMenu 2.5s 1.3s forwards;text-shadow:0 2px 20px #000;transition:color .5s,text-shadow .5s}#play-button:after{content:'';position:absolute;left:30%;right:30%;bottom:9px;height:1px;background:linear-gradient(90deg,transparent,#bdad87,transparent)}#play-button:hover{color:#c11b24;text-shadow:0 4px 0 #4d0004,0 8px 25px #a50014}.menu-note{position:absolute;bottom:20px;width:100%;text-align:center;color:#b6b3a6;font-size:11px;letter-spacing:.06em;opacity:0;animation:revealMenu 2s 3s forwards}header{display:flex;justify-content:space-between;align-items:center;gap:14px;height:80px;padding:0 4vw;position:relative;z-index:5;border-bottom:1px solid #ffffff0d}.wordmark{font-family:Georgia,serif;font-size:17px;letter-spacing:.13em;color:#d1c4ac}.text-button{font-size:12px;color:#b1b3a9;padding:12px 8px}.header-tools{display:flex;gap:22px}.eyebrow{font-size:11px;letter-spacing:.17em;color:#b2a489}.chapter-body{padding:6vh 11vw 7vh}.chapter-body>.eyebrow{margin-bottom:28px}#chapter-list{display:flex;flex-direction:column;gap:4px;max-width:580px}.chapter-row{position:relative;text-align:left;padding:16px 15px;display:flex;gap:42px;align-items:center;isolation:isolate;min-height:64px}.chapter-row span{font-family:Georgia,serif;font-size:14px;letter-spacing:.13em}.chapter-row strong{font-size:clamp(19px,2vw,28px);font-weight:400;transition:color .4s,text-shadow .4s}.chapter-row.unreleased{color:#414945}.chapter-row.available{color:white}.chapter-row.available:hover,.chapter-row.available:focus-visible{color:#d11826;background:linear-gradient(90deg,#64060c33,transparent);text-shadow:0 3px 0 #5e0009,0 7px 18px #ad0017}.blood{position:absolute;top:75%;width:4px;height:0;background:linear-gradient(#b10b1c,#530008);border-radius:0 0 8px 8px;transition:height 1.4s;z-index:-1}.blood:after{content:'';position:absolute;width:6px;height:9px;bottom:-2px;left:-1px;border-radius:50%;background:#87000e;opacity:0}.b1{left:42%}.b2{left:51%;transition-delay:.2s}.b3{left:62%;transition-delay:.4s}.available:hover .b1{height:21px}.available:hover .b2{height:30px}.available:hover .b3{height:12px}.available:hover .blood:after{opacity:1}footer{padding:20px 6vw;color:#6d7770;font-size:11px;position:absolute;bottom:0}.game-header{height:64px;background:#0a100e}.game-header>div:nth-child(2){display:flex;gap:20px;align-items:center}.game-header b{font-size:13px;font-weight:400}#stage{position:relative;width:min(100%,calc((100svh - 240px)*1.77778));aspect-ratio:16/9;margin:0 auto;background:#080d0b;overflow:hidden}#scene-image{position:absolute;inset:-1%;background-size:cover;background-position:center;transition:filter 2s;will-change:transform}#scene-light{position:absolute;inset:0;background:radial-gradient(ellipse 37% 52% at var(--x,50%) var(--y,50%),#e2e5cd04 0%,#0010070a 35%,#000a 100%);pointer-events:none;z-index:2}#red-glow{position:absolute;inset:0;opacity:0;pointer-events:none;z-index:3;mix-blend-mode:screen;transition:opacity .4s;background:radial-gradient(ellipse at var(--danger-x,50%) 36%,#d309125c,transparent 35%)}#particles{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3}#hotspots{position:absolute;inset:0;z-index:5}.spot{position:absolute;transform:translate(-50%,-50%);min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;background:transparent}.spot .dot{display:block;width:8px;height:8px;border:1px solid #e0dbbcaa;transform:rotate(45deg);box-shadow:0 0 10px #fff2}.spot .label{position:absolute;top:38px;background:#08110edb;border:1px solid #c3b88830;padding:5px 10px;white-space:nowrap;font-size:11px;opacity:0;pointer-events:none;transition:.2s}.spot:hover .label,.spot:focus-visible .label{opacity:1}.spot:hover .dot{background:#d0b986;box-shadow:0 0 22px #e5b16f;transform:rotate(135deg)}.spot.danger .dot{width:16px;height:16px;border-color:#dd7f68;animation:alarm 1s infinite}.spot.danger .label,.spot.nav .label{opacity:1}.spot.nav{background:#08120dbb;border:1px solid #b9b18a55;padding:7px 12px;width:auto;min-width:85px;gap:8px}.spot.nav .label{position:static;background:none;border:0;padding:0;white-space:normal}.spot.nav .dot{width:5px;height:5px}#frame-vignette{position:absolute;inset:0;z-index:4;pointer-events:none;box-shadow:inset 0 0 95px 15px #0009}#scene-label{position:absolute;left:25px;top:20px;font-size:10px;letter-spacing:.13em;color:#c2b7a17a;z-index:4;pointer-events:none}#scare-layer{position:absolute;inset:0;background-size:cover;background-position:center;z-index:7;opacity:0;pointer-events:none}#scare-layer.show{opacity:1;animation:lunge .5s cubic-bezier(.1,.7,.1,1)}#scene-transition{position:absolute;inset:0;z-index:8;background:#030504;opacity:0;pointer-events:none}.transitioning #scene-transition{animation:sceneFade .65s}.impact{animation:impact .45s}#timed{position:absolute;left:25%;right:25%;top:7%;z-index:9;text-align:center;font-size:13px;padding:12px;background:#090e0be0;color:#f0cbb3}#timed>div{height:2px;background:#ffffff25;margin-top:12px}#timed-fill{display:block;height:100%;width:100%;background:#cc735b;transform-origin:left}.story-strip{display:grid;grid-template-columns:1fr 1.7fr;gap:30px;padding:15px 4vw;border-top:1px solid var(--line);min-height:85px;background:#0a110e}.goal small,.speech small,.inventory-label small{display:block;font-size:10px;color:#ab9d7e;letter-spacing:.1em;margin-bottom:7px}.goal span{font-size:12px;color:#c2c7b8;line-height:1.6}.speech{border-left:1px solid #b2a57d25;padding-left:25px}.speech p{font-size:14px;margin:0;line-height:1.7;color:#e2dfd3}.inventory-bar{display:flex;align-items:center;gap:20px;padding:10px 4vw;background:#070d0a;border-top:1px solid #ffffff09;min-height:75px}.inventory-label{width:180px}.inventory-label span{font-size:10px;color:#758174;display:block}.inventory-bar #inventory{display:flex;gap:7px;flex:1}.slot{height:52px;width:58px;position:relative;border:1px solid #8a8e6f28;background:#101812;flex-shrink:0}.slot.occupied{background:#151e18}.slot.selected{border-color:#d4b779;box-shadow:0 0 15px #c9ac6130}.item-picture{width:100%;height:100%;background-image:url(assets/items.webp);background-size:400% 200%;background-repeat:no-repeat}.slot small{position:absolute;left:4px;top:3px;font-size:8px;color:#8e987f}.slot:hover:after{content:attr(aria-label);position:absolute;bottom:calc(100% + 7px);left:50%;transform:translateX(-50%);padding:6px 10px;white-space:nowrap;background:#0c1511;border:1px solid #c6b98d55;font-size:11px;z-index:12}.slot.used{opacity:.5}.game-footer{display:flex;justify-content:space-between;padding:8px 4vw;font-size:9px;color:#5e6c61}.mist{position:absolute;pointer-events:none;opacity:.11;inset:0;background:radial-gradient(ellipse at 20% 90%,#b6d2bd66,transparent 50%),radial-gradient(ellipse at 75% 70%,#aabec844,transparent 55%);filter:blur(15px);animation:mistDrift 20s linear infinite alternate}.mist-b{animation-delay:-10s;animation-direction:alternate-reverse;opacity:.08}.game-mist{z-index:2;opacity:.07}.gallery-body{position:relative;padding:45px 6vw}.gallery-body h1,.ending-body h1{font-size:clamp(28px,4vw,54px);font-weight:400;font-family:Georgia,Tahoma,serif;line-height:1.5;margin:15px 0 28px}#gallery-tabs{display:flex;gap:15px;flex-wrap:wrap;margin-bottom:30px}#gallery-tabs button{font-size:12px;padding:10px 16px;border-bottom:1px solid #474e42}#gallery-tabs button.current{color:#e4ceb0;border-color:#d3b18a}#gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.scare-card{padding:0;text-align:left;border:1px solid #8f896e38;background:#0b140f}.scare-card .preview{aspect-ratio:16/9;background-position:center;background-size:cover;display:grid;place-items:center;color:#525f52;font-size:34px}.scare-card .card-label{padding:15px;font-size:12px;display:block}.scare-card.locked .preview{background:#101b15}.muted{font-size:12px;color:#8d9789;line-height:1.8}.ending-body{position:relative;padding:14vh 10vw}.ending-body p{line-height:1.9;color:#a9b4a5}.end-unlock{line-height:1.8;padding:20px 0;margin:15px 0;color:#e4d5b8}.end-unlock small{color:#85947f}.primary{background:#72121a;padding:13px 24px;border:1px solid #b55454;color:#f1dfd6}.primary:hover{background:#a21b27}.modal-card{width:min(580px,100%);max-height:88svh;overflow:auto;border:1px solid #aa9a6945;background:linear-gradient(145deg,#152018,#090f0b);padding:32px;box-shadow:0 20px 100px #000}#modal{position:fixed;inset:0;z-index:30;background:#010604da;backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;padding:20px}#modal[hidden],#timed[hidden]{display:none}h2{font-size:25px;line-height:1.5;font-weight:400}#modal-body{font-size:14px;color:#c4cbbd;line-height:1.9}#modal-body p{margin:12px 0}#modal-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}#modal-actions button{border:1px solid #aaa07b60;padding:10px 20px;background:#18221a}.setting{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:13px 0;border-bottom:1px solid var(--line)}input[type=range]{width:140px;accent-color:#ae9c6d}input[type=checkbox]{accent-color:#ae9c6d;width:19px;height:19px}.code-lock{display:flex;justify-content:center;gap:15px;margin:25px 0}.code-lock select{font-size:29px;background:#060b08;color:#cfba8a;border:1px solid #ad9c6b60;padding:10px}.note-paper{background:#b8aa7c;color:#262a1f;padding:23px;transform:rotate(-1deg);font-family:Georgia,Tahoma,serif;box-shadow:0 5px 25px #0007}.inspect-image{width:180px;height:180px;margin:15px auto;background-color:#0a100c;border:1px solid #ffffff10}.gallery-player{width:100%;aspect-ratio:16/9;background-size:cover;background-position:center}.archive-modal{width:min(960px,100%)}#toast{position:fixed;left:50%;bottom:100px;transform:translate(-50%,15px);z-index:40;opacity:0;padding:12px 23px;background:#122018ed;border:1px solid #c3ad7644;font-size:13px;pointer-events:none;transition:.3s}#toast.visible{opacity:1;transform:translate(-50%,0)}#loading{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#050907;gap:20px;transition:opacity .8s}#loading span{font:26px Georgia,serif;letter-spacing:.2em;color:#ad9c7b}#loading small{color:#74816e;font-size:11px}#loading.done{opacity:0;pointer-events:none}@keyframes revealMenu{from{opacity:0;transform:translateY(20px);filter:blur(5px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@keyframes menuBreath{to{transform:scale(1.035)}}@keyframes mistDrift{to{transform:translateX(7%) scale(1.15)}}@keyframes alarm{50%{box-shadow:0 0 22px #e12a1e;transform:rotate(45deg) scale(1.2)}}@keyframes lunge{from{transform:scale(.82);filter:blur(4px)}to{transform:scale(1);filter:blur(0)}}@keyframes impact{15%{transform:translate(-6px,4px)}35%{transform:translate(7px,-3px)}60%{transform:translate(-3px,-2px)}85%{transform:translate(2px,1px)}}@keyframes sceneFade{0%{opacity:.8}100%{opacity:0}}.reduced *{animation:none!important;transition:none!important}.reduced #play-button,.reduced .menu-note{opacity:1}@media(max-width:850px){header{height:64px;padding:0 18px}.header-tools{gap:8px}.wordmark{font-size:12px}.text-button{font-size:11px}.chapter-body{padding:5vh 8vw}.chapter-row{gap:25px}.chapter-row span{font-size:11px}.chapter-row strong{font-size:20px}#stage{width:100%;margin-top:0}.game-header>div:nth-child(2){display:block}.game-header b{display:block;font-size:10px;margin-top:5px}.game-header .eyebrow{font-size:9px}.story-strip{padding:14px 18px;gap:15px}.speech{padding-left:15px}.speech p{font-size:12px}.goal span{font-size:11px}.inventory-bar{padding:10px 15px;gap:10px;flex-wrap:wrap}.inventory-label{width:100%;display:flex;gap:15px;align-items:center}.inventory-label small{margin:0}.slot{height:45px;width:45px}.inventory-bar #inventory{gap:4px}.inventory-bar #inspect-button{font-size:10px;padding:10px 0}.game-footer{padding:9px 15px;font-size:8px;gap:15px}#gallery-grid{grid-template-columns:repeat(2,1fr)}.gallery-body{padding:30px 6vw}.menu-bg{background-size:auto 100%}.menu-content{top:70%}#timed{left:15%;right:15%;font-size:11px;padding:8px}#scene-label{font-size:8px;left:15px;top:12px}#frame-vignette{box-shadow:inset 0 0 40px #0008}.modal-card{padding:25px}.game-mist{opacity:.04}}@media(pointer:coarse){.spot .label{opacity:1;font-size:9px;padding:3px 5px;top:31px}.spot{min-width:38px;min-height:38px}.slot:hover:after{display:none}}@media(max-width:430px){.slot{width:36px;height:39px}.story-strip{grid-template-columns:1fr;gap:9px}.speech{border-left:0;padding:10px 0 0;border-top:1px solid var(--line)}#game .header-tools{gap:0}.chapter-row{gap:16px}.chapter-row strong{font-size:18px}.chapter-body{padding:4vh 5vw}.chapter-row{min-height:60px}footer{font-size:9px}}@media(prefers-reduced-motion:reduce){*{animation:none!important}#play-button,.menu-note{opacity:1}}
.spot.secret .dot{opacity:.18;width:4px;height:4px;box-shadow:none}.spot.secret .label{opacity:0}.spot.secret:hover .dot,.spot.secret:focus-visible .dot{opacity:1}.spot.secret:hover .label,.spot.secret:focus-visible .label{opacity:1}.secret-candle .dot{opacity:.4}.prologue small{color:#9caa90;font-size:11px;letter-spacing:.12em}.prologue p{font-size:19px!important;line-height:2.1;margin:25px 0!important;color:#e0dfce}.secret-card{margin:24px 0;padding:24px;width:100%;text-align:left;border:1px solid #7c8b5638;background:#17221655;display:flex;align-items:center;gap:25px}.secret-card span{color:#9dba83;font-size:11px;letter-spacing:.15em}.secret-card strong{font-size:15px;font-weight:400;color:#b3c2a1}.secret-card small{font-size:11px;color:#7a8971;margin-left:auto}.secret-card:disabled{opacity:.5}.memory-list{display:grid;gap:7px}.memory-list button{text-align:left;padding:12px 10px;border-bottom:1px solid #87906f30;font-size:12px}.memory-list button:disabled{color:#53604f}.memory-list button:not(:disabled){color:#d5cba9}@media(max-width:700px){.secret-card{display:block}.secret-card strong,.secret-card small{display:block;margin:10px 0 0}.prologue p{font-size:16px!important}}
.tani-rescue #scene-image{animation:taniGrab .7s cubic-bezier(.1,.8,.2,1),breathHold 4s .7s ease-in-out infinite alternate}.tani-rescue #red-glow{opacity:.5!important;background:radial-gradient(ellipse at 77% 45%,#e3251a40,transparent 18%);animation:passingLight 8s linear forwards}.tani-rescue #frame-vignette{box-shadow:inset 0 0 130px 35px #000c}@keyframes taniGrab{0%{transform:scale(1.3) translateX(-8%);filter:blur(9px)}30%{transform:scale(1.08) translateX(2%);filter:blur(3px)}100%{transform:scale(1);filter:blur(0)}}@keyframes breathHold{to{transform:scale(1.012) translateY(.2%)}}@keyframes passingLight{0%{opacity:0;transform:translateX(-5%)}40%{opacity:.7}100%{opacity:0;transform:translateX(18%)}}
/* 1920 × 1080 cinematic stage; HUD floats inside the letterboxed frame. */
html,body,button,input{font-family:'Noto Serif Thai','Th Sarabun New','Leelawadee UI',serif}body{background:#000}#game{width:min(100vw,177.7778svh);height:min(100svh,56.25vw);min-height:0;margin:auto;position:absolute;inset:0}#stage{position:absolute;inset:0;width:100%;height:100%;margin:0;aspect-ratio:16/9}.game-header{position:absolute;inset:0 0 auto;height:55px;background:linear-gradient(#000b,transparent);border:0;z-index:10}.game-header>div:nth-child(2),#scene-label,.game-footer,.inventory-label,.goal,#speaker{display:none}.story-strip{position:absolute;bottom:92px;left:0;width:100%;display:block;padding:25px 12%;border:0;background:none;pointer-events:none;z-index:10}.speech{border:0;padding:18px 25px;text-align:center;background:linear-gradient(90deg,transparent,#000c 20%,#000c 80%,transparent);opacity:0}.speech.speaking{animation:subtitleFade 8s forwards}.speech p{font-size:clamp(14px,1.35vw,25px);color:#eee;text-shadow:0 2px 6px #000}.inventory-bar{position:absolute;bottom:0;width:100%;padding:18px;justify-content:center;background:linear-gradient(transparent,#000e);border:0;z-index:10;flex-wrap:nowrap}.inventory-bar #inventory{flex:none;gap:9px}.slot,.slot.occupied{width:clamp(30px,3.8vw,72px);height:clamp(30px,3.8vw,72px);background:#08080899;border:1px solid #ffffff35}.slot.selected{border-color:#eee;box-shadow:0 0 18px #ffffff30}.slot:hover:after{display:none}.spot .label,.spot:hover .label,.spot:focus-visible .label{display:none!important}.spot.nav{background:none;border:0;min-width:44px;padding:0}.spot .dot,.spot.nav .dot,.spot.danger .dot{width:5px;height:5px;border:0;border-radius:50%;background:#fff;box-shadow:0 0 8px 3px #ffffff70;transform:none;animation:none}.spot:hover .dot{background:white;transform:none;box-shadow:0 0 16px 5px #ffffff80}.spot.secret .dot{opacity:.09}.spot.secret:hover .dot{opacity:.5}#modal{background:#000e;backdrop-filter:blur(4px);animation:blackFade .7s}.modal-card{border:0;background:linear-gradient(90deg,#0000,#080808cc,#0000);box-shadow:none}.narration .modal-card{width:min(950px,90%);text-align:center}.narration #modal-title,.narration #modal-tag,.prologue small{display:none}.narration #modal-actions{justify-content:center}#modal-actions button{background:transparent;border:0;border-bottom:1px solid #ffffff40}.note-paper{background:#aaa18d;color:#171717}#toast{background:#000b;border:0}#timed{background:linear-gradient(90deg,transparent,#000b,transparent)}.dread #scene-image{filter:brightness(.5);transform:scale(1.035)!important;transition:filter 4s,transform 6s}.dread #frame-vignette{box-shadow:inset 0 0 180px 65px #000b}#scare-layer[data-encounter="2"].show{animation:reflectionReveal .7s both}#scare-layer[data-encounter="3"].show{animation:dropReveal .6s both}#scare-layer[data-encounter="5"].show{animation:doorReveal .8s both}body.lightning:after{content:'';position:fixed;inset:0;z-index:100;pointer-events:none;animation:lightningFlash .65s forwards}@keyframes lightningFlash{0%,25%,100%{background:transparent}8%{background:#d6e3ff88}32%{background:#e4ecff55}}@keyframes blackFade{from{opacity:0}to{opacity:1}}@keyframes subtitleFade{0%,100%{opacity:0}12%,85%{opacity:1}}@keyframes reflectionReveal{from{opacity:0;transform:translateX(12%) scale(1.2)}35%{opacity:1}to{transform:none}}@keyframes dropReveal{from{transform:translateY(-35%) scale(.8);filter:blur(8px)}to{transform:scale(1.06);filter:blur(0)}}@keyframes doorReveal{from{clip-path:inset(0 47%)}to{clip-path:inset(0)}}@media(max-width:700px){.game-header{height:34px}.inventory-bar{padding:7px;gap:7px}.inventory-bar #inventory{gap:4px}.story-strip{bottom:45px;padding:6px 12%}.speech{padding:6px}.speech p{font-size:12px}#inspect-button{font-size:10px}.game-header .text-button{padding:7px}}.reduced .speech.speaking{opacity:1}
/* Keep every scene hotspot above the inventory's separate bottom rail. */
#game{width:min(100vw,156.4444svh);height:min(100svh,63.9205vw)}#stage{inset:0 0 auto;height:88%;width:100%}.inventory-bar{height:12%;min-height:0;padding:6px 12px;background:#050505;pointer-events:none}.inventory-bar button{pointer-events:auto}.inventory-bar #inventory{pointer-events:none}.slot{max-height:9svh}.story-strip{bottom:12%;padding-bottom:10px}.spot .dot,.spot.nav .dot,.spot.danger .dot{width:7px;height:7px;box-shadow:0 0 9px 4px #ffffff88,0 0 19px #ffffff55}.spot.secret .dot{width:4px;height:4px;opacity:.14;box-shadow:0 0 6px #fff5}.game-mist{opacity:.17;filter:blur(22px);background:radial-gradient(ellipse at 15% 82%,#c5d0cc88,transparent 48%),radial-gradient(ellipse at 80% 90%,#a1b9c388,transparent 48%);animation:mistDrift 27s ease-in-out infinite alternate}.reduced .game-mist{animation:none}.narration #modal-body{max-height:60svh;overflow:auto}
@font-face{font-family:WildThai;src:url('assets/fonts/NotoSerifThai-Regular.ttf') format('truetype');font-weight:400;font-display:swap}@font-face{font-family:WildThai;src:url('assets/fonts/NotoSerifThai-Bold.ttf') format('truetype');font-weight:700;font-display:swap}html,body,button,input,.prologue,.note-paper,#play-button,.gallery-body h1,.ending-body h1{font-family:WildThai,Georgia,serif}.chapter-row strong{font-size:clamp(21px,2.2vw,32px);line-height:1.7}.chapter-row.available:hover,.chapter-row.available:focus-visible{background:none;color:#b9a6a0;text-shadow:none}.chapter-row.available strong{position:relative;background:linear-gradient(0deg,#390407 0%,#761018 36%,#c1aaa1 52%,#eee8df 80%);background-size:100% 240%;background-position:0 0;background-clip:text;-webkit-background-clip:text;color:transparent;transition:background-position 1.7s ease}.chapter-row.available:hover strong,.chapter-row.available:focus-visible strong{background-position:0 100%}.blood{opacity:0;width:2px;background:linear-gradient(90deg,#1e0204,#610a11 55%,#2b0206);transition:height 2.2s ease-in,opacity .9s;top:72%;z-index:0}.blood:after{width:3px;height:5px;left:0;background:#4b070d;box-shadow:inset 1px 0 #9a535329}.b1{left:43%}.b2{left:50%;transition-delay:.5s}.b3{left:58%;transition-delay:.9s}.available:hover .blood{opacity:.7}.available:hover .b1{height:8px}.available:hover .b2{height:17px}.available:hover .b3{height:5px}#play-button:hover{color:#8b1821;text-shadow:0 1px 1px #250003,0 0 18px #28010680}

#inspect-button{display:none}
#menu-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1}.chapter-menu-link{position:absolute;bottom:50px;left:50%;transform:translateX(-50%)}#entry-video{position:fixed;inset:0;width:100vw;height:100svh;object-fit:cover;z-index:90;background:#000}#entry-video[hidden],#scare-video[hidden]{display:none}#scare-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:12;background:#000}#floating-krasue{display:none;position:absolute;width:30%;height:64%;object-fit:contain;left:35%;top:7%;z-index:4;pointer-events:none;filter:drop-shadow(0 0 20px #cf0a20a0)}.combat #floating-krasue{display:block;animation:ghostFlight 5.1s ease-in-out infinite}.combat #red-glow{opacity:1!important;animation:redPulse 2.3s ease-in-out infinite}.table-impact #scene-image{animation:tableFall .65s ease-out}.tani-rescue #scene-image{animation:none}.tani-rescue #red-glow{animation:redPulse 2.7s infinite!important;background:radial-gradient(ellipse at 75% 42%,#ed001b90,transparent 36%)}#tani-arms{display:none;position:absolute;inset:0;z-index:6;pointer-events:none}#tani-arms img{width:100%;height:100%;object-fit:cover}.tani-rescue #tani-arms{display:block}.tani-rescue #tani-arms img{animation:armsWrap 1.3s cubic-bezier(.15,.6,.1,1) both}.lock-scene{background:linear-gradient(#0007,#000b),url(assets/lock-scene.webp) center/cover!important;backdrop-filter:none!important}.lock-scene .modal-card{background:#0009;width:min(560px,90%);text-align:center}.lock-scene #modal-actions{justify-content:center}.secret-breadcrumb .spot.secret .dot{animation:threadGlint 12s ease-in-out infinite;background:#c6b88b}@keyframes ghostFlight{0%,100%{transform:translate(-30%,8%) rotate(-8deg) scale(.87)}30%{transform:translate(38%,-5%) rotate(6deg) scale(1.06)}68%{transform:translate(4%,12%) rotate(-4deg) scale(.94)}}@keyframes redPulse{0%,100%{opacity:.15}24%{opacity:.65}46%{opacity:.25}73%{opacity:.9}}@keyframes armsWrap{0%{clip-path:inset(0 48% 0 48%);transform:scaleX(1.8) translateY(20%);opacity:0}20%{opacity:1}100%{clip-path:inset(0);transform:none}}@keyframes tableFall{0%{transform:translateY(-3%) rotate(-3deg);filter:blur(5px)}65%{transform:translateY(2%) rotate(1deg)}100%{transform:none;filter:none}}@keyframes threadGlint{0%,85%,100%{opacity:.12}90%{opacity:.52}}.reduced #floating-krasue,.reduced #tani-arms img,.reduced #red-glow{animation:none!important}
#tani-arms img{position:absolute;inset:0}.tani-rescue #tani-arms .arm-left{clip-path:inset(0 50% 0 0);animation:leftArm 1.1s ease-out both}.tani-rescue #tani-arms .arm-right{clip-path:inset(0 0 0 50%);animation:rightArm 1.25s .12s ease-out both}@keyframes leftArm{from{transform:translateX(-65%) translateY(12%)}to{transform:none}}@keyframes rightArm{from{transform:translateX(65%) translateY(12%)}to{transform:none}}
/* Authored still-image encounters: distinct direction, impact and retreat. */
#scare-layer.show[data-encounter="1"],.scare-1{animation:windowRush 1.7s both}#scare-layer.show[data-encounter="2"],.scare-2{animation:reflectionSnap 2.1s both}#scare-layer.show[data-encounter="3"],.scare-3{animation:ceilingDrop 1.9s both}#scare-layer.show[data-encounter="5"],.scare-5{animation:doorPeek 2.3s both}@keyframes windowRush{0%{transform:scale(.94);filter:brightness(.3)}16%{transform:scale(1.14) translateX(-1%);filter:brightness(1.2)}23%{transform:scale(1.1) translateX(1%)}38%,78%{transform:scale(1.05);filter:brightness(.85)}100%{transform:scale(1.09);filter:brightness(.25)}}@keyframes reflectionSnap{0%{transform:translateX(-18%) scale(1.2);filter:blur(5px) brightness(.25)}18%{transform:translateX(2%) scale(1.08);filter:blur(0)}25%{transform:translateX(-1%) scale(1.1)}70%{transform:translateX(0) scale(1.12)}100%{transform:translateX(3%) scale(1.16);filter:brightness(.3)}}@keyframes ceilingDrop{0%{transform:translateY(-40%) scale(.9);filter:blur(5px)}20%{transform:translateY(3%) scale(1.12);filter:blur(0)}29%{transform:translateY(-1%) scale(1.08)}100%{transform:translateY(1%) scale(1.16);filter:brightness(.4)}}@keyframes doorPeek{0%{clip-path:inset(0 46%);transform:scale(1)}35%{clip-path:inset(0 35%);transform:scale(1.02)}43%{clip-path:inset(0);transform:scale(1.15)}52%{transform:scale(1.1) translateX(-1%)}100%{clip-path:inset(0);transform:scale(1.15);filter:brightness(.35)}}.archive-scare{overflow:hidden}.spot.latch{width:90px;height:42px;border:1px solid #fff9;border-radius:7px;background:#0007;box-shadow:0 0 22px #ffffff35}.spot.latch .label{display:block!important;opacity:1!important;top:48px;background:#000c;color:white;font-size:16px;padding:5px 12px}.spot.latch .dot{width:26px;height:4px;border-radius:2px}.tutorial-glow{display:block;margin:35px auto;width:80px;height:80px;border:1px solid #ffffff25;border-radius:50%}.tutorial-glow i{display:block;margin:auto;width:10px;height:10px;border-radius:50%;background:white;box-shadow:0 0 18px 7px #ffffff80}
/* Rescue is one continuous pull into cover, hold, passing light, release. */
.tani-rescue #scene-image{animation:duckToCover 10s ease-in-out both!important}.tani-rescue #tani-arms .arm-left{clip-path:none;object-fit:contain;object-position:center bottom;animation:protectAndRelease 10s both!important}.tani-rescue #red-glow{background:radial-gradient(ellipse at 50% 36%,#dc092b75,transparent 28%);animation:passingKrasue 10s linear both!important}.tani-rescue #timed{background:linear-gradient(90deg,transparent,#0009,transparent)}.tani-rescue #timed>div{opacity:.3}@keyframes duckToCover{0%{transform:scale(1)}14%{transform:scale(1.13) translateY(-5%);filter:blur(1px)}24%,80%{transform:scale(1.13) translateY(-5%);filter:blur(0)}100%{transform:scale(1)}}@keyframes protectAndRelease{0%,5%{transform:translateX(-55%) translateY(45%);opacity:0}15%{opacity:1}24%,77%{transform:translateX(0) translateY(12%);opacity:1}100%{transform:translateX(-30%) translateY(70%);opacity:0}}@keyframes passingKrasue{0%,17%{opacity:0;transform:translateX(-40%)}35%{opacity:.35;transform:translateX(-20%)}46%{opacity:.65}55%{opacity:.25;transform:translateX(5%)}68%{opacity:.55;transform:translateX(25%)}84%,100%{opacity:0;transform:translateX(45%)}}.reduced .tani-rescue #scene-image,.reduced .tani-rescue #tani-arms .arm-left,.reduced .tani-rescue #red-glow{animation:none!important}

.dread #scene-image{transition:filter .35s,transform .8s}
.tani-rescue #tani-arms{inset:12% -3% -4%;filter:brightness(.58) saturate(.7) drop-shadow(0 -8px 20px #0009)}.tani-rescue #frame-vignette{box-shadow:inset 0 0 150px 40px #000d;transition:box-shadow .7s}.tani-rescue #timed{top:5%;font-size:clamp(12px,1.1vw,19px)}

#lobby-settings{position:absolute;right:155px;top:22px;z-index:10;font-size:14px}#loading{pointer-events:none}

/* Immediate transitions; the decoded image replaces its embedded preview. */
.transitioning #scene-transition{animation:none;opacity:0}
#floating-krasue{padding:0;border:0;background:none;pointer-events:auto;z-index:6;cursor:crosshair}
#floating-krasue img{width:100%;height:100%;object-fit:contain;pointer-events:none}
#floating-krasue:focus-visible{outline:1px solid #fff7;outline-offset:-20px}
.tani-rescue #tani-arms{inset:0;filter:brightness(.65) saturate(.65) drop-shadow(2px 8px 9px #0009)}
.tani-rescue #tani-arms .arm-left{object-fit:fill;animation:singleHandRescue 7s ease-in-out both!important}
.tani-rescue #scene-image{animation:duckToCover 7s ease-in-out both!important}
.tani-rescue #red-glow{animation:passingKrasue 7s linear both!important}
@keyframes singleHandRescue{0%{transform:translateX(-45%) translateY(8%);opacity:0}12%,70%{transform:translateX(0) translateY(0);opacity:1}84%{opacity:1}100%{transform:translateX(-45%) translateY(12%);opacity:0}}
.reduced .tani-rescue #tani-arms .arm-left{animation:none!important}

/* Full viewport, stable video frames, sharp still scare, unified rescue photograph. */
html,body,main{width:100%;height:100%;margin:0}body{overflow:hidden}
.screen{height:100dvh;min-height:100dvh;overflow-y:auto}
#game{position:fixed;inset:0;width:100vw;height:100dvh;min-height:0}
#stage{inset:0 0 var(--inventory-safe,88px);height:auto;width:100%;aspect-ratio:auto}
.scare-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:12;background:#000}
.scare-video[hidden]{display:none!important}
.scaring #frame-vignette,.scaring #scene-light,.scaring .game-mist{visibility:hidden}
#scare-layer.show[data-encounter="1"],.scare-1{animation:sharpWindowHit 1.7s both;filter:none;background-size:cover}
@keyframes sharpWindowHit{0%{transform:scale(1)}7%{transform:translateX(-.8%) scale(1.035)}13%{transform:translateX(.5%) scale(1.025)}22%,100%{transform:scale(1.025)}}
.tani-rescue #scene-image{animation:rescueBreathing 9s ease-in-out both!important}
.tani-rescue #red-glow{animation:passingKrasue 9s linear both!important;background:radial-gradient(ellipse at 65% 44%,#a20b2340,transparent 17%)}
.tani-rescue #frame-vignette{box-shadow:inset 0 0 70px 15px #0006}
.tani-rescue #scene-light{opacity:.35!important}
@keyframes rescueBreathing{0%{transform:translateY(1.5%) scale(1.025)}16%{transform:translateY(0) scale(1.015)}80%{transform:translateY(-.3%) scale(1.02)}100%{transform:scale(1.015)}}
.help-icon{display:block;width:70px;height:70px;margin:0 auto 24px;color:#ece7db;filter:drop-shadow(0 0 12px #ffffff22)}
.game-paused #stage *{animation-play-state:paused!important}
.reduced #scare-layer,.reduced .tani-rescue #scene-image{animation:none!important;transform:none!important}
@media(max-width:700px){#stage{bottom:var(--inventory-safe,58px)}.help-icon{width:52px;height:52px;margin-bottom:14px}}

.menu-content{display:flex;flex-direction:column;align-items:center;gap:4px}#lobby-settings{position:static;inset:auto;font-size:clamp(15px,1.3vw,21px);padding:7px 24px;opacity:0;animation:revealMenu 2s 1.8s forwards}.reduced #lobby-settings{opacity:1}@media(prefers-reduced-motion:reduce){#lobby-settings{opacity:1}}

#ending{background:radial-gradient(ellipse at 20% 45%,#31141655,transparent 65%),#050505;overflow:auto}.demo-ending{min-height:100dvh;max-width:1500px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:center;gap:clamp(24px,5vw,90px);padding:50px 5vw}.demo-logo{display:block;width:100%;height:auto;max-height:78dvh;object-fit:contain;filter:drop-shadow(0 12px 36px #000);animation:blackFade 1.5s both}.demo-copy{animation:blackFade 2s .25s both}.demo-copy h1{font-size:clamp(32px,4vw,64px);font-weight:400;margin:12px 0 0;line-height:1.4}.coming-soon{font-size:clamp(19px,2vw,30px);color:#c6aaa5;margin:0 0 18px}.demo-thanks{font-size:14px;line-height:1.9;color:#aaa09a}.demo-credits{margin-top:25px;padding-top:18px;border-top:1px solid #ffffff19}.demo-credits h2{font-size:15px;letter-spacing:.12em;margin:0 0 12px}.demo-credits dl{margin:0;display:grid;gap:10px}.demo-credits dl>div{display:grid;grid-template-columns:1fr 1.15fr;gap:15px;font-size:12px;line-height:1.7}.demo-credits dt{color:#8f8680}.demo-credits dd{margin:0;color:#d0c6bb}.demo-copy .end-unlock{font-size:12px;margin:22px 0 8px;padding:0}.ending-actions{display:flex;flex-wrap:wrap;gap:14px}.reduced .demo-logo,.reduced .demo-copy{animation:none;opacity:1}@media(max-width:700px){.demo-ending{grid-template-columns:1fr;padding:30px 22px;gap:25px}.demo-logo{max-height:48dvh}.demo-copy{text-align:center}.demo-credits dl>div{text-align:left}.ending-actions{justify-content:center}}
