/* ====================================================================
   OPEN INSTITUCIONAL — Page Background v1.9.0
   ====================================================================
   Namespace: .opbg (Open Page Background)
   Renderiza manchas coloridas com blur pesado atrás do conteúdo.
   ==================================================================== */

.opbg {
    pointer-events: none;
    overflow: hidden;
    z-index: -1;
}

/* Modo fixed: cobre toda a viewport, fica atrás de tudo ao rolar */
.opbg--fixed {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
}

/* Modo scroll: cobre toda a página, rola junto */
.opbg--scroll {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    min-height: 100vh;
}

/* Blob individual */
.opbg__blob {
    position: absolute;
    display: block;
    border-radius: 50%;
    will-change: transform, opacity;
    transform: translate3d(0, 0, 0);
    pointer-events: none;
}

/* Garante que o body/html não cortem o background fixed */
body:has(.opbg--fixed) {
    background: #FFFFFF;
}

/* Para navegadores sem suporte a :has, usa fallback */
@supports not (selector(:has(*))) {
    .opbg--fixed {
        background: transparent;
    }
}

/* Mobile: reduz blur (performance) */
@media (max-width: 767px) {
    .opbg__blob {
        filter: blur(80px) !important;
    }
}

/* Se o usuário pedir reduced motion, desativa transições/animações em blobs */
@media (prefers-reduced-motion: reduce) {
    .opbg__blob {
        transition: none !important;
        animation: none !important;
    }
}
