.fortis-welcome-confetti {
    position: fixed;
    inset: 0;
    z-index: 9998;
    overflow: hidden;
    pointer-events: none;
    contain: layout paint;
}

.fortis-welcome-confetti__piece {
    position: absolute;
    top: 73%;
    left: var(--origin);
    width: var(--width);
    height: var(--height);
    background: var(--color);
    opacity: 0;
    animation: fortis-welcome-burst 2.8s var(--delay) ease-out both;
}

@keyframes fortis-welcome-burst {
    0% {
        opacity: 0;
        transform: translate3d(0, 0, 0) rotate(0deg) scale(.5);
    }
    8% { opacity: 1; }
    42% {
        opacity: 1;
        transform: translate3d(var(--burst-x), var(--burst-y), 0) rotate(var(--rotation));
    }
    85% { opacity: 1; }
    100% {
        opacity: 0;
        transform: translate3d(var(--fall-x), 40vh, 0) rotate(var(--final-rotation));
    }
}

@media (prefers-reduced-motion: reduce) {
    .fortis-welcome-confetti { display: none; }
}
