/* ==========================================================================
   Exousia Prophetic Wellness — design system
   One master brand (royal plum + burnished gold on ivory paper),
   three expressions: Ministry & Training (plum), Wellness (sage),
   Women of Destiny (rose).
   ========================================================================== */

@font-face {
  font-family: "Bodoni Moda";
  src: url("/assets/fonts/bodoni-moda.woff2") format("woff2-variations"),
       url("/assets/fonts/bodoni-moda.woff2") format("woff2");
  font-weight: 400 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Bodoni Moda";
  src: url("/assets/fonts/bodoni-moda-italic.woff2") format("woff2-variations"),
       url("/assets/fonts/bodoni-moda-italic.woff2") format("woff2");
  font-weight: 400 900;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Jost";
  src: url("/assets/fonts/jost.woff2") format("woff2-variations"),
       url("/assets/fonts/jost.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

:root {
  /* Paper & ink */
  --paper: #fbf7f1;
  --paper-2: #f3ebdf;
  --ink: #2a1840;          /* royal plum, headings */
  --plum: #4b2a6e;         /* brand purple */
  --plum-deep: #1f1130;
  --text: #2d2733;         /* charcoal body copy */
  --muted: #5d5466;
  --line: rgba(42, 24, 64, 0.16);

  /* Accent */
  --gold: #b08236;         /* decorative only */
  --gold-text: #7f5b1c;    /* text-safe gold on paper */
  --gold-soft: #e6d3ad;

  /* Expressions */
  --ministry: #4b2a6e;
  --ministry-tint: #ece6f2;
  --wellness: #56694f;
  --wellness-tint: #e6ebe0;
  --destiny: #94505b;
  --destiny-tint: #f4e4e1;

  --serif: "Bodoni Moda", "Didot", "Bodoni 72", Georgia, serif;
  --sans: "Jost", "Futura", "Avenir Next", system-ui, -apple-system, "Segoe UI", sans-serif;

  --fs-small: 0.9375rem;
  --fs-body: clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem);
  --fs-lede: clamp(1.25rem, 1.1rem + 0.6vw, 1.5rem);
  --fs-h3: clamp(1.45rem, 1.25rem + 0.8vw, 1.95rem);
  --fs-h2: clamp(2.25rem, 1.6rem + 2.8vw, 4rem);
  --fs-h1: clamp(2.75rem, 1.8rem + 4.6vw, 5.75rem);
  --fs-display: clamp(4.25rem, 2rem + 10.5vw, 11rem);

  --gutter: clamp(1rem, 4.5vw, 4rem);
  --max: 1240px;
  --section: clamp(4.5rem, 3rem + 7vw, 9rem);
  --radius: 3px;
  --header-h: 76px;
  --ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: calc(var(--header-h) + 16px); }
body {
  margin: 0;
  background: var(--paper);
  color: var(--text);
  font-family: var(--sans);
  font-size: var(--fs-body);
  line-height: 1.62;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
img, svg, picture { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; }
button, input, select, textarea { font: inherit; color: inherit; }
h1, h2, h3, h4 { font-family: var(--serif); font-weight: 500; color: var(--ink); line-height: 1.08; margin: 0; letter-spacing: -0.01em; font-optical-sizing: auto; text-wrap: balance; }
p { margin: 0 0 1em; text-wrap: pretty; }
p:last-child { margin-bottom: 0; }
ul, ol { margin: 0; padding: 0; }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; border-radius: 2px; }
.dark :focus-visible { outline-color: var(--gold-soft); }
::selection { background: var(--gold-soft); color: var(--ink); }

.visually-hidden {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.skip-link {
  position: absolute; left: 1rem; top: -100px; z-index: 200;
  background: var(--ink); color: var(--paper); padding: 0.75rem 1.1rem; text-decoration: none; border-radius: var(--radius);
}
.skip-link:focus { top: 1rem; }

/* ---------- Layout ---------- */
.wrap { width: 100%; max-width: calc(var(--max) + var(--gutter) * 2); margin-inline: auto; padding-inline: var(--gutter); }
.wrap--narrow { max-width: calc(820px + var(--gutter) * 2); }
.section { padding-block: var(--section); position: relative; }
.section--tight { padding-block: calc(var(--section) * 0.6); }
.section--paper2 { background: var(--paper-2); }
.section--ministry { background: var(--ministry-tint); }
.section--wellness { background: var(--wellness-tint); }
.section--destiny { background: var(--destiny-tint); }
.dark { background: var(--ink); color: #eee6f3; }
.dark h1, .dark h2, .dark h3 { color: #fff9f0; }
.dark a { color: #fff9f0; }

.grid-2 { display: grid; gap: clamp(2rem, 5vw, 5rem); }
@media (min-width: 900px) {
  .grid-2 { grid-template-columns: 1fr 1fr; align-items: start; }
  .grid-2--wide-left { grid-template-columns: 1.25fr 1fr; }
  .grid-2--wide-right { grid-template-columns: 1fr 1.25fr; }
  .grid-2--center { align-items: center; }
}

/* ---------- Typography helpers ---------- */
.kicker {
  font-family: var(--serif);
  font-style: italic;
  font-size: 1.125rem;
  color: var(--gold-text);
  margin-bottom: 1rem;
  display: flex; align-items: center; gap: 0.75rem;
}
.kicker::before { content: ""; width: 2.25rem; height: 1px; background: currentColor; opacity: 0.7; }
.dark .kicker { color: var(--gold-soft); }
.kicker--ministry { color: var(--ministry); }
.kicker--wellness { color: var(--wellness); }
.kicker--destiny { color: var(--destiny); }
.h-display { font-size: var(--fs-display); line-height: 0.88; letter-spacing: -0.035em; font-weight: 500; }
.h1 { font-size: var(--fs-h1); letter-spacing: -0.025em; }
.h2 { font-size: var(--fs-h2); letter-spacing: -0.02em; }
.h3 { font-size: var(--fs-h3); }
.lede { font-size: var(--fs-lede); line-height: 1.5; color: var(--text); max-width: 34em; }
.dark .lede { color: #eee6f3; }
.measure { max-width: 38em; }
.muted { color: var(--muted); }
.dark .muted { color: #cfc3da; }
.small { font-size: var(--fs-small); }
.italic { font-style: italic; }
.serif { font-family: var(--serif); }
.stack > * + * { margin-top: 1.25rem; }
.stack-lg > * + * { margin-top: 2rem; }

/* ---------- Buttons & links ---------- */
.btn {
  --bg: var(--ink); --fg: #fff9f0; --bd: var(--ink);
  display: inline-flex; align-items: center; justify-content: center; gap: 0.6rem;
  min-height: 52px; padding: 0.85rem 1.6rem;
  background: var(--bg); color: var(--fg); border: 1.5px solid var(--bd);
  border-radius: var(--radius);
  font-family: var(--sans); font-weight: 500; font-size: 1rem; letter-spacing: 0.02em;
  text-decoration: none; cursor: pointer;
  transition: background-color 0.25s var(--ease), color 0.25s var(--ease), border-color 0.25s var(--ease), transform 0.25s var(--ease);
  position: relative;
}
.btn:hover { --bg: var(--plum); --bd: var(--plum); }
.btn:active { transform: translateY(1px); }
.btn--ghost { --bg: transparent; --fg: var(--ink); --bd: rgba(42, 24, 64, 0.35); }
.btn--ghost:hover { --bg: var(--ink); --fg: #fff9f0; --bd: var(--ink); }
.btn--gold { --bg: var(--gold-soft); --fg: var(--ink); --bd: var(--gold-soft); }
.btn--gold:hover { --bg: #fff9f0; --bd: #fff9f0; --fg: var(--ink); }
.dark .btn--ghost { --fg: #fff9f0; --bd: rgba(255, 249, 240, 0.45); }
.dark .btn--ghost:hover { --bg: #fff9f0; --fg: var(--ink); --bd: #fff9f0; }
.btn--wellness { --bg: var(--wellness); --bd: var(--wellness); }
.btn--wellness:hover { --bg: #43543d; --bd: #43543d; }
.btn--destiny { --bg: var(--destiny); --bd: var(--destiny); }
.btn--destiny:hover { --bg: #7b3f49; --bd: #7b3f49; }
.btn[disabled], .btn[aria-busy="true"] { opacity: 0.6; cursor: progress; }
.btn-row { display: flex; flex-wrap: wrap; gap: 0.85rem; align-items: center; }

.link {
  font-weight: 500; text-decoration: none;
  background: linear-gradient(currentColor, currentColor) 0 100% / 100% 1px no-repeat;
  padding-bottom: 2px; transition: background-size 0.3s var(--ease), color 0.2s;
}
.link:hover { background-size: 0% 1px; background-position: 100% 100%; }
.link--ministry { color: var(--ministry); }
.link--wellness { color: var(--wellness); }
.link--destiny { color: var(--destiny); }
.link--gold { color: var(--gold-text); }
.dark .link { color: var(--gold-soft); }

/* ---------- Header ---------- */
.site-header {
  position: sticky; top: 0; z-index: 100;
  height: var(--header-h);
  background: rgba(251, 247, 241, 0.86);
  -webkit-backdrop-filter: saturate(1.4) blur(12px);
  backdrop-filter: saturate(1.4) blur(12px);
  border-bottom: 1px solid transparent;
  transition: border-color 0.3s, box-shadow 0.3s;
}
.site-header.is-scrolled { border-bottom-color: var(--line); }
.site-header__inner { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; }
.brand { display: inline-flex; align-items: center; gap: 0.7rem; text-decoration: none; color: var(--ink); flex-shrink: 0; }
.brand__mark { width: 38px; height: 38px; flex-shrink: 0; }
.brand__text { display: flex; flex-direction: column; line-height: 1; }
.brand__name { font-family: var(--serif); font-size: 1.6rem; font-weight: 500; letter-spacing: 0.01em; }
.brand__sub { font-size: 0.72rem; letter-spacing: 0.24em; text-transform: uppercase; color: var(--gold-text); margin-top: 0.3rem; font-weight: 500; }

.nav { display: none; }
.nav__list { list-style: none; display: flex; align-items: center; gap: clamp(1rem, 1.6vw, 1.9rem); }
.nav__link {
  text-decoration: none; font-size: 0.98rem; font-weight: 450; color: var(--text);
  padding: 0.5rem 0; position: relative; white-space: nowrap;
}
.nav__link::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0.15rem; height: 1.5px;
  background: var(--gold); transform: scaleX(0); transform-origin: left; transition: transform 0.3s var(--ease);
}
.nav__link:hover::after, .nav__link[aria-current="page"]::after { transform: scaleX(1); }
.nav__link[aria-current="page"] { color: var(--ink); font-weight: 550; }
.header-cta { display: none; min-height: 44px; padding: 0.6rem 1.15rem; font-size: 0.95rem; }

.menu-toggle {
  display: inline-flex; align-items: center; gap: 0.6rem;
  min-height: 48px; min-width: 48px; padding: 0 0.4rem 0 0.9rem;
  background: transparent; border: 0; cursor: pointer; color: var(--ink);
  font-weight: 500; font-size: 0.95rem;
}
.menu-toggle__bars { width: 26px; height: 14px; position: relative; display: inline-block; }
.menu-toggle__bars span { position: absolute; left: 0; right: 0; height: 1.5px; background: currentColor; transition: transform 0.3s var(--ease), opacity 0.2s; }
.menu-toggle__bars span:nth-child(1) { top: 0; }
.menu-toggle__bars span:nth-child(2) { top: 6px; }
.menu-toggle__bars span:nth-child(3) { top: 12px; }
.menu-toggle[aria-expanded="true"] .menu-toggle__bars span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] .menu-toggle__bars span:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded="true"] .menu-toggle__bars span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

@media (min-width: 1140px) {
  .nav { display: block; }
  .header-cta { display: inline-flex; }
  .menu-toggle { display: none; }
  .site-header__inner { justify-content: flex-start; }
  .nav { margin-left: auto; }
  .header-cta { margin-left: 1.75rem; }
}

/* Mobile menu */
.mobile-menu {
  position: fixed; inset: var(--header-h) 0 0 0; z-index: 99;
  background: var(--paper);
  overflow-y: auto; overscroll-behavior: contain;
  padding: 1.5rem var(--gutter) 2.5rem;
  visibility: hidden; opacity: 0; transform: translateY(-8px);
  transition: opacity 0.3s var(--ease), transform 0.3s var(--ease), visibility 0s linear 0.3s;
}
.mobile-menu.is-open { visibility: visible; opacity: 1; transform: none; transition-delay: 0s; }
.mobile-menu__list { list-style: none; border-top: 1px solid var(--line); }
.mobile-menu__list li { border-bottom: 1px solid var(--line); }
.mobile-menu__list a {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  min-height: 60px; padding: 0.6rem 0;
  font-family: var(--serif); font-size: 1.65rem; color: var(--ink); text-decoration: none;
}
.mobile-menu__list a[aria-current="page"] { color: var(--gold-text); }
.mobile-menu__list .dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; }
.dot--ministry, .bg-ministry { background: var(--ministry); }
.dot--wellness, .bg-wellness { background: var(--wellness); }
.dot--destiny, .bg-destiny { background: var(--destiny); }
.mobile-menu__foot { margin-top: 2rem; display: grid; gap: 0.85rem; }
.mobile-menu__foot .btn { width: 100%; }
.mobile-menu__contact { margin-top: 1.5rem; font-size: var(--fs-small); color: var(--muted); }
.mobile-menu__contact a { color: var(--ink); }
body.menu-open { overflow: hidden; }
@media (min-width: 1140px) { .mobile-menu { display: none; } }

/* Sticky mobile CTA */
.sticky-cta {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
  display: grid; grid-template-columns: auto 1fr; gap: 0.6rem;
  padding: 0.65rem var(--gutter) calc(0.65rem + env(safe-area-inset-bottom));
  background: rgba(251, 247, 241, 0.95);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  border-top: 1px solid var(--line);
  transform: translateY(110%); transition: transform 0.35s var(--ease);
}
.sticky-cta.is-visible { transform: none; }
.sticky-cta .btn { min-height: 48px; padding-inline: 1.1rem; }
@media (min-width: 900px) { .sticky-cta { display: none; } }

/* ---------- Brand marks ---------- */
.crown { width: 34px; height: auto; color: var(--gold); }
.rule-ornament { display: flex; align-items: center; gap: 0.9rem; color: var(--gold); }
.rule-ornament::before, .rule-ornament::after { content: ""; height: 1px; flex: 1; background: currentColor; opacity: 0.55; }
.rule-ornament svg { width: 22px; height: 22px; flex-shrink: 0; }

/* ---------- Home hero ---------- */
.hero { position: relative; padding-top: clamp(2rem, 5vw, 4.5rem); padding-bottom: clamp(3.5rem, 7vw, 6.5rem); overflow: hidden; }
.hero__grid { display: grid; gap: clamp(2.5rem, 5vw, 4rem); align-items: center; }
@media (min-width: 960px) { .hero__grid { grid-template-columns: 1.15fr 0.85fr; } }
.hero__title { margin-bottom: 1.6rem; }
.hero__word { display: block; font-size: var(--fs-display); line-height: 0.86; letter-spacing: -0.04em; font-weight: 500; color: var(--ink); }
.hero__word-sub { display: block; font-family: var(--sans); font-size: clamp(0.85rem, 0.75rem + 0.4vw, 1.05rem); font-weight: 500; letter-spacing: 0.32em; text-transform: uppercase; color: var(--gold-text); margin-top: 1.1rem; padding-left: 0.3em; }
.definition {
  display: grid; grid-template-columns: auto 1fr; gap: 0.2rem 1.1rem;
  max-width: 34rem; padding: 1.1rem 0; margin-bottom: 1.9rem;
  border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
  font-size: var(--fs-small); color: var(--muted);
}
.definition dt { font-family: var(--serif); font-style: italic; color: var(--ink); font-size: 1.05rem; }
.definition dd { margin: 0; }
.hero__statement { font-family: var(--serif); font-size: clamp(1.6rem, 1.15rem + 1.9vw, 2.6rem); line-height: 1.16; color: var(--ink); margin-bottom: 1.25rem; max-width: 18em; letter-spacing: -0.015em; }
.hero__copy { max-width: 33em; margin-bottom: 2rem; }

.hero__media { position: relative; justify-self: center; width: min(100%, 470px); }
.arch {
  position: relative; border-radius: 999px 999px var(--radius) var(--radius); overflow: hidden;
  aspect-ratio: 4 / 5; background: var(--paper-2);
}
.arch img { width: 100%; height: 100%; object-fit: cover; }
.hero__media .arch img { object-position: 42% 20%; }
.arch-line { position: absolute; inset: -14px -14px 14px 14px; border: 1px solid var(--gold); border-radius: 999px 999px var(--radius) var(--radius); pointer-events: none; z-index: -1; }
.hero__inset {
  position: absolute; left: -12%; bottom: -8%; width: 58%;
  border: 6px solid var(--paper); border-radius: var(--radius);
  box-shadow: 0 18px 40px -18px rgba(31, 17, 48, 0.45);
  aspect-ratio: 3 / 2; overflow: hidden;
}
.hero__inset img { width: 100%; height: 100%; object-fit: cover; object-position: 40% 50%; }
.hero__caption { position: absolute; right: 0; bottom: -2.4rem; font-family: var(--serif); font-style: italic; font-size: 0.98rem; color: var(--muted); }
@media (max-width: 600px) {
  .hero__inset { left: -4%; bottom: -10%; width: 56%; }
  .hero__caption { position: static; text-align: right; margin-top: 3.5rem; }
}

.scroll-cue {
  display: none; margin-top: 3rem; align-items: center; gap: 0.9rem;
  background: none; border: 0; padding: 0.5rem 0; cursor: pointer; color: var(--muted); font-size: var(--fs-small);
}
.scroll-cue__line { width: 1px; height: 42px; background: var(--line); position: relative; overflow: hidden; }
.scroll-cue__line::after { content: ""; position: absolute; left: 0; top: -40%; width: 1px; height: 40%; background: var(--gold); animation: cue 2.4s var(--ease) infinite; }
@keyframes cue { to { top: 100%; } }
@media (min-width: 960px) { .scroll-cue { display: inline-flex; } }

/* ---------- Threefold cord ---------- */
.cord { padding-top: calc(var(--section) * 0.55); padding-bottom: var(--section); position: relative; background: var(--paper); }
.cord__head { text-align: center; max-width: 46rem; margin: 0 auto clamp(3rem, 6vw, 5rem); }
.cord__scripture { font-family: var(--serif); font-style: italic; font-size: var(--fs-lede); color: var(--gold-text); margin-bottom: 1rem; }
.cord__scripture cite { font-style: normal; font-family: var(--sans); font-size: var(--fs-small); color: var(--muted); display: block; margin-top: 0.35rem; letter-spacing: 0.04em; }
.cord__stage { position: relative; }
.cord__svg { position: absolute; pointer-events: none; }
.cord__svg path { fill: none; stroke-linecap: round; }
.cord__svg .under { stroke: var(--paper); stroke-width: 11; }
.cord__svg .strand { stroke-width: 3.2; }
.cord__svg .s-ministry { stroke: var(--ministry); }
.cord__svg .s-wellness { stroke: var(--wellness); }
.cord__svg .s-destiny { stroke: var(--destiny); }
.cord__svg--h { display: none; left: 0; right: 0; top: 0; width: 100%; height: auto; aspect-ratio: 6 / 1; }
.cord__svg--v { left: 0; top: 0; bottom: 0; width: 64px; height: 100%; }
.cord__list { list-style: none; display: grid; gap: 3.25rem; padding-left: 88px; position: relative; }
.expression { position: relative; }
.expression__node {
  position: absolute; left: -88px; top: 0.35rem; width: 64px; display: flex; justify-content: center;
}
.expression__node span { width: 16px; height: 16px; border-radius: 50%; border: 3px solid var(--paper); box-shadow: 0 0 0 1.5px currentColor; background: currentColor; }
.expression--ministry { color: var(--ministry); }
.expression--wellness { color: var(--wellness); }
.expression--destiny { color: var(--destiny); }
.expression__title { font-size: clamp(2rem, 1.5rem + 2vw, 3rem); color: currentColor; margin-bottom: 0.9rem; }
.expression__body { color: var(--text); margin-bottom: 1.25rem; max-width: 26em; }
.expression__tags { list-style: none; display: flex; flex-wrap: wrap; gap: 0.4rem 0.5rem; margin-bottom: 1.5rem; }
.expression__tags li { font-size: 0.85rem; padding: 0.25rem 0.7rem; border-radius: 99px; border: 1px solid currentColor; color: currentColor; opacity: 0.9; }
.cord__foot { text-align: center; margin-top: clamp(3rem, 6vw, 5rem); font-family: var(--serif); font-size: clamp(1.4rem, 1.1rem + 1vw, 2rem); color: var(--ink); }

@media (min-width: 960px) {
  .cord__svg--v { display: none; }
  .cord__svg--h { display: block; }
  .cord__stage { padding-top: calc(min(100vw - 2 * var(--gutter), var(--max)) / 6 + 1rem); }
  .cord__list { padding-left: 0; grid-template-columns: repeat(3, 1fr); gap: clamp(2rem, 4vw, 4rem); align-items: start; }
  .expression { padding-top: 1.75rem; border-top: 1px solid currentColor; }
  .expression__node { position: absolute; left: 0; top: -9px; width: auto; }
}

/* draw-on (enabled only when motion is OK and JS ran) */
.js-motion .cord__svg--h .strand { stroke-dasharray: var(--len, 3000); stroke-dashoffset: var(--len, 3000); transition: stroke-dashoffset 2.4s var(--ease); }
.js-motion .cord__svg--h .under { opacity: 0; transition: opacity 0.6s 0.4s; }
.js-motion .cord.is-drawn .cord__svg--h .strand { stroke-dashoffset: 0; }
.js-motion .cord.is-drawn .cord__svg--h .under { opacity: 1; }
.js-motion .cord .s-wellness { transition-delay: 0.25s; }
.js-motion .cord .s-destiny { transition-delay: 0.5s; }

/* ---------- Ministry band (home) ---------- */
.syllabus { list-style: none; border-top: 1px solid rgba(255, 249, 240, 0.2); }
.syllabus li { display: grid; grid-template-columns: 1fr; padding: 1rem 0; border-bottom: 1px solid rgba(255, 249, 240, 0.2); }
.syllabus__title { font-family: var(--serif); font-size: clamp(1.15rem, 1rem + 0.5vw, 1.4rem); line-height: 1.3; color: #fff9f0; }
.syllabus__note { font-family: var(--serif); font-style: italic; color: #cfc3da; font-size: 1rem; margin-top: 0.2rem; }
.syllabus--light { border-top-color: var(--line); }
.syllabus--light li { border-bottom-color: var(--line); }
.syllabus--light .syllabus__title { color: var(--ink); }
.syllabus--light .syllabus__note { color: var(--muted); }
@media (min-width: 760px) {
  .syllabus--cols { columns: 2; column-gap: 3rem; border-top: 0; }
  .syllabus--cols li { break-inside: avoid; }
  .syllabus--cols li:first-child { border-top: 1px solid var(--line); }
}

.portrait-tag { display: flex; align-items: center; gap: 1rem; margin-top: 2rem; }
.portrait-tag img { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; object-position: 50% 25%; border: 1.5px solid var(--gold-soft); }
.portrait-tag p { margin: 0; font-size: var(--fs-small); }

/* ---------- Wellness band ---------- */
.moves { list-style: none; border-top: 1px solid rgba(86, 105, 79, 0.3); }
.moves li { padding: 1.25rem 0; border-bottom: 1px solid rgba(86, 105, 79, 0.3); display: grid; gap: 0.25rem; }
@media (min-width: 700px) { .moves li { grid-template-columns: 15rem 1fr; gap: 2rem; align-items: baseline; } }
.moves__name { font-family: var(--serif); font-size: clamp(1.35rem, 1.15rem + 0.8vw, 1.75rem); color: var(--ink); line-height: 1.15; }
.moves__desc { color: var(--text); }
.film { display: grid; grid-template-columns: 1fr; gap: 0.75rem; margin-top: 2.5rem; }
@media (min-width: 640px) { .film { grid-template-columns: 1fr 1fr; } .film figure:nth-child(2) { transform: translateY(1.5rem); } }
.film figure { margin: 0; border-radius: var(--radius); overflow: hidden; aspect-ratio: 3 / 1; background: var(--paper-2); }
.film img { width: 100%; height: 100%; object-fit: cover; }
.wave { position: absolute; left: 0; right: 0; width: 100%; height: 90px; color: var(--wellness); opacity: 0.35; pointer-events: none; }
.wave--top { top: 1.5rem; }

/* ---------- Women of Destiny band ---------- */
.destiny-statement { text-align: center; max-width: 52rem; margin-inline: auto; }
.destiny-statement .crown { margin: 0 auto 1.5rem; width: 46px; }
.destiny-statement__quote { font-family: var(--serif); font-size: clamp(2rem, 1.4rem + 2.8vw, 3.75rem); line-height: 1.1; color: var(--ink); letter-spacing: -0.02em; margin-bottom: 1.5rem; }
.destiny-words { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 0.5rem 1.6rem; margin: 2rem 0 2.5rem; font-family: var(--serif); font-style: italic; font-size: 1.2rem; color: var(--destiny); }

/* ---------- Founder ---------- */
.founder__media { position: relative; max-width: 420px; }
.founder__frame { position: relative; border-radius: var(--radius); overflow: hidden; aspect-ratio: 3 / 4; background: var(--ink); }
.founder__frame img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 15%; }
.founder__media::after { content: ""; position: absolute; inset: 18px -18px -18px 18px; border: 1px solid var(--gold); border-radius: var(--radius); z-index: -1; }
.founder__name { font-family: var(--serif); font-style: italic; margin-top: 2rem; color: var(--muted); }
.facts { list-style: none; display: grid; gap: 0; border-top: 1px solid var(--line); margin-top: 2rem; }
.facts li { padding: 1rem 0; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: 7.5rem 1fr; gap: 1rem; }
.facts__when { font-family: var(--serif); font-style: italic; color: var(--gold-text); }
@media (max-width: 480px) { .facts li { grid-template-columns: 1fr; gap: 0.15rem; } }

/* ---------- Books ---------- */
.books { display: grid; gap: clamp(2.5rem, 5vw, 4rem); }
.book-feature { display: grid; gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
@media (min-width: 820px) { .book-feature { grid-template-columns: minmax(220px, 340px) 1fr; } }
.book-object { perspective: 1200px; max-width: 300px; margin-inline: auto; width: 100%; }
.book-object__inner {
  position: relative; aspect-ratio: 2 / 3; border-radius: 2px 6px 6px 2px; overflow: hidden;
  box-shadow: 0 30px 50px -25px rgba(31, 17, 48, 0.55), 0 8px 18px -10px rgba(31, 17, 48, 0.35);
  transform: rotateY(-14deg) rotateX(2deg); transform-origin: left center;
  transition: transform 0.6s var(--ease);
}
.book-object:hover .book-object__inner { transform: rotateY(-4deg); }
.book-object__inner::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 14px; background: linear-gradient(90deg, rgba(0,0,0,0.28), rgba(255,255,255,0.08) 60%, transparent); z-index: 2; }
.book-object img { width: 100%; height: 100%; object-fit: cover; }
.book-cover {
  height: 100%; display: flex; flex-direction: column; justify-content: space-between; text-align: center;
  padding: 2rem 1.5rem; background: var(--ink); color: #fff9f0;
  background-image: radial-gradient(circle at 50% 30%, rgba(176, 130, 54, 0.22), transparent 60%);
}
.book-cover--soon { background: var(--paper-2); color: var(--ink); background-image: none; border: 1px dashed rgba(42, 24, 64, 0.35); }
.book-cover__rule { height: 1px; background: var(--gold); margin: 0 auto; width: 50%; }
.book-cover__title { font-family: var(--serif); font-size: 1.5rem; line-height: 1.15; }
.book-cover__author { font-size: 0.8rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--gold-soft); }
.book-cover--soon .book-cover__author { color: var(--gold-text); }
.status { display: inline-flex; align-items: center; gap: 0.5rem; font-size: 0.875rem; font-weight: 500; padding: 0.3rem 0.8rem; border-radius: 99px; background: var(--paper-2); color: var(--ink); margin-bottom: 1rem; }
.status::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--gold); }
.status--available::before { background: var(--wellness); }
.book-secondary { display: grid; gap: 2rem; align-items: center; padding: 2rem; border: 1px solid var(--line); border-radius: var(--radius); }
@media (min-width: 640px) { .book-secondary { grid-template-columns: 150px 1fr; } }
.book-secondary .book-object { max-width: 150px; }
.book-secondary .book-cover { padding: 1rem 0.75rem; }
.book-secondary .book-cover__title { font-size: 1rem; }
.book-secondary .book-cover__author { font-size: 0.6rem; }

.link-btn { border: 0; background-color: transparent; cursor: pointer; padding: 0 0 2px; font-size: 1rem; min-height: 44px; }
.book-secondary__desc { margin: 0.6rem 0 1rem; }

/* ---------- Events ---------- */
.filters { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 2rem; }
.filter {
  min-height: 44px; padding: 0.5rem 1.05rem; border-radius: 99px; border: 1px solid var(--line);
  background: transparent; cursor: pointer; font-size: 0.95rem; transition: background-color 0.2s, color 0.2s, border-color 0.2s;
}
.filter:hover { border-color: var(--ink); }
.filter[aria-pressed="true"] { background: var(--ink); color: #fff9f0; border-color: var(--ink); }
.events { list-style: none; display: grid; gap: 0; border-top: 1px solid var(--line); }
.event {
  display: grid; gap: 1rem 2rem; padding: 1.75rem 0; border-bottom: 1px solid var(--line); position: relative;
  transition: background-color 0.25s;
}
@media (min-width: 760px) { .event { grid-template-columns: 7rem 1fr auto; align-items: center; padding-inline: 1rem; } .event:hover { background: rgba(243, 235, 223, 0.65); } }
.event__date { font-family: var(--serif); line-height: 1; color: var(--ink); }
.event__day { font-size: 2.75rem; display: block; }
.event__month { font-size: 0.85rem; letter-spacing: 0.2em; text-transform: uppercase; font-family: var(--sans); color: var(--gold-text); }
.event__cat { font-size: 0.85rem; font-weight: 500; display: inline-block; margin-bottom: 0.35rem; }
.event__title { font-size: var(--fs-h3); margin-bottom: 0.4rem; }
.event__meta { font-size: var(--fs-small); color: var(--muted); margin-bottom: 0.5rem; }
.event__desc { max-width: 40em; }
.cat-ministry, .cat-training { color: var(--ministry); }
.cat-wellness { color: var(--wellness); }
.cat-women-of-destiny { color: var(--destiny); }
.cat-seminar, .cat-special { color: var(--gold-text); }
.empty-state {
  text-align: center; padding: clamp(3rem, 7vw, 5rem) 1.5rem; border: 1px solid var(--line); border-radius: var(--radius);
  background: var(--paper); position: relative;
}
.empty-state__mark { display: flex; justify-content: center; gap: 0.5rem; margin-bottom: 1.5rem; }
.empty-state__mark span { width: 10px; height: 10px; border-radius: 50%; }
.empty-state h3 { margin-bottom: 0.75rem; }
.empty-state p { max-width: 30em; margin-inline: auto; color: var(--muted); }
.empty-state .btn-row { justify-content: center; margin-top: 1.75rem; }

/* ---------- Page heroes ---------- */
.page-hero { padding-top: clamp(2.5rem, 6vw, 5.5rem); padding-bottom: clamp(3rem, 6vw, 5.5rem); position: relative; overflow: hidden; }
.page-hero__grid { display: grid; gap: clamp(2.5rem, 5vw, 4rem); align-items: end; }
@media (min-width: 900px) { .page-hero__grid { grid-template-columns: 1.3fr 0.7fr; } }
.page-hero h1 { margin-bottom: 1.5rem; }
.page-hero__aside { font-family: var(--serif); font-style: italic; font-size: 1.15rem; color: var(--muted); border-left: 1px solid var(--gold); padding-left: 1.25rem; max-width: 22rem; }
.page-hero--ministry { background: var(--ministry-tint); }
.page-hero--wellness { background: var(--wellness-tint); }
.page-hero--destiny { background: var(--destiny-tint); }
.page-hero__media { position: relative; max-width: 380px; justify-self: center; width: 100%; }
.page-hero__media .arch img { object-position: 50% 20%; }
.page-hero__media .arch-line { border-color: currentColor; opacity: 0.6; }

.breadcrumb { font-size: var(--fs-small); color: var(--muted); margin-bottom: 1.5rem; }
.breadcrumb a { color: inherit; }

/* Offer index (ministry) */
.index-list { list-style: none; display: grid; gap: 0; border-top: 1px solid var(--line); }
@media (min-width: 760px) { .index-list { grid-template-columns: 1fr 1fr; column-gap: 3rem; } .index-list li:nth-child(2) { border-top: 0; } }
.index-list li { padding: 1.15rem 0; border-bottom: 1px solid var(--line); }
.index-list strong { display: block; font-family: var(--serif); font-weight: 500; font-size: 1.3rem; color: var(--ink); margin-bottom: 0.2rem; }
.index-list span { color: var(--muted); font-size: var(--fs-small); }

.serve { list-style: none; display: flex; flex-wrap: wrap; gap: 0.6rem; }
.serve li { font-family: var(--serif); font-size: clamp(1.15rem, 1rem + 0.6vw, 1.5rem); padding: 0.55rem 1.15rem; border: 1px solid var(--line); border-radius: 99px; color: var(--ink); background: var(--paper); }
.dark .serve li { background: transparent; border-color: rgba(255, 249, 240, 0.3); color: #fff9f0; }

.pullquote { font-family: var(--serif); font-size: clamp(1.6rem, 1.2rem + 1.8vw, 2.6rem); line-height: 1.22; letter-spacing: -0.01em; margin: 0; }
.pullquote footer { font-family: var(--sans); font-size: var(--fs-small); margin-top: 1.25rem; color: inherit; opacity: 0.8; }
.pullquote footer::before { content: ""; display: inline-block; width: 2rem; height: 1px; background: currentColor; vertical-align: middle; margin-right: 0.75rem; }

.steps { list-style: none; counter-reset: step; display: grid; gap: 1.5rem; }
@media (min-width: 820px) { .steps { grid-template-columns: repeat(3, 1fr); gap: 2.5rem; } }
.steps li { counter-increment: step; padding-top: 1.25rem; border-top: 1px solid currentColor; }
.steps li::before { content: counter(step); display: block; font-family: var(--serif); font-size: 2.5rem; line-height: 1; margin-bottom: 0.75rem; }
.steps h3 { font-size: 1.35rem; margin-bottom: 0.4rem; color: inherit; }

/* Wellness explorer (tabs) */
.explorer { display: grid; gap: 2rem; }
@media (min-width: 900px) { .explorer { grid-template-columns: 300px 1fr; gap: 3.5rem; } }
.explorer__tabs { display: flex; gap: 0.5rem; overflow-x: auto; padding-bottom: 0.5rem; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; }
@media (min-width: 900px) { .explorer__tabs { flex-direction: column; overflow: visible; gap: 0; border-top: 1px solid rgba(86, 105, 79, 0.3); } }
.explorer__tab {
  flex-shrink: 0; scroll-snap-align: start; text-align: left; cursor: pointer;
  min-height: 48px; padding: 0.6rem 1rem; border: 1px solid rgba(86, 105, 79, 0.35); border-radius: 99px; background: transparent;
  font-family: var(--serif); font-size: 1.1rem; color: var(--ink); transition: background-color 0.2s, color 0.2s;
}
@media (min-width: 900px) {
  .explorer__tab { border: 0; border-bottom: 1px solid rgba(86, 105, 79, 0.3); border-radius: 0; padding: 1.1rem 0 1.1rem 1.25rem; font-size: 1.35rem; position: relative; }
  .explorer__tab::before { content: ""; position: absolute; left: 0; top: 50%; width: 6px; height: 6px; margin-top: -3px; border-radius: 50%; background: var(--wellness); opacity: 0; transition: opacity 0.2s; }
  .explorer__tab[aria-selected="true"]::before { opacity: 1; }
}
.explorer__tab[aria-selected="true"] { background: var(--wellness); color: #fff; border-color: var(--wellness); }
@media (min-width: 900px) { .explorer__tab[aria-selected="true"] { background: transparent; color: var(--wellness); } .explorer__tab:hover { color: var(--wellness); } }
.explorer__panel { background: var(--paper); border-radius: var(--radius); padding: clamp(1.5rem, 4vw, 3rem); min-height: 20rem; }
.explorer__panel[hidden] { display: none; }
.explorer__panel h3 { font-size: clamp(1.9rem, 1.5rem + 1.6vw, 2.75rem); margin-bottom: 1rem; }
.explorer__panel .for { margin-top: 1.5rem; font-size: var(--fs-small); color: var(--muted); }
.js-motion .explorer__panel:not([hidden]) { animation: panelIn 0.45s var(--ease); }
@keyframes panelIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

.also { list-style: none; columns: 1; column-gap: 2.5rem; }
@media (min-width: 640px) { .also { columns: 2; } }
@media (min-width: 1000px) { .also { columns: 3; } }
.also li { break-inside: avoid; padding: 0.7rem 0; border-bottom: 1px solid rgba(86, 105, 79, 0.25); display: flex; gap: 0.75rem; align-items: baseline; }
.also li::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--wellness); flex-shrink: 0; transform: translateY(-2px); }

.notice { font-size: var(--fs-small); color: var(--muted); border-left: 2px solid var(--gold); padding: 0.25rem 0 0.25rem 1rem; max-width: 46em; }

/* Flyer gallery */
.flyers { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }
.flyer { margin: 0; }
.flyer a { display: block; border-radius: var(--radius); overflow: hidden; border: 1px solid var(--line); background: #fff; transition: transform 0.35s var(--ease), box-shadow 0.35s var(--ease); }
.flyer a:hover { transform: translateY(-3px); box-shadow: 0 18px 36px -22px rgba(31, 17, 48, 0.5); }
.flyer img { width: 100%; height: auto; }
.flyer figcaption { font-size: var(--fs-small); color: var(--muted); margin-top: 0.6rem; }

/* ---------- Forms ---------- */
.form { display: grid; gap: 1.35rem; }
.form__row { display: grid; gap: 1.35rem; }
@media (min-width: 640px) { .form__row--2 { grid-template-columns: 1fr 1fr; } }
.field { display: grid; gap: 0.45rem; }
.field label, .field legend { font-weight: 500; font-size: 0.98rem; color: var(--ink); }
.field .opt { font-weight: 400; color: var(--muted); font-size: 0.875rem; }
.input, .textarea, .select {
  width: 100%; min-height: 52px; padding: 0.8rem 1rem;
  background: #fff; border: 1.5px solid rgba(42, 24, 64, 0.22); border-radius: var(--radius);
  font-size: 1.0625rem; transition: border-color 0.2s, box-shadow 0.2s;
}
.textarea { min-height: 150px; resize: vertical; line-height: 1.5; }
.input:hover, .textarea:hover { border-color: rgba(42, 24, 64, 0.45); }
.input:focus, .textarea:focus { outline: none; border-color: var(--plum); box-shadow: 0 0 0 3px rgba(75, 42, 110, 0.18); }
.field.has-error .input, .field.has-error .textarea, .field.has-error .choice-grid { border-color: #a12a2a; }
.field__error { color: #a12a2a; font-size: 0.9rem; font-weight: 500; display: none; }
.field.has-error .field__error { display: block; }
fieldset.field { border: 0; padding: 0; margin: 0; min-width: 0; }
fieldset.field legend { padding: 0; margin-bottom: 0.65rem; }
.choice-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 190px), 1fr)); gap: 0.55rem; border-radius: var(--radius); }
.choice { position: relative; }
.choice input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.choice span {
  display: flex; align-items: center; gap: 0.6rem; min-height: 52px; padding: 0.65rem 0.9rem;
  border: 1.5px solid rgba(42, 24, 64, 0.2); border-radius: var(--radius); background: #fff; cursor: pointer;
  font-size: 0.98rem; line-height: 1.25; transition: border-color 0.2s, background-color 0.2s;
}
.choice span::before { content: ""; width: 16px; height: 16px; border-radius: 50%; border: 1.5px solid rgba(42, 24, 64, 0.45); flex-shrink: 0; transition: border-width 0.15s, border-color 0.15s; }
.choice input:checked + span { border-color: var(--plum); background: var(--ministry-tint); }
.choice input:checked + span::before { border: 5px solid var(--plum); }
.choice input:focus-visible + span { outline: 2px solid var(--gold); outline-offset: 2px; }
.choice span:hover { border-color: rgba(42, 24, 64, 0.5); }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-status { padding: 1rem 1.15rem; border-radius: var(--radius); font-weight: 500; display: none; }
.form-status.is-success { display: block; background: var(--wellness-tint); color: #2f3d2a; border: 1px solid rgba(86, 105, 79, 0.45); }
.form-status.is-error { display: block; background: #f8e3e3; color: #7a1f1f; border: 1px solid rgba(161, 42, 42, 0.4); }
.form-panel { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: clamp(1.5rem, 4vw, 3rem); }
.form-note { font-size: 0.875rem; color: var(--muted); }

/* ---------- Get involved teaser (home) ---------- */
.involve-paths { list-style: none; display: flex; flex-wrap: wrap; gap: 0.55rem; margin: 2rem 0; }
.involve-paths li { padding: 0.5rem 1rem; border-radius: 99px; background: rgba(255, 249, 240, 0.08); border: 1px solid rgba(255, 249, 240, 0.25); font-size: 0.98rem; }

/* ---------- Newsletter band ---------- */
.newsletter-band { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.newsletter-band__grid { display: grid; gap: 2rem; align-items: center; }
@media (min-width: 900px) { .newsletter-band__grid { grid-template-columns: 1fr 1.1fr; gap: 4rem; } }
.inline-form { display: grid; gap: 0.75rem; }
@media (min-width: 640px) { .inline-form { grid-template-columns: 1fr 1.3fr auto; align-items: end; } }
.inline-form .field label { font-size: 0.875rem; }

/* ---------- Contact ---------- */
.contact-lines { list-style: none; display: grid; gap: 0; border-top: 1px solid var(--line); }
.contact-lines li { padding: 1.35rem 0; border-bottom: 1px solid var(--line); display: grid; gap: 0.3rem; }
.contact-lines__label { font-family: var(--serif); font-style: italic; color: var(--gold-text); }
.contact-lines a { font-size: clamp(1.3rem, 1.05rem + 1vw, 1.9rem); font-family: var(--serif); color: var(--ink); text-decoration: none; word-break: break-word; }
.contact-lines a:hover { color: var(--plum); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.inquiries { list-style: none; display: grid; gap: 0.6rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr)); }
.inquiries a {
  display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; min-height: 56px; padding: 0.75rem 1rem;
  border: 1px solid var(--line); border-radius: var(--radius); text-decoration: none; background: var(--paper); transition: border-color 0.2s, background-color 0.2s;
}
.inquiries a:hover { border-color: var(--ink); background: #fff; }
.inquiries svg { width: 18px; height: 18px; flex-shrink: 0; color: var(--gold-text); }

/* ---------- Footer ---------- */
.site-footer { background: var(--plum-deep); color: #d9cde3; padding-top: clamp(4rem, 8vw, 6.5rem); padding-bottom: calc(2rem + 76px); font-size: 0.98rem; }
@media (min-width: 900px) { .site-footer { padding-bottom: 2.5rem; } }
.site-footer a { color: #fff9f0; text-decoration: none; }
.site-footer a:hover { text-decoration: underline; text-underline-offset: 3px; }
.footer__top { display: grid; gap: 3rem; padding-bottom: 3.5rem; border-bottom: 1px solid rgba(255, 249, 240, 0.14); }
@media (min-width: 900px) { .footer__top { grid-template-columns: 1.4fr 1fr 1fr 1fr; } }
.footer__brand .brand { color: #fff9f0; }
.footer__brand .brand__sub { color: var(--gold-soft); }
.footer__brand p { margin-top: 1.25rem; max-width: 26em; font-size: 0.92rem; color: #c2b4cf; }
.footer__head { font-family: var(--serif); font-style: italic; color: var(--gold-soft); font-size: 1.1rem; margin-bottom: 1rem; font-weight: 400; }
.footer__list { list-style: none; display: grid; gap: 0.55rem; }
.footer__list a { display: inline-block; padding: 0.15rem 0; }
.footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; padding-top: 1.75rem; font-size: 0.875rem; color: #b3a5c1; }
.footer__legal { list-style: none; display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; }
.footer__verse { font-family: var(--serif); font-style: italic; color: #e6dcef; font-size: 1.05rem; margin-top: 1.5rem; max-width: 24em; }

/* ---------- Newsletter modal ---------- */
.nl-dialog {
  width: min(92vw, 520px); max-height: 92vh; padding: 0; border: 0; border-radius: 4px;
  background: var(--paper); color: var(--text);
  box-shadow: 0 40px 80px -30px rgba(31, 17, 48, 0.6);
  overflow: visible;
}
.nl-dialog::backdrop { background: rgba(31, 17, 48, 0.42); }
.nl-dialog[open] { animation: dlgIn 0.45s var(--ease); }
.nl-dialog[open]::backdrop { animation: fadeIn 0.45s var(--ease); }
@keyframes dlgIn { from { opacity: 0; transform: translateY(14px) scale(0.985); } to { opacity: 1; transform: none; } }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
.nl-dialog__inner { padding: clamp(1.75rem, 5vw, 2.75rem); max-height: 92vh; overflow-y: auto; position: relative; }
.nl-dialog__band { height: 6px; display: grid; grid-template-columns: 1fr 1fr 1fr; border-radius: 4px 4px 0 0; overflow: hidden; }
.nl-dialog__band span:nth-child(1) { background: var(--ministry); }
.nl-dialog__band span:nth-child(2) { background: var(--wellness); }
.nl-dialog__band span:nth-child(3) { background: var(--destiny); }
.nl-dialog h2 { font-size: clamp(1.8rem, 1.4rem + 1.6vw, 2.4rem); margin-bottom: 0.75rem; padding-right: 2.5rem; }
.nl-dialog p { color: var(--muted); }
.nl-dialog .form { margin-top: 1.5rem; gap: 1rem; }
.nl-close {
  position: absolute; top: 0.75rem; right: 0.75rem; width: 48px; height: 48px; display: grid; place-items: center;
  background: transparent; border: 0; border-radius: 50%; cursor: pointer; color: var(--ink);
}
.nl-close:hover { background: var(--paper-2); }
.nl-close svg { width: 20px; height: 20px; }
.nl-later { background: none; border: 0; padding: 0.5rem 0; color: var(--muted); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; font-size: 0.92rem; justify-self: start; min-height: 44px; }

/* ---------- Reveal ---------- */
.js-motion .reveal { opacity: 0; transform: translateY(18px); transition: opacity 0.8s var(--ease), transform 0.8s var(--ease); }
.js-motion .reveal.is-in { opacity: 1; transform: none; }

/* ---------- Legal / prose ---------- */
.prose { max-width: 42em; }
.prose h2 { font-size: 1.75rem; margin: 2.5rem 0 0.75rem; }
.prose ul { padding-left: 1.25rem; margin-bottom: 1em; }
.prose li { margin-bottom: 0.4rem; }

/* ---------- 404 ---------- */
.notfound { min-height: 70vh; display: grid; place-items: center; text-align: center; padding-block: 5rem; }
.notfound .h-display { color: var(--ink); opacity: 0.12; }

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; scroll-behavior: auto !important; }
  .scroll-cue__line::after { display: none; }
  .book-object__inner { transform: none; }
}

/* ---------- Print ---------- */
@media print {
  .site-header, .sticky-cta, .nl-dialog, .mobile-menu, .site-footer form { display: none !important; }
  body { background: #fff; }
}

/* ---------- Utilities & page components ---------- */
.mt { margin-top: 1.25rem; }
.mt-lg { margin-top: 2.25rem; }
.mt-xl { margin-top: 3.5rem; margin-bottom: 0.5rem; }
.mb { margin-bottom: 2rem; }
.center { text-align: center; }
.center-block { margin-inline: auto; }
.btn-row--center { justify-content: center; }
.kicker--center { justify-content: center; }
.kicker--center::before { display: none; }
.h3-small { font-size: 1.2rem; font-weight: 400; margin-bottom: 1.25rem; }
.dark .h3-small { color: #cfc3da; }
.section-head { max-width: 48rem; margin-bottom: clamp(2rem, 4vw, 3.25rem); }
.section-head .lede { margin-top: 1.1rem; }
.section-head--split { max-width: none; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 1rem 2rem; }
.measure-h { max-width: 16em; }

.ministry-arch { color: var(--ministry); }
.wellness-arch { color: var(--wellness); }
.destiny-arch { color: var(--destiny); }
.about-arch { color: var(--gold); }
.page-hero__media .arch-line { border-color: currentColor; }
.wellness-arch .arch img { object-position: 55% 10%; }
.destiny-arch .arch img { object-position: 50% 30%; }
.ministry-arch .arch img { object-position: 50% 30%; }
.about-arch .arch img { object-position: 42% 20%; }
.section .wellness-arch { max-width: 360px; }

.destiny-crown { color: var(--destiny); margin-bottom: 1rem; }
.destiny-crown .crown { color: var(--gold); width: 44px; }

.scripture-inline { margin: 1.75rem 0 0; padding: 1.25rem 0 0; border-top: 1px solid var(--line); font-family: var(--serif); font-style: italic; font-size: 1.2rem; color: var(--ink); max-width: 30em; }
.scripture-inline cite { display: block; font-family: var(--sans); font-style: normal; font-size: var(--fs-small); color: var(--gold-text); margin-top: 0.5rem; }

.perfect-for { font-size: clamp(2rem, 1.4rem + 2.6vw, 3.5rem); line-height: 1.1; }
.perfect-for span { display: block; }
.perfect-for span:nth-child(2) { color: var(--wellness); padding-left: 1.2em; }
.perfect-for span:nth-child(3) { padding-left: 2.4em; }
@media (max-width: 520px) { .perfect-for span:nth-child(2) { padding-left: 0.6em; } .perfect-for span:nth-child(3) { padding-left: 1.2em; } }
.film--stack { grid-template-columns: 1fr; margin-top: 0; }
.film--stack figure:nth-child(2) { transform: none; margin-left: 12%; }
@media (min-width: 640px) { .film--stack { grid-template-columns: 1fr; } .film--stack figure:nth-child(2) { transform: none; } }
.flyers--single { grid-template-columns: minmax(0, 380px); justify-content: center; }

.qa { display: grid; gap: 0; border-top: 1px solid var(--line); }
.qa__item { display: grid; gap: 0.6rem; padding: clamp(1.75rem, 3vw, 2.5rem) 0; border-bottom: 1px solid var(--line); }
@media (min-width: 860px) { .qa__item { grid-template-columns: 1fr 1.4fr; gap: 3rem; } }
.qa__q { font-size: clamp(1.5rem, 1.25rem + 1vw, 2.15rem); color: var(--destiny); }
.qa__a { font-size: var(--fs-lede); line-height: 1.55; margin: 0; max-width: 34em; }

.legend { list-style: none; display: grid; gap: 0.6rem; font-size: var(--fs-small); color: var(--muted); }
.legend li { display: flex; align-items: center; gap: 0.6rem; }
.legend .dot { width: 10px; height: 10px; border-radius: 50%; }

.steps--ministry { color: var(--ministry); }
.steps--destiny { color: var(--destiny); }
.steps li p { color: var(--text); }
.steps--compact { grid-template-columns: 1fr !important; gap: 1rem; color: var(--gold-text); }
.steps--compact li { padding-top: 0.9rem; display: grid; grid-template-columns: 2.25rem 1fr; column-gap: 0.75rem; }
.steps--compact li::before { font-size: 1.6rem; grid-row: span 2; margin: 0; }
.steps--compact h3 { font-size: 1.1rem; color: var(--ink); }
.steps--compact p { margin: 0; font-size: var(--fs-small); }

.facts--plain li { grid-template-columns: 1fr; }
.facts--plain li span::before { content: ""; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--gold); margin-right: 0.75rem; transform: translateY(-3px); }
.facts--dark { border-top-color: rgba(255, 249, 240, 0.2); margin-top: 0; }
.facts--dark li { border-bottom-color: rgba(255, 249, 240, 0.2); }
.facts--dark .facts__when { color: var(--gold-soft); }
.serve--small li { font-size: 1rem; padding: 0.4rem 0.9rem; font-family: var(--sans); }
.address { font-style: normal; font-family: var(--serif); font-size: clamp(1.2rem, 1.05rem + 0.6vw, 1.5rem); color: var(--ink); line-height: 1.35; }
.contact-card { max-width: 460px; margin-inline: auto; }
.btn--submit { justify-self: start; min-width: 220px; }
@media (max-width: 520px) { .btn--submit { width: 100%; } }
.section--discipleship { background: var(--plum); }
.newsletter-band .inline-form .form-status, .newsletter-band .inline-form .hp { grid-column: 1 / -1; }
.inline-form .field__error { position: static; }
main { overflow-x: clip; }
.founder__media { width: calc(100% - 18px); }

.arch > picture, .hero__inset > picture, .founder__frame > picture, .film figure > picture { display: block; width: 100%; height: 100%; }
.dark .btn { color: var(--fg); }
.dark .btn--gold:hover { --bg: #fff9f0; }
:is(.h1, .h2, .h3, .hero__title) + :is(p, .lede, ul) { margin-top: 1.1rem; }
.section-head .kicker + :is(.h2, .h3) { margin-top: 0; }
.hero__media, .page-hero__media, .founder__media { isolation: isolate; }
.hero { padding-bottom: clamp(3rem, 5vw, 4.5rem); }
.hero__caption { max-width: 36%; text-align: right; line-height: 1.35; bottom: -3.4rem; }
@media (max-width: 600px) { .hero__caption { max-width: none; } }
.status { background: #fff; border: 1px solid var(--line); }
.book-feature .h2 { font-size: clamp(2rem, 1.5rem + 2vw, 3.25rem); }
@media (max-width: 600px) {
  .hero__caption { margin-top: 0.9rem; padding-left: 58%; font-size: 0.9rem; }
}
.contact-lines a[href^="mailto"] { font-size: clamp(1.05rem, 0.7rem + 1.6vw, 1.75rem); }
[tabindex="-1"]:focus { outline: none; }


/* ==========================================================================
   3D BOOK MOCKUPS
   ========================================================================== */
.book3d {
  --w: clamp(176px, 46vw, 262px);
  --h: calc(var(--w) * 1.5);
  --d: calc(var(--w) * 0.17);
  display: grid; justify-items: center; gap: 1rem; margin-inline: auto;
}
.book3d--sm { --w: 128px; --d: 22px; }
.book3d__stage {
  position: relative; display: grid; place-items: center;
  width: calc(var(--w) + var(--d) + 48px); height: calc(var(--h) + 56px);
  perspective: 1500px; perspective-origin: 50% 40%;
  touch-action: pan-y; user-select: none; -webkit-user-select: none; cursor: grab;
}
.book3d.is-dragging .book3d__stage { cursor: grabbing; }
.book3d__obj {
  --rx: 7deg; --ry: -30deg; --sheen: 0;
  position: relative; width: var(--w); height: var(--h);
  transform-style: preserve-3d;
  transform: rotateX(var(--rx)) rotateY(var(--ry));
  transition: transform 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.book3d.is-tracking .book3d__obj { transition: transform 0.18s ease-out; }
.book3d.is-dragging .book3d__obj { transition: none; }
.book3d__face { position: absolute; backface-visibility: hidden; -webkit-backface-visibility: hidden; }
.book3d__front {
  inset: 0; overflow: hidden; border-radius: 2px 5px 5px 2px;
  transform: translateZ(calc(var(--d) / 2));
  background: var(--ink);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.06);
}
.book3d__front img { width: 100%; height: 100%; object-fit: cover; }
.book3d__front .book-cover { height: 100%; padding: 12% 10%; }
.book3d__front::before { /* hinge crease */
  content: ""; position: absolute; top: 0; bottom: 0; left: 5%; width: 3%; z-index: 2; pointer-events: none;
  background: linear-gradient(90deg, rgba(0, 0, 0, 0.22), rgba(255, 255, 255, 0.12) 55%, transparent);
}
.book3d__front::after { /* moving light */
  content: ""; position: absolute; inset: 0; z-index: 3; pointer-events: none;
  background: linear-gradient(110deg, transparent 35%, rgba(255, 255, 255, 0.2) 48%, transparent 62%);
  background-size: 260% 100%;
  background-position: calc(60% + var(--sheen) * 120%) 0;
  mix-blend-mode: soft-light;
}
.book3d__back {
  inset: 0; border-radius: 5px 2px 2px 5px; overflow: hidden;
  transform: rotateY(180deg) translateZ(calc(var(--d) / 2));
  background: var(--ink); color: #eadff3;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.9rem;
  padding: 14% 12%; text-align: center;
  background-image: radial-gradient(circle at 50% 80%, rgba(176, 130, 54, 0.18), transparent 60%);
}
.book3d__back p { font-family: var(--serif); font-style: italic; font-size: calc(var(--w) * 0.058); line-height: 1.45; margin: 0; }
.book3d__back-author { font-size: calc(var(--w) * 0.04); letter-spacing: 0.22em; text-transform: uppercase; color: var(--gold-soft); }
.book3d__back-brand { margin-top: auto; font-size: calc(var(--w) * 0.036); letter-spacing: 0.16em; text-transform: uppercase; opacity: 0.75; }
.book3d__back .book-cover__rule { width: 30%; }
.book3d__spine {
  top: 0; left: calc(50% - var(--d) / 2); width: var(--d); height: var(--h);
  transform: rotateY(-90deg) translateZ(calc(var(--w) / 2));
  background: linear-gradient(90deg, #1b0f2b, var(--ink) 30%, #3a2255 55%, var(--ink) 80%, #1b0f2b);
  display: grid; place-items: center; overflow: hidden; border-radius: 3px 0 0 3px;
}
.book3d__spine span {
  writing-mode: vertical-rl; transform: rotate(180deg);
  font-family: var(--serif); font-size: calc(var(--d) * 0.36); letter-spacing: 0.08em; color: var(--gold-soft);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-height: 86%;
}
.book3d__pages { background-color: #f7f1e6; }
.book3d__pages--right {
  top: 2px; left: calc(50% - var(--d) / 2 + 1px); width: calc(var(--d) - 2px); height: calc(var(--h) - 4px);
  transform: rotateY(90deg) translateZ(calc(var(--w) / 2 - 3px));
  background-image: repeating-linear-gradient(90deg, #fbf7ef 0 1px, #e7dcc8 1px 2px, #f6efe2 2px 3px),
                    linear-gradient(90deg, rgba(0,0,0,0.12), transparent 30%, transparent 70%, rgba(0,0,0,0.1));
}
.book3d__pages--top, .book3d__pages--bottom {
  left: 2px; top: calc(50% - var(--d) / 2 + 1px); width: calc(var(--w) - 5px); height: calc(var(--d) - 2px);
  background-image: repeating-linear-gradient(0deg, #fbf7ef 0 1px, #e7dcc8 1px 2px, #f6efe2 2px 3px);
}
.book3d__pages--top { transform: rotateX(90deg) translateZ(calc(var(--h) / 2 - 2px)); }
.book3d__pages--bottom { transform: rotateX(-90deg) translateZ(calc(var(--h) / 2 - 2px)); }
.book3d__shadow {
  position: absolute; left: 50%; bottom: 8px; width: calc(var(--w) * 1.05); height: 26px; margin-left: calc(var(--w) * -0.525);
  background: radial-gradient(ellipse at center, rgba(31, 17, 48, 0.38), rgba(31, 17, 48, 0) 70%);
  filter: blur(3px); transform: translateZ(-1px); pointer-events: none;
  transition: transform 0.8s var(--ease), opacity 0.8s;
}
.book3d.is-tracking .book3d__shadow, .book3d.is-dragging .book3d__shadow { transform: scaleX(0.92); opacity: 0.8; }
/* coming-soon variant */
.book3d--soon .book3d__front { background: var(--paper-2); }
.book3d--soon .book3d__front .book-cover--soon { border-style: dashed; }
.book3d--soon .book3d__back { background: #efe5d6; color: var(--ink); background-image: none; }
.book3d--soon .book3d__back-author, .book3d--soon .book3d__back-brand { color: var(--gold-text); }
.book3d--soon .book3d__spine { background: linear-gradient(90deg, #ded2bf, #ece2d2 40%, #ded2bf); }
.book3d--soon .book3d__spine span { color: var(--gold-text); }
.book3d--sm .book3d__back p { font-size: calc(var(--w) * 0.075); }
.book3d--sm .book3d__back-brand { display: none; }

.book3d__turn {
  display: inline-flex; align-items: center; gap: 0.45rem; min-height: 44px; padding: 0.4rem 0.9rem;
  border: 1px solid var(--line); border-radius: 99px; background: rgba(255, 255, 255, 0.65);
  color: var(--ink); font-size: 0.9rem; cursor: pointer; transition: background-color 0.2s, border-color 0.2s;
}
.book3d__turn:hover { background: #fff; border-color: var(--ink); }
.book3d__turn svg { width: 16px; height: 16px; transition: transform 0.6s var(--ease); }
.book3d.is-turned .book3d__turn svg { transform: rotate(-180deg); }
.book3d--sm .book3d__turn { font-size: 0.8rem; min-height: 40px; padding: 0.3rem 0.7rem; }
.book-feature { grid-template-columns: 1fr; }
@media (min-width: 820px) { .book-feature { grid-template-columns: auto 1fr; } }
.book-secondary { grid-template-columns: 1fr; justify-items: start; }
@media (min-width: 640px) { .book-secondary { grid-template-columns: auto 1fr; align-items: center; } }
.book-secondary .book3d { margin: 0; }

/* entrance: the book swings round from its spine */
.js-motion .book3d:not(.is-in) .book3d__obj { transform: rotateX(4deg) rotateY(-112deg) translateY(24px); opacity: 0; }
.js-motion .book3d.is-in:not(.is-ready) .book3d__obj { transition: transform 1.5s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.6s ease; }
.js-motion .book3d:not(.is-in) .book3d__shadow { opacity: 0; transform: scaleX(0.4); }
.js-motion .book3d.is-in:not(.is-ready) .book3d__shadow { transition: transform 1.5s cubic-bezier(0.16, 1, 0.3, 1), opacity 1s; }

/* ==========================================================================
   MOTION SYSTEM
   ========================================================================== */

/* Page-to-page transitions (supported browsers; others navigate normally) */
@media (prefers-reduced-motion: no-preference) {
  @view-transition { navigation: auto; }
  .site-header { view-transition-name: site-header; }
  ::view-transition-old(root) { animation: vtOut 0.28s cubic-bezier(0.4, 0, 1, 1) both; }
  ::view-transition-new(root) { animation: vtIn 0.5s cubic-bezier(0.16, 1, 0.3, 1) both; }
}
@keyframes vtOut { to { opacity: 0; transform: translateY(-10px); } }
@keyframes vtIn { from { opacity: 0; transform: translateY(14px); } }

/* Scroll progress thread in the header */
.scroll-progress {
  position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; pointer-events: none;
  background: linear-gradient(90deg, var(--ministry), var(--wellness) 50%, var(--destiny));
  transform: scaleX(0); transform-origin: 0 50%;
}
/* Smart header */
.site-header { transition: border-color 0.3s, transform 0.45s var(--ease); }
.site-header.is-hidden { transform: translateY(-100%); }

/* Back to top */
.to-top {
  position: fixed; right: clamp(1rem, 3vw, 2rem); bottom: clamp(1rem, 3vw, 2rem); z-index: 80;
  width: 52px; height: 52px; border-radius: 50%; display: none; place-items: center;
  background: var(--ink); color: #fff9f0; border: 1px solid rgba(255, 249, 240, 0.2); cursor: pointer;
  box-shadow: 0 14px 30px -14px rgba(31, 17, 48, 0.6);
  opacity: 0; transform: translateY(16px) scale(0.9); pointer-events: none;
  transition: opacity 0.35s var(--ease), transform 0.35s var(--ease), background-color 0.2s;
}
.to-top svg { width: 20px; height: 20px; }
.to-top:hover { background: var(--plum); }
.to-top.is-visible { opacity: 1; transform: none; pointer-events: auto; }
@media (min-width: 900px) { .to-top { display: grid; } }

/* Button micro-interactions */
.btn { box-shadow: 0 0 0 rgba(31, 17, 48, 0); transition: background-color 0.25s var(--ease), color 0.25s var(--ease), border-color 0.25s var(--ease), transform 0.25s var(--ease), box-shadow 0.25s var(--ease); }
@media (hover: hover) {
  .btn:hover { transform: translateY(-2px); box-shadow: 0 12px 24px -14px rgba(31, 17, 48, 0.55); }
  .btn:active { transform: translateY(0) scale(0.985); box-shadow: none; }
}

/* List hover rhythm */
.syllabus li, .index-list li, .moves li, .facts li { transition: padding-left 0.35s var(--ease), background-color 0.35s; position: relative; }
.syllabus li::before, .index-list li::before, .moves li::before {
  content: ""; position: absolute; left: 0; top: 50%; width: 0; height: 1px; background: var(--gold); transition: width 0.35s var(--ease);
}
@media (hover: hover) {
  .syllabus li:hover, .index-list li:hover, .moves li:hover { padding-left: 1.6rem; }
  .syllabus li:hover::before, .index-list li:hover::before, .moves li:hover::before { width: 1rem; }
}
.moves li::before { background: var(--wellness); }
.expression__tags li { transition: background-color 0.25s, color 0.25s; }
.expression:hover .expression__tags li { background: color-mix(in srgb, currentColor 9%, transparent); }

/* Threefold cord: focused strand */
.cord.is-settled .cord__svg .strand, .cord__svg--v .strand { transition: opacity 0.45s var(--ease), stroke-width 0.45s var(--ease); }
.cord__stage[class*="focus-"] .strand { opacity: 0.18; }
.cord__stage.focus-ministry .s-ministry, .cord__stage.focus-wellness .s-wellness, .cord__stage.focus-destiny .s-destiny { opacity: 1; stroke-width: 5; }
.expression { transition: transform 0.45s var(--ease); }
@media (hover: hover) and (min-width: 960px) { .expression:hover { transform: translateY(-6px); } }
.expression__node span { transition: transform 0.35s var(--ease); }
.expression:hover .expression__node span { transform: scale(1.35); }

/* Reveal: staggered children */
.js-motion .reveal-stagger > * { opacity: 0; transform: translateY(16px); transition: opacity 0.7s var(--ease), transform 0.7s var(--ease); }
.js-motion .reveal-stagger.is-in > * { opacity: 1; transform: none; }
.js-motion .reveal-stagger.is-in > :nth-child(1) { transition-delay: 0ms; }
.js-motion .reveal-stagger.is-in > :nth-child(2) { transition-delay: 70ms; }
.js-motion .reveal-stagger.is-in > :nth-child(3) { transition-delay: 140ms; }
.js-motion .reveal-stagger.is-in > :nth-child(4) { transition-delay: 210ms; }
.js-motion .reveal-stagger.is-in > :nth-child(5) { transition-delay: 280ms; }
.js-motion .reveal-stagger.is-in > :nth-child(6) { transition-delay: 350ms; }
.js-motion .reveal-stagger.is-in > :nth-child(7) { transition-delay: 420ms; }
.js-motion .reveal-stagger.is-in > :nth-child(8) { transition-delay: 490ms; }
.js-motion .reveal-stagger.is-in > :nth-child(9) { transition-delay: 560ms; }
.js-motion .reveal-stagger.is-in > :nth-child(10) { transition-delay: 630ms; }
.js-motion .reveal-stagger.is-in > :nth-child(11) { transition-delay: 700ms; }
.js-motion .reveal-stagger.is-in > :nth-child(12) { transition-delay: 770ms; }
.js-motion .reveal-stagger.is-in > :nth-child(13) { transition-delay: 840ms; }
.js-motion .reveal-stagger.is-in > :nth-child(14) { transition-delay: 910ms; }
.js-motion .reveal-stagger.is-in > :nth-child(n+15) { transition-delay: 980ms; }

/* Reveal: image wipe (rises from the bottom) */
.js-motion .reveal-wipe { clip-path: inset(100% 0 0 0); transition: clip-path 1.2s cubic-bezier(0.65, 0, 0.35, 1); }
.js-motion .arch.reveal-wipe { clip-path: inset(100% 0 0 0 round 999px 999px 3px 3px); }
.js-motion .reveal-wipe.is-in { clip-path: inset(0 0 0 0); }
.js-motion .arch.reveal-wipe.is-in { clip-path: inset(0 0 0 0 round 999px 999px 3px 3px); }
.js-motion .reveal-wipe img { transform: scale(1.12); transition: transform 1.6s cubic-bezier(0.16, 1, 0.3, 1); }
.js-motion .reveal-wipe.is-in img { transform: none; }
.plx { will-change: transform; }
.js-motion .reveal-wipe .plx img, .js-motion .reveal-wipe.is-in .plx img { transform: none; }

/* Drawn line-art: crown and wellness wave */
.js-motion .crown path:first-child { stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 1.6s cubic-bezier(0.65, 0, 0.35, 1) 0.2s; }
.js-motion .crown circle { opacity: 0; transform: scale(0); transform-origin: center; transform-box: fill-box; transition: opacity 0.4s, transform 0.5s var(--ease); }
.js-motion .crown path:last-child { stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 0.8s var(--ease) 1.2s; }
.js-motion .crown.is-in path { stroke-dashoffset: 0; }
.js-motion .crown.is-in circle { opacity: 1; transform: none; transition-delay: 1.3s; }
.js-motion .wave path { stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 2.6s cubic-bezier(0.65, 0, 0.35, 1); }
.js-motion .wave.is-in path { stroke-dashoffset: 0; }

/* Home hero: one orchestrated entrance */
@media (prefers-reduced-motion: no-preference) {
  .hero__word .ltr { display: inline-block; animation: ltrIn 1s cubic-bezier(0.16, 1, 0.3, 1) both; }
  .hero__word .ltr:nth-child(1) { animation-delay: 0.05s; }
  .hero__word .ltr:nth-child(2) { animation-delay: 0.11s; }
  .hero__word .ltr:nth-child(3) { animation-delay: 0.17s; }
  .hero__word .ltr:nth-child(4) { animation-delay: 0.23s; }
  .hero__word .ltr:nth-child(5) { animation-delay: 0.29s; }
  .hero__word .ltr:nth-child(6) { animation-delay: 0.35s; }
  .hero__word .ltr:nth-child(7) { animation-delay: 0.41s; }
  .hero__word-sub { animation: riseIn 0.9s cubic-bezier(0.16, 1, 0.3, 1) 0.55s both, trackIn 1.4s cubic-bezier(0.16, 1, 0.3, 1) 0.55s both; }
  .hero .definition { animation: riseIn 0.9s cubic-bezier(0.16, 1, 0.3, 1) 0.75s both; }
  .hero__statement { animation: riseIn 0.9s cubic-bezier(0.16, 1, 0.3, 1) 0.9s both; }
  .hero__copy { animation: riseIn 0.9s cubic-bezier(0.16, 1, 0.3, 1) 1s both; }
  .hero .btn-row { animation: riseIn 0.9s cubic-bezier(0.16, 1, 0.3, 1) 1.1s both; }
  .hero .scroll-cue { animation: fadeIn 1s ease 1.6s both; }
  .hero__media .arch { animation: archOpen 1.4s cubic-bezier(0.65, 0, 0.35, 1) 0.15s both; }
  .hero__media .arch-line { animation: fadeIn 1.2s ease 1s both; }
  .hero__inset { animation: insetIn 1.1s cubic-bezier(0.16, 1, 0.3, 1) 1.05s both; }
  .hero__caption { animation: fadeIn 1s ease 1.5s both; }

  /* inner page heroes */
  .page-hero .kicker, .page-hero .destiny-crown { animation: riseIn 0.8s cubic-bezier(0.16, 1, 0.3, 1) 0.05s both; }
  .page-hero h1 { animation: riseIn 0.9s cubic-bezier(0.16, 1, 0.3, 1) 0.15s both; }
  .page-hero .lede, .page-hero .muted { animation: riseIn 0.9s cubic-bezier(0.16, 1, 0.3, 1) 0.3s both; }
  .page-hero .btn-row, .page-hero .legend { animation: riseIn 0.9s cubic-bezier(0.16, 1, 0.3, 1) 0.42s both; }
  .page-hero__media .arch { animation: archOpen 1.3s cubic-bezier(0.65, 0, 0.35, 1) 0.1s both; }
  .page-hero__media .arch-line { animation: fadeIn 1.2s ease 0.9s both; }

  /* mobile menu items cascade in */
  .mobile-menu.is-open .mobile-menu__list li { animation: riseIn 0.55s cubic-bezier(0.16, 1, 0.3, 1) both; }
  .mobile-menu.is-open .mobile-menu__list li:nth-child(2) { animation-delay: 0.04s; }
  .mobile-menu.is-open .mobile-menu__list li:nth-child(3) { animation-delay: 0.08s; }
  .mobile-menu.is-open .mobile-menu__list li:nth-child(4) { animation-delay: 0.12s; }
  .mobile-menu.is-open .mobile-menu__list li:nth-child(5) { animation-delay: 0.16s; }
  .mobile-menu.is-open .mobile-menu__list li:nth-child(6) { animation-delay: 0.2s; }
  .mobile-menu.is-open .mobile-menu__list li:nth-child(7) { animation-delay: 0.24s; }
  .mobile-menu.is-open .mobile-menu__list li:nth-child(8) { animation-delay: 0.28s; }
  .mobile-menu.is-open .mobile-menu__foot { animation: riseIn 0.6s cubic-bezier(0.16, 1, 0.3, 1) 0.3s both; }
}
@keyframes ltrIn { from { opacity: 0; transform: translateY(0.45em) rotate(4deg); filter: blur(6px); } to { opacity: 1; transform: none; filter: blur(0); } }
@keyframes riseIn { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes trackIn { from { letter-spacing: 0.6em; } to { letter-spacing: 0.32em; } }
@keyframes archOpen { from { clip-path: inset(100% 0 0 0 round 999px 999px 3px 3px); } to { clip-path: inset(0 0 0 0 round 999px 999px 3px 3px); } }
@keyframes insetIn { from { opacity: 0; transform: translate(-24px, 24px) rotate(-3deg); } to { opacity: 1; transform: none; } }

/* Dialog exit */
.nl-dialog.is-closing, .lightbox.is-closing { animation: dlgOut 0.28s cubic-bezier(0.4, 0, 1, 1) both; }
.nl-dialog.is-closing::backdrop, .lightbox.is-closing::backdrop { animation: fadeOut 0.28s ease both; }
@keyframes dlgOut { to { opacity: 0; transform: translateY(10px) scale(0.985); } }
@keyframes fadeOut { to { opacity: 0; } }

/* Lightbox */
.lightbox {
  width: 100vw; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: clamp(3.5rem, 6vw, 4.5rem) clamp(0.75rem, 6vw, 5rem);
  border: 0; background: transparent; color: #fff9f0; overflow: hidden;
}
.lightbox::backdrop { background: rgba(20, 11, 31, 0.9); }
.lightbox[open] { display: grid; place-items: center; animation: fadeIn 0.35s ease both; }
.lightbox[open]::backdrop { animation: fadeIn 0.35s ease both; }
.lightbox__figure { margin: 0; display: grid; justify-items: center; gap: 0.9rem; max-height: 100%; }
.lightbox__img { max-width: min(100%, 1100px); max-height: calc(100dvh - 10rem); width: auto; height: auto; object-fit: contain; border-radius: 3px; box-shadow: 0 30px 60px -20px rgba(0, 0, 0, 0.6); background: #fff; }
.lightbox.is-swapping .lightbox__img { animation: lbIn 0.5s cubic-bezier(0.16, 1, 0.3, 1) both; }
@keyframes lbIn { from { opacity: 0; transform: scale(0.96); } to { opacity: 1; transform: none; } }
.lightbox__cap { font-family: var(--serif); font-style: italic; font-size: 1.1rem; text-align: center; }
.lightbox__btn {
  position: fixed; width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; cursor: pointer;
  background: rgba(255, 249, 240, 0.1); color: #fff9f0; border: 1px solid rgba(255, 249, 240, 0.3); transition: background-color 0.2s;
}
.lightbox__btn:hover { background: rgba(255, 249, 240, 0.22); }
.lightbox__btn svg { width: 20px; height: 20px; }
.lightbox__close { top: 1rem; right: 1rem; }
.lightbox__prev { left: 1rem; top: 50%; margin-top: -26px; }
.lightbox__next { right: 1rem; top: 50%; margin-top: -26px; }
.lightbox.is-single .lightbox__prev, .lightbox.is-single .lightbox__next { display: none; }
.lightbox__count { position: fixed; top: 1.6rem; left: 1.25rem; margin: 0; font-size: 0.9rem; opacity: 0.8; }
@media (max-width: 640px) { .lightbox__prev, .lightbox__next { top: auto; bottom: 1rem; margin-top: 0; } }
.flyer a { cursor: zoom-in; }

/* Form success: drawn check */
.form-status.is-success { display: flex; gap: 0.75rem; align-items: flex-start; }
.form-status.is-success::before {
  content: ""; flex-shrink: 0; width: 10px; height: 18px; margin: 0 0.35rem 0 0.25rem;
  border: solid currentColor; border-width: 0 2.5px 2.5px 0; transform: rotate(45deg) translateY(-2px);
}
@media (prefers-reduced-motion: no-preference) {
  .form-status.is-success, .form-status.is-error { animation: riseIn 0.5s cubic-bezier(0.16, 1, 0.3, 1) both; }
  .form-status.is-success::before { animation: checkIn 0.5s cubic-bezier(0.16, 1, 0.3, 1) 0.15s both; }
  .field.has-error .input, .field.has-error .textarea { animation: nudge 0.35s ease; }
}
@keyframes checkIn { from { opacity: 0; transform: rotate(45deg) translateY(-2px) scale(0.3); } }
@keyframes nudge { 25% { transform: translateX(-4px); } 75% { transform: translateX(4px); } }

/* Explorer: active tab marker slides in */
@media (min-width: 900px) {
  .explorer__tab::after { content: ""; position: absolute; left: 0; bottom: -1px; height: 1.5px; width: 100%; background: var(--wellness); transform: scaleX(0); transform-origin: left; transition: transform 0.5s var(--ease); }
  .explorer__tab[aria-selected="true"]::after { transform: scaleX(1); }
}

/* Reduced motion: everything settles instantly, books stay interactive via the button */
@media (prefers-reduced-motion: reduce) {
  .site-header.is-hidden { transform: none; }
  .book3d__obj { transition: none; }
}
