@font-face { font-family: 'Guide Sans'; src: url('fonts/OpenSans-Regular.ttf') format('truetype'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'Guide Sans'; src: url('fonts/OpenSans-Semibold.ttf') format('truetype'); font-weight: 600 800; font-display: swap; }
@font-face { font-family: 'Guide Display'; src: url('fonts/NotoSerifDisplay-Regular.ttf') format('truetype'); font-weight: 400; font-display: swap; }
:root { color-scheme: light; --ink:#24322c; --muted:#5a6960; --coral:#d84c36; --green:#cfdfc8; --pale:#eef3ec; --rule:#ccd5cd; --dark:#1c3028; --paper:#fff; }
* { box-sizing: border-box; }
html { scroll-behavior: auto; scroll-padding-top: 68px; background: #fafbfc; }
body { margin: 0; color: var(--ink); font: 400 18px/1.65 'Guide Sans', Arial, sans-serif; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; text-underline-offset: 4px; }
a:hover { text-decoration: underline; }
a:focus-visible { outline: 2px solid var(--coral); outline-offset: 5px; }
button:focus-visible { outline: 2px solid var(--coral); outline-offset: 5px; }
p,h1,h2,h3,blockquote { margin: 0; }
.skip-link { position: absolute; left: 16px; top: 0; transform: translateY(-140%); background: #fff; padding: 10px 16px; z-index: 10; }
.skip-link:focus { transform: translateY(0); }
.site-header { max-width: 880px; margin: auto; padding: 26px 0; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.site-name { font: 400 27px Georgia, 'Times New Roman', serif; letter-spacing: -.05em; color: #222831; }
.site-name span { color: #3b0aff; }
.site-return { font-size: 13px; color: #687078; }
.guide { max-width: 880px; margin: 0 auto 64px; background: var(--paper); }
.eyebrow { font-size: 12px; line-height: 1.5; font-weight: 600; text-transform: uppercase; letter-spacing: .025em; color: var(--muted); }
.cover { background: var(--dark); color: #fff; padding: 46px 66px 42px; }
.cover > .eyebrow { color: var(--green); }
h1,h2 { font-family: 'Guide Display', Georgia, serif; font-weight: 400; letter-spacing: -.025em; }
h1 { font-size: 78px; line-height: 1.1; margin: 76px 0 26px; }
.cover-subtitle { color: var(--green); max-width: 590px; font-size: 24px; line-height: 1.5; }
.cover-diagram { position: relative; height: 202px; margin: 69px 0 0; display: grid; grid-template-columns: 1fr 1fr 1fr; }
.cover-line { position: absolute; height: 1px; background: #557561; left: 7%; right: 7%; top: 52px; }
.cover-line::before,.cover-line::after { content: ''; position: absolute; top: -4px; width: 8px; height: 8px; border-top: 1px solid var(--green); border-right: 1px solid var(--green); transform: rotate(45deg); }
.cover-line::before { left: 38%; }
.cover-line::after { left: 95%; }
.cover-node { display: flex; flex-direction: column; align-items: center; gap: 29px; position: relative; font-size: 18px; font-weight: 600; }
.node-dot { border-radius: 50%; background: var(--green); width: 48px; height: 48px; margin-top: 28px; position: relative; }
.node-start { align-items: flex-start; padding-left: 5%; }
.node-start > span:last-child { margin-left: 1px; }
.node-finish { align-items: flex-end; padding-right: 5%; }
.node-finish > span:last-child { margin-right: -2px; }
.node-steer .node-dot { background: var(--coral); width: 90px; height: 90px; margin-top: 7px; }
.node-steer { gap: 8px; }
.cover-branch { position: absolute; width: 1px; background: #557561; left: 50%; top: 107px; height: 87px; }
.cover-branch::after { content: ''; position: absolute; bottom: -7px; left: -7px; width: 15px; height: 15px; border-radius: 50%; background: var(--coral); }
.cover-thought { font: 400 30px/1.4 'Guide Display', Georgia, serif; margin-top: 28px; }
.cover-bottom { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-top: 54px; }
.cover-bottom .eyebrow { color: var(--green); }
.edition { margin-top: 9px; color: var(--green); font-size: 10px; text-transform: uppercase; letter-spacing: .025em; }
.cover-read { font-size: 13px; color: var(--green); white-space: nowrap; }
.cover-read span { margin-left: 10px; }
.guide-nav { position: sticky; z-index: 2; top: 0; display: flex; align-items: center; gap: 27px; background: #fff; padding: 18px 66px; border-bottom: 1px solid var(--rule); font-size: 12px; }
.guide-nav a { min-height: 24px; display: inline-flex; align-items: center; }
.guide-nav a:first-child { color: var(--muted); }
.guide-nav a:last-child { color: var(--coral); }
.section { padding: 56px 66px 32px; scroll-margin-top: 8px; }
h2 { font-size: 54px; line-height: 1.13; margin: 36px 0 27px; }
.lead { font-size: 22px; font-weight: 600; line-height: 1.5; margin-bottom: 27px; }
.prose p + p { margin-top: 23px; }
.opening-layout { display: grid; grid-template-columns: minmax(0, 1fr) 224px; gap: 35px; }
.opening-main { min-width: 0; }
.opening-note { border-left: 1px solid var(--rule); padding-left: 29px; margin-top: 3px; }
.opening-note > p { margin-top: 14px; font-size: 17px; line-height: 1.6; }
.note-navigation { margin-top: 40px; }
.guide-contents { list-style: none; padding: 0; margin: 14px 0 0; }
.guide-contents li { border-bottom: 1px solid var(--rule); }
.guide-contents a,.contents-entry { display: flex; justify-content: space-between; align-items: start; gap: 13px; padding: 16px 0; font-size: 15px; font-weight: 600; line-height: 1.55; }
.contents-number { color: var(--coral); font-weight: 400; flex: 0 0 auto; }
.section-footer { border-top: 1px solid var(--rule); margin-top: 58px; padding-top: 16px; display: flex; justify-content: space-between; gap: 20px; color: var(--muted); font-size: 10px; line-height: 1.5; text-transform: uppercase; font-weight: 600; }
.research { padding-top: 68px; }
.research h2 { font-size: 53px; }
.research .prose { font-size: 18px; }
.research-chain { list-style: none; padding: 0 0 0 43px; margin: 37px 0 32px; }
.chain-step { position: relative; padding-bottom: 28px; }
.chain-step:last-child { padding-bottom: 0; }
.chain-dot { position: absolute; left: -43px; top: 5px; width: 23px; height: 23px; background: var(--green); border-radius: 50%; }
.chain-step:not(:last-child)::before { content: ''; position: absolute; width: 1px; background: var(--rule); left: -32px; top: 34px; bottom: 0; }
.chain-statement { font-weight: 600; font-size: 22px; line-height: 1.5; margin: 15px 0 7px; }
blockquote.chain-statement { font-family: 'Guide Display', Georgia, serif; font-weight: 400; font-size: 26px; line-height: 1.4; }
.chain-explanation { color: var(--muted); font-size: 16px; line-height: 1.6; }
.chain-result .chain-dot { background: var(--coral); }
.chain-result .eyebrow { color: var(--coral); }
.prompt { border-left: 4px solid var(--coral); background: var(--pale); padding: 23px 27px; }
.prompt .eyebrow { color: var(--coral); margin-bottom: 12px; }
.prompt > p { font-size: 18px; line-height: 1.6; }
.source { margin-top: 37px; font-size: 12px; color: var(--muted); }
.research .section-footer { margin-top: 20px; }
@media (max-width: 920px) and (min-width: 641px) { .site-header { padding-left: 32px; padding-right: 32px; } }
@media (max-width: 640px) {
  html { scroll-padding-top: 68px; }
  body { font-size: 17px; line-height: 1.65; }
  .site-header { padding: 20px 24px; }
  .site-name { font-size: 25px; }
  .site-return { font-size: 12px; }
  .guide { margin-bottom: 0; }
  .cover { padding: 31px 26px 30px; }
  .eyebrow { font-size: 11px; letter-spacing: .015em; }
  h1 { font-size: clamp(42px, 11.65vw, 70px); margin: 53px 0 22px; line-height: 1.12; }
  .cover-subtitle { font-size: 19px; line-height: 1.55; }
  .cover-diagram { height: 170px; margin-top: 38px; }
  .cover-line { top: 36px; left: 9%; right: 9%; }
  .cover-node { gap: 22px; font-size: 14px; }
  .node-dot { width: 30px; height: 30px; margin-top: 21px; }
  .node-steer .node-dot { width: 64px; height: 64px; margin-top: 4px; }
  .node-steer { gap: 5px; }
  .node-start { padding-left: 4%; }
  .node-finish { padding-right: 4%; }
  .cover-branch { top: 79px; height: 74px; }
  .cover-branch::after { width: 11px; height: 11px; left: -5px; bottom: -5px; }
  .cover-thought { font-size: 23px; line-height: 1.45; margin-top: 12px; }
  .cover-bottom { margin-top: 41px; display: block; }
  .edition { font-size: 9px; margin-top: 8px; }
  .cover-read { display: inline-flex; min-height: 44px; align-items: center; margin-top: 20px; font-size: 13px; }
  .guide-nav { padding: 10px 24px; gap: 20px; font-size: 11px; }
  .guide-nav a { min-height: 38px; }
  .section { padding: 44px 24px 28px; }
  h2 { font-size: clamp(36px, 10.4vw, 51px); line-height: 1.14; margin: 27px 0 25px; }
  .lead { font-size: 19px; line-height: 1.55; margin-bottom: 26px; }
  .prose p + p { margin-top: 23px; }
  .opening-layout { display: flex; flex-direction: column; gap: 30px; }
  .opening-note { border-left: 0; border-top: 1px solid var(--rule); padding: 23px 0 0; margin-top: 0; }
  .opening-note > p { font-size: 16px; line-height: 1.6; margin-top: 12px; }
  .note-navigation { margin-top: 27px; }
  .guide-contents a,.contents-entry { min-height: 48px; font-size: 15px; }
  .section-footer { margin-top: 36px; font-size: 9px; }
  .research { padding-top: 48px; }
  .research h2 { font-size: clamp(35px, 10.1vw, 49px); }
  .research .prose { font-size: 17px; }
  .desktop-break { display: none; }
  .research-chain { padding-left: 33px; margin: 32px 0; }
  .chain-step { padding-bottom: 29px; }
  .chain-dot { left: -33px; top: 2px; width: 18px; height: 18px; }
  .chain-step:not(:last-child)::before { left: -24px; top: 27px; }
  .chain-statement { font-size: 19px; line-height: 1.5; margin-top: 12px; }
  blockquote.chain-statement { font-size: 23px; line-height: 1.5; }
  .chain-explanation { font-size: 15px; line-height: 1.6; margin-top: 10px; }
  .prompt { padding: 21px 20px; border-left-width: 3px; }
  .prompt > p { font-size: 17px; line-height: 1.65; }
  .prompt .eyebrow { margin-bottom: 13px; }
  .source { font-size: 11px; margin-top: 32px; }
}
@media (max-width: 350px) {
  .cover { padding-left: 22px; padding-right: 22px; }
  h1 { font-size: 39px; }
  .section { padding-left: 20px; padding-right: 20px; }
  .guide-nav { padding-left: 20px; padding-right: 20px; gap: 13px; font-size: 10px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
/* Complete-guide layouts, using the approved print palette and hierarchy. */
h4 { margin: 0; font-size: inherit; font-weight: 600; }
figure,dl,dd { margin: 0; }
figure { margin: 35px 0; }
figcaption,.caption { font-size: 15px; line-height: 1.6; color: var(--muted); margin-top: 22px; }
.section + .section { border-top: 12px solid #fafbfc; }
.section > .prompt { margin-top: 30px; }
.bottom { margin-top: 24px; font-size: 16px; line-height: 1.65; }
.editorial-note { margin: 30px 0; }
.editorial-note h3 { font-size: 21px; line-height: 1.45; margin-bottom: 12px; }
.editorial-note p { font-size: 17px; }
.chapter-menu { position: relative; margin-right: auto; }
.chapter-menu summary { cursor: pointer; padding: 3px 8px; }
.chapter-links { position: absolute; top: 42px; left: -74px; width: 748px; max-height: 65vh; overflow-y: auto; padding: 20px; background: #fff; border: 1px solid var(--rule); box-shadow: 0 8px 20px #24322c13; display: grid; grid-template-columns: 1fr 1fr; gap: 8px 25px; }
.chapter-links a { padding: 9px 5px; font-size: 14px; line-height: 1.5; border-bottom: 1px solid var(--rule); }
.contribution-cards,.connection-cards { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 28px; position: relative; margin-top: 26px; }
.diagram-card { position: relative; }
.diagram-dot { display: block; width: 25px; height: 25px; border-radius: 50%; background: var(--green); margin-bottom: 20px; }
.contribution-cards .diagram-card:nth-child(2) .diagram-dot { background: var(--coral); }
.contribution-cards::before { content: '⇄'; position: absolute; left: 8%; right: 69%; top: -8px; text-align: center; font-size: 31px; color: var(--ink); border-bottom: 1px solid var(--rule); }
.contribution-cards::after { content: '←'; position: absolute; left: 43%; right: 24%; top: -8px; text-align: center; font-size: 31px; color: var(--ink); border-bottom: 1px solid var(--rule); }
.diagram-card h3 { font-size: 21px; line-height: 1.5; margin-bottom: 13px; }
.diagram-card p { font-size: 16px; line-height: 1.6; }
.connection-cards { margin: 37px 0; }
.paired-rows,.diagnostics,.desk-lines { margin: 28px 0; }
.paired-row { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.6fr); gap: 28px; padding: 20px 0; border-bottom: 1px solid var(--rule); }
dt { font-size: 17px; font-weight: 600; line-height: 1.55; }
dd { font-size: 17px; line-height: 1.6; }
.task-path dt { padding-top: 5px; }
.task-path dd { font-size: 22px; font-weight: 600; }
.task-path .paired-row:first-child dd { font: 400 27px/1.4 'Guide Display',Georgia,serif; }
.task-path .paired-row:last-child dt { color: var(--coral); }
.facts { display: grid; grid-template-columns: 1fr 1fr; gap: 25px 35px; margin: 35px 0; }
.facts .paired-row { display: block; padding: 0; border: 0; }
.facts dt { color: var(--coral); margin-bottom: 10px; }
.facts dd { font-weight: 600; }
.editorial-columns { display: grid; grid-template-columns: 1fr 1.1fr; gap: 48px; }
.editorial-columns .prose { font-size: 17px; }
.exchange { list-style: none; margin: 25px 0 0; padding: 0; }
.exchange li { padding-bottom: 22px; margin-bottom: 24px; border-bottom: 1px solid var(--rule); }
.exchange li:last-child { margin-bottom: 0; }
.exchange .you h4 { color: var(--coral); }
.exchange blockquote { margin: 13px 0 12px; font-size: 18px; }
.explanation { color: var(--muted); font-size: 15px; }
.quality-comparison { display: grid; grid-template-columns: 1fr 2fr; gap: 34px; margin: 35px 0; }
.quality-comparison > div + div { border-left: 1px solid var(--rule); padding-left: 32px; }
.quality-comparison > div + div h3 { color: var(--coral); }
.comparison-copy { margin-top: 17px; font-weight: 600; font-size: 19px; line-height: 1.5; }
.quality-comparison > div:first-child .comparison-copy { font: 400 28px/1.4 'Guide Display',Georgia,serif; }
.revision-grid { display: grid; grid-template-columns: minmax(0,1fr) 22px minmax(0,1.2fr); grid-template-areas: 'before-label . after-label' 'before-copy arrow after-copy'; gap: 20px; }
.before-label { grid-area: before-label; }
.after-label { grid-area: after-label; color: var(--coral); }
.before-copy { grid-area: before-copy; }
.after-copy { grid-area: after-copy; }
.revision-grid blockquote { font: 400 26px/1.5 'Guide Display',Georgia,serif; }
.revision-arrow { grid-area: arrow; align-self: center; color: var(--coral); }
.loop { background: var(--dark); color: #fff; }
.loop > .eyebrow,.loop .lead,.loop .bottom,.loop dt { color: var(--green); }
.loop .paired-row,.loop .section-footer { border-color: #52675a; }
.loop .section-footer { color: var(--green); }
.loop .prompt { background: #304a3b; border-color: #f09079; }
.loop .prompt .eyebrow { color: #f09079; }
.diagnostics .paired-row { grid-template-columns: minmax(0,2fr) minmax(0,1fr); gap: 27px; }
.diagnostics dt { font-weight: 400; }
.diagnostics dd { font-weight: 600; }
.decision-examples .paired-row { display: block; padding-top: 0; padding-bottom: 20px; margin-bottom: 24px; }
.decision-examples dt { color: var(--coral); margin-bottom: 12px; }
.decision-examples dd { font-weight: 600; font-size: 19px; }
.continuity > h3 { color: var(--coral); margin-top: 32px; }
.evidence-table { margin: 33px 0; width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 16px; line-height: 1.6; }
.evidence-table th,.evidence-table td { text-align: left; vertical-align: top; padding: 18px 16px 18px 0; border-bottom: 1px solid var(--rule); }
.evidence-table th:first-child { width: 43%; }
.evidence-table thead th { font-size: 12px; text-transform: uppercase; color: var(--muted); }
.evidence-table thead th:last-child { color: var(--coral); }
.evidence-table td { padding-left: 10px; padding-right: 0; }
.finish-checks { padding: 0; margin: 35px 0; list-style: none; }
.finish-checks li { display: grid; grid-template-columns: 27px minmax(0,1fr) minmax(0,1.7fr); gap: 18px; padding: 21px 0; border-bottom: 1px solid var(--rule); font-size: 17px; }
.finish-checks h3 { font-size: 17px; line-height: 1.55; }
.check-number { display: flex; align-items: center; justify-content: center; background: var(--green); width: 27px; height: 27px; border-radius: 50%; font-size: 13px; font-weight: 600; }
.ending { border-top: 2px solid var(--ink); margin-top: 35px; padding-top: 28px; }
.ending h3 { font: 400 35px/1.4 'Guide Display',Georgia,serif; margin-bottom: 13px; }
.ending p { font-size: 17px; }
.desk-lines dt { color: var(--muted); }
.source-group { margin: 33px 0; }
.source-group h3 { color: var(--coral); }
.source-group ul { list-style: none; padding: 0; margin: 20px 0; }
.source-group li { margin-bottom: 22px; }
.source-group h4 { font-size: 18px; margin-bottom: 5px; }
.source-group p { font-size: 16px; color: var(--muted); }
.source-note { font-size: 15px; margin-top: 23px; }
.reference-links { margin-top: 27px; display: flex; flex-wrap: wrap; gap: 10px 22px; font-size: 13px; color: var(--coral); }
.source { display: flex; flex-wrap: wrap; gap: 8px 23px; }
@media (max-width: 640px) {
  .guide-nav { gap: 20px; font-size: 12px; }
  .chapter-menu summary { padding: 10px 0; }
  .chapter-links { left: -58px; width: calc(100vw - 48px); top: 48px; grid-template-columns: 1fr; max-height: 68vh; }
  .chapter-links a { min-height: 44px; }
  .editorial-columns { grid-template-columns: 1fr; gap: 30px; }
  .editorial-columns .prose { font-size: 17px; }
  .paired-row,.diagnostics .paired-row { grid-template-columns: 1fr; gap: 9px; padding: 20px 0; }
  dt,dd { font-size: 17px; }
  figure { margin: 30px 0; }
  .contribution-cards,.connection-cards { grid-template-columns: 1fr; gap: 26px; }
  .diagram-card { display: grid; grid-template-columns: 20px 1fr; gap: 0 16px; }
  .diagram-dot { width: 18px; height: 18px; margin: 6px 0 0; grid-column: 1; grid-row: 1 / span 2; }
  .diagram-card h3 { grid-column: 2; font-size: 19px; margin-bottom: 9px; }
  .diagram-card p { grid-column: 2; font-size: 17px; }
  .contribution-cards::before,.contribution-cards::after { display: none; }
  .contribution-cards .diagram-card:not(:last-child)::after { content: ''; position: absolute; left: 8px; top: 35px; bottom: -17px; border-left: 1px solid var(--rule); }
  .task-path dd { font-size: 19px; }
  .task-path .paired-row:first-child dd { font-size: 24px; }
  .facts { gap: 25px 20px; }
  .facts dd { font-size: 16px; }
  .quality-comparison { grid-template-columns: 1fr; gap: 25px; }
  .quality-comparison > div + div { border-left: 0; border-top: 1px solid var(--rule); padding: 25px 0 0; }
  .quality-comparison > div:first-child .comparison-copy { font-size: 25px; }
  .revision-grid { grid-template-columns: 1fr; grid-template-areas: 'before-label' 'before-copy' 'arrow' 'after-label' 'after-copy'; gap: 14px; }
  .revision-grid blockquote { font-size: 24px; }
  .revision-arrow { transform: rotate(90deg); justify-self: start; margin: 3px 0 0 4px; }
  .editorial-note h3 { font-size: 20px; }
  .editorial-note p,.bottom { font-size: 17px; }
  .caption,figcaption { font-size: 15px; }
  .evidence-table { font-size: 16px; }
  .evidence-table th,.evidence-table td { padding-top: 18px; padding-bottom: 18px; }
  .evidence-table th:first-child { width: 42%; }
  .evidence-table th { padding-right: 12px; }
  .evidence-table td { padding-left: 8px; }
  .finish-checks li { grid-template-columns: 27px 1fr; gap: 10px 15px; }
  .finish-checks h3 { grid-column: 2; font-size: 17px; }
  .finish-checks p { grid-column: 2; font-size: 17px; }
  .check-number { grid-row: 1 / span 2; }
  .ending h3 { font-size: 30px; }
  .source-group h4 { font-size: 18px; }
  .source-group p { font-size: 16px; }
  .source-note { font-size: 15px; }
}
/* Preserve person <-> dot <- sources topology when the diagram stacks. */
.contribution-cards::before,.contribution-cards::after { content: none; }
.contribution-connector { position: absolute; left: 30px; right: -23px; top: 12px; border-top: 1px solid var(--muted); }
.contribution-connector::before,.contribution-connector::after { content: ''; position: absolute; width: 7px; height: 7px; border-top: 1px solid var(--muted); border-left: 1px solid var(--muted); top: -4px; }
.contribution-connector::before { left: 0; transform: rotate(-45deg); }
.contribution-connector::after { right: 0; transform: rotate(135deg); }
.contribution-cards .diagram-card:nth-child(2) .contribution-connector::after { content: none; }
@media (max-width: 640px) {
  .contribution-cards .diagram-card:not(:last-child)::after { content: none; }
  .contribution-connector { left: 8px; right: auto; top: 35px; bottom: -17px; width: 0; border-top: 0; border-left: 1px solid var(--muted); }
  .contribution-connector::before { left: -4px; top: 0; transform: rotate(45deg); }
  .contribution-connector::after { right: auto; left: -4px; top: auto; bottom: 0; transform: rotate(225deg); }
}
.sources .lead { font-size: 18px; font-weight: 400; }
@media (max-width:640px) { .sources .lead { font-size: 17px; } }

/* Contents follow the cover's Start / Steer / Finish model. */
.reader-promise { margin-top: 30px; }
.reader-promise > p { margin-top: 14px; }
.contents-group { margin-top: 24px; }
.contents-group > h4 { color: var(--coral); }
.contents-group .guide-contents { margin-top: 8px; }
.contents-group .guide-contents a { padding: 12px 0; }
