@keyframes pulse-ring {
    0% { opacity: 0; }
    25% { opacity: 1; }
    70%, 100% { opacity: 0; }
}

.btn-next-step {
    position: relative;
}

/* Only transform and opacity animate off the main thread; an animated box-shadow repaints the whole page every frame. */
.btn-next-step::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    box-shadow: 0 0 0 4px oklch(0.4 0.1435 331.08 / 0.35);
    pointer-events: none;
    animation: pulse-ring 2s ease-out infinite;
}
