html,body,#root{width:100%;height:100%;margin:0}body{min-width:320px;font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.battleSprite{width:132px;height:132px;object-fit:contain;image-rendering:pixelated;will-change:transform,filter,opacity;position:relative;z-index:2}.heroAttack{animation:heroAttackAnim .32s cubic-bezier(.2,.8,.2,1)}.gotHit{animation:gotHitAnim .24s ease}.heroHealPulse{animation:heroHealPulseAnim .52s ease}.heroHideFade{animation:heroHideFadeAnim .48s ease}.heroRunStep{animation:heroRunStepAnim .32s ease}.deadRed{filter:brightness(.72) sepia(1) saturate(8) hue-rotate(-35deg);opacity:.88}@keyframes heroAttackAnim{0%{transform:translate(0) scale(1)}35%{transform:translate(72px) scale(1.16)}to{transform:translate(0) scale(1)}}@keyframes gotHitAnim{0%{transform:translate(0)}20%{transform:translate(-14px)}40%{transform:translate(14px)}60%{transform:translate(-10px)}80%{transform:translate(10px)}to{transform:translate(0)}}@keyframes heroHealPulseAnim{0%{transform:scale(1);filter:brightness(1)}35%{transform:scale(1.08);filter:brightness(1.22)}to{transform:scale(1);filter:brightness(1)}}@keyframes heroHideFadeAnim{0%{transform:scale(1);opacity:1}50%{transform:scale(.95);opacity:.45}to{transform:scale(1);opacity:1}}@keyframes heroRunStepAnim{0%{transform:translate(0) scale(1)}35%{transform:translate(-24px) scale(1.03)}to{transform:translate(0) scale(1)}}
