@charset "UTF-8";

:root {
  color-scheme: light;
  --paper: #f2f0e7;
  --card: #fbfaf5;
  --ink: #183b49;
  --ink-soft: #39565d;
  --muted: #697b78;
  --line: #d1d9d1;
  --blue: #397b91;
  --teal: #32766f;
  --ochre: #a97939;
  --rust: #a85e4c;
  --serif: Georgia, "Times New Roman", serif;
  --sans: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--sans);
  line-height: 1.58;
  font-synthesis: none;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { min-width: 0; margin: 0; background: var(--paper); }
a { color: inherit; text-decoration: none; }
button { color: inherit; font: inherit; }
h1, h2, h3, h4, p, dl, ol, ul { margin: 0; }
button, a { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, summary:focus-visible {
  outline: 3px solid #b27d39;
  outline-offset: 3px;
}
button { cursor: pointer; }

.skip-link {
  position: fixed;
  z-index: 10;
  top: -5rem;
  left: 1rem;
  padding: .65rem .9rem;
  color: #fff;
  background: var(--ink);
  border-radius: 3px;
}
.skip-link:focus { top: 1rem; }

.library-bar {
  min-height: 32px;
  padding: 5px max(20px, calc((100vw - 1400px) / 2));
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  color: #5c706e;
  background: #e8e9df;
  font-size: 12px;
  font-weight: 650;
  letter-spacing: .13em;
}
.library-bar a { color: var(--ink); font-size: 14px; letter-spacing: .02em; }
.library-bar a span { margin-right: 5px; color: var(--ochre); font-size: 15px; }
.library-bar i { margin: 0 4px; color: #9ca69b; font-style: normal; }

.site-header {
  max-width: 1440px;
  margin: 0 auto;
  padding: 12px 28px 13px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 25px;
  border-bottom: 1px solid var(--line);
}
.brand { min-width: 0; display: inline-flex; align-items: center; gap: 11px; }
.brand-mark {
  width: 43px;
  height: 43px;
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #8ea69d;
  border-radius: 50%;
  color: var(--ink);
  background: #e9eee5;
  font-family: var(--serif);
  font-size: 16px;
  letter-spacing: -.1em;
}
.brand-mark b { font-weight: 400; }
.brand-mark i { margin-left: -2px; color: var(--teal); font-size: 13px; font-style: normal; }
.brand-copy { min-width: 0; display: grid; line-height: 1.2; }
.brand-copy strong { font-family: var(--serif); font-size: 18px; font-weight: 400; letter-spacing: -.02em; }
.brand-copy small { margin-top: 4px; color: var(--muted); font-size: 11px; letter-spacing: .13em; }
.primary-nav { min-width: 0; display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 3px 5px; }
.primary-nav a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 6px 9px;
  border-bottom: 2px solid transparent;
  color: #526864;
  font-size: 14px;
  white-space: nowrap;
}
.primary-nav a:hover, .primary-nav a[aria-current="page"] { border-bottom-color: var(--teal); color: var(--ink); }

#main { width: min(1400px, calc(100% - 56px)); min-width: 0; margin: 0 auto; }
.exploration-controls {
  flex-wrap: wrap;
  margin-top: 9px;
  padding: 8px 11px;
  display: flex;
  align-items: center;
  gap: 18px 26px;
  border: 1px solid #d5ddd4;
  border-radius: 3px;
  background: #e9eee7;
}
.control-group { min-width: 0; display: flex; align-items: center; flex-wrap: wrap; gap: 6px 11px; }
.control-group + .control-group { padding-left: 20px; border-left: 1px solid #cbd5ca; }
.control-label, .eyebrow {
  color: #647873;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .16em;
  line-height: 1.5;
}
.choice-row { min-width: 0; display: flex; flex-wrap: wrap; gap: 4px; }
.choice-chip {
  min-height: 44px;
  padding: 4px 8px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  border: 1px solid transparent;
  border-radius: 2px;
  color: #46615e;
  background: transparent;
  font-size: 14px;
}
.choice-chip:hover { border-color: #c5d1c7; background: #f4f5ed; }
.choice-chip[aria-pressed="true"] { border-color: #99b1a6; color: #1d504f; background: #f8f8f1; }
.chip-symbol { color: var(--teal); font-size: 14px; }

.page-intro { max-width: 960px; padding: 19px 0 13px; }
.intro-kicker { flex-wrap: wrap; margin-bottom: 7px; display: flex; align-items: center; gap: 11px; }
.version-chip, .fiction-chip {
  display: inline-flex;
  align-items: center;
  padding: 3px 7px;
  border: 1px solid #cbd7cf;
  color: #536c66;
  background: #e9ede4;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .11em;
}
.page-intro h1 {
  color: var(--ink);
  font-family: var(--serif);
  font-size: clamp(31px, 4vw, 47px);
  font-weight: 400;
  letter-spacing: -.045em;
  line-height: 1.02;
  text-wrap: balance;
}
.page-intro h1 em { color: #387b79; font-weight: 400; }
.intro-description { max-width: 78ch; margin-top: 8px; color: #536a68; font-size: 15px; line-height: 1.58; }

.scenario-setting {
  margin: 0 0 13px;
  padding: 8px 11px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 8px 15px;
  border-left: 3px solid #759792;
  background: #e8ece4;
}
.scenario-setting .eyebrow { padding-top: 2px; white-space: nowrap; }
.scenario-setting p { color: #4c6461; font-size: 14px; line-height: 1.5; }

.decision-layout { display: grid; grid-template-columns: minmax(0, 1.04fr) minmax(370px, .96fr); align-items: start; gap: 17px; }
.decision-left { min-width: 0; display: grid; gap: 10px; }
.map-panel, .stage-navigation, .stage-detail, .institution-navigation, .institution-detail, .case-navigation, .case-detail, .adoption-navigation, .adoption-detail {
  min-width: 0;
  border: 1px solid var(--line);
  background: var(--card);
}
.map-panel { padding: 11px 11px 9px; }
.map-panel-heading { flex-wrap: wrap; min-width: 0; margin-bottom: 8px; display: flex; align-items: end; justify-content: space-between; gap: 10px; }
.map-panel-heading h2 { margin-top: 2px; font-family: var(--serif); font-size: 19px; font-weight: 400; line-height: 1.15; }
.fiction-chip { max-width: 100%; flex: 0 1 auto; padding: 3px 6px; font-size: 10px; }
.map-canvas {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: auto; aspect-ratio: 1060 / 620;
  border: 1px solid #cbd6cc;
  background: #e8eddf;
}
.map-art-wrap, .basin-art { position: absolute; inset: 0; width: 100%; height: 100%; }
.basin-art { display: block; object-fit: cover; }
.map-markers { position: absolute; inset: 0; }
.map-stop {
  position: absolute;
  z-index: 2;
  width: 44px;
  height: 44px;
  padding: 0;
  display: grid;
  place-items: center;
  transform: translate(-50%, -50%);
  border: 2px solid #fbfaf5;
  border-radius: 50%;
  color: #fff;
  background: var(--teal);
  box-shadow: 0 0 0 1px #355c5c, 0 3px 8px #102e3438;
  font-size: 14px;
  font-variant-numeric: tabular-nums;
  font-weight: 750;
}
.map-stop.lane-evidence { background: var(--blue); box-shadow: 0 0 0 1px #285c70, 0 3px 8px #102e3438; }
.map-stop.lane-authority { background: var(--teal); box-shadow: 0 0 0 1px #28635d, 0 3px 8px #102e3438; }
.map-stop.lane-challenge { background: var(--ochre); box-shadow: 0 0 0 1px #805c2b, 0 3px 8px #102e3438; }
.map-stop:hover { transform: translate(-50%, -50%) scale(1.06); }
.map-stop.is-selected { outline: 3px solid #f4d392; outline-offset: 2px; }
.map-caption { padding: 7px 1px 0; display: flex; align-items: center; justify-content: space-between; gap: 8px; color: #657773; font-size: 11px; }
.map-caption > span { min-width: 0; }
.return-dash { width: 18px; margin: 0 5px 2px 0; display: inline-block; border-top: 2px dashed var(--rust); vertical-align: middle; }
.lane-legend { margin-top: 7px; padding-top: 7px; display: flex; align-items: center; flex-wrap: wrap; gap: 7px 15px; border-top: 1px solid #e2e5dc; }
.lane-key { display: inline-flex; align-items: center; gap: 5px; color: #526966; font-size: 12px; }
.lane-key i { width: 8px; height: 8px; display: inline-block; border-radius: 50%; background: var(--teal); }
.lane-key.lane-evidence i { background: var(--blue); }
.lane-key.lane-authority i { background: var(--teal); }
.lane-key.lane-challenge i { background: var(--ochre); }

.stage-navigation { padding: 10px 11px 7px; }
.stage-nav-heading { margin-bottom: 6px; display: flex; justify-content: space-between; color: #778681; font-size: 11px; letter-spacing: .14em; }
.stage-list { padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 15px; list-style: none; }
.stage-list li { min-width: 0; border-top: 1px solid #e5e7df; }
.stage-choice {
  width: 100%;
  min-height: 53px;
  padding: 6px 2px;
  display: grid;
  grid-template-columns: 25px minmax(0, 1fr) 12px;
  align-items: start;
  gap: 7px;
  border: 0;
  color: #465d5a;
  background: transparent;
  text-align: left;
}
.stage-choice:hover, .stage-choice.is-selected { color: var(--ink); background: #f0f2e9; }
.stage-index { width: 23px; height: 23px; display: grid; place-items: center; border: 1px solid #9faaa0; border-radius: 50%; color: #466460; font-size: 12px; font-variant-numeric: tabular-nums; }
.stage-choice.lane-evidence .stage-index { border-color: var(--blue); color: var(--blue); }
.stage-choice.lane-authority .stage-index { border-color: var(--teal); color: var(--teal); }
.stage-choice.lane-challenge .stage-index { border-color: var(--ochre); color: #805d2e; }
.stage-copy { min-width: 0; display: grid; gap: 1px; }
.stage-copy strong { font-family: var(--serif); font-size: 15px; font-weight: 400; line-height: 1.25; }
.stage-copy small { color: #6b7a76; font-size: 11px; line-height: 1.35; }
.stage-arrow { color: #869b93; font-size: 14px; }

.stage-detail { padding: clamp(15px, 2vw, 22px); }
.detail-topline { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
.lane-tag { padding: 3px 7px; border-left: 3px solid var(--teal); color: #466763; background: #edf1e9; font-size: 11px; font-weight: 700; letter-spacing: .08em; }
.lane-tag.lane-evidence { border-left-color: var(--blue); }
.lane-tag.lane-authority { border-left-color: var(--teal); }
.lane-tag.lane-challenge { border-left-color: var(--ochre); }
.stage-detail h2, .institution-detail h2, .case-detail h2, .adoption-detail h2 {
  margin-top: 7px;
  color: var(--ink);
  font-family: var(--serif);
  font-size: clamp(25px, 2.4vw, 33px);
  font-weight: 400;
  letter-spacing: -.035em;
  line-height: 1.08;
  text-wrap: balance;
}
.stage-short { margin-top: 5px; color: #657774; font-size: 14px; }
.stage-question { margin-top: 13px; padding: 10px 12px; border-left: 3px solid var(--teal); background: #eaf0e9; }
.stage-question p { margin-top: 3px; color: #244d50; font-family: var(--serif); font-size: 16px; line-height: 1.35; }
.stage-context { margin-top: 12px; color: #536865; font-size: 14px; line-height: 1.62; }
.decision-rights { margin-top: 13px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); }
.decision-rights > div { min-width: 0; padding: 9px 9px 9px 0; border-bottom: 1px solid #e0e4da; }
.decision-rights > div:nth-child(2n) { padding-left: 10px; border-left: 1px solid #e0e4da; }
.decision-rights dt { color: #315b5b; font-family: var(--serif); font-size: 14px; }
.decision-rights dd { margin: 4px 0 0; color: #596e6a; font-size: 12px; line-height: 1.55; overflow-wrap: anywhere; }
.safeguard-note { margin-top: 12px; padding: 10px 12px; border-left: 3px solid var(--ochre); background: #f4efdf; }
.safeguard-note p { margin-top: 3px; color: #5d563f; font-size: 14px; line-height: 1.55; }
.stage-tools { margin-top: 11px; border-top: 1px solid #dfe4dc; border-bottom: 1px solid #dfe4dc; }
.stage-tools summary { padding: 8px 1px; color: #426361; cursor: pointer; font-family: var(--serif); font-size: 14px; }
.tools-content { padding: 0 2px 11px; }
.tools-content h3 { margin: 8px 0 3px; color: #315757; font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.tools-content ul { padding-left: 17px; color: #5b6e69; font-size: 12px; }
.tools-content li + li { margin-top: 3px; }
.tools-content p { color: #5b6e69; font-size: 12px; line-height: 1.5; }
.perspective-note { margin-top: 12px; padding: 10px 12px; border: 1px solid #d9e1da; background: #f1f4ec; }
.perspective-note p { margin-top: 3px; color: #42615f; font-size: 14px; line-height: 1.55; }
.stage-stepper { margin-top: 14px; padding-top: 10px; display: flex; justify-content: space-between; gap: 10px; border-top: 1px solid #dfe4dc; }
.stage-stepper .text-link { max-width: 50%; font-size: 12px; }
.stepper-spacer { color: #76827b; font-size: 12px; }

.institutions-layout, .safeguards-layout, .adoption-layout { display: grid; grid-template-columns: minmax(245px, .36fr) minmax(0, .9fr); align-items: start; gap: 15px; }
.institution-navigation, .case-navigation, .adoption-navigation { padding: 7px 12px; }
.institution-navigation ol, .case-navigation ol, .adoption-navigation ol { padding: 0; list-style: none; }
.institution-navigation li + li, .adoption-navigation li + li { border-top: 1px solid #e3e6de; }
.institution-choice, .adoption-choice {
  width: 100%;
  min-height: 43px;
  padding: 8px 2px;
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr) 14px;
  align-items: center;
  gap: 8px;
  border: 0;
  color: #536964;
  background: transparent;
  text-align: left;
}
.institution-choice:hover, .adoption-choice:hover,
.institution-choice.is-selected, .adoption-choice.is-selected { color: var(--ink); background: #f0f2e9; }
.institution-choice > span { color: var(--ochre); font-size: 12px; font-variant-numeric: tabular-nums; }
.institution-choice strong, .adoption-choice strong { font-family: var(--serif); font-size: 15px; font-weight: 400; line-height: 1.25; }
.institution-choice i { color: #879790; font-size: 14px; font-style: normal; }
.institution-detail, .case-detail, .adoption-detail { padding: clamp(17px, 2.8vw, 31px); }
.institution-remit { margin-top: 9px; color: #536b66; font-size: 15px; line-height: 1.6; }
.institution-powers { margin-top: 18px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.institution-powers section { padding: 12px; border: 1px solid #dfe4db; background: #f5f5ee; }
.institution-powers h3 { margin-bottom: 8px; color: #31595a; font-family: var(--serif); font-size: 17px; font-weight: 400; }
.institution-powers ul { padding-left: 17px; color: #596e68; font-size: 14px; }
.institution-powers li + li { margin-top: 7px; }
.institution-powers section:nth-child(2) { border-top: 3px solid #b77c40; }
.appointment-grid { margin-top: 15px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.appointment-grid section { padding-top: 11px; border-top: 1px solid #d9e0d8; }
.appointment-grid p { margin-top: 5px; color: #586d68; font-size: 14px; line-height: 1.6; }
.institution-note { margin: 13px 0 25px; padding: 11px 14px; border-left: 3px solid var(--blue); background: #e8efed; }
.institution-note p { margin-top: 3px; color: #506966; font-size: 14px; }

.case-detail .detail-topline { align-items: start; }
.case-navigation { padding: 12px; }
.case-nav-heading { margin-bottom: 8px; display: flex; align-items: center; justify-content: space-between; color: #778681; font-size: 11px; letter-spacing: .14em; }
.case-navigation ol { max-width: 270px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.case-navigation li { min-width: 0; }
.case-step {
  position: relative;
  width: 100%;
  min-width: 44px;
  min-height: 44px;
  padding: 6px;
  display: grid;
  place-items: center;
  border: 1px solid #d4ddd6;
  color: #526a65;
  background: #f5f5ee;
  font-size: 12px;
  font-variant-numeric: tabular-nums;
}
.case-step:hover, .case-step.is-selected { border-color: #648b80; color: var(--ink); background: #edf2e9; }
.case-step.is-selected { box-shadow: inset 0 0 0 2px #648b80; font-weight: 750; }
.case-step.is-explored::after { content: "✓"; position: absolute; top: 1px; right: 4px; color: #315b56; font-size: 11px; font-weight: 800; }
.session-progress { margin-top: 12px; padding-top: 11px; display: grid; gap: 5px; border-top: 1px solid #e1e5dc; }
.session-progress > p { color: #455e59; font-size: 14px; }
.session-progress progress { width: 100%; height: 8px; accent-color: var(--teal); }
.reset-exploration { min-height: 44px; padding: 7px 10px; border: 1px solid #bac9c1; color: #365b57; background: transparent; text-align: left; font-size: 14px; }
.reset-exploration:hover { background: #edf2e9; }
.case-trigger { margin-top: 15px; padding: 11px 13px; display: grid; grid-template-columns: 48px minmax(0, 1fr); align-items: start; gap: 9px; border-left: 3px solid var(--blue); background: #eaf0ee; }
.case-trigger p { color: #4c6664; font-size: 14px; line-height: 1.6; }
.branch-step { display: grid; justify-items: center; gap: 3px; }
.branch-step > span:last-child, .branch-step-inline { width: 27px; height: 27px; display: grid; place-items: center; border: 1px solid #8daaa0; border-radius: 50%; color: #315d59; background: #f7f7f0; font-size: 12px; font-variant-numeric: tabular-nums; }
.branch-join { position: relative; height: 29px; }
.branch-join::before { position: absolute; top: 0; bottom: 50%; left: 50%; content: ""; border-left: 1px solid #8ca49b; }
.branch-join::after { position: absolute; right: 25%; bottom: 0; left: 25%; content: ""; border-top: 1px solid #8ca49b; }
.response-fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.response-fieldset legend { margin-bottom: 0; display: flex; align-items: center; gap: 8px; color: #315a59; font-family: var(--serif); font-size: 17px; }
.branch-step-inline { width: 24px; height: 24px; flex: 0 0 auto; font-family: var(--sans); }
.response-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.response-branch { position: relative; min-width: 0; padding-top: 12px; }
.response-branch::before { position: absolute; top: -15px; left: 50%; height: 27px; content: ""; border-left: 1px solid #8ca49b; }
.response-option {
  width: 100%;
  min-width: 0;
  min-height: 82px;
  padding: 10px;
  display: grid;
  grid-template-columns: 27px minmax(0, 1fr) 13px;
  align-items: center;
  gap: 8px;
  border: 1px solid #d4ddd6;
  color: #455e5c;
  background: #f5f5ee;
  text-align: left;
  line-height: 1.4;
}
.response-option:hover, .response-option.is-selected { border-color: #71958a; background: #edf2e9; }
.response-option.is-selected { border-width: 2px; box-shadow: inset 4px 0 0 #32766f; }
.response-option.is-compared { outline: 2px dashed #a97939; outline-offset: 2px; }
.response-letter { width: 24px; height: 24px; display: grid; place-items: center; border: 1px solid #94a99d; border-radius: 50%; color: #426b65; font-size: 12px; }
.response-option.is-selected .response-letter { color: #fff; background: var(--teal); }
.response-copy { min-width: 0; display: grid; gap: 4px; }
.response-path-label { color: #657973; font-size: 11px; font-weight: 750; letter-spacing: .11em; line-height: 1.35; }
.response-option strong { color: #294c4e; font-size: 14px; font-weight: 600; line-height: 1.4; overflow-wrap: anywhere; }
.response-option.is-selected .response-path-label { color: #245e55; }
.response-option.is-compared .response-path-label { color: #745325; }
.response-arrow { color: var(--ochre); font-size: 15px; }
.possibility-slot { margin-top: 8px; }
.possibility-node { min-width: 0; padding: 10px; border-top: 3px solid var(--blue); background: #edf1e9; }
.response-branch.is-selected .possibility-node { border-top-color: var(--teal); background: #e8f0e9; }
.response-branch.is-compared .possibility-node { border-top-color: var(--ochre); background: #f5f0e4; }
.possibility-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.path-mark { width: 23px; height: 23px; display: grid; place-items: center; border: 1px solid #94a99d; border-radius: 50%; color: #426b65; font-size: 12px; font-weight: 700; }
.possibility-node > p, .unresolved-node p { margin-top: 5px; color: #536963; font-size: 14px; line-height: 1.55; overflow-wrap: anywhere; }
.unresolved-node { margin-top: 9px; padding-top: 8px; border-top: 1px solid #d4ddd4; }
.unresolved-node .eyebrow { color: #805d2e; }
.possibility-hint { padding: 7px 4px; color: #76827b; font-size: 14px; line-height: 1.45; }
.branch-actions { margin-top: 10px; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.choice-prompt { color: #687a73; font-size: 14px; line-height: 1.45; }
.compare-toggle { flex: 0 0 auto; min-height: 44px; padding: 8px 11px; border: 1px solid #a7b9ad; color: #315d59; background: #f7f7f0; font-size: 14px; font-weight: 650; }
.compare-toggle:hover, .compare-toggle.is-active { border-color: #8d6b38; color: #634a26; background: #f5f0e4; }
.safeguard-invite { margin-top: 11px; padding: 10px 11px; display: flex; align-items: center; justify-content: space-between; gap: 9px; border: 1px solid #d7dfd7; background: #f4f5ed; }
.safeguard-invite p { margin-top: 3px; color: #536963; font-size: 14px; line-height: 1.45; }
.safeguard-cta { min-height: 44px; flex: 0 0 auto; padding: 7px 10px; display: inline-flex; align-items: center; border: 1px solid #a9b9ae; color: #315d59; background: #fbfaf5; font-size: 14px; font-weight: 650; }
.safeguard-cta:hover { background: #e9f0e9; }
.return-stage { margin-top: 16px; padding-top: 11px; border-top: 1px solid #dfe3dc; }
.return-stage > .eyebrow { display: block; margin-bottom: 6px; }
.return-stage-link { min-height: 52px; padding: 7px 9px; display: grid; grid-template-columns: 30px minmax(0, 1fr) 16px; align-items: center; gap: 8px; border: 1px solid #d4ddd6; background: #f5f5ee; }
.return-stage-link:hover { border-color: #84a095; background: #edf2e9; }
.return-stage-index { width: 27px; height: 27px; display: grid; place-items: center; border: 1px solid #8daaa0; border-radius: 50%; color: #315d59; font-size: 12px; }
.return-stage-link strong, .return-stage-link small { display: block; }
.return-stage-link strong { color: #294c4e; font-size: 14px; font-weight: 650; }
.return-stage-link small { margin-top: 2px; color: #6a7c75; font-size: 12px; }
.case-stepper { margin-top: 14px; padding-top: 10px; display: flex; align-items: center; justify-content: space-between; gap: 9px; border-top: 1px solid #dfe3dc; }
.case-stepper .text-link { min-height: 44px; max-width: 58%; padding: 7px 3px; display: inline-flex; align-items: center; color: #315d59; font-size: 14px; line-height: 1.35; }
.case-stepper .text-link:hover { text-decoration: underline; text-underline-offset: 3px; }
.case-stepper-edge { color: #77827b; font-size: 12px; }

.adoption-choice { grid-template-columns: 29px minmax(0, 1fr); min-height: 49px; }
.adoption-choice .stage-index { color: #4c706b; }
.adoption-detail > section { margin-top: 13px; padding: 12px 14px; border-left: 3px solid var(--blue); background: #edf1eb; }
.adoption-detail > section p { margin-top: 4px; color: #536964; font-size: 14px; line-height: 1.6; }
.adoption-detail > section.gate-box { border-left-color: var(--teal); background: #e9f0e9; }
.adoption-detail > section.stop-box { border-left-color: var(--rust); background: #f4ece4; }
.adoption-footnote { margin-top: 14px; color: #74817b; font-size: 12px; }

.section-heading { margin-bottom: 12px; }
.section-heading .eyebrow { display: block; margin-bottom: 4px; }
.section-heading h2 { color: var(--ink); font-family: var(--serif); font-size: clamp(22px, 2.5vw, 30px); font-weight: 400; letter-spacing: -.025em; line-height: 1.2; }
.section-heading h2 i { color: var(--ochre); font-family: var(--sans); font-size: .65em; font-style: normal; }
.section-heading p { margin-top: 4px; color: #657570; font-size: 14px; }
.version-downloads { margin: 4px 0 13px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.version-downloads a {
  position: relative;
  min-width: 0;
  min-height: 93px;
  padding: 10px 23px 9px 10px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  border: 1px solid #d1dbd3;
  background: #fbfaf5;
}
.version-downloads a:hover { border-color: #76988d; background: #f2f4ec; }
.download-version { color: #637874; font-size: 10px; font-weight: 700; letter-spacing: .11em; }
.version-downloads strong { margin-top: 6px; color: #244b51; font-family: var(--serif); font-size: 13px; font-weight: 400; line-height: 1.25; }
.version-downloads small { margin-top: auto; color: #74817a; font-size: 11px; }
.version-downloads i { position: absolute; top: 9px; right: 9px; color: var(--ochre); font-size: 13px; font-style: normal; }
.source-boundary { margin: 0 0 20px; padding: 12px 14px; border-left: 3px solid var(--teal); background: #e9eee6; }
.source-boundary p { margin-top: 5px; color: #516964; font-size: 14px; line-height: 1.58; }
.source-changes, .source-list, .full-spec { margin-top: 23px; }
.change-row { padding: 12px 0; display: grid; grid-template-columns: minmax(160px, .62fr) minmax(0, 1fr) minmax(0, 1fr); gap: 10px 14px; border-top: 1px solid #d6ddd4; }
.change-heading h3 { margin-top: 4px; color: #294e53; font-family: var(--serif); font-size: 15px; font-weight: 400; line-height: 1.25; }
.change-before, .change-after { min-width: 0; padding-left: 10px; border-left: 2px solid #b7a17e; }
.change-after { border-left-color: var(--teal); }
.change-before p, .change-after p, .change-reason { margin-top: 4px; color: #5a6d68; font-size: 12px; line-height: 1.55; overflow-wrap: anywhere; }
.change-reason { grid-column: 2 / -1; margin-top: -4px; color: #718078; }
.source-list > ul { padding: 0; list-style: none; border-top: 1px solid #d8dfd7; }
.source-list li { padding: 9px 1px; border-bottom: 1px solid #d8dfd7; }
.source-list li a { color: #315d61; font-family: var(--serif); font-size: 14px; text-decoration: underline; text-decoration-color: #afc0b5; text-underline-offset: 3px; overflow-wrap: anywhere; }
.source-list li a span { color: var(--ochre); font-family: var(--sans); font-size: 14px; }
.source-list li p { max-width: 96ch; margin-top: 2px; color: #687a73; font-size: 12px; line-height: 1.5; }
.spec-sections { border-top: 1px solid #d1d9d1; }
.spec-section { border-bottom: 1px solid #d1d9d1; }
.spec-section summary { padding: 10px 2px; display: flex; justify-content: space-between; gap: 14px; color: #315b5d; cursor: pointer; font-family: var(--serif); font-size: 17px; }
.spec-section summary i { color: var(--ochre); font-family: var(--sans); font-size: 13px; font-style: normal; }
.spec-copy { max-width: 100ch; padding: 0 4px 14px; }
.spec-copy p, .spec-copy li { color: #586e68; font-size: 14px; line-height: 1.65; }
.spec-copy p + p { margin-top: 8px; }
.spec-copy h4 { margin: 11px 0 3px; color: #365d5d; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; }
.spec-copy ul { padding-left: 18px; }
.spec-copy li + li { margin-top: 4px; }
.source-list, .full-spec { padding-bottom: 5px; }
.noscript { max-width: 1400px; margin: 18px auto; padding: 12px; color: #465d5a; background: #fbfaf5; font-size: 15px; }
.noscript a { text-decoration: underline; }

.site-footer {
  width: min(1400px, calc(100% - 56px));
  min-height: 54px;
  margin: 18px auto 0;
  padding: 9px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-top: 1px solid var(--line);
  color: #697973;
  font-size: 11px;
}
.footer-mark { color: #3d5e5c; font-weight: 700; letter-spacing: .12em; }
.site-footer a { color: #385f61; }
.site-footer a span { color: var(--ochre); }

@media (max-width: 1050px) {
  .site-header { gap: 13px; padding-right: 20px; padding-left: 20px; }
  .primary-nav a { padding-right: 6px; padding-left: 6px; font-size: 12px; }
  .decision-layout { grid-template-columns: minmax(0, 1fr) minmax(340px, .95fr); gap: 12px; }
  .map-canvas { height: auto; aspect-ratio: 1060 / 620; }
}
@media (max-width: 850px) {
  #main { width: calc(100% - 38px); }
  .site-header { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .primary-nav { justify-content: flex-start; }
  .primary-nav a { min-height: 44px; }
  .decision-layout { grid-template-columns: minmax(0, 1fr); }
  .map-canvas { height: auto; aspect-ratio: 1060 / 620; }
  .stage-detail { order: 2; }
  .institutions-layout, .safeguards-layout, .adoption-layout { grid-template-columns: minmax(0, 1fr); }
  .institution-navigation ol, .adoption-navigation ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 13px; }
  .case-navigation ol { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .institution-navigation li:nth-child(2), .adoption-navigation li:nth-child(2) { border-top: 0; }
  .version-downloads { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  .library-bar { padding-right: 14px; padding-left: 14px; }
  .library-bar > span { display: none; }
  .site-header { padding: 10px 14px; }
  .brand-mark { width: 38px; height: 38px; }
  .brand-copy strong { font-size: 16px; }
  .primary-nav { gap: 1px 2px; }
  .primary-nav a { padding: 5px 6px; font-size: 12px; }
  #main { width: calc(100% - 28px); }
  .exploration-controls { align-items: flex-start; flex-direction: column; gap: 7px; padding: 8px; }
  .control-group { width: 100%; align-items: flex-start; flex-direction: column; gap: 2px; }
  .control-group + .control-group { padding: 6px 0 0; border-top: 1px solid #cbd5ca; border-left: 0; }
  .choice-chip { min-height: 44px; padding: 3px 6px; font-size: 12px; }
  .page-intro { padding-top: 15px; }
  .page-intro h1 { font-size: clamp(29px, 8vw, 39px); }
  .intro-description { font-size: 14px; }
  .scenario-setting { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .map-panel { padding: 8px; }
  .map-canvas { height: auto; aspect-ratio: 1060 / 620; }
  .map-stop { width: 44px; height: 44px; font-size: 14px; }
  .map-caption { align-items: flex-start; flex-direction: column; gap: 2px; }
  .stage-list { grid-template-columns: minmax(0, 1fr); }
  .stage-choice { min-height: 48px; }
  .stage-detail { padding: 14px; }
  .stage-detail h2, .institution-detail h2, .case-detail h2, .adoption-detail h2 { font-size: 27px; }
  .decision-rights { grid-template-columns: minmax(0, 1fr); }
  .decision-rights > div:nth-child(2n) { padding-left: 0; border-left: 0; }
  .institution-navigation ol, .adoption-navigation ol { grid-template-columns: minmax(0, 1fr); }
  .case-navigation ol { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .institution-navigation li:nth-child(2), .adoption-navigation li:nth-child(2) { border-top: 1px solid #e3e6de; }
  .case-navigation li:nth-child(2) { border-top: 0; }
  .institution-powers, .appointment-grid { grid-template-columns: minmax(0, 1fr); }
  .response-options { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .branch-join { height: 20px; }
  .branch-join::before { left: 23px; }
  .branch-join::after { display: none; }
  .response-branch { padding: 0 0 0 15px; }
  .response-branch::before { top: -12px; left: 23px; height: 25px; }
  .branch-actions { align-items: stretch; flex-direction: column; }
  .compare-toggle { align-self: flex-start; }
  .safeguard-invite { align-items: flex-start; flex-direction: column; }
  .institution-detail, .case-detail, .adoption-detail { padding: 15px; }
  .version-downloads { gap: 6px; }
  .version-downloads a { min-height: 95px; padding: 8px 19px 8px 8px; }
  .version-downloads strong { font-size: 15px; }
  .change-row, .version-downloads { grid-template-columns: minmax(0, 1fr); }
  .change-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px; }
  .change-heading { grid-column: 1 / -1; }
  .change-reason { grid-column: 1 / -1; margin-top: 0; }
  .site-footer { width: calc(100% - 28px); align-items: flex-start; flex-direction: column; gap: 3px; padding: 12px 0; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
