/* ===================
   CTA
   =================== */
.cta {
    padding: 0 20px 80px;
}
.cta__card {
    position: relative;
    border-radius: var(--radius-lg);
    padding: 100px 48px;
    text-align: center;
    overflow: hidden;
    background: linear-gradient(135deg, #0c0c1e, #121230, #0e1428);
    color: #fff;
}

/* animated border */
.cta__border {
    position: absolute;
    inset: -2px;
    border-radius: calc(var(--radius-lg) + 2px);
    background: conic-gradient(
        from var(--angle, 0deg),
        var(--blue),
        var(--cyan),
        var(--violet),
        var(--blue)
    );
    z-index: -1;
    animation: cta-border-spin 4s linear infinite;
    opacity: 0.6;
}
@keyframes cta-border-spin {
    to {
        --angle: 360deg;
    }
}
@property --angle {
    syntax: "<angle>";
    initial-value: 0deg;
    inherits: false;
}

.cta__inner-bg {
    position: absolute;
    inset: 2px;
    border-radius: calc(var(--radius-lg) - 0px);
    background: linear-gradient(135deg, #0c0c1e, #121230, #0e1428);
    z-index: 0;
}

/* orbs */
.cta__orb {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
    z-index: 1;
}
.cta__orb--a {
    width: 350px;
    height: 350px;
    top: -120px;
    right: -80px;
    background: rgba(43, 127, 255, 0.1);
    filter: blur(100px);
    animation: why-orb-drift 8s ease-in-out infinite alternate;
}
.cta__orb--b {
    width: 250px;
    height: 250px;
    bottom: -80px;
    left: -60px;
    background: rgba(0, 212, 240, 0.07);
    filter: blur(80px);
    animation: why-orb-drift 10s ease-in-out infinite alternate-reverse 2s;
}
.cta__orb--c {
    width: 150px;
    height: 150px;
    top: 30%;
    left: 20%;
    background: rgba(124, 92, 246, 0.06);
    filter: blur(60px);
    animation: why-orb-drift 12s ease-in-out infinite alternate 4s;
}

/* glass spheres */
.cta__glass {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
    z-index: 2;
    background: radial-gradient(
        circle at 30% 25%,
        rgba(255, 255, 255, 0.12),
        rgba(255, 255, 255, 0.03) 50%,
        transparent
    );
    border: 1px solid rgba(255, 255, 255, 0.08);
}
.cta__glass--a {
    width: 180px;
    height: 180px;
    top: -40px;
    right: 80px;
    animation: gs-float-b 12s ease-in-out infinite;
}
.cta__glass--b {
    width: 100px;
    height: 100px;
    bottom: -20px;
    left: 100px;
    animation: gs-float-c 9s ease-in-out infinite 2s;
}
.cta__glass--c {
    width: 60px;
    height: 60px;
    top: 40%;
    left: 12%;
    animation: gs-float-b 8s ease-in-out infinite 3s;
}

/* particles */
.cta__particles {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
    z-index: 1;
}
.cta__particle {
    position: absolute;
    border-radius: 50%;
    background: rgba(43, 127, 255, 0.25);
    animation: why-particle-up linear infinite;
}

.cta__title {
    font-family: "Unbounded", sans-serif;
    font-size: clamp(28px, 5vw, 56px);
    font-weight: 800;
    line-height: 1.06;
    margin-bottom: 18px;
    position: relative;
    z-index: 3;
}
.cta__title em {
    font-style: normal;
    background: linear-gradient(135deg, var(--blue-light), var(--cyan));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}
.cta__subtitle {
    font-size: 18px;
    color: rgba(255, 255, 255, 0.55);
    margin-bottom: 44px;
    position: relative;
    z-index: 3;
}

@media (max-width: 600px) {
    .cta {
        padding: 0 12px;
        margin-top: 40px;
    }
    .cta__card {
        padding: 48px 20px;
        border-radius: 24px;
    }
    .cta__title {
        font-size: clamp(22px, 6vw, 32px);
    }
    .cta__subtitle {
        font-size: 15px;
        margin-bottom: 28px;
    }
    .cta__glass,
    .cta__border {
        display: none;
    }
}
