/* GENESIS v4 — journey layer (2026-06-11). One persistent WebGL stage;
   full-screen acts with one statement each; detail lives on /how + /proof. */
#gv-stage {
  position: fixed; inset: 0; z-index: 0; pointer-events: none;
  transition: opacity 0.5s var(--v3-ease);
}
#gv-stage canvas { width: 100%; height: 100%; display: block; }
#gv-stage.is-dim { opacity: 0.14; }
.v3-hero { background: transparent; min-height: 100svh; }
.v3-hero::after { display: none; }
.v3-hero .v3-wrap { position: relative; z-index: 2; }
main { position: relative; z-index: 1; }

.v4-act {
  position: relative;
  min-height: 92svh;
  display: flex; align-items: center;
  background: transparent;
}
.v4-act-copy { position: relative; z-index: 2; max-width: var(--v3-max); }
.v4-act-copy::before {       /* legibility pool behind copy */
  content: ''; position: absolute; inset: -12% -8%;
  background: radial-gradient(ellipse 60% 70% at 30% 50%, rgba(6,26,46,0.82), transparent 70%);
  z-index: -1;
}
.v4-act-h {
  font-size: clamp(2.5rem, 8.4vw, 6.2rem);
  font-weight: 660; letter-spacing: -0.035em; line-height: 1.02;
  color: #FFFFFF; margin: 0.45em 0 0.35em;
  text-shadow: 0 2px 34px rgba(6,26,46,0.9);
  text-wrap: balance;
}
.v4-act-sub {
  font-size: clamp(1rem, 1.8vw, 1.22rem); line-height: 1.6;
  color: var(--v3-fg-2); max-width: 46ch; margin: 0;
}
.v4-act-sub a { color: var(--v3-cyan-bright); text-decoration: none; }
.v4-act-sub a:hover { text-decoration: underline; text-underline-offset: 4px; }
.v4-act .v3-chapter-link { margin-top: 14px; display: inline-flex; }

.v4-ticker {
  position: relative; z-index: 1;
  border-top: 1px solid var(--v3-line);
  border-bottom: 1px solid var(--v3-line);
  background: rgba(6,26,46,0.55);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
.v4-ticker-inner {
  max-width: var(--v3-max); margin: 0 auto; padding: 12px 24px;
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px 26px;
  font-size: 0.74rem; letter-spacing: 0.04em; color: var(--v3-fg-3);
}
.v4-ticker-inner b { color: var(--v3-cyan-bright); font-weight: 560; font-variant-numeric: tabular-nums; }
.v4-ticker-link { margin-left: auto; color: var(--v3-cyan-bright); text-decoration: none; }
.v4-ticker-link:hover { text-decoration: underline; }

/* solid surfaces resume after the journey */
section.audit-cta, .pricing, .v4-gov, .v3-final, .v3-footer { position: relative; z-index: 2; }
.v4-gov { background: var(--v3-navy); }

/* sub-pages: no stage, normal flow */
.v4-subpage { background: var(--v3-navy-void); }
.v4-subpage > section:first-child { padding-top: clamp(110px, 14vw, 150px); }

@media (max-width: 720px) {
  .v4-act { min-height: 78svh; }
  .v4-act-h { font-size: clamp(2.2rem, 11.5vw, 3.1rem); }
  .v4-ticker-link { margin-left: 0; }
  .v4-ticker-inner { gap: 6px 16px; }
}
@media (prefers-reduced-motion: reduce) {
  #gv-stage { transition: none; }
}

/* ── /how vectr journey: connective line + full-screen acts ─────────── */
.vj { position: relative; overflow: hidden; }
.vj-line { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.vj-path { fill: none; stroke: rgba(0,191,255,0.85); stroke-width: 2; }
.vj-path-glow { fill: none; stroke: rgba(0,240,255,0.25); stroke-width: 7; filter: blur(3px); }
.vj .v3-wrap { position: relative; z-index: 1; }
.vj-act { position: relative; min-height: 82svh; display: grid; align-content: center; }
.vj-act-intro, .vj-act-outro { justify-items: start; min-height: 72svh; }
.vj-h {
  font-size: clamp(2.3rem, 6.5vw, 4.6rem);
  font-weight: 660; letter-spacing: -0.035em; line-height: 1.04;
  color: #fff; margin: 0.3em 0;
  text-shadow: 0 2px 30px rgba(6,26,46,0.9);
}
.vj-node {
  position: absolute; left: -34px; top: 50%;
  width: 14px; height: 14px; border-radius: 50%;
  background: var(--v3-navy-void);
  border: 2px solid var(--v3-cyan-bright);
  box-shadow: 0 0 14px rgba(0,240,255,0.7);
  z-index: 2;
}
.vj-act-intro .vj-node, .vj-act-outro .vj-node { top: 18px; }
.vj-chapters .v3-chapter-copy { position: relative; }
.vj-chapters .v3-chapter-copy .vj-node { left: -34px; top: 8px; }
@media (max-width: 1023px) {
  .vj-node { left: -22px; }
  .vj-chapters .v3-chapter-copy .vj-node { left: -22px; }
  .vj .v3-wrap { padding-left: 40px; }
  .vj-act { min-height: 0; padding: 56px 0; }
}

/* Restored from v2 (other-agent catch 51912ff): when pricing is in view the
   collapsed chat launcher shrinks into the corner and hides its label so it
   never covers pricing CTAs. script6 toggles gv-pricing-in-view. */
html.gv-pricing-in-view #gv-voice.gv-collapsed {
  right: 10px !important;
  bottom: 10px !important;
  transform: scale(0.78);
  transform-origin: bottom right;
}
html.gv-pricing-in-view #gv-voice.gv-collapsed .gv-voice-orb-label { display: none !important; }
