/* ============================================================
   Founding Cohort page V2 - Remembrance Codex
   Rebuilt 2026-08-12: NAT COHORT SALE V1 copy (r3) reskinned with
   the framed-artwork visual system from the original inspire build
   (r1) - corner-bracket art, duet split layouts, chip-grid callouts
   overlaid on the wounded-field image, side-attached support panels,
   and abstract plate backgrounds behind the quiet scenes. Full-bleed
   photography is kept only for the three wide atmospheric moments
   that were full-bleed in BOTH prior versions: hero, the shared-field
   communion shot, and the finale.

   Scoped: every selector is .v2- prefixed or sits inside .v2-page.
   Cannot reach index.html or /cohort.

   Alignment is owned by ONE rule: .v2-scene centres text, .v2-wrap
   centres the column. Reading surfaces (prose, duet copy, FAQ, form)
   go left via their own class.
   ============================================================ */

html.is-embed,
html.is-embed body.v2-page {
  width: 100%;
  max-width: none;
  margin: 0 !important;
  padding: 0 !important;
  overflow-x: clip;
  background: #000919;
}

html { scroll-behavior: smooth; }

/* Fixed navigation should never obscure the beginning of a requested chapter. */
.v2-scene[id] { scroll-margin-top: 84px; }

body.v2-page,
body.v2-page main {
  width: 100%;
  max-width: none;
  min-width: 0;
}

.v2-page {
  --v2-night: #000919;
  --v2-deep: #050d24;
  --v2-ink: #020a1f;
  --v2-abyss: #00040e;

  --v2-mist: #f7f3e8;
  --v2-parchment: #f2ebdc;
  --v2-sand: #e6dcc6;

  --v2-gold: #d8b66a;
  --v2-gold-lift: #e6c87f;
  --v2-violet: #8533ff;
  --v2-violet-lift: #a05cff;
  --v2-periwinkle: #287bff;
  --v2-cyan: #00cfe8;
  --v2-green: #00c99a;
  --v2-ember: #c2571e;

  --v2-line: rgba(247, 243, 232, .14);
  --v2-line-soft: rgba(247, 243, 232, .07);
  --v2-gold-line: rgba(216, 182, 106, .32);
  --v2-dim: rgba(247, 243, 232, .68);
  --v2-dimmer: rgba(247, 243, 232, .5);

  --v2-display: "Marcellus", "Iowan Old Style", "Baskerville", "Times New Roman", serif;
  --v2-serif: "Iowan Old Style", "Baskerville", "Georgia", "Times New Roman", serif;
  --v2-gut: clamp(20px, 5vw, 60px);
  --v2-ease: cubic-bezier(.2, .7, .2, 1);

  /* semantic z scale: art < content < nav/rail < sticky < loader */
  --z-content: 2;
  --z-nav: 55;
  --z-sticky: 60;
}

/* ---------- scene shell ---------- */

.v2-scene {
  position: relative;
  isolation: isolate;
  min-height: 100svh;
  display: grid;
  /* minmax(0,1fr), not auto: an auto track takes its min-content floor
     from fixed-minimum inner grids (the 260-300px list columns), which
     overflows narrow viewports. A zero floor keeps every scene at
     container width. */
  grid-template-columns: minmax(0, 1fr);
  place-items: center;
  padding: clamp(70px, 12vh, 130px) var(--v2-gut);
  background: var(--v2-night);
  text-align: center;
  overflow: hidden;
}

.v2-scene.is-deep { background: var(--v2-deep); }
.v2-scene.is-ink { background: var(--v2-ink); }
.v2-scene.is-abyss { background: var(--v2-abyss); }
.v2-scene.is-auto { min-height: 0; }

/* A full-height iframe makes viewport units resolve against the iframe's
   document height, not the visitor's visible screen.  In the native
   GoHighLevel embed that turns every cinematic scene into a huge canvas and
   leaves the hero art cropped into a dark, soft-looking field.  Embedded
   scenes therefore use stable, responsive dimensions instead. */
html.is-embed .v2-scene { min-height: 760px; }
html.is-embed .v2-scene.is-auto { min-height: 0; }
html.is-embed .v2-scene.is-story { min-height: 820px; }

@media (max-width: 700px) {
  html.is-embed .v2-scene { min-height: 680px; }
  html.is-embed .v2-scene.is-story { min-height: 740px; }
}

/* story scenes: full-bleed art + overlaid reading column (hero,
   the shared-field communion shot, and the finale only) */
.v2-scene.is-story {
  min-height: 100svh;
  background: var(--v2-abyss);
  align-items: start;
  padding-top: clamp(90px, 14vh, 150px);
}

.v2-wrap {
  position: relative;
  z-index: var(--z-content);
  width: 100%;
  max-width: 1080px;
  margin-inline: auto;
}

.v2-wrap.is-tight { max-width: 760px; }
.v2-wrap.is-wide { max-width: 1240px; }

/* ---------- type ---------- */

.v2-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 10.5px;
  letter-spacing: .26em;
  text-transform: uppercase;
  color: var(--v2-gold);
  margin: 0 0 clamp(18px, 2.6vw, 28px);
}

.v2-eyebrow::before,
.v2-eyebrow::after {
  content: "";
  width: clamp(14px, 3vw, 30px);
  height: 1px;
  background: currentColor;
  opacity: .5;
}

.v2-eyebrow.is-left { display: flex; justify-content: flex-start; }
.v2-eyebrow.is-left::after { display: none; }
.v2-eyebrow.is-left::before { width: 22px; }

.v2-h {
  font-family: var(--v2-display);
  font-weight: 400;
  font-size: clamp(30px, 5vw, 58px);
  line-height: 1.14;
  letter-spacing: .004em;
  color: var(--v2-mist);
  margin: 0 0 clamp(18px, 2.6vw, 28px);
  text-wrap: balance;
}

.v2-h em { font-style: italic; color: var(--v2-gold); }
.v2-h.is-sm { font-size: clamp(25px, 3.4vw, 40px); }
.v2-h.is-hero { font-size: clamp(32px, 4.6vw, 58px); }
.v2-h.is-left { text-align: left; }

.v2-lead {
  font-size: clamp(16px, 1.5vw, 19px);
  line-height: 1.7;
  color: var(--v2-dim);
  max-width: 62ch;
  margin: 0 auto;
  text-wrap: pretty;
}

.v2-lead + .v2-lead { margin-top: 1.15em; }
.v2-lead strong { color: var(--v2-mist); font-weight: 400; }
.v2-lead.is-serif {
  font-family: var(--v2-serif);
  font-size: clamp(18px, 1.8vw, 23px);
  color: rgba(247, 243, 232, .84);
}

.v2-tag {
  font-size: 10.5px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--v2-dimmer);
  margin: 0 0 10px;
}

/* ---------- prose (long-form reading) ---------- */

.v2-prose {
  text-align: left;
  max-width: 58ch;
}

.v2-prose p {
  font-family: var(--v2-serif);
  font-size: clamp(15.5px, 1.35vw, 17.5px);
  line-height: 1.82;
  color: var(--v2-dim);
  margin: 0 0 1.15em;
  text-wrap: pretty;
}

.v2-prose p:last-child { margin-bottom: 0; }
.v2-prose strong { color: var(--v2-mist); font-weight: 400; }

.v2-prose-mark {
  color: var(--v2-parchment) !important;
  border-top: 1px solid var(--v2-line-soft);
  padding-top: 1.1em;
}

.v2-prose.is-center {
  margin-inline: auto;
  text-align: center;
}

.v2-prose.is-center .v2-prose-mark { border-top: 0; padding-top: 0; }

.v2-prose.is-lift p {
  font-size: clamp(16.5px, 1.5vw, 19.5px);
  color: rgba(247, 243, 232, .8);
}

.v2-inline-link {
  color: var(--v2-gold);
  border-bottom: 1px solid var(--v2-gold-line);
  transition: color .3s ease, border-color .3s ease;
}

.v2-inline-link:hover {
  color: var(--v2-gold-lift);
  border-color: var(--v2-gold);
}

/* ---------- reveal system ---------- */

/* Hidden initial states are gated on the .js root class (set by the
   loader's inline script). Without JavaScript nothing ever adds
   .is-in, so ungated opacity:0 would blank the whole page. */
.js [data-v2] {
  opacity: 0;
  transform: translateY(26px);
  transition:
    opacity .9s var(--v2-ease) var(--v2-d, 0ms),
    transform 1.05s var(--v2-ease) var(--v2-d, 0ms);
  will-change: opacity, transform;
}

.js [data-v2="scale"] { transform: scale(.94); }
.js [data-v2="left"] { transform: translateX(-32px); }
.js [data-v2="right"] { transform: translateX(32px); }
.js [data-v2="still"] { transform: none; }

[data-v2].is-in {
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  .js [data-v2] { opacity: 1; transform: none; transition: none; }
}

/* ambient.css hides [data-reveal] the same ungated way; neutralise it
   for no-JS visitors of this page */
html:not(.js) .v2-page [data-reveal] {
  opacity: 1;
  filter: none;
  transform: none;
}

/* ---------- parallax plate layer (abstract instruments) ---------- */

.v2-plate {
  position: absolute;
  inset: -12% 0;
  z-index: -2;
  pointer-events: none;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  mix-blend-mode: screen;
  opacity: .26;
  will-change: transform;
}

.v2-plate[data-plate="spiral-arc"] { background-image: url("/bg/spiral-arc.webp"); }
.v2-plate[data-plate="core-waveform"] { background-image: url("/bg/core-waveform.webp"); }
.v2-plate[data-plate="orbits-wide"] { background-image: url("/bg/orbits-wide.webp"); }
.v2-plate[data-plate="radiant-core"] { background-image: url("/bg/radiant-core.webp"); }
.v2-plate[data-plate="pulse"] { background-image: url("/bg/pulse.webp"); }
.v2-plate[data-plate="spiral-blue"] { background-image: url("/bg/spiral-blue.webp"); }
.v2-plate[data-plate="triple"] { background-image: url("/bg/triple.webp"); }
.v2-plate[data-plate="small-core"] { background-image: url("/bg/small-core.webp"); }

@media (width <= 900px) { .v2-plate { opacity: .2; } }

/* soft vignette so type never fights the plate */
.v2-scene::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: radial-gradient(120% 75% at 50% 50%, transparent 30%, rgba(0, 9, 25, .72) 100%);
}

/* ---------- full-bleed photo layer (hero / communion / finale only) ---------- */

.v2-photo {
  position: absolute;
  inset: 0;
  bottom: auto;
  height: min(170svh, 100%);
  z-index: -2;
  pointer-events: none;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(#000 68%, transparent 97%);
  mask-image: linear-gradient(#000 68%, transparent 97%);
}

.v2-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: var(--pos, 50%) 32%;
  /* --p is the section's scroll progress (-1 below, +1 above), set by
     cohort-v2.js; the art drifts against scroll and breathes slightly */
  transform: translate3d(0, calc(var(--p, 0) * -3.5%), 0) scale(1.08);
  will-change: transform;
}

.v2-hero .v2-photo,
.v2-finale .v2-photo {
  height: 100%;
  -webkit-mask-image: none;
  mask-image: none;
}

/* Responsive VSL frame. The approved film is hosted in Google Drive, so the
   iframe must fill the same 16:9 media shell used throughout this layout. */
.v2-film { width: min(840px, 100%); margin: clamp(28px, 4vw, 44px) auto 0; }
.v2-film-field { width: 100%; margin: 0; }
.v2-film-frame { position: relative; aspect-ratio: 16 / 9; overflow: hidden; border: 1px solid var(--v2-gold-line); border-radius: 4px; background: #00040e; box-shadow: 0 24px 64px -34px rgba(0, 0, 0, .94), 0 0 58px -28px rgba(133, 51, 255, .5); }
.v2-film video,
.v2-film iframe { display: block; width: 100%; height: 100%; border: 0; object-fit: cover; }
.v2-film-note { margin: 10px 0 0; color: var(--v2-dimmer); font-size: 10px; letter-spacing: .18em; text-transform: uppercase; }

@media (prefers-reduced-motion: reduce) {
  .v2-photo img { transform: none; }
}

.v2-scene.is-story::after {
  background:
    linear-gradient(180deg, rgba(0, 4, 14, .66) 0%, rgba(0, 4, 14, .2) 18%, rgba(0, 4, 14, .28) 60%, var(--v2-abyss) 96%);
}

.v2-scene.is-story.is-center::after {
  background:
    radial-gradient(74% 58% at 50% 34%, rgba(0, 4, 14, .58), transparent 78%),
    linear-gradient(180deg, rgba(0, 4, 14, .62) 0%, rgba(0, 4, 14, .22) 20%, rgba(0, 4, 14, .4) 62%, var(--v2-abyss) 96%);
}

/* the overlay reading column for full-bleed story scenes (threshold
   beats + the shared-field communion section) */
.v2-over {
  width: min(600px, 100%);
  text-align: left;
}

.v2-over.is-left { margin-right: auto; }
.v2-over.is-right { margin-left: auto; }

/* text-left: the figure holds the right of frame, the scrim protects
   the left where the reading column sits */
.v2-scene.is-story.is-text-left::after {
  background:
    linear-gradient(90deg, rgba(0, 4, 14, .88) 0%, rgba(0, 4, 14, .64) 30%, rgba(0, 4, 14, .14) 58%, transparent 76%),
    linear-gradient(180deg, rgba(0, 4, 14, .5) 0%, transparent 22%, transparent 68%, var(--v2-abyss) 97%);
}

/* ---------- threshold beats: full-bleed, brief, golden-portal family ---------- */
/* the "Take a breath" / "Consider this" / "The distinction" / "The
   mirror is you" pause between initiations - short on purpose, one
   idea, the figure carrying the moment rather than the words. */

.v2-scene.is-brief {
  min-height: clamp(420px, 62vh, 620px);
  padding-block: clamp(50px, 8vh, 90px);
}

.v2-scene.is-story.is-threshold {
  align-items: center;
  padding-top: clamp(50px, 8vh, 90px);
}

html.is-embed .v2-scene.is-story.is-brief {
  min-height: clamp(520px, 48vw, 680px);
}

.v2-scene.is-story.is-threshold::after {
  background:
    radial-gradient(70% 74% at 50% 45%, rgba(0, 4, 14, .22), rgba(0, 4, 14, .68) 76%),
    linear-gradient(180deg, rgba(0, 4, 14, .56), rgba(0, 4, 14, .24) 34%, rgba(0, 4, 14, .54) 76%, var(--v2-abyss));
}

.v2-scene.is-threshold.is-golden::after {
  background:
    radial-gradient(66% 70% at 50% 44%, rgba(0, 4, 14, .16), rgba(0, 4, 14, .64) 78%),
    linear-gradient(180deg, rgba(0, 4, 14, .46), rgba(31, 20, 4, .14) 42%, rgba(0, 4, 14, .62) 82%, var(--v2-abyss));
}

.v2-threshold-headline {
  font-family: var(--v2-display);
  font-weight: 400;
  font-size: clamp(30px, 4.25vw, 58px);
  line-height: 1.2;
  letter-spacing: .003em;
  color: var(--v2-mist);
  max-width: 30ch;
  margin: 0 auto;
  text-align: center;
  text-wrap: balance;
  text-shadow: 0 3px 28px rgba(0, 4, 14, .98);
}

.v2-threshold-headline em {
  font-style: italic;
  color: var(--v2-gold);
}

/* hero: the portal carries the fold */
.v2-hero::after {
  background:
    linear-gradient(180deg, rgba(0, 4, 14, .62) 0%, rgba(0, 4, 14, .18) 26%, rgba(0, 4, 14, .3) 62%, var(--v2-night) 98%);
}

.v2-hero .v2-wrap { padding-top: clamp(46px, 8vh, 90px); }
.v2-hero .v2-h.is-hero { text-shadow: 0 2px 40px rgba(0, 4, 14, .85); }

/* The chalice is the single brand mark that leads the hero invitation. */
.v2-hero-chalice {
  display: block;
  width: clamp(82px, 10vw, 132px);
  height: auto;
  margin: 0 auto clamp(16px, 2.4vw, 26px);
  filter: drop-shadow(0 0 12px rgba(216, 182, 106, .72)) drop-shadow(0 0 28px rgba(133, 51, 255, .36));
}

/* a soft pool of dark behind the hero copy so the eyebrow and headline
   hold against the portal's bright core */
.v2-hero .v2-wrap::before {
  content: "";
  position: absolute;
  inset: -3rem -6rem;
  z-index: -1;
  pointer-events: none;
  background: radial-gradient(rgba(0, 4, 14, .68) 0%, rgba(0, 4, 14, .34) 48%, transparent 72%);
}

/* finale: earth network */
.v2-finale { background: var(--v2-abyss); }
.v2-finale .v2-photo img { object-position: center 55%; opacity: .74; }
.v2-finale::after {
  background:
    radial-gradient(64% 56% at 50% 46%, rgba(0, 4, 14, .55), transparent 76%),
    linear-gradient(180deg, var(--v2-deep) 0%, transparent 24%, transparent 70%, var(--v2-abyss) 100%);
}

/* the shared-field communion shot: softer wash on top of the story scrim */
.v2-communion { background: var(--v2-abyss); }
.v2-communion .v2-photo img { opacity: .62; }

/* ---------- scroll cue ---------- */

.v2-scrollcue {
  position: absolute;
  bottom: 26px;
  left: 50%;
  transform: translateX(-50%);
  z-index: var(--z-content);
}

.v2-scrollcue span {
  display: block;
  width: 1px;
  height: 44px;
  background: linear-gradient(var(--v2-gold), transparent);
  animation: v2cue 2.6s var(--v2-ease) infinite;
}

@keyframes v2cue {
  0% { transform: scaleY(0); transform-origin: top; opacity: 0; }
  35% { transform: scaleY(1); opacity: .9; }
  100% { transform: scaleY(1); transform-origin: top; opacity: 0; }
}

/* ---------- top nav ---------- */

.v2-nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: var(--z-nav);
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 18px;
  padding: 14px clamp(16px, 3vw, 38px);
  background: linear-gradient(180deg, rgba(0, 4, 14, .82), rgba(0, 4, 14, .55) 70%, transparent);
  transition: background .5s ease;
}

.v2-nav.is-solid {
  background: rgba(0, 4, 14, .92);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--v2-line-soft);
}

.v2-nav-mark {
  display: flex;
  align-items: center;
  gap: 12px;
  width: max-content;
}

.v2-nav-word {
  font-size: 10.5px;
  letter-spacing: .25em;
  color: var(--v2-mist);
  white-space: nowrap;
}

.v2-nav-links {
  display: flex;
  justify-content: center;
  gap: clamp(18px, 2.6vw, 40px);
}

.v2-nav-links a {
  font-size: 10.5px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--v2-dimmer);
  transition: color .35s ease;
}

.v2-nav-links a:hover,
.v2-nav-links a.is-on { color: var(--v2-gold); }

.v2-nav-cta {
  justify-self: end;
  padding: 9px 18px;
  font-size: 10.5px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--v2-gold);
  border: 1px solid var(--v2-gold-line);
  border-radius: 2px;
  transition: background .35s ease, color .35s ease, border-color .35s ease;
}

.v2-nav-cta:hover {
  background: var(--v2-gold);
  border-color: var(--v2-gold);
  color: var(--v2-night);
}

@media (width <= 860px) {
  .v2-nav { grid-template-columns: 1fr auto; }
  .v2-nav-links { display: none; }
}

/* ---------- chapter rail ---------- */

.v2-rail {
  position: fixed;
  right: clamp(14px, 2vw, 30px);
  top: 50%;
  transform: translateY(-50%);
  z-index: var(--z-nav);
  display: flex;
  flex-direction: column;
  gap: 12px;
  opacity: 0;
  transition: opacity .6s ease;
}

.v2-rail.is-up { opacity: 1; }

.v2-rail a {
  display: block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  border: 1px solid var(--v2-line);
  background: transparent;
  transition: background .4s ease, border-color .4s ease, transform .4s var(--v2-ease);
}

.v2-rail a.is-on {
  background: var(--v2-gold);
  border-color: var(--v2-gold);
  transform: scale(1.5);
  box-shadow: 0 0 12px 1px var(--v2-gold);
}

@media (width <= 860px) { .v2-rail { display: none; } }

/* ---------- the returns (three lines) ---------- */

.v2-returns { display: grid; gap: clamp(26px, 4vh, 44px); text-align: left; }

.v2-return {
  font-family: var(--v2-display);
  font-size: clamp(21px, 2.6vw, 32px);
  line-height: 1.42;
  color: var(--v2-mist);
  margin: 0;
  max-width: 24ch;
  text-wrap: balance;
}

.v2-return em { font-style: italic; color: var(--v2-gold); }

.v2-return + .v2-return {
  padding-top: clamp(26px, 4vh, 44px);
  border-top: 1px solid var(--v2-line-soft);
}

/* ---------- duet (image + copy splits) ---------- */

.v2-duet {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  gap: clamp(34px, 5vw, 84px);
  align-items: start;
  text-align: left;
}

.v2-duet.is-flip { grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); }
.v2-duet.is-flip .v2-duet-copy { order: 2; }
.v2-duet.is-flip .v2-duet-side { order: 1; }

.v2-duet-copy { max-width: 60ch; }

.v2-duet-side {
  position: sticky;
  top: 90px;
  display: grid;
  gap: clamp(22px, 3vw, 34px);
}

/* framed artwork, inspire-style hairline + corner ticks */
.v2-art {
  position: relative;
  margin: 0;
  overflow: hidden;
  border-radius: 2px;
}

.v2-art img {
  display: block;
  width: 100%;
  height: auto;
  filter: saturate(1.04);
}

.v2-art::after {
  content: "";
  position: absolute;
  inset: 12px;
  pointer-events: none;
  border: 1px solid rgba(216, 182, 106, .28);
}

.v2-art-corners,
.v2-art-corners::before {
  position: absolute;
  pointer-events: none;
}

.v2-art-corners { inset: 6px; }

.v2-art-corners::before {
  content: "";
  inset: 0;
  background:
    linear-gradient(var(--v2-gold), var(--v2-gold)) top left / 14px 1px,
    linear-gradient(var(--v2-gold), var(--v2-gold)) top left / 1px 14px,
    linear-gradient(var(--v2-gold), var(--v2-gold)) top right / 14px 1px,
    linear-gradient(var(--v2-gold), var(--v2-gold)) top right / 1px 14px,
    linear-gradient(var(--v2-gold), var(--v2-gold)) bottom left / 14px 1px,
    linear-gradient(var(--v2-gold), var(--v2-gold)) bottom left / 1px 14px,
    linear-gradient(var(--v2-gold), var(--v2-gold)) bottom right / 14px 1px,
    linear-gradient(var(--v2-gold), var(--v2-gold)) bottom right / 1px 14px;
  background-repeat: no-repeat;
  opacity: .85;
}

/* ---------- shared initiation feature (image + overlaid points + copy) ---------- */

.v2-initiation-duet {
  grid-template-columns: minmax(0, 1.06fr) minmax(0, .94fr);
  gap: clamp(42px, 6vw, 92px);
}

.v2-initiation-copy {
  padding-top: clamp(8px, 1.8vw, 24px);
  order: 1;
}

.v2-initiation-visual {
  --v2-point: var(--v2-gold);
  position: sticky;
  top: 90px;
  isolation: isolate;
  display: flex;
  align-items: flex-end;
  min-height: clamp(650px, 62vw, 760px);
  overflow: hidden;
  border: 1px solid rgba(216, 182, 106, .22);
  border-radius: 3px;
  background: var(--v2-abyss);
  box-shadow: 0 34px 80px -50px rgba(0, 0, 0, .96);
  text-align: left;
  order: 2;
}

.v2-initiation-visual.is-sovereignty { --v2-point: var(--v2-ember); }

.v2-initiation-visual::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(0, 4, 14, .02) 18%, rgba(0, 4, 14, .32) 48%, rgba(0, 4, 14, .97) 78%),
    linear-gradient(90deg, rgba(0, 4, 14, .18), transparent 38%, rgba(0, 4, 14, .08));
}

.v2-initiation-art {
  position: absolute;
  inset: 0;
  z-index: -2;
  border-radius: 0;
}

.v2-initiation-art > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% center;
}

.v2-initiation-visual.is-mission .v2-initiation-art > img { object-position: 50% center; }
.v2-initiation-visual.is-stewardship .v2-initiation-art > img { object-position: 53% center; }

.v2-initiation-art.is-layered .v2-initiation-base {
  opacity: .76;
  filter: saturate(.92) contrast(1.04);
}

.v2-initiation-art.is-layered .v2-initiation-figure {
  z-index: 1;
  mix-blend-mode: screen;
  filter: saturate(1.04) contrast(1.04);
}

.v2-initiation-art::after { z-index: 2; }
.v2-initiation-art .v2-art-corners { z-index: 3; }

.v2-initiation-panel {
  position: relative;
  z-index: 2;
  width: 100%;
  padding: clamp(190px, 20vw, 250px) clamp(20px, 3vw, 34px) clamp(24px, 3vw, 34px);
}

.v2-initiation-panel h3 {
  margin: 0 0 16px;
  color: var(--v2-gold-lift);
  font-size: 10px;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: .2em;
  text-transform: uppercase;
}

.v2-initiation-points {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 11px 22px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.v2-initiation-points li {
  position: relative;
  padding-left: 16px;
  color: rgba(247, 243, 232, .9);
  font-family: var(--v2-serif);
  font-size: clamp(12px, 1.05vw, 14px);
  line-height: 1.48;
  text-shadow: 0 2px 14px rgba(0, 4, 14, .96);
}

.v2-initiation-points li::before {
  content: "";
  position: absolute;
  top: .62em;
  left: 0;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--v2-point);
  box-shadow: 0 0 9px color-mix(in srgb, var(--v2-point) 70%, transparent);
}

/* ---------- supports (can support you in) ---------- */

.v2-supports {
  margin-top: clamp(34px, 5vw, 56px);
  border-top: 1px solid var(--v2-line-soft);
  padding-top: clamp(24px, 3vw, 36px);
  text-align: left;
}

.v2-supports h3 {
  font-family: var(--v2-display);
  font-weight: 400;
  font-size: clamp(17px, 1.7vw, 21px);
  color: var(--v2-gold);
  margin: 0 0 18px;
}

.v2-supports ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 10px 34px;
}

.v2-supports li {
  position: relative;
  font-size: 14.5px;
  line-height: 1.62;
  color: var(--v2-dim);
  padding-left: 20px;
}

.v2-supports li::before {
  content: "✦";
  position: absolute;
  left: 0;
  top: .1em;
  color: var(--v2-gold);
  font-size: 12px;
}

.v2-supports.is-side { margin-top: 0; border-top: 0; padding-top: 0; }
.v2-supports.is-side ul { grid-template-columns: 1fr; }

/* the platform's dimension pill-chips, reused inside a duet-side
   column: left-aligned and narrower than the free-floating version */
.v2-dimensions.is-side {
  justify-content: flex-start;
  margin: 0;
  max-width: none;
}

/* The platform dimensions are cards, not free-floating bullets. Keep the
   star and its copy inside each card at every breakpoint. */
.v2-supports .v2-dimensions.is-side {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.v2-supports .v2-dimensions.is-side li {
  display: grid;
  grid-template-columns: 13px minmax(0, 1fr);
  gap: 8px;
  align-items: start;
  padding: 11px 13px;
  border: 1px solid var(--v2-line-soft);
  border-radius: 4px;
  background: rgba(247, 243, 232, .025);
  color: var(--v2-parchment);
  font-size: 12px;
  letter-spacing: .03em;
  line-height: 1.45;
  text-transform: none;
}

.v2-supports .v2-dimensions.is-side li::before {
  position: static;
  content: "✦";
  color: var(--v2-gold);
  font-size: 11px;
}

/* ---------- initiation shells ---------- */

.v2-initiation { padding-block: clamp(80px, 12vh, 150px); }

/* Statement beats need to read as breathers, not compete with photography. */
.v2-threshold { background: radial-gradient(100% 70% at 50% 0%, rgba(40, 123, 255, .13), transparent 66%), var(--v2-deep); }
.v2-threshold .v2-photo { display: none; }
.v2-threshold::after { background: linear-gradient(180deg, rgba(0, 4, 14, .08), rgba(0, 4, 14, .52)); }

/* ---------- transition beats (Take a breath / Consider this /
   the distinction / the mirror is you / integration through
   intimacy) - a quieter, unboxed counterpart to .v2-consider ---------- */

.v2-transition {
  max-width: 680px;
  margin: clamp(40px, 6vw, 70px) auto 0;
  text-align: center;
}

.v2-transition .v2-tag {
  color: var(--v2-gold);
  margin-bottom: 14px;
}

.v2-transition .v2-tag::before,
.v2-transition .v2-tag::after {
  content: "";
  display: inline-block;
  vertical-align: middle;
  width: 22px;
  height: 1px;
  background: var(--v2-gold-line);
  margin: 0 10px;
}

/* ---------- cta band (repeated after each initiation) ---------- */

.v2-ctaband {
  text-align: center;
  margin-top: clamp(34px, 5vw, 58px);
}

.v2-ctaband .v2-cta { margin-top: 0; }

/* ---------- asks (control vs stewardship) ---------- */

.v2-asks {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 16px;
  margin: clamp(18px, 2.4vw, 26px) 0 0;
  text-align: left;
}

.v2-ask {
  border: 1px solid var(--v2-line-soft);
  border-radius: 3px;
  padding: 18px 20px;
  background: rgba(247, 243, 232, .02);
}

.v2-ask blockquote {
  font-family: var(--v2-display);
  font-size: clamp(16px, 1.6vw, 20px);
  line-height: 1.5;
  color: var(--v2-dim);
  margin: 0;
}

.v2-ask.is-gold { border-color: var(--v2-gold-line); }
.v2-ask.is-gold .v2-tag { color: var(--v2-gold); }
.v2-ask.is-gold blockquote { color: var(--v2-mist); }

/* ---------- consider callout ---------- */

.v2-consider {
  max-width: 620px;
  margin: clamp(34px, 5vw, 54px) auto 0;
  padding: clamp(24px, 3vw, 34px);
  border: 1px solid var(--v2-gold-line);
  border-radius: 3px;
  background:
    radial-gradient(120% 90% at 50% 0%, rgba(216, 182, 106, .08), transparent 65%),
    rgba(247, 243, 232, .02);
}

.v2-consider .v2-tag { color: var(--v2-gold); }

.v2-consider p:not(.v2-tag) {
  font-family: var(--v2-display);
  font-size: clamp(17px, 1.8vw, 22px);
  line-height: 1.55;
  color: var(--v2-mist);
  margin: 0 0 .7em;
  text-wrap: balance;
}

.v2-consider p:last-child { margin-bottom: 0; }

/* ---------- dimensions (interwoven) ---------- */

.v2-dimensions {
  list-style: none;
  margin: clamp(24px, 3.4vw, 40px) auto;
  padding: 0;
  max-width: 860px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px 12px;
}

.v2-dimensions li {
  font-size: 12px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--v2-parchment);
  border: 1px solid var(--v2-line-soft);
  border-radius: 999px;
  padding: 9px 18px;
  background: rgba(247, 243, 232, .025);
}

/* ---------- coherence (shared-field explore list) ---------- */

.v2-coherence {
  list-style: none;
  margin: clamp(28px, 3.8vw, 48px) auto;
  padding: 0;
  max-width: 900px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 12px;
  text-align: left;
}

.v2-coherence li {
  display: grid;
  grid-template-columns: 23px minmax(0, 1fr);
  gap: 13px;
  align-items: start;
  font-size: 14.5px;
  line-height: 1.64;
  color: var(--v2-mist);
  padding: 15px 17px;
  border: 1px solid var(--v2-line-soft);
  border-radius: 3px;
  background: linear-gradient(135deg, rgba(247, 243, 232, .07), rgba(247, 243, 232, .018));
  text-shadow: 0 1px 14px rgba(0, 4, 14, .9);
}

.v2-coherence .v2-offer-check { flex: 0 0 auto; }
.v2-cohort-intro { max-width: 760px; margin-inline: auto; color: rgba(247, 243, 232, .76); }

/* ---------- included experience + investment ---------- */

.v2-offer-grid {
  margin-top: clamp(30px, 4.4vw, 50px);
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(290px, .75fr);
  gap: clamp(34px, 6vw, 82px);
  align-items: start;
  text-align: left;
}

.v2-offer-list {
  display: flex;
  flex-direction: column;
  gap: 13px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.v2-offer-list li {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 13px;
  align-items: start;
  color: var(--v2-dim);
  font-size: 14.5px;
  line-height: 1.65;
}

.v2-offer-list b {
  color: var(--v2-mist);
  font-weight: 400;
}

.v2-offer-check {
  width: 23px;
  height: 23px;
  display: grid;
  place-items: center;
  margin-top: 1px;
  border: 1px solid var(--v2-gold-line);
  border-radius: 50%;
  color: var(--v2-gold);
  background: rgba(216, 182, 106, .07);
  font-family: sans-serif;
  font-size: 11px;
  line-height: 1;
}

.v2-exploration-card {
  position: sticky;
  top: 104px;
  padding: clamp(30px, 4vw, 48px);
  border: 1px solid var(--v2-gold-line);
  border-radius: 4px;
  background:
    radial-gradient(90% 80% at 50% 0%, rgba(216, 182, 106, .12), transparent 68%),
    rgba(2, 10, 31, .9);
  box-shadow: 0 34px 90px -58px rgba(216, 182, 106, .75);
  text-align: center;
}

.v2-exploration-mark {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  margin: 0 auto 20px;
  border: 1px solid var(--v2-gold-line);
  border-radius: 50%;
  color: var(--v2-gold);
  background: rgba(216, 182, 106, .07);
  font-size: 18px;
}

.v2-exploration-kicker {
  margin: 0 0 16px;
  color: var(--v2-gold);
  font-size: 10.5px;
  letter-spacing: .2em;
  line-height: 1.5;
  text-transform: uppercase;
}

.v2-exploration-title {
  margin: 0;
  color: var(--v2-mist);
  font-family: var(--v2-display);
  font-size: clamp(30px, 3.6vw, 44px);
  font-weight: 400;
  line-height: 1.14;
  text-wrap: balance;
}

.v2-exploration-lead {
  margin: 18px 0 0;
  color: var(--v2-dim);
  font-family: var(--v2-serif);
  font-size: 15px;
  line-height: 1.7;
}

.v2-exploration-list {
  display: grid;
  gap: 10px;
  margin: 24px 0 0;
  padding: 20px 0 0;
  border-top: 1px solid var(--v2-line-soft);
  list-style: none;
  text-align: left;
}

.v2-exploration-list li {
  position: relative;
  padding-left: 18px;
  color: rgba(247, 243, 232, .78);
  font-size: 13.5px;
  line-height: 1.55;
}

.v2-exploration-list li::before {
  content: "";
  position: absolute;
  top: .68em;
  left: 0;
  width: 7px;
  height: 1px;
  background: var(--v2-gold);
}

.v2-exploration-card .v2-cta {
  width: 100%;
  justify-content: center;
  padding-inline: 18px;
}

.v2-exploration-note {
  margin: 18px 0 0;
  color: var(--v2-dimmer);
  font-size: 12px;
  line-height: 1.65;
  text-align: left;
}

@media (width <= 860px) {
  .v2-offer-grid { grid-template-columns: 1fr; }
  .v2-exploration-card { position: static; }
}

.v2-diagnostic-caption {
  margin: 12px 0 0;
  color: var(--v2-dim);
  font-size: 11px;
  letter-spacing: .11em;
  line-height: 1.5;
  text-transform: uppercase;
}

/* ---------- triune ---------- */

.v2-triune {
  margin: clamp(28px, 4vw, 46px) auto;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 12px 34px;
}

.v2-triune span {
  font-family: var(--v2-display);
  font-size: clamp(21px, 2.6vw, 30px);
  color: var(--v2-gold);
}

/* ---------- faq ---------- */

.v2-faq {
  max-width: 760px;
  margin: clamp(26px, 4vw, 42px) auto 0;
  border-top: 1px solid var(--v2-line-soft);
  text-align: left;
}

.v2-q { border-bottom: 1px solid var(--v2-line-soft); }

.v2-q summary {
  position: relative;
  list-style: none;
  cursor: pointer;
  padding: 20px 42px 20px 0;
  font-family: var(--v2-display);
  font-size: clamp(16px, 1.5vw, 19px);
  line-height: 1.42;
  color: var(--v2-mist);
  transition: color .3s ease;
}

.v2-q summary::-webkit-details-marker { display: none; }
.v2-q summary:hover { color: var(--v2-gold); }

.v2-q summary::after,
.v2-q summary::before {
  content: "";
  position: absolute;
  right: 10px;
  top: 50%;
  background: var(--v2-gold);
  transition: transform .35s var(--v2-ease), opacity .35s ease;
}

.v2-q summary::after { width: 11px; height: 1px; }
.v2-q summary::before { width: 1px; height: 11px; margin-top: -5px; right: 15px; }
.v2-q[open] summary::before { transform: rotate(90deg); opacity: 0; }

.v2-q-body { padding: 0 0 22px; }

.v2-q-body p {
  font-size: 14.5px;
  line-height: 1.72;
  color: var(--v2-dim);
  margin: 0 0 .9em;
  max-width: 62ch;
}

.v2-q-body p:last-child { margin-bottom: 0; }

/* ---------- form ---------- */

.v2-form {
  max-width: 680px;
  margin: clamp(28px, 4vw, 42px) auto 0;
  text-align: left;
}

.v2-field { margin-bottom: 20px; }

.v2-field label {
  display: block;
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--v2-parchment);
  margin-bottom: 9px;
}

.v2-field label span { color: var(--v2-dimmer); font-style: italic; }

.v2-field input,
.v2-field textarea {
  width: 100%;
  padding: 13px 15px;
  font: inherit;
  font-size: 15px;
  line-height: 1.58;
  color: var(--v2-mist);
  background: rgba(247, 243, 232, .035);
  border: 1px solid var(--v2-line-soft);
  border-radius: 2px;
  transition: border-color .3s ease, background .3s ease;
}

.v2-field textarea { min-height: 88px; resize: vertical; }

.v2-field input:focus,
.v2-field textarea:focus {
  outline: none;
  border-color: var(--v2-gold);
  background: rgba(247, 243, 232, .055);
}

.v2-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 0 20px;
}

.v2-form-note {
  font-size: 13px;
  line-height: 1.68;
  color: var(--v2-dimmer);
  margin: 16px 0 0;
}

.v2-honey {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

/* ---------- cta ---------- */

.v2-cta {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-top: clamp(24px, 3.4vw, 38px);
  padding: 15px 30px;
  font-size: 12px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--v2-night);
  background: var(--v2-gold);
  border: 1px solid var(--v2-gold);
  border-radius: 2px;
  text-decoration: none;
  cursor: pointer;
  transition: background .4s ease, transform .4s var(--v2-ease), box-shadow .4s ease;
}

.v2-cta:hover {
  background: var(--v2-gold-lift);
  transform: translateY(-2px);
  box-shadow: 0 10px 30px -12px rgba(216, 182, 106, .7);
}

.v2-meta {
  display: block;
  font-size: 10.5px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--v2-gold);
  margin-top: clamp(18px, 2.4vw, 26px);
}

/* ---------- cohort opt-in modal ---------- */

.v2-optin-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: grid;
  place-items: center;
  padding: clamp(16px, 4vw, 42px);
  overflow-y: auto;
}

.v2-optin-modal[hidden],
html.is-embed .v2-optin-modal { display: none; }

.v2-optin-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 4, 14, .88);
  backdrop-filter: blur(16px);
}

.v2-optin-dialog {
  position: relative;
  width: min(980px, 100%);
  min-height: 620px;
  display: grid;
  grid-template-columns: minmax(260px, .76fr) minmax(360px, 1.24fr);
  overflow: hidden;
  border: 1px solid var(--v2-gold-line);
  border-radius: 20px;
  background: var(--v2-deep);
  box-shadow: 0 34px 100px -30px rgba(0, 0, 0, .96);
}

.v2-optin-dialog::before {
  content: '';
  position: absolute;
  inset: 0 0 auto;
  height: 2px;
  z-index: 2;
  background: linear-gradient(90deg, var(--v2-green), var(--v2-cyan), var(--v2-periwinkle), var(--v2-violet));
}

.v2-optin-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(36px, 5vw, 64px);
  text-align: left;
  background:
    linear-gradient(145deg, rgba(40, 123, 255, .12), transparent 52%),
    var(--v2-deep);
}

.v2-optin-copy .v2-eyebrow { align-self: flex-start; }
.v2-optin-copy .v2-h { margin-top: 18px; text-align: left; }
.v2-optin-copy > p:last-child {
  margin-top: 24px;
  color: var(--v2-dim);
  font-size: 15px;
  line-height: 1.75;
}

.v2-optin-frame {
  display: block;
  width: 100%;
  height: 660px;
  min-height: 100%;
  border: 0;
  background: #fff;
}

.v2-optin-close {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 3;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(0, 9, 25, .15);
  border-radius: 50%;
  background: rgba(247, 243, 232, .92);
  color: var(--v2-night);
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
}

.v2-optin-close:focus-visible,
[data-cohort-optin]:focus-visible {
  outline: 3px solid var(--v2-cyan);
  outline-offset: 4px;
}

.v2-optin-focus-guard {
  position: fixed;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
}

.v2-page.v2-modal-open { overflow: hidden; }

@media (width <= 760px) {
  .v2-optin-modal { padding: 10px; place-items: start center; }
  .v2-optin-dialog { grid-template-columns: 1fr; min-height: 0; }
  .v2-optin-copy { padding: 34px 26px 28px; }
  .v2-optin-copy .v2-h { max-width: 12ch; }
  .v2-optin-frame { height: 650px; min-height: 650px; }
}

/* ---------- sticky apply ---------- */

.v2-sticky {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: var(--z-sticky);
  display: none;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 11px 16px calc(11px + env(safe-area-inset-bottom));
  background: rgba(0, 4, 14, .94);
  backdrop-filter: blur(14px);
  border-top: 1px solid var(--v2-line-soft);
  transform: translateY(110%);
  transition: transform .45s var(--v2-ease);
}

.v2-sticky.is-up { transform: translateY(0); }

.v2-sticky p {
  font-size: 10px;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--v2-dimmer);
  line-height: 1.45;
  margin: 0;
}

.v2-sticky p b { display: block; font-weight: 400; color: var(--v2-gold); }

.v2-sticky a {
  flex: none;
  padding: 10px 17px;
  font-size: 11.5px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--v2-night);
  background: var(--v2-gold);
  border-radius: 2px;
  text-decoration: none;
  white-space: nowrap;
}

@media (width <= 860px) { .v2-sticky { display: flex; } }

/* ---------- responsive ---------- */

@media (width <= 980px) {
  .v2-duet,
  .v2-duet.is-flip { grid-template-columns: 1fr; }

  /* the copy doc asks for the image FIRST on mobile in the field/
     sovereignty scenes; sides stack above copy everywhere for the
     same rhythm */
  .v2-duet .v2-duet-copy,
  .v2-duet.is-flip .v2-duet-copy { order: 2; }
  .v2-duet .v2-duet-side,
  .v2-duet.is-flip .v2-duet-side { order: 1; }

  .v2-duet-side { position: static; }

  .v2-initiation-visual {
    position: relative;
    top: auto;
    order: 2;
    min-height: clamp(640px, 92vw, 760px);
  }

  .v2-duet-copy { max-width: 62ch; margin-inline: auto; }
  .v2-duet .v2-initiation-copy { order: 1; }
  .v2-supports .v2-dimensions.is-side { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
  .v2-dimensions.is-side { justify-content: center; }
}

@media (width <= 720px) {
  .v2-scene { min-height: 0; padding: clamp(58px, 10vh, 90px) var(--v2-gut); }
  .v2-scene.is-tall,
  .v2-scene.is-story { min-height: 100svh; }
  /* Each initiation reads before its artwork on phones. This intentionally
     overrides the visual-first rhythm used by other duet sections. */
  .v2-duet .v2-initiation-copy { order: 1; }
  .v2-duet .v2-initiation-visual { order: 2; }
  /* Preserve the same clean Mission and Stewardship originals used on
     desktop; a real visual height prevents their absolute art layer from
     collapsing or being replaced by a cropped fallback on phones. */
  .v2-initiation-visual { min-height: 0; }
  .v2-initiation-visual.is-mission,
  .v2-initiation-visual.is-stewardship { min-height: clamp(460px, 126vw, 620px); }
  .v2-initiation-visual.is-mission .v2-initiation-art > img,
  .v2-initiation-visual.is-stewardship .v2-initiation-art > img { object-position: 50% center; }
  .v2-initiation-panel { padding: clamp(250px, 86vw, 340px) 20px 24px; }
  .v2-initiation-points { grid-template-columns: 1fr; gap: 10px; }
  .v2-supports .v2-dimensions.is-side { grid-template-columns: 1fr; }
  .v2-hero .v2-wrap { padding-top: 60px; }
  .v2-hero-chalice { width: 86px; }
  .v2-communion .v2-photo img { opacity: .42; }
  .v2-finale .v2-photo img { opacity: .5; }
}
.v2-optin-copy .v2-optin-legal{margin:18px 0 0;color:var(--v2-faint);font:10.5px/1.6 var(--sans);text-align:left}
.v2-optin-legal a{color:var(--v2-gold);text-decoration:underline;text-underline-offset:2px}
.v2-footer-legal{display:flex;flex-wrap:wrap;justify-content:center;gap:0 .45rem}
