/* ==========================================================================
   animations.css — 짧고 절제된 연출만 사용
   ========================================================================== */

@keyframes paper-drop {
  from { opacity: 0; transform: translateY(-14px) rotate(-0.6deg); }
  to   { opacity: 1; transform: translateY(0) rotate(0deg); }
}
.anim-paper-drop { animation: paper-drop 0.35s ease-out; }

@keyframes stamp-press {
  0%   { opacity: 0; transform: scale(1.6) rotate(-9deg); }
  60%  { opacity: 1; transform: scale(0.92) rotate(-9deg); }
  100% { opacity: 0.85; transform: scale(1) rotate(-9deg); }
}
.anim-stamp { animation: stamp-press 0.32s ease-out; }

@keyframes check-draw {
  from { stroke-dashoffset: 40; }
  to   { stroke-dashoffset: 0; }
}
.anim-check path { stroke-dasharray: 40; animation: check-draw 0.3s ease-out forwards; }

@keyframes star-twinkle {
  0%, 100% { opacity: 0.5; transform: scale(1); }
  50%      { opacity: 1; transform: scale(1.25); }
}
.anim-star-twinkle { animation: star-twinkle 2.6s ease-in-out infinite; }

@keyframes crt-flicker {
  0%, 96%, 100% { opacity: 1; }
  97% { opacity: 0.85; }
  98% { opacity: 0.95; }
}
.anim-crt-flicker { animation: crt-flicker 6s steps(1) infinite; }

@keyframes fade-slide-in {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}
.anim-fade-slide { animation: fade-slide-in 0.3s ease-out; }

@media (prefers-reduced-motion: reduce) {
  .anim-paper-drop, .anim-stamp, .anim-check path, .anim-star-twinkle, .anim-crt-flicker, .anim-fade-slide {
    animation: none !important;
  }
}
