main {
    width: calc(100% - 2rem);
    margin: 0 auto;
}

h1 {
    margin-top: 0;
}

#gameContainer {
    margin-bottom: 1rem;
}

@media (min-width: 768px) {

    main {
        max-width: 700px;
    }

}

.start-frame,
.alert-frame,
.default-frame,
.time-up-frame {
    text-align: center;
    min-height: 250px;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
}

.alert-frame,
.default-frame {
    border: 1px solid var(--border-color);
    border-radius: var(--radius-large);
    box-sizing: border-box;
    overflow: hidden;
}

.alert-contents,
.default-frame,
.start-contents {
    padding: 2rem;
    background: radial-gradient(
    closest-side,
            rgba(255, 255, 255, 1) 80%,
            rgba(255, 255, 255, .5) 90%,
            rgba(255, 255, 255, 0) 100%
    );
    z-index: 2;
}

.alert-frame h2,
.default-frame h2,
.start-contents span.countdown {
    text-align: center;
    font-size: 2rem;
    font-weight: 400;
}

.alert-frame .icon,
.default-frame .icon {
    font-size: 2.5rem;
}

.alert-frame .countdown {
    font-size: 3.5rem;
}

.alert-frame span.float-up,
.game-body span.float-up {
    position: absolute;
    display: block;
    font-size: 18px;
    user-select: none;
    pointer-events: none;
    cursor: default;
    opacity: 0;
    top: 0;
    will-change: transform, opacity;
    animation-timing-function: ease-out;
    animation-name: move;
    z-index: 1;
}

@keyframes move {
    0% {
        opacity: 0;
        top: 100%;
    }
    25% {
        opacity: 1;
    }
    50% {
        opacity: 1;
    }
    75% {
        opacity: 0;
    }
    100% {
        opacity: 0;
        transform: none;
    }
}

.input-container {
    border: 1px solid var(--border-color);
    border-radius: var(--radius-large);
    height: 100%;
    width: 100%;
    padding: 4rem;
    box-sizing: border-box;
}

.input-container h2 {
    margin-top: 0;
    margin-bottom: 1rem;
    font-size: 2rem;
    text-align: center;
}

.input-container form {
    margin: 0 0 1rem;
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}

.input-container form input {
    max-width: 10rem;
    padding: .35rem .5rem;
    border-top: solid; border-bottom: solid; border-left: solid;
    border-right: none;
    border-width: 1px;
    border-color: var(--grey-800);
    background: var(--grey-900);
    box-sizing: border-box;
    appearance: none;
    font-size: 1.25rem;
    border-top-left-radius: var(--radius-large);
    border-bottom-left-radius: var(--radius-large);
}

.input-container form input:focus {
    outline: none;
}


.input-container form button {
    border: 1px solid var(--blue-900);
    padding: .35rem .5rem;
    text-align: center;
    box-sizing: border-box;
    background: var(--blue-900);
    color: var(--blue-primary);
    appearance: none;
    outline: none;
    cursor: pointer;
    font-size: 1.25rem;
    border-top-right-radius: var(--radius-large);
    border-bottom-right-radius: var(--radius-large);
}

.input-container form button:hover {
    border-color: var(--blue-800);
    background: var(--blue-800);
}

.input-container p {
    margin-top: 0;
    margin-bottom: 0;
    text-align: center;
}

.game-frame .game-header {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 1rem;
    align-items: start;
    padding: 1rem;
    box-sizing: border-box;
    background: var(--blue-primary);
    color: var(--primary-white);
    border-top-left-radius: var(--radius-large);
    border-top-right-radius: var(--radius-large);
    border: 1px solid var(--blue-primary);
}

.game-frame .game-header h2 {
    margin: 0;
}

.game-frame .game-header .game-user-label {
    display: block;
}

.game-frame .game-header i.fa-user-pen,
.game-frame .game-header i.fa-check-circle {
    cursor: pointer;
    color: var(--blue-900);
}


.game-frame .game-header i.fa-check-circle {
    display: none;
}

.game-frame .game-header input {
    padding: .15rem .35rem;
    text-align: right;
    display: none;
    width: 100px;
    background: var(--grey-900);
    border: none;
    border-radius: var(--radius-small);
}

.game-frame .game-header input:focus {
    outline: none;
}

.game-frame .game-header .game-user.edit .game-user-label {
    display: none;
}

.game-frame .game-header .game-user.edit i.fa-user-pen {
    display: none;
}

.game-frame .game-header .game-user.edit input {
    display: block
}

.game-frame .game-header .game-user.edit i.fa-check-circle {
    display: block;
}

.game-frame .game-header > div:last-child {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: .5rem;
}

.game-frame .game-body {
    position: relative;
    overflow: hidden;
    padding: 1rem;
    border-bottom-left-radius: var(--radius-large);
    border-bottom-right-radius: var(--radius-large);
    border: 1px solid var(--border-color);
}

.waiting-container {
    text-align: center;
    margin: 1rem 0;
}

.waiting-container h3 {
    margin-top: 0;
    font-size: 1.5rem;
}

.waiting-container .check-as-btn {
    position: relative;
    width: 200px;
    margin: 0 auto 1rem;
}

.waiting-container input + label {
    outline-color: transparent;
    color: var(--theme-success);
    background: var(--theme-success-light);
}

.waiting-container input:checked + label {
    background: var(--theme-success);
    color: var(--primary-white);
}

.waiting-container input + label > span.ready {
    display: none;
}

.waiting-container input + label > span.not-ready {
    display: inline;
}

.waiting-container input:checked + label > span.ready {
    display: inline;
}

.waiting-container input:checked + label > span.not-ready {
    display: none;
}

.waiting-container p {
    color: var(--grey-400);
}

.waiting-container .code {
    font-size: 1.5rem;
}

.waiting-container .code i {
    display: inline-block;
    margin: 0 .5rem;
    color: var(--theme-info);
    cursor: pointer;
}

.question-container {
    height: 100%;
    width: 100%;
}

.question-container h3 {
    margin: 0;
}

.question-container > .question-header {
    display: grid;
    grid-template-columns: 1fr auto;
    column-gap: 1rem;
    align-items: start;
    margin-bottom: 1rem;
}

.responses {
    padding: .75rem 2rem .25rem;
}

.responses .input-group {
    position: relative;
    padding: .25rem;
}

.responses input {
    float: left;
    margin-top: .75rem;
    transform: translateY(-50%);
    margin-right: .5rem;
}

.responses label {
    padding: .25rem;
    font-size: .95rem;
    font-weight: initial;
}

.responses .wrong {
    border: 2px solid red;
    border-radius: var(--radius-large);
}

.responses .right {
    border: 2px solid green;
    border-radius: var(--radius-large);
}

.question-container .footer {
    padding: 1rem;
}

.question-container .footer .question {
    text-align: right;
}

.question-container .footer .score {
    display: grid;
    grid-template-columns: 1fr auto;
}

.question-container .footer .score .right,
.question-container .footer .score .wrong {
    font-size: 1.25rem;
}

.question-container .footer .score .right {
    color: green;
}

.question-container .footer .score .wrong {
    color: red;
}

.footer #timeRemaining,
.footer #timeRemaining + i {
    display: inline-block;
}

.footer #timeRemaining {
    width: 2rem;
    text-align: right;
}

.question-container .footer .advance {
    display: none;
    border: none;
    outline: none;
    background: transparent;
    font-size: 1rem;
    margin: 0;
    padding: 0 2px;
    color: inherit;
    cursor: pointer;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

.question-container .footer .advance.allowed {
    display: inline-block;
}

.game-end {
    display: flex;
    align-items: center;
    justify-content: center;
}

.game-end .game-end-contents {
    padding: 3rem;
    text-align: center;
    background: radial-gradient(
    closest-side,
            rgba(255, 255, 255, 1) 80%,
            rgba(255, 255, 255, .5) 90%,
            rgba(255, 255, 255, 0) 100%
    );
    z-index: 2;
}

.game-end-contents h3 {
    margin-top: 0;
    font-size: 2rem;
}

#leaderboard {
    padding: 1rem;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-large);
    box-sizing: border-box;
    display: block;
}

#leaderboard h2 {
    margin-top: 0;
}

#leaderboard.hide {
    display: none;
}

#leaderboard .board-contents {
    display: grid;
    gap: 1rem;
    grid-template-columns: auto 1fr auto;

}

#leaderboard .fa-circle-exclamation {
    color: var(--theme-danger);
}

#leaderboard .fa-circle-check {
    color: var(--theme-success)
}

#leaderboard .fa-user {
    display: inline-block;
    margin-left: .5rem;
}
