body {
    /* reset obs default css */
    background-color: transparent !important;
    margin: 0 !important;
    overflow: hidden !important;
}

main {
    width: 100vw;
    aspect-ratio: 16 / 9;
    background: linear-gradient(to bottom, #070721, #090977);
    position: relative;
    transition: opacity .3s ease;
}

    main > * {
        position: absolute;
        opacity: 0;
        transition: all .3s ease;
    }

#welcome {
    display: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1vw;
    width: 100%;
    height: 100%;
    backdrop-filter: blur(50px);
    position: absolute;
    top: 0;
    left: 0;
    z-index: 999;
}

    #welcome.visible {
        display: flex;
    }

    #welcome-message {
        font-size: 4.5vw;
        font-weight: 700;
        text-shadow: 0 0 .5vw rgba(0, 0, 0, .5);
    }

    #welcome-button {
        background: var(--correct-gradient);
        padding: 0 2vw;
        border-radius: 5vw;
        font-size: 2.2vw;
        line-height: 5vw;
        font-weight: 500;
        cursor: pointer;
        transition: transform .3s ease;
        box-shadow: 0 0 .5vw rgba(0, 0, 0, .5);
    }

        #welcome-button:hover {
            transform: scale(1.05);
        }

        #welcome-button:active {
            transform: scale(0.95);
        }