/* ============================================================
   GemHoldings Animated Preloaders — Styles & Keyframes
   v1.0 — Three premium preloader styles for dashboards
   ============================================================ */

/* 1. RADIANT PULSE PRELOADER */
.gem-preloader-pulse {
    animation: gemPulse 2s infinite ease-in-out;
}

.gem-preloader-pulse .radial-glow {
    animation: gemGlowPulse 2s infinite ease-in-out;
}

@keyframes gemPulse {
    0%, 100% {
        transform: scale(0.96);
        filter: drop-shadow(0 0 8px rgba(14, 165, 233, 0.1));
    }
    50% {
        transform: scale(1.04);
        filter: drop-shadow(0 0 25px rgba(14, 165, 233, 0.35));
    }
}

@keyframes gemGlowPulse {
    0%, 100% {
        opacity: 0.12;
    }
    50% {
        opacity: 0.35;
    }
}


/* 2. ISOMETRIC ASSEMBLY PRELOADER */
.gem-preloader-assemble svg {
    overflow: visible;
}

.gem-preloader-assemble .pillar-left {
    opacity: 0;
    transform: translateY(15px);
    animation: gemPillarRise 2.2s infinite cubic-bezier(0.25, 1, 0.5, 1);
}

.gem-preloader-assemble .pillar-right {
    opacity: 0;
    transform: translateY(15px);
    animation: gemPillarRise 2.2s infinite cubic-bezier(0.25, 1, 0.5, 1);
    animation-delay: 0.2s;
}

.gem-preloader-assemble .pillar-center {
    opacity: 0;
    transform: translateY(15px);
    animation: gemPillarRise 2.2s infinite cubic-bezier(0.25, 1, 0.5, 1);
    animation-delay: 0.4s;
}

.gem-preloader-assemble .shell-outer {
    opacity: 0;
    transform: scale(0.92);
    transform-origin: 100px 110px;
    animation: gemShellAssemble 2.2s infinite cubic-bezier(0.25, 1, 0.5, 1);
    animation-delay: 0.6s;
}

@keyframes gemPillarRise {
    0% {
        opacity: 0;
        transform: translateY(15px);
    }
    15%, 80% {
        opacity: 1;
        transform: translateY(0);
    }
    95%, 100% {
        opacity: 0;
        transform: translateY(-15px);
    }
}

@keyframes gemShellAssemble {
    0% {
        opacity: 0;
        transform: scale(0.92);
    }
    15%, 80% {
        opacity: 1;
        transform: scale(1);
    }
    95%, 100% {
        opacity: 0;
        transform: scale(1.05);
    }
}


/* 3. MINIMALIST SVG DRAW PRELOADER */
.gem-preloader-draw svg {
    overflow: visible;
}

.gem-preloader-draw .draw-outline {
    stroke-dasharray: 600;
    stroke-dashoffset: 600;
    animation: gemDrawLine 2.8s infinite ease-in-out;
}

.gem-preloader-draw .draw-facets {
    stroke-dasharray: 200;
    stroke-dashoffset: 200;
    animation: gemDrawLine 2.8s infinite ease-in-out;
    animation-delay: 0.4s;
}

.gem-preloader-draw .draw-pillars {
    opacity: 0;
    animation: gemFadeInPillars 2.8s infinite ease-in-out;
    animation-delay: 0.9s;
}

@keyframes gemDrawLine {
    0% {
        stroke-dashoffset: 600;
    }
    30%, 80% {
        stroke-dashoffset: 0;
    }
    95%, 100% {
        opacity: 0;
    }
}

@keyframes gemFadeInPillars {
    0%, 35% {
        opacity: 0;
        transform: scale(0.95);
        transform-origin: 100px 110px;
    }
    50%, 80% {
        opacity: 1;
        transform: scale(1);
        transform-origin: 100px 110px;
    }
    95%, 100% {
        opacity: 0;
    }
}
