:root{--ink: #070605;--ink-soft: #100d0b;--paper: #ece5d4;--paper-dim: #b9b0a0;--red: #b83a26;--red-bright: #e45332;--orange: #e37633;--gold: #c5a36d;--green: #6c8264;--line: rgba(236, 229, 212, .16);--serif: "STSong", "Songti SC", "SimSun", "Noto Serif SC", Georgia, serif;--sans: "Microsoft YaHei", "PingFang SC", "Noto Sans SC", "Segoe UI", sans-serif}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;padding:0;overflow:hidden;background:var(--ink);color:var(--paper);font-family:var(--sans);-webkit-font-smoothing:antialiased;user-select:none;overscroll-behavior:none;-webkit-touch-callout:none}button{font:inherit;color:inherit}canvas#game-canvas{position:fixed;touch-action:none;inset:0;width:100%;height:100%;display:block;background:#05070c;outline:none}#ui{position:fixed;inset:0;pointer-events:none;z-index:5;overflow:hidden}.hidden{display:none!important}#hud{position:absolute;inset:0;pointer-events:none}#area-tag{position:absolute;top:26px;right:30px;display:flex;align-items:center;gap:10px;font-size:10px;letter-spacing:.22em;color:#ece5d494;text-transform:uppercase}#area-tag span{font-size:12px;letter-spacing:.14em;color:#ece5d4d9}#area-tag i{width:26px;height:1px;background:var(--red)}#area-tag b{font-weight:400;font-size:8px;letter-spacing:.28em;color:#ece5d459}#objective{position:absolute;top:25px;left:30px;max-width:340px;padding-left:16px;border-left:1px solid rgba(227,118,51,.55)}.objective-kicker{display:block;margin-bottom:6px;color:var(--orange);font-size:9px;letter-spacing:.28em;text-transform:uppercase}#objective-text{margin:0;font-size:13px;line-height:1.7;letter-spacing:.04em;color:#ece5d4e0;text-shadow:0 2px 16px rgba(0,0,0,.8)}#loop-readout{position:absolute;top:50%;right:28px;transform:translateY(-50%);display:flex;flex-direction:column;align-items:flex-end;gap:5px;color:#ece5d473;animation:loop-readout-in .8s ease both}#loop-readout span{font-size:8px;letter-spacing:.3em}#loop-readout strong{font-size:28px;font-weight:300;letter-spacing:.08em;color:#e37633cc;font-variant-numeric:tabular-nums}@keyframes loop-readout-in{0%{opacity:0;transform:translate(8px,-50%)}to{opacity:1;transform:translateY(-50%)}}#crosshair{position:absolute;left:50%;top:50%;width:16px;height:16px;transform:translate(-50%,-50%);opacity:.58;transition:opacity .2s ease,transform .2s ease}#crosshair:before,#crosshair:after{content:"";position:absolute;background:#ece5d4a6}#crosshair:before{left:7px;top:0;width:1px;height:5px;box-shadow:0 11px #ece5d4a6}#crosshair:after{top:7px;left:0;width:5px;height:1px;box-shadow:11px 0 #ece5d4a6}#crosshair i{position:absolute;left:7px;top:7px;width:2px;height:2px;border-radius:50%;background:var(--paper)}#crosshair.active{transform:translate(-50%,-50%) scale(1.18);opacity:1}#hud.modal-open #crosshair,#hud.modal-open #interaction-prompt{opacity:0!important}#crosshair.active:before,#crosshair.active:after,#crosshair.active i{background:var(--orange);box-shadow:0 11px 0 var(--orange)}#interaction-prompt{position:absolute;left:50%;top:calc(50% + 42px);transform:translate(-50%);display:flex;align-items:center;gap:9px;padding:7px 12px 7px 8px;border:1px solid rgba(236,229,212,.18);background:#080705ad;backdrop-filter:blur(8px);font-size:12px;letter-spacing:.08em;color:#ece5d4eb;opacity:0;transition:opacity .16s ease;white-space:nowrap}#interaction-prompt.visible{opacity:1}kbd{display:inline-flex;min-width:21px;height:21px;align-items:center;justify-content:center;padding:0 5px;border:1px solid rgba(236,229,212,.3);border-radius:2px;color:var(--paper);background:#ece5d40f;font-family:var(--sans);font-size:9px;font-weight:600;letter-spacing:.08em}#subtitle-area{position:absolute;left:50%;bottom:104px;width:min(720px,80vw);transform:translate(-50%);text-align:center;pointer-events:none}#subtitle{display:inline-block;margin:0;padding:9px 18px;background:#050403b8;border-top:1px solid rgba(227,118,51,.25);border-bottom:1px solid rgba(227,118,51,.25);color:#ece5d4f0;font-size:14px;line-height:1.8;letter-spacing:.08em;text-shadow:0 2px 12px #000;opacity:0;transform:translateY(5px);transition:opacity .24s ease,transform .24s ease}#subtitle.visible{opacity:1;transform:translateY(0)}#subtitle .ghost{color:#b8c7ab}#control-hint{position:absolute;left:30px;bottom:24px;display:flex;gap:16px;color:#ece5d452;font-size:9px;letter-spacing:.12em}#control-hint span:before{content:"·";margin-right:5px;color:#e37633b3}#flashlight-indicator{position:absolute;right:30px;bottom:24px;display:flex;align-items:center;gap:8px;color:#ece5d457;font-size:9px;letter-spacing:.16em;transition:color .2s ease}#flashlight-indicator span{width:18px;height:9px;border:1px solid rgba(236,229,212,.3);border-radius:1px 5px 5px 1px;position:relative}#flashlight-indicator span:after{content:"";position:absolute;left:2px;top:2px;bottom:2px;width:7px;background:#ece5d42e}#flashlight-indicator.on{color:#ece5d4a8}#flashlight-indicator.on span:after{background:#e37633bf;box-shadow:0 0 8px #e37633b3}#fade-layer{position:absolute;inset:0;z-index:90;background:#000;opacity:0;pointer-events:none;transition:opacity .45s ease}#fade-layer.opaque{opacity:1;pointer-events:auto}#impact-flash{position:absolute;inset:0;z-index:70;background:radial-gradient(circle at 50% 46%,rgba(255,230,190,.34),rgba(194,60,35,.08) 38%,transparent 70%);opacity:0;pointer-events:none;mix-blend-mode:screen}#loop-flash{position:absolute;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;background:#01010100;opacity:0;pointer-events:none}#loop-flash.active{animation:loop-flash-anim 2.1s ease both}#loop-flash .loop-lines{position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 3px,rgba(201,78,48,.08) 3px 4px);mix-blend-mode:screen}#loop-flash-text{margin:0;font-family:var(--serif);font-size:clamp(24px,3.2vw,46px);letter-spacing:.25em;color:#ece5d4e6;text-shadow:0 0 28px rgba(200,64,34,.55);transform:translateY(8px)}@keyframes loop-flash-anim{0%{opacity:0;background:#02010100}12%{opacity:1;background:#020101eb}42%{opacity:1;background:#140401f7}64%{opacity:1;background:#020101f2}to{opacity:0;background:#02010100}}#toast{position:absolute;left:50%;top:15%;transform:translate(-50%,-8px);z-index:120;padding:8px 14px;border:1px solid rgba(236,229,212,.16);background:#080503d1;color:#ece5d4d1;font-size:11px;letter-spacing:.12em;opacity:0;pointer-events:none;transition:opacity .25s ease,transform .25s ease}#toast.visible{opacity:1;transform:translate(-50%)}.screen{position:absolute;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .5s ease}.screen.visible{opacity:1;pointer-events:auto}#intro{justify-content:flex-start;background:#060504;overflow:hidden}.intro-image-wrap{position:absolute;inset:0 0 0 34%;overflow:hidden}.intro-image-wrap img{width:100%;height:100%;object-fit:cover;object-position:55% center;filter:saturate(.82) contrast(1.05) brightness(.62);transform:scale(1.04);animation:intro-drift 26s ease-in-out infinite alternate}@keyframes intro-drift{0%{transform:scale(1.04) translateZ(0)}to{transform:scale(1.11) translate3d(-1.5%,-1%,0)}}.intro-shade{position:absolute;inset:0;background:linear-gradient(90deg,#060504 0% 30%,#060504eb 43%,#06050447 70%,#060504bd),radial-gradient(circle at 68% 45%,transparent 0,rgba(3,2,1,.36) 48%,rgba(2,1,1,.9) 100%)}.intro-shade:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 3px,rgba(0,0,0,.12) 3px 4px);opacity:.5}.intro-content{position:relative;z-index:2;width:min(620px,52vw);margin-left:clamp(30px,7vw,120px);padding:30px 0}.intro-kicker{display:flex;align-items:center;gap:12px;color:#ece5d480;font-size:9px;letter-spacing:.18em;text-transform:uppercase}.intro-kicker span{display:block;width:30px;height:1px;background:var(--red-bright);box-shadow:0 0 12px #e45332cc}#intro h1{margin:30px 0 0;font-family:var(--serif);font-size:clamp(54px,8vw,118px);font-weight:500;line-height:.94;letter-spacing:.08em;color:#f0e9d8;text-shadow:0 4px 60px rgba(0,0,0,.9)}.score-lockup{display:flex;align-items:center;gap:18px;margin-top:12px;font-family:Georgia,Times New Roman,serif;font-size:clamp(36px,5vw,64px);font-weight:400;letter-spacing:.04em;color:#e45332e6;text-shadow:0 0 35px rgba(228,83,50,.2)}.score-lockup i{font-style:normal;font-size:.62em;color:#ece5d442}.intro-lead{margin:30px 0 0;font-family:var(--serif);font-size:clamp(17px,1.6vw,22px);line-height:1.85;letter-spacing:.08em;color:#ece5d4e6}.intro-copy{max-width:470px;margin:18px 0 0;font-size:12px;line-height:1.9;letter-spacing:.06em;color:#ece5d47a}.intro-actions{margin-top:32px}#start-button{position:relative;min-width:230px;padding:15px 30px;border:1px solid rgba(236,229,212,.28);background:#b83a26e0;color:#f5eedf;font-size:12px;letter-spacing:.22em;cursor:pointer;transition:background .22s ease,border-color .22s ease,transform .22s ease;pointer-events:auto}#start-button:not(:disabled):hover{background:var(--red-bright);border-color:#ffecd699;transform:translateY(-2px)}#start-button:disabled{cursor:wait;background:#3f2c26b3;color:#ece5d459;border-color:#ece5d41a}.intro-meta{display:flex;flex-wrap:wrap;gap:18px;margin-top:16px;font-size:9px;letter-spacing:.14em;color:#ece5d452}.intro-meta span:before{content:"—";margin-right:7px;color:#e376338c}.loading-row{display:flex;align-items:center;gap:12px;margin-top:22px;opacity:.75;transition:opacity .4s ease}.loading-row.done{opacity:.25}.loading-track{width:160px;height:2px;background:#ece5d41f}#loading-bar{width:0%;height:100%;background:var(--orange);transition:width .25s ease}#loading-status{font-size:8px;letter-spacing:.16em;color:#ece5d466}.intro-controls{position:absolute;left:clamp(30px,7vw,120px);bottom:30px;z-index:3;display:flex;gap:28px}.intro-controls div{display:flex;align-items:center;gap:5px;font-size:9px;letter-spacing:.08em;color:#ece5d461}.intro-controls span{margin-left:4px}.intro-stamp{position:absolute;right:32px;bottom:30px;z-index:3;font-size:8px;letter-spacing:.28em;color:#ece5d440;writing-mode:vertical-rl}#pause{z-index:110;background:#040302b8;backdrop-filter:blur(12px)}.pause-card,.error-card{width:min(420px,calc(100vw - 48px));padding:36px 38px;border:1px solid rgba(236,229,212,.14);background:#0a0806e6;box-shadow:0 30px 100px #0009}.panel-kicker{display:block;margin-bottom:10px;color:var(--orange);font-size:9px;letter-spacing:.28em;text-transform:uppercase}.pause-card h2,.error-card h2,.image-head h2,.keypad-head h2{margin:0;font-family:var(--serif);font-weight:500;letter-spacing:.08em}.pause-card h2{font-size:32px}.pause-card p{margin:16px 0 26px;color:#ece5d480;font-size:12px;line-height:1.8}#resume-button,#ending-restart{width:100%;padding:13px 18px;border:1px solid rgba(236,229,212,.24);background:var(--red);color:var(--paper);font-size:12px;letter-spacing:.2em;cursor:pointer;transition:background .2s ease}#resume-button:hover,#ending-restart:hover{background:var(--red-bright)}.button-ghost{width:100%;margin-top:10px;padding:12px 18px;border:1px solid rgba(236,229,212,.12);background:transparent;color:#ece5d47a;font-size:10px;letter-spacing:.18em;cursor:pointer}.button-ghost:hover{color:var(--paper);border-color:#ece5d44d}.pause-hint{margin-top:22px;text-align:center;font-size:9px;letter-spacing:.12em;color:#ece5d440}.modal-screen{z-index:115;background:#040302db;backdrop-filter:blur(16px)}.image-card{width:min(1040px,calc(100vw - 64px));max-height:calc(100vh - 64px);padding:26px 30px 22px;display:flex;flex-direction:column;border:1px solid rgba(236,229,212,.16);background:linear-gradient(135deg,#100c09fa,#080604fa);box-shadow:0 30px 120px #000c}.image-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-bottom:16px;border-bottom:1px solid rgba(236,229,212,.1)}.image-head h2,.keypad-head h2{font-size:clamp(22px,2.6vw,34px)}.close-button{width:32px;height:32px;border:1px solid rgba(236,229,212,.18);background:transparent;color:#ece5d480;font-size:19px;line-height:1;cursor:pointer}.close-button:hover{color:var(--paper);border-color:#ece5d466}.image-frame{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;margin-top:18px;padding:10px;background:#050403;border:1px solid rgba(197,163,109,.15)}.image-frame img{display:block;max-width:100%;max-height:min(60vh,620px);object-fit:contain;filter:saturate(.96) contrast(1.03)}#image-caption{margin:16px 0 0;color:#ece5d499;font-size:12px;line-height:1.8;letter-spacing:.05em}.modal-footer{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:18px;color:#ece5d459;font-size:9px;letter-spacing:.1em}.modal-footer span{display:inline-flex;align-items:center;gap:6px}.modal-footer kbd{height:18px;min-width:18px}.keypad-card{width:min(430px,calc(100vw - 40px));padding:30px;border:1px solid rgba(236,229,212,.22);background:linear-gradient(150deg,#201811,#0b0806);box-shadow:0 30px 120px #000c}.keypad-head h2{font-size:24px}.keypad-display{display:flex;justify-content:center;gap:10px;margin:26px 0 14px;padding:18px;background:#050403;border:1px solid rgba(197,163,109,.2);box-shadow:inset 0 0 40px #000c}.keypad-display span{width:44px;height:58px;display:flex;align-items:center;justify-content:center;border-bottom:1px solid rgba(197,163,109,.38);color:#ece5d42e;font-family:Georgia,serif;font-size:36px;transition:color .15s ease,border-color .15s ease}.keypad-display span.filled{color:var(--gold);border-color:var(--gold);text-shadow:0 0 18px rgba(197,163,109,.3)}.keypad-display.error span{color:#d4573a;border-color:#a23725;animation:keypad-shake .34s ease}.keypad-display.success span{color:#a9c49a;border-color:#6c8264}@keyframes keypad-shake{0%,to{transform:translate(0)}20%{transform:translate(-5px)}40%{transform:translate(4px)}60%{transform:translate(-3px)}80%{transform:translate(2px)}}#keypad-message{min-height:20px;margin:0 0 16px;text-align:center;color:#ece5d4b8;font-size:11px;letter-spacing:.08em;line-height:1.7}.keypad-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.keypad-grid button{padding:10px 4px;border:1px solid rgba(236,229,212,.14);text-align:center;color:#ece5d49e;font-family:Georgia,serif;font-size:15px;background:#ece5d40b;cursor:pointer}.keypad-grid button:active{background:#e3763329}.keypad-grid .keypad-sub{color:#ece5d461;font-family:var(--sans);font-size:9px}#ending{z-index:130;align-items:flex-end;justify-content:flex-start;background:#050505}.ending-bg{position:absolute;inset:0;background-image:url(/assets/stadium-exterior.jpg);background-size:cover;background-position:center 55%;filter:saturate(.5) brightness(.3) contrast(1.12) hue-rotate(-8deg);transform:scale(1.03);animation:ending-drift 24s ease-out both}@keyframes ending-drift{0%{transform:scale(1.08)}to{transform:scale(1.01)}}#ending:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#030303f7,#030303d6 40%,#03030333 78%,#0303038c),radial-gradient(circle at 75% 40%,transparent,rgba(0,0,0,.62) 70%)}.ending-content{position:relative;z-index:2;width:min(720px,66vw);margin-left:clamp(32px,8vw,140px);margin-bottom:8vh}.ending-content h2{margin:12px 0 0;font-family:var(--serif);font-size:clamp(34px,4.2vw,56px);font-weight:500;letter-spacing:.06em;white-space:nowrap}.ending-score{display:flex;align-items:center;gap:16px;margin:12px 0 20px;color:#e45332d1;font-family:Georgia,serif;font-size:42px}.ending-score i{font-style:normal;color:#ece5d433;font-size:24px}.ending-content>p{color:#ece5d494;font-size:12px;line-height:2;letter-spacing:.08em}.ending-content blockquote{margin:24px 0;padding-left:16px;border-left:1px solid rgba(228,83,50,.55);font-family:var(--serif);font-size:20px;letter-spacing:.14em;color:#ece5d4d9}#ending-restart{width:auto;min-width:230px;margin-top:6px}.ending-credit{margin-top:30px;font-size:8px;letter-spacing:.24em;color:#ece5d43d}#error-screen{z-index:200;background:#0b0906}.error-card h2{font-size:30px}.error-card p{color:#ece5d48c;font-size:12px;line-height:1.8}.error-card .error-detail{color:#ece5d44d;font-size:10px}@media(max-width:860px){.intro-content{width:86vw;margin-left:7vw}.intro-image-wrap{inset:0}.intro-shade{background:linear-gradient(90deg,#060504f7,#060504d9 58%,#06050480),radial-gradient(circle at 70% 40%,transparent,rgba(2,1,1,.8) 80%)}.intro-copy{max-width:88%}.intro-controls{display:none}#objective{max-width:270px}#area-tag b,#control-hint{display:none}.ending-content{width:84vw;margin-left:8vw}.ending-content h2{white-space:normal;font-size:clamp(30px,8vw,44px)}}@media(max-height:720px){#intro h1{margin-top:18px;font-size:clamp(46px,7vw,88px)}.intro-lead{margin-top:20px;font-size:16px;line-height:1.6}.intro-copy{margin-top:10px;line-height:1.6}.intro-actions{margin-top:20px}.loading-row{margin-top:14px}#subtitle-area{bottom:78px}.image-frame img{max-height:50vh}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}.dialogue-layer{position:absolute;inset:0;z-index:26;display:flex;align-items:flex-end;justify-content:center;padding:0 24px 54px;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .2s ease;background:linear-gradient(to top,rgba(0,0,0,.48),transparent 38%)}.dialogue-layer.visible{opacity:1;visibility:visible;pointer-events:auto}.dialogue-card{width:min(760px,92vw);border:1px solid rgba(228,220,202,.24);border-left:3px solid var(--green);background:linear-gradient(135deg,#0e1310f5,#050807f7);box-shadow:0 24px 70px #000000a6;padding:18px 24px 15px;pointer-events:auto;transform:translateY(8px);transition:transform .2s ease}.dialogue-layer.visible .dialogue-card{transform:translateY(0)}.dialogue-head{display:flex;align-items:center;gap:12px;margin-bottom:10px}.dialogue-speaker{color:#d8e6cf;font-size:14px;font-weight:700;letter-spacing:.12em}.dialogue-rule{height:1px;flex:1;background:linear-gradient(to right,rgba(119,160,111,.55),transparent)}.dialogue-meta{color:#d6e2cc61;font-family:monospace;font-size:9px;letter-spacing:.16em}#dialogue-text{min-height:27px;margin:0;color:#f0eddf;font-family:var(--serif);font-size:21px;line-height:1.55;letter-spacing:.02em;text-shadow:0 2px 14px rgba(0,0,0,.7)}.dialogue-choices{display:flex;flex-direction:column;gap:6px;margin-top:12px}.dialogue-choice{display:flex;align-items:center;gap:10px;width:100%;padding:7px 10px;border:1px solid rgba(223,232,210,.14);background:#dde9d409;color:#f0eee1cc;text-align:left;cursor:pointer;transition:border-color .15s ease,background .15s ease}.dialogue-choice:hover,.dialogue-choice.selected{border-color:#89b57e8c;background:#789e6f24;color:#f4f2e4}.dialogue-choice .choice-key{display:grid;place-items:center;width:18px;height:18px;border:1px solid rgba(222,232,212,.24);color:#dee8d49e;font-family:monospace;font-size:10px}.dialogue-hint{display:flex;align-items:center;gap:7px;margin-top:12px;color:#dee4d46b;font-size:10px;letter-spacing:.08em}.dialogue-hint kbd{border:1px solid rgba(222,228,212,.25);padding:1px 5px;color:#ece8d8a8;font-family:monospace;font-size:9px}.dialogue-layer.choices-open .dialogue-hint{display:none}@media(max-width:640px){.dialogue-layer{padding:0 12px 24px}.dialogue-card{padding:14px 16px 12px}#dialogue-text{font-size:18px}}#touch-controls{display:none;position:absolute;inset:0;z-index:30;pointer-events:none;touch-action:none}body.touch-device #touch-controls.active{display:block}#touch-look{position:absolute;inset:0;z-index:1;pointer-events:auto;touch-action:none}#touch-joystick{position:absolute;left:max(22px,env(safe-area-inset-left));bottom:max(24px,env(safe-area-inset-bottom));width:132px;height:132px;z-index:3;border-radius:50%;border:1px solid rgba(236,229,212,.24);background:radial-gradient(circle,#ece5d41a,#08070585 70%);box-shadow:inset 0 0 30px #000000b3,0 8px 30px #00000059;pointer-events:auto;touch-action:none}#touch-joystick:before,#touch-joystick:after{content:"";position:absolute;background:#ece5d41f;pointer-events:none}#touch-joystick:before{left:50%;top:18%;bottom:18%;width:1px}#touch-joystick:after{top:50%;left:18%;right:18%;height:1px}#touch-joystick-stick{position:absolute;left:50%;top:50%;width:62px;height:62px;margin:-31px 0 0 -31px;border-radius:50%;border:1px solid rgba(236,229,212,.46);background:#0c0a08b8;box-shadow:0 0 22px #e376332e;pointer-events:none;transition:transform .05s linear}#touch-actions{position:absolute;right:max(20px,env(safe-area-inset-right));bottom:max(24px,env(safe-area-inset-bottom));z-index:3;display:grid;grid-template-columns:repeat(2,58px);gap:10px;pointer-events:auto}.touch-action{width:58px;height:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:50%;border:1px solid rgba(236,229,212,.3);background:#080705ad;color:#ece5d4e6;backdrop-filter:blur(8px);touch-action:none;-webkit-tap-highlight-color:transparent}.touch-action strong{font-family:var(--serif);font-size:18px;font-weight:400;line-height:1}.touch-action span{font-size:9px;letter-spacing:.08em;color:#ece5d48c}.touch-action.held{border-color:#e37633cc;background:#e3763342}#touch-pause{position:absolute;top:max(16px,env(safe-area-inset-top));right:max(18px,env(safe-area-inset-right));z-index:4;width:42px;height:42px;border-radius:50%;border:1px solid rgba(236,229,212,.25);background:#08070599;color:#ece5d4cc;font-family:var(--sans);font-size:14px;touch-action:none}body.touch-device #control-hint,body.touch-device .intro-controls,body.touch-device .pause-hint,body.touch-device #flashlight-indicator,body.touch-device #interaction-prompt kbd,body.touch-device .dialogue-hint kbd,body.touch-device .modal-footer kbd,body.touch-device .dialogue-choice .choice-key{display:none}body.touch-device .close-button{width:46px;height:46px;font-size:24px}body.touch-device .keypad-grid button{min-height:48px;font-size:18px}#keypad-confirm{width:100%;margin-top:10px;padding:13px;border:1px solid rgba(197,163,109,.45);background:#c5a36d1a;color:var(--gold);font-size:13px;letter-spacing:.16em;cursor:pointer}#keypad-confirm:active{background:#c5a36d3d}#rotate-overlay{display:none;position:absolute;inset:0;z-index:300;align-items:center;justify-content:center;background:#050403e6;pointer-events:none}#rotate-overlay>div{padding:26px 34px;border:1px solid rgba(236,229,212,.2);text-align:center}#rotate-overlay span{display:block;color:var(--orange);font-size:10px;letter-spacing:.3em}#rotate-overlay strong{display:block;margin:12px 0 8px;font-family:var(--serif);font-size:26px;font-weight:400}#rotate-overlay p{margin:0;color:#ece5d48c;font-size:12px}@media(pointer:coarse)and (orientation:portrait){body.touch-playing #rotate-overlay{display:flex}}@media(pointer:coarse){#hud #objective{top:max(16px,env(safe-area-inset-top));left:max(16px,env(safe-area-inset-left));max-width:42vw}#hud #area-tag{display:none}#hud #subtitle-area{bottom:max(150px,calc(env(safe-area-inset-bottom) + 142px))}.touch-action,#touch-pause,#touch-joystick{user-select:none;-webkit-user-select:none}}
