body {
    font-family: 'Plus Jakarta Sans', sans-serif;
}

/* Grid de fundo */
.bg-grid {
    background-image:
        linear-gradient(rgba(148, 163, 184, 0.06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(148, 163, 184, 0.06) 1px, transparent 1px);
    background-size: 48px 48px;
    mask-image: radial-gradient(ellipse at center, black 30%, transparent 75%);
    -webkit-mask-image: radial-gradient(ellipse at center, black 30%, transparent 75%);
}

/* Brilhos flutuantes */
@keyframes float {

    0%,
    100% {
        transform: translate(0, 0) scale(1);
    }

    50% {
        transform: translate(30px, -20px) scale(1.1);
    }
}

.blob {
    animation: float 12s ease-in-out infinite;
}

.blob-delay {
    animation-delay: -6s;
}

/* Texto gradiente animado */
@keyframes shine {
    to {
        background-position: 200% center;
    }
}

.text-shine {
    background: linear-gradient(90deg, #ec4899, #fb7185, #f472b6, #ec4899);
    background-size: 200% auto;
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    animation: shine 5s linear infinite;
}

/* Animação de entrada ao rolar */
.reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity .7s ease, transform .7s ease;
}

.reveal.visible {
    opacity: 1;
    transform: none;
}

/* Card com borda iluminada */
.card-glow {
    position: relative;
}

.card-glow::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    padding: 1px;
    background: linear-gradient(135deg, rgba(236, 72, 153, .5), transparent 50%);
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    opacity: 0;
    transition: opacity .3s;
    pointer-events: none;
}

.card-glow:hover::before {
    opacity: 1;
}

@media (prefers-reduced-motion: reduce) {

    .blob,
    .text-shine {
        animation: none;
    }

    .reveal {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

.modal-box { scrollbar-width: none; }
.modal-box::-webkit-scrollbar { display: none; }

@keyframes ali-fade-up {
    from { opacity: 0; transform: translateY(20px); }
    to   { opacity: 1; transform: none; }
}
.plano-card { animation: ali-fade-up .6s ease both; }
.plano-card:nth-child(2) { animation-delay: .1s; }
.plano-card:nth-child(3) { animation-delay: .2s; }

@media (prefers-reduced-motion: reduce) {
    .plano-card { animation: none; }
}
