/* general */
@font-face {
    font-family: 'GT Walsheim';
    src: url('../font/GT-Walsheim-Regular.woff2') format('woff2'),
         url('../font/GT-Walsheim-Regular.woff') format('woff');
    font-weight: 400;
    font-style: normal;
}
* {
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}
body {
    font-family: 'GT Walsheim', sans-serif;
}
:root {
    --WhiteColor: white;
    --BlackColor: #000000;
    --MenuBackground: #f4f4f4;
    --GreenColor: #9fab79;
    --TitleColor: #3a3b3c;
}

/* intro */
.intro-image-box {
    z-index: 1000;
    position: fixed;
    width: 100vw;
    height: 100vh;
    animation: fadeAway 1000ms ease 3000ms 1 forwards;
}
.fade-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}
@keyframes fadeAway {
    0% {
        transform: translateY(0);
        opacity: 1;
    }
    80% {
        opacity: 0;
    }
    100% {
        transform: translateY(-100vh);
        opacity: 0;
    }
}

/* main */
.main-section {
    position: relative;
    width: 100vw;
    height: auto;
    display: flex;
    flex-direction: column;
    gap: 8vh;
}

/* herosection */
.herosection-box {
    width: 100%;
    height: auto;
    display: grid;
    grid-template-columns: 1fr;
}
.herosection-image-box {
    order: 1;
}
.herosection-image {
    width: 100%;
    height: 85vh;
    display: flex;
    justify-content: center;
    align-items: center;
}
.img-herosection {
    width: auto;
    height: 90%;
}
.herosection-text-box {
    order: 2;
    display: flex;
    justify-content: center;
    align-items: center;
}
.herosection-text {
    width: min(85%, 420px);
    height: 100%;
    padding: 0.5rem;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    flex-direction: column;
    text-align: right;
    gap: 2rem;
}
.herosection-text h1 {
    font-size: 2.8rem;
    color: var(--TitleColor);
}
.herosection-text a {
    overflow: hidden;
    width: 0%;
    right: 0;
    text-wrap: nowrap;
    font-size: 1.4rem;
    text-decoration: none;
    color: var(--TitleColor);
    display: inline-flex;
    align-items: center;
    animation: textExpansion 1200ms ease 1800ms 1 forwards;
    transition: color 150ms ease;
}
@keyframes textExpansion {
    0% {
        width: 0%;
    }
    100% {
        width: 100%;
    }
}
.herosection-text a:hover {
    color: rgb(255, 162, 0);
}
.herosection-text span {
    font-size: 2rem;
    padding-left: 0.2rem;
}
@media screen and (min-width: 769px) {
    .herosection-box {
        height: 85vh;
        grid-template-columns: repeat(2, 1fr);
    }
    .herosection-image-box {
        order: 2;
    }
    .herosection-image {
        padding-left: 2vw;
        justify-content: flex-start;
    }
    .herosection-text-box {
        order: 1;
        justify-content: flex-end;
    }
    .herosection-text {
        padding: 2rem;
    }
    .herosection-text h1 {
        font-size: 3rem;
    }
    .herosection-text a {
        font-size: 1.6rem;
    }
}

/* projects */
.projects-box {
    width: 100vw;
    height: auto;
}
.project-box-odd, .project-box-even {
    width: 100vw;
    height: 65vh;
    padding: 1rem;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    grid-template-rows: 1fr 1fr 1fr 1fr;
    transform: translateY(50px);
    opacity: 0;
    transition: transform 0.5s ease, opacity 0.5s ease;
}
.project-box-odd.animate, .project-box-even.animate {
    transform: translateY(0);
    opacity: 1;
}
.project-box-even {
    background-color: rgb(244, 244, 244);
}
.project-image {
    grid-column: 1/5;
    grid-row: 1/4;
    display: flex;
    justify-content: center;
    align-items: center;
}
.img-project {
    width: auto;
    height: 100%;
}
.project-title {
    grid-column: 1/5;
    grid-row: 4/5;
    text-align: left;
    padding: 1rem;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    gap: 1rem;
    opacity: 0;
    transform: translateY(20px);
    transition: transform 0.5s ease 0.3s, opacity 0.5s ease 0.3s;
}
.project-title a {
    width: 100%;
    color: black;
    text-decoration: none;
    text-align: right;
    transition: color 300ms ease;
}
.arrow-link {
    display: inline-flex;
    align-items: flex-end;
    justify-content: flex-end;
    gap: 0.25rem;
    text-decoration: none;
}
.project-box-odd.animate .project-title, .project-box-even.animate .project-title {
    transform: translateY(0);
    opacity: 1;
}
.project-title h3 {
    width: min(350px, 80%);
    font-size: 1.6rem;
    font-weight: 200;
}
@media screen and (min-width: 769px) {
    .project-box-odd .project-image {
        grid-column: 1/3;
        grid-row: 1/5;
        justify-content: flex-end;
    }
    .project-box-odd .project-title {
        grid-column: 3/5;
        grid-row: 1/5;
        text-align: left;
        align-items: flex-start;
        justify-content: center;
    }
    .project-box-odd {
        gap: 2rem;
    }
    .project-box-even {
        background-color: rgb(244, 244, 244);
        gap: 2rem;
    }
    .project-box-even .project-title {
        grid-column: 1/3;
        grid-row: 1/5;
        align-items: flex-end;
        text-align: right;
        justify-content: center;
    }
    .project-box-even .project-image {
        grid-column: 3/5;
        grid-row: 1/5;
        justify-content: flex-start;
    }
    .project-title h3 {
        font-size: 2rem;
    }
    .project-title a {
        width: auto;
        text-align: left;
    }
    .project-title a:hover {
        color: orange;
    }
}