/* Celebration Confetti - Falling from top */

.ko-burst-container {
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 99999;
    overflow: hidden;
}

.ko-confetti {
    position: fixed;
    top: -20px;
    left: 0;
    width: var(--w, 8px);
    height: var(--h, 14px);
    background: var(--c, #ffffff);
    border-radius: var(--r, 2px);
    transform: translateX(var(--x, 0)) rotate(var(--rot, 0deg));
    opacity: 0.95;
    will-change: transform, opacity;
    animation:
        ko-confetti-fall var(--dur, 3000ms) linear forwards,
        ko-confetti-sway var(--sway, 1200ms) ease-in-out infinite alternate,
        ko-confetti-spin var(--spin, 1600ms) linear infinite;
}

@keyframes ko-confetti-fall {
    0% { transform: translateY(-10vh) translateX(var(--x, 0)) rotate(var(--rot, 0deg)); opacity: 0.95; }
    100% { transform: translateY(110vh) translateX(calc(var(--x, 0) + var(--dx, 0))) rotate(calc(var(--rot, 0deg) + 360deg)); opacity: 0.9; }
}

@keyframes ko-confetti-sway {
    0% { margin-left: -6px; }
    100% { margin-left: 6px; }
}

@keyframes ko-confetti-spin {
    0% { filter: hue-rotate(0deg); }
    100% { filter: hue-rotate(0deg); }
}


