/* ============================================================
   /products/spark/ scoped styles (Spark product page, September 2026)

   Loads after landing-page-v2.css (dependency) under the .lp-page-v2 scope,
   with the page's own .spk-page marker. Classes carry the spk- prefix; the
   shared .bk-* components (buttons, price card, titlebox, FAQ base) come
   from the v2 bundle, and the homepage-only components used here (app band,
   FAQ accordion behaviour, support banner, disclosures) are ported below
   the way landing-page-24off24.css did it. The page ships its own complete
   responsive set: it is NOT on the shared mobile port (.lp-v2-m).

   Fonts: DM Serif Display (--bk-font-display) for headlines, the big
   figures and the hero eyebrow; Inter (--bk-font-body) for everything else.
   Breakout Blue is the only decorative accent; green marks the funded
   state, red the over-ceiling state in the calculator.

   Round 2 (Matt's review, September 08, 2026): gradient words in every H2, an LED dot field
   fading out under the hero, the module at 9 s with no progress bar and lighter row states,
   light plate 07 on two benefits, no pill chips in the visuals, two new 24/7 options and two new
   payout-gap options, the real payout screen in a photographed iPhone, a quiet availability
   status row, the rules H2 at 28ch with a thinner strike, the why section as a carousel on the
   light textured plate, and the sizing lead-in above the calculator on desktop.
   Round 3 (Matt's second review, September 08, 2026): 52ch ledes, why cards with a dark
   label + bold title heading, the stack visual as two chips left and a light Combined box
   right, no closing chips, the dot grid filling its panel and scaling with it, the stage's
   dark base moved inside the rounded clip (no more dark corner hairline), and a Braze
   waitlist block in the sold-out state.
   Round 4 (Matt's third review, September 08, 2026): rows is the launch layout (equal 520px stages,
   every card the same height so the breathing room matches, opaque cards on the light plate, a smaller
   $60M+ stat, no numerals and copy first on phones), the release panel without its status row and with
   dots that scale to the panel (JS picks the column count), the why section as one white container of
   Joel's copy, a plain subheading under the sizing H2 (and a dark variant when the section follows
   pricing in order b), the app band gone, and a closing Spark CTA under the FAQ.
   Round 5 (Matt, September 09, 2026): order b is the launch order; an uploaded image can replace any
   benefit visual ("contain" inside the stage padding, "cover" edge to edge, 4:3 on phones).
   ============================================================ */

/* ---- 0. Page-level rhythm (homepage rhythm, not the LP shell's 120px) ---- */
.lp-page-v2.spk-page .bk-section { padding: 112px 0; }
.lp-page-v2.spk-page .bk-h2 { font-size: clamp(38px, 4.6vw, 60px); }
.lp-page-v2.spk-page .bk-titlebox { max-width: 860px; margin: 0 auto 56px; }
.lp-page-v2.spk-page .bk-titlebox .bk-lede { margin-left: auto; margin-right: auto; max-width: 52ch; text-wrap: pretty; }
.lp-page-v2.spk-page .bk-btn.is-soldout { background: #33465F; color: #C9D3E3; box-shadow: none; cursor: not-allowed; pointer-events: none; border-color: transparent; }
.lp-page-v2.spk-page .spk-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.lp-page-v2.spk-page .bk-section--dark h2, .lp-page-v2.spk-page .bk-section--dark h3, .lp-page-v2.spk-page .spk-rules-card__not h3, .lp-page-v2.spk-page .spk-faq-cta h3 { color: #fff; }

/* ---- 1. Hero: device video left, copy right (September 07 build) ---- */
.lp-page-v2 .spk-hero {
  position: relative; isolation: isolate;
  color: #fff;
  overflow: hidden;
  padding: 0;
  min-height: 800px;
  background:
    radial-gradient(ellipse 92% 60% at 102% -5%, rgba(52,102,160,1) 0%, rgba(38,90,148,1) 15%, rgba(27,80,137,0.98) 25%, rgba(20,70,126,0.96) 34%, rgba(14,60,113,0.92) 43%, rgba(9,48,96,0.85) 52%, rgba(6,38,80,0.75) 61%, rgba(4,30,63,0.6) 70%, rgba(2,22,48,0.4) 79%, rgba(1,17,35,0.2) 88%, rgba(1,14,28,0) 100%),
    linear-gradient(to bottom, rgba(1,11,18,1) 0%, rgba(1,11,18,1) 22%, rgba(1,11,18,0.94) 32%, rgba(1,11,18,0.78) 42%, rgba(1,11,18,0.45) 54%, rgba(1,11,18,0.15) 68%, rgba(1,11,18,0) 82%, rgba(1,11,18,0) 92%, rgba(1,11,18,0.12) 100%),
    linear-gradient(to right, rgba(95,155,205,1) 0%, rgba(20,98,160,0.98) 12%, rgba(6,63,120,0.95) 21%, rgba(2,39,84,0.9) 29%, rgba(1,26,56,0.8) 38%, rgba(0,19,37,0.55) 46%, rgba(0,15,30,0.25) 56%, rgba(0,14,28,0) 68%),
    radial-gradient(ellipse 60% 45% at 100% 100%, rgba(0,8,6,1) 0%, rgba(0,8,6,0.9) 40%, rgba(0,9,12,0.5) 70%, rgba(1,13,28,0) 100%),
    #020d1e;
}
.lp-page-v2 .spk-hero__grain {
  position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background-image: url("../img/product-page-spark/spark-hero-grain-384.png");
  background-size: 192px 192px;
  background-repeat: repeat;
  mix-blend-mode: overlay;
}
.lp-page-v2 .spk-hero__in {
  position: relative; z-index: 1;
  display: grid;
  grid-template-columns: minmax(300px, 0.9fr) minmax(0, 1.1fr);
  align-items: center;
  gap: clamp(32px, 5vw, 96px);
  max-width: var(--bk-in-wide, 1220px);
  margin: 0 auto;
  padding: 0 24px;
  min-height: 800px;
}
.lp-page-v2 .spk-hero__device { align-self: stretch; min-height: 800px; position: relative; }
.lp-page-v2 .spk-device {
  position: absolute; left: 0; right: 0; top: 44px; bottom: 0;
  display: flex; justify-content: center; align-items: flex-start;
  overflow: hidden;
}
.lp-page-v2 .spk-device__video {
  display: block;
  width: min(100%, 448px);
  height: auto;
  aspect-ratio: 9 / 16;
  object-fit: cover;
  background: transparent;
}
.lp-page-v2 .spk-hero__copy { max-width: 560px; padding: 56px 0 24px; }
.lp-page-v2 .spk-hero__eyebrow {
  font-family: var(--bk-font-display);
  font-weight: 400;
  font-size: 25px;
  line-height: 1.2;
  color: #fff;
  margin: 0 0 14px;
}
.lp-page-v2 .spk-hero__title {
  font-family: var(--bk-font-display);
  font-weight: 400;
  font-size: clamp(40px, 4.9vw, 64px);
  line-height: 1.06;
  letter-spacing: -1.4px;
  margin: 0 0 22px;
  max-width: 18ch;
  text-wrap: balance;
  color: #fff;
}
.lp-page-v2 .spk-hero--b .spk-hero__copy { max-width: 680px; }
.lp-page-v2 .spk-hero--b .spk-hero__title { font-size: clamp(32px, 3.2vw, 46px); letter-spacing: -0.9px; max-width: none; text-wrap: initial; }
.lp-page-v2 .spk-hero__sub {
  font-family: var(--bk-font-body);
  font-size: 19px; font-weight: 300; line-height: 1.6;
  color: var(--bk-text-ice, #EAECF0);
  max-width: 44ch;
  margin: 0 0 34px;
  text-wrap: pretty;
}
.lp-page-v2 .spk-hero--b .spk-hero__sub { max-width: 48ch; }
.lp-page-v2 .spk-hero__cta { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.lp-page-v2 .spk-hero__cta .bk-btn {
  gap: 10px; padding: 18px 34px;
  font-size: 17px; font-weight: 600; letter-spacing: normal; line-height: 1.2;
  border-radius: var(--bk-radius-button, 8px);
}
.lp-page-v2 .spk-hero__cta .spk-btn--primary { border: 1px solid var(--bk-blue, #008DF3); }
.lp-page-v2 .spk-hero__cta .spk-btn--primary.is-soldout { border-color: transparent; }
.lp-page-v2 .spk-hero__cta .spk-btn--secondary { border-color: rgba(255,255,255,0.28); }
.lp-page-v2 .spk-hero__cta .spk-btn--secondary:hover { border-color: rgba(255,255,255,0.6); background: rgba(255,255,255,0.06); }

/* ---- 2. Benefits: LED dot field, starts under the hero and fades out a third of the way down ---- */
.lp-page-v2 .spk-benefits { position: relative; isolation: isolate; }
.lp-page-v2 .spk-benefits::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background-image: radial-gradient(circle at 1.5px 1.5px, rgba(16,119,215,0.17) 1.1px, transparent 1.9px);
  background-size: 20px 20px;
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, rgba(0,0,0,0.55) 14%, transparent 34%);
  mask-image: linear-gradient(to bottom, #000 0%, rgba(0,0,0,0.55) 14%, transparent 34%);
}

/* ---- 2. Benefits: shared stage (plate + visual; the grain layer went with the September 11 plates, which carry their own) ---- */
.lp-page-v2 .spk-stage {
  position: relative; isolation: isolate;
  border-radius: 16px; overflow: hidden;
  background: transparent; /* the dark base is a child (.spk-stage__plates / the plate itself) so the rounded clip anti-aliases one edge, not two: a parent background here conflated into a dark corner hairline */
  min-height: 440px;
}
.lp-page-v2 .spk-stage__plates { position: absolute; inset: 0; background: #061A31; }
.lp-page-v2 .spk-stage__plate {
  position: absolute; inset: 0;
  background: var(--plate) center / cover no-repeat, #061A31;
  opacity: 0;
  transition: opacity .9s ease;
}
.lp-page-v2 .spk-stage__plate.is-active { opacity: 1; }
.lp-page-v2 .spk-stage__panels {
  position: absolute; inset: 0;
  display: grid; place-items: center;
  grid-template-columns: 100%; grid-template-rows: 100%; /* definite tracks: the device panel's 100% height resolves against the stage, not its image */
  padding: clamp(18px, 5%, 40px);
}
.lp-page-v2 .spk-stage__panel {
  grid-area: 1 / 1;
  width: min(100%, 460px); min-height: 0;
  opacity: 0; transform: translateY(14px) scale(.985);
  transition: opacity .55s ease, transform .55s ease;
  pointer-events: none;
}
.lp-page-v2 .spk-stage__panel.is-active { opacity: 1; transform: none; pointer-events: auto; }
.lp-page-v2 .spk-stage__panel--fill { width: 100%; height: 100%; }

/* Mechanic card */
.lp-page-v2 .spk-vis {
  background: rgba(6,26,49,0.80);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 16px;
  padding: 22px 24px 20px;
  color: #fff;
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  box-shadow: 0 30px 60px rgba(2,10,24,0.45);
  font-family: var(--bk-font-body);
}
.lp-page-v2 .spk-vis__head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 16px; }
.lp-page-v2 .spk-vis__label { font: 600 11px/1.3 var(--bk-font-body); letter-spacing: 1.8px; text-transform: uppercase; color: var(--bk-cyan-body); }
.lp-page-v2 .spk-vis__label--right { text-align: right; }
.lp-page-v2 .spk-vis__foot { margin: 16px 0 0; font: 400 13px/1.5 var(--bk-font-body); color: var(--bk-cyan-body); }

/* On the light plate the glassy card washes out into the gradient, so it renders opaque there (round 4) */
.lp-page-v2 .spk-stage__panel--onlight .spk-vis { background: rgba(6,26,49,0.96); border-color: rgba(255,255,255,0.10); -webkit-backdrop-filter: none; backdrop-filter: none; }
.lp-page-v2 .spk-stage__panel--onlight .spk-vis--device, .lp-page-v2 .spk-stage__panel--onlight .spk-vis--image { background: transparent; border: 0; }

/* Uploaded image in place of a visual (round 5): "contain" keeps the whole image inside the stage padding,
   "cover" fills the stage edge to edge (the panel's absolute box ignores the panels' padding). */
.lp-page-v2 .spk-vis.spk-vis--image { background: transparent; border: 0; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; padding: 0; border-radius: 0; } /* .spk-vis.spk-vis--image outranks the phone-width .spk-vis padding rule below */
.lp-page-v2 .spk-vis--image-contain { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; }
.lp-page-v2 .spk-vis--image-contain .spk-vis__img { display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; filter: drop-shadow(0 20px 40px rgba(6,26,49,0.25)); }
.lp-page-v2 .spk-vis--image-cover { position: absolute; inset: 0; }
.lp-page-v2 .spk-vis--image-cover .spk-vis__img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* V1 target rail: the label rolls from "evaluation" to "funded account" as the rail completes, and the card changes state */
.lp-page-v2 .spk-roll { display: inline-block; height: 14px; overflow: hidden; vertical-align: top; }
.lp-page-v2 .spk-roll__track { display: block; transition: transform .55s cubic-bezier(.2,.8,.2,1) 1.75s; }
.lp-page-v2 .spk-roll__line { display: block; height: 14px; line-height: 14px; white-space: nowrap; }
.lp-page-v2 .spk-roll__line--funded { color: var(--bk-green, #31E48B); }
.lp-page-v2 .is-live .spk-roll__track { transform: translateY(-14px); }
.lp-page-v2 .spk-vis--target { transition: border-color .6s ease 1.75s, box-shadow .6s ease 1.75s, background-color .6s ease 1.75s; }
.lp-page-v2 .spk-vis--target.is-live { border-color: rgba(49,228,139,0.55); background-color: rgba(6,33,44,0.86); box-shadow: 0 30px 60px rgba(2,10,24,0.45), 0 0 0 4px rgba(49,228,139,0.10), 0 0 56px rgba(49,228,139,0.22); }
.lp-page-v2 .spk-vis__big { display: flex; flex-direction: column; gap: 6px; margin-bottom: 18px; }
.lp-page-v2 .spk-vis__big-label { font: 400 13px/1.3 var(--bk-font-body); color: var(--bk-cyan-body); }
.lp-page-v2 .spk-vis__num { font-family: var(--bk-font-display); font-size: clamp(36px, 4vw, 46px); line-height: 1; letter-spacing: -0.5px; font-variant-numeric: tabular-nums; color: #fff; }
.lp-page-v2 .spk-rail { position: relative; height: 6px; border-radius: 100px; background: rgba(255,255,255,0.12); margin: 8px 0 30px; }
.lp-page-v2 .spk-rail__fill { position: absolute; left: 0; top: 0; bottom: 0; width: 0; border-radius: 100px; background: linear-gradient(90deg, var(--bk-blue), var(--bk-cyan)); transition: width 1.7s cubic-bezier(.3,.7,.2,1), background .5s ease 1.75s; }
.lp-page-v2 .is-live .spk-rail__fill { width: 100%; background: linear-gradient(90deg, var(--bk-blue), var(--bk-green, #31E48B)); }
.lp-page-v2 .spk-rail__dot { position: absolute; top: 50%; left: 0; width: 14px; height: 14px; margin: -7px 0 0 -7px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 4px rgba(126,207,253,0.25), 0 0 18px rgba(126,207,253,0.7); transition: left 1.7s cubic-bezier(.3,.7,.2,1), box-shadow .5s ease 1.75s; }
.lp-page-v2 .is-live .spk-rail__dot { left: 100%; box-shadow: 0 0 0 4px rgba(49,228,139,0.28), 0 0 18px rgba(49,228,139,0.85); }
.lp-page-v2 .spk-rail__tick { position: absolute; top: 14px; font: 500 11.5px/1.3 var(--bk-font-body); color: var(--bk-cyan-body); white-space: nowrap; }
.lp-page-v2 .spk-rail__tick--start { left: 0; }
.lp-page-v2 .spk-rail__tick--end { right: 0; color: #fff; }

/* V2 daily bars */
.lp-page-v2 .spk-bars { position: relative; display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; align-items: end; height: 150px; padding-top: 26px; border-bottom: 1px solid rgba(255,255,255,0.14); }
.lp-page-v2 .spk-bars__target { position: absolute; left: 0; right: 0; top: 10px; border-top: 1px dashed rgba(255,255,255,0.6); font: 500 11px/1 var(--bk-font-body); color: #fff; padding-top: 4px; text-align: right; }
.lp-page-v2 .spk-bars i { display: block; height: 0; border-radius: 6px 6px 2px 2px; background: rgba(126,207,253,0.45); transition: height 1s cubic-bezier(.2,.8,.2,1); }
.lp-page-v2 .spk-bars i:nth-child(3) { transition-delay: .1s; } .lp-page-v2 .spk-bars i:nth-child(4) { transition-delay: .2s; } .lp-page-v2 .spk-bars i:nth-child(5) { transition-delay: .3s; } .lp-page-v2 .spk-bars i:nth-child(6) { transition-delay: .4s; }
.lp-page-v2 .spk-bars i.is-big { background: linear-gradient(180deg, var(--bk-cyan), var(--bk-blue)); box-shadow: 0 0 24px rgba(126,207,253,0.35); transition-duration: 1.3s; }
.lp-page-v2 .is-live .spk-bars i { height: var(--h); }
.lp-page-v2 .spk-bars__days { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; margin-top: 8px; font: 500 11px/1 var(--bk-font-body); color: var(--bk-cyan-body); text-align: center; }

/* V3 trading hours */
.lp-page-v2 .spk-hours__row { display: grid; grid-template-columns: 112px 1fr; gap: 14px; align-items: center; margin-bottom: 14px; }
.lp-page-v2 .spk-hours__name { font: 500 12.5px/1.3 var(--bk-font-body); color: var(--bk-cyan-body); }
.lp-page-v2 .spk-hours__track { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; height: 26px; position: relative; }
.lp-page-v2 .spk-hours__track--session i { display: block; height: 100%; border-radius: 5px; background: rgba(255,255,255,0.16); width: 62%; }
.lp-page-v2 .spk-hours__track--session i.is-off { background: transparent; border: 1px dashed rgba(255,255,255,0.18); width: 100%; }
.lp-page-v2 .spk-hours__track--spark { display: block; }
.lp-page-v2 .spk-hours__band { position: absolute; left: 0; top: 0; bottom: 0; width: 0; border-radius: 5px; background: linear-gradient(90deg, var(--bk-blue), var(--bk-cyan)); box-shadow: 0 0 22px rgba(126,207,253,0.35); transition: width 1.6s cubic-bezier(.3,.7,.2,1); }
.lp-page-v2 .is-live .spk-hours__band { width: 100%; }
.lp-page-v2 .spk-hours__days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; margin: 4px 0 0 126px; font: 500 11px/1 var(--bk-font-body); color: var(--bk-cyan-body); text-align: center; }

/* V3a 24-hour dial (round 2): midnight at the top, exchange session as a short grey arc, Spark as the full ring */
.lp-page-v2 .spk-dial { display: grid; grid-template-columns: minmax(0, 196px) minmax(0, 1fr); gap: 20px; align-items: center; margin: 2px 0 0; }
.lp-page-v2 .spk-dial__svg { display: block; width: 100%; height: auto; overflow: visible; }
.lp-page-v2 .spk-dial__base { fill: none; stroke: rgba(255,255,255,0.10); stroke-width: 12; }
.lp-page-v2 .spk-dial__session { fill: none; stroke: rgba(255,255,255,0.42); stroke-width: 12; stroke-dasharray: 132.73 490.09; }
.lp-page-v2 .spk-dial__glow { fill: none; stroke: rgba(126,207,253,0.26); stroke-width: 16; stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 1.8s cubic-bezier(.3,.7,.2,1); }
.lp-page-v2 .spk-dial__spark { fill: none; stroke: var(--bk-cyan); stroke-width: 5; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 1.8s cubic-bezier(.3,.7,.2,1); }
.lp-page-v2 .is-live .spk-dial__glow, .lp-page-v2 .is-live .spk-dial__spark { stroke-dashoffset: 0; }
.lp-page-v2 .spk-dial__ticks line { stroke: rgba(255,255,255,0.35); stroke-width: 1.5; }
.lp-page-v2 .spk-dial__hour { font: 600 9px var(--bk-font-body); letter-spacing: 1px; fill: var(--bk-cyan-body); }
.lp-page-v2 .spk-dial__now { fill: #fff; stroke: rgba(126,207,253,0.35); stroke-width: 5; opacity: 0; transition: opacity .5s ease 1.7s; }
.lp-page-v2 .spk-dial__time { font-family: var(--bk-font-display); font-size: 30px; fill: #fff; opacity: 0; transition: opacity .5s ease 1.4s; }
.lp-page-v2 .spk-dial__state { font: 600 9px var(--bk-font-body); letter-spacing: 1.8px; text-transform: uppercase; fill: var(--bk-cyan-body); opacity: 0; transition: opacity .5s ease 1.7s; }
.lp-page-v2 .is-live .spk-dial__now, .lp-page-v2 .is-live .spk-dial__time, .lp-page-v2 .is-live .spk-dial__state { opacity: 1; }
.lp-page-v2 .spk-dial__fig { font-family: var(--bk-font-display); font-size: clamp(36px, 4vw, 46px); line-height: 1; letter-spacing: -0.5px; color: #fff; margin-bottom: 16px; }
.lp-page-v2 .spk-dial__key { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.lp-page-v2 .spk-dial__key li { display: flex; align-items: center; gap: 10px; font: 500 12.5px/1.3 var(--bk-font-body); color: var(--bk-cyan-body); }
.lp-page-v2 .spk-dial__key i { display: inline-block; flex: 0 0 auto; width: 22px; height: 6px; border-radius: 3px; }
.lp-page-v2 .spk-dial__key-session { background: rgba(255,255,255,0.42); width: 12px; }
.lp-page-v2 .spk-dial__key-spark { background: var(--bk-cyan); }

/* V3b candles past the close (round 2): 24 candles from 12:00 to 04:00, shaded after-hours region */
.lp-page-v2 .spk-candles { display: block; width: 100%; height: auto; overflow: visible; margin-top: 4px; }
.lp-page-v2 .spk-candles text { font-family: var(--bk-font-body); font-size: 10px; fill: var(--bk-cyan-body); }
.lp-page-v2 .spk-candles__after { fill: rgba(126,207,253,0.07); opacity: 0; transition: opacity .6s ease .35s; }
.lp-page-v2 .spk-candles__close { stroke: rgba(255,255,255,0.55); stroke-width: 1; stroke-dasharray: 3 4; opacity: 0; transition: opacity .6s ease .35s; }
.lp-page-v2 .spk-candles__tag { fill: #fff; font-weight: 600; opacity: 0; transition: opacity .6s ease .5s; }
.lp-page-v2 .spk-candles__tag--open { fill: var(--bk-cyan); transition-delay: 1.4s; }
.lp-page-v2 .is-live .spk-candles__after, .lp-page-v2 .is-live .spk-candles__close, .lp-page-v2 .is-live .spk-candles__tag { opacity: 1; }
.lp-page-v2 .spk-candles__c { opacity: 0; transform: translateY(6px); transition: opacity .35s ease, transform .35s ease; transition-delay: calc(var(--i, 0) * 60ms); }
.lp-page-v2 .spk-candles__c line { stroke: rgba(255,255,255,0.42); stroke-width: 1.2; }
.lp-page-v2 .spk-candles__c rect { fill: rgba(255,255,255,0.42); }
.lp-page-v2 .spk-candles__c.is-up line { stroke: var(--bk-cyan); }
.lp-page-v2 .spk-candles__c.is-up rect { fill: var(--bk-cyan); }
.lp-page-v2 .is-live .spk-candles__c { opacity: 1; transform: none; }
.lp-page-v2 .spk-candles__live { fill: #fff; stroke: rgba(126,207,253,0.35); stroke-width: 5; opacity: 0; transition: opacity .4s ease 1.6s; }
.lp-page-v2 .is-live .spk-candles__live { opacity: 1; animation: spkLive 1.8s ease-in-out 2s infinite; }
@keyframes spkLive { 0%, 100% { stroke-width: 5; } 50% { stroke-width: 9; } }
.lp-page-v2 .spk-candles__axis { stroke: rgba(255,255,255,0.14); stroke-width: 1; }
.lp-page-v2 .spk-candles__t--close { fill: #fff; font-weight: 600; }

/* V4 gap chart */
.lp-page-v2 .spk-gapchart { display: block; width: 100%; height: auto; overflow: visible; }
.lp-page-v2 .spk-gapchart text { font-family: var(--bk-font-body); font-size: 11px; fill: var(--bk-cyan-body); }
.lp-page-v2 .spk-gapchart__target { stroke: rgba(255,255,255,0.5); stroke-dasharray: 4 4; }
.lp-page-v2 .spk-gapchart__band { fill: rgba(126,207,253,0.16); opacity: 0; transition: opacity .8s .9s; }
.lp-page-v2 .is-live .spk-gapchart__band { opacity: 1; }
.lp-page-v2 .spk-gapchart__balance { fill: none; stroke: #fff; stroke-width: 2.2; stroke-linejoin: round; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 1.6s ease-out; }
.lp-page-v2 .spk-gapchart__floor { fill: none; stroke: var(--bk-cyan); stroke-width: 2; stroke-linejoin: round; stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 1.6s ease-out .15s; }
.lp-page-v2 .is-live .spk-gapchart__balance, .lp-page-v2 .is-live .spk-gapchart__floor { stroke-dashoffset: 0; }
.lp-page-v2 .spk-gapchart__bracket line { stroke: rgba(255,255,255,0.7); stroke-width: 1.5; }
.lp-page-v2 .spk-gapchart__bracket text { fill: #fff; font-weight: 600; }
.lp-page-v2 .spk-gapchart__bracket, .lp-page-v2 .spk-gapchart__marker { opacity: 0; transition: opacity .6s 1.5s; }
.lp-page-v2 .is-live .spk-gapchart__bracket, .lp-page-v2 .is-live .spk-gapchart__marker { opacity: 1; }
.lp-page-v2 .spk-gapchart__marker circle { fill: var(--bk-green, #31E48B); stroke: rgba(49,228,139,0.3); stroke-width: 6; }
.lp-page-v2 .spk-gapchart__marker text { fill: var(--bk-green, #31E48B); font-weight: 600; }
.lp-page-v2 .spk-gapchart__lbl--balance { fill: #fff; }
.lp-page-v2 .spk-gapchart__lbl--floor { fill: var(--bk-cyan); }

/* V5 payout ledger */
.lp-page-v2 .spk-ledger { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.lp-page-v2 .spk-ledger th, .lp-page-v2 .spk-ledger td { text-align: right; padding: 9px 0; font: 500 14.5px/1.3 var(--bk-font-body); border-bottom: 1px solid rgba(255,255,255,0.1); color: #fff; }
.lp-page-v2 .spk-ledger th { font-weight: 500; color: var(--bk-cyan-body); }
.lp-page-v2 .spk-ledger tbody th { text-align: left; }
.lp-page-v2 .spk-ledger thead th { font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; padding-bottom: 6px; }
.lp-page-v2 .spk-ledger tbody tr:last-child th, .lp-page-v2 .spk-ledger tbody tr:last-child td { border-bottom: 0; }
.lp-page-v2 .spk-ledger__after { opacity: 0; transform: translateY(-6px); transition: opacity .5s ease, transform .5s ease; }
.lp-page-v2 .spk-ledger tbody tr:nth-child(1) .spk-ledger__after { transition-delay: .3s; }
.lp-page-v2 .spk-ledger tbody tr:nth-child(2) .spk-ledger__after { transition-delay: .55s; }
.lp-page-v2 .spk-ledger tbody tr:nth-child(3) .spk-ledger__after { transition-delay: .8s; }
.lp-page-v2 .spk-ledger tbody tr:nth-child(4) .spk-ledger__after { transition-delay: 1.15s; }
.lp-page-v2 .is-live .spk-ledger__after { opacity: 1; transform: none; }
.lp-page-v2 .spk-ledger__gap th, .lp-page-v2 .spk-ledger__gap td { color: var(--bk-cyan); font-weight: 600; font-family: var(--bk-font-display); font-size: 19px; padding-top: 12px; }
.lp-page-v2 .spk-ledger__gap th { font-family: var(--bk-font-body); font-size: 14.5px; }

/* V5a payout bars (round 2): floor-to-balance bars before and after a $2,000 payout, same length, moved down the scale */
.lp-page-v2 .spk-pay { display: grid; gap: 14px; margin: 4px 0 2px; }
.lp-page-v2 .spk-pay__row { display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 14px; align-items: center; }
.lp-page-v2 .spk-pay__name { font: 500 12.5px/1.35 var(--bk-font-body); color: var(--bk-cyan-body); }
.lp-page-v2 .spk-pay__track { position: relative; height: 46px; border-radius: 9px; overflow: hidden; background-color: rgba(255,255,255,0.06); background-image: repeating-linear-gradient(90deg, rgba(255,255,255,0.09) 0 1px, transparent 1px calc(100% / 12)); }
.lp-page-v2 .spk-pay__bar, .lp-page-v2 .spk-pay__ghost { position: absolute; top: 7px; bottom: 7px; left: var(--l); width: 25%; border-radius: 6px; box-sizing: border-box; }
.lp-page-v2 .spk-pay__bar { background: linear-gradient(90deg, rgba(126,207,253,0.6), var(--bk-cyan)); box-shadow: 0 0 22px rgba(126,207,253,0.25); display: grid; place-items: center; }
.lp-page-v2 .spk-pay__gap { font: 600 11.5px/1 var(--bk-font-body); color: #061A31; white-space: nowrap; }
.lp-page-v2 .spk-pay__ghost { border: 1px dashed rgba(255,255,255,0.35); opacity: 0; transition: opacity .5s ease 1.3s; }
.lp-page-v2 .spk-pay__row--after .spk-pay__bar { transform: translateX(133.33%); transition: transform 1.2s cubic-bezier(.3,.7,.2,1) .6s; }
.lp-page-v2 .is-live .spk-pay__row--after .spk-pay__bar { transform: none; }
.lp-page-v2 .is-live .spk-pay__ghost { opacity: 1; }

/* V5b payout slide (round 2): balance and floor drop together by the payout; the $1,500 bracket rides along unchanged */
.lp-page-v2 .spk-slide { display: block; width: 100%; height: auto; overflow: visible; }
.lp-page-v2 .spk-slide text { font-family: var(--bk-font-body); font-size: 11px; fill: var(--bk-cyan-body); }
.lp-page-v2 .spk-slide__ghost { stroke: rgba(255,255,255,0.28); stroke-width: 1.5; stroke-dasharray: 4 5; opacity: 0; transition: opacity .5s ease .9s; }
.lp-page-v2 .spk-slide__band { fill: rgba(126,207,253,0.16); }
.lp-page-v2 .spk-slide__balance { stroke: #fff; stroke-width: 2.2; }
.lp-page-v2 .spk-slide__floor { stroke: var(--bk-cyan); stroke-width: 2; }
.lp-page-v2 .spk-slide__lbl--balance { fill: #fff; font-weight: 600; }
.lp-page-v2 .spk-slide__lbl--floor { fill: var(--bk-cyan); font-weight: 600; }
.lp-page-v2 .spk-slide__bracket line { stroke: rgba(255,255,255,0.75); stroke-width: 1.5; }
.lp-page-v2 .spk-slide__bracket text { fill: #fff; font-weight: 600; font-size: 13px; }
.lp-page-v2 .spk-slide__bracket .spk-slide__sub { fill: var(--bk-cyan-body); font-weight: 500; font-size: 10.5px; }
.lp-page-v2 .spk-slide__body { transition: transform 1.4s cubic-bezier(.3,.7,.2,1) .7s; }
.lp-page-v2 .is-live .spk-slide__body { transform: translateY(80px); }
.lp-page-v2 .is-live .spk-slide__ghost { opacity: 1; }
.lp-page-v2 .spk-slide__arrow { opacity: 0; transition: opacity .5s ease 1.1s; }
.lp-page-v2 .spk-slide__arrow line, .lp-page-v2 .spk-slide__arrow path { stroke: #fff; stroke-width: 1.5; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.lp-page-v2 .spk-slide__arrow text { fill: #fff; font-weight: 600; }
.lp-page-v2 .is-live .spk-slide__arrow { opacity: 1; }

/* V6 device shot (round 2): the real payout screen composited into a photographed iPhone frame, spanning the stage
   height with a margin top and bottom, and the homepage "$60M+ paid to traders" card floating over its lower edge */
.lp-page-v2 .spk-vis--device { height: 100%; background: transparent; border: 0; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; padding: 0; display: flex; justify-content: center; align-items: center; }
.lp-page-v2 .spk-device-shot { position: relative; height: 100%; display: flex; align-items: center; padding: 5% 0; box-sizing: border-box; }
.lp-page-v2 .spk-device-shot__img { display: block; height: 100%; width: auto; max-width: none; filter: drop-shadow(0 28px 44px rgba(6,26,49,0.32)); }
.lp-page-v2 .spk-float-stat { position: absolute; right: -16%; bottom: 13%; max-width: 152px; background: var(--bk-darkblue); color: #fff; border-radius: 12px; padding: 11px 14px 10px; box-shadow: 0 16px 40px rgba(6,26,49,0.35); opacity: 0; transform: translateY(10px); transition: opacity .6s ease .45s, transform .6s ease .45s; } /* round 4: smaller and narrower (the label wraps), so the phone stays readable */
.lp-page-v2 .is-live .spk-float-stat { opacity: 1; transform: none; }
.lp-page-v2 .spk-float-stat__num { font-family: var(--bk-font-display); font-size: 22px; line-height: 1; margin-bottom: 4px; }
.lp-page-v2 .spk-float-stat__num span { background: var(--bk-gradient-title-vert); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.lp-page-v2 .spk-float-stat__lbl { font: 600 8.5px/1.45 var(--bk-font-body); letter-spacing: 1.2px; text-transform: uppercase; color: var(--bk-cyan-body); }

/* ---- 2a. Module layout (rotating container) ---- */
.lp-page-v2 .spk-module {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
  gap: clamp(24px, 3.5vw, 48px);
  align-items: stretch;
  background: #fff;
  border: 1px solid var(--bk-border);
  border-radius: var(--bk-radius-card-lg);
  box-shadow: var(--bk-shadow-signature);
  padding: clamp(20px, 3vw, 36px);
}
.lp-page-v2 .spk-module__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; justify-content: center; gap: 4px; }
.lp-page-v2 .spk-module__tab {
  -webkit-appearance: none; appearance: none;
  display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 12px;
  width: 100%; box-sizing: border-box;
  padding: 15px 18px 16px;
  margin: 0; border: 0; border-radius: 14px;
  background: transparent; color: var(--bk-text-heading);
  text-align: left; cursor: pointer; position: relative; overflow: hidden;
  font: inherit;
  transition: background .3s ease, color .3s ease, box-shadow .3s ease;
}
.lp-page-v2 .spk-module__tab:hover { background: #F6F8FC; }
.lp-page-v2 .spk-module__tab:focus-visible { outline: 2px solid var(--bk-blue); outline-offset: 2px; }
.lp-page-v2 .spk-module__item.is-active .spk-module__tab { background: #E9EFF7; box-shadow: inset 0 0 0 1px #DCE4F0; }
.lp-page-v2 .spk-module__num { font: 600 11px/1 var(--bk-font-body); letter-spacing: 2px; color: var(--bk-text-meta-dark); padding-top: 6px; }
.lp-page-v2 .spk-module__item.is-active .spk-module__num { color: var(--bk-blue); }
.lp-page-v2 .spk-module__text { display: block; min-width: 0; }
.lp-page-v2 .spk-module__h { display: block; font-family: var(--bk-font-display); font-size: 19.5px; line-height: 1.25; margin-bottom: 5px; }
.lp-page-v2 .spk-module__p { display: block; font: 300 15px/1.5 var(--bk-font-body); color: var(--bk-text-cool); }
.lp-page-v2 .spk-module__stage { min-height: 100%; }

/* ---- 2b. Rows layout (alternating, with a numeral spine) ---- */
.lp-page-v2 .spk-rows { position: relative; display: flex; flex-direction: column; gap: clamp(56px, 7vw, 104px); margin-top: 8px; }
.lp-page-v2 .spk-rows::before { content: ""; position: absolute; left: 50%; top: 40px; bottom: 40px; width: 1px; background: var(--bk-border); }
.lp-page-v2 .spk-row { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 6vw, 96px); align-items: center; opacity: 0; transform: translateY(18px); transition: opacity .7s ease, transform .7s ease; }
.lp-page-v2 .spk-row.is-in { opacity: 1; transform: none; }
.lp-page-v2 .spk-row--flip .spk-row__copy { order: 2; }
.lp-page-v2 .spk-row__num { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); z-index: 1; background: #fff; border: 1px solid var(--bk-border); border-radius: 100px; padding: 7px 10px; font: 600 11px/1 var(--bk-font-body); letter-spacing: 2px; color: var(--bk-text-meta-dark); }
.lp-page-v2 .spk-row__copy h3 { font-family: var(--bk-font-display); font-weight: 400; font-size: clamp(26px, 2.4vw, 34px); line-height: 1.15; letter-spacing: -0.4px; margin: 0 0 14px; color: var(--bk-text-heading); max-width: 20ch; }
.lp-page-v2 .spk-row__copy p { font: 300 17px/1.6 var(--bk-font-body); color: var(--bk-text-cool); margin: 0 0 12px; max-width: 46ch; }
/* Round 4: every stage is the same 520px box; every card is at least 372px tall with its head at the top and its
   footnote at the bottom, so the tall charts (04 gap, 05 payout slide) and the short cards (01 target, 02 days) all
   sit with the same 74px of plate above and below. The device shot keeps the same margin. */
.lp-page-v2 .spk-row__stage { aspect-ratio: auto; height: 520px; min-height: 0; }
.lp-page-v2 .spk-row__stage .spk-stage__panels { padding: 44px; }
.lp-page-v2 .spk-row__stage .spk-stage__panel { width: min(100%, 440px); }
.lp-page-v2 .spk-row__stage .spk-vis:not(.spk-vis--device):not(.spk-vis--image) { min-height: 372px; display: flex; flex-direction: column; justify-content: space-between; }
.lp-page-v2 .spk-row__stage .spk-vis:not(.spk-vis--device):not(.spk-vis--image) > * { flex: 0 0 auto; }
.lp-page-v2 .spk-row__stage .spk-vis__head { margin-bottom: 0; }
.lp-page-v2 .spk-row__stage .spk-vis__foot { margin-top: 0; }
.lp-page-v2 .spk-row__stage .spk-vis--target .spk-vis__big { margin-bottom: 0; }
.lp-page-v2 .spk-row__stage .spk-vis--target .spk-rail { margin: 0 0 30px; }
.lp-page-v2 .spk-row__stage .spk-bars { height: 168px; }

/* Launch artwork (September 11, 2026): Matt's illustration tiles on his gradient plates, laid out like his compiled
   composites: the stage shows the whole plate, the tile is centred at 72% of the stage's shorter side with equal
   margins, rounded at 11.5% (matching the corners baked into tile 06) and lifted by a soft shadow. These come after
   the rows rules above on purpose: same specificity, so order decides. */
.lp-page-v2 .spk-stage--artwork .spk-stage__panels { padding: 0; }
.lp-page-v2 .spk-stage--artwork .spk-stage__panel { width: 100%; }
.lp-page-v2 .spk-vis--artwork .spk-vis__img { max-width: 72%; max-height: 72%; border-radius: 11.5%; box-shadow: 0 30px 60px rgba(2,10,24,0.50), 0 6px 16px rgba(2,10,24,0.30); filter: none; }
.lp-page-v2 .spk-row__stage .spk-device-shot { padding: 0; }

/* ---- 2c. Ledger layout (typographic) ---- */
.lp-page-v2 .spk-ledger-list { list-style: none; margin: 0 auto; padding: 0; max-width: 1040px; border-top: 1px solid var(--bk-border); }
.lp-page-v2 .spk-ledger-row { display: grid; grid-template-columns: 56px minmax(0, 1.05fr) minmax(0, 1.3fr) 150px; gap: 24px; align-items: start; padding: 30px 0; border-bottom: 1px solid var(--bk-border); opacity: 0; transform: translateY(12px); transition: opacity .6s ease, transform .6s ease; }
.lp-page-v2 .spk-ledger-row.is-in { opacity: 1; transform: none; }
.lp-page-v2 .spk-ledger-row__num { font: 600 11px/1 var(--bk-font-body); letter-spacing: 2px; color: var(--bk-text-meta-dark); padding-top: 9px; }
.lp-page-v2 .spk-ledger-row__h { font-family: var(--bk-font-display); font-weight: 400; font-size: 24px; line-height: 1.2; margin: 0; color: var(--bk-text-heading); }
.lp-page-v2 .spk-ledger-row__p p { font: 300 15.5px/1.6 var(--bk-font-body); color: var(--bk-text-cool); margin: 0 0 8px; }
.lp-page-v2 .spk-ledger-row__p p:last-child { margin-bottom: 0; }
.lp-page-v2 .spk-ledger-row__fig { font-family: var(--bk-font-display); font-size: 32px; line-height: 1; color: var(--bk-blue-deep, #1077D7); text-align: right; justify-self: end; font-variant-numeric: tabular-nums; padding-top: 2px; }

/* ---- 3. Pricing: card + release panel ---- */
.lp-page-v2 .spk-pricing__grid {
  display: grid;
  grid-template-columns: minmax(300px, 400px) minmax(0, 1fr);
  gap: clamp(24px, 3.5vw, 48px);
  align-items: stretch;
  max-width: 1040px; margin: 0 auto;
}
.lp-page-v2 .spk-price::before { display: none; }
.lp-page-v2 .spk-price:hover { transform: none; }
.lp-page-v2 .spk-price .bk-price__cta .bk-btn { font-size: 16px; padding: 16px 24px; }
.lp-page-v2 .spk-alloc {
  position: relative;
  background: #0A2140;
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: var(--bk-radius-card-lg);
  padding: 32px;
  display: flex; flex-direction: column;
  color: #fff;
}
.lp-page-v2 .spk-alloc__title { font-family: var(--bk-font-display); font-weight: 400; font-size: clamp(26px, 2.6vw, 34px); line-height: 1.15; letter-spacing: -0.4px; margin: 0 0 10px; color: #fff; }
.lp-page-v2 .spk-alloc__body { font: 300 16px/1.55 var(--bk-font-body); color: var(--bk-cyan-body); margin: 0 0 22px; max-width: 48ch; }
.lp-page-v2 .spk-alloc__grid {
  /* One dot per evaluation. The grid fills the panel's content width and keeps a cols:rows aspect, so every
     dot cell is square and the whole field scales with the panel; the panel padding is the margin on all
     sides and margin-top:auto seats it on the bottom edge. Round 4: the JS picks --cols so the field also
     fills the height left under the title and body (the panel is as tall as the price card): an exact grid
     whose lattice may stretch vertically by up to 30% (explicit height), else a square lattice with the
     ragged tail masked by --void. It sets --cols, --rows, --sold-rows, --rem and --void. */
  --cols: 50; --rows: 30; --sold-rows: 0; --rem: 0; --void: 0;
  position: relative; overflow: hidden;
  width: 100%; aspect-ratio: var(--cols) / var(--rows);
  background-image: radial-gradient(circle at 50% 50%, var(--bk-blue) 28%, transparent 34%);
  background-size: calc(100% / var(--cols)) calc(100% / var(--rows));
  margin: auto 0 0;
}
.lp-page-v2 .spk-alloc__sold {
  position: absolute; left: 0; top: 0;
  background-color: #0A2140; /* opaque: a translucent dim dot would let the lit dot beneath show through */
  background-image: radial-gradient(circle at 50% 50%, #2A3E59 28%, transparent 34%);
  transition: height .8s ease, width .8s ease, top .8s ease;
}
.lp-page-v2 .spk-alloc__sold--full { width: 100%; height: calc(var(--sold-rows) / var(--rows) * 100%); background-size: calc(100% / var(--cols)) calc(100% / max(var(--sold-rows), 1)); }
.lp-page-v2 .spk-alloc__sold--part { top: calc(var(--sold-rows) / var(--rows) * 100%); width: calc(var(--rem) / var(--cols) * 100%); height: calc(100% / var(--rows)); background-size: calc(100% / max(var(--rem), 1)) 100%; }
.lp-page-v2 .spk-alloc__void { position: absolute; right: 0; bottom: 0; width: calc(var(--void) / var(--cols) * 100%); height: calc(100% / var(--rows)); background: #0A2140; }
.lp-page-v2 .spk-alloc__foot { font: 400 13px/1.5 var(--bk-font-body); color: var(--bk-cyan-body); margin: 18px 0 0; }

/* ---- 3b. Waitlist (Sold out state only): the shared Braze capture form (.lp-email-form, rendered by
   breakout_render_capture_form) under the price card and release panel. capture-form-block.css scopes its
   form rules to its own wrappers, so the form chrome is restyled here to match the page. ---- */
.lp-page-v2 .spk-waitlist { max-width: 1040px; margin: 28px auto 0; background: #0A2140; border: 1px solid rgba(255,255,255,0.08); border-radius: var(--bk-radius-card-lg); padding: 32px; display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 32px; align-items: center; opacity: 0; transform: translateY(12px); transition: opacity .6s ease, transform .6s ease; scroll-margin-top: 96px; }
.lp-page-v2 .spk-waitlist.is-in { opacity: 1; transform: none; }
.lp-page-v2 .spk-waitlist__title { font-family: var(--bk-font-display); font-weight: 400; font-size: clamp(24px, 2.4vw, 30px); line-height: 1.2; letter-spacing: -0.3px; color: #fff; margin: 0 0 10px; }
.lp-page-v2 .spk-waitlist__body { font: 300 16px/1.55 var(--bk-font-body); color: var(--bk-cyan-body); margin: 0; max-width: 40ch; }
.lp-page-v2 .spk-waitlist__missing { font: 400 14px/1.5 var(--bk-font-body); color: var(--bk-cyan-body); margin: 0; }
.lp-page-v2 .spk-waitlist__form .lp-email-form { width: 100%; position: relative; }
.lp-page-v2 .spk-waitlist__form .lp-email-form__step[hidden] { display: none; }
.lp-page-v2 .spk-waitlist__form .lp-email-form__row, .lp-page-v2 .spk-waitlist__form .lp-email-form__name-row { display: flex; gap: 10px; }
.lp-page-v2 .spk-waitlist__form .lp-email-form__input { flex: 1; min-width: 0; padding: 14px 16px; border-radius: var(--bk-radius-button, 8px); border: 1px solid rgba(255,255,255,0.18); background: rgba(255,255,255,0.06); color: #fff; font: 400 15px/1.3 var(--bk-font-body); outline: none; transition: border-color .15s ease, box-shadow .15s ease; }
.lp-page-v2 .spk-waitlist__form .lp-email-form__input::placeholder { color: rgba(255,255,255,0.45); }
.lp-page-v2 .spk-waitlist__form .lp-email-form__input:focus { border-color: var(--bk-cyan); box-shadow: 0 0 0 3px rgba(126,207,253,0.18); }
.lp-page-v2 .spk-waitlist__form .lp-email-form__btn { -webkit-appearance: none; appearance: none; border: 0; margin: 0; padding: 14px 24px; border-radius: var(--bk-radius-button, 8px); background: var(--bk-gradient-cta-desktop); color: #fff; font: 600 15px/1.3 var(--bk-font-body); cursor: pointer; white-space: nowrap; transition: opacity .15s ease, transform .1s ease; }
.lp-page-v2 .spk-waitlist__form .lp-email-form__btn:hover { background: var(--bk-gradient-cta-hover); }
.lp-page-v2 .spk-waitlist__form .lp-email-form__btn:active { transform: scale(.98); }
.lp-page-v2 .spk-waitlist__form .lp-email-form__btn:disabled { opacity: .6; cursor: not-allowed; }
.lp-page-v2 .spk-waitlist__form .lp-email-form__btn:focus-visible { outline: 2px solid var(--bk-cyan); outline-offset: 2px; }
.lp-page-v2 .spk-waitlist__form .lp-email-form__step--2 { display: flex; flex-direction: column; gap: 10px; }
.lp-page-v2 .spk-waitlist__form .lp-email-form__step--2 .lp-email-form__btn { width: 100%; }
.lp-page-v2 .spk-waitlist__form .lp-email-form__consent { display: flex; align-items: flex-start; gap: 9px; font: 400 13px/1.45 var(--bk-font-body); color: rgba(255,255,255,0.7); cursor: pointer; }
.lp-page-v2 .spk-waitlist__form .lp-email-form__consent input[type="checkbox"] { flex-shrink: 0; width: 16px; height: 16px; margin-top: 2px; accent-color: var(--bk-blue); cursor: pointer; }
.lp-page-v2 .spk-waitlist__form .lp-email-form__status { font: 400 13px/1.4 var(--bk-font-body); color: var(--bk-cyan-body); margin: 8px 0 0; min-height: 18px; }
.lp-page-v2 .spk-waitlist__form .lp-email-form__status--error { color: #FCA5A5; }
.lp-page-v2 .spk-waitlist__form .lp-email-form__success { display: flex; align-items: center; gap: 10px; font: 600 16px/1.4 var(--bk-font-body); color: #fff; padding: 6px 0; }
@media (max-width: 900px) {
  .lp-page-v2 .spk-waitlist { grid-template-columns: 1fr; gap: 20px; padding: 24px 20px; }
}
@media (max-width: 640px) {
  .lp-page-v2 .spk-waitlist__form .lp-email-form__row, .lp-page-v2 .spk-waitlist__form .lp-email-form__name-row { flex-direction: column; }
  .lp-page-v2 .spk-waitlist__form .lp-email-form__btn { width: 100%; }
}

/* ---- 4. Rules ---- */
.lp-page-v2 .spk-rules__h2 { text-align: center; max-width: 28ch; margin: 0 auto 48px; font-size: clamp(36px, 4.4vw, 58px); line-height: 1.08; text-wrap: balance; }
.lp-page-v2 .spk-rules-card {
  display: grid; grid-template-columns: 1.05fr 1fr;
  max-width: 1096px; margin: 0 auto;
  background: #fff;
  border: 1px solid var(--bk-border);
  border-radius: var(--bk-radius-card-lg);
  box-shadow: var(--bk-shadow-signature);
  overflow: hidden;
}
.lp-page-v2 .spk-rules-card__has { padding: clamp(28px, 4vw, 56px); }
.lp-page-v2 .spk-rules-card__not { background: #0F2544; color: #fff; padding: clamp(28px, 4vw, 56px); display: flex; flex-direction: column; justify-content: center; }
.lp-page-v2 .spk-rules__label { font: 600 12px/1.3 var(--bk-font-body); letter-spacing: 2px; text-transform: uppercase; color: var(--bk-text-meta-dark); margin: 0 0 14px; }
.lp-page-v2 .spk-rules-card__not .spk-rules__label { color: var(--bk-cyan-body); }
.lp-page-v2 .spk-rules__title { font-family: var(--bk-font-display); font-weight: 400; font-size: clamp(24px, 2.2vw, 30px); line-height: 1.2; margin: 0 0 30px; color: var(--bk-text-heading); }
.lp-page-v2 .spk-rules__nums { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-bottom: 28px; }
.lp-page-v2 .spk-rules__num { font-family: var(--bk-font-display); font-size: clamp(44px, 4.6vw, 66px); line-height: 1; letter-spacing: -1.5px; color: var(--bk-text-heading); font-variant-numeric: tabular-nums; }
.lp-page-v2 .spk-rules__numcopy { font: 400 15px/1.5 var(--bk-font-body); color: var(--bk-text-cool); margin: 10px 0 0; }
.lp-page-v2 .spk-rules__foot { font: 400 13.5px/1.6 var(--bk-font-body); color: var(--bk-text-muted); margin: 0; padding-top: 20px; border-top: 1px solid var(--bk-border); }
.lp-page-v2 .spk-kill { list-style: none; margin: 0; padding: 0; }
.lp-page-v2 .spk-kill li { position: relative; padding: 13px 0 13px 30px; border-bottom: 1px solid rgba(255,255,255,0.08); font: 400 18px/1.3 var(--bk-font-body); color: #fff; transition: color .5s ease; transition-delay: calc(var(--d, 0s) + .45s); }
.lp-page-v2 .spk-kill li:last-child { border-bottom: 0; }
.lp-page-v2 .spk-kill li::before { content: ""; position: absolute; left: 0; top: 50%; width: 14px; height: 14px; margin-top: -8px; border-radius: 50%; border: 1.5px solid rgba(126,207,253,0.55); }
.lp-page-v2 .spk-kill li::after { content: ""; position: absolute; left: 4px; top: 50%; width: 8px; height: 1.5px; margin-top: -1px; background: var(--bk-cyan); transform: rotate(-45deg) scaleX(0); transition: transform .35s ease; transition-delay: calc(var(--d, 0s) + .3s); }
.lp-page-v2 .spk-kill__t { position: relative; display: inline-block; }
.lp-page-v2 .spk-kill__t::after { content: ""; position: absolute; left: -2px; right: -2px; top: 54%; height: 1px; background: var(--bk-cyan); transform: scaleX(0); transform-origin: left center; transition: transform .6s cubic-bezier(.2,.8,.2,1); transition-delay: var(--d, 0s); }
.lp-page-v2 .is-in .spk-kill__t::after { transform: scaleX(1); }
.lp-page-v2 .is-in .spk-kill li { color: rgba(255,255,255,0.72); }
.lp-page-v2 .is-in .spk-kill li::after { transform: rotate(-45deg) scaleX(1); }
.lp-page-v2 .spk-rules__closer { text-align: center; max-width: 34ch; margin: 48px auto 0; font-family: var(--bk-font-display); font-weight: 400; font-size: clamp(24px, 2.4vw, 32px); line-height: 1.25; color: var(--bk-text-heading); text-wrap: balance; }
.lp-page-v2 .spk-rules__cta { text-align: center; margin-top: 26px; }

/* ---- 5. Why are those rules any better? Joel's copy in one white container on the light textured plate (round 4) ---- */
.lp-page-v2 .spk-why { position: relative; isolation: isolate; background: #F4F2EE; overflow: hidden; }
.lp-page-v2 .spk-why__plate { position: absolute; inset: 0; z-index: -2; background: url("../img/product-page-spark/why-plate.webp") center / cover no-repeat; }
.lp-page-v2 .spk-why__grain { position: absolute; inset: 0; z-index: -1; pointer-events: none; background: url("../img/product-page-spark/spark-grain-seamless-256.png") 0 0 / 128px 128px repeat; mix-blend-mode: overlay; opacity: .55; }
.lp-page-v2 .spk-why .bk-titlebox { max-width: 780px; margin-bottom: 44px; }
/* Round 4: one white container of Joel's copy. No diagrams; bold where he set it. */
.lp-page-v2 .spk-why__copy { max-width: 820px; margin: 0 auto; background: #fff; border: 1px solid var(--bk-border); border-radius: var(--bk-radius-card-lg); box-shadow: var(--bk-shadow-signature); padding: clamp(32px, 4.5vw, 56px) clamp(24px, 5vw, 72px); opacity: 0; transform: translateY(14px); transition: opacity .6s ease, transform .6s ease; }
.lp-page-v2 .spk-why__copy.is-in { opacity: 1; transform: none; }
.lp-page-v2 .spk-why__copy > p, .lp-page-v2 .spk-why__close > p { font: 400 18px/1.7 var(--bk-font-body); color: var(--bk-text-cool); margin: 0 0 22px; text-wrap: pretty; }
.lp-page-v2 .spk-why__copy > p:last-child { margin-bottom: 0; }
.lp-page-v2 .spk-why__copy strong { font-weight: 600; color: var(--bk-text-heading); }
.lp-page-v2 .spk-why__close { text-align: center; margin-top: 56px; }
.lp-page-v2 .spk-why__close-title { font-family: var(--bk-font-display); font-weight: 400; font-size: clamp(34px, 3.8vw, 52px); line-height: 1.1; letter-spacing: -0.8px; margin: 0 0 18px; color: var(--bk-text-heading); }
.lp-page-v2 .spk-why__close > p { font-weight: 300; line-height: 1.65; max-width: 56ch; margin-left: auto; margin-right: auto; }

/* ---- 6. Sizing: copy + calculator ---- */
.lp-page-v2 .spk-sizing__grid { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: clamp(32px, 5vw, 80px); align-items: center; }
.lp-page-v2 .spk-sizing__h2 { text-align: left; font-size: clamp(34px, 3.6vw, 50px); margin-bottom: 12px; max-width: 20ch; text-wrap: pretty; }
.lp-page-v2 .spk-sizing__sub { font-family: var(--bk-font-display); font-weight: 400; font-size: clamp(22px, 2.1vw, 28px); line-height: 1.25; letter-spacing: -0.2px; color: var(--bk-text-heading); margin: 0 0 22px; } /* round 4: the second sentence as a plain subheading */
/* Order b: the section follows pricing on the same Midnight band (the calculator card stays white) */
.lp-page-v2.spk-page .spk-sizing--dark { padding-top: 24px; }
.lp-page-v2 .spk-sizing--dark .spk-sizing__sub, .lp-page-v2 .spk-sizing--dark .spk-sizing__lines p.spk-sizing__lead, .lp-page-v2 .spk-sizing--dark .spk-sizing__lead--module { color: #fff; }
.lp-page-v2 .spk-sizing--dark .spk-sizing__lines p { color: var(--bk-cyan-body); }
.lp-page-v2 .spk-sizing--dark .spk-sizing__qualifier { color: rgba(255,255,255,0.6); }
.lp-page-v2 .spk-sizing--dark .spk-calc { box-shadow: 0 24px 60px rgba(0,0,0,0.28); border-color: transparent; }
.lp-page-v2 .spk-sizing__lines p { font: 300 18px/1.6 var(--bk-font-body); color: var(--bk-text-cool); margin: 0 0 12px; max-width: 46ch; }
.lp-page-v2 .spk-sizing__lines p.spk-sizing__lead { font-weight: 500; color: var(--bk-text-heading); margin-top: 20px; }
.lp-page-v2 .spk-sizing__lead--module { display: none; font: 500 18px/1.6 var(--bk-font-body); color: var(--bk-text-heading); margin: 0 0 14px; }
@media (min-width: 1081px) {
  .lp-page-v2 .spk-sizing__lines p.spk-sizing__lead--inline { display: none; }
  .lp-page-v2 .spk-sizing__lead--module { display: block; }
}
.lp-page-v2 .spk-calc { background: #fff; border: 1px solid var(--bk-border); border-radius: 16px; padding: 28px; box-shadow: 0 4px 12px rgba(0,0,0,0.06); }
.lp-page-v2 .spk-calc__label { font: 600 11px/1.3 var(--bk-font-body); letter-spacing: 2px; text-transform: uppercase; color: var(--bk-text-meta-dark); margin: 0 0 18px; }
.lp-page-v2 .spk-calc__controls { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; margin-bottom: 24px; }
.lp-page-v2 .spk-seg { display: inline-flex; background: #F0F4FA; border-radius: 10px; padding: 4px; }
.lp-page-v2 .spk-seg button { -webkit-appearance: none; appearance: none; border: 0; margin: 0; background: transparent; cursor: pointer; padding: 10px 16px; border-radius: 8px; font: 600 13.5px/1.2 var(--bk-font-body); color: var(--bk-text-cool); min-height: 40px; transition: background .25s, color .25s; }
.lp-page-v2 .spk-seg button.is-active { background: #061A31; color: #fff; }
.lp-page-v2 .spk-seg button:focus-visible { outline: 2px solid var(--bk-blue); outline-offset: 2px; }
.lp-page-v2 .spk-select { position: relative; display: inline-block; }
.lp-page-v2 .spk-select select { -webkit-appearance: none; appearance: none; font: 500 14px/1.2 var(--bk-font-body); color: var(--bk-text-heading); padding: 11px 38px 11px 14px; border: 1px solid var(--bk-border-input); border-radius: 8px; background: #fff; min-height: 44px; cursor: pointer; }
.lp-page-v2 .spk-select::after { content: ""; position: absolute; right: 15px; top: 50%; width: 8px; height: 8px; margin-top: -6px; border-right: 2px solid #6A7695; border-bottom: 2px solid #6A7695; transform: rotate(45deg); pointer-events: none; }
.lp-page-v2 .spk-calc__numbers { display: grid; grid-template-columns: auto auto minmax(0, 1fr); gap: 22px; align-items: end; margin-bottom: 22px; }
.lp-page-v2 .spk-calc__small { display: block; font: 500 12.5px/1.3 var(--bk-font-body); color: var(--bk-text-muted); margin-bottom: 6px; }
.lp-page-v2 .spk-stepper { display: inline-flex; align-items: center; border-bottom: 2px solid var(--bk-border-input); }
.lp-page-v2 .spk-stepper button { -webkit-appearance: none; appearance: none; border: 0; margin: 0; background: transparent; cursor: pointer; width: 40px; height: 44px; font: 400 22px/1 var(--bk-font-body); color: var(--bk-text-cool); }
.lp-page-v2 .spk-stepper button:hover { color: var(--bk-text-heading); }
.lp-page-v2 .spk-stepper input { width: 62px; text-align: center; border: 0; background: transparent; font-family: var(--bk-font-display); font-size: 34px; line-height: 1; color: var(--bk-text-heading); -moz-appearance: textfield; padding: 0; }
.lp-page-v2 .spk-stepper input::-webkit-outer-spin-button, .lp-page-v2 .spk-stepper input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.lp-page-v2 .spk-stepper input:focus-visible { outline: 2px solid var(--bk-blue); outline-offset: 2px; border-radius: 4px; }
.lp-page-v2 .spk-calc__eq { font-size: 26px; color: var(--bk-text-meta-dark); padding-bottom: 8px; }
.lp-page-v2 .spk-calc__out output { display: block; font-family: var(--bk-font-display); font-size: clamp(30px, 3vw, 44px); line-height: 1; color: var(--bk-text-heading); font-variant-numeric: tabular-nums; letter-spacing: -0.5px; }
.lp-page-v2 .spk-calc__track { height: 8px; background: #E9EEF6; border-radius: 100px; overflow: hidden; }
.lp-page-v2 .spk-calc__bar { display: block; height: 100%; width: 0; background: var(--bk-blue); border-radius: 100px; transition: width .4s ease, background .3s ease; }
.lp-page-v2 .spk-calc__bar.is-over { background: var(--bk-red, #F04438); }
.lp-page-v2 .spk-calc__labels { display: flex; justify-content: space-between; gap: 12px; margin-top: 10px; font: 400 13.5px/1.4 var(--bk-font-body); color: var(--bk-text-cool); }
.lp-page-v2 .spk-calc__labels strong { color: var(--bk-text-heading); font-weight: 600; }
.lp-page-v2 .spk-calc__labels .is-over { color: #B42318; }
.lp-page-v2 .spk-calc__ref { font: 400 12.5px/1.5 var(--bk-font-body); color: var(--bk-text-muted); margin: 16px 0 0; }
.lp-page-v2 .spk-sizing__qualifier { font: 400 13px/1.55 var(--bk-font-body); color: var(--bk-text-muted); margin: 16px 0 0; }

/* ---- 7. FAQ accordion behaviour (homepage, ported) + the closing Spark CTA (round 4, replaces the support banner) ---- */
.lp-page-v2 .bk-faq__sum { list-style: none; }
.lp-page-v2 .bk-faq__sum::-webkit-details-marker { display: none; }
@media (min-width: 641px) {
  .lp-page-v2 .bk-faq__sum { pointer-events: none; }
  .lp-page-v2 .bk-faq__chev { display: none; }
}
.lp-page-v2 .spk-faq-cta {
  max-width: var(--bk-in-short);
  margin: 40px auto 0;
  background: var(--bk-darkblue);
  color: #fff;
  border-radius: var(--bk-radius-card-lg);
  padding: 32px 36px;
  display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap;
}
.lp-page-v2 .spk-faq-cta__t { font-family: var(--bk-font-display); font-weight: 400; font-size: 26px; line-height: 1.2; margin: 0 0 6px; color: #fff; }
.lp-page-v2 .spk-faq-cta__d { font: 400 15px/1.5 var(--bk-font-body); color: var(--bk-cyan-body); margin: 0; max-width: 56ch; }
.lp-page-v2 .spk-faq-cta .bk-btn { flex: 0 0 auto; }

/* ---- 8. Disclosures (homepage, ported) ---- */
.lp-page-v2 .bk-disclosures { background: #fff; color: var(--bk-text-muted); padding: 56px 0 64px; border-top: 1px solid var(--bk-border); }
.lp-page-v2 .bk-disclosures__in { max-width: var(--bk-in-short); margin: 0 auto; padding: 0 24px; }
.lp-page-v2 .bk-disclosures h2 { font: italic 600 15px/1.45 var(--bk-font-body); color: var(--bk-text-cool); margin: 0 0 18px; }
.lp-page-v2 .bk-disclosures p { font: italic 400 13.5px/1.65 var(--bk-font-body); color: var(--bk-text-muted); margin: 0 0 14px; }
.lp-page-v2 .bk-disclosures p:last-child { margin-bottom: 0; }

/* ---- 10. Responsive ---- */
@media (max-width: 1080px) {
  .lp-page-v2 .spk-pricing__grid { grid-template-columns: 1fr; max-width: 640px; }
  .lp-page-v2 .spk-rules-card { grid-template-columns: 1fr; }
  .lp-page-v2 .spk-sizing__grid { grid-template-columns: 1fr; gap: 40px; }
  .lp-page-v2 .spk-sizing__h2, .lp-page-v2 .spk-sizing__sub { max-width: none; }
}
@media (max-width: 900px) {
  /* Hero: copy first, device below, both centred (September 07 rules). */
  .lp-page-v2 .spk-hero { padding-top: calc(72px + 48px); min-height: 0; }
  .lp-page-v2 .spk-hero__in { grid-template-columns: 1fr; gap: 24px; min-height: 0; text-align: center; }
  .lp-page-v2 .spk-hero__copy { order: 1; max-width: 560px; margin: 0 auto; padding: 0; }
  .lp-page-v2 .spk-hero__title { margin-left: auto; margin-right: auto; max-width: 16ch; }
  .lp-page-v2 .spk-hero--b .spk-hero__title { max-width: 24ch; }
  .lp-page-v2 .spk-hero--b .spk-hero__title br { display: none; }
  .lp-page-v2 .spk-hero__sub { margin-left: auto; margin-right: auto; }
  .lp-page-v2 .spk-hero__cta { justify-content: center; }
  .lp-page-v2 .spk-hero__device { order: 2; min-height: 0; height: 560px; margin-top: -68px; }
  .lp-page-v2 .spk-device { top: 0; }
  .lp-page-v2 .spk-device__video { width: min(78vw, 360px); }

  /* Module: stage on top, the six benefits as a swipe rail beneath. */
  .lp-page-v2 .spk-module { grid-template-columns: 1fr; padding: 14px; gap: 14px; }
  .lp-page-v2 .spk-module__stage { order: -1; aspect-ratio: 4 / 3; min-height: 0; }
  .lp-page-v2 .spk-module__list { flex-direction: row; justify-content: flex-start; overflow-x: auto; scroll-snap-type: x mandatory; gap: 10px; margin: 0 -14px; padding: 4px 14px 8px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .lp-page-v2 .spk-module__list::-webkit-scrollbar { display: none; }
  .lp-page-v2 .spk-module__item { flex: 0 0 82%; scroll-snap-align: center; }
  .lp-page-v2 .spk-module__tab { height: 100%; padding: 16px 16px 18px; }

  /* Rows: stack, spine off, no numerals, copy first and the visual under it (round 4). */
  .lp-page-v2 .spk-rows::before { display: none; }
  .lp-page-v2 .spk-row, .lp-page-v2 .spk-row--flip { grid-template-columns: 1fr; gap: 22px; }
  .lp-page-v2 .spk-row--flip .spk-row__copy { order: 0; }
  .lp-page-v2 .spk-row__stage { order: 1; height: auto; }
  .lp-page-v2 .spk-row__stage .spk-stage__panels { padding: clamp(18px, 5%, 40px); }
  .lp-page-v2 .spk-row__stage .spk-stage__panel { width: min(100%, 460px); }
  .lp-page-v2 .spk-row__stage .spk-vis:not(.spk-vis--device):not(.spk-vis--image) { min-height: 0; display: block; }
  .lp-page-v2 .spk-row__stage.spk-stage--cover { aspect-ratio: 4 / 3; }
  .lp-page-v2 .spk-stage--cover .spk-stage__panels { position: absolute; inset: 0; grid-template-rows: 100%; }
  .lp-page-v2 .spk-stage--cover .spk-stage__panel--fill { height: 100%; }
  .lp-page-v2 .spk-stage--contain .spk-stage__panel--fill, .lp-page-v2 .spk-stage--contain .spk-vis--image-contain { height: auto; }
  .lp-page-v2 .spk-stage--contain .spk-vis__img { max-height: 380px; }
  .lp-page-v2 .spk-row__stage .spk-vis__head { margin-bottom: 16px; }
  .lp-page-v2 .spk-row__stage .spk-vis__foot { margin-top: 16px; }
  .lp-page-v2 .spk-row__stage .spk-vis--target .spk-vis__big { margin-bottom: 18px; }
  .lp-page-v2 .spk-row__stage .spk-vis--target .spk-rail { margin: 8px 0 30px; }
  .lp-page-v2 .spk-row__stage .spk-bars { height: 150px; }
  .lp-page-v2 .spk-row__stage .spk-device-shot { padding: 5% 0; }
  .lp-page-v2 .spk-row__num { display: none; }
  .lp-page-v2 .spk-row__copy h3 { max-width: none; }

  /* Ledger: two-line rows. */
  .lp-page-v2 .spk-ledger-row { grid-template-columns: 44px minmax(0, 1fr) auto; grid-template-areas: "num h fig" "num p p"; gap: 10px 16px; padding: 24px 0; }
  .lp-page-v2 .spk-ledger-row__num { grid-area: num; padding-top: 6px; }
  .lp-page-v2 .spk-ledger-row__h { grid-area: h; font-size: 21px; }
  .lp-page-v2 .spk-ledger-row__p { grid-area: p; }
  .lp-page-v2 .spk-ledger-row__fig { grid-area: fig; font-size: 26px; }

  .lp-page-v2 .spk-rules__nums { grid-template-columns: 1fr 1fr; }
  .lp-page-v2 .spk-hours__row { grid-template-columns: 96px 1fr; }
  .lp-page-v2 .spk-hours__days { margin-left: 110px; }
}
@media (max-width: 640px) {
  .lp-page-v2.spk-page .bk-section { padding: 64px 0; }
  .lp-page-v2.spk-page .bk-titlebox { margin-bottom: 32px; }
  .lp-page-v2.spk-page .bk-h2 { font-size: clamp(30px, 8.2vw, 38px); letter-spacing: -0.6px; }
  .lp-page-v2.spk-page .bk-lede { font-size: 17px; }

  .lp-page-v2 .spk-hero__eyebrow { font-size: 21px; margin-bottom: 10px; }
  .lp-page-v2 .spk-hero__title { font-size: 36px; letter-spacing: -0.8px; }
  .lp-page-v2 .spk-hero--b .spk-hero__title { font-size: 31px; }
  .lp-page-v2 .spk-hero__sub { font-size: 16px; margin-bottom: 24px; }
  .lp-page-v2 .spk-hero__cta { flex-direction: column; }
  .lp-page-v2 .spk-hero__cta .bk-btn { width: 100%; max-width: 420px; padding: 16px 24px; }
  .lp-page-v2 .spk-hero__device { height: 500px; margin-top: -74px; }
  .lp-page-v2 .spk-device__video { width: min(82vw, 330px); }

  .lp-page-v2 .spk-stage__panels { padding: 14px; }
  .lp-page-v2 .spk-vis { padding: 16px 16px 14px; }
  .lp-page-v2 .spk-vis__head { flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
  .lp-page-v2 .spk-vis__num { font-size: 32px; }
  .lp-page-v2 .spk-bars { height: 120px; }
  .lp-page-v2 .spk-hours__row { grid-template-columns: 82px 1fr; gap: 10px; }
  .lp-page-v2 .spk-hours__name { font-size: 11.5px; }
  .lp-page-v2 .spk-hours__days { margin-left: 92px; }
  .lp-page-v2 .spk-ledger th, .lp-page-v2 .spk-ledger td { font-size: 13.5px; padding: 7px 0; }
  .lp-page-v2 .spk-module__item { flex-basis: 86%; }
  .lp-page-v2 .spk-module__h { font-size: 18px; }

  .lp-page-v2 .spk-alloc { padding: 20px; }
  .lp-page-v2 .spk-alloc__grid { --cols: 30; --rows: 50; }
  .lp-page-v2 .spk-price .bk-price__amount { font-size: 48px; }

  .lp-page-v2 .spk-rules__h2 { margin-bottom: 32px; }
  .lp-page-v2 .spk-rules__nums { grid-template-columns: 1fr; gap: 20px; }
  .lp-page-v2 .spk-kill li { font-size: 16.5px; }
  /* Items can wrap to two lines on phones: strike each line with text-decoration instead of one drawn bar. */
  .lp-page-v2 .spk-kill__t { display: inline; text-decoration: line-through; text-decoration-thickness: 1px; text-decoration-color: transparent; transition: text-decoration-color .5s ease; transition-delay: var(--d, 0s); }
  .lp-page-v2 .spk-kill__t::after { display: none; }
  .lp-page-v2 .is-in .spk-kill__t { text-decoration-color: var(--bk-cyan); }
  .lp-page-v2 .spk-rules__cta .bk-btn { width: 100%; }

  .lp-page-v2 .spk-calc { padding: 20px 18px; }
  .lp-page-v2 .spk-calc__numbers { grid-template-columns: 1fr; gap: 14px; }
  .lp-page-v2 .spk-calc__eq { display: none; }

  .lp-page-v2 .bk-faq { gap: 12px; margin-top: 28px; }
  .lp-page-v2 .bk-faq__item { padding: 4px 18px; }
  .lp-page-v2 .bk-faq__sum { display: flex; align-items: center; justify-content: space-between; gap: 14px; min-height: 52px; padding: 10px 0; cursor: pointer; -webkit-tap-highlight-color: transparent; }
  .lp-page-v2 .bk-faq__q { font-size: 17.5px; margin: 0; }
  .lp-page-v2 .bk-faq__chev { flex: 0 0 auto; width: 9px; height: 9px; border-right: 2px solid #6A7695; border-bottom: 2px solid #6A7695; transform: rotate(45deg) translateY(-2px); transition: transform .25s ease; }
  .lp-page-v2 details[open] .bk-faq__chev { transform: rotate(225deg) translateY(-2px); }
  .lp-page-v2 .bk-faq__a { padding: 0 0 16px; font-size: 14.5px; }
  .lp-page-v2 .spk-faq-cta { padding: 24px 20px; }
  .lp-page-v2 .spk-faq-cta .bk-btn { width: 100%; }
  .lp-page-v2 .spk-why__copy > p { font-size: 16.5px; margin-bottom: 18px; }
}

/* ---- 10b. Responsive additions (round 2) ---- */
@media (max-width: 900px) {
  /* Phones: the stage grows to its tallest card instead of a fixed 4:3 window (the dial and gap cards are taller than
     the round-1 set), and the device panel gets a fixed height so the phone reads at a useful size. */
  .lp-page-v2 .spk-module__stage, .lp-page-v2 .spk-row__stage { aspect-ratio: auto; min-height: 0; }
  .lp-page-v2 .spk-stage__panels { position: relative; inset: auto; grid-template-rows: auto; }
  .lp-page-v2 .spk-stage__panel--fill { height: 380px; }
  .lp-page-v2 .spk-float-stat { right: -12%; max-width: 140px; }
}
@media (max-width: 640px) {
  .lp-page-v2 .spk-module__p { font-size: 14.5px; }
  .lp-page-v2 .spk-dial { grid-template-columns: minmax(0, 150px) minmax(0, 1fr); gap: 14px; }
  .lp-page-v2 .spk-dial__fig { font-size: 32px; margin-bottom: 12px; }
  .lp-page-v2 .spk-pay__row { grid-template-columns: 78px minmax(0, 1fr); gap: 10px; }
  .lp-page-v2 .spk-pay__name { font-size: 11.5px; }
  .lp-page-v2 .spk-pay__gapword { display: none; }
  .lp-page-v2 .spk-why__close { margin-top: 40px; }
}

/* ---- 10c. Launch artwork on phones (September 11, 2026): a square stage that shows the whole plate, tile at 72% ---- */
@media (max-width: 900px) {
  .lp-page-v2 .spk-row__stage.spk-stage--artwork { aspect-ratio: 1 / 1; height: auto; }
  .lp-page-v2 .spk-stage--artwork .spk-stage__panels { position: absolute; inset: 0; grid-template-rows: 100%; padding: 0; }
  .lp-page-v2 .spk-stage--artwork .spk-stage__panel--fill { height: 100%; }
}

/* ---- 11. Reduced motion: everything lands in its final state ---- */
@media (prefers-reduced-motion: reduce) {
  .lp-page-v2.spk-page *, .lp-page-v2.spk-page *::before, .lp-page-v2.spk-page *::after { transition-duration: .01ms !important; transition-delay: 0s !important; animation-duration: .01ms !important; animation-delay: 0s !important; animation-iteration-count: 1 !important; }
}
