/* ============================================================
   NURTURING SOUL — shared stylesheet
   Design tokens, layout, components. One file, every page.
   ============================================================ */
:root{
  /* ---- surfaces: warm, with real steps between them ---- */
  --ivory:#F8F3EB;          /* page base, warmed from the old grey-cream */
  --ivory-lift:#FDFAF5;     /* raised cards, players */
  --ivory-deep:#F0E6D6;     /* recessed */
  --wash-sand:#F3EADB;
  --wash-sage:#E8EEE4;
  --wash-peach:#F9EAE0;
  --wash-lav:#EDE8F2;
  --forest:#24382C;         /* deep natural green — dark sections */

  /* ---- text: deep forest green, not plum ---- */
  --ink:#24382C; --ink-soft:#4E6154; --ink-faint:#8A9189;
  --line:#E0D5C4; --line-warm:#D8C7B0;

  /* ---- accents ---- */
  --terra:#C0705A; --terra-deep:#A85B47;
  --sage:#7C9A78; --sand:#EADDC8; --rose:#E5B196;
  --peach:#E5B196; --lavender:#A697C0; --sky:#9BB8CB; --gold:#C79A3E;

  /* ---- chakra spectrum, retuned to sit on a warm base ---- */
  --c1:#B4574F; --c2:#CB7F52; --c3:#C9A24E; --c4:#7C9A78;
  --c5:#6E93AE; --c6:#5F6796; --c7:#9080AB;

  --aura:124,154,120; --aura-2:166,151,192;
  --dot:var(--c4);

  --display:'Cormorant Garamond','Iowan Old Style',Georgia,serif;
  --body:'Manrope',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;

  --s1:.25rem; --s2:.5rem; --s3:.75rem; --s4:1rem; --s5:1.5rem;
  --s6:2rem; --s7:3rem; --s8:4rem; --s9:6rem; --s10:8rem;
  --gutter:clamp(1.5rem,6vw,6rem);
  --section:clamp(5rem,13vh,9rem);
  --measure:68ch;

  --r-soft:1.25rem; --r-card:1.5rem; --r-pill:999px;
  --shadow-soft:0 18px 40px -30px rgba(36,56,44,.45);
  --shadow-lift:0 30px 70px -45px rgba(36,56,44,.55);
  --breath:10s;
  --ease-breath:cubic-bezier(.37,.14,.28,1);
  --ease-soft:cubic-bezier(.22,.61,.36,1);
  --t-slow:1.4s; --t-med:.8s; --t-quick:.45s;
  --hdr-h:5rem;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:6rem}
body{
  margin:0;background:var(--ivory);color:var(--ink);
  font-family:var(--body);font-size:1.0625rem;line-height:1.85;letter-spacing:.006em;
  overflow-x:hidden;-webkit-font-smoothing:antialiased;
}
body::before{
  content:"";position:fixed;inset:-25vmax;z-index:0;pointer-events:none;
  background:
    radial-gradient(46vmax 46vmax at 20% 26%, rgba(var(--aura),.26), transparent 66%),
    radial-gradient(52vmax 52vmax at 80% 74%, rgba(var(--aura-2),.20), transparent 68%);
  filter:blur(40px);transition:background 3.2s linear;
  animation:drift 68s ease-in-out infinite alternate;
}
@keyframes drift{0%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(2.5%,-2%,0) scale(1.06)}100%{transform:translate3d(-2%,2.5%,0) scale(1.02)}}
body::after{
  content:"";position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.5;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.045'/%3E%3C/svg%3E");
  mix-blend-mode:multiply;
}
.page{position:relative;z-index:2}

/* ---------- type ---------- */
h1,h2,h3,h4,.display{font-family:var(--display);font-weight:300;line-height:1.06;letter-spacing:-.015em;margin:0}
h1{font-size:clamp(2.6rem,7vw,5.4rem);line-height:.98}
.hero h1{font-size:clamp(3.1rem,9.5vw,7.2rem);line-height:.94}
h2{font-size:clamp(2rem,4.6vw,3.4rem);line-height:1.1}
h3{font-size:clamp(1.35rem,2.4vw,1.85rem);font-weight:400;line-height:1.25}
h4{font-size:1.15rem;font-weight:500;line-height:1.35}
p{margin:0 0 var(--s4);max-width:var(--measure)}
a{color:inherit}
.lede{font-size:clamp(1.08rem,1.8vw,1.28rem);line-height:1.8;color:var(--ink-soft);font-weight:300}
.whisper{font-size:.9rem;color:var(--ink-faint);letter-spacing:.02em;line-height:1.7}
.sanskrit{font-family:var(--display);font-style:italic;font-weight:300;color:var(--ink-faint)}

/* ---------- layout ---------- */
.wrap{width:min(1240px,100% - var(--gutter)*2);margin-inline:auto}
.narrow{width:min(760px,100% - var(--gutter)*2);margin-inline:auto}
section{padding-block:var(--section);position:relative}
.band{background:linear-gradient(180deg,transparent,rgba(235,227,218,.5),transparent)}
.shead{max-width:44rem;margin-bottom:clamp(2.5rem,6vh,4rem)}
.shead h2{margin-bottom:var(--s4)}
.shead .lede{margin:0}
.shead--center{margin-inline:auto;text-align:center}

/* ---------- buttons ---------- */
.btn{
  font-family:var(--body);font-size:.95rem;font-weight:500;letter-spacing:.01em;
  padding:.95rem 2rem;border-radius:var(--r-pill);border:1px solid transparent;
  background:transparent;color:var(--ink);cursor:pointer;text-decoration:none;
  display:inline-flex;align-items:center;gap:.6rem;
  transition:transform var(--t-med) var(--ease-soft),box-shadow var(--t-med),background var(--t-med),color var(--t-med),border-color var(--t-med);
}
.btn--primary{background:var(--ink);color:var(--ivory-lift)}
.btn--primary:hover{transform:scale(1.035);box-shadow:0 0 0 6px rgba(51,43,58,.07),0 14px 34px -16px rgba(51,43,58,.55)}
.btn--quiet{border-color:var(--line);color:var(--ink-soft);background:rgba(251,248,244,.6)}
.btn--quiet:hover{transform:scale(1.035);border-color:var(--ink-faint);color:var(--ink);box-shadow:0 0 26px -6px rgba(var(--aura),.5)}
.btn--ghost{padding:.3rem 0;color:var(--ink-soft);border-bottom:1px solid var(--line);border-radius:0}
.btn--ghost:hover{color:var(--ink);border-color:var(--ink)}
:focus-visible{outline:2px solid var(--ink);outline-offset:4px;border-radius:4px}
.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:var(--ivory);padding:.8rem 1.4rem;z-index:300;border-radius:0 0 var(--r-soft) 0}
.skip:focus{left:0}

/* ---------- header ---------- */
.hdr{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;gap:var(--s5);
  padding:var(--s4) var(--gutter);border-bottom:1px solid transparent;
  transition:background var(--t-slow),backdrop-filter var(--t-slow),padding var(--t-slow),border-color var(--t-slow);
}
.hdr.settled{background:rgba(248,243,235,.82);backdrop-filter:blur(16px) saturate(1.1);border-bottom-color:rgba(224,213,196,.8);padding-block:var(--s3)}
.mark{font-family:var(--display);font-size:1.45rem;font-weight:400;text-decoration:none;display:flex;align-items:center;gap:.7rem;line-height:1;white-space:nowrap}
.mark__seed{width:.62rem;height:.62rem;border-radius:50%;background:rgb(var(--aura));box-shadow:0 0 0 5px rgba(var(--aura),.22);transition:background 2.4s linear,box-shadow 2.4s linear;animation:seedBreath var(--breath) var(--ease-breath) infinite;flex:none}
@keyframes seedBreath{0%,100%{transform:scale(1)}40%{transform:scale(1.35)}}
.nav{display:flex;gap:clamp(.9rem,1.8vw,1.6rem);align-items:center}
.nav>a,.navgroup>button{
  font-family:var(--body);font-size:.9rem;color:var(--ink-soft);text-decoration:none;
  background:none;border:0;cursor:pointer;padding:.3rem 0;position:relative;transition:color var(--t-quick);
}
.nav>a::after,.navgroup>button::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform var(--t-med) var(--ease-soft)}
.nav>a:hover,.navgroup>button:hover{color:var(--ink)}
.nav>a:hover::after,.navgroup>button:hover::after{transform:scaleX(1)}
.nav>a[aria-current="page"]{color:var(--ink)}
.nav>a[aria-current="page"]::after{transform:scaleX(1);background:var(--dot)}

/* music dropdown */
.navgroup{position:relative}
.navgroup>button{display:inline-flex;align-items:center;gap:.35rem}
.navgroup>button svg{width:10px;height:10px;transition:transform var(--t-quick)}
.navgroup[data-open="true"]>button svg{transform:rotate(180deg)}
.submenu{
  position:absolute;top:calc(100% + 1rem);left:50%;transform:translate(-50%,-8px);
  background:rgba(251,248,244,.97);backdrop-filter:blur(18px);
  border:1px solid var(--line);border-radius:var(--r-soft);
  padding:.6rem;min-width:15rem;display:flex;flex-direction:column;gap:.1rem;
  opacity:0;visibility:hidden;pointer-events:none;
  box-shadow:0 30px 60px -40px rgba(51,43,58,.55);
  transition:all var(--t-med) var(--ease-soft);
}
.navgroup[data-open="true"] .submenu{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0)}
.submenu a{display:flex;align-items:center;gap:.7rem;padding:.6rem .8rem;border-radius:.7rem;text-decoration:none;font-size:.9rem;color:var(--ink-soft);transition:background var(--t-quick),color var(--t-quick)}
.submenu a:hover{background:var(--ivory-deep);color:var(--ink)}
.submenu i{width:7px;height:7px;border-radius:50%;background:var(--d);flex:none}
.hdr__end{display:flex;align-items:center;gap:var(--s4)}
.navtoggle{display:none;background:none;border:0;cursor:pointer;padding:.5rem;color:var(--ink);z-index:110}

/* sound toggle */
.sound-toggle{display:flex;align-items:center;gap:.5rem;background:none;border:1px solid var(--line);border-radius:var(--r-pill);padding:.5rem .95rem;cursor:pointer;font-family:var(--body);font-size:.82rem;color:var(--ink-soft);transition:all var(--t-med) var(--ease-soft)}
.sound-toggle:hover{border-color:var(--ink-faint);color:var(--ink)}
.sound-toggle .bars{display:flex;align-items:flex-end;gap:2px;height:12px}
.sound-toggle .bars i{width:2px;background:currentColor;height:3px;border-radius:1px;transition:height .3s}
.sound-toggle[data-on="true"]{border-color:rgb(var(--aura));color:var(--ink);box-shadow:0 0 20px -6px rgba(var(--aura),.8)}
.sound-toggle[data-on="true"] .bars i{animation:eq 1.6s ease-in-out infinite}
.sound-toggle[data-on="true"] .bars i:nth-child(2){animation-delay:.25s}
.sound-toggle[data-on="true"] .bars i:nth-child(3){animation-delay:.5s}
.sound-toggle[data-on="true"] .bars i:nth-child(4){animation-delay:.15s}
@keyframes eq{0%,100%{height:3px}50%{height:12px}}

/* ---------- page transition veil ---------- */
.curtain{position:fixed;inset:0;z-index:250;background:var(--ivory);opacity:1;pointer-events:none;transition:opacity 1.1s var(--ease-soft)}
body.lit .curtain{opacity:0}
body.leaving .curtain{opacity:1;transition-duration:.55s}

/* ---------- page hero (interior pages) ---------- */
.phero{padding-top:calc(var(--hdr-h) + clamp(3rem,9vh,7rem));padding-bottom:clamp(2rem,6vh,4rem);position:relative}
.phero__kicker{display:flex;align-items:center;gap:.6rem;font-size:.85rem;color:var(--ink-faint);margin-bottom:var(--s5)}
.phero__kicker i{width:7px;height:7px;border-radius:50%;background:var(--dot);box-shadow:0 0 12px 2px var(--dot);animation:seedBreath var(--breath) var(--ease-breath) infinite;flex:none}
.phero h1{margin-bottom:var(--s5);max-width:16ch}
.phero .lede{max-width:52ch}

/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(24px);transition:opacity 1.4s var(--ease-soft),transform 1.4s var(--ease-soft)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.1s}.reveal.d2{transition-delay:.2s}
.reveal.d3{transition-delay:.3s}.reveal.d4{transition-delay:.4s}

/* ---------- hero (home) ---------- */
.hero{min-height:100svh;display:grid;place-items:center;text-align:center;padding-top:var(--s9);overflow:hidden}
.hero__inner{position:relative;z-index:2;width:min(900px,100% - var(--gutter)*2)}
.hero h1{margin-bottom:var(--s5)}
.hero h1 .line{display:block;overflow:hidden}
.hero h1 .line i{display:block;font-style:normal;transform:translateY(105%);transition:transform 2.1s var(--ease-soft)}
body.lit .hero h1 .line i{transform:none}
.hero h1 .line:nth-child(2) i{transition-delay:.22s}
.hero__sub{max-width:34rem;margin:0 auto var(--s7);opacity:0;transform:translateY(14px);transition:all 1.8s var(--ease-soft) .7s}
body.lit .hero__sub{opacity:1;transform:none}
.hero__acts{display:flex;gap:var(--s3);justify-content:center;flex-wrap:wrap;opacity:0;transition:opacity 1.8s ease 1.1s}
body.lit .hero__acts{opacity:1}
.orb{position:absolute;left:50%;top:46%;translate:-50% -50%;width:min(78vmin,640px);aspect-ratio:1;z-index:0;pointer-events:none}
.orb__ring{position:absolute;inset:0;border-radius:50%;border:1px solid rgba(var(--aura),.30);animation:expand var(--breath) var(--ease-breath) infinite}
.orb__ring:nth-child(2){inset:12%;animation-delay:-1.1s;border-color:rgba(var(--aura-2),.26)}
.orb__ring:nth-child(3){inset:24%;animation-delay:-2.2s}
.orb__core{position:absolute;inset:30%;border-radius:50%;background:radial-gradient(circle at 50% 45%,rgba(255,255,255,.85),rgba(var(--aura),.30) 55%,transparent 72%);filter:blur(14px);animation:expand var(--breath) var(--ease-breath) infinite}
@keyframes expand{0%,100%{transform:scale(.9);opacity:.55}40%{transform:scale(1.06);opacity:1}}
.breathcue{max-width:none;position:absolute;bottom:clamp(2rem,7vh,4.5rem);left:0;right:0;text-align:center;font-size:.78rem;letter-spacing:.22em;color:var(--ink-faint);z-index:2}
.breathcue b{font-weight:400;display:inline-block;animation:cue var(--breath) steps(1) infinite}
.breathcue b::after{content:"inhale"}
@keyframes cue{0%,40%{opacity:1}41%,100%{opacity:0}}
.breathcue b:last-child{animation-name:cue2;margin-left:-3.6rem}
.breathcue b:last-child::after{content:"exhale"}
@keyframes cue2{0%,40%{opacity:0}41%,100%{opacity:1}}
.motes{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.mote{position:absolute;border-radius:50%;background:rgba(255,255,255,.9);box-shadow:0 0 8px 2px rgba(var(--aura),.45);opacity:0;animation:float linear infinite}
@keyframes float{0%{opacity:0;transform:translateY(12vh) scale(.6)}12%{opacity:.9}88%{opacity:.55}100%{opacity:0;transform:translateY(-88vh) translateX(var(--drift)) scale(1.15)}}

/* ---------- player ---------- */
.player{
  max-width:1000px;margin-inline:auto;
  background:linear-gradient(155deg,rgba(251,248,244,.94),rgba(235,227,218,.7));
  border:1px solid rgba(222,213,203,.9);border-radius:var(--r-soft);
  padding:clamp(1.5rem,4vw,3rem);position:relative;overflow:hidden;
  box-shadow:0 40px 90px -60px rgba(51,43,58,.5),inset 0 1px 0 rgba(255,255,255,.7);
  transition:box-shadow 1.6s var(--ease-soft);
}
.player.playing{box-shadow:0 40px 100px -50px rgba(var(--aura),.85),inset 0 1px 0 rgba(255,255,255,.8),0 0 0 1px rgba(var(--aura),.35)}
.player__aura{position:absolute;inset:-40%;background:radial-gradient(circle at 50% 60%,rgba(var(--aura),.28),transparent 58%);opacity:0;transition:opacity 2s ease;pointer-events:none}
.player.playing .player__aura{opacity:1;animation:expand var(--breath) var(--ease-breath) infinite}
.player__top{position:relative;display:flex;align-items:center;gap:clamp(1rem,3vw,2rem);flex-wrap:wrap}
.playbtn{flex:none;width:clamp(60px,9vw,80px);aspect-ratio:1;border-radius:50%;border:1px solid var(--line);background:var(--ivory-lift);cursor:pointer;display:grid;place-items:center;color:var(--ink);transition:all var(--t-med) var(--ease-soft)}
.playbtn:hover{transform:scale(1.06);box-shadow:0 0 34px -4px rgba(var(--aura),.9);border-color:transparent}
.playbtn svg{width:24px;height:24px}
.player.playing .playbtn{border-color:transparent;box-shadow:0 0 0 1px rgba(var(--aura),.5),0 0 40px -6px rgba(var(--aura),.9)}
.player__meta{flex:1 1 14rem;min-width:0}
.player__meta h3{margin-bottom:.15rem}
.player__meta .whisper{margin:0}
.player__hz{flex:none;display:flex;align-items:baseline;gap:.35rem;color:var(--ink-faint);line-height:1}
.player__hz b{font-family:var(--display);font-size:clamp(2.2rem,4.5vw,3.4rem);font-weight:300;color:var(--ink);transition:color 1.6s ease}
.player__hz span{font-size:.8rem}
.player.playing .player__hz b{color:rgb(var(--aura))}
.wave{display:flex;align-items:center;gap:3px;height:56px;flex:1 1 100%;margin-top:var(--s5);position:relative}
.wave i{flex:1;background:linear-gradient(180deg,rgba(var(--aura),.9),rgba(var(--aura),.35));border-radius:2px;height:3px;transition:height .12s linear;min-width:2px}
.player__ctrls{display:flex;align-items:center;gap:var(--s4);margin-top:var(--s5);flex-wrap:wrap;position:relative}
.vol{display:flex;align-items:center;gap:.65rem;flex:1 1 12rem;max-width:18rem}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:1px;background:var(--line);border-radius:2px;outline-offset:8px}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--ivory-lift);border:1px solid var(--ink-faint);cursor:pointer;transition:box-shadow var(--t-quick)}
input[type=range]::-webkit-slider-thumb:hover{box-shadow:0 0 0 6px rgba(var(--aura),.28)}
input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--ivory-lift);border:1px solid var(--ink-faint);cursor:pointer}
.chips{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:var(--s5);position:relative}
.chip{font-family:var(--body);font-size:.82rem;padding:.5rem 1rem;border-radius:var(--r-pill);border:1px solid var(--line);background:rgba(251,248,244,.65);color:var(--ink-soft);cursor:pointer;display:inline-flex;align-items:center;gap:.5rem;transition:all var(--t-med) var(--ease-soft)}
.chip::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--d,var(--dot));opacity:.75;transition:box-shadow var(--t-med)}
.chip em{font-style:normal;color:var(--ink-faint);font-size:.76rem;margin-left:.15rem}
.chip:hover{color:var(--ink);border-color:var(--ink-faint);transform:translateY(-1px)}
.chip[aria-pressed="true"]{background:var(--ivory-lift);color:var(--ink);border-color:var(--d,var(--dot))}
.chip[aria-pressed="true"]::before{box-shadow:0 0 10px 2px var(--d,var(--dot));animation:seedBreath var(--breath) var(--ease-breath) infinite}

/* ---------- chakra nodes ---------- */
.node{position:relative;width:46px;height:46px;color:var(--dot);transition:transform 1s var(--ease-soft);flex:none}
.node svg{position:absolute;left:50%;top:50%;width:100%;height:100%;transform:translate(-50%,-50%);overflow:visible;opacity:.28;transition:opacity 1.4s var(--ease-soft)}
.node .petals{transform-box:view-box;transform-origin:50px 50px;animation:spin 90s linear infinite}
.node .petals--b{animation-direction:reverse;animation-duration:120s}
@keyframes spin{to{transform:rotate(360deg)}}
.node__core{position:absolute;left:50%;top:50%;margin:-4.5px 0 0 -4.5px;width:9px;height:9px;border-radius:50%;background:currentColor;opacity:.3;transition:all 1.4s var(--ease-soft)}
.node.lit{transform:scale(1.14)}
.node.lit svg{opacity:1}
.node.lit .node__core{opacity:1;box-shadow:0 0 22px 6px currentColor;animation:seedBreath var(--breath) var(--ease-breath) infinite}
.node.lit::after{content:"";position:absolute;inset:-55%;border-radius:50%;background:radial-gradient(circle,currentColor,transparent 65%);opacity:.18;filter:blur(10px);animation:expand var(--breath) var(--ease-breath) infinite}

/* ---------- spine rail ---------- */
.spine{position:fixed;left:calc(var(--gutter)*.42);top:50%;transform:translateY(-50%);z-index:90;display:flex;flex-direction:column-reverse;align-items:center;gap:.95rem;padding:1rem .5rem;opacity:0;transition:opacity 1.2s var(--ease-soft)}
.spine::before{content:"";position:absolute;top:0;bottom:0;width:1px;background:var(--line);opacity:.8}
.spine__fill{position:absolute;bottom:1rem;width:1px;background:linear-gradient(0deg,var(--c1),var(--c2),var(--c3),var(--c4),var(--c5),var(--c6),var(--c7));transition:height 1.2s var(--ease-soft);height:0}
.spine__dot{position:relative;width:9px;height:9px;border-radius:50%;border:1px solid var(--line);background:var(--ivory);cursor:pointer;padding:0;transition:all var(--t-med) var(--ease-soft)}
.spine__dot:hover{transform:scale(1.5)}
.spine__dot[aria-current="true"]{background:var(--d);border-color:transparent;box-shadow:0 0 0 4px rgba(255,255,255,.5),0 0 16px 2px var(--d);animation:seedBreath var(--breath) var(--ease-breath) infinite}
.spine__dot span{position:absolute;left:1.6rem;top:50%;transform:translate(-6px,-50%);white-space:nowrap;font-size:.72rem;letter-spacing:.06em;color:var(--ink-soft);opacity:0;pointer-events:none;background:rgba(251,248,244,.9);padding:.2rem .6rem;border-radius:var(--r-pill);transition:all var(--t-med) var(--ease-soft)}
.spine__dot:hover span,.spine__dot:focus-visible span{opacity:1;transform:translate(0,-50%)}

/* ---------- ascent ---------- */
.ascent{display:grid;grid-template-columns:minmax(84px,120px) minmax(0,1fr);gap:clamp(2rem,7vw,5.5rem);align-items:start}
.ascent__stage{position:sticky;top:22vh;height:58vh;display:flex;flex-direction:column-reverse;align-items:center;justify-content:space-between;padding-block:1rem}
.ascent__stage::before{content:"";position:absolute;top:0;bottom:0;width:1px;background:var(--line)}
.ascent__beam{position:absolute;bottom:1rem;width:2px;border-radius:2px;background:linear-gradient(0deg,var(--c1),var(--c2),var(--c3),var(--c4),var(--c5),var(--c6),var(--c7));height:0;transition:height 1.4s var(--ease-soft);box-shadow:0 0 12px rgba(var(--aura),.7)}
.centres{display:flex;flex-direction:column;gap:clamp(2rem,7vh,4.5rem)}
.centre{padding-block:clamp(1rem,4vh,2.5rem);border-left:1px solid transparent;transition:border-color 1.4s ease}
.centre__head{display:flex;align-items:baseline;gap:.9rem;flex-wrap:wrap;margin-bottom:var(--s3)}
.centre__tone{font-size:.78rem;color:var(--ink-faint);letter-spacing:.06em}
.centre__rule{height:1px;background:linear-gradient(90deg,var(--d),transparent);margin:var(--s4) 0;transform:scaleX(.12);transform-origin:left;transition:transform 1.8s var(--ease-soft)}
.centre.in .centre__rule{transform:scaleX(1)}
.centre__mini{display:none}
.centre__link{font-size:.9rem;color:var(--ink-soft);text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:2px;transition:all var(--t-quick)}
.centre__link:hover{color:var(--ink);border-color:var(--d)}

/* ---------- full chakra page ---------- */
.chak{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(2rem,6vw,5rem);align-items:center;padding-block:clamp(3rem,10vh,7rem);border-top:1px solid var(--line)}
.chak:first-of-type{border-top:0}
.chak__art{display:grid;place-items:center;aspect-ratio:1;max-width:22rem;width:100%;justify-self:center;position:relative}
.chak__art .node{width:100%;height:100%}
.chak__art .node svg{opacity:.9}
.chak h2{margin-bottom:var(--s3)}
.chak__meta{display:flex;gap:1.4rem;flex-wrap:wrap;margin-bottom:var(--s5);font-size:.85rem;color:var(--ink-faint)}
.chak__q{font-family:var(--display);font-style:italic;font-size:clamp(1.3rem,2.4vw,1.7rem);font-weight:300;color:var(--ink);margin-bottom:var(--s5);line-height:1.4}
.chak__prac{border-left:1px solid var(--d);padding-left:1.4rem;margin:var(--s6) 0}
.chak__prac h4{margin-bottom:.4rem}
.chak__prac p{margin:0;font-size:.95rem;color:var(--ink-soft)}
.chak__acts{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:var(--s6)}

/* ---------- category / path grid ---------- */
.paths{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1px;background:var(--line);border-block:1px solid var(--line)}
.path{background:var(--ivory);padding:clamp(1.6rem,3vw,2.4rem) clamp(1.4rem,2.5vw,2rem);text-decoration:none;display:flex;flex-direction:column;gap:.75rem;min-height:15rem;position:relative;overflow:hidden;transition:background var(--t-slow) var(--ease-soft)}
.path::before{content:"";position:absolute;inset:0;background:radial-gradient(90% 70% at 50% 118%,var(--d),transparent 70%);opacity:0;transition:opacity 1.4s var(--ease-soft)}
.path:hover,.path:focus-visible{background:var(--ivory-lift)}
.path:hover::before,.path:focus-visible::before{opacity:.22}
.path__dot{width:8px;height:8px;border-radius:50%;background:var(--d);position:relative;transition:box-shadow 1.2s}
.path:hover .path__dot{box-shadow:0 0 18px 4px var(--d)}
.path h4{position:relative;font-family:var(--display);font-size:1.4rem;font-weight:400}
.path p{position:relative;font-size:.9rem;color:var(--ink-soft);margin:0;line-height:1.7}
.path__count{position:relative;margin-top:auto;font-size:.78rem;color:var(--ink-faint)}

/* ---------- article cards ---------- */
.articles{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:clamp(1.5rem,3vw,2.5rem)}
.card{text-decoration:none;display:block;position:relative;padding-top:1.25rem;border-top:1px solid var(--line)}
.card::before{content:"";position:absolute;top:-1px;left:0;height:1px;width:100%;background:var(--d);transform:scaleX(0);transform-origin:left;transition:transform 1s var(--ease-soft)}
.card:hover::before,.card:focus-visible::before{transform:scaleX(1)}
.card__art{display:block;aspect-ratio:5/4;border-radius:var(--r-soft);margin-bottom:1.1rem;overflow:hidden;position:relative;background:linear-gradient(150deg,var(--ivory-deep),var(--sand));transition:transform 1.4s var(--ease-soft)}
.card__art::after{content:"";position:absolute;inset:0;background:radial-gradient(60% 55% at 35% 30%,var(--d),transparent 62%);opacity:.42;transition:opacity 1.4s ease}
.card:hover .card__art{transform:scale(1.015)}
.card:hover .card__art::after{opacity:.62}
.card h4{font-family:var(--display);font-size:1.28rem;font-weight:400;line-height:1.3;margin-bottom:.5rem}
.card .whisper{margin:0}
.card__read{display:block;font-size:.85rem;color:var(--ink-faint);margin-top:.6rem}
.card__cat{display:inline-flex;align-items:center;gap:.45rem;font-size:.78rem;color:var(--ink-faint);margin-bottom:.55rem}
.card__cat::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--d)}

/* ---------- filter bar ---------- */
.filters{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:clamp(2rem,5vh,3rem);padding-bottom:1.5rem;border-bottom:1px solid var(--line)}

/* ---------- track list ---------- */
.tracks{border-top:1px solid var(--line)}
.track{display:flex;align-items:center;gap:clamp(.9rem,2vw,1.5rem);padding:1.1rem .5rem;border-bottom:1px solid var(--line);position:relative;transition:background var(--t-med) var(--ease-soft)}
.track::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--d);transform:scaleY(0);transition:transform var(--t-med) var(--ease-soft)}
.track:hover{background:rgba(251,248,244,.7)}
.track.on::before{transform:scaleY(1)}
.track.on{background:rgba(251,248,244,.9)}
.track__btn{flex:none;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--ivory-lift);cursor:pointer;display:grid;place-items:center;color:var(--ink);transition:all var(--t-med) var(--ease-soft)}
.track__btn svg{width:16px;height:16px}
.track:hover .track__btn{border-color:var(--ink-faint)}
.track.on .track__btn{border-color:transparent;box-shadow:0 0 0 1px var(--d),0 0 26px -6px var(--d)}
.track__body{flex:1 1 auto;min-width:0}
.track__body h4{font-family:var(--display);font-size:1.2rem;font-weight:400;margin-bottom:.1rem}
.track__body p{margin:0;font-size:.88rem;color:var(--ink-soft);line-height:1.6;max-width:56ch}
.track__tag{flex:none;font-size:.78rem;color:var(--ink-faint);display:flex;align-items:center;gap:.45rem}
.track__tag::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--d)}
.track__len{flex:none;font-size:.82rem;color:var(--ink-faint);font-variant-numeric:tabular-nums}
.track__eq{flex:none;display:flex;align-items:flex-end;gap:2px;height:14px;width:16px;opacity:0;transition:opacity var(--t-quick)}
.track.on .track__eq{opacity:1}
.track__eq i{width:2px;background:var(--d);height:3px;border-radius:1px;animation:eq 1.6s ease-in-out infinite}
.track__eq i:nth-child(2){animation-delay:.3s}
.track__eq i:nth-child(3){animation-delay:.6s}

/* ---------- collection cards ---------- */
.colls{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:clamp(1.25rem,2.5vw,2rem)}
.coll{position:relative;overflow:hidden;text-decoration:none;display:flex;flex-direction:column;gap:.7rem;padding:clamp(1.6rem,3vw,2.2rem);border:1px solid var(--line);border-radius:var(--r-soft);background:rgba(251,248,244,.55);min-height:16rem;transition:all var(--t-slow) var(--ease-soft)}
.coll::after{content:"";position:absolute;right:-3rem;bottom:-3rem;width:12rem;height:12rem;border-radius:50%;background:radial-gradient(circle,var(--d),transparent 68%);opacity:.2;transition:opacity 1.4s ease,transform 1.4s var(--ease-soft)}
.coll:hover{background:var(--ivory-lift);border-color:transparent;box-shadow:0 30px 70px -50px rgba(51,43,58,.6)}
.coll:hover::after{opacity:.38;transform:scale(1.12)}
.coll h3{position:relative;font-size:1.55rem}
.coll p{position:relative;font-size:.92rem;color:var(--ink-soft);margin:0;line-height:1.7}
.coll__n{position:relative;margin-top:auto;font-size:.8rem;color:var(--ink-faint)}
.coll .node{position:relative;width:38px;height:38px}
.coll .node svg{opacity:.55}

/* ---------- purpose ---------- */
.purpose{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,5rem);align-items:center}
.purpose__fig{margin:0;max-width:26rem;justify-self:center}
.purpose__fig figcaption{margin-top:1.25rem;max-width:32ch}
.purpose__art{position:relative;aspect-ratio:4/5;border-radius:42% 58% 55% 45%/48% 42% 58% 52%;overflow:hidden;animation:morph 34s ease-in-out infinite;
  background:radial-gradient(70% 60% at 30% 25%,rgba(201,146,152,.55),transparent 60%),radial-gradient(60% 70% at 75% 70%,rgba(143,163,145,.5),transparent 62%),linear-gradient(160deg,var(--sand),var(--ivory-deep))}
@keyframes morph{0%,100%{border-radius:42% 58% 55% 45%/48% 42% 58% 52%}33%{border-radius:56% 44% 40% 60%/55% 58% 42% 45%}66%{border-radius:46% 54% 62% 38%/40% 52% 48% 60%}}
.purpose__art::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.55),transparent 55%);animation:expand calc(var(--breath)*1.6) var(--ease-breath) infinite}

/* ---------- long-form article body ---------- */
.prose{max-width:68ch}
.prose h2{font-size:clamp(1.7rem,3vw,2.4rem);margin:var(--s8) 0 var(--s4)}
.prose h3{margin:var(--s7) 0 var(--s3)}
.prose p{margin-bottom:var(--s5)}
.prose blockquote{margin:var(--s7) 0;padding-left:1.75rem;border-left:1px solid var(--dot);font-family:var(--display);font-style:italic;font-weight:300;font-size:clamp(1.3rem,2.4vw,1.7rem);line-height:1.5}
.prose blockquote p{margin:0;max-width:none}
.prose ul{padding-left:1.2rem;margin-bottom:var(--s5)}
.prose li{margin-bottom:.6rem;max-width:64ch}
.prose hr{border:0;border-top:1px solid var(--line);margin:var(--s8) 0}
.progress{position:fixed;top:0;left:0;height:2px;background:var(--dot);width:0;z-index:120;transition:width .1s linear;box-shadow:0 0 12px var(--dot)}
.artmeta{display:flex;gap:1.5rem;flex-wrap:wrap;font-size:.85rem;color:var(--ink-faint);padding-bottom:var(--s6);border-bottom:1px solid var(--line);margin-bottom:var(--s7)}
.aside{border:1px solid var(--line);border-radius:var(--r-soft);padding:1.5rem;background:rgba(251,248,244,.6);margin:var(--s7) 0}
.aside h4{margin-bottom:.5rem}
.aside p{margin:0;font-size:.92rem;color:var(--ink-soft)}

/* ---------- word gems ---------- */
.gems{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:clamp(1.25rem,2.5vw,1.75rem)}
.gem{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:var(--r-soft);padding:clamp(1.75rem,3vw,2.4rem);background:rgba(251,248,244,.5);display:flex;flex-direction:column;gap:1rem;min-height:12rem;transition:all var(--t-slow) var(--ease-soft)}
.gem::before{content:"";position:absolute;inset:0;background:radial-gradient(80% 70% at 20% 0%,var(--d),transparent 65%);opacity:.14;transition:opacity 1.4s ease}
.gem:hover{background:var(--ivory-lift);box-shadow:0 30px 70px -55px rgba(51,43,58,.6)}
.gem:hover::before{opacity:.28}
.gem blockquote{position:relative;margin:0;font-family:var(--display);font-weight:300;font-size:clamp(1.2rem,1.7vw,1.45rem);line-height:1.45}
.gem cite{position:relative;margin-top:auto;font-style:normal;font-size:.82rem;color:var(--ink-faint)}
.gem__copy{position:absolute;top:1rem;right:1rem;background:none;border:1px solid var(--line);border-radius:var(--r-pill);padding:.35rem .8rem;font-family:var(--body);font-size:.74rem;color:var(--ink-faint);cursor:pointer;opacity:0;transition:all var(--t-quick)}
.gem:hover .gem__copy,.gem__copy:focus-visible{opacity:1}
.gem__copy:hover{color:var(--ink);border-color:var(--ink-faint)}

/* ---------- voices ---------- */
.voices{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:clamp(2rem,4vw,3.5rem)}
.voice{position:relative;padding-left:1.5rem;margin:0}
.voice::before{content:"";position:absolute;left:0;top:.6rem;bottom:.6rem;width:1px;background:linear-gradient(180deg,var(--d),transparent)}
.voice blockquote{margin:0 0 var(--s4);font-family:var(--display);font-size:1.3rem;font-weight:300;font-style:italic;line-height:1.55;color:var(--ink)}
.voice cite{font-style:normal;font-size:.85rem;color:var(--ink-faint)}

/* ---------- forms ---------- */
.letter{background:linear-gradient(165deg,rgba(251,248,244,.9),rgba(235,227,218,.65));border:1px solid var(--line);border-radius:var(--r-soft);padding:clamp(2rem,5vw,4rem);text-align:center;position:relative;overflow:hidden}
.letter::before{content:"";position:absolute;inset:-30%;background:radial-gradient(circle at 50% 20%,rgba(var(--aura-2),.3),transparent 60%);animation:expand calc(var(--breath)*1.4) var(--ease-breath) infinite;pointer-events:none}
.letter__form{position:relative;display:flex;gap:.75rem;max-width:32rem;margin:var(--s6) auto 0;flex-wrap:wrap}
.field{flex:1 1 12rem;position:relative;text-align:left}
.field label{display:block;font-size:.82rem;color:var(--ink-soft);margin-bottom:.4rem}
.field input,.field textarea,.field select{width:100%;padding:.95rem 1.15rem;border:1px solid var(--line);border-radius:var(--r-pill);background:rgba(255,255,255,.7);font-family:var(--body);font-size:.95rem;color:var(--ink);transition:all var(--t-med)}
.field textarea{border-radius:var(--r-soft);min-height:9rem;resize:vertical;line-height:1.7}
.field input::placeholder,.field textarea::placeholder{color:var(--ink-faint)}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:rgb(var(--aura));box-shadow:0 0 0 4px rgba(var(--aura),.2);background:#fff}
.form{display:grid;gap:var(--s5);max-width:38rem}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4)}

/* ---------- footer ---------- */
.ftr{border-top:1px solid var(--line);padding-block:var(--s8) var(--s6);background:linear-gradient(180deg,transparent,rgba(235,227,218,.45))}
.ftr__grid{display:grid;grid-template-columns:1.6fr repeat(3,1fr);gap:clamp(2rem,4vw,3rem)}
.ftr h5{font-family:var(--body);font-size:.82rem;font-weight:600;letter-spacing:.04em;margin:0 0 1rem;color:var(--ink)}
.ftr ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}
.ftr a{font-size:.9rem;color:var(--ink-soft);text-decoration:none;transition:color var(--t-quick)}
.ftr a:hover{color:var(--ink)}
.ftr__blurb{font-size:.9rem;color:var(--ink-soft);max-width:30ch;margin:1rem 0 1.5rem}
.social{display:flex;gap:.6rem}
.social a{width:36px;height:36px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;transition:all var(--t-med) var(--ease-soft)}
.social a:hover{border-color:transparent;box-shadow:0 0 20px -3px rgba(var(--aura),.9);transform:translateY(-2px)}
.social svg{width:15px;height:15px}
.ftr__base{display:flex;justify-content:space-between;gap:var(--s4);flex-wrap:wrap;margin-top:var(--s8);padding-top:var(--s5);border-top:1px solid var(--line);font-size:.82rem;color:var(--ink-faint)}

/* ---------- notes for the client ---------- */
.note{border:1px dashed var(--line);border-radius:var(--r-soft);padding:1.1rem 1.4rem;font-size:.85rem;color:var(--ink-faint);background:rgba(251,248,244,.4);max-width:60ch;line-height:1.7}

/* ---------- responsive ---------- */
@media (max-width:1180px){.spine{display:none}}
@media (max-width:980px){
  .nav{
    position:fixed;inset:0;background:rgba(248,243,235,.97);backdrop-filter:blur(20px);
    flex-direction:column;justify-content:center;gap:var(--s5);padding:var(--s8);
    transform:translateY(-100%);opacity:0;visibility:hidden;overflow-y:auto;
    transition:transform 1s var(--ease-soft),opacity .6s ease,visibility .6s;
  }
  .nav.open{transform:none;opacity:1;visibility:visible}
  .nav>a,.navgroup>button{font-family:var(--display);font-size:1.75rem;color:var(--ink)}
  .navgroup{text-align:center}
  .submenu{position:static;transform:none;opacity:1;visibility:visible;pointer-events:auto;background:none;border:0;box-shadow:none;padding:.5rem 0 0;min-width:0;align-items:center}
  .submenu a{font-size:1rem;justify-content:center}
  .navtoggle{display:block}
  .ascent{grid-template-columns:1fr}
  .ascent__stage{display:none}
  .centre__mini{display:flex;align-items:center;gap:.9rem;margin-bottom:var(--s3)}
  .centre{border-left-width:1px;border-color:var(--line);padding-left:1.5rem}
  .centre.in{border-color:var(--d)}
  .purpose,.chak{grid-template-columns:1fr}
  .purpose__fig{max-width:22rem;order:-1}
  .chak__art{order:-1;max-width:15rem}
  .ftr__grid{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .ftr__grid{grid-template-columns:1fr}
  .letter__form,.form__row{grid-template-columns:1fr;flex-direction:column}
  .letter .btn--primary{justify-content:center}
  .breathcue b:last-child{margin-left:-3.2rem}
  .track{flex-wrap:wrap}
  .track__body{flex:1 1 60%}
  .player__hz{display:none}
}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important}
  .reveal{opacity:1;transform:none}
  .hero h1 .line i{transform:none}
  .hero__sub,.hero__acts{opacity:1;transform:none}
  .motes,.breathcue{display:none}
  .node svg{opacity:.7}
  .curtain{display:none}
}

/* Large mandalas on the chakra page need their glow reined in —
   the -55% inset that reads as a halo at 46px becomes a cloud at 350px. */
.chak__art .node.lit::after{inset:-10%;opacity:.16;filter:blur(34px)}
.chak__art .node__core{width:16px;height:16px;margin:-8px 0 0 -8px;box-shadow:0 0 40px 12px currentColor}
.chak__art .node.lit{transform:none}
.chak__art .node svg{opacity:.85}

/* Mobile menu: keep the wordmark above the overlay, and align the
   submenu dots into a single column instead of centring each row. */
@media (max-width:980px){
  .hdr .mark{position:relative;z-index:110}
  .nav{z-index:105}
  .submenu{align-items:stretch}
  .submenu a{justify-content:flex-start;min-width:13rem;margin-inline:auto}
}

/* ============================================================
   UPGRADE LAYER — colour rhythm, depth, botanical language
   Layered on top of the base so the original structure is intact.
   ============================================================ */

/* ---- section colour rhythm -------------------------------- */
.sec{position:relative}
.sec-sand{background:var(--wash-sand);--fill:var(--wash-sand)}
.sec-sage{background:var(--wash-sage);--fill:var(--wash-sage)}
.sec-peach{background:var(--wash-peach);--fill:var(--wash-peach)}
.sec-lav{background:var(--wash-lav);--fill:var(--wash-lav)}
.sec-forest{background:var(--forest);--fill:var(--forest);color:#EFE7D8}
.sec-forest h1,.sec-forest h2,.sec-forest h3,.sec-forest h4{color:#F6F0E4}
.sec-forest .lede,.sec-forest p{color:#CFD9CD}
.sec-forest .whisper{color:#9DAC9E}

/* organic curved transition: the section's own fill, masked into a wave,
   sitting over the section above. Works with any two colours. */
.curve::before{
  content:"";position:absolute;left:0;right:0;top:-58px;height:60px;
  background:var(--fill);pointer-events:none;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'%3E%3Cpath d='M0 60 C 260 4, 520 4, 760 26 C 1000 48, 1230 50, 1440 14 L1440 60 Z' fill='%23000'/%3E%3C/svg%3E") bottom/100% 100% no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'%3E%3Cpath d='M0 60 C 260 4, 520 4, 760 26 C 1000 48, 1230 50, 1440 14 L1440 60 Z' fill='%23000'/%3E%3C/svg%3E") bottom/100% 100% no-repeat;
}
.curve-b::after{
  content:"";position:absolute;left:0;right:0;bottom:-58px;height:60px;z-index:1;
  background:var(--fill);pointer-events:none;transform:scaleY(-1);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'%3E%3Cpath d='M0 60 C 260 4, 520 4, 760 26 C 1000 48, 1230 50, 1440 14 L1440 60 Z' fill='%23000'/%3E%3C/svg%3E") bottom/100% 100% no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'%3E%3Cpath d='M0 60 C 260 4, 520 4, 760 26 C 1000 48, 1230 50, 1440 14 L1440 60 Z' fill='%23000'/%3E%3C/svg%3E") bottom/100% 100% no-repeat;
}
.band{background:var(--wash-sage)}

/* ---- botanical accent (single sprig, very low contrast) ---- */
.sprig{position:absolute;pointer-events:none;opacity:.16;color:var(--sage);width:clamp(120px,16vw,230px)}
.sprig--tr{top:6%;right:2%;transform:rotate(12deg)}
.sprig--bl{bottom:5%;left:1%;transform:rotate(-165deg)}
.sec-forest .sprig{color:#7C9A78;opacity:.22}

/* ---- kickers ---------------------------------------------- */
.kicker{display:inline-flex;align-items:center;gap:.6rem;font-size:.82rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--terra);margin-bottom:var(--s5);font-weight:500}
.kicker::before{content:"";width:1.75rem;height:1px;background:currentColor;opacity:.55}
.sec-forest .kicker{color:var(--rose)}
.shead--center .kicker{justify-content:center}

/* ---- buttons: warm terracotta CTA -------------------------- */
.btn--primary{background:var(--terra);color:#FFF9F3;box-shadow:var(--shadow-soft)}
.btn--primary:hover{background:var(--terra-deep);transform:translateY(-2px) scale(1.02);
  box-shadow:0 0 0 6px rgba(192,112,90,.14),0 20px 40px -18px rgba(168,91,71,.7)}
.btn--quiet{background:rgba(253,250,245,.8);border-color:var(--line-warm);color:var(--ink)}
.btn--quiet:hover{transform:translateY(-2px) scale(1.02);border-color:var(--sage);
  box-shadow:0 16px 34px -22px rgba(36,56,44,.6)}
.btn--ghost{color:var(--terra);border-color:rgba(192,112,90,.4)}
.btn--ghost:hover{color:var(--terra-deep);border-color:var(--terra)}
.sec-forest .btn--primary{background:var(--rose);color:#2A2018}
.sec-forest .btn--primary:hover{background:#F0C4AB}
.sec-forest .btn--quiet{background:transparent;border-color:rgba(239,231,216,.35);color:#EFE7D8}
.sec-forest .btn--quiet:hover{border-color:#EFE7D8;box-shadow:none}

/* ---- benefits grid (new) ---------------------------------- */
.bens{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:clamp(1rem,2.2vw,1.75rem)}
.ben{background:rgba(253,250,245,.72);border:1px solid rgba(224,213,196,.8);border-radius:var(--r-card);
  padding:clamp(1.5rem,2.6vw,2rem);display:flex;flex-direction:column;gap:.85rem;
  box-shadow:var(--shadow-soft);transition:transform var(--t-med) var(--ease-soft),box-shadow var(--t-med),background var(--t-med)}
.ben:hover{transform:translateY(-4px);box-shadow:var(--shadow-lift);background:var(--ivory-lift)}
.ben__ico{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;flex:none;
  background:var(--tint,rgba(124,154,120,.16));color:var(--d,var(--sage))}
.ben__ico svg{width:22px;height:22px}
.ben h4{font-family:var(--display);font-size:1.3rem;font-weight:400}
.ben p{margin:0;font-size:.92rem;color:var(--ink-soft);line-height:1.7}

/* ---- cards: depth and warmth ------------------------------- */
.card{padding:1.1rem 1.1rem 1.4rem;border-top:0;border:1px solid rgba(224,213,196,.7);
  border-radius:var(--r-card);background:rgba(253,250,245,.6);box-shadow:var(--shadow-soft);
  transition:transform var(--t-med) var(--ease-soft),box-shadow var(--t-med),background var(--t-med)}
.card::before{top:0;left:1.1rem;right:1.1rem;width:auto;border-radius:2px}
.card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lift);background:var(--ivory-lift)}
.card__art{border-radius:1.1rem;background:linear-gradient(150deg,var(--sand),var(--wash-peach))}
.card__art::after{opacity:.5}

.path{background:transparent}
.paths{background:var(--line-warm)}
.path:hover,.path:focus-visible{background:rgba(253,250,245,.85)}

.coll{background:rgba(253,250,245,.62);box-shadow:var(--shadow-soft);border-radius:var(--r-card)}
.coll:hover{box-shadow:var(--shadow-lift)}
.gem{background:rgba(253,250,245,.6);border-radius:var(--r-card);box-shadow:var(--shadow-soft)}
.gem:hover{box-shadow:var(--shadow-lift)}
.player{background:linear-gradient(155deg,rgba(253,250,245,.96),rgba(240,230,214,.8));
  border-color:rgba(216,199,176,.9);box-shadow:var(--shadow-lift),inset 0 1px 0 rgba(255,255,255,.8)}
.letter{background:linear-gradient(165deg,rgba(253,250,245,.94),rgba(249,234,224,.8));
  border-color:var(--line-warm);box-shadow:var(--shadow-soft)}

/* ---- image slots: warm duotone with a horizon ------------- */
.imgslot{position:relative;overflow:hidden;border-radius:var(--r-card);box-shadow:var(--shadow-lift);
  background:linear-gradient(165deg,var(--wash-peach),var(--sand) 55%,var(--wash-sage));
  aspect-ratio:4/5}
.imgslot::after{content:"";position:absolute;inset:0;
  background:radial-gradient(70% 55% at 50% 30%,rgba(255,255,255,.6),transparent 62%),
             radial-gradient(50% 40% at 78% 78%,rgba(124,154,120,.35),transparent 65%)}
.imgslot figcaption,.imgslot .cap{position:absolute;inset:auto 0 0 0;z-index:2;padding:1.1rem 1.3rem;
  font-size:.78rem;color:var(--ink-soft);background:linear-gradient(0deg,rgba(253,250,245,.92),transparent)}
.imgslot__art{position:absolute;inset:0;z-index:1;display:grid;place-items:center;color:var(--forest);opacity:.28}
.imgslot__art svg{width:52%;max-width:230px}

/* ---- typography hierarchy --------------------------------- */
h2{letter-spacing:-.018em}
.shead h2{margin-bottom:var(--s4)}
.phero h1{max-width:18ch}
.lede{color:var(--ink-soft)}

/* ---- forest CTA band -------------------------------------- */
.cta-band{text-align:center;padding-block:clamp(4.5rem,11vh,7rem)}
.cta-band h2{margin-bottom:var(--s4)}
.cta-band .lede{margin:0 auto var(--s7);max-width:38rem}
.cta-band__acts{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}

/* ---- footer warmth ---------------------------------------- */
.ftr{background:linear-gradient(180deg,transparent,var(--wash-sand))}

@media (max-width:980px){
  .curve::before,.curve-b::after{height:36px;top:-34px}
  .curve-b::after{top:auto;bottom:-34px}
  .sprig{opacity:.1;width:110px}
}
@media (prefers-reduced-motion:reduce){
  .ben:hover,.card:hover{transform:none}
}

/* ---- hero: the longer, clearer headline needs a smaller scale ---- */
.hero h1{font-size:clamp(2.5rem,6.4vw,5rem);line-height:1.0}
.hero h1 .line{padding-bottom:.09em}
.hero__inner{width:min(1000px,100% - var(--gutter)*2)}
.orb__core{background:radial-gradient(circle at 50% 45%,rgba(255,255,255,.55),rgba(var(--aura),.22) 55%,transparent 74%)}
.hero .kicker{margin-bottom:var(--s6)}

/* ---- fixes from first-visitor review ---------------------- */
/* imgslot's children are all absolute, so it needs an explicit width
   or justify-self:center collapses it to zero. */
.imgslot{width:100%}

/* --ghost is an underline, not a box: only the bottom border is coloured */
.btn--ghost{border-color:transparent;border-bottom-color:rgba(192,112,90,.45)}
.btn--ghost:hover{border-color:transparent;border-bottom-color:var(--terra)}

/* six benefits read better as 3x2 than 4+2 */
@media (min-width:1000px){.bens{grid-template-columns:repeat(3,1fr)}}

/* keep the sprig on the canvas WITHOUT overflow:hidden, which would
   clip the curved dividers (they sit above the section box) */
.sprig--bl{bottom:8%;left:3%;transform:rotate(-172deg)}
.sprig--tr{top:8%;right:3%}

/* headings have room for a full clause before wrapping */
.shead{max-width:52rem}

/* ---- interior page kickers match the homepage treatment ---- */
.phero__kicker{font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--terra);font-weight:500}
.phero__kicker i{background:var(--dot);box-shadow:0 0 12px 2px var(--dot)}

/* the sound label wraps and crowds the header on small phones */
@media (max-width:700px){
  .sound-toggle span:last-child{display:none}
  .sound-toggle{padding:.55rem .7rem}
}

@media (max-width:640px){
  .sprig{width:88px;opacity:.12}
  .sprig--bl{bottom:2.5%;left:2%}
  .cta-band__acts{flex-direction:column;align-items:center}
  .cta-band__acts .btn{justify-content:center;min-width:15rem}
}

/* ============================================================
   ACCESSIBILITY PASS — measured, not eyeballed.
   Muted text and terracotta both failed 4.5:1 on the warm cream,
   so text-weight terracotta is a separate token from the fill.
   ============================================================ */
:root{
  --ink-faint:#667065;      /* was #8A9189 — 2.93:1, now 4.67:1 */
  --terra-text:#A35440;     /* terracotta for TEXT — 4.88:1 */
  --terra:#A85B47;          /* fill: white label now 4.73:1 */
  --terra-deep:#8F4634;
}
.kicker{color:var(--terra-text)}
.phero__kicker{color:var(--terra-text)}
.btn--ghost{color:var(--terra-text);border-bottom-color:rgba(163,84,64,.45)}
.btn--ghost:hover{color:var(--terra-deep);border-bottom-color:var(--terra-text)}
.sec-forest .kicker{color:#E9BCA5}   /* 7.4:1 on forest */
