:root{
  --bg:#0a0a0c;
  --panel:#141418;
  --panel2:#1c1c22;
  --ink:#c9c9c4;
  --dim:#6b6b72;
  --red:#c0392b;
  --redglow:#ff3b2f;
  --amber:#e0a24b;
  --green:#3fae6b;
  --line:#2a2a30;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  background:#000;color:var(--ink);
  font-family:'Inter',system-ui,sans-serif;
  overflow:hidden;position:fixed;inset:0;
  -webkit-tap-highlight-color:transparent;user-select:none;
}

/* ---- Атмосферные оверлеи ---- */
#scanlines,#noise,#vignette{position:fixed;inset:0;pointer-events:none;z-index:9000}
#scanlines{background:repeating-linear-gradient(to bottom,
  rgba(0,0,0,0) 0px,rgba(0,0,0,0) 2px,rgba(0,0,0,.25) 3px,rgba(0,0,0,0) 4px);
  opacity:.5;mix-blend-mode:multiply}
#vignette{box-shadow:inset 0 0 220px 40px #000;background:radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.6) 100%)}
#noise{opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:noise .4s steps(2) infinite}
@keyframes noise{0%{transform:translate(0,0)}50%{transform:translate(-4px,3px)}100%{transform:translate(3px,-2px)}}

/* ---- Экраны ---- */
.screen{position:fixed;inset:0;display:none;align-items:center;justify-content:center;
  padding:24px;z-index:100;animation:fadein .6s ease}
.screen.active{display:flex}
@keyframes fadein{from{opacity:0}to{opacity:1}}

/* ---- Кнопки ---- */
.btn{font-family:'Special Elite',serif;font-size:16px;letter-spacing:1px;
  background:var(--panel2);color:var(--ink);border:1px solid var(--line);
  padding:14px 26px;cursor:pointer;transition:.2s;text-transform:uppercase}
.btn:hover{background:#26262e;border-color:var(--dim);transform:translateY(-1px)}
.btn.danger{border-color:var(--red);color:#e8b6b0;box-shadow:0 0 18px rgba(192,57,43,.25)}
.btn.danger:hover{background:var(--red);color:#fff;box-shadow:0 0 30px rgba(255,59,47,.5)}

/* ---- Предупреждение ---- */
.warn-box{max-width:520px;text-align:center;background:var(--panel);
  border:1px solid var(--line);padding:40px 34px;border-radius:4px}
.warn-icon{font-size:52px;color:var(--amber);animation:pulse 1.6s infinite}
@keyframes pulse{50%{opacity:.4}}
.warn-box h1{font-family:'Special Elite';letter-spacing:6px;margin:10px 0 18px;color:#e8b6b0}
.warn-box p{color:var(--dim);line-height:1.6;margin-bottom:14px;font-size:15px}
.warn-sound{display:flex;align-items:center;justify-content:center;gap:12px;margin:22px 0;color:var(--dim);font-size:14px}
.switch{position:relative;display:inline-block;width:46px;height:24px}
.switch input{display:none}
.slider{position:absolute;inset:0;background:#333;border-radius:24px;transition:.3s;cursor:pointer}
.slider:before{content:"";position:absolute;height:18px;width:18px;left:3px;top:3px;background:#888;border-radius:50%;transition:.3s}
input:checked+.slider{background:var(--red)}
input:checked+.slider:before{transform:translateX(22px);background:#fff}

/* ---- Boot ---- */
#boot{background:#000;align-items:flex-start;justify-content:flex-start;padding:40px}
.boot-text{font-family:'VT323',monospace;font-size:22px;color:var(--green);
  line-height:1.4;white-space:pre-wrap;text-shadow:0 0 6px rgba(63,174,107,.5)}

/* ---- Досье ---- */
.dossier{position:relative;max-width:620px;background:#161512;
  border:1px solid #33312a;padding:34px;border-radius:3px;
  background-image:linear-gradient(rgba(20,19,16,.9),rgba(20,19,16,.9));box-shadow:0 0 60px rgba(0,0,0,.8)}
.stamp{position:absolute;top:18px;right:-6px;transform:rotate(8deg);
  border:3px solid var(--red);color:var(--red);font-family:'Special Elite';
  padding:4px 14px;letter-spacing:4px;opacity:.75;font-size:18px}
.dossier h2{font-family:'Special Elite';letter-spacing:3px;color:#d8d2c4;margin-bottom:20px}
.dossier-grid{display:flex;gap:20px;margin-bottom:18px}
.photo-slot{width:130px;height:160px;flex:none;border:1px solid #44423a;
  background:#0d0d0d;display:flex;align-items:center;justify-content:center;
  color:#555;font-family:'VT323';font-size:16px;text-align:center;background-size:cover;background-position:center}
.dossier-info p{margin-bottom:8px;font-size:15px;color:#b8b3a6}
.dossier-info b{color:#d8d2c4}
.red{color:var(--redglow)!important;text-shadow:0 0 8px rgba(255,59,47,.4)}
.brief{line-height:1.7;color:#a8a396;margin:16px 0;font-size:15px;font-family:'Special Elite'}
.dossier .btn{margin-top:12px}

/* ---- Рабочий стол ---- */
#desktop{flex-direction:column;justify-content:flex-start;
  background:radial-gradient(ellipse at 50% 0%,#15151c,#080809)}
.topbar{position:fixed;top:0;left:0;right:0;height:34px;background:#0c0c10;
  border-bottom:1px solid var(--line);display:flex;align-items:center;
  justify-content:space-between;padding:0 16px;font-family:'VT323';font-size:17px;color:var(--dim);z-index:120}
.topbar-title{letter-spacing:1px}
.topbar-clock{color:var(--green)}
.apps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:70px;width:100%;max-width:560px}
.app{position:relative;background:var(--panel);border:1px solid var(--line);
  border-radius:8px;padding:22px 10px;cursor:pointer;color:var(--ink);
  display:flex;flex-direction:column;align-items:center;gap:8px;transition:.2s;font-size:14px}
.app:hover{background:var(--panel2);border-color:var(--dim);transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,.5)}
.app-icon{font-size:34px;filter:grayscale(.3)}
.app.locked{opacity:.45;cursor:not-allowed}
.app.locked:hover{transform:none;background:var(--panel)}
.badge{position:absolute;top:8px;right:10px;background:var(--red);color:#fff;
  font-style:normal;font-size:11px;min-width:18px;height:18px;border-radius:9px;
  display:none;align-items:center;justify-content:center;padding:0 5px;font-weight:800}
.badge.show{display:flex;animation:pulse 1.4s infinite}
.progress-bar{margin-top:30px;text-align:center;font-family:'VT323';font-size:17px;color:var(--dim);width:100%;max-width:560px}
.pbar{height:6px;background:#1a1a1f;border:1px solid var(--line);margin-top:8px;border-radius:3px;overflow:hidden}
.pfill{height:100%;width:0;background:linear-gradient(90deg,var(--red),var(--amber));transition:width .6s}

/* ---- Окна приложений ---- */
#windowLayer{position:fixed;inset:0;z-index:300;pointer-events:none}
.window{position:absolute;inset:0;background:var(--bg);pointer-events:auto;
  display:flex;flex-direction:column;animation:winup .35s ease}
@keyframes winup{from{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}
.win-head{height:52px;background:#0c0c10;border-bottom:1px solid var(--line);
  display:flex;align-items:center;justify-content:space-between;padding:0 12px;flex:none;gap:10px}
.win-title{font-family:'Special Elite';letter-spacing:1px;font-size:15px;color:#d8d2c4;
  flex:1;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.win-back{font-family:'VT323';font-size:19px;color:#e8e6df;background:var(--panel2);
  border:1px solid var(--dim);border-radius:6px;padding:6px 14px;cursor:pointer;flex:none;transition:.2s}
.win-back:hover{background:var(--red);border-color:var(--red);color:#fff}
.win-close{background:var(--panel2);border:1px solid var(--line);color:#e8e6df;font-size:20px;
  cursor:pointer;padding:4px 12px;border-radius:6px;flex:none;line-height:1}
.win-close:hover{color:#fff;background:var(--red);border-color:var(--red)}
.win-body{flex:1;overflow-y:auto;padding:18px}
.win-body::-webkit-scrollbar{width:8px}
.win-body::-webkit-scrollbar-thumb{background:#2a2a30;border-radius:4px}

/* ---- Телефон / чаты ---- */
.chat-list .chat-item{display:flex;gap:12px;padding:14px;border-bottom:1px solid var(--line);cursor:pointer;align-items:center}
.chat-item:hover{background:var(--panel)}
.chat-ava{width:44px;height:44px;border-radius:50%;background:#26262e;flex:none;display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--dim)}
.chat-meta{flex:1;min-width:0}
.chat-name{font-weight:600;color:#d8d2c4;display:flex;justify-content:space-between}
.chat-name small{color:var(--dim);font-weight:400;font-size:12px}
.chat-prev{color:var(--dim);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bubbles{display:flex;flex-direction:column;gap:8px;padding:8px 4px}
.bubble{max-width:78%;padding:9px 13px;border-radius:14px;font-size:14px;line-height:1.4;animation:fadein .4s}
.bubble.them{background:#1e1e26;align-self:flex-start;border-bottom-left-radius:4px}
.bubble.her{background:#243a2c;align-self:flex-end;border-bottom-right-radius:4px;color:#dfeee2}
.bubble .t{display:block;font-size:10px;color:var(--dim);margin-top:4px;text-align:right}
.bubble.creepy{background:#2a1416;color:#f0c9c4;box-shadow:0 0 14px rgba(192,57,43,.3)}
.back-link{font-family:'VT323';color:#e8e6df;cursor:pointer;font-size:18px;margin-bottom:12px;
  display:inline-block;background:var(--panel2);border:1px solid var(--dim);
  border-radius:6px;padding:6px 14px;transition:.2s}
.back-link:hover{background:var(--amber);border-color:var(--amber);color:#1a1a1a}

/* ---- GPS ---- */
.map{position:relative;width:100%;height:340px;background:#0d1218;border:1px solid var(--line);
  border-radius:6px;overflow:hidden;background-image:
  linear-gradient(rgba(63,174,107,.06) 1px,transparent 1px),
  linear-gradient(90deg,rgba(63,174,107,.06) 1px,transparent 1px);background-size:26px 26px}
.map-path{position:absolute;inset:0}
.ping{position:absolute;width:14px;height:14px;border-radius:50%;transform:translate(-50%,-50%)}
.ping.start{background:var(--green);box-shadow:0 0 10px var(--green)}
.ping.mid{background:var(--amber);box-shadow:0 0 10px var(--amber)}
.ping.end{background:var(--red);box-shadow:0 0 16px var(--redglow);animation:pulse 1.2s infinite}
.ping-label{position:absolute;transform:translate(-50%,-160%);font-family:'VT323';font-size:14px;
  color:#cfcfc8;background:rgba(0,0,0,.7);padding:2px 6px;white-space:nowrap;border:1px solid var(--line)}
.gps-log{margin-top:16px;font-family:'VT323';font-size:16px;line-height:1.8}
.gps-log div{padding:4px 0;border-bottom:1px solid var(--line);color:var(--dim)}
.gps-log b{color:var(--green)}
.gps-log .last{color:var(--redglow)}

/* ---- Новости ---- */
.news-item{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:16px;margin-bottom:14px}
.news-item h3{color:#d8d2c4;margin-bottom:6px;font-size:16px}
.news-date{font-family:'VT323';color:var(--amber);font-size:14px;margin-bottom:8px}
.news-item p{color:#a8a396;line-height:1.6;font-size:14px}
.news-comments{margin-top:12px;border-top:1px dashed var(--line);padding-top:10px}
.comment{font-size:13px;color:var(--dim);margin-bottom:6px}
.comment b{color:#8a8a92}
.comment.creepy b{color:var(--redglow)}
.comment.creepy{color:#c9a6a0}

/* ---- Улики ---- */
.evidence-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.ev-card{background:var(--panel);border:1px solid var(--line);border-radius:6px;
  overflow:hidden;cursor:pointer;transition:.2s}
.ev-card:hover{border-color:var(--amber);transform:translateY(-2px)}
.ev-card.found{border-color:var(--green)}
.ev-thumb{height:110px;background:#0d0d0d;display:flex;align-items:center;justify-content:center;
  font-size:38px;background-size:cover;background-position:center;color:#444}
.ev-card p{padding:10px;font-size:13px;color:#a8a396}
.ev-card .tag{display:block;font-family:'VT323';font-size:13px;color:var(--dim);padding:0 10px 10px}
.ev-detail{line-height:1.7;font-size:15px;color:#b8b3a6}
.big-photo{width:100%;height:260px;background:#0d0d0d;border:1px solid var(--line);
  margin:12px 0;background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center;color:#444;font-family:'VT323'}
.note{font-family:'Special Elite';background:#161512;border:1px solid #33312a;padding:18px;line-height:1.8;color:#c8c2b4;margin:12px 0;transform:rotate(-.4deg)}

/* ---- Финал / кодовый замок ---- */
.lock-wrap{text-align:center;max-width:360px;margin:20px auto}
.lock-wrap p{color:var(--dim);line-height:1.6;margin-bottom:18px}
.code-in{font-family:'VT323';font-size:40px;letter-spacing:14px;text-align:center;
  width:100%;background:#0d0d0d;border:1px solid var(--line);color:var(--green);padding:12px;border-radius:6px}
.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px}
.keypad button{font-family:'VT323';font-size:26px;padding:16px;background:var(--panel2);
  border:1px solid var(--line);color:var(--ink);cursor:pointer;border-radius:6px}
.keypad button:hover{background:#2a2a32}
.lock-msg{margin-top:14px;font-family:'VT323';font-size:18px;min-height:24px}
.lock-msg.err{color:var(--redglow);animation:shake .3s}
.lock-msg.ok{color:var(--green)}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-8px)}75%{transform:translateX(8px)}}

.ending{max-width:620px;margin:0 auto;text-align:center;font-family:'Special Elite';line-height:2;font-size:17px;color:#c8c2b4}
.ending h2{color:var(--redglow);letter-spacing:4px;margin-bottom:20px;font-size:26px}
.typing{white-space:pre-wrap}

/* ---- Джампскейр ---- */
#jumpscare{position:fixed;inset:0;z-index:99999;background:#000;display:none;
  align-items:center;justify-content:center}
#jumpscare.show{display:flex;animation:flash .12s steps(1) 6}
@keyframes flash{50%{background:#3a0000}}
#jumpFace{font-size:min(60vw,400px);color:#fff;filter:drop-shadow(0 0 40px red);animation:zoom .5s ease}
#jumpImg{max-width:100%;max-height:100%;display:none}
@keyframes zoom{from{transform:scale(.2)}to{transform:scale(1.1)}}

.hint{font-family:'VT323';color:var(--amber);font-size:15px;text-align:center;margin-top:10px;opacity:.8}

/* ---- Лайтбокс (полноэкранное фото) ---- */
#lightbox{position:fixed;inset:0;z-index:99997;background:rgba(0,0,0,.94);display:none;
  align-items:center;justify-content:center;flex-direction:column;padding:20px;cursor:zoom-out}
#lightbox.show{display:flex;animation:fadein .25s}
#lightbox img{max-width:100%;max-height:86vh;object-fit:contain;border:1px solid var(--line);box-shadow:0 0 50px rgba(0,0,0,.9)}
.lb-close{margin-top:16px;font-family:'VT323';color:var(--amber);font-size:19px;letter-spacing:1px}
.big-photo{position:relative;cursor:zoom-in}
.zoom-hint{position:absolute;bottom:8px;right:10px;font-family:'VT323';font-size:14px;color:#e8e6df;
  background:rgba(0,0,0,.65);padding:3px 9px;border-radius:4px;pointer-events:none}

/* ---- Новые компоненты v4 ---- */
.apps7{grid-template-columns:repeat(4,1fr);max-width:680px}
.app span{text-align:center;line-height:1.1}

.sec{font-family:'Special Elite';color:var(--amber);margin:18px 0 8px;font-size:15px;letter-spacing:1px;border-bottom:1px solid var(--line);padding-bottom:4px}
.tasks{list-style:none;margin:0 0 6px}
.tasks li{padding:6px 0;color:#a8a396;font-size:14px}
.tasks li.done{color:var(--green)}

/* тост */
.toast{position:fixed;left:50%;bottom:36px;transform:translate(-50%,20px);z-index:99998;
  background:#1c1c22;border:1px solid var(--amber);color:#e8e6df;padding:12px 20px;border-radius:8px;
  font-family:'VT323';font-size:17px;opacity:0;transition:.3s;max-width:90%;text-align:center;box-shadow:0 8px 30px rgba(0,0,0,.6)}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* вкладки телефона */
.phone-tabs{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap}
.ptab{font-family:'VT323';font-size:16px;background:var(--panel2);border:1px solid var(--line);
  color:var(--dim);padding:7px 14px;border-radius:6px;cursor:pointer}
.ptab.active{color:#fff;border-color:var(--amber);background:#2a2620}
.chat-head{display:flex;align-items:center;gap:8px;font-size:18px;color:#d8d2c4;margin:4px 0 12px}
.chat-head small{color:var(--dim);font-size:13px;font-family:'VT323'}
.xref{background:#2a1416;border:1px solid var(--red);color:#f0c9c4;padding:8px 12px;border-radius:6px;font-size:13px;margin-bottom:10px}
.sys-msg{align-self:center;color:var(--amber);font-family:'VT323';font-size:14px;background:#1a1a1f;border:1px dashed var(--line);padding:6px 10px;border-radius:6px;margin:4px auto}

/* контакты */
.contacts{display:flex;flex-direction:column;gap:2px}
.contact{display:flex;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line);font-size:14px}
.contact .c-name{color:#d8d2c4}
.contact .c-num{font-family:'VT323';color:var(--dim);font-size:16px}
.contact.hot{background:#2a1416;border:1px solid var(--red);border-radius:6px}
.contact.hot .c-num{color:#f0c9c4}

/* галерея */
.gal-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.gal-card{background:var(--panel);border:1px solid var(--line);border-radius:6px;overflow:hidden;cursor:pointer;transition:.2s}
.gal-card:hover{border-color:var(--amber);transform:translateY(-2px)}
.gal-thumb{height:120px;background:#0d0d0d;background-size:cover;background-position:center}
.gal-card span{display:block;padding:8px 10px;font-size:12px;color:#a8a396;font-family:'VT323'}
.enh-box{margin-top:10px}

/* шифр */
.cipher-note{background:#12140f}
.cipher-text{font-family:'VT323';font-size:20px;letter-spacing:2px;color:var(--amber);background:#0d0d0d;padding:10px;margin:10px 0;border:1px dashed var(--line);word-break:break-word}
.cipher-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:14px;color:var(--dim)}
.cipher-tools input{background:#0d0d0d;border:1px solid var(--line);color:var(--green);padding:6px;font-family:'VT323';font-size:16px}
.cipher-out{margin-top:10px;font-family:'VT323';font-size:18px;color:var(--dim);min-height:20px;letter-spacing:1px}
.cipher-out.solved{color:var(--green);text-shadow:0 0 8px rgba(63,174,107,.4)}

/* подозреваемые */
.susp-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.susp-card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:18px 10px;text-align:center;cursor:pointer;transition:.2s}
.susp-card:hover{border-color:var(--amber);transform:translateY(-2px)}
.susp-ava{font-size:38px}
.susp-name{color:#d8d2c4;font-weight:600;margin-top:6px}
.susp-role{color:var(--dim);font-size:12px;font-family:'VT323'}

/* блокнот-дедукция */
.ded{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:14px;margin-bottom:14px}
.ded.ok{border-color:var(--green)}
.ded.err{border-color:var(--red)}
.ded-q{color:#d8d2c4;font-weight:600;margin-bottom:10px;font-size:15px}
.ded-opts{display:flex;flex-direction:column;gap:6px}
.ded-opt{text-align:left;background:var(--panel2);border:1px solid var(--line);color:var(--ink);padding:9px 12px;border-radius:6px;cursor:pointer;font-size:13px;transition:.15s}
.ded-opt:hover{background:#26262e}
.ded-opt.sel{border-color:var(--amber);background:#2a2620}
.ded-fb{margin-top:8px;font-size:13px;font-family:'VT323';color:var(--dim);min-height:16px}
.ded.ok .ded-fb{color:var(--green)}
.ded.err .ded-fb{color:#e0a24b}

/* обвинение */
.acc-suspects{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.acc-s{background:var(--panel2);border:1px solid var(--line);color:var(--ink);padding:12px;border-radius:6px;cursor:pointer;font-size:14px}
.acc-s.sel{border-color:var(--red);background:#2a1416;color:#f0c9c4;box-shadow:0 0 12px rgba(192,57,43,.3)}
.acc-ev{display:flex;flex-direction:column;gap:6px}
.acc-e{display:flex;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--line);padding:10px 12px;border-radius:6px;cursor:pointer;font-size:13px;color:#b8b3a6}
.acc-e input{width:18px;height:18px;accent-color:var(--red)}

@media(max-width:560px){
  .apps{grid-template-columns:repeat(2,1fr);max-width:400px}
  .apps7{grid-template-columns:repeat(3,1fr);max-width:420px}
  .dossier-grid{flex-direction:column;align-items:center;text-align:center}
  .evidence-grid,.gal-grid,.susp-grid,.acc-suspects{grid-template-columns:1fr}
}
