/* ═════════ AGUAVIDA — art direction ═════════
   ivory #F3EEE6 · cream #E9DFCB · charcoal #161310
   black #0B0A08 · agave #3D4A3A · amber #C67A2E
   pale gold #D8C39A · clay #A25A3C
   Display: Fraunces · UI: Archivo — no cards, no gradients, no glass. */
:root{
  --ivory:#F3EEE6; --cream:#E9DFCB; --ink:#161310; --black:#0B0A08;
  --agave:#3D4A3A; --amber:#C67A2E; --gold:#D8C39A; --clay:#A25A3C;
  --hair:rgba(22,19,16,.16); --hair-l:rgba(243,238,230,.22);
  --serif:"Fraunces",Georgia,serif; --sans:"Archivo",Helvetica,Arial,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:auto}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{
  background:var(--ivory); color:var(--ink); font-family:var(--sans);
  font-size:16px; line-height:1.5; overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
::selection{background:var(--ink);color:var(--ivory)}
img,svg,canvas{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.italic{font-style:italic;font-weight:300}

/* grain + progress */
.grain{position:fixed;inset:-50%;width:200%;height:200%;pointer-events:none;z-index:200;opacity:.055;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 300 300' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 8s steps(10) infinite}
@keyframes grain{0%,100%{transform:translate(0,0)}20%{transform:translate(-2%,2%)}40%{transform:translate(2%,-1%)}60%{transform:translate(-1%,-2%)}80%{transform:translate(1%,2%)}}
.progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:150;background:transparent}
.progress span{display:block;height:100%;width:100%;background:var(--amber);transform:scaleX(0);transform-origin:0 50%}

/* loader */
#loader{position:fixed;inset:0;z-index:300;background:var(--black);color:var(--ivory);
  display:flex;align-items:center;justify-content:center;transition:transform 1s cubic-bezier(.76,0,.24,1)}
body:not([data-loading="true"]) #loader{transform:translateY(-100%)}
.loader-inner{text-align:center;width:min(560px,86vw)}
.loader-eyebrow{font-size:11px;letter-spacing:.35em;text-transform:uppercase;opacity:.6}
.loader-word{font-family:var(--serif);font-weight:300;font-size:clamp(3rem,10vw,6.5rem);letter-spacing:.08em;margin:.4em 0 .2em}
.loader-count{font-family:var(--serif);font-style:italic;font-size:1.4rem}
.loader-count i{font-style:normal;font-size:.8rem;opacity:.5;margin-left:.4em}
.loader-rule{height:1px;background:rgba(243,238,230,.2);margin:1.4rem 0;position:relative}
.loader-rule span{position:absolute;inset:0;background:var(--gold);transform:scaleX(0);transform-origin:0 50%}
.loader-note{font-size:11px;letter-spacing:.25em;text-transform:uppercase;opacity:.45}

/* nav — blend so it survives bg changes */
#nav{position:fixed;top:0;left:0;right:0;z-index:120;display:flex;align-items:center;justify-content:space-between;
  padding:1.1rem clamp(1.2rem,4vw,3rem);mix-blend-mode:difference;color:#fff}
.brand{font-family:var(--serif);font-size:1.25rem;letter-spacing:.28em;font-weight:500}
.brand sup{font-size:.5em;letter-spacing:0}
.nav-links{display:flex;gap:2rem;font-size:11px;letter-spacing:.3em;text-transform:uppercase}
.nav-links a{position:relative;padding:.3em 0;opacity:.85}
.nav-links a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:currentColor;transform:scaleX(0);transform-origin:100% 50%;transition:transform .5s cubic-bezier(.76,0,.24,1)}
.nav-links a:hover::after{transform:scaleX(1);transform-origin:0 50%}
.nav-cta{border:1px solid currentColor;padding:.55em 1.2em!important}
.nav-cta::after{display:none}
#menuBtn{display:none;background:none;border:0;cursor:pointer;flex-direction:column;gap:6px;padding:8px}
#menuBtn span{display:block;width:26px;height:1.5px;background:#fff}
#menuOverlay{position:fixed;inset:0;z-index:119;background:var(--black);color:var(--ivory);
  display:flex;flex-direction:column;justify-content:center;padding:0 8vw;gap:2rem;
  clip-path:inset(0 0 100% 0);transition:clip-path .7s cubic-bezier(.76,0,.24,1)}
#menuOverlay.open{clip-path:inset(0 0 0% 0)}
#menuOverlay nav{display:flex;flex-direction:column;gap:.4em}
#menuOverlay nav a{font-family:var(--serif);font-size:clamp(2.4rem,9vw,4rem);font-weight:300}
#menuOverlay nav a em{font-size:.8rem;font-style:normal;font-family:var(--sans);letter-spacing:.3em;margin-right:1em;opacity:.5}

/* shared editorial furniture */
.scene{position:relative}
.eyebrow{display:flex;justify-content:space-between;gap:1rem;font-size:11px;letter-spacing:.32em;text-transform:uppercase;
  padding:5.5rem clamp(1.2rem,4vw,3rem) 0;opacity:.75}
.eyebrow.light{color:var(--ivory)}
.asset-tag{font-size:10px;letter-spacing:.28em;text-transform:uppercase;opacity:.55;text-align:center;margin-top:.9rem}
.asset-tag i{font-style:normal;border:1px solid currentColor;padding:.1em .5em;margin-left:.4em;white-space:nowrap}

/* ── 01 OPENING ── */
.scene-opening{background:var(--ivory)}
.opening-pin{min-height:100vh;display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden;padding-bottom:0}
.mega{font-family:var(--serif);font-weight:300;line-height:.92;letter-spacing:-.01em;
  font-size:clamp(3.4rem,13.5vw,12.5rem);padding:0 clamp(1.2rem,4vw,3rem);position:relative;z-index:3}
.mega-line{display:block;overflow:hidden}
.mega-line>span{display:block}
.mega .italic{font-weight:300}
.opening-sub{padding:1.4rem clamp(1.2rem,4vw,3rem);font-size:clamp(.95rem,1.4vw,1.1rem);max-width:60ch;opacity:.75;z-index:3;position:relative}
.hero-bottle-wrap{position:absolute;right:clamp(0rem,6vw,7rem);top:8vh;width:clamp(240px,30vw,420px);height:78vh;z-index:2}
.hero-bottle-wrap canvas{width:100%;height:100%}
.vertical-note{position:absolute;left:clamp(1.2rem,4vw,3rem);top:38vh;writing-mode:vertical-rl;font-size:11px;letter-spacing:.4em;text-transform:uppercase;opacity:.55;z-index:3}
.opening-foot{display:flex;justify-content:space-between;align-items:center;gap:1rem;border-top:1px solid var(--hair);
  margin-top:2rem;padding:1rem clamp(1.2rem,4vw,3rem);font-size:11px;letter-spacing:.3em;text-transform:uppercase;z-index:3;background:var(--ivory)}
.scroll-hint{display:flex;align-items:center;gap:.7em}
.scroll-hint i{display:block;width:1px;height:34px;background:var(--ink);animation:hint 1.8s cubic-bezier(.76,0,.24,1) infinite;transform-origin:50% 0}
@keyframes hint{0%{transform:scaleY(0)}45%{transform:scaleY(1);transform-origin:50% 0}55%{transform-origin:50% 100%;transform:scaleY(1)}100%{transform-origin:50% 100%;transform:scaleY(0)}}
.opening-spacer{height:220vh} /* scroll runway for bottle choreography */

/* ── 02 BOTTLE ── */
.scene-bottle{background:var(--black);color:var(--ivory)}
.bottle-pin{min-height:100vh;display:grid;grid-template-columns:1fr auto 1fr;grid-template-areas:"title stage specs";align-items:center;gap:2rem;
  padding:6rem clamp(1.2rem,4vw,3rem) 4rem;min-height:100vh}
.bottle-pin .eyebrow{grid-column:1/-1;padding:0}
.bottle-title{grid-area:title;font-family:var(--serif);font-weight:300;font-size:clamp(2.2rem,4.6vw,4.4rem);line-height:1.02}
.bottle-title span{display:block}
.bottle-stage{grid-area:stage;position:relative;width:clamp(280px,34vw,460px);height:min(74vh,700px)}
.bottle-stage canvas{width:100%;height:100%}
.bottle-ring{position:absolute;left:50%;bottom:2%;width:78%;aspect-ratio:2/1;transform:translateX(-50%);
  border:1px solid var(--hair-l);border-radius:50%}
.bottle-specs{grid-area:specs;display:flex;flex-direction:column;gap:1.6rem;max-width:300px;justify-self:end}
.bottle-specs h4{font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);margin-bottom:.4rem;font-weight:500}
.bottle-specs p{font-family:var(--serif);font-size:1.25rem;font-weight:300;line-height:1.3}
.stage-meter i{display:block;height:1px;background:rgba(243,238,230,.25);position:relative;margin-bottom:.6rem}
.stage-meter i::after{content:"";position:absolute;inset:0;background:var(--gold);transform:scaleX(var(--p,0));transform-origin:0 50%}
.stage-meter div{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.2em;opacity:.6}

/* ── 03 VARIANTS (horizontal) ── */
.scene-variants{background:var(--cream);overflow:hidden}
.variants-pin{height:100vh;display:flex;flex-direction:column;overflow:hidden}
.variants-track{display:flex;height:100%;width:max-content;will-change:transform}
.variant{width:100vw;height:100%;flex-shrink:0;display:grid;grid-template-columns:1.2fr .9fr .6fr;align-items:center;gap:2rem;
  padding:2rem clamp(1.2rem,5vw,5rem) 3rem;background:var(--bg);color:var(--ink);position:relative;transition:background .5s}
.v-index{position:absolute;top:5.2rem;left:clamp(1.2rem,5vw,5rem);font-size:11px;letter-spacing:.32em;text-transform:uppercase;opacity:.6}
.v-name{font-family:var(--serif);font-weight:300;font-size:clamp(3.6rem,11vw,10.5rem);line-height:.9;letter-spacing:-.01em}
.v-desc{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(1.15rem,2vw,1.7rem);line-height:1.35;max-width:26ch}
.v-bottle{display:flex;flex-direction:column;align-items:center;justify-self:center}
.bottle-svg{height:min(56vh,520px);width:auto}
.tint-clear{color:#B9C4BB}.tint-gold{color:#C69A52}.tint-amber{color:#8A4E22}.tint-clay{color:#5A2E1E}
.v-meta{list-style:none;display:flex;flex-direction:column;gap:0;border-top:1px solid currentColor}
.v-meta li{padding:.9rem 0;border-bottom:1px solid currentColor;font-size:11px;letter-spacing:.28em;text-transform:uppercase;opacity:.85}

/* ── 04 ORIGIN ── */
.scene-origin{background:var(--ivory);padding-bottom:6rem}
.origin-title{font-family:var(--serif);font-weight:300;font-size:clamp(3rem,10vw,9.5rem);line-height:.95;
  padding:2rem clamp(1.2rem,4vw,3rem) 3rem}
.reveal-line{display:block;overflow:hidden}
.reveal-line>span{display:block;transform:translateY(110%)}
.ph{margin:0 clamp(1.2rem,4vw,3rem)}
.ph-art{position:relative;height:clamp(320px,62vh,620px);overflow:hidden;background:#DCD3BE;border:1px solid var(--hair);
  display:flex;align-items:center;justify-content:center;color:var(--agave)}
.ph-wide .ph-art{height:clamp(340px,72vh,720px)}
.ph figcaption{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.28em;text-transform:uppercase;opacity:.6;padding:.7rem 0 0}
.ph-agave svg{width:70%;height:80%}
.ph-hills{background:repeating-linear-gradient(178deg,#DCD3BE 0 26px,#D2C7AC 26px 28px)}
.ph-harvest{background:repeating-linear-gradient(88deg,#D8CDB2 0 30px,#CDBE9E 30px 33px)}
.ph-distil{background:radial-gradient(circle at 50% 65%,#E4D8BC 0 90px,#D5C6A4 91px 92px,transparent 93px),#DCD3BE}
.origin-cols{display:grid;grid-template-columns:1.1fr 1fr;gap:3rem;padding:3.5rem clamp(1.2rem,4vw,3rem)}
.origin-lede{font-family:var(--serif);font-weight:300;font-size:clamp(1.5rem,2.8vw,2.4rem);line-height:1.25}
.origin-body{opacity:.75;max-width:44ch;align-self:end}
.origin-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.origin-strip .ph{margin:0}
.origin-strip .ph:first-child{margin-left:clamp(1.2rem,4vw,3rem)}
.origin-strip .ph:last-child{margin-right:clamp(1.2rem,4vw,3rem)}
.origin-strip .ph-art{height:clamp(280px,44vh,480px)}

/* ── 05 MAKING ── */
.scene-making{background:#1A1512;color:var(--ivory)}
.making-pin{min-height:100vh;display:flex;flex-direction:column;padding-bottom:2.5rem}
.making-stage{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center;padding:1rem clamp(1.2rem,5vw,5rem)}
.m-copy h3{font-family:var(--serif);font-weight:300;font-size:clamp(3.4rem,9vw,8.5rem);line-height:.9}
.m-copy p{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(1.1rem,1.8vw,1.5rem);opacity:.8;margin-top:1.2rem;max-width:30ch}
.ph-making{margin:0}
.ph-making .ph-art{height:clamp(300px,54vh,560px);transition:background .6s}
.making-steps{list-style:none;display:flex;border-top:1px solid var(--hair-l);margin:0 clamp(1.2rem,5vw,5rem)}
.making-steps li{flex:1;padding:1rem .4rem;font-size:11px;letter-spacing:.26em;text-transform:uppercase;opacity:.4;
  border-top:1px solid transparent;margin-top:-1px;transition:opacity .4s;cursor:pointer}
.making-steps li i{font-style:normal;display:block;font-family:var(--serif);font-size:1rem;letter-spacing:0;margin-bottom:.3em}
.making-steps li.active{opacity:1;border-top-color:var(--gold)}

/* ── 06 COLLECTION ── */
.scene-collection{background:var(--ivory);padding-bottom:5rem;overflow:hidden}
.coll-title{font-family:var(--serif);font-weight:300;font-size:clamp(2.8rem,8vw,7.5rem);line-height:1;
  padding:1.5rem clamp(1.2rem,4vw,3rem) 0}
.coll-stage{position:relative;height:clamp(480px,86vh,760px);margin-top:1rem}
.coll-bottle{position:absolute;bottom:8%;display:flex;flex-direction:column;align-items:center;gap:.8rem;will-change:transform}
.coll-bottle .bottle-svg{height:clamp(280px,52vh,560px)}
.coll-bottle span{font-size:11px;letter-spacing:.34em;text-transform:uppercase;opacity:.7}
.b1{left:8%}.b2{left:30%}.b3{left:54%}.b4{left:76%}
.coll-tag{position:absolute;bottom:0;left:0;right:0}
.coll-foot{display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap;
  padding:1.5rem clamp(1.2rem,4vw,3rem) 0;border-top:1px solid var(--hair)}
.coll-foot p{font-family:var(--serif);font-style:italic;font-size:1.3rem}
.text-link{font-size:11px;letter-spacing:.3em;text-transform:uppercase;border-bottom:1px solid currentColor;padding-bottom:.3em}

/* ── 07 STATEMENT ── */
.scene-statement{background:var(--black);color:var(--ivory);min-height:100vh;display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;padding:6rem 6vw;gap:1.6rem}
.statement{font-family:var(--serif);font-weight:300;font-size:clamp(2.6rem,8.5vw,8rem);line-height:1.02;max-width:14ch}
.statement .w{display:inline-block;overflow:hidden;vertical-align:bottom}
.statement .w>span{display:inline-block;transform:translateY(110%)}
.statement-sub{font-size:11px;letter-spacing:.34em;text-transform:uppercase;opacity:.6}

/* ── 08 FINAL ── */
.scene-final{background:#211811;color:var(--ivory)}
.final-pin{min-height:100vh;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;gap:2rem;
  padding:6rem clamp(1.2rem,4vw,3rem) 3rem}
.final-bottle-wrap{height:min(72vh,680px);position:relative}
.final-bottle-wrap canvas{width:100%;height:100%}
.final-title{font-family:var(--serif);font-weight:300;font-size:clamp(3rem,7.5vw,7rem);line-height:.95}
.final-info p{font-family:var(--serif);font-weight:300;font-size:1.25rem;line-height:1.5;opacity:.85}
.final-ctas{display:flex;flex-direction:column;gap:1rem;margin-top:2rem;align-items:flex-start}
.btn-solid{background:var(--ivory);color:var(--ink);padding:1rem 2.4rem;font-size:11px;letter-spacing:.3em;text-transform:uppercase;
  transition:background .4s,color .4s}
.btn-solid:hover{background:var(--gold)}
.btn-line{border:1px solid var(--hair-l);padding:1rem 2.4rem;font-size:11px;letter-spacing:.3em;text-transform:uppercase;transition:border-color .4s}
.btn-line:hover{border-color:var(--ivory)}
.footer{border-top:1px solid var(--hair-l);padding:2.5rem clamp(1.2rem,4vw,3rem);display:grid;gap:1.2rem}
.footer-brand{font-family:var(--serif);letter-spacing:.3em;font-size:1.6rem}
.footer-links{display:flex;gap:2rem;font-size:11px;letter-spacing:.3em;text-transform:uppercase;flex-wrap:wrap}
.footer-legal{font-size:.8rem;opacity:.55;line-height:1.7}

/* ── responsive: intentional vertical compositions ── */
@media(max-width:960px){
  .nav-links{display:none}
  #menuBtn{display:flex}
  .hero-bottle-wrap{position:relative;right:auto;top:auto;width:min(78vw,340px);height:52vh;margin:0 auto}
  .opening-pin{justify-content:flex-start;padding-top:16vh}
  .bottle-pin{grid-template-columns:1fr;grid-template-areas:"title" "stage" "specs";justify-items:center;text-align:center}
  .bottle-specs{justify-self:center;max-width:420px}
  .variant{grid-template-columns:1fr;width:100vw;gap:1rem;align-content:center;text-align:left}
  .v-bottle{order:-1}
  .bottle-svg{height:38vh}
  .origin-cols{grid-template-columns:1fr}
  .origin-strip{grid-template-columns:1fr}
  .origin-strip .ph{margin:0 clamp(1.2rem,4vw,3rem)!important}
  .making-stage{grid-template-columns:1fr}
  .making-steps{flex-wrap:wrap}
  .making-steps li{flex:1 1 30%}
  .coll-stage{height:120vh}
  .coll-bottle .bottle-svg{height:44vh}
  .b1{left:2%}.b2{left:27%}.b3{left:52%}.b4{left:74%}
  .final-pin{grid-template-columns:1fr;text-align:left}
  .final-bottle-wrap{height:52vh;order:-1}
}
@media(prefers-reduced-motion:reduce){
  .grain{animation:none}
  *{transition-duration:.01ms!important}
}
