*{box-sizing:border-box}html,body,#root{width:100%;min-width:20rem;height:100%;margin:0}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#050708}body{letter-spacing:0;color:#d9d2bf;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#050708;font-family:Segoe UI,Arial,sans-serif;font-size:16px;line-height:1.5;overflow:hidden}button,canvas{-webkit-tap-highlight-color:transparent}button:focus-visible{outline-offset:3px;outline:2px solid #d0a344}button:disabled{cursor:default}:root{--ink:#050708;--soot:#101719;--steel:#334247;--bone:#d9d2bf;--muted:#8d9998;--amber:#d0a344;--rust:#8b2e3f;--cyan:#8bb4b1}.game-shell{isolation:isolate;background:var(--ink);width:100%;height:100svh;min-height:36rem;color:var(--bone);position:relative;overflow:hidden}.scene-loading{z-index:0;background:#020405;place-items:center;display:grid;position:absolute;inset:0}.scene-loading span{color:#d9d2bf6b;font-family:Consolas,Courier New,monospace;font-size:.62rem;animation:1.4s ease-in-out infinite loading-pulse}.nightmare-scene,.nightmare-scene canvas,.corridor-scene,.corridor-scene canvas,.surgery-scene,.surgery-scene canvas,.chase-scene,.chase-scene canvas,.archive-scene,.archive-scene canvas,.flooded-scene,.flooded-scene canvas,.finale-scene,.finale-scene canvas{width:100%;height:100%;position:absolute;inset:0}.nightmare-scene,.corridor-scene,.surgery-scene,.chase-scene,.archive-scene,.flooded-scene,.finale-scene{z-index:0}.nightmare-scene canvas,.corridor-scene canvas,.surgery-scene canvas,.chase-scene canvas,.archive-scene canvas,.flooded-scene canvas,.finale-scene canvas{touch-action:manipulation;display:block}.scene-vignette,.scene-grain{z-index:1;pointer-events:none;position:absolute;inset:0}.scene-vignette{background:radial-gradient(circle at 50% 46%,#0000 30%,#0204051a 64%,#00000094 100%);box-shadow:inset 0 0 10rem 2rem #000000a3}.game-shell[data-chapter=surgery] .scene-vignette{background:radial-gradient(circle at 50% 47%,#0000 43%,#04050514 70%,#0000006b 100%);transition:box-shadow .5s,background-color .5s;box-shadow:inset 0 0 7rem 1rem #00000085}.game-shell[data-chapter=chase] .scene-vignette{background:radial-gradient(circle at 50% 47%,#0000 34%,#2c030a1f 68%,#000000b8 100%),linear-gradient(#00000029,#0000 24% 72%,#0000006b);box-shadow:inset 0 0 8rem 1.5rem #000000ad}.game-shell[data-chapter=chase] .scene-vignette:after{content:"";box-shadow:inset 0 0 calc(2rem + var(--chase-pressure) * 4rem) #7d081d7a, inset 0 0 .8rem #d4223e1f;opacity:calc(.18 + var(--chase-pressure) * .62);border:1px solid #ae183147;transition:opacity .24s,box-shadow .24s;position:absolute;inset:0}.game-shell[data-chapter=chase][data-chase-status=caught] .scene-vignette{background:radial-gradient(circle at 50% 48%,#800c2252,#000000eb 72%)}.game-shell[data-chapter=surgery][data-surgery-threat=warning] .scene-vignette,.game-shell[data-chapter=surgery][data-surgery-threat=searching] .scene-vignette{animation:.92s ease-in-out infinite surgery-threat-breathe;box-shadow:inset 0 0 8rem 2rem #000000b3,inset 0 0 3.5rem #76122442}.game-shell[data-chapter=surgery][data-surgery-threat=caught] .scene-vignette{box-shadow:inset 0 0 5rem 2.5rem #761224d1}.game-shell[data-chapter=archive] .scene-vignette{background:radial-gradient(circle at 50% 49%,#0000 40%,#01050514 70%,#0000007a 100%);box-shadow:inset 0 0 8rem 1rem #0000008f}.game-shell[data-chapter=flooded] .scene-vignette{background:radial-gradient(at 50% 52%,#0000 38%,#00060917 68%,#0000008a 100%);box-shadow:inset 0 0 8rem 1.5rem #0009}.game-shell[data-chapter=finale] .scene-vignette{background:radial-gradient(circle at 50% 48%,#0000 36%,#09050414 66%,#00000094 100%);box-shadow:inset 0 0 9rem 1.5rem #0000009e}.scene-grain{opacity:.09;mix-blend-mode:soft-light;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='.86' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E")}button{font:inherit}.entry-gate,.ending-screen{z-index:20;text-align:center;background:#020405b8;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.entry-gate:before{content:"";border:1px solid #8bb4b114;border-radius:50%;width:min(42rem,90vw);height:min(42rem,90vw);position:absolute;box-shadow:0 0 8rem #6a918f14,inset 0 0 6rem #000000b3}.entry-mark{grid-template-columns:repeat(3,1px);gap:7px;width:20px;height:54px;margin-bottom:1.5rem;display:grid;position:relative;transform:rotate(13deg)}.entry-mark span{background:var(--amber);width:1px;display:block;box-shadow:0 0 14px #d0a344a6}.entry-mark span:nth-child(2){transform:translateY(-8px)}.entry-mark span:nth-child(3){transform:translateY(6px)}.entry-eyebrow,.entry-note,.room-id span,.inventory-label,.receiver-dialog header span,.ending-screen>p{letter-spacing:0;color:var(--muted);text-transform:uppercase;margin:0;font-family:Consolas,Courier New,monospace;font-size:.68rem;line-height:1}.entry-gate h1{letter-spacing:0;color:var(--bone);text-shadow:0 0 2.8rem #d0a3441f;margin:.9rem 0 2.1rem;font-family:Bahnschrift,Arial Narrow,sans-serif;font-size:clamp(3.7rem,9vw,8.4rem);font-weight:800;font-stretch:75%;line-height:.78;position:relative}.entry-actions{flex-direction:column;align-items:center;gap:.58rem;display:flex;position:relative}.enter-button{min-width:10.5rem;min-height:3.25rem;color:var(--bone);cursor:pointer;background:#090e0fc7;border:1px solid #d9d2bf6b;border-radius:2px;transition:color .18s,border-color .18s,background-color .18s;position:relative}.enter-button:hover,.enter-button:focus-visible{color:#111;border-color:var(--amber);background:var(--amber)}.entry-new-button{color:#d9d2bf94;cursor:pointer;background:0 0;border:0;min-width:10.5rem;min-height:2.3rem;padding:0 .75rem;font-family:Consolas,Courier New,monospace;font-size:.67rem;transition:color .18s}.entry-new-button:hover,.entry-new-button:focus-visible{color:var(--bone)}.entry-save{color:#8bb4b19e;justify-content:center;gap:.65rem;margin:.15rem 0 0;font-family:Consolas,Courier New,monospace;font-size:.62rem;display:flex}.entry-save span+span:before{content:"/";color:#d9d2bf3d;margin-right:.65rem}.entry-note{color:#d9d2bf75;text-transform:none;margin-top:1.15rem;position:relative}.game-header{z-index:8;padding:max(1.2rem, env(safe-area-inset-top)) max(1.2rem, env(safe-area-inset-right)) 1rem max(1.2rem, env(safe-area-inset-left));pointer-events:none;justify-content:space-between;align-items:flex-start;display:flex;position:absolute;top:0;left:0;right:0}.room-navigation{pointer-events:auto;align-items:center;gap:.85rem;display:flex}.room-return{color:#d9d2bfd1;cursor:pointer;background:#05090ac7;border:1px solid #d9d2bf52;border-radius:4px;align-items:center;gap:.48rem;min-height:2.75rem;padding:0 .72rem;font-family:Consolas,Courier New,monospace;font-size:.68rem;transition:color .18s,border-color .18s,background-color .18s;display:inline-flex}.room-return:hover,.room-return:focus-visible{color:var(--amber);background:#0e1414f0;border-color:#d0a344c7}.room-return:disabled{opacity:.45;cursor:wait}.room-return svg{width:1rem;height:1rem}.room-id{border-left:2px solid var(--amber);flex-direction:column;gap:.35rem;padding-left:.85rem;display:flex}.room-id strong{font-family:Bahnschrift,Arial Narrow,sans-serif;font-size:clamp(1.05rem,2vw,1.45rem);font-weight:600;line-height:1}.status-controls{pointer-events:auto;align-items:center;gap:.65rem;display:flex}.corridor-progress{min-height:2.75rem;color:var(--bone);background:#05090ab8;border:1px solid #8bb4b140;border-radius:4px;grid-template-columns:auto auto;align-items:center;gap:.55rem;padding:0 .72rem;display:grid}.corridor-progress span{color:var(--muted);font-family:Consolas,Courier New,monospace;font-size:.58rem}.corridor-progress strong{color:var(--amber);font-family:Consolas,Courier New,monospace;font-size:.8rem}.archive-progress{min-height:2.75rem;color:var(--bone);background:#05090abd;border:1px solid #8bb4b140;border-radius:4px;grid-template-columns:auto auto auto;align-items:center;gap:.48rem;padding:0 .72rem;display:grid}.archive-progress svg{width:1rem;color:var(--cyan)}.archive-progress span,.archive-progress strong{font-family:Consolas,Courier New,monospace;line-height:1}.archive-progress span{color:var(--muted);font-size:.56rem}.archive-progress strong{color:var(--amber);font-size:.78rem}.flooded-progress{min-height:2.75rem;color:var(--bone);background:#030a0dc7;border:1px solid #529ead52;border-radius:4px;grid-template-columns:auto auto auto;align-items:center;gap:.48rem;padding:0 .72rem;display:grid}.flooded-progress svg{color:#69b8c5;width:1rem}.flooded-progress span,.flooded-progress strong{font-family:Consolas,Courier New,monospace;line-height:1}.flooded-progress span{color:var(--muted);font-size:.56rem}.flooded-progress strong{color:#8bd0d6;font-size:.78rem}.flooded-progress[data-complete=true]{border-color:#d0a34480}.flooded-progress[data-complete=true] svg,.flooded-progress[data-complete=true] strong{color:var(--amber)}.finale-progress{min-height:2.75rem;color:var(--bone);background:#070808c7;border:1px solid #8bb4b147;border-radius:4px;grid-template-columns:auto auto auto;align-items:center;gap:.48rem;padding:0 .72rem;display:grid}.finale-progress svg{width:1rem;color:var(--muted)}.finale-progress span,.finale-progress strong{font-family:Consolas,Courier New,monospace;line-height:1}.finale-progress span{color:var(--muted);font-size:.56rem}.finale-progress strong{color:var(--bone);font-size:.78rem}.finale-progress[data-ready=true]{border-color:#d0a34485;box-shadow:inset 0 0 1.2rem #d0a34414}.finale-progress[data-ready=true] svg,.finale-progress[data-ready=true] strong{color:var(--amber)}.danger-meter{background:#05090ac2;border:1px solid #8bb4b147;border-radius:4px;grid-template-columns:auto auto;align-items:center;gap:.58rem;min-width:5.5rem;height:2.75rem;padding:0 .72rem;display:grid;position:relative;overflow:hidden}.danger-meter span,.danger-meter strong{font-family:Consolas,Courier New,monospace;line-height:1}.danger-meter span{color:var(--muted);font-size:.57rem}.danger-meter strong{color:var(--bone);font-size:.76rem}.danger-meter i{width:var(--danger-fill);background:var(--cyan);height:2px;transition:width .5s,background-color .24s;position:absolute;bottom:0;left:0}.danger-meter[data-danger=medium] i{background:var(--amber)}.danger-meter[data-danger=high]{border-color:#8b2e3fb8;box-shadow:inset 0 0 1.2rem #8b2e3f2e}.danger-meter[data-danger=high] i{background:#c53b51}.danger-meter[data-threat=warning],.danger-meter[data-threat=searching]{animation:.76s ease-in-out infinite surgery-meter-alert}.danger-meter[data-threat=caught]{background:#220409e6;border-color:#d22d42eb}.chase-progress{background:#0c0508c7;border:1px solid #b83d4e6b;border-radius:4px;grid-template-columns:auto auto;align-items:center;gap:.58rem;min-width:6rem;height:2.75rem;padding:0 .72rem;display:grid;position:relative;overflow:hidden}.chase-progress span,.chase-progress strong{font-family:Consolas,Courier New,monospace;line-height:1}.chase-progress span{color:#d9d2bfa3;font-size:.56rem}.chase-progress strong{color:#efb1b9;font-size:.78rem}.chase-progress i{width:var(--chase-time);background:#c33b52;height:2px;transition:width .12s linear,background-color .18s;position:absolute;bottom:0;left:0}.chase-progress[data-danger=medium]{border-color:#d0a34494}.chase-progress[data-danger=medium] i{background:var(--amber)}.chase-progress[data-danger=high]{background:#23040ae0;border-color:#e2304bdb;animation:.62s ease-in-out infinite chase-meter-pulse;box-shadow:inset 0 0 1.2rem #8b2e3f3d,0 0 1.1rem #8b2e3f1f}.chase-deadline{left:50%;top:max(5.3rem, calc(env(safe-area-inset-top) + 5.3rem));z-index:9;width:min(34rem,100vw - 3rem);min-height:2.1rem;color:var(--bone);pointer-events:none;background:#030708c7;border:1px solid #9eb1ae47;border-radius:3px;grid-template-columns:auto minmax(8rem,1fr) 1.7rem;align-items:center;gap:.65rem;padding:.36rem .58rem;display:grid;position:absolute;transform:translate(-50%);box-shadow:0 .8rem 2.2rem #00000057}.chase-deadline span,.chase-deadline strong{font-family:Consolas,Courier New,monospace;line-height:1}.chase-deadline span{color:#d9d2bfb8;font-size:.58rem}.chase-deadline strong{color:#efb1b9;text-align:right;font-size:.78rem}.chase-deadline>i{background:#d9d2bf1f;border-radius:1px;height:.28rem;display:block;position:relative;overflow:hidden}.chase-deadline>i>b{width:var(--chase-time);background:#a9c9bc;transition:width .12s linear,background-color .18s;position:absolute;inset:0 auto 0 0;box-shadow:0 0 .7rem #82dfca8a}.chase-deadline[data-danger=medium]>i>b{background:var(--amber)}.chase-deadline[data-danger=high]{background:#1e0308d6;border-color:#d32c46b8}.chase-deadline[data-danger=high]>i>b{background:#da314f}.chase-stage-cue{z-index:8;text-align:center;text-shadow:0 .2rem 1.1rem #000,0 0 1.5rem #000;pointer-events:none;gap:.16rem;width:min(28rem,100vw - 2rem);animation:1.8s ease-out both chase-stage-cue;display:grid;position:absolute;top:17%;left:50%;transform:translate(-50%)}.chase-stage-cue span,.chase-stage-cue small{color:var(--amber);font:.58rem/1.2 Consolas,Courier New,monospace}.chase-stage-cue strong{letter-spacing:0;color:#eee7d4;font-family:Bahnschrift,Arial,sans-serif;font-size:clamp(1.1rem,2.2vw,1.7rem)}.chase-stage-cue small{color:#d9d2bfb8}.flashlight-button[aria-pressed=true]{color:#17130a;background:#d4b45e;border-color:#e3c77c;box-shadow:0 0 1.2rem #debe6757}.pulse-meter{background:#05090ab8;border:1px solid #8bb4b147;border-radius:4px;grid-template-columns:auto auto;align-items:center;gap:.5rem;min-width:6.2rem;height:2.75rem;padding:0 .8rem;display:grid;position:relative;overflow:hidden}.pulse-meter svg{color:var(--rust);animation:1.25s ease-in-out infinite heartbeat}.pulse-meter span{font-family:Consolas,monospace;font-size:.86rem;font-weight:700}.pulse-meter i{width:var(--pulse-fill);background:var(--rust);height:2px;transition:width .5s;position:absolute;bottom:0;left:0}.icon-button{width:2.75rem;height:2.75rem;color:var(--bone);cursor:pointer;background:#05090ab8;border:1px solid #d9d2bf47;border-radius:4px;place-items:center;padding:0;transition:border-color .18s,color .18s,background-color .18s;display:grid}.icon-button:hover,.icon-button:focus-visible{color:var(--amber);border-color:var(--amber);background:#101719eb}.icon-button svg{width:1.1rem;height:1.1rem}.hotspot-layer{z-index:5;pointer-events:none;position:absolute;inset:0}.scene-hotspot{pointer-events:auto;cursor:crosshair;background:0 0;border:0;border-radius:6px;outline:0;width:4.5rem;height:4.5rem;padding:0;position:absolute;transform:translate(-50%,-50%)}.scene-hotspot[data-guided=true]{width:6.75rem;height:6.75rem}.hotspot-lantern[data-guided=true]{width:8rem;height:8rem}.scene-hotspot:focus-visible:after{content:"";pointer-events:none;border:1px dashed #d0a344ad;border-radius:4px;position:absolute;inset:.42rem}.scene-reticle{z-index:7;color:#d9d2bf8f;pointer-events:none;width:1.6rem;height:1.6rem;transition:color .18s,transform .18s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.scene-reticle:before,.scene-reticle:after{content:"";background:currentColor;transition:width .18s,height .18s,background-color .18s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 .55rem #000000e0}.scene-reticle:before{width:.68rem;height:1px}.scene-reticle:after{width:1px;height:.68rem}.scene-reticle>span{opacity:.32;border:1px solid;border-radius:50%;transition:inset .18s,opacity .18s,border-radius .18s;position:absolute;inset:.32rem}.scene-reticle[data-active=true]{color:var(--amber);transform:translate(-50%,-50%)scale(1.08)}.scene-reticle[data-active=true]:before{width:.38rem}.scene-reticle[data-active=true]:after{height:.38rem}.scene-reticle[data-active=true]>span{opacity:.76;border-radius:3px;inset:.16rem}.scene-reticle strong{min-width:max-content;color:var(--bone);background:#040809d1;border:1px solid #d0a34461;border-radius:2px;padding:.27rem .46rem;font-family:Consolas,Courier New,monospace;font-size:.64rem;font-weight:400;line-height:1;animation:.18s ease-out both reticle-label-in;position:absolute;top:calc(100% + .45rem);left:50%;transform:translate(-50%);box-shadow:0 .75rem 2rem #00000052}.hotspot-drawer{top:52.5%;left:23.5%}.hotspot-lantern{top:51%;left:77%}.hotspot-glyph{top:36%;left:83%}.hotspot-door{top:47%;left:54%}.hotspot-console{top:59%;left:47%}.hotspot-corridor-left{top:53%;left:39%}.hotspot-corridor-center{top:53%;left:50%}.hotspot-corridor-right{top:53%;left:61%}.hotspot-surgery-tray{top:57%;left:31%}.hotspot-surgery-cabinet{top:49%;left:69%}.hotspot-surgery-lamp{top:34%;left:54%}.hotspot-surgery-hide{top:60%;left:48%}.hotspot-surgery-exit{top:48%;left:79%}.hotspot-archive-patient-79{top:53%;left:47%}.hotspot-archive-orderly{top:52%;left:34%}.hotspot-archive-facility-map{top:54%;left:62%}.hotspot-archive-terminal{top:47%;left:69%}.hotspot-archive-exit{top:43%;left:53%}.hotspot-flooded-relay{top:53%;left:29%}.hotspot-flooded-valve{top:50%;left:71%}.hotspot-flooded-pump{top:44%;left:51%}.hotspot-flooded-exit{top:38%;left:68%}.hotspot-finale-memory-name{top:56%;left:29%}.hotspot-finale-memory-voice{top:52%;left:50%}.hotspot-finale-memory-reflection{top:43%;left:72%}.hotspot-finale-release{top:41%;left:48%}.hotspot-finale-witness{top:52%;left:69%}.hotspot-finale-stay{top:55%;left:28%}.chase-actions{z-index:10;pointer-events:none;width:0;height:0;position:absolute;top:0;left:0}.chase-choice,.chase-hold-action{min-height:3.15rem;color:var(--bone);cursor:pointer;touch-action:none;background:#04090ad6;border:1px solid #d9d2bf5c;border-radius:3px;grid-template-columns:auto 1fr auto;align-items:center;gap:.55rem;padding:.5rem .62rem;transition:border-color .16s,color .16s,background-color .16s,box-shadow .16s,transform .16s;display:grid;overflow:visible;box-shadow:inset 0 0 1.2rem #8bb4b10d,0 .8rem 2rem #0000006b}.chase-choice{z-index:10;pointer-events:auto;width:min(11rem,29vw);animation:.32s ease-out both chase-action-arrive;position:fixed;transform:translate(-50%,-50%)}.chase-choice:before{content:"";background:#04090adb;border:1px solid;border-radius:50%;width:.42rem;height:.42rem;position:absolute;top:calc(100% + .3rem);left:50%;transform:translate(-50%);box-shadow:0 0 .7rem}.chase-choice:after{content:"";opacity:.58;background:currentColor;width:1px;height:.34rem;position:absolute;top:100%;left:50%}.chase-choice-vault{top:45%;left:48%}.chase-choice-detour{top:57%;left:69%}.chase-choice-route-left{top:48%;left:31%}.chase-choice-route-center{top:48%;left:50%}.chase-choice-route-right{top:48%;left:69%}.chase-choice-slide{top:54%;left:50%}.chase-choice-force{top:46%;left:76%}.chase-choice[data-recommended=true]{color:#e1b755;border-color:#d0a3448f}.chase-choice[data-safe=true]{color:#9be3d1;background:#041614e6;border-color:#82dfcac7;animation:.32s ease-out both chase-action-arrive,1.25s ease-in-out .35s infinite chase-safe-route;box-shadow:inset 0 0 1.25rem #58b8a629,0 0 1.4rem #58b8a638}.chase-choice:hover,.chase-choice:focus-visible{background:#0e1414f2;border-color:currentColor;transform:translate(-50%,-50%)scale(1.045);box-shadow:inset 0 0 1.25rem #d0a3441a,0 0 1.5rem #d0a3442e}.chase-choice svg,.chase-hold-action svg{width:1.28rem;height:1.28rem;color:var(--amber)}.chase-choice span,.chase-hold-action span{text-align:left;gap:.18rem;min-width:0;display:grid}.chase-choice strong,.chase-hold-action strong{overflow-wrap:anywhere;letter-spacing:0;font-family:Consolas,Courier New,monospace;font-size:.67rem}.chase-choice small,.chase-hold-action small{color:var(--muted);font:.55rem/1.15 Consolas,Courier New,monospace}.chase-choice kbd,.chase-hold-action kbd{color:#d9d2bf9e;background:#0000005c;border:1px solid #d9d2bf38;border-radius:2px;place-items:center;width:1.45rem;height:1.45rem;font:.6rem Consolas,Courier New,monospace;display:grid}.chase-hold-action{z-index:10;color:#e1b755;border-color:#d0a3449e;width:min(22rem,100vw - 2rem);min-height:4.8rem;position:fixed;top:59%;left:50%;transform:translate(-50%,-50%)}.chase-hold-action:hover,.chase-hold-action:focus-visible,.chase-hold-action[data-holding=true]{color:#9be3d1;background:#041614f0;border-color:#9be3d1;transform:translate(-50%,-50%)scale(1.025);box-shadow:0 0 1.8rem #58b8a63d}.chase-hold-action>i{width:var(--hold-progress);background:linear-gradient(90deg,#8b2e3f,#d0a344,#8fc8a3);height:.22rem;transition:width 50ms linear;position:absolute;bottom:0;left:0}.game-shell[data-chapter=chase][data-chase-status=resolving] .chase-actions{pointer-events:none;opacity:.42}.survival-action{right:max(1.2rem, env(safe-area-inset-right));bottom:max(1.2rem, env(safe-area-inset-bottom));z-index:9;color:#d9d2bfc7;cursor:pointer;background:#050809d1;border:1px solid #d9d2bf4d;border-radius:4px;align-items:center;gap:.52rem;min-height:2.85rem;padding:0 .72rem;font-family:Consolas,Courier New,monospace;font-size:.63rem;display:inline-flex;position:absolute}.survival-action:hover,.survival-action:focus-visible,.survival-action[data-active=true]{color:var(--amber);background:#0e1111f2;border-color:#d0a344b8}.survival-action[data-threat=warning]:not([data-active=true]),.survival-action[data-threat=searching]:not([data-active=true]){color:#f2d08a;border-color:#d0a344d6;animation:.82s ease-in-out infinite surgery-hide-prompt;box-shadow:0 0 1.8rem #d0a34433}.survival-action:disabled{cursor:default;opacity:.48}.survival-action svg{width:1rem;height:1rem}.survival-action kbd{width:1.35rem;height:1.35rem;color:var(--muted);font:inherit;background:#00000057;border:1px solid #d9d2bf38;border-radius:2px;place-items:center;display:grid}.hiding-overlay{z-index:4;pointer-events:none;background:linear-gradient(#010202fc 0 28%,#020303b8 38%,#0102020f 46% 64%,#020303bd 73%,#010202fc 88% 100%),linear-gradient(90deg,#000000f5 0 12%,#0000 34% 66%,#000000f5 88% 100%);animation:3.8s ease-in-out infinite hiding-breathe;position:absolute;inset:0;box-shadow:inset 0 0 6rem 1rem #000000f0}.surgery-caught-overlay{z-index:14;pointer-events:none;mix-blend-mode:screen;background:radial-gradient(circle at 50% 48%,#ebdbb26b,#8411236b 18%,#020001f5 72%),repeating-linear-gradient(93deg,#0000 0 7px,#ffffff0d 8px 9px);animation:1.1s steps(2,end) both surgery-caught-flash;position:absolute;inset:0}.surgery-caught-overlay:before,.surgery-caught-overlay:after{content:"";position:absolute;inset:0}.surgery-caught-overlay:before{background:linear-gradient(#0000 0 34%,#f4e0b83d 35% 37%,#0000 38% 62%,#78102157 63% 67%,#0000 68%),repeating-linear-gradient(0deg,#ffffff09 0 1px,#0000 2px 5px);animation:.43s steps(3,end) 2 surgery-screen-tear}.surgery-caught-overlay:after{background:radial-gradient(circle at 50% 47%,#0000 0 6%,#000000c7 22%,#0000 54%);animation:1.05s ease-out both surgery-impact-pupil}.game-shell[data-chapter=surgery][data-surgery-threat=caught] .surgery-scene canvas{transform-origin:50% 48%;animation:1.05s cubic-bezier(.18,.88,.22,1) both surgery-camera-rupture}.chase-caught-overlay,.chase-complete-overlay{z-index:14;pointer-events:none;position:absolute;inset:0}.chase-caught-overlay{background:radial-gradient(circle at 50% 48%,#e8d2b075,#840c2294 16%,#030001f7 68%),repeating-linear-gradient(88deg,#0000 0 9px,#ffffff0b 10px 11px);animation:1.3s steps(3,end) both chase-caught}.chase-caught-overlay:before,.chase-caught-overlay:after,.chase-complete-overlay:after{content:"";position:absolute;inset:0}.chase-caught-overlay:before{background:repeating-linear-gradient(0deg,#0000 0 5px,#ffffff0e 6px 7px);animation:.36s steps(2,end) 3 chase-tear}.chase-caught-overlay:after{background:radial-gradient(at 50% 54%,#0000 0 5%,#000000db 28%,#0000 61%);animation:1.1s ease-out both surgery-impact-pupil}.chase-complete-overlay{background:#02050505;animation:1.25s ease-out both chase-door-seal}.chase-complete-overlay:after{background:linear-gradient(90deg,#000000f5,#0000 46% 54%,#000000f5)}.game-shell[data-chapter=chase][data-chase-status=caught] .chase-scene canvas{animation:1.15s cubic-bezier(.2,.86,.24,1) both chase-camera-hit}.narrative-strip{left:50%;bottom:max(1.2rem, env(safe-area-inset-bottom));z-index:8;text-align:center;pointer-events:none;width:min(38rem,100vw - 14rem);animation:.32s ease-out both narrative-in;position:absolute;transform:translate(-50%)}.narrative-strip p{color:var(--bone);text-shadow:0 2px 1rem #000,0 2px 1rem #000;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(1rem,1.8vw,1.28rem);line-height:1.35}.narrative-strip span{color:var(--amber);text-transform:uppercase;margin-top:.5rem;font-family:Consolas,monospace;font-size:.66rem;display:block}.inventory{left:max(1.2rem, env(safe-area-inset-left));bottom:max(1.2rem, env(safe-area-inset-bottom));z-index:9;flex-direction:column;gap:.55rem;display:flex;position:absolute}.inventory-slots{gap:.45rem;display:flex}.inventory-slot{width:3.1rem;height:3.1rem;color:var(--muted);background:#040708c2;border:1px solid #d9d2bf38;border-radius:4px;place-items:center;padding:0;transition:color .18s,border-color .18s,background-color .18s;display:grid}.inventory-slot[data-owned=true]{color:var(--bone);cursor:pointer}.inventory-slot[data-owned=true]:hover,.inventory-slot[data-owned=true]:focus-visible,.inventory-slot[data-selected=true]{color:var(--amber);background:#201b0fc7;border-color:#d0a344b8}.inventory-slot svg{width:1.25rem;height:1.25rem}.empty-slot{background:#d9d2bf2e;border-radius:50%;width:.22rem;height:.22rem}.dialog-backdrop{z-index:30;background:#020405b8;place-items:center;padding:1rem;display:grid;position:absolute;inset:0}.receiver-dialog{background:#080d0ff5;border:1px solid #8bb4b152;border-radius:6px;width:min(27rem,100%);box-shadow:0 2rem 7rem #000000b8}.receiver-dialog header{border-bottom:1px solid #8bb4b129;grid-template-columns:auto 1fr auto;align-items:center;gap:.85rem;padding:1rem;display:grid}.receiver-dialog header>svg{color:var(--rust)}.receiver-dialog h2{letter-spacing:0;margin:.2rem 0 0;font-family:Bahnschrift,sans-serif;font-size:1.1rem}.archive-dialog-backdrop{background:radial-gradient(circle at 50% 45%,#263c3621,#0000 42%),#010304d1}.archive-record-dialog,.archive-terminal-dialog{width:min(38rem,100%);max-height:min(44rem,100svh - 2rem);color:var(--bone);background:#070c0cf7;border:1px solid #8bb4b157;border-radius:5px;overflow:auto;box-shadow:0 2rem 8rem #000000d1,inset 0 0 5rem #4e706509}.archive-record-dialog{transform:rotate(-.25deg)}.archive-record-dialog>header,.archive-terminal-dialog>header{border-bottom:1px solid #8bb4b129;grid-template-columns:1fr auto;align-items:start;gap:1rem;padding:1.2rem 1.25rem;display:grid}.archive-record-dialog header span,.archive-terminal-dialog header span{color:var(--amber);font-family:Consolas,Courier New,monospace;font-size:.62rem}.archive-record-dialog h2,.archive-terminal-dialog h2{letter-spacing:0;margin:.25rem 0 0;font-family:Bahnschrift,sans-serif;font-size:clamp(1.45rem,4vw,2.25rem);line-height:1}.archive-record-dialog header p{color:var(--muted);margin:.45rem 0 0;font-family:Consolas,Courier New,monospace;font-size:.68rem}.archive-record-copy{background-image:linear-gradient(#8bb4b10b 1px,#0000 1px);background-size:100% 1.7rem;gap:1rem;padding:1.5rem 1.4rem 1.2rem;display:grid}.archive-record-copy p{color:#d9d2bfe0;margin:0;font-family:Georgia,Times New Roman,serif;font-size:1rem;line-height:1.65}.archive-record-action{width:calc(100% - 2.8rem);min-height:3.2rem;color:var(--bone);cursor:pointer;background:#d0a34417;border:1px solid #d0a3448a;border-radius:3px;justify-content:center;align-items:center;gap:.65rem;margin:0 1.4rem 1.4rem;display:flex}.archive-record-action:hover,.archive-record-action:focus-visible{color:#111;background:var(--amber)}.archive-terminal-warning{color:#d9d2bfb8;margin:0;padding:1.2rem 1.3rem 0;font-family:Georgia,Times New Roman,serif;line-height:1.5}.archive-decision-grid{grid-template-columns:1fr 1fr;gap:.75rem;padding:1.2rem 1.3rem 1.3rem;display:grid}.archive-decision-grid button{min-height:8.5rem;color:var(--bone);text-align:left;cursor:pointer;background:#05090ac2;border:1px solid #8bb4b13d;border-radius:4px;grid-template-columns:auto 1fr;align-items:center;gap:.3rem .7rem;padding:1rem;display:grid}.archive-decision-grid button svg{width:1.5rem;color:var(--cyan);grid-row:1/3}.archive-decision-grid button strong{font-family:Bahnschrift,sans-serif;font-size:.9rem}.archive-decision-grid button span{color:var(--muted);font-size:.72rem;line-height:1.4}.archive-decision-grid button[data-decision=erase] svg{color:#a84656}.archive-decision-grid button:hover,.archive-decision-grid button:focus-visible{border-color:var(--amber);background:#d0a34417}.archive-decision-result{text-align:center;place-items:center;gap:.75rem;min-height:15rem;padding:2rem;display:grid}.archive-decision-result svg{width:2.8rem;height:2.8rem;color:var(--cyan)}.archive-decision-result[data-decision=erase] svg{color:#a84656}.archive-decision-result strong{font-family:Bahnschrift,sans-serif;font-size:1.35rem}.archive-decision-result p{max-width:25rem;color:var(--muted);margin:0}.ending-choice-backdrop{background:radial-gradient(circle at 50% 45%,#8960281a,#0000 38%),#010203db}.ending-choice-dialog{text-align:center;width:min(31rem,100%);color:var(--bone);background:#06090afa;border:1px solid #d0a3445c;border-radius:5px;place-items:center;padding:1.8rem;display:grid;box-shadow:0 2rem 8rem #000000db}.ending-choice-dialog>span{color:var(--amber);font-family:Consolas,Courier New,monospace;font-size:.62rem}.ending-choice-icon{width:3.6rem;height:3.6rem;color:var(--cyan);border:1px solid #8bb4b140;border-radius:50%;place-items:center;margin:1.1rem 0 .8rem;display:grid;box-shadow:0 0 2rem #8bb4b114}.ending-choice-icon[data-ending=escape]{color:var(--amber)}.ending-choice-icon[data-ending=warden]{color:#a74656}.ending-choice-dialog h2{letter-spacing:0;margin:0;font-family:Bahnschrift,sans-serif;font-size:clamp(1.5rem,5vw,2.35rem);line-height:1}.ending-choice-dialog>p{max-width:26rem;color:var(--muted);margin:.9rem 0 1.4rem;font-family:Georgia,Times New Roman,serif;line-height:1.55}.ending-choice-actions{grid-template-columns:1fr 1.35fr;gap:.7rem;width:100%;display:grid}.ending-choice-actions button{min-height:3rem;color:var(--muted);cursor:pointer;background:#8bb4b10a;border:1px solid #8bb4b13d;border-radius:3px}.ending-choice-actions button:last-child{color:var(--bone);background:#d0a3441a;border-color:#d0a34494}.ending-choice-actions button:hover,.ending-choice-actions button:focus-visible{color:#111;border-color:var(--amber);background:var(--amber)}.frequency-display{grid-template-columns:repeat(3,1fr);gap:.8rem;padding:1.6rem;display:grid}.digit-control{background:#05090a;border:1px solid #8bb4b138;border-radius:4px;grid-template-rows:2.5rem 4rem 2.5rem;display:grid;overflow:hidden}.digit-control button{color:var(--muted);cursor:pointer;background:#8bb4b10a;border:0;place-items:center;display:grid}.digit-control button:hover,.digit-control button:focus-visible{color:var(--amber);background:#d0a34414}.digit-control strong{color:var(--bone);border-top:1px solid #8bb4b11f;border-bottom:1px solid #8bb4b11f;place-items:center;font-family:Consolas,monospace;font-size:2.15rem;display:grid}.unlock-button,.ending-screen button{width:calc(100% - 3.2rem);min-height:3.1rem;color:var(--bone);cursor:pointer;background:#d0a3441f;border:1px solid #d0a3449e;border-radius:3px;justify-content:center;align-items:center;gap:.65rem;margin:0 1.6rem 1.6rem;transition:color .18s,background-color .18s;display:flex}.unlock-button:hover,.unlock-button:focus-visible,.ending-screen button:hover,.ending-screen button:focus-visible{color:#111;background:var(--amber)}.room-transition{z-index:18;pointer-events:none;background:#000;animation:1.25s ease-in-out both room-cut;position:absolute;inset:0}.ending-screen{background:#020304ed}.ending-screen h2{letter-spacing:0;color:var(--bone);max-width:min(54rem,100vw - 2rem);margin:1rem 0;font-family:Bahnschrift,Arial Narrow,sans-serif;font-size:clamp(3rem,8vw,7rem);line-height:.82}.ending-screen>span{max-width:28rem;color:var(--muted);margin:0 1rem 2rem;font-family:Georgia,serif}.ending-actions{flex-wrap:wrap;justify-content:center;gap:.65rem;display:flex}.ending-screen .ending-actions button{width:auto;min-width:12rem;margin:0;padding:0 1.2rem}@keyframes heartbeat{0%,22%,to{transform:scale(1)}8%{transform:scale(1.18)}14%{transform:scale(.96)}18%{transform:scale(1.1)}}@keyframes loading-pulse{0%,to{opacity:.34}50%{opacity:.82}}@keyframes reticle-label-in{0%{opacity:0;transform:translate(-50%,-.25rem)}to{opacity:1;transform:translate(-50%)}}@keyframes room-cut{0%,to{opacity:0}46%,62%{opacity:1}}@keyframes narrative-in{0%{opacity:0;transform:translate(-50%,.45rem)}to{opacity:1;transform:translate(-50%)}}@keyframes hiding-breathe{0%,to{opacity:.92}50%{opacity:1}}@keyframes surgery-threat-breathe{0%,to{opacity:.86}48%{opacity:1}56%{opacity:.9}}@keyframes surgery-meter-alert{0%,to{box-shadow:inset 0 0 1rem #8b2e3f24}50%{box-shadow:inset 0 0 1.4rem #c53b5157,0 0 .9rem #8b2e3f29}}@keyframes surgery-hide-prompt{0%,to{transform:translateY(0)}50%{transform:translateY(-.12rem)}}@keyframes surgery-caught-flash{0%{opacity:0}12%{opacity:.92}28%{opacity:.2}42%{opacity:.86}to{opacity:0}}@keyframes surgery-screen-tear{0%,to{opacity:0;transform:translate(0)}24%{opacity:.85;transform:translate(-1.2%)}58%{opacity:.46;transform:translate(1.4%)}}@keyframes surgery-impact-pupil{0%{opacity:0;transform:scale(.72)}18%{opacity:1;transform:scale(1.08)}to{opacity:0;transform:scale(1.42)}}@keyframes surgery-camera-rupture{0%{filter:contrast()saturate();transform:scale(1)}16%{filter:contrast(1.42)saturate(.72);transform:scale(1.035)translate(-.4%)}36%{filter:contrast(1.18)saturate(1.18);transform:scale(1.018)translate(.3%)}to{filter:contrast()saturate();transform:scale(1)}}@keyframes chase-meter-pulse{0%,to{box-shadow:inset 0 0 1rem #8b2e3f2e,0 0 #8b2e3f00}50%{box-shadow:inset 0 0 1.5rem #8b2e3f57,0 0 1.2rem #8b2e3f2e}}@keyframes chase-caught{0%{opacity:0}10%{opacity:.95}28%{opacity:.28}44%{opacity:.9}to{opacity:0}}@keyframes chase-tear{0%{opacity:.2;transform:translate(-1.2%)}45%{opacity:.9;transform:translate(1.4%)}to{opacity:0;transform:translate(0)}}@keyframes chase-camera-hit{0%{filter:contrast();transform:scale(1)}14%{filter:contrast(1.5)saturate(.55);transform:scale(1.08)translate(-.8%,.6%)}31%{transform:scale(1.035)translate(.65%,-.4%)}to{filter:contrast();transform:scale(1)}}@keyframes chase-door-seal{0%{opacity:0}28%{opacity:.85}to{opacity:0}}@keyframes chase-stage-cue{0%{opacity:0;transform:translate(-50%,.55rem)scale(.97)}18%,64%{opacity:1;transform:translate(-50%)scale(1)}to{opacity:0;transform:translate(-50%,-.35rem)scale(1.01)}}@keyframes chase-action-arrive{0%{opacity:0;transform:translate(-50%,-42%)scale(.94)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes chase-safe-route{0%,to{box-shadow:inset 0 0 1.25rem #58b8a61f,0 0 1rem #58b8a626}50%{box-shadow:inset 0 0 1.45rem #58b8a63d,0 0 2rem #58b8a657}}@media (width<=700px){.game-shell{min-height:31rem}.game-header{padding:max(.8rem, env(safe-area-inset-top)) max(.8rem, env(safe-area-inset-right)) .8rem max(.8rem, env(safe-area-inset-left))}.pulse-meter{min-width:4.25rem}.pulse-meter i{display:none}.corridor-progress{text-align:center;grid-template-columns:1fr;gap:.1rem;min-width:3.2rem;padding:0 .45rem}.corridor-progress span{font-size:.5rem}.game-shell[data-chapter=corridor] .pulse-meter,.game-shell[data-chapter=surgery] .pulse-meter,.game-shell[data-chapter=chase] .pulse-meter,.game-shell[data-chapter=archive] .pulse-meter,.game-shell[data-chapter=flooded] .pulse-meter,.game-shell[data-chapter=finale] .pulse-meter,.game-shell[data-chapter=archive] .room-id span{display:none}.game-shell[data-chapter=archive] .room-id strong{font-size:.9rem}.archive-progress{grid-template-columns:auto auto;min-width:3.45rem;padding:0 .42rem}.archive-progress span,.game-shell[data-chapter=flooded] .room-id span{display:none}.game-shell[data-chapter=flooded] .room-id strong{font-size:.82rem}.flooded-progress{grid-template-columns:auto auto;min-width:3.45rem;padding:0 .42rem}.flooded-progress span,.game-shell[data-chapter=finale] .room-id span{display:none}.game-shell[data-chapter=finale] .room-id strong{font-size:.82rem}.finale-progress{grid-template-columns:auto auto;min-width:3.45rem;padding:0 .42rem}.finale-progress span,.game-shell[data-chapter=surgery] .room-id span{display:none}.game-shell[data-chapter=surgery] .room-id strong{font-size:.9rem}.game-shell[data-chapter=surgery] .status-controls{gap:.35rem}.game-shell[data-chapter=surgery] .danger-meter{text-align:center;grid-template-columns:1fr;width:3.2rem;min-width:3.2rem;padding:0 .35rem}.game-shell[data-chapter=surgery] .danger-meter span,.game-shell[data-chapter=chase] .room-id span{display:none}.game-shell[data-chapter=chase] .room-id strong{font-size:.82rem}.game-shell[data-chapter=chase] .status-controls{gap:.35rem}.game-shell[data-chapter=chase] .chase-progress{text-align:center;grid-template-columns:1fr;width:3.35rem;min-width:3.35rem;padding:0 .35rem}.game-shell[data-chapter=chase] .chase-progress span{display:none}.room-navigation{gap:.55rem}.room-return{justify-content:center;width:2.75rem;padding:0}.room-return span{display:none}.narrative-strip{bottom:calc(max(.8rem, env(safe-area-inset-bottom)) + 4.6rem);width:calc(100vw - 2rem)}.game-shell[data-chapter=chase] .narrative-strip{bottom:max(.7rem, env(safe-area-inset-bottom));width:calc(100vw - 1.4rem)}.narrative-strip p{font-size:.96rem}.inventory{left:50%;bottom:max(.75rem, env(safe-area-inset-bottom));flex-direction:row;align-items:center;transform:translate(-50%)}.inventory-label{display:none}.scene-hotspot{width:5rem;height:5rem}.game-shell[data-chapter=surgery] .scene-hotspot{width:4rem;height:4rem}.hotspot-drawer{top:52%;left:14%}.hotspot-lantern{top:52%;left:86%}.hotspot-glyph{top:35%;left:92%}.hotspot-door{top:45%;left:54%}.hotspot-console{top:57%;left:47%}.hotspot-corridor-left{top:52%;left:18%}.hotspot-corridor-center{top:52%;left:50%}.hotspot-corridor-right{top:52%;left:82%}.hotspot-surgery-tray{top:58%;left:18%}.hotspot-surgery-cabinet{top:50%;left:72%}.hotspot-surgery-lamp{top:35%;left:57%}.hotspot-surgery-hide{top:61%;left:49%}.hotspot-surgery-exit{top:46%;left:95%}.hotspot-archive-patient-79{top:53%;left:45%}.hotspot-archive-orderly{top:52%;left:17%}.hotspot-archive-facility-map{top:53%;left:78%}.hotspot-archive-terminal{top:48%;left:84%}.hotspot-archive-exit{top:41%;left:54%}.hotspot-flooded-relay{top:53%;left:13%}.hotspot-flooded-valve{top:50%;left:87%}.hotspot-flooded-pump{top:43%;left:51%}.hotspot-flooded-exit{top:34%;left:85%}.hotspot-finale-memory-name{top:58%;left:14%}.hotspot-finale-memory-voice{top:53%;left:50%}.hotspot-finale-memory-reflection{top:43%;left:89%}.hotspot-finale-release{top:39%;left:48%}.hotspot-finale-witness{top:52%;left:84%}.hotspot-finale-stay{top:57%;left:14%}.survival-action{padding:0 .58rem;bottom:.8rem;right:.8rem}.survival-action span,.survival-action kbd{display:none}.chase-deadline{top:max(4.65rem, calc(env(safe-area-inset-top) + 4.65rem));grid-template-columns:minmax(5rem,auto) 1fr 1.2rem;gap:.42rem;width:calc(100vw - 1.2rem);min-height:1.9rem;padding:.3rem .45rem}.chase-deadline span{font-size:.49rem}.chase-deadline strong{font-size:.66rem}.chase-stage-cue{top:17%}.chase-stage-cue strong{font-size:1.08rem}.chase-choice{gap:.38rem;width:min(8.8rem,42vw);min-height:3.35rem;padding:.42rem .48rem}.chase-choice svg{width:1rem;height:1rem}.chase-choice strong{font-size:.56rem}.chase-choice small{font-size:.47rem}.chase-choice kbd{display:none}.chase-choice-vault{top:44%;left:40%}.chase-choice-detour{top:57%;left:76%}.chase-choice-route-left{top:49%;left:19%}.chase-choice-route-center{top:49%;left:50%}.chase-choice-route-right{top:49%;left:81%}.chase-choice-slide{top:55%;left:50%}.chase-choice-force{top:44%;left:78%}.chase-hold-action{min-height:4.2rem;top:61%}.chase-hold-action kbd{display:none}.scene-vignette{box-shadow:inset 0 0 6rem .5rem #000000ad}.scene-reticle{top:48%}.scene-reticle strong{font-size:.6rem}.entry-gate h1{line-height:.82}.archive-decision-grid{grid-template-columns:1fr}.archive-decision-grid button{min-height:6.6rem}.archive-record-dialog,.archive-terminal-dialog{max-height:calc(100svh - 1.2rem)}.ending-choice-dialog{padding:1.35rem 1rem}.ending-choice-actions{grid-template-columns:1fr}.ending-screen h2{font-size:clamp(2.35rem,14vw,4rem)}.ending-screen>span{margin-bottom:1.2rem}.ending-actions{flex-direction:column}}@media (height<=620px) and (orientation:landscape){.entry-mark,.entry-note,.inventory-label{display:none}.entry-gate h1{margin:.5rem 0 1rem;font-size:3.1rem}.narrative-strip{bottom:.75rem}.narrative-strip span,.game-shell[data-chapter=chase] .narrative-strip{display:none}.chase-deadline{top:4rem}.chase-stage-cue{top:14%}.chase-choice-vault{top:39%}.chase-choice-detour{top:58%}.chase-choice-route-left,.chase-choice-route-center,.chase-choice-route-right{top:43%}.chase-choice-slide{top:53%}.chase-choice-force{top:42%}.chase-hold-action{top:57%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}
