*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

body{
    background:#ffffff;
    color:#000000;
    font-family:"Courier New", Courier, monospace;
}

header{
    text-align:center;
    padding-top:20px;
    padding-bottom:14px;
}

h1{
    font-size:32px;
    font-weight:400;
    letter-spacing:7px;
    margin-bottom:22px;
}

.top-nav{
    display:flex;
    justify-content:center;
    align-items:flex-start;
    gap:56px;
}

.top-nav a,
.works-label,
.bottom-left-nav a,
.works-year-list a{
    position:relative;
    width:fit-content;
    text-decoration:none;
    color:#777777;
    font-weight:400;
    letter-spacing:1px;
    transition:color .35s ease;
    font-family:"Courier New", Courier, monospace;
}

.top-nav a,
.works-label{
    font-size:16px;
}

.works-label{
    background:none;
    border:none;
    cursor:pointer;
}

.bottom-left-nav a{
    font-size:15px;
}

.top-nav a::after,
.works-label::after,
.bottom-left-nav a::after,
.works-year-list a::after{
    content:"";
    position:absolute;
    left:0;
    bottom:-4px;
    width:100%;
    height:1px;
    background:#000;
    transform:scaleX(0);
    transform-origin:left;
    transition:transform .35s ease;
}

.top-nav a:hover,
.works-label:hover,
.bottom-left-nav a:hover,
.works-year-list a:hover{
    color:#000000;
}

.top-nav a:hover::after,
.works-label:hover::after,
.bottom-left-nav a:hover::after,
.works-year-list a:hover::after{
    transform:scaleX(1);
}

.works-dropdown{
    position:relative;
    display:flex;
    justify-content:center;
}

.works-menu{
    position:absolute;
    top:34px;
    left:50%;
    transform:translateX(-50%);
    display:none;
    flex-direction:column;
    align-items:center;
    gap:16px;
    background:#ffffff;
    border:1px solid #d6d6d6;
    padding:24px 38px;
    min-width:120px;
    z-index:100;
}

.works-menu.open{
    display:flex;
}

.works-menu a{
    display:block;
    color:#777777;
    text-decoration:none;
    font-size:20px;
    letter-spacing:1px;
    line-height:1.4;
}

.works-menu a:visited{
    color:#777777;
}

.works-menu a:hover{
    color:#000000;
}

main{
    display:flex;
    justify-content:center;
    padding-top:35px;
}

.featured-work img{
    display:block;
    width:46vw;
    min-width:550px;
    max-width:740px;
    height:auto;
}

.works-page{
    min-height:70vh;
    display:flex;
    justify-content:center;
    align-items:center;
}

.works-year-list{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:42px;
}

.works-year-list a{
    font-size:34px;
    font-weight:700;
    color:#000000;
}

.works-year-list a:visited{
    color:#000000;
}

/* Gallery pages */

.gallery-page{
    display:block;
    max-width:1650px;
    margin:90px auto 0 auto;
    padding:0 70px;
}

.gallery-page h2{
    text-align:center;
    font-size:38px;
    font-weight:400;
    letter-spacing:4px;
    margin-bottom:90px;
}

.gallery-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    column-gap:90px;
    row-gap:90px;
    align-items:center;
}

.gallery-grid img{
    width:100%;
    max-width:780px;
    height:auto;
    display:block;
    margin:0 auto;
    cursor:pointer;
    transition:opacity .35s ease;
}

.gallery-grid img:hover{
    opacity:.82;
}

/* Lightbox */

.lightbox{
    position:fixed;
    inset:0;
    background:rgba(255,255,255,.96);
    display:none;
    justify-content:center;
    align-items:center;
    z-index:1000;
}

.lightbox.open{
    display:flex;
}

.lightbox img{
    max-width:92vw;
    max-height:92vh;
    width:auto;
    height:auto;
    object-fit:contain;
}

.lightbox-close{
    position:absolute;
    top:28px;
    right:36px;
    background:none;
    border:none;
    font-size:38px;
    font-family:"Courier New", Courier, monospace;
    cursor:pointer;
    color:#777777;
}

.lightbox-arrow{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    background:none;
    border:none;
    font-size:58px;
    font-family:"Courier New", Courier, monospace;
    cursor:pointer;
    color:#777777;
}

.lightbox-arrow.left{
    left:36px;
}

.lightbox-arrow.right{
    right:36px;
}

.lightbox-close:hover,
.lightbox-arrow:hover{
    color:#000000;
}

.contact-page{
    display:flex;
    justify-content:center;
    align-items:center;
    min-height:70vh;
}

.email{
    color:#000000;
    text-decoration:none;
    font-size:20px;
    letter-spacing:1px;
    transition:color .35s ease;
}

.email:visited{
    color:#000000;
}

.email:hover{
    color:#777777;
}

.cv-page{
    display:block;
    max-width:820px;
    margin:60px auto 0 auto;
    padding:0 40px;
    line-height:1.8;
}

.cv-title{
    text-align:center;
    font-size:42px;
    font-weight:700;
    letter-spacing:2px;
    margin-bottom:55px;
}

.cv-section{
    margin-bottom:48px;
}

.cv-section h2{
    font-size:21px;
    font-weight:700;
    margin-bottom:16px;
    letter-spacing:1px;
}

.cv-section p{
    font-size:19px;
    color:#222222;
    margin-bottom:8px;
}

footer{
    position:relative;
    width:100%;
    margin-top:90px;
    padding-bottom:25px;
    min-height:120px;
}

.bottom-left-nav{
    position:absolute;
    left:28px;
    bottom:25px;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:8px;
}

.copyright{
    position:absolute;
    left:50%;
    bottom:25px;
    transform:translateX(-50%);
    color:#9a9a9a;
    font-size:15px;
    letter-spacing:1px;
}

@media (max-width:800px){
    h1{
        font-size:24px;
        letter-spacing:5px;
    }

    .top-nav{
        gap:22px;
        flex-wrap:wrap;
    }

    .top-nav a,
    .works-label{
        font-size:14px;
    }

    .featured-work img{
        width:82vw;
        min-width:0;
        max-width:82vw;
    }

    .gallery-page{
        margin-top:55px;
        padding:0 24px;
    }

    .gallery-page h2{
        margin-bottom:60px;
    }

    .gallery-grid{
        grid-template-columns:1fr;
        row-gap:70px;
        column-gap:0;
        align-items:start;
    }

    .gallery-grid img{
        max-width:100%;
        margin-top:0;
    }

    .lightbox img{
        max-width:94vw;
        max-height:82vh;
    }

    .lightbox-arrow{
        font-size:44px;
    }

    .lightbox-arrow.left{
        left:14px;
    }

    .lightbox-arrow.right{
        right:14px;
    }

    .bottom-left-nav{
        position:relative;
        left:auto;
        bottom:auto;
        margin-left:24px;
        margin-bottom:40px;
    }

    .copyright{
        position:relative;
        left:auto;
        bottom:auto;
        transform:none;
        text-align:center;
        margin-top:30px;
    }
}