:root{
  --ink:       #14171E;
  --ink-soft:  #5B6370;
  --paper:     #FAFAF8;
  --card:      #FFFFFF;
  --line:      #E4E1D8;
  --teal:      #24746A;
  --teal-tint: #E7F0EE;
  --plum:      #5C3F82;
  --plum-tint: #EEEAF3;
  --display:   'Space Grotesk', 'Inter', sans-serif;
  --sans:      'Inter', -apple-system, sans-serif;
  --mono:      'IBM Plex Mono', 'SFMono-Regular', monospace;
}

*{ box-sizing:border-box; margin:0; padding:0; }

body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

.wrap{
  max-width:920px;
  margin:0 auto;
  padding:4.5rem 1.5rem 5rem;
}

h1{
  font-family:var(--display);
  font-weight:700;
  font-size:clamp(2rem, 5vw, 2.9rem);
  line-height:1.08;
  letter-spacing:-0.015em;
  max-width:20ch;
}

.subtitle{
  font-size:1.06rem;
  color:var(--ink-soft);
  margin-top:1.1rem;
  max-width:56ch;
}

h2{
  font-family:var(--display);
  font-weight:700;
  font-size:1.4rem;
  letter-spacing:-0.01em;
}

h3{
  font-family:var(--display);
  font-weight:600;
  font-size:1.05rem;
}

.section-note{
  font-size:0.9rem;
  color:var(--ink-soft);
  margin-top:0.35rem;
}

section{ margin-top:3.5rem; }

p{ margin-top:1rem; font-size:0.98rem; }
p:first-of-type{ margin-top:0; }
