:root {
  color-scheme: dark;
  --ink: #fffaf0;
  --muted: #c8d4cc;
  --night: #07130f;
  --forest: #0b2118;
  --emerald: #15885d;
  --emerald-bright: #35b77b;
  --gold: #f1c96f;
  --gold-soft: #ffedbd;
  --pink: #ec0a83;
  --pink-soft: #ffd8eb;
  --violet: #8d6ac0;
  --line: rgba(255, 237, 189, 0.25);
  --surface: rgba(15, 52, 39, 0.76);
  --display: Georgia, "Times New Roman", serif;
  --body: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --max: 90rem;
  --pad: clamp(1.25rem, 4vw, 5rem);
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--night); }
body {
  margin: 0;
  min-width: 0;
  background:
    radial-gradient(circle at 12% 15%, rgba(53, 183, 123, 0.18), transparent 34rem),
    radial-gradient(circle at 90% 32%, rgba(241, 201, 111, 0.1), transparent 28rem),
    var(--night);
  color: var(--ink);
  font-family: var(--body);
  font-size: 1rem;
  line-height: 1.6;
  overflow-x: hidden;
}
a { color: inherit; }
img { display: block; max-width: 100%; }
button, a { -webkit-tap-highlight-color: transparent; }
::selection { color: var(--night); background: var(--gold-soft); }

.skip-link {
  position: fixed;
  z-index: 100;
  top: 0.75rem;
  left: 0.75rem;
  padding: 0.75rem 1rem;
  background: var(--ink);
  color: var(--night);
  transform: translateY(-150%);
  transition: transform 180ms ease;
}
.skip-link:focus { transform: translateY(0); }

.site-header {
  position: fixed;
  z-index: 20;
  top: 0;
  left: 0;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  padding: 1.1rem var(--pad);
  border-bottom: 1px solid transparent;
  transition: background 300ms ease, border-color 300ms ease, padding 300ms ease;
}
.site-header.is-scrolled {
  padding-block: 0.75rem;
  border-color: rgba(255, 255, 255, 0.08);
  background: rgba(7, 19, 15, 0.9);
  backdrop-filter: blur(18px);
}
.brand { display: inline-flex; align-items: center; gap: 0.75rem; padding: .26rem .5rem; border: 1px solid rgba(255,255,255,.2); border-radius: .45rem; background: rgba(255,250,240,.94); text-decoration: none; box-shadow: 0 10px 30px rgba(0,0,0,.16); }
.brand-logo { width: clamp(10.5rem, 15vw, 14rem); height: 3rem; object-fit: contain; }
.brand-mark {
  display: grid;
  place-items: center;
  width: 2.75rem;
  aspect-ratio: 1;
  border: 1px solid var(--gold);
  border-radius: 0.22rem;
  background: linear-gradient(145deg, rgba(232,188,98,.18), transparent);
  color: var(--gold-soft);
  font-family: var(--display);
  font-size: 1.45rem;
}
.brand-copy { display: grid; line-height: 1.1; }
.brand-copy strong { font-family: var(--display); font-size: 1rem; font-weight: 500; }
.brand-copy small { margin-top: 0.25rem; color: var(--muted); font-size: 0.66rem; letter-spacing: 0.14em; text-transform: uppercase; }
nav { display: flex; align-items: center; gap: clamp(1rem, 2.5vw, 2.5rem); }
nav a { position: relative; font-size: 0.82rem; letter-spacing: 0.11em; text-decoration: none; text-transform: uppercase; }
nav a:not(.nav-cta)::after { content: ""; position: absolute; left: 0; bottom: -0.3rem; width: 100%; height: 1px; background: var(--gold); transform: scaleX(0); transform-origin: right; transition: transform 300ms var(--ease); }
nav a:hover::after, nav a:focus-visible::after { transform: scaleX(1); transform-origin: left; }
.nav-cta { padding: 0.65rem 1rem; border: 1px solid rgba(232,188,98,.55); border-radius: 0.2rem; }

.hero {
  position: relative;
  min-height: 100svh;
  display: grid;
  align-items: end;
  padding: clamp(8rem, 20vh, 12rem) var(--pad) clamp(5rem, 10vh, 7rem);
  isolation: isolate;
  overflow: hidden;
}
.hero-art, .hero-shade { position: absolute; inset: 0; z-index: -2; }
.hero-art {
  background-image: url('/assets/whole-life-hero.jpg');
  background-position: 48% center;
  background-size: cover;
  transform: scale(1.03);
  animation: hero-breathe 18s ease-in-out infinite alternate;
}
.hero-shade {
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(3,9,7,.92) 0%, rgba(3,9,7,.72) 30%, rgba(3,9,7,.13) 64%, rgba(3,9,7,.38) 100%),
    linear-gradient(0deg, rgba(3,9,7,.8), transparent 40%);
}
.hero-copy { width: min(47rem, 75vw); }
.eyebrow, .kicker { margin: 0 0 1rem; color: var(--gold-soft); font-size: 0.76rem; font-weight: 700; letter-spacing: 0.19em; text-transform: uppercase; }
h1, h2, blockquote { font-family: var(--display); font-weight: 400; letter-spacing: -0.035em; }
h1 { max-width: 11ch; margin: 0; font-size: clamp(4.25rem, 10vw, 9.2rem); line-height: 0.88; text-wrap: balance; }
.hero-lede { max-width: 39rem; margin: 1.75rem 0 0; color: rgba(247,243,233,.83); font-size: clamp(1.05rem, 1.5vw, 1.3rem); }
.hero-actions { display: flex; flex-wrap: wrap; gap: 0.85rem; margin-top: 2rem; }
.button { display: inline-flex; min-height: 3.25rem; align-items: center; justify-content: center; gap: .7rem; padding: 0.8rem 1.3rem; border: 1px solid transparent; border-radius: 0.22rem; font-size: 0.8rem; font-weight: 800; letter-spacing: 0.1em; text-decoration: none; text-transform: uppercase; transition: transform 250ms var(--ease), background 250ms ease, color 250ms ease, border-color 250ms ease; }
.button:hover, .button:focus-visible { transform: translateY(-2px); }
.button-primary { background: var(--gold); color: #171106; }
.button-primary:hover, .button-primary:focus-visible { background: var(--gold-soft); }
.button-quiet { border-color: rgba(255,255,255,.35); background: rgba(5,11,9,.2); backdrop-filter: blur(8px); }
.button-quiet:hover, .button-quiet:focus-visible { border-color: var(--gold); }
.scroll-cue { position: absolute; right: var(--pad); bottom: 4.7rem; display: grid; justify-items: end; gap: 0.75rem; color: rgba(247,243,233,.78); font-size: 0.7rem; letter-spacing: .13em; text-decoration: none; text-transform: uppercase; }
.scroll-line { display: block; width: 6.5rem; height: 1px; background: rgba(255,255,255,.25); overflow: hidden; }
.scroll-line::after { content: ""; display: block; width: 45%; height: 100%; background: var(--gold); animation: scroll-line 2.2s ease-in-out infinite; }
.hero-index { position: absolute; right: var(--pad); bottom: 1.3rem; margin: 0; color: rgba(255,255,255,.4); font-size: .65rem; letter-spacing: .18em; }
.reveal-on-load { animation: reveal-up 1.1s var(--ease) both .15s; }

.section-pad { width: min(var(--max), 100%); margin-inline: auto; padding: clamp(6rem, 11vw, 11rem) var(--pad); }
.belief { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(16rem, .65fr); gap: clamp(2rem, 8vw, 9rem); align-items: end; }
.belief .kicker { grid-column: 1 / -1; margin-bottom: -1rem; }
.belief h2 { margin: 0; font-size: clamp(3.2rem, 7vw, 7.2rem); line-height: .98; text-wrap: balance; }
.belief h2 em { color: var(--gold); font-weight: 400; }
.belief > p:last-child { max-width: 34rem; margin: 0; color: var(--muted); font-size: clamp(1rem, 1.45vw, 1.25rem); }

.story { position: relative; height: 360vh; background: #030706; }
.story-stage { position: sticky; top: 0; height: 100svh; overflow: hidden; isolation: isolate; }
.story-art, .story-vignette { position: absolute; inset: 0; }
.story-art {
  z-index: -2;
  background-image: url('/assets/whole-life-hero.jpg');
  background-position: var(--story-x, 0%) center;
  background-size: cover;
  transform: scale(var(--story-scale, 1.12));
  filter: saturate(var(--story-saturation, .86)) contrast(1.05);
  will-change: background-position, transform;
}
.story-vignette {
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(3,7,6,.88), rgba(3,7,6,.42) 38%, rgba(3,7,6,.04) 67%, rgba(3,7,6,.5)),
    linear-gradient(0deg, rgba(3,7,6,.86), transparent 38%, rgba(3,7,6,.34));
}
.story-skip { position: absolute; z-index: 8; top: 6.3rem; right: var(--pad); padding: .55rem .8rem; border: 1px solid rgba(255,255,255,.25); border-radius: 999px; color: rgba(255,255,255,.8); background: rgba(3,7,6,.24); backdrop-filter: blur(8px); font-size: .72rem; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; }
.story-chapter { position: absolute; top: 50%; left: var(--pad); width: min(38rem, calc(100% - 2 * var(--pad))); opacity: 0; transform: translateY(calc(-50% + 2rem)); transition: opacity 100ms linear; will-change: opacity, transform; }
.story-chapter.is-active { pointer-events: auto; }
.story-chapter .chapter-number { display: inline-flex; align-items: center; gap: .7rem; margin-bottom: 1.2rem; color: var(--gold-soft); font-size: .75rem; font-weight: 700; letter-spacing: .17em; text-transform: uppercase; }
.story-chapter .chapter-number::after { content: ""; width: 3rem; height: 1px; background: var(--gold); }
.story-chapter h2 { max-width: 9ch; margin: 0; font-size: clamp(3.7rem, 7.2vw, 7.8rem); line-height: .88; text-wrap: balance; }
.story-chapter p { max-width: 32rem; margin: 1.5rem 0 0; color: rgba(247,243,233,.82); font-size: clamp(1rem, 1.45vw, 1.25rem); }
.chapter-action { display: inline-flex; align-items: center; gap: .7rem; margin-top: 1.6rem; padding-bottom: .35rem; border-bottom: 1px solid var(--gold); color: var(--gold-soft); font-size: .73rem; font-weight: 800; letter-spacing: .12em; text-decoration: none; text-transform: uppercase; }
.story-rule { position: absolute; left: var(--pad); bottom: 2.6rem; width: min(25rem, 62vw); height: 2px; background: rgba(255,255,255,.18); overflow: hidden; }
.story-rule span { display: block; width: 100%; height: 100%; background: var(--gold); transform: scaleX(var(--story-progress, 0)); transform-origin: left; }
.story-count { position: absolute; right: var(--pad); bottom: 2.2rem; display: flex; align-items: baseline; gap: .4rem; font-family: var(--display); }
.story-count span:first-child { color: var(--gold-soft); font-size: 2.5rem; }
.story-count span:last-child { color: rgba(255,255,255,.5); font-size: 1rem; }

.home-offer { position: relative; display: grid; grid-template-columns: minmax(17rem,.62fr) minmax(0,1.38fr); gap: clamp(3rem,7vw,8rem); padding: clamp(5.5rem,9vw,9rem) var(--pad); background: linear-gradient(135deg,#fff8eb 0%,#ffe9f3 58%,#f9d8e9 100%); color: #122019; overflow: hidden; }
.home-offer::before { content: "O’SNAP"; position: absolute; right: -2vw; top: -3vw; color: rgba(236,10,131,.065); font-family: var(--display); font-size: clamp(7rem,18vw,18rem); line-height: 1; pointer-events: none; }
.offer-intro { position: relative; align-self: center; }
.offer-intro .kicker { color: #986115; }
.offer-intro h2 { max-width: 10ch; margin: 0; font-size: clamp(3.4rem,6.5vw,7rem); line-height: .9; }
.offer-intro > p:not(.kicker) { max-width: 34rem; margin: 1.5rem 0; color: #42544b; font-size: clamp(1rem,1.35vw,1.2rem); }
.offer-intro small { display: block; max-width: 38rem; margin-top: 1.1rem; color: #59675f; font-size: .72rem; line-height: 1.5; }
.button-pink { background: var(--pink); color: white; box-shadow: 0 14px 32px rgba(236,10,131,.22); }
.button-pink:hover, .button-pink:focus-visible { background: #be0068; }
.product-grid { position: relative; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; align-items: stretch; }
.product-card { display: grid; grid-template-rows: minmax(15rem,1fr) auto; min-width: 0; border: 1px solid rgba(18,32,25,.12); border-radius: .75rem; background: rgba(255,255,255,.72); box-shadow: 0 22px 70px rgba(42,39,29,.11); overflow: hidden; }
.product-card.is-featured { border-color: rgba(236,10,131,.34); background: rgba(255,255,255,.9); transform: translateY(-1rem); }
.product-visual { min-height: 15rem; display: grid; place-items: center; padding: 1rem; background: radial-gradient(circle at 50% 55%,rgba(255,255,255,.98),rgba(255,255,255,.18) 68%); }
.product-visual img { width: 100%; max-height: 20rem; object-fit: contain; }
.product-copy { padding: 1.4rem; border-top: 1px solid rgba(18,32,25,.09); }
.product-copy > span { color: #9e1764; font-size: .68rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.product-copy h3 { margin: .65rem 0 .45rem; font-family: var(--display); font-size: clamp(1.8rem,2.5vw,2.8rem); font-weight: 400; line-height: .95; }
.product-copy p { margin: .7rem 0 0; color: #536158; font-size: .9rem; }
.product-copy .product-detail { color: #1d3328; font-size: .7rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }

.pillars { background: linear-gradient(180deg, var(--night), #0a2017); }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: clamp(3rem, 7vw, 6rem); }
.section-heading h2 { margin: 0; font-size: clamp(3.7rem, 8vw, 8.5rem); line-height: .9; }
.pillar-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); }
.pillar-card { position: relative; min-height: 29rem; display: flex; flex-direction: column; padding: 2rem clamp(1.2rem, 2.5vw, 2.5rem); border-right: 1px solid var(--line); overflow: hidden; }
.pillar-card { color: inherit; text-decoration: none; }
.pillar-card:last-child { border-right: 0; }
.pillar-card::before { content: ""; position: absolute; inset: auto -35% -50% -35%; height: 70%; border-radius: 50%; background: radial-gradient(circle, var(--card-glow, rgba(13,90,61,.34)), transparent 68%); transform: translateY(25%); transition: transform 600ms var(--ease); }
.pillar-card:hover::before { transform: translateY(5%); }
.pillar-index { color: var(--gold); font-family: var(--display); font-size: 1.4rem; }
.pillar-card h3 { margin: auto 0 1rem; font-family: var(--display); font-size: clamp(2.4rem, 4vw, 4.5rem); font-weight: 400; line-height: .95; }
.pillar-card p { position: relative; max-width: 27rem; margin: 0; color: var(--muted); font-size: 1rem; }
.pillar-link { position: relative; display: inline-flex; justify-content: space-between; gap: 1rem; margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--line); color: var(--gold-soft); font-size: .72rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }

.manifesto { position: relative; min-height: 85svh; display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: clamp(2rem, 6vw, 7rem); padding: clamp(6rem, 10vw, 10rem) var(--pad); background: #fff8e9; color: #122019; overflow: hidden; }
.manifesto-orbit { position: relative; width: min(38rem, 80vw); aspect-ratio: 1; display: grid; place-items: center; margin-inline: auto; border: 1px solid rgba(18,32,25,.28); border-radius: 50%; animation: orbit 24s linear infinite; }
.manifesto-orbit::before, .manifesto-orbit::after { content: ""; position: absolute; border: 1px solid rgba(18,32,25,.18); border-radius: 50%; }
.manifesto-orbit::before { inset: 12%; }
.manifesto-orbit::after { inset: 28%; background: radial-gradient(circle, rgba(232,188,98,.55), transparent 65%); }
.manifesto-orbit span { position: absolute; padding: .5rem .85rem; background: #fff8e9; font-family: var(--display); font-size: clamp(1.2rem, 2vw, 2rem); }
.manifesto-orbit span:nth-child(1) { top: 8%; left: 2%; }
.manifesto-orbit span:nth-child(2) { top: 30%; right: -4%; }
.manifesto-orbit span:nth-child(3) { bottom: 5%; left: 31%; }
.manifesto-copy { max-width: 43rem; }
.manifesto .kicker { color: #745116; }
.manifesto blockquote { margin: 0; font-size: clamp(3.3rem, 6vw, 6.6rem); line-height: .92; }
.manifesto-copy > p:last-child { max-width: 34rem; margin: 2rem 0 0; color: #435149; font-size: clamp(1rem, 1.3vw, 1.22rem); }

.invitation { min-height: 78svh; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; background: radial-gradient(circle at 50% 110%, rgba(111,74,168,.32), transparent 40%), var(--night); }
.invitation h2 { max-width: 12ch; margin: 0; font-size: clamp(3.4rem, 7.2vw, 7.5rem); line-height: .94; text-wrap: balance; }
.invitation > p:not(.kicker) { max-width: 42rem; margin: 1.5rem auto 2rem; color: var(--muted); font-size: clamp(1rem, 1.4vw, 1.25rem); }

footer { display: grid; grid-template-columns: 1fr auto auto auto; align-items: center; gap: 2rem; padding: 2.4rem var(--pad); border-top: 1px solid rgba(255,255,255,.08); background: #06100c; color: var(--muted); }
footer p { margin: 0; font-size: .73rem; letter-spacing: .1em; text-transform: uppercase; }
footer > a:last-child { font-size: .75rem; text-underline-offset: .25rem; }
.footer-links { display: flex; gap: 1rem; font-size: .72rem; text-transform: uppercase; }
.footer-links a { text-underline-offset: .25rem; }

/* Pillar pages */
.detail-header { position: fixed; }
.pillar-tabs { display: flex; gap: .35rem; padding: .25rem; border: 1px solid rgba(255,255,255,.16); border-radius: .3rem; background: rgba(255,255,255,.07); backdrop-filter: blur(14px); }
.pillar-tabs a { padding: .55rem .8rem; }
.pillar-tabs a::after { display: none; }
.pillar-tabs a[aria-current="page"] { background: var(--gold); color: #181207; }
.detail-hero { position: relative; min-height: 94svh; display: flex; align-items: end; padding: clamp(9rem, 18vh, 12rem) var(--pad) clamp(4rem, 9vh, 7rem); isolation: isolate; overflow: hidden; }
.detail-hero-art, .detail-hero-shade { position: absolute; inset: 0; }
.detail-hero-art { z-index: -2; background-image: var(--detail-image); background-position: var(--detail-position, center); background-size: cover; transform: scale(1.025); }
.detail-hero-shade { z-index: -1; background: linear-gradient(90deg, rgba(2,6,5,.96) 0%, rgba(2,6,5,.76) 38%, rgba(2,6,5,.16) 72%), linear-gradient(0deg, rgba(2,6,5,.92), transparent 45%); }
.detail-hero-copy { max-width: 52rem; }
.detail-hero-copy h1 { max-width: 12ch; font-size: clamp(4rem, 8.5vw, 8.5rem); }
.detail-hero-copy > p:last-child { max-width: 42rem; margin: 1.5rem 0 0; color: rgba(247,243,233,.82); font-size: clamp(1.05rem, 1.5vw, 1.3rem); }
.detail-number { position: absolute; right: var(--pad); bottom: 2.5rem; color: rgba(247,243,233,.13); font-family: var(--display); font-size: clamp(7rem, 18vw, 18rem); line-height: .7; }
.detail-vocabulary { position: absolute; z-index: 1; top: 17%; right: var(--pad); width: min(44rem, 52vw); display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 0; color: var(--gold-soft); font-size: clamp(.62rem,.8vw,.78rem); font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.detail-vocabulary span { position: relative; display: grid; gap: .2rem; padding: .65rem .7rem; border-top: 1px solid rgba(255,237,189,.42); border-bottom: 1px solid rgba(255,237,189,.18); background: rgba(3,7,6,.62); backdrop-filter: blur(10px); }
.detail-vocabulary span:not(:last-child)::after { content: "→"; position: absolute; top: 50%; right: -.35rem; z-index: 1; color: var(--gold); transform: translateY(-50%); }
.detail-vocabulary b { color: var(--gold); font-family: var(--display); font-size: .78rem; }
.detail-principle { display: grid; grid-template-columns: minmax(12rem,.4fr) minmax(0,1.2fr) minmax(16rem,.55fr); gap: clamp(2rem,5vw,6rem); align-items: end; border-bottom: 1px solid var(--line); }
.detail-principle .kicker { align-self: start; }
.detail-principle h2 { margin: 0; font-size: clamp(3.5rem,7vw,7.5rem); line-height: .92; }
.detail-principle > p:last-child { margin: 0; color: var(--muted); font-size: clamp(1rem,1.3vw,1.2rem); }
.detail-section { padding-top: clamp(5rem,9vw,9rem); }
.detail-section-title { display: grid; grid-template-columns: .45fr 1fr; gap: 2rem; align-items: end; margin-bottom: 4rem; }
.detail-section-title .kicker { align-self: start; }
.detail-section-title h2 { max-width: 12ch; margin: 0; font-size: clamp(3.5rem,7vw,7rem); line-height: .92; }
.fundamentals-grid { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.fundamental-card { min-height: 20rem; grid-column: span 2; padding: 1.5rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: linear-gradient(155deg,rgba(255,255,255,.025),transparent); }
.fundamental-card:nth-child(4), .fundamental-card:nth-child(5) { grid-column: span 3; }
.fundamental-card > span { color: var(--gold); font-family: var(--display); font-size: 1.35rem; }
.fundamental-card h3 { margin: 5rem 0 .8rem; font-family: var(--display); font-size: clamp(2rem,3vw,3.2rem); font-weight: 400; line-height: .95; }
.fundamental-card p { margin: 0; color: var(--muted); }
.practice-section { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(3rem,8vw,9rem); background: #0a1812; }
.practice-heading { position: sticky; top: 8rem; align-self: start; }
.practice-heading h2 { margin: 0; font-size: clamp(3.5rem,6vw,6.5rem); line-height: .92; }
.practice-heading > p:last-child { max-width: 30rem; color: var(--muted); }
.practice-section ol { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.practice-section li { display: grid; grid-template-columns: 3rem 1fr; gap: 1.5rem; padding: 1.5rem 0; border-bottom: 1px solid var(--line); }
.practice-section li span { color: var(--gold); font-family: var(--display); font-size: 1.3rem; }
.practice-section li p { margin: 0; font-size: clamp(1rem,1.4vw,1.2rem); }
.offer-section { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(3rem,8vw,9rem); padding: clamp(6rem,11vw,11rem) var(--pad); background: #e9dfc9; color: #101b16; }
.offer-section .kicker { color: #765619; }
.offer-section h2 { max-width: 10ch; margin: 0; font-size: clamp(3.5rem,7vw,7rem); line-height: .92; }
.offer-copy { align-self: end; }
.offer-copy > p { max-width: 34rem; color: #46534c; font-size: 1.15rem; }
.offer-copy small { display: block; max-width: 43rem; margin-top: 1.3rem; color: #55635b; font-size: .78rem; line-height: 1.55; }
.source-section { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(3rem,8vw,9rem); }
.source-section h2 { max-width: 11ch; margin: 0; font-size: clamp(3.2rem,6vw,6rem); line-height: .94; }
.source-section > div:first-child > p:last-child { max-width: 38rem; color: var(--muted); }
.source-links { display: grid; align-content: end; border-top: 1px solid var(--line); }
.source-links a { display: flex; justify-content: space-between; gap: 1rem; padding: 1.2rem 0; border-bottom: 1px solid var(--line); color: var(--gold-soft); text-decoration: none; }
.next-pillar { position: relative; display: grid; grid-template-columns: .35fr 1fr; gap: 2rem; align-items: center; padding: clamp(3rem,7vw,7rem) var(--pad); background: var(--gold); color: #161006; text-decoration: none; overflow: hidden; }
.next-pillar::before { content: ""; position: absolute; inset: 0; background: linear-gradient(100deg,transparent,rgba(255,255,255,.32),transparent); transform: translateX(-110%); transition: transform 750ms var(--ease); }
.next-pillar:hover::before { transform: translateX(110%); }
.next-pillar span { font-size: .72rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.next-pillar strong { max-width: 18ch; font-family: var(--display); font-size: clamp(2.2rem,4vw,4.2rem); font-weight: 400; line-height: .95; }
.next-pillar i { font-size: 3rem; font-style: normal; }
.detail-footer { grid-template-columns: 1fr auto auto; }

@keyframes reveal-up { from { opacity: 0; transform: translateY(2rem); } to { opacity: 1; transform: translateY(0); } }
@keyframes hero-breathe { from { transform: scale(1.03); } to { transform: scale(1.08); } }
@keyframes scroll-line { 0% { transform: translateX(-110%); } 55%, 100% { transform: translateX(245%); } }
@keyframes orbit { to { transform: rotate(360deg); } }

@media (max-width: 860px) {
  .brand-copy small { display: none; }
  .hero { align-items: end; }
  .hero-copy { width: 100%; }
  .hero-shade { background: linear-gradient(0deg, rgba(3,9,7,.96) 0%, rgba(3,9,7,.62) 52%, rgba(3,9,7,.17) 100%); }
  .scroll-cue { display: none; }
  .belief { grid-template-columns: 1fr; }
  .belief .kicker { margin-bottom: 0; }
  .story-art { background-size: auto 100%; }
  .story-chapter { top: auto; bottom: 6rem; padding: 1.25rem; border: 1px solid rgba(255,255,255,.1); background: rgba(3,9,7,.75); backdrop-filter: blur(14px); transform: translateY(1rem); }
  .story-chapter h2 { max-width: 11ch; font-size: clamp(3rem, 13vw, 5rem); }
  .home-offer { grid-template-columns: 1fr; }
  .offer-intro h2 { max-width: 12ch; }
  .pillar-grid { grid-template-columns: 1fr; }
  .pillar-card { min-height: 22rem; border-right: 0; border-bottom: 1px solid var(--line); }
  .manifesto { grid-template-columns: 1fr; }
  .manifesto-orbit { width: min(28rem, 88vw); }
  footer { grid-template-columns: 1fr; }
  .footer-links { flex-wrap: wrap; }
  .pillar-tabs { margin-left: auto; overflow-x: auto; }
  .pillar-tabs a { padding: .45rem .6rem; font-size: .68rem; white-space: nowrap; }
  .detail-hero { min-height: 88svh; }
  .detail-hero-shade { background: linear-gradient(0deg,rgba(2,6,5,.97) 0%,rgba(2,6,5,.68) 56%,rgba(2,6,5,.12)); }
  .detail-hero-copy { max-width: 100%; }
  .detail-vocabulary { top: 7rem; left: var(--pad); right: var(--pad); width: auto; grid-template-columns: repeat(5,minmax(0,1fr)); }
  .detail-principle, .detail-section-title, .practice-section, .offer-section, .source-section { grid-template-columns: 1fr; }
  .detail-principle { align-items: start; }
  .fundamentals-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .fundamental-card, .fundamental-card:nth-child(4), .fundamental-card:nth-child(5) { grid-column: span 1; }
  .practice-heading { position: static; }
  .next-pillar { grid-template-columns: 1fr auto; }
  .next-pillar span { grid-column: 1 / -1; }
}

@media (max-width: 520px) {
  .site-header { flex-wrap: wrap; gap: .45rem; padding-inline: .75rem; }
  .brand { padding: .15rem .35rem; }
  .brand-logo { width: 9.75rem; height: 2.25rem; }
  .brand-copy strong { font-size: .88rem; }
  .nav-cta { padding: .55rem .75rem; font-size: .68rem; }
  .hero { min-height: 100svh; }
  h1 { font-size: clamp(3.8rem, 18vw, 5.6rem); }
  .hero-actions .button { width: 100%; }
  .story { height: 340vh; }
  .story-skip { top: 7.4rem; right: 1rem; }
  .story-chapter { left: 1rem; width: calc(100% - 2rem); bottom: 4.7rem; }
  .story-chapter p { font-size: .95rem; }
  .story-rule { left: 1rem; bottom: 1.7rem; width: calc(100% - 6.5rem); }
  .story-count { right: 1rem; bottom: 1rem; }
  .detail-header { padding-inline: .75rem; }
  .pillar-tabs { width: 100%; display: grid; grid-template-columns: .75fr .75fr 1.35fr; }
  .pillar-tabs a { display: grid; place-items: center; padding: .55rem .35rem; font-size: .61rem; text-align: center; }
  .detail-hero { min-height: 100svh; padding-top: 9rem; padding-bottom: 3rem; }
  .detail-hero-copy h1 { font-size: clamp(3.45rem,17vw,5rem); }
  .detail-hero-copy > p:last-child { font-size: 1rem; }
  .detail-number { bottom: 1rem; }
  .detail-vocabulary { top: 8rem; left: .75rem; right: .75rem; grid-template-columns: repeat(5,1fr); gap: 0; }
  .detail-vocabulary span { padding: .3rem .25rem; font-size: .47rem; letter-spacing: .04em; }
  .detail-vocabulary b { font-size: .58rem; }
  .detail-vocabulary span:not(:last-child)::after { right: -.2rem; }
  .product-grid { grid-template-columns: 1fr; }
  .product-card.is-featured { transform: none; }
  .fundamentals-grid { grid-template-columns: 1fr; }
  .fundamental-card, .fundamental-card:nth-child(4), .fundamental-card:nth-child(5) { min-height: auto; grid-column: 1; }
  .fundamental-card h3 { margin-top: 3rem; }
  .offer-section { padding-inline: 1.25rem; }
  .next-pillar { padding-inline: 1.25rem; }
}

@media (max-height: 800px) and (min-width: 861px) {
  .hero { align-items: center; padding-top: 7rem; padding-bottom: 3rem; }
  .hero-copy { width: min(44rem, 72vw); }
  .hero h1 { font-size: clamp(3.8rem, 8vw, 6.2rem); }
  .hero-lede { margin-top: 1.2rem; font-size: 1rem; }
  .hero-actions { margin-top: 1.4rem; }
  .scroll-cue { bottom: 3rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .story { height: auto; }
  .story-stage { position: relative; height: auto; overflow: visible; }
  .story-art, .story-vignette, .story-rule, .story-count, .story-skip { display: none; }
  .story-chapters { display: grid; }
  .story-chapter { position: relative; inset: auto; width: 100%; min-height: 72svh; display: flex; flex-direction: column; justify-content: end; padding: 7rem var(--pad) 4rem; opacity: 1 !important; transform: none !important; background-position: center; background-size: cover; isolation: isolate; }
  .story-chapter::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: linear-gradient(0deg, rgba(3,7,6,.95), rgba(3,7,6,.2)), url('/assets/whole-life-hero.jpg'); background-position: var(--fallback-position, center); background-size: cover; }
  .story-chapter:nth-child(1) { --fallback-position: left center; }
  .story-chapter:nth-child(2) { --fallback-position: center; }
  .story-chapter:nth-child(3) { --fallback-position: right center; }
}

@media (forced-colors: active) {
  .button, .brand-mark, .nav-cta { border: 1px solid currentColor; }
}

/* Bright future direction */
body { background: #fff; color: #10261c; }
.site-header { background: rgba(255,255,255,.92); border-bottom-color: rgba(16,38,28,.09); backdrop-filter: blur(18px); }
.site-header.is-scrolled { background: rgba(255,255,255,.96); border-color: rgba(16,38,28,.12); }
.main-nav { gap: clamp(.65rem,1.4vw,1.45rem); }
.main-nav a { color: #183226; font-size: .7rem; font-weight: 850; }
.main-nav a[aria-current="page"], .main-nav a:hover { color: #0a9f4e; }
.future-hero { position: relative; min-height: max(52rem,100svh); display: grid; place-items: center; padding: 8.5rem var(--pad) 8rem; background: #fff; color: #10261c; isolation: isolate; overflow: hidden; text-align: center; }
.future-hero::before { content: ""; position: absolute; z-index: 2; inset: 0; background: linear-gradient(180deg,rgba(255,255,255,.36) 0%,rgba(255,255,255,.03) 24%,rgba(255,255,255,.1) 74%,rgba(255,255,255,.95) 100%),radial-gradient(ellipse at center,rgba(255,255,255,.9) 0%,rgba(255,255,255,.56) 28%,rgba(255,255,255,.02) 62%); pointer-events: none; }
.future-hero-visual { position: absolute; z-index: 1; inset: 5.5rem 0 4.8rem; display: grid; place-items: end center; transform: translateY(calc(var(--page-scroll,0px) * .045)); }
.future-hero-visual img { width: 100%; height: 100%; object-fit: cover; object-position: center bottom; }
.future-hero-copy { position: relative; z-index: 3; max-width: 78rem; display: grid; justify-items: center; padding: 2.2rem clamp(1rem,4vw,4rem) 5rem; }
.future-hero .eyebrow { color: #0a8b45; }
.future-hero h1 { max-width: 11ch; margin-inline: auto; color: #10261c; font-size: clamp(4rem,8vw,8rem); line-height: .88; text-wrap: balance; text-shadow: 0 2px 22px rgba(255,255,255,.98); }
.future-hero h1 em { color: #12a852; font-style: normal; }
.future-hero .hero-lede { max-width: 45rem; color: #3c594b; font-weight: 650; text-shadow: 0 1px 12px rgba(255,255,255,.98); }
.mission-ribbon { position: absolute; z-index: 5; left: var(--pad); right: var(--pad); bottom: 1.4rem; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .75rem; text-align: left; }
.mission-step { --offset: 0rem; position: relative; min-height: 8.7rem; display: flex; flex-direction: column; justify-content: center; padding: 1.2rem 1.5rem; border-radius: .9rem; overflow: hidden; background: #073b25; color: #fff; box-shadow: 0 18px 40px rgba(7,55,31,.18); transform: translateY(var(--offset)); animation: mission-in .8s var(--ease) backwards; transition: transform .35s var(--ease), box-shadow .35s ease; }
.mission-step:nth-child(2) { --offset: -.8rem; background: #12a852; animation-delay: .12s; }
.mission-step:nth-child(3) { background: #f3d17b; color: #17371f; animation-delay: .24s; }
.mission-step:hover { transform: translateY(calc(var(--offset) - .4rem)); box-shadow: 0 25px 50px rgba(7,55,31,.2); }
.mission-step::after { content: ""; position: absolute; left: 1.5rem; right: 1.5rem; bottom: 0; height: .28rem; background: currentColor; opacity: .32; }
.mission-number { position: absolute; top: .4rem; right: .85rem; color: currentColor; opacity: .17; font-family: var(--display); font-size: 3.4rem; line-height: 1; }
.mission-step p { position: relative; margin: 0 0 .55rem; color: inherit; opacity: .8; font-size: .72rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.mission-step strong { position: relative; font-family: var(--display); font-size: clamp(2.25rem,3.5vw,3.8rem); font-weight: 400; line-height: .95; letter-spacing: -.04em; }
.mission-step:nth-child(3) strong { font-size: clamp(2rem,3vw,3.3rem); }
@keyframes mission-in { from { opacity: 0; transform: translateY(calc(var(--offset) + 2rem)); } to { opacity: 1; transform: translateY(var(--offset)); } }
@media (max-width: 980px) {
  .site-header { align-items: flex-start; flex-wrap: wrap; }
  .main-nav { width: 100%; overflow-x: auto; padding-bottom: .25rem; }
  .main-nav a { white-space: nowrap; }
  .future-hero { padding-top: 10rem; }
  .future-hero-copy { padding-bottom: 6rem; }
  .future-hero-visual { inset-inline: -20%; }
}
@media (max-width: 800px) and (min-width: 621px) {
  .mission-step { min-height: 7.5rem; padding: .9rem 1rem; }
  .mission-step strong, .mission-step:nth-child(3) strong { font-size: clamp(1.65rem,3.3vw,2.5rem); }
  .mission-step::after { left: 1rem; right: 1rem; }
}
@media (max-width: 620px) {
  .future-hero { min-height: 64rem; padding-top: 10rem; padding-bottom: 15rem; }
  .future-hero::before { background: linear-gradient(180deg,rgba(255,255,255,.94),rgba(255,255,255,.3) 25%,rgba(255,255,255,.34) 70%,#fff 100%),radial-gradient(ellipse at center,rgba(255,255,255,.94),rgba(255,255,255,.65) 55%,transparent 78%); }
  .future-hero-copy { padding: 1rem 0 10rem; }
  .future-hero h1 { font-size: clamp(3.55rem,16vw,5.2rem); }
  .future-hero-visual { inset: 8rem -82% 7.5rem; }
  .future-hero-visual img { object-fit: cover; }
  .mission-ribbon { left: 1rem; right: 1rem; bottom: 1rem; grid-template-columns: 1fr; gap: .4rem; }
  .mission-step { --offset: 0rem; min-height: 4.5rem; flex-direction: row; align-items: center; justify-content: space-between; gap: 1rem; padding: .7rem 1rem; }
  .mission-step:nth-child(2) { --offset: 0rem; }
  .mission-step p { margin: 0; font-size: .62rem; }
  .mission-step strong, .mission-step:nth-child(3) strong { font-size: clamp(1.45rem,6vw,1.9rem); white-space: nowrap; }
  .mission-number { display: none; }
  .mission-step::after { left: 1rem; right: 1rem; }
}

/* Bright site system */
:root {
  color-scheme: light;
  --ink: #11251c;
  --muted: #5f7067;
  --night: #f7fbf8;
  --forest: #0b3b24;
  --emerald: #12a852;
  --emerald-bright: #22c769;
  --gold: #d8a83f;
  --gold-soft: #f6dd9c;
  --line: rgba(16,56,36,.14);
  --surface: #f4faf6;
}
html { background: #fff; }
body { background: #fff; color: var(--ink); }
.eyebrow, .kicker { color: #087d3d; }
.section-pad { padding-block: clamp(5.5rem,9vw,9rem); }
.button { border-radius: 999px; }
.button-primary { background: var(--emerald); color: white; }
.button-primary:hover, .button-primary:focus-visible { background: #087d3d; color: white; }
.text-link { display: inline-block; margin-top: 1.15rem; color: #087d3d; font-size: .82rem; font-weight: 850; letter-spacing: .08em; text-decoration-thickness: 1px; text-underline-offset: .35rem; text-transform: uppercase; }
.site-header { padding-block: .72rem; }
.brand { border-color: rgba(14,93,51,.13); background: #fff; box-shadow: 0 8px 24px rgba(28,78,50,.08); }
.brand-logo { height: 2.65rem; }
.main-nav a { padding-block: .55rem; }
.main-nav a::after { display: none; }
.main-nav a[aria-current="page"] { color: #087d3d; }

.home-offer { background: linear-gradient(135deg,#fff 0%,#fff5fa 50%,#ffe6f2 100%); }
.offer-intro h2, .product-copy h3 { color: #15281f; }
.offer-intro > p:not(.kicker), .product-copy p { color: #53645b; }
.product-card { border-color: rgba(132,23,85,.13); }

.services-preview { background: #fff; }
.services-collective { display: grid; grid-template-columns: minmax(0,.72fr) minmax(0,1.28fr); gap: clamp(2.5rem,6vw,7rem); align-items: center; background: #f2faf5; }
.services-collective h2 { max-width: 12ch; margin: 0; color: var(--ink); font-size: clamp(3.3rem,5.6vw,6rem); line-height: .92; }
.services-collective p:last-child { max-width: 35rem; color: var(--muted); font-size: clamp(1rem,1.2vw,1.15rem); }
.services-collective img { width: 100%; border: 1px solid rgba(16,112,57,.12); border-radius: 1rem; background: #fff; box-shadow: 0 24px 70px rgba(19,76,44,.1); }
.split-heading { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(18rem,.58fr); gap: clamp(2rem,7vw,8rem); align-items: end; }
.split-heading > div:first-child h2 { margin: 0; color: var(--ink); font-size: clamp(3.5rem,7vw,7.2rem); line-height: .9; }
.split-heading > div:last-child > p, .split-heading > p { margin: 0; color: var(--muted); font-size: clamp(1rem,1.2vw,1.15rem); }
.service-mini-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.service-mini-grid a { min-height: 24rem; display: flex; flex-direction: column; padding: 1.5rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #fff; color: inherit; text-decoration: none; transition: background .3s ease, transform .3s var(--ease); }
.service-mini-grid a:hover { z-index: 1; background: #f0fbf4; transform: translateY(-.35rem); }
.service-mini-grid span { color: #0b8d45; font-family: var(--display); font-size: 1.25rem; }
.service-mini-grid h3 { margin: auto 0 1rem; font-family: var(--display); font-size: clamp(2rem,3vw,3.1rem); font-weight: 400; line-height: .94; }
.service-mini-grid p { margin: 0; color: var(--muted); }

.pillars { background: #f5faf7; }
.section-heading h2 { color: var(--ink); }
.pillar-grid { border-color: var(--line); }
.pillar-card { min-height: 25rem; border-color: var(--line); background: #fff; }
.pillar-card::before { background: radial-gradient(circle,rgba(33,194,99,.14),transparent 68%); }
.pillar-index { color: #0b8d45; }
.pillar-card h3 { color: var(--ink); }
.pillar-card p { color: var(--muted); }
.pillar-link { border-color: var(--line); color: #087d3d; }

.about-section { position: relative; display: grid; grid-template-columns: minmax(0,.92fr) minmax(0,1.08fr); gap: clamp(3rem,7vw,8rem); align-items: center; background: #fff; overflow: hidden; }
.about-image { min-height: 42rem; border-radius: 1rem; overflow: hidden; background: #eaf7ef; box-shadow: 0 28px 70px rgba(27,83,51,.12); }
.about-image img { width: 100%; height: 46rem; object-fit: cover; object-position: center; transform: scale(1.08) translateY(var(--parallax-y,0)); }
.about-copy h2 { max-width: 10ch; margin: 0; color: var(--ink); font-size: clamp(3.5rem,6.2vw,6.7rem); line-height: .9; }
.about-copy > p:not(.kicker) { max-width: 42rem; color: var(--muted); font-size: clamp(1rem,1.2vw,1.15rem); }
.about-values { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: 1.8rem; }
.about-values span { padding: .55rem .82rem; border: 1px solid rgba(16,112,57,.18); border-radius: 999px; background: #effaf3; color: #087d3d; font-size: .72rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }

.resource-preview { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(3rem,8vw,9rem); align-items: center; background: linear-gradient(135deg,#e8faef,#f7fff9); }
.resource-preview h2 { max-width: 11ch; margin: 0; color: var(--ink); font-size: clamp(3.4rem,6.4vw,6.5rem); line-height: .92; }
.resource-preview-card { padding: clamp(2rem,4vw,3.5rem); border: 1px solid rgba(16,112,57,.14); border-radius: 1rem; background: rgba(255,255,255,.8); box-shadow: 0 26px 70px rgba(29,93,56,.1); }
.resource-preview-card > span { color: #087d3d; font-size: .72rem; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }
.resource-preview-card p { color: var(--muted); font-size: 1.08rem; }
.invitation { background: #fff; color: var(--ink); }
.invitation h2 { max-width: 13ch; color: var(--ink); }
.invitation > p:not(.kicker) { color: var(--muted); }

footer { background: #07371f; color: rgba(255,255,255,.78); }
footer .brand { background: white; }
footer a { color: inherit; }

/* Bright pillar pages */
.detail-hero { background: #eff8f2; }
.detail-hero-art { filter: saturate(.72) brightness(1.08); }
.detail-hero-shade { background: linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.89) 43%,rgba(255,255,255,.23) 79%),linear-gradient(0deg,rgba(255,255,255,.9),transparent 50%); }
.detail-hero-copy h1 { color: #11251c; }
.detail-hero-copy > p:last-child { color: #465f52; }
.detail-number { color: rgba(15,120,59,.11); }
.detail-vocabulary { color: #0a7439; }
.detail-vocabulary span { border-color: rgba(10,116,57,.25); background: rgba(255,255,255,.82); }
.detail-vocabulary span:not(:last-child)::after, .detail-vocabulary b { color: #0b8d45; }
.detail-principle, .detail-section, .source-section { background: #fff; border-color: var(--line); }
.detail-principle h2, .detail-section-title h2, .source-section h2 { color: var(--ink); }
.detail-principle > p:last-child, .source-section > div:first-child > p:last-child { color: var(--muted); }
.fundamentals-grid { border-color: var(--line); }
.fundamental-card { border-color: var(--line); background: #fff; }
.fundamental-card > span { color: #0b8d45; }
.fundamental-card h3 { color: var(--ink); }
.fundamental-card p { color: var(--muted); }
.practice-section { background: #f1f9f4; }
.practice-heading h2, .practice-section li p { color: var(--ink); }
.practice-heading > p:last-child { color: var(--muted); }
.practice-section ol, .practice-section li { border-color: var(--line); }
.practice-section li span { color: #0b8d45; }
.offer-section { background: linear-gradient(135deg,#fff7ed,#fff); }
.offer-section h2 { color: var(--ink); }
.offer-copy > p, .offer-copy small { color: var(--muted); }
.source-links { border-color: var(--line); }
.source-links a { border-color: var(--line); color: #087d3d; }
.next-pillar { background: #12a852; color: #fff; }

/* Services and resources */
.inner-hero { position: relative; min-height: 82svh; display: grid; grid-template-columns: minmax(0,1.25fr) minmax(18rem,.55fr); align-items: center; gap: 3rem; padding: 10rem var(--pad) 5rem; background: linear-gradient(135deg,#fff 0%,#f0fbf4 100%); overflow: hidden; }
.inner-hero::before { content: "NoW"; position: absolute; right: -2vw; top: 11%; color: rgba(18,168,82,.07); font-family: var(--display); font-size: clamp(12rem,30vw,28rem); line-height: .8; transform: translateY(var(--parallax-y,0)); }
.inner-hero > div { position: relative; z-index: 1; }
.inner-hero h1 { max-width: 11ch; color: var(--ink); font-size: clamp(4.2rem,8vw,8.6rem); }
.inner-hero > div:first-child > p:not(.eyebrow) { max-width: 48rem; color: var(--muted); font-size: clamp(1.05rem,1.45vw,1.3rem); }
.inner-hero-mark { width: min(22rem,30vw); aspect-ratio: 1; display: grid; place-items: center; align-content: center; border: 1px solid rgba(18,168,82,.23); border-radius: 50%; background: rgba(255,255,255,.66); box-shadow: 0 25px 70px rgba(15,94,49,.09); }
.inner-hero-mark span { color: #0b8d45; font-family: var(--display); font-size: clamp(5rem,10vw,9rem); line-height: .8; }
.inner-hero-mark small { margin-top: 1rem; color: var(--muted); font-size: .72rem; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }
.consulting-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; background: #fff; }
.consulting-grid article { padding: clamp(2rem,4vw,4rem); border: 1px solid var(--line); border-radius: .75rem; background: #fff; scroll-margin-top: 7rem; }
.consulting-grid article:nth-child(2), .consulting-grid article:nth-child(3) { background: #f3faf5; }
.consulting-grid article > span { color: #087d3d; font-size: .72rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.consulting-grid h2 { max-width: 12ch; margin: 2.5rem 0 1.2rem; color: var(--ink); font-size: clamp(2.8rem,4.5vw,4.8rem); line-height: .93; }
.consulting-grid p, .consulting-grid li, .consulting-grid small { color: var(--muted); }
.consulting-grid ul { margin: 1.6rem 0 0; padding-left: 1.2rem; }
.consulting-grid li { margin-block: .55rem; }
.process-section { display: grid; grid-template-columns: .7fr 1.3fr; gap: clamp(3rem,8vw,9rem); background: #eff9f3; }
.process-section h2 { max-width: 8ch; margin: 0; color: var(--ink); font-size: clamp(3.5rem,6.5vw,6.5rem); line-height: .9; }
.process-section ol { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.process-section li { display: grid; grid-template-columns: 3rem .55fr 1fr; gap: 1.5rem; padding: 1.35rem 0; border-bottom: 1px solid var(--line); align-items: start; }
.process-section li span { color: #0b8d45; font-family: var(--display); font-size: 1.25rem; }
.process-section li strong { color: var(--ink); font-family: var(--display); font-size: 1.7rem; font-weight: 400; }
.process-section li p { margin: 0; color: var(--muted); }
.page-cta { min-height: 68svh; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 6rem var(--pad); background: #fff; text-align: center; }
.page-cta h2 { max-width: 12ch; margin: 0 0 2rem; color: var(--ink); font-size: clamp(3.3rem,6.5vw,6.7rem); line-height: .92; }
.resources-hero { min-height: 76svh; }
.resource-folder { position: relative; width: min(22rem,30vw); aspect-ratio: 1.12; display: grid; place-items: center; border-radius: 1rem; background: #13a853; box-shadow: 0 26px 70px rgba(13,122,61,.18); transform: rotate(3deg); }
.resource-folder::before { content: ""; position: absolute; left: 1.2rem; top: -1.25rem; width: 42%; height: 2rem; border-radius: .55rem .55rem 0 0; background: #13a853; }
.resource-folder span { color: white; font-family: var(--display); font-size: clamp(1.7rem,3vw,2.8rem); letter-spacing: .05em; }
.resource-folder i { position: absolute; inset: 1rem; border: 1px solid rgba(255,255,255,.35); border-radius: .6rem; }
.resource-library { background: #fff; }
.resource-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1rem; }
.resource-grid article { min-height: 23rem; display: flex; flex-direction: column; padding: 1.5rem; border: 1px solid var(--line); border-radius: .75rem; background: #fff; }
.resource-grid article:nth-child(even) { background: #f3faf5; }
.resource-grid span { color: #087d3d; font-size: .7rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.resource-grid h3 { margin: auto 0 1rem; color: var(--ink); font-family: var(--display); font-size: clamp(2rem,3vw,3rem); font-weight: 400; line-height: .95; }
.resource-grid p { margin: 0; color: var(--muted); }
.resource-grid b { margin-top: 1.4rem; color: #0b8d45; font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; }
.resource-feature { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 3rem; background: #eff9f3; }
.resource-feature h2 { margin: 0; color: var(--ink); font-size: clamp(3.2rem,6vw,6rem); line-height: .92; }
.resource-feature p { max-width: 40rem; color: var(--muted); }
.button-disabled { border-color: rgba(17,37,28,.15); background: rgba(17,37,28,.06); color: #617068; cursor: not-allowed; }
body[data-page="everything"] .fundamentals-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
body[data-page="everything"] .fundamental-card { grid-column: auto; min-height: 21rem; }
body[data-page="everything"] .fundamental-card h3 { margin-top: 3.5rem; }

@media (max-width: 1040px) {
  .service-mini-grid, .resource-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .about-section, .resource-preview, .process-section { grid-template-columns: 1fr; }
  .about-image { min-height: 34rem; }
  .about-image img { height: 38rem; }
}
@media (max-width: 860px) {
  .site-header { align-items: flex-start; flex-wrap: wrap; }
  .main-nav { width: 100%; overflow-x: auto; padding-bottom: .2rem; }
  .main-nav a { white-space: nowrap; }
  .split-heading, .inner-hero, .consulting-grid, .services-collective { grid-template-columns: 1fr; }
  body[data-page="everything"] .fundamentals-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .inner-hero { padding-top: 11rem; }
  .inner-hero-mark, .resource-folder { width: min(18rem,70vw); justify-self: center; }
  .detail-hero-shade { background: linear-gradient(0deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.84) 58%,rgba(255,255,255,.22)); }
}
@media (max-width: 620px) {
  .site-header { padding-inline: .75rem; }
  .main-nav { gap: 1rem; }
  .main-nav a { font-size: .64rem; }
  .future-hero .hero-actions .button { width: auto; }
  .service-mini-grid, .resource-grid { grid-template-columns: 1fr; }
  body[data-page="everything"] .fundamentals-grid { grid-template-columns: 1fr; }
  .service-mini-grid a, .resource-grid article { min-height: 18rem; }
  .about-image { min-height: 25rem; }
  .about-image img { height: 29rem; }
  .resource-feature { grid-template-columns: 1fr; align-items: start; }
  .process-section li { grid-template-columns: 2rem 1fr; }
  .process-section li p { grid-column: 2; }
  .detail-vocabulary { top: 8.5rem; }
  footer { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .future-hero-visual, .about-image img, .inner-hero::before { transform: none !important; }
  .mission-step { animation: none; transition: none; }
}

/* An open, connected manifesto — no cards, counters, or boxed statements. */
.future-hero { display: flex; flex-direction: column; justify-content: center; padding: 10rem var(--pad) 2.5rem; min-height: 58rem; gap: 1.6rem; }
.future-hero-copy { padding: 1rem 1rem 0; }
.future-hero-visual { inset: 5rem 0 6rem; }
.future-hero .eyebrow { display: inline-block; padding: .7rem 1.2rem; margin: 0 0 1.8rem; background: rgba(255,255,255,.96); color: #06442b; border-block: 2px solid #c7a34a; font-size: clamp(.7rem,1.3vw,1rem); font-weight: 850; letter-spacing: .19em; box-shadow: 0 8px 35px #ffffff; }
.future-hero .hero-lede { max-width: 43rem; color: #173e2d; font-size: clamp(1rem,1.8vw,1.3rem); line-height: 1.6; padding: .6rem 1rem; background: radial-gradient(ellipse,rgba(255,255,255,.9),rgba(255,255,255,.1)); }
.hero-manifesto { position: relative; z-index: 3; display: flex; justify-content: center; align-items: center; width: min(100%,76rem); padding-block: 2rem 1.4rem; }
.hero-manifesto p { margin: 0; flex: 0 1 auto; text-align: center; animation: manifesto-rise .9s both; }
.hero-manifesto p:nth-of-type(2) { animation-delay: .25s; }
.hero-manifesto p:nth-of-type(3) { animation-delay: .5s; }
.hero-manifesto span { display: block; font-size: .65rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; color: #355844; }
.hero-manifesto strong { position: relative; display: inline-block; margin-top: .55rem; color: #073b25; font-family: var(--display); font-weight: 400; font-size: clamp(2rem,4.3vw,4.5rem); line-height: 1.05; white-space: nowrap; }
.hero-manifesto p:nth-of-type(2) strong { color: #087d3d; font-style: italic; font-size: clamp(2.7rem,5.5vw,5.7rem); }
.hero-manifesto strong::after { content: ''; display: block; height: 2px; margin-top: .55rem; background: linear-gradient(90deg,transparent,#c29a38,transparent); transform-origin: left; animation: manifesto-line 1.6s .7s both; }
.hero-manifesto i { flex: 1 1 5rem; max-width: 9rem; height: 1px; margin: 1.7rem clamp(1rem,3vw,3rem) 0; background: linear-gradient(90deg,transparent,#b2c9b6,transparent); }
@keyframes manifesto-rise { from { opacity: 0; transform: translateY(24px); filter: blur(4px); } to { opacity: 1; transform: none; filter: none; } }
@keyframes manifesto-line { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.opportunity-banner { padding: 3rem var(--pad); background: #eff8e8; border-block: 1px solid #dce9cb; display: flex; justify-content: space-between; align-items: center; gap: 2rem; }
.opportunity-banner p { margin: 0; max-width: 24ch; font-family: var(--display); font-size: clamp(2rem,3.5vw,3.6rem); line-height: 1.06; color: #0d432e; }
.opportunity-banner em { color: #5a6934; font-weight: 400; }
.opportunity-banner a { font-size: .8rem; font-weight: 750; color: #164b32; text-underline-offset: .35rem; }
.community-social { margin-top: 2rem; }
.community-social > p { font-size: .85rem; color: #446352; }
.social-links { display: flex; flex-wrap: wrap; gap: .65rem; }
.social-links a { display: inline-flex; align-items: center; justify-content: center; gap: .6rem; min-height: 44px; min-width: 44px; padding: .7rem; border: 1px solid currentColor; border-radius: 50%; color: #0b6b3c; text-decoration: none; transition: background .2s, transform .2s; }
.social-links svg { width: 21px; height: 21px; fill: currentColor; flex-shrink: 0; }
.social-links a > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.social-links a:hover { transform: translateY(-3px); background: #e4f4e9; }
.social-links a:focus-visible { outline: 3px solid #d9aa45; outline-offset: 4px; }
.footer-social { grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: center; border-top: 1px solid #ffffff33; padding-top: 1.5rem; }
.footer-social p { font-size: .8rem; letter-spacing: .04em; }
.footer-social .social-links a { color: #fff; border-color: #ffffff55; }
.footer-social .social-links a:hover { background: #ffffff18; }
.resource-jumps { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.8rem; }
.resource-jumps a { padding: .6rem .9rem; border: 1px solid #bfd9c8; border-radius: 2rem; color: #086735; font-size: .78rem; font-weight: 750; text-decoration: none; background: #ffffffcc; }
.resource-jumps a:hover { background: #def2e5; }
.resources-hero .review-date { font-size: .74rem !important; margin-top: 1.5rem; }
.editorial-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.editorial-grid article { min-height: 23rem; padding: clamp(1.5rem,3vw,2.4rem); border-radius: 0; }
.editorial-grid h3 { margin: 2.4rem 0 1.2rem; font-size: clamp(2rem,3vw,3.2rem); }
.editorial-grid .text-link { margin-top: auto; padding-top: 1.8rem; font-size: .68rem; }
.resource-note { font-size: .8rem; color: #596b60; max-width: 58rem; margin-top: 1.6rem; }
.health-resources { background: #f1f8f3; }
.jamaica-section { background: #fff9e9; }
.jamaica-heading { position: relative; overflow: hidden; padding-bottom: 3.5rem; }
.jamaica-heading h2 { position: relative; margin: 0; font-size: clamp(3.5rem,7vw,7rem); font-family: var(--display); font-weight: 400; line-height: .95; max-width: 11ch; z-index: 1; }
.jamaica-heading > p:not(.kicker) { max-width: 38rem; color: #4e6348; position: relative; z-index: 1; }
.island-word { position: absolute; right: -1rem; bottom: -1rem; font-family: var(--display); font-style: italic; font-size: clamp(5rem,18vw,17rem); color: #d7c176; opacity: .25; pointer-events: none; }
.jamaica-section .editorial-grid article { background: #fffdf6; border-color: #dfd5b4; }
.travel-check { margin-top: 2rem; padding-top: 1.8rem; border-top: 1px solid #dfd5b4; }
.travel-check h3, .documents-note h3 { font-size: 1.6rem; margin: 0; }
.travel-check p { max-width: 55rem; color: #596348; }
.travel-check > div { display: flex; flex-wrap: wrap; gap: 1rem 2rem; }
.travel-check a { color: #1c6138; font-size: .85rem; text-underline-offset: .2rem; }
.resource-feature { grid-template-columns: 1.2fr .8fr; align-items: center; }
.documents-note { border-left: 1px solid #bfdbc9; padding-left: 2.5rem; }
body[data-page="wealth"] .fundamentals-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
body[data-page="wealth"] .fundamental-card { grid-column: auto; }
@media (max-width: 980px) {
  .future-hero { padding-top: 11rem; }
  .future-hero-visual { inset-inline: -20%; }
}
@media (max-width: 860px) {
  .editorial-grid { grid-template-columns: 1fr; }
  .editorial-grid article { min-height: auto; }
  .editorial-grid h3 { margin-top: 1.5rem; }
  body[data-page="wealth"] .fundamentals-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 620px) {
  .future-hero { min-height: auto; padding: 10.5rem 1rem 2rem; gap: 0; }
  .future-hero-copy { padding: 1rem 0 0; }
  .future-hero-visual { inset: 8rem -65% 10rem; }
  .future-hero .eyebrow { max-width: 29rem; font-size: .63rem; letter-spacing: .12em; padding: .65rem .6rem; }
  .hero-manifesto { flex-direction: column; padding-top: .8rem; gap: .8rem; }
  .hero-manifesto p { display: flex; width: min(100%,25rem); align-items: baseline; justify-content: space-between; gap: 1rem; text-align: left; }
  .hero-manifesto strong, .hero-manifesto p:nth-of-type(2) strong { font-size: 2.35rem; }
  .hero-manifesto i { display: none; }
  .hero-manifesto span { font-size: .59rem; letter-spacing: .12em; }
  .opportunity-banner { flex-direction: column; align-items: flex-start; }
  .footer-social { flex-direction: column; align-items: flex-start; gap: .6rem; }
  .resource-feature { grid-template-columns: 1fr; }
  .documents-note { border-left: none; border-top: 1px solid #bfdbc9; padding: 2rem 0 0; }
  body[data-page="wealth"] .fundamentals-grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-manifesto p, .hero-manifesto strong::after { animation: none; }
  .social-links a { transition: none; }
}
