@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;700;900&family=Crimson+Text:ital,wght@0,400;0,600;1,400&display=swap');
:root{
    --gold:#FFD700;--gold-dark:#B8860B;--gold-light:#FFF3B0;
    --blood:#8B0000;
    --bg-dark:#0a0a12;--bg-mid:#14141e;--bg-card:#1a1a2e;--bg-panel:#16213e;
    --text-main:#e0d8c8;--text-dim:#8a8272;--text-bright:#fff;
    --hp-green:#2ecc40;--hp-red:#e74c3c;--mana-blue:#3498db;--block-gray:#95a5a6;
    --poison:#9b59b6;
    --glow-gold:0 0 15px rgba(255,215,0,0.4);
    --font-heading:'Cinzel',serif;--font-body:'Crimson Text',serif;
    --transition-fast:0.15s ease;--transition-med:0.3s ease;--transition-slow:0.5s ease;
    --base-font:clamp(12px, 3vw, 16px);
    --heading-font:clamp(18px, 5vw, 32px);
    --btn-height:max(48px, 8vh);
    --card-width:max(80px, 20vw)
}
*{margin:0;padding:0;box-sizing:border-box}
html,body{width:100%;height:100%;overflow-x:hidden;background:#000;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
body{font-family:var(--font-body);color:var(--text-main);user-select:none;-webkit-user-select:none}
#game-container{position:relative;width:100vw;height:100vh;overflow:hidden;background:var(--bg-dark);background-image:radial-gradient(ellipse at 50% 0%,rgba(30,20,60,0.6) 0%,transparent 60%),radial-gradient(ellipse at 50% 100%,rgba(40,10,10,0.4) 0%,transparent 50%)}
#particles-layer{position:absolute;inset:0;pointer-events:none;z-index:1000;overflow:hidden}

/* Scene transitions */
.scene{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity var(--transition-slow);z-index:1;transform:scale(0.98);filter:blur(2px);overflow-x:hidden}
.scene.active{opacity:1;pointer-events:all;z-index:10;transform:scale(1);filter:blur(0)}
.overlay{position:absolute;inset:0;background:rgba(0,0,0,0.85);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity var(--transition-med);z-index:100;backdrop-filter:blur(4px)}
.overlay.active{opacity:1;pointer-events:all}
.overlay-panel{background:var(--bg-mid);border:2px solid var(--gold-dark);border-radius:12px;padding:30px;max-width:700px;width:90%;max-height:80vh;overflow-y:auto;box-shadow:0 0 40px rgba(0,0,0,0.8),inset 0 1px 0 rgba(255,215,0,0.1);animation:scaleIn 0.3s ease-out}

.scene-heading{font-family:var(--font-heading);font-size:clamp(1.5rem,4vw,2.5rem);color:var(--text-main);text-transform:uppercase;letter-spacing:3px;text-shadow:0 2px 10px rgba(0,0,0,0.8);margin-bottom:20px}
.gold-text{color:var(--gold);text-shadow:0 0 20px rgba(255,215,0,0.4)}

/* Buttons with hover animations */
.btn-menu{display:block;width:280px;padding:14px 24px;margin:8px auto;font-family:var(--font-heading);font-size:1.1rem;font-weight:700;color:var(--text-main);background:linear-gradient(180deg,#2a2a3e 0%,#1a1a2e 100%);border:2px solid #444;border-radius:8px;cursor:pointer;text-transform:uppercase;letter-spacing:2px;transition:all var(--transition-fast);text-shadow:0 1px 3px rgba(0,0,0,0.8);position:relative;overflow:hidden}
.btn-menu::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,215,0,0.08) 0%,transparent 60%);opacity:0;transition:opacity var(--transition-fast)}
.btn-menu:hover{border-color:var(--gold);color:var(--gold);box-shadow:var(--glow-gold);transform:translateY(-2px)}
.btn-menu:hover::before{opacity:1}
.btn-menu:active{transform:translateY(1px);box-shadow:none}
.btn-menu.btn-gold{background:linear-gradient(180deg,#3a2a00 0%,#2a1a00 100%);border-color:var(--gold-dark);color:var(--gold)}
.btn-menu.btn-gold:hover{background:linear-gradient(180deg,#4a3a10 0%,#3a2a00 100%);border-color:var(--gold);box-shadow:0 0 25px rgba(255,215,0,0.5)}
.btn-menu.btn-small{font-size:0.85rem;width:200px;padding:10px 16px}
.btn-menu:disabled{opacity:0.4;pointer-events:none}
.btn-action{padding:10px 20px;font-family:var(--font-heading);font-size:0.9rem;font-weight:700;color:var(--text-main);background:linear-gradient(180deg,#333 0%,#222 100%);border:1px solid #555;border-radius:6px;cursor:pointer;text-transform:uppercase;transition:all var(--transition-fast);position:relative;overflow:hidden}
.btn-action::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,0.06) 0%,transparent 60%);opacity:0;transition:opacity var(--transition-fast)}
.btn-action:hover{border-color:var(--gold);color:var(--gold);box-shadow:var(--glow-gold);transform:translateY(-1px)}
.btn-action:hover::before{opacity:1}
.btn-action:active{transform:translateY(1px)}
.btn-action.btn-end-turn{background:linear-gradient(180deg,#5a1a1a 0%,#3a0a0a 100%);border-color:#882222;color:#ff8888}
.btn-action.btn-end-turn:hover{border-color:#ff4444;color:#ffaaaa;box-shadow:0 0 15px rgba(255,60,60,0.3)}

/* Boot scene */
#scene-boot{background:var(--bg-dark)}
.boot-logo{text-align:center}
.boot-dice-row{display:flex;gap:12px;justify-content:center;margin-bottom:20px}
.boot-die{width:48px;height:48px;image-rendering:pixelated}
.boot-title{font-family:var(--font-heading);font-size:clamp(2rem,6vw,3.5rem);color:var(--gold);text-shadow:0 0 30px rgba(255,215,0,0.5),0 4px 15px rgba(0,0,0,0.8);letter-spacing:5px}
.boot-subtitle{font-family:var(--font-heading);font-size:clamp(0.7rem,2vw,1rem);color:var(--text-dim);letter-spacing:6px;margin-top:6px}
.boot-loading{margin-top:40px}
.boot-loading-bar{width:260px;height:6px;background:#222;border-radius:3px;overflow:hidden;margin:0 auto;border:1px solid #333}
.boot-loading-fill{height:100%;width:0%;background:linear-gradient(90deg,var(--gold-dark),var(--gold));border-radius:3px;transition:width 0.2s ease}
.boot-loading-text{font-size:0.8rem;color:var(--text-dim);margin-top:10px;letter-spacing:1px}

/* Menu scene */
#scene-menu{overflow:hidden}
.menu-bg-particles{position:absolute;inset:0;pointer-events:none}
.menu-content{position:relative;text-align:center;z-index:2}
.menu-title{font-family:var(--font-heading);font-size:clamp(2.5rem,8vw,5rem);font-weight:900;color:var(--gold);line-height:1;text-shadow:0 0 40px rgba(255,215,0,0.4),0 4px 20px rgba(0,0,0,0.8);letter-spacing:4px}
.menu-tagline{font-size:clamp(0.8rem,2vw,1.1rem);color:var(--text-dim);margin-top:10px;letter-spacing:2px}
.menu-buttons{margin-top:40px}
.menu-footer{margin-top:30px}
.menu-stats{font-size:0.8rem;color:var(--text-dim)}

/* Class select */
#scene-class-select{padding:20px;overflow-y:auto;-webkit-overflow-scrolling:touch}
.class-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;max-width:750px;width:100%;padding:10px}
.class-card{background:var(--bg-card);border:2px solid #333;border-radius:10px;padding:18px 14px;text-align:center;cursor:pointer;transition:all var(--transition-med);position:relative;overflow:hidden}
.class-card::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 0%,rgba(255,215,0,0.06) 0%,transparent 70%);opacity:0;transition:opacity var(--transition-med)}
.class-card:hover{border-color:var(--gold);transform:translateY(-4px);box-shadow:var(--glow-gold)}
.class-card:hover::before{opacity:1}
.class-card-icon{font-size:2.5rem;margin-bottom:8px}
.class-card-name{font-family:var(--font-heading);font-size:1rem;font-weight:700;color:var(--gold);letter-spacing:1px}
.class-card-desc{font-size:0.85rem;color:var(--text-dim);margin-top:6px;line-height:1.3}
.class-card-stats{font-size:0.75rem;color:var(--text-dim);margin-top:8px;display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.class-card-stats span{background:#111;padding:2px 8px;border-radius:4px}

/* Tooltip */
.tooltip{position:fixed;background:#111;border:1px solid var(--gold-dark);border-radius:6px;padding:10px 14px;font-size:0.85rem;color:var(--text-main);max-width:260px;z-index:9999;box-shadow:0 4px 20px rgba(0,0,0,0.8);pointer-events:none;transition:opacity 0.15s ease}
.tooltip.hidden{opacity:0}
.tooltip-title{font-family:var(--font-heading);font-weight:700;color:var(--gold);margin-bottom:4px}

/* Game over / victory */
#scene-gameover{background:rgba(10,0,0,0.95)}
#scene-gameover .scene-heading{color:var(--hp-red);font-size:clamp(2rem,6vw,3rem)}
#scene-gameover.victory .scene-heading{color:var(--gold)}
.gameover-stats{background:var(--bg-card);border:1px solid #333;border-radius:10px;padding:20px 30px;margin-bottom:24px;text-align:left;min-width:260px}
.gameover-stat{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid #222;font-size:0.95rem}
.gameover-stat:last-child{border-bottom:none}
.gameover-stat .label{color:var(--text-dim)}
.gameover-stat .value{color:var(--gold);font-weight:700}

/* How to play */
.howto-panel{max-width:550px}
.howto-content{text-align:left;margin-bottom:20px}
.howto-section{margin-bottom:16px}
.howto-section h3{font-family:var(--font-heading);font-size:1rem;color:var(--gold);margin-bottom:4px;letter-spacing:1px}
.howto-section p{font-size:0.9rem;line-height:1.5;color:var(--text-dim)}

/* Deck viewer */
.deck-viewer-cards{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:20px;max-height:55vh;overflow-y:auto;padding:10px}
.relic-viewer{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-bottom:20px}
.relic-item{background:#111;border:1px solid #444;border-radius:8px;padding:10px;width:80px;text-align:center;transition:all var(--transition-fast)}
.relic-item:hover{border-color:var(--gold);box-shadow:var(--glow-gold)}
.relic-item img{width:48px;height:48px;image-rendering:pixelated}
.relic-item-name{font-size:0.7rem;color:var(--gold);margin-top:4px}

/* Scrollbar */
::-webkit-scrollbar{width:6px}
::-webkit-scrollbar-track{background:#111}
::-webkit-scrollbar-thumb{background:#444;border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:var(--gold-dark)}

@media(max-width:640px){
    .class-grid{grid-template-columns:repeat(2,1fr);gap:10px}
    .btn-menu{width:min(280px,90vw);font-size:clamp(0.85rem,2.5vw,1.1rem);padding:12px 18px}
    .btn-menu.btn-small{width:auto;min-width:0;max-width:42vw;padding:8px 10px;font-size:clamp(0.7rem,2.5vw,0.85rem)}
    .overlay-panel{padding:16px;width:95%}
    .scene-heading{font-size:clamp(1.2rem,4vw,2rem)}
    .battle-top{flex-direction:column;gap:8px;padding:6px 10px;min-height:auto}
    .battle-player-hud{min-width:auto;width:100%}
    .battle-enemy-area{flex-wrap:wrap;gap:10px}
    .battle-middle{flex-direction:column;gap:8px;padding:6px 10px}
    .battle-dice-tray{padding:8px 12px;gap:6px}
    .die-slot{width:44px;height:44px}
    .battle-hand{flex-wrap:wrap;gap:4px;justify-content:center}
    .battle-bottom{padding:6px 10px 8px}
    .battle-actions{gap:6px}
    .menu-title{font-size:clamp(2rem,6vw,3.5rem)}
    .boot-title{font-size:clamp(1.5rem,5vw,2.5rem)}
    .deck-viewer-cards{max-height:50vh}
    .relic-item{width:65px;padding:8px}
    .relic-item img{width:40px;height:40px}
    .howto-section p{font-size:clamp(0.8rem,2.5vw,0.9rem)}
    .gameover-stats{padding:14px 20px;min-width:auto;width:90%}
}
