.pf-product-badge {
  isolation: isolate;
}
.pf-product-badge .pf-badge-shape {
  transform-origin: center;
}
.pf-badge-shine {
  display: none;
  position: absolute;
  inset: 12%;
  overflow: hidden;
  border-radius: 50%;
  pointer-events: none;
}
.pf-badge-shine::after {
  content: "";
  position: absolute;
  inset: -40%;
  background: linear-gradient(100deg, transparent 35%, #ffffffa8 50%, transparent 65%);
  transform: translateX(-110%);
}
.pf-badge-spark {
  display: none;
  position: absolute;
  right: 8%;
  top: 5%;
  font-size: 24cqw;
  line-height: 1;
}
.pf-product-badge[data-motion="fade"] .pf-badge-text {
  animation: pf-badge-fade 1s ease-out 1;
}
.pf-product-badge[data-motion="bounce"] .pf-badge-text {
  animation: pf-badge-bounce 0.7s ease-in-out 2;
}
.pf-product-badge[data-motion="pulse"] .pf-badge-shape {
  animation: pf-badge-pulse 1.2s ease-in-out 2;
}
.pf-product-badge[data-motion="shine"] .pf-badge-shine {
  display: block;
}
.pf-product-badge[data-motion="shine"] .pf-badge-shine::after {
  animation: pf-badge-shine 1.6s ease-in-out 1;
}
.pf-product-badge[data-motion="sparkle"] .pf-badge-spark {
  display: block;
  animation: pf-badge-spark 1s ease-in-out 2;
  opacity: 0;
}
@keyframes pf-badge-fade {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes pf-badge-bounce {
  0%,
  100% {
    transform: translateY(0);
  }
  45% {
    transform: translateY(-10%);
  }
}
@keyframes pf-badge-pulse {
  0%,
  100% {
    transform: scale(1);
  }
  50% {
    transform: scale(0.94);
  }
}
@keyframes pf-badge-shine {
  to {
    transform: translateX(110%);
  }
}
@keyframes pf-badge-spark {
  0%,
  100% {
    opacity: 0;
    transform: scale(0.8);
  }
  45% {
    opacity: 1;
    transform: scale(1.1);
  }
}
@media (prefers-reduced-motion: reduce) {
  .pf-product-badge *,
  .pf-product-badge *::after {
    animation: none !important;
  }
  .pf-product-badge .pf-badge-text,
  .pf-product-badge .pf-badge-shape {
    opacity: 1;
    transform: none;
  }
  .pf-product-badge .pf-badge-shine,
  .pf-product-badge .pf-badge-spark {
    display: none;
  }
}
