:root{
  --pink:#ff26a8;
  --green:#85ff21;
  --cyan:#56d6ff;
  --yellow:#ffe353;
  --panel:#11151a;
  --ink:#f7f7f3;
  --danger:#ff3b45;
}
*{box-sizing:border-box}
html,body{width:100%;height:100%;margin:0;overflow:hidden;background:#050608;color:var(--ink);font-family:Impact,"Arial Narrow",system-ui,sans-serif}
button,a{-webkit-tap-highlight-color:transparent}
button{font:inherit}
.hidden{display:none!important}
.screen{position:fixed;inset:0}
.preloader{position:fixed;z-index:9999;inset:0;display:grid;place-items:center;background:radial-gradient(circle at 50% 25%,#1f2d14,#090a0a 55%,#020203)}
.preloader-card{width:min(460px,88vw);padding:28px;border:2px solid #44503d;border-radius:22px;background:#0c0e0d;box-shadow:0 20px 80px #000;text-align:center}
.virus-dot{font-size:56px;color:var(--green);filter:drop-shadow(0 0 12px #6cff17)}
.preloader h1{margin:0;font-size:clamp(40px,8vw,72px);letter-spacing:2px;color:var(--pink);text-shadow:3px 3px 0 #5b0040}
.preloader p{font-family:system-ui,sans-serif;color:#b8beb8}
.loadbar{height:14px;border:1px solid #526055;background:#050605;border-radius:99px;overflow:hidden}.loadbar span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--green),var(--yellow),var(--pink));transition:width .18s}.preloader strong{display:block;margin-top:10px;color:var(--green)}
.home-screen{background:#080a0b url('../img/hero-game.webp') center/cover no-repeat;display:grid;place-items:center;padding:24px}
.home-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.88) 0 36%,rgba(0,0,0,.48) 60%,rgba(0,0,0,.6)),linear-gradient(0deg,rgba(0,0,0,.85),transparent 45%)}
.home-card{position:relative;z-index:2;width:min(650px,90vw);margin-right:auto;margin-left:5vw;padding:28px 32px;border:1px solid rgba(255,255,255,.2);border-radius:22px;background:rgba(7,8,9,.86);backdrop-filter:blur(12px);box-shadow:0 20px 70px #000}
.brand{display:flex;align-items:end;gap:10px}.brand span{font-size:clamp(30px,5vw,58px);color:var(--green);text-shadow:0 0 18px rgba(133,255,33,.35)}.brand small{color:var(--pink);font-size:18px;margin-bottom:8px}
.home-card h1{margin:4px 0 -4px;font-size:clamp(70px,11vw,126px);line-height:.9;color:#8b4b25;text-shadow:0 3px 0 #d99353,0 8px 18px #000;letter-spacing:2px}
.home-card h2{margin:14px 0;color:var(--yellow);font-size:clamp(24px,4vw,42px)}
.home-card p{max-width:590px;font:700 18px/1.45 system-ui,sans-serif;color:#e9e9e5}
.home-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}.btn{border:1px solid #58605d;background:#1a1e20;color:white;padding:13px 18px;border-radius:12px;cursor:pointer;box-shadow:inset 0 1px rgba(255,255,255,.08)}.btn:hover{transform:translateY(-1px);filter:brightness(1.12)}.btn-primary{background:linear-gradient(180deg,#96ff2d,#4fc50b);color:#071006;border-color:#9cff35;box-shadow:0 0 24px rgba(133,255,33,.22);font-size:20px}
.home-mini{margin-top:16px;color:#a9b0ad;font:600 13px/1.4 system-ui,sans-serif}
.home-footer{position:absolute;z-index:3;left:0;right:0;bottom:10px;text-align:center;font:600 12px system-ui,sans-serif;color:#b8bdb9}.home-footer a{color:#d6d9d5;text-decoration:none}.home-footer span{margin:0 8px;color:#68706a}
.game-screen{display:flex;flex-direction:column;background:radial-gradient(circle at 50% -20%,#273b18,#090b0c 48%,#030405)}
.topbar{height:76px;min-height:76px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:8px 14px;border-bottom:1px solid #3a413c;background:#090b0d;box-shadow:0 5px 24px #000;z-index:3}.mini-brand{display:flex;flex-direction:column;line-height:.9}.mini-brand b{color:var(--green);font-size:27px;letter-spacing:1px}.mini-brand span{color:var(--pink);font-size:17px}.hud{display:flex;gap:8px}.hud>div{min-width:126px;padding:6px 12px;border:1px solid #525a61;border-radius:10px;background:#020304;text-align:center;box-shadow:inset 0 0 18px #000}.hud small{display:block;color:var(--cyan);font-size:12px;letter-spacing:1px}.hud strong{font-size:24px;color:white}.top-actions{display:flex;gap:7px;justify-content:flex-end}.icon-btn{width:42px;height:42px;border-radius:10px;border:1px solid #4a5256;background:#171b1e;color:#fff;cursor:pointer;font-size:20px}.icon-btn:hover{border-color:var(--green);color:var(--green)}
.game-layout{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 255px;gap:10px;padding:10px}.canvas-wrap{position:relative;min-width:0;min-height:0;border:2px solid #4d574e;border-radius:16px;overflow:hidden;background:#050607;box-shadow:0 15px 50px #000}#gameCanvas{display:block;width:100%;height:100%;touch-action:none;background:#030405 url('../img/playfield-bg.webp') center/cover no-repeat}
.side-panel{display:flex;min-height:0;flex-direction:column;gap:10px}.rat-card,.trap-card,.music-card{border:1px solid #464e4a;background:#0c0f11;border-radius:14px;box-shadow:inset 0 0 25px #000}.rat-card{display:grid;grid-template-columns:84px 1fr;gap:8px;align-items:center;padding:8px;min-height:118px}.rat-card img{width:84px;height:104px;object-fit:cover;border-radius:10px;filter:contrast(1.08)}.rat-card small{display:block;color:var(--pink);font-size:11px}.rat-card strong{display:block;margin-top:5px;font:800 15px/1.15 system-ui,sans-serif;color:var(--yellow)}.trap-card{padding:12px;flex:1}.trap-card h3{margin:0 0 10px;color:var(--pink);letter-spacing:1px}.trap-card p{display:flex;align-items:center;gap:8px;margin:7px 0;font:700 12px system-ui,sans-serif;color:#d0d4d1}.trap-card img{width:34px;height:27px;object-fit:cover;border-radius:6px}.music-card{padding:14px;text-align:center}.music-card span{display:block;color:var(--green);font-size:20px;line-height:1.16;text-shadow:0 0 12px rgba(133,255,33,.18)}.music-card small{display:block;margin-top:7px;font:700 10px/1.25 system-ui,sans-serif;color:#8e9692;letter-spacing:.4px}
.center-message{position:absolute;left:50%;top:51%;transform:translate(-50%,-50%);z-index:5;max-width:70%;padding:18px 24px;border-radius:16px;border:2px solid rgba(255,255,255,.22);background:rgba(6,7,7,.92);text-align:center;font-size:clamp(20px,3vw,38px);color:var(--yellow);box-shadow:0 15px 50px #000}.toast{position:absolute;z-index:6;left:50%;top:18%;transform:translateX(-50%);max-width:80%;padding:12px 18px;border-radius:10px;background:#ff2f49;color:white;font:900 clamp(15px,2vw,23px)/1.15 system-ui,sans-serif;text-align:center;box-shadow:0 8px 30px rgba(0,0,0,.7)}
.mobile-hint{display:none}
.modal{position:fixed;z-index:1000;inset:0;display:grid;place-items:center;padding:20px;background:rgba(0,0,0,.76);backdrop-filter:blur(8px)}.modal-card{width:min(620px,94vw);max-height:88vh;overflow:auto;border:2px solid #5d655f;border-radius:20px;background:#101316;padding:24px;box-shadow:0 25px 100px #000}.modal-card h2{margin:0 0 15px;color:var(--green);font-size:36px}.modal-card p,.modal-card li{font:600 16px/1.45 system-ui,sans-serif;color:#e6e8e5}.modal-card ul{padding-left:20px}.modal-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
@media(max-width:900px){
  .topbar{height:68px;min-height:68px;grid-template-columns:auto 1fr auto;padding:6px 8px}.mini-brand b{font-size:18px}.mini-brand span{font-size:12px}.hud{justify-content:center}.hud>div{min-width:70px;padding:4px 7px}.hud small{font-size:9px}.hud strong{font-size:17px}.top-actions{gap:4px}.icon-btn{width:34px;height:34px;font-size:17px}.game-layout{grid-template-columns:1fr;padding:6px}.side-panel{display:none}.mobile-hint{display:block;height:26px;padding:4px 8px;text-align:center;font:700 11px system-ui,sans-serif;color:#b7beb9;background:#080a0a}.home-card{margin:0 auto;padding:22px}.home-shade{background:rgba(0,0,0,.72)}
}
@media(max-width:570px){
  .topbar{grid-template-columns:1fr auto}.mini-brand{display:none}.hud{justify-content:flex-start;gap:4px}.hud>div{min-width:65px}.top-actions .icon-btn:nth-child(3){display:none}.game-layout{padding:4px}.home-card h1{font-size:67px}.home-card h2{font-size:23px}.home-card p{font-size:15px}.home-actions{display:grid}.btn{width:100%}.home-footer{font-size:10px}
}
@media(orientation:landscape) and (max-height:560px){.topbar{height:54px;min-height:54px}.hud strong{font-size:15px}.hud small{font-size:8px}.icon-btn{height:31px;width:31px}.mobile-hint{display:none}.game-layout{padding:4px}}
