@keyframes spin{to{transform:rotate(360deg)}}

@keyframes screenShake{
  0%,100%{transform:translate(0,0)}
  10%{transform:translate(-4px,2px)}
  20%{transform:translate(4px,-2px)}
  30%{transform:translate(-3px,1px)}
  40%{transform:translate(3px,-1px)}
  50%{transform:translate(-2px,1px)}
  60%{transform:translate(2px,0)}
  70%{transform:translate(-1px,0)}
  80%{transform:translate(1px,0)}
}

@keyframes shimmerSweep{
  0%,100%{left:-100%}
  50%{left:140%}
}

@keyframes goldShimmer{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}

@keyframes winnerReveal{
  0%{transform:scale(1);filter:brightness(1)}
  30%{transform:scale(1.12);filter:brightness(1.6) saturate(1.35)}
  55%{transform:scale(1.06);filter:brightness(1.25) saturate(1.15)}
  100%{transform:scale(1.05);filter:brightness(1.15) saturate(1.1)}
}

@keyframes winnerPulse{
  0%,100%{filter:brightness(1.15) saturate(1.1);box-shadow:0 0 30px var(--rc),0 0 60px color-mix(in srgb,var(--rc) 40%,transparent)}
  50%{filter:brightness(1.45) saturate(1.4);box-shadow:0 0 50px var(--rc),0 0 100px color-mix(in srgb,var(--rc) 60%,transparent)}
}

@keyframes lightRaysRotate{
  from{transform:translate(-50%,-50%) rotate(0deg)}
  to{transform:translate(-50%,-50%) rotate(360deg)}
}

@keyframes inspectMorphIn{
  from{
    opacity:.15;
    transform:translate(calc(-50% + var(--morph-x,0px)),calc(-50% + var(--morph-y,0px))) scale(var(--morph-sx,.25),var(--morph-sy,.25)) rotateX(16deg);
  }
  to{
    opacity:1;
    transform:translate(-50%,-50%) scale(1,1) rotateX(0deg);
  }
}

@keyframes inspectSettle{
  0%{filter:brightness(1.2)}
  100%{filter:brightness(1)}
}

@keyframes inspectBackdropOut{from{opacity:1}to{opacity:0}}

@keyframes inspectCardOut{
  from{opacity:1;transform:translate(-50%,-50%) scale(1) rotateX(0deg)}
  to{opacity:0;transform:translate(-50%,-46%) scale(.8) rotateX(12deg)}
}

@keyframes inspectBtnsOut{
  from{opacity:1;transform:translateX(-50%) translateY(0)}
  to{opacity:0;transform:translateX(-50%) translateY(15px)}
}

@keyframes caseViolentShake{
  0%{transform:translate(-4px,3px) rotate(-3deg) scale(1.05)}
  25%{transform:translate(2px,-4px) rotate(2deg) scale(1.08)}
  50%{transform:translate(-3px,-2px) rotate(-2deg) scale(1.12)}
  75%{transform:translate(4px,2px) rotate(3deg) scale(1.08)}
  100%{transform:translate(3px,-3px) rotate(2deg) scale(1.1)}
}

@keyframes classifiedInnerGlow{
  0%,100%{opacity:0.3}
  50%{opacity:0.65}
}

@keyframes goldShineSweep{
  0%{background-position:200% 0}
  100%{background-position:-200% 0}
}

@keyframes screenShakeLight{
  0%,100%{transform:translate(0,0)}
  10%{transform:translate(-2px,1px)}
  20%{transform:translate(2px,-1px)}
  30%{transform:translate(-1px,1px)}
  40%{transform:translate(1px,0)}
  50%{transform:translate(-1px,0)}
  60%{transform:translate(1px,-1px)}
  70%{transform:translate(-1px,1px)}
  80%{transform:translate(1px,0)}
}

@keyframes screenShakeHeavy{
  0%,100%{transform:translate(0,0) scale(1)}
  10%{transform:translate(-5px,3px) scale(1.005)}
  20%{transform:translate(5px,-3px) scale(1.005)}
  30%{transform:translate(-4px,2px) scale(1.005)}
  40%{transform:translate(4px,-2px) scale(1.005)}
  50%{transform:translate(-3px,1px) scale(1.005)}
  60%{transform:translate(3px,0) scale(1.005)}
  70%{transform:translate(-2px,1px) scale(1.005)}
  80%{transform:translate(2px,-1px) scale(1.005)}
}

@keyframes shockwaveExpand{
  0%{transform:translate(-50%,-50%) scale(0);opacity:1}
  100%{transform:translate(-50%,-50%) scale(25);opacity:0}
}

@keyframes sparkFloat{
  0%{opacity:0;transform:translate(-50%,-50%) scale(0.5)}
  15%{opacity:1;transform:translate(calc(-50% + var(--spark-tx,0px) * 0.2),calc(-50% + var(--spark-ty,0px) * 0.2)) scale(1)}
  100%{opacity:0;transform:translate(calc(-50% + var(--spark-tx,0px)),calc(-50% + var(--spark-ty,0px))) scale(0.2)}
}

@keyframes lightRaysFadeIn{
  from{opacity:0}
  to{opacity:.75}
}
@keyframes pulse{
  0%,100%{opacity:1}
  50%{opacity:.55}
}

