:root{
  --bone:#f7f6f2;
  --ink:#17150f;
  --gray:#8a857a;
  --rule:#dedad0;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--bone);
  color:var(--ink);
  font-family:'Inter',sans-serif;
  font-weight:300;
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;}
img{max-width:100%; display:block;}
.cap{
  text-transform:uppercase;
  letter-spacing:0.16em;
  font-size:0.68rem;
  color:var(--gray);
}
.wrap{max-width:1160px; margin:0 auto; padding:0 6vw;}

/* header / nav, shared on every page */
header{
  position:sticky; top:0; z-index:20;
  background:var(--bone);
  border-bottom:1px solid var(--rule);
  display:flex; justify-content:space-between; align-items:center;
  padding:26px 6vw;
}
.wordmark{
  font-size:0.82rem; letter-spacing:0.14em; text-transform:uppercase;
  text-decoration:none; font-weight:500;
}
nav{display:flex; gap:2.6rem;}
nav a{
  font-size:0.7rem; text-transform:uppercase; letter-spacing:0.14em;
  text-decoration:none; color:var(--gray);
}
nav a:hover, nav a.active{color:var(--ink);}

/* homepage intro */
.intro{padding:5.5rem 6vw 4rem; max-width:640px; margin:0 auto; text-align:center;}
.intro p{font-size:1.05rem; font-weight:300; color:var(--ink); margin:0;}
.intro .cap{display:block; margin-bottom:1.4rem;}

/* generic page heading, used on Current Work / Archive */
.page-head{max-width:640px; margin:0 auto; padding:5.5rem 6vw 3.5rem; text-align:center;}
.page-head .cap{display:block; margin-bottom:1.2rem;}
.page-head p{font-size:1.05rem; color:var(--ink); margin:0;}
/* Archive uses a wider, left-aligned head */
#archive-body .page-head, .archive-page .page-head{
  max-width:1160px; text-align:left; padding:4.5rem 6vw 3rem;
}

/* image plates — the core repeated unit on homepage / Current Work */
figure{margin:0;}
a.teaser-link{display:block; text-decoration:none; color:inherit;}
.plate{padding:1.5rem 6vw 5.5rem;}
.plate img{width:100%; height:auto; transition:opacity 300ms ease;}
.plate.hero-plate{padding-top:0.5rem;}
.plate.hero-plate img{max-height:82vh; width:auto; margin:0 auto; object-fit:contain;}
a.teaser-link:hover img{opacity:0.88;}
.plate figcaption{
  max-width:1160px; margin:1.1rem auto 0;
  padding-top:0.9rem; border-top:1px solid var(--rule);
  display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap;
}
.plate figcaption .t{font-size:0.85rem;}
.plate figcaption .m{font-size:0.7rem; text-transform:uppercase; letter-spacing:0.12em; color:var(--gray); white-space:nowrap;}

/* pair layout, e.g. Breathing I/II */
.pair{
  max-width:1160px; margin:0 auto;
  display:grid; grid-template-columns:1fr 1fr; gap:6vw;
  padding:1.5rem 6vw 5.5rem;
}
.pair figcaption{margin-top:1.1rem; padding-top:0.9rem; border-top:1px solid var(--rule);}
.pair figcaption .t{font-size:0.85rem;}
.pair figcaption .m{font-size:0.7rem; text-transform:uppercase; letter-spacing:0.12em; color:var(--gray); display:block; margin-top:0.3rem;}

/* labeled sub-group, e.g. "Being Human" */
.group-label{max-width:1160px; margin:0 auto; padding:3.5rem 6vw 0; border-top:1px solid var(--rule);}
.group-label .cap{margin-bottom:0.5rem;}
.group-label h2{font-size:1.25rem; font-weight:400; margin:0;}

.see-more, .end-note{max-width:640px; margin:0 auto; padding:0 6vw 6rem; text-align:center;}
.see-more a, .end-note a{
  font-size:0.72rem; text-transform:uppercase; letter-spacing:0.12em;
  text-decoration:none; border-bottom:1px solid var(--ink); padding-bottom:3px;
}
.end-note p{font-size:0.85rem; color:var(--gray); margin:0 0 1.2rem;}

/* statement excerpt (homepage) and full statement page */
.statement{padding:5rem 6vw; border-top:1px solid var(--rule);}
.statement .wrap{max-width:720px;}
.statement blockquote{
  margin:0 0 1.4rem; font-family:'Fraunces', serif; font-weight:340;
  font-style:italic; font-size:1.4rem; line-height:1.5; color:var(--ink);
}
.statement a{
  font-size:0.72rem; text-transform:uppercase; letter-spacing:0.12em;
  text-decoration:none; border-bottom:1px solid var(--ink); padding-bottom:3px;
}
main{max-width:640px; margin:0 auto; padding:6rem 6vw 3rem;}
.statement-head{margin-bottom:3rem;}
.statement-head .cap{margin-bottom:1.2rem;}
.statement-head p.pull{
  font-family:'Fraunces', serif; font-weight:340; font-style:italic;
  font-size:1.55rem; line-height:1.42; color:var(--ink); margin:0;
}
.body-text p{font-size:1.02rem; font-weight:300; color:var(--ink); margin:0 0 1.5rem;}
.cv{margin-top:4rem; padding-top:2.5rem; border-top:1px solid var(--rule);}
.cv .cap{margin-bottom:1.4rem;}
.cv dl{margin:0; display:grid; grid-template-columns:auto 1fr; gap:0.6rem 2rem;}
.cv dt{font-size:0.72rem; text-transform:uppercase; letter-spacing:0.1em; color:var(--gray); white-space:nowrap; padding-top:0.15rem;}
.cv dd{margin:0; font-size:0.92rem; line-height:1.55;}
.back{
  display:inline-block; margin-top:3.5rem;
  font-size:0.72rem; text-transform:uppercase; letter-spacing:0.12em;
  text-decoration:none; border-bottom:1px solid var(--ink); padding-bottom:3px;
}

/* archive teaser row (homepage) */
.archive{border-top:1px solid var(--rule); padding:4rem 6vw;}
.archive-row{display:flex; gap:2.5rem; align-items:center;}
.archive-row img{width:220px; height:280px; object-fit:cover; filter:grayscale(0.4); opacity:0.9;}
.archive-copy{max-width:56ch;}
.archive-copy .cap{margin-bottom:0.6rem;}
.archive-copy p{font-size:0.92rem; color:var(--ink); margin:0 0 1rem;}
.archive-copy a{
  font-size:0.72rem; text-transform:uppercase; letter-spacing:0.12em;
  text-decoration:none; border-bottom:1px solid var(--ink); padding-bottom:3px;
}

/* full archive grid page */
.grid{
  max-width:1160px; margin:0 auto; padding:0 6vw 2rem;
  display:grid; grid-template-columns:repeat(3, 1fr); gap:3rem 2.2rem;
}
.tile figcaption{margin-top:0.8rem; padding-top:0.7rem; border-top:1px solid var(--rule);}
.tile .t{font-size:0.82rem; display:block;}
.tile .m{font-size:0.68rem; text-transform:uppercase; letter-spacing:0.1em; color:var(--gray); display:block; margin-top:0.2rem;}
.tile .frame{aspect-ratio:4/5; overflow:hidden; background:#eeece5;}
.tile .frame img{width:100%; height:100%; object-fit:cover;}
.placeholder{width:100%; height:100%; display:flex; align-items:center; justify-content:center; border:1px dashed var(--rule);}
.placeholder span{font-size:0.66rem; text-transform:uppercase; letter-spacing:0.1em; color:var(--gray); text-align:center; padding:1rem;}
.archive-note{max-width:1160px; margin:0 auto; padding:1rem 6vw 5rem;}
.archive-note p{font-size:0.82rem; color:var(--gray); max-width:60ch; margin:0;}

/* press list, shared by homepage teaser and full Exhibitions page */
.press{padding:5rem 6vw; border-top:1px solid var(--rule);}
.press ul{list-style:none; margin:2rem 0 0; padding:0; columns:2; column-gap:4rem;}
.press li{
  break-inside:avoid; display:flex; justify-content:space-between; gap:1rem;
  padding:0.8rem 0; border-bottom:1px solid var(--rule); font-size:0.88rem;
}
.press li span.yr{color:var(--gray); font-size:0.75rem; white-space:nowrap;}
.press-list{max-width:1160px; margin:0 auto; padding:0 6vw 5rem;}
.press-list ul{list-style:none; margin:0; padding:0; columns:2; column-gap:4rem;}
.press-list li{
  break-inside:avoid; display:flex; justify-content:space-between; gap:1rem;
  padding:0.9rem 0; border-bottom:1px solid var(--rule); font-size:0.9rem;
}
.press-list li span.yr{color:var(--gray); font-size:0.76rem; white-space:nowrap;}
.press-note{max-width:1160px; margin:0 auto; padding:0 6vw 5rem;}
.press-note p{font-size:0.82rem; color:var(--gray); max-width:60ch; margin:0;}

/* contact page */
main.contact-main{
  flex:1; max-width:560px; margin:0 auto; padding:6rem 6vw 4rem;
  display:flex; flex-direction:column; justify-content:center;
}
main p.lede{
  font-family:'Fraunces', serif; font-weight:340; font-style:italic;
  font-size:1.5rem; line-height:1.45; margin:0 0 3rem;
}
.contact-grid{
  display:grid; grid-template-columns:1fr 1fr; gap:2.5rem;
  padding-top:2.5rem; border-top:1px solid var(--rule);
}
.contact-grid .cap{margin-bottom:0.9rem;}
.contact-grid a.link{
  display:block; text-decoration:none; color:var(--ink);
  font-size:0.98rem; padding-bottom:3px;
  border-bottom:1px solid var(--ink); width:fit-content; margin-bottom:0.7rem;
}

/* footer, shared by every page */
footer{border-top:1px solid var(--rule); padding:4rem 6vw 3rem;}
.foot-grid{display:flex; justify-content:space-between; flex-wrap:wrap; gap:2rem; padding-bottom:2.5rem;}
footer a.link{
  display:inline-block; text-decoration:none; color:var(--ink);
  border-bottom:1px solid var(--ink); padding-bottom:2px; font-size:0.9rem;
}
.foot-bottom{
  margin-top:1.6rem; padding-top:1.6rem; border-top:1px solid var(--rule);
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:0.6rem;
  color:var(--gray); font-size:0.72rem;
}

/* scroll-reveal utility */
.reveal{opacity:0; transform:translateY(10px); transition:opacity 800ms ease, transform 800ms ease;}
.reveal.in{opacity:1; transform:translateY(0);}

@media (max-width:900px){
  .grid{grid-template-columns:repeat(2, 1fr); gap:2.2rem 1.4rem;}
}
@media (max-width:880px){
  nav{gap:1.4rem;} nav a{font-size:0.62rem;}
  .pair{grid-template-columns:1fr; gap:2.5rem;}
  .archive-row{flex-direction:column; align-items:flex-start;}
  .archive-row img{width:100%; height:auto; aspect-ratio:4/5;}
}
@media (max-width:600px){
  nav{gap:1.1rem;} nav a{font-size:0.58rem;}
  .intro{padding:3.5rem 6vw 2.5rem;}
  .page-head{padding:3.5rem 6vw 2.5rem;}
  .press ul, .press-list ul{columns:1;}
  .grid{grid-template-columns:1fr;}
  .statement-head p.pull{font-size:1.3rem;}
  .cv dl{grid-template-columns:1fr; gap:0.2rem 0;}
  .cv dt{margin-top:0.8rem;}
  .contact-grid{grid-template-columns:1fr; gap:2rem;}
  main p.lede{font-size:1.2rem;}
}
