/* ==========================================================================
   Protectors Vegas '26 — Homepage V3
   ========================================================================== */

/* ── Design tokens ──────────────────────────────────────────────────────── */
:root {
  --pv-midnight: #050030;
  --pv-deep-space: #1e0075;
  --pv-electric: #6726ff;
  --pv-fuschia: #b526bc;
  --pv-cobalt: #3332ff;
  --pv-periwinkle: #86a0f0;
  --pv-ignite: #ff2e00;
  --pv-violet: #923ef0;
  --pv-magenta: #ff3564;
  --pv-white: #ffffff;
  --pv-paper: #f6f4ef;
  --pv-mist: #e8e4da;
  --pv-graphite: #29261b;
  --pv-steel: #5a5750;
  --pv-display: "Termina", "Helvetica Neue", Arial, sans-serif;
  --pv-body: "Inter", "Helvetica Neue", Arial, sans-serif;
  --pv-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --pv-ease-in: cubic-bezier(0.65, 0, 0.35, 1);

  /* v3g tokens */
  --v3g-bg: #03000f;
  --v3g-bg2: #05002a;
  --v3g-bg3: #0a022a;
  --v3g-line: rgba(255, 255, 255, 0.08);
  --v3g-line2: rgba(255, 255, 255, 0.16);
  --v3g-ink: #ffffff;
  --v3g-ink2: rgba(255, 255, 255, 0.72);
  --v3g-ink3: rgba(255, 255, 255, 0.46);
  --v3g-ink4: rgba(255, 255, 255, 0.28);
  --v3g-c-distribution: #3332ff;
  --v3g-c-product: #894ee9;
  --v3g-c-enterprise: #ff2e00;
  --v3g-c-magenta: #b526bc;
  --v3g-accent: #3332ff;
  --v3g-hot-grad: linear-gradient(95deg, #ff2e00 0%, #b526bc 100%);
  --v3g-f-display: "Termina", "Helvetica Neue", Arial, sans-serif;
  --v3g-f-body: "Inter", "Helvetica Neue", Arial, sans-serif;
  --v3g-f-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;
  --v3g-radius-lg: 18px;
}

/* ── Reset scoped to homepage ───────────────────────────────────────────── */
.homepage * {
  box-sizing: border-box;
}

/* ── Body overrides for front page ─────────────────────────────────────── */
body.home {
  background: #03000f;
  font-family: var(--pv-body);
  color: var(--pv-white);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
body.home a {
  text-decoration: none;
}
body.home button:not(.pv-btn) {
  font: inherit;
  cursor: pointer;
  border: 0;
  background: none;
  color: inherit;
}
body.home ::selection {
  background: var(--pv-electric);
  color: var(--pv-white);
}

/* ── Container ──────────────────────────────────────────────────────────── */
.pv-container {
  max-width: 1360px;
  margin: 0 auto;
  padding: 0 56px;
}
@media (max-width: 900px) {
  .pv-container {
    padding: 0 24px;
  }
}

/* ── Typography utilities ───────────────────────────────────────────────── */
.pv-display {
  font-family: var(--pv-display);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: -0.015em;
  line-height: 0.92;
}
.pv-eyebrow {
  font-family: var(--pv-display);
  font-weight: 900;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  display: inline-flex;
  align-items: center;
  gap: 12px;

  &::before {
    content: "";
    width: 28px;
    height: 1.5px;
    background: currentColor;
    display: inline-block;
    flex: none;
  }
}
.pv-body {
  font-family: var(--pv-body);
  font-weight: 400;
  line-height: 1.55;
}

/* ── Gradient text ──────────────────────────────────────────────────────── */
.pv-grad-text {
  background: linear-gradient(
    100deg,
    #ff2e00 0%,
    #ff3564 28%,
    #b526bc 58%,
    #6726ff 100%
  );
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.pv-grad-text-cool {
  background: linear-gradient(120deg, #86a0f0 0%, #6726ff 60%, #b526bc 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* ── Buttons ────────────────────────────────────────────────────────────── */
.pv-btn {
  font-family: var(--pv-display);
  font-weight: 900;
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  padding: 15px 25px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  transition:
    transform 0.15s var(--pv-ease-out),
    background 0.25s,
    color 0.25s,
    box-shadow 0.25s;
  white-space: nowrap;
  cursor: pointer;
  border: 0;

  &:active {
    transform: scale(0.97);
  }

  & .arr {
    display: inline-block;
    transition: transform 0.25s var(--pv-ease-out);
  }

  &:hover .arr {
    transform: translateX(4px);
  }
}

.pv-btn--primary {
  background: var(--pv-electric);
  color: var(--pv-white);

  &:hover {
    background: #5a1fe6;
    box-shadow: 0 16px 40px -12px rgba(103, 38, 255, 0.65);
  }
}

.pv-btn--on-dark {
  background: var(--pv-white);
  color: var(--pv-midnight);

  &:hover {
    background: var(--pv-periwinkle);
  }
}

.pv-btn--secondary {
  background: transparent;
  color: var(--pv-midnight);
  box-shadow: inset 0 0 0 1.5px var(--pv-midnight);

  &:hover {
    background: var(--pv-midnight);
    color: var(--pv-white);
  }
}

.pv-btn--ghost-dark {
  background: rgba(255, 255, 255, 0.06);
  color: var(--pv-white);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.18);

  &:hover {
    background: rgba(255, 255, 255, 0.14);
  }
}

.pv-btn--ignite {
  background: var(--pv-ignite);
  color: var(--pv-white);

  &:hover {
    background: var(--pv-ignite);
  }
}

/* v3g buttons */
.v3g-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 48px;
  padding: 0 24px;
  border-radius: 999px;
  font-family: var(--v3g-f-body);
  font-size: 15px;
  font-weight: 600;
  border: 1px solid transparent;
  cursor: pointer;
  transition:
    transform 0.25s ease,
    background 0.25s ease,
    border-color 0.25s ease,
    box-shadow 0.25s ease;
  white-space: nowrap;
}
.v3g-btn-ghost {
  background: transparent;
  color: var(--v3g-ink);
  border-color: var(--v3g-line2);

  &:hover {
    border-color: var(--v3g-ink);
    background: rgba(255, 255, 255, 0.04);
  }
}

.v3g-btn-hot {
  background: var(--v3g-hot-grad);
  color: #fff;
  border-color: transparent;

  &:hover {
    transform: translateY(-1px);
    box-shadow: 0 12px 28px -10px #b526bc;
  }
}

.v3g-btn {
  & .arr {
    transition: transform 0.25s ease;
  }

  &:hover .arr {
    transform: translateX(3px);
  }
}

/* ── Reveal animations ──────────────────────────────────────────────────── */
.pv-reveal {
  opacity: 0;
  transform: translateY(28px);
  transition:
    opacity 0.9s var(--pv-ease-out),
    transform 0.9s var(--pv-ease-out);
}
.pv-reveal {
  &.is-in {
    opacity: 1;
    transform: none;
  }

  &[data-delay="1"] {
    transition-delay: 0.08s;
  }
  &[data-delay="2"] {
    transition-delay: 0.16s;
  }
  &[data-delay="3"] {
    transition-delay: 0.24s;
  }
  &[data-delay="4"] {
    transition-delay: 0.32s;
  }
  &[data-delay="5"] {
    transition-delay: 0.4s;
  }
  &[data-delay="6"] {
    transition-delay: 0.48s;
  }
  &[data-delay="7"] {
    transition-delay: 0.56s;
  }
  &[data-delay="8"] {
    transition-delay: 0.64s;
  }
}

.pv-reveal-blur {
  opacity: 0;
  filter: blur(10px);
  transform: translateY(18px) scale(1.02);
  transition:
    opacity 1s cubic-bezier(0.22, 1, 0.36, 1),
    filter 1s cubic-bezier(0.22, 1, 0.36, 1),
    transform 1s cubic-bezier(0.22, 1, 0.36, 1);

  &.is-in {
    opacity: 1;
    filter: blur(0);
    transform: translateY(0) scale(1);
  }
}

@media (prefers-reduced-motion: reduce) {
  .pv-reveal,
  .pv-reveal-blur {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    transition: none !important;
  }
}

/* ── Floating "Become a Protector" chip ─────────────────────────────────── */
.pv2-float {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 200;
  padding: 14px 22px;
  border-radius: 999px;
  background: var(--pv-ignite);
  color: var(--pv-white);
  font-family: var(--pv-display);
  font-weight: 900;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  box-shadow: 0 12px 30px -8px rgba(255, 46, 0, 0.55);
  display: inline-flex;
  align-items: center;
  gap: 10px;
  transition:
    transform 0.2s var(--pv-ease-out),
    box-shadow 0.2s;
  text-decoration: none;

  &:hover {
    transform: translateY(-2px);
    box-shadow: 0 20px 40px -10px rgba(255, 46, 0, 0.7);
    color: #fff;
  }

  @media (max-width: 768px) {
    display: none;
  }
}

/* ── Scroll progress bar ────────────────────────────────────────────────── */
.pv-scroll-progress {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  z-index: 300;
  pointer-events: none;
  background: rgba(255, 255, 255, 0.04);
}
.pv-scroll-progress-bar {
  height: 100%;
  width: 0%;
  background: linear-gradient(
    90deg,
    #ff2e00 0%,
    #ff3564 40%,
    #b526bc 75%,
    #6726ff 100%
  );
  box-shadow: 0 0 12px rgba(255, 46, 0, 0.6);
  transition: width 0.08s linear;
}

/* ── Ambient layer ──────────────────────────────────────────────────────── */
.pv3-orbs {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  overflow: hidden;
}
.pv3-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.45;
  will-change: transform;
  mix-blend-mode: screen;
}
.pv3-orb--1 {
  width: 620px;
  height: 620px;
  left: -8%;
  top: 8%;
  background: radial-gradient(circle, #6726ff 0%, transparent 70%);
  animation: pv3OrbDrift1 38s ease-in-out infinite;
  opacity: 0.2;
}
.pv3-orb--2 {
  width: 540px;
  height: 540px;
  right: -6%;
  top: 28%;
  background: radial-gradient(circle, #b526bc 0%, transparent 70%);
  animation: pv3OrbDrift2 44s ease-in-out infinite;
  opacity: 0.22;
}
.pv3-orb--3 {
  width: 480px;
  height: 480px;
  left: 30%;
  bottom: -10%;
  background: radial-gradient(circle, #ff2e00 0%, transparent 70%);
  opacity: 0.32;
  animation: pv3OrbDrift3 52s ease-in-out infinite;
}
.pv3-orb--4 {
  width: 720px;
  height: 720px;
  left: 38%;
  top: 14%;
  background: radial-gradient(circle, #1e0075 0%, transparent 70%);
  opacity: 0.55;
  animation: pv3OrbDrift4 60s ease-in-out infinite;
}
@keyframes pv3OrbDrift1 {
  0%,
  100% {
    transform: translate3d(0, 0, 0);
  }
  50% {
    transform: translate3d(6%, 8%, 0);
  }
}
@keyframes pv3OrbDrift2 {
  0%,
  100% {
    transform: translate3d(0, 0, 0);
  }
  50% {
    transform: translate3d(-7%, 6%, 0);
  }
}
@keyframes pv3OrbDrift3 {
  0%,
  100% {
    transform: translate3d(0, 0, 0);
  }
  50% {
    transform: translate3d(5%, -8%, 0);
  }
}
@keyframes pv3OrbDrift4 {
  0%,
  100% {
    transform: translate3d(0, 0, 0);
  }
  50% {
    transform: translate3d(-4%, -5%, 0);
  }
}

.pv3-topo {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  pointer-events: none;
  z-index: 1;
  opacity: 0.18;
  mix-blend-mode: screen;
}
.pv3-topo-a {
  transform-origin: 300px 650px;
  animation: pv3TopoPulse 22s ease-in-out infinite;
}
.pv3-topo-b {
  transform-origin: 1280px 220px;
  animation: pv3TopoPulse 28s 4s ease-in-out infinite;
}
@keyframes pv3TopoPulse {
  0%,
  100% {
    transform: scale(1) translateY(0);
    opacity: 0.85;
  }
  50% {
    transform: scale(1.06) translateY(-12px);
    opacity: 1;
  }
}

.pv3-cursor-glow {
  position: fixed;
  top: 0;
  left: 0;
  width: 560px;
  height: 560px;
  border-radius: 50%;
  background: radial-gradient(
    circle,
    rgba(103, 38, 255, 0.22) 0%,
    rgba(181, 38, 188, 0.1) 35%,
    transparent 70%
  );
  filter: blur(40px);
  pointer-events: none;
  z-index: 2;
  mix-blend-mode: screen;
  will-change: transform;
  transform: translate3d(-9999px, -9999px, 0);
}

.pv3-grain {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 3;
  opacity: 0.05;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' seed='4'/><feColorMatrix values='0 0 0 0 1   0 0 0 0 1   0 0 0 0 1   0 0 0 0.6 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  background-size: 160px 160px;
  mix-blend-mode: overlay;
}

nav,
section,
footer {
  position: relative;
  z-index: 5;
}

@media (prefers-reduced-motion: reduce) {
  .pv3-orb,
  .pv3-topo-a,
  .pv3-topo-b {
    animation: none !important;
  }
  .pv3-cursor-glow {
    display: none;
  }
}

/* ── Keyframes ──────────────────────────────────────────────────────────── */
@keyframes pvMarquee {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}
@keyframes pvDrift {
  0% {
    transform: translate3d(-3%, -2%, 0) rotate(0deg);
  }
  50% {
    transform: translate3d(3%, 2%, 0) rotate(6deg);
  }
  100% {
    transform: translate3d(-3%, -2%, 0) rotate(0deg);
  }
}
@keyframes pvSpin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

/* ═══════════════════════════════════════════════════════════════════════
   SECTION 01 — HERO
   ═══════════════════════════════════════════════════════════════════════ */
.pv2-hero {
  position: relative;
  min-height: 100vh;
  background: #050030;
  color: #fff;
  overflow: visible;
  padding-top: 140px;
  display: flex;
  flex-direction: column;
  z-index: 7;
}
.pv2-hero-cam {
  position: absolute;
  inset: 0;
  /* background:
    radial-gradient(
      60% 60% at 75% 28%,
      rgba(103, 38, 255, 0.32) 0%,
      transparent 60%
    ),
    radial-gradient(
      45% 40% at 92% 12%,
      rgba(255, 46, 0, 0.22) 0%,
      transparent 60%
    ),
    radial-gradient(
      35% 30% at 18% 92%,
      rgba(181, 38, 188, 0.22) 0%,
      transparent 60%
    ),
    linear-gradient(180deg, #03000f 0%, #050030 55%, #050030 100%); */

  background:
    radial-gradient(
      60% 60% at 75% 28%,
      rgba(103, 38, 255, 0.32) 0%,
      transparent 60%
    ),
    radial-gradient(
      45% 40% at 92% 12%,
      rgba(255, 46, 0, 0.22) 0%,
      transparent 60%
    ),
    radial-gradient(35% 30% at 18% 92%, rgb(2 1 2 / 22%) 0%, transparent 60%),
    linear-gradient(180deg, #03000f 0%, #050030 55%, #050030 100%);
}
@keyframes pv2HeroCam {
  0% {
    transform: scale(1.04);
  }
  100% {
    transform: scale(1);
  }
}
@keyframes pv2HeroDrift {
  0%,
  100% {
    transform: translate3d(0, 0, 0);
  }
  50% {
    transform: translate3d(-1%, -0.6%, 0);
  }
}

.pv2-hero::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -150px;
  height: 300px;
  pointer-events: none;
  z-index: 5;
  /* background:
    radial-gradient(
      46% 70% at 20% 34%,
      rgba(103, 38, 255, 0.2) 0%,
      rgba(103, 38, 255, 0) 72%
    ),
    radial-gradient(
      42% 60% at 86% 30%,
      rgba(255, 46, 0, 0.08) 0%,
      rgba(255, 46, 0, 0) 70%
    ),
    linear-gradient(
      180deg,
      rgba(5, 0, 48, 0) 0%,
      #050030 38%,
      #050030 60%,
      rgba(5, 0, 48, 0) 100%
    ); */
  filter: blur(52px);
}

.pv2-hero-signal {
  position: absolute;
  right: -80px;
  top: -100px;
  width: 480px;
  opacity: 0;
  filter: invert(1) hue-rotate(220deg);
  pointer-events: none;
  transform: rotate(12deg);
  animation: pv2HeroSignalIn 2.4s 0.3s var(--pv-ease-out) forwards;
}
@keyframes pv2HeroSignalIn {
  0% {
    opacity: 0;
    transform: translateY(8px) rotate(12deg);
  }
  100% {
    opacity: 0.22;
    transform: translateY(0) rotate(12deg);
  }
}

/* Atmospheric motes */
.pv2-hero-mote {
  position: absolute;
  bottom: 0;
  border-radius: 999px;
  background: radial-gradient(circle, #b6a8ff 0%, rgba(182, 168, 255, 0) 70%);
  filter: blur(0.5px);
  opacity: 0;
  animation: pv2HeroMote linear infinite;
}
@keyframes pv2HeroMote {
  0% {
    transform: translateY(120vh) translateX(0);
    opacity: 0;
  }
  10% {
    opacity: 0.6;
  }
  50% {
    transform: translateY(50vh) translateX(20px);
    opacity: 0.8;
  }
  90% {
    opacity: 0.5;
  }
  100% {
    transform: translateY(-10vh) translateX(0);
    opacity: 0;
  }
}

/* Headline */
.pv2-hero-h1 {
  font-family: var(--pv-display);
  font-weight: 900;
  text-transform: uppercase;
  font-size: clamp(44px, 6.4vw, 100px);
  margin: 0 0 32px;
  letter-spacing: -0.025em;
  line-height: 0.98;
  color: #ffffff;
}

/* Gradient word (converge.) */
.pv2-hero-word {
  display: inline-block;
  background: linear-gradient(90deg, #ff2e00 0%, #ff3564 28%, #b526bc 58%, #6726ff 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}

/* H1 slide-up — added by JS on first visit */
.pv2-hero-h1.h1-hidden {
  opacity: 0;
  transform: translateY(50px);
}

/* Highlight state for key words during first-visit animation */
.pv2-hero-hl.is-lit {
  background: linear-gradient(
    90deg,
    #ff2e00 0%,
    #ff3564 28%,
    #b526bc 58%,
    #6726ff 100%
  );
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}

/* Body, CTA, Stats */
.pv2-hero-body {
  font-size: 19px;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.72);
  max-width: 600px;
  margin: 0 0 40px;
  font-family: var(--pv-body);
}
.pv2-hero-cta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
}

/* Hero stats layout */
.pv2-hero-stats-grid {
  margin-top: 72px;
  padding-top: 32px;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 40px;
}
.pv2-hero-stat-eyebrow {
  font-family: var(--pv-display);
  font-weight: 700;
  font-size: 10.5px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.5);
  margin-bottom: 16px;
}
.pv2-hero-stat-num {
  font-family: var(--pv-display);
  font-weight: 900;
  font-size: clamp(36px, 4vw, 64px);
  letter-spacing: -0.02em;
  line-height: 0.9;
  color: #fff;
  margin-bottom: 14px;
  white-space: nowrap;
}
.pv2-hero-stat-label {
  font-family: var(--pv-body);
  font-size: 13px;
  line-height: 1.45;
  color: rgba(255, 255, 255, 0.7);
}

/* ── Hero entrance animation (first visit, word-by-word) ─────────────────
   JS wraps each word in .pvx-word / .pvx-word--grad and adds .is-running.
   Return visits get .is-done which shows everything instantly.
   ─────────────────────────────────────────────────────────────────────── */

/* Hide h1 before JS runs to prevent flash of unstyled text */
.pv2-hero--entrance .pv2-hero-h1 {
  opacity: 0;
}

/* Reveal h1 container once JS has wrapped words and triggers animation */
.pv2-hero--entrance.is-running .pv2-hero-h1,
.pv2-hero--entrance.is-done .pv2-hero-h1 {
  opacity: 1;
}

.pv2-hero--entrance .pv2-hero-line {
  display: block;
}

/* Words: hidden by default, JS sets animation-delay per word */
.pv2-hero--entrance .pvx-word {
  display: inline-block;
  opacity: 0;
  will-change: opacity, transform, filter;
}

/* Non-gradient words: blur in → hold gradient → crossfade to white.
   Duration is set per-word by JS (animationDuration inline style).    */
.pv2-hero--entrance.is-running .pvx-word:not(.pvx-word--grad) {
  background: linear-gradient(90deg, var(--pv-ignite, #ff2e00) 0%, #ff3564 28%, var(--pv-fuschia, #b526bc) 58%, var(--pv-electric, #6726ff) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  animation-name: pvxWordWhite;
  animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
  animation-fill-mode: forwards;
}

/* Gradient words (CONVERGE.): blur in and stay gradient */
.pv2-hero--entrance.is-running .pvx-word--grad {
  animation-name: pvxWordGrad;
  animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
  animation-fill-mode: forwards;
}

/* 0–35 %  rise + blur clears (gradient visible)
   35–55%  hold at gradient — the "beat"
   55–100% crossfade to white                    */
@keyframes pvxWordWhite {
  0%   { opacity: 0; transform: translateY(24px); filter: blur(8px); -webkit-text-fill-color: transparent; }
  35%  { opacity: 1; transform: translateY(0);    filter: blur(0);   -webkit-text-fill-color: transparent; }
  55%  { opacity: 1; transform: translateY(0);    filter: blur(0);   -webkit-text-fill-color: transparent; }
  100% { opacity: 1; transform: translateY(0);    filter: blur(0);   -webkit-text-fill-color: #ffffff; }
}

@keyframes pvxWordGrad {
  0%   { opacity: 0; transform: translateY(24px); filter: blur(8px); -webkit-text-fill-color: transparent; }
  100% { opacity: 1; transform: translateY(0);    filter: blur(0);   -webkit-text-fill-color: transparent; }
}

/* Body / CTA / Stats — fade up when JS adds .is-in */
.pv2-hero--entrance .pv2-hero-body,
.pv2-hero--entrance .pv2-hero-cta,
.pv2-hero--entrance .pv2-hero-stats {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.55s var(--pv-ease-out, cubic-bezier(0.16, 1, 0.3, 1)),
              transform 0.55s var(--pv-ease-out, cubic-bezier(0.16, 1, 0.3, 1));
}

.pv2-hero--entrance .pv2-hero-body.is-in,
.pv2-hero--entrance .pv2-hero-cta.is-in,
.pv2-hero--entrance .pv2-hero-stats.is-in {
  opacity: 1;
  transform: none;
}

/* Return visits / is-done: show everything immediately, no animation */
.pv2-hero--entrance.is-done .pvx-word,
.pv2-hero--entrance.is-done .pv2-hero-line {
  opacity: 1;
  transform: none;
  filter: none;
  animation: none;
}
.pv2-hero--entrance.is-done .pv2-hero-body,
.pv2-hero--entrance.is-done .pv2-hero-cta,
.pv2-hero--entrance.is-done .pv2-hero-stats {
  opacity: 1;
  transform: none;
  transition: none;
}

@media (prefers-reduced-motion: reduce) {
  .pv2-hero--entrance .pvx-word,
  .pv2-hero--entrance .pv2-hero-line,
  .pv2-hero--entrance .pv2-hero-body,
  .pv2-hero--entrance .pv2-hero-cta,
  .pv2-hero--entrance .pv2-hero-stats {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    animation: none !important;
    -webkit-text-fill-color: initial !important;
  }
}

/* Return-visit: h1 visible immediately, no slide-up */
.pv2-hero--instant .pv2-hero-h1 {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}

.pv2-hero--instant .pv2-hero-signal {
  animation: none !important;
  opacity: 0.2 !important;
  transform: rotate(12deg) !important;
}

@media (prefers-reduced-motion: reduce) {
  .pv2-hero-cam,
  .pv2-hero-signal,
  .pv2-hero-mote,
  .pv2-hero-scan,
  .pv2-hero-word,
  .pv2-hero-body,
  .pv2-hero-cta,
  .pv2-hero-stats {
    animation: none !important;
    transform: none !important;
    opacity: 1 !important;
    filter: none !important;
  }
  .pv2-hero-signal {
    opacity: 0.18 !important;
  }
}

@media (max-width: 768px) {
  .pv2-hero {
    padding-top: 100px;
    padding-bottom: 60px;
  }
  .pv2-hero-stats-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
  }
}

/* ═══════════════════════════════════════════════════════════════════════
   SECTION 02 — PARTNERS / TRUSTED LOGOS
   ═══════════════════════════════════════════════════════════════════════ */
.pv-partners {
  position: relative;
  background: linear-gradient(
    180deg,
    #050030 0%,
    #04001f 30%,
    #03000f 60%,
    #03000f 100%
  );
  padding: 80px 0 80px;
  z-index: 8;
  isolation: isolate;
}
.pv-partners-eyebrow {
  font-family: var(--pv-display);
  font-weight: 900;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--pv-periwinkle);
  text-align: center;
  margin-bottom: 20px;
}
.pv-partners-heading {
  font-family: var(--pv-display);
  font-weight: 500;
  font-size: clamp(26px, 3vw, 44px);
  letter-spacing: -0.02em;
  line-height: 1.05;
  text-align: center;
  color: rgba(255, 255, 255, 0.78);
  margin: 0 auto 60px;
  text-transform: none;
}

.pv-partners-track-wrap {
  overflow: hidden;
  margin-bottom: 16px;
  -webkit-mask-image: linear-gradient(
    to right,
    transparent 0%,
    black 8%,
    black 92%,
    transparent 100%
  );
  mask-image: linear-gradient(
    to right,
    transparent 0%,
    black 8%,
    black 92%,
    transparent 100%
  );
}
.pv-partners-track {
  display: flex;
  gap: 16px;
  width: max-content;
  animation: pvMarquee 70s linear infinite;
}
.pv-partners-track--reverse {
  animation-direction: reverse;
}
.pv-partners-logo-card {
  height: 80px;
  min-width: 200px;
  padding: 0 24px;
  background: rgba(255, 255, 255);
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: none;
}
.pv-partners-logo-card img {
  max-height: 44px;
  max-width: 160px;
  width: auto;
  object-fit: contain;
  display: block;
}

.pv-partners-more {
  text-align: center;
  margin-top: 32px;
  font-family: var(--pv-display);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.4);
}

/* ═══════════════════════════════════════════════════════════════════════
   SECTION 03 — WHO ATTENDS / EVERY SEAT AT THE TABLE
   ═══════════════════════════════════════════════════════════════════════ */
.pv-industry {
  background: #03000f;
  padding: 90px 0 0;
  position: relative;
  overflow: hidden;
}
.pv-industry::before {
  content: "";
  position: absolute;
  left: 0%;
  top: 20%;
  width: 615px;
  height: 420px;
  background-image: url("../img/redesign/left-bk-image.png");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  pointer-events: none;
  opacity: 0.1;
  z-index: 0;
}
.pv-industry::after {
  content: "";
  position: absolute;
  right: -12%;
  top: 8%;
  width: 720px;
  height: 720px;
  background:
    radial-gradient(
      40% 40% at 30% 30%,
      rgba(255, 46, 0, 0.22) 0%,
      transparent 60%
    ),
    radial-gradient(
      40% 40% at 70% 50%,
      rgba(181, 38, 188, 0.22) 0%,
      transparent 60%
    ),
    radial-gradient(
      40% 40% at 50% 80%,
      rgba(51, 50, 255, 0.22) 0%,
      transparent 60%
    );
  filter: blur(40px);
  pointer-events: none;
  z-index: 0;
}
.pv-industry-header {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: end;
  margin-bottom: 72px;
}
.pv-industry-eyebrow {
  font-family: var(
    --v3g-f-mono,
    "JetBrains Mono",
    ui-monospace,
    "SF Mono",
    Menlo,
    monospace
  );
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.46);
  display: inline-block;
  margin-bottom: 22px;

  &::before {
    content: "[ ";
    opacity: 0.6;
  }
  &::after {
    content: " ]";
    opacity: 0.6;
  }
}
.pv-industry-title {
  font-family: var(--pv-display);
  font-weight: 900;
  font-size: clamp(32px, 4.5vw, 72px);
  letter-spacing: -0.025em;
  line-height: 0.92;
  color: #fff;
  margin: 0;
}
.pv-industry-body {
  font-family: var(--pv-body);
  font-size: clamp(17px, 1.4vw, 22px);
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.72);
  margin: 0;
}

.pv-industry-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  max-width: 1360px;
  margin: 0 auto;
  padding: 0 56px 120px;
  position: relative;
  z-index: 1;
}

.pv-industry-card {
  background: rgba(255, 255, 255, 0.01);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 24px;
  padding: 36px 28px 32px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: 260px;
  position: relative;
  overflow: hidden;
  transition:
    background 0.35s ease,
    border-color 0.35s ease,
    transform 0.35s ease,
    box-shadow 0.35s ease;
}
.pv-industry-card {
  &::before {
    content: "";
    position: absolute;
    top: 0;
    left: 28px;
    width: 32px;
    height: 2.5px;
    background: var(--card-color, var(--pv-ignite));
    border-radius: 0 0 3px 3px;
  }

  &:hover {
    background: rgba(255, 255, 255, 0.06);
    border-color: rgba(143, 108, 255, 0.5);
    transform: translateY(-4px);
    box-shadow:
      0 30px 80px -30px rgba(103, 38, 255, 0.55),
      0 0 0 1px rgba(143, 108, 255, 0.4) inset,
      0 0 40px -10px rgba(143, 108, 255, 0.3);
  }
}

.pv-industry-card-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding-top: 4px;
  margin-bottom: 8px;
}
.pv-industry-card-label {
  font-family: var(--pv-display);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--card-color, var(--pv-ignite));
}
.pv-industry-card-num {
  font-family: var(--pv-display);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.22em;
  color: rgba(255, 255, 255, 0.35);
}
.pv-industry-card-title {
  font-family: var(--pv-body);
  font-weight: 700;
  font-size: clamp(18px, 1.6vw, 24px);
  letter-spacing: -0.01em;
  line-height: 1.2;
  color: #fff;
  margin: 0;
}
.pv-industry-card-desc {
  font-family: var(--pv-body);
  font-size: 14px;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.55);
  margin: 0;
}

@media (max-width: 1024px) {
  .pv-industry-grid {
    gap: 12px;
    padding: 0 32px 80px;
  }
}
@media (max-width: 768px) {
  .pv-industry-header {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .pv-industry-grid {
    grid-template-columns: 1fr 1fr;
    padding: 0 24px 60px;
  }
}
@media (max-width: 480px) {
  .pv-industry-grid {
    grid-template-columns: 1fr;
  }
}

/* ═══════════════════════════════════════════════════════════════════════
   SECTION 04 — STREAMS / ARCHITECTURE
   ═══════════════════════════════════════════════════════════════════════ */
.v3g-streams {
  background: #03000f;
  padding-top: clamp(48px, 5.5vw, 84px);
  padding-bottom: clamp(48px, 5.5vw, 84px);
  color: var(--v3g-ink);
  font-family: var(--v3g-f-body);
}
.v3g-streams .wrap {
  max-width: 1360px;
  margin: 0 auto;
  padding: 0 56px;
}
@media (max-width: 900px) {
  .v3g-streams .wrap {
    padding: 0 24px;
  }
}

.v3g-streams .pillars-shell {
  position: relative;
  border-radius: 28px;
  overflow: hidden;
  padding: clamp(40px, 6vw, 80px);
  background:
    radial-gradient(
      ellipse at top left,
      rgba(51, 50, 255, 0.28) 0%,
      transparent 55%
    ),
    radial-gradient(
      ellipse at bottom right,
      rgba(137, 78, 233, 0.22) 0%,
      transparent 55%
    ),
    #0a022a;
  border: 1px solid var(--v3g-line2);
}
.v3g-streams .grid-bg {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(var(--v3g-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--v3g-line) 1px, transparent 1px);
  background-size: 80px 80px;
  mask-image: radial-gradient(ellipse at center, #000 30%, transparent 70%);
  pointer-events: none;
  opacity: 0.5;
}
.v3g-streams .pillars-header {
  display: grid;
  grid-template-columns: 1fr 1.6fr;
  gap: 60px;
  align-items: center;
  margin-bottom: 56px;
  position: relative;
  z-index: 1;
}
.v3g-streams .eyebrow {
  font-family: var(--v3g-f-mono, monospace);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--v3g-ink3);
  font-weight: 500;
  display: inline-block;
  margin-bottom: 16px;

  &::before {
    content: "[ ";
    opacity: 0.6;
  }
  &::after {
    content: " ]";
    opacity: 0.6;
  }
}
.v3g-streams .display-l {
  font-family: var(--v3g-f-display);
  font-weight: 900;
  font-size: clamp(32px, 4.5vw, 72px);
  line-height: 0.95;
  letter-spacing: -0.035em;
  color: var(--v3g-ink);
  margin: 0;
}
.v3g-streams .lede {
  font-family: var(--v3g-f-body);
  font-size: clamp(17px, 1.4vw, 22px);
  line-height: 1.45;
  color: var(--v3g-ink2);
  max-width: 60ch;
  margin: 0;
}

.v3g-streams .pillar-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--v3g-line);
  border: 1px solid var(--v3g-line);
  border-radius: var(--v3g-radius-lg);
  overflow: hidden;
  position: relative;
  z-index: 1;
}
.v3g-streams .pillar-cell {
  background: rgba(20, 9, 59, 0.55);
  backdrop-filter: blur(8px);
  padding: 36px;
  display: flex;
  flex-direction: column;
  gap: 24px;
  min-height: 480px;
  position: relative;
  overflow: hidden;
  transition: background 0.3s ease;
}
.v3g-streams .pillar-cell {
  &:hover {
    background: rgba(20, 9, 59, 0.75);
  }
}
.v3g-streams .pillar-cell .num {
  font-family: var(--v3g-f-mono, monospace);
  font-size: 12px;
  letter-spacing: 0.16em;
  color: var(--v3g-ink3);
}
.v3g-streams .pillar-cell .stream {
  font-family: var(--v3g-f-mono, monospace);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--p-color, var(--v3g-accent));
}
.v3g-streams .pillar-cell h3 {
  font-family: var(--v3g-f-display);
  font-weight: 900;
  font-size: clamp(28px, 2.6vw, 38px);
  line-height: 0.98;
  letter-spacing: -0.03em;
  margin: 0;
  color: #fff;
  overflow-wrap: break-word;
  hyphens: auto;
}
.v3g-streams .pillar-cell .desc {
  color: var(--v3g-ink2);
  font-size: 15px;
  line-height: 1.55;
  margin: 0;
}
.v3g-streams .pillar-cell .chips {
  margin-top: auto;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding-top: 24px;
  border-top: 1px solid var(--v3g-line);
}
.v3g-streams .pillar-cell .chip {
  font-family: var(--v3g-f-mono, monospace);
  font-size: 10.5px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--v3g-ink2);
  padding: 6px 10px;
  border: 1px solid var(--v3g-line);
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.02);
}
.v3g-streams .pillar-cell .glyph {
  position: absolute;
  top: 24px;
  right: 24px;
  width: 44px;
  height: 44px;
  border: 1px solid var(--p-color, var(--v3g-accent));
  color: var(--p-color, var(--v3g-accent));
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--v3g-f-mono, monospace);
  font-size: 14px;
  font-weight: 600;
}

@media (max-width: 880px) {
  .v3g-streams .pillars-header {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .v3g-streams .pillar-grid {
    grid-template-columns: 1fr;
  }
  .v3g-streams .pillar-cell {
    min-height: 320px;
  }
}

/* ═══════════════════════════════════════════════════════════════════════
   SECTION 05 — TOPICS
   ═══════════════════════════════════════════════════════════════════════ */
.v3g-topics {
  background: #03000f;
  padding-top: clamp(48px, 5.5vw, 84px);
  padding-bottom: clamp(96px, 11vw, 168px);
  position: relative;
  color: var(--v3g-ink);
  font-family: var(--v3g-f-body);
}
.v3g-topics .wrap {
  max-width: 1360px;
  margin: 0 auto;
  padding: 0 56px;
}
@media (max-width: 900px) {
  .v3g-topics .wrap {
    padding: 0 24px;
  }
}

.v3g-topics .topics-header {
  display: grid;
  grid-template-columns: 1fr 1.6fr;
  gap: 60px;
  align-items: end;
  margin-bottom: 56px;
}
.v3g-topics .eyebrow {
  font-family: var(--v3g-f-mono, monospace);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--v3g-ink3);
  font-weight: 500;
  display: inline-block;
  margin-bottom: 16px;

  &::before {
    content: "[ ";
    opacity: 0.6;
  }
  &::after {
    content: " ]";
    opacity: 0.6;
  }
}
.v3g-topics .display-l {
  font-family: var(--v3g-f-display);
  font-weight: 900;
  font-size: clamp(32px, 4.5vw, 72px);
  line-height: 0.95;
  letter-spacing: -0.035em;
  color: var(--v3g-ink);
  margin: 0;
  text-transform: none;
}
.v3g-topics .lede {
  font-family: var(--v3g-f-body);
  font-size: clamp(17px, 1.4vw, 22px);
  line-height: 1.45;
  color: var(--v3g-ink2);
  max-width: 60ch;
  margin: 0;
}

.v3g-topics .topics-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  border: 1px solid var(--v3g-line);
  border-radius: var(--v3g-radius-lg);
  overflow: hidden;
}
.v3g-topics .topic {
  display: grid;
  grid-template-columns: 48px 1fr;
  align-items: start;
  gap: 20px;
  padding: 22px 28px;
  border-bottom: 1px solid var(--v3g-line);
  border-right: 1px solid var(--v3g-line);
  transition: background 0.2s ease;
}
.v3g-topics .topic {
  &:nth-child(2n) {
    border-right: 0;
  }

  &:hover {
    background: rgba(255, 255, 255, 0.03);
  }
}
.v3g-topics .topic .n {
  font-family: var(--v3g-f-mono, monospace);
  font-size: 12px;
  color: var(--v3g-ink3);
  padding-top: 2px;
}
.v3g-topics .topic .body {
  min-width: 0;
}
.v3g-topics .topic .t {
  font-family: var(--v3g-f-display);
  font-weight: 700;
  font-size: clamp(17px, 1.3vw, 21px);
  line-height: 1.22;
  letter-spacing: -0.015em;
  display: block;
  margin-bottom: 12px;
  color: #fff;
}
.v3g-topics .topic .tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.v3g-topics .topic .tag {
  font-family: var(--v3g-f-mono, monospace);
  font-size: 10px;
  text-transform: uppercase;
  padding: 2px 10px;
  border-radius: 4px;
  border: 1px solid currentColor;
  white-space: nowrap;
  line-height: normal;
  letter-spacing: 0.14em;
}
.v3g-topics .topic .tag {
  &.dist {
    color: var(--v3g-c-distribution);
  }
  &.prod {
    color: var(--v3g-c-product);
  }
  &.ent {
    color: var(--v3g-c-enterprise);
  }
}

.v3g-topics .topics-foot {
  margin-top: 28px;
  font-family: var(--v3g-f-mono, monospace);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--v3g-ink3);
}
.v3g-topics .topics-foot {
  & .x {
    color: var(--v3g-c-magenta);
  }
}

@media (max-width: 880px) {
  .v3g-topics .topics-header {
    grid-template-columns: 1fr;
    gap: 20px;
    align-items: start;
  }
  .v3g-topics .topics-list {
    grid-template-columns: 1fr;
  }
  .v3g-topics .topic {
    border-right: 0;
  }
}

/* ═══════════════════════════════════════════════════════════════════════
   SECTION 06 — APPLY TO SPEAK (light bg)
   ═══════════════════════════════════════════════════════════════════════ */
.pv2-speak {
  background: var(--pv-paper);
  color: var(--pv-graphite);
  padding: 160px 0;
  position: relative;
  overflow: hidden;

  .pv-btn {
    color: white;
  }
}
.pv2-speak .pv-container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}
.pv2-speak-eyebrow {
  font-family: var(--v3g-f-mono, monospace);
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(41, 38, 27, 0.5);
  display: inline-block;
  margin-bottom: 22px;

  &::before {
    content: "[ ";
    opacity: 0.7;
  }
  &::after {
    content: " ]";
    opacity: 0.7;
  }
}
.pv2-speak-title {
  font-family: var(--pv-display);
  font-weight: 900;
  font-size: clamp(32px, 4vw, 64px);
  text-transform: uppercase;
  letter-spacing: -0.025em;
  line-height: 0.92;
  color: var(--pv-midnight);
  margin: 0;
}
.pv2-speak-body {
  font-family: var(--pv-body);
  font-size: 18px;
  line-height: 1.55;
  color: var(--pv-steel);
  margin: 0 0 36px;
  max-width: 520px;
}

@media (max-width: 768px) {
  .pv2-speak .pv-container {
    grid-template-columns: 1fr;
    gap: 40px;
  }
}

/* ═══════════════════════════════════════════════════════════════════════
   SECTION 07 — SPONSOR (light bg)
   ═══════════════════════════════════════════════════════════════════════ */
.pv2-sponsor {
  background: var(--pv-paper);
  color: var(--pv-graphite);
  padding: 160px 0;
  position: relative;
  overflow: hidden;

  .pv-btn {
    color: white;
  }
}
.pv2-sponsor .pv-container {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 80px;
  align-items: flex-end;
}
.pv2-sponsor-eyebrow {
  font-family: var(
    --v3g-f-mono,
    "JetBrains Mono",
    ui-monospace,
    "SF Mono",
    Menlo,
    monospace
  );
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--pv-electric);
  display: inline-block;
  margin-bottom: 24px;

  &::before {
    content: "[ ";
    opacity: 0.6;
  }
  &::after {
    content: " ]";
    opacity: 0.6;
  }
}

.pv2-sponsor-title {
  font-family: var(--pv-display);
  font-weight: 900;
  font-size: clamp(32px, 4vw, 64px);
  text-transform: uppercase;
  letter-spacing: -0.025em;
  line-height: 0.92;
  color: var(--pv-midnight);
  margin: 0;

  & .pv-grad-text {
    text-transform: uppercase;
    color: transparent;
    -webkit-background-clip: text;
    background-clip: text;
  }
}
.pv2-sponsor-body {
  font-family: var(--pv-body);
  font-size: 17px;
  line-height: 1.6;
  color: var(--pv-steel);
  margin: 0 0 32px;
}

@media (max-width: 768px) {
  .pv2-sponsor .pv-container {
    grid-template-columns: 1fr;
    gap: 40px;
  }
}

/* ═══════════════════════════════════════════════════════════════════════
   SECTION 08 — PROTECTOR PASS
   ═══════════════════════════════════════════════════════════════════════ */
.v3g-pass {
  background: #03000f;
  position: relative;
  overflow: hidden;
  padding-block: clamp(96px, 11vw, 168px);
  color: var(--v3g-ink);
  font-family: var(--v3g-f-body);

  --bg: #03000f;
  --bg-2: #05002a;
  --bg-3: #0a022a;
  --line: rgba(255, 255, 255, 0.08);
  --line-2: rgba(255, 255, 255, 0.16);
  --ink: #ffffff;
  --ink-2: rgba(255, 255, 255, 0.72);
  --ink-3: rgba(255, 255, 255, 0.46);
  --accent: #3332ff;
  --hot-grad: linear-gradient(95deg, #ff2e00 0%, #b526bc 100%);
  --c-magenta: #b526bc;
  --f-display: "Termina", "Helvetica Neue", Arial, sans-serif;
  --f-body: "Inter", "Helvetica Neue", Arial, sans-serif;
  --f-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;
  --radius-lg: 18px;
}
.v3g-pass .wrap {
  max-width: 1360px;
  margin: 0 auto;
  padding: 0 56px;
}
@media (max-width: 900px) {
  .v3g-pass .wrap {
    padding: 0 24px;
  }
}

.v3g-pass .pass-card {
  position: relative;
  border-radius: 28px;
  overflow: hidden;
  padding: 64px;
  background:
    radial-gradient(
      ellipse at top left,
      rgba(51, 50, 255, 0.4) 0%,
      transparent 50%
    ),
    radial-gradient(
      ellipse at bottom right,
      rgba(181, 38, 188, 0.35) 0%,
      transparent 55%
    ),
    var(--bg-3);
  border: 1px solid var(--line-2);
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 64px;
  align-items: center;
}
.v3g-pass .grid-bg {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(var(--line) 1px, transparent 1px),
    linear-gradient(90deg, var(--line) 1px, transparent 1px);
  background-size: 80px 80px;
  mask-image: radial-gradient(ellipse at center, #000 30%, transparent 70%);
  pointer-events: none;
  opacity: 0.5;
}
.v3g-pass .pass-left {
  position: relative;
  z-index: 1;
}
.v3g-pass .pass-eyebrow {
  font-family: var(--v3g-f-mono, monospace);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.46);
  font-weight: 500;
  display: inline-block;
  margin-bottom: 16px;

  &::before {
    content: "[ ";
    opacity: 0.6;
  }
  &::after {
    content: " ]";
    opacity: 0.6;
  }
}
.v3g-pass .pass-card h2 {
  font-family: var(--f-display);
  font-weight: 900;
  font-size: clamp(36px, 4.5vw, 64px);
  line-height: 0.95;
  letter-spacing: -0.035em;
  margin: 16px 0 24px;
  color: var(--ink);
  position: relative;
}
.v3g-pass .pass-card > .pass-left > p {
  color: var(--ink-2);
  margin: 0 0 16px;
  font-size: 16px;
  line-height: 1.55;
}
.v3g-pass .pass-card ul {
  list-style: none;
  padding: 0;
  margin: 24px 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.v3g-pass .pass-card ul li {
  font-family: var(--f-body);
  font-size: 14px;
  color: var(--ink);
  display: flex;
  gap: 10px;
  align-items: center;
  padding: 10px 12px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--line);
  border-radius: 8px;
}
.v3g-pass .pass-card ul li::before {
  content: "✓";
  color: var(--accent);
  font-weight: 800;
}
.v3g-pass .pass-card .pass-footnote {
  font-size: 14px;
  color: var(--ink-3);
  margin: 0 0 24px;
}
.v3g-pass .pass-card .pass-footnote strong {
  color: var(--ink);
}
.v3g-pass .pass-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 24px;
}

.v3g-pass .pass-art {
  position: relative;
  aspect-ratio: 1.6 / 1;
  border-radius: 14px;
  border: 1px solid var(--line-2);
  background: linear-gradient(135deg, #2a0a6e 0%, #0a022a 100%);
  padding: 32px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  z-index: 1;
}
.v3g-pass .pass-art .pno {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  color: var(--ink-3);
}
.v3g-pass .pass-art h3 {
  font-family: var(--f-display);
  font-weight: 900;
  font-size: clamp(28px, 3.5vw, 52px);
  line-height: 0.9;
  letter-spacing: -0.035em;
  margin: 0;
  color: #fff;
  text-transform: uppercase;
}
.v3g-pass .pass-art .meta {
  display: flex;
  gap: 32px;
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-3);
}
.v3g-pass .pass-art .meta > div {
  display: flex;
  flex-direction: column;
}
.v3g-pass .pass-art .meta strong {
  display: block;
  font-family: var(--f-display);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: -0.005em;
  color: var(--ink);
  text-transform: none;
  margin-top: 4px;
}
.v3g-pass .pass-art .stripe {
  position: absolute;
  inset: auto 0 0 0;
  height: 3px;
  background: var(--hot-grad);
}

@media (max-width: 880px) {
  .v3g-pass .pass-card {
    grid-template-columns: 1fr;
    padding: 32px;
    gap: 32px;
  }
  .v3g-pass .pass-card ul {
    grid-template-columns: 1fr;
  }
}

/* ═══════════════════════════════════════════════════════════════════════
   SECTION 09 — VENUE
   ═══════════════════════════════════════════════════════════════════════ */
.pv2-venue {
  background:
    radial-gradient(
      60% 60% at 85% 18%,
      rgba(255, 46, 0, 0.28) 0%,
      transparent 60%
    ),
    radial-gradient(
      50% 60% at 12% 90%,
      rgba(103, 38, 255, 0.3) 0%,
      transparent 60%
    ),
    radial-gradient(
      40% 50% at 50% 50%,
      rgba(181, 38, 188, 0.2) 0%,
      transparent 70%
    ),
    linear-gradient(180deg, #1e0075 0%, #050030 60%, #03000f 100%);
  padding: 120px 0;
  color: #fff;
  overflow: hidden;
  position: relative;

  .pv-btn {
    color: black;
  }
}
.pv2-venue .pv-container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
  position: relative;
}
.pv2-venue-photo {
  position: relative;
  aspect-ratio: 4/5;
  border-radius: 32px;
  overflow: hidden;
  background: linear-gradient(180deg, #1e0075 0%, #050030 100%);
  box-shadow:
    0 40px 100px -30px rgba(103, 38, 255, 0.55),
    inset 0 0 0 1px rgba(255, 255, 255, 0.1);
}
.pv2-venue-photo img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.pv2-venue-photo .overlay-screen {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(
      85% 85% at 12% 100%,
      rgba(103, 38, 255, 0.95) 0%,
      transparent 60%
    ),
    radial-gradient(
      75% 75% at 95% 5%,
      rgba(255, 46, 0, 0.85) 0%,
      transparent 55%
    ),
    radial-gradient(
      75% 75% at 50% 50%,
      rgba(181, 38, 188, 0.55) 0%,
      transparent 65%
    );
  mix-blend-mode: screen;
  pointer-events: none;
}
.pv2-venue-photo .overlay-multiply {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(30, 0, 117, 0.7) 0%,
    rgba(5, 0, 48, 0.4) 45%,
    rgba(181, 38, 188, 0.65) 100%
  );
  mix-blend-mode: multiply;
  pointer-events: none;
}
.pv2-venue-photo .overlay-dark {
  position: absolute;
  inset: 0;
  background: rgba(5, 0, 48, 0.32);
  pointer-events: none;
}
.pv2-venue-photo .brand-strip {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(
    90deg,
    var(--pv-ignite),
    var(--pv-fuschia),
    var(--pv-electric),
    var(--pv-cobalt)
  );
  opacity: 0.95;
}
.pv2-venue-photo .glass-label {
  position: absolute;
  left: 24px;
  top: 24px;
  right: 24px;
  padding: 12px 16px;
  border-radius: 14px;
  background: rgba(0, 0, 0, 0.35);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.18);
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.pv2-venue-photo .glass-label-name {
  font-family: var(--pv-display);
  font-weight: 900;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #fff;
}
.pv2-venue-photo .glass-label-addr {
  font-family: var(--pv-body);
  font-size: 11px;
  color: rgba(255, 255, 255, 0.7);
}
.pv2-venue-photo .coords-badge {
  position: absolute;
  left: 24px;
  bottom: 24px;
  padding: 12px 16px;
  border-radius: 14px;
  background: rgba(0, 0, 0, 0.4);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.18);
}
.pv2-venue-photo .coords-label {
  font-family: var(--pv-display);
  font-weight: 700;
  font-size: 10px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--pv-periwinkle);
  margin-bottom: 4px;
}
.pv2-venue-photo .coords-city {
  font-family: var(--pv-display);
  font-weight: 900;
  font-size: 18px;
  color: #fff;
}
.pv2-venue-eyebrow {
  font-family: var(--v3g-f-mono, monospace);
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--pv-periwinkle);
  display: inline-block;
  margin-bottom: 18px;

  &::before {
    content: "[ ";
    opacity: 0.6;
  }
  &::after {
    content: " ]";
    opacity: 0.6;
  }
}
.pv2-venue-title {
  font-family: var(--pv-display);
  font-weight: 900;
  font-size: clamp(32px, 3.6vw, 60px);
  text-transform: uppercase;
  letter-spacing: -0.025em;
  line-height: 0.92;
  margin: 0 0 22px;
  color: #fff;
}
.pv2-venue-body {
  font-family: var(--pv-body);
  font-size: 16px;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.72);
  max-width: 460px;
  margin: 0 0 28px;
}
.pv2-venue-stats {
  display: grid;
  grid-template-columns: repeat(2, auto);
  gap: 0 40px;
  margin-bottom: 28px;
  padding-bottom: 22px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  justify-content: start;
}
.pv2-venue-stat-num {
  font-family: var(--pv-display);
  font-weight: 900;
  font-size: 24px;
  letter-spacing: -0.01em;
  color: #fff;
}
.pv2-venue-stat-label {
  margin-top: 4px;
  font-size: 11.5px;
  color: rgba(255, 255, 255, 0.55);
  font-family: var(--pv-body);
  line-height: 1.4;
}

@media (max-width: 768px) {
  .pv2-venue .pv-container {
    grid-template-columns: 1fr;
    gap: 48px;
  }
}

/* ═══════════════════════════════════════════════════════════════════════
   SECTION 10 — RECAP VIDEO
   ═══════════════════════════════════════════════════════════════════════ */
.pv2-recap {
  background: var(--pv-paper);
  color: var(--pv-graphite);
  padding: 120px 0 130px;
  position: relative;
  overflow: hidden;
}
.pv2-recap .pv-container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
}
.pv2-recap-eyebrow {
  font-family: var(
    --v3g-f-mono,
    "JetBrains Mono",
    ui-monospace,
    "SF Mono",
    Menlo,
    monospace
  );
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--pv-ignite);
  display: inline-block;
  margin-bottom: 18px;

  &::before {
    content: "[ ";
    opacity: 0.6;
  }
  &::after {
    content: " ]";
    opacity: 0.6;
  }
}
.pv2-recap-title {
  font-family: var(--pv-display);
  font-weight: 900;
  font-size: clamp(36px, 4.4vw, 72px);
  text-transform: uppercase;
  letter-spacing: -0.025em;
  line-height: 0.92;
  color: var(--pv-midnight);
  margin: 0 0 22px;
}
.pv2-recap-body {
  font-family: var(--pv-body);
  font-size: 16px;
  line-height: 1.6;
  color: var(--pv-steel);
  margin: 0;
  max-width: 460px;
}
.pv2-recap-video-wrap {
  position: relative;
  border-radius: 22px;
  overflow: hidden;
  aspect-ratio: 1/1;
  width: 100%;
  max-width: 520px;
  justify-self: end;
  background: #03000f;
  box-shadow:
    0 40px 100px -30px rgba(103, 38, 255, 0.65),
    0 0 0 1px rgba(255, 255, 255, 0.08);
}
.pv2-recap-video-wrap video,
.pv2-recap-video-wrap img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.pv2-recap-video-wrap .overlay-screen {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(
      95% 95% at 12% 100%,
      rgba(103, 38, 255, 0.95) 0%,
      transparent 60%
    ),
    radial-gradient(
      85% 85% at 95% 5%,
      rgba(255, 46, 0, 0.85) 0%,
      transparent 55%
    ),
    radial-gradient(
      80% 80% at 50% 50%,
      rgba(181, 38, 188, 0.6) 0%,
      transparent 65%
    );
  mix-blend-mode: screen;
  pointer-events: none;
}
.pv2-recap-video-wrap .overlay-multiply {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(30, 0, 117, 0.75) 0%,
    rgba(5, 0, 48, 0.4) 45%,
    rgba(181, 38, 188, 0.65) 100%
  );
  mix-blend-mode: multiply;
  pointer-events: none;
}
.pv2-recap-video-wrap .overlay-dark {
  position: absolute;
  inset: 0;
  background: rgba(5, 0, 48, 0.35);
  pointer-events: none;
}
.pv2-recap-video-wrap .brand-strip {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(
    90deg,
    var(--pv-ignite),
    var(--pv-fuschia),
    var(--pv-electric),
    var(--pv-cobalt)
  );
  opacity: 0.95;
}

@media (max-width: 768px) {
  .pv2-recap .pv-container {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .pv2-recap-video-wrap {
    justify-self: stretch;
    max-width: 100%;
  }
}

/* ═══════════════════════════════════════════════════════════════════════
   SECTION 11 — BECOME AN INSIDER
   ═══════════════════════════════════════════════════════════════════════ */
.pv2-insider {
  background: #03000f;
  padding: 100px 0;
  position: relative;
  overflow: hidden;
  color: #fff;
}
.pv2-insider .pv-container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
  position: relative;
}
.pv2-insider-eyebrow {
  font-family: var(
    --v3g-f-mono,
    "JetBrains Mono",
    ui-monospace,
    "SF Mono",
    Menlo,
    monospace
  );
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--pv-magenta);
  display: inline-block;
  margin-bottom: 22px;

  &::before {
    content: "[ ";
    opacity: 0.6;
  }
  &::after {
    content: " ]";
    opacity: 0.6;
  }
}
.pv2-insider-title {
  font-family: var(--pv-display);
  font-weight: 900;
  font-size: clamp(44px, 5.6vw, 88px);
  text-transform: uppercase;
  letter-spacing: -0.025em;
  line-height: 0.92;
  color: #fff;
  margin: 0;
}
.pv2-insider-body {
  font-family: var(--pv-body);
  font-size: 18px;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.72);
  max-width: 480px;
  margin: 0 0 28px;
}
.pv2-insider-form {
  display: flex;
  gap: 8px;
  padding: 6px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 999px;
  max-width: 560px;
  align-items: center;

  input[type="email"] {
    flex: 1;
    background: transparent;
    border: 0;
    outline: none;
    padding: 14px 22px;
    font-family: var(--pv-body);
    font-size: 15px;
    color: #fff;

    &::placeholder {
      color: rgba(255, 255, 255, 0.4);
    }
  }
}
/* CF7 form inside insider — pill design matching .pv2-insider-form */
.pv2-insider .wpcf7 {
  max-width: 560px;
  position: relative;
  padding-bottom: 28px;

  & .wpcf7-spinner {
    position: absolute;
    bottom: 0;
    left: 0;
    margin: 0;
  }
}

.pv2-insider .insider-form-container {
  display: flex;
  gap: 8px;
  padding: 6px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 999px;
  align-items: center;

  & > div {
    margin: 0;
    padding: 0;
    flex: 1;

    &:last-child {
      flex: none;
    }
  }

  & p {
    margin: 0;
    padding: 0;
    display: flex;
  }

  & .wpcf7-form-control-wrap {
    display: flex;
    flex: 1;
  }

  & input[type="email"] {
    flex: 1;
    width: 100%;
    background: transparent;
    border: 0;
    outline: none;
    padding: 14px 22px;
    font-family: var(--pv-body);
    font-size: 15px;
    color: #fff;

    &::placeholder {
      color: rgba(255, 255, 255, 0.4);
    }
  }

  & input[type="submit"] {
    font-family: var(--pv-display);
    font-weight: 900;
    font-size: 12px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    padding: 15px 25px;
    border-radius: 999px;
    background: var(--pv-ignite);
    color: var(--pv-white);
    border: 0;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.25s;

    &:hover {
      background: #e62800;
    }
  }
}

.pv2-insider-note {
  margin-top: 22px;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.5);
  font-family: var(--pv-body);
}

@media (max-width: 768px) {
  .pv2-insider .pv-container {
    grid-template-columns: 1fr;
    gap: 40px;
  }
}

/* ═══════════════════════════════════════════════════════════════════════
   BACKGROUND UTILITY CLASSES
   ═══════════════════════════════════════════════════════════════════════ */
.pv2-bg-dark {
  background: #03000f;
}
.pv2-bg-paper {
  background: var(--pv-paper);
  color: var(--pv-graphite);
}

/* Footer styles are in footer.css, loaded globally. */
