* {
    padding: 0;
    margin: 0;
}

html {
    height: 100%;
}

a {
    color: rgb(40, 40, 40);
}

a:not(.displayWrapper):hover {
    color: rgb(120, 120, 120);
}

/* Header */

header {
    width: 100%;
    height: 8vh;
    background-color: rgb(30, 30, 30);
}

header img {
    float: left;

    border-radius: 16px;

    margin-top: 0.5vh;
    margin-left: 0.5vw;
}

header nav {
    margin-left: 10%;
    height: 100%;
}

header .navList {
    height: 100%;
    list-style-type: none;
    list-style-position: none;
    display: inline;
}

header .navList li {
    display: inline;
}

header .navList a {
    padding-left: 1em;
    padding-right: 1em;
    font-size: 7vh;
    text-decoration: none;

    color: rgb(200, 200, 200);
    background-color: rgb(30, 30, 30);

    transition: background-color linear 0.2s, color linear 0.2s;
}

header .navList a:hover {
    color: rgb(120, 120, 120);
    background-color: rgb(50, 50, 50);
}

@media only screen and (max-width: 600px) {
    header {
        height: 6vh;
    }

    header nav {
        margin-left: 10%;
    }

    header .navList a {
        font-size: 5vh;
        padding-left: 2vw;
        padding-right: 2vw;
    }
}

@media only screen and (max-width: 400px) {
    header {
        height: 5vh;
    }

    header .navList a {
        font-size: 4vh;
        padding-left: 1vw;
        padding-right: 1vw;
    }
}

/* Body */

body {
    height: 100%;
    background-color: rgb(40, 40, 40);

    display: flex;
    flex-direction: column;
}

main {
    flex: 1 0 auto;

    background-color: rgb(75, 75, 75);
    text-align: center;

    width: 80vw;
    margin: 0 auto 0 auto;
    padding: 20px;
}

/* Footer */

footer {
    background-color: rgb(30, 30, 30);

    flex-shrink: 0;

    height: 2em;
    width: 100%;
}