:root{
  --paper:#F7F5F0;
  --ink:#1D1B15;
  --stone:#8F8A7C;
  --line:#E6E2D7;
  --block:#EDEAE0;
  --matcha:#57624A;
  --rust-bg:#EEDCCE;
  --rust-ink:#8C5A3C;
  --sans:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",Helvetica,Arial,sans-serif;
  --serif:"Newsreader",Georgia,serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
}
::selection{background:var(--matcha);color:var(--paper)}

a{color:var(--ink)}
a:focus-visible,button:focus-visible{outline:2px solid var(--matcha);outline-offset:3px;border-radius:2px}

.frame{max-width:1040px;margin:0 auto;padding:0 32px}

/* ---------- Nav ---------- */
nav{padding:40px 0 0}
.nav-inner{
  max-width:1040px;margin:0 auto;padding:0 32px;
  display:flex;justify-content:space-between;align-items:baseline;
}
.logo{
  font-family:var(--serif);font-size:18px;font-weight:500;
  cursor:pointer;color:var(--ink);text-decoration:none;
}
.nav-links{display:flex;gap:28px}
.nav-links a{
  font-size:14px;text-decoration:none;cursor:pointer;
  color:var(--stone);transition:color .2s;
}
.nav-links a:hover,.nav-links a.active{color:var(--ink)}

/* ---------- Type ---------- */
h1{
  font-family:var(--serif);font-weight:400;
  font-size:30px;line-height:1.35;letter-spacing:.005em;
}
h2,h3{
  font-family:var(--serif);font-weight:500;
  font-size:17px;line-height:1.5;
}
.label{
  font-family:var(--sans);
  font-size:14px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink);font-weight:600;line-height:1.6;
}
.muted{color:var(--stone)}

/* ---------- Section grid: label left, content right ---------- */
.section{
  max-width:1040px;margin:0 auto;
  padding:104px 32px 0;
  display:grid;grid-template-columns:1fr;gap:24px;
}
@media(min-width:760px){
  .section{grid-template-columns:240px 1fr;gap:64px}
}
.end{padding-bottom:140px}

/* ---------- Hero ---------- */
.hero{
  max-width:1040px;margin:0 auto;
  padding:128px 32px 0;
  display:grid;grid-template-columns:1fr;gap:48px;
}
@media(min-width:860px){
  .hero{grid-template-columns:1fr 320px;gap:80px;align-items:start}
}
.hero p{margin-top:22px;max-width:58ch;font-size:17px}
.hero .cred{margin-top:16px;font-size:14px;max-width:60ch}
.cred a{
  color:var(--stone);font-weight:400;
  text-decoration:underline;text-underline-offset:3px;
  text-decoration-color:var(--line);
  transition:color .2s;
}
.cred a:hover{color:var(--ink)}
.hero-img{max-height:400px}
.boxlink{
  display:inline-block;
  font-size:15px;font-weight:600;color:var(--ink);
  border:1px solid #D9D3C4;border-radius:3px;
  padding:10px 24px;cursor:pointer;text-decoration:none;
  transition:border-color .2s;
}
.boxlink:hover{border-color:var(--ink)}

/* ---------- Because ---------- */
.because{list-style:none}
.because li{
  padding:11px 0;
  border-bottom:1px solid var(--line);
  font-size:16px;
}
.because li:first-child{border-top:1px solid var(--line)}

/* ---------- Pillars ---------- */
.pillars{display:grid;gap:40px}
@media(min-width:640px){.pillars{grid-template-columns:1fr 1fr;gap:48px 56px}}
.pillar h3{margin-bottom:8px}
.pillar p{font-size:15px}

/* ---------- Working with ---------- */
.with-item{
  display:grid;grid-template-columns:170px 1fr;gap:28px;align-items:center;
  padding:22px 0;border-bottom:1px solid var(--line);
}
.with-logo-img{width:100%;object-fit:contain;display:block}
.with-item:first-of-type{border-top:1px solid var(--line)}
.with-logo{
  background:var(--block);border:1px solid var(--line);
  aspect-ratio:5/2;display:flex;align-items:center;justify-content:center;
  color:var(--stone);font-size:11px;letter-spacing:.08em;text-transform:uppercase;
}
.with-item p{font-size:15px}

/* ---------- Lens ---------- */
.lens-wrap{display:grid;grid-template-columns:1fr;gap:48px}
@media(min-width:860px){
  .lens-wrap{grid-template-columns:1fr 240px;gap:64px;align-items:start}
}
.lens-imgs{display:grid;gap:14px}
.lens-imgs .ph{cursor:pointer;transition:opacity .25s}
.lens-imgs .ph:hover{opacity:.75}
.lens-intro{max-width:56ch;margin-bottom:28px}
.lens-item{padding:15px 0;border-bottom:1px solid var(--line)}
.lens-item:first-of-type{border-top:1px solid var(--line)}
.lens-item h3{display:inline}
.lens-item p{font-size:15px;color:var(--stone);margin-top:2px}

/* ---------- Gallery ---------- */
.gallery-frame{max-width:1040px;margin:0 auto;padding:104px 32px 0}
.gallery{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(min-width:640px){.gallery{grid-template-columns:repeat(3,1fr);gap:14px}}
.ph{
  background:var(--block);
  border:1px solid var(--line);
  display:flex;align-items:flex-end;
  padding:10px 12px;
  color:var(--stone);
  font-size:11px;letter-spacing:.08em;text-transform:uppercase;
}
.r34{aspect-ratio:3/4}
.g-img{
  width:100%;aspect-ratio:3/4;object-fit:cover;display:block;
  border:1px solid var(--line);cursor:pointer;transition:opacity .25s;
}
.g-img:hover{opacity:.88}
.img-wide{
  width:100%;aspect-ratio:16/8;object-fit:cover;display:block;
  border:1px solid var(--line);
}
#lightboxImg{display:none;max-width:min(880px,100%);max-height:84vh;object-fit:contain}
.gallery .ph{cursor:pointer;transition:opacity .25s}
.gallery .ph:hover{opacity:.75}

/* ---------- Lightbox ---------- */
.lightbox{
  position:fixed;inset:0;z-index:100;
  background:rgba(29,27,21,.94);
  display:none;align-items:center;justify-content:center;
  padding:32px;
}
.lightbox.open{display:flex}
.lightbox .ph{
  width:min(860px,100%);aspect-ratio:3/2;
  background:#2B2921;border-color:#3B392F;color:#8F8A7C;
}
.lightbox-close{
  position:absolute;top:24px;right:28px;
  background:none;border:none;color:var(--paper);
  font-size:14px;cursor:pointer;font-family:var(--sans);
}

/* ---------- Beliefs ---------- */
.beliefs{display:grid;gap:36px}
@media(min-width:640px){.beliefs{grid-template-columns:1fr 1fr;gap:44px 56px}}
.belief h3{margin-bottom:6px}
.belief p{font-size:15px}

/* ---------- Statement ---------- */
.statement h2{
  font-family:var(--serif);font-weight:400;
  font-size:24px;margin-bottom:18px;
}
.statement p{max-width:58ch}

/* ---------- Prose (About) ---------- */
.prose p{margin-bottom:26px;max-width:62ch}
.prose p:last-child{margin-bottom:0}

/* ---------- Timeline (About) ---------- */
.timeline{display:grid}
.tl-chapter{
  display:grid;grid-template-columns:1fr;gap:16px;
  padding:40px 0;border-top:1px solid var(--line);
}
.tl-chapter:first-child{border-top:none;padding-top:0}
@media(min-width:640px){
  .tl-chapter{grid-template-columns:150px 1fr;gap:28px}
}
.tl-co{font-family:var(--serif);font-size:20px;color:var(--ink);line-height:1.3}
.tl-place{font-size:14px;color:var(--stone);margin-top:2px}
.tl-body h3{margin-bottom:10px}
.tl-body p{font-size:15px;max-width:56ch;margin-bottom:14px}
.tl-tags{display:flex;flex-wrap:wrap;gap:8px}
.tl-tag{
  display:inline-block;
  background:var(--block);color:var(--ink);
  border:1px solid var(--line);
  font-size:12px;line-height:1.55;
  padding:6px 14px;border-radius:18px;
  text-wrap:balance;
}
.tl-tag--story{
  background:var(--rust-bg);color:#6E4227;
  border-color:transparent;
}
.tl-tag--empty{min-width:110px;min-height:28px}

/* ---------- Contact ---------- */
form{max-width:560px}
.field{margin-bottom:32px}
label{
  display:block;font-size:12px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--stone);margin-bottom:8px;
}
input,textarea{
  width:100%;background:transparent;
  border:none;border-bottom:1px solid var(--line);
  padding:6px 0 10px;font-size:16px;font-family:var(--sans);
  color:var(--ink);border-radius:0;
}
input:focus,textarea:focus{outline:none;border-bottom-color:var(--ink)}
textarea{min-height:96px;resize:vertical}
.send{
  background:none;border:1px solid #D9D3C4;border-radius:3px;
  padding:10px 24px;cursor:pointer;
  font-family:var(--sans);font-size:15px;font-weight:600;color:var(--ink);
  transition:border-color .2s;
}
.send:hover{border-color:var(--ink)}
.send[disabled]{opacity:.5;cursor:default}
.sent{display:none;margin-top:24px;font-size:15px;color:var(--matcha)}
.honeypot-field{position:absolute;left:-9999px;top:-9999px}

/* ---------- Footer ---------- */
footer{margin-top:150px;border-top:1px solid var(--line);padding:52px 0 64px}
.foot{
  max-width:1040px;margin:0 auto;padding:0 32px;
  display:grid;gap:28px;
}
@media(min-width:760px){
  .foot{grid-template-columns:1fr auto;align-items:start}
}
.foot p{font-size:14px;color:var(--stone);max-width:44ch;margin-top:10px}
.foot-links{display:flex;gap:24px;flex-wrap:wrap}
@media(min-width:760px){.foot-links{justify-content:flex-end}}
.foot-links a{font-size:14px;color:var(--stone);text-decoration:none;cursor:pointer}
.foot-links a:hover{color:var(--ink)}
.copyright{
  max-width:1040px;margin:44px auto 0;padding:0 32px;
  font-size:12px;color:var(--stone);
}

/* ---------- Mobile image sizing ---------- */
@media(max-width:759px){
  .hero-img,
  .lens-imgs .g-img{
    width:50%;
    margin-inline:auto;
  }
  .gallery{
    grid-template-columns:repeat(3,1fr);
    gap:8px;
  }
}
