/* VagRounded font */
@font-face{font-family:'VagRounded';src:url('fonts/VagRounded.ttf') format('truetype');font-weight:normal;font-style:normal}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html,body{width:100%;height:100%;overflow:hidden;background:#061006;font-family:'VagRounded',sans-serif;touch-action:none;-webkit-user-select:none;user-select:none}
#gameCanvas{position:fixed;top:0;left:0;width:100vw;height:100vh;display:block}
.hidden{display:none!important}
#mapi-label{position:fixed;bottom:10px;left:14px;color:#FF2222;font-family:'VagRounded',sans-serif;font-size:clamp(11px,1.8vw,16px);pointer-events:none;z-index:11;text-shadow:0 1px 4px rgba(0,0,0,0.9);display:none}
#mapi-label.show{display:block}

/* SPLASH */
#splash-screen{position:fixed;inset:0;background:url('images/splash.jpg') center/cover no-repeat #061006;z-index:200;display:flex;align-items:flex-end;justify-content:center;padding-bottom:12vh;cursor:pointer}
#tap-to-play{font-family:'VagRounded',sans-serif;font-size:clamp(24px,6vw,44px);color:#fff;text-shadow:0 0 24px rgba(255,255,100,1),0 2px 10px rgba(0,0,0,0.9);animation:tapBlink 1.1s ease-in-out infinite;letter-spacing:3px}
@keyframes tapBlink{0%,100%{opacity:1}50%{opacity:0.08}}

/* SCREENS */
.screen{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:clamp(10px,2.5vw,22px);overflow-y:auto}
#main-menu{background:radial-gradient(ellipse at center,#1a4a1a 0%,#040e04 100%)}
#level-screen,#ball-screen{background:#0a180a;justify-content:flex-start}
#pause-screen{background:rgba(0,0,0,0.82);backdrop-filter:blur(14px)}
#result-screen{background:rgba(0,0,0,0.72);backdrop-filter:blur(10px)}

/* MENU */
#gem-display{position:absolute;top:clamp(10px,2vh,18px);right:clamp(12px,2.5vw,20px);background:rgba(0,0,0,0.65);backdrop-filter:blur(6px);border:1.5px solid rgba(255,215,0,0.45);border-radius:22px;padding:6px 16px;font-family:'VagRounded',sans-serif;font-size:clamp(15px,2.8vw,20px);color:#FFD700;z-index:2}
#menu-logo{font-size:clamp(52px,11vw,80px);margin-bottom:6px;animation:bounce 1.6s ease-in-out infinite}
@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
#menu-title{font-family:'VagRounded',sans-serif;font-size:clamp(44px,11vw,86px);color:#7eff7e;line-height:.88;text-shadow:0 0 40px rgba(100,255,100,.5),4px 4px 0 rgba(0,70,0,.8);margin-bottom:clamp(16px,3vh,28px);text-align:center}
#menu-btns{display:flex;flex-direction:column;gap:clamp(8px,1.5vh,12px);width:clamp(220px,55vw,300px)}
.mbtn{background:linear-gradient(135deg,#2db82d,#197a19);color:#fff;font-family:'VagRounded',sans-serif;font-size:clamp(15px,2.8vw,20px);border:none;border-radius:50px;padding:clamp(12px,1.8vh,16px) 0;cursor:pointer;box-shadow:0 4px 16px rgba(40,180,40,.4);transition:transform .13s,box-shadow .13s;width:100%;letter-spacing:.5px}
.mbtn:hover{transform:translateY(-2px) scale(1.03);box-shadow:0 8px 22px rgba(40,180,40,.55)}
.mbtn:active{transform:scale(.97)}
.secondary{background:linear-gradient(135deg,#444,#222);box-shadow:0 4px 14px rgba(0,0,0,.5)}
.secondary:hover{box-shadow:0 8px 20px rgba(0,0,0,.65)}
#menu-mapi{margin-top:clamp(16px,3.5vh,26px);color:#FF2222;font-family:'VagRounded',sans-serif;font-size:clamp(13px,2.2vw,18px);letter-spacing:1px}

/* TOPBAR */
.topbar{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:580px;padding:clamp(8px,2vw,14px) 0 clamp(10px,2.5vh,18px);flex-shrink:0}
.topbar h2{font-family:'VagRounded',sans-serif;font-size:clamp(16px,3.2vw,24px);color:#7eff7e;letter-spacing:.5px}
.back-btn{background:rgba(255,255,255,.12);color:#fff;font-family:'VagRounded',sans-serif;font-size:clamp(12px,2vw,15px);border:1.5px solid rgba(255,255,255,.2);border-radius:22px;padding:7px 16px;cursor:pointer;transition:background .14s;letter-spacing:.3px}
.back-btn:hover{background:rgba(255,255,255,.22)}
#ball-gems-display{font-family:'VagRounded',sans-serif;font-size:clamp(14px,2.6vw,19px);color:#FFD700}

/* LEVEL GRID */
#level-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(5px,1.2vw,9px);width:100%;max-width:560px;padding-bottom:20px}
.lvl-btn{aspect-ratio:1;border-radius:11px;border:2px solid rgba(255,255,255,.14);background:linear-gradient(135deg,#1c4a1c,#0c2a0c);color:#7eff7e;font-family:'VagRounded',sans-serif;font-size:clamp(12px,2.2vw,17px);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .12s,box-shadow .12s}
.lvl-btn:hover:not(.locked){transform:scale(1.07);box-shadow:0 4px 14px rgba(80,200,80,.4)}
.lvl-btn.locked{background:rgba(255,255,255,.04);color:rgba(255,255,255,.2);cursor:not-allowed;border-color:rgba(255,255,255,.07)}
.lvl-btn.current{border-color:#7eff7e;box-shadow:0 0 12px rgba(100,255,100,.4)}

/* BALL GRID */
#ball-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(8px,1.8vw,12px);width:100%;max-width:480px;padding-bottom:20px}
.ball-card{border-radius:14px;border:2px solid rgba(255,255,255,.13);background:rgba(255,255,255,.05);padding:clamp(12px,2.5vw,18px);display:flex;flex-direction:column;align-items:center;gap:7px;cursor:pointer;transition:transform .12s,border-color .12s}
.ball-card:hover:not(.blocked){transform:scale(1.04);border-color:rgba(255,255,255,.28)}
.ball-card.chosen{border-color:#7eff7e;background:rgba(100,255,100,.08);box-shadow:0 0 14px rgba(100,255,100,.3)}
.ball-card.blocked{opacity:.4;cursor:not-allowed}
.ball-circle{width:clamp(38px,7vw,54px);height:clamp(38px,7vw,54px);border-radius:50%;border:3px solid rgba(255,255,255,.25);box-shadow:inset -4px -4px 8px rgba(0,0,0,.35),inset 3px 3px 8px rgba(255,255,255,.2)}
.ball-name{font-family:'VagRounded',sans-serif;font-size:clamp(12px,2.2vw,16px);color:#fff}
.ball-price{font-size:clamp(11px,1.9vw,14px);color:#FFD700;font-weight:700}
.ball-ok{font-size:clamp(11px,1.9vw,13px);color:#7eff7e}

/* HUD */
#hud{position:fixed;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:flex-start;padding:clamp(8px,1.8vw,13px) clamp(8px,2.2vw,16px);pointer-events:none;z-index:10}
#hud.hidden{display:none}
#hud-left,#hud-right{display:flex;flex-direction:column;gap:clamp(4px,1vw,7px)}
#hud-right{align-items:flex-end}
#hud-center{flex:1;text-align:center}
#hud-title{font-family:'VagRounded',sans-serif;font-size:clamp(11px,1.8vw,18px);color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.8);padding-top:clamp(4px,1vw,7px);letter-spacing:.5px}
.badge{display:flex;flex-direction:column;align-items:center;background:rgba(0,0,0,.62);backdrop-filter:blur(7px);border:1.5px solid rgba(255,255,255,.15);border-radius:12px;padding:clamp(4px,1vw,7px) clamp(9px,2vw,13px);min-width:clamp(46px,9vw,64px)}
#badge-level{border-color:rgba(100,255,100,.35)}
.blabel{font-size:clamp(6px,1vw,9px);font-family:'VagRounded',sans-serif;letter-spacing:1.5px;color:rgba(255,255,255,.5);text-transform:uppercase}
#hud-level{font-family:'VagRounded',sans-serif;font-size:clamp(18px,3.8vw,28px);color:#7eff7e;line-height:1}
#hud-par{font-size:clamp(8px,1.3vw,11px);font-family:'VagRounded',sans-serif;color:rgba(255,255,255,.65)}
#hud-shots,#hud-gems{font-family:'VagRounded',sans-serif;font-size:clamp(17px,3.2vw,26px);line-height:1}
#hud-shots{color:#fff}
#hud-gems{color:#FFD700}

/* PAUSE BTN — bottom right, text label */
#pause-btn{position:fixed;bottom:clamp(16px,3.5vh,28px);right:clamp(14px,2.5vw,22px);background:rgba(0,0,0,.62);backdrop-filter:blur(8px);border:1.5px solid rgba(255,255,255,.25);border-radius:24px;padding:clamp(7px,1.3vh,10px) clamp(14px,2.5vw,20px);font-family:'VagRounded',sans-serif;font-size:clamp(12px,2vw,15px);color:#fff;cursor:pointer;z-index:12;box-shadow:0 3px 12px rgba(0,0,0,.5);letter-spacing:.5px}
#pause-btn.hidden{display:none}

/* POWER BAR */
#powerbar{position:fixed;left:clamp(8px,1.8vw,14px);bottom:clamp(60px,12vh,100px);display:flex;flex-direction:column;align-items:center;gap:4px;z-index:10;pointer-events:none}
#powerbar.hidden{display:none}
#pow-label{font-size:clamp(6px,1vw,9px);font-family:'VagRounded',sans-serif;letter-spacing:2px;color:rgba(255,255,255,.7)}
#pow-track{width:clamp(9px,1.6vw,12px);height:clamp(75px,14vh,115px);background:rgba(0,0,0,.45);border:1.5px solid rgba(255,255,255,.2);border-radius:8px;overflow:hidden;display:flex;align-items:flex-end}
#pow-fill{width:100%;height:0%;background:linear-gradient(to top,#ff2200,#ffaa00,#00ff88);border-radius:6px;transition:height .05s}

/* AIM HINT */
#aim-hint{position:fixed;bottom:clamp(14px,3.5vh,26px);left:50%;transform:translateX(-50%);background:rgba(0,0,0,.6);backdrop-filter:blur(6px);color:rgba(255,255,255,.9);font-size:clamp(10px,1.7vw,13px);font-family:'VagRounded',sans-serif;padding:clamp(5px,1.1vh,9px) clamp(12px,2.8vw,18px);border-radius:18px;border:1px solid rgba(255,255,255,.17);pointer-events:none;z-index:10;white-space:nowrap}
#aim-hint.hidden{display:none}

/* TERRAIN MSG */
#terrain-msg{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:rgba(0,0,0,.78);color:#fff;font-family:'VagRounded',sans-serif;font-size:clamp(18px,4vw,28px);padding:12px 28px;border-radius:14px;z-index:22;pointer-events:none;animation:popIn .3s ease;white-space:nowrap}
#terrain-msg.hidden{display:none}

/* POPUPS */
.popup{display:flex;flex-direction:column;align-items:center;gap:clamp(10px,1.8vh,14px);text-align:center}
.popup h2{font-family:'VagRounded',sans-serif;font-size:clamp(24px,5vw,36px);color:#fff;letter-spacing:.5px}
.popup .mbtn{width:clamp(190px,48vw,270px)}
#result-screen .popup{background:linear-gradient(160deg,#1a3d1a,#0c280c);border:2px solid rgba(100,255,100,.35);border-radius:clamp(16px,4vw,26px);padding:clamp(22px,4.5vw,36px) clamp(26px,5.5vw,44px);max-width:clamp(270px,78vw,350px);width:90%;box-shadow:0 20px 55px rgba(0,0,0,.65);animation:popIn .35s cubic-bezier(.34,1.56,.64,1)}
#res-icon{font-size:clamp(36px,7vw,52px);margin-bottom:4px}
#res-title{font-family:'VagRounded',sans-serif;font-size:clamp(22px,5vw,32px);color:#7eff7e;text-shadow:0 0 18px rgba(100,255,100,.5)}
#res-sub{font-size:clamp(11px,2vw,14px);color:rgba(255,255,255,.68)}
#res-stats{display:flex;justify-content:center;gap:18px;font-size:clamp(11px,1.9vw,14px);color:rgba(255,255,255,.58);font-family:'VagRounded',sans-serif}
#btn-next{background:linear-gradient(135deg,#2db82d,#197a19);color:#fff;font-family:'VagRounded',sans-serif;font-size:clamp(13px,2.6vw,18px);border:none;border-radius:50px;padding:clamp(9px,1.8vh,13px) clamp(22px,4.5vw,34px);cursor:pointer;box-shadow:0 4px 18px rgba(40,180,40,.4);transition:transform .13s;letter-spacing:.5px}
#btn-next:hover{transform:translateY(-2px) scale(1.03)}
#btn-next:active{transform:scale(.97)}
@keyframes popIn{from{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}

/* ============================================================
   RESULT POPUP — bright, colorful, no more black
   ============================================================ */
#result-screen{background:rgba(0,30,0,0.55);backdrop-filter:blur(18px)}
#result-screen .popup{
  background:linear-gradient(145deg,#1a5c1a 0%,#0d3a0d 60%,#1a4a0d 100%);
  border:2.5px solid rgba(120,255,100,0.5);
  border-radius:clamp(20px,4vw,32px);
  padding:clamp(24px,5vw,40px) clamp(28px,6vw,50px);
  max-width:clamp(280px,80vw,380px);
  width:92%;
  box-shadow:0 0 60px rgba(80,255,80,0.25),0 24px 60px rgba(0,0,0,0.55);
  animation:popIn .38s cubic-bezier(.34,1.56,.64,1)
}
#res-icon{
  font-size:clamp(18px,4vw,26px);
  font-family:'VagRounded',sans-serif;
  color:#FFD700;
  text-shadow:0 0 22px rgba(255,215,0,0.8);
  letter-spacing:1px;
  background:rgba(0,0,0,0.25);
  padding:6px 18px;border-radius:20px;
  display:inline-block;margin-bottom:2px
}
#res-title{
  font-family:'VagRounded',sans-serif;
  font-size:clamp(26px,6vw,40px);
  color:#7eff7e;
  text-shadow:0 0 24px rgba(100,255,100,0.6),0 3px 0 rgba(0,0,0,0.5);
  margin:4px 0
}
#res-sub{
  font-size:clamp(13px,2.4vw,16px);
  color:rgba(255,255,255,0.85);
  font-family:'VagRounded',sans-serif
}
#res-stats{
  display:flex;justify-content:center;gap:20px;
  font-size:clamp(12px,2vw,15px);
  font-family:'VagRounded',sans-serif;
  background:rgba(0,0,0,0.3);
  border-radius:12px;padding:8px 16px;
  color:rgba(255,255,255,0.8)
}
#res-stats span:last-child{color:#FFD700}

/* ============================================================
   PAUSE POPUP — clean, no dark black
   ============================================================ */
#pause-screen{background:rgba(0,20,0,0.5);backdrop-filter:blur(20px)}
#pause-screen .popup{
  background:linear-gradient(145deg,#162d16,#0c1e0c);
  border:2px solid rgba(100,255,100,0.3);
  border-radius:clamp(20px,4vw,32px);
  padding:clamp(28px,5vh,44px) clamp(32px,6vw,56px);
  box-shadow:0 0 50px rgba(50,200,50,0.2),0 20px 50px rgba(0,0,0,0.5);
  animation:popIn .3s cubic-bezier(.34,1.56,.64,1);
  display:flex;flex-direction:column;align-items:center;gap:clamp(12px,2.5vh,18px)
}
#pause-screen .popup h2{
  color:#7eff7e;
  font-size:clamp(28px,6vw,44px);
  text-shadow:0 0 20px rgba(100,255,100,0.5);
  letter-spacing:2px
}

/* ============================================================
   END GAME SCREEN
   ============================================================ */
#endgame-screen{
  position:fixed;inset:0;z-index:150;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:radial-gradient(ellipse at center,#0e3a0e 0%,#040d04 100%);
  padding:clamp(16px,4vw,32px)
}
#endgame-screen.hidden{display:none!important}
#endgame-inner{
  display:flex;flex-direction:column;align-items:center;gap:clamp(12px,2.5vh,20px);
  text-align:center;
  animation:popIn .5s cubic-bezier(.34,1.56,.64,1)
}
#endgame-trophy{
  font-size:clamp(60px,14vw,110px);
  animation:trophySpin 3s ease-in-out infinite;
  filter:drop-shadow(0 0 28px rgba(255,215,0,0.9))
}
@keyframes trophySpin{
  0%,100%{transform:scale(1) rotate(-3deg)}
  50%{transform:scale(1.12) rotate(3deg)}
}
#endgame-title{
  font-family:'VagRounded',sans-serif;
  font-size:clamp(34px,8vw,64px);
  color:#FFD700;
  text-shadow:0 0 40px rgba(255,215,0,0.7),0 4px 0 rgba(0,0,0,0.6);
  line-height:1;letter-spacing:1px
}
#endgame-sub{
  font-family:'VagRounded',sans-serif;
  font-size:clamp(16px,3.5vw,26px);
  color:#7eff7e;
  text-shadow:0 0 16px rgba(100,255,100,0.5);
  max-width:480px;line-height:1.3
}
#endgame-score{
  font-family:'VagRounded',sans-serif;
  font-size:clamp(14px,2.8vw,20px);
  color:rgba(255,255,255,0.75);
  background:rgba(0,0,0,0.35);
  border-radius:14px;padding:10px 24px;
  border:1.5px solid rgba(255,255,255,0.12)
}
#endgame-stars{
  display:flex;gap:10px;justify-content:center;
  font-size:clamp(28px,6vw,44px);
  filter:drop-shadow(0 0 12px rgba(255,215,0,0.8));
  animation:starsGlow 1.5s ease-in-out infinite alternate
}
@keyframes starsGlow{from{filter:drop-shadow(0 0 10px rgba(255,215,0,0.7))}to{filter:drop-shadow(0 0 28px rgba(255,215,0,1))}}
#btn-endgame-menu{
  margin-top:8px;
  background:linear-gradient(135deg,#FFD700,#FF8800);
  color:#000;
  font-family:'VagRounded',sans-serif;
  font-size:clamp(16px,3.2vw,22px);
  border:none;border-radius:50px;
  padding:clamp(12px,2vh,18px) clamp(28px,6vw,50px);
  cursor:pointer;
  box-shadow:0 6px 24px rgba(255,180,0,0.5);
  transition:transform .13s,box-shadow .13s;
  letter-spacing:.5px;font-weight:700
}
#btn-endgame-menu:hover{transform:translateY(-3px) scale(1.04);box-shadow:0 10px 30px rgba(255,180,0,0.7)}
#btn-endgame-menu:active{transform:scale(.97)}

/* confetti rain background on endgame */
#endgame-screen::before{
  content:'';position:absolute;inset:0;
  background:
    radial-gradient(2px 2px at 10% 20%,#FFD700 0%,transparent 100%),
    radial-gradient(2px 2px at 30% 60%,#FF4444 0%,transparent 100%),
    radial-gradient(2px 2px at 50% 15%,#44FF88 0%,transparent 100%),
    radial-gradient(2px 2px at 70% 40%,#4488FF 0%,transparent 100%),
    radial-gradient(2px 2px at 85% 75%,#FF88FF 0%,transparent 100%),
    radial-gradient(2px 2px at 20% 85%,#FFD700 0%,transparent 100%),
    radial-gradient(2px 2px at 60% 90%,#44FFFF 0%,transparent 100%);
  background-size:200px 200px;
  animation:confettiFall 4s linear infinite;
  pointer-events:none;opacity:.6
}
@keyframes confettiFall{from{background-position:0 -200px}to{background-position:0 200px}}

/* ============================================================
   DANGER BUTTON
   ============================================================ */
.mbtn.danger{
  background:linear-gradient(135deg,#aa1a1a,#6e0e0e);
  box-shadow:0 4px 16px rgba(180,30,30,0.4);
}
.mbtn.danger:hover{
  box-shadow:0 8px 22px rgba(200,40,40,0.6);
}

/* ============================================================
   RESET CONFIRM OVERLAY
   ============================================================ */
#reset-confirm{
  position:fixed;inset:0;z-index:300;
  display:flex;align-items:center;justify-content:center;
  background:rgba(0,0,0,0.75);
  backdrop-filter:blur(16px);
}
#reset-confirm.hidden{display:none!important}
#reset-box{
  background:linear-gradient(145deg,#2a0d0d,#1a0505);
  border:2.5px solid rgba(255,80,80,0.5);
  border-radius:clamp(20px,4vw,32px);
  padding:clamp(28px,5vh,44px) clamp(32px,6vw,52px);
  max-width:clamp(280px,80vw,400px);
  width:92%;
  display:flex;flex-direction:column;align-items:center;
  gap:clamp(12px,2.5vh,18px);
  text-align:center;
  box-shadow:0 0 60px rgba(200,50,50,0.3),0 24px 60px rgba(0,0,0,0.6);
  animation:popIn .32s cubic-bezier(.34,1.56,.64,1);
}
#reset-icon{font-size:clamp(42px,9vw,64px)}
#reset-title{
  font-family:'VagRounded',sans-serif;
  font-size:clamp(26px,5.5vw,38px);
  color:#ff6666;
  text-shadow:0 0 20px rgba(255,80,80,0.6);
}
#reset-sub{
  font-family:'VagRounded',sans-serif;
  font-size:clamp(13px,2.4vw,16px);
  color:rgba(255,255,255,0.8);
  line-height:1.5;
}
#reset-sub strong{color:#ff9999}
#reset-btns{
  display:flex;flex-direction:column;
  gap:clamp(8px,1.5vh,12px);
  width:100%;
}
#reset-btns .mbtn{width:100%}
