:root {

--text-primary:#303030;
--text-secondary:#616161;

}

/* RESET */

*{
box-sizing:border-box;
margin:0;
padding:0;
}

body{

font-family:'IBM Plex Sans',sans-serif;
color:var(--text-primary);
font-size:16px;
letter-spacing:-0.01em;
line-height:1.2;
background:#ffffff;

}

/* LINKS */

a{
color:var(--text-primary);
text-decoration:none;
text-underline-offset:3px;
}

a:hover{
text-decoration:underline;
}

/* NAV */

.site-nav{

position:relative;
display:flex;
justify-content:space-between;
align-items:center;
padding:25px 60px;

}

.site-nav::after{

content:"";
position:absolute;
bottom:0;
left:0;
right:0;
height:1px;
background:rgba(0,0,0,0.08);
width:calc(100% - 120px);
margin:auto;

}

.nav-right{
display:flex;
gap:30px;
}

.nav-social{
display:flex;
gap:30px;
}

/* HERO */

.hero{
padding:140px 60px 100px;
text-align:center;
}

.hero-logo{
margin-bottom:30px;
}

.hero-logo img{
width:100px;
}

/* HERO PHRASE ANIMATION */

#hero-phrase{
display:inline-block;
font-family: 'IBM Plex Mono', monospace;
font-style: italic;
}

.hero-word{
display:inline-block;
opacity:0;
transform:translateY(60px);
animation:heroWordIn 0.6s cubic-bezier(.22,.61,.36,1) forwards;
margin-right:0.35em;
}

@keyframes heroWordIn{
to{
opacity:1;
transform:translateY(0);
}
}

/* TYPOGRAPHY */

.big-text{

font-family:'IBM Plex Mono',monospace;
font-size:70px;
letter-spacing:0;
line-height:1.05;
font-weight:400;
max-width:1400px;
margin:auto;

}

h3{

font-family:'IBM Plex Mono',monospace;
font-size:15px;
letter-spacing:-0.01em;
font-weight:400;

}

.text-secondary{
color:var(--text-secondary);
}

/* FILTERS */

.filters{
display:flex;
justify-content:center;
gap:12px;
margin-top:40px;
}

.separator{
color:#616161;
}

.filter-btn{

background:none;
border:none;

font-family:'IBM Plex Sans',sans-serif;

text-transform:uppercase;


color:#616161;

cursor:pointer;

}

.filter-btn.active{
text-decoration:underline;
}

/* DIVIDERS */

.section-divider,
.content-divider{

height:1px;
background:rgba(0,0,0,0.08);
width:calc(100% - 120px);
margin:0 auto;

}

/* HOMEPAGE GRID */

.projects-grid{
	
width:calc(100% - 120px);
margin:60px auto;
display:grid;
grid-template-columns:repeat(6,1fr);
gap:40px;

}

.tile-full{ grid-column:span 6; }
.tile-two-thirds{ grid-column:span 4; }
.tile-one-third{ grid-column:span 2; }


.thumb{
height:320px;
overflow:hidden;
}

.thumb video{
width:100%;
height:100%;
object-fit:cover;
display:block;
}

.project-meta{
margin-top:12px;
}


/* -------------------- */
/* CASE STUDY PAGE */
/* -------------------- */

.case-study{

width:calc(100% - 120px);
margin:80px auto;

}

/* CASE HEADER */

.case-header{
margin-bottom:80px;
}

/* align title with main content */

.case-header .big-text{
margin:0;
text-align:left;
max-width:900px;
}

/* CASE META HEADERS */

.case-meta-block h3{
text-transform:uppercase;
color:#616161;
}

/* intro layout */

.case-info{

display:grid;

grid-template-columns:1fr 2fr;

gap:80px;

margin-bottom:80px;

align-items:start;

}

/* left column */

.case-meta{

display:flex;
flex-direction:column;
gap:35px;

}

/* right column */

.case-description{

grid-column:2;

max-width:700px;

justify-self:end;

}

/* -------------------- */
/* CASE MEDIA GRID */
/* -------------------- */

.case-grid{

width:100%;
display:grid;
grid-template-columns:repeat(4,1fr);
gap:20px;

}

/* GRID ITEM WRAPPER */

.grid-item{

width:100%;
overflow:hidden;
position:relative;

}

/* column spans */

.span-1{ grid-column:span 1; }
.span-2{ grid-column:span 2; }
.span-3{ grid-column:span 3; }
.span-4{ grid-column:span 4; }

/* FORCE ASPECT RATIOS */

.ratio-1x1{
aspect-ratio:1/1;
}

.ratio-16x9{
aspect-ratio:16/9;
}

.ratio-9x16{
aspect-ratio:9/16;
}

.ratio-4x5{
aspect-ratio:4/5;
}

/* MEDIA FIT */

.grid-item img,
.grid-item video{

position:absolute;
top:0;
left:0;
width:100%;
height:100%;
object-fit:cover;
object-position:center;
display:block;

}

/* FOOTER */

.site-footer{

padding:40px 60px;

position:relative;

}

.site-footer::before{

content:"";

position:absolute;

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

height:1px;

background:rgba(0,0,0,0.08);

width:calc(100% - 120px);

margin:auto;

}

.footer-inner{

display:grid;

grid-template-columns:1fr 1fr 1fr;

}

.footer-contact{

display:flex;
flex-direction:column;
gap:4px;

}

.footer-logo{

display:flex;
justify-content:center;

}

.footer-logo img{
width:45px;
}

.footer-social{

display:flex;
flex-direction:column;
gap:10px;

justify-self:end;

}

.footer-bottom{

margin-top:40px;

text-align:center;

font-size:14px;

opacity:0.6;

text-transform:uppercase;

}

/* FADE IN ANIMATION */

.fade-in{

opacity:0;
transform:translateY(8px);

animation:fadeIn 1s ease forwards;

}

.delay-1{
animation-delay:0.2s;
}

.delay-2{
animation-delay:0.4s;
}

@keyframes fadeIn{

to{
opacity:1;
transform:translateY(0);
}

}




/* -------------------------------- */
/* MOBILE LAYOUT */
/* -------------------------------- */

@media (max-width:768px){

/* NAV */

.site-nav{
padding:20px 20px;
}

.site-nav a{
font-size:12px;
}


/* HERO */

.hero{
padding:50px 20px 80px;
}

.hero-logo img{
width:60px;
}

/* keep hero on two lines */

.big-text{

font-size:22px;
line-height:1.1;
max-width:600px;
margin:auto;

}


/* GRID MARGINS */

.projects-grid,
.case-study,
.section-divider,
.content-divider,
.site-nav::after,
.site-footer::before{

width:calc(100% - 40px);

}


/* -------------------------------- */
/* HOMEPAGE GRID STACK */
/* -------------------------------- */

.projects-grid{

grid-template-columns:1fr;

gap:40px;

}

.tile-full,
.tile-two-thirds,
.tile-one-third{

grid-column:span 1;

}

.thumb{

aspect-ratio:16/9;
height:auto;

}


/* -------------------------------- */
/* CASE STUDY */
/* -------------------------------- */

.case-header .big-text{

font-size:36px;

}

.case-info{

grid-template-columns:1fr;

gap:40px;

}

.case-description{

grid-column:auto;

max-width:none;

justify-self:start;

}

.case-grid{

grid-template-columns:1fr;

gap:20px;

}

.span-1,
.span-2,
.span-3,
.span-4{

grid-column:span 1;

}


/* -------------------------------- */
/* FOOTER STACK ORDER */
/* -------------------------------- */

.site-footer{
padding:40px 20px;
}

.footer-inner{

display:flex;
flex-direction:column;

gap:18px;

align-items:center;

text-align:center;

}

/* order items */

.footer-contact{
order:1;
}

.footer-social{
order:2;
}

.footer-logo{
order:3;
}

.footer-bottom{
order:4;
margin-top:20px;
text-align:center;
font-size:14px;
}

/* smaller footer text */

.footer-contact,
.footer-social{
font-size:14px;
}