.gamescreen {
    font: bold 100px sans-serif;
    color: black;
}

.hidden {
    /*display: none !important;*/
    display: none;
}

body {
    background-color: black;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    height: 90vh;
}

div {
    width: 640px;
    height: 480px;
    border: 1px solid white;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

div.hidden {
    display: none; /* this selector is higher in the css hierarchy, avoids having to use the !important override on the .hidden selector above */
}

#gameCanvas {
    border: 1px solid white;
    background-color: black;
}

#gameContainerDiv {
    position: relative; /* ensure the container is a positioned ancestor for the pauseDiv */
}

#pauseDiv.gamescreen {
    border: none;
    background-color: white;
    opacity: 0.5;
    position: absolute; /* position the pauseDiv relative to the nearest positioned ancestor */
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 2; /* ensure the pauseDiv appears on top */
}

#pauseSpan {
    text-align: center;
}