body {   
    font-family: "Space Grotesk", sans-serif;
    font-optical-sizing: auto;
    font-weight: 300;
    font-style: normal;
    color: white;
    margin: 0;
    background: linear-gradient(90deg, #ffffff29 1%, transparent 1%) 0vw 0, #000000;
    background-size: 10vw 1px;
}

#loader {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 1;
  width: 120px;
  height: 120px;
  margin: -76px 0 0 -76px;
  border: 5px solid transparent;
  border-radius: 50%;
  border-top: 5px solid white;
  -webkit-animation: spin 2s linear infinite;
  animation: spin 2s linear infinite;
}

.animate-bottom {
  position: relative;
  -webkit-animation-name: appear;
  -webkit-animation-duration: 1s;
  animation-name: appear;
  animation-duration: 1s
}

@-webkit-keyframes animatebottom {
  from { opacity:0 } 
  to { opacity:1 }
}

@keyframes animatebottom { 
  from{ opacity:0 } 
  to{ opacity:1 }
}

@-webkit-keyframes spin {
  0% { -webkit-transform: rotate(0deg); }
  100% { -webkit-transform: rotate(360deg); }
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* Add animation to "page content" */
.animate-bottom {
  position: relative;
  -webkit-animation-name: animatebottom;
  -webkit-animation-duration: 1s;
  animation-name: animatebottom;
  animation-duration: 1s
}

@-webkit-keyframes animatebottom {
  from { bottom:-100px; opacity:0 } 
  to { bottom:0px; opacity:1 }
}

@keyframes animatebottom { 
  from{ bottom:-100px; opacity:0 } 
  to{ bottom:0; opacity:1 }
}

.logo {
    color: white;
    text-decoration: none;
}

.social-links {
    position: fixed;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    height: 100%;
    gap: 3vh;
    font-size: 6vh;
    margin-left: 4vh;
}
    .social-links a {
        color: white;
        display: flex;
        align-items: center;
        text-decoration: none;
    }


.header-wrap {
    background-color: black;
    width: 100%;
    position: fixed;
    top: 0;
}
.main-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 80vw;
    margin: auto;
    padding: 2vh 0;
}
    .main-header .logo {
        display: flex;
        align-items: center;
        font-weight: 900;
        font-size: 6vh;
    }
    .main-header .menu {
        display: flex;
        align-items: center;
        padding: 1vh 2vh;
        font-size: 4vh;
        gap: 2vh;
        border: 2px solid white;
        text-transform: uppercase;
        font-weight: 600;
        color: black;
        text-decoration: none;
        background-color: white;
        transition: all 0.1s ease-in-out;
    }
        .main-header .menu:hover {
            background: black;
            color: white;
        }
    #menu {
        position: absolute;
        right: 0;
        top: 0;
        width: 100%;
    }
        #menu ul {
            list-style-type: none;
            position: fixed;
            text-align: right;
            margin: 0;
            background: white;
            font-size: 7vh;
            padding: 4vh 4vh;
            min-width: 45%;
            height: 100%;
            right: 0;
        }
            #menu ul li a {
                color: black;
                text-decoration: none;
                display: block;
                transition: all 0.1s ease-in-out;
                border-bottom: 1px solid black;
            }
                #menu .exit-menu {
                    font-weight: 900;
                }
            #menu ul li a:hover {
                opacity: 0.4;
            }
        
    .hero {
        display: flex;
        align-items: center;
        justify-content: space-between;
        max-width: 89.2vw;
        margin-left: auto;
        padding: 25vh 0;
        padding-bottom: 0vh;
    }
        .hero img {
            width: 20vw;
        }
        .hero .right {
            margin-right: 8.6vw;
            width: 51vw;
        }
            .hero .right h1 {
                font-size: 8.4vw;
                margin: 0 0;
            }
                .hero .right h1 .salva {
                    text-decoration: underline;
                }
        
            .hero .right h3 {
                margin: 0;
                font-size: 3vh;
                margin-left: 1vh;
            }
        
        .hero .left {
            display: block;
        }
            .hero .right .button {
                background: white;
                display: inline-flex;
                align-items: center;
                font-weight: 600;
                text-transform: uppercase;
                color: black;
                font-size: 2vh;
                text-decoration: none;
                margin: 1vw 0 0 1vh;
                padding: 2vh 3vw;
            }
                .hero .right .button:hover {
                    background: black;
                    color: white;
                    text-decoration: none;
                }

    .about-me {
        max-width: 60vw;
        margin: auto;
        text-align: justify;
        font-size: 5vh;
        font-weight: 300;
        margin-top: 30vh;
    }
        .about-me a {
            color: black;
            background-color: white;
            transition: all 0.1s ease-in-out;
        }
        .about-me a:hover {
            background-color: transparent;
            color: white;
            text-decoration: none;
        }

    .gallery {
        max-width: 80vw;
        margin-left: 10vw;
        display: flex;
        flex-direction: column;;
        margin-top: 30vh;
    }
        .gallery ul {
            list-style-type: none;   
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            grid-template-rows: 1fr;
            grid-column-gap: 5px;
            grid-row-gap: 0;
            padding: 0;
            margin: 0;
        }
            .gallery ul li img {
                width: 100%;
                max-height: 38vh;
            }
            .gallery ul li h2 {
                font-size: 3vh;
                margin: 0;
                margin-top: 2vh;
            }
            .gallery ul li h4 {
                margin: auto;
            }
            .gallery ul li .description {
                margin-bottom: 2vh;
            }
            .gallery .button {
                color: black;
                display: inline-block;
                text-decoration: underline;
                background: white;
                font-weight: 500;
                max-width: 29vw;
                text-transform: uppercase;
                font-size: 2vh;
                text-align: center;
                padding: 2vh 4.7vw;
                align-self: flex-end;
                transition: all 0.1s ease-in-out;
            }
                .gallery .button:hover {
                    background: black;
                    color: white;
                    text-decoration: none;
                }
            .gallery .section-title {
                font-weight: 400;
                font-size: 4vw;
            }
    
    footer {
        max-width: 81vw;
        margin-left: 10vw;
        padding: 5vh 0;
        margin-top: 3vh;
        font-size: 2vw;
        background: black;
    }

@media screen and (width <= 600px) {
    #menu ul {
        min-width: 100%;
        padding-right: 0;
    }
        #menu ul li {
            padding: 0 2vw;
        }

    .social-links {
        position: absolute;
        width: 85%;
        height: 85%;
    }

    .hero {
        align-items: flex-end;
        flex-direction: column;
        max-width: 100%;
        padding-bottom: 2vh;
        padding-top: 16vh;
    }
        .hero img {
            width: 76vw;
        }
        .hero .right {
            width: 90%;
            margin: auto;
            text-align: center;
        }
        .hero .right h3 {
            margin-left: 0;
            text-align: right;
            font-size: 2vh;
            font-weight: 400;
        }
            .hero .right .button {
                margin: 3vh 0;
                padding: 2vh 25vw;
            }
            .hero .right h1 {
                font-size: 12vw;
                text-align: right;
            }

    .about-me {
        text-align: justify;
        font-size: 3vh;
        max-width: 90%;
        margin-top: 0vh;
    }

    .gallery {
        margin-top: 10vh;
    }
        .gallery ul {
            display: grid;
            grid-template-columns: 1fr;
            grid-template-rows: repeat(3, 1fr);
            grid-column-gap: 0px;
            grid-row-gap: 0px;
        }
        .gallery .section-title {
            font-size: 6vh;
            text-align: center;
        }
    .gallery .button {
        max-width: 45vw;
    }
}