.pk-page-enter { animation: pk-page-enter var(--dur-page) var(--ease-smooth) both; }
@keyframes pk-page-enter { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }

.pk-stagger > * { animation: pk-stagger-in 300ms var(--ease-smooth) both; }
.pk-stagger > *:nth-child(1) { animation-delay: 0ms; }
.pk-stagger > *:nth-child(2) { animation-delay: 40ms; }
.pk-stagger > *:nth-child(3) { animation-delay: 80ms; }
.pk-stagger > *:nth-child(4) { animation-delay: 120ms; }
.pk-stagger > *:nth-child(5) { animation-delay: 160ms; }
.pk-stagger > *:nth-child(6) { animation-delay: 200ms; }
.pk-stagger > *:nth-child(7) { animation-delay: 240ms; }
.pk-stagger > *:nth-child(8) { animation-delay: 280ms; }
@keyframes pk-stagger-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }

.pk-bounce-in { animation: pk-bounce-in 250ms var(--ease-bounce); }
@keyframes pk-bounce-in { 0% { transform: scale(0.85); opacity: 0.6; } 60% { transform: scale(1.06); opacity: 1; } 100% { transform: scale(1); } }

.pk-shake { animation: pk-shake 280ms ease-in-out; }
@keyframes pk-shake { 0%, 100% { transform: translateX(0); } 20% { transform: translateX(-4px); } 40% { transform: translateX(4px); } 60% { transform: translateX(-4px); } 80% { transform: translateX(4px); } }

.pk-strike { animation: pk-strike 350ms ease-out forwards; position: relative; }
@keyframes pk-strike { from { color: var(--text); } to { color: var(--text-2); text-decoration: line-through; } }

.pk-soft-flash { animation: pk-soft-flash 600ms ease-out; }
@keyframes pk-soft-flash { 0% { background: var(--surface); } 30% { background: var(--success-bg); } 100% { background: var(--surface); } }

.pk-confetti-burst { position: relative; }
.pk-confetti-burst::before, .pk-confetti-burst::after { content: ''; position: absolute; width: 6px; height: 6px; border-radius: 50%; top: 50%; left: 50%; animation: pk-confetti 600ms ease-out forwards; pointer-events: none; }
.pk-confetti-burst::before { background: var(--accent-1); animation-delay: 0ms; }
.pk-confetti-burst::after { background: var(--accent-2); animation-delay: 80ms; }
@keyframes pk-confetti { from { transform: translate(-50%, -50%) scale(0); opacity: 1; } to { transform: translate(40px, -50px) scale(0); opacity: 0; } }

.pk-count-up { animation: pk-count-up 300ms var(--ease-smooth); }
@keyframes pk-count-up { from { transform: scale(1.2); opacity: 0; } to { transform: scale(1); opacity: 1; } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

[data-reduce-motion="true"] *, [data-reduce-motion="true"] *::before, [data-reduce-motion="true"] *::after {
  animation-duration: 0.01ms !important;
  transition-duration: 0.01ms !important;
}
