@keyframes fadeUp{
  from{opacity:0;transform:translateY(14px)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes shake{
  0%,100%{transform:translate(0)}
  15%{transform:translate(-10px,4px)}
  30%{transform:translate(9px,-3px)}
  45%{transform:translate(-7px,6px)}
  60%{transform:translate(8px,-5px)}
  75%{transform:translate(-6px,3px)}
  90%{transform:translate(5px,-2px)}
}
@keyframes flicker{
  0%,28%,32%,60%,64%,100%{opacity:1}
  30%{opacity:0.08}
  62%{opacity:0.15}
}
@keyframes glitch{
  0%{clip-path:inset(0 0 95% 0);transform:skewX(-8deg) translateX(-4px)}
  20%{clip-path:inset(30% 0 50% 0);transform:skewX(6deg) translateX(3px)}
  40%{clip-path:inset(60% 0 20% 0);transform:skewX(-4deg) translateX(-2px)}
  60%{clip-path:inset(10% 0 80% 0);transform:skewX(8deg) translateX(4px)}
  80%{clip-path:inset(80% 0 5% 0);transform:skewX(-6deg) translateX(-3px)}
  100%{clip-path:inset(0 0 0 0);transform:skewX(0) translateX(0)}
}
@keyframes bloodPulse{
  0%,100%{box-shadow:0 0 8px rgba(163,32,32,0.5)}
  50%{box-shadow:0 0 22px rgba(200,0,0,0.85),0 0 44px rgba(120,0,0,0.4)}
}
@keyframes drip-drop{
  0%{height:0;opacity:0.9}
  65%{height:11px;opacity:0.5}
  100%{height:18px;opacity:0;transform:translateY(7px)}
}
