* {
    margin: 0;
    padding: 0;
}

.container {
    font-family: 'Montserrat', sans-serif;
}

.banner {
    width: 100%;
    height: 100vh;
    background: linear-gradient(rgba(0, 0, 0, .7), rgba(0, 0, 0, .8)), url(images/banner-bg.jpeg) center no-repeat;
    background-size: cover;
}

.logo {
    height: 80px;
    width: 80px;
    position: fixed;
    top: 20px;
    left: 50px;
    z-index: 100;
}

.logo img {
    width: 100%;
}

.hamburger-menu {
    width: 35px;
    height: 30px;
    position: fixed;
    top: 40px;
    right: 50px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    cursor: pointer;
    z-index: 100;
}

.line {
    width: inherit;
    height: 5px;
    background-color: #16c3cf;
    border-radius: 25px;
    transform-origin: right;
    transition: transform 0.5s;
}

.change .line-1 {
    transform: rotateZ(-45deg);
}

.line-2 {
    height: 3px;
}

.change .line-2 {
    transform: translate(5px, 20px);
}

.change .line-3 {
    transform: rotateZ(45deg);
}

.btn-wrapper {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    perspective: 1000px;
}

.banner-btn {
    width: 350px;
    height: 100px;
    background: linear-gradient(#16c3cf, #156169);
    border: none;
    outline: none;
    font-family: 'Slabo 27px', serif;
    font-size: 35px;
    text-transform: uppercase;
    letter-spacing: 4px;
    color: #fff;
    text-shadow: 0 10px 10px black;
    cursor: pointer;
    transform: rotateX(70deg) rotateZ(30deg);
    transform-style: preserve-3d;
    transition: transform .3s;
}

.banner-btn:hover {
    transform: rotateX(30deg) rotateZ(0deg);
}

.banner-btn::before {
    content: '';
    width: 100%;
    height: 15px;
    background-color: #156469;
    position: absolute;
    bottom: 0;
    right: 0;
    transform: rotateX(90deg);
    transform-origin: bottom;
}

.banner-btn::after {
    content: '';
    width: 15px;
    height: 100%;
    background-color: #16c3cf;
    position: absolute;
    top: 0;
    right: 0;
    transform: rotateY(-90deg);
    transform-origin: right;
}

.top-nav {
    width: 100%;
    height: 15vh;
    background: linear-gradient(rgba(0,0,0,.8), rgba(0,0,0,.8)), url(images/nav-bg.jpeg) no-repeat 50% 0;
    background-size: cover;
    position: fixed;
    top: -15vh;
    z-index: 50;
    transition: top .4s;
}

.change .top-nav {
    top: 0;
}

.nav-list {
    list-style: none;
    width: 80%;
    margin: auto;
    height: inherit;
    display: flex;
    justify-content: space-evenly;
    align-items: center;
}

.nav-list li {
    perspective: 500px;
}

.nav-link {
    text-decoration: none;
    font-family: 'Slabo 27px', serif;
    font-size: 30px;
    text-transform: uppercase;
    color: #cccccc;
    background-color: black;
    letter-spacing: 1px;
    padding: 5px 10px;
    display: block;
    position: relative;
    transform-style: preserve-3d;
    transform-origin: top;
    transition: transform .3s;
}

.nav-link:hover {
    transform: rotateX(90deg);
}

.nav-link::after {
    content: attr(data-text);
    position: absolute;
    left: 0;
    bottom: -100%;
    background-color: black;
    padding: inherit;
    color: #16c3cf;
    transform: rotateX(-90deg);
    transform-origin: top;
}

.bottom-nav {
    width: 100%;
    height: 85vh;
    background: linear-gradient(rgba(0,0,0,.8), rgba(0,0,0,.8)), url(images/nav-bg.jpeg) no-repeat 50% -15vh;
    background-size: cover;
    position: fixed;
    bottom: -85vh;
    transition: bottom .4s;
}

.change .bottom-nav {
    bottom: 0;
}

.icons {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    list-style: none;
    display: flex;
    width: 60%;
    justify-content: space-between;
}

.icon-item {
    perspective: 1000px;
}

.icon-link {
    width: 200px;
    height: 200px;
    border: 8px solid white;
    display: flex;
    justify-content: center;
    align-items: center;
    text-decoration: none;
    border-radius: 5px;
    transform-style: preserve-3d;
    transition: transform .5s;
}

.icon-link:hover {
    transform: rotateY(35deg);
}

.icon-link::before {
    content: '';
    height: 25px;
    width: 5px;
    background-color: white;
    position: absolute;
    top: 0;
}

.icon-link::after {
    content: '';
    height: 25px;
    width: 5px;
    background-color: white;
    position: absolute;
    bottom: 0;
}

.icon-link i {
    color: white;
    font-size: 50px;
    width: 150px;
    height: 150px;
    background-color: #555;
    display: flex;
    justify-content: center;
    align-items: center;
    border: 3px solid white;
    text-shadow: 0 10px 20px rgba(0,0,0,.5);
    transition: all .5s;
    position: relative;
    overflow: hidden;
}

.icon-link:hover i {
    transform: rotateY(-70deg);
    text-shadow: 10px 10px 20px rgba(0,0,0,.5);
}

.icon-link i::after {
    content: '';
    height: 100%;
    width: 100%;
    position: absolute;
    top: -130%;
    right: -130%;
    border-radius: 100%;
    transition: all .3s;
    z-index: -1;
}

.icon-item:nth-child(1) .icon-link i::after {
    background-color: #3b5999;
}

.icon-item:nth-child(2) .icon-link i::after {
    background-color: #cd201f;
}

.icon-item:nth-child(3) .icon-link i::after {
    background-color: #55acee;
}

.icon-item:nth-child(4) .icon-link i::after {
    background-color: #dd4b39;
}

.icon-link:hover i::after {
    top: 0;
    right: 0;
    border-radius: 0;
}

@media (max-width: 1600px) {
    .icons {
        width: 80%;
    }
}

@media (max-width: 1200px) {
    .top-nav {
        background: #010101;
    }

    .nav-list {
        justify-content: center;
    }

    .nav-link {
        font-size: 25px;
    }

    .icons {
        width: 70%;
        flex-wrap: wrap;
        align-content: center;
        justify-content: center;
    }

    .icon-link {
        width: 180px;
        height: 180px;
        margin: 20px;
    }

    .icon-link i {
        width: 130px;
        height: 130px;
        font-size: 40px;
    }
}

@media (max-width: 900px) {
    .banner-btn {
        width: 300px;
        height: 80px;
        font-size: 30px;
    }

    .top-nav {
        height: 25vh;
        top: -25vh;
    }

    .bottom-nav {
        height: 75vh;
        bottom: -75vh;
    }

    .nav-list {
        width: 70%;
        flex-wrap: wrap;
        align-content: center;
    }

    .nav-link {
        margin: 3px 0;
    }

    .icons {
        width: 95%;
    }

    .icon-link {
        width: 140px;
        height: 140px;
    }

    .icon-link i {
        width: 90px;
        height: 90px;
        font-size: 30px;
    }
}

@media (max-width: 750px) {
    .nav-list {
        width: 60%;
    }

    .icon-link {
        width: 120px;
        height: 120px;
    }

    .icon-link i {
        width: 70px;
        height: 70px;
    }
}

@media (max-width: 550px) {
    .banner-btn {
        width: 280px;
        height: 70px;
        font-size: 25px;
    }

    .logo {
        width: 70px;
        height: 70px;
        left: 30px;
    }

    .top-nav {
        height: 30vh;
        top: -30vh;
    }

    .bottom-nav {
        height: 70vh;
        bottom: -70vh;
    }

    .icon-link {
        width: 110px;
        height: 110px;
    }

    .icon-link i {
        width: 60px;
        height: 60px;
    }
}

@media (max-width: 450px) {
    .banner-btn {
        width: 260px;
        height: 60px;
    }

    .top-nav {
        height: 35vh;
        top: -35vh;
    }

    .bottom-nav {
        height: 65vh;
        bottom: -65vh;
    }

    .nav-list {
        width: 50%;
    }
}