*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none;touch-action:none}
html,body{width:100%;height:100%;overflow:hidden;background:#0c0d0b;font-family:'Helvetica Neue',Arial,sans-serif;color:#e8e4d8}
#wrap{position:fixed;inset:0;overflow:hidden}
#cv{position:absolute;inset:0;width:100%;height:100%;display:block}

/* ---------- HUD ---------- */
.hud{position:absolute;pointer-events:none;z-index:5}
#topL{left:calc(10px + env(safe-area-inset-left));top:calc(10px + env(safe-area-inset-top));width:44%}
#topR{right:calc(10px + env(safe-area-inset-right));top:calc(10px + env(safe-area-inset-top));text-align:right}
.bar{height:12px;background:rgba(0,0,0,.55);border:1px solid #000;border-radius:2px;overflow:hidden;margin-bottom:4px;box-shadow:0 1px 0 rgba(255,255,255,.08) inset}
.bar i{display:block;height:100%;width:100%;transition:width .12s linear}
#hpF{background:linear-gradient(180deg,#e04b3c,#a5241a)}
#apF{background:linear-gradient(180deg,#7fd0e8,#3c7f96)}
#apBar{height:7px}
.lbl{font-size:10px;letter-spacing:2.5px;color:#a9a396;text-shadow:0 1px 2px #000}
#sector{font-size:20px;font-weight:800;letter-spacing:3px;text-shadow:0 2px 4px #000}
#left{font-size:11px;letter-spacing:1.5px;color:#d8c88a;text-shadow:0 1px 2px #000}
.btn.oil{background:linear-gradient(180deg,#7a4a1c,#3a2109);box-shadow:0 4px 0 #241305;
  font-size:12px;letter-spacing:2px;padding:12px 22px;margin-top:2px}
.btn.sea{background:linear-gradient(180deg,#1d5a6e,#0e2f3d);box-shadow:0 4px 0 #08202b;
  font-size:12px;letter-spacing:2px;padding:12px 22px;margin-top:2px}
.btn.trench{background:linear-gradient(180deg,#6a5b41,#3d3427);box-shadow:0 4px 0 #221d15;
  font-size:12px;letter-spacing:2px;padding:12px 22px;margin-top:2px}
#kitLbl{font-size:8px;letter-spacing:3px;color:#8f8a7c;margin:2px 0 6px}
#kits{display:flex;gap:4px;margin-bottom:12px;justify-content:center;max-width:100%}
.kit{width:54px;border-radius:6px;padding:3px 0 2px;background:rgba(255,255,255,.05);border:2px solid transparent}
.kit.sel{border-color:#e2b13c;background:rgba(226,177,60,.14)}
.kit canvas{position:static;display:block;margin:0 auto;width:50px;height:70px}
.kit span{display:block;font-size:7px;letter-spacing:1.4px;color:#a9a396;margin-top:2px}
.kit.sel span{color:#f2ead2}
#build{font-size:8px;letter-spacing:2.5px;color:#c0562f;margin:8px 0 4px;font-weight:800}
#squad{font-size:10px;letter-spacing:2px;color:#9db35a;text-shadow:0 1px 2px #000;margin-top:2px}
#cash{font-size:15px;font-weight:800;letter-spacing:1.5px;color:#e2b13c;text-shadow:0 2px 3px #000;margin-top:3px}

/* ---------- controls ---------- */
#joyZone{position:absolute;left:0;bottom:0;width:52%;height:56%;z-index:6}
#joyBase{position:absolute;width:132px;height:132px;border-radius:50%;border:2px solid rgba(232,228,216,.42);
  background:radial-gradient(circle,rgba(255,255,255,.06) 38%,rgba(255,255,255,0) 39%),rgba(0,0,0,.34);
  transform:translate(-50%,-50%);pointer-events:none;transition:opacity .18s;opacity:.55;
  box-shadow:0 0 0 1px rgba(0,0,0,.5),0 4px 14px rgba(0,0,0,.45)}
#joyBase b{position:absolute;background:rgba(232,228,216,.34);border-radius:2px}
#joyBase b:nth-child(1){left:50%;top:7px;width:2px;height:9px;margin-left:-1px}
#joyBase b:nth-child(2){left:50%;bottom:7px;width:2px;height:9px;margin-left:-1px}
#joyBase b:nth-child(3){top:50%;left:7px;height:2px;width:9px;margin-top:-1px}
#joyBase b:nth-child(4){top:50%;right:7px;height:2px;width:9px;margin-top:-1px}
#joyKnob{position:absolute;width:58px;height:58px;border-radius:50%;
  background:radial-gradient(circle at 38% 32%,rgba(240,236,224,.72),rgba(150,146,134,.55));
  border:2px solid rgba(255,255,255,.5);transform:translate(-50%,-50%);pointer-events:none;box-shadow:0 3px 10px rgba(0,0,0,.55)}
#act{position:absolute;right:calc(22px + env(safe-area-inset-right));bottom:calc(100px + env(safe-area-inset-bottom));width:86px;height:86px;border-radius:50%;z-index:6;
  background:radial-gradient(circle at 38% 32%,#c8543c,#79261a);border:3px solid rgba(255,220,190,.45);color:#fff;font:800 14px/1.05 Arial;letter-spacing:1.2px;
  box-shadow:0 6px 18px rgba(0,0,0,.6);white-space:pre-line}
#act:active,#act.on{transform:scale(.94);filter:brightness(1.25)}
#act.dim{background:radial-gradient(circle at 38% 32%,#4d4a44,#26241f);border-color:rgba(255,255,255,.18);color:#9d988c}
#nade{position:absolute;right:calc(118px + env(safe-area-inset-right));bottom:calc(118px + env(safe-area-inset-bottom));width:58px;height:58px;border-radius:50%;z-index:6;
  background:radial-gradient(circle at 38% 32%,#6d7d46,#2f3a1c);border:2px solid rgba(255,255,255,.3);color:#f0ecd8;font:800 11px/1.1 Arial;letter-spacing:1px;box-shadow:0 4px 12px rgba(0,0,0,.55)}
#nade:active{transform:scale(.93)}
#nade.dim{opacity:.3}
#mute{position:absolute;right:calc(12px + env(safe-area-inset-right));top:calc(72px + env(safe-area-inset-top));width:38px;height:38px;border-radius:50%;z-index:6;
  background:rgba(0,0,0,.45);border:1px solid rgba(255,255,255,.2);color:#e8e4d8;font-size:16px}

/* ---------- overlays ---------- */
.ov{position:absolute;inset:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  padding:calc(18px + env(safe-area-inset-top)) 16px calc(18px + env(safe-area-inset-bottom));
  overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;
  background:radial-gradient(circle at 50% 40%,rgba(30,28,22,.86),rgba(6,6,5,.96))}
#start{justify-content:flex-start}
.ov.hide{display:none}
h1{font-size:34px;font-weight:900;letter-spacing:6px;line-height:.95;color:#f2ead2;text-shadow:0 4px 0 #241f16,0 6px 18px #000}
h1 small{display:block;font-size:11px;letter-spacing:6px;color:#c0562f;margin-top:7px;font-weight:700}
.sub{margin:10px 0 12px;font-size:11.5px;line-height:1.55;color:#a9a396;max-width:320px}
.btn{padding:13px 30px;margin:5px;border:0;border-radius:3px;background:linear-gradient(180deg,#c0562f,#7d3016);color:#fff;font:800 15px Arial;letter-spacing:2.5px;box-shadow:0 4px 0 #4a1b0c}
.btn:active{transform:translateY(3px);box-shadow:0 1px 0 #4a1b0c}
.btn.ghost{background:rgba(255,255,255,.07);box-shadow:0 4px 0 rgba(0,0,0,.4);color:#d6d0c2}
.row{display:flex;flex-wrap:wrap;justify-content:center;max-width:330px;margin-top:6px}
.mini{padding:7px 12px;margin:3px;font-size:11px;letter-spacing:1.2px}
#start>.btn,#start>.row .btn{width:min(320px,calc(100% - 10px));min-height:48px;box-sizing:border-box;margin:5px}
#start>.row{width:100%;max-width:330px;flex-direction:column;align-items:center;margin-top:0}
#start>.row .mini{padding:13px 30px;font-size:15px;letter-spacing:2.5px}
#deathCardLbl{font-size:9px;letter-spacing:3px;color:#e2b13c;margin:15px 0 4px;font-weight:900}
#deathCardLinks{width:min(320px,calc(100% - 10px));display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:2px 0 16px}
#deathCardLinks .btn{width:100%;min-height:46px;margin:0;padding:9px 7px;font-size:10px;line-height:1.25;letter-spacing:1.2px}

/* ---------- loot card ---------- */
#cardOv{background:rgba(4,4,3,.72)}
#card{width:260px;border-radius:8px;padding:2px;position:relative;animation:pop .28s cubic-bezier(.2,1.5,.5,1)}
@keyframes pop{0%{transform:scale(.5) rotate(-7deg);opacity:0}100%{transform:scale(1) rotate(0);opacity:1}}
#cardIn{background:linear-gradient(170deg,#22211c,#131310);border-radius:7px;padding:18px 16px 16px;text-align:center}
#cardArt{height:104px;display:flex;align-items:center;justify-content:center;margin-bottom:6px}
#cardRar{font-size:9px;letter-spacing:4px;font-weight:800}
#cardName{font-size:19px;font-weight:900;letter-spacing:1.5px;margin:4px 0 8px;color:#f2ead2}
#cardStats{font-size:11px;line-height:1.8;color:#a9a396;letter-spacing:.5px}
#cardStats b{color:#e8e4d8;float:right}
.statRow{display:flex;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.06);padding:2px 0}
#cardBtns{margin-top:16px;display:flex;gap:8px}
#cardBtns .btn{flex:1;margin:0;padding:14px 0;font-size:13px;letter-spacing:1.5px}
#cardHint{margin-top:10px;font-size:9px;letter-spacing:2px;color:#6e6a60}

#banner{position:absolute;left:0;right:0;top:34%;z-index:8;text-align:center;pointer-events:none;opacity:0;transition:opacity .3s}
#banner.show{opacity:1}
#banner b{font-size:30px;font-weight:900;letter-spacing:5px;color:#f2ead2;text-shadow:0 3px 0 #000,0 0 24px rgba(192,86,47,.7)}
#banner small{display:block;font-size:11px;letter-spacing:3px;color:#c0562f;margin-top:6px}
#bossVictory,#levelTwoBossVictory,#seaBossVictory,#levelFourBossVictory,#airBossVictory,#finalBossVictory{position:absolute;inset:0;z-index:18;pointer-events:none;display:flex;align-items:center;justify-content:center;opacity:0;transform:scale(1.08);transition:opacity .45s ease,transform .6s cubic-bezier(.2,.8,.2,1);background:radial-gradient(circle at 50% 48%,rgba(112,31,18,.38),rgba(5,6,5,.9) 68%)}
#bossVictory.show,#levelTwoBossVictory.show,#seaBossVictory.show,#levelFourBossVictory.show,#airBossVictory.show,#finalBossVictory.show{opacity:1;transform:scale(1)}
#bossVictory.preview,#levelTwoBossVictory.preview,#seaBossVictory.preview,#levelFourBossVictory.preview,#airBossVictory.preview,#finalBossVictory.preview{z-index:30;pointer-events:auto;cursor:pointer}
#bossVictory .victoryIn,#levelTwoBossVictory .victoryIn,#seaBossVictory .victoryIn,#levelFourBossVictory .victoryIn,#airBossVictory .victoryIn,#finalBossVictory .victoryIn{width:min(620px,88%);padding:34px 18px 30px;border-top:3px solid #e2b13c;border-bottom:3px solid #e2b13c;background:linear-gradient(90deg,transparent,rgba(25,20,13,.9) 12%,rgba(25,20,13,.96) 88%,transparent);box-shadow:0 0 70px rgba(192,70,35,.5);position:relative;overflow:hidden}
#bossVictory .victoryIn:before,#levelTwoBossVictory .victoryIn:before,#seaBossVictory .victoryIn:before,#levelFourBossVictory .victoryIn:before,#airBossVictory .victoryIn:before,#finalBossVictory .victoryIn:before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 5px,rgba(255,255,255,.025) 6px);animation:victoryScan 1.4s linear infinite}
#bossVictory img,#levelTwoBossVictory img,#seaBossVictory img,#levelFourBossVictory img,#airBossVictory img,#finalBossVictory canvas{display:block;position:relative;width:112px;height:132px;object-fit:cover;margin:0 auto 18px;border:3px solid #d3aa48;border-radius:4px;filter:saturate(.82) contrast(1.08);box-shadow:0 0 0 3px rgba(72,29,14,.8),0 10px 30px rgba(0,0,0,.75),0 0 24px rgba(226,177,60,.28);background:linear-gradient(#6f7774,#252823)}
#bossVictory strong,#levelTwoBossVictory strong,#seaBossVictory strong,#levelFourBossVictory strong,#airBossVictory strong,#finalBossVictory strong{display:block;position:relative;color:#f1cf67;font-size:clamp(27px,7vw,58px);font-weight:1000;letter-spacing:clamp(4px,1.4vw,11px);text-shadow:0 4px 0 #4b210f,0 0 28px rgba(238,180,66,.55);animation:victoryPulse 1.1s ease-in-out infinite alternate}
#bossVictory span,#levelTwoBossVictory span,#seaBossVictory span,#levelFourBossVictory span,#airBossVictory span,#finalBossVictory span{display:block;position:relative;margin-top:13px;color:#f2ead2;font-size:clamp(12px,3.2vw,22px);font-weight:900;letter-spacing:clamp(2px,.8vw,6px);text-shadow:0 3px 0 #000}
#bossVictory i,#levelTwoBossVictory i,#seaBossVictory i,#levelFourBossVictory i,#airBossVictory i,#finalBossVictory i{display:block;position:relative;width:72%;height:2px;margin:18px auto 0;background:linear-gradient(90deg,transparent,#c0562f,#e2b13c,#c0562f,transparent);box-shadow:0 0 16px #c0562f}
@keyframes victoryPulse{from{filter:brightness(.9)}to{filter:brightness(1.22)}}
@keyframes victoryScan{from{transform:translateY(-8px)}to{transform:translateY(8px)}}
#splash{position:absolute;inset:0;z-index:60;background:#070805;display:flex;flex-direction:column;
  align-items:center;justify-content:center;transition:opacity .6s ease;pointer-events:auto;cursor:pointer;touch-action:manipulation}
#splash.gone{opacity:0;pointer-events:none}
#splashImg{max-width:100%;max-height:88%;object-fit:contain;
  animation:splashIn 1.1s ease-out both;box-shadow:0 0 60px rgba(0,0,0,.8)}
@keyframes splashIn{0%{opacity:0;transform:scale(1.07)}100%{opacity:1;transform:scale(1)}}
#splashBar{width:180px;height:3px;background:rgba(255,255,255,.14);margin-top:14px;border-radius:2px;overflow:hidden}
#splashBar i{display:block;height:100%;width:0;background:#e2b13c;animation:splashLoad 3.6s linear forwards}
@keyframes splashLoad{0%{width:0}100%{width:100%}}
#splashTap{margin-top:10px;font-size:8px;letter-spacing:3px;color:#6e6a60}
#levelOneIntro,#levelTwoIntro,#levelThreeIntro,#levelFourIntro,#levelFiveIntro,#levelSixIntro{position:absolute;inset:0;z-index:56;display:flex;align-items:center;justify-content:center;background:#03070c;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .38s ease,visibility 0s linear .38s}
#levelOneIntro.show,#levelTwoIntro.show,#levelThreeIntro.show,#levelFourIntro.show,#levelFiveIntro.show,#levelSixIntro.show{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .38s ease}
.levelIntroImg{display:block;width:100%;height:100%;object-fit:contain;filter:contrast(1.03) saturate(1.04)}
.levelIntroControls{position:absolute;bottom:max(28px,calc(env(safe-area-inset-bottom) + 24px));left:50%;transform:translateX(-50%);width:min(260px,55vw);padding:10px;border:1px solid rgba(226,177,60,.65);border-radius:7px;background:rgba(3,7,12,.82);box-shadow:0 7px 28px rgba(0,0,0,.65);backdrop-filter:blur(5px)}
.levelIntroStart{display:block;width:100%;min-height:48px;padding:12px 8px;border:1px solid #f3ca48;border-radius:4px;background:linear-gradient(#e5b72d,#a96d08);color:#100c04;font:900 clamp(12px,2.3vw,18px) Arial,sans-serif;letter-spacing:2px;text-shadow:0 1px rgba(255,255,255,.3);box-shadow:inset 0 1px rgba(255,255,255,.3);touch-action:manipulation;cursor:pointer}
.levelIntroStart:active{transform:translateY(1px);filter:brightness(.9)}
.levelIntroBar{height:3px;margin-top:8px;border-radius:2px;overflow:hidden;background:rgba(255,255,255,.17)}
.levelIntroBar i{display:block;width:0;height:100%;background:#f3ca48;box-shadow:0 0 10px #f3ca48}
#levelOneIntro.show .levelIntroBar i,#levelTwoIntro.show .levelIntroBar i,#levelThreeIntro.show .levelIntroBar i,#levelFourIntro.show .levelIntroBar i,#levelFiveIntro.show .levelIntroBar i,#levelSixIntro.show .levelIntroBar i{animation:levelOneIntroLoad 6s linear forwards}
@keyframes levelOneIntroLoad{from{width:0}to{width:100%}}
@media(max-width:700px){.levelIntroControls{width:min(220px,70vw);padding:8px}.levelIntroStart{min-height:44px;padding:10px 5px;letter-spacing:1.5px}}
#dmgFlash{position:absolute;inset:0;z-index:7;pointer-events:none;background:radial-gradient(circle at 50% 50%,transparent 40%,rgba(180,20,10,.55));opacity:0;transition:opacity .18s}
