@import url('https://fonts.googleapis.com/css2?family=Bangers&family=Oswald:wght@400;600;700&display=swap');

*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
:root{
  --fire:#FF4500;--orange:#FF8C00;--yellow:#FFD700;
  --dark:#1A0F0A;--rock:#2C221F;--ash:#4A3F3A;
  --text:#FDE0D0;--danger:#FF0000;
}
html,body{width:100%;height:100%;overflow:hidden;background:var(--dark);font-family:'Oswald',sans-serif;color:var(--text);}

/* ── SPLASH ── */
#splash-screen{position:fixed;inset:0;z-index:999;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at center,var(--rock) 0%,var(--dark) 80%);}
#splashCanvas{position:absolute;inset:0;width:100%;height:100%;}
.splash-ui{position:relative;z-index:2;text-align:center;}
.fire-title{margin-bottom:20px;}
.fire-icon{font-size:4rem;display:block;animation:pulse-fire 1s infinite alternate;}
@keyframes pulse-fire{0%{filter:drop-shadow(0 0 10px var(--fire));transform:scale(1);}100%{filter:drop-shadow(0 0 30px var(--orange));transform:scale(1.1);}}
.fire-title h1{font-family:'Bangers',cursive;font-size:clamp(3.5rem,10vw,6rem);color:var(--yellow);text-shadow:3px 3px 0 var(--fire), 6px 6px 0 var(--danger), 0 0 20px var(--fire);line-height:0.9;letter-spacing:2px;}
.fire-title .sub{font-size:1.5rem;color:#FFF;letter-spacing:6px;text-transform:uppercase;font-weight:700;}
.loading-bar{width:300px;height:8px;background:var(--ash);border-radius:4px;margin:0 auto 10px;overflow:hidden;border:1px solid var(--rock);}
.load-fill{height:100%;background:linear-gradient(90deg,var(--fire),var(--yellow));width:0%;transition:width 0.3s;}
#splashText{font-size:0.9rem;color:var(--orange);text-transform:uppercase;letter-spacing:2px;}

/* ── MAIN MENU ── */
#main-menu{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:var(--dark);}
#menuCanvas{position:absolute;inset:0;width:100%;height:100%;z-index:1;}
.menu-ui{position:relative;z-index:2;background:rgba(26,15,10,0.85);backdrop-filter:blur(5px);border:2px solid var(--fire);border-radius:20px;padding:30px;width:90%;max-width:450px;text-align:center;box-shadow:0 0 50px rgba(255,69,0,0.4);}
.menu-logo{margin-bottom:20px;}
.menu-logo .volcano-icon{font-size:3rem;margin-bottom:5px;}
.menu-logo h1{font-family:'Bangers',cursive;font-size:3.5rem;color:var(--yellow);text-shadow:2px 2px 0 var(--fire);line-height:1;}
.menu-logo .sub{color:#FFF;font-weight:700;letter-spacing:4px;}

.player-info{display:flex;justify-content:space-around;background:var(--rock);border-radius:12px;padding:12px;margin-bottom:20px;border:1px solid var(--ash);}
.pi-box{text-transform:uppercase;font-size:0.7rem;color:#FFF;}
.pi-box span{font-size:1.4rem;font-weight:700;color:var(--yellow);display:block;}

.character-display{background:linear-gradient(to bottom,var(--rock),rgba(255,69,0,0.2));border-radius:12px;padding:15px;margin-bottom:20px;border:1px solid var(--fire);}
.char-name{font-family:'Bangers',cursive;font-size:1.8rem;color:#FFF;letter-spacing:2px;margin-top:5px;}
.char-abilities{font-size:0.8rem;color:var(--orange);}

.menu-btns{display:flex;flex-direction:column;gap:12px;margin-bottom:20px;}
.fire-btn{background:linear-gradient(to bottom,var(--yellow),var(--fire));border:none;border-radius:8px;font-family:'Bangers',cursive;font-size:1.8rem;color:#FFF;padding:10px;cursor:pointer;text-shadow:1px 1px 0 var(--danger);box-shadow:0 4px 0 var(--danger);transition:0.1s;}
.fire-btn:active{transform:translateY(4px);box-shadow:0 0 0 var(--danger);}
.menu-btn2{background:var(--rock);border:2px solid var(--ash);border-radius:8px;font-family:'Oswald',sans-serif;font-size:1.1rem;font-weight:700;color:#FFF;padding:12px;cursor:pointer;transition:0.2s;}
.menu-btn2:hover{background:var(--ash);border-color:var(--orange);}

.footer-btns{display:flex;justify-content:center;gap:15px;}
.footer-btns button{background:var(--rock);border:1px solid var(--ash);border-radius:50%;width:45px;height:45px;font-size:1.2rem;cursor:pointer;transition:0.2s;}
.footer-btns button:hover{background:var(--ash);}

/* ── GAME HUD ── */
#game-screen{position:fixed;inset:0;display:flex;flex-direction:column;}
.hud{position:absolute;top:0;left:0;width:100%;padding:10px 15px;display:flex;justify-content:space-between;align-items:flex-start;z-index:10;pointer-events:none;}
.hud > *{pointer-events:auto;}
.hud-left{display:flex;flex-direction:column;gap:10px;}
.hud-pause{background:rgba(0,0,0,0.5);border:2px solid var(--ash);color:#FFF;border-radius:8px;width:40px;height:40px;font-size:1.2rem;cursor:pointer;}
.hp-bar{background:rgba(0,0,0,0.6);padding:5px 10px;border-radius:8px;display:flex;align-items:center;gap:8px;border:1px solid var(--fire);}
.hp-bar label{font-weight:700;color:var(--fire);}
.hp-track{width:100px;height:12px;background:var(--dark);border-radius:6px;overflow:hidden;}
.hp-fill{height:100%;background:linear-gradient(90deg,#FF0000,#FF4500);transition:width 0.2s;}
.hud-center{text-align:center;}
.lava-warn{font-family:'Bangers',cursive;font-size:2.5rem;color:var(--yellow);text-shadow:0 0 15px var(--danger);animation:flash 0.5s infinite alternate;display:none;}
@keyframes flash{from{opacity:1;}to{opacity:0.3;}}
.hud-score{background:rgba(0,0,0,0.6);padding:5px 15px;border-radius:20px;font-size:1.2rem;font-weight:700;color:#FFF;border:1px solid var(--ash);margin-top:5px;}
.hud-score span{color:var(--yellow);}
.hud-right{display:flex;flex-direction:column;align-items:flex-end;gap:5px;}
.h-res{background:rgba(0,0,0,0.6);padding:4px 10px;border-radius:12px;font-weight:700;font-size:1rem;color:#FFF;}
.h-res span{color:var(--yellow);}
.level-badge{background:var(--fire);color:#FFF;font-weight:700;padding:4px 10px;border-radius:12px;margin-top:5px;box-shadow:0 2px 0 var(--danger);}

#gameCanvas{flex:1;width:100%;height:100%;touch-action:none;background:#000;}

/* ── CONTROLS ── */
.mobile-controls{position:absolute;bottom:20px;left:0;width:100%;padding:0 20px;display:flex;justify-content:space-between;z-index:10;}
.ctrl-left, .ctrl-right{display:flex;gap:15px;}
.ctrl-btn{width:65px;height:65px;border-radius:50%;background:rgba(44,34,31,0.7);border:2px solid var(--ash);color:#FFF;font-size:1.8rem;display:flex;align-items:center;justify-content:center;user-select:none;backdrop-filter:blur(5px);}
.ctrl-btn:active{background:rgba(255,69,0,0.5);border-color:var(--fire);transform:scale(0.9);}
.jump-btn{background:rgba(255,215,0,0.3);border-color:var(--yellow);}
.attack-btn{background:rgba(255,0,0,0.3);border-color:var(--danger);}

.ability-bar{position:absolute;bottom:100px;left:50%;transform:translateX(-50%);display:flex;gap:10px;background:rgba(0,0,0,0.5);padding:8px;border-radius:12px;}
.ability-slot{font-size:0.8rem;color:#FFF;background:var(--rock);padding:5px 10px;border-radius:6px;opacity:0.5;}
.ability-slot.active{opacity:1;border:1px solid var(--fire);color:var(--yellow);}

.checkpoint-banner{position:absolute;top:30%;left:50%;transform:translateX(-50%);font-family:'Bangers',cursive;font-size:3rem;color:var(--green);text-shadow:0 0 20px rgba(0,255,0,0.5);animation:slideUpFade 2s forwards;pointer-events:none;}
@keyframes slideUpFade{0%{transform:translate(-50%,20px);opacity:0;}20%{transform:translate(-50%,0);opacity:1;}80%{transform:translate(-50%,0);opacity:1;}100%{transform:translate(-50%,-20px);opacity:0;}}

/* ── OVERLAYS ── */
.overlay{position:fixed;inset:0;background:rgba(0,0,0,0.85);backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;z-index:100;}
.overlay-box{background:var(--rock);border:2px solid var(--fire);border-radius:16px;padding:30px;width:90%;max-width:400px;text-align:center;box-shadow:0 0 30px rgba(255,69,0,0.5);}
.overlay-box h2{font-family:'Bangers',cursive;font-size:2.8rem;color:var(--yellow);margin-bottom:15px;}
.overlay-box .fire-btn, .overlay-box .menu-btn2{width:100%;margin-top:10px;}

.win-box h2{color:#00FF00;}
.death-box h2{color:var(--danger);}
.win-info, .death-info{font-size:1.2rem;margin:15px 0;}
.win-info strong{color:var(--yellow);}

.char-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;max-height:60vh;overflow-y:auto;margin-bottom:20px;}
.char-item{background:var(--dark);border:1px solid var(--ash);border-radius:12px;padding:10px;cursor:pointer;}
.char-item:hover{border-color:var(--fire);}

/* ── BOSS BAR ── */
.boss-hp-bar{position:absolute;top:80px;left:50%;transform:translateX(-50%);width:80%;max-width:500px;text-align:center;}
.boss-hp-bar label{font-family:'Bangers',cursive;font-size:1.5rem;color:var(--danger);text-shadow:2px 2px 0 #000;}
.boss-track{height:15px;background:#000;border:2px solid var(--ash);border-radius:8px;}
.boss-fill{height:100%;background:linear-gradient(90deg,#8B0000,#FF0000);width:100%;transition:width 0.2s;}

/* ── TOAST ── */
.toast{position:fixed;top:100px;left:50%;transform:translateX(-50%) translateY(-20px);background:rgba(26,15,10,0.9);border:1px solid var(--orange);border-radius:8px;padding:10px 20px;color:var(--yellow);font-weight:700;font-size:1.1rem;opacity:0;pointer-events:none;transition:0.3s;z-index:200;}
.toast.show{transform:translateX(-50%) translateY(0);opacity:1;}

@media(max-width:480px){
  .menu-logo h1{font-size:3rem;}
  .fire-btn{font-size:1.5rem;}
  .ctrl-btn{width:55px;height:55px;font-size:1.5rem;}
}