/* v14/speed.css (2026-09-25): load and display speed, no visual change.

   1. Sections below the hero skip layout and paint for the first paint only.
      On a mid-range phone profile (slow 4G, 4x CPU) the browser spent about 4 s laying out the
      whole page before it painted anything; skipping the off-screen sections brought first paint
      from about 5.4 s to 3.1 s. v14/speed.js then lays each section out for real (.cv-done), one
      per idle moment, so the page ends up exactly as before. The placeholder heights (measured at
      412 px and 1350 px wide) only matter for those first moments; they are close at those widths
      and far off at others, which is why the skip does not stay on: smooth-scrolling jump links
      overshot by ~1,900 px at 1440 px wide when it did.
      #contact stays out: its Calendly iframe needs a real box so it can start loading
      early. content-visibility also contains paint, so anything that must
      cover the whole screen (.bw-stage, .lightbox) lives at body level, never inside a section.

   2. Each web font is followed by metric-matched stand-ins (v14/fonts.css), so text set before
      the font arrives takes the same space and the swap no longer moves the hero. */

#what, #builds, #ai, #tools, #sites, #design, #explore, #analytics, #van {
  content-visibility: auto;
}
:is(#what, #builds, #ai, #tools, #sites, #design, #explore, #analytics, #van).cv-done {
  content-visibility: visible;
}
@media (max-width: 719.98px) {
  #what { contain-intrinsic-block-size: auto 1829px; }
  #builds { contain-intrinsic-block-size: auto 973px; }
  #ai { contain-intrinsic-block-size: auto 1473px; }
  #tools { contain-intrinsic-block-size: auto 711px; }
  #sites { contain-intrinsic-block-size: auto 1240px; }
  #design { contain-intrinsic-block-size: auto 1287px; }
  #explore { contain-intrinsic-block-size: auto 2274px; }
  #analytics { contain-intrinsic-block-size: auto 1868px; }
  #van { contain-intrinsic-block-size: auto 2528px; }
}
@media (min-width: 720px) {
  #what { contain-intrinsic-block-size: auto 1276px; }
  #builds { contain-intrinsic-block-size: auto 1124px; }
  #ai { contain-intrinsic-block-size: auto 920px; }
  #tools { contain-intrinsic-block-size: auto 724px; }
  #sites { contain-intrinsic-block-size: auto 2394px; }
  #design { contain-intrinsic-block-size: auto 976px; }
  #explore { contain-intrinsic-block-size: auto 1732px; }
  #analytics { contain-intrinsic-block-size: auto 1522px; }
  #van { contain-intrinsic-block-size: auto 2155px; }
}

:root {
  --font-display: 'Fraunces', 'Fraunces fb pala', 'Fraunces fb noto', 'Fraunces fb georgia', 'Iowan Old Style', 'Palatino Linotype', Georgia, serif;
  --font-body: 'Hanken Grotesk', 'Hanken fb arial', 'Hanken fb roboto', sans-serif;
}
