/* Trip-centred narrative; shared primitives remain the source of truth. */
body { text-rendering: optimizeLegibility; }
:focus-visible { outline: 2px solid var(--signal); outline-offset: 4px; }
.progress-bar { position: fixed; inset: 0 auto auto 0; height: 2px; width: 0; background: var(--signal); z-index: 100; }
.cover .inner { max-width: var(--content-wide); margin: 0 auto; padding: 120px var(--gutter) var(--s-96); }
.cover h1 { --cover-title-size: clamp(44px, 6vw, 80px); --cover-title-leading: 1.02; --cover-title-tracking: -.03em; max-width: none; text-wrap: balance; }
.cover .lede { max-width: 680px; margin-top: var(--s-32); }
.h-section { text-wrap: balance; }
.eyebrow { margin-bottom: var(--s-16); }
.h-section { margin-bottom: var(--s-24); }
.prose p { font-size: var(--body-size); line-height: 1.65; }
.prose p + p { margin-top: var(--s-20); }
.artifact-link { display: block; cursor: zoom-in; }
.artifact-link img { display: block; width: 100%; height: auto; border-radius: var(--r-md); box-shadow: var(--shadow-media); }
.figure-caption { margin-top: var(--s-24); }
.context { background: var(--bg); }
.split { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: var(--s-64); align-items: start; }
.context .prose { max-width: 46ch; }
.proposal { background: var(--sage); }
.section-heading { max-width: var(--content-std); }
.proposal .section-heading { margin-bottom: var(--s-48); }
.proposal figure { margin-top: var(--s-48); }
.proposal figure .artifact-link { background: var(--bg); padding: var(--s-24); border-radius: var(--r-lg); box-shadow: var(--shadow-media); }
.proposal figure img { box-shadow: none; }
.proposal .figure-caption { max-width: 86ch; margin-inline: auto; text-align: center; text-wrap: balance; }
.proposal .places { margin-top: var(--s-80); }
.places .h-sub { margin-bottom: var(--s-24); }
.places .prose { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-64); margin-bottom: var(--s-32); }
.places .prose p + p { margin-top: 0; }
.decisions { background: var(--bg); }
.decisions .section-heading { margin-bottom: var(--s-48); }
.decisions .split { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
.decision + .decision { margin-top: var(--s-48); }
.decision h3 { font-family: var(--f-display); font-weight: 700; font-size: 24px; line-height: 1.25; letter-spacing: -.01em; margin-bottom: var(--s-16); }
.result-story { background: var(--frost); }
.result-story .quote { margin-top: var(--s-48); }
.result-story .delivery { margin-top: var(--s-48); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-64); }
.result-story .delivery p + p { margin-top: 0; }
.takeaway { background: var(--depth-soft); }
.takeaway .inner { max-width: var(--content-std); margin: 0 auto; padding: var(--s-80) var(--gutter); text-align: center; }
.takeaway .eyebrow { color: var(--quiet); }
.takeaway p { font-family: var(--f-personal); font-size: 24px; line-height: 1.5; text-wrap: balance; }
@media (max-width: 1024px) {
  .cover .inner { padding-top: var(--s-96); }
  .split, .decisions .split { grid-template-columns: 1fr; gap: var(--s-48); }
  .context .prose { max-width: none; }
  .decision + .decision { margin-top: var(--s-32); }
}
@media (max-width: 640px) {
  :root { --section-pad-y: var(--s-64); }
  .cover .inner { padding-bottom: var(--s-64); }
  .cover h1 { --cover-title-size: clamp(36px, 9vw, 48px); max-width: none; }
  .places .prose, .result-story .delivery { grid-template-columns: 1fr; gap: var(--s-20); }
  .proposal figure .artifact-link { padding: var(--s-12); }
  .proposal .places { margin-top: var(--s-64); }
  .takeaway p { font-size: 22px; }
}
