body.gcc-page-loading{
    overflow:hidden;
}

.gcc-page-loader{
    position:fixed;
    inset:0;
    z-index:99999;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:24px;
    background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,250,252,.96));
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transition:opacity .25s ease, visibility .25s ease;
}

.gcc-page-loader::before{
    content:'';
    position:absolute;
    inset:0;
    background:radial-gradient(circle at 50% 42%, rgba(26,55,100,.05) 0%, transparent 40%);
    pointer-events:none;
}

.gcc-page-loader.is-hidden{
    opacity:0;
    visibility:hidden;
    pointer-events:none;
}

.gcc-page-loader__content{
    position:relative;
    z-index:1;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:0;
    text-align:center;
}

.gcc-page-loader__logo{
    display:block;
    width:min(48vw, 180px);
    height:auto;
    max-width:none;
    object-fit:contain;
    will-change:transform, filter;
    animation:gccPageLoaderLogoFloat 2.8s ease-in-out infinite;
}

@keyframes gccPageLoaderLogoFloat{
    0%, 100%{
        transform:translateY(0) scale(1);
        filter:drop-shadow(0 8px 18px rgba(26,55,100,.12)) saturate(1);
    }
    50%{
        transform:translateY(-4px) scale(1.04);
        filter:drop-shadow(0 12px 24px rgba(26,55,100,.16)) saturate(1.04);
    }
}

@media (max-width:575px){
    .gcc-page-loader__logo{
        width:min(60vw, 140px);
    }
}

@media (prefers-reduced-motion: reduce){
    .gcc-page-loader,
    .gcc-page-loader::before,
    .gcc-page-loader__logo{
        animation:none;
    }
}
