:root{
  --ink:#0f130e;
  --cream:#f5f1e8;
  --gold:#e9b873;
  --green-deep:#13301c;
  --ease: cubic-bezier(.16,1,.3,1);
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scrollbar-width:thin; scrollbar-color:#6b6256 transparent; }
body{
  background:#06080a;
  color:var(--cream);
  font-family:'Inter',system-ui,sans-serif;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
/* Lenis */
html.lenis,html.lenis body{ height:auto; }
.lenis.lenis-smooth{ scroll-behavior:auto !important; }

/* ░░░░░ Preloader ░░░░░ */
.loader{
  position:fixed; inset:0; z-index:1000;
  background:#06080a;
  display:flex; align-items:center; justify-content:center;
  transition:opacity .9s var(--ease), visibility .9s;
}
.loader.done{ opacity:0; visibility:hidden; }
.loader-inner{ width:min(80vw,360px); text-align:center; }
.loader-brand{
  font-size:11px; letter-spacing:.42em; text-transform:uppercase;
  color:#9a9384; margin-bottom:22px; font-weight:500;
}
.loader-bar{
  height:1px; width:100%; background:rgba(255,255,255,.12);
  overflow:hidden; position:relative;
}
.loader-bar span{
  position:absolute; left:0; top:0; height:100%; width:0%;
  background:linear-gradient(90deg,var(--gold),#fff);
  transition:width .25s linear;
}
.loader-pct{
  margin-top:18px; font-family:'Cormorant Garamond',serif;
  font-size:46px; font-weight:500; color:var(--cream);
}
.loader-pct i{ font-size:18px; font-style:normal; color:#9a9384; margin-left:2px; }

/* ░░░░░ Nav ░░░░░ */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:60;
  display:flex; align-items:center; justify-content:space-between;
  padding:22px clamp(20px,5vw,60px);
  opacity:0; transform:translateY(-12px);
  pointer-events:none;
  backdrop-filter:blur(14px) saturate(120%);
  -webkit-backdrop-filter:blur(14px) saturate(120%);
  background:linear-gradient(180deg, rgba(8,12,8,.45), rgba(8,12,8,0));
  border-bottom:1px solid rgba(255,255,255,.06);
}
.nav.live{ pointer-events:auto; }
.nav-brand{ font-family:'Cormorant Garamond',serif; font-size:26px; letter-spacing:.12em; }
.nav-links{ display:flex; align-items:center; gap:clamp(16px,2.4vw,40px); }
.nav-links a{
  color:var(--cream); text-decoration:none; font-size:13px; letter-spacing:.04em;
  opacity:.82; transition:opacity .3s;
}
.nav-links a:hover{ opacity:1; }
.nav-cta{
  border:1px solid rgba(245,241,232,.4); border-radius:100px;
  padding:9px 18px !important; opacity:1 !important;
  transition:background .3s,color .3s,border-color .3s !important;
}
.nav-cta:hover{ background:var(--cream); color:var(--ink); border-color:var(--cream); }
@media(max-width:680px){ .nav-links a:not(.nav-cta){ display:none; } }

/* ░░░░░ Hero scrub ░░░░░ */
.hero-track{ position:relative; height:560vh; }
.hero{
  position:sticky; top:0; height:100vh; width:100%;
  overflow:hidden; background:#06080a;
}
.hero-canvas{ position:absolute; inset:0; width:100%; height:100%; display:block; }

/* grade / texture */
.grade-warm{
  position:absolute; inset:0; pointer-events:none; opacity:0;
  background:
    radial-gradient(120% 80% at 50% 78%, rgba(255,196,120,.40), transparent 60%),
    linear-gradient(180deg, rgba(8,20,10,.25), transparent 35%, rgba(70,40,10,.18));
  mix-blend-mode:soft-light;
}
.vignette{
  position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(130% 110% at 50% 42%, transparent 52%, rgba(0,0,0,.55));
}
.grain{
  position:absolute; inset:-50%; pointer-events:none; opacity:.06;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  mix-blend-mode:overlay; animation:grain 1.1s steps(3) infinite;
}
@keyframes grain{
  0%{transform:translate(0,0)} 33%{transform:translate(-3%,2%)} 66%{transform:translate(2%,-2%)} 100%{transform:translate(0,0)}
}

/* copy layers */
.layer{
  position:absolute; inset:0; z-index:20;
  display:flex; flex-direction:column; justify-content:center;
  padding:0 clamp(24px,7vw,120px);
  pointer-events:none; will-change:transform,opacity;
}
.kicker{
  display:inline-block; font-size:12px; letter-spacing:.4em; text-transform:uppercase;
  color:var(--gold); margin-bottom:22px; font-weight:500;
}
.kicker.dark{ color:#7c6a4a; }

.layer-intro{ text-align:left; }
.intro-inner{ max-width:min(92vw,860px); text-wrap:balance; opacity:0; transform:translateY(26px); }
body.ready .intro-inner{ transition:opacity 1.4s var(--ease) .25s, transform 1.6s var(--ease) .25s; opacity:1; transform:none; }
.intro-title{
  font-family:'Cormorant Garamond',serif; font-weight:500;
  font-size:clamp(40px,7vw,108px); line-height:1.0; letter-spacing:-.01em;
  text-shadow:0 4px 40px rgba(0,0,0,.5);
}

.layer-reveal{ text-align:center; align-items:center; opacity:0; }
.reveal-title{
  font-family:'Cormorant Garamond',serif; font-weight:500;
  font-size:clamp(44px,8.5vw,140px); line-height:.98; letter-spacing:-.02em;
  text-shadow:0 6px 50px rgba(0,0,0,.55);
}
.reveal-title .w{ display:inline-block; opacity:0; transform:translateY(28px); filter:blur(8px); }
.layer-reveal.show .reveal-title .w{
  opacity:1; transform:none; filter:none;
  transition:opacity 1s var(--ease), transform 1.1s var(--ease), filter 1.1s var(--ease);
}
.reveal-title .w:nth-child(1){ transition-delay:.00s }
.reveal-title .w:nth-child(2){ transition-delay:.08s }
.reveal-title .w:nth-child(3){ transition-delay:.16s }
.reveal-title .w:nth-child(4){ transition-delay:.24s }
.reveal-title .w:nth-child(5){ transition-delay:.32s }
.reveal-sub{
  margin-top:26px; font-size:clamp(15px,1.6vw,20px); font-weight:300;
  letter-spacing:.02em; color:rgba(245,241,232,.9); max-width:46ch;
  opacity:0; transform:translateY(18px);
}
.layer-reveal.show .reveal-sub{
  opacity:1; transform:none; transition:opacity 1.1s var(--ease) .5s, transform 1.1s var(--ease) .5s;
}

/* scroll cue */
.scroll-cue{
  position:absolute; bottom:34px; left:50%; transform:translateX(-50%);
  z-index:30; display:flex; flex-direction:column; align-items:center; gap:10px;
  font-size:11px; letter-spacing:.32em; text-transform:uppercase; color:rgba(245,241,232,.7);
}
.scroll-cue .chev{
  width:16px; height:16px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor;
  transform:rotate(45deg); animation:bob 1.8s var(--ease) infinite;
}
@keyframes bob{ 0%,100%{transform:rotate(45deg) translate(0,0); opacity:.4} 50%{transform:rotate(45deg) translate(3px,3px); opacity:1} }

/* ░░░░░ Settle / CTA ░░░░░ */
.settle{
  position:relative; min-height:100vh; background:var(--cream); color:var(--ink);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding:120px clamp(24px,7vw,120px) 0; text-align:center;
}
.settle-inner{ max-width:62ch; }
.settle h3{
  font-family:'Cormorant Garamond',serif; font-weight:500;
  font-size:clamp(34px,5.5vw,82px); line-height:1.02; letter-spacing:-.01em; margin:6px 0 24px;
}
.settle p{ font-size:clamp(15px,1.5vw,19px); font-weight:300; line-height:1.7; color:#3c4138; max-width:54ch; margin:0 auto; }
.btn{
  display:inline-block; margin-top:40px; padding:16px 40px;
  background:var(--ink); color:var(--cream); text-decoration:none;
  border-radius:100px; font-size:14px; letter-spacing:.06em;
  transition:transform .4s var(--ease), box-shadow .4s var(--ease);
}
.btn:hover{ transform:translateY(-3px); box-shadow:0 16px 40px rgba(15,19,14,.28); }
.foot{ margin-top:auto; padding:60px 0 30px; font-size:12px; letter-spacing:.06em; color:#8a8475; }

/* ░░░░░ Reduced motion fallback ░░░░░ */
body.reduced .hero-track{ height:100vh; }
body.reduced .hero-canvas{ display:none; }
body.reduced .hero{ background:#06080a center/cover no-repeat; }
body.reduced .scroll-cue,body.reduced .layer-intro{ display:none; }
body.reduced .layer-reveal{ opacity:1; }
body.reduced .grade-warm{ opacity:.5; }
body.reduced .nav{ opacity:1; transform:none; pointer-events:auto; }
