/* ============================================================================
   UltraWeb Labs — Home v2 stylesheet (2026-09-24). Shared rules first, then parts 01…13.
   ========================================================================== */
:root { --hv-hd: 72px; }
body.admin-bar { --hv-hd: 104px; }
body.hv-page .gradient { background: linear-gradient(135deg, #fff 0%, #8FB4FF 50%, var(--blue-light) 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; }
body.hv-page .breadcrumbs { display: none; }
html.hv-page-html { scroll-padding-top: calc(var(--hv-hd) + 16px); }
/* text-wrap: the theme already sets balance on h1–h4 and pretty on p/li site-wide; parts override per element. */
body.hv-page .eyebrow { display: inline-block; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.hv-prog { position: fixed; left: 0; top: var(--hv-hd); width: 100%; height: 2px; background: var(--blue-light); transform: scaleX(0); transform-origin: left; z-index: 999; pointer-events: none; }
body.hv-page a:focus-visible, body.hv-page button:focus-visible, body.hv-page summary:focus-visible { outline: 2px solid var(--blue-light); outline-offset: 3px; }
body.hv-page .mono { font-family: "JetBrains Mono", monospace; }
@media (prefers-reduced-motion: reduce) { .hv-prog { display: none; } }
/* ===== Part 01 Hero ===== */
section.hv-hero { position: relative; overflow: hidden; padding: calc(var(--hv-hd) + 36px) 0 40px; background: var(--bg); }
section.hv-hero::before { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse 60% 50% at 78% 45%, rgba(21,94,239,0.14), transparent 70%); pointer-events: none; }
.hv-hero__grid { display: grid; grid-template-columns: 56fr 44fr; gap: 40px; align-items: center; position: relative; z-index: 1; }
.hv-hero__chips { margin-bottom: 22px; }
.hv-hero__h1 { font-size: clamp(30px, 3.5vw, 48px); line-height: 1.06; letter-spacing: -0.03em; margin: 0 0 22px; text-wrap: balance; animation: hvRise 900ms var(--ease-out-expo) both; }
.hv-hero__sub { font-size: clamp(16px, 1.25vw, 18.5px); color: var(--ink-soft); line-height: 1.6; max-width: 600px; margin: 0 0 28px; text-wrap: pretty; animation: hvRise 900ms var(--ease-out-expo) 80ms both; }
.hv-hero__ctas { display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 14px; animation: hvRise 900ms var(--ease-out-expo) 160ms both; }
.hv-hero__micro { font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); margin: 0 0 22px; }
.hv-hero__trust { list-style: none; margin: 0; padding: 18px 0 0; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 8px 26px; font-family: "JetBrains Mono", monospace; font-size: 12px; letter-spacing: .06em; color: var(--ink-soft); }
.hv-hero__trust li { white-space: nowrap; }
.hv-hero__star { color: #F5B301; }
.hv-hero__art { position: relative; }
.hv-hub { position: relative; width: 100%; max-width: 460px; max-height: 460px; aspect-ratio: 1 / 1; margin: 0 auto; perspective: 1400px; }
.hv-hub__tilt { position: relative; width: 100%; height: 100%; transform-style: preserve-3d; transition: transform 700ms var(--ease-out-expo); will-change: transform; }
.hv-hub__svg { width: 100%; height: 100%; display: block; overflow: visible; }
@keyframes hvRise { from { transform: translateY(24px); } to { transform: translateY(0); } }
@keyframes hvSettle { from { transform: scale(.94); } to { transform: scale(1); } }
@keyframes hvConn { to { stroke-dashoffset: 0; stroke-opacity: .5; } }
@keyframes hvNode { from { opacity: .22; transform: scale(.85); } 70% { opacity: 1; transform: scale(1.06); } to { opacity: 1; transform: scale(1); } }
@keyframes hvHalo { 0% { transform: scale(.85); opacity: .5; } 100% { transform: scale(1.5); opacity: 0; } }
@keyframes hvRingPulse { 0% { transform: scale(.55); opacity: .65; } 100% { transform: scale(2.6); opacity: 0; } }
@keyframes hvHaloBreathe { 0%, 100% { opacity: .55; transform: scale(1); } 50% { opacity: .75; transform: scale(1.04); } }
@keyframes hvHaloOn { to { opacity: .55; } }
@keyframes hvPhonePop { from { transform: translate(513px,513px) scale(0); } to { transform: translate(513px,513px) scale(1); } }
@keyframes hvRing { 0%,100% { transform: translate(513px,513px) rotate(-12deg); } 50% { transform: translate(513px,513px) rotate(12deg); } }
@keyframes hvRingIdle { 0% { transform: translate(513px,513px) rotate(0); } 4% { transform: translate(513px,513px) rotate(-10deg); } 8% { transform: translate(513px,513px) rotate(10deg); } 12%,100% { transform: translate(513px,513px) rotate(0); } }
@keyframes hvCapIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
@keyframes hvCapOut { to { opacity: 0; transform: translateY(-6px); } }
.hv-hub__svg .bg-dot { fill: var(--blue-light); opacity: .15; }
.hv-hub__svg .halo { transform-origin: 400px 400px; transform-box: view-box; opacity: .35; animation: hvHaloOn 400ms ease-out 11.2s forwards, hvHaloBreathe 5s ease-in-out 11.6s infinite; }
.hv-hub__svg .ring { fill: none; stroke: var(--blue-light); stroke-width: 1.2; transform-origin: 400px 400px; transform-box: view-box; opacity: 0; animation: hvRingPulse 3.6s var(--ease-out-expo) 11.2s infinite; }
.hv-hub__svg .ring-2 { animation-delay: 12.4s; } .hv-hub__svg .ring-3 { animation-delay: 13.6s; }
.hv-hub__svg .conn { fill: none; stroke: var(--blue-light); stroke-opacity: .15; stroke-width: 1.3; stroke-dasharray: 1; stroke-dashoffset: 1; animation: hvConn 450ms ease-out var(--d, 0s) forwards; }
.hv-hub__svg .node { opacity: .22; transform-box: fill-box; transform-origin: center; animation: hvNode 450ms cubic-bezier(.2,.8,.2,1) var(--d, 0s) forwards; }
.hv-hub__svg .node-core { fill: #0B1220; stroke: var(--blue-light); stroke-width: 1.5; filter: drop-shadow(0 0 8px rgba(74,131,245,.4)); }
.hv-hub__svg .node-label { fill: var(--ink-soft); font-family: "Poppins", sans-serif; font-weight: 600; font-size: 13px; letter-spacing: .18em; }
.hv-hub__svg .node-halo { fill: none; stroke: var(--blue-light); stroke-width: 1.2; opacity: 0; transform-origin: center; transform-box: fill-box; animation: hvHalo 2.8s ease-out calc(var(--d, 0s) + 450ms) infinite; }
.hv-hub__svg .center-group { transform-origin: 400px 400px; transform-box: view-box; opacity: 1; animation: hvSettle 600ms var(--ease-out-expo) both; }
.hv-hub__svg .center-glow { filter: drop-shadow(0 0 40px rgba(21,94,239,.6)); }
.hv-hub__svg .center-ring { fill: none; stroke: var(--blue-light); stroke-width: 1.5; opacity: .4; }
.hv-hub__svg .particles { opacity: 1; }
.hv-hub__svg .particle { fill: var(--blue-light); }
.hv-hub__phone { transform-box: view-box; transform-origin: 0 0; transform: translate(513px,513px) scale(0); animation: hvPhonePop 400ms cubic-bezier(.2,.8,.2,1) 11.2s both, hvRing 700ms ease-in-out 11.6s 2, hvRingIdle 6s ease-in-out 13.4s infinite; }
.hv-hub__cap { position: relative; height: 60px; margin: 12px auto 0; max-width: 460px; text-align: center; }
.hv-hub__line { position: absolute; left: 0; right: 0; top: 0; font-family: "Poppins", sans-serif; font-weight: 600; font-size: clamp(17px, 1.3vw, 20px); color: #fff; opacity: 0; text-wrap: balance; }
/* Caption intro: one line per node, 1.4s each (was 0.45s; Skyler 2026-09-24 "too fast to read"). Node/conn --d values in parts/01-hero.php follow the same clock. */
.hv-hub__line[style*="--i:0"]{animation:hvCapIn 300ms var(--ease-out-expo) 0.0s both, hvCapOut 200ms ease-in 1.2s forwards}
.hv-hub__line[style*="--i:1"]{animation:hvCapIn 300ms var(--ease-out-expo) 1.4s both, hvCapOut 200ms ease-in 2.6s forwards}
.hv-hub__line[style*="--i:2"]{animation:hvCapIn 300ms var(--ease-out-expo) 2.8s both, hvCapOut 200ms ease-in 4.0s forwards}
.hv-hub__line[style*="--i:3"]{animation:hvCapIn 300ms var(--ease-out-expo) 4.2s both, hvCapOut 200ms ease-in 5.4s forwards}
.hv-hub__line[style*="--i:4"]{animation:hvCapIn 300ms var(--ease-out-expo) 5.6s both, hvCapOut 200ms ease-in 6.8s forwards}
.hv-hub__line[style*="--i:5"]{animation:hvCapIn 300ms var(--ease-out-expo) 7.0s both, hvCapOut 200ms ease-in 8.2s forwards}
.hv-hub__line[style*="--i:6"]{animation:hvCapIn 300ms var(--ease-out-expo) 8.4s both, hvCapOut 200ms ease-in 9.6s forwards}
.hv-hub__line[style*="--i:7"]{animation:hvCapIn 300ms var(--ease-out-expo) 9.8s both, hvCapOut 200ms ease-in 11.0s forwards}
.hv-hub__line[style*="--i:8"]{animation:hvCapIn 300ms var(--ease-out-expo) 11.2s both}
/* Live mode (js/01-hero.js): after the intro, or on the first hover/tap, JS adds .is-live and drives .hv-hub__live. */
.hv-hub__live { position: absolute; left: 0; right: 0; top: 0; display: flex; flex-direction: column; align-items: center; gap: 4px; opacity: 0; pointer-events: none; }
.hv-hub__live-t { font-family: "Poppins", sans-serif; font-weight: 600; font-size: clamp(17px, 1.3vw, 20px); color: #fff; line-height: 1.25; }
.hv-hub__live-d { font-size: 14px; line-height: 1.4; color: var(--ink-soft); min-height: 1.4em; }
.hv-hub__cap.is-live .hv-hub__line { animation: none; opacity: 0; }
.hv-hub__cap.is-live .hv-hub__live { opacity: 1; }
.hv-hub__live.is-swap { animation: hvCapIn 260ms var(--ease-out-expo) both; }
.hv-hub__svg .node, .hv-hub__svg .center-group { cursor: pointer; }
.hv-hub__svg .node-core { transform-box: fill-box; transform-origin: center; transition: transform 240ms var(--ease-out-expo), fill 240ms, stroke 240ms; }
.hv-hub__svg .node-label { transition: fill 240ms; }
.hv-hub__svg .node.is-on .node-core { transform: scale(1.3); fill: #12306B; stroke: #fff; stroke-width: 2; filter: drop-shadow(0 0 16px rgba(74,131,245,.95)); }
.hv-hub__svg .node.is-on .node-label { fill: #fff; font-weight: 700; }
.hv-hub__svg .conn { transition: stroke 240ms, stroke-width 240ms; }
.hv-hub__svg .conn.is-on { stroke: #fff; stroke-width: 2.4; }
/* Desktop: the hero fills the first screen exactly; content centred (Skyler 2026-09-24). */
@media (min-width: 900px) {
  section.hv-hero { min-height: 100vh; min-height: 100svh; display: flex; align-items: center; }
  section.hv-hero > .hv-hero__grid { width: 100%; }
}
.hv-hub__note { text-align: center; font-size: 13px; color: var(--muted); margin: 6px auto 0; max-width: 460px; }
@media (max-width: 899px) {
  .hv-hero__grid { grid-template-columns: 1fr; gap: 28px; }
  section.hv-hero { padding: calc(var(--hv-hd) + 24px) 0 32px; }
  .hv-hero__art { order: 2; }
  .hv-hub { max-width: 260px; max-height: 260px; }
  .hv-hub__line { font-size: 16px; }
}
@media (max-width: 540px) { .hv-hero__ctas .btn { width: 100%; justify-content: center; } }
/* Phones: the start band's proof tiles repeat this row, so drop it to bring the form closer (Skyler 2026-09-23). */
@media (max-width: 599px) { .hv-hero__trust { display: none; } }
@media (prefers-reduced-motion: reduce) {
  .hv-hero__h1, .hv-hero__sub, .hv-hero__ctas, .hv-hub__svg .center-group, .hv-hub__svg .halo, .hv-hub__svg .node, .hv-hub__svg .node-halo { animation: none; }
  .hv-hub__svg .conn { animation: none; stroke-dashoffset: 0; stroke-opacity: .5; }
  .hv-hub__svg .node { opacity: 1; }
  .hv-hub__svg .halo { opacity: .55; }
  .hv-hub__svg .ring, .hv-hub__svg .particles { display: none; }
  .hv-hub__phone { animation: none; transform: translate(513px,513px) scale(1); }
  .hv-hub__line { animation: none; opacity: 0; }
  .hv-hub__line[style*="--i:8"] { opacity: 1; }
  .hv-hub__live.is-swap { animation: none; }
}
/* ============================================================================
   Home v2 — Part 02 "Start here" (parts/02-start.php)   ·   scoped to .hv-start
   ----------------------------------------------------------------------------
   One CSS grid for the band. DOM order (= phone order): head (eyebrow + H2) →
   lede → form card → aside. At ≥900 named areas place the lede at the top of
   the right column beside the form, so the full-width head is only the eyebrow
   and a one-line H2 (~155px from the band's top edge to the form card). That is
   what keeps `#form-heading-hero-strategy-form` above 900px at 1440×900 with a
   ~700px hero (spec §2.2 acceptance). To restore a full-width lede instead,
   swap the grid areas for "head head" / "lede lede" / "form aside".
   No pins, no JS, no motion on the form or the H2; the aside reveals once via
   the theme's .reveal-stagger at ≥900 and is static on phones / reduced motion.
   Relies on the integrator's shared rules: body.hv-page .gradient, the theme
   tokens, .eyebrow, .mono, .container. No !important anywhere.
   ========================================================================== */

/* --- Section box -----------------------------------------------------------
   The integrator's reset `body.hv-page section[class^="hv-"] { padding: 0 }`
   is specificity (0,2,2); a bare `.hv-start` would lose to it. The first
   selector matches that specificity and wins by source order (parts are
   bundled after the shared rules). The second keeps the band correct when the
   CSS is viewed without the body class and overrides the theme's
   `section { padding: var(--section-pad) 0 }` (0,0,1). */
body.hv-page section.hv-start,
section.hv-start {
  padding: 48px 0 72px;
  background:
    radial-gradient(ellipse 760px 360px at 18% 0%, rgba(74, 131, 245, 0.09), transparent 70%),
    var(--bg-deep);
  border-top: 1px solid rgba(34, 48, 73, 0.65); /* --line (#223049) at 65% */
  color: var(--ink);
}

/* --- Grid (single column below 900) ---------------------------------------- */
.hv-start__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  row-gap: 28px;
}
.hv-start__grid > * { min-width: 0; }

/* --- Head: eyebrow + H2 ------------------------------------------------------ */
.hv-start__head .eyebrow { margin-bottom: 10px; }
.hv-start__title {
  font-size: clamp(30px, 3.4vw, 42px);   /* one line at ≥1024 in the 1240 container; wraps in balance below */
  line-height: 1.1;
  margin: 0;
  text-wrap: balance;
}

/* --- Lede ------------------------------------------------------------------ */
.hv-start__lede {
  font-size: clamp(16px, 1.2vw, 17.5px);
  line-height: 1.62;
  color: var(--ink-soft);
  max-width: 720px;
  margin: -4px 0 8px;
  text-wrap: pretty;
}

/* Single column (< 900): head → form → lede → aside, so the form sits right under the H2 (Skyler 2026-09-23).
   The ≥900 named grid areas below ignore order. */
@media (max-width: 899px) {
  .hv-start__lede  { order: 2; margin: 0; }
  .hv-start__aside { order: 3; }
}

/* --- Form column (the theme's .strategy-form-wrap card renders untouched) --- */
.hv-start__form { min-width: 0; }

/* --- Aside ----------------------------------------------------------------- */
.hv-start__aside {
  display: flex;
  flex-direction: column;
  gap: 26px;
}
.hv-start__aside p {
  color: var(--ink-soft);
  font-size: 15.5px;
  line-height: 1.62;
  margin: 0;
  text-wrap: pretty;
}
.hv-start__h3 {
  font-size: clamp(20px, 1.7vw, 24px);
  line-height: 1.25;
  margin: 0 0 12px;
  text-wrap: balance;
}

/* Price block */
.hv-start__price {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 20px 22px;
}
.hv-start__h4 {
  font-family: "Poppins", sans-serif;
  font-size: 15.5px;
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1.3;
  color: #fff;
  margin: 0 0 8px;
  text-wrap: balance;
}
.hv-start__price p { font-size: 15px; }
.hv-start__price strong { color: #fff; font-weight: 600; } /* the four floors read at a glance; copy unchanged */

/* Proof tiles (2×2) */
.hv-start__proof {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.hv-start__proof li {
  background: rgba(17, 24, 39, 0.7); /* --surface (#111827) at 70% over --bg-deep */
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 16px 18px 14px;
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.hv-start__num {
  font-family: "Poppins", sans-serif;
  font-weight: 700;
  font-size: clamp(26px, 2.1vw, 32px);
  line-height: 1;
  letter-spacing: -0.03em;
  color: #fff;
  font-variant-numeric: tabular-nums;
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
}
.hv-start__star { color: var(--blue-light); font-size: 0.6em; letter-spacing: 0; }
.hv-start__lbl {
  font-size: 13.5px;
  line-height: 1.4;
  color: var(--ink-soft);
  text-wrap: pretty;
}

/* Partner badges: same 2-column grid + gap as the proof tiles, each badge fills its column (Skyler 2026-09-24). */
.hv-start__partners {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.hv-start__partners a {
  display: flex; align-items: center; justify-content: center;
  aspect-ratio: 7 / 4;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  transition: transform 200ms var(--ease), box-shadow 200ms var(--ease);
}
.hv-start__partners a:hover { transform: translateY(-2px); box-shadow: 0 10px 28px rgba(0, 0, 0, 0.35); }
.hv-start__partners img { width: 100%; height: 100%; object-fit: cover; } /* beats the theme's img { height: auto } */
/* Both PNGs carry their own frame (grey edge rules on Google, a rounded outline on Meta): scale past it so the tile border is the only frame. */
.hv-start__partners a:nth-child(1) img { transform: scale(1.06); }
.hv-start__partners a:nth-child(2) img { transform: scale(1.12); }

/* Phone + address */
.hv-start__contact {
  border-top: 1px solid var(--line);
  padding-top: 18px;
}
.hv-start__phone { font-size: 15.5px; }
.hv-start__phone a {
  color: #fff;
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: rgba(74, 131, 245, 0.55);
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: color 180ms var(--ease);
}
.hv-start__phone a:hover { color: var(--blue-light); }
.hv-start__hours { display: block; margin-top: 4px; }
.hv-start__addr {
  margin: 12px 0 0;
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);   /* ≥12px mono caps label only */
  line-height: 1.5;
}

/* Focus */
.hv-start a:focus-visible {
  outline: 2px solid var(--blue-light);
  outline-offset: 3px;
}

/* --- Phones (< 900): fully static, form first, aside second ----------------
   `.hv-start .hv-start__aside > *` (0,2,0) beats the theme's
   `.reveal-stagger > *` (0,1,0) start state without !important. */
@media (max-width: 899px) {
  .hv-start .hv-start__aside > * { opacity: 1; transform: none; transition: none; }
  .hv-start__proof li { padding: 14px 14px 12px; }
}
@media (max-width: 359px) {
  .hv-start__proof { grid-template-columns: minmax(0, 1fr); }
}

/* --- Desktop (≥ 900): named-area grid ----------------------------------------
   "head head" → eyebrow + one-line H2 across both columns
   "form lede" → the form card starts here; the lede tops the right column
   "form aside" → the aside continues under the lede beside the tall form */
@media (min-width: 900px) {
  /* Fold budget (spec §2.2 acceptance: #form-heading-hero-strategy-form top
     < 900 at 1440×900). Measured on a local mock: the band adds 185px from its
     top edge to that heading (48 pad + eyebrow + one-line H2 + 24 row gap +
     33 card inset), so the heading sits at hero-end + 185 ≈ 886 with a 700px
     hero. This padding is already at the spec ladder's 48 endpoint; if it still
     measures ≥ 900 on the real page, the remaining levers are the hero's
     (art max-height 520 → 480, hero padding-top +48 → +32). */
  body.hv-page section.hv-start,
  section.hv-start { padding: 72px 0 88px; }

  /* Skyler 2026-09-24: the whole heading lives in the left column with the lede and proof;
     the form sits in the right column and scrolls along (sticky) until the band ends.
     The hero now fills the first screen, so the old fold budget for the form heading no longer applies. */
  .hv-start__grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-template-rows: auto auto 1fr;
    grid-template-areas:
      "head form"
      "lede form"
      "aside form";
    column-gap: 56px;
    row-gap: 24px;
    align-items: start;
  }
  .hv-start__head  { grid-area: head; }
  .hv-start__lede  { grid-area: lede; margin: 0; max-width: none; }
  .hv-start__form  { grid-area: form; position: sticky; top: calc(var(--hv-hd) + 24px); align-self: start; }
  .hv-start__aside { grid-area: aside; gap: 28px; }
}
@media (min-width: 1200px) {
  .hv-start__grid { column-gap: 72px; }
}

/* --- Reduced motion: nothing moves, everything visible ------------------- */
@media (prefers-reduced-motion: reduce) {
  .hv-start .hv-start__aside > * { opacity: 1; transform: none; transition: none; }
  .hv-start__phone a { transition: none; }
}

/* No-JS: the theme's .reveal-stagger start state (opacity 0) would hide the whole proof column; show it (found 2026-09-24). */
html:not(.hv-js) .hv-start .hv-start__aside > * { opacity: 1; transform: none; }
/* ≥900 the aside column is ~556px: balance the 4–5 line "what happens next" paragraph (pretty left a 2-word last line). */
@media (min-width: 900px) { .hv-start__next p { text-wrap: balance; } }
/* ===== Part 03 Reviews strip ===== */
.hv-reviews .reviews-strip { padding: 56px 0 72px; }
/* ===== Part 04 Corridor ===== */
section.hv-corridor { padding: 0; background: var(--bg-deep); position: relative; }
.hv-anchor { position: absolute; top: 0; }
.hv-corridor__stage { position: relative; }
.hv-corridor__head { max-width: 520px; }
.hv-corridor__all { margin-top: 18px; pointer-events: auto; }
.hv-corridor__head h2 { font-size: clamp(28px, 3.4vw, 44px); letter-spacing: -0.03em; line-height: 1.06; margin: 6px 0 12px; text-wrap: balance; }
.hv-corridor__lede { color: var(--ink-soft); font-size: 16px; margin: 0; text-wrap: balance; }
.hv-corridor__hint { display: none; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); margin: 10px 0 0; }
.hv-corridor__card { display: block; text-decoration: none; color: inherit; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; overflow: hidden; box-shadow: 0 30px 70px -20px rgba(0,0,0,.7); }
.hv-corridor__card .pf-chrome { display: flex; }
.hv-corridor__shot { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: #0F1626; }
.hv-corridor__img { width: 100%; height: 100%; object-fit: cover; object-position: top center; display: block; }
.hv-corridor__cap { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 12px 14px; font-size: 13.5px; }
.hv-corridor__cap strong { color: #fff; font-weight: 700; }
.hv-corridor__cap em { font-style: normal; color: var(--muted); font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hv-corridor__hud { display: none; }
.hv-corridor__outro { padding: 64px var(--gutter) 88px; }
.hv-corridor__outro p { max-width: 720px; font-size: 17px; line-height: 1.65; color: var(--ink-soft); text-wrap: balance; margin: 0 0 16px; }
.hv-corridor__links a { color: var(--blue-light); font-weight: 600; margin-right: 8px; }
@media (min-width: 900px) {
  html.hv-js .hv-corridor__stage { height: 100vh; height: 100svh; overflow: hidden; perspective: 1100px; perspective-origin: 66% 52%; }
  html.hv-js .hv-corridor__head { position: absolute; left: max(var(--gutter), calc((100vw - var(--container)) / 2 + var(--gutter))); top: calc(var(--hv-hd) + 140px); width: min(27vw, 380px); z-index: 6; pointer-events: none; }
  html.hv-js .hv-corridor__stage::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: calc(var(--hv-hd) + 60px); background: linear-gradient(180deg, var(--bg-deep) 0%, rgba(7,10,19,0) 100%); z-index: 4; pointer-events: none; }
  html.hv-js .hv-corridor__cam { position: absolute; inset: 0; transform-style: preserve-3d; will-change: transform; z-index: 2; }
  html.hv-js .hv-corridor__card { position: absolute; left: 66%; top: 52%; width: min(44vw, 620px); transform: translate3d(calc(-50% + var(--x)), calc(-50% + var(--y)), var(--z)) rotateY(var(--ry)); opacity: 0; will-change: opacity; backface-visibility: hidden; }
  html.hv-js .hv-corridor__hud { display: flex; align-items: center; gap: 18px; position: absolute; left: max(var(--gutter), calc((100vw - var(--container)) / 2 + var(--gutter))); bottom: 28px; z-index: 5; font-family: "JetBrains Mono", monospace; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
  html.hv-js .hv-corridor__hud b { color: #fff; font-weight: 600; }
  html.hv-js .hv-corridor__hud i { display: inline-block; width: 140px; height: 2px; background: rgba(255,255,255,.12); vertical-align: middle; margin-left: 10px; position: relative; }
  html.hv-js .hv-corridor__hud i::after { content: ""; position: absolute; left: 0; top: 0; height: 100%; width: var(--w, 0%); background: var(--blue-light); }
  html.hv-js .hv-corridor__skip { color: var(--blue-light); pointer-events: auto; }
}
@media (max-width: 899px), (prefers-reduced-motion: reduce) {
  .hv-corridor__stage { height: auto; perspective: none; overflow: visible; padding: 72px 0 0; }
  .hv-corridor__head { position: static; max-width: none; margin: 0 var(--gutter) 20px; }
  .hv-corridor__hint { display: block; }
  .hv-corridor__all { margin: 4px 0 0; }
  .hv-corridor__cam { position: static; transform: none !important; display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 0 var(--gutter) 12px; -webkit-overflow-scrolling: touch; }
  .hv-corridor__card { position: static; transform: none !important; opacity: 1 !important; visibility: visible !important; flex: 0 0 78vw; max-width: 460px; scroll-snap-align: center; }
  .hv-corridor__cap { flex-direction: column; align-items: flex-start; gap: 2px; }
  .hv-corridor__cap em { white-space: normal; }
  .hv-corridor__hud { display: none; }
  .hv-corridor__outro { padding-top: 40px; }
}
/* No-JS fallback: same static row when the runtime never booted */
html:not(.hv-js) .hv-corridor__stage { height: auto; perspective: none; overflow: visible; padding: 72px 0 0; }
html:not(.hv-js) .hv-corridor__head { position: static; max-width: none; margin: 0 var(--gutter) 20px; }
html:not(.hv-js) .hv-corridor__hint { display: block; }
html:not(.hv-js) .hv-corridor__all { margin: 4px 0 0; }
html:not(.hv-js) .hv-corridor__cam { position: static; transform: none !important; display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 0 var(--gutter) 12px; -webkit-overflow-scrolling: touch; }
html:not(.hv-js) .hv-corridor__card { position: static; transform: none !important; opacity: 1 !important; visibility: visible !important; flex: 0 0 78vw; max-width: 460px; scroll-snap-align: center; }
html:not(.hv-js) .hv-corridor__cap { flex-direction: column; align-items: flex-start; gap: 2px; }
html:not(.hv-js) .hv-corridor__cap em { white-space: normal; }
html:not(.hv-js) .hv-corridor__hud { display: none; }
html:not(.hv-js) .hv-corridor__outro { padding-top: 40px; }
/* ===== Part 05 Story ===== */
section.hv-story { padding: 0; background: var(--bg); }
.hv-story__pin { padding-top: var(--hv-hd); }
.hv-story__grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(32px, 6vw, 80px); align-items: center; }
.hv-story__lead h2 { font-size: clamp(28px, 3.2vw, 42px); letter-spacing: -0.03em; line-height: 1.08; margin: 8px 0 16px; text-wrap: balance; }
.hv-story__lede { color: var(--ink-soft); font-size: 16.5px; line-height: 1.6; text-wrap: pretty; margin: 0 0 18px; }
.hv-story__quote { margin: 0 0 22px; padding: 14px 18px; border-left: 3px solid var(--blue); background: var(--surface); border-radius: 0 12px 12px 0; font-size: 15.5px; color: #fff; font-style: italic; text-wrap: pretty; }
.hv-story__quote cite { display: block; margin-top: 6px; font-style: normal; font-size: 12px; color: var(--muted); }
.hv-story__year { position: relative; height: clamp(120px, 14vw, 200px); }
.hv-story__year span { position: absolute; left: 0; top: 0; font-family: "Poppins", sans-serif; font-weight: 800; font-size: clamp(120px, 14vw, 200px); line-height: 1; color: transparent; -webkit-text-stroke: 1px var(--blue-light); letter-spacing: -0.04em; }
.hv-story__steps { position: relative; padding-left: 28px; }
.hv-story__rail { position: absolute; left: 0; top: 0; bottom: 0; width: 2px; background: var(--line); }
.hv-story__rail::after { content: ""; position: absolute; left: 0; top: 0; width: 100%; height: 100%; background: var(--blue); transform-origin: top; transform: scaleY(var(--p, 1)); }
.hv-story__step { padding: 18px 0; border-bottom: 1px solid var(--line); }
.hv-story__step:last-child { border-bottom: 0; }
.hv-story__yr { display: inline-block; font-size: 11px; letter-spacing: .16em; color: var(--blue-light); margin-bottom: 6px; }
.hv-story__step h3 { font-size: clamp(18px, 1.5vw, 21px); color: #fff; margin: 0 0 8px; letter-spacing: -0.02em; text-wrap: balance; }
.hv-story__step p { color: var(--ink-soft); font-size: 15px; line-height: 1.6; margin: 0; text-wrap: pretty; }
.hv-story__after { padding: 72px var(--gutter) 96px; }
.hv-story__receipts { list-style: none; margin: 0 0 26px; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.hv-story__receipts li { background: var(--surface); border: 1px solid var(--line); border-radius: 14px; padding: 20px; }
.hv-story__num { display: block; font-family: "Poppins", sans-serif; font-size: 34px; font-weight: 800; letter-spacing: -0.03em; color: #fff; line-height: 1; }
.hv-story__lbl { display: block; margin-top: 8px; font-family: "JetBrains Mono", monospace; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); text-wrap: balance; }
.hv-story__links a { color: var(--blue-light); font-weight: 600; margin-right: 8px; }
@media (min-width: 900px) {
  .hv-story__pin { height: 100vh; display: flex; align-items: center; }
  .hv-story__grid { width: 100%; }
  .hv-story__yr { display: none; }
  html.hv-js .hv-story__year span:not(:first-child) { opacity: 0; transform: translateY(20px); }
  html.hv-js .hv-story__step { opacity: .28; transform: translateX(24px); }
  html.hv-js .hv-story__step[data-step="1"] { opacity: 1; transform: none; }
  html.hv-js .hv-story__rail::after { transform: scaleY(var(--p, .25)); }
}
@media (max-width: 899px), (prefers-reduced-motion: reduce) {
  .hv-story__pin { height: auto; padding: 72px 0 0; }
  .hv-story__grid { grid-template-columns: 1fr; gap: 32px; }
  .hv-story__year { display: none; }
  html.hv-js .hv-story__step { opacity: 1 !important; transform: none !important; }
  .hv-story__receipts { grid-template-columns: 1fr 1fr; }
  .hv-story__num { font-size: 30px; }
}
/* ===== Part 06 Machine ===== */
section.hv-machine { padding: 0; background: var(--bg-deep); }
.hv-machine__pin { padding-top: var(--hv-hd); }
.hv-machine__head h2 { font-size: clamp(28px, 3.2vw, 42px); letter-spacing: -0.03em; line-height: 1.08; margin: 8px 0 14px; max-width: 820px; text-wrap: balance; }
.hv-machine__lede { color: var(--ink-soft); font-size: 16px; line-height: 1.6; max-width: 720px; margin: 0 0 14px; text-wrap: pretty; }
.hv-machine__label { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); margin: 0; }
.hv-machine__track { position: relative; display: flex; gap: 32px; padding-left: max(var(--gutter), calc((100vw - var(--container)) / 2)); will-change: transform; }
.hv-machine__wire { position: absolute; top: 0; left: 0; height: 2px; width: 100%; background: var(--line); }
.hv-machine__wire::after { content: ""; position: absolute; left: 0; top: 0; height: 100%; width: var(--w, 0%); background: var(--blue-light); box-shadow: 0 0 12px rgba(74,131,245,.7); }
.hv-machine__card { flex: 0 0 min(78vw, 400px); padding-top: 26px; position: relative; }
.hv-machine__n { display: inline-block; font-size: 11px; letter-spacing: .14em; padding: 4px 10px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); margin-bottom: 14px; transition: all 200ms var(--ease); }
.hv-machine__card.is-lit .hv-machine__n { background: var(--blue); border-color: var(--blue); color: #fff; }
.hv-machine__card h3 { font-size: 21px; color: #fff; margin: 0 0 10px; letter-spacing: -0.02em; text-wrap: balance; }
.hv-machine__card p { color: var(--ink-soft); font-size: 15px; line-height: 1.6; margin: 0 0 12px; text-wrap: pretty; }
.hv-machine__link { color: var(--blue-light); font-weight: 600; }
.hv-machine__card--end { flex-basis: min(88vw, 520px); background: var(--surface); border: 1px solid var(--line); border-radius: 16px; padding: 26px 28px 28px; }
.hv-machine__phone { display: inline-flex; width: 52px; height: 52px; align-items: center; justify-content: center; border-radius: 50%; background: var(--blue); color: #fff; margin-bottom: 16px; }
.hv-machine__card--end.is-ringing .hv-machine__phone { animation: hvRingBtn 700ms ease-in-out 2; }
@keyframes hvRingBtn { 0%,100% { transform: rotate(-12deg); } 50% { transform: rotate(12deg); } }
.hv-machine__endline { font-family: "Poppins", sans-serif; font-weight: 700; font-size: clamp(24px, 2.2vw, 30px); margin: 0 0 12px; letter-spacing: -0.02em; }
.hv-machine__ctas { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 16px; }
.hv-machine__spacer { flex: 0 0 var(--gutter); }
.hv-machine__labs { background: var(--bg); padding: 72px 0 96px; border-top: 1px solid var(--line); }
.hv-machine__labs-h { font-size: clamp(22px, 2.2vw, 30px); margin: 8px 0 22px; letter-spacing: -0.02em; text-wrap: balance; }
.hv-machine__tiles { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; }
.hv-machine__tile { display: flex; flex-direction: column; gap: 8px; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; padding: 18px; color: inherit; text-decoration: none; transition: all 200ms var(--ease); }
.hv-machine__tile:hover { transform: translateY(-3px); border-color: var(--blue-light); }
.hv-machine__tag { font-size: 10px; letter-spacing: .14em; color: var(--blue-light); }
.hv-machine__tile h4 { font-size: 15.5px; color: #fff; margin: 0; letter-spacing: -0.01em; text-wrap: balance; }
.hv-machine__tile p { font-size: 13.5px; color: var(--ink-soft); line-height: 1.5; margin: 0; text-wrap: balance; }
.hv-machine__arrow { color: var(--blue-light); margin-top: auto; }
@media (min-width: 900px) {
  .hv-machine__pin { height: 100vh; display: flex; flex-direction: column; justify-content: center; gap: clamp(24px, 4vh, 48px); overflow: hidden; }
  .hv-machine__pin > .container { width: 100%; }
}
@media (max-width: 899px), (prefers-reduced-motion: reduce) {
  .hv-machine__pin { height: auto; display: block; padding: 72px 0 0; }
  .hv-machine__head { margin-bottom: 26px; }
  .hv-machine__track { display: grid; grid-template-columns: 1fr; gap: 28px; padding: 0 var(--gutter); transform: none !important; }
  .hv-machine__wire { display: none; }
  .hv-machine__card { flex: none; padding-top: 0; }
  .hv-machine__n { background: var(--blue); border-color: var(--blue); color: #fff; }
  .hv-machine__card--end { margin-bottom: 40px; }
  .hv-machine__spacer { display: none; }
  .hv-machine__tiles { grid-template-columns: 1fr; }
}
@media (min-width: 600px) and (max-width: 899px) { .hv-machine__track { grid-template-columns: 1fr 1fr; } .hv-machine__card--end { grid-column: 1 / -1; } .hv-machine__tiles { grid-template-columns: 1fr 1fr; } }
/* ===== Part 07 Results ===== */
section.hv-results { padding: 96px 0; background: var(--bg); }
.hv-results__grid { display: grid; grid-template-columns: .42fr .58fr; gap: 56px; align-items: start; }
.hv-results__rail h2 { font-size: clamp(28px, 3vw, 40px); letter-spacing: -0.03em; line-height: 1.08; margin: 8px 0 14px; text-wrap: balance; }
.hv-results__lede, .hv-results__note { color: var(--ink-soft); font-size: 15.5px; line-height: 1.6; text-wrap: pretty; margin: 0 0 14px; }
.hv-results__note { color: var(--muted); font-size: 14px; }
.hv-results__links a { color: var(--blue-light); font-weight: 600; margin-right: 8px; }
.hv-results__list { display: grid; gap: 28px; }
.hv-results__card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 22px 22px 20px; }
.hv-results__top { display: grid; grid-template-columns: auto 1fr; gap: 4px 14px; align-items: baseline; margin-bottom: 14px; }
.hv-results__num { font-size: 11px; letter-spacing: .14em; color: var(--blue-light); }
.hv-results__top h3 { font-size: 22px; color: #fff; margin: 0; letter-spacing: -0.02em; }
.hv-results__ind { grid-column: 2; font-size: 13px; color: var(--muted); margin: 0; }
.hv-results__shot { display: block; border-radius: 12px; overflow: hidden; border: 1px solid var(--line); background: #0F1626; text-decoration: none; margin-bottom: 14px; }
.hv-results__shot .pf-chrome { display: flex; }
.hv-results__shot .pf-shot-wrap { display: block; aspect-ratio: 16 / 10; overflow: hidden; }
.hv-results__shot .pf-shot { width: 100%; height: 100%; object-fit: cover; object-position: top center; display: block; }
.hv-results__proof { display: grid; grid-template-columns: 1.1fr 1fr; gap: 16px; align-items: center; padding: 14px 16px; border: 1px solid var(--line); border-radius: 12px; background: #0F1626; margin-bottom: 14px; }
.hv-results__chart .pf-spark { height: 100px; }
.hv-results__visit { color: var(--blue-light); font-family: "JetBrains Mono", monospace; font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase; font-weight: 600; }
@media (min-width: 900px) { .hv-results__rail { position: sticky; top: calc(var(--hv-hd) + 24px); } }
@media (max-width: 899px) { .hv-results__grid { grid-template-columns: 1fr; gap: 32px; } section.hv-results { padding: 72px 0; } }
@media (max-width: 520px) { .hv-results__proof { grid-template-columns: 1fr; } .hv-results__card { padding: 16px; } }
/* ===== Part 08 Investment ===== */
section.hv-investment { padding: 96px 0; background: var(--bg-deep); }
.hv-investment__head { max-width: 820px; margin-bottom: 36px; }
.hv-investment__head h2 { font-size: clamp(28px, 3vw, 40px); letter-spacing: -0.03em; line-height: 1.08; margin: 8px 0 14px; text-wrap: balance; }
.hv-investment__lede { color: var(--ink-soft); font-size: 16px; line-height: 1.6; margin: 0; text-wrap: pretty; }
.hv-investment__grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 48px; align-items: start; }
.hv-investment__tiles { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.hv-investment__tiles article { background: var(--surface); border: 1px solid var(--line); border-radius: 14px; padding: 22px; }
.hv-investment__fig { display: block; font-family: "Poppins", sans-serif; font-weight: 700; font-size: clamp(20px, 1.9vw, 26px); color: #fff; letter-spacing: -0.02em; line-height: 1.2; margin-bottom: 10px; text-wrap: balance; }
.hv-investment__tiles p { color: var(--ink-soft); font-size: 14.5px; line-height: 1.55; margin: 0; text-wrap: pretty; }
.hv-investment__cta { background: linear-gradient(135deg, rgba(21,94,239,.14), var(--surface-2)); border: 1px solid rgba(21,94,239,.35); border-radius: 16px; padding: 26px 28px; }
.hv-investment__cta h3 { font-size: 24px; color: #fff; margin: 0 0 10px; letter-spacing: -0.02em; text-wrap: balance; }
.hv-investment__cta p { color: var(--ink-soft); font-size: 15px; line-height: 1.6; margin: 0 0 16px; text-wrap: pretty; }
.hv-investment__btns { display: flex; flex-direction: column; gap: 10px; }
.hv-investment__re { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin: 14px 0 0; }
@media (min-width: 900px) { .hv-investment__cta { position: sticky; top: calc(var(--hv-hd) + 24px); } }
@media (max-width: 899px) { .hv-investment__grid { grid-template-columns: 1fr; gap: 24px; } section.hv-investment { padding: 72px 0; } }
@media (max-width: 560px) { .hv-investment__tiles { grid-template-columns: 1fr; } }
/* ===== Part 09 Process ===== */
section.hv-process { padding: 0; background: var(--bg); }
.hv-process__pin { padding-top: var(--hv-hd); }
.hv-process__head { text-align: center; }
.hv-process__head h2 { font-size: clamp(28px, 3.2vw, 42px); letter-spacing: -0.03em; line-height: 1.08; margin: 8px auto 14px; max-width: 760px; text-wrap: balance; }
.hv-process__lede { color: var(--ink-soft); font-size: 16px; line-height: 1.6; max-width: 640px; margin: 0 auto; text-wrap: pretty; }
.hv-process__nodes { list-style: none; margin: 0 auto; padding: 0; display: flex; justify-content: space-between; position: relative; max-width: 760px; }
.hv-process__nodes li { display: flex; flex-direction: column; align-items: center; gap: 8px; position: relative; z-index: 1; }
.hv-process__chip { width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--line); background: var(--bg); display: inline-flex; align-items: center; justify-content: center; font-size: 11px; letter-spacing: .08em; color: var(--muted); transition: all 220ms var(--ease); }
.hv-process__nodes li.is-done .hv-process__chip { background: var(--blue); border-color: var(--blue); color: #fff; }
.hv-process__nodes li.is-current .hv-process__chip { border-color: var(--blue-light); color: #fff; box-shadow: 0 0 0 5px rgba(21,94,239,.25); }
.hv-process__nl { font-family: "JetBrains Mono", monospace; font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
/* (0,2,0): `.hv-process__nodes li { position: relative }` (0,1,1) used to win and collapse the line to 0 width. */
.hv-process__nodes .hv-process__line { position: absolute; left: 19px; right: 19px; top: 19px; height: 2px; background: var(--line); z-index: 0; }
.hv-process__nodes .hv-process__line::after { content: ""; position: absolute; left: 0; top: 0; height: 100%; width: 100%; background: var(--blue); transform-origin: left; transform: scaleX(var(--p, 0)); }
.hv-process__stage { position: relative; display: grid; }
.hv-process__step { max-width: 680px; margin: 0 auto; text-align: center; }
.hv-process__sn { display: none; }
.hv-process__step h3 { font-size: clamp(22px, 2.2vw, 30px); color: #fff; margin: 0 0 12px; letter-spacing: -0.02em; text-wrap: balance; }
.hv-process__step p { color: var(--ink-soft); font-size: 16.5px; line-height: 1.6; margin: 0 0 14px; text-wrap: pretty; }
/* Desktop pinned steps are 2–4 lines in a 680px column: balance there (pretty left a 2-word last line). Chrome ignores balance past 6 lines, so phones keep pretty. */
@media (min-width: 900px) { .hv-process__step p { text-wrap: balance; } }
.hv-process__step .hv-process__out { display: block; width: fit-content; max-width: 100%; margin-inline: auto; text-wrap: balance; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--blue-light); padding: 6px 12px; border: 1px solid rgba(74,131,245,.35); border-radius: 999px; margin: 0 auto; } /* (0,2,0): `.hv-process__step p { margin: 0 0 14px }` (0,1,1) used to win and left the bubble off-centre (Skyler 2026-09-24) */
.hv-process__cta { text-align: center; padding: 40px var(--gutter) 80px; }
.hv-process__ready { font-family: "Poppins", sans-serif; font-weight: 600; font-size: 22px; color: #fff; margin: 0 0 16px; }
.hv-process__btns { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.hv-process__meta { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin: 14px 0 0; }
@media (min-width: 900px) {
  .hv-process__pin { height: 100vh; display: flex; flex-direction: column; justify-content: center; gap: 28px; overflow: hidden; }
  /* CTA lives inside the pin as one compact row under the steps (was a separate block ~250px below: Skyler "giant space"). */
  .hv-process__cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px 18px; padding: 4px var(--gutter) 0; }
  .hv-process__ready { font-size: 18px; margin: 0; }
  .hv-process__meta { flex-basis: 100%; margin: 4px 0 0; }
  .hv-process__pin > .container { width: 100%; }
  /* All five steps share one grid cell: the stage is exactly as tall as the tallest step, no dead space. */
  .hv-process__step { grid-area: 1 / 1; align-self: center; }
  html.hv-js .hv-process__step { opacity: 0; transform: translateY(16px); }
  html.hv-js .hv-process__step[data-step="1"] { opacity: 1; transform: none; }
}
@media (max-width: 899px), (prefers-reduced-motion: reduce) {
  .hv-process__pin { height: auto; display: block; padding: 72px 0 0; }
  .hv-process__step { grid-area: auto; }
  .hv-process__head { margin-bottom: 28px; }
  .hv-process__nodes { display: none; }
  .hv-process__stage { min-height: 0; display: grid; gap: 22px; }
  .hv-process__step { position: relative; text-align: left; max-width: none; padding: 20px 0 20px 52px; border-top: 1px solid var(--line); opacity: 1 !important; transform: none !important; }
  .hv-process__sn { display: inline-flex; position: absolute; left: 0; top: 22px; width: 36px; height: 36px; border-radius: 50%; background: var(--blue); color: #fff; align-items: center; justify-content: center; font-size: 11px; }
}
@media (max-width: 899px), (prefers-reduced-motion: reduce) { .hv-process__step .hv-process__out { margin-inline: 0; } }
/* ===== Part 10 Team ===== */
section.hv-team { padding: 96px 0 80px; background: var(--bg-deep); }
.hv-team__head { max-width: 820px; margin-bottom: 32px; }
.hv-team__head h2 { font-size: clamp(28px, 3vw, 40px); letter-spacing: -0.03em; line-height: 1.08; margin: 8px 0 14px; text-wrap: balance; }
.hv-team__lede { color: var(--ink-soft); font-size: 16px; line-height: 1.6; margin: 0; text-wrap: pretty; }
.hv-team__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 26px; }
.hv-team__card { background: var(--surface); border: 1px solid var(--line); border-radius: 16px; padding: 22px; display: grid; grid-template-columns: 88px 1fr; gap: 18px; align-items: start; }
.hv-team__card img { border-radius: 50%; width: 88px; height: 88px; object-fit: cover; }
.hv-team__card .role { font-family: "JetBrains Mono", monospace; font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--blue-light); margin-bottom: 6px; }
.hv-team__card h3 { font-size: 22px; color: #fff; margin: 0 0 4px; }
.hv-team__card .position { font-size: 13px; color: var(--muted); margin: 0 0 10px; }
.hv-team__card p { font-size: 14.5px; line-height: 1.6; color: var(--ink-soft); text-wrap: pretty; margin: 0 0 12px; }
.hv-team__card .socials a { color: var(--blue-light); font-weight: 600; margin-right: 14px; }
.hv-team__para { max-width: 820px; color: var(--ink-soft); font-size: 16px; line-height: 1.6; text-wrap: pretty; margin: 0 0 26px; }
.hv-team__biz h3 { font-size: 13px; font-family: "JetBrains Mono", monospace; letter-spacing: .14em; text-transform: uppercase; color: var(--blue-light); margin: 0 0 12px; font-weight: 500; }
.hv-team__biz ul { list-style: none; margin: 0 0 40px; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.hv-team__biz li { padding: 14px 0; border-top: 1px solid var(--line); display: flex; flex-direction: column; gap: 4px; }
.hv-team__biz strong { color: #fff; font-size: 15px; }
.hv-team__biz span { color: var(--muted); font-size: 13px; text-wrap: pretty; }
.hv-team__awards { margin: 0 0 40px; }
.hv-team__awlabel { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); margin: 0 auto 12px; }
.hv-team__more { margin: 26px 0 0; }
.hv-team__more a { color: var(--blue-light); font-weight: 600; }
@media (max-width: 899px) { .hv-team__grid { grid-template-columns: 1fr; } .hv-team__biz ul { grid-template-columns: 1fr; } section.hv-team { padding: 72px 0 64px; } }
@media (max-width: 480px) { .hv-team__card { grid-template-columns: 1fr; } }
/* ===== Part 11 Areas ===== */
section.hv-areas { padding: 96px 0; background: var(--bg); }
.hv-areas__grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 56px; align-items: start; }
.hv-areas__map { background: linear-gradient(135deg, #111827, #0B1220); border: 1px solid var(--line); border-radius: 16px; padding: 12px; }
.hv-areas__map svg { width: 100%; height: auto; display: block; }
.hv-areas__copy h2 { font-size: clamp(28px, 3vw, 40px); letter-spacing: -0.03em; line-height: 1.08; margin: 8px 0 14px; text-wrap: balance; }
.hv-areas__lede { color: var(--ink-soft); font-size: 16px; line-height: 1.6; margin: 0 0 12px; text-wrap: pretty; }
.hv-areas__hours { font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin: 0 0 24px; }
.hv-areas__hours a { color: var(--blue-light); }
.hv-areas__row { display: grid; grid-template-columns: 150px 1fr; gap: 10px; padding: 12px 0; border-top: 1px solid var(--line); }
.hv-areas__row > span { font-family: "JetBrains Mono", monospace; font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--blue-light); padding-top: 3px; }
.hv-areas__row ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 14px; }
.hv-areas__row li { font-size: 14px; color: var(--ink-soft); }
.hv-areas__row a { color: var(--ink-soft); text-decoration: none; border-bottom: 1px solid var(--line); }
.hv-areas__row a:hover { color: #fff; border-color: var(--blue-light); }
.hv-areas__here { color: var(--muted); }
@media (max-width: 899px) { .hv-areas__grid { grid-template-columns: 1fr; gap: 28px; } .hv-areas__map { max-height: 300px; overflow: hidden; } section.hv-areas { padding: 72px 0; } .hv-areas__row { grid-template-columns: 1fr; gap: 6px; } }
/* ===== Part 12 FAQ ===== */
section.hv-faq { padding: 96px 0; background: var(--bg-deep); }
.hv-faq__head { max-width: 820px; margin-bottom: 28px; }
.hv-faq__head h2 { font-size: clamp(28px, 3vw, 40px); letter-spacing: -0.03em; line-height: 1.08; margin: 8px 0 14px; text-wrap: balance; }
.hv-faq__lede { color: var(--ink-soft); font-size: 16px; line-height: 1.6; margin: 0; text-wrap: pretty; }
.hv-faq__list { max-width: 820px; }
.hv-faq__cta { margin-top: 26px; display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
@media (max-width: 899px) { section.hv-faq { padding: 72px 0; } }
/* ===== Part 13 Guides ===== */
section.hv-guides { padding: 96px 0 104px; background: var(--bg); }
.hv-guides__head { max-width: 820px; margin-bottom: 28px; }
.hv-guides__head h2 { font-size: clamp(28px, 3vw, 40px); letter-spacing: -0.03em; line-height: 1.08; margin: 8px 0 14px; text-wrap: balance; }
.hv-guides__lede { color: var(--ink-soft); font-size: 16px; line-height: 1.6; margin: 0; text-wrap: pretty; }
.hv-guides__grid { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 20px; margin-bottom: 26px; }
.hv-guides__card { display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--line); border-radius: 16px; overflow: hidden; color: inherit; text-decoration: none; }
.hv-guides__card .insight-thumb { aspect-ratio: 16 / 9; overflow: hidden; background: #0F1626; }
.hv-guides__card .insight-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hv-guides__card .insight-body { padding: 18px 20px 20px; display: flex; flex-direction: column; gap: 8px; }
.hv-guides__tag { font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--blue-light); }
.hv-guides__card h3 { font-size: 18px; color: #fff; margin: 0; letter-spacing: -0.01em; text-wrap: balance; }
.hv-guides__card p { color: var(--ink-soft); font-size: 14px; line-height: 1.55; margin: 0; text-wrap: pretty; }
.hv-guides__by { margin-top: auto; color: var(--muted); font-size: 12.5px; }
.hv-guides__row { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; color: var(--muted); }
@media (max-width: 899px) { .hv-guides__grid { grid-template-columns: 1fr; } section.hv-guides { padding: 72px 0 80px; } }
