/* =====================================================================
   YOG LOVE — "Sanctuary" (light)
   Ivory · deep teal · gold · clay. Calm, premium, brand-true. No black.
   ===================================================================== */

:root{
  --cream:#FBF6EA;
  --cream-2:#F4ECD8;
  --cream-3:#EFE3C6;
  --ivory:#FFFCF5;
  --teal:#00484F;        /* brand deep teal */
  --teal-2:#013A40;
  --teal-soft:#0E5A60;
  --gold:#D29B33;
  --gold-2:#B27E1E;
  --gold-soft:#E7C778;
  --clay:#D07E78;        /* brand rose/clay */
  --clay-2:#BC645E;
  --ink:#2B2620;         /* warm near-charcoal text — never pure black */
  --muted:#6E6354;
  --on-teal:#F4ECD9;
  --on-teal-dim:#B7CDCB;
  --line:rgba(0,72,79,.16);
  --line-2:rgba(0,72,79,.10);
  --line-teal:rgba(244,236,217,.2);

  --maxw:1280px;
  --gut:clamp(22px,5.5vw,88px);
  --ease:cubic-bezier(.22,.61,.27,1);
  --slow:cubic-bezier(.16,1,.3,1);
  --f:"Hanken Grotesk",system-ui,-apple-system,sans-serif;
  --f-deva:"Tiro Devanagari Sanskrit",serif;
  --r:14px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;background:var(--cream)}
html.js body{opacity:0;animation:pageIn .8s var(--ease) .1s forwards}
@keyframes pageIn{to{opacity:1}}
body{font-family:var(--f);background:var(--cream);color:var(--ink);line-height:1.65;font-weight:400;
  overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body.is-locked{overflow:hidden;height:100vh}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
ul{list-style:none}
::selection{background:var(--gold-soft);color:var(--teal)}

/* ---------- Type ---------- */
h1,h2,h3,h4{font-weight:700;line-height:1.08;letter-spacing:-.02em;color:var(--teal)}
.eyebrow{font-weight:700;font-size:.72rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold-2)}
.display{font-weight:800;letter-spacing:-.035em;line-height:.98}
.lede{font-size:clamp(1.05rem,1.5vw,1.25rem);color:var(--muted);line-height:1.6}
.rule{width:54px;height:2px;background:var(--gold);border:0;margin:1.3rem 0}
.rule--c{margin-inline:auto}
.sec-title{font-weight:800;font-size:clamp(2rem,4.6vw,3.5rem);letter-spacing:-.03em;color:var(--teal);line-height:1.02}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:.6em;padding:1rem 1.7rem;border-radius:100px;
  font-weight:700;font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;border:1.5px solid transparent;
  transition:background .35s var(--ease),color .35s,border-color .35s,transform .35s var(--ease);}
.btn span{display:inline-flex;align-items:center;gap:.5em}
.btn--gold{background:var(--gold);color:var(--teal)}
.btn--gold:hover{background:var(--gold-2);color:var(--ivory);transform:translateY(-2px)}
.btn--teal{background:var(--teal);color:var(--on-teal)}
.btn--teal:hover{background:var(--teal-2);transform:translateY(-2px)}
.btn--outline{background:transparent;border-color:var(--teal);color:var(--teal)}
.btn--outline:hover{background:var(--teal);color:var(--on-teal);transform:translateY(-2px)}
.btn--lg{padding:1.15rem 2.1rem}
.btn--block{width:100%;justify-content:center}
.link-arrow{display:inline-flex;align-items:center;gap:.55em;font-weight:700;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-2)}
.link-arrow::after{content:"";width:24px;height:1.5px;background:currentColor;transition:width .4s var(--ease)}
.link-arrow:hover::after{width:40px}

/* ---------- Atmosphere ---------- */
.grain{position:fixed;inset:0;z-index:9000;pointer-events:none;opacity:.03;mix-blend-mode:multiply;
  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='.8' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* ---------- Page fade transition (gentle) ---------- */
.fadecover{position:fixed;inset:0;z-index:8000;background:var(--cream);opacity:0;pointer-events:none;transition:opacity .45s var(--ease)}
.fadecover.on{opacity:1}

/* =====================================================================
   OPENING — light shloka + logo
   ===================================================================== */
.intro{position:fixed;inset:0;z-index:10000;background:radial-gradient(120% 120% at 50% 38%,var(--ivory),var(--cream) 70%);
  display:grid;place-items:center;transition:opacity .9s var(--ease),visibility .9s}
.intro.is-gone{opacity:0;visibility:hidden}
.intro__inner{text-align:center;position:relative;padding:0 6vw}
.intro__halo{position:absolute;left:50%;top:38%;width:340px;height:340px;transform:translate(-50%,-50%);
  border-radius:50%;border:1.5px solid var(--gold);opacity:.0;animation:halo 4s var(--slow) infinite}
.intro__halo.two{width:240px;height:240px;border-color:var(--clay);animation-delay:.3s}
@keyframes halo{0%,100%{transform:translate(-50%,-50%) scale(.85);opacity:.06}50%{transform:translate(-50%,-50%) scale(1.05);opacity:.22}}
.intro__logo{width:128px;height:128px;margin:0 auto 2rem;opacity:0;transform:scale(.86);filter:blur(6px)}
.intro__logo.lit{opacity:1;transform:none;filter:none;transition:opacity 1s var(--slow),transform 1.2s var(--slow),filter 1s}
.intro__words{display:flex;flex-wrap:wrap;justify-content:center;gap:.05em .4em;font-family:var(--f-deva);
  font-size:clamp(1.7rem,5.4vw,3.6rem);color:var(--teal);line-height:1.3}
.intro__words .w{opacity:0;filter:blur(10px);transform:translateY(.2em)}
.intro__words .w.lit{opacity:1;filter:blur(0);transform:none;transition:opacity .8s var(--slow),filter .8s var(--slow),transform 1s var(--slow)}
.intro__trans{margin-top:1.1rem;font-style:italic;color:var(--gold-2);font-size:clamp(.92rem,1.6vw,1.2rem);opacity:0;transition:opacity .9s .1s}
.intro__trans.lit{opacity:1}
.intro__skip{position:absolute;bottom:2rem;right:2.2rem;font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);background:none;border:0;cursor:pointer;opacity:.6}
.intro__skip:hover{opacity:1}

/* =====================================================================
   HEADER
   ===================================================================== */
.site-header{position:fixed;top:0;left:0;right:0;z-index:1000;display:flex;align-items:center;justify-content:space-between;
  padding:1.25rem var(--gut);transition:padding .45s var(--ease),background .45s,box-shadow .45s,backdrop-filter .45s}
.site-header.is-scrolled{padding:.7rem var(--gut);background:color-mix(in srgb,var(--cream) 88%,transparent);
  backdrop-filter:blur(14px) saturate(1.2);box-shadow:0 1px 0 var(--line-2)}
.brand{display:flex;align-items:center;gap:.65rem}
.brand__mark{width:52px;height:52px;transition:width .4s,height .4s}
.is-scrolled .brand__mark{width:44px;height:44px}
.brand__word{font-weight:800;font-size:1.15rem;letter-spacing:.02em;color:var(--teal)}
.nav{display:flex;gap:2rem;align-items:center}
.nav a{font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--teal);position:relative;padding:.4rem 0;opacity:.82;transition:opacity .3s}
.nav a::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--gold);transition:width .4s var(--ease)}
.nav a:hover,.nav a[aria-current="page"]{opacity:1}
.nav a:hover::after,.nav a[aria-current="page"]::after{width:100%}
.header__cta{display:flex;align-items:center;gap:1.2rem}
.burger{display:none;flex-direction:column;gap:6px;background:none;border:0;cursor:pointer;padding:6px;z-index:1001}
.burger span{width:26px;height:2px;background:var(--teal);transition:transform .4s var(--ease),opacity .3s}
.burger.is-open span:first-child{transform:translateY(8px) rotate(45deg)}
.burger.is-open span:last-child{transform:translateY(-0px) rotate(-45deg)}
.m-nav{position:fixed;inset:0;z-index:999;background:var(--teal);color:var(--on-teal);display:grid;place-items:center;clip-path:circle(0 at 100% 0);transition:clip-path .7s var(--slow)}
.m-nav.is-open{clip-path:circle(150% at 100% 0)}
.m-nav nav{display:flex;flex-direction:column;gap:1.2rem;text-align:center}
.m-nav a{font-weight:700;font-size:1.7rem;color:var(--on-teal)}
.m-nav a .num{font-size:.7rem;color:var(--gold-soft);letter-spacing:.2em;vertical-align:super;margin-right:.5rem}

/* =====================================================================
   HOME HERO (split, light)
   ===================================================================== */
.hero{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(2rem,5vw,5rem);align-items:center;
  min-height:100svh;padding:8rem var(--gut) clamp(3rem,6vw,5rem);max-width:var(--maxw);margin:0 auto}
.hero__text .eyebrow{margin-bottom:1.3rem}
.hero h1{font-size:clamp(2.8rem,6.4vw,5.2rem);font-weight:800;letter-spacing:-.04em;line-height:.98;color:var(--teal)}
.hero h1 em{font-style:normal;color:var(--gold-2)}
.hero__lede{max-width:42ch;margin:1.6rem 0 2.2rem;font-size:clamp(1.02rem,1.4vw,1.18rem);color:var(--muted)}
.hero__cta{display:flex;gap:1rem;flex-wrap:wrap}
.hero__trust{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;margin-top:2.2rem;font-size:.78rem;color:var(--muted);letter-spacing:.02em}
.hero__trust .dot{color:var(--gold)}
.hero__media{position:relative}
.hero__photo{position:relative;aspect-ratio:4/5;border-radius:220px 220px var(--r) var(--r);overflow:hidden;box-shadow:0 40px 80px -50px rgba(0,72,79,.5)}
.hero__photo img{width:100%;height:100%;object-fit:cover;object-position:center 22%}
.hero__chip{position:absolute;left:-16px;bottom:34px;background:var(--ivory);border:1px solid var(--line);border-radius:12px;padding:.7rem 1rem;box-shadow:0 18px 40px -22px rgba(0,72,79,.4);display:flex;flex-direction:column;line-height:1.2}
.hero__chip b{color:var(--teal);font-weight:800;font-size:1.05rem}
.hero__chip span{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-2)}

/* ---------- Invocation (cream, calm) ---------- */
.invocation{text-align:center;padding:clamp(4rem,9vw,7rem) var(--gut);background:linear-gradient(var(--cream),var(--cream-2))}
.invocation .sa{font-family:var(--f-deva);font-size:clamp(1.5rem,3.6vw,2.6rem);color:var(--teal)}
.invocation .en{font-style:italic;color:var(--gold-2);margin-top:.9rem;font-size:clamp(1rem,1.5vw,1.2rem)}

/* =====================================================================
   GATEWAYS
   ===================================================================== */
.gateways{max-width:var(--maxw);margin:0 auto;padding:clamp(4rem,9vw,8rem) var(--gut)}
.gateways__head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap;margin-bottom:3rem}
/* gateways: one seamless image block (no floating cards, no thin lines) */
.gw-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:0;border-radius:24px;overflow:hidden;box-shadow:0 44px 90px -56px rgba(0,72,79,.45)}
.gw{position:relative;overflow:hidden;min-height:340px;display:flex;flex-direction:column;justify-content:flex-end;
  padding:1.9rem;color:var(--on-teal);isolation:isolate}
.gw__img{position:absolute;inset:0;z-index:-2;background:var(--cream-3)}
.gw__img img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--slow)}
.gw::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(0,38,42,0) 38%,rgba(0,30,34,.82))}
.gw:hover .gw__img img{transform:scale(1.06)}
.gw__no{font-weight:800;color:var(--gold-soft);font-size:.85rem;letter-spacing:.1em}
.gw h3{color:var(--ivory);font-size:1.8rem;margin:.4rem 0 .35rem;font-weight:800;letter-spacing:-.02em}
.gw p{color:var(--on-teal-dim);font-size:.92rem;max-width:30ch}
.gw__go{margin-top:1rem;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-soft);display:inline-flex;align-items:center;gap:.5em}
.gw__go::after{content:"\2192";transition:transform .4s}
.gw:hover .gw__go::after{transform:translateX(5px)}
.gw--tall{grid-column:span 6;min-height:480px}
.gw--third{grid-column:span 4}
.gw__cover{position:absolute;inset:0;z-index:1}
/* Retreats gateway: hover reveals the destinations */
.gw__locs{position:absolute;inset:0;z-index:2;background:linear-gradient(160deg,rgba(0,52,57,.95),rgba(0,40,45,.97));display:flex;flex-direction:column;justify-content:center;padding:clamp(1.9rem,3vw,2.6rem);opacity:0;visibility:hidden;transition:opacity .45s var(--ease),visibility .45s}
.gw:hover .gw__locs{opacity:1;visibility:visible}
.gw__locs h4{color:var(--gold-soft);font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;margin-bottom:1.1rem}
.gw__locs ul{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:.55rem 1.2rem;margin:0}
.gw__locs li a{color:#fff;font-size:clamp(1rem,1.5vw,1.25rem);font-weight:700;letter-spacing:-.01em;text-decoration:none;display:inline-flex;align-items:center;gap:.45rem;transition:color .3s,transform .3s}
.gw__locs li a::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--gold-soft);flex:none}
.gw__locs li a:hover{color:var(--gold-soft);transform:translateX(3px)}

/* ---------- Teaser (about) ---------- */
.teaser{display:grid;grid-template-columns:1fr 1fr;min-height:78vh}
.teaser__media{position:relative;overflow:hidden;background:var(--cream-3)}
.teaser__media img{width:100%;height:100%;object-fit:cover;object-position:center 25%}
.teaser__body{background:var(--teal);color:var(--on-teal);display:flex;flex-direction:column;justify-content:center;padding:clamp(3rem,7vw,7rem)}
.teaser__body .eyebrow{color:var(--gold-soft)}
.teaser__body h2{color:var(--ivory);font-size:clamp(2.2rem,4.6vw,3.7rem);margin:1.1rem 0 1.2rem;font-weight:800;letter-spacing:-.025em;line-height:1.02}
.teaser__body .eyebrow{position:relative;padding-left:46px}
.teaser__body .eyebrow::before{content:"";position:absolute;left:0;top:50%;width:34px;height:2px;background:var(--gold)}
.teaser__body p{color:var(--on-teal-dim);max-width:46ch;margin-bottom:1.5rem;line-height:1.65}
.teaser__list{list-style:none;margin:0 0 2rem;display:grid;gap:.75rem}
.teaser__list li{position:relative;padding-left:1.8rem;color:var(--on-teal);font-size:1rem;line-height:1.45}
.teaser__list li::before{content:"";position:absolute;left:0;top:1px;width:19px;height:19px;border-radius:50%;background:var(--gold-soft);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300484F' stroke-width='3'%3E%3Cpath d='M5 12l4 4L19 7'/%3E%3C/svg%3E");background-size:13px;background-repeat:no-repeat;background-position:center}

/* =====================================================================
   GENERIC PAGE
   ===================================================================== */
.page-hero{padding:9rem var(--gut) clamp(2rem,4vw,3.5rem);max-width:var(--maxw);margin:0 auto;text-align:center}
.page-hero .eyebrow{margin-bottom:1rem;display:block}
.page-hero h1{font-size:clamp(2.6rem,6.4vw,5rem);font-weight:800;letter-spacing:-.035em;color:var(--teal)}
.page-hero p{color:var(--muted);max-width:54ch;margin:1.2rem auto 0;font-size:1.1rem}
.page-shot{height:clamp(320px,46vw,560px);overflow:hidden}
.page-shot img{width:100%;height:100%;object-fit:cover}

.section{max-width:var(--maxw);margin:0 auto;padding:clamp(4rem,9vw,8rem) var(--gut)}
.section--narrow{max-width:820px}
.section--cream2{background:var(--cream-2);max-width:none}
.section--cream2>.section{padding-block:0}
.sec-head{max-width:52ch;margin-bottom:clamp(2.5rem,5vw,4rem)}
.sec-head--c{margin-inline:auto;text-align:center}
.sec-head .eyebrow{display:block;margin-bottom:1rem}
.sec-head--split{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap;max-width:none}
.sec-head__note{max-width:34ch;color:var(--muted)}
.prose p{margin-bottom:1.2rem;color:var(--muted);font-size:1.06rem;max-width:62ch}
.prose p strong{color:var(--ink)}
.lead-quote{font-size:clamp(1.4rem,2.4vw,2rem);line-height:1.3;color:var(--teal);font-weight:700;letter-spacing:-.02em;max-width:24ch}

.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,5.5rem);align-items:center}
.split__media{border-radius:var(--r);overflow:hidden;aspect-ratio:4/5;background:var(--cream-3);box-shadow:0 40px 80px -54px rgba(0,72,79,.45)}
.split__media img{width:100%;height:100%;object-fit:cover;object-position:center 20%}
.split--rev .split__media{order:2}

/* stats — fixed, no awkward wraps */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1.6rem 2rem;border-top:1px solid var(--line);padding-top:2rem;margin-top:2.4rem}
.stats li{display:flex;flex-direction:column;gap:.3rem}
.stats b{font-weight:800;font-size:2rem;color:var(--gold-2);line-height:1;letter-spacing:-.02em}
.stats span{font-size:.84rem;color:var(--muted);line-height:1.35}

/* cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}
.card{background:var(--ivory);border:1px solid var(--line);border-radius:var(--r);padding:1.9rem;display:flex;flex-direction:column;
  transition:transform .5s var(--slow),box-shadow .5s}
.card:hover{transform:translateY(-5px);box-shadow:0 30px 56px -42px rgba(0,72,79,.4)}
.card__k{font-weight:700;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-2)}
.card h3{font-size:1.4rem;margin:.5rem 0 .6rem;font-weight:800;color:var(--teal)}
.card p{color:var(--muted);font-size:.95rem;flex:1;margin-bottom:1.1rem}
.card__price{font-weight:800;font-size:1.5rem;color:var(--teal)}
.card__price small{font-size:.55em;color:var(--muted);font-weight:600}
.card--feature{grid-column:span 3;background:var(--teal);color:var(--on-teal);display:grid;grid-template-columns:1.5fr 1fr;gap:1.4rem 2.6rem;align-items:start}
.card--feature .card__k{color:var(--gold-soft)}
.card--feature h3{color:var(--ivory);font-size:clamp(1.6rem,2.6vw,2.2rem)}
.card--feature p{color:var(--on-teal-dim)}
.card--feature .card__price{color:var(--gold-soft)}
.card__meta{display:flex;flex-direction:column;gap:.7rem;border-left:1px solid var(--line-teal);padding-left:1.4rem}
.card__meta li{font-size:.86rem;color:var(--on-teal-dim);position:relative;padding-left:1rem}
.card__meta li::before{content:"";position:absolute;left:0;top:.55em;width:5px;height:5px;border-radius:50%;background:var(--gold-soft)}

/* retreats */
.retreat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(1rem,1.6vw,1.5rem)}
.rt{position:relative;min-height:clamp(380px,42vw,480px);border-radius:22px;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;
  padding:clamp(1.6rem,2.4vw,2.4rem);color:var(--on-teal);isolation:isolate;transition:transform .6s var(--slow),box-shadow .6s var(--ease)}
.rt--feature{grid-column:1 / -1;min-height:clamp(440px,40vw,560px)}
.rt__img{position:absolute;inset:0;z-index:-2;background:var(--cream-3)}
.rt__img img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--slow)}
.rt::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(0,38,42,0) 28%,rgba(0,36,40,.42) 60%,rgba(0,30,34,.86))}
.rt:hover{transform:translateY(-6px);box-shadow:0 44px 74px -42px rgba(0,40,44,.6)}
.rt:hover .rt__img img{transform:scale(1.07)}
.rt__no{position:absolute;top:clamp(1.2rem,2vw,1.8rem);left:clamp(1.5rem,2.4vw,2.4rem);z-index:1;font-size:.78rem;font-weight:700;letter-spacing:.22em;color:var(--gold-soft)}
.rt__meta{display:block;font-size:.66rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:.55rem}
.rt h3{color:#fff;font-size:clamp(1.7rem,3vw,2.5rem);font-weight:800;letter-spacing:-.02em;line-height:1}
.rt--feature h3{font-size:clamp(2.3rem,5vw,3.9rem)}
.rt p{color:var(--on-teal-dim);margin-top:.5rem;max-width:44ch;font-size:.98rem}
.rt__go{display:inline-flex;align-items:center;gap:.6rem;margin-top:1.1rem;font-size:.74rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#fff;
  opacity:0;transform:translateY(10px);transition:opacity .45s var(--ease),transform .45s var(--slow)}
.rt:hover .rt__go,.rt:focus-visible .rt__go{opacity:1;transform:none}
.rt__go svg{width:24px;height:9px;overflow:visible}
@media (hover:none){.rt__go{opacity:1;transform:none}}

/* events */
.events-list{display:flex;flex-direction:column;gap:.9rem}
.ev{display:grid;grid-template-columns:auto 1fr auto;gap:1.6rem;align-items:center;background:var(--ivory);border:1px solid var(--line);border-radius:var(--r);padding:1.5rem 1.8rem;transition:transform .4s var(--ease),box-shadow .4s}
.ev:hover{transform:translateX(5px);box-shadow:0 22px 46px -38px rgba(0,72,79,.45)}
.ev__date{text-align:center;line-height:1;color:var(--clay)}
.ev__date b{display:block;font-weight:800;font-size:1.9rem;color:var(--teal)}
.ev__date span{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase}
.ev__body h3{font-size:1.25rem;font-weight:800}
.ev__body p{color:var(--muted);font-size:.9rem;margin-top:.2rem}
.events-empty{text-align:center;color:var(--muted);font-style:italic;font-size:1.15rem;padding:3rem}

/* newsletter (soft gold panel) */
.newsletter{background:var(--cream-2);text-align:center;padding:clamp(4rem,9vw,7rem) var(--gut)}
.newsletter h2{font-size:clamp(2rem,4.4vw,3.2rem);max-width:18ch;margin:1rem auto;font-weight:800}
.newsletter p{color:var(--muted);max-width:46ch;margin:0 auto 2rem}
.subscribe{display:flex;gap:.6rem;max-width:480px;margin:0 auto;flex-wrap:wrap}
.subscribe input{flex:1;min-width:220px;background:var(--ivory);border:1px solid var(--line);border-radius:100px;padding:1rem 1.3rem}
.subscribe input:focus{outline:none;border-color:var(--gold)}
.form-note{margin-top:1rem;font-size:.9rem;color:var(--muted);min-height:1.2em}
.form-note.ok{color:var(--teal);font-weight:600}

/* testimonials */
.voices{padding:clamp(4rem,9vw,8rem) 0;overflow:hidden}
.voices .sec-head{padding:0 var(--gut)}
.voices__track{display:flex;gap:1.1rem;padding:0 var(--gut);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.voices__track::-webkit-scrollbar{display:none}
.voice{flex:0 0 min(430px,84vw);scroll-snap-align:center;background:var(--ivory);border:1px solid var(--line);border-radius:var(--r);padding:2.1rem;display:flex;flex-direction:column}
.voice__stars{color:var(--gold);letter-spacing:.12em;margin-bottom:1rem}
.voice blockquote{font-size:1.2rem;line-height:1.45;color:var(--teal);font-weight:600;flex:1;letter-spacing:-.01em}
.voice figcaption{margin-top:1.5rem;font-weight:700;color:var(--teal);display:flex;flex-direction:column}
.voice figcaption span{font-weight:600;font-size:.78rem;color:var(--gold-2);letter-spacing:.06em;text-transform:uppercase}

/* faculty */
.faculty-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
.teacher{text-align:center}
.teacher__photo{width:clamp(170px,18vw,198px);height:clamp(170px,18vw,198px);border-radius:50%;overflow:hidden;margin:0 auto 1.7rem;background:var(--cream-3);
  box-shadow:0 0 0 6px var(--cream),0 0 0 7.5px var(--gold),0 28px 52px -24px rgba(0,72,79,.5)}
.teacher__photo img{width:100%;height:100%;object-fit:cover;object-position:center}
.teacher{padding:1rem .5rem}
.teacher h3{margin-top:.2rem}
.teacher p{margin-top:.5rem}
.teacher h3{font-size:1.35rem;font-weight:800}
.teacher p{color:var(--muted);font-size:.92rem;max-width:34ch;margin:.5rem auto 0}

/* accreditation */
.accred{display:flex;align-items:center;justify-content:center;gap:2.4rem;flex-wrap:wrap;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:2.4rem var(--gut);max-width:var(--maxw);margin:0 auto}
.accred img{height:60px;width:auto}
.accred .chip{font-size:.74rem;font-weight:700;letter-spacing:.1em;border:1px solid var(--line);border-radius:100px;padding:.5rem 1.1rem;text-transform:uppercase;color:var(--teal)}

/* contact form */
.cform{display:grid;gap:1rem}
.cform .row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.fld{position:relative}
.fld input,.fld select,.fld textarea{width:100%;background:var(--ivory);border:1px solid var(--line);border-radius:10px;padding:1.2rem 1rem .6rem;transition:border-color .3s,box-shadow .3s}
.fld textarea{padding-top:1.4rem;resize:vertical;min-height:120px}
.fld select{padding-top:1.1rem;padding-bottom:.95rem;appearance:none}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 4px rgba(210,155,51,.14)}
.fld label{position:absolute;left:1rem;top:1.05rem;color:var(--muted);pointer-events:none;transition:.25s var(--ease)}
.fld input:focus+label,.fld input:not(:placeholder-shown)+label,.fld textarea:focus+label,.fld textarea:not(:placeholder-shown)+label,.fld.static label{top:.42rem;font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-2)}

/* press / in the media — real article cards */
.press-feat{max-width:var(--maxw);margin:0 auto;padding:clamp(4rem,9vw,8rem) var(--gut)}
.press-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.parc{display:flex;flex-direction:column;background:var(--ivory);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:transform .5s var(--slow),box-shadow .5s}
.parc:hover{transform:translateY(-6px);box-shadow:0 30px 56px -42px rgba(0,72,79,.4)}
.parc__img{aspect-ratio:16/10;overflow:hidden;background:var(--cream-3)}
.parc__img img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--slow)}
.parc:hover .parc__img img{transform:scale(1.05)}
.parc__body{padding:1.3rem 1.5rem 1.5rem;display:flex;flex-direction:column;flex:1}
.parc__logo{height:22px;width:auto;margin-bottom:.9rem;align-self:flex-start;opacity:.9}
.parc h3{font-size:1.1rem;line-height:1.32;color:var(--teal);font-weight:700;letter-spacing:-.01em;flex:1}
.parc__go{margin-top:1.1rem;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-2);display:inline-flex;align-items:center;gap:.5em}
.parc__go::after{content:"\2197";transition:transform .4s}
.parc:hover .parc__go::after{transform:translate(3px,-3px)}
@media (max-width:1024px){.press-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:620px){.press-grid{grid-template-columns:1fr}}

/* =====================================================================
   FOOTER (deep teal — brand, not black)
   ===================================================================== */
.site-footer{background:var(--teal);color:var(--on-teal);padding:clamp(3.5rem,7vw,5.5rem) var(--gut) 2rem}
.footer__top{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:1.4fr 2.2fr;gap:3rem}
.footer__brand p{color:var(--on-teal-dim);margin-top:1.2rem;max-width:34ch}
.footer__brand .brand__word{color:var(--ivory)}
.footer__cols{display:grid;grid-template-columns:repeat(4,1fr);gap:1.6rem}
.footer__cols h4{color:var(--gold-soft);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;margin-bottom:1rem;font-weight:700}
.footer__cols a{display:block;color:var(--on-teal-dim);font-size:.92rem;padding:.32rem 0;transition:color .3s}
.footer__cols a:hover{color:var(--ivory)}
.footer__bottom{max-width:var(--maxw);margin:2.6rem auto 0;padding-top:1.6rem;border-top:1px solid var(--line-teal);display:flex;justify-content:space-between;gap:.6rem;flex-wrap:wrap;font-size:.82rem;color:var(--on-teal-dim)}
.footer__social{display:flex;gap:1.2rem}
.footer__social a{color:var(--on-teal-dim);font-size:.8rem;letter-spacing:.06em;text-transform:uppercase}
.footer__social a:hover{color:var(--gold-soft)}

/* ---------- Reveal (gentle) ---------- */
[data-reveal]{opacity:0;transform:translateY(20px);transition:opacity 1s var(--slow),transform 1s var(--slow)}
[data-reveal].in{opacity:1;transform:none}
[data-reveal-d="1"]{transition-delay:.08s}[data-reveal-d="2"]{transition-delay:.16s}[data-reveal-d="3"]{transition-delay:.24s}

/* ---------- Responsive ---------- */
@media (max-width:1024px){
  .nav,.header__cta{display:none}.burger{display:flex}
  .gw--tall{grid-column:span 12}.gw--third{grid-column:span 6}
  .cards{grid-template-columns:repeat(2,1fr)}.card--feature{grid-column:span 2;grid-template-columns:1fr}
  .card__meta{border-left:0;border-top:1px solid var(--line-teal);padding-left:0;padding-top:1.2rem;flex-direction:row;flex-wrap:wrap;gap:1.2rem}
  .faculty-grid{grid-template-columns:1fr;max-width:360px;margin:0 auto;gap:2.6rem}
  .hero{grid-template-columns:1fr;gap:3rem;text-align:left}
  .hero__media{max-width:420px}
}
@media (max-width:760px){
  .split,.teaser{grid-template-columns:1fr}.split--rev .split__media{order:0}.teaser__media{min-height:56vh}
  .retreat-grid{grid-template-columns:1fr}.cards{grid-template-columns:1fr}.card--feature{grid-column:span 1}
  .ev{grid-template-columns:auto 1fr;gap:1rem}.ev__cta{grid-column:2}
  .footer__top{grid-template-columns:1fr;gap:2rem}.footer__cols{grid-template-columns:repeat(2,1fr)}
  .gw--third{grid-column:span 12}.stats{grid-template-columns:1fr 1fr}
}

/* ---------- QA snapshot flatten ---------- */
html.snap body{opacity:1;animation:none}
html.snap .hero{min-height:auto}
html.snap .teaser{min-height:auto}
html.snap .teaser__media{min-height:440px}
html.snap [data-reveal]{opacity:1;transform:none}

/* =====================================================================
   v3.1 polish — Apple-grade chip, opening logo, marquee, cards
   ===================================================================== */
/* hero chip with logo */
.hero__chip{left:-18px;bottom:30px;display:flex;align-items:center;gap:.75rem;padding:.7rem 1rem;border-radius:18px;
  background:color-mix(in srgb,var(--ivory) 84%,transparent);backdrop-filter:blur(12px) saturate(1.2);
  border:1px solid rgba(255,255,255,.55);box-shadow:0 22px 46px -22px rgba(0,72,79,.45)}
.hero__chip-logo{width:36px;height:36px;border-radius:50%;flex:none}
.hero__chip-txt{display:flex;flex-direction:column;line-height:1.12;transition:opacity .3s var(--ease)}
.hero__chip.swap .hero__chip-txt{opacity:0}
.hero__chip-txt b{color:var(--teal);font-weight:800;font-size:1.05rem;letter-spacing:-.01em}
.hero__chip-txt span{font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-2)}

/* opening — clearly visible logo loading animation */
.intro__glow{position:absolute;left:50%;top:38%;width:240px;height:240px;transform:translate(-50%,-50%);border-radius:50%;
  background:radial-gradient(circle,rgba(231,199,120,.45),transparent 62%);filter:blur(10px);opacity:0;animation:glowIn 1.6s var(--slow) forwards}
@keyframes glowIn{to{opacity:.95}}
.intro__halo{opacity:.10}
.intro__logo{width:132px;height:132px}
.intro__logo.lit{animation:logoBreath 4.5s ease-in-out .7s infinite}
@keyframes logoBreath{0%,100%{transform:scale(1)}50%{transform:scale(1.045)}}

/* testimonials — seamless smooth auto-marquee + premium card */
.voices__track{scroll-snap-type:none}
.voices__track[data-marquee]{overflow:visible;width:max-content;padding-inline:0;animation:vmarq 60s linear infinite}
.voices:hover .voices__track[data-marquee]{animation-play-state:paused}
@keyframes vmarq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.voice{min-height:280px;border-radius:20px;border-color:rgba(0,72,79,.09);box-shadow:0 1px 2px rgba(0,72,79,.05)}

/* cards & tiles — Apple-clean depth */
.card,.parc{border-radius:20px;border-color:rgba(0,72,79,.09);box-shadow:0 1px 2px rgba(0,72,79,.05)}
.card:hover,.parc:hover{box-shadow:0 28px 56px -34px rgba(0,72,79,.3)}
.card--feature{border-radius:26px}
.rt{border-radius:20px}
.ev{border-radius:18px;border-color:rgba(0,72,79,.09)}

/* snapshot: freeze marquee for clean captures */
html.snap .voices__track[data-marquee]{animation:none!important;transform:none!important}

/* =====================================================================
   v3.2 — design-review fixes (faces in frame, calm accreditation)
   ===================================================================== */
.teaser__media img,.split__media img{object-position:center 16%}
.gw__img img{object-position:center 22%}
.rt__img img{object-position:center}
.accred{align-items:center;gap:2.2rem}
.accred img{height:42px;opacity:.82}
.accred .chip{display:inline-flex;align-items:center;height:40px}
body[data-page="contact"] .page-hero{padding-bottom:1.4rem}
body[data-page="contact"] .section{padding-top:clamp(2rem,4vw,3rem)}

/* =====================================================================
   v3.3 — audio opening, founder block, press logos on thumbnails, caps wordmark
   ===================================================================== */
.brand__word{text-transform:uppercase;letter-spacing:.16em;font-weight:700;font-size:1.02rem}
.footer__brand .brand__word{font-size:1.15rem}

/* opening — ceremonial ripple synced to the Om */
.intro__halo{border:1.5px solid var(--gold);opacity:0;animation:ripple 3.4s var(--ease) infinite}
.intro__halo.two{border-color:var(--clay);animation-delay:1.1s}
@keyframes ripple{0%{transform:translate(-50%,-50%) scale(.45);opacity:.55}65%{opacity:.14}100%{transform:translate(-50%,-50%) scale(1.7);opacity:0}}
.intro__glow{top:42%}
.intro__logo.lit{animation:logoBreath 3.4s ease-in-out .6s infinite}

/* press: publication logo on each thumbnail */
.parc__img{position:relative}
.parc__pub{position:absolute;top:12px;left:12px;z-index:2;background:rgba(255,252,245,.94);backdrop-filter:blur(6px);
  border-radius:9px;padding:7px 11px;box-shadow:0 8px 22px -10px rgba(0,72,79,.45);display:flex;align-items:center}
.parc__pub img{height:18px;width:auto;display:block}
.parc__body .parc__logo{display:none}

/* founder block — modern, premium */
.founder{padding:clamp(4rem,9vw,8rem) var(--gut);background:linear-gradient(180deg,var(--cream),var(--cream-2));overflow:hidden}
.founder__inner{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:.85fr 1fr;gap:clamp(2.4rem,6vw,6rem);align-items:center}
.founder__media{position:relative;aspect-ratio:4/5}
.founder__media::before{content:"";position:absolute;inset:-16px -16px 20px 20px;border:2px solid var(--gold);border-radius:26px;z-index:0}
.founder__media img{position:relative;z-index:1;width:100%;height:100%;object-fit:cover;object-position:center 16%;border-radius:22px;box-shadow:0 44px 84px -54px rgba(0,72,79,.55)}
.founder__badge{position:absolute;z-index:2;right:-12px;bottom:26px;background:var(--gold);color:var(--teal);border-radius:14px;padding:.75rem 1.1rem;display:flex;flex-direction:column;line-height:1.08;box-shadow:0 22px 44px -22px rgba(0,72,79,.5)}
.founder__badge b{font-size:1.25rem;font-weight:800;letter-spacing:-.01em}
.founder__badge span{font-size:.6rem;letter-spacing:.14em;text-transform:uppercase}
.founder__name{font-size:clamp(2.6rem,6.2vw,4.8rem);font-weight:800;letter-spacing:-.04em;color:var(--teal);line-height:.92}
.founder__name em{font-style:normal;color:var(--gold-2)}
.founder__lead{font-size:clamp(1.05rem,1.5vw,1.28rem);color:var(--muted);margin:1.4rem 0 1.6rem;max-width:44ch}
.founder__chips{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:2rem}
.founder__chips li{font-size:.74rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--teal);border:1.5px solid var(--gold);border-radius:100px;padding:.55rem 1.05rem}
@media (max-width:760px){.founder__inner{grid-template-columns:1fr;gap:3rem}.founder__media{max-width:400px;margin:0 auto}}

/* =====================================================================
   v3.4 — tap-to-begin opening, blank failsafe, founder portrait, big accreditation
   ===================================================================== */
/* failsafe: never leave the page blank */
html.force-reveal [data-reveal]{opacity:1!important;transform:none!important}
html.force-reveal #intro{display:none!important}

/* opening gate — tap to begin (so the Om can actually play) */
.intro__cta{margin-top:1.7rem;background:var(--gold);color:var(--teal);border:0;border-radius:100px;
  padding:1rem 2.1rem;font-weight:800;font-size:.76rem;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;
  animation:ctaPulse 2.6s ease-in-out infinite}
@keyframes ctaPulse{0%,100%{box-shadow:0 0 0 0 rgba(210,155,51,.45)}55%{box-shadow:0 0 0 18px rgba(210,155,51,0)}}
.intro.started .intro__cta{opacity:0;pointer-events:none;transition:opacity .35s}
.intro__halo{opacity:0;animation:none}
.intro.started .intro__halo{animation:ripple 3.6s var(--ease) infinite}
.intro.started .intro__halo.two{animation-delay:.9s}
.intro.started .intro__halo.three{animation-delay:1.8s}
.intro__halo.three{width:460px;height:460px;border-color:var(--gold)}
.intro__glow{opacity:0}
.intro.started .intro__glow{animation:glowIn 1.5s var(--slow) forwards}

/* founder portrait framing — keep the face high in frame */
.founder__media img{object-position:center 8%}

/* accreditation — bigger marks */
.accred{gap:clamp(1.6rem,4vw,3.2rem)}
.accred img{height:clamp(74px,9vw,104px);opacity:1}

/* =====================================================================
   v3.8 — solid loader (no glitch) + bold chakra opening (no ripple)
   ===================================================================== */
/* per-page loader: SOLID cream cover + steady centred logo (no rotation) */
html.preload::before{content:"";position:fixed;inset:0;z-index:7000;background:var(--cream)}
html.preload::after{content:"";position:fixed;z-index:7001;top:50%;left:50%;width:84px;height:84px;margin:-42px 0 0 -42px;background:url('../assets/img/logo.png') center/contain no-repeat}
@keyframes chakraSpin{to{transform:rotate(360deg)}}

/* opening — bold spinning chakra + logo, centred, no ripple */
.intro{display:grid;place-items:center}
.intro__stage{position:relative;z-index:2;width:clamp(300px,46vw,460px);height:clamp(300px,46vw,460px);display:grid;place-items:center}
.intro__mandala{position:absolute;inset:0;width:100%;height:100%;opacity:.95;animation:chakraSpin 24s linear infinite}
.intro.started .intro__mandala{animation:chakraSpin 9s linear infinite}
.intro__logo{position:relative;z-index:3;width:clamp(104px,12vw,142px);height:auto;opacity:0;transform:scale(.85)}
.intro__logo.lit{opacity:1;transform:none;animation:none;transition:opacity 1s var(--slow),transform 1.1s var(--slow)}
.intro__words{position:absolute;z-index:4;left:0;right:0;top:73%;text-align:center;margin:0;padding:0 6vw}
.intro__trans{position:absolute;z-index:4;left:0;right:0;top:83%;text-align:center;margin:0}
.intro.dissolve .intro__stage,.intro.dissolve .intro__words,.intro.dissolve .intro__trans,.intro.dissolve .intro__enter{opacity:0;transition:opacity .55s var(--ease)}
.intro.dissolve{opacity:0;transition:opacity .6s .25s}

/* premium Enter */
.intro__enter{position:absolute;z-index:4;bottom:9vh;left:50%;transform:translateX(-50%);background:transparent;border:1.5px solid var(--gold);color:var(--teal);
  border-radius:100px;padding:.95rem 2.5rem;font-weight:700;font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;cursor:pointer;
  overflow:hidden;transition:color .4s;animation:enterGlow 2.8s ease-in-out infinite}
.intro__enter span{position:relative;z-index:1}
.intro__enter::before{content:"";position:absolute;inset:0;z-index:0;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
.intro__enter:hover{color:var(--ivory)}
.intro__enter:hover::before{transform:scaleX(1)}
@keyframes enterGlow{0%,100%{box-shadow:0 8px 30px -12px rgba(210,155,51,.35)}50%{box-shadow:0 0 0 9px rgba(210,155,51,.06),0 10px 38px -8px rgba(210,155,51,.55)}}
.intro.started .intro__enter{opacity:0;pointer-events:none;transition:opacity .3s}

/* =====================================================================
   v3.7 — richer "Meet your teacher" (face-led, all on the home page)
   ===================================================================== */
.founder__inner{grid-template-columns:1fr 1.06fr}
.founder__media{aspect-ratio:5/6}
.founder__media img{object-position:center 24%}
.founder__txt{color:var(--muted);font-size:1.02rem;line-height:1.62;margin:1rem 0 0;max-width:50ch}
.founder__stats{display:flex;flex-wrap:wrap;gap:1.3rem 2.1rem;margin:1.6rem 0 .2rem;border-top:1px solid var(--line);padding-top:1.4rem}
.founder__stats li{display:flex;flex-direction:column}
.founder__stats b{font-weight:800;font-size:1.42rem;color:var(--gold-2);line-height:1;letter-spacing:-.01em}
.founder__stats span{font-size:.7rem;color:var(--muted);letter-spacing:.06em;margin-top:.35rem;text-transform:uppercase}
.founder__quote{font-size:clamp(1.08rem,1.7vw,1.3rem);line-height:1.4;color:var(--teal);font-weight:600;border-left:3px solid var(--gold);padding-left:1.1rem;margin:1.5rem 0;max-width:40ch}
.founder__cta{display:flex;gap:.9rem;flex-wrap:wrap;margin-top:1.4rem}
@media (max-width:760px){.founder__media{max-width:380px;aspect-ratio:4/5}.founder__stats{gap:1rem 1.6rem}}

/* =====================================================================
   v5.0 — opening ceremony. GATE: a Vedic chakra turning with the logo
   seated in its centre + the "Arrive" button (the click is what lets the
   Om play). On click the gate blooms away, the chakra dims and slows, an
   ivory veil lifts the verse, and the shloka resolves word by word in teal
   (Apple-style heavy-blur-to-sharp). The verse blooms away and the overlay
   cross-dissolves straight into the site. No logo after the verse, ever.
   This block is authoritative and overrides all earlier .intro rules.
   ===================================================================== */
.intro{position:fixed;inset:0;z-index:10000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(1.6rem,4vh,2.8rem);--stage:min(82vw,58vh,480px);
  background:radial-gradient(125% 125% at 50% 42%,var(--ivory) 0%,var(--cream) 62%,var(--cream-2) 100%);
  transition:opacity .9s var(--ease),visibility .9s var(--ease)}
.intro.is-gone,.intro.dissolve{opacity:0;visibility:hidden}

/* GATE STAGE: chakra + logo seated in its centre */
.intro__stage{position:relative;z-index:1;width:var(--stage);height:var(--stage);
  display:grid;place-items:center;animation:gateIn 1.1s var(--slow) both}
.intro__mandala{position:absolute;inset:0;width:100%;height:100%;opacity:.92;transform-origin:50% 50%;
  animation:chakraSpin 34s linear infinite;filter:drop-shadow(0 6px 28px rgba(210,155,51,.16));will-change:transform}
.intro__seat{position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);width:23%;height:23%;border-radius:50%;
  background:radial-gradient(circle,rgba(255,252,245,.85) 0%,rgba(255,252,245,.5) 54%,rgba(251,246,234,0) 78%);filter:blur(1px)}
.intro__logo{position:absolute;z-index:3;left:50%;top:50%;width:19%;height:auto;border-radius:50%;
  opacity:0;transform:translate(-50%,-50%) scale(.9);filter:drop-shadow(0 8px 26px rgba(0,72,79,.16))}
.intro__logo.lit{opacity:1;transform:translate(-50%,-50%) scale(1);animation:none;transition:opacity 1s var(--slow),transform 1.2s var(--slow)}
.intro__logo.breathe{animation:logoBreath 5.4s ease-in-out infinite}
@keyframes logoBreath{0%,100%{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.035)}}
@keyframes gateIn{from{opacity:0;transform:translateY(14px);filter:blur(8px)}to{opacity:1;transform:none;filter:blur(0)}}

/* THE BUTTON: ghost outline, gold sweep on hover. The audio gesture. */
.intro__enter{position:relative;left:auto;right:auto;top:auto;bottom:auto;transform:none;z-index:7;flex:none;
  background:transparent;border:1.5px solid var(--gold);color:var(--teal);border-radius:100px;
  padding:.95rem 2.7rem;font-family:var(--f);font-weight:600;font-size:clamp(.95rem,1.5vw,1.06rem);
  letter-spacing:.12em;cursor:pointer;overflow:hidden;isolation:isolate;min-height:48px;
  opacity:0;animation:gateIn 1.1s var(--slow) .3s both;
  transition:color .45s var(--ease),transform .5s var(--slow),box-shadow .45s var(--ease)}
.intro__enter span{position:relative;z-index:1}
.intro__enter::before{content:"";position:absolute;inset:0;z-index:0;background:var(--gold);transform:scaleX(0);transform-origin:left center;transition:transform .5s var(--ease)}
.intro__enter:hover{color:var(--ivory);transform:translateY(-2px);box-shadow:0 14px 32px -12px rgba(210,155,51,.55)}
.intro__enter:hover::before,.intro__enter:active::before{transform:scaleX(1)}
.intro__skip{position:absolute;bottom:2rem;right:2.2rem;z-index:7;font-family:var(--f);font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--teal-soft);background:none;border:0;cursor:pointer;opacity:.5;transition:opacity .3s}
.intro__skip:hover{opacity:1}

/* CONTRAST VEIL: feathered ivory pool sitting between the chakra and the verse */
.intro__veil{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:4;
  width:min(120vw,940px);height:min(50vh,400px);border-radius:50%;pointer-events:none;opacity:0;
  background:radial-gradient(ellipse 58% 56% at 50% 50%,rgba(255,252,245,.97) 0%,rgba(255,252,245,.93) 32%,rgba(251,246,234,.6) 58%,rgba(251,246,234,0) 78%);
  filter:blur(8px)}

/* VERSE: centred over the chakra (can overflow the wheel), hidden until .started */
.intro__verse{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:6;width:min(94vw,980px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none}
.intro__words{position:static;margin:0;padding:0;width:100%;display:block;text-align:center;word-spacing:.08em;
  font-family:var(--f-deva);font-weight:600;color:var(--teal);font-size:clamp(2.4rem,7vw,4.7rem);line-height:1.2;letter-spacing:.004em;
  text-shadow:0 0 1px rgba(255,252,245,.92),0 0 16px rgba(255,252,245,.92),0 1px 0 rgba(255,252,245,.6)}
.intro__words .line{display:inline}
.intro__words .w{display:inline-block;margin:0 .12em;opacity:0;filter:blur(20px);transform:translateY(.4em) scale(1.06);transform-origin:50% 100%}
.intro.started .intro__words .w{opacity:1;filter:blur(0);transform:none;
  transition:filter .9s var(--slow),opacity .8s var(--slow),transform .9s var(--slow);transition-delay:calc(.3s + var(--i,0)*.42s)}
.intro__trans{position:static;margin:1.3rem 0 0;width:100%;text-align:center;font-family:var(--f);font-style:italic;font-weight:400;
  color:var(--gold-2);font-size:clamp(1.05rem,2.2vw,1.5rem);letter-spacing:.01em;opacity:0;filter:blur(8px);transform:translateY(.3em);
  text-shadow:0 0 10px rgba(255,252,245,.9)}
.intro.started .intro__trans{opacity:1;filter:blur(0);transform:none;transition:opacity .9s var(--ease),filter .9s var(--ease),transform .9s var(--ease);transition-delay:2.2s}

/* STARTED: gate exits, chakra dims + slows, veil blooms in */
.intro.started .intro__logo{opacity:0;transform:translate(-50%,-50%) scale(1.14);filter:blur(18px);animation:none;transition:opacity .7s var(--slow),transform .85s var(--slow),filter .7s var(--slow)}
.intro.started .intro__enter{opacity:0;transform:translateY(8px) scale(.96);pointer-events:none;animation:none;transition:opacity .5s var(--ease),transform .55s var(--ease)}
.intro.started .intro__skip{opacity:0;pointer-events:none;transition:opacity .4s}
.intro.started .intro__seat{opacity:0;transition:opacity .6s var(--ease)}
.intro.started .intro__mandala{opacity:.3;animation:chakraSpin 60s linear infinite;transition:opacity 1s var(--slow)}
.intro.started .intro__veil{opacity:1;transition:opacity 1s var(--ease) .3s}

/* FADE: the verse blooms away (Apple symmetry), chakra brightens for the exhale */
.intro.fade .intro__words .w,.intro.fade .intro__trans{opacity:0;filter:blur(28px);transform:translateY(-.24em) scale(1.05);transition:opacity 1.1s var(--ease),filter 1.2s var(--ease),transform 1.2s var(--ease)}
.intro.fade .intro__veil{opacity:0;transition:opacity 1.1s var(--ease)}
.intro.fade .intro__mandala{opacity:.5;transition:opacity 1s var(--slow)}

/* DISSOLVE straight into the site; no logo, ever */
.intro.dissolve .intro__mandala{opacity:0;transition:opacity .7s var(--ease)}

/* phone: two clean centred lines, nothing clipped */
@media (max-width:600px){
  .intro{--stage:min(90vw,56vh)}
  .intro__verse{padding:0 5vw}
  .intro__words{font-size:clamp(2.05rem,9vw,2.9rem);line-height:1.3}
  .intro__words .line{display:block}
  .intro__words .w{filter:blur(16px)}
  .intro__trans{font-size:clamp(.8rem,3vw,1rem);padding:0 2vw;margin-top:1rem;letter-spacing:0}
  .intro__veil{width:min(150vw,560px);height:min(46vh,400px);filter:blur(6px)}
  .intro__enter{padding:.85rem 2.2rem}
}

/* =====================================================================
   v6 — immersive retreat pages (zooming hero, info card, highlights,
   day-in-the-life, gallery + lightbox, film, inclusions, terms, CTA)
   ===================================================================== */
/* HERO: full-screen, slow Ken Burns zoom, teal scrim (never black) */
.rt-hero{position:relative;height:100svh;min-height:560px;overflow:hidden;display:flex;align-items:flex-end;color:var(--on-teal)}
.rt-hero__bg{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.04);animation:rtZoom 24s ease-in-out infinite alternate;will-change:transform}
@keyframes rtZoom{from{transform:scale(1.04)}to{transform:scale(1.18)}}
.rt-hero__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.rt-hero__scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,56,62,.34) 0%,rgba(0,56,62,0) 26%,rgba(0,56,62,.12) 58%,rgba(0,48,53,.78) 100%)}
.rt-hero__in{position:relative;z-index:2;width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--gut) clamp(2.4rem,6vh,5rem);display:grid;grid-template-columns:1.4fr .9fr;gap:2rem;align-items:end}
.rt-hero__eyebrow{font-weight:700;font-size:.72rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold-soft)}
.rt-hero__title{font-size:clamp(3.2rem,9vw,7rem);font-weight:800;letter-spacing:-.04em;line-height:.92;color:#fff;margin:.5rem 0 .3rem;text-shadow:0 4px 40px rgba(0,40,44,.5)}
.rt-hero__region{font-size:clamp(1rem,1.6vw,1.2rem);letter-spacing:.04em;color:var(--on-teal)}
.rt-hero__tag{font-family:var(--f-deva);font-style:italic;font-size:clamp(1.1rem,2vw,1.5rem);color:var(--gold-soft);margin-top:.8rem;max-width:24ch}
/* floating info card */
.rt-hero__info{background:rgba(255,252,245,.92);backdrop-filter:blur(10px);border-radius:18px;padding:1.5rem 1.6rem;box-shadow:0 30px 70px -30px rgba(0,40,44,.6);color:var(--ink);align-self:end}
.rt-hero__info ul{display:grid;gap:.9rem;margin-bottom:1.2rem}
.rt-hero__info li{display:flex;flex-direction:column;gap:.15rem;border-bottom:1px solid var(--line-2);padding-bottom:.7rem}
.rt-hero__info li:last-of-type{border-bottom:0;padding-bottom:0}
.rt-hero__info span{font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.rt-hero__info b{font-size:1.05rem;color:var(--teal);font-weight:700;letter-spacing:-.01em}
.rt-hero__info .btn{width:100%;justify-content:center}
.rt-scroll{position:absolute;left:50%;bottom:1.4rem;transform:translateX(-50%);z-index:2;color:var(--on-teal);font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;opacity:.8;display:flex;flex-direction:column;align-items:center;gap:.5rem}
.rt-scroll::after{content:"";width:1px;height:34px;background:linear-gradient(var(--gold-soft),transparent);animation:rtPulse 2.2s ease-in-out infinite}
@keyframes rtPulse{0%,100%{opacity:.3;transform:scaleY(.7)}50%{opacity:1;transform:scaleY(1)}}

/* HEADER over a full-bleed hero: light nav + soft top scrim until scrolled */
body:is(:has(.rt-hero),:has(.rx-film),:has(.ph-hero)) .site-header:not(.is-scrolled){background:none}
body:is(:has(.rt-hero),:has(.rx-film),:has(.ph-hero)) .site-header:not(.is-scrolled)::before{content:"";position:absolute;left:0;right:0;top:0;height:190%;z-index:-1;pointer-events:none;background:linear-gradient(180deg,rgba(0,46,51,.6) 0%,rgba(0,46,51,.28) 45%,rgba(0,46,51,0) 100%)}
body:is(:has(.rt-hero),:has(.rx-film),:has(.ph-hero)) .site-header:not(.is-scrolled) .brand__word{color:var(--on-teal);text-shadow:0 1px 14px rgba(0,40,44,.5)}
body:is(:has(.rt-hero),:has(.rx-film),:has(.ph-hero)) .site-header:not(.is-scrolled) .nav a{color:#fff;opacity:.92;text-shadow:0 1px 14px rgba(0,40,44,.5)}
body:is(:has(.rt-hero),:has(.rx-film),:has(.ph-hero)) .site-header:not(.is-scrolled) .link-arrow{color:var(--gold-soft)}
body:is(:has(.rt-hero),:has(.rx-film),:has(.ph-hero)) .site-header:not(.is-scrolled) .burger span{background:#fff}

/* INTRO / overview */
.rt-intro{padding:clamp(3.5rem,8vw,7rem) var(--gut);max-width:900px;margin:0 auto;text-align:center}
.rt-intro p{font-size:clamp(1.1rem,1.7vw,1.35rem);line-height:1.7;color:var(--muted);margin-bottom:1.3rem}
.rt-quote{font-family:var(--f-deva);font-style:italic;font-size:clamp(1.5rem,3.4vw,2.6rem);line-height:1.32;color:var(--teal);max-width:20ch;margin:clamp(2rem,5vw,3.5rem) auto 0;position:relative}
.rt-quote::before{content:"";display:block;width:46px;height:2px;background:var(--gold);margin:0 auto 1.6rem}

/* HIGHLIGHTS */
.rt-high{padding:clamp(3rem,7vw,6rem) var(--gut);background:linear-gradient(180deg,var(--cream),var(--cream-2))}
.rt-high__grid{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.4rem,3vw,2.4rem)}
.rt-h{background:var(--ivory);border:1px solid var(--line-2);border-radius:18px;padding:1.8rem 1.6rem;transition:transform .5s var(--slow),box-shadow .5s var(--ease)}
.rt-h:hover{transform:translateY(-5px);box-shadow:0 30px 56px -34px rgba(0,72,79,.34)}
.rt-h__ic{width:46px;height:46px;color:var(--gold-2);margin-bottom:1rem}
.rt-h__ic svg{width:100%;height:100%}
.rt-h h3{font-size:1.18rem;font-weight:700;margin-bottom:.5rem}
.rt-h p{color:var(--muted);font-size:.95rem;line-height:1.6}

/* DAY IN THE LIFE */
.rt-day{padding:clamp(3.5rem,8vw,7rem) var(--gut);max-width:760px;margin:0 auto}
.rt-day__head{text-align:center;margin-bottom:clamp(2rem,4vw,3rem)}
.rt-day__list{display:grid;gap:0}
.rt-d{display:grid;grid-template-columns:130px 1fr;gap:1.4rem;padding:1.3rem 0;border-top:1px solid var(--line);align-items:baseline}
.rt-d:last-child{border-bottom:1px solid var(--line)}
.rt-d__t{font-weight:800;color:var(--gold-2);font-size:1.02rem;letter-spacing:.02em}
.rt-d__a{color:var(--teal);font-size:1.12rem;font-weight:600}

/* GALLERY */
.rt-gal{padding:clamp(3rem,6vw,5rem) var(--gut) clamp(3.5rem,8vw,7rem)}
.rt-gal__grid{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.rt-gal__grid figure{margin:0;overflow:hidden;border-radius:16px;aspect-ratio:4/3;cursor:zoom-in;background:var(--cream-3)}
.rt-gal__grid figure:nth-child(1){grid-column:span 2;grid-row:span 2;aspect-ratio:auto}
.rt-gal__grid img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--slow)}
.rt-gal__grid figure:hover img{transform:scale(1.06)}
/* lightbox */
.rt-lb{position:fixed;inset:0;z-index:11000;background:rgba(0,40,44,.92);display:flex;align-items:center;justify-content:center;padding:4vw;opacity:0;visibility:hidden;transition:opacity .4s var(--ease),visibility .4s}
.rt-lb.open{opacity:1;visibility:visible}
.rt-lb img{max-width:100%;max-height:90vh;border-radius:10px;box-shadow:0 40px 100px -30px rgba(0,0,0,.6)}
.rt-lb__x{position:absolute;top:1.4rem;right:1.6rem;width:44px;height:44px;border-radius:50%;border:1.5px solid rgba(255,252,245,.6);background:none;color:var(--on-teal);font-size:1.3rem;cursor:pointer}

/* FILM */
.rt-film{padding:clamp(3.5rem,8vw,7rem) var(--gut);background:linear-gradient(180deg,var(--cream-2),var(--cream))}
.rt-film__head{text-align:center;max-width:640px;margin:0 auto clamp(2rem,4vw,3rem)}
.rt-film__frame{position:relative;max-width:1000px;margin:0 auto;aspect-ratio:16/9;border-radius:22px;overflow:hidden;box-shadow:0 50px 100px -40px rgba(0,72,79,.55);cursor:pointer;background:var(--teal)}
.rt-film__frame img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--slow),filter .6s}
.rt-film__frame:hover img{transform:scale(1.04)}
.rt-film__play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.rt-film__play span{width:84px;height:84px;border-radius:50%;background:rgba(255,252,245,.94);display:flex;align-items:center;justify-content:center;box-shadow:0 20px 50px -16px rgba(0,40,44,.6);transition:transform .4s var(--slow)}
.rt-film__frame:hover .rt-film__play span{transform:scale(1.08)}
.rt-film__play span::after{content:"";margin-left:5px;border-style:solid;border-width:13px 0 13px 22px;border-color:transparent transparent transparent var(--teal)}
.rt-film__frame iframe{width:100%;height:100%;border:0;display:block}

/* INCLUSIONS */
.rt-incl{padding:clamp(3.5rem,8vw,7rem) var(--gut)}
.rt-incl__in{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2rem,5vw,4rem);align-items:start}
.rt-incl h2{font-size:clamp(2rem,4vw,3rem)}
.rt-incl ul{display:grid;grid-template-columns:1fr 1fr;gap:.9rem 1.6rem}
.rt-incl li{display:flex;gap:.7rem;align-items:flex-start;color:var(--ink);font-size:1rem;line-height:1.5}
.rt-incl li::before{content:"";flex:none;width:18px;height:18px;margin-top:2px;border-radius:50%;background:var(--gold-soft);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300484F' stroke-width='3'%3E%3Cpath d='M5 12l4 4L19 7'/%3E%3C/svg%3E");background-size:13px;background-repeat:no-repeat;background-position:center}

/* TERMS */
.rt-terms{padding:clamp(3rem,6vw,5rem) var(--gut) clamp(4rem,9vw,8rem);background:var(--cream-2)}
.rt-terms__in{max-width:920px;margin:0 auto}
.rt-terms__head{text-align:center;margin-bottom:clamp(1.6rem,3vw,2.4rem)}
.rt-acc{border-top:1px solid var(--line)}
.rt-acc details{border-bottom:1px solid var(--line)}
.rt-acc summary{list-style:none;cursor:pointer;padding:1.15rem .2rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;font-weight:700;color:var(--teal);font-size:1.05rem}
.rt-acc summary::-webkit-details-marker{display:none}
.rt-acc summary::after{content:"+";font-weight:400;font-size:1.5rem;color:var(--gold-2);transition:transform .3s}
.rt-acc details[open] summary::after{transform:rotate(45deg)}
.rt-acc p{padding:0 .2rem 1.2rem;color:var(--muted);line-height:1.65;max-width:70ch}

/* CTA */
.rt-cta{padding:clamp(4rem,9vw,7rem) var(--gut);text-align:center;background:var(--teal);color:var(--on-teal)}
.rt-cta h2{color:#fff;font-size:clamp(2rem,4.5vw,3.4rem);max-width:20ch;margin:0 auto 1.6rem}
.rt-cta p{color:var(--on-teal-dim);max-width:48ch;margin:0 auto 2rem}
.rt-back{display:inline-flex;align-items:center;gap:.5rem;margin-top:1.6rem;color:var(--on-teal-dim);font-size:.8rem;letter-spacing:.1em;text-transform:uppercase}

@media (max-width:860px){
  .rt-hero__in{grid-template-columns:1fr;gap:1.4rem}
  .rt-hero__info{order:2}
  .rt-high__grid{grid-template-columns:1fr 1fr}
  .rt-incl__in{grid-template-columns:1fr;gap:1.5rem}
  .rt-gal__grid{grid-template-columns:1fr 1fr}
  .rt-gal__grid figure:nth-child(1){grid-column:span 2}
}
@media (max-width:560px){
  .rt-high__grid{grid-template-columns:1fr}
  .rt-incl ul{grid-template-columns:1fr}
  .rt-d{grid-template-columns:88px 1fr;gap:1rem}
  .rt-gal__grid{grid-template-columns:1fr}
  .rt-gal__grid figure,.rt-gal__grid figure:nth-child(1){grid-column:span 1;aspect-ratio:4/3}
}

/* =====================================================================
   v7 — retreats main page: 3D intro, cinematic film, interactive map
   ===================================================================== */
/* 3D INTRO */
.rx-intro{position:fixed;inset:0;z-index:9000;display:grid;place-items:center;text-align:center;padding:0 8vw;
  background:radial-gradient(120% 120% at 50% 40%,var(--ivory),var(--cream) 72%);perspective:1200px;isolation:isolate;
  transition:opacity 1.1s var(--ease),visibility 1.1s var(--ease)}
.rx-intro.gone{opacity:0;visibility:hidden}
.rx-intro__eye{font-weight:700;font-size:.74rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-2);opacity:0;animation:rxFade 1s var(--ease) .2s forwards}
.rx-intro__title{margin:.8rem 0 0;font-weight:800;font-size:clamp(2.4rem,7.4vw,6.2rem);letter-spacing:-.035em;line-height:1.02;color:var(--teal)}
.rx-intro__title span{display:inline-block;opacity:0;transform:rotateX(78deg) translateY(34px);transform-origin:50% 100%;animation:rxWord 1s var(--slow) forwards}
@keyframes rxWord{to{opacity:1;transform:none}}
@keyframes rxFade{to{opacity:1}}
.rx-intro__sub{margin-top:1.2rem;color:var(--muted);font-size:clamp(1rem,1.6vw,1.2rem);opacity:0;animation:rxFade 1.1s var(--ease) 1.3s forwards}

/* FILM hero */
.rx-film{position:relative;height:100svh;min-height:560px;overflow:hidden;background:var(--teal);color:var(--on-teal)}
.rx-film video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.rx-film__scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,52,57,.5) 0%,rgba(0,52,57,.08) 30%,rgba(0,46,51,.2) 60%,rgba(0,44,49,.82) 100%)}
.rx-film__in{position:relative;z-index:2;height:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--gut) clamp(3rem,8vh,6rem);display:flex;flex-direction:column;justify-content:flex-end}
.rx-film__eye{font-weight:700;font-size:.74rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold-soft)}
.rx-film__title{font-size:clamp(2.6rem,7.5vw,6.4rem);font-weight:800;letter-spacing:-.04em;line-height:.96;color:#fff;margin:.5rem 0 .6rem;max-width:16ch;text-shadow:0 4px 40px rgba(0,40,44,.5)}
.rx-film__lede{max-width:46ch;color:var(--on-teal);font-size:clamp(1rem,1.5vw,1.2rem);line-height:1.6}
.rx-film__sound{position:absolute;z-index:3;right:var(--gut);bottom:clamp(3rem,8vh,6rem);display:flex;align-items:center;gap:.6rem;background:rgba(255,252,245,.16);backdrop-filter:blur(8px);border:1px solid rgba(255,252,245,.4);color:#fff;border-radius:100px;padding:.7rem 1.2rem;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;transition:background .3s}
.rx-film__sound:hover{background:rgba(255,252,245,.28)}
.rx-film__sound svg{width:16px;height:16px}

/* INTERACTIVE MAP */
/* full-screen immersive constellation map on deep teal */
.rx-map{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:center;align-items:center;
  padding:clamp(4.5rem,9vh,7rem) var(--gut) clamp(3rem,6vh,5rem);overflow:hidden;color:var(--on-teal);
  background:radial-gradient(135% 115% at 50% -5%,var(--teal-soft) 0%,var(--teal) 48%,var(--teal-2) 100%)}
/* auto-scrolling photo collage behind the map */
.rx-map__bg{position:absolute;inset:0;z-index:0;display:flex;flex-direction:column;gap:0;overflow:hidden}
.rx-map__row{flex:1;min-height:0;display:flex;gap:2px;width:max-content;animation:rxScroll 72s linear infinite}
.rx-map__row.rev{animation-direction:reverse;animation-duration:90s}
.rx-map__row.slow{animation-duration:104s}
.rx-map__row img{height:100%;width:auto;flex:none;object-fit:cover;filter:blur(2.5px) brightness(.62) saturate(1.08);transform:scale(1.05)}
@keyframes rxScroll{to{transform:translateX(-50%)}}
.rx-map__veil{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:radial-gradient(125% 125% at 50% 42%,rgba(0,50,55,.4),rgba(0,46,51,.6) 58%,rgba(0,42,47,.72) 100%)}
.rx-map__head{text-align:center;max-width:700px;margin:0 auto clamp(1.4rem,3vh,2.6rem);position:relative;z-index:2}
.rx-map__head .eyebrow{color:var(--gold-soft)}
.rx-map__head .sec-title{color:#fff}
.rx-map__head .lede{color:var(--on-teal-dim)}
.rx-map__stage{position:relative;z-index:2;width:min(94vw,calc(70vh * 640 / 565));aspect-ratio:640/565;margin:0 auto}
.rx-map__dots{position:absolute;inset:0;background:var(--gold-soft);opacity:.92;
  -webkit-mask:url('../assets/img/retreat-map.svg') center/contain no-repeat;mask:url('../assets/img/retreat-map.svg') center/contain no-repeat;
  filter:drop-shadow(0 1px 2px rgba(0,24,27,.9))}
.rx-route{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.rx-route path,.rx-route polyline{fill:none;stroke:var(--gold-soft);stroke-width:1.2;stroke-dasharray:3 6;opacity:.5;stroke-linejoin:round}
.rx-mk{position:absolute;transform:translate(-50%,-50%);z-index:3;display:grid;place-items:center;background:none;border:0;cursor:pointer;padding:0}
.rx-mk__dot{width:14px;height:14px;border-radius:50%;background:var(--gold-soft);box-shadow:0 0 12px 2px rgba(231,199,120,.6);animation:rxPulse 2.6s var(--ease) infinite}
.rx-mk:nth-child(even) .rx-mk__dot{animation-delay:1.1s}
@keyframes rxPulse{0%{box-shadow:0 0 12px 2px rgba(231,199,120,.6),0 0 0 0 rgba(231,199,120,.5)}70%{box-shadow:0 0 12px 2px rgba(231,199,120,.6),0 0 0 16px rgba(231,199,120,0)}100%{box-shadow:0 0 12px 2px rgba(231,199,120,.6),0 0 0 0 rgba(231,199,120,0)}}
.rx-mk__label{margin-top:.45rem;font-size:.64rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#fff;white-space:nowrap;background:rgba(0,40,45,.62);padding:.18rem .5rem;border-radius:6px;backdrop-filter:blur(3px)}
.rx-mk__card{position:absolute;bottom:calc(100% + 12px);left:50%;transform:translate(-50%,8px);width:200px;background:var(--ivory);border-radius:14px;overflow:hidden;box-shadow:0 26px 60px -18px rgba(0,0,0,.55);opacity:0;visibility:hidden;transition:opacity .35s var(--ease),transform .35s var(--slow);pointer-events:none;z-index:5}
.rx-mk__card img{width:100%;height:110px;object-fit:cover;display:block}
.rx-mk__card b{display:block;padding:.6rem .8rem .1rem;color:var(--teal);font-size:1.02rem}
.rx-mk__card span{display:block;padding:0 .8rem .5rem;color:var(--muted);font-size:.78rem;line-height:1.4}
.rx-mk__go{display:block;padding:0 .8rem .8rem;color:var(--gold-2);font-weight:700;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase}
.rx-mk:hover .rx-mk__dot,.rx-mk:focus-visible .rx-mk__dot,.rx-mk.is-on .rx-mk__dot{background:#fff;transform:scale(1.3)}
.rx-mk:hover .rx-mk__card,.rx-mk:focus-within .rx-mk__card,.rx-mk.is-on .rx-mk__card{opacity:1;visibility:visible;transform:translate(-50%,0);pointer-events:auto}
@media (max-width:760px){
  .rx-map__stage{width:min(94vw,calc(64vh * 640 / 565))}
  .rx-mk__label{font-size:.54rem}
  .rx-mk__card{width:150px}
  .rx-mk__card img{height:86px}
}

/* =====================================================================
   v8 — shared premium PAGE HERO (.ph-hero), reused across every page
   ===================================================================== */
.ph-hero{position:relative;height:100svh;min-height:560px;overflow:hidden;display:flex;align-items:flex-end;color:var(--on-teal)}
.ph-hero__media{position:absolute;inset:0;z-index:0;background:var(--teal)}
.ph-hero__media img{width:100%;height:100%;object-fit:cover;object-position:var(--pos,center);transform:scale(1.04);animation:rtZoom 26s ease-in-out infinite alternate;will-change:transform}
.ph-hero::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(0,56,62,.36) 0%,rgba(0,56,62,0) 30%,rgba(0,48,53,.5) 62%,rgba(0,42,47,.82) 100%)}
.ph-hero__in{position:relative;z-index:2;width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--gut) clamp(2.6rem,6vh,5rem)}
.ph-hero__eyebrow{font-weight:700;font-size:.74rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold-soft)}
.ph-hero__title{font-size:clamp(2.7rem,7vw,5.8rem);font-weight:800;letter-spacing:-.035em;line-height:.99;color:#fff;margin:.6rem 0 .6rem;max-width:18ch;text-shadow:0 4px 44px rgba(0,38,42,.55)}
.ph-hero__lede{max-width:54ch;color:var(--on-teal);font-size:clamp(1.04rem,1.6vw,1.3rem);line-height:1.6;text-shadow:0 2px 20px rgba(0,38,42,.4)}
.ph-hero__title em{font-style:normal;color:var(--gold-soft)}
.ph-hero .hero__cta{margin-top:1.7rem;display:flex;gap:.9rem;flex-wrap:wrap}
.ph-hero .btn--outline{border-color:rgba(255,252,245,.55);color:#fff}
.ph-hero .btn--outline:hover{background:rgba(255,252,245,.12);border-color:#fff}
.ph-hero__trust{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .9rem;margin-top:1.5rem;list-style:none;color:var(--on-teal-dim);font-size:.82rem;letter-spacing:.03em}
.ph-hero__trust .dot{opacity:.45}
.ph-hero__scroll{position:absolute;left:50%;bottom:1.3rem;transform:translateX(-50%);z-index:2;color:var(--on-teal);font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;opacity:.8}
@media (max-width:600px){.ph-hero{height:clamp(440px,70svh,620px)}.ph-hero__title{font-size:clamp(2.3rem,10vw,3.4rem)}}

/* =====================================================================
   v9 — editorial polish: press feature card, refined event rows
   ===================================================================== */
/* press: lead story spans two columns as a feature */
.press-grid .parc:first-child{grid-column:span 2}
.press-grid .parc:first-child .parc__img{aspect-ratio:21/9}
.press-grid .parc:first-child .parc__body{padding:1.6rem 2rem 1.8rem}
.press-grid .parc:first-child h3{font-size:clamp(1.4rem,2.4vw,2rem);letter-spacing:-.01em}
@media (max-width:1024px){.press-grid .parc:first-child{grid-column:span 2}}
@media (max-width:620px){.press-grid .parc:first-child{grid-column:span 1}.press-grid .parc:first-child .parc__img{aspect-ratio:16/10}}

/* events: refined rows with a gold accent on hover, stronger date block */
.ev{position:relative;overflow:hidden}
.ev::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:0 3px 3px 0;background:var(--gold);transform:scaleY(0);transform-origin:center;transition:transform .45s var(--slow)}
.ev:hover::before{transform:scaleY(1)}
.ev__date{padding-right:1.4rem;border-right:1px solid var(--line-2)}
.ev__date b{font-size:2.1rem;letter-spacing:-.02em}
.ev__body h3{letter-spacing:-.01em;transition:color .3s}
.ev:hover .ev__body h3{color:var(--teal-soft)}

/* contact: an immersive teal moment with the form floating as a card */
.contact-sec{background:radial-gradient(130% 120% at 12% -5%,var(--teal-soft),var(--teal) 52%,var(--teal-2) 100%);color:var(--on-teal);padding:clamp(4rem,9vw,8rem) var(--gut)}
.contact-sec__in{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(2.5rem,6vw,6rem);align-items:start}
.contact-info .eyebrow{color:var(--gold-soft)}
.contact-info__title{color:#fff;font-size:clamp(2rem,4.2vw,3.3rem);font-weight:800;letter-spacing:-.03em;line-height:1.02;margin:.8rem 0 1rem}
.contact-info__lede{color:var(--on-teal-dim);max-width:38ch;font-size:1.08rem;line-height:1.62;margin-bottom:2.4rem}
.contact-info__list{list-style:none;display:grid;gap:1.4rem;border-top:1px solid var(--line-teal);padding-top:1.8rem;margin:0}
.contact-info__list li{display:flex;flex-direction:column;gap:.3rem}
.contact-info__list b{color:var(--gold-soft);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700}
.contact-info__list span{color:var(--on-teal);font-size:1.02rem;line-height:1.5}
.contact-info__list a{color:var(--gold-soft);text-decoration:none}
.contact-info__social{display:flex;flex-wrap:wrap;gap:1.3rem;margin-top:2.2rem}
.contact-info__social .link-arrow{color:var(--gold-soft)}
.cform--card{background:var(--cream-2);border-radius:22px;padding:clamp(1.8rem,3vw,2.6rem);box-shadow:0 50px 90px -50px rgba(0,26,30,.7);color:var(--ink)}
@media (max-width:860px){.contact-sec__in{grid-template-columns:1fr;gap:2.4rem}}

/* ============================================================
   v10 · premium section kit
   icon feature cards · who-it's-for · gallery · event feature · elevated newsletter
   ============================================================ */

/* --- icon feature cards (At Home, reusable) --- */
.feacards{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2.2vw,1.7rem)}
.feac{position:relative;background:var(--ivory);border:1px solid rgba(0,72,79,.09);border-radius:22px;padding:clamp(1.9rem,2.6vw,2.5rem);box-shadow:0 1px 2px rgba(0,72,79,.05);transition:transform .55s var(--ease),box-shadow .55s var(--ease);overflow:hidden;isolation:isolate}
.feac::before{content:"";position:absolute;left:0;top:0;width:100%;height:3px;background:linear-gradient(90deg,var(--gold),var(--gold-soft));transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease)}
.feac:hover{transform:translateY(-6px);box-shadow:0 36px 64px -42px rgba(0,72,79,.42)}
.feac:hover::before{transform:scaleX(1)}
.feac__no{position:absolute;right:1.5rem;top:1.05rem;font-size:2.6rem;font-weight:800;line-height:1;color:rgba(0,72,79,.07);letter-spacing:-.04em;z-index:-1}
.feac__ic{width:58px;height:58px;border-radius:17px;background:radial-gradient(120% 120% at 30% 22%,var(--cream-2),var(--cream-3));display:grid;place-items:center;margin-bottom:1.4rem;box-shadow:inset 0 0 0 1px rgba(210,155,51,.18)}
.feac__ic svg{width:28px;height:28px;stroke:var(--teal);stroke-width:1.5;fill:none;stroke-linecap:round;stroke-linejoin:round}
.feac__k{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-2);font-weight:700}
.feac h3{font-size:1.36rem;margin:.4rem 0 .55rem;color:var(--teal);font-weight:800}
.feac p{color:var(--muted);font-size:.97rem;line-height:1.6;margin:0}

/* --- who it's for (Academy) --- */
.whofor{display:grid;grid-template-columns:1.04fr .96fr;gap:clamp(1.8rem,4vw,3.6rem);align-items:stretch}
.whofor__card{position:relative;overflow:hidden;background:linear-gradient(155deg,var(--teal),var(--teal-2));color:var(--on-teal);border-radius:28px;padding:clamp(2.2rem,4vw,3.4rem);box-shadow:0 48px 96px -60px rgba(0,40,45,.7)}
.whofor__card::after{content:"";position:absolute;right:-90px;bottom:-90px;width:300px;height:300px;border-radius:50%;border:1px solid rgba(231,199,120,.16);box-shadow:0 0 0 30px rgba(231,199,120,.05)}
.whofor__card .eyebrow{color:var(--gold-soft)}
.whofor__card h2{color:var(--ivory);font-size:clamp(1.8rem,3.1vw,2.6rem);margin:.9rem 0 1.7rem;font-weight:800;line-height:1.04;letter-spacing:-.025em}
.whofor__list{list-style:none;margin:0;display:grid;gap:1.15rem;position:relative;z-index:1}
.whofor__list li{position:relative;padding-left:2.4rem;color:var(--on-teal-dim);line-height:1.5;font-size:.98rem}
.whofor__list li b{display:block;color:var(--ivory);font-weight:700;font-size:1.06rem;margin-bottom:.12rem;letter-spacing:-.01em}
.whofor__list li::before{content:"";position:absolute;left:0;top:1px;width:24px;height:24px;border-radius:50%;background:var(--gold-soft);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300484F' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l4 4L19 7'/%3E%3C/svg%3E");background-size:14px;background-repeat:no-repeat;background-position:center}
.whofor__cta{margin-top:2rem;position:relative;z-index:1}
.whofor__curr{align-self:center}
.curr-list{list-style:none;margin:1.5rem 0 0;display:grid}
.curr-list li{display:grid;grid-template-columns:auto 1fr;gap:1.2rem;padding:1.05rem .2rem;border-top:1px solid var(--line);align-items:baseline}
.curr-list li:last-child{border-bottom:1px solid var(--line)}
.curr-list .n{font-weight:800;color:var(--gold-2);font-size:1.02rem;font-variant-numeric:tabular-nums;min-width:1.4rem}
.curr-list .t{color:var(--ink);line-height:1.45;font-size:1.02rem}

/* --- gallery band (Studio) --- */
.gallery{background:linear-gradient(165deg,var(--teal),var(--teal-2));color:var(--on-teal);padding:clamp(4rem,8vw,7rem) 0}
.gallery__head{max-width:var(--maxw);margin:0 auto;padding:0 var(--gut);display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem 2rem;margin-bottom:clamp(2rem,4vw,3rem)}
.gallery__head .eyebrow{color:var(--gold-soft)}
.gallery__head h2{color:var(--ivory);font-size:clamp(1.9rem,3.6vw,3rem);font-weight:800;letter-spacing:-.03em;margin-top:.6rem}
.gallery__head p{color:var(--on-teal-dim);max-width:40ch}
.sgal{max-width:var(--maxw);margin:0 auto;padding:0 var(--gut);display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:clamp(130px,15vw,180px);gap:14px}
.sgal figure{margin:0;overflow:hidden;border-radius:18px;position:relative;background:var(--teal-2)}
.sgal img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.3s var(--ease)}
.sgal figure:hover img{transform:scale(1.07)}
.sgal .big{grid-column:span 2;grid-row:span 2}
.sgal .wide{grid-column:span 2}

/* --- next gathering feature (Events) --- */
.evfeat{display:grid;grid-template-columns:1.1fr 1fr;gap:0;background:linear-gradient(155deg,var(--teal),var(--teal-2));border-radius:26px;overflow:hidden;color:var(--on-teal);text-decoration:none;box-shadow:0 48px 96px -60px rgba(0,40,45,.7);margin-bottom:clamp(1.6rem,3vw,2.4rem);transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.evfeat:hover{transform:translateY(-4px);box-shadow:0 60px 110px -60px rgba(0,40,45,.78)}
.evfeat__media{position:relative;overflow:hidden;min-height:300px}
.evfeat__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%;transition:transform 1.4s var(--ease)}
.evfeat:hover .evfeat__media img{transform:scale(1.06)}
.evfeat__body{padding:clamp(2rem,4vw,3.4rem);display:flex;flex-direction:column;justify-content:center}
.evfeat__tag{display:inline-flex;align-items:center;gap:.5rem;align-self:flex-start;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--teal);background:var(--gold-soft);padding:.4rem .9rem;border-radius:100px;margin-bottom:1.1rem}
.evfeat__date{color:var(--gold-soft);font-weight:700;letter-spacing:.04em;font-size:.95rem}
.evfeat h3{color:var(--ivory);font-size:clamp(1.6rem,3vw,2.3rem);font-weight:800;letter-spacing:-.025em;line-height:1.06;margin:.5rem 0 .7rem}
.evfeat p{color:var(--on-teal-dim);margin:0 0 1.6rem;line-height:1.55}
.evfeat .btn{align-self:flex-start}

/* --- elevated newsletter: inset teal jewel panel --- */
.newsletter{max-width:1080px;margin:clamp(2rem,5vw,4.5rem) auto;background:linear-gradient(160deg,var(--teal-soft),var(--teal) 46%,var(--teal-2));color:var(--on-teal);text-align:center;border-radius:32px;padding:clamp(3rem,6vw,5rem) clamp(1.5rem,5vw,4rem);position:relative;overflow:hidden;box-shadow:0 50px 100px -60px rgba(0,40,45,.7)}
.newsletter::after{content:"";position:absolute;left:50%;top:-46%;transform:translateX(-50%);width:120%;height:170%;background:radial-gradient(48% 38% at 50% 32%,rgba(231,199,120,.16),transparent 70%);pointer-events:none}
.newsletter>*{position:relative;z-index:1;max-width:52ch;margin-left:auto;margin-right:auto}
.newsletter .eyebrow{color:var(--gold-soft)}
.newsletter h2{color:var(--ivory)}
.newsletter h2::after{content:"";display:block;width:48px;height:2px;background:var(--gold);margin:1.1rem auto 0}
.newsletter p{color:var(--on-teal-dim)}
.newsletter .subscribe input{background:rgba(255,252,245,.97);border-color:transparent}
.newsletter .form-note{color:var(--on-teal-dim)}
@media (max-width:1140px){.newsletter{margin-left:var(--gut);margin-right:var(--gut)}}

@media (max-width:860px){
  .feacards{grid-template-columns:1fr}
  .whofor{grid-template-columns:1fr;gap:2rem}
  .evfeat{grid-template-columns:1fr}
  .evfeat__media{min-height:230px;order:-1}
  .sgal{grid-template-columns:repeat(2,1fr)}
  .sgal .big{grid-column:span 2;grid-row:span 1}
  .sgal .wide{grid-column:span 2}
}

/* ============================================================
   v11 · polish · eyebrow ticks · gateway accent · footer warmth · invocation ornament
   ============================================================ */
.sec-head>.eyebrow,.split .prose>.eyebrow{position:relative;padding-left:42px}
.sec-head>.eyebrow::before,.split .prose>.eyebrow::before{content:"";position:absolute;left:0;top:.5em;width:30px;height:2px;background:var(--gold)}

/* gateways: gold tick before the number */
.gw__no{display:inline-flex;align-items:center;gap:.65rem}
.gw__no::before{content:"";width:20px;height:1px;background:var(--gold);opacity:.75}

/* invocation: flanking gold marks */
.invocation .sa{display:inline-block}
.invocation .sa::before,.invocation .sa::after{content:"\2666";color:var(--gold);font-size:.42em;vertical-align:.45em;margin:0 .9em;opacity:.55}

/* footer warmth: gold hairline + shared blessing */
.site-footer{border-top:3px solid transparent;border-image:linear-gradient(90deg,var(--gold-2),var(--gold-soft),var(--gold-2)) 1}
.footer__bless{max-width:var(--maxw);margin:0 auto;text-align:center;padding-bottom:clamp(2.2rem,4vw,3.2rem);margin-bottom:clamp(2.2rem,4vw,3.2rem);border-bottom:1px solid var(--line-teal)}
.footer__bless .sa{font-family:var(--f-deva);font-size:clamp(1.3rem,2.6vw,1.9rem);color:var(--gold-soft);line-height:1.3}
.footer__bless .en{font-style:italic;color:var(--on-teal-dim);margin-top:.5rem;font-size:.95rem}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  [data-reveal]{opacity:1;transform:none}
  .intro__words .w,.intro__logo{opacity:1;filter:none;transform:none}
  .rt-hero__bg,.ph-hero__media img{animation:none}
  .rx-intro__title span,.rx-intro__eye,.rx-intro__sub{opacity:1!important;transform:none!important}
}


/* ============================================================
   v12 :: retreat component redesigns (DK punch-list)
   day arc timeline, terms accordion, what-to-expect cards,
   testimonials, cinematic video CTA. Critic fixes appended last.
   ============================================================ */


/* ----- v12:day ----- */

/* =========================================================================
   A DAY ON RETREAT : Day Arc Timeline
   Drop-in, appended at the very end of the stylesheet.
   CSS-only. Markup unchanged. Works for any 5 to 7 items.

   Concept: a single luminous rail runs the height of the day, lit warm
   gold at dawn and easing to deep teal at dusk. Each hour is a station:
   a glowing node on the rail, a gold time chip set in a soft well,
   and the editorial activity line. The rail lives in a fixed center
   column; time sits left, activity sits right, like an illuminated
   manuscript margin. Hover gently warms and lifts one station.
   ========================================================================= */

.rt-day{
  padding:clamp(3.75rem,8.5vw,7.5rem) var(--gut);
  max-width:780px;
  margin:0 auto;
}

/* ---- Head: keep centered, add a soft sunrise mark above the eyebrow ---- */
.rt-day .rt-day__head{
  position:relative;
  text-align:center;
  margin-bottom:clamp(2.4rem,5vw,3.6rem);
  padding-top:2.1rem;
}
.rt-day .rt-day__head::before{
  content:"";
  position:absolute;
  top:0;
  left:50%;
  transform:translateX(-50%);
  width:46px;
  height:46px;
  border-radius:50%;
  /* a rising sun: warm gold core melting into cream */
  background:
    radial-gradient(circle at 50% 56%,
      var(--gold-soft) 0%,
      rgba(231,199,120,.55) 38%,
      rgba(231,199,120,0) 70%);
  box-shadow:0 0 0 1px var(--line-2);
  opacity:.92;
}
.rt-day .rt-day__head::after{
  content:"";
  position:absolute;
  top:23px;
  left:50%;
  transform:translateX(-50%);
  width:128px;
  height:1px;
  background:linear-gradient(90deg,
    rgba(210,155,51,0) 0%,
    var(--gold) 50%,
    rgba(210,155,51,0) 100%);
  opacity:.7;
}

/* ============================ THE LIST / RAIL ===========================
   Three implicit zones per row achieved with a fixed center column.
   The rail is a continuous gradient line painted by ::before on the list,
   so it spans every item regardless of count.
   --------------------------------------------------------------------- */

.rt-day .rt-day__list{
  position:relative;
  display:grid;
  gap:0;
  /* breathing room so end-cap glows are not clipped */
  padding:.5rem 0 .25rem;
}

/* The day rail: a single luminous line, dawn gold to dusk teal. */
.rt-day .rt-day__list::before{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  /* sits in the gap between the time column and the activity column */
  left:152px;
  width:2px;
  border-radius:2px;
  background:linear-gradient(
    to bottom,
    var(--gold-soft)   0%,
    var(--gold)        14%,
    var(--gold-2)      30%,
    var(--clay)        46%,
    var(--teal-soft)   64%,
    var(--teal)        82%,
    var(--teal-2)     100%);
  /* a soft glow bleeds off the rail, like light through linen */
  box-shadow:
    0 0 0 5px var(--cream),
    0 0 18px rgba(210,155,51,.16);
  z-index:0;
}

/* a faint cap of light at the very top of the rail (first light) */
.rt-day .rt-day__list::after{
  content:"";
  position:absolute;
  top:-7px;
  left:153px;
  width:0;
  height:0;
  /* tiny dawn flare anchored to the rail head */
  box-shadow:0 0 22px 9px rgba(231,199,120,.4);
  border-radius:50%;
  z-index:0;
}

/* ============================ EACH STATION ============================= */

.rt-day .rt-d{
  position:relative;
  display:grid;
  grid-template-columns:118px 34px 1fr;  /* time | rail-gutter | activity */
  align-items:center;
  gap:0;
  padding:clamp(1.05rem,2.2vw,1.55rem) 0;
  border-top:1px solid var(--line-2);
  border-bottom:0;
  transition:
    transform .55s var(--slow),
    background-color .5s var(--ease);
  border-radius:12px;
  z-index:1;
}
.rt-day .rt-d:first-child{ border-top:0; }
.rt-day .rt-d:last-child{ border-bottom:0; }

/* The glowing node on the rail for this station. */
.rt-day .rt-d::before{
  content:"";
  position:absolute;
  top:50%;
  /* centered on the rail at 152px + 1px half-width */
  left:153px;
  width:13px;
  height:13px;
  margin:-6.5px 0 0 -6.5px;
  border-radius:50%;
  background:radial-gradient(circle at 38% 34%,
    var(--ivory) 0%,
    var(--gold-soft) 42%,
    var(--gold) 100%);
  box-shadow:
    0 0 0 5px var(--cream),       /* punch a clean hole in the rail */
    0 0 0 6px var(--line),        /* hairline ring */
    0 0 14px rgba(210,155,51,.5); /* lantern halo */
  transition:
    transform .55s var(--slow),
    box-shadow .55s var(--slow),
    background .55s var(--ease);
  z-index:3;
}

/* A short connector tick from the rail toward the activity text. */
.rt-day .rt-d::after{
  content:"";
  position:absolute;
  top:50%;
  left:160px;
  width:26px;
  height:1px;
  transform:translateY(-.5px) scaleX(.62);
  transform-origin:left center;
  background:linear-gradient(90deg,
    var(--gold) 0%,
    rgba(210,155,51,0) 100%);
  opacity:.55;
  transition:transform .55s var(--slow),opacity .5s var(--ease);
  z-index:2;
}

/* ---- The time chip: gold, set in a soft cream well, right-aligned to rail ---- */
.rt-day .rt-d .rt-d__t{
  grid-column:1;
  justify-self:end;
  align-self:center;
  margin-right:1.05rem;
  padding:.34rem .72rem;
  font-family:var(--f);
  font-weight:800;
  font-size:.86rem;
  letter-spacing:.04em;
  text-transform:lowercase;
  color:var(--gold-2);
  background:var(--ivory);
  border:1px solid var(--line-2);
  border-radius:999px;
  white-space:nowrap;
  box-shadow:0 1px 0 rgba(255,252,245,.7) inset;
  transition:
    color .5s var(--ease),
    background-color .5s var(--ease),
    border-color .5s var(--ease),
    box-shadow .55s var(--slow);
}

/* ---- The activity: teal editorial line ---- */
.rt-day .rt-d .rt-d__a{
  grid-column:3;
  align-self:center;
  padding-left:.2rem;
  color:var(--teal);
  font-family:var(--f);
  font-size:clamp(1.04rem,1.15vw,1.16rem);
  font-weight:600;
  line-height:1.42;
  letter-spacing:-.005em;
  transition:color .5s var(--ease),transform .55s var(--slow);
}

/* ============================== HOVER ================================= */
/* A calm illumination: the row lifts a hair, its lantern node brightens
   and grows a warm halo, the chip warms to gold-on-cream, the connector
   reaches out. No bounce, no flash. */

@media (hover:hover){
  .rt-day .rt-d:hover{
    transform:translateX(5px);
    background-color:var(--cream-2);
  }
  .rt-day .rt-d:hover::before{
    transform:scale(1.32);
    background:radial-gradient(circle at 38% 34%,
      var(--ivory) 0%,
      var(--gold-soft) 38%,
      var(--gold) 100%);
    box-shadow:
      0 0 0 5px var(--cream-2),
      0 0 0 6px var(--line),
      0 0 22px rgba(210,155,51,.75);
  }
  .rt-day .rt-d:hover::after{
    transform:translateY(-.5px) scaleX(1);
    opacity:.85;
  }
  .rt-day .rt-d:hover .rt-d__t{
    color:var(--ink);
    background:var(--gold-soft);
    border-color:rgba(178,126,30,.4);
    box-shadow:0 4px 14px rgba(0,72,79,.1);
  }
  .rt-day .rt-d:hover .rt-d__a{
    color:var(--teal-2);
  }
}

/* ============================ RESPONSIVE ============================== */
/* On narrow screens the rail moves to the far left and time + activity
   stack into a single reading column beside it. */

@media (max-width:860px){
  .rt-day{
    padding:clamp(3rem,9vw,4.5rem) var(--gut);
    max-width:560px;
  }
  .rt-day .rt-day__list::before{
    left:9px;
    box-shadow:
      0 0 0 4px var(--cream),
      0 0 14px rgba(210,155,51,.16);
  }
  .rt-day .rt-day__list::after{
    left:10px;
  }

  .rt-day .rt-d{
    grid-template-columns:1fr;
    align-items:start;
    padding:1.15rem 0 1.15rem 2.65rem;  /* clear the left rail */
    border-radius:12px;
  }
  .rt-day .rt-d::before{
    top:1.5rem;
    left:10px;
    margin:0 0 0 -6.5px;
    box-shadow:
      0 0 0 4px var(--cream),
      0 0 0 5px var(--line),
      0 0 12px rgba(210,155,51,.5);
  }
  /* hide the horizontal connector tick when stacked */
  .rt-day .rt-d::after{
    display:none;
  }

  .rt-day .rt-d .rt-d__t{
    grid-column:1;
    justify-self:start;
    margin:0 0 .5rem 0;
    font-size:.82rem;
  }
  .rt-day .rt-d .rt-d__a{
    grid-column:1;
    padding-left:0;
    font-size:1.06rem;
  }

  @media (hover:hover){
    .rt-day .rt-d:hover{
      transform:translateX(3px);
    }
    .rt-day .rt-d:hover::before{
      box-shadow:
        0 0 0 4px var(--cream-2),
        0 0 0 5px var(--line),
        0 0 18px rgba(210,155,51,.75);
    }
  }
}

/* ========================= REDUCED MOTION ============================ */
/* Keep the light, drop the movement. Transitions become instant-soft,
   hover no longer shifts position. */

@media (prefers-reduced-motion:reduce){
  .rt-day .rt-d,
  .rt-day .rt-d::before,
  .rt-day .rt-d::after,
  .rt-day .rt-d .rt-d__t,
  .rt-day .rt-d .rt-d__a{
    transition-duration:.001ms;
  }
  @media (hover:hover){
    .rt-day .rt-d:hover{
      transform:none;
    }
    .rt-day .rt-d:hover::before{
      transform:none;
    }
    .rt-day .rt-d:hover::after{
      transform:translateY(-.5px) scaleX(1);
    }
  }
}


/* ----- v12:terms ----- */

/* ============================================================
   YOG LOVE :: Terms and details accordion, premium redesign
   Drop-in. Appended at end of stylesheet, fully self contained.
   Scope: .rt-terms section on retreat detail pages.
   Native details/summary kept. CSS only, no markup change.
   ============================================================ */

/* Section ground: keep the cream-2 base, add a whisper of
   vertical warmth so the framed panel reads as a raised object. */
.rt-terms{
  padding:clamp(3.5rem,7vw,6rem) var(--gut) clamp(4.5rem,10vw,9rem);
  background:
    radial-gradient(120% 70% at 50% -10%, var(--cream) 0%, rgba(251,246,234,0) 55%),
    var(--cream-2);
}
.rt-terms__in{max-width:880px;margin:0 auto}
.rt-terms__head{text-align:center;margin-bottom:clamp(2rem,3.6vw,3rem)}

/* ---- The framed ivory panel ---------------------------------
   One calm card holds the whole list. Soft teal shadow, hairline
   teal border, generous radius, a faint gold seam along the top. */
.rt-acc{
  position:relative;
  border-top:none;                 /* override old bare top rule */
  background:var(--ivory);
  border:1px solid var(--line-2);
  border-radius:calc(var(--r) + 6px);
  padding:clamp(.3rem,1vw,.6rem) clamp(.4rem,1.6vw,1rem);
  box-shadow:
    0 1px 0 rgba(255,252,245,.9) inset,
    0 26px 60px -34px rgba(0,72,79,.30),
    0 4px 14px -10px rgba(43,38,32,.18);
}
/* a hairline gold seam crowning the panel, sattvic and quiet */
.rt-acc::before{
  content:"";
  position:absolute;left:clamp(1rem,5%,2.2rem);right:clamp(1rem,5%,2.2rem);top:0;
  height:2px;
  border-radius:2px;
  background:linear-gradient(90deg,
    rgba(210,155,51,0) 0%,
    var(--gold-soft) 18%,
    var(--gold) 50%,
    var(--gold-soft) 82%,
    rgba(210,155,51,0) 100%);
  opacity:.7;
}

/* ---- A single row ------------------------------------------- */
.rt-acc details{
  position:relative;
  border-bottom:1px solid var(--line-2);
  border-radius:var(--r);
  transition:background .45s var(--ease);
  overflow:hidden;
}
.rt-acc details:last-of-type{border-bottom:none}

/* Left gold accent bar, drawn on the row, revealed when open.
   Sits flush to the inner left edge of the panel. */
.rt-acc details::before{
  content:"";
  position:absolute;left:0;top:50%;
  width:3px;height:0;
  transform:translateY(-50%);
  border-radius:0 3px 3px 0;
  background:linear-gradient(180deg,var(--gold-soft),var(--gold),var(--gold-2));
  transition:height .5s var(--slow),opacity .45s var(--ease);
  opacity:0;
}

/* Soft hover wash on the whole row (closed state) */
.rt-acc details:hover{background:var(--cream)}
.rt-acc details:hover::before{height:34%;opacity:.55}

/* ---- The clickable head ------------------------------------- */
.rt-acc summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1.1rem;
  padding:clamp(1.15rem,2vw,1.45rem) clamp(1rem,2.4vw,1.5rem);
  font-family:var(--f);
  font-weight:700;
  font-size:clamp(1.02rem,1.6vw,1.12rem);
  letter-spacing:.005em;
  color:var(--teal);
  transition:color .4s var(--ease);
  -webkit-tap-highlight-color:transparent;
}
.rt-acc summary::-webkit-details-marker{display:none}
.rt-acc summary::marker{content:""}
.rt-acc summary:focus-visible{
  outline:2px solid var(--gold-2);
  outline-offset:3px;
  border-radius:8px;
}

/* ---- The custom circular gold control ----------------------
   A ringed gold disc. Inside, two crossing bars form a plus that
   rotates and collapses into a minus on open. Built with a span
   is not available, so we use summary::after for the disc and
   the two bars are painted with a background of two gradients. */
.rt-acc summary::after{
  content:"";
  flex:none;
  width:34px;height:34px;
  border-radius:50%;
  border:1.5px solid var(--line);
  background:
    /* vertical bar of the plus */
    linear-gradient(var(--gold-2),var(--gold-2)) center / 1.5px 13px no-repeat,
    /* horizontal bar of the plus */
    linear-gradient(var(--gold-2),var(--gold-2)) center / 13px 1.5px no-repeat,
    /* disc fill */
    radial-gradient(circle at 50% 38%, var(--ivory), var(--cream-2));
  box-shadow:
    0 1px 0 rgba(255,252,245,.8) inset,
    0 6px 14px -8px rgba(0,72,79,.35);
  transition:
    transform .55s var(--slow),
    border-color .4s var(--ease),
    background-size .4s var(--ease),
    box-shadow .4s var(--ease);
}
/* gentle lift of the disc on row hover */
.rt-acc details:hover summary{color:var(--teal-2)}
.rt-acc details:hover summary::after{
  border-color:var(--gold-soft);
  box-shadow:
    0 1px 0 rgba(255,252,245,.9) inset,
    0 9px 20px -8px rgba(0,72,79,.45);
}

/* ---- OPEN state --------------------------------------------- */
.rt-acc details[open]{
  background:var(--cream);
  box-shadow:0 1px 0 rgba(255,252,245,.7) inset;
}
.rt-acc details[open]::before{
  height:calc(100% - 1.6rem);
  opacity:1;
}
.rt-acc details[open] summary{color:var(--teal-2)}
/* the plus rotates a quarter turn and the vertical bar retracts,
   leaving a clean minus inside a filled gold disc */
.rt-acc details[open] summary::after{
  transform:rotate(180deg);
  border-color:transparent;
  background:
    linear-gradient(var(--on-teal),var(--on-teal)) center / 0 1.5px no-repeat,
    linear-gradient(var(--on-teal),var(--on-teal)) center / 13px 1.5px no-repeat,
    radial-gradient(circle at 50% 36%, var(--gold-soft), var(--gold) 60%, var(--gold-2));
  box-shadow:
    0 1px 0 rgba(255,252,245,.4) inset,
    0 8px 18px -7px rgba(178,126,30,.6);
}

/* ---- The answer --------------------------------------------- */
.rt-acc p{
  margin:0;
  padding:.1rem clamp(1rem,2.4vw,1.5rem) clamp(1.25rem,2.4vw,1.6rem) clamp(1rem,2.4vw,1.5rem);
  color:var(--muted);
  font-size:1rem;
  line-height:1.72;
  max-width:64ch;
}
/* the measure sits just inside the gold bar with a hair of breathing room */
.rt-acc details[open] p{
  padding-left:clamp(1.15rem,2.6vw,1.7rem);
}

/* gentle fade and slide of the answer when the row opens */
@keyframes rtTermsReveal{
  from{opacity:0;transform:translateY(-7px)}
  to{opacity:1;transform:translateY(0)}
}
.rt-acc details[open] > p{
  animation:rtTermsReveal .55s var(--slow) both;
}

/* ============================================================
   RESPONSIVE :: phones
   ============================================================ */
@media (max-width:860px){
  .rt-terms{
    padding:clamp(2.6rem,8vw,3.4rem) var(--gut) clamp(3.4rem,12vw,5rem);
  }
  .rt-acc{
    border-radius:var(--r);
    padding:.2rem .25rem;
  }
  .rt-acc summary{
    padding:1.05rem .85rem;
    gap:.85rem;
    font-size:1.02rem;
  }
  .rt-acc summary::after{
    width:30px;height:30px;
    background:
      linear-gradient(var(--gold-2),var(--gold-2)) center / 1.5px 12px no-repeat,
      linear-gradient(var(--gold-2),var(--gold-2)) center / 12px 1.5px no-repeat,
      radial-gradient(circle at 50% 38%, var(--ivory), var(--cream-2));
  }
  .rt-acc details[open] summary::after{
    background:
      linear-gradient(var(--on-teal),var(--on-teal)) center / 0 1.5px no-repeat,
      linear-gradient(var(--on-teal),var(--on-teal)) center / 12px 1.5px no-repeat,
      radial-gradient(circle at 50% 36%, var(--gold-soft), var(--gold) 60%, var(--gold-2));
  }
  .rt-acc p{
    padding:.1rem .85rem 1.15rem .85rem;
    font-size:.97rem;
    line-height:1.68;
  }
  .rt-acc details[open] p{padding-left:1rem}
}

/* ============================================================
   REDUCED MOTION :: calm everything, keep the states legible
   ============================================================ */
@media (prefers-reduced-motion:reduce){
  .rt-acc details,
  .rt-acc details::before,
  .rt-acc summary,
  .rt-acc summary::after{
    transition-duration:.001ms;
  }
  .rt-acc details[open] > p{
    animation:none;
  }
  /* keep the open disc readable without a spin: still a minus */
  .rt-acc details[open] summary::after{transform:none}
}


/* ----- v12:expect ----- */

/* ============================================================
   Yog Love :: "What to expect" six card grid, elevated
   CSS-only, drop-in (appended at end of stylesheet).
   Every controlled property is restated so nothing relies on
   the earlier .rt-h rules. Markup and svg icons unchanged.
   ============================================================ */

/* Section ground: keep the warm cream wash, add the faintest
   editorial paper grain via a layered radial so the cards read
   as objects resting on a surface, not floating boxes. */
.rt-high{
  position:relative;
  padding:clamp(3.4rem,7.4vw,6.4rem) var(--gut);
  background:
    radial-gradient(120% 80% at 50% -10%, rgba(210,155,51,.06) 0%, rgba(210,155,51,0) 55%),
    linear-gradient(180deg, var(--cream) 0%, var(--cream-2) 100%);
}

/* The grid owns the counter so each card can stamp its index. */
.rt-high .rt-high__grid{
  counter-reset:rtcard;
  max-width:var(--maxw);
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(1.5rem,3vw,2.6rem);
}

/* ---- The card ------------------------------------------------
   Crisper hairline, warm ivory face, layered soft teal shadow.
   position:relative + overflow:hidden so the index watermark and
   the top hairline are clipped to the rounded corners.        */
.rt-high .rt-h{
  counter-increment:rtcard;
  position:relative;
  overflow:hidden;
  isolation:isolate;
  background:
    linear-gradient(180deg, var(--ivory) 0%, var(--cream) 132%);
  border:1px solid var(--line);
  border-radius:18px;
  padding:1.95rem 1.7rem 1.8rem;
  box-shadow:
    0 1px 0 rgba(255,252,245,.7) inset,
    0 1px 2px rgba(0,72,79,.05),
    0 18px 38px -28px rgba(0,72,79,.22);
  transition:
    transform .55s var(--slow),
    box-shadow .55s var(--ease),
    border-color .55s var(--ease),
    background .55s var(--ease);
  will-change:transform;
}

/* Calm lift, and a warm glow: shadow deepens, border picks up
   the faintest gold, surface warms toward cream. No bounce. */
.rt-high .rt-h:hover{
  transform:translateY(-6px);
  border-color:rgba(178,126,30,.34);
  background:
    linear-gradient(180deg, var(--ivory) 0%, var(--cream-2) 150%);
  box-shadow:
    0 1px 0 rgba(255,252,245,.8) inset,
    0 2px 4px rgba(0,72,79,.06),
    0 34px 60px -30px rgba(0,72,79,.34),
    0 14px 30px -24px rgba(178,126,30,.3);
}

/* ---- Index numeral watermark ---------------------------------
   Large, very low opacity teal numeral seated top-right.
   counter() with a leading zero for an editorial feel.
   Sits behind content (z-index:0), content lifts above it.   */
.rt-high .rt-h::before{
  content:"0" counter(rtcard);
  position:absolute;
  top:-.18em;
  right:.32em;
  z-index:0;
  font-family:var(--f);
  font-weight:800;
  font-size:5.4rem;
  line-height:1;
  letter-spacing:-.04em;
  color:var(--teal);
  opacity:.05;
  pointer-events:none;
  transition:opacity .55s var(--ease), color .55s var(--ease);
}
.rt-high .rt-h:hover::before{
  opacity:.08;
  color:var(--gold-2);
}

/* ---- Top hairline that grows on hover ------------------------
   A thin gold gradient seam pinned to the card's top edge.
   Starts as a short centered tick, extends full width on hover. */
.rt-high .rt-h::after{
  content:"";
  position:absolute;
  top:0;
  left:50%;
  transform:translateX(-50%);
  z-index:2;
  width:38px;
  max-width:calc(100% - 3.4rem);
  height:2px;
  border-radius:2px;
  background:linear-gradient(90deg,
    rgba(210,155,51,0) 0%,
    var(--gold) 22%,
    var(--gold-soft) 50%,
    var(--gold) 78%,
    rgba(210,155,51,0) 100%);
  opacity:.85;
  transition:width .6s var(--slow), opacity .55s var(--ease);
  pointer-events:none;
}
.rt-high .rt-h:hover::after{
  width:100%;
  max-width:100%;
  opacity:1;
}

/* Keep real content above the watermark. */
.rt-high .rt-h__ic,
.rt-high .rt-h h3,
.rt-high .rt-h p{
  position:relative;
  z-index:1;
}

/* ---- Refined medallion for the icon --------------------------
   Soft cream to gold radial disc, an inset hairline ring, a gentle
   raised feel. The existing svg is colored gold via currentColor. */
.rt-high .rt-h__ic{
  position:relative;
  display:grid;
  place-items:center;
  width:64px;
  height:64px;
  margin-bottom:1.25rem;
  border-radius:50%;
  color:var(--gold-2);
  background:
    radial-gradient(120% 120% at 32% 26%,
      var(--ivory) 0%,
      var(--cream-2) 46%,
      var(--cream-3) 78%,
      #ead6a8 100%);
  box-shadow:
    0 1px 0 rgba(255,252,245,.9) inset,
    0 10px 20px -12px rgba(178,126,30,.32),
    0 2px 5px -2px rgba(0,72,79,.12);
  transition:
    transform .55s var(--slow),
    box-shadow .55s var(--ease),
    color .55s var(--ease),
    background .55s var(--ease);
}

/* Inset hairline ring: a fine gold-tinted circle drawn just inside
   the disc edge for a crafted, engraved finish. */
.rt-high .rt-h__ic::before{
  content:"";
  position:absolute;
  inset:5px;
  border-radius:50%;
  border:1px solid rgba(178,126,30,.28);
  box-shadow:0 0 0 1px rgba(255,252,245,.55) inset;
  pointer-events:none;
  transition:border-color .55s var(--ease), inset .55s var(--slow);
}

/* Icon glyph sits centered within the medallion, slightly inset. */
.rt-high .rt-h__ic svg{
  position:relative;
  width:30px;
  height:30px;
  display:block;
}

/* On hover the medallion warms and the gold deepens, the ring
   tightens its tone. Quiet, intentional. */
.rt-high .rt-h:hover .rt-h__ic{
  color:var(--gold-2);
  background:
    radial-gradient(120% 120% at 32% 26%,
      var(--ivory) 0%,
      var(--cream-2) 40%,
      #ecd9ad 76%,
      #e2c684 100%);
  box-shadow:
    0 1px 0 rgba(255,252,245,1) inset,
    0 14px 26px -12px rgba(178,126,30,.42),
    0 3px 7px -2px rgba(0,72,79,.14);
}
.rt-high .rt-h:hover .rt-h__ic::before{
  border-color:rgba(178,126,30,.42);
}

/* ---- Refined type hierarchy ---------------------------------- */
.rt-high .rt-h h3{
  font-family:var(--f);
  font-size:1.2rem;
  font-weight:700;
  letter-spacing:-.012em;
  line-height:1.2;
  color:var(--ink);
  margin:0 0 .55rem;
}
.rt-high .rt-h p{
  font-family:var(--f);
  font-size:.95rem;
  font-weight:400;
  line-height:1.62;
  letter-spacing:.002em;
  color:var(--muted);
  margin:0;
  max-width:30ch;
}

/* ============================================================
   Responsive refinement
   ============================================================ */
@media (max-width:860px){
  .rt-high{
    padding:clamp(2.6rem,8vw,3.6rem) var(--gut);
  }
  .rt-high .rt-high__grid{
    grid-template-columns:1fr 1fr;
    gap:1.1rem;
  }
  .rt-high .rt-h{
    padding:1.55rem 1.35rem 1.45rem;
    border-radius:16px;
  }
  .rt-high .rt-h::before{
    font-size:4.2rem;
    top:-.14em;
    right:.26em;
  }
  .rt-high .rt-h__ic{
    width:56px;
    height:56px;
    margin-bottom:1rem;
  }
  .rt-high .rt-h__ic svg{
    width:27px;
    height:27px;
  }
  .rt-high .rt-h h3{font-size:1.12rem;}
  .rt-high .rt-h p{font-size:.92rem;max-width:none;}
}

/* Single column on the smallest viewports, matching the base
   stylesheet's existing breakpoint behavior. */
@media (max-width:560px){
  .rt-high .rt-high__grid{
    grid-template-columns:1fr;
    gap:1rem;
  }
}

/* ============================================================
   Reduced motion: keep the craft, calm the movement.
   No lift, no growing hairline, instantaneous tonal shifts.
   ============================================================ */
@media (prefers-reduced-motion:reduce){
  .rt-high .rt-h,
  .rt-high .rt-h:hover,
  .rt-high .rt-h__ic,
  .rt-high .rt-h:hover .rt-h__ic,
  .rt-high .rt-h__ic::before,
  .rt-high .rt-h::before,
  .rt-high .rt-h::after{
    transition-duration:.001ms;
  }
  .rt-high .rt-h:hover{
    transform:none;
  }
  /* Hairline already presents at full width so nothing animates. */
  .rt-high .rt-h::after{
    width:100%;
    max-width:100%;
    opacity:.9;
  }
}


/* ----- v12:voices ----- */

/* ============================================================
   Yog Love: Testimonials ("voices") redesign
   Drop-in. Appended at end of stylesheet, so every property
   we care about is restated (no reliance on earlier rules).
   Markup is fixed and figures are DUPLICATED in the DOM to
   loop the marquee, so NO :nth-child for content variety.
   CSS-only. Cards stay identical so the loop reads as one
   continuous, calm flow rather than visible repetition.
   ============================================================ */

/* --- section breathing room, give the cards air ----------- */
.voices{
  padding:clamp(4.5rem,9vw,8.5rem) 0;
  overflow:hidden;
  background:var(--cream);
}
.voices .sec-head{padding:0 var(--gut)}

/* a touch more rhythm between cards in the flowing rail */
.voices__track{
  display:flex;
  gap:1.6rem;
  padding:0 var(--gut);
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
}
.voices__track::-webkit-scrollbar{display:none}

/* keep marquee behaviour intact (restated so it survives append) */
.voices__track[data-marquee]{
  overflow:visible;
  width:max-content;
  padding-inline:0;
  scroll-snap-type:none;
  animation:vmarq 60s linear infinite;
}
.voices:hover .voices__track[data-marquee]{animation-play-state:paused}

/* --- the testimonial card --------------------------------- */
.voices .voice{
  position:relative;
  isolation:isolate;
  flex:0 0 min(440px,84vw);
  scroll-snap-align:center;
  min-height:300px;
  display:flex;
  flex-direction:column;
  padding:2.6rem 2.4rem 2.3rem;
  /* warm ivory, faintly graded to feel hand-made, not flat */
  background:
    linear-gradient(180deg,var(--ivory) 0%,var(--cream) 168%);
  border:1px solid var(--line-2);
  border-radius:18px;
  /* soft, layered teal-tinted shadow, never black */
  box-shadow:
    0 1px 0 rgba(255,252,245,.9) inset,
    0 2px 6px rgba(0,72,79,.05),
    0 16px 38px -22px rgba(0,72,79,.20);
  overflow:hidden;
  transition:
    transform .7s var(--slow),
    box-shadow .7s var(--slow),
    border-color .7s var(--slow);
  will-change:transform;
}

/* thin gold accent bar pinned to the top edge of every card */
.voices .voice::after{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:3px;
  background:linear-gradient(90deg,
    var(--gold-soft) 0%,
    var(--gold) 32%,
    var(--gold-2) 62%,
    var(--gold-soft) 100%);
  opacity:.92;
  z-index:2;
  pointer-events:none;
}

/* gentle hover lift + shadow bloom, slow and intentional */
.voices .voice:hover{
  transform:translateY(-6px);
  border-color:var(--line);
  box-shadow:
    0 1px 0 rgba(255,252,245,.95) inset,
    0 4px 10px rgba(0,72,79,.06),
    0 30px 60px -26px rgba(0,72,79,.30);
}

/* --- star row, a touch smaller and quieter ---------------- */
.voices .voice .voice__stars{
  position:relative;
  z-index:1;
  color:var(--gold);
  font-size:.86rem;
  line-height:1;
  letter-spacing:.22em;
  margin:.1rem 0 1.15rem;
}

/* --- the quote -------------------------------------------- */
.voices .voice blockquote{
  position:relative;
  z-index:1;
  flex:1;
  margin:0;
  /* refined, larger, editorial; less heavy than the old 600 */
  font-family:var(--f);
  font-size:clamp(1.18rem,1.55vw,1.34rem);
  line-height:1.5;
  font-weight:500;
  letter-spacing:-.012em;
  color:var(--teal);
  text-wrap:pretty;
  /* deterministic curly glyph for open-quote regardless of lang */
  quotes:"\201C" "\201D" "\2018" "\2019";
}

/* oversized decorative gold quotation mark, sitting behind
   the text in the top-left. open-quote glyph, low opacity. */
.voices .voice blockquote::before{
  content:open-quote;
  position:absolute;
  top:-.62em;
  left:-.16em;
  z-index:-1;
  font-family:Georgia,"Times New Roman",serif;
  font-size:7.4rem;
  line-height:1;
  font-weight:700;
  font-style:normal;
  color:var(--gold-soft);
  opacity:.26;
  pointer-events:none;
}
.voices .voice blockquote::after{content:none}

/* --- attribution ------------------------------------------ */
.voices .voice figcaption{
  position:relative;
  z-index:1;
  margin-top:1.7rem;
  padding-top:1.15rem;
  border-top:1px solid var(--line-2);
  display:flex;
  flex-direction:column;
  gap:.42rem;
  font-weight:700;
  font-size:1rem;
  letter-spacing:-.005em;
  color:var(--teal);
}

/* location as a quiet gold chip with a leading gold dot */
.voices .voice figcaption span{
  display:inline-flex;
  align-items:center;
  align-self:flex-start;
  gap:.5rem;
  margin:0;
  padding:.3rem .7rem .3rem .62rem;
  border:1px solid var(--line-2);
  border-radius:999px;
  background:rgba(210,155,51,.07);
  font-weight:700;
  font-size:.68rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--gold-2);
}
.voices .voice figcaption span::before{
  content:"";
  width:.42rem;
  height:.42rem;
  border-radius:50%;
  background:var(--gold);
  box-shadow:0 0 0 3px rgba(210,155,51,.16);
  flex:0 0 auto;
}

/* keep QA flatten + reduced-motion users with a static rail */
html.snap .voices__track[data-marquee]{
  animation:none !important;
  transform:none !important;
}

/* ---------------------- responsive ------------------------ */
@media (max-width:860px){
  .voices{padding:clamp(3.5rem,11vw,5.5rem) 0}
  .voices__track{gap:1.1rem}
  .voices .voice{
    flex:0 0 min(440px,86vw);
    min-height:0;
    padding:2.1rem 1.8rem 1.9rem;
    border-radius:16px;
  }
  .voices .voice blockquote{
    font-size:1.12rem;
    line-height:1.52;
  }
  .voices .voice blockquote::before{
    font-size:5.6rem;
    top:-.5em;
    left:-.1em;
    opacity:.22;
  }
  .voices .voice figcaption{
    margin-top:1.35rem;
    padding-top:1rem;
  }
}

/* ------------------- reduced motion ----------------------- */
@media (prefers-reduced-motion:reduce){
  .voices__track[data-marquee]{
    animation:none !important;
    width:auto;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    padding:0 var(--gut);
  }
  .voices .voice{
    transition:box-shadow .01ms,border-color .01ms;
    will-change:auto;
  }
  .voices .voice:hover{
    transform:none;
    box-shadow:
      0 1px 0 rgba(255,252,245,.95) inset,
      0 4px 10px rgba(0,72,79,.06),
      0 26px 54px -26px rgba(0,72,79,.26);
  }
}


/* ----- v12:cta ----- */

/* ============================================================
   RETREAT CLOSING CTA : CINEMATIC VIDEO MOMENT (.rt-cta--film)
   Full-bleed muted autoplay loop, layered teal scrim, content on top.
   Markup contract:
     section.rt-cta.rt-cta--film
       > video.rt-cta__video (poster degrades gracefully)
       > div.rt-cta__scrim
       > div.rt-cta__in  ( h2, p, a.btn.btn--gold, div>a.rt-back )
   Appended at end of stylesheet: every controlled property restated.
   ============================================================ */

/* Base section: keep the plain (non-film) variant intact, restated. */
.rt-cta{
  padding:clamp(4rem,9vw,7rem) var(--gut);
  text-align:center;
  background:var(--teal);
  color:var(--on-teal);
}

/* --- Film variant: becomes a positioning stage, no padding from base --- */
.rt-cta.rt-cta--film{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  display:grid;
  place-items:center;
  min-height:clamp(540px,82vh,780px);
  padding:clamp(3rem,7vw,6rem) var(--gut);
  background:var(--teal-2);            /* fallback colour before poster paints */
  text-align:center;
  color:var(--on-teal);
}

/* --- The background video / poster --- */
.rt-cta--film .rt-cta__video{
  position:absolute;
  inset:0;
  z-index:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  /* poster paints here if the source 404s or never loads => graceful degrade */
  background:var(--teal-2) center/cover no-repeat;
  pointer-events:none;
  /* very slow Ken Burns: drift + breathe, premium and unhurried */
  transform-origin:52% 46%;
  will-change:transform;
  animation:rtCtaKen 34s var(--slow) infinite alternate both;
}

@keyframes rtCtaKen{
  0%  { transform:scale(1.06) translate3d(0,0,0); }
  100%{ transform:scale(1.16) translate3d(-1.4%,-1.2%,0); }
}

/* --- Layered teal + ink scrim for legibility (NO pure black) --- */
.rt-cta--film .rt-cta__scrim{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  /* Layer 1: deep teal radial pooling toward the edges, clear-ish centre.
     Layer 2: vertical ink/teal wash, heavier at top & bottom for text seat.
     Layer 3: warm gold whisper that ties it to the brand. */
  background:
    radial-gradient(120% 92% at 50% 44%,
      rgba(1,58,64,.18) 0%,
      rgba(1,58,64,.40) 46%,
      rgba(1,58,64,.66) 100%),
    linear-gradient(to bottom,
      rgba(43,38,32,.50) 0%,
      rgba(0,72,79,.34) 30%,
      rgba(0,72,79,.30) 62%,
      rgba(1,58,64,.62) 100%),
    radial-gradient(80% 60% at 50% 58%,
      rgba(210,155,51,.10) 0%,
      rgba(210,155,51,0) 60%);
  mix-blend-mode:normal;
}

/* fine grain so flat compression never bands the teal */
.rt-cta--film .rt-cta__scrim::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(60% 50% at 50% 50%, rgba(244,236,217,.05) 0%, rgba(244,236,217,0) 70%);
  opacity:.9;
}

/* --- Content well sitting above everything --- */
.rt-cta--film .rt-cta__in{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  max-width:62ch;
  margin:0 auto;
  padding:clamp(1rem,3vw,2rem) 0;
}

/* thin gold rule accent above the blessing line */
.rt-cta--film .rt-cta__in::before{
  content:"";
  display:block;
  width:54px;
  height:2px;
  margin:0 0 clamp(1.4rem,3vw,2rem);
  background:linear-gradient(90deg,
    rgba(231,199,120,0) 0%,
    var(--gold-soft) 28%,
    var(--gold) 50%,
    var(--gold-soft) 72%,
    rgba(231,199,120,0) 100%);
  transform-origin:center;
  transform:scaleX(0);
  opacity:0;
  animation:rtCtaRule 1.4s var(--slow) .15s forwards;
}
@keyframes rtCtaRule{
  to{ transform:scaleX(1); opacity:1; }
}

/* Closing line: reads as a final cinematic blessing */
.rt-cta--film .rt-cta__in h2{
  color:var(--ivory);
  font-family:var(--f);
  font-weight:500;
  line-height:1.14;
  letter-spacing:-.01em;
  font-size:clamp(2rem,4.6vw,3.5rem);
  max-width:22ch;
  margin:0 auto 1.4rem;
  text-wrap:balance;
  /* soft teal-ink shadow keeps it crisp over moving footage, never harsh */
  text-shadow:0 1px 28px rgba(1,58,64,.55), 0 1px 2px rgba(43,38,32,.4);
}

.rt-cta--film .rt-cta__in p{
  color:var(--on-teal);
  opacity:.92;
  font-size:clamp(1rem,1.4vw,1.12rem);
  line-height:1.65;
  max-width:50ch;
  margin:0 auto clamp(1.8rem,3.4vw,2.4rem);
  text-shadow:0 1px 18px rgba(1,58,64,.5);
}

/* --- Gold enquire button: interactive sweep fill + gentle scale --- */
.rt-cta--film .rt-cta__in .btn.btn--gold{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.6em;
  padding:1rem 2rem;
  border-radius:100px;
  background:var(--gold);
  color:var(--teal-2);
  font-weight:600;
  letter-spacing:.005em;
  text-decoration:none;
  box-shadow:
    0 1px 0 rgba(255,252,245,.35) inset,
    0 14px 34px rgba(1,58,64,.42),
    0 2px 8px rgba(43,38,32,.28);
  transition:transform .6s var(--ease),
             box-shadow .6s var(--ease),
             color .45s var(--ease);
  will-change:transform;
}

/* the interactive fill: a soft gold-soft sweep that rises on hover */
.rt-cta--film .rt-cta__in .btn.btn--gold::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(120deg,
    var(--gold-soft) 0%,
    var(--gold) 42%,
    var(--gold-2) 100%);
  transform:translateY(101%);
  transition:transform .6s var(--slow);
}
.rt-cta--film .rt-cta__in .btn.btn--gold span{
  position:relative;
  z-index:1;
}

.rt-cta--film .rt-cta__in .btn.btn--gold:hover,
.rt-cta--film .rt-cta__in .btn.btn--gold:focus-visible{
  transform:translateY(-3px) scale(1.025);
  color:var(--ivory);
  box-shadow:
    0 1px 0 rgba(255,252,245,.4) inset,
    0 22px 50px rgba(1,58,64,.5),
    0 4px 12px rgba(43,38,32,.34);
}
.rt-cta--film .rt-cta__in .btn.btn--gold:hover::before,
.rt-cta--film .rt-cta__in .btn.btn--gold:focus-visible::before{
  transform:translateY(0);
}
.rt-cta--film .rt-cta__in .btn.btn--gold:active{
  transform:translateY(-1px) scale(1.01);
}
.rt-cta--film .rt-cta__in .btn.btn--gold:focus-visible{
  outline:2px solid var(--gold-soft);
  outline-offset:3px;
}

/* wrapper div around the back link */
.rt-cta--film .rt-cta__in > div{
  margin-top:clamp(1.6rem,3vw,2.1rem);
}

/* --- Back link --- */
.rt-cta--film .rt-cta__in .rt-back{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  margin-top:0;
  padding-bottom:3px;
  color:var(--on-teal-dim);
  font-size:.78rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  text-decoration:none;
  text-shadow:0 1px 14px rgba(1,58,64,.5);
  transition:color .4s var(--ease);
}
.rt-cta--film .rt-cta__in .rt-back::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:0;
  height:1px;
  background:var(--gold-soft);
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform .5s var(--slow);
}
.rt-cta--film .rt-cta__in .rt-back:hover,
.rt-cta--film .rt-cta__in .rt-back:focus-visible{
  color:var(--on-teal);
}
.rt-cta--film .rt-cta__in .rt-back:hover::after,
.rt-cta--film .rt-cta__in .rt-back:focus-visible::after{
  transform:scaleX(1);
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:860px){
  .rt-cta.rt-cta--film{
    min-height:clamp(480px,76vh,620px);
    padding:clamp(2.6rem,9vw,4rem) var(--gut);
  }
  .rt-cta--film .rt-cta__video{
    /* hold a flatter, less aggressive drift on small screens */
    animation-duration:42s;
    transform-origin:50% 44%;
  }
  .rt-cta--film .rt-cta__in{
    max-width:34ch;
  }
  .rt-cta--film .rt-cta__in h2{
    font-size:clamp(1.7rem,7vw,2.3rem);
    max-width:18ch;
  }
  .rt-cta--film .rt-cta__in p{
    font-size:1rem;
    max-width:42ch;
  }
  .rt-cta--film .rt-cta__in .btn.btn--gold{
    width:100%;
    max-width:340px;
    padding:1rem 1.6rem;
  }
  .rt-cta--film .rt-cta__scrim{
    /* a touch heavier so text always seats on a busy mobile frame */
    background:
      linear-gradient(to bottom,
        rgba(43,38,32,.52) 0%,
        rgba(0,72,79,.42) 40%,
        rgba(1,58,64,.66) 100%),
      radial-gradient(120% 90% at 50% 46%,
        rgba(1,58,64,.22) 0%,
        rgba(1,58,64,.5) 100%);
  }
}

/* ============================================================
   REDUCED MOTION : calm everything, no Ken Burns, no sweeps in motion
   ============================================================ */
@media (prefers-reduced-motion:reduce){
  .rt-cta--film .rt-cta__video{
    animation:none;
    transform:scale(1.04);
  }
  .rt-cta--film .rt-cta__in::before{
    animation:none;
    transform:scaleX(1);
    opacity:1;
  }
  .rt-cta--film .rt-cta__in .btn.btn--gold{
    transition:color .3s var(--ease), box-shadow .3s var(--ease);
  }
  .rt-cta--film .rt-cta__in .btn.btn--gold::before{
    transition:opacity .3s var(--ease);
    transform:none;
    opacity:0;
  }
  .rt-cta--film .rt-cta__in .btn.btn--gold:hover,
  .rt-cta--film .rt-cta__in .btn.btn--gold:focus-visible{
    transform:none;
  }
  .rt-cta--film .rt-cta__in .btn.btn--gold:hover::before,
  .rt-cta--film .rt-cta__in .btn.btn--gold:focus-visible::before{
    opacity:1;
  }
  .rt-cta--film .rt-cta__in .rt-back::after{
    transition:none;
  }
}


/* ----- v12:critic-fixes (win last) ----- */

/* ============================================================
   YOG LOVE :: CRITIC CORRECTIVE OVERRIDES
   Appended LAST so these rules win the cascade.
   Every controlled property is restated in full, no reliance
   on the rules above. Scope is limited to concrete violations.
   ------------------------------------------------------------
   FIXES:
   1. expect.css medallion used three invented off-palette
      warm gold hexes (resting terminus, plus two hover stops).
      The brief allows at most one subtle new tone and otherwise
      demands strict palette use. Remap the warm gold terminus of
      each radial to documented palette tokens (gold-soft, gold,
      cream-3), preserving the engraved, raised, warm reading.
   (cta.css em dashes were corrected in-source; comments are
    not overridable via the cascade.)
   ============================================================ */

/* ---- Resting medallion: cream-to-gold radial, palette only ---- */
.rt-high .rt-h__ic{
  position:relative;
  display:grid;
  place-items:center;
  width:64px;
  height:64px;
  margin-bottom:1.25rem;
  border-radius:50%;
  color:var(--gold-2);
  background:
    radial-gradient(120% 120% at 32% 26%,
      var(--ivory) 0%,
      var(--cream-2) 46%,
      var(--cream-3) 78%,
      var(--gold-soft) 100%);
  box-shadow:
    0 1px 0 rgba(255,252,245,.9) inset,
    0 10px 20px -12px rgba(178,126,30,.32),
    0 2px 5px -2px rgba(0,72,79,.12);
  transition:
    transform .55s var(--slow),
    box-shadow .55s var(--ease),
    color .55s var(--ease),
    background .55s var(--ease);
}

/* ---- Hover medallion: warms and deepens, palette only ---- */
.rt-high .rt-h:hover .rt-h__ic{
  color:var(--gold-2);
  background:
    radial-gradient(120% 120% at 32% 26%,
      var(--ivory) 0%,
      var(--cream-2) 40%,
      var(--gold-soft) 76%,
      var(--gold) 100%);
  box-shadow:
    0 1px 0 rgba(255,252,245,1) inset,
    0 14px 26px -12px rgba(178,126,30,.42),
    0 3px 7px -2px rgba(0,72,79,.14);
}

/* ---- Mobile medallion sizing preserved (no hex to fix here,
        restated only to keep the corrected gradients consistent
        with the existing 860 refinement). ---- */
@media (max-width:860px){
  .rt-high .rt-h__ic{
    width:56px;
    height:56px;
    margin-bottom:1rem;
  }
}

/* ---- Reduced motion: keep the corrected craft, calm movement. ---- */
@media (prefers-reduced-motion:reduce){
  .rt-high .rt-h__ic,
  .rt-high .rt-h:hover .rt-h__ic{
    transition-duration:.001ms;
  }
}


/* ----- v12 fix: clear day-timeline activity text from the rail node + connector ----- */
.rt-day .rt-d .rt-d__a{padding-left:2.7rem}
@media (max-width:860px){.rt-day .rt-d .rt-d__a{padding-left:0}}


/* INTRO v2 START */
/* =====================================================================
   YOG LOVE, opening ceremony: "Dawn of Light and Breath".
   A luminous cream sunrise. The visitor breathes and chants with first
   light, then steps through a warm threshold into the site.

   Lifecycle classes driven by intro.js (do not rename):
     .intro__logo.lit / .breathe  (invite)
     .intro.started               (chant rises, sun climbs)
     .intro.fade                  (verse blooms away, sun swells)
     .intro.dissolve              (centre-seam threshold parts)

   This block is self-contained and does NOT depend on any earlier .intro
   rules. One shared 9s "breath" paces the whole scene. Light, pre-dawn
   only. No pure black: every shadow and mask alpha is a warm ink or teal.
   No emojis. No dashes. ============================================== */

/* ---- breath rhythm tokens (one calm cycle for the whole scene) ---- */
.intro{
  --breath:9s;                 /* the single shared inhale and exhale */
  --dawn-core:rgba(231,199,120,.85);
  --sun-soft:rgba(255,252,245,.92);
  --ink-veil:rgba(43,38,32,.22);   /* warm ink alpha for ray masking, never #000 */
}

/* ---- BEAT 1: pre-dawn field ---- */
.intro{
  position:fixed;inset:0;z-index:10000;overflow:hidden;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:clamp(1.4rem,3.5vh,2.4rem);
  padding:7vh 5vw 9vh;box-sizing:border-box;
  --stage:min(72vw,42vh,400px);
  --sun-x:50%;--sun-y:88%;          /* the sun starts low; rises on .started */
  background:
    radial-gradient(135% 120% at 50% 116%, rgba(210,155,51,.16) 0%, rgba(244,236,217,0) 46%),
    radial-gradient(125% 125% at 50% 40%, var(--ivory) 0%, var(--cream) 60%, var(--cream-2) 100%);
  transition:opacity .9s var(--ease),visibility .9s var(--ease);
  isolation:isolate;
}

/* low warm sun: a soft cream/gold disc with a wide bloom. Pseudo only. */
.intro::before{
  content:"";position:absolute;left:0;top:0;right:0;bottom:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(closest-side at var(--sun-x) var(--sun-y),
      var(--sun-soft) 0%, var(--dawn-core) 18%, rgba(231,199,120,.45) 34%,
      rgba(231,199,120,.16) 56%, rgba(231,199,120,0) 74%);
  background-repeat:no-repeat;
  background-size:clamp(420px,90vw,760px) clamp(420px,90vw,760px);
  background-position:var(--sun-x) var(--sun-y);
  transform:translateZ(0);
  animation:dawnSun 6s ease-in-out infinite;
  will-change:transform,opacity,filter;
}

/* low horizon glow + the gold ray fan, softened by a warm ink mask.
   Rays are hidden pre-dawn and bloom in only once the chant begins. */
.intro::after{
  content:"";position:absolute;left:0;top:0;right:0;bottom:0;z-index:0;pointer-events:none;
  opacity:.16;
  animation:rayShimmer 6.5s ease-in-out infinite;
  background:
    repeating-conic-gradient(from 0deg at var(--sun-x) var(--sun-y),
      rgba(231,199,120,.32) 0deg, rgba(231,199,120,0) 2.2deg,
      rgba(231,199,120,0) 7.6deg, rgba(231,199,120,.32) 9.8deg),
    radial-gradient(120% 60% at 50% 112%,
      rgba(210,155,51,.22) 0%, rgba(231,199,120,.10) 40%, rgba(231,199,120,0) 70%);
  background-repeat:no-repeat;
  -webkit-mask:radial-gradient(closest-side at var(--sun-x) var(--sun-y),
      var(--ink-veil) 0%, rgba(43,38,32,.16) 40%, rgba(43,38,32,0) 72%);
          mask:radial-gradient(closest-side at var(--sun-x) var(--sun-y),
      var(--ink-veil) 0%, rgba(43,38,32,.16) 40%, rgba(43,38,32,0) 72%);
  -webkit-mask-size:clamp(720px,160vw,1500px) clamp(720px,160vw,1500px);
          mask-size:clamp(720px,160vw,1500px) clamp(720px,160vw,1500px);
  -webkit-mask-position:var(--sun-x) var(--sun-y);
          mask-position:var(--sun-x) var(--sun-y);
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  transition:opacity 2.4s var(--slow);
  will-change:opacity,transform;
}

.intro.is-gone,.intro.dissolve{opacity:0;visibility:hidden}

/* ---- STAGE: chakra + light-seat + seated logo ---- */
.intro__stage{
  position:relative;z-index:2;width:var(--stage);height:var(--stage);
  display:grid;place-items:center;
  animation:gateIn 1.2s var(--slow) both;
}

/* the chakra turns very slowly, about 120s, warm gold drop shadow */
.intro__mandala{
  position:absolute;inset:0;width:100%;height:100%;opacity:.9;transform-origin:50% 50%;
  animation:chakraSpin 120s linear infinite;
  filter:drop-shadow(0 6px 26px rgba(210,155,51,.16));
  will-change:transform;
}

/* light-seat under the logo: dim warm glow pre-dawn, breathing once invited */
.intro__seat{
  position:absolute;z-index:3;left:50%;top:50%;transform:translate(-50%,-50%);
  width:26%;height:26%;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,
    rgba(255,252,245,.62) 0%, rgba(231,199,120,.34) 46%, rgba(251,246,234,0) 76%);
  filter:blur(2px);opacity:.6;
  transition:opacity 1s var(--slow),background 1.2s var(--slow);
}

/* the logo begins blurred and dim, blooms clear on .lit, breathes on .breathe */
.intro__logo{
  position:absolute;z-index:4;left:50%;top:50%;width:19%;height:auto;border-radius:50%;
  opacity:0;transform:translate(-50%,-50%) scale(.92);
  filter:blur(7px) drop-shadow(0 8px 24px rgba(0,72,79,.16));
}
.intro__logo.lit{
  opacity:1;transform:translate(-50%,-50%) scale(1);
  filter:blur(0) drop-shadow(0 10px 30px rgba(210,155,51,.28));
  animation:none;
  transition:opacity 1.1s var(--slow),transform 1.3s var(--slow),filter 1.2s var(--slow);
}
.intro .intro__logo.lit.breathe{
  animation:logoBreath var(--breath) ease-in-out infinite;
}

/* BEAT 2: brighten the light-seat once the logo is lit and breathing */
.intro:has(.intro__logo.lit) .intro__seat{
  opacity:.92;
  background:radial-gradient(circle,
    var(--sun-soft) 0%, rgba(231,199,120,.5) 44%, rgba(251,246,234,0) 78%);
  animation:seatBreath var(--breath) ease-in-out infinite;
}

@keyframes gateIn{from{opacity:0;transform:translateY(14px);filter:blur(8px)}to{opacity:1;transform:none;filter:blur(0)}}

/* ---- BEAT 2: the OPEN control, a calm gold invite glow (no flashing) ---- */
.intro__enter{
  position:relative;z-index:7;flex:none;
  background:transparent;border:1.5px solid var(--gold);color:var(--teal);border-radius:100px;
  padding:.95rem 2.7rem;font-family:var(--f);font-weight:600;
  font-size:clamp(.95rem,1.5vw,1.06rem);letter-spacing:.12em;
  cursor:pointer;overflow:hidden;isolation:isolate;min-height:48px;
  opacity:0;
  box-shadow:0 0 0 0 rgba(210,155,51,0);
  animation:gateIn 1.2s var(--slow) .35s both, openInvite 4.2s ease-in-out 1.6s infinite;
  transition:color .45s var(--ease),transform .5s var(--slow),box-shadow .45s var(--ease);
}
.intro__enter span{position:relative;z-index:1}
.intro__enter::before{
  content:"";position:absolute;inset:0;z-index:0;background:var(--gold);
  transform:scaleX(0);transform-origin:left center;transition:transform .5s var(--ease);
}
.intro__enter:hover{color:var(--ivory);transform:translateY(-2px);box-shadow:0 14px 32px -12px rgba(210,155,51,.55);animation-play-state:paused}
.intro__enter:hover::before,.intro__enter:active::before{transform:scaleX(1)}
.intro__enter:focus-visible{outline:2px solid var(--gold-2);outline-offset:3px}

/* skip rests quiet bottom right */
.intro__skip{
  position:absolute;bottom:2rem;right:2.2rem;z-index:7;
  font-family:var(--f);font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--teal-soft);background:none;border:0;cursor:pointer;opacity:.5;transition:opacity .3s;
}
.intro__skip:hover,.intro__skip:focus-visible{opacity:1}
.intro__skip:focus-visible{outline:1px solid var(--teal-soft);outline-offset:3px}

/* ---- VERSE block, centred over the chakra, hidden until .started ---- */
.intro__verse{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:6;
  width:min(94vw,980px);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;pointer-events:none;
}

/* breathing cue, decorative pseudo content (Inhale on the verse, Exhale on words).
   Cross-faded at the breath turn on the shared 9s rhythm. Not read aloud. */
.intro__verse::before{
  content:"Inhale";position:absolute;left:50%;top:-2.6em;transform:translateX(-50%);
  font-family:var(--f);font-weight:600;font-size:.66rem;letter-spacing:.34em;text-transform:uppercase;
  color:var(--teal-soft);opacity:0;pointer-events:none;
}
.intro__words::after{
  content:"Exhale";position:absolute;left:50%;bottom:-2.6em;transform:translateX(-50%);
  font-family:var(--f);font-weight:600;font-size:.66rem;letter-spacing:.34em;text-transform:uppercase;
  color:var(--gold-2);opacity:0;pointer-events:none;
}
.intro.started .intro__verse::before{animation:cueInhale var(--breath) ease-in-out infinite}
.intro.started .intro__words::after{animation:cueExhale var(--breath) ease-in-out infinite}

/* the four Sanskrit words rise out of heavy blur on the existing per-word stagger */
.intro__words{
  position:relative;margin:0;padding:0;width:100%;display:block;text-align:center;word-spacing:.08em;
  font-family:var(--f-deva);font-weight:600;color:var(--teal);
  font-size:clamp(2.4rem,7vw,4.7rem);line-height:1.2;letter-spacing:.004em;
  text-shadow:0 0 1px rgba(255,252,245,.92),0 0 16px rgba(255,252,245,.92),0 1px 0 rgba(255,252,245,.6);
}
.intro__words .line{display:inline}
.intro__words .w{
  display:inline-block;margin:0 .12em;opacity:0;filter:blur(20px);
  transform:translateY(.42em) scale(1.06);transform-origin:50% 100%;
}
.intro.started .intro__words .w{
  opacity:1;filter:blur(0);transform:none;
  transition:filter .9s var(--slow),opacity .8s var(--slow),transform .9s var(--slow);
  transition-delay:calc(.45s + var(--i,0)*.5s);
}

/* romanized line: a quiet whisper under the Sanskrit, after the chant rises */
.intro__roman{
  position:static;margin:1.05rem 0 0;width:100%;text-align:center;
  font-family:var(--f);font-style:italic;font-weight:400;letter-spacing:.06em;
  color:var(--teal-soft);font-size:clamp(.86rem,1.5vw,1.05rem);
  opacity:0;filter:blur(6px);transform:translateY(.3em);
}
.intro.started .intro__roman{
  opacity:.85;filter:blur(0);transform:none;
  transition:opacity .9s var(--ease),filter .9s var(--ease),transform .9s var(--ease);
  transition-delay:2.45s;
}

/* BEAT 4: the meaning glows in gold only after the Sanskrit has fully risen */
.intro__trans{
  position:static;margin:1.2rem 0 0;width:100%;text-align:center;
  font-family:var(--f);font-style:italic;font-weight:400;color:var(--gold-2);
  font-size:clamp(1.05rem,2.2vw,1.5rem);letter-spacing:.01em;
  opacity:0;filter:blur(8px);transform:translateY(.3em);
  text-shadow:0 0 12px rgba(255,252,245,.9);
}
.intro.started .intro__trans{
  opacity:1;filter:blur(0);transform:none;
  transition:opacity .9s var(--ease),filter .9s var(--ease),transform .9s var(--ease);
  transition-delay:2.9s;
}

/* ---- BEAT 3: STARTED. The sun rises to centre, sky warms, rays bloom ---- */
.intro.started{
  --sun-y:66%;
  background:
    radial-gradient(140% 120% at 50% 86%, rgba(210,155,51,.22) 0%, rgba(244,236,217,0) 50%),
    radial-gradient(130% 130% at 50% 44%, var(--ivory) 0%, rgba(247,238,212,1) 56%, var(--cream-2) 100%);
  transition:background 3.2s var(--slow);
}
.intro.started::before{
  background-position:var(--sun-x) 66%;
  transition:background-position 3.4s var(--slow);
}
.intro.started::after{
  opacity:.85;
  background-position:var(--sun-x) 66%;
  -webkit-mask-position:var(--sun-x) 66%;mask-position:var(--sun-x) 66%;
  transition:opacity 2.6s var(--slow) .4s,
             background-position 3.4s var(--slow),
             -webkit-mask-position 3.4s var(--slow),mask-position 3.4s var(--slow);
  animation:rayBloom var(--breath) ease-in-out infinite,
            raySlow 180s linear infinite;
}

/* on .started the gate elements step aside; the seat keeps breathing with the sun */
.intro.started .intro__logo{
  opacity:0;transform:translate(-50%,-50%) scale(1.12);filter:blur(16px);
  animation:none;transition:opacity .8s var(--slow),transform .9s var(--slow),filter .8s var(--slow);
}
.intro.started .intro__enter{
  opacity:0;transform:translateY(8px) scale(.96);pointer-events:none;
  animation:none;transition:opacity .5s var(--ease),transform .55s var(--ease);
}
.intro.started .intro__skip{opacity:0;pointer-events:none;transition:opacity .4s}
.intro.started .intro__seat{
  opacity:.7;
  background:radial-gradient(circle, var(--sun-soft) 0%, rgba(231,199,120,.42) 48%, rgba(251,246,234,0) 80%);
  animation:seatBreath var(--breath) ease-in-out infinite;
  transition:opacity 1.2s var(--slow);
}
.intro.started .intro__mandala{
  opacity:.34;animation:chakraSpin 200s linear infinite;
  transition:opacity 1.4s var(--slow);
}

/* the veil pool brightens softly under the verse on .started */
.intro__veil{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scaleX(1) scaleY(1);
  z-index:5;width:min(120vw,940px);height:min(50vh,400px);border-radius:50%;
  pointer-events:none;opacity:0;
  background:radial-gradient(ellipse 58% 56% at 50% 50%,
    rgba(255,252,245,.96) 0%, rgba(255,252,245,.9) 32%,
    rgba(247,238,212,.55) 58%, rgba(251,246,234,0) 78%);
  filter:blur(8px);
}
.intro.started .intro__veil{opacity:1;transition:opacity 1.1s var(--ease) .35s}

/* ---- BEAT 4 hold: light at its warmest while the meaning glows; the shared
   breath keeps the scene gently alive (no extra rule needed beyond .started). */

/* ---- BEAT 5a: FADE. Verse blooms upward and away; the sun swells once more ---- */
.intro.fade .intro__words .w,
.intro.fade .intro__roman,
.intro.fade .intro__trans{
  opacity:0;filter:blur(26px);transform:translateY(-.24em) scale(1.05);
  transition:opacity 1.1s var(--ease),filter 1.2s var(--ease),transform 1.2s var(--ease);
}
.intro.fade .intro__verse::before,
.intro.fade .intro__words::after{animation:none;opacity:0;transition:opacity .6s var(--ease)}
.intro.fade::before{
  filter:brightness(1.12);transform:scale(1.06);
  transition:filter 1.1s var(--slow),transform 1.2s var(--slow);
  animation:none;
}
.intro.fade .intro__seat{opacity:.95;animation:none;transition:opacity 1s var(--slow)}
.intro.fade .intro__mandala{opacity:.5;transition:opacity 1s var(--slow)}

/* ---- BEAT 5b: DISSOLVE. A warm luminous centre-seam threshold parts so the
   visitor steps through first light into the homepage (about 0.7s). The veil
   becomes the seam: a vertical light band masked to the centre, scaled open. */
.intro.dissolve{transition:opacity .7s var(--ease),visibility .7s var(--ease)}
.intro.dissolve .intro__mandala{opacity:0;transition:opacity .6s var(--ease)}
.intro.dissolve::before{
  filter:brightness(1.4);opacity:0;
  transition:filter .7s var(--slow),opacity .7s var(--ease) .12s;
  animation:none;
}
.intro.dissolve::after{opacity:0;transition:opacity .5s var(--ease);animation:none}

/* the threshold seam itself, on the existing .intro__veil */
.intro.dissolve .intro__veil{
  opacity:1;z-index:9;
  width:min(160vw,1200px);height:130vh;border-radius:0;filter:blur(6px);
  background:linear-gradient(90deg,
    rgba(231,199,120,0) 0%, rgba(231,199,120,.45) 38%,
    var(--sun-soft) 50%, rgba(231,199,120,.45) 62%, rgba(231,199,120,0) 100%);
  -webkit-mask:linear-gradient(90deg,
    rgba(43,38,32,0) 0%, var(--ink-veil) 42%, rgba(43,38,32,.9) 50%,
    var(--ink-veil) 58%, rgba(43,38,32,0) 100%);
          mask:linear-gradient(90deg,
    rgba(43,38,32,0) 0%, var(--ink-veil) 42%, rgba(43,38,32,.9) 50%,
    var(--ink-veil) 58%, rgba(43,38,32,0) 100%);
  animation:seamPart .7s var(--slow) forwards;
}

/* ---- one shared 9s breath family ---- */
@keyframes dawnSun{
  0%,100%{transform:scale(.975);filter:brightness(.95)}
  50%{transform:scale(1.085);filter:brightness(1.18)}
}
@keyframes rayShimmer{
  0%,100%{opacity:.1}
  50%{opacity:.26}
}
@keyframes seatBreath{
  0%,100%{transform:translate(-50%,-50%) scale(1);opacity:.78}
  50%{transform:translate(-50%,-50%) scale(1.08);opacity:.96}
}
@keyframes logoBreath{
  0%,100%{transform:translate(-50%,-50%) scale(1)}
  50%{transform:translate(-50%,-50%) scale(1.03)}
}
@keyframes rayBloom{
  0%,100%{opacity:.7;filter:brightness(1)}
  50%{opacity:.92;filter:brightness(1.1)}
}
@keyframes cueInhale{
  0%{opacity:0}10%{opacity:.85}45%{opacity:.85}55%{opacity:0}100%{opacity:0}
}
@keyframes cueExhale{
  0%{opacity:0}50%{opacity:0}60%{opacity:.85}95%{opacity:.85}100%{opacity:0}
}

/* slow drift of the ray fan, independent of the breath, very gentle */
@keyframes raySlow{from{transform:rotate(0deg)}to{transform:rotate(8deg)}}
@keyframes chakraSpin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes openInvite{
  0%,100%{box-shadow:0 0 0 0 rgba(210,155,51,0)}
  50%{box-shadow:0 0 26px 2px rgba(210,155,51,.34),0 0 0 1px rgba(231,199,120,.5) inset}
}

/* the centre-seam threshold opening: a vertical light band that widens to fill */
@keyframes seamPart{
  0%{transform:translate(-50%,-50%) scaleX(.12) scaleY(1);opacity:0}
  18%{opacity:1}
  100%{transform:translate(-50%,-50%) scaleX(2.4) scaleY(1);opacity:.96}
}

/* ===================================================================
   @media (max-width:860px): smaller stage, two clean centred lines,
   gentler rays and glow, cue and threshold scaled for phone.
   =================================================================== */
@media (max-width:860px){
  .intro{--stage:min(90vw,56vh);--sun-y:90%}
  .intro::before{background-size:clamp(360px,120vw,560px) clamp(360px,120vw,560px)}
  .intro::after{
    -webkit-mask-size:clamp(560px,180vw,1100px) clamp(560px,180vw,1100px);
            mask-size:clamp(560px,180vw,1100px) clamp(560px,180vw,1100px);
    background:
      repeating-conic-gradient(from 0deg at var(--sun-x) var(--sun-y),
        rgba(231,199,120,.24) 0deg, rgba(231,199,120,0) 2.6deg,
        rgba(231,199,120,0) 9deg, rgba(231,199,120,.24) 11.2deg),
      radial-gradient(120% 56% at 50% 112%,
        rgba(210,155,51,.18) 0%, rgba(231,199,120,.08) 40%, rgba(231,199,120,0) 70%);
    background-repeat:no-repeat;
  }
  .intro.started::after{opacity:.7}
  .intro__verse{padding:0 5vw}
  .intro__words{font-size:clamp(2.05rem,9vw,2.9rem);line-height:1.3}
  .intro__words .line{display:block}
  .intro__words .w{filter:blur(16px)}
  .intro__roman{font-size:clamp(.78rem,3vw,.95rem);margin-top:.85rem}
  .intro__trans{font-size:clamp(.86rem,3.2vw,1.05rem);padding:0 2vw;margin-top:.95rem;letter-spacing:0}
  .intro__verse::before{top:-2.2em;font-size:.6rem;letter-spacing:.28em}
  .intro__words::after{bottom:-2.2em;font-size:.6rem;letter-spacing:.28em}
  .intro__veil{width:min(150vw,560px);height:min(46vh,400px);filter:blur(6px)}
  .intro.dissolve .intro__veil{width:min(200vw,720px);height:130vh}
  .intro__enter{padding:.85rem 2.2rem}
  .intro__skip{bottom:1.4rem;right:1.5rem}
}

/* ===================================================================
   @media (prefers-reduced-motion:reduce): a still, soft dawn. The words
   and meaning cross-fade calmly. No looping breath, no sun rise, no ray
   spin, no parting curtain. The cue collapses to one calm word "Breathe".
   The threshold becomes a plain opacity fade. Matches intro.js short
   no-audio timing under reduced motion.
   =================================================================== */
@media (prefers-reduced-motion:reduce){
  .intro::before{
    background-position:var(--sun-x) 62%;
    animation:none;transform:none;filter:none;
  }
  .intro::after{
    opacity:.5;animation:none;transform:none;
    background-position:var(--sun-x) 62%;
    -webkit-mask-position:var(--sun-x) 62%;mask-position:var(--sun-x) 62%;
  }
  .intro__mandala,
  .intro.started .intro__mandala{animation:none}
  .intro__stage{animation:gateIn .6s ease both}
  .intro__enter{animation:gateIn .6s ease .2s both}
  .intro__logo.lit,
  .intro .intro__logo.lit.breathe{animation:none}
  .intro:has(.intro__logo.lit) .intro__seat,
  .intro.started .intro__seat{animation:none;opacity:.82}

  .intro.started::before,
  .intro.started::after{animation:none;transition:opacity 1s var(--ease)}
  .intro.started::before{background-position:var(--sun-x) 62%}
  .intro.started::after{background-position:var(--sun-x) 62%;-webkit-mask-position:var(--sun-x) 62%;mask-position:var(--sun-x) 62%}

  .intro.started .intro__words .w{
    opacity:1;filter:blur(0);transform:none;
    transition:opacity 1s var(--ease),filter 1s var(--ease);
    transition-delay:calc(.2s + var(--i,0)*.18s);
  }

  /* cue collapses to a single calm "Breathe", on the verse only */
  .intro__verse::before{content:"Breathe";top:-2.4em}
  .intro.started .intro__verse::before{animation:none;opacity:.7;transition:opacity .8s ease}
  .intro__words::after{content:"";display:none}
  .intro.started .intro__words::after{animation:none;opacity:0}

  /* threshold is a plain calm fade, no seam, no scale */
  .intro.dissolve{transition:opacity .7s var(--ease),visibility .7s var(--ease)}
  .intro.dissolve .intro__veil{
    animation:none;background:radial-gradient(ellipse 60% 56% at 50% 50%,
      rgba(255,252,245,.9) 0%, rgba(251,246,234,0) 78%);
    -webkit-mask:none;mask:none;opacity:0;
    width:min(120vw,940px);height:min(50vh,400px);border-radius:50%;
    transform:translate(-50%,-50%);
    transition:opacity .6s var(--ease);
  }
  .intro.fade::before,
  .intro.dissolve::before{animation:none;transform:none}
}

/* graceful degradation: where CSS mask is unsupported, the seam falls back to
   a clean opacity dissolve (the .intro.dissolve opacity:0 above still applies). */
@supports not ((-webkit-mask:linear-gradient(rgba(43,38,32,1),rgba(43,38,32,1))) or (mask:linear-gradient(rgba(43,38,32,1),rgba(43,38,32,1)))){
  .intro.dissolve .intro__veil{animation:none;opacity:0;transition:opacity .7s var(--ease)}
}
/* INTRO v2 END */



/* ============================================================
   v13 :: DK round-3 fixes
   cream2 bands breathe, section eyebrow rule draws in (real motion),
   faculty cards, clean testimonial label, day-timeline sun is now
   real living light (rays turn, glow breathes).
   ============================================================ */
.section--cream2{padding-block:clamp(3.5rem,7vw,6rem)}

.sec-head>.eyebrow,.split .prose>.eyebrow{position:static;padding-left:0;display:flex;align-items:center;gap:.8rem;margin-bottom:1.5rem}
.sec-head--c>.eyebrow{justify-content:center}
.sec-head>.eyebrow::before,.split .prose>.eyebrow::before{content:"";position:static;flex:none;width:30px;height:2px;background:var(--gold);transform-origin:left center;transform:scaleX(1);transition:transform 1s var(--slow)}
.sec-head>.eyebrow[data-reveal]:not(.in)::before,.split .prose>.eyebrow[data-reveal]:not(.in)::before{transform:scaleX(0)}

.faculty-grid{gap:clamp(1.4rem,3vw,2.2rem)}
.teacher{background:var(--ivory);border:1px solid var(--line-2);border-radius:22px;padding:2.4rem 1.5rem 2rem;box-shadow:0 1px 2px rgba(0,72,79,.05);transition:transform .55s var(--slow),box-shadow .55s var(--ease)}
.teacher:hover{transform:translateY(-7px);box-shadow:0 34px 60px -34px rgba(0,72,79,.32)}
.teacher__photo{box-shadow:0 0 0 1px var(--line-2),0 0 0 7px var(--cream-2),0 14px 30px -16px rgba(0,72,79,.3)}

.voices .voice figcaption span{display:block;align-self:auto;margin:.25rem 0 0;padding:0;border:0;background:none;font-weight:700;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-2)}
.voices .voice figcaption span::before{content:none;display:none}

.rt-day .rt-day__head::before{
  width:60px;height:60px;left:50%;margin:0 0 0 -30px;transform:none;
  background:
    radial-gradient(circle at 50% 50%, var(--gold-soft) 0%, rgba(231,199,120,.7) 26%, rgba(231,199,120,0) 62%),
    repeating-conic-gradient(from 0deg at 50% 50%, rgba(210,155,51,.55) 0deg, rgba(210,155,51,0) 5deg, rgba(210,155,51,0) 13deg, rgba(210,155,51,.55) 18deg);
  -webkit-mask:radial-gradient(circle at 50% 50%, rgba(43,38,32,1) 0%, rgba(43,38,32,.6) 52%, transparent 74%);
          mask:radial-gradient(circle at 50% 50%, rgba(43,38,32,1) 0%, rgba(43,38,32,.6) 52%, transparent 74%);
  box-shadow:none;
  animation:rtSunSpin 52s linear infinite, rtSunGlow 5.5s ease-in-out infinite;
}
.rt-day .rt-day__head::after{display:none}
@keyframes rtSunSpin{to{transform:rotate(360deg)}}
@keyframes rtSunGlow{0%,100%{filter:brightness(1);opacity:.9}50%{filter:brightness(1.2);opacity:1}}

@media (prefers-reduced-motion:reduce){
  .rt-day .rt-day__head::before{animation:none}
  .sec-head>.eyebrow::before,.split .prose>.eyebrow::before{transform:scaleX(1)}
}

/* sound toggle: a real animated equalizer (no speaker line-icon) */
.rx-film__sound .eqi{display:inline-flex;align-items:flex-end;gap:2.5px;height:15px;width:18px}
.rx-film__sound .eqi i{flex:1;height:26%;background:currentColor;border-radius:1.5px;transition:height .3s var(--ease)}
.rx-film__sound.is-on .eqi i{animation:eqBar 1s ease-in-out infinite}
.rx-film__sound.is-on .eqi i:nth-child(2){animation-delay:.18s}
.rx-film__sound.is-on .eqi i:nth-child(3){animation-delay:.36s}
.rx-film__sound.is-on .eqi i:nth-child(4){animation-delay:.12s}
@keyframes eqBar{0%,100%{height:22%}50%{height:100%}}
@media (prefers-reduced-motion:reduce){.rx-film__sound.is-on .eqi i{animation:none;height:55%}}

/* ============================================================
   DK: remove the sun from the opening ceremony entirely.
   Keep the chakra, the seated logo, the rising mantra, and the
   warm threshold dissolve. Just a clean luminous cream field.
   ============================================================ */
.intro::before,.intro::after{display:none}
.intro,
.intro.started{
  background:radial-gradient(125% 125% at 50% 42%, var(--ivory) 0%, var(--cream) 62%, var(--cream-2) 100%);
}


/* ============================================================
   v14 :: "What to expect" video cards (retreats landing)
   small looping footage behind each topic, text on top.
   ============================================================ */
.rt-high__grid--film{grid-template-columns:repeat(3,1fr);gap:clamp(1.1rem,2.4vw,1.7rem)}
.rt-h--film{position:relative;aspect-ratio:4/5;border-radius:20px;overflow:hidden;padding:0;border:1px solid var(--line-2);background:var(--teal-2);box-shadow:0 1px 2px rgba(0,72,79,.06),0 20px 44px -30px rgba(0,72,79,.3);isolation:isolate;transition:transform .55s var(--slow),box-shadow .55s var(--ease)}
.rt-h--film .rt-h__v{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;transition:transform 1.5s var(--slow)}
.rt-h--film .rt-h__scrim{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(1,46,51,.04) 0%,rgba(1,46,51,.1) 40%,rgba(1,46,51,.52) 70%,rgba(1,46,51,.86) 100%)}
.rt-h--film .rt-h__txt{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:clamp(1.3rem,2.2vw,1.8rem)}
.rt-h--film .rt-h__txt h3{color:var(--ivory);font-size:clamp(1.2rem,1.6vw,1.4rem);font-weight:800;letter-spacing:-.015em;margin:0 0 .4rem;text-shadow:0 1px 16px rgba(1,46,51,.5)}
.rt-h--film .rt-h__txt p{color:var(--on-teal);opacity:.94;font-size:.92rem;line-height:1.5;margin:0;max-width:30ch;text-shadow:0 1px 12px rgba(1,46,51,.5)}
.rt-h--film:hover{transform:translateY(-6px);box-shadow:0 40px 70px -34px rgba(0,72,79,.5)}
.rt-h--film:hover .rt-h__v{transform:scale(1.06)}
@media (max-width:860px){.rt-high__grid--film{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.rt-high__grid--film{grid-template-columns:1fr}.rt-h--film{aspect-ratio:5/4}}
@media (prefers-reduced-motion:reduce){.rt-h--film:hover{transform:none}.rt-h--film .rt-h__v{transition:none}}
