/*
=========================================================

MarkedGallery v2.0

=========================================================
*/

:root{

    --bg:#121212;
    --panel:#1a1a1a;

    --text:#d7d7d7;
    --muted:#8c8c8c;

    --card-width:700px;
    --card-gap:48px;
    --row-gap:64px;

    --section-width:1600px;

}

*{

    margin:0;
    padding:0;
    box-sizing:border-box;

}

html{

    overflow-x:hidden;

}

body{

    background:var(--bg);

    color:var(--text);

    font-family:-apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;

    overflow-x:hidden;

}

/*=========================================================
Hero
=========================================================*/

.hero{

    min-height:55vh;

    display:flex;

    flex-direction:column;

    justify-content:center;

    align-items:center;

    text-align:center;

    padding:80px 40px;

}

.hero-logo{

    width:380px;

    margin-bottom:20px;

}

.hero h1{

    font-size:4rem;

    letter-spacing:.05em;

    margin-bottom:28px;

}

.tagline{

    color:#999;

    font-size:1.25rem;

    line-height:1.8;

}

/*=========================================================
Selected Work
=========================================================*/

.selected-work{

    width:100%;

    overflow:hidden;

    padding:100px 0 120px;

}

.selected-work h2{

    text-align:center;

    margin:0 auto 50px;

    color:var(--muted);

    font-size:.95rem;

    letter-spacing:.28em;

}
/*=========================================================
Gallery
=========================================================*/

#gallery{

    position:relative;

    display:flex;

    flex-direction:column;

gap:var(--row-gap);

    overflow:hidden;

    width:100%;

}

/* Fade the edges so the cards drift in/out */

#gallery::before,
#gallery::after{

    content:"";

    position:absolute;

    top:0;
    bottom:0;

    width:120px;

    z-index:5;

    pointer-events:none;

}

#gallery::before{

    left:0;

    background:linear-gradient(
        to right,
        var(--bg) 0%,
        rgba(18,18,18,0) 100%
    );

}

#gallery::after{

    right:0;

    background:linear-gradient(
        to left,
        var(--bg) 0%,
        rgba(18,18,18,0) 100%
    );

}

/*=========================================================
Rows
=========================================================*/

.gallery-row{

    overflow:hidden;

    width:100%;

}

.gallery-track{

    display:flex;

    align-items:flex-start;

    gap:var(--card-gap);

    width:max-content;

    will-change:transform;

}

/* Offset the second row so it interlocks */

.gallery-row:nth-child(2){

    padding-left:280px;

}

/*=========================================================
Cards
=========================================================*/

.project-card{

    flex:0 0 var(--card-width);

    background:var(--panel);

    overflow:hidden;

    cursor:pointer;

    transition:
        transform .35s ease,
        box-shadow .35s ease;

}

.project-card:hover{

    transform:translateY(-2px);

    box-shadow:
        0 18px 40px rgba(0,0,0,.35);

}

.project-image{

    display:block;

    width:100%;

    aspect-ratio:16/9;

    object-fit:cover;

}

.project-info{

   padding:20px 22px 22px;

}



.project-info h2{

    font-size:1.15rem;

    font-weight:600;

    letter-spacing:.03em;

    margin-bottom:8px;

}

.project-info p{

    color:var(--muted);

    font-size:.95rem;

    letter-spacing:.03em;

}
/*=========================================================
Responsive
=========================================================*/

@media (max-width: 1400px){

    :root{

        --card-width:500px;
        --card-gap:30px;

    }

    .gallery-row:nth-child(2){

        padding-left:250px;

    }

}

@media (max-width: 1100px){

    :root{

        --card-width:420px;
        --card-gap:24px;

    }

    .selected-work{

        padding:80px 0 100px;

    }

    .gallery-row:nth-child(2){

        padding-left:180px;

    }

}

@media (max-width: 768px){

    :root{

        --card-width:340px;
        --card-gap:18px;

    }

    .hero{

        min-height:50vh;

        padding:60px 24px;

    }

    .hero h1{

        font-size:2.7rem;

    }

    .hero-logo{

        width:180px;

    }

    .tagline{

        font-size:1.05rem;

    }

    .selected-work{

        padding:50px 0 100px;

    }

    .gallery-row:nth-child(2){

        padding-left:120px;

    }

    #gallery::before,
    #gallery::after{

        width:70px;

    }

}

@media (max-width: 480px){

    :root{

        --card-width:300px;

    }

    .gallery-row:nth-child(2){

        padding-left:80px;

    }

}

/*=========================================================
Motion preferences
=========================================================*/

@media (prefers-reduced-motion: reduce){

    .project-card{

        transition:none;
    }
}
/*=========================================================
Project Modal
=========================================================*/

.modal{

    position:fixed;
    inset:0;

    display:flex;
    justify-content:center;
    align-items:center;

    padding:40px;

    z-index:1000;

    opacity:1;
    transition:opacity .25s ease;

}

.modal.hidden{

    opacity:0;
    pointer-events:none;

}

.modal-backdrop{

    position:absolute;
    inset:0;

    background:rgba(0,0,0,.82);

    backdrop-filter:blur(14px);

}

.modal-window{

    position:relative;

    width:min(1100px,92vw);

    max-height:90vh;

    overflow:auto;

    background:#181818;

    border-radius:18px;

    box-shadow:
        0 30px 80px rgba(0,0,0,.65);

    z-index:2;

}

/*=========================================================
Close Button
=========================================================*/

.modal-close{

    position:absolute;

    top:18px;
    right:18px;

    width:48px;
    height:48px;

    border:none;

    border-radius:50%;

    background:rgba(0,0,0,.45);

    color:white;

    font-size:2rem;

    cursor:pointer;

    z-index:10;

    transition:
        background .25s ease,
        transform .25s ease;

}

.modal-close:hover{

    background:rgba(220,0,0,.85);

    transform:scale(1.08);

}

/*=========================================================
Content
=========================================================*/

.modal-content{

    display:block;

}

.modal-media{

    position:relative;

    background:black;

}

.modal-image{

    display:block;

    width:100%;

    aspect-ratio:16 / 9;

    object-fit:cover;

}

/*=========================================================
Play Button
=========================================================*/

.modal-play{

    position:absolute;

    left:50%;
    top:50%;

    transform:translate(-50%,-50%);

    width:110px;
    height:110px;

    border-radius:50%;

    display:flex;

    justify-content:center;
    align-items:center;

    text-decoration:none;

    font-size:3rem;

    color:white;

    background:rgba(0,0,0,.45);

    border:2px solid rgba(255,255,255,.35);

    backdrop-filter:blur(12px);

    transition:
        transform .25s ease,
        background .25s ease;

}

.modal-play:hover{

    transform:translate(-50%,-50%) scale(1.08);

    background:rgba(220,0,0,.85);

}

/*=========================================================
Details
=========================================================*/

.modal-details{

    padding:42px;

}

.modal-details h2{

    font-size:2rem;

    margin-bottom:10px;

    font-weight:600;

}

.modal-subtitle{

    color:#d0d0d0;

    font-size:1.15rem;

    margin-bottom:24px;

}

.modal-role{

    color:#888;

    font-size:.9rem;

    letter-spacing:.12em;

    text-transform:uppercase;

}
/*=========================================================
Navigation
=========================================================*/

#site-header{

    position:fixed;

    top:0;
    left:0;
    right:0;

    z-index:100;

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:24px 48px;

    background:linear-gradient(
        to bottom,
        rgba(18,18,18,.92),
        rgba(18,18,18,0)
    );

    backdrop-filter:blur(8px);

}

.site-logo{

    display:flex;

    align-items:center;

}

.site-logo img{

    height:42px;

    display:block;

}

.site-nav{

    display:flex;

    gap:32px;

}

.site-nav a{

    color:#d7d7d7;

    text-decoration:none;

    font-size:.95rem;

    letter-spacing:.04em;

    transition:opacity .25s ease;

}

.site-nav a:hover{

    opacity:.65;

}

.hero{

    padding-top:110px;

}

@media (max-width:768px){

    #site-header{

        padding:20px 24px;

    }

    .site-nav{

        gap:18px;

        flex-wrap:wrap;

        justify-content:flex-end;

    }

    .site-nav a{

        font-size:.9rem;

    }

    .site-logo img{

        height:34px;

    }

}
/*=========================================================
About
=========================================================*/

.about{

    padding:40px 48px 120px;

}

.about-inner{

    max-width:900px;

    margin:0 auto;

}

.about-kicker{

    text-align:center;

    color:var(--muted);

    font-size:.95rem;

    letter-spacing:.28em;

    margin:0 auto 50px;

}

.about h2{

    text-align:center;

    font-size:clamp(2rem,4vw,3.25rem);

    font-weight:500;

    line-height:1.15;

    margin-bottom:28px;

    max-width:700px;

}

.about-copy{

    text-align:center;

    color:#a8a8a8;

    font-size:1.15rem;

    line-height:1.9;

    max-width:760px;

}

@media (max-width:768px){

    .about{

        padding:80px 24px;

    }

    .about-copy{

        font-size:1rem;

        line-height:1.8;

    }

}
.showreel {

    max-width: 1200px;
    margin: 0 auto;
    padding: 140px 32px 80px;

}

.showreel-video {

    margin-top: 48px;

}

.showreel-video video {

    display: block;
    width: 100%;
    height: auto;
    border-radius: 16px;

}