/* ============================================================
   Zana Healing, therapeutic coaching
   Design tokens → base → components → sections → motion → responsive
   ============================================================ */

:root{
  /* palette */
  --ink:        #242A1A;
  --ink-soft:   #4A5040;
  --moss:       #3F4A33;
  --moss-deep:  #333D28;
  --moss-lift:  #4B573C;
  --sage:       #8CA076;
  --sage-soft:  #B7C5A4;
  --sage-pale:  #D3DCC5;
  --cream:      #F4F1E6;
  --cream-2:    #EFEBDC;
  --cream-3:    #E8E3D1;
  --sand:       #DED8C3;
  --gold:       #C6A15B;
  --gold-soft:  #DCC28E;

  /* type */
  --display: "Fraunces", "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --script:  "Cormorant Garamond", Georgia, serif;
  --sans:    "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;

  /* rhythm */
  --wrap: 1240px;
  --gutter: clamp(1.25rem, 5vw, 3rem);
  --section-y: clamp(5.5rem, 11vw, 10.5rem);
  --radius: 10px;
  --radius-lg: 14px;

  /* motion */
  --ease: cubic-bezier(.16,1,.3,1);
  --ease-soft: cubic-bezier(.32,.72,0,1);
  --dur: .9s;

  /* elevation */
  --shadow-sm: 0 2px 10px rgba(36,42,26,.05);
  --shadow:    0 18px 50px -24px rgba(36,42,26,.22), 0 2px 8px rgba(36,42,26,.04);
  --shadow-lg: 0 40px 90px -40px rgba(36,42,26,.34);
}

/* ---------- reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
body,h1,h2,h3,h4,p,figure,blockquote,dl,dd,ul,ol{ margin:0; padding:0; }
ul,ol{ list-style:none; }
img,svg{ display:block; max-width:100%; }
button,input,select,textarea{ font:inherit; color:inherit; }
button{ background:none; border:0; cursor:pointer; }
a{ color:inherit; text-decoration:none; }

html{ scroll-behavior:smooth; scroll-padding-top:100px; }

body{
  font-family:var(--sans);
  font-weight:300;
  font-size:clamp(1rem, .96rem + .2vw, 1.075rem);
  line-height:1.78;
  color:var(--ink-soft);
  background:var(--cream);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}

::selection{ background:var(--sage-soft); color:var(--moss-deep); }

/* ---------- layout ---------- */
.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:var(--gutter); }
.section{ position:relative; padding-block:var(--section-y); }

.skip{
  position:fixed; left:50%; top:-100px; transform:translateX(-50%);
  background:var(--moss); color:var(--cream); padding:.7rem 1.4rem;
  border-radius:2px; z-index:999; transition:top .3s var(--ease);
}
.skip:focus{ top:1rem; }

:where(a,button,input,select,textarea,summary,details):focus-visible{
  outline:2px solid var(--sage);
  outline-offset:3px;
  border-radius:6px;
}

/* ---------- typography ---------- */
.h2{
  font-family:var(--display);
  font-optical-sizing:auto;
  font-weight:300;
  font-size:clamp(2.2rem, 1.35rem + 3.4vw, 4.3rem);
  line-height:1.06;
  letter-spacing:-.022em;
  color:var(--moss-deep);
  text-wrap:balance;
}
.h2 em{
  font-family:var(--script);
  font-style:italic;
  font-weight:400;
  color:var(--sage);
  letter-spacing:-.01em;
}
.h2--light{ color:var(--cream); }
.h2--light em{ color:var(--sage-soft); }
.h2.center{ text-align:center; margin-inline:auto; }

.eyebrow{
  display:inline-flex; align-items:center; gap:.6rem;
  font-size:.7rem; font-weight:400;
  letter-spacing:.3em; text-transform:uppercase;
  color:var(--sage);
  margin-bottom:1.4rem;
}
.eyebrow--light{ color:var(--sage-soft); }
.lede{
  font-size:clamp(1.05rem, 1rem + .35vw, 1.3rem);
  line-height:1.66;
  color:var(--ink-soft);
}
.lede--light{ color:rgba(244,241,230,.78); }

.mark{
  font-style:normal;
  color:var(--moss-deep);
  background:linear-gradient(to top, rgba(183,197,164,.6) 44%, rgba(183,197,164,.16) 44%);
  padding-inline:.16em;
  border-radius:3px;
}

.sechead{ max-width:44rem; margin-inline:auto; text-align:center; margin-bottom:clamp(3rem,6vw,5rem); }
.sechead__lede{ margin-top:1.5rem; font-size:clamp(1rem,.97rem + .25vw,1.15rem); color:var(--ink-soft); }
.sechead .eyebrow{ justify-content:center; }

/* ---------- ambient texture ---------- */
.grain{
  position:fixed; inset:0; z-index:9998; pointer-events:none;
  opacity:.035; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)'/%3E%3C/svg%3E");
}

.scroll-line{
  position:fixed; top:0; left:0; right:0; height:2px; z-index:9997; pointer-events:none;
}
.scroll-line i{
  display:block; height:100%; width:0%;
  background:linear-gradient(90deg, var(--sage), var(--gold));
  opacity:.75;
}

/* opening veil */
.veil{
  position:fixed; inset:0; z-index:9999; background:var(--moss-deep);
  pointer-events:none;
  transition:opacity 1.1s var(--ease), visibility 1.1s;
}
.veil.is-gone{ opacity:0; visibility:hidden; }

/* ---------- ambient orbs ---------- */
.orbs{ position:absolute; inset:0; overflow:hidden; pointer-events:none; }
.orb{
  position:absolute; border-radius:50%;
  filter:blur(70px); opacity:.5;
  will-change:transform;
}
.orb--1{
  width:44vw; height:44vw; min-width:320px; min-height:320px;
  top:-12%; left:-10%;
  background:radial-gradient(circle at 35% 35%, rgba(183,197,164,.55), transparent 68%);
  animation:drift1 34s ease-in-out infinite;
}
.orb--2{
  width:38vw; height:38vw; min-width:280px; min-height:280px;
  bottom:-16%; right:-6%;
  background:radial-gradient(circle at 50% 50%, rgba(198,161,91,.3), transparent 66%);
  animation:drift2 44s ease-in-out infinite;
}
.orb--3{
  width:30vw; height:30vw; min-width:240px; min-height:240px;
  top:34%; right:18%;
  background:radial-gradient(circle at 50% 50%, rgba(140,160,118,.4), transparent 68%);
  animation:drift3 38s ease-in-out infinite;
}
@keyframes drift1{
  0%,100%{ transform:translate3d(0,0,0) scale(1); }
  50%    { transform:translate3d(6vw,4vh,0) scale(1.12); }
}
@keyframes drift2{
  0%,100%{ transform:translate3d(0,0,0) scale(1.05); }
  50%    { transform:translate3d(-5vw,-5vh,0) scale(.92); }
}
@keyframes drift3{
  0%,100%{ transform:translate3d(0,0,0) scale(.95); }
  50%    { transform:translate3d(-4vw,6vh,0) scale(1.1); }
}

/* ---------- buttons ---------- */
.btn{
  position:relative; display:inline-flex; align-items:center; justify-content:center;
  gap:.7rem; padding:1.1rem 2.1rem;
  border-radius:2px;
  font-size:.92rem; font-weight:400; letter-spacing:.02em;
  transition:background-color .5s var(--ease), color .5s var(--ease),
             border-color .5s var(--ease);
}

.btn--solid{ background:var(--moss); color:var(--cream); }
.btn--solid:hover{ background:var(--moss-deep); }

.btn--line{ border:1px solid rgba(244,241,230,.35); color:var(--cream); }
.btn--line:hover{ border-color:var(--cream); }

.btn--ghost{
  border:1px solid rgba(244,241,230,.3); color:var(--cream);
  padding:.7rem 1.3rem; font-size:.85rem;
}
.btn--ghost:hover{ border-color:rgba(244,241,230,.75); }

.btn--full{ width:100%; }

/* understated secondary action: a rule that fills on hover */
.quiet{
  font-size:.92rem; letter-spacing:.02em;
  color:rgba(244,241,230,.82);
  padding-bottom:3px;
  background-image:linear-gradient(currentColor,currentColor);
  background-size:100% 1px; background-position:0 100%; background-repeat:no-repeat;
  transition:color .45s var(--ease);
}
.quiet:hover{ color:var(--cream); }

.link{
  display:inline-flex; align-items:center; gap:.55rem;
  color:var(--moss); font-size:.95rem;
  padding-bottom:2px;
  background-image:linear-gradient(var(--sage),var(--sage));
  background-size:0% 1px; background-position:0 100%; background-repeat:no-repeat;
  transition:background-size .55s var(--ease), color .35s var(--ease);
}
.link svg{ width:17px; height:17px; transition:transform .5s var(--ease); }
.link:hover{ background-size:100% 1px; }
.link:hover svg{ transform:translateX(4px); }

/* ============================================================
   NAV
   ============================================================ */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:900;
  padding-block:clamp(.9rem,2vw,1.4rem);
  transition:background-color .6s var(--ease), box-shadow .6s var(--ease),
             padding .6s var(--ease), backdrop-filter .6s var(--ease);
}
.nav__in{
  width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:var(--gutter);
  display:flex; align-items:center; justify-content:space-between; gap:2rem;
}
.nav.is-stuck{
  background:rgba(244,241,230,.82);
  backdrop-filter:blur(16px) saturate(1.3);
  -webkit-backdrop-filter:blur(16px) saturate(1.3);
  box-shadow:0 1px 0 rgba(36,42,26,.07), 0 12px 34px -28px rgba(36,42,26,.5);
  padding-block:.7rem;
}

/* logo lockup */
.logo{
  display:grid;
  grid-template-columns:auto auto auto;
  grid-template-rows:auto auto;
  align-items:center;
  column-gap:.4rem;
  color:var(--cream);
  transition:color .6s var(--ease), opacity .4s var(--ease);
  flex:none;
}
.logo:hover{ opacity:.82; }
.logo__word{
  grid-row:1; grid-column:1;
  font-family:var(--script); font-style:italic; font-weight:400;
  font-size:1.9rem; line-height:1; letter-spacing:.01em;
}
.logo__swoosh{ grid-row:1; grid-column:2; width:54px; height:14px; opacity:.85; align-self:end; margin-bottom:.15rem; }
.logo__frond{ grid-row:1; grid-column:3; width:30px; color:var(--gold); align-self:center; margin-bottom:.45rem; }
.logo__frond svg{ width:100%; height:auto; }
.logo__sub{
  grid-row:2; grid-column:2 / span 2;
  font-family:var(--sans); font-size:.56rem; font-weight:400;
  letter-spacing:.42em; text-transform:uppercase; opacity:.78;
  margin-top:-.1rem;
}
.nav.is-stuck .logo{ color:var(--moss-deep); }
/* the drawer paints cream behind the nav, so the lockup must darken with it */
body.is-menu-open .nav .logo{ color:var(--moss-deep); }

/* nav links */
.nav__links{ position:relative; display:flex; align-items:center; gap:clamp(1rem,2.4vw,2.1rem); }
.nav__links a{
  position:relative; font-size:.9rem; color:rgba(244,241,230,.82);
  padding-block:.4rem;
  transition:color .4s var(--ease);
}
.nav__links a:hover,
.nav__links a.is-active{ color:var(--cream); }
.nav.is-stuck .nav__links a{ color:var(--ink-soft); }
.nav.is-stuck .nav__links a:hover,
.nav.is-stuck .nav__links a.is-active{ color:var(--moss-deep); }

.nav__ink{
  position:absolute; bottom:0; left:0; height:1px; width:0;
  background:currentColor; opacity:.55;
  color:var(--cream);
  transition:transform .6s var(--ease), width .6s var(--ease), opacity .4s var(--ease);
  pointer-events:none;
}
.nav.is-stuck .nav__ink{ color:var(--moss); }

.nav.is-stuck .btn--ghost{ border-color:rgba(36,42,26,.22); color:var(--moss-deep); }
.nav.is-stuck .btn--ghost:hover{ background:rgba(63,74,51,.08); border-color:rgba(36,42,26,.4); }

/* burger */
.burger{
  display:none; width:44px; height:44px;
  align-items:center; justify-content:center; flex-direction:column; gap:6px;
}
.burger i{
  display:block; width:22px; height:1.5px; background:var(--cream); border-radius:2px;
  transition:transform .5s var(--ease), opacity .3s var(--ease), background-color .5s var(--ease);
}
.nav.is-stuck .burger i{ background:var(--moss-deep); }
.burger[aria-expanded="true"] i{ background:var(--moss-deep); }
.burger[aria-expanded="true"] i:first-child{ transform:translateY(3.75px) rotate(45deg); }
.burger[aria-expanded="true"] i:last-child{ transform:translateY(-3.75px) rotate(-45deg); }

/* drawer */
.drawer{
  position:fixed; inset:0; z-index:850;
  background:var(--cream);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:2.4rem; padding:6rem var(--gutter) 3rem;
  opacity:0; visibility:hidden;
  transition:opacity .6s var(--ease), visibility .6s;
}
.drawer.is-open{ opacity:1; visibility:visible; }
.drawer__links{ display:flex; flex-direction:column; align-items:center; gap:.4rem; width:100%; }
.drawer__links a{
  display:block; overflow:hidden; padding:.35rem 0;
  font-family:var(--display); font-weight:300;
  font-size:clamp(2rem,9vw,2.9rem); line-height:1.25;
  color:var(--moss-deep); letter-spacing:-.02em;
}
.drawer__links a span{
  display:block; transform:translateY(105%);
  transition:transform .8s var(--ease);
}
.drawer.is-open .drawer__links a span{ transform:translateY(0); }
.drawer.is-open .drawer__links a:nth-child(1) span{ transition-delay:.10s; }
.drawer.is-open .drawer__links a:nth-child(2) span{ transition-delay:.16s; }
.drawer.is-open .drawer__links a:nth-child(3) span{ transition-delay:.22s; }
.drawer.is-open .drawer__links a:nth-child(4) span{ transition-delay:.28s; }
.drawer.is-open .drawer__links a:nth-child(5) span{ transition-delay:.34s; }
.drawer.is-open .drawer__links a:nth-child(6) span{ transition-delay:.40s; }
.drawer__cta{ opacity:0; transform:translateY(14px); transition:opacity .6s var(--ease) .5s, transform .6s var(--ease) .5s; }
.drawer.is-open .drawer__cta{ opacity:1; transform:none; }
.drawer__note{ font-size:.82rem; color:var(--sage); letter-spacing:.04em; text-align:center; }

/* ============================================================
   HERO
   ============================================================ */
.hero{
  position:relative;
  min-height:100svh;
  display:flex; flex-direction:column; justify-content:flex-end;
  padding-block:clamp(7rem,13vh,9.5rem) clamp(2rem,4vh,3rem);
  background:var(--moss-deep);
  color:var(--cream);
  overflow:hidden;
  isolation:isolate;
}
/* One even scrim across the whole frame. No split, no vignette tricks:
   the garden stays legible everywhere and the type sits calmly on top. */
.hero__bg{ position:absolute; inset:0; z-index:0; }
.hero__bg img{ width:100%; height:100%; object-fit:cover; object-position:50% 58%; }
.hero__bg::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(to right, rgba(24,30,17,.46), rgba(24,30,17,0) 64%),
    linear-gradient(to bottom, rgba(28,35,20,.64), rgba(28,35,20,.56) 45%, rgba(22,28,15,.8));
}
.hero__in{
  position:relative; z-index:3;
  flex:1; display:flex; flex-direction:column; justify-content:center;
  max-width:var(--wrap);
}
.hero__eyebrow{
  font-size:.7rem; font-weight:400;
  letter-spacing:.34em; text-transform:uppercase;
  color:rgba(244,241,230,.62);
  margin-bottom:clamp(1.4rem,3vw,2rem);
}

.hero__title{
  font-family:var(--display);
  font-optical-sizing:auto;
  font-weight:300;
  font-size:clamp(3.6rem, 1.6rem + 8.2vw, 8.4rem);
  line-height:.94;
  letter-spacing:-.035em;
  margin-bottom:clamp(1.6rem,3vw,2.4rem);
}
.hero__title .line{ display:block; overflow:hidden; padding-bottom:.06em; }
.hero__title em{
  font-family:var(--script); font-style:italic; font-weight:300;
  color:var(--sage-soft);
  letter-spacing:-.02em;
}
.hero__title [data-word]{
  display:inline-block;
  transform:translateY(105%);
  opacity:0;
  transition:transform 1.25s var(--ease), opacity 1.1s var(--ease);
}
.is-ready .hero__title [data-word]{ transform:translateY(0); opacity:1; }
.is-ready .hero__title .line:nth-child(1) [data-word]{ transition-delay:.35s; }
.is-ready .hero__title .line:nth-child(2) [data-word]:nth-child(1){ transition-delay:.50s; }
.is-ready .hero__title .line:nth-child(2) [data-word]:nth-child(2){ transition-delay:.60s; }

.hero__lede{
  font-size:clamp(1.05rem,1rem + .4vw,1.28rem);
  line-height:1.62;
  color:rgba(244,241,230,.76);
  max-width:34rem;
  margin-bottom:clamp(2rem,4vw,2.8rem);
}
.hero__cta{ display:flex; flex-wrap:wrap; align-items:center; gap:1.6rem; }
.hero__cta .btn--solid{ background:var(--cream); color:var(--moss-deep); }
.hero__cta .btn--solid:hover{ background:#fff; }

/* Meta row pinned to the foot of the frame, above a hairline. */
.hero__meta{
  position:relative; z-index:3;
  display:flex; flex-wrap:wrap; gap:.55rem clamp(1.5rem,4vw,3.5rem);
  padding-top:1.4rem;
  font-size:.74rem; letter-spacing:.11em;
  color:rgba(244,241,230,.58);
  opacity:0; transition:opacity 1.2s var(--ease) 1.35s;
}
.is-ready .hero__meta{ opacity:1; }
.hero__meta::before{
  content:""; position:absolute; top:0; left:var(--gutter); right:var(--gutter);
  height:1px; background:rgba(244,241,230,.18);
}

/* ============================================================
   STRIP
   ============================================================ */
.strip{
  background:var(--cream);
  border-bottom:1px solid rgba(36,42,26,.07);
  padding-block:clamp(1.6rem,3vw,2.2rem);
}
.strip__in{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center;
  gap:clamp(.8rem,2.4vw,2rem);
  font-size:.74rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--sage); text-align:center;
}
.strip__in span{ opacity:.45; }

/* ============================================================
   ABOUT
   ============================================================ */
.about{ background:var(--cream); }
.about__grid{
  display:grid; grid-template-columns:.95fr 1.05fr;
  gap:clamp(2.5rem,6vw,6rem); align-items:center;
}
.about__media{ position:relative; }
.portrait{
  position:relative; border-radius:var(--radius-lg); overflow:hidden;
  box-shadow:var(--shadow-lg);
  will-change:transform;
}
.portrait::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(to top, rgba(51,61,40,.28), transparent 45%);
}
.portrait img{ width:100%; height:auto; object-fit:cover; }

.quotecard{
  position:absolute; right:clamp(-1rem,-2vw,-2.2rem); bottom:clamp(1.5rem,4vw,3rem);
  max-width:19rem;
  background:rgba(244,241,230,.9);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  border:1px solid rgba(244,241,230,.7);
  border-radius:20px; padding:1.5rem 1.7rem;
  box-shadow:var(--shadow);
}
.quotecard blockquote{
  font-family:var(--script); font-style:italic; font-size:1.2rem;
  line-height:1.45; color:var(--moss-deep);
}
.quotecard figcaption{
  margin-top:.7rem; font-size:.68rem; letter-spacing:.24em;
  text-transform:uppercase; color:var(--sage);
}

.about__copy .h2{ margin-bottom:1.8rem; }
.about__copy p + p{ margin-top:1.2rem; }
.about__copy .lede{ margin-bottom:1.4rem; }
.about__copy .link{ margin-top:2rem; }

/* ============================================================
   JOURNEY
   ============================================================ */
.journey{ background:var(--cream-2); }
.journey__list{
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:clamp(1.5rem,3.5vw,3rem);
}
.jcard{
  position:relative; text-align:center;
  padding:clamp(2rem,3vw,2.6rem) clamp(1.2rem,2vw,1.8rem);
  border-radius:var(--radius-lg);
  background:linear-gradient(180deg, rgba(244,241,230,.75), rgba(244,241,230,.3));
  border:1px solid rgba(36,42,26,.06);
  transition:transform .7s var(--ease), box-shadow .7s var(--ease), border-color .7s var(--ease);
}
.jcard:hover{
  transform:translateY(-6px);
  box-shadow:var(--shadow);
  border-color:rgba(140,160,118,.35);
}
.jcard__num{
  display:block;
  font-family:var(--display); font-weight:300; font-size:.85rem;
  letter-spacing:.3em; color:var(--sage); margin-bottom:1.6rem;
}
.jcard__orb{
  position:relative; overflow:hidden;
  width:clamp(9rem,15vw,12rem); aspect-ratio:1/.86;
  margin:0 auto 2rem;
  border-radius:50%;
  box-shadow:0 20px 44px -26px rgba(36,42,26,.5);
  background:var(--sand);
}
.jcard__orb img{
  width:100%; height:100%; object-fit:cover;
  transition:transform 1.1s var(--ease);
  will-change:transform;
}
.jcard:hover .jcard__orb img{ transform:scale(1.07); }
/* a warm veil ties the three photographs into one palette */
.jcard__orb::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(120% 100% at 30% 6%, rgba(244,241,230,.2), transparent 60%),
    linear-gradient(170deg, rgba(63,74,51,.1), rgba(63,74,51,.22));
}
.jcard h3{
  font-family:var(--display); font-weight:400;
  font-size:.85rem; letter-spacing:.24em; text-transform:uppercase;
  color:var(--moss-deep); margin-bottom:1rem;
}
.jcard p{ font-size:.98rem; color:var(--ink-soft); max-width:22rem; margin-inline:auto; }

/* ============================================================
   BREATHE
   ============================================================ */
.breathe{
  position:relative;
  background:linear-gradient(170deg, var(--moss-deep), var(--moss));
  color:var(--cream);
  padding-block:clamp(5rem,10vw,8rem);
  overflow:hidden;
}
.breathe__in{ display:flex; flex-direction:column; align-items:center; text-align:center; }
.breather{
  position:relative;
  width:clamp(13rem,30vw,17rem); aspect-ratio:1;
  display:grid; place-items:center;
  margin-block:clamp(1.5rem,4vw,2.5rem);
}
.breather__ring,
.breather__core{
  position:absolute; inset:0; margin:auto; border-radius:50%;
}
.breather__core{
  width:44%; height:44%;
  background:radial-gradient(circle at 42% 38%, rgba(244,241,230,.95), rgba(183,197,164,.5));
  box-shadow:0 0 60px rgba(211,220,197,.45);
  animation:breathe 16s var(--ease-soft) infinite;
}
.breather__ring{
  border:1px solid rgba(211,220,197,.28);
  animation:breathe 16s var(--ease-soft) infinite;
}
.breather__ring--a{ width:72%; height:72%; animation-delay:.25s; opacity:.7; }
.breather__ring--b{ width:100%; height:100%; animation-delay:.5s;  opacity:.4; }
@keyframes breathe{
  0%    { transform:scale(.72); }   /* rest */
  25%   { transform:scale(1.12); }  /* in, 4s */
  37.5% { transform:scale(1.12); }  /* hold, 2s */
  75%   { transform:scale(.72); }   /* out, 6s */
  100%  { transform:scale(.72); }   /* rest, 4s */
}
.breather__label{
  position:relative; z-index:2;
  font-family:var(--script); font-style:italic;
  font-size:clamp(1.05rem,2.2vw,1.35rem);
  color:var(--moss-deep);
  transition:opacity .8s var(--ease);
}
.breathe__note{
  max-width:32rem; color:rgba(244,241,230,.72);
  font-size:clamp(.98rem,.95rem + .2vw,1.1rem);
}

/* ============================================================
   HELP CARDS
   ============================================================ */
.help{ background:var(--cream); }
.cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1rem,2vw,1.6rem); }
.card{
  position:relative; overflow:hidden;
  padding:clamp(1.9rem,3vw,2.5rem);
  border-radius:var(--radius);
  background:linear-gradient(170deg, rgba(252,251,245,.9), rgba(240,236,223,.7));
  border:1px solid rgba(36,42,26,.07);
  transition:transform .7s var(--ease), box-shadow .7s var(--ease), border-color .7s var(--ease);
}
.card::before{
  content:""; position:absolute; inset:0;
  background:radial-gradient(70% 60% at 20% 0%, rgba(183,197,164,.35), transparent 70%);
  opacity:0; transition:opacity .7s var(--ease); pointer-events:none;
}
.card:hover{
  transform:translateY(-5px);
  box-shadow:var(--shadow);
  border-color:rgba(140,160,118,.38);
}
.card:hover::before{ opacity:1; }
.card__ico{
  position:relative; z-index:1;
  display:grid; place-items:center;
  width:50px; height:50px; margin-bottom:1.6rem;
  border-radius:6px;
  background:linear-gradient(150deg, var(--sage-soft), var(--sage));
  color:#FBFAF4;
  box-shadow:0 10px 24px -12px rgba(63,74,51,.65);
  transition:transform .7s var(--ease);
}
.card:hover .card__ico{ transform:scale(1.06) rotate(-3deg); }
.card__ico svg{ width:23px; height:23px; }
.card h3{
  position:relative; z-index:1;
  font-family:var(--display); font-weight:300;
  font-size:clamp(1.35rem,1.2rem + .5vw,1.7rem);
  line-height:1.2; letter-spacing:-.015em;
  color:var(--moss-deep); margin-bottom:.8rem;
}
.card p{ position:relative; z-index:1; font-size:.98rem; }

/* ============================================================
   MODALITIES
   ============================================================ */
.modal{ background:var(--cream-2); }
.modal__grid{
  display:grid; grid-template-columns:.9fr 1.1fr;
  gap:clamp(2.5rem,6vw,5.5rem); align-items:start;
}
.modal__intro{ position:sticky; top:130px; }
.modal__intro .h2{ margin-bottom:1.6rem; }
.modal__leaf{ margin-top:3rem; width:clamp(6rem,10vw,8.5rem); color:var(--gold); opacity:.65; }
.modal__leaf span{ display:block; }
.modal__leaf svg{ width:100%; height:auto; overflow:visible; }

.accordion{ display:flex; flex-direction:column; gap:.7rem; }
.acc{
  border:1px solid rgba(36,42,26,.09);
  border-radius:var(--radius);
  background:rgba(252,251,245,.7);
  overflow:hidden;
  transition:background-color .6s var(--ease), border-color .6s var(--ease), box-shadow .6s var(--ease);
}
.acc[open]{
  background:rgba(252,251,245,.95);
  border-color:rgba(140,160,118,.34);
  box-shadow:var(--shadow-sm);
}
.acc summary{
  display:flex; align-items:center; justify-content:space-between; gap:1.5rem;
  padding:clamp(1.15rem,2vw,1.5rem) clamp(1.3rem,2.4vw,1.9rem);
  cursor:pointer; list-style:none;
  font-family:var(--display); font-weight:300;
  font-size:clamp(1.15rem,1.05rem + .45vw,1.5rem);
  letter-spacing:-.012em; color:var(--moss-deep);
  transition:color .4s var(--ease);
}
.acc summary::-webkit-details-marker{ display:none; }
.acc summary:hover{ color:var(--moss); }
.acc__plus{
  position:relative; flex:none; width:20px; height:20px;
  transition:transform .55s var(--ease);
}
.acc__plus::before,
.acc__plus::after{
  content:""; position:absolute; inset:0; margin:auto;
  background:var(--sage); border-radius:2px;
}
.acc__plus::before{ width:100%; height:1.5px; }
.acc__plus::after{ width:1.5px; height:100%; transition:transform .55s var(--ease); }
.acc[open] .acc__plus{ transform:rotate(180deg); }
.acc[open] .acc__plus::after{ transform:scaleY(0); }

.acc__body{
  display:grid; grid-template-rows:0fr;
  transition:grid-template-rows .6s var(--ease);
}
.acc[open] .acc__body{ grid-template-rows:1fr; }
.acc__body > div{
  overflow:hidden;
  padding-inline:clamp(1.3rem,2.4vw,1.9rem);
}
.acc__body p{ font-size:.98rem; padding-bottom:1.1rem; }
.acc__body p:first-child{ padding-top:.2rem; }

.ticks{ display:flex; flex-direction:column; gap:.55rem; padding-bottom:1.5rem; }
.ticks li{
  position:relative; padding-left:1.8rem; font-size:.96rem;
}
.ticks li::before{
  content:""; position:absolute; left:0; top:.55em;
  width:11px; height:6px;
  border-left:1.5px solid var(--sage); border-bottom:1.5px solid var(--sage);
  transform:rotate(-45deg);
}

/* ============================================================
   REFLECT (self-guided check-in)
   ============================================================ */
.reflect{
  position:relative; overflow:hidden; isolation:isolate;
  background:
    radial-gradient(100% 80% at 20% 0%, rgba(107,124,86,.45), transparent 62%),
    linear-gradient(170deg, var(--moss) 0%, var(--moss-deep) 100%);
  color:var(--cream);
}
.reflect .wrap{ position:relative; z-index:2; }
.sechead__lede--light{ color:rgba(244,241,230,.72); }

.quiz{ max-width:44rem; margin-inline:auto; }
.quiz__noscript{ text-align:center; color:rgba(244,241,230,.75); }
.quiz__noscript a{ color:var(--sage-soft); text-decoration:underline; }

.quiz__card{
  position:relative;
  background:rgba(244,241,230,.07);
  border:1px solid rgba(244,241,230,.15);
  border-radius:var(--radius-lg);
  padding:clamp(1.8rem,4vw,3rem);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  box-shadow:0 30px 70px -40px rgba(14,19,9,.8);
  animation:quizIn .7s var(--ease) both;
}
.quiz__card:focus{ outline:none; }
@keyframes quizIn{
  from{ opacity:0; transform:translateY(12px); filter:blur(4px); }
  to  { opacity:1; transform:none; filter:blur(0); }
}

.quiz__rail{
  height:2px; border-radius:2px; overflow:hidden;
  background:rgba(244,241,230,.14); margin-bottom:1.6rem;
}
.quiz__rail i{
  display:block; height:100%;
  background:linear-gradient(90deg, var(--sage), var(--sage-soft));
  transition:width .7s var(--ease);
}
.quiz__count{
  font-size:.68rem; letter-spacing:.26em; text-transform:uppercase;
  color:var(--sage-soft); margin-bottom:1rem;
}
.quiz__q{
  font-family:var(--display); font-optical-sizing:auto; font-weight:300;
  font-size:clamp(1.35rem,1.05rem + 1.5vw,2.15rem);
  line-height:1.26; letter-spacing:-.02em;
  color:var(--cream); text-wrap:balance;
  margin-bottom:clamp(1.6rem,3vw,2.2rem);
}
.quiz__opts{ display:grid; gap:.6rem; }
.quiz__opt{
  display:flex; align-items:center; gap:.9rem; width:100%;
  text-align:left;
  padding:1rem 1.3rem;
  border:1px solid rgba(244,241,230,.18);
  border-radius:3px;
  color:rgba(244,241,230,.88); font-size:1rem;
  transition:background-color .45s var(--ease), border-color .45s var(--ease),
             transform .45s var(--ease), color .45s var(--ease);
}
.quiz__opt:hover{
  background:rgba(244,241,230,.09);
  border-color:rgba(211,220,197,.5);
  transform:translateX(4px);
}
.quiz__dot{
  flex:none; width:15px; height:15px; border-radius:50%;
  border:1px solid rgba(244,241,230,.4);
  position:relative; transition:border-color .4s var(--ease);
}
.quiz__dot::after{
  content:""; position:absolute; inset:0; margin:auto;
  width:7px; height:7px; border-radius:50%;
  background:var(--sage-soft);
  transform:scale(0); transition:transform .4s var(--ease);
}
.quiz__opt.is-on{ background:rgba(211,220,197,.16); border-color:var(--sage-soft); color:var(--cream); }
.quiz__opt.is-on .quiz__dot{ border-color:var(--sage-soft); }
.quiz__opt.is-on .quiz__dot::after{ transform:scale(1); }

.quiz__foot{
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  margin-top:1.6rem;
}
.quiz__back{
  font-size:.88rem; color:rgba(244,241,230,.6);
  transition:color .4s var(--ease);
}
.quiz__back:hover{ color:var(--cream); }
.quiz__hint{ font-size:.74rem; color:rgba(244,241,230,.4); letter-spacing:.04em; }

/* result */
.quiz__card--result{ text-align:center; }
.quiz__leaf{
  display:block; width:clamp(3rem,7vw,4.2rem); margin:0 auto 1.6rem;
  color:var(--gold); opacity:.9;
}
.quiz__leaf svg{ width:100%; height:auto; }
.quiz__rtitle{
  font-family:var(--display); font-optical-sizing:auto; font-weight:300;
  font-size:clamp(1.5rem,1.15rem + 1.6vw,2.4rem);
  line-height:1.2; letter-spacing:-.022em;
  color:var(--cream); margin-bottom:1.1rem; text-wrap:balance;
}
.quiz__rbody{
  color:rgba(244,241,230,.78); max-width:32rem; margin:0 auto 2rem;
  font-size:clamp(1rem,.97rem + .25vw,1.1rem);
}
.quiz__card--result .btn--solid{ background:var(--cream); color:var(--moss-deep); }
.quiz__card--result .btn--solid:hover{ background:#fff; }
.quiz__rnote{
  font-size:.76rem; letter-spacing:.16em; text-transform:uppercase;
  color:rgba(244,241,230,.45); margin-top:1.1rem;
}
.quiz__restart{
  margin-top:1.6rem; font-size:.88rem; color:rgba(244,241,230,.55);
  border-bottom:1px solid rgba(244,241,230,.25); padding-bottom:2px;
  transition:color .4s var(--ease), border-color .4s var(--ease);
}
.quiz__restart:hover{ color:var(--cream); border-color:var(--cream); }

.reflect__disclaimer{
  max-width:40rem; margin:2.5rem auto 0; text-align:center;
  font-size:.8rem; line-height:1.7; color:rgba(244,241,230,.45);
}

/* ============================================================
   FREE CONSULTATION
   ============================================================ */
.consult{ background:linear-gradient(180deg, #B7C5A4 0%, #A9B995 100%); }
.consult .h2{ color:var(--moss-deep); }
.consult .h2 em{ color:#59683F; }
.consult .eyebrow{ color:#4E5C37; }
.consult .sechead__lede{ color:#3E4A2D; }

.steps{
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:clamp(1rem,2vw,1.6rem); align-items:stretch;
  margin-bottom:clamp(2.5rem,5vw,4rem);
}
.step{
  position:relative; display:flex; flex-direction:column;
  padding:clamp(1.9rem,3vw,2.6rem);
  border-radius:var(--radius-lg);
  background:var(--cream);
  box-shadow:0 26px 60px -34px rgba(30,38,20,.55);
  transition:transform .7s var(--ease), box-shadow .7s var(--ease);
}
.step:hover{ transform:translateY(-7px); box-shadow:0 40px 80px -36px rgba(30,38,20,.6); }
.step__n{
  font-family:var(--display); font-weight:300; font-size:.8rem;
  letter-spacing:.3em; color:var(--sage); margin-bottom:1.2rem;
}
.step h3{
  font-family:var(--display); font-weight:300;
  font-size:clamp(1.35rem,1.2rem + .5vw,1.7rem);
  color:var(--moss-deep); letter-spacing:-.015em; margin-bottom:.9rem;
}
.step p{ font-size:.98rem; }

.consult__cta{ text-align:center; }
.consult__cta .btn--solid{ box-shadow:0 20px 50px -20px rgba(30,38,20,.75); }
.consult__note{
  margin-top:1.3rem; font-size:.78rem; letter-spacing:.12em;
  text-transform:uppercase; color:#4A5734;
}

/* ============================================================
   CREDENTIALS
   ============================================================ */
.creds{ background:var(--cream); }
.creds__grid{
  display:grid; grid-template-columns:.85fr 1.15fr;
  gap:clamp(2.5rem,6vw,5.5rem); align-items:start;
}
.creds__copy{ position:sticky; top:130px; }
.creds__copy .h2{ margin-bottom:1.6rem; }
.creds__list{ display:flex; flex-direction:column; gap:.7rem; }
.creds__list li{
  display:flex; align-items:center; gap:1.1rem;
  padding:clamp(1.1rem,2vw,1.4rem) clamp(1.3rem,2.4vw,1.8rem);
  border-radius:6px;
  background:linear-gradient(100deg, rgba(240,236,223,.9), rgba(248,246,238,.6));
  border:1px solid rgba(36,42,26,.07);
  font-size:1.02rem; color:var(--moss-deep);
  transition:transform .6s var(--ease), border-color .6s var(--ease), background-color .6s var(--ease);
}
.creds__list li:hover{
  transform:translateX(7px);
  border-color:rgba(140,160,118,.4);
  background:linear-gradient(100deg, rgba(211,220,197,.55), rgba(248,246,238,.7));
}
.creds__list i{
  flex:none; width:30px; height:30px; border-radius:50%;
  background:linear-gradient(150deg, var(--sage-soft), var(--sage));
  position:relative;
}
.creds__list i::before{
  content:""; position:absolute; inset:0; margin:auto;
  width:11px; height:6px;
  border-left:1.5px solid #FBFAF4; border-bottom:1.5px solid #FBFAF4;
  transform:rotate(-45deg) translate(1px,-2px);
}

/* ============================================================
   QUIET BAND
   ============================================================ */
.band{
  position:relative; isolation:isolate; overflow:hidden;
  min-height:clamp(19rem,40vw,28rem);
  display:grid; place-items:center;
  padding:var(--gutter);
  background:var(--moss-deep);
}
.band__media{
  position:absolute; inset:-14% 0; z-index:-2;
  will-change:transform;
}
.band__media img{ width:100%; height:100%; object-fit:cover; }
.band::after{
  content:""; position:absolute; inset:0; z-index:-1;
  background:
    radial-gradient(90% 80% at 50% 50%, rgba(36,42,26,.28), rgba(36,42,26,.58)),
    linear-gradient(170deg, rgba(63,74,51,.35), rgba(51,61,40,.5));
}
.band__quote{
  font-family:var(--display); font-optical-sizing:auto; font-weight:300;
  font-size:clamp(1.6rem,1.1rem + 2.2vw,3rem);
  line-height:1.24; letter-spacing:-.022em;
  color:var(--cream); text-align:center; text-wrap:balance;
  text-shadow:0 2px 24px rgba(20,26,14,.45);
}

/* ============================================================
   TESTIMONIALS
   ============================================================ */
.tst{ background:var(--cream-2); }
.tst__stage{
  position:relative; display:flex; align-items:center; gap:clamp(.5rem,2vw,1.5rem);
  max-width:56rem; margin-inline:auto;
}
.tst__track{ position:relative; flex:1; min-height:15rem; display:grid; }
.tst__item{
  grid-area:1/1;
  text-align:center; padding:clamp(1.5rem,4vw,2.5rem);
  opacity:0; visibility:hidden; transform:translateY(14px);
  transition:opacity .8s var(--ease), transform .8s var(--ease), visibility .8s;
}
.tst__item.is-active{ opacity:1; visibility:visible; transform:none; }
.tst__mark{
  display:block; font-family:var(--script); font-size:5rem; line-height:.4;
  color:var(--sage-soft); margin-bottom:1.2rem;
}
.tst__item blockquote{
  font-family:var(--display); font-weight:300;
  font-size:clamp(1.3rem,1.05rem + 1.1vw,2rem);
  line-height:1.38; letter-spacing:-.018em;
  color:var(--moss-deep); text-wrap:balance;
}
.tst__item figcaption{
  margin-top:1.6rem; font-size:.72rem; letter-spacing:.24em;
  text-transform:uppercase; color:var(--sage);
}
.tst__item[data-placeholder] blockquote{ opacity:.66; }

.tst__nav{
  flex:none; display:grid; place-items:center;
  width:46px; height:46px; border-radius:50%;
  border:1px solid rgba(36,42,26,.14); color:var(--moss);
  transition:background-color .5s var(--ease), border-color .5s var(--ease), transform .5s var(--ease);
}
.tst__nav:hover{ background:rgba(140,160,118,.16); border-color:var(--sage); transform:scale(1.06); }
.tst__nav svg{ width:19px; height:19px; }

.tst__dots{ display:flex; justify-content:center; gap:.55rem; margin-top:2rem; }
.tst__dots button{
  width:7px; height:7px; border-radius:50%;
  background:rgba(63,74,51,.2);
  transition:background-color .5s var(--ease), width .5s var(--ease);
}
.tst__dots button.is-active{ background:var(--sage); width:26px; border-radius:999px; }

/* ============================================================
   CONTACT
   ============================================================ */
.contact{
  position:relative; overflow:hidden; isolation:isolate;
  background:var(--moss-deep);
  color:var(--cream);
}
.contact__bg{ position:absolute; inset:0; z-index:0; }
.contact__bg img{ width:100%; height:100%; object-fit:cover; object-position:50% 45%; }
.contact__bg::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(to right, rgba(22,28,15,.5), rgba(22,28,15,.14) 70%),
    linear-gradient(to bottom, rgba(26,33,18,.86), rgba(20,26,13,.9));
}
.contact__grid{
  position:relative; z-index:2;
  display:grid; grid-template-columns:1fr 1fr;
  gap:clamp(2.5rem,6vw,5rem); align-items:start;
}
.contact__copy .h2{ margin-bottom:1.6rem; }
.contact__meta{ margin-top:2.6rem; display:flex; flex-direction:column; gap:1.2rem; }
.contact__meta li{
  display:flex; flex-wrap:wrap; align-items:baseline; gap:.5rem 1.2rem;
  padding-bottom:1.2rem; border-bottom:1px solid rgba(244,241,230,.13);
  color:rgba(244,241,230,.85); font-size:1rem;
}
.contact__meta li:last-child{ border-bottom:0; padding-bottom:0; }
.contact__k{
  flex:none; width:4.5rem;
  font-size:.68rem; letter-spacing:.24em; text-transform:uppercase;
  color:var(--sage-soft);
}
.contact__meta a{
  background-image:linear-gradient(currentColor,currentColor);
  background-size:100% 1px; background-position:0 100%; background-repeat:no-repeat;
  padding-bottom:2px; transition:opacity .4s var(--ease);
}
.contact__meta a:hover{ opacity:.7; }

/* form */
.form{
  background:rgba(244,241,230,.07);
  border:1px solid rgba(244,241,230,.15);
  border-radius:var(--radius-lg);
  padding:clamp(1.6rem,3.5vw,2.6rem);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  display:flex; flex-direction:column; gap:1.1rem;
}
.field{ position:relative; }
.field input,
.field select,
.field textarea{
  width:100%;
  padding:1.5rem 1.1rem .65rem;
  background:rgba(244,241,230,.06);
  border:1px solid rgba(244,241,230,.18);
  border-radius:3px;
  color:var(--cream); font-size:1rem; font-weight:300;
  transition:border-color .45s var(--ease), background-color .45s var(--ease);
  appearance:none; -webkit-appearance:none;
}
.field textarea{ resize:vertical; min-height:7rem; line-height:1.6; }
.field select{
  padding-top:1.5rem;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B7C5A4' stroke-width='1.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 1rem center; background-size:18px;
}
.field select option{ color:var(--ink); background:var(--cream); }
.field input:focus,
.field select:focus,
.field textarea:focus{
  outline:none;
  border-color:var(--sage-soft);
  background:rgba(244,241,230,.11);
}
.field label{
  position:absolute; left:1.15rem; top:1.15rem;
  font-size:1rem; color:rgba(244,241,230,.5);
  pointer-events:none;
  transition:transform .4s var(--ease), font-size .4s var(--ease), color .4s var(--ease);
  transform-origin:left top;
}
.field input:focus + label,
.field input:not(:placeholder-shown) + label,
.field textarea:focus + label,
.field textarea:not(:placeholder-shown) + label,
.field .label--static{
  transform:translateY(-.62rem) scale(.7);
  color:var(--sage-soft);
}
.field .label--static{ transform:translateY(-.62rem) scale(.7); }

.form .btn--solid{ background:var(--cream); color:var(--moss-deep); margin-top:.4rem; }
.form .btn--solid:hover{ background:#fff; }
.form__note{ font-size:.8rem; color:rgba(244,241,230,.5); text-align:center; }
.form__status{ font-size:.88rem; color:var(--sage-soft); text-align:center; min-height:1.2em; }

/* ============================================================
   FOOTER
   ============================================================ */
.foot{
  background:var(--moss-deep); color:rgba(244,241,230,.6);
  padding-block:clamp(3rem,6vw,4.5rem) clamp(2rem,4vw,3rem);
  border-top:1px solid rgba(244,241,230,.08);
}
.foot__in{ display:flex; flex-direction:column; align-items:center; text-align:center; gap:1.5rem; }
.logo--foot{ color:var(--cream); }
.foot__tag{
  font-family:var(--script); font-style:italic; font-size:1.15rem;
  color:var(--sage-soft); margin-top:-.6rem;
}
.foot__links{ display:flex; flex-wrap:wrap; justify-content:center; gap:.6rem 1.8rem; font-size:.9rem; }
.foot__links a{ transition:color .4s var(--ease); }
.foot__links a:hover{ color:var(--cream); }
.foot__legal{ font-size:.82rem; margin-top:.6rem; }
.foot__small{
  font-size:.75rem; line-height:1.7; max-width:38rem;
  color:rgba(244,241,230,.4); padding-top:1.5rem;
  border-top:1px solid rgba(244,241,230,.08);
}

/* ============================================================
   MOBILE DOCK
   ============================================================ */
.dock{
  position:fixed; z-index:880;
  left:var(--gutter); right:var(--gutter);
  bottom:max(1rem, env(safe-area-inset-bottom));
  display:none; align-items:center; justify-content:center; gap:.6rem;
  padding:1.05rem 1.5rem; border-radius:999px;
  background:var(--moss); color:var(--cream);
  font-size:.95rem;
  box-shadow:0 18px 40px -16px rgba(20,26,14,.7);
  opacity:0; transform:translateY(130%);
  transition:opacity .6s var(--ease), transform .6s var(--ease);
}
.dock svg{ width:18px; height:18px; }
.dock.is-shown{ opacity:1; transform:translateY(0); }

/* ============================================================
   SCROLL ANIMATION
   ============================================================ */
[data-anim="fade"]{
  opacity:0;
  transform:translateY(26px);
  filter:blur(5px);
  transition:
    opacity 1.05s var(--ease) var(--d,0s),
    transform 1.05s var(--ease) var(--d,0s),
    filter 1.05s var(--ease) var(--d,0s);
  will-change:opacity, transform;
}
[data-anim="fade"].is-in{
  opacity:1; transform:none; filter:blur(0);
}

/* frond grows from base to tip (filled paths, so wipe rather than stroke-draw) */
[data-draw] svg{
  clip-path:inset(0 100% 0 0);
  transition:clip-path 1.9s var(--ease-soft);
}
[data-draw].is-drawn svg{ clip-path:inset(0 0 0 0); }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1080px){
  .about__grid,
  .modal__grid,
  .creds__grid,
  .contact__grid{ grid-template-columns:1fr; }
  .modal__intro,
  .creds__copy{ position:static; }
  .cards,
  .steps{ grid-template-columns:repeat(2,1fr); }
  .journey__list{ grid-template-columns:1fr; max-width:34rem; margin-inline:auto; }
  .jcard__orb{ width:clamp(8rem,28vw,10rem); }
  .modal__leaf{ display:none; }
}

@media (max-width:860px){
  .nav__links,
  .nav__cta{ display:none; }
  .burger{ display:flex; }
  .dock{ display:flex; }
  .foot{ padding-bottom:6.5rem; }
  .quotecard{ position:static; max-width:none; margin-top:1rem; }
  .about__media{ display:flex; flex-direction:column; }
}

@media (max-width:680px){
  .cards,
  .steps{ grid-template-columns:1fr; max-width:26rem; margin-inline:auto; }
  .hero{ min-height:auto; padding-block:8.5rem 5rem; }
  .tst__nav{ display:none; }
  .contact__meta li{ flex-direction:column; gap:.3rem; }
  .contact__k{ width:auto; }
  .strip__in{ font-size:.66rem; letter-spacing:.16em; }
}

/* ============================================================
   REDUCED MOTION
   ============================================================ */
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  [data-anim="fade"]{ opacity:1; transform:none; filter:none; }
  .hero__title [data-word]{ transform:none; opacity:1; }
  [data-draw] svg{ clip-path:none; }
  .veil{ display:none; }
  .breather__core,
  .breather__ring{ transform:scale(.95); }
}
