@font-face{font-family:'Exo 2';src:url(../fonts/exo2-cyr.woff2) format('woff2');font-weight:100 900;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Exo 2';src:url(../fonts/exo2-lat.woff2) format('woff2');font-weight:100 900;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Russo One';src:url(../fonts/russo-cyr.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Russo One';src:url(../fonts/russo-lat.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* Палитра по образцу интерфейса: графит, потёртый оранжевый металл, голубая энергия, тёплые светлые надписи, красный — опасность */
:root{--amber:#f0a030;--amber2:#ffcf6a;--orange:#f07a1c;--cyan:#5fe8ff;--steel:#1a1f26;--text:#e8e2d6;--dim:#9aa3ad;--red:#ff5a4a;--cream:#f6e3b8;
  --u:clamp(.34px,.068vh,.62px)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%;overflow:hidden;background:#06080b;color:var(--text);font-family:'Exo 2',system-ui,sans-serif;user-select:none;-webkit-user-select:none;touch-action:none;overscroll-behavior:none}
body{cursor:url(../img/ui/cur_normal.png) 3 2,default}
button,.ib,.sb,.card,.tg,.seg,[data-act]{cursor:url(../img/ui/cur_hover.png) 3 2,pointer}
#game{position:fixed;inset:0;width:100%;height:100%;display:block;background:#06080b}
.hidden{display:none!important}
#preload{position:absolute;width:0;height:0;overflow:hidden;opacity:0;pointer-events:none}

/* ---------- экраны ---------- */
#ui{position:fixed;inset:0;pointer-events:none;display:flex;align-items:center;justify-content:center;z-index:8}
.screen{pointer-events:auto;position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(4px,1.3vh,12px);padding:12px;
  background:radial-gradient(ellipse at center,rgba(6,8,11,.45),rgba(6,8,11,.88));animation:fadein .35s ease}
.screen.solid{background:radial-gradient(ellipse at 50% 40%,rgba(20,26,34,.86),rgba(4,6,9,.97))}
@keyframes fadein{from{opacity:0}to{opacity:1}}
.screen.art-title{background:#05070a url(../img/bg/title.webp) center/cover no-repeat}
.screen.art-title>.title-cv{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.screen.art-title>*:not(.title-cv){position:relative;z-index:1}
.screen.art-brief{background:linear-gradient(rgba(4,6,9,.45),rgba(4,6,9,.7)),url(../img/bg/brief.webp) center/cover no-repeat}
h2{font-family:'Russo One',sans-serif;font-weight:400;margin:0;font-size:clamp(20px,4.6vh,40px);color:var(--amber2);letter-spacing:.08em;text-transform:uppercase;text-shadow:0 3px 0 #2a1404,0 0 18px rgba(255,150,40,.3);text-align:center}
.note{font-size:clamp(11px,2.1vh,15px);color:var(--dim);text-align:center;max-width:560px;line-height:1.45}
.ver{position:absolute!important;bottom:8px;left:12px;font-size:11px;color:#6a6458;letter-spacing:.08em}

/* ---------- кнопки-картинки (3 состояния, один хитбокс) ---------- */
.ib{--w:clamp(200px,44vh,370px);width:var(--w);height:calc(var(--w)*.2536);flex:none;border:0;padding:0;margin:0;position:relative;background:url(../img/ui/b_dark0.webp) center/100% 100% no-repeat;outline:none;
  filter:drop-shadow(0 6px 10px rgba(0,0,0,.55));transition:transform .08s}
.ib:hover,.ib:focus-visible,.ib.focus{background-image:url(../img/ui/b_dark1.webp)}
.ib:active,.ib.press{background-image:url(../img/ui/b_dark2.webp)}
.ib.or{background-image:url(../img/ui/b_orange0.webp)}
.ib.or:hover,.ib.or:focus-visible,.ib.or.focus{background-image:url(../img/ui/b_orange1.webp)}
.ib.or:active,.ib.or.press{background-image:url(../img/ui/b_orange2.webp)}
.ib>span{position:absolute;left:23.5%;right:23.5%;top:36.5%;bottom:27%;display:flex;align-items:center;justify-content:center;gap:.4em;white-space:nowrap;overflow:hidden;
  font:400 calc(var(--w)*.072)/1 'Russo One',sans-serif;letter-spacing:.05em;text-transform:uppercase;padding-top:.08em;
  color:#f7e6bd;text-shadow:0 1px 0 #fff6dc,0 2px 0 #3b2a12,0 3px 4px rgba(0,0,0,.9),0 0 10px rgba(255,190,100,.35)}
.ib:hover>span,.ib.focus>span{color:#fff1d2;text-shadow:0 1px 0 #fff,0 2px 0 #3b2a12,0 3px 4px rgba(0,0,0,.9),0 0 14px rgba(255,210,140,.6)}
.ib:active>span,.ib.press>span{transform:translateY(1px);color:#e3cc9c}
.ib>span>i{font-style:normal;white-space:nowrap;display:inline-flex;align-items:center;gap:.35em}
.ib>span small{font:800 .58em 'Exo 2',sans-serif;letter-spacing:.06em;color:#9fe9ff;text-shadow:0 0 6px rgba(95,232,255,.6),0 1px 2px #000}
.ib.sm{--w:clamp(170px,34vh,300px)}
.ib.xs{--w:clamp(140px,27vh,240px)}
.ib[disabled]{filter:grayscale(.8) brightness(.6);pointer-events:none}
.col{display:flex;flex-direction:column;align-items:center;gap:clamp(2px,.9vh,10px)}
.row{display:flex;gap:clamp(6px,1.4vh,14px);flex-wrap:wrap;justify-content:center;align-items:center}

/* квадратные системные кнопки */
.sb{--s:clamp(38px,7.4vh,60px);width:var(--s);height:calc(var(--s)*.955);border:0;padding:0;background:center/100% 100% no-repeat;position:relative;outline:none;filter:drop-shadow(0 4px 6px rgba(0,0,0,.5))}
.sb[data-i=sound]{background-image:url(../img/ui/sys_sound0.webp)}.sb[data-i=sound]:hover,.sb[data-i=sound].focus{background-image:url(../img/ui/sys_sound1.webp)}.sb[data-i=sound]:active{background-image:url(../img/ui/sys_sound2.webp)}
.sb[data-i=settings]{background-image:url(../img/ui/sys_settings0.webp)}.sb[data-i=settings]:hover,.sb[data-i=settings].focus{background-image:url(../img/ui/sys_settings1.webp)}.sb[data-i=settings]:active{background-image:url(../img/ui/sys_settings2.webp)}
.sb[data-i=close]{background-image:url(../img/ui/sys_close0.webp)}.sb[data-i=close]:hover,.sb[data-i=close].focus{background-image:url(../img/ui/sys_close1.webp)}.sb[data-i=close]:active{background-image:url(../img/ui/sys_close2.webp)}
.sb[data-i=back]{background-image:url(../img/ui/sys_back0.webp)}.sb[data-i=back]:hover,.sb[data-i=back].focus{background-image:url(../img/ui/sys_back1.webp)}.sb[data-i=back]:active{background-image:url(../img/ui/sys_back2.webp)}
.sb[data-i=blank]{background-image:url(../img/ui/slot0.webp)}.sb[data-i=blank]:hover,.sb[data-i=blank].focus{background-image:url(../img/ui/slot1.webp)}.sb[data-i=blank]:active{background-image:url(../img/ui/slot2.webp)}
.sb>b{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:400 calc(var(--s)*.3)/1 'Russo One';color:#f7e6bd;text-shadow:0 2px 0 #2b1d0b,0 0 8px rgba(255,190,100,.35)}
.sb.off::after{content:'';position:absolute;left:24%;right:24%;top:48%;height:9%;background:#ff5a4a;transform:rotate(-40deg);border-radius:3px;box-shadow:0 0 6px #ff3020}
.corner{position:absolute!important;right:clamp(8px,2vw,22px);bottom:clamp(8px,2vh,20px);display:flex;gap:8px;align-items:center}

/* ---------- главное меню ---------- */
.menu{position:absolute!important;left:56%;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:clamp(2px,.8vh,10px)}
.logo-ru{width:clamp(300px,64vh,640px);max-width:58vw;height:auto;filter:drop-shadow(0 10px 18px rgba(0,0,0,.7));margin-bottom:clamp(4px,2.4vh,26px);animation:logoin 1.1s cubic-bezier(.2,.8,.2,1)}
@keyframes logoin{from{opacity:0;transform:translateY(-12px) scale(.96)}to{opacity:1;transform:none}}
.logo-en{display:flex;flex-direction:column;align-items:center;margin-bottom:clamp(4px,2.4vh,26px);animation:logoin 1.1s cubic-bezier(.2,.8,.2,1)}
.logo-en .w{font:400 clamp(64px,17vh,150px)/.95 'Russo One',sans-serif;letter-spacing:.06em;color:transparent;background:url(../img/ui/logo_tex.webp) center/auto 60% repeat;-webkit-background-clip:text;background-clip:text;
  -webkit-text-stroke:2px #1a1410;filter:drop-shadow(0 0 2px #5fe8ff) drop-shadow(3px 4px 0 #23282e) drop-shadow(0 8px 12px rgba(0,0,0,.8))}
.logo-en .p{margin-top:-.2em;padding:.35em 2.2em;font:800 clamp(12px,2.6vh,22px)/1 'Exo 2';letter-spacing:.42em;color:#e9e1d2;text-shadow:0 2px 0 #000;
  background:linear-gradient(90deg,transparent,#5fe8ff 8%,transparent 22%,transparent 78%,#5fe8ff 92%,transparent) center 50%/100% 2px no-repeat,linear-gradient(#3a3f45,#1d2126 45%,#15181c);
  border:2px solid #0b0d10;box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 0 0 2px #e07a1c,0 4px 10px rgba(0,0,0,.6);clip-path:polygon(14px 0,calc(100% - 14px) 0,100% 50%,calc(100% - 14px) 100%,14px 100%,0 50%)}

/* ---------- панели (рамка 9-slice из картинки) ---------- */
.pnl{pointer-events:auto;position:relative;border-style:solid;border-color:transparent;border-width:calc(118*var(--u)) calc(56*var(--u)) calc(72*var(--u)) calc(56*var(--u));
  border-image:url(../img/ui/panel.webp) 118 56 72 56 fill stretch;width:min(94vw,calc(1300*var(--u)));max-height:94vh;display:flex;flex-direction:column;filter:drop-shadow(0 14px 30px rgba(0,0,0,.7));animation:pnlin .3s cubic-bezier(.2,.8,.2,1)}
@keyframes pnlin{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}
.pnl>.ttl{position:absolute;left:0;right:0;top:calc(-83*var(--u));height:calc(68*var(--u));display:flex;align-items:center;justify-content:center;
  font:400 calc(40*var(--u))/1 'Russo One';letter-spacing:.12em;text-transform:uppercase;color:var(--cream);text-shadow:0 2px 0 #000,0 0 12px rgba(255,200,120,.35)}
.pnl>.ttl .x{position:absolute;right:calc(-8*var(--u));top:50%;transform:translateY(-50%);--s:calc(78*var(--u))}
.pnl>.body{flex:1;min-height:0;overflow:auto;padding:calc(8*var(--u)) calc(14*var(--u))}
.pnl>.foot{display:flex;justify-content:center;gap:clamp(4px,1.2vw,14px);padding-top:calc(12*var(--u));flex-wrap:nowrap}
.pnl.narrow{width:min(90vw,calc(860*var(--u)))}
.pnl .body::-webkit-scrollbar{width:8px}.pnl .body::-webkit-scrollbar-thumb{background:#f07a1c;border-radius:4px;border:2px solid #0d1116}.pnl .body::-webkit-scrollbar-track{background:#0d1116}

/* настройки */
.set{display:grid;grid-template-columns:auto 1fr;gap:clamp(6px,1.6vh,14px) clamp(12px,3vw,30px);align-items:center;font-size:clamp(12px,2.4vh,17px)}
.set>label{font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#cfc6b4;white-space:nowrap}
.slider{position:relative;height:clamp(22px,4.6vh,36px);touch-action:none;cursor:pointer}
.slider .tr,.slider .fi{position:absolute;left:0;right:0;top:50%;height:clamp(12px,2.6vh,20px);transform:translateY(-50%);background:url(../img/ui/en_empty.webp) center/100% 100% no-repeat}
.slider .fi{background-image:url(../img/ui/en_full.webp)}
.slider .kn{position:absolute;top:50%;width:clamp(26px,5.4vh,42px);height:clamp(25px,5.2vh,40px);transform:translate(-50%,-50%);background:url(../img/ui/knob0.webp) center/100% 100% no-repeat}
.slider:hover .kn,.slider.focus .kn{background-image:url(../img/ui/knob1.webp)}.slider.drag .kn{background-image:url(../img/ui/knob2.webp)}
.slider .v{position:absolute;right:-3.2em;top:50%;transform:translateY(-50%);width:2.8em;text-align:right;font:400 .9em 'Russo One';color:var(--cyan)}
.set .ctl{display:flex;gap:clamp(4px,1vw,10px);align-items:center;flex-wrap:wrap;padding-right:3.4em}
.tg{--s:clamp(34px,6.4vh,52px);width:var(--s);height:calc(var(--s)*.955);background:url(../img/ui/tg_off0.webp) center/100% 100% no-repeat;border:0;padding:0;outline:none}
.tg:hover,.tg.focus{background-image:url(../img/ui/tg_off1.webp)}.tg:active{background-image:url(../img/ui/tg_off2.webp)}
.tg.on{background-image:url(../img/ui/tg_on0.webp)}.tg.on:hover,.tg.on.focus{background-image:url(../img/ui/tg_on1.webp)}.tg.on:active{background-image:url(../img/ui/tg_on2.webp)}
.seg{border:2px solid #39424d;background:linear-gradient(#262d36,#161b21);color:#bfb6a4;font:800 clamp(11px,2.1vh,15px)/1 'Exo 2';letter-spacing:.08em;text-transform:uppercase;padding:.55em .9em;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);outline:none}
.seg:hover,.seg.focus{border-color:var(--cyan);color:#fff}
.seg.on{background:linear-gradient(#f39a3a,#c45f12);border-color:#ffcf8a;color:#1c1004;text-shadow:0 1px 0 rgba(255,255,255,.4)}

/* управление */
.ctrls{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:clamp(8px,2vh,18px) clamp(14px,3vw,30px);font-size:clamp(11px,2.1vh,15px)}
.ctrls.tfirst .kbc{order:2}
.ctrls h3{margin:0 0 6px;font:400 1.05em 'Russo One';letter-spacing:.12em;text-transform:uppercase;color:var(--cyan);text-shadow:0 0 8px rgba(95,232,255,.4)}
.keys{display:grid;grid-template-columns:auto 1fr;gap:5px 12px;align-items:center}
.keys span{color:#d9d1c2}
kbd{font:700 .86em 'Exo 2';background:linear-gradient(#1b2027,#0d1014);border:1.5px solid #e07a1c;border-radius:3px;padding:1px 6px;color:var(--cream);white-space:nowrap;box-shadow:0 0 6px rgba(240,122,28,.3),inset 0 1px 0 rgba(255,255,255,.08);display:inline-block;margin:1px 1px}
.tico{display:inline-block;width:2.4em;height:2.3em;background:center/100% 100% no-repeat;vertical-align:middle}

/* авторы */
.credits{text-align:center;font-size:clamp(12px,2.4vh,17px);line-height:1.5;color:#d9d1c2}
.credits b{font-family:'Russo One';font-weight:400;color:var(--amber2);letter-spacing:.06em}
.credits .k{font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--cyan);font-size:.82em}
.credits .dim{color:#7d8690;font-size:.8em}

/* статистика зоны */
.stats{display:grid;grid-template-columns:auto auto;gap:4px 28px;font-size:clamp(13px,2.5vh,18px);margin:0 auto}
.stats span{color:#cfc6b4;text-transform:uppercase;letter-spacing:.06em;font-weight:700;font-size:.86em}
.stats .v{text-align:right;color:var(--amber2);font:400 1em 'Russo One';letter-spacing:.04em}

/* ---------- сложность: карточки ---------- */
.cards{display:flex;gap:clamp(6px,2vw,22px);justify-content:center;flex-wrap:nowrap}
.card{--cw:clamp(150px,40vh,300px);width:var(--cw);height:calc(var(--cw)*.8267);position:relative;border:0;padding:0;background:center/100% 100% no-repeat;outline:none;filter:drop-shadow(0 8px 14px rgba(0,0,0,.6));transition:transform .12s}
.card:hover,.card.focus{transform:translateY(-3px)}
.card[data-arg="0"]{background-image:url(../img/ui/diffb0_0.webp)}.card[data-arg="0"]:hover,.card[data-arg="0"].focus,.card[data-arg="0"].sel{background-image:url(../img/ui/diffb0_1.webp)}.card[data-arg="0"]:active{background-image:url(../img/ui/diffb0_2.webp)}
.card[data-arg="1"]{background-image:url(../img/ui/diffb1_0.webp)}.card[data-arg="1"]:hover,.card[data-arg="1"].focus,.card[data-arg="1"].sel{background-image:url(../img/ui/diffb1_1.webp)}.card[data-arg="1"]:active{background-image:url(../img/ui/diffb1_2.webp)}
.card[data-arg="2"]{background-image:url(../img/ui/diffb2_0.webp)}.card[data-arg="2"]:hover,.card[data-arg="2"].focus,.card[data-arg="2"].sel{background-image:url(../img/ui/diffb2_1.webp)}.card[data-arg="2"]:active{background-image:url(../img/ui/diffb2_2.webp)}
.card>b{position:absolute;left:12%;right:12%;top:46%;text-align:center;font:400 calc(var(--cw)*.105)/1 'Russo One';letter-spacing:.04em;text-transform:uppercase;color:#ffc94d;
  background:linear-gradient(#ffe39a,#f2a52a);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 0 #3a2208) drop-shadow(0 0 6px rgba(255,170,50,.35))}
.card>i{position:absolute;left:14%;right:14%;top:60.5%;height:1px;background:linear-gradient(90deg,transparent,rgba(220,200,170,.35),transparent)}
.card>ul{position:absolute;left:0;right:0;top:64%;margin:0;padding:0;list-style:none;display:flex;flex-direction:column;align-items:center;gap:calc(var(--cw)*.018);
  font:700 calc(var(--cw)*.056)/1.15 'Exo 2';letter-spacing:.06em;text-transform:uppercase;color:#ece4d4}
.card li{display:flex;align-items:center;gap:.5em;min-width:52%}
.card li em{width:1.15em;height:1.15em;flex:none;background:center/contain no-repeat}
.card li em.ar{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' x2='1'%3E%3Cstop offset='0' stop-color='%23e9edf2'/%3E%3Cstop offset='.5' stop-color='%23a7b0ba'/%3E%3Cstop offset='1' stop-color='%23667079'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath fill='url(%23g)' stroke='%23222' d='M12 2l8 3v6c0 5-3.5 9-8 11-4.5-2-8-6-8-11V5z'/%3E%3C/svg%3E")}
.card li em.lf{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23e8423a' stroke='%23501010' d='M12 21s-8-5.2-8-11a4.6 4.6 0 0 1 8-3 4.6 4.6 0 0 1 8 3c0 5.8-8 11-8 11z'/%3E%3C/svg%3E")}
.card>small{position:absolute;left:10%;right:10%;bottom:12.5%;text-align:center;font:600 calc(var(--cw)*.042)/1.2 'Exo 2';color:#8e98a2;letter-spacing:.03em}

/* ---------- диалог: портрет + панель ---------- */
.dlg{display:flex;align-items:stretch;gap:clamp(6px,1.4vw,16px);width:min(96vw,calc(1500*var(--u)));animation:pnlin .35s cubic-bezier(.2,.8,.2,1)}
.pf{position:relative;flex:none;width:clamp(110px,40vh,300px);aspect-ratio:360/390;align-self:center}
.pf>img{position:absolute;left:9%;top:8.5%;width:82%;height:83%;object-fit:cover;object-position:50% 20%}
.pf::after{content:'';position:absolute;inset:0;background:url(../img/ui/pframe.webp) center/100% 100% no-repeat;pointer-events:none}
.pf::before{content:'';position:absolute;left:9%;top:8.5%;width:82%;height:83%;background:repeating-linear-gradient(0deg,rgba(0,0,0,.18) 0 1px,transparent 1px 3px),radial-gradient(ellipse at 50% 40%,transparent 55%,rgba(0,0,0,.6));z-index:1;pointer-events:none}
.dp{flex:1;min-width:0;border-style:solid;border-color:transparent;border-width:calc(98*var(--u)) calc(50*var(--u)) calc(56*var(--u)) calc(50*var(--u));border-image:url(../img/ui/dpanel.webp) 98 50 56 50 fill stretch;position:relative;display:flex;flex-direction:column}
.dp>.who{position:absolute;left:0;right:0;top:calc(-72*var(--u));height:calc(48*var(--u));display:flex;align-items:center;padding:0 calc(10*var(--u));font:800 clamp(11px,2.1vh,15px) 'Exo 2';letter-spacing:.16em;text-transform:uppercase;color:var(--cyan);text-shadow:0 0 8px rgba(95,232,255,.45)}
.dp>.who em{font-style:normal;color:#8c949c;margin-left:auto;letter-spacing:.1em;font-weight:700}
.dp>.txt{flex:1;overflow:auto;font-size:clamp(12px,2.35vh,17px);line-height:1.5;color:var(--text);padding:calc(6*var(--u)) calc(10*var(--u))}
.dp>.txt .c{color:var(--cyan)}

/* ---------- подсказки внизу и уведомления ---------- */
#hint{position:fixed;left:50%;bottom:clamp(8px,3vh,26px);transform:translateX(-50%);z-index:4;pointer-events:none;max-width:min(58vw,700px);text-align:center;
  font:700 clamp(11px,2.2vh,15px)/1.6 'Exo 2';letter-spacing:.04em;padding:.45em 1.6em;color:#efe6d3;text-transform:uppercase;transition:opacity .25s,transform .25s;
  background:linear-gradient(90deg,transparent,rgba(8,10,14,.82) 12%,rgba(8,10,14,.82) 88%,transparent)}
#hint::before,#hint::after{content:'';position:absolute;top:0;bottom:0;width:12px;border:2px solid #f07a1c;filter:drop-shadow(0 0 4px rgba(240,122,28,.6))}
#hint::before{left:0;border-right:0;clip-path:polygon(0 0,100% 0,100% 18%,40% 18%,40% 82%,100% 82%,100% 100%,0 100%)}
#hint::after{right:0;border-left:0;clip-path:polygon(0 0,100% 0,100% 100%,0 100%,0 82%,60% 82%,60% 18%,0 18%)}
#hint.off{opacity:0;transform:translate(-50%,8px)}
body.touch #hint{bottom:auto;top:calc(var(--hudb,60px) + 2px);left:63%;max-width:54vw;font-size:clamp(10px,2.6vh,13px)}
body.touch.bossbar #hint{top:calc(var(--hudb,60px) + 44px)}
#toast{position:fixed;left:50%;top:clamp(56px,14vh,98px);transform:translateX(-50%);z-index:4;pointer-events:none;width:min(92vw,560px);transition:opacity .4s,transform .4s;
  border-style:solid;border-color:transparent;border-width:clamp(10px,2.2vh,16px) clamp(10px,2vh,16px) clamp(10px,2.2vh,16px) clamp(42px,8.6vh,64px);border-image:url(../img/ui/toast_info.webp) 22 26 22 96 fill stretch;
  min-height:clamp(46px,9vh,66px);display:flex;flex-direction:column;justify-content:center;padding:0 .6em;filter:drop-shadow(0 6px 14px rgba(0,0,0,.6))}
#toast.warn{border-image-source:url(../img/ui/toast_warn.webp)}#toast.item{border-image-source:url(../img/ui/toast_item.webp)}#toast.goal{border-image-source:url(../img/ui/toast_goal.webp)}
#toast.off{opacity:0;transform:translate(-50%,-10px)}
body.bossbar:not(.touch) #toast{top:clamp(110px,26vh,190px)}
#toast .tt{font:400 clamp(13px,2.7vh,19px)/1.2 'Russo One';letter-spacing:.05em;color:var(--cream);text-transform:uppercase;text-shadow:0 2px 0 #000}
#toast.warn .tt{color:#ff7a5a;text-shadow:0 2px 0 #300,0 0 12px rgba(255,60,40,.6)}
#toast.item .tt{color:var(--amber2)}
#toast .ts{margin-top:2px;font-size:clamp(11px,2.1vh,14px);color:#cfc8ba;line-height:1.4}
#toast .ts:empty{display:none}
body.touch #toast{top:auto;bottom:clamp(6px,2vh,16px);left:47%;width:min(44vw,420px)}

/* ---------- сенсорное управление ---------- */
#touch{position:fixed;inset:0;pointer-events:none;z-index:5}
#stickZone{position:absolute;left:0;bottom:0;width:45%;height:75%;pointer-events:auto}
#stickBase{position:absolute;width:124px;height:124px;margin:-62px 0 0 -62px;border-radius:50%;left:110px;top:calc(100% - 110px);
  background:radial-gradient(circle,rgba(10,14,18,.5) 0 52%,rgba(240,122,28,.5) 53% 55%,rgba(10,14,18,.45) 56% 66%,rgba(95,232,255,.35) 67% 68%,transparent 69%);border:3px solid rgba(30,34,40,.8);box-shadow:0 0 0 2px rgba(240,122,28,.35)}
#stickKnob{position:absolute;left:50%;top:50%;width:56px;height:56px;margin:-28px 0 0 -28px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#f7e6c0,#a99878 55%,#4d4537);border:3px solid #1a1d22;box-shadow:0 0 0 2px #f07a1c,0 4px 8px rgba(0,0,0,.6)}
#tbtns{position:absolute;right:0;bottom:0;width:270px;height:250px}
.tbtn{position:absolute;pointer-events:auto;width:66px;height:63px;background:center/100% 100% no-repeat;opacity:.92;filter:drop-shadow(0 3px 5px rgba(0,0,0,.6))}
.tbtn.big{width:84px;height:80px}
#tFire{right:18px;bottom:104px;background-image:url(../img/ui/act_fire0.webp)}#tFire.on{background-image:url(../img/ui/act_fire2.webp)}
#tJump{right:112px;bottom:20px;background-image:url(../img/ui/act_jump0.webp)}#tJump.on{background-image:url(../img/ui/act_jump2.webp)}
#tShield{right:200px;bottom:112px;background-image:url(../img/ui/act_shield0.webp)}#tShield.on{background-image:url(../img/ui/act_shield2.webp)}
#tBomb{right:136px;bottom:170px;background-image:url(../img/ui/act_emp0.webp)}#tBomb.on{background-image:url(../img/ui/act_emp2.webp)}
#tNext{right:22px;bottom:196px;width:52px;height:50px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23f6e3b8' stroke-width='2.4' d='M5 12a7 7 0 0 1 12.2-4.7M19 12a7 7 0 0 1-12.2 4.7'/%3E%3Cpath fill='%23f6e3b8' d='M18.5 3v5.5H13zM5.5 21v-5.5H11z'/%3E%3C/svg%3E"),url(../img/ui/slot0.webp);background-size:52% 52%,100% 100%;background-position:center}
#tNext.on{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23f6e3b8' stroke-width='2.4' d='M5 12a7 7 0 0 1 12.2-4.7M19 12a7 7 0 0 1-12.2 4.7'/%3E%3Cpath fill='%23f6e3b8' d='M18.5 3v5.5H13zM5.5 21v-5.5H11z'/%3E%3C/svg%3E"),url(../img/ui/slot2.webp)}
#tUse{right:206px;bottom:24px;width:74px;height:71px;background-image:url(../img/ui/act_use1.webp);animation:usepulse 1.1s ease-in-out infinite}
#tUse.on{background-image:url(../img/ui/act_use2.webp)}
@keyframes usepulse{50%{filter:drop-shadow(0 0 10px rgba(95,232,255,.8))}}
#pauseBtn{position:fixed;top:8px;right:8px;width:clamp(36px,7vh,50px);height:clamp(34px,6.7vh,48px);z-index:6;border:0;padding:0;background:url(../img/ui/sys_pause0.webp) center/100% 100% no-repeat;filter:drop-shadow(0 3px 5px rgba(0,0,0,.5))}
#pauseBtn:hover{background-image:url(../img/ui/sys_pause1.webp)}#pauseBtn:active{background-image:url(../img/ui/sys_pause2.webp)}
@media (max-height:420px){#tbtns{transform:scale(.86);transform-origin:right bottom}#stickBase{transform:scale(.9)}}

#rotate{position:fixed;inset:0;z-index:20;background:#06080b;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;font-size:20px;text-align:center;padding:20px}
.rot-ico{width:70px;height:110px;border:4px solid var(--amber);border-radius:12px;animation:rot 1.8s ease-in-out infinite}
@keyframes rot{0%,30%{transform:rotate(0)}60%,100%{transform:rotate(-90deg)}}
body.aim #game{cursor:none}

/* ---------- сюжет: рация, журнал, заставка уровня ---------- */
#story{position:fixed;inset:0;pointer-events:none;z-index:6}
.radio{position:absolute;left:clamp(6px,1.2vw,14px);top:calc(var(--hudb,90px) + 6px);display:flex;align-items:center;gap:0;width:min(46vw,calc(820*var(--u)));transition:opacity .35s,transform .35s;transform-origin:left center}
.radio.off{opacity:0;transform:translateX(-14px)}
.radio .pf{width:clamp(56px,15vh,108px)}
.radio .dp{border-width:calc(64*var(--u)) calc(34*var(--u)) calc(38*var(--u)) calc(34*var(--u));border-image-slice:98 50 56 50 fill;margin-left:-4px;min-height:clamp(54px,14vh,104px)}
.radio .dp>.who{top:calc(-50*var(--u));height:calc(36*var(--u));font-size:clamp(9px,1.8vh,13px)}
.radio .dp>.txt{font-size:clamp(11px,2.2vh,16px);line-height:1.4;padding:0 calc(6*var(--u))}
body.touch .radio{width:min(40vw,360px)}
.radio .txt .cur{display:inline-block;width:.5em;height:1em;vertical-align:-2px;background:var(--cyan);margin-left:1px;animation:blink .7s steps(2) infinite}
@keyframes blink{50%{opacity:0}}
.radio .sig{display:inline-flex;gap:2px;align-items:flex-end;height:.9em;margin-right:.6em}
.radio .sig i{width:3px;background:var(--cyan);animation:sig .5s ease-in-out infinite alternate}
.radio .sig i:nth-child(1){height:40%}.radio .sig i:nth-child(2){height:70%;animation-delay:.15s}.radio .sig i:nth-child(3){height:100%;animation-delay:.3s}
@keyframes sig{to{opacity:.3}}
.radio.chorus .dp,.radio.chorus .pf::after{filter:sepia(1) hue-rotate(-48deg) saturate(5) brightness(.75)}
.radio.chorus .who{color:#ff4a3a;text-shadow:0 0 10px rgba(255,40,30,.7)}
.radio.chorus .sig i{background:#ff3a2a}
.radio.chorus .txt{color:#ffd6cf;font-family:'Russo One';letter-spacing:.06em;text-transform:uppercase;font-size:clamp(10px,2vh,14px);text-shadow:2px 0 rgba(255,0,40,.55),-2px 0 rgba(0,255,230,.25);animation:glitch 2.4s infinite}
.radio.chorus .txt .cur{background:#ff3a2a}
@keyframes glitch{0%,86%,100%{transform:none;clip-path:none}87%{transform:translate(3px,0) skewX(-6deg);clip-path:inset(10% 0 55% 0)}89%{transform:translate(-4px,1px);clip-path:inset(50% 0 10% 0)}91%{transform:translate(2px,-1px);clip-path:none}93%{transform:translate(-1px,0)}}
.eye{position:absolute;left:9%;top:8.5%;width:82%;height:83%;background:radial-gradient(circle at 50% 50%,#fff 0 3%,#ff3020 5%,#9a0a06 16%,#2a0402 30%,#050101 62%);overflow:hidden}
.eye::after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(255,40,30,.12) 0 1px,transparent 1px 4px);animation:scan 1.8s linear infinite}
.eye i{position:absolute;left:50%;top:50%;width:46%;height:46%;transform:translate(-50%,-50%);border-radius:50%;border:2px solid rgba(255,60,40,.6);box-shadow:0 0 18px #ff2010,inset 0 0 12px #ff2010;animation:eyep 1.3s ease-in-out infinite}
@keyframes eyep{50%{width:36%;height:36%;opacity:.7}}
@keyframes scan{to{background-position:0 40px}}
.static{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;opacity:.0;background:repeating-radial-gradient(circle at 30% 40%,rgba(255,255,255,.08) 0 1px,transparent 1px 3px);animation:stat .12s steps(3) infinite}
.radio.chorus .static,.radio.tune .static{opacity:.6}
@keyframes stat{33%{background-position:3px 1px}66%{background-position:-2px 2px}}

.screen.log{background:rgba(3,5,8,.72);backdrop-filter:blur(2px)}
.logbox{width:min(94vw,calc(1400*var(--u)));height:min(90vh,calc(1150*var(--u)))}
.logbox .meta{display:flex;justify-content:space-between;gap:12px;font:800 clamp(10px,1.9vh,13px) 'Exo 2';letter-spacing:.14em;text-transform:uppercase;color:var(--cyan);padding:0 0 8px;border-bottom:1px solid rgba(95,232,255,.2);margin-bottom:10px}
.logbox .meta em{font-style:normal;color:#8c949c}
.logbox .body{font:500 clamp(12px,2.4vh,17px)/1.6 'Exo 2';color:#ddd6c7;white-space:pre-line;text-shadow:0 0 1px rgba(95,232,255,.2)}
.logbox .body::first-line{color:#fff}

#intro{position:fixed;inset:0;z-index:7;pointer-events:none;display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;transition:opacity .8s}
#intro.on{opacity:1}
#intro::before,#intro::after{content:'';position:absolute;left:0;right:0;height:10vh;background:#000;transition:transform 1s cubic-bezier(.2,.8,.2,1)}
#intro::before{top:0;transform:translateY(-100%)}#intro::after{bottom:0;transform:translateY(100%)}
#intro.on::before,#intro.on::after{transform:none}
#intro .z{font:800 clamp(11px,2.2vh,16px) 'Exo 2';letter-spacing:.5em;text-transform:uppercase;color:var(--cyan);text-shadow:0 0 10px rgba(95,232,255,.6);opacity:0;transform:translateY(6px);transition:all .8s .3s}
#intro .n{font:400 clamp(28px,8vh,70px)/1.1 'Russo One';letter-spacing:.14em;text-transform:uppercase;color:var(--cream);text-shadow:0 4px 0 #1b0f04,0 0 30px rgba(255,150,50,.35);margin:.15em 0;opacity:0;letter-spacing:.5em;transition:all 1.4s .5s cubic-bezier(.2,.8,.2,1);text-align:center;padding:0 12px}
#intro .ln{width:0;height:2px;background:linear-gradient(90deg,transparent,#f07a1c,transparent);transition:width 1.2s .8s}
#intro .i{max-width:min(86vw,640px);text-align:center;font:500 clamp(12px,2.3vh,16px)/1.55 'Exo 2';color:#cfc8ba;margin-top:.8em;opacity:0;transition:opacity 1s 1.3s;text-shadow:0 2px 4px #000}
#intro.on .z{opacity:1;transform:none}#intro.on .n{opacity:1;letter-spacing:.14em}#intro.on .ln{width:min(60vw,520px)}#intro.on .i{opacity:1}
#intro.out{opacity:0;transition:opacity 1.2s}
#intro .shade{position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(0,0,0,.55),rgba(0,0,0,.2) 70%);z-index:-1}

/* узкий экран телефона */
@media (max-height:440px){
  .menu{left:57%}
  .pnl{max-height:96vh}
  .dlg .pf{width:clamp(90px,34vh,200px)}
}

/* ---------- заставка студии ФАТИ ГЕЙМ (как в «Маджонге») ---------- */
#splash{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 50%,#17120a 0%,#050403 70%);cursor:pointer;overflow:hidden}
#splash canvas{position:absolute;inset:0;width:100%;height:100%}
#splash .studio{position:relative;width:min(62vw,560px);perspective:900px;opacity:0}
#splash .studio.en{width:min(66vw,600px)}
#splash .pulse{position:relative}
#splash .logo{position:relative;width:100%;transform-style:preserve-3d;transition:rotate .2s}
#splash .logo img{width:100%;height:auto;display:block;filter:drop-shadow(0 0 30px rgba(255,190,80,.35)) drop-shadow(0 18px 30px rgba(0,0,0,.8))}
#splash .shine{position:absolute;inset:0;-webkit-mask:center/contain no-repeat;mask:center/contain no-repeat;
  background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.95) 48%,rgba(255,240,190,.6) 52%,transparent 65%);background-size:260% 100%;background-position:130% 0;mix-blend-mode:screen}
#splash .glow{position:absolute;left:50%;top:50%;width:140%;height:220%;transform:translate(-50%,-50%);background:radial-gradient(ellipse,rgba(255,186,70,.28),transparent 60%);opacity:0;pointer-events:none}
#splash .presents{position:absolute;left:0;right:0;top:112%;text-align:center;font:600 13px 'Exo 2',sans-serif;letter-spacing:8px;text-transform:uppercase;color:#cfae6a;opacity:0}
#splash.go .studio{opacity:1}
#splash.go .logo{animation:spLogoIn 4.4s cubic-bezier(.2,.7,.2,1) forwards}
#splash.go .shine{animation:spShine 2.2s ease-in-out 1s forwards}
#splash.go .glow{animation:spGlow 4.4s ease-in-out forwards}
#splash.go .presents{animation:spPresents 4.4s ease forwards}
#splash .pulse.beat{animation:spBeat .5s cubic-bezier(.2,.9,.3,1)}
#splash .pulse.beat2{animation:spBeat2 .45s cubic-bezier(.2,.9,.3,1)}
@keyframes spLogoIn{0%{opacity:0;transform:scale(.82) rotateX(18deg);filter:blur(10px)}25%{opacity:1;filter:blur(0)}70%{transform:scale(1) rotateX(0)}100%{transform:scale(1.04)}}
@keyframes spShine{to{background-position:-40% 0}}
@keyframes spGlow{0%{opacity:0}40%{opacity:1}100%{opacity:.6}}
@keyframes spPresents{0%,40%{opacity:0;letter-spacing:14px}70%,100%{opacity:.9;letter-spacing:8px}}
@keyframes spBeat{0%{transform:scale(1)}14%{transform:scale(1.05)}100%{transform:scale(1)}}
@keyframes spBeat2{0%{transform:scale(1)}16%{transform:scale(1.025)}100%{transform:scale(1)}}
#splash.out{animation:spOut .85s ease forwards}
@keyframes spOut{to{opacity:0;transform:scale(1.06)}}
#splash .gate{position:absolute;inset:0;display:none;align-items:center;justify-content:center}
#splash.gated .gate{display:flex}
#splash .gate span{font:700 clamp(14px,2.6vh,20px) 'Exo 2',sans-serif;letter-spacing:.32em;text-transform:uppercase;color:#e9d29a;text-shadow:0 0 18px rgba(255,180,70,.55);animation:spGate 1.6s ease-in-out infinite}
@keyframes spGate{0%,100%{opacity:.35}50%{opacity:1}}

/* ---------- выбор уровня ---------- */
.lvsel{max-height:min(62vh,calc(620*var(--u)));overflow-y:auto}
.lvsel h3{text-align:center;margin:6px 0 6px;font:800 clamp(11px,2.2vh,16px) 'Exo 2',sans-serif;letter-spacing:.18em;text-transform:uppercase;color:var(--cyan,#5fe8ff)}
.lvgrid{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 18px;margin-bottom:10px}
.lvgrid .ib{flex:0 0 auto;margin:0}
.lvgrid .ib small{opacity:.7;margin-right:.4em}
.lvgrid .ib.lock{filter:grayscale(1) brightness(.55);pointer-events:none}
.sb.fs b{color:#f7e6bd}.sb.fs svg{filter:drop-shadow(0 2px 0 #2b1d0b)}

/* ---------- карта глубины ---------- */
.screen.art-map{padding:0;background:#05070a}
.dmap{position:absolute;inset:0;display:flex;flex-direction:column;pointer-events:auto;background:radial-gradient(ellipse at 50% 0%,#1a1208 0%,#06080b 60%)}
.dm-head{flex:0 0 auto;display:flex;align-items:center;justify-content:center;gap:12px;padding:clamp(6px,1.6vh,14px) 60px clamp(4px,1vh,10px);position:relative;
  background:linear-gradient(#0b0d10,rgba(11,13,16,.85));border-bottom:1px solid rgba(255,170,80,.25);box-shadow:0 6px 18px rgba(0,0,0,.6);z-index:3}
.dm-head h3{margin:0;font:400 clamp(16px,3.6vh,30px)/1 'Russo One';letter-spacing:.12em;text-transform:uppercase;color:#f3dfb2;text-shadow:0 2px 0 #2b1d0b,0 0 14px rgba(255,170,70,.35)}
.dm-ver{font:700 clamp(9px,1.6vh,12px) 'Exo 2';letter-spacing:.2em;color:#8a7a5e}
.dm-head .sb.x{position:absolute;right:clamp(8px,2vw,22px);top:50%;transform:translateY(-50%);--s:clamp(32px,6.4vh,50px)}
.dm-scroll{flex:1 1 auto;overflow-y:auto;overflow-x:hidden;padding:clamp(8px,2vh,18px) clamp(10px,3vw,40px) 40px;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}
.dm-scroll::-webkit-scrollbar{width:8px}.dm-scroll::-webkit-scrollbar-thumb{background:#4a3a24;border-radius:4px}
.dm-zone{position:relative;max-width:1180px;margin:0 auto;border-radius:14px;overflow:hidden;border:1px solid rgba(255,170,80,.28);background:rgba(8,10,13,.85);
  box-shadow:0 10px 30px rgba(0,0,0,.65),inset 0 0 0 1px rgba(0,0,0,.6)}
.dm-banner{position:relative;min-height:clamp(90px,20vh,170px);display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:clamp(10px,2.2vh,20px) clamp(12px,2.4%,26px)}
.dm-bg{position:absolute;inset:0;background:var(--bg) center 40%/cover no-repeat;filter:saturate(.95) brightness(.7)}
.dm-bg::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,6,8,.92) 0%,rgba(5,6,8,.55) 45%,rgba(5,6,8,.2) 100%),linear-gradient(180deg,transparent 55%,rgba(8,10,13,.95) 100%)}
.dm-zone.soon .dm-bg{filter:grayscale(1) brightness(.42)}
.dm-zt{position:relative;z-index:1;display:flex;flex-direction:column;gap:2px;max-width:70%}
.dm-zt em{font:800 clamp(9px,1.7vh,12px) 'Exo 2';font-style:normal;letter-spacing:.24em;text-transform:uppercase;color:var(--cyan,#5fe8ff)}
.dm-zt h4{margin:0;font:400 clamp(17px,3.8vh,32px)/1.05 'Russo One';letter-spacing:.06em;text-transform:uppercase;color:#f7e6bd;text-shadow:0 2px 0 #000,0 0 12px rgba(255,170,70,.3)}
.dm-zt small{font:600 clamp(10px,1.9vh,14px) 'Exo 2';color:#e2b56b;font-style:italic}
.dm-zt p{margin:4px 0 0;font:500 clamp(10px,1.8vh,13px)/1.35 'Exo 2';color:#c9bda6;max-width:640px}
.dm-zone.soon .dm-zt h4{color:#b1aca2}
.dm-prog{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right}
.dm-prog b{font:400 clamp(18px,4vh,34px)/1 'Russo One';color:#ffbf55;text-shadow:0 2px 0 #000}
.dm-prog span{font:800 clamp(9px,1.6vh,12px) 'Exo 2';letter-spacing:.2em;text-transform:uppercase;color:#cdb894}
.dm-soon{padding:4px 10px;border-radius:4px;color:#d8d2c4!important;background:rgba(120,120,120,.25);border:1px solid rgba(200,200,200,.25);letter-spacing:.16em!important}
.dm-cards{position:relative;display:grid;grid-template-columns:repeat(var(--cols,5),1fr);gap:clamp(10px,2.2vh,20px) clamp(10px,1.6vw,22px);padding:clamp(10px,2vh,18px) clamp(10px,2%,22px) clamp(14px,2.6vh,24px)}
.dm-zone.mine .dm-cards{grid-template-columns:minmax(0,420px);justify-content:center}
.dm-path{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;overflow:visible}
.dm-path path{fill:none;stroke:rgba(255,255,255,.25);stroke-width:3px;stroke-dasharray:9 8}
.dm-path path.done{stroke:#ffbf55;stroke-dasharray:none;filter:drop-shadow(0 0 4px rgba(255,170,60,.8))}
.dm-card{position:relative;z-index:1;display:flex;flex-direction:column;text-align:left;padding:0;border:0;border-radius:10px;overflow:hidden;min-width:0;
  background:linear-gradient(#1a1d22,#0f1114);box-shadow:0 0 0 2px #2b2f35,0 8px 18px rgba(0,0,0,.6);transition:transform .15s,box-shadow .15s;color:#d9ccb2}
.dm-card:hover,.dm-card.focus{transform:translateY(-3px) scale(1.02);box-shadow:0 0 0 2px #e07a1c,0 0 18px rgba(255,150,40,.45),0 10px 22px rgba(0,0,0,.7)}
.dm-pic{position:relative;aspect-ratio:16/8;background-image:var(--bg);background-size:260% auto;filter:brightness(.85)}
.dm-pic::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(15,17,20,.95))}
.dm-num{position:absolute;left:8px;top:8px;z-index:1;min-width:1.9em;height:1.9em;padding:0 .3em;display:flex;align-items:center;justify-content:center;border-radius:6px;
  font:400 clamp(12px,2.4vh,18px)/1 'Russo One';color:#2b1806;background:linear-gradient(#ffd27a,#d4861c);box-shadow:0 2px 0 #6b3a08,0 0 10px rgba(255,160,40,.5)}
.dm-lock{position:absolute;right:8px;top:8px;z-index:1;width:clamp(18px,3.6vh,26px);height:clamp(18px,3.6vh,26px);color:#d8cdb5;filter:drop-shadow(0 1px 2px #000)}
.dm-lock svg{width:100%;height:100%}
.dm-txt{flex:1 1 auto;display:flex;flex-direction:column;gap:3px;padding:6px clamp(8px,1.2vw,12px) 4px}
.dm-txt b{font:400 clamp(11px,2.2vh,16px)/1.1 'Russo One';letter-spacing:.04em;text-transform:uppercase;color:#f7e6bd}
.dm-txt p{margin:0;font:500 clamp(9px,1.6vh,12px)/1.3 'Exo 2';color:#b4a891;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.dm-boss{font:700 clamp(9px,1.5vh,11px) 'Exo 2';letter-spacing:.08em;text-transform:uppercase;color:#ff8a6a}
.dm-foot{display:flex;justify-content:space-between;align-items:center;gap:6px;padding:5px clamp(8px,1.2vw,12px) 7px;border-top:1px solid rgba(255,255,255,.07);
  font:800 clamp(9px,1.5vh,11px) 'Exo 2';letter-spacing:.1em;text-transform:uppercase;color:#e2b56b}
.dm-foot em{font-style:normal;padding:2px 7px;border-radius:4px;background:rgba(255,255,255,.07);color:#cfc6b4;white-space:nowrap}
.dm-card.st-open .dm-foot em{background:linear-gradient(#ffcf73,#d4861c);color:#2b1806}
.dm-card.st-done .dm-foot em{background:rgba(110,210,110,.18);color:#8fe58a}
.dm-card.st-lock{filter:saturate(.35) brightness(.78);cursor:not-allowed}.dm-card.st-lock .dm-num{filter:grayscale(1)}
.dm-card.st-soon{filter:grayscale(1) brightness(.62);cursor:help}.dm-card.st-soon .dm-num{background:linear-gradient(#9a9a9a,#5a5a5a);color:#1b1b1b;box-shadow:0 2px 0 #333}
.dm-card.st-soon:hover{filter:grayscale(.85) brightness(.8)}
.dm-card.cur{box-shadow:0 0 0 2px #5fe8ff,0 0 22px rgba(95,232,255,.6),0 8px 18px rgba(0,0,0,.6)}
.dm-card.cur::after{content:'';position:absolute;inset:-2px;border-radius:11px;border:2px solid rgba(95,232,255,.85);animation:dmPulse2 1.8s ease-in-out infinite;pointer-events:none}
@keyframes dmPulse2{0%,100%{opacity:.25}50%{opacity:1}}
.dm-shaft{height:clamp(26px,6vh,46px);display:flex;justify-content:center}
.dm-shaft i{width:6px;height:100%;background:repeating-linear-gradient(180deg,#e2b56b 0 6px,transparent 6px 12px);opacity:.55;border-radius:3px}
.dm-core{max-width:1100px;margin:16px auto 0;text-align:center;font:400 clamp(13px,2.6vh,20px) 'Russo One';letter-spacing:.2em;text-transform:uppercase;color:#ff6a4a;text-shadow:0 0 16px rgba(255,80,40,.6)}
.dm-tip{position:fixed;z-index:9;pointer-events:none;padding:10px 14px 11px;border-radius:10px;background:rgba(10,12,15,.96);border:1px solid rgba(255,170,80,.45);box-shadow:0 10px 30px rgba(0,0,0,.7);
  display:flex;flex-direction:column;gap:4px;font:500 clamp(11px,1.9vh,14px)/1.35 'Exo 2';color:#d9ccb2}
.dm-tip em{font-style:normal;font-weight:800;font-size:.78em;letter-spacing:.16em;text-transform:uppercase;color:var(--cyan,#5fe8ff)}
.dm-tip b{font:400 1.25em/1.1 'Russo One';letter-spacing:.04em;color:#f7e6bd;text-transform:uppercase}
.dm-tip p{margin:0;color:#bfb29a}
.dm-tip span{margin-top:2px;font-weight:700;color:#ffbf55}
.dm-tip.st-soon{border-color:rgba(180,180,180,.4)}.dm-tip.st-soon span{color:#c9c4ba}.dm-tip.st-lock span{color:#ff8a6a}.dm-tip.st-done span{color:#8fe58a}

/* ---------- бестиарий: досье службы безопасности ---------- */
.bst{position:absolute;inset:0;display:flex;flex-direction:column;pointer-events:auto;background:radial-gradient(ellipse at 70% 0%,#1d140a 0%,#07090c 60%)}
.bst-head{flex:0 0 auto;display:flex;align-items:center;justify-content:center;gap:14px;padding:clamp(6px,1.6vh,14px) 60px clamp(4px,1vh,10px);position:relative;background:linear-gradient(#0b0d10,rgba(11,13,16,.85));border-bottom:1px solid rgba(255,170,80,.25);box-shadow:0 6px 18px rgba(0,0,0,.6);z-index:3}
.bst-head h3{margin:0;font:400 clamp(16px,3.6vh,30px)/1 'Russo One';letter-spacing:.12em;text-transform:uppercase;color:#f3dfb2;text-shadow:0 2px 0 #2b1d0b,0 0 14px rgba(255,170,70,.35)}
.bst-cnt{font:700 clamp(10px,1.8vh,13px) 'Exo 2';letter-spacing:.18em;text-transform:uppercase;color:#8a7a5e}.bst-cnt b{color:#ffbf55;font-size:1.2em}
.bst-head .sb.x{position:absolute;right:clamp(8px,2vw,22px);top:50%;transform:translateY(-50%);--s:clamp(32px,6.4vh,50px)}
.bst-body{flex:1 1 auto;min-height:0;display:grid;grid-template-columns:minmax(0,38%) minmax(0,62%);gap:clamp(8px,1.6vw,20px);padding:clamp(8px,1.8vh,16px) clamp(8px,2vw,26px);max-width:1400px;width:100%;margin:0 auto;box-sizing:border-box}
.bst-list{overflow-y:auto;padding-right:6px}
.bst-list h4{margin:4px 0 8px;font:800 clamp(10px,1.8vh,13px) 'Exo 2';letter-spacing:.26em;text-transform:uppercase;color:var(--cyan,#5fe8ff)}
.bst-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(clamp(74px,13vh,108px),1fr));gap:8px;margin-bottom:14px}
.bst-t{position:relative;aspect-ratio:1/1.12;padding:6px 4px 4px;border:0;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:4px;
  background:radial-gradient(circle at 50% 38%,#2b2f36,#121418 72%);box-shadow:0 0 0 2px #2b2f35,0 4px 10px rgba(0,0,0,.6);transition:transform .12s,box-shadow .12s}
.bst-t img{width:100%;height:72%;object-fit:contain;filter:drop-shadow(0 3px 4px rgba(0,0,0,.8))}
.bst-t span{font:800 clamp(8px,1.4vh,10px)/1.1 'Exo 2';letter-spacing:.06em;text-transform:uppercase;color:#e9dcc0;text-align:center;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bst-t.off img{filter:brightness(0) drop-shadow(0 0 1px rgba(255,140,60,.55));opacity:.75}.bst-t.off span{color:#6b6458}
.bst-t:hover,.bst-t.focus{transform:translateY(-2px);box-shadow:0 0 0 2px #e07a1c,0 0 14px rgba(255,150,40,.4)}
.bst-t.sel{box-shadow:0 0 0 2px #5fe8ff,0 0 16px rgba(95,232,255,.45)}
.bst-file{position:relative;overflow-y:auto;border-radius:6px 12px 12px 12px;padding:clamp(34px,6vh,48px) clamp(14px,2.4vw,30px) clamp(16px,3vh,26px);
  background:linear-gradient(180deg,rgba(255,255,255,.035),transparent 40%),repeating-linear-gradient(0deg,rgba(255,255,255,.018) 0 1px,transparent 1px 26px),linear-gradient(#20242a,#15181c);
  border:1px solid rgba(255,170,80,.3);box-shadow:inset 0 0 0 1px #000,inset 0 0 60px rgba(0,0,0,.6),0 12px 30px rgba(0,0,0,.7);color:#d6cbb6}
.bst-file::before{content:'';position:absolute;left:0;top:0;bottom:0;width:6px;background:repeating-linear-gradient(180deg,#e07a1c 0 14px,#1a1a1a 14px 28px);opacity:.75}
.bst-tab{position:absolute;left:18px;top:0;display:flex;gap:12px;align-items:baseline;padding:6px 14px 7px;border-radius:0 0 8px 8px;background:linear-gradient(#e08a2a,#a85a12);box-shadow:0 3px 8px rgba(0,0,0,.6)}
.bst-tab b{font:400 clamp(11px,2vh,15px) 'Russo One';letter-spacing:.1em;color:#20140a}.bst-tab span{font:700 clamp(8px,1.4vh,10px) ui-monospace,Menlo,Consolas,monospace;letter-spacing:.08em;color:#3a2410;text-transform:uppercase}
.bst-stamp{position:absolute;right:clamp(10px,2.4%,28px);top:clamp(6px,1.4vh,12px);transform:rotate(-8deg);padding:2px 12px;border:3px solid rgba(220,50,40,.75);border-radius:6px;
  font:400 clamp(12px,2.4vh,19px) 'Russo One';letter-spacing:.2em;text-transform:uppercase;color:rgba(230,60,45,.8);mix-blend-mode:screen;pointer-events:none;
  -webkit-mask:repeating-linear-gradient(110deg,#000 0 6px,rgba(0,0,0,.55) 6px 8px)}
.bst-top{display:grid;grid-template-columns:clamp(120px,24vh,210px) 1fr;gap:clamp(12px,2vw,24px);align-items:start;margin-bottom:12px}
.bst-photo{position:relative;margin:0;padding:8px 8px 22px;background:#d9d2c3;box-shadow:0 6px 14px rgba(0,0,0,.7);transform:rotate(-2.2deg)}
.bst-photo img{display:block;width:100%;aspect-ratio:1/1;object-fit:contain;background:radial-gradient(circle at 50% 40%,#3a3f47,#15181c 75%);filter:contrast(1.05) saturate(.9)}
.bst-photo figcaption{position:absolute;left:0;right:0;bottom:4px;text-align:center;font:700 clamp(8px,1.4vh,10px) ui-monospace,Menlo,Consolas,monospace;letter-spacing:.1em;color:#3a352c;text-transform:uppercase}
.bst-photo .clip{position:absolute;top:-10px;left:22%;width:14px;height:34px;border:3px solid #8f969e;border-radius:8px;background:transparent;box-shadow:0 2px 2px rgba(0,0,0,.5)}
.bst-photo.off img{filter:brightness(0) drop-shadow(0 0 2px rgba(255,140,60,.6))}
.bst-meta h2{margin:0 0 2px;font:400 clamp(18px,4vh,34px)/1.05 'Russo One';letter-spacing:.05em;text-transform:uppercase;color:#f7e6bd;text-align:left;text-shadow:0 2px 0 #000}
.bst-meta .cls{font:600 clamp(9px,1.6vh,12px)/1.35 ui-monospace,Menlo,Consolas,monospace;color:#5fe8ff;letter-spacing:.04em;margin-bottom:8px}
.bst-meta dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0;font:700 clamp(10px,1.7vh,13px) 'Exo 2'}
.bst-meta dt{color:#8a7a5e;letter-spacing:.14em;text-transform:uppercase;font-size:.85em}.bst-meta dd{margin:0;color:#e9dcc0}
.pips{display:flex;gap:4px;align-items:center}.pips i{width:clamp(10px,2vh,14px);height:clamp(6px,1.2vh,8px);background:#3a3a3a;transform:skewX(-20deg)}.pips i.on{background:linear-gradient(#ff7a4a,#c2361a);box-shadow:0 0 6px rgba(255,90,50,.6)}
.bst-file section{margin:10px 0 0}
.bst-file h5{margin:0 0 4px;font:800 clamp(9px,1.6vh,12px) 'Exo 2';letter-spacing:.24em;text-transform:uppercase;color:#e2b56b;display:flex;align-items:center;gap:8px}
.bst-file h5::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,rgba(226,181,107,.45),transparent)}
.bst-file p{margin:0;font:500 clamp(11px,1.95vh,14px)/1.5 'Exo 2';color:#d0c5b0}
.bst-file .tac p{color:#e8e0cf}.bst-file .tac{padding:8px 10px;border-left:3px solid #5fe8ff;background:rgba(95,232,255,.05);border-radius:0 6px 6px 0}
.bst-note{margin:12px 0 0;padding:8px 12px 8px 30px;position:relative;font:italic 500 clamp(11px,1.9vh,14px)/1.45 'Exo 2';color:#cbbd9f;background:rgba(0,0,0,.25);border-radius:4px}
.bst-note::before{content:'“';position:absolute;left:8px;top:-4px;font:400 34px/1 'Russo One';color:#e07a1c}
.bst-file .sec p{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:clamp(10px,1.75vh,13px);color:#b7c2bd;letter-spacing:.01em}
.rd{background:#050505;color:transparent;border-radius:1px;box-shadow:0 0 0 1px #050505;user-select:none;transition:color .3s}
.rd:hover{color:rgba(80,80,80,.35)}
.bst-none{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:60%;text-align:center}
.bst-none .bst-photo{width:clamp(140px,30vh,240px)}.bst-none h2{margin:0;font:400 clamp(22px,5vh,40px) 'Russo One';color:#6b6458;letter-spacing:.2em}.bst-none p{max-width:420px;color:#9c917c}
.bst-photo.off::before{content:'';position:absolute;left:8px;right:8px;top:8px;aspect-ratio:1/1;background:radial-gradient(circle at 50% 40%,#3a3f47,#15181c 75%)}
.bst-photo.off img{position:relative;background:none;opacity:.85}
