:root{
  --bg:#050708; --panel:rgba(8,12,12,.79); --line:rgba(211,230,218,.17); --text:#e9eee8; --muted:#9daaa2;
  --red:#8d1717; --red2:#c6352f; --green:#6c9f7d; --amber:#c9994b;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
*{box-sizing:border-box} html,body,#app{width:100%;height:100%;margin:0;overflow:hidden;background:var(--bg);color:var(--text)}
body{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.screen{position:absolute;inset:0;display:none}.screen.active{display:block}.hidden{display:none!important}
button{font:inherit;color:inherit}.muted{color:var(--muted)}
#boot{display:none;place-items:center;background:radial-gradient(circle at 50% 45%,#15201c,#030405 70%);z-index:100}.boot-card{width:min(520px,1344px);text-align:center}.spinner{width:46px;height:46px;border:3px solid #35413c;border-top-color:#d5e0d9;border-radius:50%;margin:0 auto 22px;animation:spin .8s linear infinite}.boot-title{font-weight:900;letter-spacing:.22em;font-size:clamp(20px,64px,36px)}.progress{height:5px;background:#202726;margin-top:20px;overflow:hidden;border-radius:8px}.progress i{display:block;height:100%;width:0;background:#b32622;transition:width .18s}.screen.active#boot{display:grid}@keyframes spin{to{transform:rotate(360deg)}}
.cover-screen{background:#030405}.cover-bg{position:absolute;inset:0;background:url('assets/cover.webp') center/cover no-repeat;transform:scale(1.015)}.cover-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.86) 0%,rgba(0,0,0,.58) 44%,rgba(0,0,0,.2) 72%,rgba(0,0,0,.58) 100%),linear-gradient(0deg,rgba(0,0,0,.8),transparent 45%)}.cover-content{position:absolute;left:max(64px,26px);bottom:63px;width:min(540px,640px);z-index:3}.cover-card{padding:22px 24px;border-radius:18px;background:linear-gradient(180deg,rgba(8,12,12,.88),rgba(4,7,7,.77))}.eyebrow{font-weight:900;letter-spacing:.22em;color:#d47770;font-size:clamp(11px,19.2px,15px);text-transform:uppercase}.cover-copy{margin:12px 0 0;color:#d5ddd7;font-weight:600;font-size:clamp(15px,23.2px,21px);line-height:1.6}.cover-bullets{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.cover-bullets span{padding:7px 10px;border-radius:999px;background:rgba(7,10,10,.8);border:1px solid rgba(255,255,255,.11);font-size:11px;letter-spacing:.08em;color:#cad4cd;font-weight:800;text-transform:uppercase}.cover-actions{display:flex;gap:12px;margin-top:22px;flex-wrap:wrap}.btn{border:1px solid rgba(240,245,240,.19);background:rgba(18,24,23,.9);padding:15px 22px;border-radius:10px;font-weight:900;letter-spacing:.06em;cursor:pointer;transition:.15s transform,.15s background,.15s border;min-width:155px}.btn:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.5)}.btn.primary{background:linear-gradient(#b02a25,#751311);border-color:#d76058}.btn.ghost{background:rgba(8,12,12,.72)}.btn.reward{background:linear-gradient(#876b1e,#4c3a0c);border-color:#c5a44b}.btn.danger-btn{background:#321010;border-color:#6f2320}.btn.small{padding:10px 14px;min-width:0}.night-pills{display:flex;gap:7px;margin-top:26px;flex-wrap:wrap}.night-pill{padding:7px 10px;border:1px solid rgba(255,255,255,.12);background:rgba(4,7,7,.7);border-radius:999px;font-size:12px;color:#748079}.night-pill.open{color:#dce5df;border-color:#64746c}.night-pill.current{color:#fff;background:#6f1615;border-color:#c64a42}.brand{position:absolute;object-fit:contain;z-index:5;pointer-events:none}.brand-cover{right:40px;bottom:40.5px;width:clamp(300px,544px,640px);height:auto;opacity:.98;filter:drop-shadow(0 12px 30px rgba(0,0,0,.55))}.cover-footer{position:absolute;left:64px;bottom:21.6px;z-index:4;color:#a4afaa;font-size:12px;letter-spacing:.06em}
.game-screen{background:#030405}.store-view{position:absolute;inset:0;overflow:hidden}.store-bg{position:absolute;inset:-1.5%;background:url('assets/bg_store.webp') center/cover no-repeat;filter:saturate(.72) contrast(1.06)}.flicker{position:absolute;inset:0;background:#dcebe3;opacity:0;pointer-events:none;mix-blend-mode:screen}.flicker.on{animation:flick .28s steps(2) 2}@keyframes flick{0%,100%{opacity:0}35%{opacity:.14}55%{opacity:.03}75%{opacity:.24}}.red-pulse{position:absolute;inset:0;box-shadow:inset 0 0 160px rgba(130,0,0,0);pointer-events:none}.red-pulse.on{animation:redpulse .8s ease}@keyframes redpulse{50%{box-shadow:inset 0 0 180px rgba(130,0,0,.37)}}
.glass{background:linear-gradient(180deg,rgba(9,14,14,.9),rgba(3,6,6,.78));border:1px solid var(--line);box-shadow:0 20px 60px rgba(0,0,0,.28);backdrop-filter:blur(9px)}.hud{position:absolute;z-index:20}.top-hud{top:max(12px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);display:flex;gap:7px;align-items:center}.hud-card{min-width:105px;padding:9px 13px;border-radius:8px;background:rgba(3,6,6,.78);border:1px solid rgba(255,255,255,.1);display:flex;gap:8px;align-items:center;justify-content:space-between;box-shadow:0 8px 24px rgba(0,0,0,.26)}.hud-card b{font-size:10px;letter-spacing:.16em;color:#87938d}.hud-card span{font-weight:900;font-variant-numeric:tabular-nums}.hud-card.clock span{color:#d5ddd7}.icon-btn{width:42px;height:42px;border-radius:8px;border:1px solid rgba(255,255,255,.14);background:rgba(4,7,7,.83);font-weight:900;cursor:pointer}.left-panel{position:absolute;left:clamp(12px,32px,28px);top:84px;width:clamp(220px,320px,310px);padding:14px;border-radius:11px;z-index:15}.panel-title{font-size:11px;letter-spacing:.17em;color:#99a59e;font-weight:900;margin-bottom:10px}.objective{font-size:14px;line-height:1.35;font-weight:800;min-height:38px;margin-bottom:10px}.meter-line{display:grid;grid-template-columns:65px 1fr 38px;gap:7px;align-items:center;margin:8px 0}.meter-line span,.meter-line em{font-size:9px;color:#8d9892;font-style:normal;font-weight:900}.meter-line em{text-align:right}.meter{height:6px;border-radius:9px;background:#1e2824;overflow:hidden}.meter i{display:block;width:100%;height:100%;background:#79a28a;transition:width .3s}.meter.danger i{background:#a63b35}.meter.battery i{background:#b7a75f}.right-note{position:absolute;right:clamp(12px,32px,28px);top:84px;width:clamp(220px,320px,310px);padding:14px;border-radius:11px;z-index:15}.right-note ol{padding-left:20px;margin:0;color:#aeb9b2;font-size:12px;line-height:1.55}.right-note li+li{margin-top:5px}
.customer-stage{position:absolute;left:50%;bottom:153px;transform:translateX(-11%);width:min(528px,420px);height:min(549px,620px);z-index:8;filter:drop-shadow(0 35px 35px #000)}.customer-stage img{width:100%;height:100%;object-fit:contain;object-position:bottom}.customer-name{position:absolute;left:50%;bottom:4px;transform:translateX(-50%);font-size:11px;letter-spacing:.18em;font-weight:900;background:#0b0f0f;border:1px solid #3b4641;padding:7px 12px;border-radius:6px}.speech{position:absolute;left:3%;top:23%;transform:translateX(-100%);max-width:230px;background:rgba(5,8,8,.91);border:1px solid rgba(255,255,255,.16);padding:12px 14px;border-radius:10px;font-size:13px;font-weight:700;line-height:1.4;box-shadow:0 15px 40px #000}.speech:after{content:"";position:absolute;right:-8px;top:24px;border-width:8px 0 8px 8px;border-style:solid;border-color:transparent transparent transparent rgba(255,255,255,.16)}
.counter-panel{position:absolute;left:50%;bottom:117px;transform:translateX(-83%);width:min(544px,500px);padding:13px;border-radius:12px;z-index:14}.counter-head{display:flex;justify-content:space-between;font-size:11px;letter-spacing:.13em;color:#a2ada6;font-weight:900}.items{display:flex;gap:9px;min-height:70px;align-items:center;margin:9px 0;overflow:hidden}.item{position:relative;width:64px;height:64px;border:1px solid rgba(255,255,255,.11);background:rgba(0,0,0,.3);border-radius:8px;padding:5px}.item img{width:100%;height:100%;object-fit:contain}.item.scanned{opacity:.34;filter:grayscale(1)}.item.scanned:after{content:'✓';position:absolute;inset:0;display:grid;place-items:center;font-size:32px;font-weight:900;color:#b6d0be}.scan-readout{display:flex;justify-content:space-between;align-items:center;padding:9px 10px;background:#07100d;border:1px solid #183128;border-radius:7px;color:#78a98e;font-family:ui-monospace,monospace}.scan-readout strong{color:#d4e0d7}
.action-dock{position:absolute;z-index:20;left:50%;bottom:max(13px,env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;gap:7px;padding:7px;border-radius:11px}.action-btn{min-width:92px;padding:10px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.13);background:rgba(9,14,14,.92);font-weight:900;cursor:pointer}.action-btn span{display:block;font-size:11px;letter-spacing:.08em}.action-btn small{display:block;margin-top:3px;color:#69756f;font-size:9px}.action-btn.success{border-color:#355943}.action-btn.warning{border-color:#705c2f}.action-btn.danger{border-color:#6e2925}.action-btn:disabled{opacity:.34;cursor:not-allowed}.toast{position:absolute;z-index:55;left:50%;top:16%;transform:translate(-50%,-10px);background:rgba(3,5,5,.94);border:1px solid rgba(255,255,255,.18);border-left:4px solid #a83934;border-radius:8px;padding:12px 18px;min-width:260px;max-width:1040px;text-align:center;font-weight:800;opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}
.overlay{position:absolute;inset:0;z-index:80;display:grid;place-items:center}.overlay.dark{background:rgba(0,0,0,.77);backdrop-filter:blur(6px)}.modal{width:min(520px,1408px);padding:28px;background:linear-gradient(#101616,#070a0a);border:1px solid rgba(255,255,255,.16);box-shadow:0 30px 100px #000;border-radius:14px;text-align:center}.modal h2{font-size:clamp(28px,80px,50px);margin:7px 0 12px;line-height:.95}.modal p{color:#aab5ae;line-height:1.55}.modal .btn{display:block;width:100%;margin-top:9px}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:17px 0}.stats-grid div{background:#070b0b;border:1px solid rgba(255,255,255,.1);padding:12px;border-radius:8px}.stats-grid small{display:block;font-size:9px;letter-spacing:.12em;color:#78847d}.stats-grid strong{display:block;font-size:23px;margin-top:5px}.event-actions{margin-top:14px}.cctv-shell{position:relative;width:min(1080px,1472px);aspect-ratio:16/9;background:#050707;border:8px solid #151b19;box-shadow:0 30px 120px #000;overflow:hidden}.cctv-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:contrast(1.2) brightness(.72)}.cctv-noise{position:absolute;inset:0;pointer-events:none;opacity:.17;background:repeating-linear-gradient(0deg,rgba(255,255,255,.06) 0 1px,transparent 1px 4px);animation:noise .1s steps(2) infinite}@keyframes noise{50%{transform:translateY(2px)}}.cctv-head{position:absolute;left:18px;right:18px;top:14px;display:flex;justify-content:space-between;font-family:ui-monospace,monospace;font-weight:900;font-size:13px}.cctv-message{position:absolute;left:50%;bottom:55px;transform:translateX(-50%);background:#070a0a;border:1px solid rgba(255,255,255,.16);padding:9px 14px;font-family:ui-monospace,monospace;font-size:12px}.cctv-shell>.btn{position:absolute;right:15px;bottom:12px;z-index:5}.cctv-entity{position:absolute;right:14%;top:30%;width:90px;height:180px;background:radial-gradient(ellipse at 50% 25%,#0a0a0a 0 25%,transparent 26%),linear-gradient(#090909,#090909);border-radius:50% 50% 20% 20%;filter:blur(2px);opacity:.8;box-shadow:0 0 60px #000}.death-overlay{background:radial-gradient(circle at 50% 36%,rgba(110,0,0,.45),rgba(0,0,0,.94) 55%);backdrop-filter:blur(7px)}.death-face{position:absolute;inset:0;background:url('assets/customer_void.webp') center 35%/min(1040px,660px) auto no-repeat;filter:contrast(1.25) brightness(.55);opacity:.72;animation:deathzoom 3s ease-out forwards}@keyframes deathzoom{from{transform:scale(.8)}to{transform:scale(1.28)}}.death-modal{position:relative;z-index:2;margin-top:207px;background:rgba(8,5,5,.91)}.key-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:20px 0}.key-grid div{background:#080c0c;border:1px solid rgba(255,255,255,.09);padding:12px 5px;border-radius:7px}.key-grid kbd{display:block;font-size:20px;font-weight:900}.key-grid span{display:block;color:#7f8a84;font-size:10px;margin-top:4px}

/* Fixed 16:9 design stage. Windowed and fullscreen use the exact same layout; only the whole stage is scaled. */
html,body{
  width:100%;
  height:100%;
  margin:0;
  overflow:hidden;
  background:#000;
}
body{position:relative;}
#app{
  position:absolute;
  left:50%;
  top:50%;
  width:1600px;
  height:900px;
  margin:0;
  overflow:hidden;
  transform:translate(-50%,-50%) scale(var(--game-scale,1));
  transform-origin:center center;
  background:var(--bg);
}
