/* v9 type (2026-09-20): Fraunces replaces Bricolage Grotesque as the display face.
   Gene picked it from the headline tryouts. Soft and wonk axes are turned up so the
   serif reads warm and a little irregular rather than bookish; optical size stays
   automatic (Fraunces maps its 9..144 opsz axis to font-size). Body copy (Hanken
   Grotesk) and labels (Spline Sans Mono) are unchanged. Bricolage's rules were tuned
   for a heavy, tightly tracked grotesk, so the weights and tracking below step every
   display use down to where a serif holds its counters. Fonts without SOFT/WONK
   ignore those axes, so the body-level variation setting is harmless elsewhere. */
:root { --font-display: 'Fraunces', 'Iowan Old Style', 'Palatino Linotype', Georgia, serif; }
body { font-variation-settings: "SOFT" 100, "WONK" 1; }

/* Headlines: 600 instead of 700-750, tracking eased from -0.03em to -0.02em. */
h1, h2, h3 { font-weight: 600; letter-spacing: -0.02em; line-height: 1.06; }
.hero-core h1, .hero h1 { font-weight: 600; letter-spacing: -0.022em; line-height: 1.04; }
body[data-hero="editorial"] .hero h1 { letter-spacing: -0.024em; }
.sec-title { font-weight: 600; letter-spacing: -0.02em; }
.product-story h3 { font-weight: 520; letter-spacing: -0.02em; line-height: 1.08; }
.product-story h4 { font-weight: 560; letter-spacing: -0.012em; }
.ai-browser .aimap-text h3 { font-weight: 560; }
.bld-theme-head h3, .inst-title { font-weight: 600; letter-spacing: -0.012em; }
.bld-name, .w-name, .clink .l-name { font-weight: 600; letter-spacing: -0.006em; }
.w-plus b, .spec b { font-weight: 640; letter-spacing: -0.006em; }
.stat b { font-weight: 600; letter-spacing: -0.02em; }
.quote-block blockquote, .van-intro .lead { font-weight: 520; letter-spacing: -0.008em; }
.marquee-xl span, .hero-watermark { font-weight: 640; letter-spacing: -0.015em; }

/* The hero's outlined "existed": a 2px stroke on a serif at 600 fills the thin joins,
   so ease it to 1.6px. */
.weight .w-ghost { -webkit-text-stroke-width: 1.6px; }
