/* Modal overlay */
/* Modal overlay */
.intro-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: #000020;
    background: -webkit-linear-gradient(135deg, rgba(0, 0, 32, 1) 0%, rgba(0, 0, 0, 1) 20%);
    background: -moz-linear-gradient(135deg, rgba(0, 0, 32, 1) 0%, rgba(0, 0, 0, 1) 20%);
    background: linear-gradient(135deg, rgba(0, 0, 32, 1) 0%, rgba(0, 0, 0, 1) 20%);
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#000020", endColorstr="#000000", GradientType=0);

    /* fully opaque by default */
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 9999;
    opacity: 1;
    visibility: visible;
    transition: opacity 0.6s ease, background-color 0.6s ease, visibility 0.6s ease;
}

.intro-modal.fade-out {
    opacity: 0;
    background-color: rgba(6, 8, 24, 0);
    /* fade background to transparent */
    visibility: hidden;
}

/* Responsive glowing button */
.button-3d {
    position: relative;
    width: 60vmin;
    height: 60vmin;
    max-width: 800px;
    max-height: 800px;
    min-width: 200px;
    min-height: 200px;
    border-radius: 50%;
    background: #0b0e15;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    overflow: hidden;

    /* Entry animation */
    opacity: 0;
    transform: scale(0.8);
    filter: blur(6px);
    animation: emerge 1.2s ease-out forwards, glow 3s infinite ease-in-out;
}

.button-3d::before {
    content: "";
    position: absolute;
    inset: 5vmin;
    border-radius: 50%;
    box-shadow:
        inset -5vmin -5vmin 7.5vmin rgba(255, 255, 255, 0.05),
        inset 5vmin 5vmin 7.5vmin rgba(0, 0, 0, 1);
}

.button-3d:hover {
    transform: scale(1.02);
}

.button-3d:active::before {
    box-shadow:
        inset -6vmin -6vmin 10vmin rgba(255, 255, 255, 0.04),
        inset 6vmin 6vmin 10vmin rgba(0, 0, 0, 1);
}

.button-3d img {
    width: 30vmin;
    height: auto;
    z-index: 1;
    user-select: none;
    pointer-events: none;
    transform: translateX(2.5vmin);
    transition: transform 0.2s ease-in-out;
}

.button-3d:active img {
    transform: translateX(2.5vmin) scale(0.9);
}

@keyframes emerge {
    0% {
        opacity: 0;
        transform: scale(0.8);
        filter: blur(6px);
    }

    100% {
        opacity: 1;
        transform: scale(1);
        filter: blur(0);
    }
}

@keyframes glow {
    0% {
        box-shadow: 0 0 30px rgba(140, 77, 217, 0.4);
    }

    50% {
        box-shadow: 0 0 80px rgba(140, 77, 217, 0.9);
    }

    100% {
        box-shadow: 0 0 30px rgba(140, 77, 217, 0.4);
    }
}

/* On mobile, lift the button higher */
@media (max-width: 768px) {
    .button-3d {
        margin-top: -25vmin;
    }
}