:root {
  --forest:#103f35; --forest-dark:#0b3029; --ivory:#f7f5ed; --paper:#fffef9;
  --ink:#182d28; --muted:#53665e; --gold:#7b5c2d; --gold-light:#dfc085;
  --line:#d6dcd3; --display:Georgia,'Times New Roman',serif;
  --body:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --space:clamp(24px,5vw,72px); --max:1240px;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:30px; }
body { margin:0; color:var(--ink); background:var(--ivory); font:1rem/1.65 var(--body); }
button,input { font:inherit; }
button,a { touch-action:manipulation; }
button { cursor:pointer; border:0; }
a { color:inherit; text-underline-offset:4px; text-decoration-thickness:1px; }
a:hover { text-decoration-thickness:2px; }
h1,h2,h3,p,figure { margin:0; }
h1,h2 { font-family:var(--display); font-weight:400; letter-spacing:-.035em; line-height:1.14; }
h1 { font-size:clamp(2.5rem,4.4vw,4.25rem); }
h2 { font-size:clamp(2rem,3.2vw,3rem); }
h3 { font-size:1.125rem; line-height:1.4; font-weight:600; }
p { margin-bottom:1rem; }
ul,ol { margin:0; padding:0; list-style:none; }
svg { display:block; flex-shrink:0; }
button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible { outline:3px solid #ae7028; outline-offset:5px; }
.research-section :focus-visible,.site-footer :focus-visible { outline-color:var(--gold-light); }
.wrap { width:min(calc(100% - var(--space)*2),var(--max)); margin-inline:auto; }
.eyebrow { font-size:.8125rem; font-weight:600; letter-spacing:.08em; line-height:1.5; color:var(--gold); margin-bottom:1rem; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip { position:fixed; top:12px; left:12px; padding:12px 20px; background:var(--forest); color:white; transform:translateY(-150%); z-index:10; }
.skip:focus { transform:translateY(0); }
.site-header { border-bottom:1px solid var(--line); }
.header-inner { width:min(calc(100% - var(--space)*2),var(--max)); margin:auto; display:flex; flex-wrap:wrap; gap:6px 24px; padding-top:22px; align-items:center; }
.wordmark { display:inline-flex; flex-direction:column; align-items:flex-start; text-decoration:none; }
.brand { font-family:var(--display); font-size:2.4rem; font-weight:700; letter-spacing:-.065em; line-height:1; }
.brand>span { font-weight:400; font-style:italic; font-size:1.4rem; letter-spacing:-.04em; }
.brand-descriptor { font-size:.8125rem; line-height:1.5; letter-spacing:.005em; margin-top:10px; max-width:440px; }
.header-descriptor { flex-basis:100%; margin:0 0 14px; max-width:none; }
.header-controls { display:flex; flex-wrap:wrap; gap:14px; align-items:center; margin-left:auto; max-width:100%; }
.search-button { color:var(--forest); background:transparent; display:grid; place-items:center; min-width:44px; min-height:44px; }
.language-switch { display:flex; gap:4px; border-left:1px solid var(--line); padding-left:14px; }
.language-switch button { font-size:.875rem; line-height:1.3; min-height:40px; background:transparent; padding:7px 9px; color:var(--muted); }
.language-switch button[aria-pressed=true] { color:var(--forest); font-weight:700; border-bottom:2px solid var(--forest); }
.desktop-nav { flex-basis:100%; display:flex; flex-wrap:wrap; justify-content:space-between; gap:18px; border-top:1px solid var(--line); padding-block:13px; }
.desktop-nav a { font-size:.9375rem; line-height:1.5; text-decoration:none; font-weight:500; }
.desktop-nav a:hover { text-decoration:underline; }
.menu-button { display:none; }
.hero { padding-block:48px; display:grid; grid-template-columns:1.05fr 1fr; gap:38px 60px; align-items:center; }
.hero-copy { min-width:0; }
.hero h1 { max-width:640px; }
.lead { font-size:1.125rem; line-height:1.7; color:var(--muted); max-width:570px; margin-top:22px; margin-bottom:25px; }
.hero-actions { display:flex; align-items:center; gap:18px 24px; flex-wrap:wrap; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:12px 20px; text-decoration:none; font-size:.9375rem; font-weight:550; line-height:1.45; border:1px solid transparent; }
.primary { background:var(--forest); color:white; }
.primary:hover { background:var(--forest-dark); }
.text-link { font-size:.9375rem; font-weight:550; }
.photo-frame { position:relative; border-top:3px solid var(--gold-light); }
.hero-image img { display:block; width:100%; height:auto; aspect-ratio:1.5; object-fit:cover; object-position:54% 56%; }
.photo-label { position:absolute; bottom:0; right:0; padding:7px 12px; background:var(--forest); color:var(--gold-light); font-size:.75rem; letter-spacing:.06em; }
.hero-image figcaption { margin-top:10px; font-size:.875rem; line-height:1.5; }
.section { padding-block:60px; }
#start { border-top:1px solid var(--line); }
.section-heading { max-width:780px; margin-bottom:28px; }
.section-heading h2 { margin-bottom:15px; }
.section-heading>p:not(.eyebrow) { max-width:700px; color:var(--muted); margin:0; }
.task-map { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px 36px; }
.task { min-width:0; padding-top:20px; border-top:1px solid var(--line); scroll-margin-top:30px; }
.task-heading { display:flex; gap:12px; align-items:center; margin-bottom:10px; }
.topic-icon { width:30px; height:30px; color:var(--forest); }
.task p { font-size:.9375rem; line-height:1.6; color:var(--muted); margin-bottom:14px; min-height:3em; }
.task-links { border-left:1px solid #a2b8a9; margin-left:14px; }
.task-links li { display:flex; align-items:baseline; gap:8px; padding:5px 0; }
.branch-arrow { color:var(--forest); flex:0 0 22px; transform:translateY(-1px); }
.branch-arrow svg { width:22px; height:10px; }
.task-links a { font-size:.875rem; line-height:1.5; color:var(--forest); }
figcaption,.figure-note,.figure-alternative,.source-notes { font-size:.875rem; line-height:1.65; color:var(--muted); }
figcaption { margin-top:18px; max-width:1020px; }
.figure-alternative { margin-top:18px; }
summary { cursor:pointer; }
.figure-alternative p,.flow-details>p { margin-top:12px; }
.source-notes { margin-top:14px; }
.source-notes .sources { margin:12px 0 0; }
.sources { font-size:.8125rem; line-height:1.75; color:var(--muted); }
.sources a { display:inline; }
.money-section { background:#eaf0e9; border-block:1px solid var(--line); }
.figure-note { max-width:850px; margin-bottom:22px; padding-left:14px; border-left:2px solid var(--gold); }
.flows { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); background:var(--paper); border:1px solid #c9d3c8; }
.flow { min-width:0; padding:24px; display:flex; flex-direction:column; }
.flow+.flow { border-left:1px solid #c9d3c8; }
.flow header { display:flex; align-items:center; gap:12px; margin-bottom:8px; }
.flow-icon { width:25px; height:25px; color:var(--forest); }
.flow .example { font-size:.8125rem; color:var(--gold); line-height:1.5; margin-bottom:14px; }
.flow-summary { font-size:.9375rem; line-height:1.6; min-height:3.2em; }
.transfer-diagram { container-type:inline-size; display:flex; flex-direction:column; gap:14px; padding-block:12px; border-block:1px solid var(--line); margin-bottom:16px; }
.transfer-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.95fr) minmax(0,1fr); gap:7px; align-items:center; }
.flow-node { padding:12px 5px; background:#eaf0e9; border:1px solid #c4d2c4; font-size:.875rem; font-weight:600; text-align:center; line-height:1.45; overflow-wrap:break-word; }
.flow-edge { min-width:0; overflow-wrap:anywhere; display:flex; flex-direction:column; align-items:center; gap:6px; text-align:center; color:var(--forest); font-size:.875rem; line-height:1.35; }
.flow-edge svg { width:100%; height:16px; }
.takeaway { font-size:.9375rem; line-height:1.6; color:var(--muted); }
.flow-details { font-size:.875rem; line-height:1.65; margin-top:auto; margin-bottom:14px; color:var(--muted); }
.mechanics li { border-top:1px solid var(--line); padding-top:9px; margin-top:9px; }
.inclusive { display:grid; grid-template-columns:1fr 1.15fr; gap:60px; padding-block:42px; border-bottom:1px solid var(--line); }
.inclusive .eyebrow { margin-bottom:12px; }
.inclusive h2 { font-size:clamp(1.75rem,2.5vw,2.4rem); }
.inclusive p:not(.eyebrow) { color:var(--muted); }
.curated { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.guide-feature { padding:24px; min-height:210px; border-top:3px solid var(--gold-light); position:relative; }
.tone-0 { background:var(--forest); color:var(--paper); }
.tone-1 { background:#e7ece3; }
.tone-2 { background:#efe7d7; }
.tone-0 .eyebrow { color:var(--gold-light); }
.guide-number { display:none; }
.guide-feature h3 { font-family:var(--display); font-size:1.65rem; line-height:1.3; font-weight:400; letter-spacing:-.02em; }
.guide-feature h3 a { text-decoration:none; }
.guide-feature h3 a:after { content:''; position:absolute; inset:0; }
.guide-feature:hover h3 { text-decoration:underline; }
.research-section { background:var(--forest); color:var(--paper); }
.research-heading { max-width:760px; margin-bottom:30px; }
.research-heading h2 { margin-bottom:18px; }
.research-heading p:not(.eyebrow) { color:#d1ded2; }
.research-section .eyebrow { color:var(--gold-light); }
.reading-path { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px; }
.reading-path li { min-width:0; position:relative; padding-right:8px; }
.journey-mark { width:48px; height:48px; display:grid; place-items:center; border:1px solid #a1b6a6; margin-bottom:18px; background:var(--forest); }
.journey-icon { width:25px; height:25px; color:var(--gold-light); }
.reading-path h3 { font-size:1.0625rem; margin-bottom:10px; }
.reading-path p { font-size:.9375rem; color:#d1ded2; line-height:1.65; margin:0; }
.journey-arrow { position:absolute; top:16px; left:64px; right:-12px; color:#a1b6a6; }
.journey-arrow svg { width:100%; height:16px; }
.reading-path li:last-child .journey-arrow { display:none; }
.research-section figcaption,.research-section .figure-alternative { color:#c1d2c3; }
.research-links { display:flex; flex-wrap:wrap; gap:12px 20px; align-items:center; margin-top:26px; }
.light { background:var(--ivory); color:var(--forest); }
.outline { border-color:#a1b6a6; color:var(--paper); }
.research-limit { color:#c1d2c3; font-size:.875rem; margin-top:22px; margin-bottom:0; max-width:1000px; }
.checklist { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:64px; }
.checklist h2 { max-width:470px; }
.checklist .section-heading>p:not(.eyebrow) { margin-bottom:18px; }
.checklist-items { border-top:1px solid var(--line); }
.checklist-items li { border-bottom:1px solid var(--line); }
.checklist-items summary { display:flex; align-items:center; gap:14px; padding:17px 0; list-style:none; font-size:1rem; font-weight:550; line-height:1.5; }
.checklist-items summary::-webkit-details-marker { display:none; }
.check-num { color:var(--gold); font-size:.8125rem; font-weight:400; }
.plus { margin-left:auto; color:var(--gold); font-size:1.25rem; font-weight:400; line-height:1; }
.checklist-items details[open] .plus { transform:rotate(45deg); }
.checklist-items details p { font-size:.9375rem; color:var(--muted); margin:0 0 20px 32px; }
.method { font-size:.875rem; color:var(--muted); margin-top:20px; }
.site-footer { background:var(--forest-dark); color:var(--ivory); padding-top:40px; }
.footer-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; padding-bottom:28px; }
.footer-grid>div>p { max-width:510px; font-size:.9375rem; color:#c1d2c3; margin-top:18px; }
.footer-grid .footer-scope { font-size:.8125rem; margin-top:0; }
.footer-grid nav { display:grid; grid-template-columns:1fr 1fr; gap:12px 24px; align-content:start; }
.footer-grid nav a { font-size:.875rem; line-height:1.6; color:#d1ded2; }
.footer-bottom { border-top:1px solid #3c5e50; display:flex; justify-content:flex-end; padding-block:20px; }
.footer-bottom a { font-size:.875rem; }
dialog { border:1px solid var(--line); background:var(--paper); color:var(--ink); width:min(680px,calc(100% - 32px)); max-height:85dvh; padding:30px; overscroll-behavior:contain; }
dialog::backdrop { background:#061d19ad; }
body:has(dialog[open]) { overflow:hidden; }
.dialog-heading { display:flex; justify-content:space-between; align-items:center; margin-bottom:20px; }
.dialog-heading h2 { font-size:2rem; }
.dialog-heading button { background:transparent; color:var(--forest); font-size:1.8rem; min-width:44px; min-height:44px; }
dialog label { display:block; font-size:.9375rem; font-weight:550; margin-bottom:7px; }
input[type=search] { width:100%; min-height:50px; padding:10px 14px; background:white; border:1px solid var(--muted); border-radius:0; font-size:1rem; }
#search-hint,#search-count { font-size:.875rem; color:var(--muted); margin-top:12px; }
#search-results li { border-top:1px solid var(--line); }
#search-results a { display:block; padding:13px 3px; font-size:1rem; line-height:1.6; text-decoration:none; }
#search-results a:hover { background:#eaf0e9; }
#mobile-nav { padding:8px var(--space) 20px; background:var(--ivory); border-top:1px solid var(--line); }
#mobile-nav a { display:block; padding:10px 0; font-size:1rem; }
#mobile-nav[hidden] { display:none; }
h1,h2,h3,a { overflow-wrap:break-word; }
@media(max-width:1060px) {
  .desktop-nav { display:none; }
  .header-inner { padding-bottom:4px; }
  .menu-button { display:flex; align-items:center; gap:8px; background:transparent; min-width:40px; min-height:44px; font-size:.9375rem; color:var(--forest); padding:8px 4px; }
  .task-map { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .hero { gap:32px; }
  .flows { gap:0; }
  .flow { padding:18px; }
  .transfer-row { gap:5px; }
  .flow-node { font-size:.875rem; padding:10px 3px; }
  .flow-edge { font-size:.875rem; }
  .inclusive { gap:35px; }
  .curated { gap:14px; }
  .guide-feature { padding:22px; }
  .guide-feature h3 { font-size:1.5rem; }
}
@media(min-width:761px) and (max-width:900px) {
  .hero { grid-template-columns:1.25fr 1fr; }
  .hero h1 { font-size:2.75rem; }
  .lead { font-size:1rem; }
  .hero-actions { gap:16px; }
  .hero-image img { aspect-ratio:1.05; }
  .flows { grid-template-columns:1fr; }
  .flow+.flow { border-left:0; border-top:1px solid #c9d3c8; }
  .flow { display:grid; grid-template-columns:1fr 1fr; gap:0 28px; padding:26px; }
  .transfer-diagram { grid-column:2; grid-row:1/6; margin:0; align-self:start; }
  .flow-summary { min-height:0; }
  .flow-details { margin-top:0; }
  .reading-path { grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px; }
  .reading-path li:nth-child(2) .journey-arrow { display:none; }
}
@media(max-width:760px) {
  :root { --space:24px; }
  .header-inner { padding-top:18px; gap:8px 12px; }
  .brand { font-size:2rem; }
  .brand>span { font-size:1.2rem; }
  .header-descriptor { font-size:.8125rem; margin-bottom:12px; }
  .header-controls { gap:6px; }
  .language-switch { gap:0; border-left:0; padding-left:0; }
  .language-switch button { padding:6px 7px; font-size:.875rem; }
  .search-button { min-width:36px; }
  .menu-button { font-size:0; min-width:30px; padding:4px; }
  .menu-button>span[aria-hidden=true] { font-size:1rem; }
  .hero { grid-template-columns:1fr; padding-block:32px; gap:24px; }
  .hero h1 { font-size:2.65rem; max-width:580px; }
  .hero .eyebrow { margin-bottom:14px; }
  .lead { font-size:1rem; line-height:1.65; margin-top:18px; margin-bottom:20px; max-width:600px; }
  .hero-actions { gap:15px 20px; }
  .button { font-size:.9375rem; padding:12px 16px; }
  .hero-image img { aspect-ratio:2.6; }
  .hero-image figcaption { font-size:.875rem; }
  .section { padding-block:42px; }
  .section-heading { margin-bottom:24px; }
  .section-heading h2 { font-size:2rem; }
  .task-map { gap:25px; }
  .task-heading { gap:10px; }
  .task p { min-height:0; }
  .task-links { margin-left:13px; }
  .flows { grid-template-columns:1fr; }
  .flow { padding:24px; }
  .flow+.flow { border-left:0; border-top:1px solid #c9d3c8; }
  .flow-summary { min-height:0; }
  .transfer-diagram { gap:12px; }
  .flow-node { padding:12px 5px; }
  .flow-details { margin-top:0; }
  .flow .text-link { align-self:flex-start; }
  .inclusive { grid-template-columns:1fr; gap:18px; padding-block:32px; }
  .inclusive h2 { font-size:1.9rem; }
  .inclusive .eyebrow { margin-bottom:10px; }
  .curated { grid-template-columns:1fr; gap:14px; }
  .guide-feature { min-height:0; padding:22px; }
  .guide-feature .eyebrow { margin-bottom:12px; }
  .guide-feature h3 { font-size:1.6rem; }
  .research-heading { margin-bottom:25px; }
  .reading-path { grid-template-columns:1fr; gap:0; }
  .reading-path li { display:grid; grid-template-columns:48px minmax(0,1fr); gap:18px; padding:0 0 30px; }
  .reading-path li:last-child { padding-bottom:0; }
  .journey-mark { margin:0; }
  .journey-arrow { top:48px; bottom:0; left:24px; right:auto; width:1px; background:#a1b6a6; }
  .journey-arrow svg { display:none; }
  .journey-arrow:after { content:""; position:absolute; bottom:3px; left:-3px; width:7px; height:7px; border-right:1px solid #a1b6a6; border-bottom:1px solid #a1b6a6; transform:rotate(45deg); }
  .reading-path h3 { margin-bottom:5px; }
  .reading-path p { font-size:.9375rem; }
  .research-links { align-items:flex-start; }
  .research-heading h2 { font-size:2rem; }
  .checklist { grid-template-columns:minmax(0,1fr); gap:22px; }
  .checklist .section-heading { margin-bottom:0; }
  .footer-grid { grid-template-columns:1fr; gap:26px; }
  .footer-grid nav { gap:14px 24px; }
  .footer-bottom { justify-content:flex-start; }
  dialog { padding:24px; }
}
@media(max-width:540px) {
  .task-map { grid-template-columns:1fr; gap:20px; }
  .task { padding-top:18px; }
  .task-links { display:block; }
  .task-links li { padding:4px 0; }
}
@media(max-width:360px) {
  :root { --space:18px; }
  .header-controls { gap:2px; }
  .language-switch button { padding-inline:5px; }
  .search-button { min-width:30px; }
  .brand { font-size:1.9rem; }
  .hero h1 { font-size:2.5rem; }
  .hero-actions { gap:15px; }
  .flow { padding:18px; }
  .footer-grid nav { grid-template-columns:1fr; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*:before,*:after { animation:none!important; transition:none!important; }
}

/* A transfer switches to a vertical path when the text needs more space. */
@container (max-width:15em) {
  .transfer-row { grid-template-columns:minmax(0,1fr); gap:8px; }
  .flow-edge { flex-direction:row; justify-content:center; min-height:32px; gap:12px; }
  .flow-edge svg { width:28px; height:16px; transform:rotate(90deg); }
}

.checklist>div { min-width:0; }
.checklist-items summary [data-i18n] { min-width:0; overflow-wrap:break-word; }
.check-num,.plus { flex-shrink:0; }
