*{margin:0;padding:0;box-sizing:border-box}:root{--bg-dark: #1a1a2e;--bg-darker: #0f0f1a;--primary: #e94560;--secondary: #533483;--gold: #ffd700;--text: #eaeaea;--text-dark: #888;--hp-green: #4ade80;--hp-red: #ef4444;--xp-blue: #60a5fa;--tile-size: 48px}@font-face{font-family:PixelFont;src:local("Press Start 2P"),local("VT323"),local("Courier New")}body{font-family:PixelFont,Courier New,monospace;background:var(--bg-darker);color:var(--text);overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none;image-rendering:pixelated}#game-container{width:100vw;height:100vh;height:100dvh;position:relative;overflow:hidden}.screen{display:none;width:100%;height:100%;flex-direction:column;align-items:center;justify-content:center;position:absolute;top:0;left:0;background:var(--bg-dark)}.screen.active{display:flex}.game-title{font-size:clamp(1.5rem,6vw,3rem);text-align:center;color:var(--gold);text-shadow:3px 3px 0 var(--primary),-1px -1px 0 var(--secondary);margin-bottom:50px;line-height:1.4;animation:titlePulse 2s infinite}@keyframes titlePulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.menu-buttons{display:flex;flex-direction:column;gap:15px}.version{position:absolute;bottom:20px;color:var(--text-dark);font-size:.8rem}.btn{padding:15px 40px;font-family:inherit;font-size:1rem;background:var(--secondary);color:var(--text);border:3px solid var(--text);cursor:pointer;transition:all .1s;text-transform:uppercase;min-width:200px}.btn:hover:not(:disabled){background:var(--primary);transform:scale(1.05)}.btn:active:not(:disabled){transform:scale(.95)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);border-color:var(--gold);color:#fff}.btn-icon{width:40px;height:40px;padding:0;font-size:1.5rem;background:transparent;border:2px solid var(--text);color:var(--text);cursor:pointer}#hud{position:absolute;top:0;left:0;right:0;height:60px;background:linear-gradient(to bottom,rgba(0,0,0,.8),transparent);display:flex;align-items:flex-start;justify-content:space-between;padding:10px 15px;z-index:10}.hud-left{display:flex;flex-direction:column;gap:5px}.hp-bar,.xp-bar{width:120px;height:16px;background:#333;border:2px solid #555;position:relative}.hp-fill{height:100%;background:linear-gradient(to bottom,var(--hp-green),#22c55e);width:100%;transition:width .3s}.hp-bar.low .hp-fill{background:linear-gradient(to bottom,var(--hp-red),#dc2626)}.xp-fill{height:100%;background:linear-gradient(to bottom,var(--xp-blue),#3b82f6);width:0%;transition:width .3s}.hp-text,.xp-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:.6rem;text-shadow:1px 1px 0 black}.hud-center{font-size:1rem;color:var(--gold)}.hud-right{display:flex;align-items:center;gap:10px}.gold{color:var(--gold);font-size:1rem}#game-canvas{position:absolute;top:0;left:0;width:100%;height:100%;image-rendering:pixelated;image-rendering:crisp-edges}#mobile-controls{position:absolute;bottom:0;left:0;right:0;height:150px;display:flex;justify-content:space-between;align-items:center;padding:10px 20px;pointer-events:none}.dpad{width:130px;height:130px;position:relative;pointer-events:auto}.dpad-btn{position:absolute;width:45px;height:45px;background:#fff3;border:2px solid rgba(255,255,255,.4);color:#fff;font-size:1.2rem;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:8px}.dpad-btn:active{background:#fff6}.dpad-btn.up{top:0;left:50%;transform:translate(-50%)}.dpad-btn.down{bottom:0;left:50%;transform:translate(-50%)}.dpad-btn.left{left:0;top:50%;transform:translateY(-50%)}.dpad-btn.right{right:0;top:50%;transform:translateY(-50%)}.action-buttons{display:flex;flex-direction:column;gap:10px;pointer-events:auto}.btn-action{padding:15px 25px;font-family:inherit;font-size:.9rem;background:var(--primary);color:#fff;border:3px solid var(--gold);cursor:pointer;border-radius:8px}.btn-action:active{transform:scale(.95)}#combat-screen{background:linear-gradient(to bottom,#2d1b4e,#1a0a2e);position:relative}#turn-indicator{position:absolute;top:10px;left:50%;transform:translate(-50%);background:linear-gradient(135deg,var(--gold) 0%,#f97316 100%);padding:8px 24px;border-radius:20px;z-index:20;animation:turnPulse 1s infinite}#turn-indicator.enemy-turn{background:linear-gradient(135deg,var(--hp-red) 0%,#dc2626 100%)}#turn-text{font-size:.8rem;font-weight:700;color:#000;text-shadow:none}@keyframes turnPulse{0%,to{transform:translate(-50%) scale(1)}50%{transform:translate(-50%) scale(1.05)}}#combo-display{position:absolute;top:50px;right:20px;text-align:right;z-index:20}#combo-display.hidden{display:none}#combo-display.active{animation:comboPopIn .3s ease-out}#combo-count{font-size:2.5rem;color:var(--gold);text-shadow:2px 2px 0 #f97316,4px 4px 0 rgba(0,0,0,.5);display:block}#combo-label{font-size:.8rem;color:var(--primary);text-transform:uppercase}@keyframes comboPopIn{0%{transform:scale(.5);opacity:0}50%{transform:scale(1.3)}to{transform:scale(1);opacity:1}}#combat-arena{flex:1;width:100%;display:flex;flex-direction:column;justify-content:space-around;align-items:center;padding:60px 20px 20px;position:relative}#battle-effects{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:15}#enemy-area{text-align:center;position:relative}#enemy-status-effects,#player-status-effects{display:flex;gap:4px;justify-content:center;margin-bottom:5px;min-height:24px}.status-effect{width:24px;height:24px;background:#0009;border:2px solid;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:.8rem;position:relative}.status-effect.buff{border-color:var(--hp-green)}.status-effect.debuff{border-color:var(--hp-red)}.status-effect .duration{position:absolute;bottom:-2px;right:-2px;font-size:.5rem;background:#000;padding:1px 3px;border-radius:2px}.enemy-info{display:flex;justify-content:center;align-items:center;gap:10px;margin:5px 0}.enemy-level,.player-level{font-size:.7rem;color:var(--text-dark);background:#0006;padding:2px 6px;border-radius:4px}#enemy-intent{margin-top:10px;padding:5px 15px;background:#ef44444d;border:2px solid var(--hp-red);border-radius:8px;display:inline-flex;align-items:center;gap:5px;animation:intentPulse 1.5s infinite}#enemy-intent.hidden{display:none}#intent-icon{font-size:1rem}#intent-text{font-size:.7rem;color:var(--hp-red)}@keyframes intentPulse{0%,to{opacity:1}50%{opacity:.6}}#player-area{text-align:center}.player-combat-info{display:flex;justify-content:center;align-items:center;gap:10px;margin:5px 0}.player-name{font-size:.9rem;color:var(--xp-blue)}.player-combat-hp-bar{width:150px;height:16px;background:#333;border:2px solid #555;margin:0 auto;position:relative}.player-combat-hp-fill{height:100%;background:linear-gradient(to bottom,var(--hp-green),#22c55e);width:100%;transition:width .3s}.player-combat-hp-bar.low .player-combat-hp-fill{background:linear-gradient(to bottom,var(--hp-red),#dc2626)}.player-combat-hp-text,.enemy-hp-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:.55rem;text-shadow:1px 1px 0 black}.enemy-sprite,.player-sprite{width:96px;height:96px;background:transparent;margin:0 auto;image-rendering:pixelated;display:flex;align-items:center;justify-content:center;transition:transform .1s}.enemy-sprite canvas,.player-sprite canvas{image-rendering:pixelated;image-rendering:crisp-edges}.enemy-sprite.shake{animation:enemyShake .3s ease-in-out}@keyframes enemyShake{0%,to{transform:translate(0) rotate(0)}20%{transform:translate(-10px) rotate(-5deg)}40%{transform:translate(10px) rotate(5deg)}60%{transform:translate(-5px) rotate(-2deg)}80%{transform:translate(5px) rotate(2deg)}}.player-sprite.attack{animation:playerAttack .3s ease-out}@keyframes playerAttack{0%{transform:translate(0)}50%{transform:translate(30px)}to{transform:translate(0)}}.enemy-sprite.hurt{animation:hurt .2s ease-out}@keyframes hurt{0%,to{filter:brightness(1)}50%{filter:brightness(2) saturate(0)}}.enemy-hp-bar{width:150px;height:12px;background:#333;border:2px solid #555;margin:10px auto}.enemy-hp-fill{height:100%;background:var(--hp-red);width:100%;transition:width .3s}.enemy-name{font-size:1rem;color:var(--primary)}#combat-log{width:100%;height:80px;background:#00000080;padding:10px;overflow-y:auto;font-size:.8rem;color:var(--text-dark)}#combat-log .log-entry{margin-bottom:5px}#combat-log .damage{color:var(--hp-red)}#combat-log .heal{color:var(--hp-green)}#combat-log .crit{color:var(--gold)}#combat-actions{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;padding:10px;width:100%;max-width:500px}.combat-btn{padding:12px 8px;font-family:inherit;background:linear-gradient(to bottom,var(--secondary) 0%,#3d2463 100%);color:var(--text);border:2px solid var(--text);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px;transition:all .15s;border-radius:8px}.combat-btn .btn-icon{font-size:1.2rem}.combat-btn .btn-label{font-size:.6rem;text-transform:uppercase}.combat-btn:hover:not(:disabled){background:linear-gradient(to bottom,var(--primary) 0%,#b91c3c 100%);transform:translateY(-2px);box-shadow:0 4px 8px #0000004d}.combat-btn:active:not(:disabled){transform:translateY(0);box-shadow:none}.combat-btn:disabled{opacity:.4;filter:grayscale(.5)}.combat-btn.flee-btn{background:linear-gradient(to bottom,#4a4a5e,#2a2a3e);border-color:#666}.combat-btn.flee-btn:hover:not(:disabled){background:linear-gradient(to bottom,#5a5a6e,#3a3a4e)}.combat-btn.ready{animation:btnReady 1s infinite}@keyframes btnReady{0%,to{box-shadow:0 0 5px var(--gold)}50%{box-shadow:0 0 15px var(--gold),0 0 25px var(--primary)}}.battle-effect{position:absolute;width:80px;height:80px;pointer-events:none;z-index:100}.battle-effect.slash{background:linear-gradient(45deg,transparent 40%,#fff 50%,transparent 60%);animation:slashAnim .3s ease-out forwards}@keyframes slashAnim{0%{transform:translate(-50%,-50%) scale(.5) rotate(-45deg);opacity:1}to{transform:translate(-50%,-50%) scale(1.5) rotate(45deg);opacity:0}}.battle-effect.hit{background:radial-gradient(circle,#fff 0%,#ff0 30%,transparent 70%);border-radius:50%;animation:hitAnim .3s ease-out forwards}@keyframes hitAnim{0%{transform:translate(-50%,-50%) scale(.3);opacity:1}to{transform:translate(-50%,-50%) scale(2);opacity:0}}.battle-effect.shield{background:radial-gradient(circle,rgba(74,222,128,.5) 0%,transparent 70%);border:3px solid var(--hp-green);border-radius:50%;animation:shieldAnim .5s ease-out forwards}@keyframes shieldAnim{0%{transform:translate(-50%,-50%) scale(.5);opacity:1}50%{transform:translate(-50%,-50%) scale(1.2);opacity:1}to{transform:translate(-50%,-50%) scale(1);opacity:0}}.battle-effect.heal{background:radial-gradient(circle,rgba(74,222,128,.8) 0%,transparent 60%);border-radius:50%;animation:healAnim .6s ease-out forwards}@keyframes healAnim{0%{transform:translate(-50%,-50%) scale(.5);opacity:0}50%{transform:translate(-50%,-50%) scale(1);opacity:1}to{transform:translate(-50%,-50%) translateY(-30px) scale(1.5);opacity:0}}.battle-effect.fire{background:radial-gradient(circle,#ff0 0%,#f90 30%,#f00 60%,transparent 80%);border-radius:50%;animation:fireAnim .5s ease-out forwards}@keyframes fireAnim{0%{transform:translate(-50%,-50%) scale(.3);opacity:1}50%{transform:translate(-50%,-50%) scale(1.5);opacity:1}to{transform:translate(-50%,-50%) scale(2);opacity:0}}.battle-effect.poison{background:radial-gradient(circle,#9333ea 0%,#6b21a8 40%,transparent 70%);border-radius:50%;animation:poisonAnim .5s ease-out forwards}@keyframes poisonAnim{0%{transform:translate(-50%,-50%) scale(.5);opacity:1}to{transform:translate(-50%,-50%) scale(1.5);opacity:0}}.battle-effect.buff{background:radial-gradient(circle,rgba(255,215,0,.8) 0%,transparent 60%);border-radius:50%;animation:buffAnim .6s ease-out forwards}@keyframes buffAnim{0%{transform:translate(-50%,-50%) scale(.5) rotate(0);opacity:1}to{transform:translate(-50%,-50%) scale(2) rotate(180deg);opacity:0}}.battle-effect.summon{background:radial-gradient(circle,rgba(139,69,255,.8) 0%,#4c1d95 40%,transparent 70%);border-radius:50%;animation:summonAnim .6s ease-out forwards}@keyframes summonAnim{0%{transform:translate(-50%,-50%) scale(2);opacity:0}50%{transform:translate(-50%,-50%) scale(1);opacity:1}to{transform:translate(-50%,-50%) scale(.5);opacity:0}}#shop-screen{padding:20px;gap:20px}.shop-gold{font-size:1.2rem;color:var(--gold)}#shop-items{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;width:100%;max-width:600px;max-height:50vh;overflow-y:auto}.shop-item{background:var(--bg-darker);border:2px solid var(--secondary);padding:15px;text-align:center;cursor:pointer}.shop-item:hover{border-color:var(--gold)}.shop-item.sold{opacity:.5;pointer-events:none}.shop-item-name{font-size:.9rem;margin-bottom:5px}.shop-item-price{color:var(--gold);font-size:.8rem}.shop-item-desc{font-size:.7rem;color:var(--text-dark);margin-top:5px}#inventory-screen{padding:20px;gap:20px}#player-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;font-size:.9rem}.stat-row{display:flex;justify-content:space-between;padding:5px 10px;background:var(--bg-darker)}#inventory-items{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;width:100%;max-width:400px}.inv-item{width:60px;height:60px;background:var(--bg-darker);border:2px solid var(--secondary);display:flex;align-items:center;justify-content:center;font-size:1.5rem;cursor:pointer}.inv-item.empty{opacity:.3}.panel{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--bg-dark);border:3px solid var(--gold);padding:30px;min-width:280px;text-align:center;z-index:100}.panel.hidden{display:none}.panel h3{color:var(--gold);margin-bottom:20px}.setting-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.toggle-btn{padding:8px 20px;font-family:inherit;background:var(--hp-green);border:none;color:#000;cursor:pointer}.toggle-btn.off{background:var(--hp-red)}#skill-list,#item-list{display:flex;flex-direction:column;gap:10px;margin-bottom:20px;max-height:200px;overflow-y:auto}.skill-btn,.item-btn{padding:10px;font-family:inherit;background:var(--secondary);border:2px solid var(--text);color:var(--text);cursor:pointer;text-align:left}.skill-btn:disabled{opacity:.5}.skill-btn .cooldown{color:var(--hp-red);font-size:.8rem}.levelup-choices{display:flex;flex-direction:column;gap:10px}.gameover-title{color:var(--hp-red);font-size:2rem;margin-bottom:30px}.victory-title{color:var(--gold);font-size:2rem;margin-bottom:30px;animation:victoryGlow 1s infinite}@keyframes victoryGlow{0%,to{text-shadow:0 0 20px var(--gold)}50%{text-shadow:0 0 40px var(--gold),0 0 60px var(--primary)}}#gameover-stats,#victory-stats{margin-bottom:30px;font-size:1rem;line-height:2}#damage-numbers{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1000}.damage-number{position:absolute;font-size:1.2rem;font-weight:700;animation:floatUp 1s ease-out forwards;text-shadow:2px 2px 0 black}.damage-number.damage{color:var(--hp-red)}.damage-number.heal{color:var(--hp-green)}.damage-number.crit{color:var(--gold);font-size:1.5rem}.damage-number.miss{color:var(--text-dark)}@keyframes floatUp{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-50px) scale(.5)}}.shake{animation:shake .3s ease-in-out}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-5px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}.shake-heavy{animation:shakeHeavy .4s ease-in-out}@keyframes shakeHeavy{0%,to{transform:translate(0)}10%{transform:translate(-10px,-5px)}20%{transform:translate(10px,5px)}30%{transform:translate(-8px,3px)}40%{transform:translate(8px,-3px)}50%{transform:translate(-5px,2px)}60%{transform:translate(5px,-2px)}70%{transform:translate(-3px,1px)}80%{transform:translate(3px,-1px)}}#screen-flash{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:999;opacity:0}#screen-flash.crit-flash{background:radial-gradient(circle,rgba(255,215,0,.6) 0%,transparent 70%);animation:critFlash .3s ease-out forwards}#screen-flash.damage-flash{background:radial-gradient(circle,rgba(239,68,68,.4) 0%,transparent 70%);animation:damageFlash .2s ease-out forwards}#screen-flash.heal-flash{background:radial-gradient(circle,rgba(74,222,128,.4) 0%,transparent 70%);animation:healFlash .3s ease-out forwards}#screen-flash.levelup-flash{background:radial-gradient(circle,rgba(255,215,0,.8) 0%,rgba(233,69,96,.4) 50%,transparent 80%);animation:levelupFlash .6s ease-out forwards}@keyframes critFlash{0%{opacity:1}to{opacity:0}}@keyframes damageFlash{0%{opacity:1}to{opacity:0}}@keyframes healFlash{0%{opacity:0}50%{opacity:1}to{opacity:0}}@keyframes levelupFlash{0%{opacity:0;transform:scale(.5)}50%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.5)}}#low-hp-vignette{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:50;background:radial-gradient(circle,transparent 40%,rgba(239,68,68,.3) 100%);opacity:0;transition:opacity .3s}#low-hp-vignette.active{opacity:1;animation:lowHpPulse 1s infinite}@keyframes lowHpPulse{0%,to{opacity:.5}50%{opacity:1}}#particles-container{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:60;overflow:hidden}.particle{position:absolute;pointer-events:none;border-radius:50%}.particle.dust{width:4px;height:4px;background:#c8b4a099;animation:dustFloat .6s ease-out forwards}@keyframes dustFloat{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-20px) scale(.3)}}.particle.sparkle{width:6px;height:6px;background:var(--gold);box-shadow:0 0 6px var(--gold);animation:sparkleFloat .8s ease-out forwards}@keyframes sparkleFloat{0%{opacity:1;transform:translateY(0) scale(1) rotate(0)}to{opacity:0;transform:translateY(-30px) scale(0) rotate(180deg)}}.particle.blood{width:3px;height:3px;background:var(--hp-red);animation:bloodSplatter .4s ease-out forwards}@keyframes bloodSplatter{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.5)}}.particle.xp{width:8px;height:8px;background:var(--xp-blue);box-shadow:0 0 8px var(--xp-blue);animation:xpFloat 1s ease-out forwards}@keyframes xpFloat{0%{opacity:1;transform:translateY(0) scale(1)}50%{opacity:1;transform:translateY(-20px) scale(1.2)}to{opacity:0;transform:translateY(-40px) scale(.5)}}.particle.gold{width:8px;height:8px;background:var(--gold);box-shadow:0 0 8px var(--gold);animation:goldFloat 1s ease-out forwards}@keyframes goldFloat{0%{opacity:1;transform:translateY(0) scale(1)}50%{opacity:1;transform:translateY(-15px) scale(1.3)}to{opacity:0;transform:translateY(-30px) scale(.5)}}.particle.heal{width:6px;height:6px;background:var(--hp-green);box-shadow:0 0 6px var(--hp-green);animation:healFloat .8s ease-out forwards}@keyframes healFloat{0%{opacity:1;transform:translateY(0) scale(.5)}50%{opacity:1;transform:translateY(-20px) scale(1)}to{opacity:0;transform:translateY(-40px) scale(0)}}.particle.death{width:10px;height:10px;background:radial-gradient(circle,#fff 0%,var(--hp-red) 50%,transparent 100%);animation:deathExplode .5s ease-out forwards}@keyframes deathExplode{0%{opacity:1;transform:translate(0) scale(.5)}to{opacity:0;transform:translate(var(--dx),var(--dy)) scale(2)}}.particle.victory{width:8px;height:8px;background:var(--gold);box-shadow:0 0 10px var(--gold);animation:victoryConfetti 2s ease-out forwards}@keyframes victoryConfetti{0%{opacity:1;transform:translateY(0) rotate(0)}to{opacity:0;transform:translateY(100vh) rotate(720deg)}}.enemy-sprite,.player-sprite{position:relative}.enemy-sprite:before,.player-sprite:before{content:"";position:absolute;bottom:-5px;left:50%;transform:translate(-50%);width:60px;height:10px;background:radial-gradient(ellipse,rgba(0,0,0,.4) 0%,transparent 70%);border-radius:50%}.player-sprite.idle-breathing{animation:idleBreathing 2s ease-in-out infinite}.enemy-sprite.idle-breathing{animation:enemyBreathing 2.5s ease-in-out infinite}@keyframes idleBreathing{0%,to{transform:scaleY(1)}50%{transform:scaleY(1.02)}}@keyframes enemyBreathing{0%,to{transform:scaleY(1) translateY(0)}50%{transform:scaleY(1.03) translateY(-2px)}}.sprite-hit-flash{animation:hitFlash .15s ease-out}@keyframes hitFlash{0%,to{filter:brightness(1)}50%{filter:brightness(3) saturate(0)}}.enemy-sprite.dying{animation:enemyDeath .8s ease-out forwards}@keyframes enemyDeath{0%{opacity:1;transform:scale(1) rotate(0);filter:brightness(1)}30%{opacity:1;transform:scale(1.2) rotate(5deg);filter:brightness(2)}to{opacity:0;transform:scale(.5) rotate(-15deg) translateY(20px);filter:brightness(0)}}.sprite-poisoned{animation:poisonedEffect 1s infinite}@keyframes poisonedEffect{0%,to{filter:hue-rotate(0deg)}50%{filter:hue-rotate(60deg) saturate(1.5)}}.sprite-enraged{animation:enragedEffect .5s infinite}@keyframes enragedEffect{0%,to{filter:brightness(1) saturate(1)}50%{filter:brightness(1.3) saturate(1.5) drop-shadow(0 0 8px #ff0000)}}.enemy-sprite.boss-entrance{animation:bossEntrance 1s ease-out}@keyframes bossEntrance{0%{opacity:0;transform:scale(2) translateY(-50px);filter:brightness(3)}50%{opacity:1;transform:scale(1.1) translateY(0);filter:brightness(1.5)}to{opacity:1;transform:scale(1) translateY(0);filter:brightness(1)}}.player-sprite.victory-pose{animation:victoryPose 1s ease-out}@keyframes victoryPose{0%{transform:scale(1)}30%{transform:scale(1.2) translateY(-10px)}50%{transform:scale(1.1) translateY(-5px)}to{transform:scale(1) translateY(0)}}.sprite-cursed{animation:cursedEffect .8s infinite}@keyframes cursedEffect{0%,to{filter:hue-rotate(0deg) brightness(1)}50%{filter:hue-rotate(270deg) brightness(.8) saturate(1.5)}}.sprite-frozen{animation:frozenEffect 1s infinite;filter:hue-rotate(180deg) saturate(.5)}@keyframes frozenEffect{0%,to{opacity:1}50%{opacity:.7}}#minimap{position:fixed;top:70px;right:10px;width:100px;height:75px;background:#000000b3;border:2px solid #444;z-index:100;overflow:hidden;image-rendering:pixelated}#minimap canvas{width:100%;height:100%}.rarity-common{color:#9ca3af}.rarity-uncommon{color:#22c55e}.rarity-rare{color:#3b82f6}.rarity-epic{color:#a855f7}.rarity-legendary{color:#f59e0b}.item-glow-epic{animation:epicGlow 2s infinite}@keyframes epicGlow{0%,to{box-shadow:0 0 5px #a855f7}50%{box-shadow:0 0 15px #a855f7,0 0 25px #a855f7}}.item-glow-legendary{animation:legendaryGlow 1.5s infinite}@keyframes legendaryGlow{0%,to{box-shadow:0 0 10px #f59e0b}50%{box-shadow:0 0 20px #f59e0b,0 0 30px #fbbf24}}.damage-number.combo{color:#f59e0b;text-shadow:0 0 10px #f59e0b,2px 2px 0 black;font-size:2rem!important}.damage-number.lifesteal{color:#a855f7;text-shadow:0 0 8px #a855f7}.damage-number.blocked{color:#6b7280;font-size:1rem!important}.damage-number.energy{color:#a855f7;font-size:.9rem}#combo-display.mega{animation:megaCombo .5s ease-out}@keyframes megaCombo{0%{transform:scale(1)}50%{transform:scale(1.5);filter:brightness(1.5)}to{transform:scale(1)}}.skill-btn .energy-cost{color:#a855f7;font-size:.7rem;margin-left:5px}.skill-btn.no-energy{opacity:.5;border-color:#444}.skill-btn.no-energy:after{content:"(No EP)";color:#ef4444;font-size:.6rem;display:block}.energy-bar{width:120px;height:12px;background:#333;border:2px solid #555;position:relative;margin-top:3px}.energy-fill{height:100%;background:linear-gradient(to bottom,#a855f7,#7c3aed);width:100%;transition:width .3s}.energy-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:.5rem;text-shadow:1px 1px 0 black}.reward-popup{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#000000e6;border:3px solid var(--gold);padding:20px 40px;text-align:center;z-index:200;animation:rewardPopIn .5s ease-out}@keyframes rewardPopIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}70%{transform:translate(-50%,-50%) scale(1.1)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.reward-popup .reward-icon{font-size:2rem;display:block;margin-bottom:10px}.reward-popup .reward-text{font-size:1.2rem;color:var(--gold)}.reward-popup .reward-value{font-size:1.5rem;color:var(--text);margin-top:5px}#combat-player-sprite,#enemy-sprite{position:relative;transition:filter .2s}#combat-player-sprite img,#enemy-sprite img{width:96px!important;height:96px!important;image-rendering:pixelated!important;image-rendering:crisp-edges!important}.sprite-glow-gold{filter:drop-shadow(0 0 10px var(--gold)) drop-shadow(0 0 20px var(--gold))}.sprite-glow-red{filter:drop-shadow(0 0 10px var(--hp-red)) drop-shadow(0 0 20px var(--hp-red))}.sprite-glow-green{filter:drop-shadow(0 0 10px var(--hp-green)) drop-shadow(0 0 20px var(--hp-green))}.sprite-glow-blue{filter:drop-shadow(0 0 10px var(--xp-blue)) drop-shadow(0 0 20px var(--xp-blue))}.floating-icon{position:absolute;font-size:1.5rem;pointer-events:none;animation:floatIcon 1.2s ease-out forwards}@keyframes floatIcon{0%{opacity:1;transform:translateY(0) scale(1)}50%{opacity:1;transform:translateY(-30px) scale(1.2)}to{opacity:0;transform:translateY(-60px) scale(.8)}}.chest-sparkle{position:absolute;width:100%;height:100%;pointer-events:none}.chest-sparkle:before,.chest-sparkle:after{content:"✨";position:absolute;font-size:.8rem;animation:chestSparkle 1.5s infinite}.chest-sparkle:before{top:0;right:5px;animation-delay:0s}.chest-sparkle:after{top:5px;left:5px;animation-delay:.75s}@keyframes chestSparkle{0%,to{opacity:0;transform:scale(.5)}50%{opacity:1;transform:scale(1)}}@media(max-width:480px){.game-title{font-size:1.5rem}.btn{padding:12px 30px;font-size:.9rem;min-width:160px}#mobile-controls{height:120px}.dpad{width:100px;height:100px}.dpad-btn{width:35px;height:35px}}@media(min-width:768px)and (hover:hover){#mobile-controls{display:none}}
