/* Ripple Loader Component
 * Water-themed loading animation using primary blue
 * GPU-optimized with transform and opacity
 */

.ripple-loader {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.ripple-loader--small {
    width: 32px;
    height: 32px;
}

.ripple-loader--medium {
    width: 48px;
    height: 48px;
}

.ripple-loader--large {
    width: 64px;
    height: 64px;
}

.ripple-loader__wave {
    position: absolute;
    border: 2px solid var(--_primary_blue_color, #30A0D6);
    border-radius: 50%;
    opacity: 0;
    animation: ripple 2s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}

.ripple-loader__wave--1 {
    animation-delay: 0s;
}

.ripple-loader__wave--2 {
    animation-delay: 0.6s;
}

.ripple-loader__wave--3 {
    animation-delay: 1.2s;
}

.ripple-loader__text {
    position: absolute;
    bottom: -24px;
    left: 50%;
    transform: translateX(-50%);
    font-size: var(--_font_size_sm);
    color: var(--_text_secondary_color);
    white-space: nowrap;
}

@keyframes ripple {
    0% {
        width: 0;
        height: 0;
        opacity: 1;
    }
    100% {
        width: 100%;
        height: 100%;
        opacity: 0;
    }
}

/* Hide text for screen readers when not loading */
.ripple-loader[aria-hidden="true"] .ripple-loader__text {
    display: none;
}
