@import url('https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap');

body {
    background: white;
    font-family: "Nunito", sans-serif;
    font-optical-sizing: auto;
    overflow-x: hidden;
}

.features-section {
    overflow: clip;
    position: relative;
}

.features-section::before {
    content: "";
    position: absolute;
    inset: auto -20% -50% -20%;
    height: 60%;
    background: radial-gradient(50% 60% at 50% 50%, rgba(90, 162, 255, .12), transparent 60%);
    pointer-events: none;
    filter: blur(30px);
}

.feature-card {
    background: linear-gradient(180deg, rgba(255, 255, 255, .04), rgba(255, 255, 255, .01)),
        linear-gradient(180deg, #1f2937, #111827);
    /* Approximation of original colors */
    transform: translateY(12px);
    opacity: 0;
    animation: fadeUp 0.9s cubic-bezier(.2, .8, .2, 1) forwards;
}

.feature-card:hover {
    border-color: rgba(90, 162, 255, .45);
    box-shadow: 0 0 0 1px rgba(90, 162, 255, .35) inset,
        0 12px 35px -16px rgba(90, 162, 255, .35);
    transform: translateY(-2px);
    transition: transform 0.3s ease;
}

.icon-wrap {
    background: radial-gradient(120% 120% at 0% 0%, rgba(90, 162, 255, .18), rgba(90, 162, 255, .05) 60%, transparent 70%),
        rgba(255, 255, 255, .03);
    position: relative;
    overflow: hidden;
}

.icon-wrap::after {
    content: "";
    position: absolute;
    inset: -40%;
    background: conic-gradient(from 0deg, transparent 0 70%, rgba(90, 162, 255, .25) 70% 100%);
    animation: spin 6s linear infinite;
    opacity: .35;
    pointer-events: none;
}

.feature-card:hover .icon-wrap {
    box-shadow: 0 0 0 6px rgba(90, 162, 255, .12),
        0 6px 18px -6px rgba(90, 162, 255, .45);
    transition: box-shadow .35s ease;
}

@keyframes fadeUp {
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

/* Staggered animation delays */
.feature-card:nth-child(1) {
    animation-delay: .05s;
}

.feature-card:nth-child(2) {
    animation-delay: .1s;
}

.feature-card:nth-child(3) {
    animation-delay: .15s;
}

.feature-card:nth-child(4) {
    animation-delay: .2s;
}

.feature-card:nth-child(5) {
    animation-delay: .25s;
}

.feature-card:nth-child(6) {
    animation-delay: .3s;
}

.feature-card:nth-child(7) {
    animation-delay: .35s;
}

.feature-card:nth-child(8) {
    animation-delay: .4s;
}

.feature-card:nth-child(9) {
    animation-delay: .45s;
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
    .feature-card {
        animation: none;
        transform: none;
        opacity: 1;
    }

    .icon-wrap::after {
        animation: none;
    }
}