.hero-image-frame {
    position: relative;
    width: 100%;
    max-width: 560px;
    justify-self: center;
}

.hero-image-frame::before {
    content: "";
    position: absolute;
    inset: -24px;
    background:
        radial-gradient(circle at 30% 30%, color-mix(in srgb, var(--primary-blue) 18%, transparent), transparent 55%),
        radial-gradient(circle at 70% 70%, color-mix(in srgb, var(--primary-blue) 14%, transparent), transparent 55%);
    border-radius: var(--radius-xl);
    z-index: 0;
    filter: blur(8px);
}

.hero-image-frame > img {
    position: relative;
    z-index: 1;
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    border-radius: var(--radius-lg);
    box-shadow:
        0 18px 50px color-mix(in srgb, var(--text-dark) 16%, transparent),
        0 4px 12px color-mix(in srgb, var(--primary-blue) 10%, transparent);
    background: var(--surface);
}

@media (max-width: 900px) {
    .hero-image-frame {
        max-width: 480px;
        margin: 0 auto;
    }
}

@media (max-width: 640px) {
    .hero-image-frame {
        width: min(100%, 360px);
        max-width: 100%;
    }

    .hero-image-frame::before {
        inset: -12px;
        filter: blur(6px);
    }

    .hero-image-frame > img {
        border-radius: var(--radius-md);
        box-shadow:
            0 8px 24px color-mix(in srgb, var(--text-dark) 14%, transparent),
            0 2px 6px color-mix(in srgb, var(--primary-blue) 8%, transparent);
    }
}
