/* ═══════════════════════════════════════════════════════════════════════════
   ELAVE FUNNEL — STYLESHEET  ·  v5  ·  2026-09-19 — dark invert (.elv sections only, hero/form untouched)
   Served from https://elavefx.com/funnel/acces.css
   Loaded once by GHL → Funnel → Settings → Tracking Code → HEAD.
   Edits here go live on acces.elavefx.com in ~60s. Nothing is re-pasted.

   v4 REPLACES my invented system with the founder's own /unlock page code.
   That file is the canonical ElaveFX implementation, and it solves the two
   things I had been fighting badly:

     1. FULL BLEED — `width:100vw; margin-left:calc(50% - 50vw)` escapes GHL's
        container outright. I had instead been trying to widen GHL's NESTED
        .c-wrapper chain, which compounded padding (963→805→755→597px) and
        squeezed the hero headline into five lines.
     2. SCOPING — everything lives under `.elv`. My earlier versions styled
        GHL's generic classes (.c-wrapper, .c-section, bare h1/h2), which
        collapsed the VSL to 0px and inflated the video banner. Scoped rules
        cannot collide with the host page at all.

   What stays mine: the funnel STRUCTURE and the compliance-safe copy. No
   performance claims anywhere — no proven live edge, and a prior audit flagged
   backtest-as-"audited" language as FCA/FTC risk.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ─── HOST PAGE — deliberately tiny. Every rule here can break the funnel. ── */

/* GHL writes a per-page <style> keyed on the section id (#section-XXXX) which
   outranks any class selector, so the white ground is set INLINE from
   acces.js, not here. This covers the body only. */
body { background: #000 !important; }

/* The VSL is the funnel's most important asset. Nothing here may touch its
   box: v3 collapsed it to 0px twice — once by reverting the padding video.js
   uses for its aspect ratio, once by applying a gutter to .c-video (which
   also carries .c-wrapper). Presentation only, never structure. */
.c-video {
  border-radius: 24px !important; overflow: hidden !important;
  box-shadow: 0 0 0 1px rgba(255,255,255,.08), 0 30px 90px -30px rgba(124,58,237,.55) !important;
}
/* CLS hold (2026-10-16): when GHL's app hydrates (~5 s on a throttled phone)
   video.js re-initialises and the box is 0 px tall for ~1–2 s, so everything
   under it jumps up and back down. On a phone the VSL is bled to 100vw and is
   16:9 (measured 221 px at 393 px wide), so a min-height of 56.25vw equals its
   normal height: no visual change, it only stops the collapse. Not padding, not
   aspect-ratio — the box rule above still holds. */
@media (max-width: 560px) {
  .fullSection.c-section .c-video { min-height: 56.25vw !important; }
}

/* Host hero — family and scale only, no layout. */
.fullSection.c-section h1 {
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Helvetica Neue", Helvetica, Arial, sans-serif !important;
  font-size: clamp(56px, 9vw, 112px) !important;
  line-height: .98 !important; letter-spacing: -.05em !important; font-weight: 700 !important;
  color: #fff !important; max-width: 17ch; margin-inline: auto; text-wrap: balance;
}
.fullSection.c-section p {
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Helvetica Neue", Helvetica, Arial, sans-serif !important;
  font-size: clamp(19px, 1.7vw, 23px) !important; line-height: 1.45 !important; color: #9AA1B4 !important;
}
.btn.button-element, button.btn, a.btn {
  background: linear-gradient(135deg,#A773FF 0%,#7C3AED 52%,#5B21B6 100%) !important; color: #fff !important;
  min-height: 56px !important; padding: 0 28px !important; border-radius: 999px !important;
  font-size: 17px !important; font-weight: 600 !important; border: 0 !important;
  box-shadow: 0 12px 34px -8px rgba(124,58,237,.65), inset 0 1px 0 rgba(255,255,255,.28) !important;
  transition: transform .16s cubic-bezier(.22,1,.36,1), box-shadow .16s cubic-bezier(.22,1,.36,1) !important;
}
.btn.button-element:hover, button.btn:hover, a.btn:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 18px 44px -8px rgba(124,58,237,.75), inset 0 1px 0 rgba(255,255,255,.28) !important;
}
.hl_form-builder--main :is(input[type="text"], input[type="email"], input[type="tel"], select, textarea) {
  font-size: 16px !important; min-height: 56px !important; padding: 0 20px !important;
  border-radius: 999px !important; border: 1px solid rgba(255,255,255,.14) !important; background: rgba(255,255,255,.05) !important;
  color: #fff !important;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", Helvetica, Arial, sans-serif !important;
}
.hl_form-builder--main :is(input, select, textarea):focus {
  border-color: #8B5CF6 !important; background: rgba(139,92,246,.08) !important;
  box-shadow: 0 0 0 4px rgba(139,92,246,.22) !important; outline: none !important;
}
/* GHL ships the opt-in form at a FIXED 470px. On a 390px phone that forced the
   layout viewport to 430px — the entire page rendered zoomed-out and could be
   dragged sideways, before any of our code ran (measured on the raw GHL page
   with our files blocked). max-width caps it without touching GHL's width rule. */
.c-form, .c-form .hl-app, .c-form .hl_form-builder--main, .c-form .ghl-form-wrap,
.c-form .form-builder--wrap, .c-form .form-side, .c-form .fields-container {
  max-width: 100% !important; box-sizing: border-box !important;
}
/* ...and GHL centres that 470px box with margin-left:-50px, which survived the
   cap and pushed every field 39px off the left edge of the phone. */
.c-form { margin-left: 0 !important; margin-right: 0 !important; width: 100% !important; }
/* desktop: fields capped at 900px by GHL while the button ran the full 1120px
   card — one centred column keeps every edge aligned */
.c-form .form-builder--wrap { max-width: 560px !important; margin-left: auto !important; margin-right: auto !important; }
.c-form .hl-app, .c-form .hl_form-builder--main, .c-form .ghl-form-wrap,
.c-form .form-builder--wrap { background: transparent !important; }
/* ─── FLOATING OBJECTS around the form ──────────────────────────────────────
   The four feature cards are atmosphere, not copy: they drift on the sides of
   the form like objects in the room. acces.js sets every box property inline
   as !important but pointing at these variables (GHL's id-keyed styles would
   beat any class rule), so all geometry lives here, per slot and breakpoint. */
@keyframes elvDrift { 0%,100% { translate: 0 0 } 50% { translate: 0 -12px } }
[data-elave-float] { --fpos: absolute; --fw: 232px; --fpad: 14px 16px; --frad: 18px; --fop: .62;
  --fts: 14.5px; --fic: 32px; --fdur: 9s;
  position: absolute; inset: 0; z-index: 1; pointer-events: none; }
[data-elave-float] > :nth-child(1) { --fin: 7% auto auto 1.5%;  --frot: -7deg; --fdel: 0s }
[data-elave-float] > :nth-child(2) { --fin: auto auto 16% 5%;   --frot: 5deg;  --fdel: -2.4s; --fop: .5 }
[data-elave-float] > :nth-child(3) { --fin: 13% 2% auto auto;   --frot: 6deg;  --fdel: -4.6s }
[data-elave-float] > :nth-child(4) { --fin: auto 0 9% auto;     --frot: -4deg; --fdel: -6.8s; --fop: .5 }
@media (min-width:1025px) and (max-width:1240px) {
  [data-elave-float] { --fw: 196px; --fts: 13px; --fic: 28px }
  /* tilted corners poked 2px past the viewport at 1100 — pull the right pair in */
  [data-elave-float] > :nth-child(3) { --fin: 13% 3% auto auto }
  [data-elave-float] > :nth-child(4) { --fin: auto 2.5% 9% auto }
}
/* no side room below 1025px: the objects become a loose cluster of tilted
   chips resting just above the form, still decorative, titles only */
@media (max-width:1024px) {
  [data-elave-float] { --fpos: relative; --fin: auto; --fw: auto; --fpad: 7px 12px 7px 7px; --frad: 999px;
    --fop: .8; --fts: 12.5px; --fic: 24px; --fdur: 7s;
    position: relative; inset: auto; display: flex; flex-wrap: wrap; justify-content: center;
    gap: 8px 8px; margin: 2px auto 18px; max-width: 420px; padding: 0 6px; }
  [data-elave-float] > :nth-child(1) { --frot: -3deg }
  [data-elave-float] > :nth-child(2) { --frot: 2deg }
  [data-elave-float] > :nth-child(3) { --frot: 2.5deg }
  [data-elave-float] > :nth-child(4) { --frot: -2deg }
}
@media (prefers-reduced-motion: reduce) { [data-elave-float] { --fdur: 0s } [data-elave-float] > * { animation: none !important } }
.hl_form-builder--main ::placeholder { color: rgba(236,230,255,.62) !important; opacity: 1 !important;
  -webkit-text-fill-color: rgba(236,230,255,.62) !important;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", Helvetica, Arial, sans-serif !important; }
/* liquid pills: acces.js paints each field inline with these variables, so the
   :focus state below can still restyle a field GHL's id rules would otherwise pin */
.hl_form-builder--main .form-control {
  --elv-in-bg: linear-gradient(180deg, rgba(255,255,255,.13), rgba(255,255,255,.045));
  --elv-in-bd: rgba(255,255,255,.2);
  --elv-in-sh: inset 0 1px 0 rgba(255,255,255,.24), inset 0 -10px 18px -14px rgba(0,0,0,.45), 0 10px 26px -16px rgba(0,0,0,.7);
}
.hl_form-builder--main .form-control:focus {
  --elv-in-bg: linear-gradient(180deg, rgba(183,148,255,.20), rgba(124,58,237,.08));
  --elv-in-bd: rgba(196,170,255,.75);
  --elv-in-sh: inset 0 1px 0 rgba(255,255,255,.3), 0 0 0 4px rgba(139,92,246,.22), 0 12px 30px -14px rgba(124,58,237,.7);
}
/* the liquid-glass rim + top specular highlight on the form panel */
.c-form .form-builder--wrap::before {
  content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1px; pointer-events: none;
  background: linear-gradient(140deg, rgba(255,255,255,.7), rgba(255,255,255,.08) 30%, rgba(255,255,255,0) 55%, rgba(196,170,255,.35) 80%, rgba(255,255,255,.45));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
}
.c-form .form-builder--wrap::after {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 90px; border-radius: inherit;
  background: radial-gradient(120% 100% at 30% 0%, rgba(255,255,255,.09), rgba(255,255,255,0) 70%); pointer-events: none;
}
.c-form .form-builder--wrap > * { position: relative; z-index: 1; }
/* The hero rule above greys every <p> with !important — the button label is a
   <p>, so each GHL re-render turned it grey. More specific, same weight: wins. */
.fullSection.c-section .hl_form-builder--main button p,
.fullSection.c-section .hl_form-builder--main .button-element p {
  color: #fff !important; font-size: 16.5px !important; font-weight: 700 !important; letter-spacing: .02em !important;
  white-space: nowrap !important; line-height: 1.2 !important;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Helvetica Neue", Helvetica, Arial, sans-serif !important;
}
@media (max-width:560px){ .fullSection.c-section .hl_form-builder--main button p { font-size: 15px !important } }
/* one typeface across the funnel — GHL ships Inter/Roboto per element. The
   video player is excluded: video.js draws its controls with an icon font. */
.fullSection.c-section :is(h1,h2,h3,h4,h5,p,span,label,input,select,textarea,button,a,li):not(.c-video *):not([class*="vjs"]) {
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Helvetica Neue", Helvetica, Arial, sans-serif !important;
}

.hl_form-builder--main label, .hl_form-builder--main .field-label { color: #C7CCD6 !important; }
/* iOS autofill paints a yellow/white fill over dark inputs — hold the dark ground */
.hl_form-builder--main input:-webkit-autofill {
  -webkit-text-fill-color: #fff !important;
  -webkit-box-shadow: 0 0 0 1000px #121726 inset !important; caret-color: #fff;
}
/* the phone country picker ships white */
.hl_form-builder--main .iti__country-list, .hl_form-builder--main .vti__dropdown-list { background: #0E0A18 !important; color: #fff !important; }

/* ═══ THE ELAVE SYSTEM — the founder's /unlock code, scoped to .elv ════════ */

.elv {
  /* DARK INVERT — 2026-09-19. Founder wants black ground for everything below
     the hero (the VSL/hero/GHL form above stays exactly as built — untouched).
     --ink flips to mean "primary text = white" now, so anything that used to
     rely on --ink AS a background (the .dark/.boot cards) had to switch to a
     literal color — see those rules below. The four accent "-t" tokens were
     darkened shades meant for text-on-white; on black they're relit brighter
     so kickers stay legible (a #007A3D green reads as near-black on #000). */
  --ink:#fff; --graphite:#C7CCD6; --caption:#9AA1B4; --mist:#0A0712; --line:rgba(255,255,255,.12);
  --blue:#0A84FF; --blue-t:#4DB8FF; --cta:#7C3AED;
  --violet:#8B5CF6; --violet-hi:#B794FF; --violet-deep:#5B21B6;
  --green:#00C46A; --green-t:#2ED8A7; --orange:#FF8A00; --orange-t:#FFB74D;
  --red:#FF2D55; --red-t:#FF6B85; --gold:#F4C430; --ease:cubic-bezier(.22,1,.36,1);
  /* The full-bleed escape. This one line replaces every wrapper fight. */
  position:relative; width:100vw; margin-left:calc(50% - 50vw);
  background:#000; color:var(--ink); overflow-x:clip;
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Helvetica Neue",Helvetica,Arial,sans-serif;
  -webkit-font-smoothing:antialiased; line-height:1.5; text-align:left;
}
.elv *, .elv *::before, .elv *::after { box-sizing:border-box }
.elv h1,.elv h2,.elv h3,.elv p,.elv summary { margin:0; padding:0; font-family:inherit; color:inherit; font-weight:inherit; text-transform:none }
.elv a { text-decoration:none; color:inherit }
.elv a:focus-visible, .elv summary:focus-visible { outline:3px solid var(--violet); outline-offset:3px }
.elv img { display:block; max-width:100% }
.elv .wrap { width:100%; max-width:1280px; margin:0 auto; padding:0 clamp(20px,5vw,80px) }
.elv .center { text-align:center; display:flex; flex-direction:column; align-items:center }

/* type */
.elv .t-hero{font-size:clamp(56px,9vw,112px);line-height:.98;letter-spacing:-.05em;font-weight:700}
.elv .t-xl{font-size:clamp(44px,6.2vw,80px);line-height:1.02;letter-spacing:-.05em;font-weight:700}
.elv .t-l{font-size:clamp(36px,5vw,68px);line-height:1.04;letter-spacing:-.045em;font-weight:700}
.elv .t-card{font-size:clamp(24px,2.2vw,30px);line-height:1.15;letter-spacing:-.03em;font-weight:700}
.elv .lead{font-size:clamp(19px,1.7vw,23px);line-height:1.45;color:var(--graphite)}
.elv .body{font-size:17px;line-height:1.5;color:var(--graphite)}
.elv .kicker{font-size:15px;font-weight:700;letter-spacing:.08em}
.elv .small{font-size:14px;color:var(--caption)}
.elv .blue{color:var(--blue)}.elv .blue-t{color:var(--blue-t)}
.elv .green{color:var(--green)}.elv .green-t{color:var(--green-t)}
.elv .orange{color:var(--orange)}.elv .orange-t{color:var(--orange-t)}
.elv .red{color:var(--red)}.elv .red-t{color:var(--red-t)}

/* surfaces */
.elv .glass{position:relative;overflow:hidden;background:rgba(255,255,255,.06);-webkit-backdrop-filter:blur(28px) saturate(190%);backdrop-filter:blur(28px) saturate(190%);border:1px solid rgba(255,255,255,.14);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),inset 0 -1px 0 rgba(0,0,0,.4),0 1px 2px rgba(0,0,0,.4),0 28px 64px -16px rgba(0,0,0,.6)}
.elv .glass::before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(140deg,rgba(255,255,255,.09) 0%,rgba(255,255,255,0) 40%);pointer-events:none}
.elv .card{background:#0E0A18;border:1px solid rgba(255,255,255,.07);border-radius:32px;padding:32px;box-shadow:0 1px 2px rgba(0,0,0,.4),0 30px 70px -30px rgba(0,0,0,.65);display:flex;flex-direction:column;gap:14px}
.elv .orb{position:absolute;border-radius:50%;pointer-events:none;width:var(--ow);height:var(--oh);opacity:var(--oo);filter:blur(70px)}
.elv .icon{width:52px;height:52px;border-radius:16px;display:flex;align-items:center;justify-content:center;flex:none}
.elv .icon.sm{width:30px;height:30px;border-radius:10px}
.elv .bg-blue{background:var(--blue)}.elv .bg-green{background:var(--green)}
.elv .bg-orange{background:var(--orange)}.elv .bg-red{background:var(--red)}

/* buttons */
.elv .btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:10px;height:56px;padding:0 28px;border-radius:999px;font-size:17px;font-weight:600;transition:transform .16s var(--ease),box-shadow .16s var(--ease);white-space:nowrap}
.elv .btn:active{transform:scale(.97)}
.elv .btn-primary{background:linear-gradient(135deg,#A773FF 0%,#7C3AED 52%,#5B21B6 100%);color:#fff;box-shadow:0 12px 34px -8px rgba(124,58,237,.65), inset 0 1px 0 rgba(255,255,255,.28)}
.elv .btn-primary:hover{transform:translateY(-2px);box-shadow:0 18px 44px -8px rgba(124,58,237,.75), inset 0 1px 0 rgba(255,255,255,.28)}
.elv .btn-lg{height:60px;padding:0 36px;font-size:18px}
.elv .sheen{position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-18deg);animation:elvSheen 5s var(--ease) infinite}

/* sections */
.elv .sec{padding:clamp(80px,10vw,140px) 0;position:relative}
.elv .mist{background:var(--mist)}
.elv .g3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;width:100%}
.elv .g2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;width:100%}
.elv .g4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;width:100%}
.elv .head{display:flex;flex-direction:column;gap:18px;margin-bottom:clamp(40px,5vw,64px)}
.elv .num{font-size:clamp(44px,5vw,64px);font-weight:700;letter-spacing:-.05em;line-height:1}
.elv .pill{display:inline-flex;align-items:center;gap:10px;padding:8px 16px 8px 12px;border-radius:999px;font-size:15px;font-weight:600}
.elv .dot{width:8px;height:8px;border-radius:50%;background:var(--green);animation:elvPulse 2.4s ease-out infinite}
.elv .tag{padding:8px 14px;border-radius:999px;font-size:14px;font-weight:700}
.elv .bar{height:8px;border-radius:999px;background:rgba(10,15,30,.08);overflow:hidden}
.elv .bar i{display:block;height:8px;border-radius:999px;background:var(--green);transform-origin:left;animation:elvGrow 3.2s var(--ease) infinite}

/* floating glass annotations */
.elv .note{border-radius:24px;padding:20px;display:flex;flex-direction:column;gap:8px;text-align:left;animation:elvFloat 7s cubic-bezier(.45,0,.55,1) infinite}
.elv .note-head{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600;color:var(--graphite)}
.elv .note-val{font-size:28px;font-weight:700;letter-spacing:-.03em;line-height:1.1}
.elv .d2{animation-delay:-1.8s}.elv .d3{animation-delay:-3.6s}.elv .d4{animation-delay:-5.2s}

/* REFRACTION — the founder's signature: a glass lens swaps the word */
.elv .refr-sec{padding:clamp(110px,13vw,180px) 0 clamp(100px,12vw,170px);overflow:hidden}
.elv .refr{position:relative;width:100%;height:1.05em;font-size:clamp(88px,15vw,220px);font-weight:700;letter-spacing:-.065em;line-height:1;margin:28px 0 36px}
.elv .refr .w{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.elv .refr .wA{color:var(--red);animation:elvWordA 3.4s var(--ease) infinite}
.elv .refr .wB{color:var(--violet-hi);text-shadow:0 0 60px rgba(139,92,246,.6);animation:elvWordB 3.4s var(--ease) infinite}
.elv .refr-k{display:inline-grid;margin:0}
.elv .refr-k .k{grid-area:1/1;justify-self:center}
.elv .refr-k .kA{animation:elvWordA 3.4s var(--ease) infinite}
.elv .refr-k .kB{animation:elvWordB 3.4s var(--ease) infinite}
.elv .lens{position:absolute;top:.02em;left:-25%;width:1.05em;height:1em;border-radius:.5em;animation:elvLens 3.4s cubic-bezier(.65,0,.35,1) infinite}

/* for you / not for you */
.elv .split-cols{display:grid;grid-template-columns:1fr 1fr;gap:24px;width:100%;text-align:left}
.elv .split-cols ul{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.elv .split-cols li{position:relative;padding-left:32px;font-size:17px;line-height:1.5;color:var(--graphite)}
.elv .split-cols li::before{position:absolute;left:0;top:-1px;font-weight:700;font-size:17px}
.elv .yes li::before{content:"✓";color:var(--green-t)}
.elv .no  li::before{content:"✕";color:var(--red-t)}

/* terminal index */
.elv .index{display:grid;grid-template-columns:1fr 1fr;gap:0 48px;width:100%;text-align:left;border-top:1px solid var(--line)}
.elv .index .row{display:grid;grid-template-columns:140px 1fr;gap:18px;align-items:baseline;padding:16px 0;border-bottom:1px solid var(--line)}
.elv .index .k{font-size:15px;font-weight:700;letter-spacing:-.01em;color:var(--ink)}
.elv .index .v{font-size:16px;line-height:1.45;color:var(--graphite)}

/* faq */
.elv .faq{width:100%;max-width:880px;display:flex;flex-direction:column;gap:12px;margin-top:40px;text-align:left}
.elv details{background:var(--mist);border-radius:22px;padding:0 30px}
.elv summary{list-style:none;cursor:pointer;padding:26px 0;font-size:21px;font-weight:700;letter-spacing:-.02em;display:flex;justify-content:space-between;align-items:center;gap:20px}
.elv summary::-webkit-details-marker{display:none}
.elv summary .plus{width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.14);flex:none;position:relative;transition:transform .3s var(--ease)}
.elv summary .plus::before,.elv summary .plus::after{content:"";position:absolute;left:8px;right:8px;top:12px;height:2px;border-radius:2px;background:#fff}
.elv summary .plus::after{transform:rotate(90deg)}
.elv details[open] summary .plus{transform:rotate(45deg)}
.elv details p{padding:0 0 26px}

/* dark block \u2014 was `background:var(--ink)`, which broke the moment --ink
   flipped to mean "white text" for the dark invert (2026-09-19): the "dark"
   card would have rendered WHITE. Needs a literal color, same reasoning the
   .boot fix below explains. Elevated one step above the pure-black page so
   both cards still read as distinct panels, not just orbs floating on #000. */
.elv .dark{border-radius:40px;background:#0B0E1C;border:1px solid rgba(255,255,255,.08);padding:clamp(36px,5vw,72px);position:relative;overflow:hidden;color:#fff}
/* .boot never had ITS OWN background at all \u2014 it only ever worked (barely)
   because the page around it was white and its copy was hardcoded white text,
   which on the OLD white-ground page meant invisible white-on-white copy any
   time the two orbs weren't covering it. Genuine pre-existing bug, fixed here
   as part of the invert rather than left in place: same panel treatment as
   .dark so the bootcamp card matches the transparency card. Position/overflow
   are still needed so the orbs clip to the card instead of bleeding into the
   PROBLEM section above it. */
.elv .boot{position:relative;overflow:hidden;border-radius:40px;border:1px solid rgba(183,148,255,.18);
  background:radial-gradient(70% 90% at 85% 10%,rgba(124,58,237,.42),transparent 65%),radial-gradient(55% 70% at 10% 100%,rgba(192,38,211,.22),transparent 70%),radial-gradient(40% 50% at 55% 55%,rgba(67,56,202,.18),transparent 70%),var(--stars),#0B0714;background-size:auto,auto,auto,var(--stars-size),auto}
.elv .dark h2{color:#fff}
.elv .dark p{color:#C3C8D4}
.elv .footer-note{width:100%;border-top:1px solid var(--line);margin-top:72px;padding-top:28px;text-align:left}
.elv .footer-note p{max-width:820px;font-size:13px;line-height:1.6;color:var(--caption)}

/* reveal */
.elv .rise{animation:elvRise 1s var(--ease) both}
.elv .r2{animation-delay:.08s}.elv .r3{animation-delay:.16s}.elv .r4{animation-delay:.24s}

@keyframes elvFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes elvRise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes elvPulse{0%{box-shadow:0 0 0 0 rgba(0,196,106,.55)}100%{box-shadow:0 0 0 10px rgba(0,196,106,0)}}
@keyframes elvSheen{0%,55%{left:-60%}100%{left:140%}}
@keyframes elvGrow{0%{transform:scaleX(.2)}60%,100%{transform:scaleX(1)}}
@keyframes elvWordA{0%,38%{opacity:1;filter:blur(0)}52%,90%{opacity:0;filter:blur(10px)}100%{opacity:1;filter:blur(0)}}
@keyframes elvWordB{0%,38%{opacity:0;filter:blur(10px)}56%,88%{opacity:1;filter:blur(0)}100%{opacity:0;filter:blur(10px)}}
@keyframes elvLens{0%,28%{left:-25%}66%,100%{left:110%}}

@media (max-width:1100px){ .elv .note{animation:none} .elv .g4{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:900px){
  .elv .g3,.elv .g2,.elv .g4,.elv .split-cols,.elv .index{grid-template-columns:1fr}
  .elv .index .row{grid-template-columns:1fr;gap:4px}
}
@media (max-width:560px){ .elv summary{font-size:18px} .elv details{padding:0 22px} .elv .btn{width:100%} }
@media (prefers-reduced-motion:reduce){
  .elv *{animation:none!important;transition:none!important}
  .elv .refr .wA,.elv .refr-k .kA,.elv .lens{opacity:0}
}

/* ─── PHONE ─────────────────────────────────────────────────────────────────
   The phone is the primary surface: every ad click lands here, so this block
   is not a fallback, it is the main design. Measured on an iPhone 13 (390px)
   against the live page — the numbers below are the real defects found, not
   guesses: hero h1 at 56px burned five lines and pushed the VSL under the
   fold, and section padding resolved to 160px top+bottom, leaving 282 / 222 /
   183px voids between blocks. */
@media (max-width:560px){
  /* sections were eating a third of the scroll in dead air */
  .elv .sec{padding:42px 0}
  .elv .sec > * + *{margin-top:14px}


}

/* Hero type on the GHL host block. GHL's own per-page <style> is keyed on the
   element id, so class rules need !important here to land. */
@media (max-width:560px){
  .fullSection.c-section h1{font-size:34px!important;line-height:1.06!important;letter-spacing:-.025em!important}
  .fullSection.c-section .c-paragraph p{font-size:15px!important;line-height:1.45!important}
  .fullSection.c-section .c-sub-heading{padding:0!important}
}

/* Image placeholders were shipping to live traffic as literal "IMG 03/04/05"
   text on every viewport. Hidden until the founder supplies the real assets —
   the sections read fine without them; remove this rule when the art lands. */
.elv .ph{display:none}

/* The logo row rendered as one run-on string, "MetaTrader 4MetaTrader
   5TelegramTradingView", on EVERY viewport — the separators were briefly scoped
   to the phone block, which left the desktop defect in place. */
/* proof bar + "fonctionne avec" read as one trust block, not two collided lines */
.elv .works{gap:12px;padding:0 0 clamp(40px,6vw,72px)}
.elv [data-elave-sec="proof"]{padding-bottom:18px!important}
@media (max-width:400px){ .elv [data-elave-sec="proof"] h2{font-size:31px} }
.elv .logos{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 0}
.elv .logos span{padding:0 14px;line-height:1.3}
.elv .logos span + span{border-left:1px solid var(--line)}
@media (max-width:560px){ .elv .logos span{padding:0 8px;font-size:11.5px} }

/* ─── ORBS, PER VIEWPORT ────────────────────────────────────────────────────
   The colour orbs were authored in fixed pixels for the laptop canvas, so the
   phone inherited laptop-sized blobs: the red and gold ones measured 460px and
   420px wide on a 390px screen and stopped reading as accents behind the
   content — they became a full-screen red/yellow wash.

   Size is capped in vw and the blur scales with it (a 70px blur on a 210px orb
   is proportionally twice what it is on a 460px one). Opacity is derived from
   each orb's own --oo so the composition keeps its relative weighting instead
   of being flattened to one value. */
@media (max-width:900px){
  .elv .orb{width:min(var(--ow),62vw);height:min(var(--oh),46vw);
            opacity:calc(var(--oo) * .6);filter:blur(52px)}
}
@media (max-width:560px){
  .elv .orb{width:min(var(--ow),54vw);height:min(var(--oh),38vw);
            opacity:calc(var(--oo) * .42);filter:blur(38px)}
}

/* ─── PHONE CARD SCALE ──────────────────────────────────────────────────────
   The cards were authored at desktop scale and the phone inherited it: 32px
   padding and a 44px number on a 390px screen meant one card nearly filled the
   viewport, so the three-step and three-problem groups read as a long scroll
   instead of a set you can take in. Tightened so two cards are visible at once.

   The bruit -> clarité cycle was also shortened from 6s to 3.4s above: at 6s a
   visitor scrolling past had a good chance of never seeing the word flip, which
   is the whole point of that section. */
@media (max-width:560px){
  .elv .card{padding:15px 15px;border-radius:18px;gap:6px;
             box-shadow:0 1px 2px rgba(10,15,30,.04),0 12px 28px -20px rgba(10,15,30,.18)}
  .elv .card h3{font-size:16px;line-height:1.18}
  .elv .card p{font-size:13.5px;line-height:1.4}
  .elv .num{font-size:26px;margin-bottom:-2px}
  .elv .icon{width:40px;height:40px;border-radius:12px}
  .elv .icon svg{width:20px;height:20px}
  .elv .icon.sm{width:26px;height:26px;border-radius:8px}
  .elv .g3,.elv .g2,.elv .g4{gap:9px}
  /* the step/problem groups read as one set, not an endless scroll */
  .elv .sec{padding:34px 0}
}


/* ─── REVIEWS — real Trustpilot testimonials ────────────────────────────────
   Liquid glass cards (reuses .glass — same recipe as the rest of the page,
   nothing bespoke) in a horizontal snap-scroll rail rather than a stacked
   grid: five full testimonials stacked vertically would add ~1400px to an
   already-long page; side by side they cost one row's height regardless of
   count, and a horizontal rail is the native, expected pattern for reviews. */
.elv .rv-badge{position:relative;display:inline-flex;align-items:center;gap:8px;
  padding:9px 16px;border-radius:999px;background:rgba(255,255,255,.08);
  backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);
  border:1px solid rgba(255,255,255,.16);box-shadow:0 14px 34px -14px rgba(0,182,122,.35),inset 0 1px 0 rgba(255,255,255,.1);
  transform:rotate(-2deg);margin-bottom:14px;font-size:13px;font-weight:700;color:#2ED8A7;letter-spacing:.02em}
.elv .rv-badge .rv-stars{gap:2px}
.elv .rv-badge svg{width:13px;height:13px}

/* aggregate proof strip — one real, computed line, never an invented score */
.elv .rv-stat{display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:8px 14px;margin:6px 0 4px}
.elv .rv-stat b{font-size:clamp(30px,3.4vw,40px);font-weight:800;letter-spacing:-.03em;color:#fff}
.elv .rv-stat span{font-size:15px;color:var(--caption)}

.elv .rv-stars{display:flex;gap:3px;margin:14px 0 10px}
.elv .rv-stars svg{width:16px;height:16px}

.elv .rv-rail{display:flex;gap:18px;width:100%;overflow-x:auto;scroll-snap-type:x mandatory;
  padding:8px 4px 22px;margin-top:8px;-webkit-overflow-scrolling:touch;scrollbar-width:none;position:relative;z-index:1}
.elv .rv-rail::-webkit-scrollbar{display:none}

/* the "wall" — a real masonry of every review at once, not five in a strip.
   CSS columns (not grid) so cards of very different lengths (a one-line Chuck
   next to a three-paragraph Pascal) pack tight instead of forcing every row
   to the height of its tallest card. */
.elv .rv-wall{column-count:3;column-gap:18px;width:100%;margin-top:8px;position:relative;z-index:1}
.elv .rv-wall .rv-card{width:100%;break-inside:avoid;-webkit-column-break-inside:avoid;margin:0 0 18px}
@media (max-width:1100px){ .elv .rv-wall{column-count:2} }
@media (max-width:640px){ .elv .rv-wall{column-count:1} }

.elv .rv-card{flex:0 0 auto;width:min(360px,82vw);scroll-snap-align:start;text-align:left;
  padding:26px 24px;border-radius:24px;display:flex;flex-direction:column;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06),inset 0 -1px 0 rgba(0,0,0,.3),0 1px 2px rgba(0,0,0,.3),0 34px 64px -20px rgba(0,0,0,.55)}
.elv .rv-top{display:flex;align-items:center;gap:12px}
.elv .rv-avatar{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:14px;font-weight:700;flex:none;border:1px solid rgba(255,255,255,.14)}
.elv .rv-who{display:flex;flex-direction:column;gap:1px;min-width:0}
.elv .rv-name{font-size:15px;font-weight:700;color:var(--ink);letter-spacing:-.01em}
.elv .rv-meta{font-size:12.5px;color:var(--caption)}
.elv .rv-title{font-size:16.5px;font-weight:700;letter-spacing:-.015em;line-height:1.28;margin-bottom:8px}
.elv .rv-body{font-size:14px;line-height:1.5;color:var(--graphite);flex:1}
.elv .rv-foot{display:flex;align-items:center;gap:10px;margin-top:16px;padding-top:14px;
  border-top:1px solid var(--line);flex-wrap:wrap}
.elv .rv-date{font-size:12px;color:var(--caption)}
.elv .rv-tag{font-size:11.5px;font-weight:600;color:#2ED8A7;background:rgba(0,182,122,.16);
  padding:4px 10px;border-radius:999px}

@media (max-width:560px){
  .elv .rv-rail{gap:12px;padding:6px 2px 18px}
  .elv .rv-wall{column-gap:12px}
  .elv .rv-wall .rv-card{margin-bottom:12px}
  .elv .rv-card{width:84vw;padding:19px 18px;border-radius:19px}
  .elv .rv-title{font-size:15px}
  .elv .rv-body{font-size:13.5px}
  .elv .rv-badge{font-size:12px;padding:7px 13px}
}

/* Collapsed wall: 20 full testimonials is ~8,000px of thumb-scrolling on a
   phone. Show a screenful of proof, let the reader ask for the rest. */
.elv .rv-wall.is-collapsed .rv-card:nth-child(n+10){display:none}
@media (max-width:640px){ .elv .rv-wall.is-collapsed .rv-card:nth-child(n+7){display:none} }
.elv .rv-more{margin-top:10px;height:52px;padding:0 26px;border-radius:999px;font-size:16px;font-weight:600;
  color:#fff;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);cursor:pointer;font-family:inherit}
.elv .rv-more:active{transform:scale(.97)}

/* closing block + footer had no rules at all — the risk disclaimer rendered as
   large white centred body text */
.elv .final{padding:clamp(72px,10vw,130px) 0 36px}
.elv .footer{width:100%;border-top:1px solid var(--line);margin-top:clamp(48px,7vw,80px);padding-top:26px;
  display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
.elv .footer .logo{font-size:18px;font-weight:800;letter-spacing:-.02em}
.elv .footer p{font-size:12px;line-height:1.6;color:var(--caption);max-width:720px}

/* ─── COACHES — Alex's real photo, Billy still a placeholder until his lands ── */
.elv .split{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:clamp(40px,5vw,64px);width:100%;text-align:left}
.elv .coach{background:#0E0A18;border:1px solid rgba(255,255,255,.07);border-radius:28px;overflow:hidden;
  box-shadow:0 1px 2px rgba(0,0,0,.4),0 30px 70px -30px rgba(0,0,0,.65)}
.elv .coach .photo{position:relative;width:100%;aspect-ratio:4/5;overflow:hidden;background:#05070C}
.elv .coach .photo img{width:100%;height:100%;object-fit:cover;object-position:top center}
.elv .coach-meta{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:22px 24px;flex-wrap:wrap}
/* Billy has no photo yet — without this the grid stretched his card to Alex's
   full portrait height, leaving a tall empty panel beside the head coach. */
.elv .g2{align-items:start}
.elv .coach .head-tag{position:absolute;left:16px;top:16px;z-index:1;padding:7px 12px;border-radius:999px;
  font-size:12px;font-weight:700;letter-spacing:.06em;color:#fff;background:rgba(0,0,0,.55);
  border:1px solid rgba(255,255,255,.18);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
/* The bootcamp card never had padding because it never had a background — its
   copy sat flush against the edges the moment the panel became visible. */
.elv .boot{padding:clamp(24px,5vw,64px);display:grid;gap:28px}
.elv .boot-copy{position:relative;display:flex;flex-direction:column;gap:16px;max-width:680px}
@media (max-width:900px){ .elv .split{align-items:flex-start} }

/* ─── RESULTS — students' FTMO certificates, the luxury proof vitrine ───────
   Gold is used ONLY here: it echoes the gold name on the FTMO certificates
   themselves, so the frame and the document read as one object. Glass mounts,
   a hairline gold edge, and the certificate is never cropped (contain). */
.elv .rs-sec{overflow:hidden}
.elv .rs-gold{color:#E9CF8E;background:linear-gradient(100deg,#F6E3B0 0%,#D4B26A 45%,#F3DDA2 70%,#C89B4B 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.elv .rs-gold-t{color:#E0C07A}
.elv .rs-badge{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:999px;margin-bottom:16px;
  font-size:13px;font-weight:700;letter-spacing:.01em;color:#E9CF8E;background:rgba(212,178,106,.08);
  border:1px solid rgba(212,178,106,.28);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
  box-shadow:0 14px 34px -16px rgba(212,178,106,.45),inset 0 1px 0 rgba(255,255,255,.08)}
.elv .rs-stat{display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:8px 12px;margin-top:6px}
.elv .rs-stat b{font-size:clamp(30px,3.4vw,40px);font-weight:800;letter-spacing:-.03em;color:#fff}
.elv .rs-stat span{font-size:15px;color:var(--caption)}
.elv .rs-stat i{width:1px;height:22px;background:var(--line);align-self:center;margin:0 6px}

.elv .rs-stage{position:relative;width:100%;margin-top:clamp(36px,5vw,56px)}
.elv .rs-rail{display:flex;align-items:flex-start;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;
  -webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;
  padding:14px max(20px,calc((100vw - 1180px)/2)) 30px;scroll-padding-inline:max(20px,calc((100vw - 1180px)/2))}
.elv .rs-rail::-webkit-scrollbar{display:none}
.elv .rs-frame{flex:0 0 auto;width:min(360px,80vw);scroll-snap-align:start;display:flex;flex-direction:column;
  padding:12px;border-radius:26px;text-align:left;cursor:zoom-in;font-family:inherit;color:inherit;
  background:linear-gradient(165deg,rgba(255,255,255,.08),rgba(255,255,255,.02));
  border:1px solid rgba(212,178,106,.22);-webkit-backdrop-filter:blur(22px) saturate(160%);backdrop-filter:blur(22px) saturate(160%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.09),0 30px 70px -30px rgba(0,0,0,.9),0 0 0 1px rgba(0,0,0,.4);
  transition:transform .35s var(--ease),border-color .35s var(--ease),box-shadow .35s var(--ease)}
.elv .rs-frame:hover{transform:translateY(-6px);border-color:rgba(212,178,106,.5);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 40px 80px -30px rgba(212,178,106,.35),0 0 0 1px rgba(0,0,0,.4)}
.elv .rs-frame:active{transform:scale(.985)}
.elv .rs-frame:focus-visible{outline:2px solid #D4B26A;outline-offset:3px}
.elv .rs-mount{position:relative;display:block;aspect-ratio:1/1;border-radius:16px;overflow:hidden;background:#1B1C1E;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)}
.elv .rs-mount img{width:100%;height:100%;object-fit:contain;display:block}
.elv .rs-mount picture{display:contents}
/* a slow sheen crossing the certificate, like light on a framed document */
.elv .rs-mount::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(115deg,transparent 30%,rgba(255,240,200,.10) 45%,transparent 60%);
  transform:translateX(-120%);animation:rsSheen 7s var(--ease) infinite}
.elv .rs-frame:nth-child(2) .rs-mount::after{animation-delay:-1.6s}
.elv .rs-frame:nth-child(3) .rs-mount::after{animation-delay:-3.2s}
.elv .rs-frame:nth-child(4) .rs-mount::after{animation-delay:-4.8s}
@keyframes rsSheen{0%,60%{transform:translateX(-120%)}100%{transform:translateX(120%)}}
.elv .rs-zoom{position:absolute;right:10px;bottom:10px;width:34px;height:34px;border-radius:50%;display:flex;
  align-items:center;justify-content:center;background:rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.18);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:.85}
.elv .rs-meta{display:flex;flex-direction:column;gap:6px;padding:14px 6px 4px}
.elv .rs-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.elv .rs-name{font-size:17px;font-weight:700;letter-spacing:-.015em;color:#fff}
.elv .rs-kind{font-size:11.5px;font-weight:700;letter-spacing:.02em;padding:4px 10px;border-radius:999px;white-space:nowrap}
.elv .rs-k-green{color:#2ED8A7;background:rgba(0,196,106,.14);border:1px solid rgba(0,196,106,.28)}
.elv .rs-k-gold{color:#E9CF8E;background:rgba(212,178,106,.12);border:1px solid rgba(212,178,106,.3)}
.elv .rs-k-blue{color:#C9B0FF;background:rgba(139,92,246,.16);border:1px solid rgba(139,92,246,.36)}
.elv .rs-quote{font-size:13.5px;line-height:1.45;color:#C7CCD6;font-style:italic;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.elv .rs-date{font-size:12.5px;color:var(--caption)}

.elv .rs-arrows{display:flex;justify-content:center;gap:12px;margin-top:4px}
.elv .rs-arrow{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);transition:background .2s var(--ease)}
.elv .rs-arrow:hover{background:rgba(212,178,106,.16);border-color:rgba(212,178,106,.4)}
.elv .rs-more{margin-top:18px}
.elv .rs-note{max-width:620px;margin-top:22px;font-size:12px;line-height:1.55;color:#7E869A}
@media (hover:none){ .elv .rs-arrows{display:none} }
@media (max-width:640px){
  .elv .rs-rail{gap:12px;padding:10px 20px 24px;scroll-padding-inline:20px}
  .elv .rs-frame{width:78vw;padding:10px;border-radius:22px}
  .elv .rs-name{font-size:16px}
}
@media (prefers-reduced-motion:reduce){ .elv .rs-mount::after{display:none} }

/* viewer lives on <body> (outside .elv), so it is styled unscoped */
html.elv-lock{overflow:hidden}
.rs-viewer{position:fixed;inset:0;z-index:2147483000;display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:calc(env(safe-area-inset-top,0px) + 64px) 16px calc(env(safe-area-inset-bottom,0px) + 24px);
  background:rgba(3,4,8,.86);-webkit-backdrop-filter:blur(22px) saturate(140%);backdrop-filter:blur(22px) saturate(140%);
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",Helvetica,Arial,sans-serif;color:#fff;
  overscroll-behavior:contain;animation:rsIn .28s cubic-bezier(.22,1,.36,1)}
.rs-viewer[hidden]{display:none!important}
@keyframes rsIn{from{opacity:0}to{opacity:1}}
.rs-v-bar{position:absolute;top:calc(env(safe-area-inset-top,0px) + 14px);left:16px;right:16px;display:flex;justify-content:space-between;align-items:center}
.rs-v-count{font-size:13px;font-weight:600;color:#9AA1B4;letter-spacing:.04em}
.rs-v-close,.rs-v-nav{display:flex;align-items:center;justify-content:center;border-radius:50%;cursor:pointer;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);color:#fff;padding:0}
.rs-v-close{width:44px;height:44px}
.rs-v-stage{width:100%;max-width:880px;flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:center;touch-action:pan-y}
.rs-v-img{max-width:100%;max-height:100%;object-fit:contain;border-radius:16px;
  border:1px solid rgba(212,178,106,.3);box-shadow:0 40px 100px -30px rgba(212,178,106,.3)}
.rs-v-cap{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;max-width:620px;margin-top:16px}
.rs-v-cap b{font-size:18px;font-weight:700}
.rs-v-cap span{font-size:13.5px;color:#9AA1B4}
.rs-v-cap em{font-size:14px;color:#C7CCD6;line-height:1.45}
.rs-v-nav{position:absolute;top:50%;width:52px;height:52px;translate:0 -50%}
.rs-v-prev{left:20px}.rs-v-next{right:20px}
@media (max-width:640px){ .rs-v-nav{display:none} .rs-v-cap b{font-size:16px} }


/* ─── DEEP GALAXY — Elave purple is the brand; the page is space ─────────────
   Black ground + a faint starfield everywhere, and purple nebula clouds only
   in chosen spots (hero, the bruit→clarté moment, the steps, the bootcamp card,
   the final CTA) so the purple reads as light in the dark, not as a wash.
   Pure gradients: no blur filters, no images, cheap on phones. */
.elv, [data-elv-galaxy] {
  --stars: radial-gradient(1px 1px at 23px 37px, rgba(255,255,255,.55) 50%, transparent 55%),
           radial-gradient(1px 1px at 127px 91px, rgba(255,255,255,.38) 50%, transparent 55%),
           radial-gradient(1.4px 1.4px at 71px 153px, rgba(216,196,255,.6) 50%, transparent 55%),
           radial-gradient(1px 1px at 181px 13px, rgba(255,255,255,.3) 50%, transparent 55%),
           radial-gradient(1px 1px at 157px 171px, rgba(255,255,255,.42) 50%, transparent 55%),
           radial-gradient(1.2px 1.2px at 263px 219px, rgba(196,170,255,.45) 50%, transparent 55%),
           radial-gradient(1px 1px at 289px 67px, rgba(255,255,255,.3) 50%, transparent 55%);
  --stars-size: 200px 200px, 200px 200px, 200px 200px, 200px 200px, 200px 200px, 310px 310px, 310px 310px;
}
.elv { background-color:#000; background-image:var(--stars); background-size:var(--stars-size); }
.elv .violet{background:linear-gradient(100deg,#E4D6FF 0%,#B794FF 38%,#8B5CF6 70%,#C084FC 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:#B794FF}
.elv .violet-t{color:var(--violet-hi)}
.elv [data-elave-sec="refraction"]{background:
  radial-gradient(48% 55% at 50% 48%, rgba(124,58,237,.30), transparent 72%),
  radial-gradient(26% 34% at 28% 62%, rgba(192,38,211,.16), transparent 72%),
  radial-gradient(26% 30% at 74% 34%, rgba(67,56,202,.22), transparent 72%)}
.elv [data-elave-sec="steps"]{background:
  radial-gradient(60% 50% at 50% 0%, rgba(124,58,237,.22), transparent 70%),
  radial-gradient(30% 40% at 95% 90%, rgba(192,38,211,.12), transparent 72%), #0A0712}
.elv [data-elave-sec="close"]{background:
  radial-gradient(70% 55% at 50% 30%, rgba(124,58,237,.34), transparent 72%),
  radial-gradient(35% 40% at 20% 70%, rgba(192,38,211,.16), transparent 72%),
  radial-gradient(30% 35% at 82% 60%, rgba(67,56,202,.2), transparent 72%), #07050D}
.elv .rv-more{border-color:rgba(183,148,255,.28)}
.elv .rv-more:hover{background:rgba(139,92,246,.16)}

/* ─── THE SYSTEM — five thin liquid-glass tool rows ──────────────────────── */
.elv .bg-violet{background:linear-gradient(135deg,#A773FF,#7C3AED)}
.elv .tools{display:grid;grid-template-columns:1fr;gap:12px;width:100%;max-width:820px;text-align:left}
.elv .tool{position:relative;display:flex;align-items:center;gap:16px;padding:18px 20px;border-radius:24px;overflow:hidden;
  background:linear-gradient(150deg,rgba(255,255,255,.085),rgba(255,255,255,.02) 55%,rgba(255,255,255,.05));
  border:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(20px) saturate(160%);backdrop-filter:blur(20px) saturate(160%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 24px 50px -30px rgba(0,0,0,.9);
  transition:transform .3s var(--ease),border-color .3s var(--ease)}
.elv .tool:hover{transform:translateY(-3px);border-color:rgba(183,148,255,.3)}
/* a coloured glow bleeding in from the icon side gives each row its accent */
.elv .tool::before{content:"";position:absolute;left:-40px;top:50%;width:160px;height:160px;translate:0 -50%;border-radius:50%;
  background:var(--tool-glow);filter:blur(40px);opacity:.35;pointer-events:none}
.elv .tool-blue{--tool-glow:#0A84FF;--tool-key:#4DB8FF}
.elv .tool-violet{--tool-glow:#8B5CF6;--tool-key:#B794FF}
.elv .tool-green{--tool-glow:#00C46A;--tool-key:#2ED8A7}
.elv .tool-orange{--tool-glow:#FF8A00;--tool-key:#FFB74D}
.elv .tool-red{--tool-glow:#FF2D55;--tool-key:#FF6B85}
.elv .tool .icon{width:46px;height:46px;border-radius:14px;position:relative;box-shadow:inset 0 1px 0 rgba(255,255,255,.3)}
.elv .tool .icon svg{width:22px;height:22px}
.elv .tool-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;position:relative}
.elv .tool-title{font-size:18px;font-weight:700;letter-spacing:-.02em;line-height:1.2;color:#fff}
.elv .tool-key{color:var(--tool-key)}
.elv .tool-body{font-size:14.5px;line-height:1.42;color:#C7CCD6}
.elv .tool-tag{position:absolute;top:12px;right:14px;display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;
  font-size:11px;font-weight:700;letter-spacing:.03em;color:var(--tool-key);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1)}
.elv .tool-tag i{width:6px;height:6px;border-radius:50%;background:var(--tool-key);box-shadow:0 0 8px var(--tool-key);animation:elvBlink 2.4s ease-in-out infinite}
.elv .tool-txt{padding-right:92px}
@keyframes elvBlink{0%,100%{opacity:1}50%{opacity:.35}}
@media (max-width:640px){
  .elv .tools{grid-template-columns:1fr;gap:10px}
  .elv .tool{padding:14px 14px;gap:13px;border-radius:20px;align-items:flex-start}
  .elv .tool .icon{width:40px;height:40px;border-radius:12px}
  .elv .tool .icon svg{width:19px;height:19px}
  .elv .tool-title{font-size:16px}
  .elv .tool-body{font-size:13.5px}
  .elv .tool-txt{padding-right:0}
  .elv .tool-tag{position:static;align-self:flex-start;order:3;display:none}
}

/* ─── LE PROBLÈME — cards a notch thinner (founder: "just a little bit") ─── */
.elv [data-elave-sec="problem"] .card{padding:22px 24px;gap:8px;border-radius:26px}
.elv [data-elave-sec="problem"] .num{font-size:clamp(30px,3.4vw,44px)}
.elv [data-elave-sec="problem"] .t-card{font-size:clamp(19px,1.8vw,24px)}
@media (max-width:560px){
  .elv [data-elave-sec="problem"] .card{padding:12px 14px;gap:4px;border-radius:16px}
  .elv [data-elave-sec="problem"] .num{font-size:22px}
}

/* ─── TRUSTPILOT v2 — score card, living wall, full-screen reader ───────────
   The old section was a masonry of full-length reviews: thousands of px of
   grey text on a phone. Now: one score, computed theme chips, two rows of
   short excerpts drifting in opposite directions, full text on demand.
   Moving cards carry NO backdrop-filter — 40 blurred layers in motion would
   stutter on a phone. */
.elv .rv-sec{overflow:hidden}
.elv .rv-green{color:#2ED8A7;background:linear-gradient(100deg,#7BF1C8,#00B67A 60%,#2ED8A7);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.elv .rv-stars{display:flex;gap:3px;margin:12px 0 8px}
.elv .rv-tile{width:19px;height:19px;border-radius:3px;background:#00B67A;display:flex;align-items:center;justify-content:center}
.elv .rv-tile--off{background:rgba(255,255,255,.14)}
.elv .rv-tile svg{width:12px;height:12px}
.elv .rv-stars--big{gap:4px;margin:0}
.elv .rv-stars--big .rv-tile{width:30px;height:30px;border-radius:5px}
.elv .rv-stars--big .rv-tile svg{width:19px;height:19px}

.elv .rv-score{display:flex;align-items:center;gap:22px;margin-top:26px;padding:20px 28px;border-radius:28px;
  background:linear-gradient(150deg,rgba(255,255,255,.10),rgba(255,255,255,.03) 55%,rgba(0,182,122,.08));
  border:1px solid rgba(255,255,255,.14);-webkit-backdrop-filter:blur(24px) saturate(170%);backdrop-filter:blur(24px) saturate(170%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 30px 70px -34px rgba(0,182,122,.45)}
.elv .rv-score-num{display:flex;align-items:baseline;gap:2px}
.elv .rv-score-num b{font-size:clamp(52px,6vw,72px);font-weight:800;letter-spacing:-.05em;line-height:.9;color:#fff}
.elv .rv-score-num span{font-size:22px;font-weight:700;color:rgba(255,255,255,.55)}
.elv .rv-score-side{display:flex;flex-direction:column;align-items:flex-start;gap:9px;text-align:left}
.elv .rv-score-cap{font-size:14px;line-height:1.35;color:#C7CCD6;max-width:230px}
.elv .rv-score-cap strong{color:#fff;font-weight:700}
.elv .rv-themes{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:18px}
.elv .rv-theme{display:inline-flex;align-items:baseline;gap:6px;padding:7px 14px;border-radius:999px;font-size:13.5px;color:#DADFEA;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1)}
.elv .rv-theme b{font-size:15px;font-weight:800}
.elv .rv-theme--violet b{color:#B794FF}.elv .rv-theme--orange b{color:#FFB74D}
.elv .rv-theme--blue b{color:#4DB8FF}.elv .rv-theme--green b{color:#2ED8A7}

/* the living wall */
.elv .rv-marquee{display:flex;flex-direction:column;gap:14px;margin-top:clamp(34px,5vw,52px);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent)}
.elv .rv-row{overflow:hidden;width:100%}
.elv .rv-track{display:flex;gap:14px;width:max-content;padding:4px 0;animation:rvMarq var(--rv-dur,70s) linear infinite}
.elv .rv-track--rev{animation-direction:reverse}
.elv .rv-marquee:hover .rv-track,.elv .rv-track:focus-within{animation-play-state:paused}
@keyframes rvMarq{from{transform:translateX(0)}to{transform:translateX(calc(-50% - 7px))}}

.elv .rv-card{flex:0 0 auto;width:320px;display:flex;flex-direction:column;text-align:left;padding:18px 18px 14px;border-radius:22px;
  font-family:inherit;color:inherit;cursor:pointer;scroll-snap-align:none;
  background:linear-gradient(160deg,rgba(255,255,255,.075),rgba(255,255,255,.025));
  border:1px solid rgba(255,255,255,.09);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 20px 40px -26px rgba(0,0,0,.9);
  -webkit-backdrop-filter:none;backdrop-filter:none;transition:border-color .25s var(--ease),transform .25s var(--ease)}
.elv .rv-card:hover{border-color:rgba(46,216,167,.4);transform:translateY(-3px)}
.elv .rv-card:focus-visible{outline:2px solid #2ED8A7;outline-offset:2px}
.elv .rv-card::before{display:none}
.elv .rv-card .rv-avatar{width:36px;height:36px;font-size:12.5px}
.elv .rv-card .rv-name{font-size:14.5px}
.elv .rv-card .rv-meta{font-size:12px}
.elv .rv-card .rv-title{font-size:15px;margin:0 0 6px;line-height:1.3;
  display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.elv .rv-card .rv-body{font-size:13.5px;line-height:1.5;color:#C7CCD6;
  display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.elv .rv-card .rv-foot{margin-top:12px;padding-top:10px;justify-content:space-between}
.elv .rv-tag{display:inline-flex;align-items:center;gap:5px}
.elv .rv-read{font-size:12px;font-weight:700;color:#2ED8A7}
@media (max-width:640px){
  .elv .rv-score{gap:14px;padding:16px 18px;border-radius:22px;margin-top:20px}
  .elv .rv-score-num b{font-size:48px}
  .elv .rv-stars--big .rv-tile{width:24px;height:24px}
  .elv .rv-stars--big .rv-tile svg{width:15px;height:15px}
  .elv .rv-score-cap{font-size:12.5px;max-width:180px}
  .elv .rv-theme{font-size:12.5px;padding:6px 11px}
  .elv .rv-card{width:272px;padding:15px 15px 12px}
  .elv .rv-marquee{gap:10px}.elv .rv-track{gap:10px}
}
@media (prefers-reduced-motion:reduce){
  .elv .rv-track{animation:none}
  .elv .rv-row{overflow-x:auto;scrollbar-width:none}
}

/* full-screen reader (lives on <body>, unscoped) */
.rr-sheet{position:fixed;inset:0;z-index:2147483000;display:flex;flex-direction:column;align-items:center;
  padding:calc(env(safe-area-inset-top,0px) + 12px) 12px 0;background:rgba(3,4,8,.86);
  -webkit-backdrop-filter:blur(22px) saturate(140%);backdrop-filter:blur(22px) saturate(140%);color:#fff;
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",Helvetica,Arial,sans-serif;animation:rsIn .28s cubic-bezier(.22,1,.36,1)}
.rr-sheet[hidden]{display:none!important}
.rr-head{width:100%;max-width:720px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 4px 14px}
.rr-score{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px}
.rr-score b{font-size:28px;font-weight:800;letter-spacing:-.04em}
.rr-score > span{font-size:15px;color:rgba(255,255,255,.55);margin-left:-6px}
.rr-score em{font-style:normal;font-size:12.5px;color:#9AA1B4;width:100%}
.rr-score .rv-stars{display:flex;gap:3px;margin:0}
.rr-list{width:100%;max-width:720px;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;
  gap:12px;padding:4px 2px calc(env(safe-area-inset-bottom,0px) + 28px);-webkit-overflow-scrolling:touch}
.rr-sheet .rv-card{width:100%;cursor:default;display:flex;flex-direction:column;padding:18px;border-radius:20px;
  background:linear-gradient(160deg,rgba(255,255,255,.08),rgba(255,255,255,.03));border:1px solid rgba(255,255,255,.1)}
.rr-sheet .rv-card.is-focus{border-color:rgba(46,216,167,.55);box-shadow:0 0 0 3px rgba(46,216,167,.15)}
.rr-sheet .rv-top{display:flex;align-items:center;gap:11px}
.rr-sheet .rv-avatar{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex:none;border:1px solid rgba(255,255,255,.14)}
.rr-sheet .rv-who{display:flex;flex-direction:column}
.rr-sheet .rv-name{font-size:15px;font-weight:700}
.rr-sheet .rv-meta{font-size:12px;color:#9AA1B4}
.rr-sheet .rv-stars{display:flex;gap:3px;margin:12px 0 8px}
.rr-sheet .rv-tile{width:19px;height:19px;border-radius:3px;background:#00B67A;display:flex;align-items:center;justify-content:center}
.rr-sheet .rv-tile--off{background:rgba(255,255,255,.14)}
.rr-sheet .rv-tile svg{width:12px;height:12px}
.rr-sheet .rv-title{font-size:16px;font-weight:700;margin:0 0 6px;line-height:1.3}
.rr-sheet .rv-body{font-size:14.5px;line-height:1.55;color:#D2D6E0;margin:0}
.rr-sheet .rv-foot{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.1)}
.rr-sheet .rv-tag{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;color:#2ED8A7;background:rgba(0,182,122,.16);padding:4px 10px;border-radius:999px}

/* ─── NO OLD-PAGE FLASH ─────────────────────────────────────────────────────
   GHL paints its raw hero (old copy, white feature cards) before acces.js has
   restyled it. Once this stylesheet is in, that raw hero is held invisible
   until the script marks the page ready, then fades in finished. The CSS-only
   failsafe reveals it after 2.5s regardless, so a script failure can never
   leave a visitor on a blank screen. */
/* The curtain is html::after, not the hero itself: GHL pins
   `animation:none !important` on its sections by id, which killed the failsafe
   when it lived there. Nothing in GHL styles html::after. */
html::after { content: ""; position: fixed; inset: 0; z-index: 2147482000; pointer-events: none;
  background: #000; opacity: 1; animation: elvUncloak .35s ease 2.5s forwards; }
html.elv-ready::after { opacity: 0; visibility: hidden; animation: none;
  transition: opacity .35s cubic-bezier(.22,1,.36,1), visibility 0s linear .35s; }
@keyframes elvUncloak { to { opacity: 0; visibility: hidden } }

/* footer: the real ElaveFX lockup (transparent PNG cut from the wordmark) */
.elv .footer-logo{display:block;width:min(230px,58vw);height:auto;margin:0 auto 8px;
  filter:drop-shadow(0 0 24px rgba(124,58,237,.45))}

/* ─── THE FINALE — identity split, galaxy stage, the close ─────────────────
   Gold appears only where money/proof lives (certificates, payout quote, the
   CTA rim); purple carries the brand. Orbit thumbs are 10KB jpgs, no blur. */
.elv .fin{position:relative;overflow:hidden;padding:clamp(80px,10vw,130px) 0 36px;
  background:radial-gradient(60% 40% at 50% 62%,rgba(124,58,237,.30),transparent 72%),
             radial-gradient(40% 30% at 50% 70%,rgba(212,178,106,.12),transparent 70%),#030207}

/* 1 · identity split */
.elv .fin-split{display:grid;grid-template-columns:1fr auto 1fr;align-items:stretch;gap:18px;width:100%;max-width:1000px;margin-top:clamp(36px,5vw,56px);text-align:left}
.elv .fin-side{position:relative;border-radius:28px;padding:28px 28px 26px;overflow:hidden}
.elv .fin-no{background:linear-gradient(160deg,rgba(255,255,255,.04),rgba(255,255,255,.01));border:1px solid rgba(255,255,255,.07);filter:saturate(.6)}
.elv .fin-no .fin-side-t{color:rgba(255,255,255,.55)}
.elv .fin-no li{color:#8C92A4}.elv .fin-no li::before{content:"✕";color:#FF6B85}
.elv .fin-yes{background:linear-gradient(150deg,rgba(167,115,255,.22),rgba(124,58,237,.08) 55%,rgba(212,178,106,.10));
  border:1px solid rgba(196,170,255,.4);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 30px 80px -30px rgba(124,58,237,.8)}
.elv .fin-yes li{color:#F2EDFF}.elv .fin-yes li::before{content:"✓";color:#E9CF8E}
.elv .fin-side-k{font-size:12px;font-weight:800;letter-spacing:.14em;color:#9AA1B4;margin-bottom:8px}
.elv .fin-yes .fin-side-k{color:#E9CF8E}
.elv .fin-side-t{font-size:clamp(22px,2.2vw,28px);font-weight:800;letter-spacing:-.03em;line-height:1.1;margin-bottom:16px;color:#fff}
.elv .fin-side ul{list-style:none;margin:0;padding:0;display:grid;gap:11px}
.elv .fin-side li{position:relative;padding-left:28px;font-size:16px;line-height:1.4}
.elv .fin-side li::before{position:absolute;left:0;top:0;font-weight:800}
.elv .fin-vs{align-self:center;font-size:13px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#9AA1B4;
  width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.14);background:#07050D}

/* 2 · the stage */
.elv .fin-stage{position:relative;margin-top:clamp(70px,9vw,120px);min-height:min(820px,100vh);display:flex;align-items:center;justify-content:center;padding:60px 20px}
.elv .fin-nebula{position:absolute;inset:-10% -20%;pointer-events:none;
  background:radial-gradient(34% 30% at 50% 50%,rgba(124,58,237,.55),transparent 70%),
             radial-gradient(22% 20% at 34% 40%,rgba(192,38,211,.28),transparent 70%),
             radial-gradient(22% 22% at 68% 58%,rgba(67,56,202,.32),transparent 70%),
             radial-gradient(18% 14% at 50% 70%,rgba(212,178,106,.22),transparent 70%)}
.elv .fin-ring{position:absolute;left:50%;top:50%;width:min(900px,140vw);aspect-ratio:1/.55;translate:-50% -50%;border-radius:50%;pointer-events:none;
  border:1px solid rgba(212,178,106,.22);box-shadow:0 0 60px rgba(124,58,237,.25),inset 0 0 60px rgba(124,58,237,.15);animation:finTilt 18s ease-in-out infinite}
@keyframes finTilt{0%,100%{rotate:-4deg}50%{rotate:4deg}}
.elv .fin-orbit{position:absolute;inset:0;pointer-events:none}
.elv .fin-cert{position:absolute;width:clamp(96px,11vw,150px);border-radius:12px;overflow:hidden;background:#1B1C1E;
  border:1px solid rgba(212,178,106,.35);box-shadow:0 20px 50px -18px rgba(0,0,0,.9),0 0 34px -10px rgba(212,178,106,.45);
  animation:finFloat 9s ease-in-out infinite;opacity:.9}
.elv .fin-cert img{display:block;width:100%;height:auto}
@keyframes finFloat{0%,100%{translate:0 0}50%{translate:0 -14px}}
.elv .fin-c1{left:6%;top:10%;rotate:-9deg;animation-delay:0s}
.elv .fin-c2{left:15%;top:58%;rotate:7deg;animation-delay:-2s;opacity:.7}
.elv .fin-c3{left:2%;top:36%;rotate:4deg;animation-delay:-4s;opacity:.55;width:clamp(80px,8vw,110px)}
.elv .fin-c4{right:6%;top:9%;rotate:8deg;animation-delay:-1s}
.elv .fin-c5{right:14%;top:60%;rotate:-6deg;animation-delay:-3s;opacity:.7}
.elv .fin-c6{right:2%;top:36%;rotate:-3deg;animation-delay:-5s;opacity:.55;width:clamp(80px,8vw,110px)}
.elv .fin-c7{left:26%;top:84%;rotate:-4deg;animation-delay:-6s;opacity:.45;width:clamp(76px,7vw,100px)}
.elv .fin-c8{right:26%;top:86%;rotate:5deg;animation-delay:-7s;opacity:.45;width:clamp(76px,7vw,100px)}
.elv .fin-core{position:relative;z-index:1;max-width:760px}
.elv .fin-k{font-size:14px;font-weight:800;letter-spacing:.18em;color:#E9CF8E;margin-bottom:14px}
.elv .fin-h{font-size:clamp(48px,7.4vw,104px);line-height:.98;letter-spacing:-.055em;font-weight:800;color:#fff;text-shadow:0 0 80px rgba(124,58,237,.5)}
.elv .fin-gold{background:linear-gradient(100deg,#FFF2C9 0%,#E9CF8E 30%,#D4B26A 55%,#FFE7A8 75%,#C89B4B 100%);background-size:200% 100%;
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:finShine 6s linear infinite}
@keyframes finShine{to{background-position:-200% 0}}
.elv .fin-sub{font-size:clamp(17px,1.6vw,21px);line-height:1.5;color:#D2D6E0;max-width:600px;margin-top:22px}
.elv .fin-quote{display:flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:6px 12px;margin:26px 0 0;padding:12px 18px;border-radius:999px;
  background:linear-gradient(120deg,rgba(212,178,106,.16),rgba(255,255,255,.04));border:1px solid rgba(212,178,106,.35);
  -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
.elv .fin-quote .rv-avatar{width:34px;height:34px;font-size:12px}
.elv .fin-quote blockquote{margin:0;font-size:16px;font-weight:700;color:#FFF2C9;font-style:italic}
.elv .fin-quote figcaption{font-size:12.5px;color:#C7B98F}
.elv .fin-loss{display:flex;align-items:center;gap:9px;margin-top:30px;font-size:14.5px;font-weight:600;color:#FFB3C1}
.elv .fin-loss i{width:8px;height:8px;border-radius:50%;background:#FF2D55;box-shadow:0 0 12px #FF2D55;animation:elvBlink 1.6s ease-in-out infinite}

/* the CTA — a violet core inside a slowly rotating gold rim */
.elv .fin-cta{position:relative;display:inline-flex;margin-top:18px;padding:3px;border-radius:999px;isolation:isolate;
  text-decoration:none;box-shadow:0 30px 80px -20px rgba(124,58,237,.9),0 0 60px -10px rgba(212,178,106,.5);transition:transform .2s var(--ease)}
.elv .fin-cta:hover{transform:translateY(-3px) scale(1.02)}
.elv .fin-cta:active{transform:scale(.98)}
.elv .fin-cta-rim{position:absolute;inset:0;border-radius:inherit;overflow:hidden;z-index:-1}
.elv .fin-cta-rim::before{content:"";position:absolute;inset:-60%;
  background:conic-gradient(from 0deg,#FFE7A8,#7C3AED 25%,#C084FC 45%,#FFE7A8 55%,#5B21B6 75%,#FFE7A8);animation:finSpin 4s linear infinite}
@keyframes finSpin{to{rotate:360deg}}
.elv .fin-cta-in{display:inline-flex;align-items:center;gap:12px;padding:0 38px;height:68px;border-radius:999px;
  background:linear-gradient(135deg,#A773FF 0%,#7C3AED 50%,#5B21B6 100%);color:#fff;font-size:19px;font-weight:800;letter-spacing:-.01em;white-space:nowrap;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.4),inset 0 -12px 24px -14px rgba(0,0,0,.45)}
.elv .fin-micro{margin-top:14px;font-size:13.5px;color:#9AA1B4;letter-spacing:.02em}

/* 3 · payouts (renders only with real proofs) */
.elv .fin-pay{margin-top:40px}
.elv .fin-pay-row{display:flex;gap:14px;overflow-x:auto;width:100%;padding:12px 4px;scrollbar-width:none}
.elv .fin-pay-card{flex:0 0 auto;width:260px;margin:0;border-radius:18px;overflow:hidden;border:1px solid rgba(212,178,106,.35)}
.elv .fin-pay-card img{display:block;width:100%}
.elv .fin-pay-card figcaption{padding:10px 12px;font-size:13px;color:#E9CF8E;background:rgba(0,0,0,.4)}
.elv .fin .footer{margin-top:clamp(56px,7vw,90px)}

@media (max-width:760px){
  .elv .fin-split{grid-template-columns:1fr;gap:10px}
  .elv .fin-vs{justify-self:center;width:40px;height:40px;margin:-4px 0}
  .elv .fin-side{padding:20px 20px 18px;border-radius:22px}
  .elv .fin-side li{font-size:15px}
  .elv .fin-stage{min-height:0;padding:150px 16px 140px}
  .elv .fin-cert{width:84px}
  .elv .fin-c3,.elv .fin-c6,.elv .fin-c7,.elv .fin-c8{display:none}
  .elv .fin-c1{left:4%;top:2%}.elv .fin-c4{right:4%;top:3%}
  .elv .fin-c2{left:3%;top:auto;bottom:2%}.elv .fin-c5{right:3%;top:auto;bottom:3%}
  .elv .fin-cta-in{height:62px;padding:0 26px;font-size:17px}
  .elv .fin-quote{border-radius:22px;padding:12px 14px}
  .elv .fin-quote blockquote{font-size:15px}
}
@media (prefers-reduced-motion:reduce){
  .elv .fin-cert,.elv .fin-ring,.elv .fin-gold,.elv .fin-cta-rim::before{animation:none}
}
@media (max-width:760px){ .elv .fin-loss{flex-direction:column;gap:8px;text-align:center} }
.elv .fin{padding-bottom:clamp(60px,8vw,110px)}
.elv .fin-foot{padding:0 0 40px;background:#030207}
.elv .fin-foot .footer{margin-top:0}


/* ─── HERO v3 — the lead form as the centrepiece (founder, 2026-09-19) ─────
   Borrowed from the finale: gold shimmer keyword, rotating gold/violet rim,
   a headline + real-certificate proof inside the panel, icon pills. */
@property --elvA { syntax: "<angle>"; inherits: false; initial-value: 0deg; }
.elv-gold-word { background: linear-gradient(100deg,#FFF2C9 0%,#E9CF8E 30%,#D4B26A 55%,#FFE7A8 75%,#C89B4B 100%) !important;
  background-size: 200% 100% !important; -webkit-background-clip: text !important; background-clip: text !important;
  -webkit-text-fill-color: transparent !important; color: #E9CF8E !important; animation: finShine 6s linear infinite; }
@keyframes finShine { to { background-position: -200% 0 } }

/* rotating rim — replaces the static liquid-glass edge */
.c-form .form-builder--wrap[data-elv-form]::before {
  padding: 1.5px !important;
  background: conic-gradient(from var(--elvA), rgba(255,231,168,.95), rgba(124,58,237,.6) 18%, rgba(255,255,255,.15) 35%,
    rgba(192,132,252,.7) 55%, rgba(255,231,168,.9) 70%, rgba(91,33,182,.5) 85%, rgba(255,231,168,.95)) !important;
  animation: elvRim 6s linear infinite; }
@keyframes elvRim { to { --elvA: 360deg } }

/* header inside the panel */
.fullSection.c-section .lf-head { display:flex; flex-direction:column; align-items:center; gap:10px; text-align:center; margin:0 0 20px; }
.fullSection.c-section .lf-kicker { display:inline-flex; align-items:center; gap:8px; padding:6px 13px; border-radius:999px;
  font-size:11.5px !important; font-weight:800 !important; letter-spacing:.14em !important; color:#E9CF8E !important;
  background:rgba(212,178,106,.10); border:1px solid rgba(212,178,106,.32); }
.fullSection.c-section .lf-kicker i { width:7px; height:7px; border-radius:50%; background:#2ED8A7; box-shadow:0 0 10px #2ED8A7; animation:elvBlink 1.8s ease-in-out infinite; }
.fullSection.c-section .lf-title { font-size:clamp(26px,3vw,34px) !important; line-height:1.08 !important; letter-spacing:-.035em !important;
  font-weight:800 !important; color:#fff !important; text-wrap:balance; }
.fullSection.c-section .lf-proof { display:inline-flex; align-items:center; gap:10px; font-size:13.5px !important; color:#C7CCD6 !important; }
.fullSection.c-section .lf-proof b { color:#fff; font-weight:800; }
.fullSection.c-section .lf-stack { display:inline-flex; }
.fullSection.c-section .lf-stack img { width:30px; height:30px; border-radius:50%; object-fit:cover; object-position:left top;
  border:1.5px solid #E9CF8E; margin-left:-9px; background:#1B1C1E; box-shadow:0 4px 10px rgba(0,0,0,.5); }
.fullSection.c-section .lf-stack img:first-child { margin-left:0; }
@keyframes elvBlink { 0%,100% { opacity:1 } 50% { opacity:.35 } }

/* icon pills: the icon rides inside the variable background, so it survives
   GHL's inline resets and the :focus swap */
.hl_form-builder--main .form-control { --elv-ic: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23C9B0FF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='8' r='4'/><path d='M4 21c0-4.4 3.6-7 8-7s8 2.6 8 7'/></svg>"); }
.hl_form-builder--main input[type="tel"], .hl_form-builder--main input[name="phone"] { --elv-ic: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23C9B0FF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2'/></svg>"); }
.hl_form-builder--main input[type="email"], .hl_form-builder--main input[name="email"] { --elv-ic: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23C9B0FF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='5' width='18' height='14' rx='2'/><path d='M3 7l9 6 9-6'/></svg>"); }
.hl_form-builder--main .form-control {
  --elv-in-bg: var(--elv-ic) no-repeat 20px 50% / 19px 19px, linear-gradient(180deg, rgba(255,255,255,.13), rgba(255,255,255,.045)); }
.hl_form-builder--main .form-control:focus {
  --elv-in-bg: var(--elv-ic) no-repeat 20px 50% / 19px 19px, linear-gradient(180deg, rgba(183,148,255,.22), rgba(124,58,237,.09)); }
.hl_form-builder--main .form-builder--item { margin-bottom: 12px !important; }

/* submit: moving light across the button */
.hl_form-builder--main button[type="submit"]::after { content:""; position:absolute; top:0; bottom:0; left:-40%; width:30%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent); transform:skewX(-18deg);
  animation:elvSheenBtn 3.6s cubic-bezier(.22,1,.36,1) infinite; pointer-events:none; }
@keyframes elvSheenBtn { 0%,55% { left:-40% } 100% { left:130% } }

@media (max-width:560px) {
  .fullSection.c-section .lf-head { margin-bottom:16px; gap:8px; }
  .fullSection.c-section .lf-title { font-size:25px !important; }
  .fullSection.c-section .lf-proof { font-size:12.5px !important; }
  .hl_form-builder--main .form-builder--item { margin-bottom: 10px !important; }
}
@media (prefers-reduced-motion:reduce) {
  .c-form .form-builder--wrap[data-elv-form]::before, .elv-gold-word, .hl_form-builder--main button[type="submit"]::after { animation:none }
}
@media (max-width:400px){
  .fullSection.c-section .lf-kicker{font-size:10.5px !important;letter-spacing:.09em !important;white-space:nowrap}
  .fullSection.c-section .lf-title{font-size:23px !important}
}

/* ─── HERO PROOF — orbiting certificates + Trustpilot badge ─────────────── */
.fullSection.c-section .hx-orbit{position:absolute;left:0;right:0;top:0;height:min(760px,92vh);z-index:-1;pointer-events:none}
.fullSection.c-section .hx-cert{position:absolute;width:clamp(96px,9vw,138px);border-radius:12px;overflow:hidden;background:#1B1C1E;
  border:1px solid rgba(212,178,106,.35);box-shadow:0 20px 50px -18px rgba(0,0,0,.9),0 0 34px -10px rgba(212,178,106,.45);
  animation:finFloat 9s ease-in-out infinite;opacity:.75}
.fullSection.c-section .hx-cert img{display:block;width:100%;height:auto}
@keyframes finFloat{0%,100%{translate:0 0}50%{translate:0 -14px}}
.fullSection.c-section .hx-c1{left:4%;top:12%;rotate:-9deg}
.fullSection.c-section .hx-c2{left:9%;top:46%;rotate:6deg;animation-delay:-3s;opacity:.55}
.fullSection.c-section .hx-c3{left:2%;top:76%;rotate:-4deg;animation-delay:-6s;opacity:.4;width:clamp(80px,7vw,108px)}
.fullSection.c-section .hx-c4{right:4%;top:10%;rotate:8deg;animation-delay:-1.5s}
.fullSection.c-section .hx-c5{right:9%;top:48%;rotate:-6deg;animation-delay:-4.5s;opacity:.55}
.fullSection.c-section .hx-c6{right:2%;top:78%;rotate:4deg;animation-delay:-7.5s;opacity:.4;width:clamp(80px,7vw,108px)}

.fullSection.c-section .hx-tp{display:flex;flex-direction:column;align-items:center;gap:8px;width:fit-content;max-width:calc(100% - 24px);
  margin:18px auto 20px;padding:12px 20px 11px;border-radius:22px;
  background:linear-gradient(150deg,rgba(255,255,255,.10),rgba(255,255,255,.03) 55%,rgba(0,182,122,.08));
  border:1px solid rgba(255,255,255,.14);-webkit-backdrop-filter:blur(18px) saturate(170%);backdrop-filter:blur(18px) saturate(170%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 20px 50px -26px rgba(0,182,122,.5)}
.fullSection.c-section .hx-tp-row{display:flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:6px 10px}
.fullSection.c-section .hx-tp .rv-stars{display:flex;gap:3px;margin:0}
.fullSection.c-section .hx-tp .rv-tile{width:20px;height:20px;border-radius:3px;background:#00B67A;display:flex;align-items:center;justify-content:center}
.fullSection.c-section .hx-tp .rv-tile svg{width:13px;height:13px}
.fullSection.c-section .hx-tp-score{font-size:14px !important;color:rgba(255,255,255,.6) !important}
.fullSection.c-section .hx-tp-score b{font-size:17px;font-weight:800;color:#fff}
.fullSection.c-section .hx-tp-sep{width:1px;height:16px;background:rgba(255,255,255,.18)}
.fullSection.c-section .hx-tp-src{font-size:13.5px !important;color:#C7CCD6 !important}
.fullSection.c-section .hx-tp-src b{color:#2ED8A7;font-weight:800}
.fullSection.c-section .hx-q{display:flex;align-items:baseline;flex-wrap:wrap;justify-content:center;gap:4px 8px;min-height:20px;text-align:center}
.fullSection.c-section .hx-q-text{font-size:14px !important;font-style:italic;font-weight:600;color:#F2EDFF !important}
.fullSection.c-section .hx-q-who{font-size:12.5px !important;color:#9AA1B4 !important}
.fullSection.c-section .hx-tp.hx-in .hx-q{animation:hxIn .5s cubic-bezier(.22,1,.36,1)}
@keyframes hxIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

@media (max-width:760px){
  .fullSection.c-section .hx-orbit{height:420px}
  .fullSection.c-section .hx-cert{width:66px;opacity:.38}
  .fullSection.c-section .hx-c2,.fullSection.c-section .hx-c3,.fullSection.c-section .hx-c5,.fullSection.c-section .hx-c6{display:none}
  .fullSection.c-section .hx-c1{left:-14px;top:24px}
  .fullSection.c-section .hx-c4{right:-14px;top:30px}
  .fullSection.c-section .hx-tp{padding:10px 14px 9px;margin:14px auto 16px;border-radius:18px}
  .fullSection.c-section .hx-tp .rv-tile{width:17px;height:17px}
  .fullSection.c-section .hx-tp .rv-tile svg{width:11px;height:11px}
  .fullSection.c-section .hx-tp-src{font-size:12.5px !important}
  .fullSection.c-section .hx-tp-sep{display:none}
  .fullSection.c-section .hx-q-text{font-size:13px !important}
}
@media (prefers-reduced-motion:reduce){ .fullSection.c-section .hx-cert{animation:none} }
/* desktop: the headline spans the full width, so the orbit sits beside the
   narrower lede/badge/video block instead of under the words */
@media (min-width:761px){
  .fullSection.c-section .hx-orbit{height:900px}
  .fullSection.c-section .hx-c1{left:2%;top:30%}
  .fullSection.c-section .hx-c2{left:5.5%;top:54%}
  .fullSection.c-section .hx-c3{left:1.5%;top:78%}
  .fullSection.c-section .hx-c4{right:2%;top:29%}
  .fullSection.c-section .hx-c5{right:5.5%;top:55%}
  .fullSection.c-section .hx-c6{right:1.5%;top:79%}
}
@media (max-width:760px){
  .fullSection.c-section .hx-cert{width:56px}
  .fullSection.c-section .hx-c1{left:-24px;top:-8px}
  .fullSection.c-section .hx-c4{right:-24px;top:-4px}
}

/* ─── PHONE COUNTRY CODE pill ───────────────────────────────────────────── */
.hl_form-builder--main input[type="tel"], .hl_form-builder--main input[name="phone"] { --elv-ic: none; }
.fullSection.c-section .cc-pill{position:absolute;left:7px;top:50%;translate:0 -50%;z-index:2;height:42px;display:flex;align-items:center;
  border-radius:999px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.16);box-shadow:inset 0 1px 0 rgba(255,255,255,.18)}
.fullSection.c-section .cc-label{display:flex;align-items:center;gap:6px;padding:0 10px 0 12px;pointer-events:none}
.fullSection.c-section .cc-flag{font-size:19px !important;line-height:1}
.fullSection.c-section .cc-code{font-size:15px !important;font-weight:700 !important;color:#fff !important;letter-spacing:-.01em}
.fullSection.c-section .cc-select{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;
  -webkit-appearance:none;appearance:none;border:0;font-size:16px}
.fullSection.c-section .cc-pill:focus-within{border-color:rgba(196,170,255,.75);box-shadow:0 0 0 3px rgba(139,92,246,.25)}

/* ─── SUBMIT CONFIRMATION card ──────────────────────────────────────────── */
.fullSection.c-section .lf-ok{position:relative;max-width:560px;margin:0 auto;padding:34px 26px 28px;border-radius:32px;text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:12px;
  background:linear-gradient(150deg,rgba(255,255,255,.14),rgba(255,255,255,.04) 45%,rgba(0,182,122,.10));
  border:1px solid rgba(255,255,255,.18);-webkit-backdrop-filter:blur(30px) saturate(185%);backdrop-filter:blur(30px) saturate(185%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 40px 90px -30px rgba(0,0,0,.75),0 0 120px -30px rgba(0,182,122,.5);
  animation:lfOkIn .6s cubic-bezier(.22,1,.36,1)}
@keyframes lfOkIn{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}
.fullSection.c-section .lf-ok-badge{position:relative;width:78px;height:78px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#34E3A5,#00B67A);box-shadow:0 18px 40px -10px rgba(0,182,122,.8),inset 0 1px 0 rgba(255,255,255,.5);
  animation:lfPop .5s cubic-bezier(.34,1.56,.64,1) .1s both}
.fullSection.c-section .lf-ok-badge svg{position:relative;z-index:1}
.fullSection.c-section .lf-ok-ring{position:absolute;inset:0;border-radius:50%;border:2px solid rgba(46,216,167,.7);animation:lfRing 1.8s ease-out .3s infinite}
@keyframes lfPop{from{transform:scale(.4);opacity:0}to{transform:none;opacity:1}}
@keyframes lfRing{from{transform:scale(1);opacity:.9}to{transform:scale(1.9);opacity:0}}
.fullSection.c-section .lf-ok-k{font-size:12px !important;font-weight:800 !important;letter-spacing:.16em !important;color:#2ED8A7 !important;margin-top:6px !important}
.fullSection.c-section .lf-ok-t{font-size:clamp(28px,3.4vw,38px);line-height:1.06;letter-spacing:-.04em;font-weight:800;color:#fff}
.fullSection.c-section .lf-ok-p{font-size:15.5px;line-height:1.5;color:#D2D6E0;max-width:420px}
.fullSection.c-section .lf-ok-steps{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:9px;width:100%;max-width:400px;text-align:left}
.fullSection.c-section .lf-ok-steps li{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:16px;font-size:14.5px !important;color:#F2EDFF !important;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1)}
.fullSection.c-section .lf-ok-steps b{flex:none;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:13px;font-weight:800;color:#fff;background:linear-gradient(135deg,#A773FF,#7C3AED)}
@media (max-width:560px){
  .fullSection.c-section .lf-ok{margin:0 6px;padding:28px 18px 22px;border-radius:26px}
  .fullSection.c-section .lf-ok-t{font-size:27px}
  .fullSection.c-section .lf-ok-p{font-size:14.5px}
}

/* ═══ BOOKING PAGE — "Appel de Qualification Elave" ═══════════════════════
   GHL's native calendar widget, reskinned as one liquid-glass instrument:
   galaxy info panel (coaches, agenda, trust) + glass date grid + slot pills.
   Everything is scoped under .c-calendar; GHL colours come in through the
   widget's own CSS variables, overridden here too. */
.c-calendar { --appointment_widgets-primary-color:#7C3AED !important; --appointment_widgets-light-primary-color:rgba(139,92,246,.16) !important; }
.c-calendar, .c-calendar * { font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Helvetica Neue",Helvetica,Arial,sans-serif !important; }
.c-calendar .appointment_widgets--revamp--container {
  position:relative !important; border-radius:34px !important; overflow:hidden !important;
  background:linear-gradient(150deg,rgba(255,255,255,.10),rgba(255,255,255,.03) 45%,rgba(255,255,255,.06)) !important;
  border:1px solid rgba(255,255,255,.14) !important; -webkit-backdrop-filter:blur(28px) saturate(180%); backdrop-filter:blur(28px) saturate(180%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 50px 110px -40px rgba(0,0,0,.9),0 0 140px -40px rgba(124,58,237,.6) !important; }
.c-calendar .appointment_widgets--revamp--container::before { content:""; position:absolute; inset:0; border-radius:inherit; padding:1.5px; pointer-events:none; z-index:3;
  background:conic-gradient(from var(--elvA),rgba(255,231,168,.9),rgba(124,58,237,.55) 20%,rgba(255,255,255,.1) 40%,rgba(192,132,252,.6) 60%,rgba(255,231,168,.85) 75%,rgba(91,33,182,.45) 88%,rgba(255,231,168,.9));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; animation:elvRim 7s linear infinite; }
.c-calendar .appointment_widgets--revamp--booking, .c-calendar .appointment_widgets--revamp--inner, .c-calendar #appointment_widgets--revamp,
.c-calendar .appointment_widgets--revamp--steps, .c-calendar .hl-app { background:transparent !important; box-shadow:none !important; border:0 !important; }

/* info column → galaxy panel */
.c-calendar .appointment_widgets--revamp--info-container { position:relative; border-right:1px solid rgba(255,255,255,.1) !important;
  background:radial-gradient(90% 60% at 20% 0%,rgba(124,58,237,.45),transparent 70%),radial-gradient(70% 50% at 90% 100%,rgba(192,38,211,.22),transparent 70%),rgba(8,5,16,.55) !important; }
.c-calendar .widgets--service-name { color:#fff !important; font-size:clamp(22px,2.2vw,28px) !important; font-weight:800 !important; letter-spacing:-.035em !important; line-height:1.1 !important; }
.c-calendar .booking-info-value { color:#E4D6FF !important; font-weight:600 !important; font-size:15px !important; }
.c-calendar .appointment_widgets--revamp--booking-info svg path { fill:#B794FF !important; stroke:#B794FF; }
.c-calendar .widgets--service-description p { color:#C7CCD6 !important; font-size:15px !important; }
.c-calendar .bk-panel { display:flex; flex-direction:column; gap:14px; margin-top:22px; }
.c-calendar .bk-coaches { display:flex; align-items:center; }
.c-calendar .bk-coaches img { width:52px; height:52px; border-radius:50%; object-fit:cover; object-position:top; border:2px solid #B794FF; box-shadow:0 8px 20px -6px rgba(124,58,237,.8); }
.c-calendar .bk-coaches img + img { margin-left:-14px; border-color:#E9CF8E; }
.c-calendar .bk-live { display:inline-flex; align-items:center; gap:7px; margin-left:12px; padding:6px 12px; border-radius:999px; font-size:12.5px; font-weight:700; color:#2ED8A7;
  background:rgba(0,196,106,.12); border:1px solid rgba(0,196,106,.3); }
.c-calendar .bk-live i { width:7px; height:7px; border-radius:50%; background:#2ED8A7; box-shadow:0 0 10px #2ED8A7; animation:elvBlink 1.8s ease-in-out infinite; }
.c-calendar .bk-with { margin:0 !important; font-size:15px !important; line-height:1.45 !important; color:#C7CCD6 !important; }
.c-calendar .bk-with b { color:#fff; }
.c-calendar .bk-agenda { list-style:none; margin:0; padding:0; display:grid; gap:8px; }
.c-calendar .bk-agenda li { display:flex; align-items:center; gap:11px; padding:10px 12px; border-radius:14px; font-size:14px; color:#F2EDFF;
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.09); }
.c-calendar .bk-agenda b { flex:none; font-size:11.5px; font-weight:800; color:#E9CF8E; padding:3px 7px; border-radius:8px; background:rgba(212,178,106,.12); }
.c-calendar .bk-trust { display:flex; flex-wrap:wrap; gap:6px 14px; }
.c-calendar .bk-trust span { display:inline-flex; align-items:center; gap:5px; font-size:13px; font-weight:600; color:#D2D6E0; }

/* steps column */
.c-calendar .label-select-date, .c-calendar .text-info { color:#fff !important; font-size:21px !important; font-weight:800 !important; letter-spacing:-.025em !important; }
.c-calendar .vdpHeader button, .c-calendar .vdpPeriodControl > button { color:#fff !important; font-weight:700 !important; font-size:17px !important; background:transparent !important; }
.c-calendar .arrowPrevious, .c-calendar .arrowNext { width:40px !important; height:40px !important; border-radius:50% !important;
  background:rgba(255,255,255,.07) !important; border:1px solid rgba(255,255,255,.14) !important; display:inline-flex !important; align-items:center; justify-content:center; }
.c-calendar .arrowPrevious svg path, .c-calendar .arrowNext svg path { stroke:#E4D6FF !important; fill:none; }
.c-calendar .arrowPrevious.disabled { opacity:.3 !important; }
.c-calendar .vdpTable th { color:#8C92A4 !important; font-size:12px !important; font-weight:700 !important; text-transform:uppercase; letter-spacing:.06em; }
.c-calendar .vdpCell .vdpCellContent { width:44px !important; height:44px !important; border-radius:50% !important; font-weight:600 !important; font-size:15px !important;
  display:inline-flex !important; align-items:center; justify-content:center; transition:transform .15s ease, box-shadow .2s ease; }
.c-calendar .vdpCell.disabled .vdpCellContent { color:rgba(255,255,255,.22) !important; background:transparent !important; }
.c-calendar .vdpCell.selectable .vdpCellContent { color:#EDE4FF !important; background:rgba(139,92,246,.16) !important; border:1px solid rgba(183,148,255,.32) !important; }
.c-calendar .vdpCell.selectable:hover .vdpCellContent { transform:scale(1.08); background:rgba(139,92,246,.3) !important; }
.c-calendar .vdpCell.selected .vdpCellContent { color:#fff !important; border:0 !important;
  background:linear-gradient(135deg,#A773FF,#7C3AED 55%,#5B21B6) !important; box-shadow:0 0 0 2px rgba(233,207,142,.6),0 10px 26px -6px rgba(124,58,237,.9) !important; }
.c-calendar .vdpCell.today .vdpCellContent { box-shadow:inset 0 -3px 0 -1px #E9CF8E; }
.c-calendar .timezone-label { color:#9AA1B4 !important; font-size:12px !important; font-weight:700 !important; text-transform:uppercase; letter-spacing:.08em; }
.c-calendar .multiselect__tags, .c-calendar .multiselect__single, .c-calendar .multiselect__input { background:transparent !important; color:#E4D6FF !important; border:0 !important; font-size:14px !important; }
.c-calendar .multiselect.multi_select_calendar { border-radius:999px !important; background:rgba(255,255,255,.06) !important; border:1px solid rgba(255,255,255,.14) !important; }
.c-calendar .multiselect__content-wrapper { background:#0E0A18 !important; border:1px solid rgba(255,255,255,.14) !important; border-radius:16px !important; }
.c-calendar .multiselect__option { color:#D2D6E0 !important; }
.c-calendar .multiselect__option--highlight { background:rgba(139,92,246,.3) !important; color:#fff !important; }
.c-calendar .multiselect__single svg path, .c-calendar .multiselect__select::before { fill:#B794FF !important; border-color:#B794FF transparent transparent !important; }

/* slots → glass pills; the chosen one opens into a gold-rimmed confirm */
.c-calendar .widgets-time-slots { gap:10px !important; }
.c-calendar .widgets-time-slot { display:flex !important; align-items:center; justify-content:center; gap:8px; min-height:54px !important; margin:0 0 10px !important;
  border-radius:999px !important; background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,.035)) !important;
  border:1px solid rgba(255,255,255,.16) !important; box-shadow:inset 0 1px 0 rgba(255,255,255,.18) !important; cursor:pointer; transition:border-color .2s, background .2s, transform .15s; overflow:hidden; }
.c-calendar .widgets-time-slot:hover { border-color:rgba(196,170,255,.7) !important; background:rgba(139,92,246,.18) !important; }
.c-calendar .widgets-time-slot > span { color:#F2EDFF !important; font-weight:700 !important; font-size:16px !important; letter-spacing:-.01em; }
.c-calendar .widgets-time-slot .btn.disabled-slot { display:none !important; }
.c-calendar .widgets-time-slot.actived { background:linear-gradient(135deg,rgba(167,115,255,.35),rgba(124,58,237,.25)) !important; border-color:rgba(233,207,142,.7) !important;
  box-shadow:0 0 0 1px rgba(233,207,142,.35),0 14px 34px -12px rgba(124,58,237,.9) !important; padding:5px 5px 5px 18px !important; justify-content:space-between; }
.c-calendar .widgets-time-slot .btn.selected-slot { height:44px !important; padding:0 20px !important; border-radius:999px !important; border:0 !important; color:#fff !important;
  font-weight:800 !important; font-size:15px !important; background:linear-gradient(135deg,#A773FF,#7C3AED 55%,#5B21B6) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 0 0 1.5px rgba(233,207,142,.6),0 10px 24px -8px rgba(124,58,237,.9) !important; }
.c-calendar .widgets-time-slot .btn.selected-slot div { color:#fff !important; }
.c-calendar .widgets-slot-block { scrollbar-width:thin; scrollbar-color:rgba(183,148,255,.4) transparent; }

/* booking step 2 (details) — same liquid pills as the opt-in */
.c-calendar .hl_form-builder--main .form-builder--wrap { background:transparent !important; border:0 !important; box-shadow:none !important; }
.c-calendar .hl_form-builder--main .form-control { min-height:54px !important; border-radius:999px !important; color:#fff !important;
  background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,.045)) !important; border:1px solid rgba(255,255,255,.2) !important; }
.c-calendar .hl_form-builder--main textarea.form-control { border-radius:22px !important; min-height:110px !important; padding-top:14px !important; }
.c-calendar .hl_form-builder--main label, .c-calendar .hl_form-builder--main .field-label { color:#C7CCD6 !important; font-size:13.5px !important; }
.c-calendar p, .c-calendar span, .c-calendar label, .c-calendar div { text-shadow:none; }
.fullSection.c-section .c-calendar p { font-size:15px !important; line-height:1.5 !important; }

@media (max-width:760px){
  .c-calendar .appointment_widgets--revamp--container { border-radius:26px !important; }
  .c-calendar .appointment_widgets--revamp--info-container { border-right:0 !important; border-bottom:1px solid rgba(255,255,255,.1) !important; }
  .c-calendar .vdpCell .vdpCellContent { width:40px !important; height:40px !important; font-size:14.5px !important; }
  .c-calendar .bk-agenda li { font-size:13.5px; }
}
@media (prefers-reduced-motion:reduce){ .c-calendar .appointment_widgets--revamp--container::before { animation:none; } }
/* GHL feeds its text through these variables and paints a white box behind
   each slot label — both overridden (measured 2026-09-19) */
.c-calendar { --appointment_widgets-text-color:#E4D6FF !important; --appointment_widgets-secondary-text-color:#9AA1B4 !important; }
.c-calendar .widgets-time-slot > span { background:transparent !important; }
.c-calendar .vdpCell.disabled .vdpCellContent { color:rgba(255,255,255,.62) !important; }
.c-calendar .vdpTable th { color:#B8BDCB !important; }
.c-calendar .vdpCell.today.disabled .vdpCellContent { box-shadow:none !important; }
.c-calendar .multiselect__single, .c-calendar .multiselect__input { color:#E4D6FF !important; }
.c-calendar .vdpCell.disabled { opacity:.75 !important; }
.c-calendar .vdpCell.disabled .vdpCellContent { color:rgba(255,255,255,.4) !important; }
.c-calendar .booking-info-value, .c-calendar .appointment_widgets--revamp--booking-info div { color:#E4D6FF !important; }
.c-calendar [class*="slot-date"], .c-calendar [class*="duration"] { color:#9AA1B4 !important; }
@media (max-width:760px){
  .c-calendar.bk-deep .bk-with, .c-calendar.bk-deep .bk-agenda, .c-calendar.bk-deep .bk-trust { display:none !important; }
  .c-calendar.bk-deep .bk-panel { margin-top:12px; }
}

/* ─── BOOKED CONFIRMATION ──────────────────────────────────────────────── */
.c-calendar .bk-ok{position:relative;max-width:640px;margin:0 auto;padding:40px 32px 34px;border-radius:34px;text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:16px;overflow:hidden;
  background:radial-gradient(80% 50% at 50% 0%,rgba(124,58,237,.45),transparent 70%),radial-gradient(60% 40% at 50% 100%,rgba(212,178,106,.14),transparent 70%),
    linear-gradient(150deg,rgba(255,255,255,.10),rgba(255,255,255,.03));
  border:1px solid rgba(255,255,255,.16);-webkit-backdrop-filter:blur(28px) saturate(180%);backdrop-filter:blur(28px) saturate(180%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.32),0 50px 110px -40px rgba(0,0,0,.9),0 0 140px -40px rgba(124,58,237,.7);
  animation:lfOkIn .6s cubic-bezier(.22,1,.36,1)}
.c-calendar .bk-ok::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1.5px;pointer-events:none;
  background:conic-gradient(from var(--elvA),rgba(255,231,168,.9),rgba(124,58,237,.55) 20%,rgba(255,255,255,.1) 40%,rgba(192,132,252,.6) 60%,rgba(255,231,168,.85) 75%,rgba(91,33,182,.45) 88%,rgba(255,231,168,.9));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:elvRim 7s linear infinite}
.c-calendar .bk-ok-badge{width:88px;height:88px;background:linear-gradient(135deg,#FFE7A8,#D4B26A 45%,#A773FF);
  box-shadow:0 20px 44px -10px rgba(212,178,106,.7),inset 0 1px 0 rgba(255,255,255,.6)}
.c-calendar .bk-ok-badge .lf-ok-ring{border-color:rgba(233,207,142,.7)}
.c-calendar .bk-ok-k{margin:4px 0 0 !important;font-size:12.5px !important;font-weight:800 !important;letter-spacing:.18em !important;color:#E9CF8E !important}
.c-calendar .bk-ok-t{font-size:clamp(30px,4vw,44px);line-height:1.04;letter-spacing:-.045em;font-weight:800;color:#fff}
.c-calendar .bk-ok-slot{display:flex;align-items:center;gap:14px;text-align:left;padding:14px 20px;border-radius:20px;
  background:rgba(212,178,106,.10);border:1px solid rgba(212,178,106,.35)}
.c-calendar .bk-ok-ic{flex:none;width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:rgba(212,178,106,.14)}
.c-calendar .bk-ok-slot b{display:block;font-size:16.5px;color:#FFF2C9;font-weight:800;letter-spacing:-.01em}
.c-calendar .bk-ok-slot span{display:block;font-size:13px;color:#C7B98F;margin-top:2px}
.c-calendar .bk-ok-coach{display:flex;align-items:center;gap:14px;text-align:left;max-width:460px}
.c-calendar .bk-ok-coach p{margin:0 !important;font-size:15px !important;line-height:1.45 !important;color:#D2D6E0 !important}
.c-calendar .bk-ok-coach b{color:#fff}
.c-calendar .bk-ok-prep{width:100%;max-width:460px;padding:16px 18px;border-radius:20px;text-align:left;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1)}
.c-calendar .bk-ok-prep-k{margin:0 0 10px !important;font-size:11.5px !important;font-weight:800 !important;letter-spacing:.14em !important;color:#9AA1B4 !important}
.c-calendar .bk-ok-prep ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.c-calendar .bk-ok-prep li{display:flex;align-items:flex-start;gap:9px;font-size:14.5px;line-height:1.4;color:#F2EDFF}
.c-calendar .bk-ok-prep li svg{flex:none;margin-top:2px}
.c-calendar .bk-ok-cta{margin-top:6px}
.c-calendar .bk-ok-cta .fin-cta-in{height:60px;font-size:17px;padding:0 30px}
@media (max-width:560px){
  .c-calendar .bk-ok{padding:32px 18px 26px;border-radius:26px;margin:0 4px}
  .c-calendar .bk-ok-t{font-size:30px}
  .c-calendar .bk-ok-coach{flex-direction:column;text-align:center}
  .c-calendar .bk-ok-cta .fin-cta-in{height:56px;font-size:16px;padding:0 24px}
}

/* the booked card reuses the finale CTA outside .elv */
.c-calendar .fin-cta{position:relative;display:inline-flex;margin-top:18px;padding:3px;border-radius:999px;isolation:isolate;
  text-decoration:none;box-shadow:0 30px 80px -20px rgba(124,58,237,.9),0 0 60px -10px rgba(212,178,106,.5);transition:transform .2s var(--ease)}
.c-calendar .fin-cta:hover{transform:translateY(-3px) scale(1.02)}
.c-calendar .fin-cta:active{transform:scale(.98)}
.c-calendar .fin-cta-rim{position:absolute;inset:0;border-radius:inherit;overflow:hidden;z-index:-1}
.c-calendar .fin-cta-rim::before{content:"";position:absolute;inset:-60%;
  background:conic-gradient(from 0deg,#FFE7A8,#7C3AED 25%,#C084FC 45%,#FFE7A8 55%,#5B21B6 75%,#FFE7A8);animation:finSpin 4s linear infinite}
.c-calendar .fin-cta-in{display:inline-flex;align-items:center;gap:12px;padding:0 38px;height:68px;border-radius:999px;
  background:linear-gradient(135deg,#A773FF 0%,#7C3AED 50%,#5B21B6 100%);color:#fff;font-size:19px;font-weight:800;letter-spacing:-.01em;white-space:nowrap;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.4),inset 0 -12px 24px -14px rgba(0,0,0,.45)}
.c-calendar a.fin-cta{color:#fff !important;text-decoration:none !important}
.c-calendar .fin-cta-in svg{flex:none}
/* once booked, GHL's own submit/back controls must go */
.c-calendar:has([data-elv-booked]) button[type="submit"], .c-calendar:has([data-elv-booked]) .hl_button { display:none !important; }
.c-calendar:has([data-elv-booked]) .widgets-action-buttons { display:none !important; }
.c-calendar .bk-ok-badge { flex:none !important; }

/* ─── BOOTCAMP × TRANSPARENCE — one compact card ─────────────────────────── */
.elv .bt{position:relative;overflow:hidden;display:grid;grid-template-columns:1.1fr 1fr;border-radius:32px;
  background:linear-gradient(150deg,rgba(255,255,255,.07),rgba(255,255,255,.02) 55%,rgba(10,132,255,.05));
  border:1px solid rgba(183,148,255,.2);box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 40px 90px -40px rgba(124,58,237,.6)}
.elv .bt-half{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding:clamp(28px,3.4vw,44px)}
.elv .bt-trust{border-left:1px solid rgba(255,255,255,.1);background:linear-gradient(160deg,rgba(10,132,255,.08),transparent 60%)}
.elv .bt-tag-gold{background:rgba(244,196,48,.16);color:var(--gold);letter-spacing:.04em;font-size:12.5px}
.elv .bt-tag-blue{background:rgba(10,132,255,.16);color:#4DB8FF;letter-spacing:.04em;font-size:12.5px}
.elv .bt-h{font-size:clamp(26px,2.6vw,36px);line-height:1.08;letter-spacing:-.04em;font-weight:800;color:#fff}
.elv .bt-p{font-size:15.5px;line-height:1.5;color:#C3C8D4;max-width:460px}
.elv .bt-cta-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:4px}
.elv .bt-cta{height:50px;padding:0 24px;font-size:16px;background:linear-gradient(135deg,#A773FF,#7C3AED 55%,#5B21B6);color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 12px 30px -10px rgba(124,58,237,.8)}
.elv .bt-note{font-size:13.5px;color:#9AA1B4}
@media (max-width:760px){
  .elv .bt{grid-template-columns:1fr;border-radius:24px}
  .elv .bt-trust{border-left:0;border-top:1px solid rgba(255,255,255,.1)}
  .elv .bt-half{padding:22px 20px;gap:10px}
  .elv .bt-h{font-size:24px}
  .elv .bt-p{font-size:14.5px}
  .elv .bt-cta{width:100%}
}

/* ─── PAYOUT PROOFS (renders only with real screenshots) ─────────────────── */
.elv .fin-pay{margin-top:clamp(56px,7vw,90px);position:relative;z-index:1}
.elv .fin-pay-total{display:flex;align-items:baseline;flex-wrap:wrap;justify-content:center;gap:6px 12px;margin:18px 0 4px}
.elv .fin-pay-total b{font-size:clamp(40px,5.4vw,68px);font-weight:800;letter-spacing:-.05em;line-height:1;
  background:linear-gradient(100deg,#FFF2C9,#E9CF8E 35%,#D4B26A 60%,#FFE7A8);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.elv .fin-pay-total span{font-size:15px;color:#C7CCD6}
.elv .fin-pay-row{display:flex;gap:16px;overflow-x:auto;width:100%;padding:22px 4px 10px;scroll-snap-type:x mandatory;scrollbar-width:none}
.elv .fin-pay-row::-webkit-scrollbar{display:none}
.elv .fin-pay-card{position:relative;flex:0 0 auto;width:min(300px,78vw);margin:0;border-radius:22px;overflow:hidden;scroll-snap-align:start;
  background:#12101B;border:1px solid rgba(212,178,106,.35);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 30px 70px -30px rgba(0,0,0,.9),0 0 40px -14px rgba(212,178,106,.45)}
.elv .fin-pay-amt{position:absolute;top:12px;left:12px;z-index:1;padding:7px 14px;border-radius:999px;font-size:15px;font-weight:800;letter-spacing:-.01em;color:#0B0714;
  background:linear-gradient(135deg,#FFE7A8,#D4B26A);box-shadow:0 10px 24px -8px rgba(212,178,106,.8)}
.elv .fin-pay-card img{display:block;width:100%;height:auto}
.elv .fin-pay-card figcaption{display:flex;flex-direction:column;gap:2px;padding:12px 14px;background:rgba(0,0,0,.45)}
.elv .fin-pay-card figcaption b{font-size:15px;color:#fff;font-weight:700}
.elv .fin-pay-card figcaption span{font-size:12.5px;color:#C7B98F}
@media (max-width:560px){ .elv .fin-pay-total b{font-size:38px} .elv .fin-pay-row{gap:12px;padding-top:16px} }

/* ─── COACHES v2 — three cards, role + schedule + description ────────────── */
.elv .coach-grid{align-items:stretch}
.elv .coach{display:flex;flex-direction:column}
.elv .coach .photo{aspect-ratio:4/5}
.elv .coach-ph{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:64px;font-weight:800;color:#C9B0FF;
  background:radial-gradient(70% 70% at 50% 30%,rgba(124,58,237,.45),transparent 70%),#0B0714;letter-spacing:-.04em}
.elv .head-tag--ceo{background:rgba(212,178,106,.22);border-color:rgba(212,178,106,.45);color:#FFE7A8}
.elv .coach-meta{flex-direction:column;align-items:flex-start;gap:8px;padding:20px 22px 22px}
.elv .coach-id{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.elv .coach-role{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:999px;
  color:var(--tone-c,#B794FF);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12)}
.elv .coach-violet{--tone-c:#B794FF}.elv .coach-blue{--tone-c:#4DB8FF}.elv .coach-orange{--tone-c:#FFB74D}
.elv .coach-when{font-size:14px;line-height:1.4;color:var(--tone-c,#B794FF);font-weight:600}
.elv .coach-desc{font-size:14.5px;line-height:1.5;color:#B8BDCB}
@media (max-width:900px){ .elv .coach-grid{grid-template-columns:1fr} .elv .coach .photo{aspect-ratio:16/10} }

/* ─── FOUNDERS ──────────────────────────────────────────────────────────── */
.elv .fd-grid{margin-top:clamp(36px,5vw,56px);text-align:left}
.elv .fd-card{display:flex;flex-direction:column;gap:16px;padding:26px;border-radius:28px;
  background:linear-gradient(155deg,rgba(255,255,255,.08),rgba(255,255,255,.025));border:1px solid rgba(255,255,255,.1);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 30px 70px -34px rgba(0,0,0,.9)}
.elv .fd-top{display:flex;align-items:center;gap:16px}
.elv .fd-photo{position:relative;width:76px;height:76px;flex:none;border-radius:50%;overflow:hidden;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(70% 70% at 50% 30%,rgba(124,58,237,.5),transparent 70%),#0B0714;border:2px solid rgba(183,148,255,.5)}
.elv .fd-photo img{width:100%;height:100%;object-fit:cover;object-position:top center}
.elv .fd-photo img + .fd-initials{display:none}
.elv .fd-initials{font-size:30px;font-weight:800;color:#C9B0FF}
.elv .fd-photo--play::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.35)}
.elv .fd-play{position:absolute;z-index:1;width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#A773FF,#7C3AED)}
.elv .fd-name{font-size:20px;font-weight:800;letter-spacing:-.02em;color:#fff}
.elv .fd-role{font-size:12.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#B794FF}
.elv .fd-quote{margin:0;font-size:16px;line-height:1.5;font-style:italic;color:#F2EDFF}
.elv .fd-lines{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.elv .fd-lines li{display:flex;align-items:flex-start;gap:9px;font-size:14.5px;line-height:1.45;color:#B8BDCB}
.elv .fd-lines li svg{flex:none;margin-top:2px}
@media (max-width:760px){ .elv .fd-card{padding:20px;border-radius:22px} .elv .fd-photo{width:62px;height:62px} .elv .fd-name{font-size:18px} }

/* the curtain must not come back when GHL's hydration wipes our html class */
html:has(.elv[data-elave-root])::after{opacity:0 !important;visibility:hidden !important;animation:none !important}
/* founders: the real studio shot, above the two cards */
.elv .fd-shot{margin:clamp(28px,4vw,44px) 0 0;width:100%;max-width:880px;border-radius:28px;overflow:hidden;
  border:1px solid rgba(183,148,255,.28);box-shadow:0 40px 90px -40px rgba(0,0,0,.95),0 0 90px -40px rgba(124,58,237,.7)}
.elv .fd-shot img{display:block;width:100%;height:auto}
@media (max-width:760px){ .elv .fd-shot{border-radius:20px} }
/* the live-sessions half of the team section */
.elv .team-live{margin-top:clamp(56px,7vw,92px);padding-top:clamp(40px,5vw,64px);border-top:1px solid var(--line)}

/* ─── OUR STORY — the gap, the two paths, the open doors ─────────────────── */
.elv .st-split{display:grid;grid-template-columns:0.95fr 1.05fr;gap:clamp(24px,3.4vw,52px);align-items:center;
  margin-top:clamp(32px,4vw,52px);text-align:left}
.elv .st-shot{margin:0;position:relative;border-radius:28px;overflow:hidden;border:1px solid rgba(183,148,255,.26);
  box-shadow:0 40px 90px -40px rgba(0,0,0,.95),0 0 90px -40px rgba(124,58,237,.75)}
.elv .st-shot img{display:block;width:100%;height:auto}
.elv .st-shot figcaption{position:absolute;left:0;right:0;bottom:0;padding:34px 18px 14px;font-size:13px;color:#C7CCD6;
  background:linear-gradient(180deg,transparent,rgba(4,3,8,.92))}
.elv .st-shot figcaption b{color:#fff}
.elv .st-copy{display:flex;flex-direction:column;gap:14px}
.elv .st-lead{font-size:clamp(19px,1.9vw,23px);line-height:1.45;color:#fff;font-weight:600;letter-spacing:-.015em}
.elv .st-lead b{color:#B794FF}
.elv .st-p{font-size:16px;line-height:1.6;color:#C7CCD6}
.elv .st-p b{color:#fff;font-weight:700}
.elv .st-sign{margin-top:4px;padding-left:16px;border-left:2px solid rgba(183,148,255,.6);font-size:16.5px;line-height:1.5;
  color:#E9DEFF;font-style:italic}
.elv .st-gap{display:grid;grid-template-columns:1fr 1.15fr;gap:16px;margin-top:clamp(32px,4vw,52px);text-align:left}
.elv .st-col{padding:24px 24px 22px;border-radius:24px;display:flex;flex-direction:column;gap:12px}
.elv .st-col ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.elv .st-col li{position:relative;padding-left:26px;font-size:15.5px;line-height:1.45}
.elv .st-col li::before{position:absolute;left:0;top:0;font-weight:800}
.elv .st-col-k{font-size:11.5px;font-weight:800;letter-spacing:.16em}
.elv .st-col--old{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.07);filter:saturate(.55)}
.elv .st-col--old .st-col-k{color:#8C92A4}
.elv .st-col--old li{color:#8C92A4}
.elv .st-col--old li::before{content:"✕";color:#FF6B85}
.elv .st-col--new{background:linear-gradient(150deg,rgba(167,115,255,.2),rgba(124,58,237,.07) 55%,rgba(212,178,106,.08));
  border:1px solid rgba(196,170,255,.38);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 30px 70px -34px rgba(124,58,237,.85)}
.elv .st-col--new .st-col-k{color:#E9CF8E}
.elv .st-col--new li{color:#F2EDFF}
.elv .st-col--new li::before{content:"✓";color:#B794FF}

/* founders without avatars: the quote leads */
.elv .fd-card{gap:14px}
.elv .fd-id{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px 12px}
.elv .fd-years{font-size:12.5px;font-weight:700;color:#C7B98F;padding:4px 10px;border-radius:999px;
  background:rgba(212,178,106,.12);border:1px solid rgba(212,178,106,.3)}
.elv .fd-quote{font-size:17px;line-height:1.5;color:#fff}
@media (max-width:900px){
  .elv .st-split{grid-template-columns:1fr;gap:20px}
  .elv .st-gap{grid-template-columns:1fr;gap:12px}
  .elv .st-col{padding:18px 18px 16px;border-radius:20px}
  .elv .st-col li{font-size:14.5px}
  .elv .st-lead{font-size:18px}
  .elv .st-p{font-size:15px}
  .elv .st-sign{font-size:15.5px}
}

/* ═══ THE FOUNDER STORY — five acts ═══════════════════════════════════════
   Motion rules held here: transform/opacity only, one hero motion per
   viewport, entrances on cubic-bezier(.23,1,.32,1), 30-80ms stagger, and a
   VISIBLE base state so a browser without our JS still reads the story.
   No position:sticky anywhere: .elv clips overflow-x, which kills sticky on
   iOS, so the pinned-scene effect is driven by the --p progress variable
   instead (acces.js initProgress). */
.elv .e-reveal{opacity:1}
@media (prefers-reduced-motion:no-preference){
  .elv .e-reveal{opacity:0;transform:translate3d(0,18px,0);
    transition:opacity .7s cubic-bezier(.23,1,.32,1),transform .7s cubic-bezier(.23,1,.32,1)}
  .elv .e-reveal.is-in{opacity:1;transform:none}
  .elv .e-reveal.d2{transition-delay:.08s}
  .elv .e-reveal.d3{transition-delay:.16s}
  .elv .e-reveal.d4{transition-delay:.24s}
}

/* ACT 1 — cold open */
.elv .so-hero{position:relative;min-height:min(86svh,760px);display:flex;align-items:flex-end;justify-content:center;
  padding:clamp(40px,8vw,90px) clamp(20px,5vw,60px) clamp(36px,6vw,72px);overflow:hidden;border-radius:0}
.elv .so-hero-media{position:absolute;inset:0;overflow:hidden}
.elv .so-hero-img{width:100%;height:100%;object-fit:cover;object-position:50% 50%;
  transform:scale(calc(1.06 - var(--p,0) * .06)) translate3d(0,calc(var(--p,0) * -2vh),0);
  transition:transform .12s linear;filter:saturate(1.05)}
.elv .so-hero-veil{position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(3,2,7,.86) 0%,rgba(3,2,7,.45) 28%,rgba(3,2,7,.75) 62%,#030207 100%),
             radial-gradient(70% 50% at 50% 100%,rgba(124,58,237,.45),transparent 70%)}
.elv .so-hero-copy{position:relative;z-index:1;width:100%;max-width:1040px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px}
.elv .so-h{font-size:clamp(40px,6.6vw,92px);line-height:1.02;letter-spacing:-.05em;font-weight:800;color:#fff}
.elv .so-line{display:block;overflow:hidden}
.elv .so-line i{display:block;font-style:normal}
@media (prefers-reduced-motion:no-preference){
  .elv .so-line{opacity:1;transform:none}
  .elv .so-line i{transform:translate3d(0,110%,0);transition:transform .9s cubic-bezier(.23,1,.32,1)}
  .elv .so-line.is-in i{transform:none}
  .elv .so-line.d2 i{transition-delay:.1s}
}
.elv .so-sub{font-size:clamp(16px,1.7vw,21px);line-height:1.5;color:#D2D6E0;max-width:640px}
.elv .so-cue{display:inline-flex;align-items:center;gap:9px;margin-top:6px;font-size:11.5px;font-weight:800;letter-spacing:.2em;
  text-transform:uppercase;color:#9AA1B4}
.elv .so-cue i{width:1px;height:26px;background:linear-gradient(180deg,#B794FF,transparent);animation:soCue 2.4s ease-in-out infinite}
@keyframes soCue{0%,100%{opacity:.25;transform:scaleY(.6)}50%{opacity:1;transform:scaleY(1)}}

/* ACT 2 — the scar */
.elv .so-scar{max-width:860px;margin:clamp(48px,7vw,96px) auto 0;display:flex;flex-direction:column;gap:clamp(14px,2vw,22px);text-align:left}
.elv .so-scar-l{font-size:clamp(20px,2.6vw,34px);line-height:1.3;letter-spacing:-.03em;font-weight:600;color:#9AA1B4}
.elv .so-scar-l:first-child{color:#fff}
.elv .so-scar-l b{color:#B794FF;font-weight:700}

/* ACT 3 — the gap: the industry struck out, then what we built */
.elv .so-gap{margin-top:clamp(56px,8vw,110px);padding:0 clamp(20px,5vw,60px)}
.elv .so-gap-stage{display:grid;grid-template-columns:1fr 1.08fr;gap:clamp(16px,2.4vw,28px);max-width:1180px;margin:0 auto;align-items:stretch}
.elv .so-gap-card{position:relative;padding:clamp(24px,3vw,40px);border-radius:28px;display:flex;flex-direction:column;gap:16px}
.elv .so-card-k{font-size:11.5px;font-weight:800;letter-spacing:.18em}
.elv .so-gap-card ul{list-style:none;margin:0;padding:0;display:grid;gap:13px}
.elv .so-gap-card li{font-size:clamp(15px,1.5vw,17px);line-height:1.45}
.elv .so-old{background:rgba(255,255,255,.028);border:1px solid rgba(255,255,255,.07)}
.elv .so-old .so-card-k{color:#8C92A4}
.elv .so-old li{color:#8C92A4}
.elv .so-strike span{position:relative;display:inline}
/* each line is struck through as the block scrolls — staggered off --p */
.elv .so-strike span::after{content:"";position:absolute;left:0;top:50%;height:1.5px;background:#FF6B85;
  width:calc(clamp(0, (var(--p,0) - var(--s,0)) * 6, 1) * 100%);opacity:.9}
.elv .so-strike:nth-child(1) span{--s:.06}
.elv .so-strike:nth-child(2) span{--s:.16}
.elv .so-strike:nth-child(3) span{--s:.26}
.elv .so-verdict{font-size:15px;line-height:1.5;color:#7E869A;font-style:italic;margin-top:auto}
.elv .so-new{background:linear-gradient(150deg,rgba(167,115,255,.22),rgba(124,58,237,.07) 55%,rgba(212,178,106,.09));
  border:1px solid rgba(196,170,255,.4);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 40px 90px -40px rgba(124,58,237,.9);
  opacity:calc(.35 + clamp(0, (var(--p,0) - .3) * 3, 1) * .65);
  transform:translate3d(0,calc((1 - clamp(0, (var(--p,0) - .3) * 3, 1)) * 24px),0)}
.elv .so-new .so-card-k{color:#E9CF8E}
.elv .so-new li{color:#F2EDFF;display:flex;align-items:flex-start;gap:10px}
.elv .so-new li svg{flex:none;margin-top:2px}
.elv .so-new li b{color:#fff}
.elv .so-verdict--new{color:#E9DEFF;font-style:normal;font-weight:600}

/* ACT 4 — two paths merge */
.elv .so-merge{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:clamp(12px,2vw,26px);
  max-width:1000px;margin:clamp(56px,8vw,110px) auto 0;text-align:center}
.elv .so-path{display:flex;flex-direction:column;gap:3px}
.elv .so-path b{font-size:clamp(18px,2vw,24px);font-weight:800;letter-spacing:-.02em;color:#fff}
.elv .so-path span{font-size:13px;color:#9AA1B4}
.elv .so-lines{width:100%;height:auto;overflow:visible}
.elv .so-lines path{stroke-dasharray:640;stroke-dashoffset:640}
.elv .so-merge.is-in .so-lines path{animation:soDraw 1.5s cubic-bezier(.23,1,.32,1) forwards}
.elv .so-merge.is-in .so-l2{animation-delay:.12s}
@keyframes soDraw{to{stroke-dashoffset:0}}
.elv .so-merge-out{grid-column:1/-1;margin-top:-6px;display:flex;flex-direction:column;gap:2px}
.elv .so-merge-out b{font-size:clamp(26px,3.2vw,40px);font-weight:800;letter-spacing:-.04em;
  background:linear-gradient(100deg,#E4D6FF,#B794FF 40%,#E9CF8E);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.elv .so-merge-out span{font-size:13.5px;color:#9AA1B4}

/* ACT 5 — open doors */
.elv .so-doors{font-size:clamp(28px,4.2vw,54px);line-height:1.08;letter-spacing:-.045em;font-weight:800;color:#fff;
  max-width:900px;margin:clamp(56px,8vw,110px) auto 0}

@media (max-width:900px){
  .elv .so-gap-stage{grid-template-columns:1fr}
  .elv .so-merge{grid-template-columns:1fr;gap:10px}
  .elv .so-lines{transform:rotate(90deg) scale(.8);max-height:180px;margin:-10px auto}
  .elv .so-scar-l{font-size:19px}
  .elv .so-hero{min-height:min(78svh,620px)}
}
@media (prefers-reduced-motion:reduce){
  .elv .so-hero-img{transform:none}
  .elv .so-new{opacity:1;transform:none}
  .elv .so-strike span::after{width:100%}
  .elv .so-lines path{stroke-dashoffset:0}
  .elv .so-cue i{animation:none}
}
/* the insight pull-quote and the artifact proof strip */
.elv .so-insight{margin:clamp(34px,5vw,64px) auto 0;max-width:900px;text-align:center;
  font-size:clamp(26px,4vw,52px);line-height:1.06;letter-spacing:-.045em;font-weight:800;color:#fff}
.elv .so-proof{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 18px;
  margin:clamp(34px,4.5vw,56px) auto 0;padding:14px 22px;border-radius:999px;max-width:100%;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12)}
.elv .so-proof span{display:inline-flex;align-items:baseline;gap:7px;font-size:14px;color:#C7CCD6}
.elv .so-proof b{font-size:19px;font-weight:800;color:#fff;letter-spacing:-.02em}
.elv .so-proof i{width:1px;height:18px;background:rgba(255,255,255,.16)}
.elv .so-cta{margin-top:clamp(20px,2.6vw,30px)}
@media (max-width:640px){
  .elv .so-proof{border-radius:22px;padding:14px 16px;gap:8px 14px}
  .elv .so-proof i{display:none}
  .elv .so-proof span{font-size:13px}
}
/* inline SVG with a viewBox has no intrinsic height in a grid track — it
   collapsed to 0 and the merging lines never showed */
.elv .so-lines{width:100%;aspect-ratio:600/120;height:auto;overflow:visible}
@media (max-width:900px){ .elv .so-lines{aspect-ratio:600/200;transform:none;max-height:none;margin:4px auto} }
.elv .so-dot{opacity:0}
.elv .so-merge.is-in .so-dot{animation:soDot .5s cubic-bezier(.23,1,.32,1) 1.1s forwards}
@keyframes soDot{from{opacity:0;transform:scale(.4);transform-origin:300px 96px}to{opacity:1;transform:scale(1)}}
@media (prefers-reduced-motion:reduce){ .elv .so-dot{opacity:1} }

/* the merge reads top-down: names at the ends, the join in the middle, Elave under it */
.elv .so-merge{grid-template-columns:minmax(120px,1fr) minmax(220px,2.2fr) minmax(120px,1fr);align-items:start}
.elv .so-merge .so-path{padding-top:6px}
.elv .so-lines{aspect-ratio:600/140}
.elv .so-merge-out{margin-top:-28px}
@media (max-width:900px){
  .elv .so-merge{grid-template-columns:1fr 1fr;gap:6px 14px}
  .elv .so-lines{grid-column:1/-1;aspect-ratio:600/150;order:2}
  .elv .so-merge-out{order:3;margin-top:-14px}
}
/* phones: a landscape group shot inside a tall frame can only show one face,
   so the photo is contained and its own blurred copy fills the rest */
@media (max-width:760px){
  .elv .so-hero{min-height:min(72svh,600px);align-items:center;padding-top:clamp(56px,14vw,90px)}
  .elv .so-hero-media::before{content:"";position:absolute;inset:-8%;
    background:url("https://elavefx.com/funnel/studio-wall.jpg") center/cover no-repeat;filter:blur(26px) saturate(1.1) brightness(.5);transform:scale(1.08)}
  .elv .so-hero-img{position:relative;object-fit:contain;object-position:50% 42%;transform:none;height:auto;max-height:52%;top:6%}
  .elv .so-hero-veil{background:linear-gradient(180deg,rgba(3,2,7,.75) 0%,rgba(3,2,7,.35) 30%,rgba(3,2,7,.82) 62%,#030207 100%),
    radial-gradient(80% 45% at 50% 100%,rgba(124,58,237,.5),transparent 70%)}
  .elv .so-hero-copy{justify-content:flex-end;margin-top:auto}
}
/* what a guide who already paid for it actually does for you */
.elv .so-gives{list-style:none;max-width:900px;margin:clamp(34px,4.5vw,58px) auto 0;padding:0;display:grid;gap:12px;text-align:left}
.elv .so-gives li{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;align-items:baseline;
  padding:18px 22px;border-radius:20px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09)}
.elv .so-gives b{font-size:clamp(17px,1.8vw,21px);font-weight:800;letter-spacing:-.02em;color:#fff;white-space:nowrap}
.elv .so-gives span{font-size:15.5px;line-height:1.5;color:#B8BDCB}
@media (max-width:760px){
  .elv .so-gives li{grid-template-columns:1fr;gap:4px;padding:15px 16px;border-radius:16px}
  .elv .so-gives b{white-space:normal;font-size:16.5px}
  .elv .so-gives span{font-size:14.5px}
}
/* new studio shot: subjects are centred with the logo between them, so the
   frame anchors on the faces; and the story opens the section flush, with no
   empty band above the photo */
.elv [data-elave-sec="coaches"]{padding-top:0}
.elv .so-hero{min-height:min(92svh,860px)}
.elv .so-hero-img{object-position:50% 26%;
  transform:scale(calc(1.05 - var(--p,0) * .05)) translate3d(0,calc(var(--p,0) * -2vh),0)}
.elv .so-hero-veil{background:
  linear-gradient(180deg,rgba(3,2,7,.55) 0%,rgba(3,2,7,.12) 26%,rgba(3,2,7,.55) 58%,rgba(3,2,7,.94) 84%,#030207 100%),
  radial-gradient(70% 45% at 50% 100%,rgba(124,58,237,.42),transparent 70%)}
@media (max-width:760px){
  .elv .so-hero{min-height:min(74svh,620px)}
  .elv .so-hero-img{object-position:50% 40%;transform:none}
}

/* ═══ IMMERSIVE STORY SCENES (2026-09-20) ═══════════════════════════════════
   Pinned scenes driven by acces.js FX handlers. Contract:
   · BASE state (no .is-tracked) is a normal, fully visible, stacked layout —
     if the engine never runs, the story still reads top to bottom.
   · .is-tracked turns a wrapper into a tall scroll track with a sticky stage.
   · .is-static (reduced motion) keeps the base layout and lights everything.
   Only transform/opacity move. No backdrop-filter on anything that moves. */
.elv .sx-k{font-size:11.5px;font-weight:800;letter-spacing:.2em;color:#9AA1B4;text-align:center}
.elv .sx-stage{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:clamp(48px,8vw,96px) clamp(20px,5vw,60px);overflow:hidden}
.elv .sx-pin.is-tracked{height:var(--track,260svh)}
.elv .sx-pin.is-tracked .sx-stage{position:sticky;top:0;height:100svh;padding-block:0}
.elv .sx-scar.is-tracked{--track:300svh}
.elv .sx-deck.is-tracked{--track:340svh}
.elv .sx-gapscene.is-tracked{--track:320svh}

/* ambient motes */
.elv .sx-sparks{position:absolute;inset:0;pointer-events:none}
.elv .sx-sparks i{position:absolute;width:3px;height:3px;border-radius:50%;background:#C9B0FF;opacity:0;
  box-shadow:0 0 10px 2px rgba(183,148,255,.55);animation:sxMote 9s ease-in-out infinite}
.elv .sx-sparks i:nth-child(3n){background:#E9CF8E;box-shadow:0 0 10px 2px rgba(233,207,142,.5);width:2px;height:2px}
@keyframes sxMote{0%,100%{opacity:0;transform:translate3d(0,14px,0)}35%{opacity:.85}70%{opacity:.35;transform:translate3d(8px,-26px,0)}}

/* SCENE · the scar */
.elv .sx-glow{position:absolute;left:50%;top:50%;width:min(120vw,900px);aspect-ratio:1;translate:-50% -50%;border-radius:50%;pointer-events:none}
.elv .sx-glow--red{background:radial-gradient(closest-side,rgba(255,45,85,.26),transparent 70%);opacity:calc(1 - var(--p,0) * 1.4)}
.elv .sx-glow--violet{background:radial-gradient(closest-side,rgba(124,58,237,.34),transparent 70%);opacity:calc(var(--p,0) * 1.2)}
.elv .sx-scar-copy{position:relative;max-width:900px;display:flex;flex-direction:column;gap:clamp(16px,2.6vw,30px);text-align:left}
.elv .sx-scar-copy .sx-k{text-align:left}
.elv .sx-l{font-size:clamp(23px,3.3vw,42px);line-height:1.22;letter-spacing:-.035em;font-weight:700;color:#fff}
.elv .sx-w{display:inline-block;transition:opacity .45s cubic-bezier(.23,1,.32,1),transform .45s cubic-bezier(.23,1,.32,1),color .45s ease}
.elv .is-tracked .sx-w{opacity:.16;transform:translate3d(0,4px,0)}
.elv .is-tracked .sx-w.lit{opacity:1;transform:none}
.elv .sx-w--hot.lit,.elv .sx-pin:not(.is-tracked) .sx-w--hot{color:#B794FF;text-shadow:0 0 34px rgba(139,92,246,.55)}

/* SCENE · the dealt deck */
.elv .sx-deck-k{margin-bottom:clamp(18px,3vw,30px)}
.elv .sx-cards{position:relative;width:min(100%,560px);display:grid;gap:14px}
.elv .sx-deck.is-tracked .sx-cards{display:block;height:min(62svh,440px)}
.elv .sx-deck.is-tracked .sx-card{position:absolute;inset:0;will-change:transform,opacity}
.elv .sx-deck.is-tracked .sx-card:nth-child(1){z-index:3}
.elv .sx-deck.is-tracked .sx-card:nth-child(2){z-index:2}
.elv .sx-deck.is-tracked .sx-card:nth-child(3){z-index:1}
.elv .sx-card{position:relative;display:flex;flex-direction:column;justify-content:flex-end;gap:12px;overflow:hidden;
  padding:clamp(24px,4vw,40px);border-radius:32px;text-align:left;
  background:radial-gradient(90% 70% at 15% 0%,rgba(124,58,237,.36),transparent 70%),linear-gradient(160deg,#16102A,#0A0714);
  border:1px solid rgba(196,170,255,.26);box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 40px 90px -36px rgba(0,0,0,.95),0 0 80px -34px rgba(124,58,237,.8)}
.elv .sx-card:nth-child(2){background:radial-gradient(90% 70% at 85% 0%,rgba(255,45,85,.26),transparent 70%),linear-gradient(160deg,#1B0E1C,#0A0714)}
.elv .sx-card:nth-child(3){background:radial-gradient(90% 70% at 50% 0%,rgba(212,178,106,.26),transparent 70%),linear-gradient(160deg,#1A1510,#0A0714)}
.elv .sx-card-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:auto}
.elv .sx-card-ico{width:64px;height:64px;border-radius:20px;display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14)}
.elv .sx-card-num{font-size:clamp(54px,9vw,88px);font-weight:800;letter-spacing:-.06em;line-height:.8;color:rgba(255,255,255,.07)}
.elv .sx-card-t{font-size:clamp(25px,3.6vw,38px);line-height:1.06;letter-spacing:-.04em;font-weight:800;color:#fff}
.elv .sx-card-b{font-size:clamp(15px,1.6vw,17.5px);line-height:1.5;color:#C7CCD6}
/* each glyph has its own life, running only while its card holds the stage */
.elv .sx-card.on .sx-pupil{animation:sxLook 3.2s cubic-bezier(.77,0,.175,1) infinite}
@keyframes sxLook{0%,100%{transform:translate(0,0)}22%{transform:translate(-3.4px,0)}50%{transform:translate(3.4px,-.6px)}78%{transform:translate(0,1.2px)}}
.elv .sx-card.on .sx-glyph--stop{animation:sxHalt 1.9s ease-in-out infinite}
@keyframes sxHalt{0%,100%{transform:scale(1);stroke:#E4D6FF}50%{transform:scale(1.13);stroke:#FF6B85}}
.elv .sx-glyph--list path:nth-child(2){stroke-dasharray:30;stroke-dashoffset:30}
.elv .sx-card.on .sx-glyph--list path:nth-child(2){animation:sxTick 2.6s cubic-bezier(.23,1,.32,1) infinite}
@keyframes sxTick{0%{stroke-dashoffset:30}55%,100%{stroke-dashoffset:0}}
.elv .sx-deck-dots{display:none;gap:8px;margin-top:22px}
.elv .sx-deck.is-tracked .sx-deck-dots{display:flex}
.elv .sx-deck-dot{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.2);transition:transform .3s cubic-bezier(.23,1,.32,1),background .3s ease}
.elv .sx-deck-dot.on{background:#B794FF;transform:scale(1.7)}

/* rotating rim shared by the hero cards */
.elv .sx-rim{position:absolute;inset:0;border-radius:inherit;padding:1.5px;pointer-events:none;
  background:conic-gradient(from var(--elvA),rgba(255,231,168,.85),rgba(124,58,237,.5) 22%,rgba(255,255,255,.06) 42%,rgba(192,132,252,.6) 62%,rgba(255,231,168,.8) 78%,rgba(91,33,182,.4) 90%,rgba(255,231,168,.85));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:elvRim 7s linear infinite}

/* the insight */
.elv .sx-swell{will-change:transform,opacity;transform-origin:50% 50%}
.elv .sx-scan{background:linear-gradient(100deg,#B794FF 0%,#B794FF 38%,#fff 50%,#B794FF 62%,#B794FF 100%);background-size:260% 100%;
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:sxScan 3.8s linear infinite}
@keyframes sxScan{from{background-position:130% 0}to{background-position:-130% 0}}

/* SCENE · the gap */
.elv .sx-gap-stack{position:relative;width:min(100%,640px);display:grid;gap:16px}
.elv .sx-gapscene.is-tracked .sx-gap-stack{display:block;height:min(66svh,470px)}
.elv .sx-gapscene.is-tracked .so-gap-card{position:absolute;inset:0;justify-content:center;will-change:transform,opacity}
.elv .sx-gapscene.is-tracked .so-new{opacity:0}
.elv .sx-gapscene .so-new{overflow:hidden;transform:none}
.elv .sx-gapscene:not(.is-tracked) .so-new{opacity:1}
.elv .sx-gapscene .so-strike span::after{width:calc(clamp(0, (var(--k,0) - var(--s,0)) * 3.2, 1) * 100%)}
.elv .sx-gapscene .so-strike:nth-child(1) span{--s:0}
.elv .sx-gapscene .so-strike:nth-child(2) span{--s:.3}
.elv .sx-gapscene .so-strike:nth-child(3) span{--s:.6}
.elv .sx-gapscene:not(.is-tracked) .so-strike span::after{width:100%}
.elv .sx-gapscene.is-tracked .so-new li,.elv .sx-gapscene.is-tracked .so-new .so-verdict{opacity:0;transform:translate3d(-10px,0,0) scale(.97);
  transition:opacity .4s cubic-bezier(.23,1,.32,1),transform .4s cubic-bezier(.23,1,.32,1)}
.elv .sx-gapscene.is-tracked .so-new li.pop,.elv .sx-gapscene.is-tracked .so-new .so-verdict.pop{opacity:1;transform:none}

/* proof strip without numbers */
.elv .so-proof span{align-items:center}

/* SCENE · the merge, drawn by the scroll */
.elv .sx-merge .so-lines path{stroke-dashoffset:var(--d,0);animation:none}
.elv .sx-merge .so-dot{opacity:0;transition:opacity .35s ease}
.elv .sx-merge.joined .so-dot,.elv .sx-merge:not(.is-tracked) .so-dot{opacity:1}
.elv .sx-merge .so-merge-out{position:relative;opacity:.25;transform:scale(.92);transition:opacity .6s cubic-bezier(.23,1,.32,1),transform .6s cubic-bezier(.23,1,.32,1)}
.elv .sx-merge.joined .so-merge-out,.elv .sx-merge:not(.is-tracked) .so-merge-out{opacity:1;transform:none}
.elv .sx-burst{position:absolute;left:50%;top:-24px;width:16px;height:16px;margin-left:-8px;border-radius:50%;border:1.5px solid #E4D6FF;opacity:0;pointer-events:none}
.elv .sx-merge.joined .sx-burst{animation:sxBurst 1.1s cubic-bezier(.23,1,.32,1) 1}
@keyframes sxBurst{0%{opacity:.9;transform:scale(.4)}100%{opacity:0;transform:scale(9)}}

/* SCENE · the doors */
.elv .sx-doors{position:relative;overflow:hidden;margin-top:clamp(40px,6vw,80px);padding:clamp(56px,9vw,120px) clamp(20px,5vw,60px);text-align:center}
.elv .sx-doors .so-doors{position:relative;z-index:1;margin:0 auto}
.elv .sx-doorlight{position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(38% 90% at 50% 50%,rgba(233,207,142,.30),transparent 70%),radial-gradient(60% 100% at 50% 50%,rgba(124,58,237,.42),transparent 72%)}
.elv .sx-door{position:absolute;top:0;bottom:0;width:50.5%;z-index:2;will-change:transform;display:none;
  background:linear-gradient(180deg,#0B0714,#07050D)}
.elv .sx-doors.is-tracked .sx-door{display:block}
.elv .sx-door--l{left:0;border-right:1px solid rgba(233,207,142,.55);box-shadow:inset -22px 0 40px -22px rgba(233,207,142,.35)}
.elv .sx-door--r{right:0;border-left:1px solid rgba(233,207,142,.55);box-shadow:inset 22px 0 40px -22px rgba(233,207,142,.35)}

/* founder cards: arrive from the sides, one sheen pass, pointer tilt on desktop */
@media (prefers-reduced-motion:no-preference){
  .elv .fd-card.e-reveal.from-l{transform:translate3d(-42px,0,0) rotate(-2.5deg)}
  .elv .fd-card.e-reveal.from-r{transform:translate3d(42px,0,0) rotate(2.5deg)}
  .elv .fd-card.e-reveal.is-in{transform:none}
}
.elv .fd-card{position:relative;overflow:hidden}
.elv .sx-sheen{position:absolute;top:0;bottom:0;left:-60%;width:40%;pointer-events:none;transform:skewX(-18deg);
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.13),transparent)}
.elv .fd-card.is-in .sx-sheen{animation:sxSheen 1.5s cubic-bezier(.23,1,.32,1) .45s 1 both}
@keyframes sxSheen{from{left:-60%}to{left:140%}}
@media (hover:hover) and (pointer:fine){
  .elv .sx-tilt{transition:transform .25s cubic-bezier(.23,1,.32,1),border-color .25s ease}
  .elv .sx-tilt:hover{transform:translate3d(0,-6px,0);border-color:rgba(183,148,255,.4)}
}

/* story progress rail */
.elv .sx-railwrap{position:absolute;inset:0;pointer-events:none;z-index:4}
.elv .sx-rail{position:fixed;right:clamp(8px,1.4vw,22px);top:50%;width:2px;height:min(34svh,230px);translate:0 -50%;border-radius:2px;
  background:rgba(255,255,255,.12);opacity:0;transition:opacity .4s ease;overflow:hidden}
.elv .sx-rail.on{opacity:1}
.elv .sx-rail-fill{position:absolute;inset:0;transform-origin:50% 0;transform:scaleY(0);background:linear-gradient(180deg,#B794FF,#E9CF8E)}

@media (max-width:760px){
  .elv .sx-l{font-size:clamp(22px,6.3vw,30px)}
  .elv .sx-card{border-radius:26px}
  .elv .sx-card-ico{width:54px;height:54px;border-radius:16px}
  .elv .sx-rail{right:5px;height:26svh}
}
/* reduced motion / engine off: the base layout, fully lit, nothing pinned */
.elv .sx-pin.is-static .sx-w{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .elv .sx-sparks i,.elv .sx-rim,.elv .sx-scan{animation:none}
  .elv .sx-rail{display:none}
}
/* in the pinned gap scene our card must be opaque: the falling card showed through it */
.elv .sx-gapscene .so-new{background:radial-gradient(90% 70% at 20% 0%,rgba(124,58,237,.42),transparent 70%),
  radial-gradient(60% 50% at 100% 100%,rgba(212,178,106,.14),transparent 70%),linear-gradient(160deg,#171029,#0A0714)}

/* ─── FASTER STORY (founder, 2026-09-21: "too long, make it quicker") ─────
   Each pinned scene now costs well under one screen of extra scroll: the
   three cards deal in about one swipe, the words light in half a swipe. */
.elv .sx-scar.is-tracked{--track:158svh}
.elv .sx-deck.is-tracked{--track:185svh}
.elv .sx-gapscene.is-tracked{--track:178svh}
.elv .so-insight{margin-top:clamp(18px,3vw,36px)}
.elv .so-merge{margin-top:clamp(36px,5vw,64px)}
.elv .sx-doors{margin-top:clamp(20px,3vw,40px);padding-block:clamp(40px,6vw,80px)}
.elv .so-proof{margin-top:clamp(20px,3vw,34px)}
.elv .team-live{margin-top:clamp(40px,5vw,64px);padding-top:clamp(32px,4vw,48px)}

/* ─── PERSISTENT CTA BAR ───────────────────────────────────────────────────
   Lives on <body>. Appears once the opt-in form has scrolled away, hides
   whenever a real CTA or the form is already on screen (never two asks at
   once), and during any full-screen viewer. */
.elv-bar{position:fixed;left:0;right:0;bottom:0;z-index:2147481000;display:flex;justify-content:center;pointer-events:none;
  padding:10px 12px calc(env(safe-area-inset-bottom,0px) + 10px);
  transform:translate3d(0,110%,0);transition:transform .45s cubic-bezier(.23,1,.32,1);
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",Helvetica,Arial,sans-serif}
.elv-bar.on{transform:none}
html.elv-lock .elv-bar{transform:translate3d(0,110%,0)}
.elv-bar-in{pointer-events:auto;display:flex;align-items:center;gap:12px;width:100%;max-width:520px;padding:8px 8px 8px 16px;border-radius:999px;
  background:rgba(12,8,22,.86);border:1px solid rgba(196,170,255,.32);
  -webkit-backdrop-filter:blur(18px) saturate(170%);backdrop-filter:blur(18px) saturate(170%);
  box-shadow:0 18px 50px -12px rgba(0,0,0,.9),0 0 60px -18px rgba(124,58,237,.8),inset 0 1px 0 rgba(255,255,255,.14)}
.elv-bar-txt{display:flex;flex-direction:column;min-width:0;line-height:1.2}
.elv-bar-txt b{font-size:14px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.elv-bar-txt span{font-size:11.5px;color:#9AA1B4}
.elv-bar-btn{margin-left:auto;flex:none;display:inline-flex;align-items:center;gap:7px;height:46px;padding:0 20px;border-radius:999px;border:0;cursor:pointer;
  font-family:inherit;font-size:15px;font-weight:800;color:#fff;text-decoration:none;
  background:linear-gradient(135deg,#A773FF 0%,#7C3AED 52%,#5B21B6 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 0 0 1.5px rgba(233,207,142,.55),0 10px 26px -8px rgba(124,58,237,.9)}
.elv-bar-btn:active{transform:scale(.97)}
@media (min-width:761px){ .elv-bar{justify-content:flex-end;padding-right:28px;padding-bottom:22px} .elv-bar-in{max-width:440px} }
@media (prefers-reduced-motion:reduce){ .elv-bar{transition:none} }

/* ─── SHORT STORY: play-once scenes + a sideways deck ─────────────────────
   .is-auto scenes never pin: natural height, the animation runs on a clock. */
.elv .sx-pin.is-auto{height:auto}
.elv .sx-pin.is-auto .sx-stage{position:relative;height:auto;padding-block:clamp(36px,6vw,72px)}
.elv .sx-scar.is-auto .sx-glow{width:min(110vw,760px)}
.elv .sx-gapscene.is-auto .sx-gap-stack{height:min(60svh,430px)}

/* the deck: one row, swiped sideways; the next card always peeks in */
.elv .sx-swipe{padding:clamp(28px,5vw,56px) 0 clamp(20px,3vw,36px);text-align:center}
.elv .sx-swipe .sx-stage{padding:0;overflow:visible;display:block}
.elv .sx-swipe .sx-sparks{display:none}
.elv .sx-swipe .sx-cards{display:flex;gap:14px;width:100%;max-width:none;overflow-x:auto;overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;
  padding:8px max(20px,calc((100vw - 1100px)/2)) 26px;scroll-padding-inline:max(20px,calc((100vw - 1100px)/2))}
.elv .sx-swipe .sx-cards::-webkit-scrollbar{display:none}
.elv .sx-swipe .sx-card{flex:0 0 min(80vw,356px);min-height:clamp(330px,52svh,400px);scroll-snap-align:center;
  transition:transform .45s cubic-bezier(.23,1,.32,1),opacity .45s cubic-bezier(.23,1,.32,1);transform:scale(.94);opacity:.55}
.elv .sx-swipe .sx-card.on{transform:none;opacity:1}
.elv .sx-swipe .sx-deck-dots{display:flex;justify-content:center;margin-top:2px}
.elv .sx-swipe .sx-deck-dot{cursor:pointer;padding:0;border:0}
/* a one-time nudge so the row reads as swipeable */
.elv .sx-swipe .sx-cards{animation:sxNudge 1.6s cubic-bezier(.23,1,.32,1) 1.2s 1 both}
@keyframes sxNudge{0%,100%{transform:none}40%{transform:translate3d(-26px,0,0)}}
@media (min-width:1100px){
  .elv .sx-swipe .sx-cards{justify-content:center;overflow:visible;animation:none}
  .elv .sx-swipe .sx-card{flex-basis:340px;transform:none;opacity:1}
  .elv .sx-swipe .sx-deck-dots{display:none}
}

/* coaches on a phone: one swipeable row instead of three stacked screens */
@media (max-width:900px){
  .elv .coach-grid{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
    scrollbar-width:none;overscroll-behavior-x:contain;margin-inline:calc(clamp(20px,5vw,80px) * -1);
    padding:4px clamp(20px,5vw,80px) 18px;scroll-padding-inline:clamp(20px,5vw,80px)}
  .elv .coach-grid::-webkit-scrollbar{display:none}
  .elv .coach-grid .coach{flex:0 0 78vw;max-width:340px;scroll-snap-align:center}
  .elv .coach-grid .coach .photo{aspect-ratio:4/5}
}
@media (prefers-reduced-motion:reduce){ .elv .sx-swipe .sx-cards{animation:none} .elv .sx-swipe .sx-card{transform:none;opacity:1} }

/* story hero now shows the studio logo wall, not a portrait: keep the logo
   in the upper half so the headline sits under it, never across it */
.elv .so-hero-img{object-position:50% 34%}
.elv .so-hero-veil{background:
  linear-gradient(180deg,rgba(3,2,7,.35) 0%,rgba(3,2,7,.05) 30%,rgba(3,2,7,.5) 56%,rgba(3,2,7,.95) 82%,#030207 100%),
  radial-gradient(70% 45% at 50% 100%,rgba(124,58,237,.42),transparent 70%)}
@media (max-width:760px){ .elv .so-hero-img{object-position:50% 50%;max-height:46%} }

/* desktop story hero: the wall photo ends at 74% so its "ELAVE FX" lettering
   sits clear above the headline instead of underneath it */
@media (min-width:761px){
  .elv .so-hero-img{height:74%;object-position:50% 30%}
  .elv .so-hero-veil{background:
    linear-gradient(180deg,rgba(3,2,7,.30) 0%,rgba(3,2,7,0) 24%,rgba(3,2,7,.35) 50%,rgba(3,2,7,.96) 72%,#030207 80%),
    radial-gradient(70% 40% at 50% 100%,rgba(124,58,237,.42),transparent 70%)}
}

/* ─── INTO THE COACHES — a drawn rule, then the cards arrive with motion ── */
.elv .team-live{border-top:0;position:relative}
.elv .tl-rule{display:block;position:relative;height:1px;margin:0 auto clamp(36px,5vw,60px);max-width:1100px;opacity:1;transform:none}
.elv .tl-rule i{position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(183,148,255,.75) 30%,rgba(233,207,142,.85) 50%,rgba(183,148,255,.75) 70%,transparent);
  transform:scaleX(0);transition:transform 1.2s cubic-bezier(.23,1,.32,1)}
.elv .tl-rule::after{content:"";position:absolute;left:50%;top:50%;width:9px;height:9px;margin:-4.5px 0 0 -4.5px;border-radius:50%;
  background:#E9CF8E;box-shadow:0 0 18px 4px rgba(233,207,142,.6);opacity:0;transition:opacity .5s ease .7s}
.elv .tl-rule.is-in i{transform:none}
.elv .tl-rule.is-in::after{opacity:1}
.elv .tl-kicker{display:inline-flex;align-items:center;gap:9px}
.elv .tl-kicker i{width:8px;height:8px;border-radius:50%;background:#FF8A00;box-shadow:0 0 12px #FF8A00;animation:elvBlink 1.6s ease-in-out infinite}
.elv .tl-h .so-line{display:block;overflow:hidden}

/* cards rise in one after another, slightly rotated, then settle */
@media (prefers-reduced-motion:no-preference){
  .elv .coach.e-reveal{opacity:0;transform:translate3d(0,46px,0) rotate(1.6deg) scale(.96);
    transition:opacity .8s cubic-bezier(.23,1,.32,1),transform .8s cubic-bezier(.23,1,.32,1),border-color .3s ease,box-shadow .3s ease}
  .elv .coach.e-reveal:nth-child(2){transform:translate3d(0,46px,0) rotate(-1.2deg) scale(.96)}
  .elv .coach.e-reveal.is-in{opacity:1;transform:none}
  .elv .coach.e-reveal.d2{transition-delay:.11s}
  .elv .coach.e-reveal.d3{transition-delay:.22s}
}
.elv .coach .photo{overflow:hidden}
.elv .coach .photo img{will-change:transform;transform:scale(1.12)}
.elv .coach .photo::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,transparent 55%,rgba(11,7,20,.85) 100%)}
.elv .coach-live{display:inline-block;width:7px;height:7px;margin-right:8px;border-radius:50%;vertical-align:middle;
  background:var(--tone-c,#B794FF);box-shadow:0 0 10px var(--tone-c,#B794FF);animation:elvBlink 1.8s ease-in-out infinite}
@media (hover:hover) and (pointer:fine){
  .elv .coach:hover{transform:translate3d(0,-8px,0);border-color:rgba(183,148,255,.4);
    box-shadow:0 1px 2px rgba(0,0,0,.4),0 40px 90px -34px rgba(124,58,237,.75)}
}
/* phone row: the centred coach steps forward, the others recede */
@media (max-width:900px){
  .elv .team-live.is-wired .coach{transition:transform .45s cubic-bezier(.23,1,.32,1),opacity .45s cubic-bezier(.23,1,.32,1)}
  .elv .team-live.is-wired .coach.is-in:not(.on){transform:scale(.94);opacity:.6}
  .elv .team-live.is-wired .coach.is-in.on{transform:none;opacity:1}
}
@media (prefers-reduced-motion:reduce){ .elv .tl-rule i{transform:none} .elv .tl-rule::after{opacity:1} .elv .tl-kicker i,.elv .coach-live{animation:none} }
/* desktop story hero, take 2: the wall is a framed window over its own blurred
   copy, so the lettering in the photo can never sit under the headline */
@media (min-width:761px){
  .elv .so-hero{min-height:min(96svh,900px);align-items:flex-end}
  .elv .so-hero-media::before{content:"";position:absolute;inset:-8%;
    background:url("https://elavefx.com/funnel/studio-wall.jpg") center/cover no-repeat;
    filter:blur(34px) saturate(1.15) brightness(.42);transform:scale(1.08)}
  .elv .so-hero-img{position:relative;display:block;margin:0 auto;top:5%;width:auto;max-width:min(88%,960px);height:auto;max-height:54%;
    object-fit:contain;border-radius:24px;border:1px solid rgba(233,207,142,.3);
    box-shadow:0 40px 100px -30px rgba(0,0,0,.9),0 0 90px -30px rgba(124,58,237,.7);
    transform:scale(calc(1.03 - var(--p,0) * .03))}
  .elv .so-hero-veil{background:linear-gradient(180deg,rgba(3,2,7,.25) 0%,rgba(3,2,7,0) 40%,rgba(3,2,7,.55) 62%,rgba(3,2,7,.96) 86%,#030207 100%),
    radial-gradient(70% 40% at 50% 100%,rgba(124,58,237,.42),transparent 70%);pointer-events:none}
  .elv .so-hero-media{display:block}
  .elv .so-h{font-size:clamp(40px,5.2vw,76px)}
}
/* desktop story hero, take 3 (founder: the framed window "looks like shit"):
   full-bleed cinematic wall across the top 78% of the scene, dissolving into
   black; the headline sits in the clear space under the logo lettering */
@media (min-width:761px){
  .elv .so-hero{min-height:min(100svh,940px);align-items:flex-end;padding-bottom:clamp(40px,5vw,64px)}
  .elv .so-hero-media::before{display:none}
  .elv .so-hero-img{position:absolute;inset:0 0 auto 0;top:0;margin:0;width:100%;max-width:none;height:78%;max-height:none;
    object-fit:cover;object-position:50% 38%;border:0;border-radius:0;box-shadow:none;
    transform:scale(calc(1.06 - var(--p,0) * .06));transform-origin:50% 40%}
  .elv .so-hero-veil{background:
    linear-gradient(180deg,rgba(3,2,7,.55) 0%,rgba(3,2,7,0) 16%,rgba(3,2,7,0) 46%,rgba(3,2,7,.7) 62%,#030207 77%),
    linear-gradient(90deg,rgba(3,2,7,.6) 0%,transparent 18%,transparent 82%,rgba(3,2,7,.6) 100%)}
  .elv .so-h{font-size:clamp(44px,5.6vw,84px)}
}

/* ═══ STORY MODULES v2 (2026-09-21) — bill · switch · terminal ═════════════ */
.elv .mx-split{display:grid;grid-template-columns:minmax(0,420px) 1fr;gap:clamp(24px,4vw,64px);align-items:center;
  margin-top:clamp(40px,6vw,80px);text-align:left}

/* MODULE A — the bill */
.elv .mx-bill{position:relative;padding:34px 28px 26px;border-radius:6px 6px 22px 22px;color:#15121E;
  background:linear-gradient(180deg,#F6F1E6,#E9E1CF);transform:rotate(-2deg);
  box-shadow:0 40px 90px -30px rgba(0,0,0,.95),0 0 80px -30px rgba(124,58,237,.7);
  font-family:"SF Mono",ui-monospace,Menlo,Consolas,monospace}
.elv .mx-bill.e-reveal{transform:translate3d(0,26px,0) rotate(-6deg)}
.elv .mx-bill.e-reveal.is-in{transform:rotate(-2deg)}
.elv .mx-bill::before{content:"";position:absolute;left:0;right:0;top:-9px;height:10px;
  background:radial-gradient(circle at 8px 10px,#F6F1E6 6px,transparent 6.5px) repeat-x;background-size:16px 10px}
.elv .mx-bill-hole{position:absolute;left:50%;top:12px;width:10px;height:10px;margin-left:-5px;border-radius:50%;background:#0A0714}
.elv .mx-bill-k{font-size:20px;font-weight:800;letter-spacing:.24em;text-align:center;margin-top:8px}
.elv .mx-bill-sub{font-size:11.5px;letter-spacing:.06em;text-align:center;color:#5B5568;margin-top:4px;
  padding-bottom:14px;border-bottom:1.5px dashed rgba(21,18,30,.35)}
.elv .mx-bill-rows{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:11px}
.elv .mx-bill-row{display:flex;align-items:baseline;gap:8px;font-size:13.5px;line-height:1.35}
.elv .mx-bill-row i{flex:1;min-width:14px;border-bottom:1.5px dotted rgba(21,18,30,.35);transform:translateY(-3px)}
.elv .mx-bill-row b{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;padding:2px 7px;border-radius:4px;
  color:#0B7A4B;border:1.5px solid #0B7A4B;opacity:0;transform:scale(1.5) rotate(-8deg);
  transition:opacity .28s ease,transform .38s cubic-bezier(.23,1,.32,1)}
.elv .mx-bill-row.paid b,.elv .mx-bill:not(.is-tracked) .mx-bill-row b{opacity:1;transform:none}
.elv .mx-bill-row.paid span{text-decoration:line-through;text-decoration-color:rgba(21,18,30,.4)}
.elv .mx-bill-total{display:flex;justify-content:space-between;align-items:baseline;margin-top:16px;padding-top:14px;
  border-top:1.5px dashed rgba(21,18,30,.35);font-size:14px}
.elv .mx-bill-total b{font-size:16px;letter-spacing:.04em;text-transform:uppercase}
.elv .mx-stamp{position:absolute;right:14px;bottom:54px;padding:8px 16px 6px;border:3px solid #7C3AED;border-radius:10px;color:#7C3AED;
  font-size:26px;font-weight:900;letter-spacing:.14em;line-height:1;text-align:center;opacity:0;transform:scale(2.2) rotate(-24deg);
  transition:opacity .2s ease,transform .45s cubic-bezier(.23,1,.32,1);mix-blend-mode:multiply;font-family:inherit}
.elv .mx-stamp i{display:block;font-style:normal;font-size:10px;letter-spacing:.2em;margin-top:3px}
.elv .mx-bill.stamped .mx-stamp,.elv .mx-bill:not(.is-tracked) .mx-stamp{opacity:.9;transform:rotate(-13deg)}
.elv .mx-say{display:flex;flex-direction:column;gap:10px}
.elv .mx-say-l{font-size:clamp(28px,4vw,52px);line-height:1.06;letter-spacing:-.045em;font-weight:800;color:#fff}
.elv .mx-say-hot{color:#B794FF;text-shadow:0 0 40px rgba(139,92,246,.55)}
.elv .mx-say-p{font-size:clamp(16px,1.7vw,20px);line-height:1.5;color:#C7CCD6;max-width:520px;margin-top:8px}

/* MODULE B — the switch */
.elv .mx-cmp{position:relative;margin-top:clamp(48px,7vw,96px);padding:clamp(20px,3vw,34px);border-radius:32px;text-align:left;
  background:linear-gradient(160deg,rgba(255,255,255,.05),rgba(255,255,255,.015));border:1px solid rgba(255,255,255,.1);
  transition:background .6s ease,border-color .6s ease,box-shadow .6s ease}
.elv .mx-cmp[data-mode="duo"]{background:linear-gradient(160deg,rgba(167,115,255,.2),rgba(124,58,237,.06) 55%,rgba(212,178,106,.08));
  border-color:rgba(196,170,255,.4);box-shadow:0 40px 100px -40px rgba(124,58,237,.9),inset 0 1px 0 rgba(255,255,255,.16)}
.elv .mx-cmp-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:clamp(16px,2.4vw,26px)}
.elv .mx-switch{position:relative;display:grid;grid-template-columns:1fr 1fr;padding:4px;border-radius:999px;
  background:rgba(0,0,0,.45);border:1px solid rgba(255,255,255,.14)}
.elv .mx-sw{position:relative;z-index:1;height:40px;padding:0 20px;border:0;border-radius:999px;background:transparent;cursor:pointer;
  font-family:inherit;font-size:14.5px;font-weight:700;color:#9AA1B4;transition:color .3s ease}
.elv .mx-sw[aria-selected="true"]{color:#fff}
.elv .mx-sw:focus-visible{outline:2px solid #B794FF;outline-offset:2px}
.elv .mx-sw-thumb{position:absolute;top:4px;bottom:4px;left:4px;width:calc(50% - 4px);border-radius:999px;background:rgba(255,255,255,.12);
  transition:transform .45s cubic-bezier(.23,1,.32,1),background .45s ease}
.elv .mx-cmp[data-mode="duo"] .mx-sw-thumb{transform:translate3d(100%,0,0);background:linear-gradient(135deg,#A773FF,#7C3AED 55%,#5B21B6)}
.elv .mx-rows{display:grid;gap:10px}
.elv .mx-row{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;padding:16px 18px;border-radius:20px;
  background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.07)}
.elv .mx-row-ico{width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);transition:background .5s ease}
.elv .mx-cmp[data-mode="duo"] .mx-row-ico{background:rgba(139,92,246,.28)}
.elv .mx-cmp[data-mode="duo"] .sx-pupil{animation:sxLook 3.2s cubic-bezier(.77,0,.175,1) infinite}
.elv .mx-row-topic{display:block;font-size:11.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#9AA1B4;margin-bottom:5px}
/* both faces share one grid cell, so the row never changes height when flipped */
.elv .mx-row-faces{display:grid}
.elv .mx-face{grid-area:1/1;margin:0;font-size:clamp(15px,1.6vw,17px);line-height:1.45;
  transition:opacity .45s cubic-bezier(.23,1,.32,1),transform .45s cubic-bezier(.23,1,.32,1)}
.elv .mx-face--solo{color:#9AA1B4}
.elv .mx-face--duo{color:#F2EDFF;opacity:0;transform:translate3d(0,10px,0)}
.elv .mx-face--duo b{color:#fff;font-weight:800}
.elv .mx-cmp[data-mode="duo"] .mx-face--solo{opacity:0;transform:translate3d(0,-10px,0)}
.elv .mx-cmp[data-mode="duo"] .mx-face--duo{opacity:1;transform:none}
.elv .mx-row:nth-child(2) .mx-face{transition-delay:.06s}
.elv .mx-row:nth-child(3) .mx-face{transition-delay:.12s}
.elv .mx-cmp-foot{display:grid;align-items:center;margin-top:16px;font-size:15px;font-weight:600}
.elv .mx-cmp-foot i{display:none}
.elv .mx-cmp-foot span{grid-area:1/1;transition:opacity .45s ease}
.elv .mx-foot-solo{color:#7E869A;font-style:italic}
.elv .mx-foot-duo{color:#E9DEFF;opacity:0}
.elv .mx-cmp[data-mode="duo"] .mx-foot-solo{opacity:0}
.elv .mx-cmp[data-mode="duo"] .mx-foot-duo{opacity:1}

/* MODULE C — what we built, shown working */
.elv .mx-built{display:grid;grid-template-columns:1fr minmax(0,440px);gap:clamp(24px,4vw,60px);align-items:center;
  margin-top:clamp(28px,4vw,56px);text-align:left}
.elv .mx-built-h{font-size:clamp(28px,3.6vw,46px);line-height:1.06;letter-spacing:-.045em;font-weight:800;color:#fff;margin:10px 0 18px}
.elv .mx-built-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.elv .mx-built-list li{display:flex;gap:10px;align-items:flex-start;font-size:16.5px;line-height:1.45;color:#F2EDFF}
.elv .mx-built-list li svg{flex:none;margin-top:3px}
.elv .mx-built-list b{color:#fff}
.elv .mx-built-note{margin-top:18px;padding-left:14px;border-left:2px solid rgba(233,207,142,.6);font-size:15.5px;line-height:1.5;color:#E9DEFF;font-weight:600}
.elv .mx-term{position:relative;border-radius:24px;overflow:hidden;background:linear-gradient(170deg,#140E24,#08060F);
  border:1px solid rgba(196,170,255,.24);box-shadow:0 50px 110px -40px rgba(0,0,0,.95),0 0 100px -40px rgba(124,58,237,.85)}
.elv .mx-term-bar{display:flex;align-items:center;gap:6px;padding:11px 14px;border-bottom:1px solid rgba(255,255,255,.08);font-size:12px;color:#9AA1B4}
.elv .mx-term-bar i{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.16)}
.elv .mx-term-bar span{margin-left:8px;font-weight:700;color:#D2D6E0}
.elv .mx-term-bar em{margin-left:auto;font-style:normal;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:#7E869A}
.elv .mx-term-body{padding:16px;display:grid;gap:12px}
.elv .mx-acct{display:flex;justify-content:space-between;align-items:center}
.elv .mx-acct-name{font-size:15px;font-weight:700;color:#fff}
.elv .mx-acct-name small{display:block;font-size:11.5px;font-weight:500;color:#7E869A}
.elv .mx-live{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;color:#2ED8A7;padding:4px 10px;border-radius:999px;background:rgba(0,196,106,.12)}
.elv .mx-live i{width:6px;height:6px;border-radius:50%;background:#2ED8A7;animation:elvBlink 1.6s ease-in-out infinite}
.elv .mx-chart{width:100%;height:auto;aspect-ratio:320/90;display:block;border-radius:12px;background:rgba(255,255,255,.03)}
.elv .mx-chart-line{stroke-dasharray:420;stroke-dashoffset:calc(var(--draw,0) * 420)}
.elv .mx-chart-bad,.elv .mx-chart-stop,.elv .mx-chart-flat{opacity:0;transition:opacity .4s ease}
.elv .mx-term[data-step="1"] .mx-chart-bad{opacity:1}
.elv .mx-term[data-step="2"] .mx-chart-bad,.elv .mx-term[data-step="3"] .mx-chart-bad{opacity:.25}
.elv .mx-term[data-step="2"] .mx-chart-stop,.elv .mx-term[data-step="3"] .mx-chart-stop,
.elv .mx-term[data-step="2"] .mx-chart-flat,.elv .mx-term[data-step="3"] .mx-chart-flat{opacity:1}
.elv .mx-rule{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;font-size:12.5px;color:#9AA1B4}
.elv .mx-meter{height:6px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden}
.elv .mx-meter i{display:block;height:100%;width:100%;transform-origin:0 50%;transform:scaleX(.34);border-radius:999px;background:#2ED8A7;
  transition:transform .6s cubic-bezier(.23,1,.32,1),background .4s ease}
.elv .mx-term[data-step="1"] .mx-meter i{transform:scaleX(.9);background:#FF6B85}
.elv .mx-term[data-step="2"] .mx-meter i,.elv .mx-term[data-step="3"] .mx-meter i{transform:scaleX(.58);background:#E9CF8E}
.elv .mx-rule-v{font-size:12px;font-weight:700;color:#2ED8A7}
.elv .mx-alert,.elv .mx-chat{display:flex;gap:10px;align-items:flex-start;padding:11px 12px;border-radius:14px;font-size:13px;line-height:1.4;
  opacity:0;transform:translate3d(0,12px,0) scale(.97);transition:opacity .45s cubic-bezier(.23,1,.32,1),transform .45s cubic-bezier(.23,1,.32,1)}
.elv .mx-alert{background:rgba(255,45,85,.10);border:1px solid rgba(255,107,133,.35);color:#FFD3DB}
.elv .mx-chat{background:rgba(139,92,246,.14);border:1px solid rgba(183,148,255,.3);color:#E9DEFF}
.elv .mx-alert b,.elv .mx-chat b{display:block;color:#fff;font-size:13px}
.elv .mx-alert-ico{flex:none}
.elv .mx-chat img{width:30px;height:30px;border-radius:50%;object-fit:cover;object-position:top;flex:none;border:1.5px solid #B794FF}
.elv .mx-term[data-step="2"] .mx-alert,.elv .mx-term[data-step="3"] .mx-alert,.elv .mx-term[data-step="3"] .mx-chat,
.elv .mx-term:not(.is-tracked) .mx-alert,.elv .mx-term:not(.is-tracked) .mx-chat{opacity:1;transform:none}

@media (max-width:900px){
  .elv .mx-split,.elv .mx-built{grid-template-columns:1fr}
  .elv .mx-bill{max-width:360px;margin:0 auto;padding:30px 20px 22px}
  .elv .mx-stamp{font-size:22px;right:10px;bottom:50px}
  .elv .mx-cmp{padding:16px;border-radius:24px}
  .elv .mx-cmp-head{flex-direction:column;align-items:stretch}
  .elv .mx-switch{width:100%}
  .elv .mx-row{padding:14px;border-radius:16px;gap:12px}
  .elv .mx-row-ico{width:38px;height:38px;border-radius:12px}
  .elv .mx-term{order:-1}
}
@media (prefers-reduced-motion:reduce){ .elv .mx-live i{animation:none} .elv .mx-chart-line{stroke-dashoffset:0} }
/* the big stamp gets its own strip under the total instead of covering a row */
.elv .mx-bill{padding-bottom:84px}
.elv .mx-stamp{right:22px;bottom:16px}
@media (max-width:900px){ .elv .mx-bill{padding-bottom:78px} .elv .mx-stamp{right:16px;bottom:14px} }

/* ── story hero on a phone: STACKED, never overlaid (2026-09-21) ─────────────
   The copy used to be pinned to the bottom of a svh-tall box with the photo
   capped at 46% of it. In a short viewport (in-app browsers, large text) the
   copy climbed onto the photo and "NOTRE HISTOIRE" landed on the floor line.
   Now the photo is a block with its own ratio and the copy follows it. */
@media (max-width:760px){
  .elv .so-hero{display:block;min-height:0;padding-top:0}
  .elv .so-hero-media{position:relative;inset:auto;margin-inline:calc(-1*clamp(20px,5vw,60px))}
  .elv .so-hero-media::before{display:none}
  .elv .so-hero-img{position:relative;top:0;display:block;width:100%;height:auto;max-height:none;aspect-ratio:1672/941;object-fit:cover;object-position:50% 50%}
  .elv .so-hero-veil{background:linear-gradient(180deg,rgba(3,2,7,.3) 0%,rgba(3,2,7,0) 28%,rgba(3,2,7,0) 66%,#030207 100%)}
  .elv .so-hero-copy{margin-top:clamp(30px,8vw,44px)}
}

/* ═══ COACHES WALL v2 (founder 2026-09-23) ═══════════════════════════════
   "the part of the coaches is kina boring i need a better desing there,
    including the phone version, i need to see them, so no side scrolling
    only normal scrolling. enzo at the top and the alex and then billy."
   Three identical portraits in a row read as a contact sheet, so the block
   now has a hierarchy: the founder leads on a wide landscape card, Alex and
   Billy sit beneath him. `.coach-wall` replaces `.coach-grid`, which is what
   drops the phone rail — nothing scrolls sideways and no coach hides
   off-screen. Cadence is a chip, not a run-on sentence. */
.elv .coach-wall{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(14px,1.6vw,22px);margin-top:clamp(26px,4vw,44px)}
.elv .coach-wall .coach{position:relative;display:flex;flex-direction:column;overflow:hidden;
  border-radius:26px;border:1px solid rgba(255,255,255,.08);
  background:linear-gradient(180deg,#130D22 0%,#0A0714 62%,#08050F 100%);
  box-shadow:0 34px 70px -44px rgba(0,0,0,.95)}
/* a lit edge that picks up the tone colour — the funnel's liquid-glass rim */
.elv .coach-wall .coach-rim{position:absolute;inset:0;z-index:2;pointer-events:none;border-radius:inherit;
  background:linear-gradient(150deg,color-mix(in srgb,var(--tone-c,#B794FF) 55%,transparent) 0%,transparent 34%,transparent 66%,color-mix(in srgb,var(--tone-c,#B794FF) 22%,transparent) 100%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);padding:1px;opacity:.9}
/* The pair sit in ~560px columns, so a 4/5 portrait would run ~700px tall and
   turn two cards into two screens. A square crop keeps them compact and lets
   the row read as a pair; only the lead keeps a tall frame. */
.elv .coach-wall .coach .photo{position:relative;width:100%;aspect-ratio:1/1;overflow:hidden;background:#05070C}
.elv .coach-wall .coach .photo img{width:100%;height:100%;object-fit:cover;object-position:top center}
/* the photo sinks into the card instead of ending on a hard line */
.elv .coach-wall .coach .photo::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,transparent 46%,rgba(10,7,20,.55) 78%,#0A0714 100%)}
.elv .coach-wall .coach-meta{display:flex;flex-direction:column;align-items:flex-start;gap:10px;
  padding:clamp(18px,2vw,24px) clamp(18px,2vw,26px) clamp(20px,2.2vw,26px);margin-top:-14px;position:relative;z-index:1}
.elv .coach-wall .coach-id{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.elv .coach-wall .coach-id .t-card{font-size:clamp(21px,2vw,26px);letter-spacing:-.02em}
/* cadence as a chip: the weekly rhythm is the product, so it gets a shape */
.elv .coach-wall .coach-when{display:inline-flex;align-items:flex-start;gap:0;
  padding:8px 13px;border-radius:14px;font-size:13.5px;line-height:1.35;font-weight:600;
  color:var(--tone-c,#B794FF);background:color-mix(in srgb,var(--tone-c,#B794FF) 12%,transparent);
  border:1px solid color-mix(in srgb,var(--tone-c,#B794FF) 26%,transparent)}
.elv .coach-wall .coach-desc{font-size:14.5px;line-height:1.55;color:#B8BDCB}

/* ── the lead card: founder first, landscape, wider type ── */
/* Cap the lead card: left to the photo's own height it ran ~540px against
   ~200px of copy, and the empty right half read as unfinished rather than
   airy. The crop stays on Enzo's face (object-position: top center). */
.elv .coach-wall .coach--lead{grid-column:1/-1;flex-direction:row;align-items:stretch;
  max-height:clamp(360px,33vw,460px)}
.elv .coach-wall .coach--lead .photo{flex:0 0 min(44%,430px);aspect-ratio:auto;align-self:stretch}
.elv .coach-wall .coach--lead .photo::after{
  background:linear-gradient(90deg,transparent 52%,rgba(10,7,20,.6) 84%,#0A0714 100%)}
.elv .coach-wall .coach--lead .coach-meta{flex:1;justify-content:center;margin-top:0;
  padding:clamp(24px,3vw,44px) clamp(24px,3vw,44px)}
.elv .coach-wall .coach--lead .coach-id .t-card{font-size:clamp(26px,3vw,40px)}
.elv .coach-wall .coach--lead .coach-desc{font-size:15.5px;max-width:52ch}

@media (hover:hover) and (pointer:fine){
  .elv .coach-wall .coach{transition:transform .4s cubic-bezier(.23,1,.32,1),border-color .4s cubic-bezier(.23,1,.32,1)}
  .elv .coach-wall .coach:hover{transform:translate3d(0,-6px,0);border-color:color-mix(in srgb,var(--tone-c,#B794FF) 42%,transparent)}
}

/* ── PHONE: everything stacks. No rail, no snap, nothing off-screen. ── */
@media (max-width:900px){
  .elv .coach-wall{grid-template-columns:1fr;gap:16px;margin-inline:0;padding:0;overflow:visible}
  .elv .coach-wall .coach--lead{grid-column:auto;flex-direction:column;max-height:none}
  .elv .coach-wall .coach--lead .photo{flex:none;width:100%;aspect-ratio:4/5}
  /* one column on a phone, so the pair can afford the taller portrait again */
  .elv .coach-wall .coach .photo{aspect-ratio:4/5}
  .elv .coach-wall .coach--lead .photo::after{
    background:linear-gradient(180deg,transparent 46%,rgba(10,7,20,.55) 78%,#0A0714 100%)}
  .elv .coach-wall .coach--lead .coach-meta{margin-top:-14px;padding:20px 20px 24px}
  .elv .coach-wall .coach--lead .coach-id .t-card{font-size:24px}
  .elv .coach-wall .coach-desc,.elv .coach-wall .coach--lead .coach-desc{font-size:14.5px;max-width:none}
}
