:root{
  --pine:#16311F; --pine-deep:#0D1F14; --gold:#C6A15B;
  --cream:#F4F0E6; --cream-2:#EAE4D5; --ink:#22261F; --moss:#5B7A62;
  --wrap:1160px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);
  font-family:Newsreader,Georgia,serif;font-weight:300;font-size:19px;line-height:1.65;
  -webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}

.skip{position:absolute;left:-999px}
.skip:focus{left:12px;top:12px;background:var(--gold);color:var(--pine-deep);padding:10px 16px;z-index:99}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 28px}
.narrow{max-width:760px}
.centre{text-align:center}

/* ---------- type ---------- */
.display{font-family:Fraunces,serif;font-weight:300;font-size:clamp(2.6rem,6.4vw,5rem);
  line-height:1.02;letter-spacing:-.02em;margin:.15em 0 .4em}
.display em{font-style:italic;color:var(--gold)}
.display.sm{font-size:clamp(2rem,4vw,3rem)}
h2,h3,h4{font-family:Fraunces,serif;font-weight:400;letter-spacing:-.01em}
h3{font-size:1.4rem;margin:.9rem 0 .4rem}
.eyebrow{font-family:Archivo,system-ui,sans-serif;font-size:.72rem;font-weight:500;
  letter-spacing:.22em;text-transform:uppercase;color:var(--moss);display:block}
.eyebrow.gold{color:var(--gold)}
.lede{font-size:clamp(1.1rem,2vw,1.35rem);line-height:1.5;max-width:44ch;opacity:.85}
.small{font-size:.85rem}
.italic{font-style:italic;opacity:.72}
.prose p{max-width:62ch}
.statement{font-family:Fraunces,serif;font-weight:300;font-style:italic;
  font-size:clamp(1.3rem,2.6vw,1.9rem);line-height:1.45;max-width:30ch;margin:1.4rem auto}

/* ---------- header ---------- */
.topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:24px;
  padding:14px 28px;background:rgba(22,49,31,.96);color:var(--cream);
  backdrop-filter:blur(6px)}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none}
.mark{width:22px;height:26px;fill:var(--gold);flex:none}
.wordmark{font-family:Fraunces,serif;font-size:1.12rem;letter-spacing:.04em}
.topbar nav{margin-left:auto;display:flex;gap:26px}
.topbar nav a{font-family:Archivo,sans-serif;font-size:.78rem;letter-spacing:.13em;
  text-transform:uppercase;text-decoration:none;opacity:.78;padding:4px 0;
  border-bottom:1px solid transparent;transition:opacity .2s,border-color .2s}
.topbar nav a:hover,.topbar nav a.here{opacity:1;border-color:var(--gold)}
.menu{display:none;margin-left:auto;background:none;border:1px solid rgba(244,240,230,.4);
  color:var(--cream);font-family:Archivo,sans-serif;font-size:.72rem;letter-spacing:.14em;
  text-transform:uppercase;padding:8px 14px;border-radius:2px;cursor:pointer}

/* ---------- hero ---------- */
.hero{position:relative;background:var(--pine);color:var(--cream);overflow:hidden}
.hero .shot.hero{position:absolute;inset:0;margin:0}
.hero .shot.hero img{width:100%;height:100%;object-fit:cover;opacity:.5}
.hero .shot.hero figcaption{display:none}
.hero-copy{position:relative;max-width:var(--wrap);margin:0 auto;padding:clamp(90px,17vh,190px) 28px}
.hero-copy .eyebrow{color:var(--gold)}
.hero::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(100deg,rgba(13,31,20,.92) 12%,rgba(13,31,20,.45) 62%,rgba(13,31,20,.15))}
.hero-copy{z-index:2}
.hero.compact{padding:clamp(58px,10vh,110px) 0 clamp(46px,8vh,86px)}
.hero.compact::after{display:none}

/* ---------- sections ---------- */
section{padding:clamp(56px,9vw,110px) 0}
.hero{padding:0}
.on-cream{background:var(--cream)}
.on-pine{background:var(--pine);color:var(--cream)}
.on-pine .eyebrow{color:var(--gold)}

/* ---------- image slots ---------- */
.shot{margin:1.8rem 0;position:relative}
.shot img{width:100%;border-radius:2px}
.shot.wide img{aspect-ratio:3/2;object-fit:cover}
.shot.tall img{aspect-ratio:4/5;object-fit:cover}
.shot figcaption{display:none}
.shot.empty img{display:none}
.shot.empty::before{content:"";display:block;background:
  repeating-linear-gradient(45deg,var(--cream-2) 0 10px,transparent 10px 20px),var(--cream-2);
  border:1px dashed rgba(22,49,31,.3);border-radius:2px}
.shot.empty.wide::before{aspect-ratio:3/2}
.shot.empty.tall::before{aspect-ratio:4/5}
.shot.empty.hero::before{height:100%;aspect-ratio:auto;opacity:.12}
.shot.empty figcaption{display:block;position:absolute;left:50%;top:50%;
  transform:translate(-50%,-50%);font-family:Archivo,sans-serif;font-size:.68rem;
  letter-spacing:.08em;color:rgba(22,49,31,.62);text-align:center;padding:0 14px}
.hero .shot.empty figcaption{display:none}

/* ---------- cards ---------- */
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;margin-top:2.4rem}
.card p{font-size:.95rem;opacity:.82}
.card .shot{margin:0 0 .2rem}

/* ---------- split ---------- */
.two{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(30px,5vw,72px);align-items:center}
.pad{padding:6px 0}

/* ---------- steps ---------- */
.stack{display:flex;flex-direction:column;gap:clamp(40px,6vw,72px)}
.step{display:grid;grid-template-columns:120px 1fr;gap:clamp(20px,4vw,50px);
  padding-bottom:clamp(40px,6vw,72px);border-bottom:1px solid rgba(22,49,31,.14)}
.step:last-child{border:none;padding-bottom:0}
.num{font-family:Fraunces,serif;font-style:italic;font-size:1.5rem;color:var(--gold);
  padding-top:.35rem}
.step p{max-width:56ch}

/* ---------- products ---------- */
.products{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,4vw,48px);margin-top:2rem}
.product{display:flex;flex-direction:column}
.product p{font-size:.95rem}
.meta{font-family:Archivo,sans-serif;font-size:.7rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--moss);margin:.1rem 0 .7rem}
.price{font-family:Fraunces,serif;font-size:1.5rem;margin:.6rem 0 1rem}
.price strong{font-weight:500}
.was{font-size:1rem;text-decoration:line-through;opacity:.45;margin-left:.3rem}
.product .cta{margin-top:auto}
.note{margin-top:3rem;font-style:italic;opacity:.7;text-align:center}

/* ---------- chapters ---------- */
.chapters{display:grid;grid-template-columns:1fr 1fr;gap:1.6rem 2.4rem;margin:2.4rem 0 2.8rem;
  padding:2rem 0;border-top:1px solid rgba(22,49,31,.14);border-bottom:1px solid rgba(22,49,31,.14)}
.rn{font-family:Fraunces,serif;font-style:italic;color:var(--gold);font-size:1.1rem}
.chapters h4{margin:.15rem 0 .1rem;font-size:1.12rem}
.chapters p{margin:0;font-size:.9rem;opacity:.75}

/* ---------- ripple signature ---------- */
.ripple{color:var(--gold);opacity:.55;max-width:320px;margin:0 auto}
.ripple svg{width:100%;stroke-width:.8}
.ripple ellipse{transform-origin:160px 60px;animation:ring 5s ease-out infinite}
.ripple ellipse:nth-child(2){animation-delay:.5s}
.ripple ellipse:nth-child(3){animation-delay:1s}
.ripple ellipse:nth-child(4){animation-delay:1.5s}
.ripple ellipse:nth-child(5){animation-delay:2s}
@keyframes ring{0%{opacity:0;transform:scale(.55)}25%{opacity:1}100%{opacity:0;transform:scale(1.06)}}

/* ---------- cta ---------- */
.cta{display:inline-block;font-family:Archivo,sans-serif;font-size:.76rem;letter-spacing:.16em;
  text-transform:uppercase;text-decoration:none;padding:15px 30px;margin-top:1.2rem;
  background:var(--gold);color:var(--pine-deep);border-radius:2px;
  transition:transform .18s ease,filter .18s ease}
.cta:hover{transform:translateY(-2px);filter:brightness(1.07)}
.small-cta{padding:12px 22px}
.contact-card{border:1px solid rgba(22,49,31,.18);padding:clamp(32px,6vw,56px);
  margin-top:2rem;background:#fff;border-radius:2px}
.email{font-family:Fraunces,serif;font-size:clamp(1.1rem,3vw,1.7rem);
  color:var(--pine);text-decoration:none;border-bottom:1px solid var(--gold)}

/* ---------- footer ---------- */
footer{background:var(--pine-deep);color:var(--cream);padding:clamp(46px,6vw,72px) 0 40px}
.foot{display:grid;grid-template-columns:1fr 1fr 1fr;gap:34px;align-items:start}
.foot .mark{width:26px;height:31px}
.tag{font-family:Fraunces,serif;font-style:italic;opacity:.75;margin:.7rem 0 0;font-size:1rem}
.footlinks{display:flex;flex-direction:column;gap:9px}
.footlinks a{font-family:Archivo,sans-serif;font-size:.76rem;letter-spacing:.13em;
  text-transform:uppercase;text-decoration:none;opacity:.7}
.footlinks a:hover{opacity:1}
footer .small{opacity:.6;margin:0}
footer a{color:var(--gold)}

/* ---------- responsive ---------- */
@media(max-width:960px){
  .cards{grid-template-columns:1fr 1fr}
  .products{grid-template-columns:1fr}
  .two{grid-template-columns:1fr}
  .foot{grid-template-columns:1fr;gap:26px}
}
@media(max-width:680px){
  body{font-size:18px}
  .menu{display:block}
  .topbar nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;
    gap:0;background:var(--pine);padding:8px 28px 20px}
  .topbar nav.open{display:flex}
  .topbar nav a{padding:11px 0;border-bottom:1px solid rgba(244,240,230,.12)}
  .cards{grid-template-columns:1fr}
  .chapters{grid-template-columns:1fr}
  .step{grid-template-columns:1fr;gap:8px}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
}
