/* ==========================================================
    Efeitos Visuais de Fundo (Animados e Premium) 
========================================================== */
.background-mesh {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    background: #f8fafc;
    overflow: hidden;
}

.blob {
    position: absolute;
    filter: blur(90px);
    opacity: 0.5;
    animation: floatingMesh 20s infinite alternate cubic-bezier(0.4, 0, 0.2, 1);
    pointer-events: none;
}

.shape1 {
    top: -10%;
    left: -15%;
    width: 60vw;
    height: 60vw;
    background: var(--primary-color);
    border-radius: 50%;
}

.shape2 {
    bottom: -20%;
    right: -10%;
    width: 70vw;
    height: 70vw;
    background: var(--secondary-color);
    border-radius: 40% 60% 70% 30% / 40% 50% 60% 50%;
    animation-delay: -5s;
    animation-duration: 25s;
}

.shape3 {
    top: 30%;
    left: 20%;
    width: 50vw;
    height: 50vw;
    background: var(--accent-color);
    border-radius: 60% 40% 30% 70% / 50% 30% 70% 50%;
    animation-delay: -10s;
    animation-duration: 30s;
    opacity: 0.3;
}

@keyframes floatingMesh {
    0% {
        transform: translate(0, 0) scale(1) rotate(0deg);
    }

    100% {
        transform: translate(8%, 15%) scale(1.15) rotate(5deg);
    }
}

/* Sobrescritas do Tema Escuro para o Plano de Fundo */
[data-bs-theme="dark"] .background-mesh {
    background: #020617;
}
