/* === Confetti Particles === */
.confetti-container {
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 200;
    overflow: hidden;
}

.confetti-piece {
    position: absolute;
    top: -20px;
    animation: confettiFall var(--duration, 3s) var(--delay, 0s) ease-out forwards;
}

.confetti-piece:nth-child(3n) {
    border-radius: 50%;
}

.confetti-piece:nth-child(3n+1) {
    border-radius: 2px;
    transform: rotate(45deg);
}

.confetti-piece:nth-child(3n+2) {
    border-radius: 0;
    clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
}

@keyframes confettiFall {
    0% {
        transform: translateY(0) rotate(0deg) scale(1);
        opacity: 1;
    }
    70% {
        opacity: 1;
    }
    100% {
        transform: translateY(100vh) rotate(var(--rotation, 720deg)) scale(0.3);
        opacity: 0;
    }
}

/* === Star Burst === */
.starburst-container {
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 199;
    display: flex;
    align-items: center;
    justify-content: center;
}

.starburst {
    width: 200px;
    height: 200px;
    border-radius: 50%;
    background: radial-gradient(circle, var(--accent-gold) 0%, transparent 70%);
    animation: starburstAnim 0.8s ease-out forwards;
}

@keyframes starburstAnim {
    0% { transform: scale(0); opacity: 1; }
    100% { transform: scale(8); opacity: 0; }
}
