:root{
  --paper:#FAF8F2;
  --paper-soft:#F1EBDC;
  --ink:#1E1D1B;
  --umber:#8A5636;
  --mist:#5F8480;
  --mist-bg:#E4EDEB;
  --ash:#8B8A80;
  --line: rgba(30,29,27,0.12);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:'Work Sans', sans-serif;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{color:inherit;}
:focus-visible{outline:2px solid var(--umber); outline-offset:3px;}

h1,h2,h3,.display{
  font-family:'Fraunces', serif;
  font-weight:400;
  letter-spacing:-0.01em;
}

.eyebrow{
  font-family:'Work Sans', sans-serif;
  font-size:0.72rem;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--ash);
}

/* ---------- NAV ---------- */
nav{
  position:fixed; top:0; left:0; right:0; z-index:50;
  display:flex; justify-content:space-between; align-items:center;
  padding:1.4rem clamp(1.2rem,4vw,3rem);
  background:rgba(250,248,242,0.86);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
  color:var(--ink);
}
nav .nav-name{font-family:'Fraunces', serif; font-size:1rem; letter-spacing:0.02em; text-decoration:none;}
nav ul{list-style:none; display:flex; gap:clamp(1rem,3vw,2.2rem);}
nav a{font-size:0.78rem; letter-spacing:0.08em; text-transform:uppercase; text-decoration:none; padding-bottom:0.2rem;}
nav a.current{border-bottom:1px solid var(--umber); color:var(--umber);}
@media (max-width:600px){ nav ul{gap:0.9rem;} nav a{font-size:0.66rem;} }

/* ---------- PAGE HERO (small, non-home pages) ---------- */
.page-hero{
  min-height:46vh;
  display:flex; flex-direction:column; justify-content:flex-end;
  padding:clamp(1.5rem,5vw,3.5rem);
  padding-top:8rem;
  color:var(--ink);
  background:linear-gradient(160deg, var(--paper) 0%, var(--mist-bg) 75%, #EDE3D3 130%);
  position:relative; overflow:hidden;
}
.page-hero::before{
  content:"";
  position:absolute; inset:0;
  background:radial-gradient(ellipse 60% 35% at 15% 90%, rgba(95,132,128,0.16), transparent 60%);
  animation:drift 26s ease-in-out infinite alternate;
}
@keyframes drift{ from{transform:translateX(-2%);} to{transform:translateX(2%) translateY(-1.5%);} }
@media (prefers-reduced-motion:reduce){ .page-hero::before{animation:none;} }
.page-hero h1{position:relative; z-index:2; font-size:clamp(2.2rem,6vw,4rem); max-width:16ch; line-height:1.05; color:var(--ink);}
.page-hero .eyebrow{position:relative; z-index:2; color:var(--umber); margin-bottom:1rem;}

/* ---------- HOME HERO ---------- */
.hero{
  position:relative; min-height:100vh;
  display:flex; flex-direction:column; justify-content:flex-end;
  padding:clamp(1.5rem,5vw,3.5rem);
  color:var(--ink);
  background:linear-gradient(180deg, var(--paper) 0%, var(--paper) 40%, var(--mist-bg) 75%, #EDE3D3 100%);
  overflow:hidden;
}
.hero::before{
  content:"";
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse 60% 30% at 20% 85%, rgba(95,132,128,0.20), transparent 60%),
    radial-gradient(ellipse 50% 25% at 75% 92%, rgba(138,86,54,0.10), transparent 65%);
  animation:drift 26s ease-in-out infinite alternate;
}
.hero::after{
  content:"";
  position:absolute; left:0; right:0; bottom:0; height:38%;
  clip-path:polygon(0% 100%, 0% 55%, 8% 48%, 18% 62%, 30% 40%, 42% 58%, 55% 35%, 68% 55%, 80% 42%, 92% 60%, 100% 46%, 100% 100%);
  background-color:var(--umber);
  opacity:0.14;
}
.hero-top{position:relative; z-index:2; display:flex; justify-content:space-between; align-items:flex-start; padding-top:5.5rem; margin-bottom:clamp(2rem,8vh,6rem);}
.hero-pairs{display:flex; flex-direction:column; gap:0.55rem; text-align:right;}
.hero-pairs span{font-family:'Fraunces', serif; font-style:italic; font-size:clamp(0.85rem,1.4vw,1.05rem); color:var(--umber);}
.hero-bottom{position:relative; z-index:2; padding-bottom:2.2rem;}
.hero-bottom h1{font-size:clamp(2.2rem,7vw,5rem); line-height:1.05; max-width:20ch; color:var(--ink);}
.hero-sub{font-family:'Fraunces', serif; font-style:italic; font-size:clamp(1rem,2vw,1.3rem); color:var(--umber); margin-top:0.8rem; max-width:32ch;}
.hero-meta{margin-top:1.4rem; display:flex; gap:1.5rem; flex-wrap:wrap; font-size:0.85rem; color:rgba(30,29,27,0.62);}
.scroll-cue{position:absolute; bottom:1.6rem; left:clamp(1.2rem,5vw,3.5rem); font-size:0.7rem; letter-spacing:0.15em; text-transform:uppercase; color:rgba(30,29,27,0.45); writing-mode:vertical-rl;}

section{padding:clamp(4.5rem,10vw,8rem) clamp(1.2rem,5vw,3.5rem);}

/* ---------- INTRO TEASER (home) ---------- */
.teaser{max-width:1180px; margin:0 auto; display:grid; grid-template-columns:0.9fr 1.4fr; gap:clamp(2rem,5vw,5rem);}
@media (max-width:800px){ .teaser{grid-template-columns:1fr;} }
.teaser blockquote{font-family:'Fraunces', serif; font-style:italic; font-size:clamp(1.1rem,2vw,1.5rem); line-height:1.4; color:var(--umber); border-left:1px solid var(--umber); padding-left:1.2rem;}
.teaser p{font-size:1.02rem; line-height:1.85; color:#3a3a36; margin-bottom:1.3rem; max-width:62ch;}
.teaser a.more{font-size:0.85rem; letter-spacing:0.05em; text-decoration:none; border-bottom:1px solid var(--umber); color:var(--umber); padding-bottom:0.15rem;}

/* ---------- STATEMENT PAGE ---------- */
.statement{display:grid; grid-template-columns:0.9fr 1.4fr; gap:clamp(2rem,5vw,5rem); max-width:1180px; margin:0 auto;}
@media (max-width:800px){ .statement{grid-template-columns:1fr;} }
.statement .label-col{position:sticky; top:6rem; align-self:start;}
.statement .label-col .eyebrow{margin-bottom:0.8rem;}
.statement blockquote{font-family:'Fraunces', serif; font-style:italic; font-size:clamp(1.1rem,2vw,1.5rem); line-height:1.4; color:var(--umber); border-left:1px solid var(--umber); padding-left:1.2rem;}
.statement p{font-size:1.02rem; line-height:1.85; color:#3a3a36; margin-bottom:1.3rem; max-width:62ch;}

.bio-list{display:flex; flex-direction:column;}
.bio-row{
  display:flex; justify-content:space-between; align-items:center; gap:1rem;
  padding:1rem 0; border-top:1px dashed var(--line);
  font-size:0.98rem;
}
.bio-row:last-child{border-bottom:1px dashed var(--line);}
.bio-row .hint{
  font-size:0.65rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--ash);
  border:1px solid var(--line); padding:0.2rem 0.5rem; border-radius:2px; white-space:nowrap;
}

/* ---------- DUALITY ---------- */
.duality{background:var(--paper-soft);}
.duality .eyebrow{color:var(--umber); margin-bottom:2.5rem;}
.pair-row{display:flex; justify-content:space-between; align-items:center; padding:1.6rem 0; border-top:1px solid var(--line); position:relative; overflow:hidden;}
.pair-row:last-child{border-bottom:1px solid var(--line);}
.pair-row .grounded, .pair-row .transient{font-family:'Fraunces', serif; font-size:clamp(1.4rem,4vw,2.6rem); transition:transform .55s cubic-bezier(.22,.8,.28,1); position:relative; z-index:1;}
.pair-row .grounded{color:var(--ink);}
.pair-row .transient{color:var(--mist); font-style:italic;}
.pair-row::before{content:""; position:absolute; inset:0; left:auto; width:0; background:linear-gradient(90deg, transparent, rgba(95,132,128,0.12)); transition:width .6s ease;}
.pair-row:hover::before{width:100%;}
.pair-row:hover .grounded{transform:translateX(-6px);}
.pair-row:hover .transient{transform:translateX(6px);}
.pair-index{font-size:0.75rem; color:var(--ash); letter-spacing:0.1em;}

/* ---------- EPHEMERA PULL ---------- */
.ephemera{background:var(--paper); text-align:center; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.ephemera .eyebrow{margin-bottom:1.2rem;}
.ephemera h2{font-size:clamp(1.8rem,4.5vw,3.2rem); max-width:20ch; margin:0 auto 1.4rem; line-height:1.15; color:var(--ink);}
.ephemera p{max-width:56ch; margin:0 auto; color:#3c3c38; line-height:1.8;}

/* ---------- GALLERY ---------- */
.gallery-head{max-width:1180px; margin:0 auto 2.5rem; display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:1rem;}
.gallery-head h1,.gallery-head h2{font-size:clamp(1.6rem,3.5vw,2.4rem);}
.gallery{max-width:1180px; margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem;}
@media (max-width:900px){ .gallery{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .gallery{grid-template-columns:1fr;} }
.plate{
  display:flex; flex-direction:column; gap:0.9rem;
}
.plate-img{
  aspect-ratio:4/5; border:none;
  background:#0E0D0C;
  display:flex; align-items:center; justify-content:center;
  overflow:hidden;
}
.plate-img img{
  width:100%; height:100%; object-fit:contain; display:block;
}
.plate-img img.fill{object-fit:cover;}
.plate span.tag{font-family:'Fraunces', serif; font-style:italic; font-size:0.95rem; color:var(--ink);}
.plate span.hint{font-size:0.62rem; letter-spacing:0.08em; text-transform:uppercase; opacity:0.6; border:1px solid var(--line); padding:0.2rem 0.5rem; border-radius:2px; color:var(--ink); align-self:flex-start;}
.gallery-note{max-width:1180px; margin:2rem auto 0; font-size:0.85rem; color:var(--ash); line-height:1.7;}

/* ---------- FACTS ---------- */
.facts{display:grid; grid-template-columns:repeat(4,1fr); gap:2rem; max-width:1180px; margin:0 auto; border-top:1px solid var(--line); padding-top:2.5rem;}
@media (max-width:800px){ .facts{grid-template-columns:repeat(2,1fr);} }
.facts .eyebrow{margin-bottom:0.6rem;}
.facts p{font-size:0.95rem; line-height:1.6; color:#3a3a36;}

/* ---------- CONTACT ---------- */
.contact-block{max-width:1180px; margin:0 auto;}
.contact-block h2{font-size:clamp(1.8rem,4.5vw,3rem); max-width:16ch; margin-bottom:2.5rem; color:var(--ink);}
.contact-list{display:flex; flex-direction:column; gap:0; border-top:1px solid var(--line);}
.contact-list a{
  display:flex; justify-content:space-between; align-items:center;
  padding:1.4rem 0; border-bottom:1px solid var(--line);
  text-decoration:none; font-family:'Fraunces', serif; font-size:clamp(1.1rem,2.5vw,1.6rem);
  transition:padding-left .3s ease, color .3s ease;
}
.contact-list a:hover{padding-left:0.8rem; color:var(--umber);}
.contact-list a .arrow{font-family:'Work Sans',sans-serif; font-size:0.85rem;}

/* ---------- FOOTER ---------- */
footer{background:var(--paper-soft); color:var(--ink); border-top:1px solid var(--line); padding:clamp(3rem,7vw,5rem) clamp(1.2rem,5vw,3.5rem) 2.2rem;}
footer .foot-inner{max-width:1180px; margin:0 auto;}
.foot-links{display:flex; gap:2.5rem; flex-wrap:wrap; margin-bottom:2.5rem;}
.foot-links a{text-decoration:none; font-size:0.95rem; letter-spacing:0.03em; border-bottom:1px solid rgba(30,29,27,0.3); padding-bottom:0.2rem;}
.foot-links a:hover{border-color:var(--umber); color:var(--umber);}
.foot-bottom{display:flex; justify-content:space-between; flex-wrap:wrap; gap:0.8rem; font-size:0.72rem; letter-spacing:0.05em; color:var(--ash); border-top:1px solid var(--line); padding-top:1.4rem;}

.reveal{opacity:0; transform:translateY(18px); transition:opacity .8s ease, transform .8s ease;}
.reveal.in{opacity:1; transform:translateY(0);}
