/* =================================================
   CAROUSEL BASE LAYERS
==================================================== */
.carousel-item {
    position: relative;
}

.carousel-item img {
    position: relative;
    z-index: 1;
}


/* =================================================
   SPARKLE POSITIONING (WRAPPERS)
==================================================== */
.sparkle,
.sparkle-trail {
    position: absolute;
    opacity: 0; /* GSAP fades these in */
    pointer-events: none;
    z-index: 5;
}

/* Main sparkle */
.sparkle {
    top: 20%;
    right: 10%;
}

/* Trail sparkles */
.trail-1 {
    top: 28%;
    right: 14%;
}

.trail-2 {
    top: 32%;
    right: 6%;
}


/* =================================================
   SVG SPARKLE VISUAL STYLE
==================================================== */
.sparkle-svg {
    width: 28px;
    height: 28px;
    display: block;

    filter:
        drop-shadow(0 0 4px rgba(255,255,255,0.9))
        drop-shadow(0 0 10px rgba(255,215,0,0.8))
        drop-shadow(0 0 20px rgba(255,215,0,0.5))
        drop-shadow(0 0 35px rgba(255,215,0,0.25));

    pointer-events: none;
}


/* =================================================
   CORE SPARKLE ANIMATIONS
==================================================== */
@keyframes sparklePulse {
    0%   { transform: scale(1); }
    50%  { transform: scale(1.18); }
    100% { transform: scale(1); }
}

@keyframes sparkleRotate {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}


/* =================================================
   MICRO‑TWINKLE RANDOMNESS (SVG ONLY)
==================================================== */
.sparkle-trail .sparkle-svg {
    animation:
        sparklePulse 2.4s ease-in-out infinite,
        sparkleRotate 18s linear infinite,
        sparkleTwinkle var(--twinkle-speed) ease-in-out infinite alternate;
}

@keyframes sparkleTwinkle {
    0%   { opacity: 0.55; }
    25%  { opacity: 0.9; }
    50%  { opacity: 0.65; }
    75%  { opacity: 1; }
    100% { opacity: 0.5; }
}

/* Trail-specific twinkle speeds */
.trail-1 .sparkle-svg {
    --twinkle-speed: 3.2s;
}

.trail-2 .sparkle-svg {
    --twinkle-speed: 4.6s;
}
