/* ==========================================================================
   PurEarth Foundation — site stylesheet
   Heritage direction: ivory paper, navy + brass gold from the logo, forest green secondary,
   ember for the single conversion CTA. Cormorant Garamond display / Jost body.
   Tokens are ported verbatim from purearth-foundation-design/tokens/*.css.
   ========================================================================== */

/* ---------- 1. Tokens ---------- */
:root, [data-theme="heritage"] {
  /* Brand primitives */
  --navy-950:#071528; --navy-900:#0B2247; --navy-800:#0F2F5F; --navy-700:#163D78; --navy-500:#2C5C9E; --navy-300:#7E9CC4; --navy-100:#DDE5F0;
  --gold-700:#8A6A22; --gold-600:#A88235; --gold-500:#C39A45; --gold-400:#D6B36A; --gold-200:#EBD9A8; --gold-100:#F6EFDC;
  --silver-500:#9EA3B0; --silver-300:#C9CCD5;
  --forest-950:#081A14; --forest-900:#0E2A1F; --forest-800:#143B2C; --forest-700:#1B4D3A; --green-500:#2E7D5B; --green-400:#4C9B76; --moss-300:#8FB996; --sage-200:#C9DACA; --sage-100:#E6EEE4;
  --ember-600:#B8461F; --ember-500:#D2603A; --ember-300:#F0A786;
  --sky-500:#4FB3FF; --sky-300:#9AD3FF;
  --ivory-50:#FBF9F4; --ivory-100:#F6F2E8; --stone-200:#ECE6D8; --stone-300:#D9D1BF; --ink-900:#131A24; --ink-700:#2A3340; --ink-500:#5A6472; --ink-300:#98A0AB; --white:#FFFFFF;
  /* Semantic */
  --surface-page:var(--ivory-50); --surface-raised:var(--white); --surface-muted:var(--ivory-100); --surface-band:var(--stone-200); --surface-inverse:var(--navy-900); --surface-inverse-2:var(--forest-900);
  --text-primary:var(--navy-900); --text-body:var(--ink-700); --text-muted:var(--ink-500); --text-on-inverse:var(--ivory-50); --text-on-inverse-muted:#B9C3D2;
  --brand-primary:var(--navy-800); --brand-secondary:var(--forest-700); --accent:var(--gold-500); --accent-strong:var(--ember-500); --accent-on-dark:var(--gold-400);
  --health:var(--navy-500); --earth:var(--green-500);
  --border-subtle:var(--stone-300); --border-strong:var(--navy-800); --border-on-inverse:rgba(255,255,255,.18);
  --link:var(--navy-800); --link-hover:var(--ember-500); --focus-ring:var(--gold-500);
  --earth-text:#286E50; /* green for small text on light bands (AA on ivory, stone, white); green-500 stays for large type, chips and icons */
  --accent-text:#7F601D; /* brass for small text on light bands: WCAG AA on ivory, stone and white; gold-500 stays for rules, icons and borders */
  /* Type */
  --font-serif-display:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --font-sans-geo:"Jost","Futura","Avenir Next",system-ui,sans-serif;
  --font-display:var(--font-serif-display); --font-body:var(--font-sans-geo); --font-ui:var(--font-sans-geo);
  --display-weight:500; --display-tracking:-0.01em; --display-leading:1.02;
  --eyebrow-tracking:0.22em; --eyebrow-weight:500;
  --text-xs:.75rem; --text-sm:.875rem; --text-base:1.0625rem; --text-lg:1.25rem; --text-xl:1.5rem; --text-2xl:2rem; --text-3xl:2.75rem; --text-4xl:3.75rem; --text-5xl:5rem; --text-stat:4.5rem;
  --leading-tight:1.1; --leading-snug:1.25; --leading-body:1.6; --leading-relaxed:1.75;
  --body-weight:400; --body-tracking:0.005em;
  /* Space */
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:24px; --space-6:32px; --space-7:48px; --space-8:64px; --space-9:96px; --space-10:128px;
  --section-y:var(--space-10); --section-y-compact:var(--space-9);
  --container-max:1240px; --container-narrow:760px; --container-pad:clamp(20px,5vw,64px);
  --grid-gap:var(--space-6); --nav-height:84px;
  /* Effects */
  --radius-sm:2px; --radius-md:3px; --radius-lg:4px; --radius-pill:999px;
  --shadow-card:0 1px 0 rgba(11,34,71,.06),0 12px 32px -20px rgba(11,34,71,.35);
  --shadow-float:0 24px 60px -24px rgba(11,34,71,.45);
  --rule:1px solid var(--border-subtle); --rule-accent:1px solid var(--accent);
  --ease-out:cubic-bezier(.2,.7,.2,1); --ease-in-out:cubic-bezier(.65,0,.35,1);
  --dur-fast:160ms; --dur-base:260ms; --dur-slow:600ms;
  --hover-lift:translateY(-2px); --press-scale:scale(.985);
  --protect-gradient:linear-gradient(180deg,rgba(7,21,40,0) 0%,rgba(7,21,40,.55) 60%,rgba(7,21,40,.85) 100%);
  --image-tint:linear-gradient(180deg,rgba(11,34,71,.25),rgba(11,34,71,.25));
  --blur-glass:blur(14px);
  /* Photo treatment ("Heritage plate"): one finish for every photograph so generated and shot images sit together.
     matte = navy lifted into the blacks · sepia = brass warmth in the mid/high tones · grain = fine film texture. */
  --grade-sat:.8; --grade-sepia:.12; --grade-contrast:.94; --grade-bright:1.02; --grade-matte:.55; --grade-grain:.3;
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='280' height='280'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='280' height='280' filter='url(%23n)'/%3E%3C/svg%3E");
}
@media (max-width:900px){ :root{ --section-y:var(--space-9); --section-y-compact:var(--space-8); --nav-height:72px; } }

/* ---------- 2. Base ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; scroll-behavior:smooth; }
html,body{ overflow-x:clip; }
body{ margin:0; background:var(--surface-page); color:var(--text-body); font-family:var(--font-body); font-size:var(--text-base); line-height:var(--leading-body); letter-spacing:var(--body-tracking); font-weight:var(--body-weight); }
body.menu-open{ overflow:hidden; }
a{ color:var(--link); text-decoration:none; transition:color var(--dur-fast) var(--ease-out); }
a:hover{ color:var(--link-hover); }
h1,h2,h3,h4{ font-family:var(--font-display); color:var(--text-primary); font-weight:var(--display-weight); letter-spacing:var(--display-tracking); line-height:var(--display-leading); margin:0; }
p{ margin:0; text-wrap:pretty; }
ul,ol{ margin:0; padding:0; list-style:none; }
img,svg,video{ display:block; max-width:100%; }
button{ font:inherit; color:inherit; background:none; border:0; padding:0; cursor:pointer; }
figure{ margin:0; }
:focus-visible{ outline:2px solid var(--focus-ring); outline-offset:3px; }
::selection{ background:var(--gold-200); color:var(--navy-950); }
.skip-link{ position:absolute; left:16px; top:-60px; z-index:100; background:var(--navy-900); color:#fff; padding:10px 16px; font-family:var(--font-ui); font-size:13px; letter-spacing:.06em; text-transform:uppercase; border-radius:var(--radius-sm); }
.skip-link:focus{ top:16px; color:#fff; }
.on-dark, .on-dark h1, .on-dark h2, .on-dark h3, .on-dark h4{ color:var(--text-on-inverse); }
.on-dark p{ color:var(--text-on-inverse-muted); }
.on-dark a{ color:var(--accent-on-dark); }

/* ---------- 3. Layout ---------- */
.wrap{ max-width:var(--container-max); margin:0 auto; padding:0 var(--container-pad); }
.wrap--narrow{ max-width:calc(var(--container-narrow) + 2 * var(--container-pad)); }
.section{ padding:var(--section-y) 0; position:relative; }
.section--compact{ padding:var(--section-y-compact) 0; }
.section--tight{ padding:var(--space-8) 0; }
.bg-page{ background:var(--surface-page); } .bg-muted{ background:var(--surface-muted); } .bg-band{ background:var(--surface-band); }
.bg-navy{ background:var(--navy-900); } .bg-navy-950{ background:var(--navy-950); } .bg-forest{ background:var(--forest-900); } .bg-forest-800{ background:var(--forest-800); }
.grid{ display:grid; gap:var(--grid-gap); }
.g2{ grid-template-columns:repeat(2,minmax(0,1fr)); } .g3{ grid-template-columns:repeat(3,minmax(0,1fr)); } .g4{ grid-template-columns:repeat(4,minmax(0,1fr)); } .g5{ grid-template-columns:repeat(5,minmax(0,1fr)); } .g6{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.g2--wide{ grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); }
.g2--gap-lg{ gap:var(--space-9); }
.gap-sm{ gap:var(--space-4); }
.align-end{ align-items:end; } .align-center{ align-items:center; }
.mb-8{ margin-bottom:var(--space-8); } .mb-6{ margin-bottom:var(--space-6); } .mb-5{ margin-bottom:var(--space-5); } .mt-6{ margin-top:var(--space-6); } .mt-8{ margin-top:var(--space-8); }
.stack{ display:flex; flex-direction:column; gap:var(--space-5); }
.stack--tight{ gap:var(--space-4); }
.center{ text-align:center; }
.narrow{ max-width:var(--container-narrow); margin-left:auto; margin-right:auto; }
.prose > * + *{ margin-top:var(--space-4); }
.prose p a, .legal p a, .faq__inner p a:not(.alink){ text-decoration:underline; text-underline-offset:3px; text-decoration-color:var(--gold-500); }
.prose h2{ font-size:var(--text-2xl); margin-top:var(--space-7); }
.lede{ font-size:var(--text-lg); line-height:1.55; color:var(--text-body); max-width:52ch; }
.lede--dark{ color:var(--text-on-inverse-muted); }
.body-lg{ font-size:var(--text-lg); line-height:1.6; }
.muted{ color:var(--text-muted); }
.small{ font-size:var(--text-sm); }
.tiny{ font-family:var(--font-ui); font-size:var(--text-xs); letter-spacing:.06em; }
.caps{ font-family:var(--font-ui); font-size:12px; font-weight:500; letter-spacing:.1em; text-transform:uppercase; }
.serif-italic{ font-family:var(--font-display); font-style:italic; }
.h-md{ font-size:var(--text-2xl); } .h-lg{ font-size:var(--text-3xl); }
.rule-top{ border-top:1px solid var(--navy-800); }
.hr{ border:0; border-top:var(--rule); margin:0; }
.hr--dark{ border-top-color:var(--border-on-inverse); }
em{ font-style:italic; }

/* ---------- 4. Motion primitives ---------- */
@keyframes pefSpin{ to{ transform:rotate(360deg); } }
@keyframes pefSpinFrom{ from{ transform:rotate(-24deg);} to{ transform:rotate(336deg);} }
@keyframes pefSpinBack{ from{ transform:rotate(-24deg);} to{ transform:rotate(-384deg);} }
@keyframes pefFlow{ to{ stroke-dashoffset:-200; } }
@keyframes pefDraw{ to{ stroke-dashoffset:0; } }
@keyframes pefKen{ from{ transform:scale(1); } to{ transform:scale(1.08); } }
@keyframes pefPulse{ 0%{ box-shadow:0 0 0 0 rgba(195,154,69,.55);} 70%{ box-shadow:0 0 0 8px rgba(195,154,69,0);} 100%{ box-shadow:0 0 0 0 rgba(195,154,69,0);} }
@keyframes pefBubble{ 0%{ transform:translateY(0); opacity:0;} 15%{ opacity:.9;} 90%{ opacity:.6;} 100%{ transform:translateY(-140px); opacity:0;} }
@keyframes pefSway{ 0%,100%{ transform:rotate(calc(var(--sway,2deg) * -1)); } 50%{ transform:rotate(var(--sway,2deg)); } }
@keyframes pefFishA{ 0%,100%{ transform:translate(190px,205px);} 50%{ transform:translate(196px,209px);} }
@keyframes pefFishB{ 0%,100%{ transform:translate(160px,150px);} 50%{ transform:translate(176px,144px);} }
@keyframes pefLeaf{ from{ transform:scale(0); } to{ transform:scale(1); } }
@keyframes pefFadeUp{ from{ opacity:0; transform:translateY(18px);} to{ opacity:1; transform:none;} }

.js [data-reveal]{ opacity:0; transform:translateY(18px); transition:opacity var(--dur-slow) var(--ease-out), transform 700ms var(--ease-out); transition-delay:var(--d,0ms); }
.js [data-reveal].is-in{ opacity:1; transform:none; }
.js .rule-draw{ transform:scaleX(0); transform-origin:left; transition:transform 900ms var(--ease-out); }
.js .rule-draw.is-in{ transform:scaleX(1); }

/* ---------- 5. Nav ---------- */
.nav{ position:fixed; top:0; left:0; right:0; z-index:50; height:var(--nav-height); display:flex; align-items:center; background:transparent; border-bottom:1px solid transparent; transition:background var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out), backdrop-filter var(--dur-base) var(--ease-out); }
.nav.is-solid{ background:rgba(251,249,244,.92); -webkit-backdrop-filter:var(--blur-glass); backdrop-filter:var(--blur-glass); border-bottom-color:var(--stone-300); }
.nav__inner{ width:100%; display:flex; align-items:center; gap:var(--space-6); }
.nav__logo{ position:relative; display:block; height:42px; width:auto; aspect-ratio:1400/260; flex:none; }
.nav__logo img{ position:absolute; inset:0; height:42px; width:auto; transition:opacity var(--dur-base) var(--ease-out); }
@media (max-width:600px){ .nav__logo, .nav__logo img{ height:36px; } }
.nav__logo-dark{ opacity:0; }
.nav.is-solid .nav__logo-light{ opacity:0; } .nav.is-solid .nav__logo-dark{ opacity:1; }
.nav.is-menu-open .nav__logo-light{ opacity:1; } .nav.is-menu-open .nav__logo-dark{ opacity:0; }
.nav__menu-wrap{ margin-left:auto; margin-right:var(--space-4); }
.nav__menu{ display:flex; gap:var(--space-5); align-items:center; }
.nav__item{ position:relative; }
.nav__link{ display:inline-flex; align-items:center; gap:6px; font-family:var(--font-ui); font-size:13px; font-weight:500; letter-spacing:.06em; text-transform:uppercase; color:rgba(255,255,255,.88); padding:6px 0; border-bottom:1px solid transparent; white-space:nowrap; transition:color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out); }
.nav__link:hover, .nav__item.is-open > .nav__link{ color:#fff; border-bottom-color:var(--gold-500); }
.nav__link.is-active{ border-bottom-color:var(--gold-500); }
.nav.is-solid .nav__link{ color:var(--navy-900); }
.nav.is-solid .nav__link:hover, .nav.is-solid .nav__item.is-open > .nav__link{ color:var(--navy-900); }
.nav__chev{ transition:transform var(--dur-fast) var(--ease-out); opacity:.8; }
.nav__item.is-open .nav__chev{ transform:rotate(180deg); }
.nav__dropdown{ position:absolute; top:calc(100% + 10px); left:-20px; min-width:260px; background:var(--ivory-50); border:1px solid var(--stone-300); border-top:2px solid var(--gold-500); box-shadow:var(--shadow-float); padding:8px 0; opacity:0; visibility:hidden; transform:translateY(8px); transition:opacity var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out), visibility 0s linear var(--dur-base); }
.nav__dropdown::before{ content:""; position:absolute; left:0; right:0; top:-12px; height:12px; }
.nav__item.is-open .nav__dropdown{ opacity:1; visibility:visible; transform:none; transition-delay:0s; }
.nav__dropdown a{ display:block; padding:11px 22px; font-family:var(--font-ui); font-size:14px; letter-spacing:.01em; color:var(--navy-900); border-left:2px solid transparent; transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out); }
.nav__dropdown a:hover, .nav__dropdown a:focus-visible{ background:var(--ivory-100); color:var(--ember-500); border-left-color:var(--gold-500); outline:none; }
.nav__dropdown a.is-active{ color:var(--navy-800); border-left-color:var(--gold-500); font-weight:500; }
.nav__cta{ margin-left:0; flex:none; }
.nav:not(.is-solid) .nav__cta{ background:transparent; color:var(--text-on-inverse); border-color:var(--border-on-inverse); }
.nav:not(.is-solid) .nav__cta:hover{ background:rgba(255,255,255,.08); border-color:#fff; }
.nav__burger{ display:none; width:44px; height:44px; flex-direction:column; justify-content:center; align-items:center; gap:5px; margin-left:auto; border-radius:var(--radius-sm); }
.nav__burger span{ display:block; width:22px; height:1.5px; background:#fff; transition:transform var(--dur-base) var(--ease-out), opacity var(--dur-base) var(--ease-out); }
.nav.is-solid:not(.is-menu-open) .nav__burger span{ background:var(--navy-900); }
.nav__burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(6.5px) rotate(45deg); }
.nav__burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav__burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-6.5px) rotate(-45deg); }
/* Mobile panel */
.mnav{ position:fixed; inset:0; top:0; background:var(--navy-900); z-index:-1; opacity:0; visibility:hidden; transition:opacity var(--dur-base) var(--ease-out), visibility 0s linear var(--dur-base); overflow-y:auto; padding-top:var(--nav-height); -webkit-overflow-scrolling:touch; }
.mnav.is-open{ opacity:1; visibility:visible; transition-delay:0s; }
.nav.is-menu-open{ background:var(--navy-900); border-bottom-color:var(--border-on-inverse); -webkit-backdrop-filter:none; backdrop-filter:none; }
.nav.is-menu-open .nav__cta{ display:none; }
.mnav__inner{ padding-top:var(--space-6); padding-bottom:var(--space-8); }
.mnav__group{ border-top:1px solid var(--border-on-inverse); padding:var(--space-5) 0; opacity:0; transform:translateY(12px); transition:opacity 400ms var(--ease-out), transform 400ms var(--ease-out); }
.mnav.is-open .mnav__group{ opacity:1; transform:none; }
.mnav.is-open .mnav__group:nth-child(1){ transition-delay:60ms; } .mnav.is-open .mnav__group:nth-child(2){ transition-delay:120ms; } .mnav.is-open .mnav__group:nth-child(3){ transition-delay:180ms; } .mnav.is-open .mnav__group:nth-child(4){ transition-delay:240ms; } .mnav.is-open .mnav__group:nth-child(5){ transition-delay:300ms; } .mnav.is-open .mnav__cta{ transition-delay:360ms; }
.mnav__heading{ display:block; font-family:var(--font-display); font-size:var(--text-2xl); color:#fff; line-height:1.1; }
a.mnav__heading:hover{ color:var(--gold-400); }
.mnav__group ul{ display:flex; flex-wrap:wrap; gap:var(--space-3) var(--space-5); margin-top:var(--space-3); }
.mnav__group li a{ font-family:var(--font-ui); font-size:13px; letter-spacing:.06em; text-transform:uppercase; color:rgba(255,255,255,.8); padding:6px 0; border-bottom:1px solid transparent; }
.mnav__group li a:hover, .mnav__group li a[aria-current]{ color:#fff; border-bottom-color:var(--gold-500); }
.mnav__cta{ margin-top:var(--space-6); opacity:0; transition:opacity 400ms var(--ease-out); }
.mnav.is-open .mnav__cta{ opacity:1; }
.mnav__tag{ margin-top:var(--space-6); font-family:var(--font-display); font-style:italic; font-size:var(--text-lg); color:var(--gold-400); }
@media (max-width:1100px){
  .nav__inner .nav__menu-wrap, .nav__inner .nav__cta{ display:none; }
  .nav__inner .nav__burger{ display:flex; }
}

/* ---------- 6. Components ---------- */
/* Eyebrow */
.eyebrow{ display:flex; align-items:center; gap:14px; font-family:var(--font-ui); font-size:var(--text-xs); font-weight:var(--eyebrow-weight); letter-spacing:var(--eyebrow-tracking); text-transform:uppercase; color:var(--accent-text); }
.eyebrow::before{ content:""; width:28px; height:1px; background:var(--accent); flex:none; }
.eyebrow--norule::before{ display:none; }
.eyebrow--dark{ color:var(--accent-on-dark); }
.eyebrow--dark::before{ background:currentColor; }
.eyebrow--center{ justify-content:center; }

/* Section header */
.sh{ display:flex; flex-direction:column; gap:var(--space-4); align-items:flex-start; text-align:left; }
.sh--center{ align-items:center; text-align:center; max-width:var(--container-narrow); margin-left:auto; margin-right:auto; }
.sh__title{ font-size:var(--text-3xl); max-width:20ch; text-wrap:balance; }
.sh--md .sh__title{ font-size:var(--text-2xl); } .sh--xl .sh__title{ font-size:var(--text-4xl); }
.sh__title em{ color:var(--green-500); }
.sh--dark .sh__title{ color:var(--text-on-inverse); } .sh--dark .sh__title em{ color:var(--gold-400); }
.sh__lede{ font-size:var(--text-lg); line-height:1.5; color:var(--text-body); max-width:58ch; }
.sh--dark .sh__lede{ color:var(--text-on-inverse-muted); }
@media (max-width:600px){ .sh__title{ font-size:var(--text-2xl);} .sh--xl .sh__title{ font-size:var(--text-3xl);} }

/* Buttons */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:10px; font-family:var(--font-ui); font-weight:500; letter-spacing:.04em; text-transform:uppercase; border:1px solid transparent; cursor:pointer; transition:all var(--dur-base) var(--ease-out); text-decoration:none; white-space:nowrap; border-radius:var(--radius-sm); padding:15px 28px; font-size:.8125rem; line-height:1; }
.btn--sm{ padding:10px 18px; font-size:.75rem; } .btn--lg{ padding:19px 36px; font-size:.875rem; }
.btn--primary{ background:var(--brand-primary); color:var(--text-on-inverse); border-color:var(--brand-primary); }
.btn--primary.btn--dark{ background:var(--accent-on-dark); color:var(--navy-950); border-color:var(--accent-on-dark); }
.btn--accent{ background:var(--accent-strong); color:var(--navy-950); border-color:var(--accent-strong); }
.btn--secondary{ background:transparent; color:var(--brand-primary); border-color:var(--border-strong); }
.btn--secondary.btn--dark{ color:var(--text-on-inverse); border-color:var(--border-on-inverse); }
.btn--ghost{ background:transparent; color:var(--brand-primary); border-color:transparent; }
.btn--ghost.btn--dark{ color:var(--text-on-inverse); }
.btn:hover{ filter:brightness(1.08); transform:var(--hover-lift); color:inherit; }
.btn--primary:hover{ color:var(--text-on-inverse); } .btn--primary.btn--dark:hover{ color:var(--navy-950); } .btn--accent:hover{ color:var(--navy-950); }
.btn--secondary:hover{ background:var(--brand-primary); color:var(--text-on-inverse); }
.btn--secondary.btn--dark:hover{ background:rgba(255,255,255,.08); color:#fff; border-color:#fff; }
.btn--ghost:hover{ text-decoration:underline; text-underline-offset:6px; transform:none; filter:none; }
.btn:active{ transform:var(--press-scale); filter:brightness(.95); }
.btn[disabled]{ opacity:.45; cursor:not-allowed; }
.actions{ display:flex; gap:var(--space-3); flex-wrap:wrap; }
.actions--center{ justify-content:center; }

/* Arrow link */
.alink{ display:inline-flex; align-items:center; gap:10px; font-family:var(--font-ui); font-weight:500; font-size:.9375rem; color:var(--link); border-bottom:1px solid transparent; padding-bottom:2px; transition:all var(--dur-fast) var(--ease-out); }
.alink__arrow{ display:inline-block; transition:transform var(--dur-fast) var(--ease-out); }
.alink:hover{ color:var(--link-hover); border-bottom-color:currentColor; }
.alink:hover .alink__arrow{ transform:translateX(4px); }
.alink--dark{ color:var(--accent-on-dark); } .alink--dark:hover{ color:var(--text-on-inverse); }
.links{ display:flex; gap:var(--space-6); flex-wrap:wrap; }

/* Stat card */
.stat{ padding:var(--space-6) var(--space-6) var(--space-5); background:var(--surface-raised); border-top:2px solid var(--accent); border-radius:0 0 var(--radius-md) var(--radius-md); box-shadow:var(--shadow-card); display:flex; flex-direction:column; gap:var(--space-4); min-height:220px; }
.stat__figure{ font-family:var(--font-display); font-weight:var(--display-weight); font-size:var(--text-stat); line-height:.95; letter-spacing:var(--display-tracking); color:var(--text-primary); font-variant-numeric:lining-nums tabular-nums; }
.stat__figure .num{ font-variant-numeric:tabular-nums; }
.stat__text{ font-size:var(--text-base); line-height:var(--leading-body); color:var(--text-body); flex:1; }
.stat__source{ font-family:var(--font-ui); font-size:var(--text-xs); letter-spacing:.08em; text-transform:uppercase; color:var(--text-muted); padding-top:var(--space-3); border-top:1px solid var(--border-subtle); }
.stat--dark{ background:var(--surface-inverse-2); border-top-color:var(--accent-on-dark); } .stat--dark .stat__figure{ color:var(--text-on-inverse);} .stat--dark .stat__text,.stat--dark .stat__source{ color:var(--text-on-inverse-muted);} .stat--dark .stat__source{ border-top-color:var(--border-on-inverse);}
@media (max-width:600px){ .stat__figure{ font-size:3.5rem; } }

/* Tile */
.tile{ display:flex; flex-direction:column; gap:var(--space-4); padding:var(--space-6); background:var(--surface-raised); border:1px solid var(--border-subtle); border-radius:var(--radius-md); color:inherit; min-height:200px; transition:background var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out); }
.tile:hover{ background:var(--surface-muted); transform:var(--hover-lift); color:inherit; }
.tile__icon{ color:var(--accent); display:inline-flex; width:28px; height:28px; }
.tile__body{ margin-top:auto; }
.tile__title{ font-family:var(--font-display); font-weight:var(--display-weight); font-size:var(--text-xl); line-height:1.15; letter-spacing:var(--display-tracking); color:var(--text-primary); margin-bottom:6px; }
.tile__line{ font-size:var(--text-sm); line-height:1.5; color:var(--text-muted); }
.tile__arrow{ align-self:flex-end; color:var(--accent); transition:transform var(--dur-fast) var(--ease-out); }
.tile:hover .tile__arrow{ transform:translateX(4px); }
.tile--compact{ padding:var(--space-5); gap:var(--space-2); min-height:0; } .tile--compact .tile__title{ font-size:var(--text-lg); }
.tile--dark{ background:var(--surface-inverse-2); border-color:var(--border-on-inverse); } .tile--dark:hover{ background:var(--brand-primary);} .tile--dark .tile__icon,.tile--dark .tile__arrow{ color:var(--accent-on-dark);} .tile--dark .tile__title{ color:var(--text-on-inverse);} .tile--dark .tile__line{ color:var(--text-on-inverse-muted);}
.tile--navy{ background:rgba(255,255,255,.04); border-color:var(--border-on-inverse); } .tile--navy:hover{ background:rgba(255,255,255,.08); } .tile--navy .tile__icon,.tile--navy .tile__arrow{ color:var(--accent-on-dark);} .tile--navy .tile__title{ color:var(--text-on-inverse);} .tile--navy .tile__line{ color:var(--text-on-inverse-muted);}

/* Fields */
.field{ display:flex; flex-direction:column; gap:6px; font-family:var(--font-ui); }
.field__label{ font-size:var(--text-xs); letter-spacing:.1em; text-transform:uppercase; color:var(--text-muted); }
.field input,.field select,.field textarea{ font-family:var(--font-body); font-size:var(--text-base); padding:15px 18px; background:var(--surface-raised); color:var(--text-primary); border:1px solid var(--border-subtle); border-radius:var(--radius-sm); outline:none; transition:border-color var(--dur-fast) var(--ease-out); min-width:0; width:100%; }
.field input:focus,.field select:focus,.field textarea:focus{ border-color:var(--border-strong); }
.field textarea{ min-height:150px; resize:vertical; }
.field select{ appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%230B2247' stroke-width='1.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 16px center; padding-right:44px; }
.field .is-invalid{ border-color:var(--ember-500); }
.field--dark .field__label{ color:var(--text-on-inverse-muted); }
.field--dark input{ background:rgba(255,255,255,.06); color:var(--text-on-inverse); border-color:var(--border-on-inverse); }
.field--dark input::placeholder{ color:rgba(255,255,255,.5); }
.field--dark input:focus{ border-color:var(--accent-on-dark); }
.form__success{ font-family:var(--font-display); font-style:italic; font-size:var(--text-xl); color:var(--gold-400); outline:none; }
.form__success:not([hidden]){ animation:pefFadeUp var(--dur-slow) var(--ease-out); }
.form__error{ font-family:var(--font-ui); font-size:var(--text-sm); color:var(--ember-300); }
.cform .form__error{ color:var(--ember-600); }
.hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

/* Media / placeholder */
.media{ position:relative; overflow:hidden; background:var(--stone-200); border-radius:var(--radius-sm); }
.media__frame{ position:relative; aspect-ratio:var(--ratio,4/3); overflow:hidden; }
.media__frame img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform 900ms var(--ease-out); filter:saturate(var(--grade-sat)) sepia(var(--grade-sepia)) contrast(var(--grade-contrast)) brightness(var(--grade-bright)); }
.media--parallax .media__frame img{ transform:scale(1.12); will-change:transform; }
.media--zoom:hover .media__frame img{ transform:scale(1.04); }
/* the finish: ::before lifts the blacks toward navy (matte print), ::after lays fine grain over everything */
.media__frame::before, .media__frame::after, .ringed::before, .ringed::after, .phero__bg::before, .phero__bg::after, .imagine__art::before, .imagine__art::after, .hero__scrim::after{ content:""; position:absolute; inset:0; pointer-events:none; z-index:1; }
.media__frame::before, .ringed::before, .phero__bg::before, .imagine__art::before{ background:var(--navy-900); mix-blend-mode:lighten; opacity:var(--grade-matte); }
.media__frame::after, .ringed::after, .phero__bg::after, .imagine__art::after, .hero__scrim::after{ background:var(--grain) 0 0/280px 280px repeat; mix-blend-mode:soft-light; opacity:var(--grade-grain); }
/* on navy bands the photo also shows the band through it, replacing the old flat tint overlay */
.media--tint .media__frame{ background:var(--navy-900); }
.media--tint .media__frame img{ opacity:.82; --grade-sat:.65; --grade-matte:.7; }
.media--soft .media__frame img{ opacity:.35; --grade-sat:.7; }
/* illustrations and graphics: shown as drawn, no photo grade or grain */
.media--art .media__frame img{ filter:none; }
.media--art .media__frame::before, .media--art .media__frame::after{ display:none; }
.media__caption{ margin-top:var(--space-3); font-family:var(--font-ui); font-size:var(--text-xs); letter-spacing:.08em; text-transform:uppercase; color:var(--text-muted); }
.on-dark .media__caption{ color:var(--text-on-inverse-muted); }
.media__label{ position:absolute; top:12px; right:12px; font-family:var(--font-ui); font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.75); background:rgba(7,21,40,.45); border:1px solid rgba(255,255,255,.25); padding:5px 8px; -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); }
.ph{ position:relative; aspect-ratio:var(--ratio,4/3); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; text-align:center; background:var(--ivory-100); border:1px dashed var(--stone-300); border-radius:var(--radius-sm); color:var(--text-muted); padding:var(--space-5); }
.ph__mark{ display:inline-grid; place-items:center; width:44px; height:44px; border:1px solid currentColor; border-radius:50%; opacity:.6; }
.ph__label{ font-family:var(--font-ui); font-size:11px; letter-spacing:.18em; text-transform:uppercase; max-width:28ch; }
.ph__note{ font-family:var(--font-ui); font-size:11px; letter-spacing:.06em; opacity:.8; max-width:36ch; }
.ph--dark{ background:rgba(255,255,255,.04); border-color:rgba(255,255,255,.3); color:rgba(255,255,255,.7); }

/* Ringed portrait */
.ringed{ position:relative; width:min(100%,var(--size,460px)); aspect-ratio:1; margin:0 auto; }
.ringed img{ width:100%; height:100%; object-fit:cover; border-radius:50%; animation:pefKen 40s var(--ease-in-out) infinite alternate; filter:saturate(var(--grade-sat)) sepia(var(--grade-sepia)) contrast(var(--grade-contrast)) brightness(var(--grade-bright)); }
.ringed::before, .ringed::after{ border-radius:50%; }
.ringed__r1, .ringed__r2{ z-index:2; }
.ringed__r1{ position:absolute; inset:-22px; border-radius:50%; border:3px solid var(--gold-500); border-color:var(--gold-500) transparent transparent var(--gold-500); transform:rotate(-24deg); pointer-events:none; will-change:transform; }
.ringed__r2{ position:absolute; inset:-40px; border-radius:50%; border:1px solid var(--navy-500); border-color:transparent var(--navy-500) var(--navy-500) transparent; transform:rotate(-24deg); opacity:.6; pointer-events:none; will-change:transform; }
@media (max-width:600px){ .ringed{ width:min(100% - 72px, var(--size,460px)); } .ringed__r1{ inset:-16px; } .ringed__r2{ inset:-30px; } }

/* Status badge */
.badge{ display:inline-flex; align-items:center; gap:8px; font-family:var(--font-ui); font-size:11px; font-weight:500; letter-spacing:.12em; text-transform:uppercase; padding:6px 10px; border:1px solid var(--stone-300); border-radius:var(--radius-sm); color:var(--text-primary); background:var(--surface-raised); white-space:nowrap; }
.badge__dot{ width:8px; height:8px; border-radius:50%; background:var(--ink-300); }
.badge--planned .badge__dot{ background:var(--navy-300); }
.badge--development .badge__dot, .badge--progress .badge__dot{ background:var(--gold-500); animation:pefPulse 2.4s ease-out infinite; }
.badge--operating .badge__dot{ background:var(--green-500); }
.badge--tbc{ color:var(--text-muted); }
.on-dark .badge, .phero .badge{ background:rgba(255,255,255,.06); border-color:var(--border-on-inverse); color:var(--text-on-inverse); }

/* Chips (lane / side colours) */
.chip{ display:inline-block; width:12px; height:12px; border-radius:50%; background:var(--ink-300); vertical-align:middle; flex:none; }
.chip--earth, .chip--foundation, .chip--charitable{ background:var(--green-500); }
.chip--health, .chip--public, .chip--capital{ background:var(--navy-500); }
.chip--private, .chip--chardet, .chip--sisters{ background:var(--gold-500); }
.chip--communities{ background:var(--green-400); }
.legend{ display:flex; gap:var(--space-6); flex-wrap:wrap; font-family:var(--font-ui); font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--text-muted); }
.legend span{ display:inline-flex; align-items:center; gap:8px; }
.legend--dark{ color:var(--text-on-inverse-muted); }

/* Chardet mark */
.mark{ display:flex; align-items:center; gap:12px; font-family:var(--font-ui); font-size:var(--text-xs); letter-spacing:.1em; text-transform:uppercase; color:var(--text-muted); }
.mark__rule{ width:20px; height:1px; background:var(--gold-500); flex:none; }
.mark--dark{ color:var(--text-on-inverse-muted); }

/* Rows (table-like) */
.rows{ border-top:1px solid var(--navy-800); --cols:minmax(0,1fr) minmax(0,1.4fr); }
.rows--3{ --cols:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr); }
.rows--3w{ --cols:minmax(0,1.1fr) minmax(0,1fr) minmax(0,1fr); }
.rows--4{ --cols:minmax(0,1fr) minmax(0,1.3fr) minmax(0,1.3fr) minmax(0,.7fr); }
.rows__head, .rows__row{ display:grid; grid-template-columns:var(--cols); gap:var(--space-6); }
.rows__head{ padding:var(--space-3) 0; font-family:var(--font-ui); font-size:var(--text-xs); letter-spacing:.12em; text-transform:uppercase; color:var(--text-muted); border-bottom:var(--rule); }
.rows__row{ padding:var(--space-5) 0; border-bottom:var(--rule); align-items:start; }
.rows__cell{ min-width:0; }
.rows__cell:first-child{ font-family:var(--font-display); font-size:var(--text-xl); line-height:1.15; color:var(--text-primary); }
.rows__cell .caps{ display:block; margin-bottom:6px; color:var(--text-muted); }
.rows__lead{ display:flex; align-items:center; gap:12px; }
.rows__lead .icon{ color:var(--accent); flex:none; }
.rows__sub{ display:block; font-family:var(--font-body); font-size:var(--text-sm); color:var(--text-muted); margin-top:4px; }
.rows--dark{ border-top-color:rgba(255,255,255,.5); } .rows--dark .rows__row{ border-bottom-color:var(--border-on-inverse);} .rows--dark .rows__cell:first-child{ color:var(--text-on-inverse);} .rows--dark .rows__cell{ color:var(--text-on-inverse-muted);} .rows--dark .rows__head{ color:var(--text-on-inverse-muted); border-bottom-color:var(--border-on-inverse);} .rows--dark .rows__sub{ color:var(--text-on-inverse-muted);}
@media (max-width:760px){ .rows__head{ display:none; } .rows__row{ grid-template-columns:1fr; gap:var(--space-2); } .rows--4 .rows__row{ gap:var(--space-2);} .rows__cell .caps{ margin-top:var(--space-2);} }

/* Page hero (sub-pages) */
.phero{ position:relative; background:var(--navy-900); color:var(--text-on-inverse); padding-top:calc(var(--nav-height) + var(--space-9)); padding-bottom:var(--space-9); overflow:hidden; }
.phero__grid{ display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:var(--space-9); align-items:center; }
.phero__text{ display:flex; flex-direction:column; gap:var(--space-5); align-items:flex-start; }
.phero__title{ font-size:clamp(38px,4.8vw,68px); color:var(--text-on-inverse); max-width:16ch; text-wrap:balance; }
.phero__title em{ color:var(--gold-400); }
.phero__sub{ font-size:var(--text-lg); line-height:1.55; color:var(--text-on-inverse-muted); max-width:52ch; }
.phero__body{ font-size:var(--text-base); color:var(--text-on-inverse-muted); max-width:60ch; }
.phero__media{ position:relative; }
.phero__media::after{ content:""; position:absolute; inset:18px -18px -18px 18px; border:1px solid var(--gold-500); opacity:.45; pointer-events:none; z-index:0; }
.phero__media .media{ position:relative; z-index:1; }
.phero--full{ min-height:72vh; display:flex; align-items:flex-end; padding-top:calc(var(--nav-height) + var(--space-10)); }
.phero__bg{ position:absolute; inset:0; overflow:hidden; }
.phero__bg img{ width:100%; height:100%; object-fit:cover; filter:saturate(.6) sepia(var(--grade-sepia)) contrast(var(--grade-contrast)); transform:scale(1.12); }
.phero__bg::before{ opacity:.7; }
.phero__scrim{ position:absolute; inset:0; background:linear-gradient(180deg,rgba(7,21,40,.7) 0%,rgba(7,21,40,.45) 45%,rgba(7,21,40,.9) 100%); }
.phero__content{ position:relative; width:100%; }
.phero--full .phero__text{ max-width:760px; }
.phero--text{ padding-bottom:var(--space-8); }
.phero--text::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background:var(--border-on-inverse); }
@media (max-width:900px){ .phero__grid{ grid-template-columns:1fr; gap:var(--space-7); } .phero__media{ max-width:520px; } .phero--full{ min-height:60vh; } }

/* Next step band */
.next{ background:var(--surface-band); }
.next__inner{ display:flex; flex-direction:column; align-items:center; text-align:center; gap:var(--space-5); max-width:820px; }
.next__title{ font-size:var(--text-3xl); text-wrap:balance; }
.next__title em{ color:var(--green-500); }
.next__body{ font-size:var(--text-lg); line-height:1.55; max-width:56ch; }
.next__actions{ display:flex; gap:var(--space-3); flex-wrap:wrap; justify-content:center; margin-top:var(--space-2); }
.next--dark{ background:var(--navy-950); } .next--dark .next__title{ color:var(--text-on-inverse);} .next--dark .next__title em{ color:var(--gold-400);} .next--dark .next__body{ color:var(--text-on-inverse-muted);}
@media (max-width:600px){ .next__title{ font-size:var(--text-2xl); } }

/* Statement band (mission-style) */
.statement{ max-width:var(--container-narrow); margin:0 auto; text-align:center; display:flex; flex-direction:column; align-items:center; gap:var(--space-6); }
.statement__text{ font-family:var(--font-display); font-weight:500; font-size:clamp(28px,3vw,42px); line-height:1.2; color:var(--navy-900); text-wrap:balance; }
.statement__text em{ color:var(--green-500); }
.statement--dark .statement__text{ color:var(--text-on-inverse); } .statement--dark .statement__text em{ color:var(--gold-400); }
.statement__body{ font-size:var(--text-lg); line-height:1.55; max-width:56ch; }
.statement--dark .statement__body{ color:var(--text-on-inverse-muted); }

/* Signature line */
.signature{ font-family:var(--font-display); font-style:italic; font-size:var(--text-2xl); color:var(--green-500); }
.signature--gold{ color:var(--gold-400); }

/* Columns under a rule (How we work) */
.cols{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; border-top:1px solid var(--navy-800); }
.cols--4{ grid-template-columns:repeat(4,minmax(0,1fr)); }
.col{ padding:var(--space-6) var(--space-6) var(--space-6) 0; margin-right:var(--space-6); border-right:var(--rule); display:flex; flex-direction:column; gap:var(--space-4); }
.col:last-child{ border-right:0; margin-right:0; }
.col__icon{ color:var(--gold-500); display:inline-flex; }
.col h3{ font-size:var(--text-2xl); }
.cols--dark{ border-top-color:rgba(255,255,255,.5); } .cols--dark .col{ border-right-color:var(--border-on-inverse);} .cols--dark .col h3{ color:var(--text-on-inverse);} .cols--dark .col p{ color:var(--text-on-inverse-muted);} .cols--dark .col__icon{ color:var(--gold-400);}
@media (max-width:900px){ .cols,.cols--4{ grid-template-columns:1fr; } .col{ border-right:0; margin-right:0; padding-right:0; border-bottom:var(--rule); } .col:last-child{ border-bottom:0; } .cols--dark .col{ border-bottom-color:var(--border-on-inverse);} }

/* Icon list (values, commitments, accountability) */
.ilist{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-6) var(--space-8); }
.ilist--3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.ilist__item{ display:grid; grid-template-columns:44px 1fr; gap:var(--space-4); align-items:start; padding-top:var(--space-5); border-top:var(--rule); }
.ilist__icon{ color:var(--gold-500); display:inline-flex; padding-top:4px; }
.ilist__n{ font-family:var(--font-display); font-size:var(--text-2xl); line-height:1; color:var(--gold-500); }
.ilist h3{ font-size:var(--text-xl); margin-bottom:6px; }
.ilist p{ color:var(--text-body); }
.ilist--dark .ilist__item{ border-top-color:var(--border-on-inverse);} .ilist--dark h3{ color:var(--text-on-inverse);} .ilist--dark p{ color:var(--text-on-inverse-muted);} .ilist--dark .ilist__icon,.ilist--dark .ilist__n{ color:var(--gold-400);}
@media (max-width:760px){ .ilist,.ilist--3{ grid-template-columns:1fr; } }

/* Check list */
.checks{ display:flex; flex-direction:column; gap:10px; }
.checks li{ display:flex; gap:12px; align-items:flex-start; font-size:var(--text-base); }
.checks .icon{ color:var(--green-500); flex:none; margin-top:4px; }
.on-dark .checks .icon{ color:var(--gold-400); }

/* Numbered list (How the parts connect) */
.nlist{ display:flex; flex-direction:column; border-top:1px solid var(--navy-800); }
.nlist li{ display:grid; grid-template-columns:56px 1fr; gap:var(--space-4); padding:var(--space-5) 0; border-bottom:var(--rule); font-size:var(--text-lg); line-height:1.5; }
.nlist__n{ font-family:var(--font-display); font-size:var(--text-2xl); line-height:1; color:var(--gold-500); padding-top:2px; }

/* Tags */
.tags{ display:flex; gap:8px; flex-wrap:wrap; }
.tag{ display:inline-flex; align-items:center; gap:6px; font-family:var(--font-ui); font-size:12px; letter-spacing:.06em; text-transform:uppercase; padding:7px 12px; border:1px solid var(--stone-300); border-radius:var(--radius-pill); color:var(--navy-900); background:var(--surface-raised); transition:all var(--dur-fast) var(--ease-out); }
a.tag:hover{ border-color:var(--gold-500); color:var(--ember-500); transform:var(--hover-lift); }
.tag .icon{ color:var(--gold-500); }
.tag--muted{ color:var(--text-muted); background:transparent; }

/* ---------- 7. Home page ---------- */
.hero{ position:relative; min-height:92vh; display:flex; align-items:flex-end; color:#fff; overflow:hidden; background:var(--navy-900); }
.hero__video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; animation:pefKen 40s var(--ease-in-out) infinite alternate; background:var(--navy-900) url("../img/hero-poster.jpg") center/cover no-repeat; }
.hero__scrim{ position:absolute; inset:0; background:linear-gradient(180deg,rgba(7,21,40,.55) 0%,rgba(7,21,40,.25) 40%,rgba(7,21,40,.85) 100%); }
.hero__content{ position:relative; width:100%; padding-bottom:var(--space-9); padding-top:calc(var(--nav-height) + var(--space-9)); }
.hero__title{ font-size:clamp(44px,6.2vw,92px); color:#fff; max-width:14ch; margin:var(--space-5) 0 var(--space-6); text-wrap:balance; }
.hero__title em{ color:var(--gold-400); }
.hero__row{ display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:var(--grid-gap); align-items:end; }
.hero__sub{ font-size:var(--text-lg); line-height:1.55; color:rgba(255,255,255,.86); max-width:52ch; }
.hero__actions{ display:flex; gap:var(--space-3); justify-content:flex-end; flex-wrap:wrap; }
/* line mask reveal */
.reveal-line{ display:block; overflow:hidden; padding-bottom:.08em; margin-bottom:-.08em; }
.reveal-line > span{ display:block; transform:translateY(110%); transition:transform 1000ms var(--ease-out); transition-delay:var(--d,0ms); }
.is-loaded .reveal-line > span{ transform:none; }
.hero__eyebrow, .hero__row{ opacity:0; transform:translateY(14px); transition:opacity 800ms var(--ease-out), transform 800ms var(--ease-out); }
.hero__eyebrow{ transition-delay:200ms; } .hero__row{ transition-delay:900ms; }
.is-loaded .hero__eyebrow, .is-loaded .hero__row{ opacity:1; transform:none; }
html:not(.js) .reveal-line > span, html:not(.js) .hero__eyebrow, html:not(.js) .hero__row{ transform:none; opacity:1; }
@media (max-width:900px){ .hero{ min-height:88vh; } .hero__row{ grid-template-columns:1fr; } .hero__actions{ justify-content:flex-start; } }

.why__head{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:var(--grid-gap); align-items:end; margin-bottom:var(--space-8); }
.why__foot{ display:flex; justify-content:space-between; align-items:center; gap:var(--space-6); margin-top:var(--space-8); padding-top:var(--space-6); border-top:var(--rule); flex-wrap:wrap; }
@media (max-width:900px){ .why__head{ grid-template-columns:1fr; } }

/* Sovereign Loop diagram */
.loop-section .loop-grid{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:var(--space-9); align-items:center; }
.loop-copy{ display:flex; flex-direction:column; gap:var(--space-5); }
.loop-copy p{ color:var(--text-on-inverse-muted); }
.loop-copy .proof{ font-family:var(--font-display); font-style:italic; font-size:var(--text-xl); color:var(--gold-400); padding-top:var(--space-4); border-top:1px solid rgba(255,255,255,.15); }
.loop{ position:relative; width:min(100%,600px); aspect-ratio:1; margin:0 auto; --side-color:var(--gold-400); }
.loop[data-side="earth"]{ --side-color:var(--green-400); } .loop[data-side="health"]{ --side-color:var(--sky-300); }
.loop__dash{ position:absolute; inset:10%; border-radius:50%; border:1px dashed rgba(255,255,255,.25); animation:pefSpin 90s linear infinite; }
.loop__ring{ position:absolute; inset:18%; border-radius:50%; background:conic-gradient(from 334.3deg, var(--green-500) 0 57.1%, var(--navy-500) 57.1% 100%); -webkit-mask:radial-gradient(circle, transparent 66%, #000 67%); mask:radial-gradient(circle, transparent 66%, #000 67%); opacity:.9; }
.loop__orbit{ position:absolute; inset:18%; border-radius:50%; transition:transform 1100ms var(--ease-in-out); will-change:transform; }
.loop__pulse{ position:absolute; top:-1.5%; left:50%; width:3.5%; height:3.5%; margin-left:-1.75%; border-radius:50%; background:var(--gold-400); box-shadow:0 0 12px 3px rgba(214,179,106,.55); }
.loop__center{ position:absolute; inset:32%; border-radius:50%; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.12); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:20px; transition:border-color var(--dur-base) var(--ease-out); }
.loop__title{ font-family:var(--font-display); font-size:clamp(18px,1.6vw,26px); color:#fff; line-height:1.15; transition:opacity 180ms var(--ease-out), transform 180ms var(--ease-out); text-wrap:balance; }
.loop__side{ font-family:var(--font-ui); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-400); margin-top:8px; transition:opacity 180ms var(--ease-out); }
.loop.is-switching .loop__title{ opacity:0; transform:translateY(4px); } .loop.is-switching .loop__side{ opacity:0; }
.loop__node{ position:absolute; width:64px; height:64px; border-radius:50%; background:var(--navy-900); border:2px solid var(--green-500); color:#fff; display:grid; place-items:center; cursor:pointer; transition:background var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out); box-shadow:var(--shadow-card); transform:translate(-50%,-50%); --col:var(--green-500); }
.loop__node--health{ border-color:var(--navy-500); --col:var(--navy-500); }
.loop__node:hover, .loop__node:focus-visible, .loop__node.is-active{ background:var(--col); transform:translate(-50%,-50%) scale(1.12); box-shadow:0 0 0 6px rgba(255,255,255,.06), var(--shadow-card); }
.loop__node-inner{ display:grid; place-items:center; line-height:0; }
.loop--lg{ width:min(100%,640px); }
@media (max-width:900px){ .loop-section .loop-grid{ grid-template-columns:1fr; gap:var(--space-8); } .loop__node{ width:52px; height:52px; } .loop__node .icon{ width:22px; height:22px; } }
/* Loop detail panel (Our Approach) */
.loop-detail{ display:flex; flex-direction:column; gap:var(--space-4); padding:var(--space-6); background:rgba(255,255,255,.04); border:1px solid var(--border-on-inverse); border-top:2px solid var(--gold-400); min-height:360px; transition:opacity 180ms var(--ease-out); }
.loop-detail.is-switching{ opacity:.35; }
.loop-detail__side{ display:flex; align-items:center; gap:10px; font-family:var(--font-ui); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-400); }
.loop-detail__name{ font-size:var(--text-3xl); color:#fff; }
.loop-detail__promise{ font-family:var(--font-display); font-style:italic; font-size:var(--text-xl); color:var(--gold-400); }
.loop-detail__roles{ display:grid; grid-template-columns:1fr 1fr; gap:var(--space-5); margin:var(--space-2) 0 0; padding-top:var(--space-4); border-top:1px solid var(--border-on-inverse); }
.loop-detail__roles dt{ display:flex; align-items:center; gap:8px; font-family:var(--font-ui); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--text-on-inverse-muted); margin-bottom:8px; }
.loop-detail__roles dd{ margin:0; color:#fff; font-size:var(--text-sm); line-height:1.55; }
.loop-detail__nav{ margin-top:auto; display:flex; align-items:center; gap:var(--space-4); padding-top:var(--space-4); }
.loop-detail__btn{ width:40px; height:40px; border:1px solid var(--border-on-inverse); border-radius:50%; color:#fff; display:grid; place-items:center; transition:all var(--dur-fast) var(--ease-out); }
.loop-detail__btn:hover{ border-color:var(--gold-400); color:var(--gold-400); }
.loop-detail__count{ font-family:var(--font-ui); font-size:12px; letter-spacing:.12em; color:var(--text-on-inverse-muted); }
@media (max-width:600px){ .loop-detail__roles{ grid-template-columns:1fr; } .loop-detail__name{ font-size:var(--text-2xl);} }

/* Initiatives (home) */
.initiatives__foot{ display:flex; justify-content:space-between; gap:var(--space-6); margin-top:var(--space-6); flex-wrap:wrap; align-items:center; }
@media (max-width:1100px){ .g5{ grid-template-columns:repeat(2,minmax(0,1fr)); } .g6{ grid-template-columns:repeat(2,minmax(0,1fr)); } .g4{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:900px){ .g2,.g2--wide,.g3{ grid-template-columns:1fr; } .g2--gap-lg{ gap:var(--space-8); } }
@media (max-width:600px){ .g5,.g6,.g4{ grid-template-columns:1fr; } }

/* Partnerships band (home) */
.pband{ background:var(--surface-band); }
.pband__grid{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:var(--space-9); align-items:center; }
@media (max-width:900px){ .pband__grid{ grid-template-columns:1fr; gap:var(--space-7);} }

/* Region card — brand rule: a card that pairs an image with a text block below sets the text block on navy (navy-900, not navy-950). */
.rcard{ display:flex; flex-direction:column; background:var(--navy-900); border:1px solid var(--navy-900); border-radius:var(--radius-md); overflow:hidden; color:var(--text-on-inverse-muted); transition:transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), background var(--dur-base) var(--ease-out); }
a.rcard:hover{ transform:var(--hover-lift); box-shadow:var(--shadow-float); color:var(--text-on-inverse-muted); background:var(--navy-800); border-color:var(--navy-800); }
.rcard .media, .rcard .ph{ border-radius:0; }
.rcard .ph{ background:rgba(255,255,255,.04); border-color:rgba(255,255,255,.3); color:rgba(255,255,255,.7); border-width:0 0 1px 0; }
.rcard__body{ padding:var(--space-5) var(--space-6) var(--space-6); display:flex; flex-direction:column; gap:var(--space-3); flex:1; }
.rcard__top{ display:flex; justify-content:space-between; align-items:center; gap:var(--space-3); flex-wrap:wrap; }
.rcard__pin{ display:inline-flex; align-items:center; gap:6px; font-family:var(--font-ui); font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--text-on-inverse-muted); }
.rcard__pin .icon{ color:var(--gold-400); }
.rcard .badge{ background:rgba(255,255,255,.06); border-color:var(--border-on-inverse); color:var(--text-on-inverse); }
.rcard__title{ font-size:var(--text-2xl); color:var(--text-on-inverse); }
.rcard__line{ color:var(--text-on-inverse-muted); }
.rcard__link{ margin-top:auto; padding-top:var(--space-3); }
.rcard .alink{ color:var(--accent-on-dark); }
a.rcard:hover .alink{ color:var(--text-on-inverse); border-bottom-color:currentColor; }
a.rcard:hover .alink__arrow{ transform:translateX(4px); }

/* Imagine (home) */
.imagine{ background:var(--forest-900); color:#fff; }
.imagine__grid{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:0; }
.imagine__art{ position:relative; min-height:520px; background:var(--forest-800); display:grid; place-items:center; overflow:hidden; }
.imagine__art img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.92; filter:saturate(.72) sepia(var(--grade-sepia)) contrast(var(--grade-contrast)); transform:scale(1.12); }
.imagine__art::before{ opacity:.65; }
.imagine__label{ position:relative; z-index:2; text-align:center; font-family:var(--font-ui); font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.7); border:1px solid rgba(255,255,255,.3); padding:14px 20px; }
.imagine__label small{ display:block; font-size:10px; letter-spacing:.1em; text-transform:none; opacity:.8; margin-top:4px; }
.imagine__copy{ padding:var(--section-y) var(--container-pad); display:flex; flex-direction:column; gap:var(--space-5); justify-content:center; max-width:640px; }
.imagine__copy .small-print{ font-size:var(--text-xs); font-family:var(--font-ui); letter-spacing:.06em; color:rgba(255,255,255,.5); }
@media (max-width:900px){ .imagine__grid{ grid-template-columns:1fr; } .imagine__art{ min-height:360px; } }

/* Split media section (text + image) */
.split{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:var(--space-9); align-items:center; }
.split--flip > :first-child{ order:2; }
.split__text{ display:flex; flex-direction:column; gap:var(--space-5); align-items:flex-start; }
.split__text p{ max-width:56ch; }
.split--tight{ gap:var(--space-8); }
@media (max-width:900px){ .split{ grid-template-columns:1fr; gap:var(--space-7); } .split--flip > :first-child{ order:0; } }

/* Join (home) */
.join__actions{ display:flex; gap:var(--space-3); justify-content:center; margin-top:var(--space-8); flex-wrap:wrap; }

/* Newsletter */
.newsletter{ background:var(--navy-900); }
.newsletter__grid{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:var(--space-9); align-items:center; }
.newsletter__title{ color:#fff; font-size:var(--text-3xl); margin-bottom:var(--space-4); }
.newsletter__body{ color:var(--text-on-inverse-muted); font-size:var(--text-lg); }
.newsletter__form{ display:flex; flex-direction:column; gap:var(--space-3); }
.newsletter__row{ display:flex; gap:var(--space-2); }
.newsletter__field{ flex:1; }
.newsletter__small{ font-size:var(--text-xs); font-family:var(--font-ui); letter-spacing:.06em; color:rgba(255,255,255,.5); }
@media (max-width:900px){ .newsletter__grid{ grid-template-columns:1fr; gap:var(--space-6); } }
@media (max-width:520px){ .newsletter__row{ flex-direction:column; } }

/* Footer */
.footer{ background:var(--navy-950); color:var(--text-on-inverse-muted); padding:var(--space-8) 0 var(--space-6); font-size:var(--text-sm); }
.footer__top{ display:flex; justify-content:space-between; align-items:flex-start; gap:var(--space-6); flex-wrap:wrap; padding-bottom:var(--space-6); border-bottom:1px solid var(--border-on-inverse); }
.footer__brand{ display:flex; flex-direction:column; gap:10px; }
.footer__brand img{ height:46px; width:auto; }
.footer__tagline{ font-family:var(--font-display); font-style:italic; font-size:var(--text-lg); color:var(--gold-400); }
.footer__nav{ display:flex; gap:var(--space-3) var(--space-5); flex-wrap:wrap; font-family:var(--font-ui); font-size:12px; letter-spacing:.08em; text-transform:uppercase; max-width:640px; justify-content:flex-end; }
.footer__nav a{ color:rgba(255,255,255,.8); border-bottom:1px solid transparent; padding:6px 0; } .footer__nav a:hover{ color:#fff; border-bottom-color:var(--gold-500); }
.footer__relationship{ margin-top:var(--space-5); max-width:80ch; }
.footer__disclaimer{ margin-top:var(--space-3); max-width:90ch; font-size:var(--text-xs); opacity:.75; }
.footer__legal{ display:flex; gap:var(--space-4); margin-top:var(--space-4); font-size:var(--text-xs); flex-wrap:wrap; align-items:center; }
.footer__legal a{ color:rgba(255,255,255,.7); padding:6px 0; display:inline-block; } .footer__legal a:hover{ color:#fff; }
@media (max-width:900px){ .footer__nav{ justify-content:flex-start; } }

/* ---------- 8. Sub-page components ---------- */
/* Infinity loop art — hairline drawing */
.infinity{ width:100%; max-width:560px; margin:0 auto; color:var(--text-on-inverse); }
.infinity--light{ color:var(--navy-900); }
.infinity svg{ width:100%; height:auto; overflow:visible; }
.infinity__base{ fill:none; stroke:currentColor; stroke-opacity:.16; stroke-width:1; }
.infinity__lobe{ fill:none; stroke-width:1.5; stroke-linecap:round; stroke-dasharray:100; stroke-dashoffset:100; }
.infinity__lobe--earth{ stroke:var(--green-400); }
.infinity__lobe--health{ stroke:var(--sky-300); stroke-opacity:.85; }
.infinity--light .infinity__lobe--earth{ stroke:var(--green-500); }
.infinity--light .infinity__lobe--health{ stroke:var(--navy-500); stroke-opacity:1; }
.infinity.is-in .infinity__lobe--earth{ animation:pefDraw 2200ms var(--ease-in-out) 200ms forwards; }
.infinity.is-in .infinity__lobe--health{ animation:pefDraw 2200ms var(--ease-in-out) 900ms forwards; }
.infinity__spark{ fill:none; stroke:var(--gold-400); stroke-width:2; stroke-linecap:round; stroke-dasharray:6 94; stroke-dashoffset:100; opacity:0; transition:opacity 1200ms var(--ease-out) 2800ms; }
.infinity.is-in .infinity__spark{ opacity:1; animation:pefSpark 16s linear infinite; }
.infinity__ring{ fill:none; stroke:var(--gold-500); stroke-width:1; opacity:.55; }
.infinity__dot{ fill:var(--gold-400); }
.infinity--light .infinity__dot{ fill:var(--gold-500); }
.infinity__labels{ display:flex; justify-content:space-between; padding:0 6%; margin-top:10px; font-family:var(--font-ui); font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--text-on-inverse-muted); }
.infinity__labels span{ flex:1; text-align:center; }
.infinity--light .infinity__labels{ color:var(--text-muted); }
html:not(.js) .infinity__lobe{ stroke-dashoffset:0; }
@keyframes pefSpark{ from{ stroke-dashoffset:100; } to{ stroke-dashoffset:0; } }
.infinity--hero{ max-width:none; }
@media (min-width:901px){ .phero--loop .phero__grid{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); } .infinity--hero{ transform:scale(1.18); transform-origin:center; } }
@media (max-width:900px){ .infinity--hero{ max-width:420px; margin-top:var(--space-4); } }

/* Fish tank */
.tank{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-6); }
.tank__panel{ background:var(--surface-raised); border:1px solid var(--border-subtle); border-radius:var(--radius-md); padding:var(--space-5); }
.tank__panel--a .tank__art{ filter:saturate(.55); }
.tank__photo .media{ border-radius:var(--radius-sm); }
.tank__panel--photo{ padding:0; background:var(--navy-900); border-color:var(--navy-900); overflow:hidden; }
.tank__panel--photo .media{ border-radius:0; }
.tank__panel--photo figcaption{ margin-top:0; padding:var(--space-4) var(--space-5) var(--space-5); border-top:1px solid var(--border-on-inverse); }
.tank__panel--photo .tank__name{ color:var(--text-on-inverse); }
.tank__panel--photo .tank__caption{ color:var(--text-on-inverse-muted); }
.tank__art svg{ width:100%; height:auto; }
.tank__panel figcaption{ display:flex; flex-direction:column; gap:4px; padding-top:var(--space-4); border-top:var(--rule); margin-top:var(--space-3); }
.tank__name{ font-family:var(--font-display); font-size:var(--text-xl); color:var(--text-primary); }
.tank__caption{ font-family:var(--font-ui); font-size:var(--text-xs); letter-spacing:.08em; text-transform:uppercase; color:var(--text-muted); }
.tank__bubble{ animation:pefBubble var(--dur,7s) linear var(--delay,0s) infinite; }
.tank__plant{ transform-box:fill-box; transform-origin:50% 100%; animation:pefSway 5s var(--ease-in-out) infinite; }
.tank__panel--a .tank__fish{ animation:pefFishA 8s var(--ease-in-out) infinite; }
.tank__panel--b .tank__fish{ animation:pefFishB 6s var(--ease-in-out) infinite; }
.tank__surface{ transform-box:fill-box; transform-origin:center; animation:pefSway 6s var(--ease-in-out) infinite; --sway:.6deg; }
@media (max-width:760px){ .tank{ grid-template-columns:1fr; } }

/* Orbit (roles graphic) */
.orbit{ position:relative; width:min(100%,520px); aspect-ratio:1; margin:0 auto; }
.orbit__ring{ position:absolute; inset:10%; border-radius:50%; border:1px dashed rgba(255,255,255,.3); animation:pefSpin 120s linear infinite; }
.orbit__lines{ position:absolute; inset:0; width:100%; height:100%; }
.orbit__lines line{ stroke:rgba(255,255,255,.22); stroke-width:.4; vector-effect:non-scaling-stroke; stroke-dasharray:100; stroke-dashoffset:100; animation:pefDraw 1.4s var(--ease-out) 300ms forwards; }
.orbit__centre::before{ content:""; width:28px; height:1px; background:var(--gold-500); }
.orbit__centre{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:38%; aspect-ratio:1; border-radius:50%; background:var(--navy-950); border:1px solid rgba(255,255,255,.2); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; text-align:center; padding:12px; font-family:var(--font-display); font-size:clamp(15px,1.5vw,20px); color:#fff; line-height:1.15; box-shadow:0 0 0 10px rgba(255,255,255,.03); }
.orbit__node{ position:absolute; --disc:64px; transform:translate(-50%, calc(var(--disc) / -2)); display:flex; flex-direction:column; align-items:center; gap:8px; width:140px; text-align:center; opacity:0; animation:pefFadeIn 900ms var(--ease-out) forwards; animation-delay:calc(400ms + var(--i,0) * 150ms); }
@keyframes pefFadeIn{ to{ opacity:1; } }
html:not(.js) .orbit__node{ opacity:1; }
.orbit__disc{ width:var(--disc); height:var(--disc); border-radius:50%; background:var(--navy-900); border:2px solid var(--gold-500); color:#fff; display:grid; place-items:center; box-shadow:var(--shadow-card); transition:transform var(--dur-base) var(--ease-out), background var(--dur-base) var(--ease-out); }
.orbit__node--sisters .orbit__disc{ border-color:var(--green-500); background:linear-gradient(90deg,var(--green-500) 0 50%,var(--navy-500) 50% 100%); }
.orbit__node--chardet .orbit__disc{ border-color:var(--gold-500); }
.orbit__node--public .orbit__disc{ border-color:var(--navy-500); }
.orbit__node--communities .orbit__disc{ border-color:var(--green-400); }
.orbit__node:hover .orbit__disc{ transform:scale(1.1); }
.orbit__label{ font-family:var(--font-ui); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--text-on-inverse-muted); line-height:1.35; }
@media (max-width:600px){ .orbit{ width:min(100% - 16px, 520px); } .orbit__node{ width:84px; --disc:48px; } .orbit__disc .icon{ width:20px; height:20px; } .orbit__label{ font-size:10px; } .orbit__centre{ font-size:13px; } }

/* Lanes graphic */
.lanes{ width:100%; }
.lanes svg{ width:100%; height:auto; }
.lanes__text{ font-family:var(--font-ui); font-size:16px; letter-spacing:.12em; text-transform:uppercase; }
.lanes__merge{ font-family:var(--font-display); font-size:24px; }
.lanes__flow{ stroke-dasharray:14 86; animation:pefFlow 6s linear var(--delay,0s) infinite; }
.lanes--compact{ max-width:900px; margin:0 auto; }
@media (max-width:760px){ .lanes{ display:none; } }

/* FAQ */
.faq{ border-top:1px solid var(--navy-800); }
.faq__item{ border-bottom:var(--rule); }
.faq__h{ margin:0; font:inherit; }
.faq__q{ width:100%; display:flex; justify-content:space-between; align-items:center; gap:var(--space-5); text-align:left; padding:var(--space-5) 0; font-family:var(--font-display); font-size:var(--text-xl); line-height:1.2; color:var(--text-primary); transition:color var(--dur-fast) var(--ease-out); }
.faq__q:hover{ color:var(--ember-500); }
.faq__icon{ flex:none; width:36px; height:36px; border:1px solid var(--stone-300); border-radius:50%; display:grid; place-items:center; color:var(--gold-500); transition:transform var(--dur-base) var(--ease-out), background var(--dur-base) var(--ease-out); }
.faq__item.is-open .faq__icon{ transform:rotate(45deg); background:var(--gold-100); }
.faq__a{ display:grid; grid-template-rows:0fr; transition:grid-template-rows 320ms var(--ease-out); }
.faq__item.is-open .faq__a{ grid-template-rows:1fr; }
.faq__inner{ overflow:hidden; }
.faq__inner p{ padding-bottom:var(--space-5); max-width:70ch; color:var(--text-body); }

/* Heading that stays in view beside a long column — desktop only; on stacked layouts it must scroll normally */
@media (min-width:901px){ .sticky-head{ position:sticky; top:120px; } }

/* Vertical timeline */
.timeline{ position:relative; display:flex; flex-direction:column; --progress:0%; padding-left:0; }
.timeline__track{ position:absolute; left:39px; top:24px; bottom:24px; width:2px; background:var(--stone-300); }
.timeline__progress{ position:absolute; left:0; top:0; width:100%; height:var(--progress); background:var(--gold-500); transition:height 200ms linear; }
.step{ position:relative; display:grid; grid-template-columns:80px 1fr; gap:var(--space-6); padding:var(--space-6) 0; }
.step__n{ display:flex; align-items:flex-start; justify-content:center; }
.step__n span{ width:80px; height:80px; border-radius:50%; background:var(--surface-page); border:1px solid var(--stone-300); display:grid; place-items:center; font-family:var(--font-display); font-size:var(--text-2xl); color:var(--navy-900); transition:border-color var(--dur-base) var(--ease-out), background var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out); }
.step.is-reached .step__n span{ border-color:var(--gold-500); background:var(--navy-900); color:var(--gold-400); }
.step__body{ display:flex; flex-direction:column; gap:var(--space-3); padding-top:var(--space-4); max-width:60ch; }
.step__icon{ color:var(--gold-500); }
.step__title{ font-size:var(--text-2xl); }
.step__text{ font-size:var(--text-lg); line-height:1.5; }
@media (max-width:600px){ .timeline__track{ left:27px; } .step{ grid-template-columns:56px 1fr; gap:var(--space-4); } .step__n span{ width:56px; height:56px; font-size:var(--text-xl); } }

/* Phases (region timeline) */
.phases{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--space-6); position:relative; }
.phase{ position:relative; padding-top:var(--space-5); border-top:2px solid var(--stone-300); display:flex; flex-direction:column; gap:var(--space-3); }
.phase--progress{ border-top-color:var(--gold-500); }
.phase__head{ display:flex; justify-content:space-between; align-items:center; gap:var(--space-3); flex-wrap:wrap; }
.phase__n{ font-family:var(--font-display); font-size:var(--text-3xl); line-height:1; color:var(--gold-500); }
.phase__title{ font-size:var(--text-2xl); }
.phase__text{ color:var(--text-body); }
@media (max-width:760px){ .phases{ grid-template-columns:1fr; } }

/* Initiative panels */
.ipanel{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:var(--space-9); align-items:center; padding:var(--space-9) 0; border-top:var(--rule); scroll-margin-top:100px; }
.ipanel:first-of-type{ border-top:0; padding-top:0; }
.ipanel--flip .ipanel__media{ order:2; }
.ipanel__text{ display:flex; flex-direction:column; gap:var(--space-4); align-items:flex-start; }
.ipanel__icon{ color:var(--gold-500); }
.ipanel__title{ font-size:var(--text-3xl); }
.ipanel__line{ font-family:var(--font-display); font-style:italic; font-size:var(--text-xl); color:var(--earth-text); }
.ipanel__label{ font-family:var(--font-ui); font-size:var(--text-xs); letter-spacing:.14em; text-transform:uppercase; color:var(--text-muted); margin:var(--space-2) 0 var(--space-2); }
.ipanel__why{ display:flex; flex-direction:column; gap:8px; padding:var(--space-4) var(--space-5); background:var(--surface-raised); border-left:2px solid var(--gold-500); box-shadow:var(--shadow-card); }
.ipanel__why-label{ font-family:var(--font-ui); font-size:var(--text-xs); letter-spacing:.14em; text-transform:uppercase; color:var(--accent-text); }
.ipanel__why-source{ font-family:var(--font-ui); font-size:var(--text-xs); letter-spacing:.08em; text-transform:uppercase; color:var(--text-muted); }
.ipanel__note{ font-family:var(--font-ui); font-size:var(--text-xs); letter-spacing:.06em; color:var(--text-muted); }
@media (max-width:900px){ .ipanel{ grid-template-columns:1fr; gap:var(--space-6); padding:var(--space-8) 0; } .ipanel--flip .ipanel__media{ order:0; } .ipanel__title{ font-size:var(--text-2xl);} }

/* Pathway cards */
.pathway{ display:flex; flex-direction:column; gap:var(--space-3); padding:var(--space-6); background:var(--surface-raised); border:1px solid var(--border-subtle); border-radius:var(--radius-md); min-height:300px; transition:transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out); scroll-margin-top:100px; }
.pathway:hover{ transform:var(--hover-lift); box-shadow:var(--shadow-card); }
.pathway__icon{ color:var(--gold-500); }
.pathway__aud{ font-family:var(--font-ui); font-size:var(--text-xs); letter-spacing:.16em; text-transform:uppercase; color:var(--accent-text); margin-top:var(--space-2); }
.pathway__title{ font-size:var(--text-2xl); }
.pathway__copy{ font-size:var(--text-sm); color:var(--text-muted); line-height:1.55; flex:1; }
.pathway__btn{ margin-top:var(--space-2); align-self:flex-start; }

/* Article cards */
.article{ display:flex; flex-direction:column; gap:var(--space-3); color:inherit; }
.article__top{ display:flex; justify-content:space-between; align-items:center; gap:var(--space-3); margin-top:var(--space-2); }
.article__type{ font-family:var(--font-ui); font-size:var(--text-xs); letter-spacing:.16em; text-transform:uppercase; color:var(--accent-text); }
.article__title{ font-size:var(--text-xl); line-height:1.15; }
.article__summary{ font-size:var(--text-sm); color:var(--text-muted); line-height:1.55; }

/* Contact */
.contact__grid{ display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:var(--space-9); align-items:start; }
.contact__list{ border-top:1px solid var(--navy-800); }
.contact__row{ display:grid; grid-template-columns:44px 1fr auto; gap:var(--space-4); align-items:center; padding:var(--space-4) 0; border-bottom:var(--rule); }
.contact__row .icon{ color:var(--gold-500); }
.contact__inq{ font-family:var(--font-display); font-size:var(--text-xl); color:var(--text-primary); }
.contact__mail{ font-family:var(--font-ui); font-size:var(--text-sm); color:var(--text-muted); }
.contact__inv{ margin-top:var(--space-5); padding:var(--space-4) var(--space-5); background:var(--surface-raised); border-left:2px solid var(--gold-500); font-size:var(--text-sm); }
.contact__inv strong{ display:block; font-family:var(--font-display); font-weight:500; font-size:var(--text-lg); color:var(--text-primary); margin-bottom:4px; }
.cform{ display:flex; flex-direction:column; gap:var(--space-4); padding:var(--space-6); background:var(--surface-raised); border:1px solid var(--border-subtle); border-top:2px solid var(--gold-500); box-shadow:var(--shadow-card); scroll-margin-top:100px; }
.cform__row{ display:grid; grid-template-columns:1fr 1fr; gap:var(--space-4); }
.cform__note{ font-family:var(--font-ui); font-size:var(--text-xs); letter-spacing:.04em; color:var(--text-muted); }
.cform__note a{ color:inherit; text-decoration:underline; text-underline-offset:3px; text-decoration-color:var(--gold-500); display:inline-block; padding:.3em 0; margin:-.3em 0; }
.cform .form__success{ color:var(--green-500); }
@media (max-width:900px){ .contact__grid{ grid-template-columns:1fr; gap:var(--space-7); } }
@media (max-width:600px){ .cform__row{ grid-template-columns:1fr; } .contact__row{ grid-template-columns:44px 1fr; } .contact__mail{ grid-column:2; } }

/* Company cards (Partners) */
.company{ display:flex; flex-direction:column; gap:var(--space-4); padding:var(--space-6); background:var(--surface-raised); border:1px solid var(--border-subtle); border-top:2px solid var(--green-500); border-radius:0 0 var(--radius-md) var(--radius-md); box-shadow:var(--shadow-card); }
.company--health{ border-top-color:var(--navy-500); }
.company__side{ display:flex; align-items:center; gap:10px; font-family:var(--font-ui); font-size:var(--text-xs); letter-spacing:.14em; text-transform:uppercase; color:var(--text-muted); }
.company__name{ font-size:var(--text-3xl); }

.company__links{ display:flex; flex-direction:column; gap:var(--space-3); margin-top:auto; padding-top:var(--space-3); border-top:var(--rule); }

/* Disclosure strip */
.disclosure{ background:var(--surface-muted); border-top:var(--rule); border-bottom:var(--rule); padding:var(--space-6) 0; }
.disclosure p{ max-width:90ch; font-size:var(--text-sm); color:var(--text-muted); }
.disclosure p.disclosure__commitments{ font-size:var(--text-base); color:var(--text-primary); margin-bottom:var(--space-5); padding-bottom:var(--space-5); border-bottom:var(--rule); max-width:none; }
.disclosure__label{ font-family:var(--font-ui); font-size:var(--text-xs); letter-spacing:.14em; text-transform:uppercase; color:var(--accent-text); margin-bottom:8px; }

/* Milestones (consensus strip) */
.milestones{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--space-6); border-top:1px solid rgba(255,255,255,.4); }
.milestone{ padding-top:var(--space-5); display:flex; flex-direction:column; gap:8px; }
.milestone__year{ font-family:var(--font-display); font-size:var(--text-3xl); color:var(--gold-400); line-height:1; }
.milestone p{ color:var(--text-on-inverse-muted); font-size:var(--text-sm); }
@media (max-width:760px){ .milestones{ grid-template-columns:1fr; } }

/* Image pair with captions */
.pair{ display:grid; grid-template-columns:1fr 1fr; gap:var(--space-4); align-items:end; }
.pair > :nth-child(2){ margin-top:var(--space-8); }
@media (max-width:600px){ .pair{ grid-template-columns:1fr; } .pair > :nth-child(2){ margin-top:0; } }

/* Belief columns */
.beliefs{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; }
.belief{ padding:0 var(--space-6); border-left:1px solid var(--stone-300); display:flex; flex-direction:column; gap:var(--space-4); }
.belief:first-child{ padding-left:0; border-left:0; }
.belief__text{ font-family:var(--font-display); font-size:var(--text-xl); line-height:1.3; color:var(--navy-900); }
.belief--em .belief__text{ font-style:italic; color:var(--green-500); }
@media (max-width:900px){ .beliefs{ grid-template-columns:1fr; gap:var(--space-6); } .belief{ padding:0; border-left:0; border-top:var(--rule); padding-top:var(--space-5); } .belief:first-child{ border-top:0; padding-top:0; } }

/* Funding cards */
.fund{ display:flex; flex-direction:column; gap:var(--space-3); padding:var(--space-6); background:rgba(255,255,255,.04); border:1px solid var(--border-on-inverse); border-top:2px solid var(--green-500); }
.fund--capital{ border-top-color:var(--navy-500); }
.fund--plain{ border-top-color:var(--gold-400); }
.fund__closing{ margin-top:var(--space-6); padding-top:var(--space-5); border-top:1px solid var(--border-on-inverse); max-width:70ch; color:var(--text-on-inverse-muted); }
.fund__label{ display:flex; align-items:center; gap:10px; font-family:var(--font-ui); font-size:var(--text-xs); letter-spacing:.14em; text-transform:uppercase; color:var(--text-on-inverse-muted); }
.fund__title{ font-size:var(--text-xl); color:#fff; }
.fund p{ color:var(--text-on-inverse-muted); }

/* Steps in a row (What happens next) */
.srow{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--space-6); border-top:1px solid var(--navy-800); }
.srow__item{ padding-top:var(--space-5); display:flex; flex-direction:column; gap:var(--space-2); }
.srow__n{ font-family:var(--font-display); font-size:var(--text-4xl); line-height:1; color:var(--gold-500); }
.srow__title{ font-size:var(--text-xl); }
@media (max-width:760px){ .srow{ grid-template-columns:1fr; } }

/* Legal pages */
.phero__meta{ font-family:var(--font-ui); font-size:var(--text-xs); letter-spacing:.14em; text-transform:uppercase; color:var(--text-on-inverse-muted); }
.legal > * + *{ margin-top:var(--space-7); }
.legal h2{ font-size:var(--text-2xl); margin-top:0; margin-bottom:var(--space-3); }
.legal p + p{ margin-top:var(--space-3); }
.legal ul{ list-style:disc; padding-left:1.35em; margin-top:var(--space-3); display:flex; flex-direction:column; gap:8px; }
.legal ul + p{ margin-top:var(--space-3); }
.legal li::marker{ color:var(--gold-500); }
.legal-summary{ padding:var(--space-5) var(--space-6); background:var(--surface-raised); border-left:2px solid var(--gold-500); box-shadow:var(--shadow-card); }
.legal-summary__label{ font-family:var(--font-ui); font-size:var(--text-xs); letter-spacing:.14em; text-transform:uppercase; color:var(--accent-text); margin-bottom:var(--space-2); }
.legal-summary ul{ margin-top:var(--space-2); }

/* Utility: hidden */
[hidden]{ display:none !important; }

/* ---------- 9. Print ---------- */
@media print{ .media__frame::before,.media__frame::after,.ringed::before,.ringed::after,.phero__bg::before,.phero__bg::after,.imagine__art::before,.imagine__art::after,.hero__scrim::after{ display:none; } .nav,.mnav,.newsletter,.skip-link{ display:none !important; } .js [data-reveal]{ opacity:1; transform:none; } body{ background:#fff; } }

/* ---------- 10. Reduced motion ---------- */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
  .js [data-reveal]{ opacity:1; transform:none; }
  .reveal-line > span, .hero__eyebrow, .hero__row{ transform:none; opacity:1; }
  .media--parallax .media__frame img, .phero__bg img, .imagine__art img{ transform:none; }
  .infinity__lobe{ stroke-dashoffset:0; } .infinity__spark{ opacity:1; animation:none; } .orbit__lines line{ stroke-dashoffset:0; } .orbit__node{ opacity:1; }
}

/* ---------- Insights articles (templates/article.js): long-form reading in the narrow column ---------- */
.essay{ font-size:1.125rem; line-height:1.7; color:var(--text-body); }
.essay > * + *{ margin-top:var(--space-5); }
.essay strong{ font-weight:600; color:var(--navy-900); }
.essay h2{ font-size:var(--text-2xl); line-height:1.15; margin-top:var(--space-9); scroll-margin-top:calc(var(--nav-height) + var(--space-5)); }
.essay h2::before{ content:""; display:block; width:28px; height:1px; background:var(--accent); margin-bottom:var(--space-4); }
.essay h2 + *{ margin-top:var(--space-4); }
.essay ul{ list-style:disc; padding-left:1.35em; display:flex; flex-direction:column; gap:8px; }
.essay li::marker{ color:var(--gold-500); }
.essay__lead{ font-family:var(--font-display); font-weight:500; font-size:var(--text-xl); line-height:1.25; color:var(--navy-900); }
.essay__sig{ font-size:var(--text-2xl); line-height:1.25; margin-top:var(--space-6); text-wrap:balance; }
.keyline{ list-style:none; padding:0; border-top:1px solid var(--border-subtle); }
.keyline li{ display:grid; grid-template-columns:8.5rem minmax(0,1fr); gap:var(--space-5); align-items:baseline; padding:var(--space-4) 0; border-bottom:1px solid var(--border-subtle); }
.keyline__label{ font-family:var(--font-display); font-weight:500; font-size:var(--text-xl); line-height:1.2; color:var(--gold-600); font-variant-numeric:lining-nums; }
.keyline__text{ font-size:1rem; line-height:1.6; }
.asks{ border-left:2px solid var(--gold-500); padding-left:var(--space-5); display:flex; flex-direction:column; gap:var(--space-3); }
.asks p{ font-family:var(--font-display); font-style:italic; font-size:var(--text-xl); line-height:1.3; color:var(--navy-900); }
.essay__wide{ margin:var(--space-8) 0; }
.essay__closing{ margin-top:var(--space-9); padding-top:var(--space-8); border-top:1px solid var(--border-subtle); display:flex; flex-direction:column; align-items:center; gap:var(--space-3); text-align:center; }
.essay__closing .statement__text{ font-size:clamp(28px,3vw,40px); }
.essay__back{ margin-top:var(--space-8); text-align:center; }
.essay__closing .signature{ line-height:1.25; }
@media (min-width:1100px){ .essay__wide{ margin-left:-120px; margin-right:-120px; } }
@media (max-width:600px){ .essay{ font-size:1.0625rem; } .keyline li{ grid-template-columns:1fr; gap:4px; } .essay h2{ margin-top:var(--space-8); } }
/* Insights cards that open a full article */
.article__media{ display:block; color:inherit; }
.article__title a{ color:inherit; text-decoration:none; }
.article__title a:hover, .article__title a:focus-visible{ color:var(--link-hover); }
.article__cta{ white-space:nowrap; padding:9px 12px; } /* same height as the Coming soon badges, fits a 3-column card at 901px */

/* Mobile menu: single-link groups (Get Involved, Insights, Contact) show the current section like list links do */
a.mnav__heading[aria-current]{ color:var(--gold-400); text-decoration:underline; text-decoration-color:var(--gold-500); text-decoration-thickness:1px; text-underline-offset:6px; }
/* Insights articles: closing note, sources, subscripts */
.essay__note{ font-size:1rem; line-height:1.65; color:var(--text-muted); font-style:italic; padding-top:var(--space-5); border-top:1px solid var(--border-subtle); margin-top:var(--space-8); }
.essay__note a, .essay p a{ color:var(--link); text-decoration:underline; text-underline-offset:3px; text-decoration-color:var(--gold-500); padding-block:3px; }
.essay__sources{ margin-top:var(--space-8); padding-top:var(--space-5); border-top:1px solid var(--border-subtle); }
.essay__sources-label{ font-family:var(--font-ui); font-size:var(--text-xs); font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--accent-text); }
.essay__sources ul{ margin-top:var(--space-3); font-size:var(--text-sm); line-height:1.55; color:var(--text-muted); gap:6px; }
.essay sub{ font-size:.7em; line-height:0; vertical-align:-.25em; }
.phero__title--long{ font-size:clamp(32px,3.6vw,52px); max-width:22ch; } /* long article titles stay within three lines */
.essay > h2:first-child{ margin-top:0; } /* an article that opens with a heading sits right under the hero */
.essay ul.essay__list--long{ gap:var(--space-4); } /* paragraph-length bullets need air between them */
.essay ol.essay__ol{ list-style:decimal; padding-left:1.5em; display:flex; flex-direction:column; gap:var(--space-4); }
.essay__back .alink{ text-decoration:none; padding-block:0 2px; }
