/* ════════════════════════════════════════════════════════════
   TREE DEVELOPMENTS — "One Tree, One Journey"
   A continuous cinematic descent: sky → leaves → branches → grove
   → horizon → fruit → trunk → rings → ground → roots → seed
   ════════════════════════════════════════════════════════════ */
@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;1,300;1,400;1,500&family=Manrope:wght@300;400;500;600;700&display=swap");

@font-face{font-family:"Cormorant Local";src:url(../assets/fonts/cormorant.ttf) format("truetype");font-weight:300 600;font-display:swap}
@font-face{font-family:"Cormorant Local";src:url(../assets/fonts/cormorant-italic.ttf) format("truetype");font-style:italic;font-weight:300 600;font-display:swap}
@font-face{font-family:"Manrope Local";src:url(../assets/fonts/manrope.ttf) format("truetype");font-weight:300 700;font-display:swap}

:root{
  --paper:#FBF8F2; --ivory:#F6F1E7; --cream:#EFE6D4; --sand:#E2D3B5;
  --gold:#B08530; --gold-2:#D4AE62; --gold-3:#F1DDA6;
  --moss:#2E4A2B; --leaf:#5E7F3F; --sage:#9FB08A; --olive:#7A8452;
  --ink:#1B1F17; --ink-2:#4A4D43; --ink-3:#8A8B80;
  --bark:#2A2119; --soil:#120D09;
  --light:#F6F1E7; --light-2:rgba(246,241,231,.66); --light-3:rgba(246,241,231,.34);
  --serif:"Cormorant Garamond","Cormorant Local",Georgia,serif;
  --sans:"Manrope","Manrope Local","Segoe UI",system-ui,sans-serif;
  --ease:cubic-bezier(.22,.8,.2,1);
  --ease-io:cubic-bezier(.7,0,.2,1);
  --gut:clamp(20px,4.6vw,72px);
  --vh:1vh;
  --fg:var(--ink); --fg-2:var(--ink-2);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:auto}
body{background:var(--ivory);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;cursor:default}
body.is-loading{overflow:hidden;height:100vh}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
::selection{background:var(--gold-3);color:var(--ink)}
@media (hover:hover) and (pointer:fine){body.has-cursor, body.has-cursor a, body.has-cursor button{cursor:none}}

/* ─── type ─── */
h1,h2,h3{font-family:var(--serif);font-weight:400;letter-spacing:-.01em;line-height:1}
h2{font-size:clamp(44px,6.6vw,112px);line-height:.95}
h2 em,h3 em,h1 em{font-style:italic;font-weight:300;color:var(--gold)}
.eyebrow{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.28em;text-transform:uppercase;
  color:var(--fg-2);display:flex;align-items:center;gap:14px}
.eyebrow .num{font-family:var(--serif);font-style:italic;font-size:15px;letter-spacing:0;color:var(--gold);font-weight:500}
.eyebrow .num::after{content:"";display:inline-block;width:34px;height:1px;background:currentColor;opacity:.6;vertical-align:middle;margin-left:12px}
.lead{font-size:clamp(16px,1.25vw,19px);line-height:1.7;color:var(--fg-2);max-width:44ch}
.wrap{width:100%;max-width:1480px;margin:0 auto;padding:0 var(--gut)}
@media (min-width:761px){.flow .wrap{padding-right:calc(var(--gut) + 64px)}}

/* split text reveal */
.split .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.split .w>span{display:inline-block;transform:translateY(105%) rotate(4deg);transform-origin:0 100%;
  transition:transform 1.3s var(--ease);transition-delay:calc(var(--i)*55ms)}
.split.in .w>span{transform:none}
.rv{opacity:0;transform:translateY(40px);transition:opacity 1.2s var(--ease),transform 1.4s var(--ease)}
.rv.in{opacity:1;transform:none}

/* ─── world layers ─── */
#backdrop{position:fixed;inset:0;z-index:-3;background:var(--bg,#0f1a17);transition:none}
#shade{position:fixed;inset:-15%;z-index:-2;pointer-events:none;opacity:0;mix-blend-mode:multiply;will-change:opacity}
.shade-l{position:absolute;inset:0;background-size:900px 900px;background-repeat:repeat;will-change:transform;filter:blur(2px)}
.shade-l.l2{background-size:1300px 1300px;opacity:.7;filter:blur(6px)}
#natureBg{position:fixed;inset:0;z-index:25;pointer-events:none;width:100%;height:100%}
#natureFg{position:fixed;inset:0;z-index:60;pointer-events:none;width:100%;height:100%}
#grain{position:fixed;inset:-50%;z-index:70;pointer-events:none;opacity:.07;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .5  0 0 0 0 .5  0 0 0 0 .5  0 0 0 1 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  animation:grain 1.2s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-4%)}60%{transform:translate(-4%,-2%)}80%{transform:translate(3%,4%)}100%{transform:translate(0,0)}}

/* ─── cursor ─── */
#cursor{position:fixed;left:0;top:0;z-index:200;pointer-events:none;display:none}
body.has-cursor #cursor{display:block}
.c-dot{position:absolute;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:var(--gold-2);
  box-shadow:0 0 12px 2px rgba(241,221,166,.7)}
.c-ring{position:absolute;width:40px;height:40px;margin:-20px 0 0 -20px;border-radius:50% 50% 50% 4%;border:1px solid rgba(212,174,98,.7);
  display:grid;place-items:center;transition:width .5s var(--ease),height .5s var(--ease),margin .5s var(--ease),background .4s,border-color .4s,border-radius .6s var(--ease)}
.c-label{font-size:9px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--ink);opacity:0;transition:opacity .3s}
#cursor.is-hover .c-ring{width:86px;height:86px;margin:-43px 0 0 -43px;background:rgba(241,221,166,.92);border-color:transparent;border-radius:50% 50% 50% 12%}
#cursor.is-hover .c-label{opacity:1}
#cursor.is-down .c-ring{transform:scale(.8)}

/* ─── header ─── */
#header{position:fixed;top:0;left:0;right:0;z-index:80;display:flex;align-items:center;justify-content:space-between;
  padding:22px var(--gut);color:var(--hdr,var(--light));transition:color .6s,transform .8s var(--ease),padding .5s}
#header::before{content:"";position:absolute;inset:0;z-index:-1;opacity:0;transition:opacity .6s;
  background:linear-gradient(to bottom,var(--hdrbg,rgba(15,26,23,.5)),transparent)}
body.scrolled #header{padding-top:14px;padding-bottom:14px}
body.scrolled #header::before{opacity:1}
body.hdr-hide #header{transform:translateY(-110%)}
body.is-loading #header{transform:translateY(-120%)}
.brand{display:flex;align-items:center;gap:12px}
.brand-mark{width:44px;height:27px;color:var(--gold-2)}
.brand-text{display:flex;flex-direction:column;line-height:1}
.brand-text b{font-family:var(--sans);font-weight:700;font-size:17px;letter-spacing:.34em}
.brand-text small{font-size:8.5px;letter-spacing:.42em;text-transform:uppercase;opacity:.75;margin-top:4px}
.nav{display:flex;gap:clamp(20px,3vw,46px)}
.nav a{font-size:12px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;position:relative;padding:6px 0}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .6s var(--ease)}
.nav a:hover::after{transform:scaleX(1);transform-origin:left}
.header-right{display:flex;align-items:center;gap:14px}
.header-right .pill-btn{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:rgba(20,26,20,.12)}
.sound-btn{display:flex;align-items:center;gap:10px;font-size:10.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;padding:8px 4px}
.eq{display:inline-flex;align-items:flex-end;gap:2px;height:14px}
.eq i{display:block;width:2px;height:3px;background:currentColor;border-radius:2px;transition:height .3s}
.sound-on .eq i,.enter-btn .eq i{animation:eq 1s ease-in-out infinite}
.eq i:nth-child(2){animation-delay:-.3s!important}.eq i:nth-child(3){animation-delay:-.6s!important}.eq i:nth-child(4){animation-delay:-.15s!important}.eq i:nth-child(5){animation-delay:-.45s!important}
@keyframes eq{0%,100%{height:3px}50%{height:14px}}
.pill-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;height:46px;padding:0 24px;border-radius:40px;
  border:1px solid currentColor;font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;overflow:hidden;isolation:isolate;
  transition:color .5s var(--ease),border-color .5s}
.pill-btn::before{content:"";position:absolute;inset:-2px;z-index:-1;background:var(--gold-2);border-radius:inherit;transform:translateY(102%);transition:transform .6s var(--ease)}
.pill-btn:hover{color:var(--ink);border-color:var(--gold-2)}
.pill-btn:hover::before{transform:none}
.pill-btn.solid{background:var(--gold);border-color:var(--gold);color:var(--paper)}
.pill-btn.solid::before{background:var(--ink)}
.pill-btn.solid:hover{color:var(--gold-3);border-color:var(--ink)}
.pill-btn.wide{width:100%;height:56px}
.menu-btn{display:none;width:44px;height:44px;flex-direction:column;justify-content:center;align-items:center;gap:7px}
.menu-btn i{display:block;width:24px;height:1.5px;background:currentColor;transition:transform .5s var(--ease)}
body.menu-open .menu-btn i:first-child{transform:translateY(4.3px) rotate(45deg)}
body.menu-open .menu-btn i:last-child{transform:translateY(-4.3px) rotate(-45deg)}

/* menu */
#menu{position:fixed;inset:0;z-index:75;pointer-events:none;visibility:hidden}
body.menu-open #menu{pointer-events:auto;visibility:visible}
.menu-bg{position:absolute;inset:0;background:radial-gradient(120% 90% at 80% 10%,#27402a 0%,#132017 60%,#0b120d 100%);
  clip-path:circle(0% at calc(100% - 50px) 40px);transition:clip-path 1s var(--ease-io)}
body.menu-open .menu-bg{clip-path:circle(150% at calc(100% - 50px) 40px)}
.menu-inner{position:relative;height:100%;display:grid;grid-template-columns:1.4fr 1fr;gap:40px;align-items:center;padding:110px var(--gut) 40px;color:var(--light)}
.menu-links{display:flex;flex-direction:column}
.menu-links a{font-family:var(--serif);font-size:clamp(30px,4.2vw,58px);line-height:1.12;display:flex;align-items:baseline;gap:18px;
  opacity:0;transform:translateY(30px);transition:opacity .6s,transform .8s var(--ease),color .3s}
.menu-links a small{font-family:var(--sans);font-size:11px;letter-spacing:.2em;color:var(--gold-2)}
.menu-links a:hover{color:var(--gold-3);font-style:italic}
body.menu-open .menu-links a{opacity:1;transform:none;transition-delay:calc(.25s + var(--i,0)*45ms)}
.menu-side{display:flex;flex-direction:column;gap:12px;color:var(--light-2);opacity:0;transition:opacity .8s .5s}
body.menu-open .menu-side{opacity:1}
.menu-side .eyebrow{color:var(--gold-2);margin-top:18px}
.menu-social{display:flex;gap:22px}
.menu-side a:hover{color:var(--gold-3)}

/* rail */
#rail{position:fixed;right:clamp(14px,1.8vw,30px);top:50%;transform:translateY(-50%);z-index:70;display:flex;gap:12px;color:var(--hdr,var(--light));transition:color .6s,opacity .6s}
body.is-loading #rail{opacity:0}
.rail-stem{position:absolute;right:4px;top:6px;bottom:6px;width:1px;background:currentColor;opacity:.25}
.rail-stem i{position:absolute;left:0;top:0;width:1px;height:100%;background:var(--gold-2);transform-origin:top;transform:scaleY(var(--rp,0));opacity:1}
#rail ol{list-style:none;display:flex;flex-direction:column;gap:15px}
#rail li{position:relative;display:flex;align-items:center;justify-content:flex-end;height:10px;cursor:pointer}
#rail li::after{content:"";width:9px;height:9px;border-radius:0 60% 0 60%;border:1px solid currentColor;opacity:.45;transform:rotate(-45deg) scale(.7);
  transition:all .5s var(--ease)}
#rail li span{font-size:9.5px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;margin-right:12px;opacity:0;transform:translateX(8px);transition:all .5s var(--ease);white-space:nowrap}
#rail li:hover span,#rail li.on span{opacity:1;transform:none}
#rail li.past::after{opacity:.9;background:var(--leaf);border-color:var(--leaf)}
#rail li.on::after{opacity:1;background:var(--gold-2);border-color:var(--gold-2);transform:rotate(-45deg) scale(1.25);box-shadow:0 0 12px var(--gold-2)}

/* ─── loader ─── */
#loader{position:fixed;inset:0;z-index:150;display:grid;place-items:center;color:var(--light);
  background:radial-gradient(90% 70% at 50% 60%,#1d2d23 0%,#0d1511 70%,#080d0a 100%)}
.loader-inner{display:flex;flex-direction:column;align-items:center;text-align:center;gap:18px;transition:opacity .8s,transform 1.2s var(--ease)}
.loader-mark{width:150px;color:var(--gold-2)}
.loader-mark .mk path{stroke-dasharray:1;stroke-dashoffset:1;animation:draw 2.4s var(--ease) forwards}
.loader-mark .mk path:nth-child(2){animation-delay:.2s}.loader-mark .mk path:nth-child(3){animation-delay:.6s}
.loader-mark .mk path:nth-child(4){animation-delay:.7s}.loader-mark .mk path:nth-child(5){animation-delay:.35s}.loader-mark .mk path:nth-child(6){animation-delay:1s}
.loader-mark .mk-win rect{opacity:0;animation:fadeIn .6s forwards}
.loader-mark .mk-win rect:nth-child(1){animation-delay:1.4s}.loader-mark .mk-win rect:nth-child(2){animation-delay:1.55s}.loader-mark .mk-win rect:nth-child(3){animation-delay:1.7s}.loader-mark .mk-win rect:nth-child(4){animation-delay:1.85s}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes fadeIn{to{opacity:1}}
.loader-word{font-family:var(--sans);font-weight:600;font-size:14px;letter-spacing:1.1em;margin-right:-1.1em}
.loader-word i{font-style:normal}
.loader-count{font-family:var(--serif);font-size:74px;line-height:1;font-weight:300;font-variant-numeric:tabular-nums;color:var(--gold-3)}
.loader-count small{font-size:22px;vertical-align:top;margin-left:4px;color:var(--light-3)}
.loader-line{font-family:var(--serif);font-style:italic;font-size:19px;color:var(--light-2)}
.loader-enter{display:flex;gap:12px;margin-top:14px;opacity:0;transform:translateY(16px);pointer-events:none;transition:opacity .9s var(--ease),transform .9s var(--ease)}
#loader.ready .loader-enter{opacity:1;transform:none;pointer-events:auto}
#loader.ready .loader-count{opacity:.0;height:0;overflow:hidden;transition:opacity .5s,height .6s}
.enter-btn{display:flex;align-items:center;gap:12px;height:50px;padding:0 26px;border-radius:40px;background:var(--gold-2);color:var(--ink);
  font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;transition:transform .5s var(--ease),background .4s}
.enter-btn:hover{transform:translateY(-3px);background:var(--gold-3)}
.enter-btn.ghost{background:transparent;color:var(--light);border:1px solid var(--light-3)}
.enter-btn.ghost:hover{background:rgba(246,241,231,.08)}
.loader-curtain{position:absolute;inset:0;background:var(--ivory);clip-path:ellipse(0% 0% at 50% 50%);pointer-events:none}
#loader.out .loader-inner{opacity:0;transform:scale(.92) translateY(-20px)}
#loader.out{background:transparent;transition:background 1.2s .3s}
#loader.gone{display:none}

/* ─── chapters ─── */
.chapter{position:relative}
.stage{position:sticky;top:0;height:100vh;overflow:hidden}
.cover{position:absolute;left:50%;top:50%;width:max(100%,calc(100vh * var(--r,1.7768)));height:max(100vh,calc(100vw / var(--r,1.7768)));
  transform:translate(-50%,-50%)}
.cover img{width:100%;height:100%;object-fit:cover}

/* 00 HERO */
#hero{height:270vh}
.hero-stage{background:#0f1a17}
.hero-cover{will-change:transform}
.hero-img{filter:brightness(var(--hb,1.2)) saturate(1.12) contrast(1.04);will-change:filter}
.hero-grade{position:absolute;inset:0;background:
  radial-gradient(60% 55% at 97% 12%,rgba(255,226,160,.55),rgba(255,210,140,.15) 40%,transparent 70%),
  linear-gradient(180deg,rgba(24,40,58,.35) 0%,transparent 40%,rgba(12,20,16,.45) 100%);mix-blend-mode:screen}
.sun{position:absolute;left:97.5%;top:13%;width:0;height:0}
.sun i{position:absolute;left:50%;top:50%;border-radius:50%;transform:translate(-50%,-50%)}
.sun-core{width:90px;height:90px;background:radial-gradient(circle,#fffaf0 0%,rgba(255,240,200,.9) 25%,rgba(255,220,150,0) 70%)}
.sun-halo{width:900px;height:900px;background:radial-gradient(circle,rgba(255,228,170,.45) 0%,rgba(255,210,140,.15) 30%,transparent 65%);mix-blend-mode:screen}
.sun-rays{width:1800px;height:1800px;opacity:.5;mix-blend-mode:screen;
  background:repeating-conic-gradient(from 0deg,rgba(255,236,190,.16) 0deg 2deg,transparent 2deg 9deg,rgba(255,236,190,.08) 9deg 11deg,transparent 11deg 19deg);
  -webkit-mask:radial-gradient(circle,#000 0%,transparent 60%);mask:radial-gradient(circle,#000 0%,transparent 60%);animation:spin 120s linear infinite}
@keyframes spin{to{transform:translate(-50%,-50%) rotate(360deg)}}
.mist{position:absolute;left:-20%;right:-20%;pointer-events:none;will-change:transform;
  background:radial-gradient(50% 50% at 50% 50%,rgba(235,240,245,.5),transparent 70%);filter:blur(20px)}
.mist.m1{height:40%;top:44%;opacity:.55;animation:drift 38s ease-in-out infinite alternate}
.mist.m2{height:30%;top:58%;opacity:.4;animation:drift 52s ease-in-out infinite alternate-reverse;background:radial-gradient(40% 50% at 30% 50%,rgba(240,236,228,.6),transparent 70%)}
.mist.m3{height:36%;top:70%;opacity:.35;animation:drift 44s ease-in-out infinite alternate;background:radial-gradient(45% 50% at 70% 50%,rgba(230,236,240,.5),transparent 70%)}
@keyframes drift{from{translate:-6% 0}to{translate:6% 0}}
.birds{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.birds .bird path{fill:none;stroke:#1b2320;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.hero-copy{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;padding:0 var(--gut);color:var(--light);pointer-events:none}
.hero-eyebrow{color:var(--light-2);margin-bottom:2vh;opacity:0}
.hero-eyebrow .line{display:inline-block;width:46px;height:1px;background:var(--gold-2)}
.hero-title{display:flex;font-family:var(--sans);font-weight:300;font-size:clamp(90px,23vw,420px);letter-spacing:-.02em;line-height:.8;margin-left:-.04em;
  text-shadow:0 20px 80px rgba(0,0,0,.25)}
.ht{display:inline-block;will-change:transform,opacity,filter;opacity:0;transform:translateY(40%);
  background:linear-gradient(180deg,#FFFDF6 0%,#F4E6C4 55%,#D9B56A 130%);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-sub{font-family:var(--serif);font-size:clamp(26px,3.2vw,54px);font-weight:300;margin-top:3vh;opacity:0}
.hero-sub em{color:var(--gold-3)}
.hero-foot{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;align-items:flex-end;padding:0 var(--gut) 34px;color:var(--light-2);
  font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;line-height:1.8;opacity:0}
.hf-right{text-align:right}
.scroll-cue{display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--light)}
.scroll-cue i{width:1px;height:56px;background:linear-gradient(var(--gold-2),transparent);transform-origin:top;animation:cue 2.4s var(--ease) infinite}
@keyframes cue{0%{transform:scaleY(0)}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.hero-bloom{position:absolute;inset:0;background:radial-gradient(circle at 80% 18%,#FFF9EC 0%,#F9F1DF 40%,#F5EFE3 100%);opacity:0;pointer-events:none}

/* 01 VISION */
#vision{height:240vh}
.vision-stage{display:grid;grid-template-columns:1fr 1.25fr;align-items:center;gap:6vw;padding:0 var(--gut);padding-right:calc(var(--gut) + 70px)}
.vision-leaf{position:relative;height:74vh;display:flex;align-items:center;justify-content:center}
.vl-img{width:min(34vw,58vh);aspect-ratio:.72;clip-path:url(#leafClip);background:url(../assets/img/tree-canopy.jpg) 78% 38%/360% auto no-repeat;
  filter:saturate(1.1) brightness(1.15);transform:scale(.4) rotate(-18deg);will-change:transform,background-position}
.vl-cap{position:absolute;bottom:2vh;left:0;font-family:var(--serif);font-style:italic;font-size:15px;color:var(--ink-3);line-height:1.4}
.vision-title{font-size:clamp(40px,5.2vw,88px);margin:3vh 0 4vh}
.scrub{font-family:var(--serif);font-size:clamp(21px,1.9vw,32px);line-height:1.38;color:var(--ink);max-width:36ch}
.scrub .sw{opacity:.14;transition:opacity .25s,color .4s}
.scrub .sw.lit{opacity:1}
.vision-note{margin-top:4vh;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:600}

/* 02 BRANCHES */
#branches{height:500vh}
.branch-stage{display:flex;align-items:center}
.branch-line{position:absolute;left:0;top:9vh;height:18vh;width:var(--tw,400vw);will-change:transform;overflow:visible}
.branch-line path{fill:none;stroke:#4a3622;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}
.branch-line .twig{stroke-width:2.2}
.branch-line .bl-leaf{fill:var(--leaf);stroke:none;opacity:.92;transform-box:fill-box;transform-origin:50% 100%;transform:scale(0);transition:transform 1s var(--ease)}
.branch-line .bl-leaf.on{transform:scale(1)}
.branch-track{position:relative;display:flex;align-items:center;gap:6vw;padding:0 var(--gut);height:100%;will-change:transform}
.bpanel{flex:none}
.bp-intro{width:min(560px,80vw);padding-top:6vh}
.bp-intro h2{margin:3vh 0}
.drag-hint{display:flex;align-items:center;gap:14px;margin-top:5vh;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3)}
.drag-hint i{width:60px;height:1px;background:var(--gold);animation:hint 2s var(--ease) infinite;transform-origin:left}
@keyframes hint{0%{transform:scaleX(0)}60%{transform:scaleX(1)}100%{transform:scaleX(1);opacity:0}}
.bp-card{position:relative;width:min(60vw,980px);height:58vh;display:grid;grid-template-columns:1.35fr 1fr;gap:3vw;align-items:end;margin-top:22vh;transform-origin:30% -20vh}
.thread{position:absolute;left:30%;top:-26vh;width:1px;height:26vh;background:linear-gradient(transparent,rgba(74,54,34,.7));transform-origin:top}
.bp-media{position:relative;height:100%;overflow:hidden;border-radius:220px 220px 6px 6px;box-shadow:0 40px 80px -30px rgba(46,38,20,.45)}
.bp-media img{position:absolute;top:0;left:-15%;width:130%;height:100%;object-fit:cover;will-change:transform;transition:scale 1.4s var(--ease)}
.bp-card:hover .bp-media img{scale:1.06}
.badge{position:absolute;right:18px;top:24%;padding:8px 14px;border-radius:30px;background:var(--gold-3);color:var(--ink);font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}
.bp-info{padding-bottom:2vh}
.bp-idx{font-family:var(--serif);font-style:italic;color:var(--gold);font-size:18px}
.bp-info h3{font-size:clamp(34px,3.6vw,60px);margin:1.5vh 0 2vh}
.bp-info p{color:var(--ink-2);font-size:15px;line-height:1.7}
.tags{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-top:3vh}
.tags li{font-size:10px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;padding:8px 14px;border:1px solid rgba(27,31,23,.2);border-radius:30px}
.bp-end{width:auto;padding-right:14vw}
.big-link{display:flex;align-items:center;gap:22px;white-space:nowrap;font-family:var(--serif);font-size:clamp(44px,5vw,86px);font-style:italic;margin-top:3vh;color:var(--moss);transition:gap .6s var(--ease),color .4s}
.big-link svg{width:.8em;height:.8em}
.big-link:hover{gap:40px;color:var(--gold)}
.branch-progress{position:absolute;left:var(--gut);right:calc(var(--gut) + 60px);bottom:5vh;height:1px;background:rgba(27,31,23,.15)}
.branch-progress i{position:absolute;inset:0;background:var(--gold);transform-origin:left;transform:scaleX(var(--bp,0))}

/* 03 GROVE */
#grove{padding:22vh 0 18vh}
.grove-head h2{margin:3vh 0 3vh}
.grove-filter{display:flex;flex-wrap:wrap;gap:10px;margin:6vh 0 4vh}
.chip{height:40px;padding:0 18px;border-radius:30px;border:1px solid rgba(27,31,23,.2);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;transition:all .4s var(--ease)}
.chip:hover{border-color:var(--gold)}
.chip.on{background:var(--moss);border-color:var(--moss);color:var(--ivory)}
.grove-list{list-style:none;border-top:1px solid rgba(27,31,23,.14)}
.gl{position:relative;display:grid;grid-template-columns:70px 1.3fr 1fr 1.2fr 40px;align-items:center;gap:24px;padding:30px 0;border-bottom:1px solid rgba(27,31,23,.14);
  cursor:pointer;transition:padding .6s var(--ease),opacity .5s,filter .5s}
.gl::before{content:"";position:absolute;left:0;right:0;top:0;bottom:0;z-index:-1;background:linear-gradient(90deg,rgba(176,133,48,.1),transparent);transform:scaleX(0);transform-origin:left;transition:transform .8s var(--ease)}
.gl:hover{padding-left:24px}
.gl:hover::before{transform:none}
.gl.dim{opacity:.18;filter:blur(1px)}
.gl-n{font-family:var(--serif);font-style:italic;font-size:18px;color:var(--gold)}
.gl-name{font-family:var(--serif);font-size:clamp(26px,2.5vw,42px);line-height:1.05}
.gl-name em{font-style:italic;color:var(--moss)}
.gl-plots{font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2)}
.gl-desc{font-size:14.5px;color:var(--ink-2)}
.gl-arr{width:26px;height:26px;color:var(--gold);transition:transform .6s var(--ease)}
.gl:hover .gl-arr{transform:rotate(45deg) scale(1.2)}
.gl{opacity:0;transform:translateY(30px)}
.gl.in{opacity:1;transform:none;transition:opacity 1s var(--ease),transform 1.2s var(--ease),padding .6s var(--ease),filter .5s}
.gl.in.dim{opacity:.18}
.grove-preview{position:fixed;left:0;top:0;z-index:40;pointer-events:none;width:340px;height:420px;margin:-210px 0 0 -170px;opacity:0;transition:opacity .45s}
.grove-preview.show{opacity:1}
.gp-inner{width:100%;height:100%;overflow:hidden;border-radius:170px 170px 8px 8px;transform:scale(.6);transition:transform .6s var(--ease);box-shadow:0 30px 70px -20px rgba(0,0,0,.4)}
.grove-preview.show .gp-inner{transform:scale(1)}
.gp-inner img{width:100%;height:100%;object-fit:cover;scale:1.2}

/* 04 HORIZON */
#horizon{height:280vh}
.hz-sky{position:absolute;inset:0;background:linear-gradient(180deg,#9EC3D6 0%,#CFE0E0 38%,#F4E4C2 70%,#F7D9A6 100%)}
.hz-sun{position:absolute;left:50%;top:62%;width:44vmin;height:44vmin;margin:-22vmin 0 0 -22vmin;border-radius:50%;background:radial-gradient(circle,#FFFDF4 0%,#FFF3D2 14%,rgba(255,232,176,.7) 24%,rgba(255,224,160,.28) 42%,rgba(255,220,150,0) 70%);will-change:transform}
.hz-sun::after{content:"";position:absolute;left:50%;top:50%;width:420%;height:420%;transform:translate(-50%,-50%);border-radius:50%;opacity:.55;mix-blend-mode:screen;background:repeating-conic-gradient(from 0deg,rgba(255,244,210,.22) 0deg 1.6deg,transparent 1.6deg 8deg,rgba(255,244,210,.1) 8deg 10deg,transparent 10deg 17deg);-webkit-mask:radial-gradient(circle,#000 5%,transparent 55%);mask:radial-gradient(circle,#000 5%,transparent 55%);animation:spin 160s linear infinite}
.hz-layers{position:absolute;left:0;bottom:0;width:100%;height:100%}
.hz-layers .hz-l{will-change:transform}
.hz-title{position:absolute;left:0;right:0;top:14vh;text-align:center;color:var(--ink);display:flex;flex-direction:column;align-items:center;gap:2vh;will-change:transform,opacity}
.hz-title .eyebrow{color:rgba(27,31,23,.7)}
.hz-title h2{font-size:clamp(52px,8vw,140px)}
.hz-cards{position:absolute;left:var(--gut);right:calc(var(--gut) + 60px);bottom:8vh;display:flex;justify-content:space-between;gap:3vw;pointer-events:none}
.hz-card{width:min(430px,44vw);padding:32px 34px;border-radius:22px;color:var(--ivory);background:linear-gradient(140deg,rgba(24,40,26,.52),rgba(24,40,26,.28))!important;opacity:0;transform:translateY(60px);will-change:transform,opacity;pointer-events:auto}
.glass{background:linear-gradient(140deg,rgba(255,255,255,.18),rgba(255,255,255,.04));border:1px solid rgba(255,255,255,.28);
  backdrop-filter:blur(18px) saturate(1.2);-webkit-backdrop-filter:blur(18px) saturate(1.2);box-shadow:0 30px 60px -30px rgba(10,20,10,.5)}
.hz-card .eyebrow{color:var(--gold-3)}
.hz-card h3{font-size:clamp(30px,2.8vw,46px);margin:14px 0 12px;display:flex;flex-direction:column;gap:6px}
.hz-card h3 small{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--light-2)}
.hz-card p{font-size:14.5px;line-height:1.7;color:rgba(246,241,231,.85)}
.sapling{position:absolute;left:50%;bottom:0;width:min(22vw,200px);transform:translateX(-50%);overflow:visible}
.sapling path{fill:none;stroke:#3b2a19;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1}
.sp-stem{stroke-width:5}.sp-br{stroke-width:2.6}
.sp-leaves path{fill:#6f9a45;stroke:none;stroke-dasharray:none;transform-box:fill-box;transform-origin:50% 100%;transform:scale(0);transition:transform 1s var(--ease)}
.sp-leaves path.on{transform:scale(1)}

/* 05 HOMES */
#homes{padding:24vh 0 22vh}
.homes-head{display:flex;flex-direction:column;gap:3vh;margin-bottom:9vh}
.homes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.4vw,40px);perspective:1400px}
.home-card{position:relative;border-radius:24px;background:var(--paper);box-shadow:0 30px 70px -40px rgba(60,48,20,.45);overflow:hidden;
  transform-style:preserve-3d;will-change:transform;transition:box-shadow .6s;opacity:0;translate:0 80px}
.home-card.in{opacity:1;translate:0 0;transition:opacity 1.2s var(--ease),translate 1.4s var(--ease),box-shadow .6s}
.home-card:nth-child(2).in{transition-delay:.12s}.home-card:nth-child(3).in{transition-delay:.24s}
.home-card:hover{box-shadow:0 50px 90px -40px rgba(60,48,20,.6)}
.hc-media{position:relative;height:clamp(260px,34vh,380px);overflow:hidden;border-radius:0 0 50% 50%/0 0 14% 14%}
.hc-media img{width:100%;height:100%;object-fit:cover;transition:transform 1.6s var(--ease)}
.home-card:hover .hc-media img{transform:scale(1.08)}
.hc-media::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at var(--gx,50%) var(--gy,50%),rgba(255,240,200,.35),transparent 50%);opacity:0;transition:opacity .4s;mix-blend-mode:overlay}
.home-card:hover .hc-media::after{opacity:1}
.hc-body{padding:28px 30px 32px}
.hc-type{font-size:10.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.hc-body h3{font-size:clamp(28px,2.4vw,40px);margin:10px 0}
.hc-body>p{color:var(--ink-2);font-size:14.5px}
.specs{list-style:none;display:flex;gap:22px;margin:20px 0;padding:16px 0;border-top:1px solid rgba(27,31,23,.1);border-bottom:1px solid rgba(27,31,23,.1);font-size:12px;letter-spacing:.08em;color:var(--ink-2)}
.specs b{font-family:var(--serif);font-size:24px;font-weight:500;color:var(--ink);margin-right:4px}
.price{font-family:var(--serif);font-size:40px;line-height:1;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.price small{font-family:var(--sans);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);width:100%;margin-bottom:6px}
.price span{font-family:var(--sans);font-size:12px;letter-spacing:.2em;color:var(--gold);font-weight:600}
.homes-cta{display:flex;gap:14px;justify-content:center;margin-top:9vh;flex-wrap:wrap}

/* 06 TRUNK */
#trunk{height:340vh}
.trunk-stage{background:#1b140e}
.trunk-cover{transform-origin:78% 70%;will-change:transform}
.trunk-cover img{filter:brightness(1.05) contrast(1.1) saturate(.9) sepia(.15)}
.trunk-grade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(18,13,9,.92) 0%,rgba(18,13,9,.7) 38%,rgba(18,13,9,.15) 70%,rgba(18,13,9,.35) 100%),
  linear-gradient(0deg,rgba(18,13,9,.7),transparent 40%)}
.trunk-copy{position:absolute;left:var(--gut);top:16vh;max-width:min(760px,60vw);color:var(--light)}
.trunk-copy .eyebrow{color:var(--light-2)}
.trunk-copy h2{font-size:clamp(38px,4.6vw,80px);margin-top:3vh}
.trunk-copy h2 em{color:var(--gold-3)}
.pillars{position:absolute;left:var(--gut);bottom:10vh;width:min(720px,72vw);color:var(--light)}
.pillar-nav{display:flex;gap:6px;margin-bottom:4vh;border-bottom:1px solid var(--light-3)}
.pn{position:relative;padding:14px 18px 16px 0;margin-right:18px;font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--light-3);transition:color .4s}
.pn span{font-family:var(--serif);font-style:italic;font-size:14px;letter-spacing:0;margin-right:10px;color:var(--gold-2)}
.pn::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--gold-2);transform:scaleX(0);transform-origin:left;transition:transform .8s var(--ease)}
.pn.on{color:var(--light)}
.pn.on::after{transform:scaleX(1)}
.pillar-body{position:relative;min-height:220px}
.pillar{position:absolute;inset:0 0 auto 0;opacity:0;transform:translateY(30px);filter:blur(6px);transition:opacity .9s var(--ease),transform 1.1s var(--ease),filter .9s;pointer-events:none}
.pillar.on{opacity:1;transform:none;filter:none;pointer-events:auto}
.pillar .eyebrow{color:var(--gold-2)}
.pillar h3{font-size:clamp(30px,3vw,50px);margin:2vh 0}
.pillar p{color:var(--light-2);font-size:16px;line-height:1.75;max-width:56ch}
.bark-counter{position:absolute;right:calc(var(--gut) + 60px);bottom:10vh;display:flex;align-items:center;gap:14px;color:var(--light);font-family:var(--serif);font-size:22px}
.bark-counter i{width:80px;height:1px;background:var(--light-3)}
.bark-counter span:first-child{font-size:54px;color:var(--gold-3);font-style:italic}

/* 07 RINGS */
#rings{height:240vh}
.rings-stage{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:5vw;padding:0 calc(var(--gut) + 60px) 0 var(--gut)}
.rings-art{position:relative;height:80vh;display:grid;place-items:center}
#ringsCanvas{width:min(44vw,78vh);height:min(44vw,78vh);will-change:transform;filter:drop-shadow(0 40px 60px rgba(80,50,20,.35))}
.rings-core-label{position:absolute;font-family:var(--serif);font-style:italic;color:#fdf3dc;font-size:14px;letter-spacing:.04em;opacity:.9;text-shadow:0 1px 2px rgba(0,0,0,.4)}
.rings-copy h2{font-size:clamp(38px,4.4vw,76px);margin:3vh 0}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:4vh 3vw;margin-top:6vh}
.stat{border-top:1px solid rgba(27,31,23,.18);padding-top:2.2vh}
.stat b{font-family:var(--serif);font-weight:300;font-size:clamp(56px,5.4vw,96px);line-height:.9;color:var(--moss);font-variant-numeric:tabular-nums}
.stat sup{font-family:var(--serif);font-size:32px;color:var(--gold);vertical-align:top;line-height:1.3}
.stat span{display:block;margin-top:10px;font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2)}

/* 08 GROUND */
#ground{height:230vh}
.ground-sky{position:absolute;inset:0;background:radial-gradient(90% 70% at 70% 0%,#FFF6DD 0%,#EEF0DD 40%,#DDE6CC 100%)}
.ground-copy{position:absolute;left:var(--gut);top:15vh}
.ground-copy h2{margin-top:3vh}
.quotes{position:absolute;left:var(--gut);right:calc(var(--gut) + 60px);top:42vh;height:30vh;touch-action:pan-y}
.quote{position:absolute;right:0;max-width:min(880px,74vw);opacity:0;transform:translateX(80px) rotate(2deg);filter:blur(8px);transition:opacity 1s var(--ease),transform 1.2s var(--ease),filter 1s;pointer-events:none}
.quote.on{opacity:1;transform:none;filter:none;pointer-events:auto}
.quote.out{transform:translateX(-80px) rotate(-2deg)}
.quote blockquote{font-family:var(--serif);font-size:clamp(28px,3.1vw,54px);line-height:1.18;color:var(--ink)}
.quote figcaption{margin-top:3vh;display:flex;gap:16px;align-items:baseline;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3)}
.quote figcaption b{font-family:var(--serif);font-style:italic;font-size:22px;letter-spacing:0;text-transform:none;color:var(--gold);font-weight:500}
.quote-nav{position:absolute;right:calc(var(--gut) + 60px);top:32vh;display:flex;align-items:center;gap:18px;z-index:3}
.qn{width:52px;height:52px;border-radius:50%;border:1px solid rgba(27,31,23,.25);display:grid;place-items:center;transition:all .4s var(--ease)}
.qn svg{width:20px;height:20px}
.qn[data-q="-1"] svg{transform:rotate(180deg)}
.qn:hover{background:var(--moss);color:var(--ivory);border-color:var(--moss)}
.qdots{display:flex;gap:8px}
.qdots i{width:8px;height:8px;border-radius:0 60% 0 60%;background:rgba(27,31,23,.2);transition:all .4s}
.qdots i.on{background:var(--gold);transform:scale(1.3) rotate(-45deg)}
#grass{position:absolute;left:0;bottom:0;width:100%;height:34vh;pointer-events:none}
.soil-edge{position:absolute;left:0;right:0;bottom:-2px;height:5vh;background:linear-gradient(0deg,#120D09,rgba(18,13,9,0))}

/* 09 ROOTS */
#roots{height:360vh}
.roots-stage{background:#120D09;color:var(--light)}
.roots-photo{position:absolute;inset:-12% 0 -12% 0;will-change:transform}
.roots-photo img{width:100%;height:100%;object-fit:cover;filter:brightness(.8) contrast(1.1) saturate(1.1)}
.roots-grade{position:absolute;inset:0;background:radial-gradient(70% 60% at 50% 45%,transparent 0%,rgba(18,13,9,.55) 70%,rgba(18,13,9,.92) 100%),
  linear-gradient(180deg,#120D09 0%,rgba(18,13,9,0) 22%,rgba(18,13,9,0) 70%,#120D09 100%)}
.root-net{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.root-net path{fill:none;stroke-linecap:round}
.root-net .rn-base{stroke:rgba(241,190,110,.18)}
.root-net .rn-lit{stroke:#F1C27A;filter:url(#rootGlow)}
.root-net .pulse{fill:#FFE9B8;filter:url(#rootGlow)}
.roots-copy{position:absolute;left:0;right:0;top:12vh;text-align:center;display:flex;flex-direction:column;align-items:center;padding:0 var(--gut);will-change:transform,opacity}
.roots-copy .eyebrow{color:var(--gold-2)}
.roots-copy h2{margin:3vh 0;font-size:clamp(40px,5.4vw,96px)}
.roots-copy h2 em{color:var(--gold-3)}
.roots-copy .lead{color:var(--light-2);text-align:center}
.root-nodes{position:absolute;inset:0;pointer-events:none}
.rnode{position:absolute;width:min(300px,30vw);padding:24px 24px 26px;border-radius:18px;pointer-events:auto;opacity:0;transform:translateY(40px);will-change:transform,opacity;
  background:linear-gradient(160deg,rgba(40,28,16,.72),rgba(18,13,9,.6));border:1px solid rgba(241,194,122,.22);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  transition:border-color .5s,box-shadow .5s}
.rnode:hover{border-color:rgba(241,194,122,.7);box-shadow:0 0 60px -10px rgba(241,194,122,.35)}
.rnode[data-node="0"]{left:calc(var(--gut) + 1vw);top:58vh}
.rnode[data-node="1"]{left:50%;margin-left:min(-150px,-15vw);top:66vh}
.rnode[data-node="2"]{right:calc(var(--gut) + 70px);top:58vh}
.rn-dot{position:absolute;left:50%;top:-7px;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:#FFE9B8;box-shadow:0 0 0 6px rgba(241,194,122,.18),0 0 30px 6px rgba(241,194,122,.7)}
.rnode .eyebrow{color:var(--gold-2);font-size:9.5px}
.rnode h3{font-size:34px;margin:10px 0 8px;color:var(--gold-3)}
.rnode p:last-child{font-size:13.5px;line-height:1.65;color:var(--light-2)}
.roots-close{position:absolute;left:50%;bottom:7vh;width:min(900px,84vw);transform:translateX(-50%);text-align:center;font-family:var(--serif);font-size:clamp(22px,2vw,32px);line-height:1.35;color:var(--gold-3);opacity:0}
.roots-close em{display:block;color:var(--light-2);font-size:.8em;margin-top:8px}

/* 10 CONTACT */
#contact{padding:24vh 0 18vh;color:var(--light);overflow:hidden}
.seed-glow{position:absolute;left:50%;top:60%;width:140vw;height:140vw;max-width:2000px;max-height:2000px;transform:translate(-50%,-50%) scale(var(--sg,.3));border-radius:50%;
  background:radial-gradient(circle,rgba(255,214,140,.5) 0%,rgba(212,150,70,.25) 25%,rgba(120,70,30,.1) 45%,transparent 65%);pointer-events:none}
.contact-wrap{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:7vw;align-items:start;padding-right:calc(var(--gut) + 60px)}
.contact-copy .eyebrow{color:var(--gold-2)}
.contact-copy h2{margin:3vh 0}
.contact-copy h2 em{color:var(--gold-3)}
.contact-copy .lead{color:var(--light-2)}
.contact-list{list-style:none;margin-top:6vh;display:flex;flex-direction:column}
.contact-list li{display:grid;grid-template-columns:90px 1fr;gap:10px;padding:20px 0;border-top:1px solid var(--light-3);font-family:var(--serif);font-size:clamp(20px,1.7vw,27px);line-height:1.3}
.contact-list small{font-family:var(--sans);font-size:10px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-2);padding-top:8px}
.contact-list a{transition:color .3s}.contact-list a:hover{color:var(--gold-3)}
.seed-form{position:relative;display:flex;flex-direction:column;gap:14px;padding:44px 40px 40px;border-radius:26px;
  background:linear-gradient(160deg,rgba(255,240,210,.08),rgba(255,240,210,.02));border:1px solid rgba(241,221,166,.2);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.seed-art{position:absolute;right:22px;top:-104px;width:120px;height:160px}
.seed-art svg{width:100%;height:100%;overflow:visible}
.seed-body{fill:#C69A52;filter:drop-shadow(0 0 12px rgba(255,210,140,.8));transition:transform 1s var(--ease)}
.seed-sprout{fill:none;stroke:#8DB35A;stroke-width:3;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.4s var(--ease) .2s}
.seed-leaf{fill:#8DB35A;stroke:none;transform-box:fill-box;transform:scale(0);transition:transform 1.1s var(--ease)}
.seed-leaf.l{transform-origin:100% 100%;transition-delay:1s}.seed-leaf.r{transform-origin:0% 100%;transition-delay:1.25s}
.seed-form:focus-within .seed-sprout,.seed-form.typing .seed-sprout{stroke-dashoffset:.55}
.seed-form.sprouted .seed-sprout{stroke-dashoffset:0}
.seed-form.sprouted .seed-leaf{transform:scale(1)}
.field{position:relative;display:block}
.field input,.field textarea,.field select{width:100%;padding:24px 0 10px;background:transparent;border:0;border-bottom:1px solid var(--light-3);color:var(--light);font:inherit;font-size:16px;outline:none;resize:none;border-radius:0;transition:border-color .4s}
.field select{appearance:none;cursor:pointer}
.field select option{color:var(--ink)}
.field span{position:absolute;left:0;top:22px;font-size:14px;color:var(--light-3);pointer-events:none;transition:all .4s var(--ease)}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--gold-2)}
.field input:focus+span,.field input:not(:placeholder-shown)+span,.field textarea:focus+span,.field textarea:not(:placeholder-shown)+span,.field span.static{top:0;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-2)}
.field.err input{border-color:#e07a5f}
.seed-form .pill-btn{margin-top:18px}
.form-msg{min-height:1.5em;font-family:var(--serif);font-style:italic;font-size:18px;color:var(--gold-3);text-align:center}

/* FOOTER */
#footer{position:relative;overflow:hidden;padding:26vh 0 0;color:var(--ink)}
.ft-sky{position:absolute;inset:0;background:linear-gradient(180deg,#1A120C 0%,#6b4424 12%,#D99A57 30%,#F2C98A 48%,#F7E3B9 70%,#F6EBD2 100%)}
.ft-top{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:3vh;color:var(--ink)}
.ft-top .eyebrow{color:#5a3d1d}
.ft-cta{font-size:clamp(48px,7vw,124px)}
.ft-cta em{color:#8a5a1c}
.ft-word{position:relative;z-index:0;display:flex;justify-content:center;font-family:var(--sans);font-weight:200;font-size:clamp(120px,30vw,520px);line-height:.78;letter-spacing:-.02em;margin-top:10vh;
  color:transparent;-webkit-text-stroke:1px rgba(90,61,29,.35);user-select:none}
.ft-tree{position:absolute;left:50%;bottom:-2px;height:175%;width:auto;aspect-ratio:1000/720;transform:translateX(-50%);transform-origin:50% 100%;z-index:-1;overflow:visible;pointer-events:none}
.ft-tree path{fill:none;stroke:#7a5428;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1}
.ft-leaves ellipse{transform-box:fill-box;transform-origin:50% 50%;transform:scale(0);transition:transform 1.2s var(--ease)}
.ft-leaves ellipse.on{transform:scale(1)}
.ft-word span{display:inline-block;transition:transform .8s var(--ease),color .6s,-webkit-text-stroke .6s;will-change:transform}
.ft-word span:hover{color:rgba(176,133,48,.15)}
.ft-grid{position:relative;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;padding-top:6vh;padding-bottom:6vh;border-top:1px solid rgba(27,31,23,.15);padding-right:calc(var(--gut) + 60px)}
.ft-grid>div{display:flex;flex-direction:column;gap:10px;font-size:14px;color:var(--ink-2)}
.ft-grid .eyebrow{margin-bottom:6px;color:#7a5222}
.ft-grid a{transition:color .3s}.ft-grid a:hover{color:var(--gold)}
.ft-mark{width:88px;height:53px;color:var(--gold)}
.ft-bottom{position:relative;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;padding-top:22px;padding-bottom:30px;border-top:1px solid rgba(27,31,23,.12);
  font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);padding-right:calc(var(--gut) + 60px)}
.to-top{display:flex;align-items:center;gap:8px;color:var(--ink)}
.to-top svg{width:16px;height:16px}

/* ─── the vine ─── */
#vine{position:absolute;left:0;top:0;width:100%;z-index:30;pointer-events:none;overflow:visible}
#vineGhost{fill:none;stroke:rgba(176,133,48,.12);stroke-width:1;stroke-dasharray:2 7}
#vinePath{fill:none;stroke:url(#vineGrad);stroke-width:2.2;stroke-linecap:round;filter:url(#vineGlow)}
#vineTip{fill:#FFF3D0;filter:url(#vineGlow)}
#vineLeaves path{transform-box:fill-box;transform-origin:50% 100%;transform:scale(0);transition:transform 1.1s var(--ease)}
#vineLeaves path.on{transform:scale(1)}

/* ─── responsive ─── */
@media (max-width:1100px){
  .nav{display:none}
  .menu-btn{display:flex}
  .header-right .pill-btn{display:none}
  .bp-card{width:78vw;grid-template-columns:1fr;grid-template-rows:1fr auto;height:64vh;gap:18px;margin-top:22vh}
  .bp-info h3{margin:6px 0 8px}
  .bp-info p{font-size:14px}
  .tags{margin-top:12px}
  .gl{grid-template-columns:44px 1fr 30px;gap:10px 16px}
  .gl-plots,.gl-desc{grid-column:2}
  .gl-arr{grid-column:3;grid-row:1}
  .homes-grid{grid-template-columns:1fr;max-width:560px;margin:0 auto}
  .rings-stage{grid-template-columns:1fr;grid-template-rows:auto auto;align-content:center;gap:2vh;padding:10vh var(--gut) 0}
  .rings-art{height:32vh}
  #ringsCanvas{width:32vh;height:32vh}
  .rings-copy h2{margin:1.5vh 0}
  .rings-copy .lead{display:none}
  .stats{margin-top:3vh;gap:2.4vh 6vw}
  .contact-wrap{grid-template-columns:1fr;padding-right:var(--gut)}
  .ft-grid{grid-template-columns:1fr 1fr;padding-right:var(--gut)}
  .ft-bottom{padding-right:var(--gut)}
  .menu-inner{grid-template-columns:1fr;align-content:center}
  .vision-stage{grid-template-columns:1fr;grid-template-rows:auto 1fr;padding:12vh var(--gut) 0;gap:2vh;align-content:start}
  .vision-leaf{height:26vh}
  .vl-img{width:auto;height:26vh}
  .vl-cap{display:none}
  .vision-title{margin:1.5vh 0 2.5vh}
}
@media (max-width:760px){
  :root{--gut:20px}
  #rail{display:none}
  .sound-label{display:none}
  .brand-text small{letter-spacing:.3em}
  .hero-title{font-size:30vw}
  .hero-foot .hf-left,.hero-foot .hf-right{display:none}
  .hero-foot{justify-content:center}
  .scrub{font-size:20px}
  .bp-card{width:84vw}
  .bp-media{border-radius:140px 140px 6px 6px}
  .branch-progress{right:var(--gut)}
  .hz-cards{flex-direction:column;right:var(--gut);bottom:4vh;gap:12px}
  .hz-card{width:100%;padding:20px 22px}
  .hz-card h3{font-size:26px;margin:8px 0}
  .hz-card p{font-size:13px}
  .hz-title{top:12vh}
  .sapling{display:none}
  .trunk-copy{max-width:none;right:var(--gut);top:13vh}
  .pillars{width:auto;right:var(--gut);bottom:12vh}
  .pn{font-size:9.5px;letter-spacing:.12em;margin-right:8px;padding-right:6px}
  .pn span{display:block;margin-bottom:2px}
  .bark-counter{display:none}
  .pillar p{font-size:14.5px}
  .quotes{right:var(--gut);top:40vh}
  .quote{max-width:100%}
  .quote-nav{right:var(--gut);top:auto;bottom:30vh}
  .root-nodes{display:flex;flex-direction:column;gap:12px;justify-content:flex-end;padding:0 var(--gut) 5vh}
  .rnode{position:relative;left:auto!important;right:auto!important;top:auto!important;margin:0!important;width:100%;padding:16px 18px}
  .rnode h3{font-size:26px;margin:6px 0 4px}
  .rnode p:last-child{font-size:12.5px}
  .rn-dot{display:none}
  .roots-close{display:none}
  .roots-copy{top:11vh}
  .roots-copy .lead{display:none}
  .seed-form{padding:36px 22px 26px}
  .ft-grid{grid-template-columns:1fr}
  .grove-preview{display:none}
  .stat b{font-size:48px}
}
@media (max-height:700px) and (min-width:761px){
  .pillar-body{min-height:170px}
  .pillar h3{font-size:30px}
  .rnode p:last-child{display:none}
}
@media (prefers-reduced-motion:reduce){
  #grain,.sun-rays,.mist{animation:none}
  .split .w>span,.rv,.gl,.home-card{transition-duration:.01s!important}
}
