* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

.grid {
    display: grid;
    width: 100%;
    height: 100%;
    grid-template-rows: 8vh 3fr 120vh 10vh;
    grid-template-areas: "a"
                         "b"
                         "c"
                         "d";
}

.flex-container {
    display: flex;
}

body {
    background-image: url("images/highway_low.jpg");
    background-size: contain;
    height: 200vh;
    overflow-x: hidden;
}

#top {
    grid-area: a;
    justify-content: flex-end;
    align-items: center;
    background-color: rgba(50,50,50,0.5);
    backdrop-filter: blur(8px);
    color: rgb(240, 240, 240);
    font-family: 'Noto Sans', sans-serif;
}

#top section {
    font-size: 150%;
    width: 100%;
    text-align: center;
}

#top img {
    height: 65%;
    padding-right: 2%;
}

#top div {
    visibility: hidden;
    position: absolute;
}

#loading {
    position: absolute;
    width: 100vw;
    height: 200vh;
    background-color: rgb(40,40,40);
    transition: opacity 2.5s;
    pointer-events: none;
}

#middle {
    grid-area: b;
    display: flex;
    color: white;
    align-items: center;
    justify-content: center;
    font-size: 10vw;
    font-family: 'Oxygen', 'sans-serif';
    font-style: italic;
    font-weight: 700;
    text-shadow: 2px 2px rgb(60,60,60);
}

#bottom {
    grid-area: c;
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: 15vh 1fr 15vh 1fr;
    grid-template-areas: "aa"
                         "ab"
                         "ac"
                         "ad";
    background-color: rgb(230, 230, 230);
    font-size: xx-small;
    font-family: 'Oxygen', sans-serif;
    padding: 5%;
}

#bottom div {
    display: flex;
    justify-content: center;
}

#area1, #area3 {
    font-size: 6vw;
    text-align: center;
    align-items: center;
}

#area2, #area4 {
    font-size: 3vw;
}

#area1 {
    grid-area: aa;
}

#area2 {
    grid-area: ab;
}

#area3 {
    grid-area: ac;
}

#area4 {
    grid-area: ad;
}

#dropdown, #black {
    width: 100%;
    position: absolute;
    visibility: hidden;
}

#dropdown {
    top: 8vh;
    background-color: rgba(50,50,50,0.5);
    height: 20vh;
    display: grid;
    grid-template-rows: 1fr 1fr 1fr 1fr 1fr;
    grid-template-columns: 1fr;
    grid-area: "ba"
               "bb"
               "bc"
               "bd"
               "be";
}

#link1, #link2, #link3, #link4, #link5 {
    display: flex;
    align-items: center;
    padding-left: 6px;
    font-family: 'Noto Sans', sans-serif;
    font-weight: 800;
    font-size: small;
    color: rgb(240, 240, 240);
    text-decoration: none;
}

#black {
    top: 28vh;
    background-color: rgba(0,0,0,0.5);
    height: 172vh;
}

.circle, circle img {
    border-radius: 50%;
}

.circle {
    background-color: rgb(240, 240, 240);
    width: 90px;
    height: 90px;
}

.circle img {
    height: 100%;
    width: 100%;
}

footer {
    grid-area: d;
    background-color: grey;
    color: rgb(240, 240, 240);
    display: flex;
    align-items: flex-end;
    padding: 1vh;
    font-family: 'Noto Sans', sans-serif;
    font-size: 2vh;
}

@media screen and (min-width: 768px) and (max-width: 1023px) {
    body {
        background-image: url("../images/highway_low.jpg");
    }

    #top section {
        text-align: left;
        padding-left: 2vw;
        font-size: 4vw;
    }

    #area1, #area3 {
        font-size: 4vw;
    }

    #area2, #area4 {
        font-size: 2vw;
    }

    #bottom div .circle {
        width: 180px;
        height: 180px;
    }

}

@media screen and (min-width: 1024px) {
    body {
        background-image: url("../images/highway.jpg");   
        background-position: 0vh 100vh;
    }

    #top {
        justify-content: center;
    }

    #top section {
        padding-left: 2vw;
        font-size: 2vw;
        font-weight: 900;
        width: 20%;
        text-align: left;
    }

    #top div {
        width: 16%;
        text-align: center;
        visibility: visible;
        position: static;
        font-size: 1vw;
    }

    #top div a {
        text-decoration: none;
        color: white;
    }

    #top div a:hover {
        text-decoration: underline;
    }

    #top img {
        visibility: hidden;
        position: absolute;
    }

    #middle {
        font-size: 5vw;
    }

    #area1, #area3 {
        font-size: 1.8vw;
    }

    #area2, #area4 {
        font-size: 0.8vw;
    }

    #bottom div .circle {
        width: 10vw;
        height: 10vw;
    }

    footer {
        font-size: 0.8vw;
    }
}