.site-header {
    background: var(--background-color);
    overflow: hidden;
    padding: 20px 20px 0 15px; /* TRBL */
    /* Animation */
    transition-property: background;
    will-change: background;
    transition-duration: var(--theme-transition-duration), var(--theme-transition-duration);
    transition-timing-function: var(--theme-transition-function), var(--theme-transition-function);
    transition-delay: 0ms;
}

.site-header a {
    --svg-color: var(--faded-accent-color);
    color: var(--faded-accent-color);
    text-align: center;
    padding: 10px 20px; /* VH */
    font-size: 6vw;
    /* Animation */
    transition-property: color, stroke, fill;
    transition-duration: var(--theme-transition-duration), var(--theme-transition-duration);
    transition-timing-function: var(--theme-transition-function), var(--theme-transition-function);
    transition-delay: 0ms;
}
.site-header a.active, .site-header a:hover {
    color: var(--accent-color);
    --svg-color: var(--accent-color);
}
.site-header a:hover {
    transition-property: none;
}

.site-header #contact-link {
    position: fixed;
    top: 20px;
    right: var(--page-padding);
    color: var(--background-color);
}
.accent-button {
    /* The Say Hi button, this is reused as the overlay buttons */
    font-family: var(--title-family);
    color: var(--background-color);
    background: var(--accent-color);
    padding: 10px 20px;
    text-align: center;
    /* Animation */
    transition-property: background, color;
    will-change: background, color;
    transition-duration: var(--theme-transition-duration), var(--theme-transition-duration);
    transition-timing-function: var(--theme-transition-function), var(--theme-transition-function);
    transition-delay: 0ms;
}
.site-header a:not(.always-visible) {
    display: none;
}
.hidden-until-responsive {
    /* When clicking on the menu button, the responsive class is added. Every .hidden-until-responsive interacts with that class. */
    display: none;
    text-align: center;
}

.site-header.responsive > a,
.site-header.responsive > div:not(.hidden-until-responsive) > a,
.site-header.responsive .hidden-until-responsive {
    display: block;
}

.site-header a.icon {
    float: left;
    display: block;
    text-align: left;
}

.sub-header-container {
    display: flex;
    width: 100%;
    justify-content: space-between;
    align-items: center;
    border-bottom: 3px solid transparent;
    transition-property: border-bottom-color;
    transition-duration: var(--theme-transition-duration), var(--theme-transition-duration);
    transition-timing-function: var(--theme-transition-function), var(--theme-transition-function);
    transition-delay: 0ms;
}
.scrolling-body .sub-header-container {
    border-bottom-color: var(--accent-color);
}
.sub-header-container > div {
    flex-grow: 1;
    flex-shrink: 0;
    flex-basis: 0;
}
.sub-header-container > #sub-header {
    flex-grow: 4;
}

#game-controller-container {
    vertical-align: middle;
    position: fixed;
    left: 50%;
    transform: translateX(-50%);
    top: 10px;
    z-index: 2;
}

#game-controller-container>* {
    color: var(--accent-color);
    display: inline-block;
    padding-left: 0;
    vertical-align: middle;
    text-align: right;
}

#game-toggle {
    font-size: 8vw;
}

#game-score {
    opacity: 1;
    font-size: 6vw;
    /* Animation */
    transition-property: color, opacity;
    will-change: color, opacity;
    transition-duration: var(--theme-transition-duration);
    transition-timing-function: var(--theme-transition-function);
}

#game-score.inactive {
    opacity: var(--score-transparency);
}


@media screen and (min-width: 800px) {
    .hidden-until-responsive {
        display: none !important;
    }
    .site-header #navbar-block a {
        display: block;
        float: left;
    }

    .site-header a.icon {
        display: none;
    }

    .site-header a {
        font-size: 3vw; /* For browsers that don't have max() */
        font-size: max(3vw, 30px);
    }

    .sub-header-container > #sub-header {
        flex-grow: 3;
    }
    .sub-header-container > #spacer2 {
        display: none;
    }

    #game-controller-container {
        text-align: right;
        transform: none;
        position: static;
        display: table;
    }

    #game-toggle {
        font-size: calc(3vw + 2rem);
        padding-bottom: 0;
    }
    #game-score {
        font-size: calc(3vw + 2rem);
    }

    .site-header a:not(.always-visible) {
        margin-right: calc(5vw - 20px);
    }
}

@media screen and (max-width: 799px) {
    .site-header.responsive {
        position: fixed;
        height: 100%;
        width: 100%;
        z-index: 2;
    }

    .site-header.responsive > div:not(.hidden-until-responsive)>a {
        float: none;
        display: block;
    }

    .site-header.responsive > .hidden-until-responsive>a {
        display: inline-block;
    }

    .site-header.responsive > .hidden-until-responsive:not(.tos-container) > a {
        color: var(--accent-color);
        font-size: 10vw;
    }

    .site-header.responsive > #navbar-block > a {
        padding-top: 5vh;
        padding-bottom: 5vh;
        font-size: 10vw;
    }

    .site-header.responsive > #navbar-block > a:first-child {
        margin-top: 10vh;
    }

    .site-header.responsive > #navbar-block > a:last-child {
        margin-bottom: 5vh;
    }
    .site-header.site-header.responsive #sub-header {
        display: none;
    }
}

.tos-container > a {
    display: inline-block;
    color: var(--faded-accent-color);
    font-size: 1em;
    /* Animation */
    transition-property: color;
    will-change: color;
    transition-duration: var(--theme-transition-duration);
    transition-timing-function: var(--theme-transition-function);
}

.tos-container {
    position: fixed;
    color: var(--faded-accent-color);
    /* Animation */
    transition-property: color;
    will-change: color;
    transition-duration: var(--theme-transition-duration);
    transition-timing-function: var(--theme-transition-function);
    justify-content: center;
    width: 100%;
}

.tos-container > a:hover {
    color: var(--accent-color);
    /* Animation */
    transition-property: color;
    will-change: color;
    transition-duration: var(--theme-hover-duration);
    transition-timing-function: var(--theme-transition-function);
}

.switchers-container {
    text-align: right;
    display: flex;
    align-items: center;
    flex-direction: column-reverse;
    font-size: 2.8em;
    color: var(--accent-color);
    flex-shrink: 0;
}

.switchers-container > div > #lang-switcher {
    color: var(--faded-accent-color);
    padding: 5px;
    /* Animation */
    will-change: color;
    transition-property: color;
}

.switchers-container > div > #lang-switcher:not(.disabled):hover {
    /* When hovering the color goes from faded-accent to normal accent. Change the transition duration so the hover animation is faster */
    color: var(--accent-color);
    transition-duration: var(--theme-hover-duration);
}

.switchers-container > div > #lang-switcher.disabled {
    pointer-events: none;
    cursor: default;
    color: var(--accent-color);
}

.hidden-until-responsive.tos-container {
    bottom: 0;
}

.hidden-until-responsive #theme-toggle {
    font-size: 2.7rem;
    padding: 0px;
    margin-top: 3px;
}

.hidden-until-responsive #lang-switcher {
    font-size: 2.7rem;
}

#designedbycontainer {
    position: relative;
}

#designedbycontainer.ee:hover > #designer::after {
    /* Ignore this, thanks */
    content: '💩';
    position: absolute;
    bottom: -15px;
    font-size: xx-large;
    right: 45px;
}

.home-link {
    margin: 0 !important;
    padding-block: 0 !important;

}
.home-link > svg {
    height: calc(max(3vw, 30px) * 1.5);
    aspect-ratio: 1;
}

.cta-button {
    /* The Say Hi button, this is reused as the overlay buttons */
    font-family: var(--title-family);
    color: var(--background-color);
    padding: 10px 20px;
    text-align: center;
    --bg-color-1: var(--tv-color-1);
    --bg-color-2: var(--tv-color-2);
    --bg-color-3: var(--tv-color-3);
    --bg-color-4: var(--tv-color-4);
    --bg-color-5: var(--tv-color-5);
    --bg-color-6: var(--tv-color-6);
    background: linear-gradient(to right,
        var(--bg-color-1) calc(1 / 6 * 100%),
        var(--bg-color-2) calc(1 / 6 * 100%), var(--bg-color-2) calc(1 / 3 * 100%),
        var(--bg-color-3) calc(1 / 3 * 100%), var(--bg-color-3) 50%,
        var(--bg-color-4) 50%, var(--bg-color-4) calc(2 / 3 * 100%),
        var(--bg-color-5) calc(2 / 3 * 100%), var(--bg-color-5) calc(5 / 6 * 100%),
        var(--bg-color-6) calc(5 / 6 * 100%)
    );
    animation: shiftColors 3s infinite steps(5);
}
    
@keyframes shiftColors {
    0% {
        --bg-color-1: var(--tv-color-1);
        --bg-color-2: var(--tv-color-2);
        --bg-color-3: var(--tv-color-3);
        --bg-color-4: var(--tv-color-4);
        --bg-color-5: var(--tv-color-5);
        --bg-color-6: var(--tv-color-6);
    }
    16% {
        --bg-color-1: var(--tv-color-6);
        --bg-color-2: var(--tv-color-1);
        --bg-color-3: var(--tv-color-2);
        --bg-color-4: var(--tv-color-3);
        --bg-color-5: var(--tv-color-4);
        --bg-color-6: var(--tv-color-5);
    }
    33% {
        --bg-color-1: var(--tv-color-5);
        --bg-color-2: var(--tv-color-6);
        --bg-color-3: var(--tv-color-1);
        --bg-color-4: var(--tv-color-2);
        --bg-color-5: var(--tv-color-3);
        --bg-color-6: var(--tv-color-4);
    }
    50% {
        --bg-color-1: var(--tv-color-4);
        --bg-color-2: var(--tv-color-5);
        --bg-color-3: var(--tv-color-6);
        --bg-color-4: var(--tv-color-1);
        --bg-color-5: var(--tv-color-2);
        --bg-color-6: var(--tv-color-3);
    }
    66% {
        --bg-color-1: var(--tv-color-3);
        --bg-color-2: var(--tv-color-4);
        --bg-color-3: var(--tv-color-5);
        --bg-color-4: var(--tv-color-6);
        --bg-color-5: var(--tv-color-1);
        --bg-color-6: var(--tv-color-2);
    }
    83% {
        --bg-color-1: var(--tv-color-2);
        --bg-color-2: var(--tv-color-3);
        --bg-color-3: var(--tv-color-4);
        --bg-color-4: var(--tv-color-5);
        --bg-color-5: var(--tv-color-6);
        --bg-color-6: var(--tv-color-1);
    }
}