/**
 * @version     CVS: 1.0.0
 * @package     mod_floating_bubbles
 * @author      Imtiaz CASSAMALLY <imtiaz@cassamally.com>
 * @copyright   2026 Solar Sea Walk
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

/* ===========================
       ANIMATED BUBBLES
    =========================== */
.bubbles-layer {
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    overflow: hidden;
}

.bubble {
    position: absolute;
    bottom: -100px;
    border-radius: 50%;
    background: radial-gradient(circle at 30% 30%, rgba(0, 232, 240, 0.4), rgba(0, 196, 212, 0.1));
    border: 1px solid rgba(0, 232, 240, 0.25);
    animation: rise linear infinite;
}

@keyframes rise {
    0% {
        transform: translateY(0) scale(1);
        opacity: 0.6;
    }

    80% {
        opacity: 0.4;
    }

    100% {
        transform: translateY(-110vh) scale(1.3);
        opacity: 0;
    }
}

/* Underwater light rays */
.light-rays {
    position: absolute;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
}

.ray {
    position: absolute;
    top: -20%;
    width: 3px;
    height: 150%;
    background: linear-gradient(180deg, transparent, rgba(0, 220, 240, 0.12) 40%, transparent);
    transform-origin: top center;
    animation: sway 6s ease-in-out infinite alternate;
}

@keyframes sway {
    0% {
        transform: rotate(-8deg) scaleX(1);
    }

    100% {
        transform: rotate(8deg) scaleX(2);
    }
}

/* Floating particles (fish/plankton) */
.particle {
    position: absolute;
    border-radius: 50%;
    background: rgba(0, 232, 240, 0.6);
    animation: drift linear infinite;
}

@keyframes drift {
    0% {
        transform: translate(0, 0) scale(1);
        opacity: 0.8;
    }

    50% {
        transform: translate(30px, -50px) scale(1.2);
        opacity: 0.5;
    }

    100% {
        transform: translate(-20px, -120px) scale(0.8);
        opacity: 0;
    }
}