@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,340;0,9..144,440;0,9..144,560;1,9..144,440&family=Inter:wght@400;500&family=IBM+Plex+Mono:wght@400;500&display=swap');

:root{
  --white:#ffffff;
  --ink:#14140f;
  --stone:#6b6b62;
  --stone-light:#9a988d;
  --line:#e7e5dd;
  --green:#008000;
  --forest:#045604;
  --tint:#eaf3ea;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{background:var(--white);color:var(--ink);font-family:'Inter',sans-serif;-webkit-font-smoothing:antialiased;}
a{color:inherit;}
.label{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--stone);}
h1,h2,h3{font-family:'Fraunces',serif;font-weight:440;}
em{font-style:italic;color:var(--green);font-weight:440;}

/* ---------- Header / nav ---------- */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  padding:24px 48px;color:#fff;
  background:linear-gradient(180deg, rgba(0,0,0,.5) 0%, rgba(0,0,0,0) 100%);
}
.logo{font-family:'IBM Plex Mono',monospace;font-size:13px;letter-spacing:.14em;text-decoration:none;color:inherit;display:flex;align-items:center;gap:12px;}
.logo img{height:40px;width:auto;display:block;}
.nav{display:flex;gap:36px;}
.nav a{font-size:13px;letter-spacing:.04em;text-decoration:none;color:inherit;padding-bottom:2px;border-bottom:1px solid transparent;transition:border-color .25s ease;}
.nav a:hover{border-color:currentColor;}
.nav a.current{color:var(--forest);border-color:var(--green);}
.menu-btn{display:none;font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.06em;text-transform:uppercase;background:none;border:1px solid currentColor;color:inherit;padding:8px 16px;cursor:pointer;}

@media (max-width:820px){
  .site-header{padding:20px 24px;}
  .nav{position:fixed;top:0;right:0;bottom:0;width:240px;background:var(--white);color:var(--ink);
    flex-direction:column;justify-content:center;align-items:flex-start;gap:24px;padding:0 32px;
    transform:translateX(100%);transition:transform .3s ease;box-shadow:-8px 0 24px rgba(0,0,0,.08);}
  .nav.open{transform:translateX(0);}
  .menu-btn{display:block;}
}

main{padding-top:0;}

/* ---------- Page hero ---------- */
.page-hero{padding:140px 48px 60px;border-bottom:1px solid var(--line);}
.page-hero h1{font-size:clamp(34px,4.4vw,58px);font-weight:340;line-height:1.1;max-width:680px;margin-top:16px;}
.page-hero p{margin-top:20px;color:var(--stone);font-size:15px;line-height:1.7;max-width:520px;}

/* ---------- Image + copy bands ---------- */
.band{padding:0;}
.band-inner.split{display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:stretch;}
.split-media{aspect-ratio:4/5;overflow:hidden;background:var(--ink);}
.split-media.landscape{aspect-ratio:16/10;}
.split-media img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(10%);}
.band .copy{padding:80px 64px;display:flex;flex-direction:column;justify-content:center;}
.band .copy h2{font-size:clamp(24px,2.8vw,34px);line-height:1.25;margin-top:14px;max-width:440px;}
.band .copy p{margin-top:20px;color:var(--stone);font-size:15px;line-height:1.8;max-width:440px;}
@media (max-width:820px){
  .band-inner.split{grid-template-columns:1fr;}
  .band .copy{padding:48px 24px;}
}

/* ---------- Narrative ---------- */
.about-story{max-width:720px;margin:0 auto;padding:100px 48px;}
.about-story p{font-family:'Fraunces',serif;font-weight:400;font-size:clamp(18px,1.9vw,22px);line-height:1.75;color:var(--ink);margin-bottom:26px;}
.about-story p:last-child{margin-bottom:0;}
@media (max-width:820px){.about-story{padding:64px 24px;}}

/* ---------- Section headers ---------- */
.section{padding:0 48px;}
.section-head{border-bottom:1px solid var(--line);padding:0 0 20px;margin-bottom:0;}
.section-head h2{font-size:24px;}
@media (max-width:820px){.section{padding:0 24px;}}

/* ---------- Credentials grid ---------- */
.cred-grid{display:grid;grid-template-columns:repeat(3,1fr);padding:0 48px 120px;}
.cred{padding:32px 28px 32px 0;border-bottom:1px solid var(--line);}
.cred:nth-child(3n){padding-right:0;}
.cred h3{font-size:18px;margin:10px 0 8px;}
.cred p{color:var(--stone);font-size:14px;line-height:1.6;}
@media (max-width:820px){.cred-grid{grid-template-columns:1fr;padding:0 24px 80px;}}

/* ---------- Timeline ---------- */
.timeline{padding:0 48px 120px;}
.timeline-row{display:grid;grid-template-columns:140px 1fr;gap:24px;padding:26px 0;border-bottom:1px solid var(--line);}
.timeline-row .year{font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--forest);letter-spacing:.05em;}
.timeline-row h3{font-size:18px;margin-bottom:6px;}
.timeline-row p{color:var(--stone);font-size:14px;line-height:1.65;max-width:520px;}
@media (max-width:820px){.timeline{padding:0 24px 80px;}.timeline-row{grid-template-columns:1fr;gap:8px;}}

/* ---------- Publications ---------- */
.pub-list{padding:0 48px 120px;}
.pub{display:grid;grid-template-columns:64px 90px 1fr auto;gap:22px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line);}
.pub-thumb-link{display:block;width:64px;height:64px;background:var(--line);overflow:hidden;}
.pub-thumb-link img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(10%);transition:transform .3s ease;}
.pub-thumb-link:hover img{transform:scale(1.06);}
.pub .year{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--stone-light);}
.pub h3{font-size:17px;margin-bottom:4px;}
.pub p{color:var(--stone);font-size:13px;}
.pub .outlet{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--forest);text-align:right;white-space:nowrap;}
@media (max-width:820px){
  .pub-list{padding:0 24px 80px;}
  .pub{grid-template-columns:48px 1fr;gap:14px;}
  .pub .year{display:none;}
  .pub .outlet{grid-column:2;text-align:left;}
}

/* ---------- Contact band ---------- */
.contact{padding:120px 48px;background:var(--tint);}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;}
.contact-grid h2{font-size:clamp(24px,2.8vw,34px);margin-top:14px;max-width:420px;}
.contact-grid .copy p{color:var(--stone);font-size:15px;line-height:1.7;margin-bottom:28px;max-width:400px;}
.btn{
  display:inline-flex;align-items:center;gap:10px;font-family:'IBM Plex Mono',monospace;font-size:12px;
  letter-spacing:.08em;text-transform:uppercase;color:var(--ink);text-decoration:none;
  padding:15px 26px;border:1px solid var(--ink);transition:background .25s ease, color .25s ease, border-color .25s ease;
}
.btn:hover{background:var(--green);border-color:var(--green);color:#fff;}
@media (max-width:820px){.contact{padding:70px 24px;}.contact-grid{grid-template-columns:1fr;gap:28px;}}

/* ---------- Footer ---------- */
.site-footer{padding:70px 48px 40px;display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:24px;border-top:1px solid var(--line);}
.footer-name{font-family:'Fraunces',serif;font-weight:440;font-size:20px;margin-bottom:8px;}
.footer-sub{color:var(--stone);font-size:13px;}
.footer-links{display:flex;gap:28px;flex-wrap:wrap;}
.footer-links a{color:var(--stone);text-decoration:none;font-size:13px;}
.footer-links a:hover{color:var(--forest);}
@media (max-width:820px){.site-footer{padding:48px 24px 32px;}}

/* ==========================================================================
   Homepage-specific: hero slider, intro, catalog grid, book, press, contact
   ========================================================================== */

.hero{position:relative;height:100vh;width:100%;overflow:hidden;background:var(--ink);}
.slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1.4s ease;}
.slide.active{opacity:1;}
.slide::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg, rgba(0,0,0,.15) 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,0) 60%, rgba(0,0,0,.55) 100%);}
.hero-content{position:absolute;left:48px;bottom:56px;z-index:5;color:#fff;max-width:560px;}
.hero-content .label{color:rgba(255,255,255,.75);margin-bottom:14px;}
.hero-content h1{font-size:clamp(32px,4.2vw,56px);font-weight:340;line-height:1.08;}
.hero-content h1 em{font-style:italic;color:var(--green);font-weight:440;}
.hero-index{position:absolute;right:48px;bottom:56px;z-index:5;color:#fff;display:flex;align-items:flex-end;gap:16px;}
.hero-index .label{color:rgba(255,255,255,.6);}
.hero-dots{display:flex;gap:8px;}
.hero-dots button{width:22px;height:2px;background:rgba(255,255,255,.35);border:none;cursor:pointer;padding:0;transition:background .25s ease;}
.hero-dots button.active{background:var(--green);}
.scroll-cue{position:absolute;left:48px;top:50%;transform:translateY(-50%) rotate(-90deg);transform-origin:left center;z-index:5;}
.scroll-cue .label{color:rgba(255,255,255,.6);}

.display{font-family:'Fraunces',serif;font-weight:440;}

.intro{padding:120px 48px;max-width:840px;margin:0 auto;text-align:center;}
.intro p{font-family:'Fraunces',serif;font-style:italic;font-weight:440;font-size:clamp(22px,2.6vw,32px);line-height:1.5;color:var(--ink);}
.intro p .accent{color:var(--green);font-style:normal;}

.section-head{display:flex;align-items:baseline;justify-content:space-between;padding:0 48px;margin-bottom:40px;border-bottom:1px solid var(--line);padding-bottom:20px;}
.section-head h2{font-size:26px;font-weight:440;}
.section-head .label a{color:var(--stone);text-decoration:none;border-bottom:1px solid var(--line);}
.section-head .label a:hover{color:var(--forest);border-color:var(--green);}

.catalog{padding:0 48px 140px;}
.item{position:relative;overflow:hidden;background:var(--ink);cursor:pointer;}
.item img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(15%) contrast(1.02);transition:transform .7s cubic-bezier(.2,.7,.2,1), filter .5s ease;}
.item:hover img{transform:scale(1.045);filter:grayscale(0%) contrast(1.05);}

.tag{position:absolute;left:0;bottom:0;right:0;display:flex;justify-content:space-between;align-items:flex-end;padding:16px;opacity:0;transform:translateY(6px);transition:opacity .35s ease, transform .35s ease;background:linear-gradient(0deg, rgba(0,0,0,.6), rgba(0,0,0,0));}
.item:hover .tag{opacity:1;transform:translateY(0);}
.tag .label{color:rgba(255,255,255,.85);}
.tag .label b{color:var(--green);font-weight:500;}
.tag .name{font-family:'Fraunces',serif;font-style:italic;color:#fff;font-size:14px;}

.book{padding:0 48px 140px;display:grid;grid-template-columns:0.8fr 1fr;gap:80px;align-items:center;}
.book-cover{aspect-ratio:5/7;background:var(--ink);position:relative;overflow:hidden;}
.book-cover img{width:100%;height:100%;object-fit:cover;filter:grayscale(20%);}
.book-copy .label{margin-bottom:18px;}
.book-copy h2{font-size:clamp(28px,3.4vw,42px);font-weight:440;line-height:1.15;margin-bottom:24px;}
.book-copy h2 em{color:var(--green);font-style:italic;}
.book-copy p{color:var(--stone);font-size:15px;line-height:1.75;max-width:440px;margin-bottom:32px;}

.look-inside{padding:0 48px 140px;margin-top:-90px;}
.look-inside .label{color:var(--stone-light);margin-bottom:18px;display:block;}
.peek-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;}
.peek-grid .item{position:relative;overflow:hidden;background:var(--ink);aspect-ratio:5/3;}
.peek-grid .item img{width:100%;height:100%;object-fit:cover;filter:grayscale(8%);transition:transform .6s ease;}
.peek-grid .item:hover img{transform:scale(1.04);}

.press{padding:48px 48px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:40px;flex-wrap:wrap;}
.press .label{color:var(--stone-light);}
.press-marks{display:flex;gap:36px;flex-wrap:wrap;}
.press-marks span{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.06em;color:var(--stone);}

.about{padding:140px 48px;background:var(--tint);display:grid;grid-template-columns:1fr 1fr;gap:80px;}
.about-photo{aspect-ratio:1/1;background:var(--ink);overflow:hidden;}
.about-photo img{width:100%;height:100%;object-fit:cover;filter:grayscale(10%);}
.about-copy .label{color:var(--forest);margin-bottom:18px;}
.about-copy p{font-family:'Fraunces',serif;font-weight:400;font-size:clamp(19px,2vw,24px);line-height:1.6;color:var(--ink);margin-bottom:28px;}

.contact-section{padding:120px 48px;border-top:1px solid var(--line);}
.contact-inner{display:grid;grid-template-columns:0.8fr 1fr;gap:80px;}
.contact-intro .label{color:var(--forest);margin-bottom:18px;}
.contact-intro h2{font-family:'Fraunces',serif;font-weight:440;font-size:clamp(26px,3vw,36px);line-height:1.2;max-width:380px;}
.contact-form{display:flex;flex-direction:column;gap:22px;max-width:520px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.field{display:flex;flex-direction:column;gap:8px;}
.field label{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--stone);}
.field input,.field textarea{font-family:'Inter',sans-serif;font-size:15px;color:var(--ink);background:transparent;border:none;border-bottom:1px solid var(--line);padding:10px 2px;outline:none;transition:border-color .25s ease;resize:vertical;}
.field input:focus,.field textarea:focus{border-color:var(--green);}
.field textarea{min-height:110px;}
.hp-field{position:absolute;left:-9999px;top:-9999px;}
.submit-btn{align-self:flex-start;font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#fff;background:var(--ink);border:1px solid var(--ink);padding:15px 30px;cursor:pointer;transition:background .25s ease, border-color .25s ease;}
.submit-btn:hover{background:var(--green);border-color:var(--green);}
.form-note{font-size:12px;color:var(--stone-light);}
.form-status{font-size:13px;color:var(--forest);display:none;}

/* ==========================================================================
   Work page-specific: hero, filters, grid
   ========================================================================== */

.work-hero{padding:140px 48px 60px;border-bottom:1px solid var(--line);}
.work-hero .label{color:var(--forest);margin-bottom:18px;}
.work-hero h1{font-size:clamp(34px,4.4vw,58px);font-weight:340;line-height:1.1;max-width:680px;}
.work-hero h1 em{font-style:italic;color:var(--green);font-weight:440;}
.work-hero p{margin-top:20px;color:var(--stone);font-size:15px;line-height:1.7;max-width:520px;}

.filters{display:flex;gap:10px;flex-wrap:wrap;padding:32px 48px;border-bottom:1px solid var(--line);}
.filter-btn{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--stone);background:transparent;border:1px solid var(--line);padding:10px 18px;cursor:pointer;transition:all .25s ease;}
.filter-btn:hover{border-color:var(--green);color:var(--forest);}
.filter-btn.active{background:var(--ink);border-color:var(--ink);color:#fff;}
.filter-btn .count{color:var(--stone-light);margin-left:6px;}
.filter-btn.active .count{color:rgba(255,255,255,.6);}

.work-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;padding:2px 48px 140px;}
.work-grid .item{aspect-ratio:4/5;}
.work-grid .item.hidden{display:none;}
.video-item{display:block;text-decoration:none;}
.play-icon{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:52px;height:52px;border-radius:50%;background:rgba(20,20,15,.55);
  display:flex;align-items:center;justify-content:center;transition:background .25s ease, transform .25s ease;
}
.play-icon::after{
  content:'';width:0;height:0;margin-left:4px;
  border-top:10px solid transparent;border-bottom:10px solid transparent;border-left:16px solid #fff;
}
.video-item:hover .play-icon{background:var(--green);transform:translate(-50%,-50%) scale(1.08);}

/* ==========================================================================
   Responsive — homepage & Work page additions
   ========================================================================== */
@media (max-width:1000px){.work-grid{grid-template-columns:repeat(3,1fr);}}
@media (max-width:820px){
  .work-grid{grid-template-columns:repeat(2,1fr);}
  .hero-content,.hero-index,.scroll-cue{left:24px;right:24px;bottom:32px;}
  .hero-index{left:auto;}
  .catalog,.intro,.book,.press,.about,.contact-section,.look-inside{padding-left:24px;padding-right:24px;}
  .book{grid-template-columns:1fr;gap:40px;}
  .look-inside{padding-top:0;margin-top:0;}
  .peek-grid{grid-template-columns:1fr;}
  .about{grid-template-columns:1fr;padding-top:80px;padding-bottom:80px;gap:40px;}
  .contact-section{padding-top:70px;padding-bottom:70px;}
  .contact-inner{grid-template-columns:1fr;gap:36px;}
  .form-row{grid-template-columns:1fr;}
  .work-hero{padding-left:24px;padding-right:24px;}
  .filters{padding-left:24px;padding-right:24px;}
  .work-grid{grid-template-columns:repeat(2,1fr);padding:2px 24px 100px;}
}

/* ==========================================================================
   Projects page
   ========================================================================== */
.project-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2px;padding:0 48px 140px;}
.project-card{border:1px solid var(--line);display:flex;flex-direction:column;}
.project-media{aspect-ratio:16/10;overflow:hidden;background:var(--ink);}
.project-media img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(10%);transition:transform .5s ease;}
.project-card:hover .project-media img{transform:scale(1.03);}
.project-media-grid{display:grid;grid-template-columns:repeat(var(--cols,3),1fr);gap:2px;aspect-ratio:16/10;overflow:hidden;background:var(--ink);}
.project-media-grid img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(10%);transition:transform .5s ease;}
.project-media-grid img:hover{transform:scale(1.04);}
.project-body{padding:32px;display:flex;flex-direction:column;flex:1;}
.project-body .label{color:var(--forest);margin-bottom:12px;}
.project-body h3{font-size:20px;margin-bottom:12px;}
.project-body p{color:var(--stone);font-size:14px;line-height:1.7;margin-bottom:20px;flex:1;}
.project-link{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--ink);align-self:flex-start;padding-bottom:2px;transition:color .25s ease,border-color .25s ease;}
.project-link:hover{color:var(--forest);border-color:var(--green);}
@media (max-width:820px){.project-grid{grid-template-columns:1fr;padding:0 24px 90px;}.project-body{padding:24px;}}

/* ==========================================================================
   Book page
   ========================================================================== */
.book-hero{padding:140px 48px 0;}
.book-hero .label{color:var(--forest);margin-bottom:18px;}
.book-hero h1{font-size:clamp(36px,5vw,64px);font-weight:340;line-height:1.08;max-width:720px;}
.book-hero h1 em{font-style:italic;color:var(--green);font-weight:440;}
.book-hero p{margin-top:20px;color:var(--stone);font-size:16px;line-height:1.75;max-width:560px;}
.book-detail{padding:80px 48px 140px;display:grid;grid-template-columns:0.7fr 1fr;gap:80px;align-items:center;}
.book-detail-cover{aspect-ratio:5/7;background:var(--ink);overflow:hidden;}
.book-detail-cover img{width:100%;height:100%;object-fit:cover;filter:grayscale(15%);}
.book-facts{list-style:none;margin:28px 0 32px;padding:0;display:flex;flex-direction:column;gap:10px;}
.book-facts li{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.04em;color:var(--stone);}
.book-facts li b{color:var(--ink);font-weight:500;}
.book-inside{padding:0 48px 140px;}
@media (max-width:820px){
  .book-hero{padding:100px 24px 0;}
  .book-detail{grid-template-columns:1fr;gap:36px;padding:60px 24px 90px;}
  .book-inside{padding:0 24px 90px;}
}
