/* Homepage: the page runs like one of Cathy's classes. Arrive, Ground, Move, Teach, Reflect, Rest. */

/* ---------- scroll reveal (only when JS is running) ---------- */
.rv .reveal{opacity:0;transform:translateY(28px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1)}
.rv .reveal.in{opacity:1;transform:none}
.rv .reveal.d1{transition-delay:.12s}.rv .reveal.d2{transition-delay:.24s}.rv .reveal.d3{transition-delay:.36s}
@media (prefers-reduced-motion:reduce){.rv .reveal{opacity:1;transform:none;transition:none}}

.chapter{display:flex;align-items:center;gap:14px;margin:0 0 18px;font-size:13px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:var(--mauve)}
.chapter i{font-style:normal;font-family:var(--serif);font-size:20px;letter-spacing:0;text-transform:none;color:var(--gold)}
.chapter::after{content:"";height:1px;width:64px;background:currentColor;opacity:.35}
.big{font-size:clamp(40px,5.6vw,76px);line-height:1.02;letter-spacing:-.01em}
.big em{font-style:italic;color:var(--mauve)}

/* ---------- practice rail (desktop) ---------- */
.rail{position:fixed;left:28px;top:50%;transform:translateY(-50%);z-index:30;display:none}
.rail ol{list-style:none;margin:0;padding:0;position:relative}
.rail ol::before{content:"";position:absolute;left:5px;top:8px;bottom:8px;width:1px;background:#D9C8D5}
.rail li{position:relative}
.rail a{display:flex;align-items:center;gap:14px;padding:9px 0;text-decoration:none;color:#8C7889;font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:600}
.rail a::before{content:"";width:11px;height:11px;border-radius:50%;background:var(--ground);border:1.5px solid #CDBBC9;flex:0 0 auto;transition:all .4s}
.rail a span{opacity:0;transform:translateX(-6px);transition:all .3s}
.rail:hover a span,.rail a:focus-visible span{opacity:1;transform:none}
.rail:hover{background:rgba(252,250,246,.92);border-radius:16px;box-shadow:0 0 0 12px rgba(252,250,246,.92)}
.rail.on-dark:hover{background:rgba(43,31,44,.92);box-shadow:0 0 0 12px rgba(43,31,44,.92)}
.rail a[aria-current="true"]{color:var(--mauve)}
.rail a[aria-current="true"]::before{background:var(--mauve);border-color:var(--mauve);box-shadow:0 0 0 5px var(--mauve-wash)}
.rail.on-dark a{color:#BFAFC0}.rail.on-dark a[aria-current="true"]{color:var(--straw)}
.rail.on-dark a[aria-current="true"]::before{background:var(--gold);border-color:var(--gold);box-shadow:0 0 0 5px rgba(201,174,98,.2)}
@media (min-width:1240px){.rail{display:block}}

/* ---------- breathing book button ---------- */
.orb{position:fixed;right:22px;bottom:22px;z-index:35;width:92px;height:92px;border-radius:50%;display:grid;place-items:center;text-decoration:none;color:#fff;font:600 14px var(--sans);opacity:0;transform:scale(.6);pointer-events:none;transition:opacity .5s,transform .5s}
.orb.show{opacity:1;transform:none;pointer-events:auto}
.orb::before{content:"";position:absolute;inset:0;border-radius:50%;background:var(--mauve);box-shadow:0 10px 30px rgba(94,63,91,.35)}
.orb::after{content:"";position:absolute;inset:-8px;border-radius:50%;border:1.5px solid var(--mauve-2);animation:orbRing 10s ease-in-out infinite}
.orb span{position:relative;text-align:center;line-height:1.15}
.orb:hover::before{background:var(--plum)}
@keyframes orbRing{0%,100%{transform:scale(.88);opacity:0}42%,50%{transform:scale(1.12);opacity:.8}}
@media (prefers-reduced-motion:reduce){.orb::after{animation:none;opacity:.6}}

/* ---------- 2 GROUND: about ---------- */
.ground{position:relative;overflow:hidden;background:#fff;padding:140px 0 120px;border-radius:48px 48px 0 0;margin-top:-24px}
.ghost-year{position:absolute;right:-2vw;top:40px;font-family:var(--serif);font-weight:500;font-size:clamp(160px,26vw,380px);line-height:.8;color:transparent;-webkit-text-stroke:1.5px #E8DCE5;pointer-events:none;user-select:none}
.ground .grid{position:relative;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:72px;align-items:center}
.arch-wrap{position:relative;padding:28px}
.arch-wrap .halo{position:absolute;left:50%;top:-6%;width:118%;aspect-ratio:1/1;transform:translateX(-50%);border-radius:50%;border:1px dashed var(--gold);opacity:.8;animation:halo 60s linear infinite}
.arch-wrap .halo2{position:absolute;inset:14px;border-radius:999px 999px 30px 30px;border:1px solid #E3D6DF}
@keyframes halo{to{transform:translateX(-50%) rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.arch-wrap .halo{animation:none}}
.arch-wrap .portrait{position:relative;border-radius:999px 999px 24px 24px;aspect-ratio:4/5;background:linear-gradient(180deg,#EEE4EC,#F4ECD2)}
.sig{position:absolute;left:-6px;bottom:30px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:10px 18px 10px 12px;display:flex;align-items:center;gap:10px;font-size:14px;box-shadow:0 10px 30px rgba(43,31,44,.08)}
.sig b{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--straw);font-family:var(--serif);font-size:18px;color:var(--mauve)}
.thread{position:relative;list-style:none;margin:44px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.thread::before{content:"";position:absolute;left:6px;right:0;top:6px;height:1.5px;background:linear-gradient(90deg,var(--mauve),var(--gold));transform-origin:left;transform:scaleX(0);transition:transform 1.6s cubic-bezier(.2,.7,.2,1) .3s}
.thread.in::before,html:not(.rv) .thread::before{transform:scaleX(1)}
.thread li{position:relative;padding-top:30px}
.thread li::before{content:"";position:absolute;left:0;top:0;width:13px;height:13px;border-radius:50%;background:#fff;border:2px solid var(--mauve)}
.thread li:last-child::before{background:var(--gold);border-color:var(--gold);box-shadow:0 0 0 6px rgba(201,174,98,.18)}
.thread b{display:block;font-family:var(--serif);font-weight:500;font-size:40px;line-height:1;color:var(--plum);margin-bottom:8px}
.thread span{font-size:15px;line-height:1.5;display:block}

/* ---------- 3 MOVE: offerings ---------- */
.move{padding:140px 0 120px}
.move-head{display:flex;flex-wrap:wrap;gap:24px 60px;align-items:flex-end;justify-content:space-between;margin-bottom:64px}
.move-head p{max-width:380px;margin:0}
.arches{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:start}
.arch{position:relative;display:flex;flex-direction:column;min-height:560px;padding:120px 34px 34px;border-radius:999px 999px 28px 28px;text-decoration:none;color:inherit;overflow:hidden;transition:transform .5s cubic-bezier(.2,.7,.2,1),box-shadow .5s}
.arch:nth-child(2){margin-top:64px}
.arch:hover{transform:translateY(-10px);box-shadow:0 30px 60px rgba(43,31,44,.12)}
.arch .rings{position:absolute;left:50%;top:34px;width:120px;height:120px;transform:translateX(-50%)}
.arch .rings i{position:absolute;inset:0;border-radius:50%;border:1.5px solid currentColor;opacity:.3;transition:transform .7s cubic-bezier(.2,.7,.2,1),opacity .7s}
.arch .rings i:nth-child(2){inset:22px;opacity:.5}
.arch .rings i:nth-child(3){inset:44px;background:var(--gold);border-color:var(--gold);opacity:1}
.arch:hover .rings i:nth-child(1){transform:scale(1.25);opacity:.15}
.arch:hover .rings i:nth-child(2){transform:scale(1.15)}
.arch .num{font-family:var(--serif);font-style:italic;font-size:22px;opacity:.7;margin:40px 0 6px}
.arch h3{font-size:clamp(30px,2.6vw,38px);margin:0 0 14px}
.arch p{font-size:16px;line-height:1.65}
.arch .meta{margin-top:auto;padding-top:20px;border-top:1px solid currentColor;border-color:rgba(94,63,91,.18);font-size:14px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.arch .meta strong{font-weight:600}
.arch.a1{background:#fff;border:1px solid var(--line);color:var(--plum)}
.arch.a1 .rings{color:var(--mauve)}
.arch.a2{background:var(--mauve-wash);color:var(--plum)}
.arch.a2 .rings{color:var(--mauve)}
.arch.a3{background:var(--mauve);color:#fff}
.arch.a3 .rings{color:var(--straw)}
.arch.a3 .meta{border-color:rgba(255,255,255,.25)}

.week{margin-top:96px;display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:48px;align-items:start}
.week h3{font-size:40px;margin:0 0 12px}
.week ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.week li a{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:22px;align-items:center;padding:16px 22px 16px 16px;background:#fff;border:1px solid var(--line);border-radius:999px;text-decoration:none;color:var(--plum);transition:border-color .3s,transform .3s}
.week li a:hover{border-color:var(--mauve);transform:translateX(6px)}
.week .day{display:grid;place-items:center;width:96px;height:64px;border-radius:999px;background:var(--straw);font-family:var(--serif);font-size:22px;line-height:1;text-align:center}
.week .day small{display:block;font-family:var(--sans);font-size:12px;margin-top:3px;color:var(--mauve)}
.week .what b{display:block;font-weight:600}
.week .what span{font-size:14px;color:var(--mauve)}
.week .go{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--mauve);color:#fff;font-size:18px}

/* ---------- 4 TEACH: training ---------- */
.teach{position:relative;background:var(--plum);color:var(--straw);padding:150px 0 140px;border-radius:56px;margin:0 12px;overflow:hidden}
.teach .chapter{color:var(--gold)}
.teach .big{color:#fff}.teach .big em{color:var(--gold)}
.teach .grid{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);gap:64px;align-items:center}
.teach .lead{color:#E9DEC8}
.ripple{position:relative;aspect-ratio:1/1;max-width:520px;width:100%;margin:0 auto}
.ripple .w{position:absolute;inset:0;margin:auto;border-radius:50%;border:1px solid rgba(201,174,98,.55);animation:wave 9s linear infinite;opacity:0}
.ripple .w:nth-child(2){animation-delay:3s}.ripple .w:nth-child(3){animation-delay:6s}
@keyframes wave{0%{transform:scale(.18);opacity:0}10%{opacity:.9}100%{transform:scale(1);opacity:0}}
.ripple .core{position:absolute;inset:41%;border-radius:50%;background:var(--gold);display:grid;place-items:center;color:var(--plum);font-family:var(--serif);font-size:18px;text-align:center;line-height:1.1}
.ripple .lbl{position:absolute;left:50%;transform:translateX(-50%);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#D9CDB4;white-space:nowrap;background:var(--plum);padding:2px 10px}
.ripple .ring{position:absolute;border-radius:50%;border:1px dashed rgba(244,236,210,.25)}
.ripple .rA{inset:26%}.ripple .rB{inset:8%}
.ripple .l1{top:24%}.ripple .l2{top:6%}
@media (prefers-reduced-motion:reduce){.ripple .w{animation:none;opacity:.35}.ripple .w:nth-child(2){transform:scale(.6)}.ripple .w:nth-child(3){transform:scale(.85)}}
.teach .q{margin:72px 0 0;padding-top:48px;border-top:1px solid rgba(244,236,210,.18);display:grid;grid-template-columns:auto minmax(0,1fr);gap:28px;align-items:start}
.teach .q .mark{font-family:var(--serif);font-size:120px;line-height:.7;color:var(--gold)}
.teach .q blockquote{margin:0;font-family:var(--serif);font-style:italic;font-size:clamp(26px,2.8vw,38px);line-height:1.3;color:#fff}
.teach .q figcaption{margin-top:16px;font-size:14px;color:#D9CDB4}
.btn-gold{background:var(--gold);border-color:var(--gold);color:var(--plum)}.btn-gold:hover{background:var(--straw);border-color:var(--straw);color:var(--plum)}

/* ---------- 5 REFLECT: book ---------- */
.reflect{padding:150px 0 130px}
.reflect .grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:72px;align-items:center}
.stage{perspective:1400px;display:grid;place-items:center;min-height:420px;position:relative}
.stage::before{content:"";position:absolute;width:360px;height:360px;border-radius:50%;background:var(--straw)}
.book3d{position:relative;width:230px;height:320px;transform-style:preserve-3d;transform:rotateY(-28deg) rotateX(6deg);transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}
.stage:hover .book3d,.book3d.in{transform:rotateY(-12deg) rotateX(2deg)}
.book3d .front,.book3d .back,.book3d .side{position:absolute;top:0}
.book3d .front{inset:0;border-radius:4px 14px 14px 4px;background:linear-gradient(135deg,#9C7A97,#7A5675);box-shadow:inset 12px 0 0 rgba(43,31,44,.25);display:flex;flex-direction:column;justify-content:space-between;padding:30px 24px 26px 34px;color:#fff;transform:translateZ(18px)}
.book3d .front b{font-family:var(--serif);font-weight:500;font-size:30px;line-height:1.08}
.book3d .front small{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--straw)}
.book3d .front .seal{width:46px;height:46px;border-radius:50%;border:1.5px solid var(--straw);display:grid;place-items:center}
.book3d .front .seal::after{content:"";width:14px;height:14px;border-radius:50%;background:var(--gold)}
.book3d .back{inset:0;border-radius:14px 4px 4px 14px;background:#5E3F5B;transform:translateZ(-18px)}
.book3d .side{right:0;width:36px;height:100%;background:repeating-linear-gradient(0deg,#FCFAF6 0 2px,#EEE4EC 2px 3px);transform:rotateY(90deg) translateZ(212px) translateX(0);transform-origin:center}
.book3d .shadow{position:absolute;left:10%;right:0;bottom:-30px;height:24px;border-radius:50%;background:rgba(43,31,44,.18);filter:blur(10px);transform:translateZ(-40px) rotateX(90deg)}
.pull{font-family:var(--serif);font-style:italic;font-size:clamp(30px,3.4vw,46px);line-height:1.2;margin:28px 0 26px;padding-left:28px;border-left:2px solid var(--gold)}

/* ---------- 6 FAQ ---------- */
.faq{background:#fff;padding:140px 0;border-radius:48px 48px 0 0}
.faq .grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:64px;align-items:start}
.faq .sticky{position:sticky;top:40px}
.faq details{padding:6px 0}
.faq summary{font-family:var(--serif);font-size:26px;font-weight:500;min-height:72px}
.faq summary::after{width:40px;height:40px;border-radius:50%;border:1px solid var(--field);display:grid;place-items:center;font-family:var(--sans);font-size:22px}
.faq details[open] summary::after{background:var(--mauve);color:#fff;border-color:var(--mauve)}
.faq details p{font-size:17px;padding-bottom:12px}

/* ---------- 7 REST: contact ---------- */
.rest{position:relative;overflow:hidden;background:var(--mauve-wash);padding:160px 0 120px}
.rest .sun{position:absolute;left:50%;top:-280px;width:560px;height:560px;margin-left:-280px;border-radius:50%;background:radial-gradient(circle at 50% 70%,#F4ECD2 0 55%,rgba(244,236,210,0) 70%)}
.rest .horizon{position:absolute;left:0;right:0;top:0;height:1px;background:rgba(94,63,91,.15)}
.rest .grid{position:relative;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:64px;align-items:start}
.rest .panel{border-radius:32px;padding:40px;box-shadow:0 30px 60px rgba(94,63,91,.12);border:0}
.rest .contact-lines{margin-top:28px;display:flex;flex-direction:column;gap:12px}
.rest .contact-lines a,.rest .contact-lines span{display:flex;align-items:center;gap:12px;font-size:17px;text-decoration:none}
.rest .contact-lines i{width:40px;height:40px;border-radius:50%;background:#fff;display:grid;place-items:center;flex:0 0 auto}

/* ---------- responsive ---------- */
@media (max-width:980px){
  .ground .grid,.teach .grid,.reflect .grid,.faq .grid,.rest .grid,.week{grid-template-columns:minmax(0,1fr)}
  .arches{grid-template-columns:minmax(0,1fr)}
  .arch:nth-child(2){margin-top:0}
  .arch{min-height:0}
  .faq .sticky{position:static}
  .arch-wrap{max-width:420px;margin:0 auto}
}
@media (max-width:640px){
  .ground,.move,.reflect,.faq{padding:96px 0 80px}
  .teach{padding:96px 0;border-radius:32px;margin:0 8px}
  .rest{padding:120px 0 80px}
  .thread{grid-template-columns:minmax(0,1fr);gap:4px}
  .thread::before{left:6px;right:auto;top:6px;bottom:6px;width:1.5px;height:auto;transform-origin:top;transform:scaleY(0)}
  .thread.in::before{transform:scaleY(1)}
  .thread li{padding:0 0 22px 32px}
  .week li a{grid-template-columns:76px minmax(0,1fr) auto;gap:14px;padding:12px 14px 12px 12px;border-radius:28px}
  .week .day{width:76px}
  .teach .q{grid-template-columns:minmax(0,1fr)}
  .teach .q .mark{font-size:80px}
  .rest .panel{padding:26px}
  .orb{width:76px;height:76px;right:14px;bottom:14px;font-size:13px}
  .stage{min-height:360px}.stage::before{width:290px;height:290px}
}
/* keep the cookie card clear of the book button on phones */
@media (max-width:640px){.cookie{right:100px}}
