/* Nine shared roles. Component styles control layout and color, not type sizes. */
:root{
  --type-display:300 clamp(46px,7.2vw,96px)/1.02 var(--display);
  --type-heading:300 clamp(34px,4.6vw,56px)/1.08 var(--display);
  --type-subheading:400 clamp(24px,2.4vw,28px)/1.18 var(--display);
  --type-lead:400 20px/1.5 var(--sans);
  --type-body:400 17px/1.6 var(--sans);
  --type-secondary:400 14px/1.55 var(--sans);
  --type-label:600 12px/1.5 var(--sans);
  --type-action:600 15px/1.4 var(--sans);
  --type-quote:italic 300 clamp(24px,2.2vw,32px)/1.35 var(--display);
}
/* 1 Display / 2 Section heading / 3 Subheading */
h1{font:var(--type-display);letter-spacing:-.025em;text-wrap:balance}
h2{font:var(--type-heading);letter-spacing:-.02em;text-wrap:balance}
h3,.plus b,.way .v,.logo{font:var(--type-subheading);letter-spacing:-.015em;text-wrap:balance}
/* 4 Introduction */
.lede{font:var(--type-lead);letter-spacing:normal}
/* 5 Body */
body,.prose,.pillar p,.stratum p,.plus p,.aud li,.quiz .q p,.quiz .res p,.bio b,.golf-description{font:var(--type-body);letter-spacing:normal}
/* 6 Supporting copy */
.credential-link,.facts .in,footer,.quiz .foot small,.golf-map-caption,.golf-counter>span:last-child{font:var(--type-secondary);letter-spacing:normal}
/* 7 Label */
.eyebrow,.logo small,.pull b,.bio span,.way span.l,.golf-stage-head>span,#golf-map-mode{font:var(--type-label);letter-spacing:.12em;text-transform:uppercase}
/* 8 Action */
.credential-name,.btn,.opt,.links,.aud .wa,.cp,.reset,.golf-controls button,.golf-contact,.golf-skip{font:var(--type-action);letter-spacing:normal;text-transform:none}
/* 9 Editorial quote */
.pull,.aud .q,.golf-thought{font:var(--type-quote);letter-spacing:-.01em}
/* Conventional inline emphasis, not additional component roles. */
strong,.facts b,.prose strong{font-weight:600}
h1 i,.quiz .res h3 i{font-style:italic}
/* Decorative numerals; not reading text. */
.stratum .k{font:var(--type-subheading);font-variant-numeric:tabular-nums}
.golf-counter>span:first-child{font:300 clamp(48px,6vw,76px)/1 var(--display);letter-spacing:-.04em}
