.lsi-effect-wrapper {
    position: relative;
    isolation: isolate;
    overflow: visible !important;
}

/* --- Particles --- */
.lsi-particle-canvas {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 10;
    opacity: 0;
    transition: opacity 0.3s ease;
    background: transparent !important;
}

.lsi-effect-wrapper:hover .lsi-particle-canvas {
    opacity: 1;
}

/* Position back particles behind the image */
.lsi-particles-back .lsi-particle-canvas {
    z-index: -1;
}

/* --- Spotlight --- */
.lsi-effect-wrapper[data-lsi-effect-type="spotlight"]::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 10;
    background: radial-gradient(circle at var(--lsi-x, 50%) var(--lsi-y, 50%),
            var(--lsi-spotlight-color, rgba(255, 255, 255, 0.5)) 0%,
            transparent var(--lsi-spotlight-size, 200px));
    opacity: 0;
    transition: opacity 0.3s ease;
    mix-blend-mode: overlay;
}

.lsi-effect-wrapper[data-lsi-effect-type="spotlight"]:hover::before {
    opacity: 1;
}

/* --- Liquid --- */
.lsi-liquid-active img {
    /* Filter is applied dynamically via ID */
}