:root {
  --paper: #f7f7f4;
  --ink: #101010;
  --white: #ffffff;
  --muted: #8a8a86;
  --hairline: #d7d7d2;
  --screen: #d9d9d5;
  --bleed: 3mm;
  --trim-w: 148.5mm;
  --trim-h: 210mm;
  --sheet-w: 154.5mm;
  --sheet-h: 216mm;
  --font-display: "Songti SC", "Source Han Serif SC", "Noto Serif CJK SC", STSong, SimSun, serif;
  --font-body: "PingFang SC", "Source Han Sans SC", "Noto Sans CJK SC", "Microsoft YaHei", sans-serif;
  --font-mono: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
}

* { box-sizing: border-box; }

html,
body { min-height: 100%; }

body {
  margin: 0;
  color: var(--ink);
  background:
    linear-gradient(90deg, rgba(16, 16, 16, .04) 1px, transparent 1px),
    linear-gradient(180deg, rgba(16, 16, 16, .04) 1px, transparent 1px),
    var(--screen);
  background-size: 28px 28px;
  font-family: var(--font-body);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

button { font: inherit; }

.viewer {
  min-height: 100vh;
  display: grid;
  grid-template-rows: auto 1fr;
}

.toolbar {
  position: sticky;
  top: 0;
  z-index: 10;
  min-height: 54px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 8px 18px;
  border-bottom: 1px solid rgba(16, 16, 16, .16);
  background: rgba(247, 247, 244, .94);
  backdrop-filter: blur(14px);
}

.toolbar-title {
  display: grid;
  gap: 1px;
}

.toolbar-title strong {
  font-size: 13px;
  font-weight: 650;
  letter-spacing: .02em;
}

.toolbar-title span {
  color: #666;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.toolbar-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.toolbar button {
  min-height: 34px;
  padding: 0 12px;
  border: 1px solid var(--ink);
  border-radius: 2px;
  background: transparent;
  color: var(--ink);
  cursor: pointer;
  font-size: 12px;
}

.toolbar button.primary {
  background: var(--ink);
  color: var(--white);
}

.stage {
  min-width: max-content;
  display: grid;
  place-items: start center;
  padding: 32px;
  overflow: auto;
}

.sheet {
  position: relative;
  width: var(--sheet-w);
  height: var(--sheet-h);
  overflow: hidden;
  background: var(--paper);
  box-shadow: 0 24px 72px rgba(16, 16, 16, .24);
  isolation: isolate;
}

.trim {
  position: absolute;
  inset: var(--bleed);
  overflow: hidden;
  background: var(--paper);
}

.cover-two {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  grid-template-rows: auto 1fr auto;
  column-gap: 3.5mm;
  padding: 11mm 11mm 10mm;
  color: var(--ink);
}

.cover-two::before {
  content: "";
  position: absolute;
  top: 11mm;
  bottom: 10mm;
  left: 50%;
  width: .24mm;
  background: rgba(16, 16, 16, .12);
  transform: translateX(-50%);
}

.cover-meta {
  grid-column: 1 / 7;
  position: relative;
  z-index: 1;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8mm;
  padding-bottom: 4mm;
  border-bottom: .25mm solid var(--hairline);
  color: #666662;
  font-family: var(--font-mono);
  font-size: 6.8pt;
  line-height: 1.35;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.cover-meta span:last-child { text-align: right; }

.cover-stage {
  grid-column: 1 / 7;
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  min-height: 0;
}

.cover-stage::after {
  content: "中";
  position: absolute;
  right: -1mm;
  bottom: 7mm;
  z-index: -1;
  color: rgba(16, 16, 16, .035);
  font-family: var(--font-display);
  font-size: 92pt;
  line-height: .8;
  letter-spacing: -.08em;
}

.cover-mark {
  position: relative;
  width: 93mm;
  height: 116mm;
  display: grid;
  place-items: center;
}

.cover-logo {
  position: relative;
  z-index: 1;
  display: block;
  width: 70mm;
  height: 88mm;
  object-fit: contain;
  mix-blend-mode: multiply;
}

.cover-index {
  position: absolute;
  left: 0;
  top: 50%;
  color: rgba(16, 16, 16, .46);
  font-family: var(--font-mono);
  font-size: 6pt;
  line-height: 1;
  letter-spacing: .18em;
  text-transform: uppercase;
  transform: translate(-50%, -50%) rotate(-90deg);
  white-space: nowrap;
}

.cover-title {
  grid-column: 1 / 7;
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8mm;
  align-items: end;
  padding-top: 5mm;
  border-top: .25mm solid var(--ink);
}

.cover-title h1 {
  margin: 0;
  font-family: var(--font-display);
  font-size: 23pt;
  line-height: 1;
  font-weight: 500;
  letter-spacing: .12em;
}

.cover-title p {
  margin: 0;
  color: #666662;
  font-family: var(--font-mono);
  font-size: 6.6pt;
  line-height: 1.45;
  letter-spacing: .1em;
  text-align: right;
  text-transform: uppercase;
}

.page-content {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  column-gap: 3.4mm;
  background: var(--paper);
}

.page-even { padding: 11mm 15mm 10mm 11mm; }
.page-odd { padding: 11mm 11mm 10mm 15mm; }

.page-header {
  grid-column: 1 / 7;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8mm;
  color: #666662;
  font-family: var(--font-mono);
  font-size: 6.8pt;
  line-height: 1.35;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.page-header span:last-child { text-align: right; }

.page-rule {
  grid-column: 1 / 7;
  height: .25mm;
  background: var(--hairline);
}

.page-footer {
  grid-column: 1 / 7;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 8mm;
  padding-top: 3mm;
  border-top: .25mm solid var(--ink);
  color: #666662;
  font-family: var(--font-mono);
  font-size: 6.6pt;
  line-height: 1.3;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.page-footer span:last-child {
  color: var(--ink);
  font-size: 8.6pt;
  font-weight: 700;
}

.page-two {
  grid-template-rows: auto 4mm auto auto 1fr auto;
}

.page-two .page-header { grid-row: 1; }
.page-two .page-rule { grid-row: 2; align-self: end; }

.opening-heading-two {
  grid-column: 1 / 7;
  grid-row: 3;
  padding: 9mm 0 6mm;
}

.opening-heading-two h1 {
  margin: 0;
  font-family: var(--font-display);
  font-size: 25pt;
  line-height: 1.08;
  font-weight: 500;
  letter-spacing: .07em;
}

.opening-heading-two p {
  margin: 4mm 0 0;
  max-width: 31em;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 10.6pt;
  line-height: 1.65;
}

.opening-classic-two {
  grid-column: 1 / 7;
  grid-row: 4;
  margin: 0;
  padding: 5mm 0 5mm 10mm;
  border-top: .25mm solid var(--ink);
  border-bottom: .25mm solid var(--hairline);
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 11.8pt;
  line-height: 1.82;
  text-align: left;
}

.opening-body-two {
  grid-column: 1 / 7;
  grid-row: 5;
  align-self: start;
  display: grid;
  gap: 5mm;
  padding-top: 7mm;
}

.opening-body-two p {
  margin: 0;
  color: #565652;
  font-size: 9.2pt;
  line-height: 1.86;
  text-align: justify;
  text-justify: inter-ideograph;
}

.page-two .page-footer { grid-row: 6; }

.page-two::after {
  content: "开";
  position: absolute;
  right: 8mm;
  bottom: 17mm;
  color: rgba(16, 16, 16, .03);
  font-family: var(--font-display);
  font-size: 88pt;
  line-height: 1;
  pointer-events: none;
}

.page-three {
  grid-template-rows: auto 4mm auto auto 1fr auto;
}

.page-three .page-header { grid-row: 1; }
.page-three .page-rule { grid-row: 2; align-self: end; }

.secret-heading-two {
  grid-column: 1 / 7;
  grid-row: 3;
  margin: 0;
  padding: 9mm 0 4.5mm;
  border-bottom: .55mm solid var(--ink);
  font-family: var(--font-display);
  font-size: 21pt;
  line-height: 1.18;
  font-weight: 500;
  letter-spacing: .025em;
}

.secret-lead-two {
  grid-column: 2 / 7;
  grid-row: 4;
  margin: 0;
  padding: 5mm 0 5.5mm;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 10.5pt;
  line-height: 1.78;
  text-align: left;
}

.secret-text-two {
  grid-column: 1 / 7;
  grid-row: 5;
  align-self: start;
  display: grid;
  border-top: .25mm solid var(--ink);
}

.secret-text-two p {
  margin: 0;
  padding: 3.25mm 2mm;
  border-bottom: .25mm solid var(--hairline);
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 10pt;
  line-height: 1.55;
  text-align: left;
}

.secret-text-two p:last-child {
  margin-top: 4mm;
  padding: 4.2mm 4.5mm;
  border: .25mm solid var(--ink);
  font-size: 11.3pt;
  line-height: 1.65;
}

.page-three .page-footer { grid-row: 6; }

.page-four {
  grid-template-rows: auto 4mm auto auto 1fr auto;
}

.page-four .page-header { grid-row: 1; }
.page-four .page-rule { grid-row: 2; align-self: end; }

.master-heading {
  grid-column: 1 / 7;
  grid-row: 3;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 8mm;
  padding: 7mm 0 4.5mm;
}

.master-heading h1 {
  margin: 0;
  font-family: var(--font-display);
  font-size: 28pt;
  line-height: 1;
  font-weight: 500;
  letter-spacing: .11em;
}

.master-heading p {
  margin: 0 0 .8mm;
  color: #666662;
  font-family: var(--font-mono);
  font-size: 6.6pt;
  line-height: 1.5;
  letter-spacing: .11em;
  text-align: right;
  text-transform: uppercase;
}

.master-photo-pair {
  grid-column: 1 / 7;
  grid-row: 4;
  height: 65mm;
  display: grid;
  grid-template-columns: 1fr;
}

.photo-frame {
  position: relative;
  min-width: 0;
  min-height: 0;
  margin: 0;
  overflow: hidden;
  background: #d7d7d2;
}

.photo-frame img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(1) contrast(1.06);
}

.master-photo-main img { object-position: 57% 47%; }
.master-photo-secondary img { object-position: 55% 48%; }

.master-intro {
  grid-column: 1 / 7;
  grid-row: 5;
  align-self: start;
  display: grid;
  grid-template-columns: 31mm 1fr;
  gap: 6mm;
  padding-top: 6mm;
}

.master-intro blockquote {
  margin: 0;
  padding-top: 3mm;
  border-top: .55mm solid var(--ink);
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 10.2pt;
  line-height: 1.65;
}

.master-intro-copy {
  display: grid;
  gap: 3.2mm;
}

.master-intro-copy p {
  margin: 0;
  color: #4d4d49;
  font-size: 8.7pt;
  line-height: 1.8;
  text-align: justify;
  text-justify: inter-ideograph;
}

.page-four .page-footer { grid-row: 6; }

.page-five {
  grid-template-rows: auto 4mm auto auto auto 1fr auto;
}

.page-five .page-header { grid-row: 1; }
.page-five .page-rule { grid-row: 2; align-self: end; }

.teaching-heading {
  grid-column: 1 / 7;
  grid-row: 3;
  display: grid;
  grid-template-columns: 1fr 41mm;
  gap: 6mm;
  align-items: end;
  padding: 7mm 0 4mm;
}

.teaching-heading h1 {
  margin: 0;
  font-family: var(--font-display);
  font-size: 20.5pt;
  line-height: 1.15;
  font-weight: 500;
  letter-spacing: .035em;
}

.teaching-heading p {
  margin: 0;
  padding-left: 3mm;
  border-left: .55mm solid var(--ink);
  color: #555551;
  font-family: var(--font-display);
  font-size: 7.8pt;
  line-height: 1.7;
}

.teaching-hero {
  grid-column: 1 / 7;
  grid-row: 4;
  height: 50mm;
}

.teaching-hero img { object-position: 50% 12%; }

.teaching-details {
  grid-column: 1 / 7;
  grid-row: 5;
  height: 31mm;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3mm;
  margin-top: 3mm;
}

.teaching-detail-fist img { object-position: 55% 46%; }
.teaching-detail-guidance img { object-position: 53% 48%; }

.teaching-principles {
  grid-column: 1 / 7;
  grid-row: 6;
  align-self: start;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3.2mm;
  padding-top: 5mm;
}

.teaching-principle {
  padding-top: 3mm;
  border-top: .55mm solid var(--ink);
}

.teaching-principle span {
  display: block;
  margin-bottom: 2mm;
  color: #777773;
  font-family: var(--font-mono);
  font-size: 5.7pt;
  line-height: 1;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.teaching-principle h2 {
  margin: 0 0 2mm;
  font-family: var(--font-display);
  font-size: 12pt;
  line-height: 1.2;
  font-weight: 500;
  letter-spacing: .08em;
}

.teaching-principle p {
  margin: 0;
  color: #555551;
  font-size: 7.2pt;
  line-height: 1.68;
  text-align: justify;
  text-justify: inter-ideograph;
}

.page-five .page-footer { grid-row: 7; }

.page-six,
.page-seven {
  grid-template-rows: auto 4mm auto 1fr auto;
}

.page-six {
  color: var(--ink);
  background: var(--paper);
}

.page-six .page-header,
.page-seven .page-header { grid-row: 1; }

.page-six .page-rule,
.page-seven .page-rule {
  grid-row: 2;
  align-self: end;
}

.body-concept-heading {
  grid-column: 1 / 7;
  grid-row: 3;
  display: grid;
  grid-template-columns: 19mm 1fr;
  gap: 6mm;
  align-items: start;
  padding: 7mm 0 3.5mm;
}

.body-concept-heading h1 {
  margin: 0;
  font-family: var(--font-display);
  font-size: 36pt;
  line-height: .9;
  font-weight: 500;
}

.body-concept-heading blockquote {
  margin: 0;
  padding-top: 1mm;
  font-family: var(--font-display);
  font-size: 9.6pt;
  line-height: 1.72;
}

.body-concept-heading small {
  display: block;
  margin-top: 2mm;
  color: #72726d;
  font-family: var(--font-mono);
  font-size: 5.8pt;
  line-height: 1.4;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.annotation-map {
  grid-column: 1 / 7;
  grid-row: 4;
  position: relative;
  min-height: 0;
  overflow: hidden;
}

.annotation-source-window {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 1;
  overflow: hidden;
  transform: translate(-50%, -50%);
}

.annotation-source-window img {
  position: absolute;
  top: 0;
  display: block;
  width: auto;
  max-width: none;
}

.zang-source-window {
  width: 65mm;
  height: 92%;
}

.zang-source-window img {
  left: 50%;
  height: 100%;
  transform: translateX(-50%);
}

.layer-source-window {
  width: 52mm;
  height: 94%;
}

.layer-source-window img {
  left: 50%;
  height: 100%;
  transform: translateX(-50%);
}

.annotation-lines {
  position: absolute;
  inset: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
}

.annotation-lines path,
.annotation-lines polyline {
  fill: none;
  stroke: #101010;
  stroke-width: 1.5;
  stroke-linecap: square;
  stroke-linejoin: miter;
  vector-effect: non-scaling-stroke;
}

.annotation-lines circle { fill: #101010; }

.anatomy-callout {
  position: absolute;
  z-index: 3;
  width: 36mm;
}

.anatomy-callout h2 {
  margin: 0 0 1.4mm;
  padding-top: 1.8mm;
  border-top: .4mm solid currentColor;
  font-family: var(--font-display);
  font-size: 10.5pt;
  line-height: 1.15;
  font-weight: 500;
  letter-spacing: .05em;
}

/* The anatomy rules and leaders are drawn as one SVG stroke so the joint
   remains seamless at every browser zoom level. Keep the border space only. */
.page-six .anatomy-callout h2,
.page-seven .anatomy-callout h2 {
  border-top-color: transparent;
}

.anatomy-callout h2 span {
  margin-right: 2mm;
  color: #888883;
  font-family: var(--font-mono);
  font-size: 5.4pt;
  letter-spacing: .1em;
  vertical-align: .16em;
}

.anatomy-callout p {
  margin: 0;
  color: #5b5b57;
  font-size: 6.7pt;
  line-height: 1.58;
  text-align: justify;
  text-justify: inter-ideograph;
}

.zang-lung { left: 0; top: 3%; }
.zang-heart { right: 0; top: 12%; }
.zang-liver { left: 0; top: 45%; }
.zang-spleen { right: 0; top: 49%; }
.zang-kidney { right: 0; bottom: 2%; }

.zang-heart,
.zang-spleen,
.zang-kidney { width: 29mm; }

.zang-lung,
.zang-liver { width: 29mm; }

.layer-skin { left: 0; top: 3%; }
.layer-flesh { left: 0; top: 34%; }
.layer-sinew { left: 0; top: 76%; }
.layer-fascia { right: 0; top: 15%; }
.layer-bone { right: 0; top: 40%; }
.layer-marrow { right: 0; top: 58%; }

.layer-bone,
.layer-marrow { width: 34mm; }

.page-six .page-footer,
.page-seven .page-footer { grid-row: 5; }

.page-eight,
.page-nine {
  grid-template-rows: auto 4mm auto 1fr auto;
}

.page-eight .page-header,
.page-nine .page-header { grid-row: 1; }

.page-eight .page-rule,
.page-nine .page-rule {
  grid-row: 2;
  align-self: end;
}

.qi-return-heading,
.orbit-heading {
  grid-column: 1 / 7;
  grid-row: 3;
  display: grid;
  align-items: end;
  gap: 6mm;
  padding: 7mm 0 4.5mm;
  border-bottom: .55mm solid var(--ink);
}

.qi-return-heading { grid-template-columns: 1fr 42mm; }
.orbit-heading { grid-template-columns: 34mm 1fr; }

.qi-return-heading h1,
.orbit-heading h1 {
  margin: 0;
  font-family: var(--font-display);
  font-size: 22pt;
  line-height: 1.22;
  font-weight: 500;
  letter-spacing: .025em;
}

.qi-return-heading blockquote {
  margin: 0;
  padding-left: 3.5mm;
  border-left: .55mm solid var(--ink);
  font-family: var(--font-display);
  font-size: 9.2pt;
  line-height: 1.75;
}

.page-eight .qi-return-heading { grid-template-columns: 1fr; }

.orbit-heading p {
  margin: 0;
  color: #5d5d59;
  font-size: 8.4pt;
  line-height: 1.7;
}

.breath-descent {
  grid-column: 1 / 7;
  grid-row: 4;
  position: relative;
  min-height: 0;
  display: grid;
  grid-template-rows: repeat(4, 1fr) auto;
  padding-top: 3mm;
}

.breath-descent::before {
  content: "";
  position: absolute;
  left: 28.5mm;
  top: 12mm;
  bottom: 43mm;
  width: .35mm;
  background: var(--ink);
}

.breath-descent::after {
  content: "";
  position: absolute;
  left: 26.9mm;
  bottom: 41.5mm;
  width: 3mm;
  height: 3mm;
  border-right: .35mm solid var(--ink);
  border-bottom: .35mm solid var(--ink);
  transform: rotate(45deg);
}

.breath-level {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 20mm 11mm 1fr;
  gap: 3.5mm;
  align-items: center;
  border-bottom: .25mm solid var(--hairline);
}

.breath-level-index {
  color: #858580;
  font-family: var(--font-mono);
  font-size: 5.8pt;
  line-height: 1.4;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.breath-level-index strong {
  display: block;
  margin-bottom: 1.5mm;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 12pt;
  line-height: 1;
  font-weight: 500;
  letter-spacing: .08em;
}

.breath-node {
  width: 3.2mm;
  height: 3.2mm;
  justify-self: center;
  border: .55mm solid var(--ink);
  border-radius: 50%;
  background: var(--paper);
}

.breath-level:last-of-type .breath-node { background: var(--ink); }

.breath-level p {
  margin: 0;
  color: #555551;
  font-family: var(--font-display);
  font-size: 9pt;
  line-height: 1.6;
}

.breath-level p span {
  display: block;
  color: #858580;
  font-family: var(--font-mono);
  font-size: 5.8pt;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.qi-conclusion {
  margin: 4mm 0 0 34.5mm;
  padding: 3mm 0 5mm;
  border-top: .55mm solid var(--ink);
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 9.2pt;
  line-height: 1.78;
}

.breath-descent-split {
  grid-template-rows: repeat(2, 1fr) auto;
  padding-top: 5mm;
}

.breath-descent-upper .breath-level { width: 75mm; }

.reverse-flow-axiom {
  position: absolute;
  right: 0;
  top: 39%;
  width: 43mm;
  margin: 0;
  padding: 4mm 0 4mm 4mm;
  border-left: .55mm solid var(--ink);
  font-family: var(--font-display);
  font-size: 11.8pt;
  line-height: 1.75;
}

.qi-stage-explanation {
  position: absolute;
  left: 40mm;
  right: 0;
  bottom: 4mm;
  margin: 0;
  padding-top: 4mm;
  border-top: .55mm solid var(--ink);
  font-family: var(--font-display);
  font-size: 10.8pt;
  line-height: 1.72;
}

.breath-descent-split::before {
  left: 33.5mm;
  top: 18mm;
  bottom: 37mm;
}

.breath-descent-split::after {
  left: 31.9mm;
  bottom: 35.5mm;
}

.breath-descent-split .breath-level {
  grid-template-columns: 24mm 12mm 1fr;
}

.breath-descent-split .breath-level-index strong { font-size: 15pt; }

.breath-descent-split .breath-level p {
  font-size: 10.5pt;
  line-height: 1.55;
}

.breath-descent-split .breath-level p span {
  margin-top: 1.3mm;
  font-size: 6.1pt;
}

.qi-stage-continuation {
  margin: 6mm 0 0 40mm;
  padding: 4mm 0 0;
  border-top: .55mm solid var(--ink);
}

.qi-stage-continuation span {
  display: block;
  margin-bottom: 1.8mm;
  color: #858580;
  font-family: var(--font-mono);
  font-size: 5.8pt;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.qi-stage-continuation p {
  margin: 0;
  font-family: var(--font-display);
  font-size: 11pt;
  line-height: 1.65;
}

.qi-return-heading-second h1 { font-size: 24pt; }

.breath-descent-lower .qi-conclusion {
  margin-left: 40mm;
  padding-bottom: 6mm;
  font-size: 10pt;
}

.qi-return-layout {
  grid-column: 1 / 7;
  grid-row: 4;
  min-height: 0;
  display: grid;
  grid-template-columns: 1fr 50mm;
  grid-template-rows: 1fr auto;
  gap: 5mm;
  padding-top: 4mm;
}

.qi-return-layout .breath-descent {
  grid-column: 1;
  grid-row: 1;
  min-height: 0;
  padding-top: 0;
}

.qi-return-layout .breath-descent::before {
  top: 12mm;
  bottom: 10mm;
}

.qi-return-layout .breath-descent::after { bottom: 8.5mm; }

.qi-body-map {
  grid-column: 2;
  grid-row: 1;
  position: relative;
  min-height: 0;
  margin: 0;
  overflow: hidden;
}

.qi-body-map img {
  position: absolute;
  inset: 0 0 0 auto;
  display: block;
  width: 30mm;
  height: 100%;
  object-fit: contain;
  mix-blend-mode: multiply;
}

.qi-body-label {
  position: absolute;
  left: 0;
  z-index: 2;
  width: 18mm;
  padding-bottom: 1.2mm;
  border-bottom: .35mm solid transparent;
  font-family: var(--font-display);
  font-size: 7.8pt;
  line-height: 1;
  letter-spacing: .08em;
}

.qi-body-label::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -.35mm;
  width: 34mm;
  border-bottom: .35mm solid var(--ink);
}

.qi-body-label::before {
  content: "";
  position: absolute;
  right: -16.7mm;
  bottom: -.85mm;
  z-index: 2;
  width: 1.7mm;
  height: 1.7mm;
  border-radius: 50%;
  background: var(--ink);
}

.qi-body-throat { top: 31%; }
.qi-body-chest { top: 40%; }
.qi-body-abdomen { top: 48%; }
.qi-body-dantian { top: 60%; }

.qi-return-layout > .qi-conclusion {
  grid-column: 1 / 3;
  grid-row: 2;
  margin: 0;
  padding: 3.2mm 0 4.5mm 40mm;
  border-top: .55mm solid var(--ink);
  font-size: 10pt;
}

.page-eight .page-footer,
.page-nine .page-footer { grid-row: 5; }

/* Book II · pages 08–09 content separation · 2026-07-26 */
.page-eight .qi-position-heading {
  grid-template-columns: 1fr 39mm;
}

.qi-position-heading p {
  margin: 0;
  padding-left: 3.5mm;
  border-left: .55mm solid var(--ink);
  font-family: var(--font-display);
  font-size: 8.8pt;
  line-height: 1.72;
}

.qi-position-layout {
  grid-column: 1 / 7;
  grid-row: 4;
  position: relative;
  min-height: 0;
  overflow: hidden;
}

.qi-position-figure {
  position: absolute;
  inset: 2mm auto 1mm 50%;
  z-index: 1;
  width: 58mm;
  margin: 0;
  transform: translateX(-50%);
}

.qi-position-figure img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  mix-blend-mode: multiply;
}

.qi-position-card {
  position: absolute;
  z-index: 3;
  width: 32mm;
  padding-top: 2.4mm;
  background: transparent;
}

.qi-position-card span {
  display: block;
  margin-bottom: 1.4mm;
  color: #858580;
  font-family: var(--font-mono);
  font-size: 5.7pt;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.qi-position-card h2 {
  margin: 0 0 1.2mm;
  font-family: var(--font-display);
  font-size: 14pt;
  line-height: 1;
  font-weight: 500;
  letter-spacing: .08em;
}

.qi-position-card p {
  margin: 0;
  color: #5b5b57;
  font-family: var(--font-display);
  font-size: 8.2pt;
  line-height: 1.55;
}

.qi-position-throat { left: 0; top: 13%; }
.qi-position-chest { right: 0; top: 33%; }
.qi-position-abdomen { left: 0; top: 53%; }
.qi-position-dantian { right: 0; top: 73%; }

.qi-position-links {
  position: absolute;
  inset: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.qi-position-links polyline {
  fill: none;
  stroke: var(--ink);
  stroke-width: 1.32;
  stroke-linecap: butt;
  stroke-linejoin: miter;
  vector-effect: non-scaling-stroke;
}

.qi-position-links circle {
  fill: var(--ink);
  stroke: var(--paper);
  stroke-width: 1.2;
  vector-effect: non-scaling-stroke;
}

.page-nine .qi-text-heading { grid-template-columns: 1fr 51mm; }
.page-nine .qi-text-heading h1 { font-size: 21pt; }

.qi-text-layout {
  grid-column: 1 / 7;
  grid-row: 4;
  min-height: 0;
  display: grid;
  grid-template-rows: 25mm repeat(2, minmax(0, 1fr));
  gap: 4mm;
  padding-top: 5mm;
}

.qi-text-flow {
  min-height: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: .45mm solid var(--ink);
  border-bottom: .25mm solid var(--hairline);
}

.qi-text-flow div {
  position: relative;
  display: grid;
  align-content: center;
  padding: 2.2mm 3mm 2mm 0;
  border-right: .25mm solid var(--hairline);
}

.qi-text-flow div:last-child { border-right: 0; padding-right: 0; }
.qi-text-flow div:not(:last-child)::after {
  content: "→";
  position: absolute;
  right: 1.5mm;
  top: 50%;
  color: #858580;
  font-size: 8pt;
  transform: translateY(-50%);
}

.qi-text-flow span,
.qi-text-section > span {
  color: #858580;
  font-family: var(--font-mono);
  font-size: 5.5pt;
  line-height: 1.4;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.qi-text-flow strong {
  margin-top: 1mm;
  font-family: var(--font-display);
  font-size: 11.5pt;
  font-weight: 500;
  letter-spacing: .08em;
}

.qi-text-flow small {
  margin-top: .7mm;
  color: #666662;
  font-family: var(--font-display);
  font-size: 6.8pt;
}

.qi-text-section {
  min-height: 0;
  display: grid;
  grid-template-columns: 27mm 1fr;
  align-items: start;
  gap: 5mm;
  padding: 5mm 0 4mm;
  border-top: .35mm solid var(--ink);
}

.qi-text-section div {
  max-width: 74mm;
}

.qi-text-section h2 {
  margin: 0 0 3mm;
  font-family: var(--font-display);
  font-size: 17pt;
  line-height: 1;
  font-weight: 500;
  letter-spacing: .08em;
}

.qi-text-section p {
  margin: 0;
  font-family: var(--font-display);
  font-size: 12pt;
  line-height: 1.85;
  text-align: justify;
}

.qi-text-practice {
  border-top-color: var(--hairline);
}

.orbit-layout {
  grid-column: 1 / 7;
  grid-row: 4;
  min-height: 0;
  display: grid;
  grid-template-columns: 50mm 1fr;
  gap: 5mm;
  padding: 4.5mm 0 3.5mm;
}

.orbit-figure {
  position: relative;
  min-width: 0;
  min-height: 0;
  margin: 0;
  display: grid;
  place-items: center;
}

.orbit-figure img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.orbit-figure::after {
  content: "督升 · 任降";
  position: absolute;
  left: 0;
  bottom: 1mm;
  color: #858580;
  font-family: var(--font-mono);
  font-size: 5.6pt;
  line-height: 1;
  letter-spacing: .12em;
  writing-mode: vertical-rl;
  text-transform: uppercase;
}

.orbit-copy {
  min-height: 0;
  display: grid;
  grid-template-rows: repeat(3, auto) 1fr;
  align-content: start;
}

.orbit-step {
  padding: 3.7mm 0;
  border-top: .25mm solid var(--hairline);
}

.orbit-step:first-child {
  padding-top: 0;
  border-top: 0;
}

.orbit-step span {
  display: block;
  margin-bottom: 1.6mm;
  color: #858580;
  font-family: var(--font-mono);
  font-size: 5.7pt;
  line-height: 1;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.orbit-step h2 {
  margin: 0 0 2mm;
  font-family: var(--font-display);
  font-size: 11.5pt;
  line-height: 1.2;
  font-weight: 500;
}

.orbit-step p {
  margin: 0;
  color: #4f4f4b;
  font-size: 7.5pt;
  line-height: 1.7;
  text-align: justify;
  text-justify: inter-ideograph;
}

.orbit-route {
  align-self: end;
  margin: 3mm 0 0;
  padding: 3mm 0;
  border-top: .55mm solid var(--ink);
  border-bottom: .25mm solid var(--ink);
  color: var(--ink);
  font-family: var(--font-mono);
  font-size: 7.2pt;
  line-height: 1.7;
  letter-spacing: .02em;
}

.page-ten,
.page-eleven {
  grid-template-rows: auto 4mm auto 1fr auto;
}

.page-ten .page-header,
.page-eleven .page-header { grid-row: 1; }

.page-ten .page-rule,
.page-eleven .page-rule {
  grid-row: 2;
  align-self: end;
}

.macro-heading {
  grid-column: 1 / 7;
  grid-row: 3;
  display: grid;
  grid-template-columns: 1fr;
  gap: 6mm;
  align-items: end;
  padding: 7mm 0 4.5mm;
  border-bottom: .55mm solid var(--ink);
}

.macro-heading h1 {
  margin: 0;
  font-family: var(--font-display);
  font-size: 23pt;
  line-height: 1;
  font-weight: 500;
  letter-spacing: .08em;
}

.macro-heading p {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 9pt;
  line-height: 1.72;
}

.macro-layout {
  grid-column: 1 / 7;
  grid-row: 4;
  min-height: 0;
  display: grid;
  grid-template-columns: 1fr 58mm;
  gap: 5mm;
  padding: 4.5mm 0 3.5mm;
  position: relative;
}

.macro-copy {
  position: relative;
  z-index: 3;
  min-height: 0;
  display: grid;
  grid-template-rows: auto auto auto 1fr;
  align-content: start;
}

.macro-lead {
  margin: 0 0 2mm;
  padding: 0 0 3mm;
  border-bottom: .55mm solid var(--ink);
  font-family: var(--font-display);
  font-size: 8.7pt;
  line-height: 1.6;
}

.macro-step {
  padding: 2.4mm 0;
  border-top: .25mm solid var(--hairline);
}

.macro-step:first-child {
  padding-top: 0;
  border-top: 0;
}

.macro-step span {
  display: block;
  margin-bottom: 1.8mm;
  color: #858580;
  font-family: var(--font-mono);
  font-size: 5.8pt;
  line-height: 1;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.macro-step h2 {
  margin: 0 0 1.2mm;
  font-family: var(--font-display);
  font-size: 12.5pt;
  line-height: 1.2;
  font-weight: 500;
  letter-spacing: .05em;
}

.macro-step p {
  margin: 0;
  color: #50504c;
  font-size: 7.3pt;
  line-height: 1.55;
  text-align: justify;
  text-justify: inter-ideograph;
}

.macro-keypoints {
  position: absolute;
  left: 0;
  top: 53%;
  z-index: 3;
  width: 36mm;
  display: grid;
  grid-template-columns: 1fr;
  gap: 28.5mm;
  padding: 0;
  border: 0;
}

.macro-keypoint {
  padding: 2.5mm 0 0;
  border: 0;
  border-top: .45mm solid transparent;
}

.macro-keypoint strong {
  display: block;
  margin-bottom: 1mm;
  font-family: var(--font-display);
  font-size: 10pt;
  font-weight: 500;
}

.macro-keypoint small {
  color: #777773;
  font-family: var(--font-mono);
  font-size: 5.6pt;
  line-height: 1.4;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.macro-figure {
  position: relative;
  z-index: 1;
  min-width: 0;
  min-height: 0;
  margin: 0;
  display: grid;
  place-items: center;
}

.macro-connectors {
  position: absolute;
  inset: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
}

.macro-connectors polyline {
  fill: none;
  stroke: #101010;
  stroke-width: 1.5;
  stroke-linecap: square;
  stroke-linejoin: miter;
  vector-effect: non-scaling-stroke;
}

.macro-connectors circle { fill: var(--ink); }

.macro-figure img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.page-ten .page-footer,
.page-eleven .page-footer { grid-row: 5; }

.page-eleven-placeholder {
  grid-column: 1 / 7;
  grid-row: 3 / 5;
  position: relative;
  min-height: 0;
}

.page-eleven-placeholder::after {
  content: "XI";
  position: absolute;
  right: 0;
  bottom: 6mm;
  color: rgba(16, 16, 16, .035);
  font-family: var(--font-display);
  font-size: 84pt;
  line-height: .8;
}

.page-twelve,
.page-thirteen {
  grid-template-rows: auto 4mm auto 1fr auto auto;
}

.page-twelve .page-header,
.page-thirteen .page-header { grid-row: 1; }

.page-twelve .page-rule,
.page-thirteen .page-rule {
  grid-row: 2;
  align-self: end;
}

.meridian-heading {
  grid-column: 1 / 7;
  grid-row: 3;
  display: grid;
  grid-template-columns: 34mm 1fr;
  gap: 5mm;
  align-items: end;
  padding: 6.5mm 0 4mm;
  border-bottom: .55mm solid var(--ink);
}

.meridian-heading h1 {
  margin: 0;
  font-family: var(--font-display);
  font-size: 21pt;
  line-height: 1;
  font-weight: 500;
  letter-spacing: .07em;
}

.meridian-heading p {
  margin: 0;
  font-family: var(--font-display);
  font-size: 8.6pt;
  line-height: 1.65;
  text-align: justify;
  text-justify: inter-ideograph;
}

.meridian-layout {
  grid-column: 1 / 7;
  grid-row: 4;
  min-height: 0;
  display: grid;
  gap: 4.5mm;
  padding: 4mm 0 3mm;
  overflow: hidden;
}

.meridian-layout-back { grid-template-columns: 1fr 49mm; }
.meridian-layout-front { grid-template-columns: 45mm 1fr; }

.meridian-copy {
  min-width: 0;
  min-height: 0;
  display: grid;
  align-content: start;
}

.meridian-section {
  padding: 2.6mm 0;
  border-top: .25mm solid var(--hairline);
}

.meridian-section:first-child {
  padding-top: 0;
  border-top: 0;
}

.meridian-section > span,
.meridian-summary > span {
  display: block;
  margin-bottom: 1.2mm;
  color: #7c7c77;
  font-family: var(--font-mono);
  font-size: 5.3pt;
  line-height: 1;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.meridian-section h2 {
  margin: 0 0 1.3mm;
  font-family: var(--font-display);
  font-size: 10.8pt;
  line-height: 1.2;
  font-weight: 500;
  letter-spacing: .035em;
}

.meridian-section p {
  margin: 0 0 1mm;
  color: #41413e;
  font-size: 6.55pt;
  line-height: 1.58;
  text-align: justify;
  text-justify: inter-ideograph;
}

.meridian-section p:last-child { margin-bottom: 0; }
.meridian-section p strong { color: var(--ink); font-weight: 650; }

.meridian-figure-map {
  position: relative;
  min-width: 0;
  min-height: 0;
  margin: 0;
  overflow: hidden;
  border-left: .25mm solid var(--hairline);
  border-right: .25mm solid var(--hairline);
  background: rgba(255, 255, 255, .45);
}

.meridian-figure-map::before {
  content: "BODY AXIS / QI PATH";
  position: absolute;
  left: 3mm;
  bottom: 3mm;
  z-index: 4;
  color: #8b8b86;
  font-family: var(--font-mono);
  font-size: 4.8pt;
  line-height: 1;
  letter-spacing: .08em;
  writing-mode: vertical-rl;
}

.meridian-figure-map img {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 1;
  display: block;
  width: 55%;
  height: 94%;
  object-fit: contain;
  opacity: .16;
  transform: translate(-50%, -50%);
}

.meridian-figure-map svg {
  position: absolute;
  inset: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
}

.meridian-figure-map polyline {
  fill: none;
  stroke: #101010;
  stroke-width: 1.5;
  stroke-linecap: square;
  stroke-linejoin: miter;
  vector-effect: non-scaling-stroke;
}

.meridian-figure-map circle {
  fill: var(--paper);
  stroke: var(--ink);
  stroke-width: 1.5;
  vector-effect: non-scaling-stroke;
}

.meridian-callout {
  position: absolute;
  z-index: 3;
  width: 21mm;
  padding-top: 1.5mm;
  border-top: .4mm solid transparent;
}

.meridian-callout strong {
  display: block;
  margin-bottom: .8mm;
  font-family: var(--font-display);
  font-size: 9.5pt;
  line-height: 1;
  font-weight: 500;
  letter-spacing: .06em;
}

.meridian-callout small {
  display: block;
  color: #666662;
  font-size: 5.3pt;
  line-height: 1.45;
}

.point-dazhui { left: 2.5mm; top: 6%; }
.point-gaohuang { right: 2.5mm; top: 24%; }
.point-mingmen { left: 2.5mm; top: 68%; }
.point-danzhong { right: 2.5mm; top: 34%; }

.meridian-front-page .meridian-layout {
  padding-bottom: 2.5mm;
}

.meridian-front-page .meridian-figure-map img {
  width: 60%;
  height: 96%;
}

.meridian-copy-front .meridian-section {
  padding-block: 3mm;
}

.meridian-summary {
  grid-column: 1 / 7;
  grid-row: 5;
  margin-bottom: 3mm;
  padding: 3.2mm 3.5mm;
  border: .35mm solid var(--ink);
  background: rgba(255, 255, 255, .48);
}

.meridian-summary > span { margin-bottom: 1.5mm; }

.meridian-summary p {
  margin: 0;
  font-family: var(--font-display);
  font-size: 7.4pt;
  line-height: 1.62;
  text-align: justify;
  text-justify: inter-ideograph;
}

.page-twelve .page-footer,
.page-thirteen .page-footer { grid-row: 6; }

.page-fourteen {
  grid-template-rows: auto 4mm auto 1fr auto;
}

.page-fourteen .page-header { grid-row: 1; }
.page-fourteen .page-rule { grid-row: 2; align-self: end; }

.duality-heading {
  grid-column: 1 / 7;
  grid-row: 3;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 6mm;
  align-items: end;
  padding: 7mm 0 4mm;
  border-bottom: .55mm solid var(--ink);
}

.duality-heading > div > span {
  display: block;
  margin-bottom: 1.7mm;
  color: #797974;
  font-family: var(--font-mono);
  font-size: 5.4pt;
  line-height: 1;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.duality-heading h1,
.balance-heading h1 {
  margin: 0;
  font-family: var(--font-display);
  font-size: 23pt;
  line-height: 1;
  font-weight: 500;
  letter-spacing: .08em;
}

.duality-heading > p {
  margin: 0 0 .6mm;
  font-family: var(--font-display);
  font-size: 10.5pt;
  line-height: 1.35;
}

.duality-layout {
  grid-column: 1 / 7;
  grid-row: 4;
  min-height: 0;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  gap: 3mm;
  padding: 4mm 0 3mm;
}

.duality-hero {
  min-height: 0;
  margin: 0;
  overflow: hidden;
  background: rgba(255, 255, 255, .52);
}

.duality-hero img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  mix-blend-mode: multiply;
  transform: scale(1.38);
}

.duality-layout blockquote {
  margin: 0;
  padding: 3.2mm 0 0 8mm;
  border-top: .25mm solid var(--hairline);
  font-family: var(--font-display);
  font-size: 8.7pt;
  line-height: 1.72;
  text-align: justify;
  text-justify: inter-ideograph;
}

.page-fourteen .page-footer { grid-row: 5; }

.page-fifteen {
  grid-template-rows: auto 4mm auto auto 1fr auto;
}

.page-fifteen .page-header { grid-row: 1; }
.page-fifteen .page-rule { grid-row: 2; align-self: end; }

.balance-heading {
  grid-column: 1 / 7;
  grid-row: 3;
  display: grid;
  grid-template-columns: 34mm 1fr;
  gap: 5mm;
  align-items: end;
  padding: 6.5mm 0 3.5mm;
  border-bottom: .55mm solid var(--ink);
}

.balance-heading h1 { font-size: 21pt; }

.balance-heading p {
  margin: 0;
  font-family: var(--font-display);
  font-size: 8.4pt;
  line-height: 1.65;
  text-align: justify;
  text-justify: inter-ideograph;
}

.ratio-sequence {
  grid-column: 1 / 7;
  grid-row: 4;
  display: flex;
  align-items: center;
  gap: 2mm;
  padding: 3mm 0;
  font-family: var(--font-display);
  font-size: 8pt;
  white-space: nowrap;
}

.ratio-sequence span { flex: 0 0 auto; }

.ratio-sequence i {
  flex: 1 1 auto;
  height: .25mm;
  background: var(--hairline);
}

.yin-yang-gallery {
  grid-column: 1 / 7;
  grid-row: 5;
  min-height: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: 3mm;
  padding-bottom: 3mm;
}

.yin-yang-gallery figure {
  min-width: 0;
  min-height: 0;
  margin: 0;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  overflow: hidden;
  border: .25mm solid var(--hairline);
  background: #f4f1e9;
}

.yin-yang-gallery img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
  filter: contrast(1.03) saturate(.82);
}

.yin-yang-gallery figcaption {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 2mm;
  padding: 2mm 2.3mm;
  border-top: .25mm solid var(--hairline);
  background: var(--paper);
}

.yin-yang-gallery figcaption span,
.yin-yang-gallery figcaption small {
  color: #7a7a75;
  font-family: var(--font-mono);
  font-size: 5.1pt;
  line-height: 1;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.yin-yang-gallery figcaption strong {
  font-family: var(--font-display);
  font-size: 8.7pt;
  line-height: 1;
  font-weight: 500;
}

.page-fifteen .page-footer { grid-row: 6; }

.page-sixteen-two {
  grid-template-rows: auto 4mm auto 1fr auto;
}

.page-sixteen-two .page-header { grid-row: 1; }
.page-sixteen-two .page-rule { grid-row: 2; align-self: end; }

.three-heading {
  grid-column: 1 / 7;
  grid-row: 3;
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: 6.5mm;
  align-items: end;
  padding: 6.5mm 0 4mm;
  border-bottom: .55mm solid var(--ink);
}

.three-heading h1 {
  margin: 0;
  font-family: var(--font-display);
  font-size: 21pt;
  line-height: 1;
  font-weight: 500;
  letter-spacing: .08em;
  white-space: nowrap;
}

.three-heading p {
  margin: 0;
  font-family: var(--font-display);
  font-size: 8.2pt;
  line-height: 1.58;
}

.three-layout {
  grid-column: 1 / 7;
  grid-row: 4;
  min-height: 0;
  display: grid;
  grid-template-columns: 46mm 1fr;
  gap: 4.5mm;
  padding: 4mm 0 3mm;
  overflow: hidden;
}

.three-visual-column {
  min-height: 0;
  display: grid;
  grid-template-rows: 32.15mm 1fr;
  gap: 3mm;
}

.three-figure {
  position: relative;
  min-height: 0;
  margin: 0;
  overflow: hidden;
  background: transparent;
}

.three-figure img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center center;
}

.three-figure figcaption {
  display: none;
}

.three-loop {
  min-height: 0;
  display: grid;
  grid-template-rows: repeat(4, 1fr);
  border-top: .55mm solid var(--ink);
  border-bottom: 0;
}

.three-loop div {
  min-height: 0;
  display: grid;
  grid-template-columns: 8mm 1fr;
  align-items: center;
  border-top: .25mm solid var(--hairline);
}

.three-loop div:first-child { border-top: 0; }

.three-loop span {
  color: #777772;
  font-family: var(--font-mono);
  font-size: 5.2pt;
}

.three-loop strong {
  font-family: var(--font-display);
  font-size: 8.4pt;
  font-weight: 500;
}

.three-copy-column {
  min-width: 0;
  min-height: 0;
  display: grid;
  align-content: start;
}

.three-card {
  display: grid;
  grid-template-columns: 12mm 1fr;
  gap: 3mm;
  padding: 2.5mm 0;
  border-top: .25mm solid var(--hairline);
}

.three-card:first-child {
  padding-top: 0;
  border-top: 0;
}

.three-mark {
  display: grid;
  align-content: start;
  gap: 1mm;
}

.three-mark span,
.spirit-addition > span {
  color: #7a7a75;
  font-family: var(--font-mono);
  font-size: 5.1pt;
  line-height: 1;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.three-mark strong {
  font-family: var(--font-display);
  font-size: 20pt;
  line-height: 1;
  font-weight: 500;
}

.three-card h2,
.spirit-addition h2 {
  margin: 0 0 1mm;
  font-family: var(--font-display);
  font-size: 9.8pt;
  line-height: 1.2;
  font-weight: 500;
}

.three-card p,
.spirit-addition p {
  margin: 0;
  color: #4d4d49;
  font-size: 6.35pt;
  line-height: 1.55;
  text-align: justify;
  text-justify: inter-ideograph;
}

.spirit-addition {
  margin-top: 1.8mm;
  padding: 3mm 3.2mm;
  background: var(--ink);
  color: var(--paper);
}

.spirit-addition > span { color: rgba(255, 255, 255, .55); }

.spirit-addition h2 {
  margin-top: 1.5mm;
  color: var(--paper);
}

.spirit-addition p {
  margin-top: 1.4mm;
  color: rgba(255, 255, 255, .82);
}

.spirit-addition p strong { color: #fff; font-weight: 650; }

.spirit-mantra {
  min-height: 43mm;
  margin: 3mm 0 0;
  display: grid;
  align-content: center;
  gap: 2mm;
  padding: 4mm 0 4mm 9mm;
  border-top: .55mm solid var(--ink);
  border-bottom: .25mm solid var(--ink);
}

.spirit-mantra strong {
  font-family: var(--font-display);
  font-size: 14pt;
  line-height: 1;
  font-weight: 500;
  letter-spacing: .1em;
}

.spirit-mantra span {
  margin-top: 1mm;
  color: #777772;
  font-family: var(--font-mono);
  font-size: 5pt;
  line-height: 1;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.page-sixteen-two .page-footer { grid-row: 5; }

.page-seventeen-two {
  grid-template-rows: auto 4mm auto 1fr auto auto;
}

.page-seventeen-two .page-header { grid-row: 1; }
.page-seventeen-two .page-rule { grid-row: 2; align-self: end; }

.force-heading {
  grid-column: 1 / 7;
  grid-row: 3;
  display: grid;
  grid-template-columns: 1fr;
  align-items: end;
  padding: 6.5mm 0 3.5mm;
  border-bottom: .55mm solid var(--ink);
}

.force-heading h1 {
  margin: 0;
  font-family: var(--font-display);
  font-size: 21pt;
  line-height: 1;
  font-weight: 500;
  letter-spacing: .08em;
  white-space: nowrap;
}

.force-heading p {
  margin: 0;
  font-family: var(--font-display);
  font-size: 8.2pt;
  line-height: 1.6;
  text-align: justify;
  text-justify: inter-ideograph;
}

.force-stages {
  grid-column: 1 / 7;
  grid-row: 4;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-bottom: .25mm solid var(--ink);
}

.force-stages section {
  min-width: 0;
  padding: 2.5mm 3mm;
  border-bottom: .25mm solid var(--hairline);
}

.force-stages section:nth-child(odd) {
  padding-left: 0;
  border-right: .25mm solid var(--hairline);
}

.force-stages section:nth-child(even) { padding-right: 0; }
.force-stages section:nth-child(n + 3) { border-bottom: 0; }

.force-stages span,
.return-pair span,
.form-cycle > span {
  display: block;
  margin-bottom: 1.2mm;
  color: #7c7c77;
  font-family: var(--font-mono);
  font-size: 4.9pt;
  line-height: 1;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.force-stages h2,
.return-pair h2 {
  margin: 0 0 1.1mm;
  font-family: var(--font-display);
  font-size: 10.5pt;
  line-height: 1.15;
  font-weight: 500;
}

.force-stages p {
  margin: 0;
  color: #4d4d49;
  font-size: 6.7pt;
  line-height: 1.58;
  text-align: justify;
  text-justify: inter-ideograph;
}

.force-stage-copy {
  display: grid;
  gap: 1mm;
}

.force-stage-copy strong {
  font-family: var(--font-display);
  font-size: 7.8pt;
  line-height: 1.3;
  font-weight: 500;
}

.form-cycle {
  grid-column: 1 / 7;
  grid-row: 5;
  display: flex;
  align-items: baseline;
  gap: 2.1mm;
  padding: 2.7mm 0;
  border-bottom: 0;
  white-space: nowrap;
}

.form-cycle > span { margin: 0 1mm 0 0; }

.form-cycle strong {
  font-family: var(--font-display);
  font-size: 8.8pt;
  font-weight: 500;
}

.form-cycle i {
  color: #8b8b86;
  font-family: var(--font-mono);
  font-size: 7pt;
  font-style: normal;
}

.form-cycle p {
  min-width: 0;
  margin: 0 0 0 auto;
  color: #61615d;
  font-size: 7.2pt;
  line-height: 1.45;
  white-space: normal;
  text-align: right;
}

.return-pair {
  grid-column: 1 / 7;
  grid-row: 6;
  min-height: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4mm;
  padding: 3mm 0;
}

.return-pair section {
  position: relative;
  min-width: 0;
  padding: 3.5mm;
  border: .25mm solid var(--ink);
  overflow: hidden;
}

.return-pair section::after {
  position: absolute;
  right: 5mm;
  bottom: 5mm;
  z-index: 0;
  color: rgba(16, 16, 16, .04);
  font-family: var(--font-display);
  font-size: 68pt;
  line-height: .8;
}

.return-pair section:first-child::after { content: "童"; }
.return-pair section:last-child::after { content: "真"; }

.return-pair span,
.return-pair h2,
.return-pair p {
  position: relative;
  z-index: 1;
}

.return-pair h2 { font-size: 14pt; }

.return-pair p {
  margin: 0;
  color: #41413e;
  font-size: 6.9pt;
  line-height: 1.66;
  text-align: justify;
  text-justify: inter-ideograph;
}

.page-seventeen-two .page-footer { grid-row: 6; }

.page-eighteen {
  grid-template-rows: auto 4mm auto 1fr auto;
}

.page-eighteen .page-header { grid-row: 1; }
.page-eighteen .page-rule { grid-row: 2; align-self: end; }

.marrow-heading,
.washing-heading {
  grid-column: 1 / 7;
  grid-row: 3;
  display: grid;
  grid-template-columns: 44mm 1fr;
  gap: 5mm;
  align-items: end;
  padding: 6.5mm 0 4mm;
  border-bottom: .55mm solid var(--ink);
}

.marrow-heading h1,
.washing-heading h1 {
  margin: 0;
  font-family: var(--font-display);
  font-size: 20pt;
  line-height: 1.05;
  font-weight: 500;
  letter-spacing: .06em;
}

.marrow-heading p,
.washing-heading p {
  margin: 0;
  font-family: var(--font-display);
  font-size: 8.3pt;
  line-height: 1.62;
  text-align: justify;
  text-justify: inter-ideograph;
}

.marrow-origin-layout {
  grid-column: 1 / 7;
  grid-row: 4;
  min-height: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  padding: 4mm 0 3mm;
  overflow: hidden;
}

.marrow-origin-copy {
  min-width: 0;
  min-height: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 6mm;
  align-content: start;
}

.marrow-lead {
  grid-column: 1 / -1;
  margin: 0 0 4mm;
  padding: 0 0 4mm;
  border-bottom: .25mm solid var(--hairline);
  font-family: var(--font-display);
  font-size: 9.6pt;
  line-height: 1.7;
  text-align: justify;
  text-justify: inter-ideograph;
}

.marrow-section {
  padding: 3.5mm 0 4.5mm;
  border-bottom: .25mm solid var(--hairline);
}

.marrow-origin-copy .marrow-section h2 {
  margin-bottom: 2mm;
  font-size: 13pt;
}

.marrow-origin-copy .marrow-section p {
  font-size: 8pt;
  line-height: 1.75;
}

.marrow-section > span,
.marrow-principle > span,
.washing-intro > span,
.washing-process section > div:last-child > span {
  display: block;
  margin-bottom: 1.4mm;
  color: #7a7a75;
  font-family: var(--font-mono);
  font-size: 5.1pt;
  line-height: 1;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.marrow-section h2,
.washing-process h2 {
  margin: 0 0 1.4mm;
  font-family: var(--font-display);
  font-size: 11.5pt;
  line-height: 1.2;
  font-weight: 500;
  letter-spacing: .03em;
}

.marrow-section p,
.washing-process p,
.washing-intro p {
  margin: 0;
  color: #444440;
  font-size: 6.9pt;
  line-height: 1.65;
  text-align: justify;
  text-justify: inter-ideograph;
}

.marrow-principle {
  grid-column: 1 / -1;
  margin: 5mm 0 0;
  padding: 5mm;
  background: var(--ink);
  color: var(--paper);
}

.marrow-principle > span { color: rgba(255, 255, 255, .55); }

.marrow-principle p {
  margin: 0;
  color: rgba(255, 255, 255, .86);
  font-family: var(--font-display);
  font-size: 8.5pt;
  line-height: 1.72;
  text-align: justify;
  text-justify: inter-ideograph;
}

.marrow-axis {
  position: relative;
  min-width: 0;
  min-height: 0;
  margin: 0;
  display: grid;
  grid-template-rows: 1fr auto;
  overflow: hidden;
  border-left: .25mm solid var(--hairline);
  background: rgba(255, 255, 255, .42);
}

.marrow-axis svg {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
}

.axis-head {
  fill: none;
  stroke: rgba(16, 16, 16, .2);
  stroke-width: 2;
}

.axis-core { fill: rgba(16, 16, 16, .08); }

.axis-spine,
.axis-roots {
  fill: none;
  stroke: rgba(16, 16, 16, .26);
  stroke-width: 22;
  stroke-linecap: round;
}

.axis-marrow {
  fill: none;
  stroke: var(--ink);
  stroke-width: 5;
  stroke-linecap: round;
}

.axis-point {
  fill: var(--paper);
  stroke: var(--ink);
  stroke-width: 3;
}

.axis-flow {
  fill: none;
  stroke: #b00000;
  stroke-width: 4;
  stroke-linecap: round;
  stroke-dasharray: 7 10;
}

.marrow-axis figcaption {
  display: grid;
  gap: 0;
  border-top: .55mm solid var(--ink);
}

.marrow-axis figcaption div {
  display: grid;
  grid-template-columns: 6mm 1fr auto;
  align-items: center;
  gap: 1.5mm;
  padding: 2.2mm 2.5mm;
  border-top: .25mm solid var(--hairline);
}

.marrow-axis figcaption div:first-child { border-top: 0; }

.marrow-axis figcaption span,
.marrow-axis figcaption small {
  color: #797974;
  font-family: var(--font-mono);
  font-size: 4.8pt;
  line-height: 1;
}

.marrow-axis figcaption strong {
  font-family: var(--font-display);
  font-size: 8pt;
  font-weight: 500;
}

.page-eighteen .page-footer { grid-row: 5; }

.page-nineteen {
  grid-template-rows: auto 4mm auto auto 1fr auto;
}

.page-nineteen .page-header { grid-row: 1; }
.page-nineteen .page-rule { grid-row: 2; align-self: end; }
.washing-heading { grid-template-columns: 36mm 1fr; }
.washing-heading h1 { font-size: 21pt; }

.washing-intro {
  grid-column: 1 / 7;
  grid-row: 4;
  display: grid;
  grid-template-columns: 33mm 1fr;
  gap: 4mm;
  align-items: center;
  padding: 3mm 0;
  border-bottom: .25mm solid var(--hairline);
}

.washing-intro > span { margin: 0; }
.washing-intro p { font-family: var(--font-display); font-size: 8.4pt; line-height: 1.68; }

.washing-process {
  grid-column: 1 / 7;
  grid-row: 5;
  min-height: 0;
  display: grid;
  grid-template-rows: repeat(3, auto);
  align-content: start;
  overflow: hidden;
}

.washing-process section {
  display: grid;
  grid-template-columns: 19mm 1fr;
  gap: 5mm;
  padding: 6mm 0;
  border-bottom: .25mm solid var(--hairline);
}

.washing-process section:last-child { border-bottom: 0; }

.washing-number {
  display: grid;
  align-content: start;
  gap: 1mm;
}

.washing-number span {
  color: #7a7a75;
  font-family: var(--font-mono);
  font-size: 5pt;
  line-height: 1;
}

.washing-number strong {
  font-family: var(--font-display);
  font-size: 29pt;
  line-height: 1;
  font-weight: 500;
}

.washing-process h2 { margin-bottom: 2mm; font-size: 13pt; }
.washing-process p { font-size: 8.15pt; line-height: 1.72; }

.page-nineteen .page-footer { grid-row: 6; }

.back-cover-two {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  grid-template-rows: auto auto 1fr auto;
  column-gap: 3.5mm;
  padding: 11mm 15mm 10mm 11mm;
  background: var(--paper);
  color: var(--ink);
}

.back-cover-two::after {
  content: "道";
  position: absolute;
  right: 7mm;
  bottom: 18mm;
  color: rgba(16, 16, 16, .025);
  font-family: var(--font-display);
  font-size: 112pt;
  line-height: 1;
  pointer-events: none;
}

.back-cover-meta {
  grid-column: 1 / 7;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8mm;
  padding-bottom: 4mm;
  border-bottom: .25mm solid var(--hairline);
  color: #666662;
  font-family: var(--font-mono);
  font-size: 6.8pt;
  line-height: 1.35;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.back-cover-meta span:last-child { text-align: right; }

.back-cover-heading {
  grid-column: 1 / 7;
  display: grid;
  grid-template-columns: 24mm 1fr auto;
  align-items: end;
  gap: 4mm;
  padding: 10mm 0 6mm;
  border-bottom: .6mm solid var(--ink);
}

.back-cover-heading > span {
  align-self: center;
  color: #777772;
  font-family: var(--font-mono);
  font-size: 5.6pt;
  line-height: 1.3;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.back-cover-heading h1 {
  margin: 0;
  font-family: var(--font-display);
  font-size: 30pt;
  line-height: 1;
  font-weight: 500;
  letter-spacing: .14em;
}

.back-cover-heading p {
  margin: 0 0 .8mm;
  color: #555550;
  font-family: var(--font-display);
  font-size: 9pt;
  line-height: 1.2;
  letter-spacing: .12em;
  white-space: nowrap;
}

.back-cover-heading p span {
  margin-right: 2.5mm;
  color: #858580;
  font-size: 6.5pt;
}

.back-cover-poem {
  grid-column: 2 / 7;
  align-self: start;
  display: grid;
  gap: 3.4mm;
  padding: 10mm 0 8mm;
  border-bottom: .25mm solid var(--hairline);
}

.back-cover-poem p {
  margin: 0;
  color: #252522;
  font-family: var(--font-display);
  font-size: 10.6pt;
  line-height: 1.72;
  font-weight: 600;
  letter-spacing: .035em;
}

.back-cover-footer {
  grid-column: 1 / 7;
  position: relative;
  z-index: 1;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 8mm;
  padding-top: 4mm;
  border-top: .25mm solid var(--ink);
  color: #666662;
  font-family: var(--font-mono);
  font-size: 6.6pt;
  line-height: 1.3;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.back-cover-footer span:first-child {
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 11pt;
  letter-spacing: .18em;
}

.guide-trim,
.guide-safe {
  position: absolute;
  z-index: 8;
  display: none;
  pointer-events: none;
}

.guide-trim {
  inset: var(--bleed);
  border: 1px dashed rgba(255, 90, 90, .8);
}

.guide-safe {
  inset: calc(var(--bleed) + 10mm);
  border: 1px dashed rgba(90, 160, 255, .75);
}

.sheet.show-guides .guide-trim,
.sheet.show-guides .guide-safe { display: block; }

body.embed {
  width: var(--sheet-w);
  height: var(--sheet-h);
  min-height: 0;
  overflow: hidden;
  background: var(--paper);
}

body.embed .viewer {
  min-height: 0;
  width: var(--sheet-w);
  height: var(--sheet-h);
  display: block;
}

body.embed .toolbar { display: none; }

body.embed .stage {
  width: var(--sheet-w);
  height: var(--sheet-h);
  min-width: 0;
  padding: 0;
  overflow: hidden;
}

body.embed .sheet { box-shadow: none; }

/* Book II review pass · pages 12–19 · 2026-07-23 */
.meridian-ren-page .meridian-layout { grid-template-columns: 49mm 1fr; }
.meridian-du-page .meridian-layout { grid-template-columns: 1fr 52mm; }

.meridian-ren-page .meridian-figure-map img,
.meridian-du-page .meridian-figure-map img {
  width: 68%;
  height: 96%;
  opacity: .52;
}

.meridian-ren-page .point-danzhong { left: 2.5mm; right: auto; top: 45%; }
.meridian-ren-page .point-guanyuan { right: 2.5mm; top: 61%; }
.meridian-du-page .point-dazhui { left: 2.5mm; top: 36%; }
.meridian-du-page .point-gaohuang { right: 2.5mm; top: 44%; }
.meridian-du-page .point-mingmen { left: 2.5mm; top: 60%; }

.meridian-figure-map circle {
  fill: #e2b600;
  stroke: var(--ink);
  stroke-width: 1.1;
}

.meridian-ren-page .meridian-section { padding-block: 4mm; }
.meridian-du-page .meridian-section { padding-block: 2.35mm; }
.meridian-du-page .meridian-section p { font-size: 6.25pt; line-height: 1.5; }

.meridian-summary {
  padding: 4mm 4.2mm;
  border-width: .45mm;
}

.meridian-summary p {
  font-size: 8.35pt;
  line-height: 1.7;
  font-weight: 500;
}

.yin-yang-gallery img[src$=".svg"] {
  object-fit: cover;
  filter: none;
}

.three-layout-revised {
  grid-template-columns: 1fr;
  grid-template-rows: 58mm auto 14mm;
  gap: 3mm;
  padding-top: 3mm;
}

.three-core-map {
  position: relative;
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 48mm minmax(0, 1fr);
  grid-template-rows: repeat(2, minmax(0, 1fr));
  column-gap: 4mm;
  overflow: hidden;
}

.three-core-map .three-card {
  position: relative;
  z-index: 3;
  grid-template-columns: 9mm 1fr;
  gap: 2mm;
  align-self: center;
  padding: 2.2mm 0;
  border-top: .4mm solid var(--ink);
  background: var(--paper);
}

.three-card-jing { grid-column: 1; grid-row: 1; }
.three-card-qi { grid-column: 1; grid-row: 2; }
.three-card-shen { grid-column: 3; grid-row: 1 / 3; }

.three-core-map .three-figure {
  grid-column: 2;
  grid-row: 1 / 3;
  z-index: 1;
  width: 100%;
  height: 100%;
}

.three-core-map .three-mark strong { font-size: 16pt; }
.three-core-map .three-card h2 { font-size: 9.2pt; }
.three-core-map .three-card p { font-size: 5.75pt; line-height: 1.46; }

.three-link-map {
  position: absolute;
  inset: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.three-link-map polyline {
  fill: none;
  stroke: #5c5c57;
  stroke-width: 1.1;
  vector-effect: non-scaling-stroke;
}

.three-link-map circle { fill: var(--ink); }

.three-detail-row {
  min-height: 0;
  display: grid;
  grid-template-columns: 1fr 37mm;
  gap: 3mm;
}

.three-detail-row .spirit-addition {
  margin: 0;
  display: grid;
  align-content: center;
  padding: 3mm 3.2mm;
}

.three-detail-row .spirit-addition p {
  margin-top: 1mm;
  font-size: 5.75pt;
  line-height: 1.48;
}

.three-detail-row .spirit-mantra {
  min-height: 0;
  margin: 0;
  align-content: center;
  gap: 1.5mm;
  padding: 3mm;
  border-top: .55mm solid var(--ink);
  border-bottom: .25mm solid var(--ink);
}

.three-detail-row .spirit-mantra strong {
  font-size: 11.5pt;
  letter-spacing: .06em;
}

.three-layout-revised > .three-loop {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-template-rows: 1fr;
  border-top: .55mm solid var(--ink);
  border-bottom: .25mm solid var(--ink);
}

.three-layout-revised > .three-loop div {
  grid-template-columns: 6mm 1fr;
  padding: 0 2mm;
  border-top: 0;
  border-left: .25mm solid var(--hairline);
}

.three-layout-revised > .three-loop div:first-child {
  padding-left: 0;
  border-left: 0;
}

.three-layout-revised > .three-loop strong { font-size: 7.2pt; }

.force-stages {
  height: auto;
  min-height: 0;
  grid-template-columns: 1fr;
  grid-template-rows: repeat(3, auto 4mm) auto;
  border-bottom: .25mm solid var(--ink);
}

.force-stages section,
.force-stages section:nth-child(odd),
.force-stages section:nth-child(even),
.force-stages section:nth-child(n + 3) {
  display: grid;
  grid-template-columns: 29mm 25mm 1fr;
  gap: 2.5mm;
  align-items: center;
  padding: 2.1mm 0;
  border: 0;
  border-top: .25mm solid var(--hairline);
}

.force-stages section:first-child { border-top: 0; }
.force-stages section span,
.force-stages section h2 { margin: 0; }
.force-stages section h2 { font-size: 11pt; }
.force-stages section p { font-size: 7.1pt; line-height: 1.5; }

.force-arrow {
  height: 4mm;
  display: grid;
  place-items: center;
  color: #777772;
  font-family: var(--font-mono);
  font-size: 9pt;
  line-height: 1;
}

.form-cycle { padding-block: 3mm; }
.form-cycle strong { font-size: 10.2pt; }

.return-pair {
  align-items: end;
  gap: 3mm;
  padding: 2.5mm 0 3mm;
}

.return-pair section {
  align-self: end;
  padding: 3mm;
}

.return-pair section::after { display: none; }
.return-pair h2 { font-size: 11.5pt; }
.return-pair p { font-size: 6.35pt; line-height: 1.53; }

.page-eighteen .marrow-origin-layout { padding-top: 6mm; }

.page-eighteen .marrow-origin-copy {
  grid-template-columns: 1fr;
  grid-template-rows: auto auto auto 1fr;
  align-content: stretch;
}

.page-eighteen .marrow-lead {
  margin-bottom: 5mm;
  padding-bottom: 5mm;
  font-size: 11.8pt;
  line-height: 1.86;
}

.page-eighteen .marrow-section {
  display: grid;
  grid-template-columns: 39mm 1fr;
  grid-template-rows: auto 1fr;
  column-gap: 6mm;
  align-items: start;
  padding: 6mm 0;
}

.page-eighteen .marrow-section > span { grid-column: 1; grid-row: 1; }

.page-eighteen .marrow-origin-copy .marrow-section h2 {
  grid-column: 1;
  grid-row: 2;
  margin: 1mm 0 0;
  font-size: 16pt;
}

.page-eighteen .marrow-origin-copy .marrow-section p {
  grid-column: 2;
  grid-row: 1 / 3;
  font-size: 9.35pt;
  line-height: 1.86;
}

.page-eighteen .marrow-principle {
  margin-top: 6mm;
  display: grid;
  align-content: center;
  padding: 6mm;
}

.page-eighteen .marrow-principle p {
  font-size: 10.1pt;
  line-height: 1.82;
}

@media (max-width: 760px) {
  .toolbar {
    align-items: flex-start;
    flex-direction: column;
  }

  .stage { padding: 18px; }
}

@page {
  size: 154.5mm 216mm;
  margin: 0;
}

@media print {
  html,
  body {
    width: var(--sheet-w);
    height: var(--sheet-h);
    min-height: 0;
    background: transparent;
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
  }

  .toolbar { display: none; }

  .viewer {
    display: block;
    min-height: 0;
  }

  .stage {
    width: var(--sheet-w);
    height: var(--sheet-h);
    min-width: 0;
    padding: 0;
    overflow: visible;
  }

  .sheet { box-shadow: none; }
}
