@keyframes rp-peel-reveal {
  0% {
    clip-path: polygon(0 0, 100% 0, 100% 100%, 100% 100%, 100% 100%, 0 100%);
  }
  100% {
    clip-path: polygon(0 0, 100% 0, 100% 42%, 42% 100%, 0 100%);
  }
}

@keyframes rp-stamp-slam {
  0% {
    opacity: 0;
    transform: translate(0, 0) rotate(-3deg) scale(1.6);
  }
  70% {
    opacity: 1;
    transform: translate(2px, -2px) rotate(-3deg) scale(0.98);
  }
  82% {
    transform: translate(-2px, 1px) rotate(-3deg) scale(1.01);
  }
  100% {
    opacity: 1;
    transform: translate(0, 0) rotate(-3deg) scale(1);
  }
}

.rp-peel-reveal {
  animation: rp-peel-reveal 320ms cubic-bezier(0.16, 1, 0.3, 1) both;
  transform-origin: 100% 100%;
}

.rp-stamp-slam {
  animation: rp-stamp-slam 180ms cubic-bezier(0.34, 1.56, 0.64, 1) both;
  transform-origin: 50% 50%;
}

@media (prefers-reduced-motion: reduce) {
  .rp-peel-reveal,
  .rp-stamp-slam {
    animation: none;
  }

  .rp-peel-reveal {
    clip-path: polygon(0 0, 100% 0, 100% 42%, 42% 100%, 0 100%);
  }

  .rp-stamp-slam {
    opacity: 1;
    transform: rotate(-3deg) scale(1);
  }
}
