:root{color-scheme:dark;--bg:#070c0e;--txt:#e4e6d8;--red:#c54a36;--lite:#a2b3a6;--muted:#8c9d95;--mono:'Courier New',monospace}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;overflow:hidden;touch-action:none;background:var(--bg);color:var(--txt);font-family:var(--mono)}button,input{font-family:inherit}button{border:0;color:inherit;cursor:pointer;touch-action:manipulation}.hidden{display:none!important}
#game{position:relative;height:100vh;height:100dvh;width:100%;overflow:hidden;background:#020608}#view{display:block;width:100%;height:100%;touch-action:none}
#film{position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0 3px,#10221f 4px,#10221f 5px);opacity:.1;mix-blend-mode:screen}
#damage{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse,transparent 29%,rgba(161,20,12,.8) 100%);opacity:0;transition:opacity .3s}#damage.pulse{animation:pulse .75s infinite alternate}@keyframes pulse{to{opacity:.65}}
#hud{position:absolute;inset:0;pointer-events:none;text-shadow:0 2px 7px #000;padding:max(8px,env(safe-area-inset-top)) max(15px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(15px,env(safe-area-inset-left))}
#topline{display:flex;justify-content:space-between;align-items:start}#topline .brand{display:flex;gap:9px;align-items:center}.metro{display:grid;place-items:center;border-radius:50%;background:#bd3935;width:28px;height:28px;font:bold 19px Arial;box-shadow:0 0 22px #941b18b0}.brand small{display:block;color:#9dac9f;font-size:8px;letter-spacing:1px}.brand strong{display:block;font:bold 16px Impact,'Arial Narrow',sans-serif;letter-spacing:2px}.meta{display:flex;gap:14px;padding:5px 1px;font-weight:bold;font-size:11px;color:#d5d7c9}
#mission{position:absolute;top:55px;left:max(16px,env(safe-area-inset-left));width:min(315px,42vw)}.cap{font-weight:bold;font-size:9px;letter-spacing:1.8px;color:#92aa9b}#objective{font:bold clamp(13px,2.5vw,22px) Impact,'Arial Narrow',sans-serif;letter-spacing:.9px;margin:4px 0;color:#e3e8d9}#objectiveHint{font-size:9px;line-height:1.45;color:#b1c1b6;max-width:260px}.mate{font-size:8px;color:#d6d6c5;margin-top:5px}.mate.down{color:#fe8374}.mate.hiddenmate{color:#98d0b8}
#stats{position:absolute;top:57px;right:max(16px,env(safe-area-inset-right));text-align:right}#dangerText{font:bold 18px Impact,'Arial Narrow',sans-serif;letter-spacing:1px}#dangerText.hot{color:#f16b55}#stats small{font-size:7px;letter-spacing:1.5px;color:#b0bdb5}.bar{width:105px;height:4px;margin:7px 0 3px auto;background:#223831}.bar i{display:block;height:100%;background:#cfe7b9;width:100%}
#context{position:absolute;bottom:max(12px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);font-size:9px;letter-spacing:1px;border:1px solid #54736b96;background:#0b1816d8;max-width:47vw;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;padding:8px 11px}
#radar{position:absolute;right:max(16px,env(safe-area-inset-right));top:113px;width:102px;height:102px;opacity:.9;pointer-events:none;filter:drop-shadow(0 0 10px black)}
#touch{position:absolute;inset:0;pointer-events:none}#joystick{position:absolute;pointer-events:auto;left:max(26px,env(safe-area-inset-left));bottom:max(18px,env(safe-area-inset-bottom));height:112px;width:112px;touch-action:none}#joyring{position:absolute;inset:5px;border-radius:50%;border:2px solid #8fa89f63;background:#14201f6c;box-shadow:inset 0 0 34px #000c,0 0 17px #0008}#joynub{position:absolute;width:38px;height:38px;left:37px;top:37px;border-radius:50%;border:2px solid #a7c4b4;background:#59817390;box-shadow:0 0 12px #000c}
#actions{position:absolute;right:max(26px,env(safe-area-inset-right));bottom:max(22px,env(safe-area-inset-bottom));display:flex;align-items:end;gap:12px;pointer-events:auto}#actions button{border-radius:50%;display:flex;align-items:center;flex-direction:column;justify-content:center;font:bold 21px Impact,'Arial Narrow',sans-serif;box-shadow:0 4px 18px #000c;border:1px solid #b8877b;user-select:none}#actions button small{font:700 7px var(--mono);letter-spacing:.4px}#actions .big{width:66px;height:66px;background:#a93931df}#actions .smallBtn{width:57px;height:57px;background:#163029dc;border-color:#648477}#actions .pressed{transform:scale(.94);filter:brightness(1.6)}
#keyboardHint{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);font-size:9px;color:#a9bbad9c;white-space:nowrap}
#toast{position:absolute;z-index:15;left:50%;top:17%;transform:translate(-50%,-10px);width:max-content;max-width:min(88vw,620px);padding:12px 15px;line-height:1.5;background:#0b1c1beb;color:#f9e8dc;font-size:11px;box-shadow:0 6px 22px #000a;border:1px solid #d156437f;text-align:center;opacity:0;pointer-events:none;transition:.18s}#toast.shown{opacity:1;transform:translate(-50%,0)}
#screen{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:18px max(20px,env(safe-area-inset-right)) 18px max(20px,env(safe-area-inset-left));background:radial-gradient(ellipse at 45% 45%,#152b29dd,#081110f5 60%,#010506f9);overflow:auto}#screen .railNoise{position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(90deg,#4e6c620b 0 1px,transparent 1px 65px);transform:skew(-9deg)}.menuinner{z-index:1;width:min(100%,990px);display:grid;grid-template-columns:1fr minmax(260px,.8fr);align-items:center;gap:40px}.eyebrow{font-size:10px;letter-spacing:1.2px;color:#d68170;margin-bottom:17px}.intro h1{font:bold clamp(57px,8vw,128px)/.9 Impact,'Arial Narrow',sans-serif;margin:0;letter-spacing:-2px;white-space:nowrap}.intro h1 span{color:#ce5544}.intro h2{font:bold clamp(20px,3vw,36px) Impact,'Arial Narrow',sans-serif;letter-spacing:4px;margin:10px 0 24px}.strap{font:bold 11px var(--mono);letter-spacing:1px;color:#f17d6b;border-left:3px solid #c74435;padding-left:10px}.intro p{max-width:560px;font-size:11px;line-height:1.8;color:#b1c3b8}.menuControls{min-width:0}.menu-buttons{display:grid;gap:10px}.menu-buttons button{min-height:48px;padding:12px 14px;text-align:left;font-weight:bold;font-size:11px;letter-spacing:1px}.primary{background:#ad382d;border:1px solid #c65b50;display:flex;justify-content:space-between;align-items:center;width:100%}.secondary{background:#10221fc9;border:1px solid #46685e;display:flex;justify-content:space-between;align-items:center;width:100%}.secondary small{font-size:8px;color:#b0c2b6}.joinline{display:flex;min-width:0;border:1px solid #46685e}.joinline input{padding:12px 10px;background:#101e1d;color:#fff;border:0;outline:0;flex:1;min-width:0;font-size:10px;letter-spacing:1.1px;text-transform:uppercase}.joinline button{background:#28413a;padding:8px 12px;white-space:nowrap;font-size:10px}button:active{filter:brightness(1.25)}button:disabled{opacity:.5}.foot{margin-top:16px;color:#839b8f;font-size:8px;line-height:1.8;letter-spacing:.5px}.foot span{color:#c8d6cb}.roomcode{font:700 44px Impact,sans-serif;letter-spacing:6px;color:#e6d8ca;margin:7px 0}.person{display:flex;justify-content:space-between;font-size:10px;padding:7px 0;border-bottom:1px solid #415147}.person em{color:#d68577;font-style:normal}.quiet{background:transparent;color:#afc2b2;padding:10px}.roster{margin:12px 0}.ending #end-title{font:bold 35px Impact,sans-serif;color:#f2cfbc}.ending p{font-size:11px;color:#c2c9bc;line-height:1.7}
#rotate{position:absolute;z-index:30;inset:0;background:#081413f5;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px;text-align:center}.rotateIcon{font-size:66px;transform:rotate(-35deg);color:#d26a58}#rotate h3{font:700 29px Impact,sans-serif;letter-spacing:2px;margin:12px 0}#rotate p{font-size:12px;line-height:1.6;max-width:350px;color:#b4c5ba}#rotate button{border:1px solid #6d887b;background:#192f2a;font-size:10px;padding:14px 17px;margin-top:16px}
@media(max-height:470px) and (orientation:landscape){#mission{top:49px;width:37vw}#objective{font-size:15px}#objectiveHint{font-size:8px;line-height:1.3}#stats{top:51px}#dangerText{font-size:15px}#radar{width:75px;height:75px;top:110px}#context{bottom:7px;padding:6px;font-size:8px}#joystick{width:106px;height:106px;bottom:9px}#joyring{inset:6px}#joynub{left:34px;top:34px}#actions{bottom:13px}#actions .big{height:58px;width:58px}#actions .smallBtn{width:49px;height:49px}.menuinner{gap:20px}.intro h1{font-size:clamp(55px,8vw,96px)}.intro h2{font-size:24px;margin:6px 0 12px}.eyebrow{margin-bottom:12px}.intro p{line-height:1.6;margin:10px 0}.menu-buttons{gap:5px}.menu-buttons button{min-height:42px;padding:7px 10px}.foot{font-size:7px;margin-top:9px}#toast{top:12%;font-size:9px;padding:8px}}
@media(max-width:650px) and (orientation:portrait){.menuinner{display:block;width:100%;max-width:540px}.intro h1{font-size:clamp(62px,16vw,106px)}.intro h2{font-size:24px}.menuControls{margin-top:20px}#mission{top:55px;width:55vw}#stats{top:59px}#radar{top:145px;width:84px;height:84px}#context{bottom:23%;max-width:89vw}#joystick{bottom:35px}#actions{bottom:40px}}

/* v0.4: legible mobile radio-direction finder, extra decoy action and subtle analog atmospherics. */
#bearing{margin-top:9px;display:inline-block;padding:5px 7px;border-left:2px solid #bb8053;color:#e1c69b;background:#081312b5;letter-spacing:.45px;font:700 9px var(--mono);max-width:min(340px,42vw);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#actions .decoyBtn{width:51px;height:51px;border-color:#b9a478;background:#3c372bcf;color:#e3cda2;transform:translateY(-3px)}
#decoyCount{color:#f8e6b4}
#film{background:repeating-linear-gradient(0deg,transparent 0 3px,#15332a20 4px,#0c1b2024 5px),repeating-linear-gradient(90deg,transparent 0 143px,#e1bd6a0a 145px);opacity:.30;mix-blend-mode:screen}
#screen{background:radial-gradient(ellipse at 34% 46%,#24362d9c,#111b1be8 40%,#030709fc 79%),repeating-linear-gradient(-29deg,#060d0d 0 5px,#101c1a 6px 16px);}
#screen:after{content:'03:17   СЛУЖЕБНЫЙ РЕЙС   ●   03:17';position:absolute;bottom:2px;left:10px;font:700 8px monospace;letter-spacing:4px;color:#aa78638a;pointer-events:none}
#mission{background:linear-gradient(100deg,#050b0ad9,#050b0a80 80%,transparent);padding:5px 8px 6px 0}
#context{border-color:#7d9b846f;backdrop-filter:blur(2px)}
@media(max-height:470px) and (orientation:landscape){#bearing{margin-top:4px;font-size:8px;max-width:38vw;padding:3px 5px}#actions{gap:6px}#actions .decoyBtn{height:45px;width:45px}#teammates{display:none}}

/* NIGHTFALL v0.5 — landscape survival HUD, flashlight & audio/puzzle controls */
#game.blackout #film{opacity:.53;filter:hue-rotate(150deg)}
#game.blackout #dangerText{color:#e26f58}
#actions .lightBtn,#actions .sneakBtn{width:47px;height:47px;border-color:#8ca6a1;background:#183735da;font-size:19px}
#actions .sneakBtn{border-color:#b4a281;background:#3e362acc}
#actions .pressed{background:#625345ed!important;outline:2px solid #c6b3829e;filter:brightness(1.18)}
#actions #light.pressed{background:#11191ce8!important}
.soundToggle{align-self:end;background:#141f1dd7;border:1px solid #566e5a;padding:8px 13px;min-height:29px!important;color:#d6e1cb;font-size:10px!important;letter-spacing:1px;text-align:center!important}
#puzzle{position:absolute;z-index:35;inset:0;display:flex;align-items:center;justify-content:center;background:#010806b8;backdrop-filter:blur(4px);padding:8px}
.puzzleBody{width:min(640px,91vw);padding:16px 19px;background:linear-gradient(140deg,#1c2c2c,#09100feb);border:1px solid #7a9688;box-shadow:0 0 55px #020a09,0 0 19px #b7522845;text-align:center}
.puzzleBody h3{font:bold 24px Impact,'Arial Narrow',sans-serif;letter-spacing:2px;margin:6px 0;color:#e5d8bb}
#puzzleCode{font:bold 12px 'Courier New',monospace;color:#f0c38a;min-height:28px;line-height:1.4}
#puzzleStep{color:#becdb8;font-size:10px;margin:5px 0 10px}
.puzzleChoices{display:flex;gap:9px;justify-content:center}
.puzzleChoices button{background:#314f44;border:1px solid #83a293;flex:1;max-width:190px;min-height:45px;font:bold 11px 'Courier New',monospace;padding:8px;color:#ecf0d9}
#puzzleCancel{font:700 9px 'Courier New',monospace;padding:9px 20px;margin-top:8px;background:none;color:#c2a89e;text-decoration:underline}
#touch{z-index:6}#hud{z-index:4}#keyboardHint{z-index:5}
#puzzle:not(.hidden)~#screen{pointer-events:none}
#screen .intro h1{text-shadow:3px 5px 1px #000,0 0 50px #742d2d66}
#stats{background:linear-gradient(270deg,#071312ca,transparent);padding:4px 5px}
#radar{border-radius:4px;border:1px solid #5872688b}
@media(max-height:490px) and (orientation:landscape){
 #actions{right:max(9px,env(safe-area-inset-right));bottom:max(9px,env(safe-area-inset-bottom));gap:5px}
 #actions .lightBtn,#actions .sneakBtn{width:41px;height:41px;font-size:16px}
 #actions .lightBtn small,#actions .sneakBtn small{font-size:6px}
 #actions .decoyBtn{width:43px;height:43px}#actions .big{width:51px;height:51px}#actions #sprint{width:43px;height:43px}
 #joystick{left:max(13px,env(safe-area-inset-left));bottom:8px;width:98px;height:98px}
 #joynub{left:30px;top:30px}
 .puzzleBody{padding:8px 15px}.puzzleBody h3{font-size:20px;margin:2px 0}#puzzleCode{font-size:10px;min-height:21px}.puzzleChoices button{min-height:35px}
}

/* UGA HUD SAFE 0.5.2 — keep the Telegram fullscreen buttons away from the HUD. */
@media (orientation: landscape) {
  #topline {
    position: absolute;
    top: max(8px, var(--tg-content-safe-area-inset-top, 0px));
    left: max(24vw, calc(160px + env(safe-area-inset-left, 0px)), calc(160px + var(--tg-safe-area-inset-left, 0px)));
    right: max(20vw, calc(135px + env(safe-area-inset-right, 0px)), calc(135px + var(--tg-safe-area-inset-right, 0px)));
    gap: 10px;
  }
  #topline .brand { min-width:0; flex-shrink:1; }
  #topline .brand strong { white-space:nowrap; }
  #topline .meta { flex-shrink:0; white-space:nowrap; }
  #mission { top: calc(55px + var(--tg-content-safe-area-inset-top, 0px)); }
  #stats { top: calc(57px + var(--tg-content-safe-area-inset-top, 0px)); }
  #radar { top: calc(113px + var(--tg-content-safe-area-inset-top, 0px)); }
}
@media (max-width: 720px) and (orientation: landscape) {
  #topline {
    left: max(21vw, calc(110px + env(safe-area-inset-left, 0px)), calc(110px + var(--tg-safe-area-inset-left, 0px)));
    right: max(18vw, calc(105px + env(safe-area-inset-right, 0px)), calc(105px + var(--tg-safe-area-inset-right, 0px)));
    gap: 6px;
  }
  #topline .metro, #topline .brand small { display:none; }
  #topline .brand strong { font-size:12px; letter-spacing:0.4px; }
  #topline .meta { font-size:9px; gap:6px; }
}

/* UGA HUD SURVIVAL 0.5.8 */
#bearing{display:none!important}
.batteryReadout{display:flex;justify-content:space-between;gap:9px;margin-top:9px;color:#e1c88a;font:bold 8px var(--mono);letter-spacing:.1px}
.batteryTrack{height:5px;background:#3b3323;border:1px solid #a68f5566;width:100%;margin-top:3px}
#batteryLevel{display:block;height:100%;width:100%;background:linear-gradient(90deg,#ad8542,#ffe79a);transition:width .2s linear}
#batteryLevel.batteryLow{background:#f04f3c;box-shadow:0 0 6px #bc301f}
#stats{width:175px}#radar{top:167px}
/* Desktop HUD only: no influence on landscape iOS/TG coarse pointer. */
@media (pointer:fine) and (min-width:900px){
 #topline{position:absolute;top:18px;left:50%;transform:translateX(-50%);width:min(600px,calc(100vw - 670px));min-width:400px;max-width:680px;align-items:center}
 #topline .brand strong{font-size:20px}#topline .brand small{font-size:9px}
 .meta{font-size:12px;gap:12px}
 #mission{top:112px;left:28px;width:min(350px,28vw);padding:10px 12px}
 #objective{font-size:25px}#objectiveHint{font-size:11px;max-width:350px}
 #stats{top:112px;right:30px;width:196px}
 #dangerText{font-size:23px}.bar{width:100%}#stats small{font-size:9px}
 #radar{top:244px;right:30px;width:142px;height:142px}
 #context{bottom:32px;font-size:11px;max-width:420px;padding:11px 18px}
 #keyboardHint{bottom:10px;font-size:10px}
}
/* Telegram mobile fullscreen: center title/timer in the gap between Telegram controls. */
@media (pointer:coarse) and (orientation:landscape){
 #topline{position:absolute;top:max(8px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);width:min(520px,calc(100vw - 410px));min-width:300px;align-items:center;gap:12px}
 #topline .brand{gap:6px}.brand small{font-size:7px;letter-spacing:.2px}.brand strong{font-size:15px;letter-spacing:.6px}.metro{width:25px;height:25px;font-size:17px;flex-shrink:0}
 .meta{padding:0;font-size:10px;gap:8px;white-space:nowrap}
 #mission{top:78px}#stats{top:78px;width:148px}
 #radar{top:202px}
 .batteryReadout{font-size:7px}
}
@media (pointer:coarse) and (orientation:landscape) and (max-height:490px){
 #topline{top:max(7px,env(safe-area-inset-top));width:min(460px,calc(100vw - 350px))}
 #mission{top:68px}#stats{top:70px;width:142px}#radar{top:181px;width:77px;height:77px}
 #stats .batteryReadout{font-size:6.5px}
}
