@keyframes just-completed-pop {
  0%   { transform: scale(1); }
  40%  { transform: scale(1.015); }
  100% { transform: scale(1); }
}

@keyframes draw-check {
  from { stroke-dashoffset: 24; }
  to   { stroke-dashoffset: 0; }
}

.quest-card.just-completed { animation: just-completed-pop 380ms ease-out; }

/* Only apply dash-offset during the animation. By default the SVG path
   has no dasharray, so the static is-done state shows the full check. */
.quest-card.just-completed .quest-card__check {
  stroke-dasharray: 24;
  animation: draw-check 320ms ease-out 80ms forwards;
}

/* Respect users who prefer reduced motion — instant state change, no pop, no draw. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    transition-duration: 0.001ms !important;
  }
}
