.chapter-shell { --chapter-width: 1120px; }

.chapter-hero { padding: 1.5rem 0 0; }
.chapter-breadcrumb { display: flex; flex-wrap: wrap; gap: 0.55rem; color: var(--ink-faint); font-size: 0.72rem; }
.chapter-breadcrumb a { color: var(--ink-soft); text-decoration: none; }
.chapter-breadcrumb b { color: var(--terracotta-text); font-weight: 500; }

.chapter-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.65fr);
  gap: clamp(3rem, 9vw, 9rem);
  align-items: end;
  padding: clamp(4rem, 9vw, 7rem) 0 clamp(3rem, 7vw, 5rem);
}
.chapter-hero h1 { margin: 0 0 1.5rem; font-size: clamp(3.2rem, 8vw, 6.6rem); }
.chapter-hero h1 em { color: var(--terracotta); font-weight: 400; }
.chapter-status { border-top: 1px solid var(--rule-strong); }
.chapter-status div { display: flex; justify-content: space-between; gap: 1rem; padding: 0.85rem 0; border-bottom: 1px solid var(--rule); }
.chapter-status span { color: var(--ink-faint); font-size: 0.7rem; font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; }
.chapter-status b { font-size: 0.78rem; font-weight: 500; text-align: right; }

.chapter-nav {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  align-items: center;
  gap: clamp(0.8rem, 2.5vw, 1.7rem);
  min-height: 58px;
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  background: color-mix(in srgb, var(--paper) 92%, transparent);
  backdrop-filter: blur(14px);
  overflow-x: auto;
}
.chapter-nav a { flex: 0 0 auto; color: var(--ink-soft); font-size: 0.75rem; font-weight: 500; text-decoration: none; }
.chapter-nav a:hover { color: var(--terracotta-text); }
.print-chapter { flex: 0 0 auto; margin-left: auto; padding: 0.35rem 0.7rem; border: 1px solid var(--rule); border-radius: 999px; color: var(--ink-soft); background: transparent; font-size: 0.7rem; cursor: pointer; }

.opening-case {
  display: grid;
  grid-template-columns: 0.22fr 1fr 0.65fr;
  gap: clamp(1.5rem, 5vw, 5rem);
  margin-top: clamp(3rem, 7vw, 6rem);
  padding: clamp(1.5rem, 4vw, 3rem);
  border-radius: var(--radius-lg);
  color: #f8f0e4;
  background: #2d3428;
}
:root[data-theme="dark"] .opening-case { color: #1c1815; background: #ece4d2; }
.case-label { display: flex; flex-direction: column; justify-content: space-between; min-height: 220px; border-right: 1px solid currentColor; opacity: 0.8; }
.case-label span { font-size: 0.7rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; }
.case-label b { font-family: var(--serif); font-size: 1.8rem; font-weight: 400; }
.case-copy h2 { font-size: clamp(2rem, 4vw, 3.1rem); }
.case-copy p { max-width: 56ch; opacity: 0.78; }
.case-question { align-self: end; padding-top: 1rem; border-top: 1px solid currentColor; }
.case-question p { margin-bottom: 0.35rem; font-size: 0.7rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; opacity: 0.65; }
.case-question strong, .case-question span { display: block; }
.case-question strong { font-size: 1rem; line-height: 1.4; }
.case-question span { margin-top: 0.75rem; font-size: 0.78rem; line-height: 1.45; opacity: 0.72; }

.living-update {
  max-width: var(--chapter-width);
  display: grid;
  grid-template-columns: auto 1.1fr 0.9fr;
  gap: clamp(1.5rem, 5vw, 4rem);
  align-items: start;
  margin: clamp(3rem, 7vw, 6rem) auto 0;
  padding: clamp(1.4rem, 3vw, 2.2rem);
  border: 1px solid color-mix(in srgb, var(--purple) 32%, var(--rule));
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--purple-soft) 50%, transparent);
}
.update-mark { width: 2.6rem; height: 2.6rem; display: grid; place-items: center; border: 1px solid var(--purple); border-radius: 50%; color: var(--purple); font-size: 1.4rem; }
.living-update h2 { font-size: clamp(1.7rem, 3vw, 2.3rem); }
.living-update p:last-child { margin-bottom: 0; color: var(--ink-soft); }
.living-update ul { display: grid; gap: 0.8rem; margin: 0; padding: 0; list-style: none; }
.living-update li { padding-bottom: 0.8rem; border-bottom: 1px solid var(--rule); }
.living-update li:last-child { border-bottom: 0; }
.living-update li b, .living-update li span { display: block; }
.living-update li b { color: var(--purple); font-size: 0.78rem; }
.living-update li span { color: var(--ink-faint); font-size: 0.72rem; }

.chapter-section {
  max-width: var(--chapter-width);
  margin: 0 auto;
  padding: clamp(5rem, 11vw, 10rem) 0 0;
  scroll-margin-top: 76px;
}

.decision-spine { margin-top: 2.5rem; }
.decision-node { max-width: 760px; display: grid; grid-template-columns: auto 0.45fr 1fr; gap: 1.2rem; align-items: center; margin: 0 auto; padding: 1.1rem 1.3rem; border: 1px solid var(--rule-strong); border-radius: 999px; background: var(--paper); }
.decision-node > span { width: 2.1rem; height: 2.1rem; display: grid; place-items: center; border-radius: 50%; color: var(--paper); background: var(--terracotta); font-size: 0.7rem; font-weight: 600; }
.decision-node b { font-family: var(--serif); font-size: 1.2rem; font-weight: 400; }
.decision-node small { color: var(--ink-soft); font-size: 0.75rem; line-height: 1.35; }
.root-node { max-width: 500px; grid-template-columns: auto 0.55fr 1fr; }
.decision-connector { width: 1px; height: 46px; margin: 0 auto; background: var(--rule-strong); }
.decision-split { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.branch { padding: 1.25rem; border: 1px solid var(--rule); border-radius: var(--radius); background: color-mix(in srgb, var(--paper-deep) 45%, transparent); }
.branch b, .branch span { display: block; }
.branch b { color: var(--moss); font-size: 0.78rem; }
.branch span { margin-top: 0.45rem; color: var(--ink-soft); font-size: 0.78rem; }
.danger-branch { border-color: color-mix(in srgb, var(--danger) 40%, var(--rule)); background: var(--danger-soft); }
.danger-branch b { color: var(--danger); }

.rhythm-matrix { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin-top: 2rem; border: 1px solid var(--rule); background: var(--rule); }
.rhythm-matrix article { min-height: 270px; padding: clamp(1.2rem, 3vw, 2rem); background: var(--paper); }
.matrix-axis { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: 3rem; }
.matrix-axis span { color: var(--ink-faint); font-size: 0.68rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; }
.rhythm-matrix h3 { max-width: 34ch; font-family: var(--serif); font-size: 1.35rem; font-weight: 400; }
.rhythm-matrix p { margin: 0; color: var(--ink-soft); font-size: 0.82rem; }
.rhythm-matrix .matrix-alert { box-shadow: inset 4px 0 0 var(--terracotta); }
.rhythm-matrix .matrix-danger { background: var(--danger-soft); box-shadow: inset 4px 0 0 var(--danger); }

.mechanism-note { display: grid; grid-template-columns: 0.35fr 1fr 1fr; gap: 2rem; margin-top: 2rem; padding: 2rem 0; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.mechanism-note h3 { font-family: var(--serif); font-size: 1.25rem; font-weight: 400; }
.mechanism-note p:last-child { margin-bottom: 0; color: var(--ink-soft); font-size: 0.82rem; }

.lens-tabs { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 2rem; border: 1px solid var(--rule); border-radius: var(--radius) var(--radius) 0 0; overflow: hidden; }
.lens-tabs button { min-height: 64px; padding: 0.7rem; border: 0; border-right: 1px solid var(--rule); color: var(--ink-soft); background: var(--paper); font-size: 0.78rem; font-weight: 500; cursor: pointer; }
.lens-tabs button:last-child { border-right: 0; }
.lens-tabs button[aria-selected="true"] { color: var(--paper); background: var(--ink); }
.lens-panel { display: grid; grid-template-columns: 0.48fr 1.52fr; gap: clamp(1.5rem, 4vw, 4rem); padding: clamp(1.4rem, 4vw, 2.5rem); border: 1px solid var(--rule); border-top: 0; border-radius: 0 0 var(--radius) var(--radius); background: color-mix(in srgb, var(--paper-deep) 42%, transparent); }
.lens-callout { padding-right: 1.5rem; border-right: 1px solid var(--rule); }
.lens-callout span, .lens-callout b { display: block; }
.lens-callout span { color: var(--terracotta-text); font-size: 0.68rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; }
.lens-callout b { margin: 0.25rem 0 1.3rem; font-family: var(--serif); font-size: 2rem; font-weight: 400; }
.lens-callout p { color: var(--ink-soft); font-size: 0.8rem; }
.lens-panel ol { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin: 0; padding: 0; list-style: none; }
.lens-panel li { min-height: 150px; padding: 1rem 1.2rem; border-bottom: 1px solid var(--rule); }
.lens-panel li:nth-child(odd) { border-right: 1px solid var(--rule); }
.lens-panel li:nth-last-child(-n + 2) { border-bottom: 0; }
.lens-panel li b, .lens-panel li span { display: block; }
.lens-panel li b { font-size: 0.86rem; }
.lens-panel li span { margin-top: 0.4rem; color: var(--ink-soft); font-size: 0.76rem; }

.decision-lab { max-width: none; }
.lab-heading { max-width: var(--chapter-width); display: flex; justify-content: space-between; gap: 2rem; align-items: end; margin: 0 auto 1.5rem; }
.lab-heading > div:first-child { max-width: 68ch; }
.lab-heading h2 { margin-bottom: 0.8rem; }
.lab-heading p:last-child { color: var(--ink-soft); }
.lab-score { display: grid; grid-template-columns: auto auto; gap: 0.15rem 0.8rem; min-width: 145px; padding: 0.8rem 1rem; border: 1px solid var(--rule); border-radius: var(--radius); }
.lab-score span { color: var(--ink-faint); font-size: 0.65rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; }
.lab-score b { font-family: var(--serif); font-size: 1.1rem; font-weight: 400; text-align: right; }
.rhythm-console { display: grid; grid-template-columns: 1.05fr 0.95fr; min-height: 610px; border-radius: var(--radius-lg); overflow: hidden; color: #ece4d2; background: #171a16; box-shadow: var(--shadow); }
.rhythm-screen { display: flex; flex-direction: column; justify-content: center; padding: clamp(1.2rem, 4vw, 3rem); border-right: 1px solid rgba(236, 228, 210, 0.13); background: radial-gradient(circle at 20% 30%, rgba(204, 120, 92, 0.07), transparent 45%), #171a16; }
#rhythm-canvas { width: 100%; height: auto; border: 1px solid rgba(236, 228, 210, 0.09); border-radius: 8px; background: #111410; }
.rhythm-meta { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.5rem; margin-top: 1rem; }
.rhythm-meta span { padding-top: 0.6rem; border-top: 1px solid rgba(236, 228, 210, 0.13); color: #aaa995; font-size: 0.64rem; }
.scenario-panel { display: flex; flex-direction: column; padding: clamp(1.5rem, 4vw, 3rem); background: #22271f; }
.scenario-setting { color: #d88a6e; font-size: 0.68rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; }
.scenario-panel h3 { margin: 0 0 0.8rem; font-family: var(--serif); font-size: clamp(1.6rem, 3vw, 2.3rem); font-weight: 400; }
.scenario-panel > p:not(.scenario-setting) { color: #b9b5a5; font-size: 0.84rem; }
.scenario-panel fieldset { display: grid; gap: 0.6rem; margin: 1rem 0; padding: 0; border: 0; }
.scenario-panel legend { margin-bottom: 0.6rem; font-size: 0.76rem; font-weight: 600; }
.scenario-option { display: grid; grid-template-columns: auto 1fr; gap: 0.7rem; align-items: start; padding: 0.75rem; border: 1px solid rgba(236, 228, 210, 0.14); border-radius: 8px; color: #d5cfbf; font-size: 0.76rem; cursor: pointer; }
.scenario-option:hover { border-color: #d88a6e; }
.scenario-option input { margin-top: 0.2rem; accent-color: #d88a6e; }
.scenario-feedback { margin: 0.5rem 0 1rem; padding: 0.8rem 1rem; border-left: 3px solid #d88a6e; background: rgba(216, 138, 110, 0.09); color: #ddd6c6; font-size: 0.76rem; }
.scenario-feedback.correct { border-left-color: #a9bd78; background: rgba(169, 189, 120, 0.08); }
.scenario-actions { display: flex; gap: 0.6rem; margin-top: auto; }
.scenario-actions .btn { border-color: #ece4d2; color: #171a16; background: #ece4d2; }
.scenario-actions .btn-secondary { color: #ece4d2; background: transparent; }
.lab-noscript { margin: 1rem 0 0; padding: 0.8rem 1rem; border-left: 3px solid var(--terracotta); color: var(--ink-soft); background: var(--paper-deep); font-size: 0.78rem; }

.drug-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; border: 1px solid var(--rule); background: var(--rule); }
.drug-strip article { min-height: 330px; display: flex; flex-direction: column; padding: 1.4rem; background: var(--paper); }
.drug-strip article > span { color: var(--terracotta-text); font-size: 0.68rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; }
.drug-strip h3 { margin: 3.5rem 0 0.75rem; font-family: var(--serif); font-size: 1.45rem; font-weight: 400; }
.drug-strip p { color: var(--ink-soft); font-size: 0.78rem; }
.drug-strip small { margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--rule); color: var(--ink-faint); font-size: 0.65rem; line-height: 1.45; }

.reading-sequence { display: grid; grid-template-columns: repeat(5, 1fr); margin: 2rem 0 0; padding: 0; border: 1px solid var(--rule); border-radius: var(--radius); list-style: none; overflow: hidden; }
.reading-sequence li { min-height: 135px; padding: 1rem; border-right: 1px solid var(--rule); background: color-mix(in srgb, var(--paper-deep) 42%, transparent); }
.reading-sequence li:last-child { border-right: 0; }
.reading-sequence span, .reading-sequence b, .reading-sequence small { display: block; }
.reading-sequence span { color: var(--terracotta-text); font-family: var(--serif); font-size: 1.35rem; }
.reading-sequence b { margin-top: 1.8rem; font-size: 0.78rem; }
.reading-sequence small { margin-top: 0.3rem; color: var(--ink-faint); font-size: 0.68rem; line-height: 1.4; }

.reading-routes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 1rem; }
.reading-routes article { padding: 1.1rem 1.2rem; border-left: 3px solid var(--moss); background: color-mix(in srgb, var(--moss-soft) 45%, transparent); }
.reading-routes span { color: var(--moss); font-size: 0.64rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; }
.reading-routes h3 { margin: 0.25rem 0 0.4rem; font-family: var(--serif); font-size: 1.2rem; font-weight: 400; }
.reading-routes p { margin: 0; color: var(--ink-soft); font-size: 0.72rem; }

.figure-lab { margin-top: 2.5rem; padding: clamp(1.2rem, 3.5vw, 2.4rem); border-radius: var(--radius-lg); color: #ece4d2; background: #20251e; box-shadow: var(--shadow); }
.figure-lab-heading { display: flex; justify-content: space-between; gap: 2rem; align-items: end; padding-bottom: 1.4rem; border-bottom: 1px solid rgba(236, 228, 210, 0.16); }
.figure-lab-heading h3 { margin: 0; color: #f3ebdc; font-family: var(--serif); font-size: clamp(1.7rem, 3vw, 2.4rem); font-weight: 400; }
.figure-lab-heading > p { max-width: 52ch; margin: 0; color: #b8b5a7; font-size: 0.75rem; }
.trial-figures { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-top: 1.4rem; background: rgba(236, 228, 210, 0.15); }
.trial-figure { min-width: 0; padding: 1.25rem; background: #20251e; }
.figure-tag { color: #d88a6e; font-size: 0.62rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; }
.trial-figure h4 { min-height: 3.1rem; margin: 0.65rem 0 1.4rem; color: #f3ebdc; font-family: var(--serif); font-size: 1.25rem; font-weight: 400; }
.plot-row { display: grid; grid-template-columns: minmax(118px, 0.72fr) 1fr auto; gap: 0.65rem; align-items: center; margin: 0.8rem 0; }
.plot-row div b, .plot-row div small { display: block; }
.plot-row div b { color: #ddd6c6; font-size: 0.7rem; }
.plot-row div small { color: #918f84; font-size: 0.6rem; }
.plot-row > strong { min-width: 2.5rem; color: #f3ebdc; font-family: var(--serif); font-size: 1.05rem; font-weight: 400; text-align: right; }
.plot-row progress { width: 100%; height: 0.7rem; border: 0; border-radius: 999px; color: #a9bd78; background: #343a31; overflow: hidden; }
.plot-row progress::-webkit-progress-bar { border-radius: 999px; background: #343a31; }
.plot-row progress::-webkit-progress-value { border-radius: 999px; background: #a9bd78; }
.plot-row progress::-moz-progress-bar { border-radius: 999px; background: #a9bd78; }
.plot-row .plot-standard { color: #a79bbf; }
.plot-row .plot-standard::-webkit-progress-value { background: #a79bbf; }
.plot-row .plot-standard::-moz-progress-bar { background: #a79bbf; }
.plot-row .plot-harm { color: #d88a6e; }
.plot-row .plot-harm::-webkit-progress-value { background: #d88a6e; }
.plot-row .plot-harm::-moz-progress-bar { background: #d88a6e; }
.plot-subtitle { margin: 1.1rem 0 0.3rem; padding-top: 0.7rem; border-top: 1px solid rgba(236, 228, 210, 0.12); color: #a9a596; font-size: 0.62rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; }
.figure-math { display: grid; gap: 0.45rem; margin: 1.3rem 0 0; padding-top: 0.8rem; border-top: 1px solid rgba(236, 228, 210, 0.14); }
.figure-math div { display: flex; justify-content: space-between; gap: 1rem; }
.figure-math dt { color: #979487; font-size: 0.62rem; }
.figure-math dd { margin: 0; color: #ddd6c6; font-size: 0.64rem; text-align: right; }
.figure-data-table { margin-top: 1.2rem; overflow-x: auto; }
.figure-data-table table { width: 100%; min-width: 760px; border-collapse: collapse; color: #d8d1c1; font-size: 0.68rem; }
.figure-data-table caption { padding: 0.6rem 0; color: #979487; text-align: left; }
.figure-data-table th, .figure-data-table td { padding: 0.7rem; border: 1px solid rgba(236, 228, 210, 0.13); text-align: left; vertical-align: top; }
.figure-data-table thead th { color: #f0e8d8; background: #2b3128; }
.figure-debrief { margin-top: 1rem; border-top: 1px solid rgba(236, 228, 210, 0.18); border-bottom: 1px solid rgba(236, 228, 210, 0.18); }
.figure-debrief summary { padding: 1rem 0; color: #f0e8d8; font-size: 0.75rem; font-weight: 600; cursor: pointer; }
.figure-debrief > div { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; padding-bottom: 1rem; }
.figure-debrief p { margin: 0; color: #b8b5a7; font-size: 0.7rem; }

.excerpt-register { margin-top: 3rem; }
.excerpt-register-head { display: flex; justify-content: space-between; gap: 2rem; align-items: end; padding: 1.2rem 0; border-top: 1px solid var(--rule-strong); }
.excerpt-register-head > div:first-child { display: flex; align-items: end; gap: 0.75rem; }
.excerpt-register-head > div:first-child span { font-family: var(--serif); font-size: 3rem; line-height: 1; }
.excerpt-register-head h3 { margin: 0; font-family: var(--serif); font-size: 1.35rem; font-weight: 400; text-align: right; }
.excerpt-register-head p { margin: 0; color: var(--ink-faint); font-size: 0.7rem; }
.excerpt-card { border-top: 1px solid var(--rule); }
.excerpt-card:last-child { border-bottom: 1px solid var(--rule); }
.excerpt-card > summary { display: grid; grid-template-columns: 48px 1fr auto; gap: 1rem; align-items: center; min-height: 88px; cursor: pointer; list-style: none; }
.excerpt-card > summary::-webkit-details-marker { display: none; }
.excerpt-card > summary b, .excerpt-card > summary small { display: block; }
.excerpt-card > summary b { font-size: 0.86rem; }
.excerpt-card > summary small { margin-top: 0.25rem; color: var(--ink-faint); font-size: 0.65rem; }
.excerpt-number { color: var(--terracotta-text); font-family: var(--serif); font-size: 1rem; }
.excerpt-toggle { width: 1.8rem; height: 1.8rem; display: grid; place-items: center; border: 1px solid var(--rule); border-radius: 50%; }
.excerpt-card[open] .excerpt-toggle { transform: rotate(45deg); }
.excerpt-body { padding: 0 0 2rem 64px; }
.excerpt-body blockquote { margin: 0 0 1.2rem; padding: clamp(1.1rem, 3vw, 1.7rem); border: 0; border-left: 4px solid var(--purple); background: color-mix(in srgb, var(--purple-soft) 48%, transparent); }
.excerpt-body blockquote p { max-width: 54ch; margin: 0; font-family: var(--serif); font-size: clamp(1.25rem, 2.5vw, 1.75rem); line-height: 1.35; }
.excerpt-body blockquote cite { display: block; margin-top: 0.8rem; color: var(--ink-faint); font-family: var(--sans); font-size: 0.62rem; font-style: normal; }
.excerpt-evidence-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.excerpt-evidence-grid > div { padding: 1rem; border: 1px solid var(--rule); }
.excerpt-evidence-grid span, .claim-boundary span { color: var(--terracotta-text); font-size: 0.62rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; }
.excerpt-evidence-grid p, .claim-boundary p { margin: 0.45rem 0 0; color: var(--ink-soft); font-size: 0.73rem; }
.claim-boundary { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin-top: 1rem; border: 1px solid var(--rule); background: var(--rule); }
.claim-boundary article { padding: 1rem; background: var(--moss-soft); }
.claim-boundary article:last-child { background: var(--danger-soft); }
.claim-boundary article:last-child span { color: var(--danger); }
.teach-back { margin-top: 1rem; border: 1px solid var(--rule); border-radius: var(--radius); }
.teach-back summary { padding: 0.85rem 1rem; color: var(--purple); font-size: 0.72rem; font-weight: 600; cursor: pointer; }
.teach-back > div { padding: 0 1rem 1rem; }
.teach-back p { color: var(--ink-soft); font-size: 0.74rem; }
.teach-back p:last-child { margin-bottom: 0; padding-top: 0.8rem; border-top: 1px solid var(--rule); }
.excerpt-footer { display: grid; grid-template-columns: 1fr auto auto; gap: 1rem; align-items: center; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--rule); }
.excerpt-footer b, .excerpt-footer small { display: block; }
.excerpt-footer b { font-size: 0.67rem; }
.excerpt-footer small { margin-top: 0.25rem; color: var(--ink-faint); font-size: 0.6rem; }
.excerpt-footer a, .reading-complete { padding: 0.45rem 0.7rem; border: 1px solid var(--rule); border-radius: 999px; font-size: 0.66rem; font-weight: 600; text-decoration: none; }
.reading-complete { display: none; color: var(--ink-soft); background: transparent; cursor: pointer; }
.js-enabled .reading-complete { display: inline-flex; }
.reading-complete[aria-pressed="true"] { border-color: var(--moss); color: var(--moss); background: var(--moss-soft); }
.excerpt-card.is-read > summary { box-shadow: inset 3px 0 0 var(--moss); }

.media-library { margin-top: 4rem; }
.media-library-heading { display: flex; justify-content: space-between; gap: 2rem; align-items: end; padding-bottom: 1.2rem; border-bottom: 1px solid var(--rule-strong); }
.media-library-heading h3 { margin: 0; font-family: var(--serif); font-size: clamp(1.6rem, 3vw, 2.2rem); font-weight: 400; }
.media-library-heading > p { max-width: 55ch; margin: 0; color: var(--ink-faint); font-size: 0.72rem; }
.media-shelf { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 1rem; }
.media-card { min-height: 390px; display: flex; flex-direction: column; padding: 1.2rem; border: 1px solid var(--rule); border-radius: var(--radius); background: color-mix(in srgb, var(--paper-deep) 36%, transparent); }
.media-card-top { display: flex; justify-content: space-between; gap: 1rem; color: var(--terracotta-text); font-size: 0.62rem; font-weight: 600; letter-spacing: 0.07em; text-transform: uppercase; }
.media-card-top small { color: var(--ink-faint); font-size: inherit; }
.media-card h4 { margin: 2rem 0 0.25rem; font-family: var(--serif); font-size: 1.35rem; font-weight: 400; }
.media-provider { margin: 0; color: var(--purple); font-size: 0.67rem; }
.media-card dl { display: grid; gap: 0.7rem; margin: 1.2rem 0; }
.media-card dl div { padding-top: 0.65rem; border-top: 1px solid var(--rule); }
.media-card dt { color: var(--ink-faint); font-size: 0.58rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; }
.media-card dd { margin: 0.25rem 0 0; color: var(--ink-soft); font-size: 0.68rem; }
.media-access, .media-boundary { margin: 0.35rem 0; color: var(--ink-faint); font-size: 0.64rem; }
.media-actions { display: flex; flex-wrap: wrap; gap: 0.55rem; margin-top: auto; padding-top: 1rem; }
.media-actions a { padding: 0.45rem 0.65rem; border: 1px solid var(--rule); border-radius: 999px; font-size: 0.64rem; font-weight: 600; text-decoration: none; }
.link-check { margin-top: 0.65rem; color: var(--ink-faint); font-size: 0.58rem; }

.assessment { display: grid; gap: 1rem; }
.assessment-item { display: grid; grid-template-columns: 70px 1fr; gap: 1.5rem; padding: clamp(1.2rem, 3vw, 2rem); border: 1px solid var(--rule); border-radius: var(--radius); background: color-mix(in srgb, var(--paper-deep) 36%, transparent); }
.assessment-item.is-correct { border-color: color-mix(in srgb, var(--moss) 55%, var(--rule)); }
.assessment-item.is-incorrect { border-color: color-mix(in srgb, var(--danger) 55%, var(--rule)); }
.item-number { color: var(--ink-faint); font-family: var(--serif); font-size: 1.5rem; }
.assessment-item fieldset { display: grid; gap: 0.55rem; margin: 0; padding: 0; border: 0; }
.assessment-item legend { margin-bottom: 1rem; font-family: var(--serif); font-size: 1.3rem; line-height: 1.35; }
.assessment-item label { display: grid; grid-template-columns: auto 1fr; gap: 0.7rem; padding: 0.72rem 0.8rem; border: 1px solid var(--rule); border-radius: 8px; color: var(--ink-soft); font-size: 0.8rem; cursor: pointer; }
.assessment-item label:hover { border-color: var(--terracotta); }
.assessment-item label.selected-correct { border-color: var(--moss); background: var(--moss-soft); }
.assessment-item label.selected-incorrect { border-color: var(--danger); background: var(--danger-soft); }
.assessment-item label.answer-key { box-shadow: inset 3px 0 0 var(--moss); }
.assessment-item input { margin-top: 0.22rem; accent-color: var(--terracotta); }
.item-rationale { grid-column: 2; padding: 1rem 1.1rem; border-left: 3px solid var(--terracotta); background: var(--paper); font-size: 0.78rem; }
.item-rationale p { color: var(--ink-soft); }
.item-rationale ul { margin-bottom: 0; padding-left: 1.2rem; color: var(--ink-soft); }
.assessment-submit { display: flex; justify-content: space-between; gap: 2rem; align-items: center; margin-top: 1rem; padding: 1.4rem; border-top: 1px solid var(--rule-strong); }
.assessment-submit span, .assessment-submit strong, .assessment-submit small { display: block; }
.assessment-submit span { color: var(--ink-faint); font-size: 0.65rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; }
.assessment-submit strong { font-family: var(--serif); font-size: 1.6rem; font-weight: 400; }
.assessment-submit small { max-width: 65ch; color: var(--ink-faint); font-size: 0.68rem; }

.evidence-model { display: grid; grid-template-columns: 1fr 1fr 0.8fr; gap: 1rem; }
.evidence-axis, .evidence-model aside { padding: 1.3rem; border: 1px solid var(--rule); border-radius: var(--radius); }
.evidence-axis > span { color: var(--terracotta-text); font-size: 0.68rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; }
.evidence-axis ol { display: grid; gap: 0; margin: 1.5rem 0 0; padding: 0; list-style: none; counter-reset: evidence; }
.evidence-axis li { position: relative; padding: 0.7rem 0 0.7rem 2.5rem; border-bottom: 1px solid var(--rule); }
.evidence-axis li::before { counter-increment: evidence; content: counter(evidence); position: absolute; left: 0; width: 1.7rem; height: 1.7rem; display: grid; place-items: center; border-radius: 50%; color: var(--paper); background: var(--terracotta); font-size: 0.65rem; }
.authority-axis li::before { background: var(--purple); }
.evidence-axis li:last-child { border-bottom: 0; }
.evidence-axis b, .evidence-axis small { display: block; }
.evidence-axis b { font-size: 0.78rem; }
.evidence-axis small { color: var(--ink-faint); font-size: 0.66rem; }
.evidence-model aside { background: var(--danger-soft); }
.evidence-model aside h3 { margin-top: 2rem; font-family: var(--serif); font-size: 1.4rem; font-weight: 400; }
.evidence-model aside p:last-child { color: var(--ink-soft); font-size: 0.76rem; }

.source-register { margin-top: 2rem; }
.source-register-head { display: flex; justify-content: space-between; align-items: end; gap: 2rem; padding: 1.5rem 0; border-top: 1px solid var(--rule-strong); }
.source-register-head > div { display: flex; align-items: end; gap: 0.8rem; }
.source-register-head span { font-family: var(--serif); font-size: 3rem; line-height: 1; }
.source-register-head p { max-width: 52ch; margin: 0; color: var(--ink-faint); font-size: 0.72rem; }
.source-card { border-top: 1px solid var(--rule); }
.source-card:last-child { border-bottom: 1px solid var(--rule); }
.source-card summary { display: grid; grid-template-columns: 45px 1fr auto; gap: 1rem; align-items: center; min-height: 82px; cursor: pointer; list-style: none; }
.source-card summary::-webkit-details-marker { display: none; }
.source-number { color: var(--ink-faint); font-family: var(--serif); }
.source-card summary b, .source-card summary small { display: block; }
.source-card summary b { font-size: 0.86rem; }
.source-card summary small { margin-top: 0.25rem; color: var(--ink-faint); font-size: 0.66rem; }
.source-toggle { width: 1.8rem; height: 1.8rem; display: grid; place-items: center; border: 1px solid var(--rule); border-radius: 50%; }
.source-card[open] .source-toggle { transform: rotate(45deg); }
.source-body { padding: 0 0 1.5rem 61px; }
.source-body > p { max-width: 78ch; color: var(--ink-soft); font-size: 0.78rem; }
.source-body dl { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.source-body dl div { padding-top: 0.7rem; border-top: 1px solid var(--rule); }
.source-body dt { color: var(--ink-faint); font-size: 0.62rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; }
.source-body dd { margin: 0.2rem 0 0; font-size: 0.72rem; }
.source-body a { font-size: 0.72rem; font-weight: 600; }

.release-list { margin: 0; padding: 0; border-top: 1px solid var(--rule-strong); list-style: none; }
.release-list li { display: grid; grid-template-columns: 90px 1fr auto; gap: 1.5rem; align-items: center; padding: 1.1rem 0; border-bottom: 1px solid var(--rule); }
.release-list li > span:first-child { color: var(--ink-faint); font-family: var(--serif); }
.release-list h3 { margin: 0 0 0.25rem; font-size: 0.86rem; }
.release-list p { margin: 0; color: var(--ink-faint); font-size: 0.72rem; }
.release-list .release-active, .release-list .release-available { padding-inline: 0.8rem; background: color-mix(in srgb, var(--moss-soft) 55%, transparent); }
.release-list .release-next { padding-inline: 0.8rem; background: color-mix(in srgb, var(--purple-soft) 55%, transparent); }

.clinical-boundary { max-width: var(--chapter-width); display: grid; grid-template-columns: 0.25fr 1fr; gap: 2rem; margin: clamp(4rem, 9vw, 8rem) auto 0; padding: 1.3rem 0; border-top: 1px solid var(--rule-strong); border-bottom: 1px solid var(--rule-strong); }
.clinical-boundary b { color: var(--terracotta-text); font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase; }
.clinical-boundary p { margin: 0; color: var(--ink-faint); font-size: 0.75rem; }

@media (max-width: 1000px) {
  .chapter-hero-grid, .opening-case, .living-update { grid-template-columns: 1fr; }
  .case-label { min-height: 0; flex-direction: row; padding-bottom: 1rem; border-right: 0; border-bottom: 1px solid currentColor; }
  .rhythm-console { grid-template-columns: 1fr; }
  .rhythm-screen { border-right: 0; border-bottom: 1px solid rgba(236, 228, 210, 0.13); }
  .drug-strip { grid-template-columns: repeat(2, 1fr); }
  .reading-routes, .trial-figures, .figure-debrief > div { grid-template-columns: 1fr; }
  .media-shelf { grid-template-columns: 1fr 1fr; }
  .evidence-model { grid-template-columns: 1fr 1fr; }
  .evidence-model aside { grid-column: 1 / -1; }
}

@media (max-width: 760px) {
  .chapter-nav { margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); }
  .print-chapter { display: none; }
  .decision-node, .root-node { grid-template-columns: auto 1fr; border-radius: var(--radius); }
  .decision-node small { grid-column: 1 / -1; }
  .decision-split, .rhythm-matrix, .mechanism-note, .lens-panel, .evidence-model { grid-template-columns: 1fr; }
  .mechanism-note > .section-kicker { grid-column: 1; }
  .lens-tabs { grid-template-columns: 1fr 1fr; }
  .lens-tabs button:nth-child(2) { border-right: 0; }
  .lens-tabs button:nth-child(-n + 2) { border-bottom: 1px solid var(--rule); }
  .lens-callout { padding-right: 0; padding-bottom: 1rem; border-right: 0; border-bottom: 1px solid var(--rule); }
  .lens-panel ol { grid-template-columns: 1fr; }
  .lens-panel li, .lens-panel li:nth-child(odd), .lens-panel li:nth-last-child(-n + 2) { min-height: 0; border-right: 0; border-bottom: 1px solid var(--rule); }
  .lens-panel li:last-child { border-bottom: 0; }
  .lab-heading, .assessment-submit, .source-register-head { flex-direction: column; align-items: flex-start; }
  .rhythm-meta { grid-template-columns: 1fr 1fr; }
  .drug-strip { grid-template-columns: 1fr; }
  .reading-sequence { grid-template-columns: 1fr; }
  .reading-sequence li { min-height: 0; border-right: 0; border-bottom: 1px solid var(--rule); }
  .reading-sequence li:last-child { border-bottom: 0; }
  .reading-sequence b { margin-top: 0.6rem; }
  .figure-lab-heading, .excerpt-register-head, .media-library-heading { flex-direction: column; align-items: flex-start; }
  .excerpt-register-head h3 { text-align: left; }
  .plot-row { grid-template-columns: 1fr auto; }
  .plot-row progress { grid-column: 1 / -1; }
  .excerpt-body { padding-left: 0; }
  .excerpt-evidence-grid, .claim-boundary { grid-template-columns: 1fr; }
  .excerpt-footer { grid-template-columns: 1fr; justify-items: start; }
  .media-shelf { grid-template-columns: 1fr; }
  .assessment-item { grid-template-columns: 1fr; gap: 0.6rem; }
  .item-rationale { grid-column: 1; }
  .source-body { padding-left: 0; }
  .source-body dl { grid-template-columns: 1fr; }
  .release-list li { grid-template-columns: 70px 1fr; }
  .release-list .status-pill { grid-column: 2; justify-self: start; }
  .clinical-boundary { grid-template-columns: 1fr; gap: 0.5rem; }
}

@media print {
  .chapter-nav, .decision-lab, .assessment-submit, .source-toggle, .excerpt-toggle, .reading-complete, .media-actions { display: none !important; }
  .chapter-section { max-width: 100%; padding-top: 2rem; break-before: page; }
  .opening-case { color: #000; background: #fff; border: 1px solid #333; }
  .living-update, .rhythm-matrix article, .lens-panel, .drug-strip article { background: #fff !important; }
  .lens-panel[hidden], .item-rationale[hidden] { display: block !important; }
  .source-card { break-inside: avoid; }
  .source-card:not([open]) .source-body { display: block; }
  .excerpt-card { break-inside: avoid; }
  .excerpt-card:not([open]) .excerpt-body { display: block; }
  .figure-lab { color: #000; background: #fff; box-shadow: none; }
  .figure-lab h3, .trial-figure h4, .plot-row > strong, .figure-data-table, .figure-data-table thead th { color: #000; }
  .trial-figure { background: #fff; }
}
