/* Deck 002 final layout pass — Founder-approved safe-area, composition and print parity refinements. */

/* Source/provenance occupies the protected lower lane; substantive content must finish above it. */
.reveal .cm-source {
  right: var(--ed-stage-pad-inline);
  bottom: 20px;
  left: var(--ed-stage-pad-inline);
  z-index: 3;
  font-size: 9px;
  line-height: 1.22;
}
.reveal .cm-compact-lead { margin-bottom: 18px; }
.reveal .cm-legal-rule {
  padding: 10px 13px;
  font-size: 12.7px;
  line-height: 1.34;
}

/* Cover: retain the supply-chain schematic as the stable right-hand composition. */
.reveal .cm-cover {
  grid-template-columns: minmax(0, 1fr) 304px;
  gap: 48px;
}
.reveal .cm-cover h1 { font-size: 54px; }
.reveal .cm-cover .ed-cover-main { padding-bottom: 20px; }
.reveal .cm-cover .ed-cover-sub { margin-top: 17px; }
.cm-chain { align-self: center; }
.cm-chain-node {
  min-height: 82px;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 10px;
}
.cm-chain-label { font-size: 14.5px; }

/* Slide 03 — problem: compact both columns so the fifth chain node and conclusion remain inside the safe area. */
.cm-slide-problem .cm-problem-layout {
  grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr);
  gap: 32px;
}
.cm-slide-problem .cm-failure-chain {
  gap: 0;
  padding-top: 0;
}
.cm-slide-problem .cm-failure-node {
  grid-template-columns: 28px minmax(0, 1fr) auto;
  gap: 10px;
  min-height: 48px;
  padding: 8px 0;
}
.cm-slide-problem .cm-failure-node strong { font-size: 13.2px; }
.cm-slide-problem .cm-failure-mark { font-size: 9.2px; }
.cm-slide-problem .cm-factor {
  min-height: 52px;
  padding: 7px 10px 6px 0;
  font-size: 11.6px;
  line-height: 1.28;
}
.cm-slide-problem .cm-factor:nth-child(even) { padding-left: 10px; }
.cm-slide-problem .cm-factor strong { margin-bottom: 2px; font-size: 9.4px; }
.cm-slide-problem .cm-legal-rule { margin-top: 8px !important; }

/* Slide 04 — operating logic: one explicit decision trajectory rather than two competing explanations. */
.cm-slide-process .cm-compact-lead { max-width: 78ch; margin-bottom: 16px; }
.cm-process-flow { display: grid; gap: 10px; }
.cm-process-track {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  border-top: 1px solid var(--ed-rule-strong);
  border-bottom: 1px solid var(--ed-rule-strong);
}
.cm-flow-step {
  position: relative;
  min-width: 0;
  min-height: 108px;
  padding: 17px 12px 12px 0;
}
.cm-flow-step + .cm-flow-step {
  padding-left: 12px;
  border-left: 1px solid var(--ed-rule);
}
.cm-flow-step:not(:last-child)::after {
  position: absolute;
  top: 49px;
  right: -8px;
  z-index: 2;
  width: 16px;
  color: var(--ed-accent);
  background: var(--ed-surface);
  content: "→";
  font-family: var(--ed-mono);
  font-size: 12px;
  line-height: 16px;
  text-align: center;
}
.cm-flow-no {
  display: block;
  margin-bottom: 7px;
  color: var(--ed-accent);
  font-family: var(--ed-mono);
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: .05em;
}
.cm-flow-step strong {
  display: block;
  margin-bottom: 5px;
  color: var(--ed-ink);
  font-size: 12.3px;
  line-height: 1.22;
}
.cm-flow-step span:last-child {
  display: block;
  color: var(--ed-ink-2);
  font-size: 10.5px;
  line-height: 1.28;
}
.cm-flow-step.cm-flow-state {
  background: var(--cm-decision-soft);
  box-shadow: inset 0 2px 0 var(--cm-decision);
}
.cm-process-decision-row {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr) minmax(0, .75fr);
  gap: 10px;
  align-items: stretch;
}
.cm-process-gate {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  min-height: 82px;
  padding: 12px 14px;
  border-left: 3px solid var(--ed-signal);
  background: var(--ed-signal-soft);
}
.cm-process-gate strong {
  color: var(--ed-signal-dark);
  font-family: var(--ed-mono);
  font-size: 9.7px;
  line-height: 1.25;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.cm-process-gate span {
  color: var(--ed-ink);
  font-size: 12.2px;
  font-weight: 650;
  line-height: 1.3;
}
.cm-process-decision-row .cm-flow-step {
  min-height: 82px;
  padding: 12px 12px 10px;
  border-top: 2px solid var(--ed-accent);
  border-bottom: 1px solid var(--ed-rule);
}
.cm-process-decision-row .cm-flow-step::after { display: none; }
.cm-process-return {
  display: flex;
  gap: 10px;
  align-items: center;
  justify-content: flex-end;
  color: var(--ed-accent);
  font-family: var(--ed-mono);
  font-size: 9.7px;
  font-weight: 650;
  letter-spacing: .025em;
}
.cm-process-return::before {
  width: 42%;
  border-top: 1px solid var(--ed-accent);
  content: "";
}
.cm-process-rule { margin-top: 2px; }

/* Slide 05 — architecture: replace the 3×3 table feel with three functional bands. */
.cm-slide-architecture .cm-architecture-layout {
  grid-template-columns: minmax(0, 1.16fr) minmax(300px, .84fr);
  gap: 34px;
}
.cm-framework-bands {
  border-top: 2px solid var(--ed-accent);
  border-bottom: 1px solid var(--ed-rule-strong);
}
.cm-framework-summary {
  display: flex;
  gap: 16px;
  align-items: baseline;
  padding: 12px 0 10px;
}
.cm-framework-summary .ed-number { color: var(--ed-accent); font-size: 42px; }
.cm-framework-band {
  display: grid;
  grid-template-columns: 142px minmax(0, 1fr);
  gap: 16px;
  align-items: stretch;
  padding: 10px 0;
  border-top: 1px solid var(--ed-rule);
}
.cm-framework-band-title {
  padding-top: 2px;
  color: var(--ed-accent);
  font-family: var(--ed-mono);
  font-size: 9.7px;
  font-weight: 700;
  line-height: 1.28;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.cm-framework-band-items {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.cm-framework-band-items span {
  min-height: 54px;
  padding: 4px 10px 4px 0;
  color: var(--ed-ink-2);
  font-size: 11.2px;
  line-height: 1.28;
}
.cm-framework-band-items span + span {
  padding-left: 10px;
  border-left: 1px solid var(--ed-rule);
}
.cm-slide-architecture .cm-annex-stack { gap: 9px; }
.cm-slide-architecture .cm-annex-card {
  min-height: 82px;
  padding: 11px 12px;
}
.cm-slide-architecture .cm-annex-card-no { font-size: 27px; }
.cm-slide-architecture .cm-annex-card strong { font-size: 12.3px; }
.cm-slide-architecture .cm-annex-card span { font-size: 10.7px; }

/* Slide 06 — material passport: preserve 2×2 structure while keeping the principle above the source lane. */
.cm-slide-passport .cm-passport-zone {
  min-height: 142px;
  padding-top: 11px;
  padding-bottom: 9px;
}
.cm-slide-passport .cm-passport-zone-title { margin-bottom: 7px; }
.cm-slide-passport .cm-passport-zone-title strong { font-size: 13.2px; }
.cm-slide-passport .cm-passport-zone li {
  margin-bottom: 4px;
  font-size: 11.6px;
  line-height: 1.27;
}
.cm-slide-passport .cm-passport-principle {
  margin-top: 10px;
  padding: 9px 12px;
  font-size: 11.8px;
  line-height: 1.3;
}

/* Slide 07 — keep escalation inside the smaller content-safe rectangle. */
.cm-slide-escalation .cm-escalation { margin-top: 14px; }
.cm-slide-escalation .cm-state {
  min-height: 116px;
  padding-top: 15px;
  padding-bottom: 10px;
}
.cm-slide-escalation .cm-state strong { margin: 6px 0 5px; font-size: 13.2px; }
.cm-slide-escalation .cm-state span { font-size: 10.7px; }
.cm-slide-escalation .cm-escalation-return { margin: 6px 0 9px; }
.cm-slide-escalation .cm-level-requirements span { padding-top: 6px; padding-bottom: 6px; font-size: 10.9px; }
.cm-slide-escalation .cm-legal-rule { margin-top: 8px !important; }

/* Slide 09 — legal boundary: keep the explanatory rule clearly above provenance. */
.cm-slide-legal .cm-legal-boundary { min-height: 248px; }
.cm-slide-legal .cm-legal-zone { padding-top: 18px; padding-bottom: 14px; }
.cm-slide-legal .cm-legal-zone h3 { font-size: 17px; }
.cm-slide-legal .cm-legal-zone p { font-size: 12.6px; }
.cm-slide-legal .cm-legal-rule { margin-top: 10px !important; }

/* Slide 10 — institutional model: one full-width hub/functions/authority system. */
.cm-governance-system { display: grid; gap: 0; }
.cm-governance-hub {
  justify-self: center;
  width: min(48%, 500px);
  padding: 12px 18px;
  border-top: 2px solid var(--ed-accent);
  border-bottom: 1px solid var(--ed-rule-strong);
  background: var(--ed-accent-soft);
  text-align: center;
}
.cm-governance-hub strong {
  display: block;
  font-family: var(--ed-serif);
  font-size: 20px;
  font-weight: 500;
  line-height: 1.12;
}
.cm-governance-hub span {
  display: block;
  margin-top: 4px;
  color: var(--ed-ink-2);
  font-size: 11px;
}
.cm-governance-bus {
  position: relative;
  height: 25px;
}
.cm-governance-bus::before {
  position: absolute;
  top: 0;
  bottom: 7px;
  left: 50%;
  border-left: 1px solid var(--ed-accent);
  content: "";
}
.cm-governance-bus::after {
  position: absolute;
  right: 8%;
  bottom: 7px;
  left: 8%;
  border-top: 1px solid var(--ed-accent);
  content: "";
}
.cm-governance-functions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px 12px;
}
.cm-governance-function {
  min-height: 63px;
  padding: 9px 11px;
  border-top: 1px solid var(--ed-rule-strong);
  border-bottom: 1px solid var(--ed-rule);
  color: var(--ed-ink-2);
  font-size: 10.8px;
  line-height: 1.27;
}
.cm-governance-function strong {
  display: block;
  margin-bottom: 3px;
  color: var(--ed-ink);
  font-size: 11.8px;
}
.cm-authority-rail {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 104px minmax(0, 1fr);
  margin-top: 11px;
  border-top: 1px solid var(--ed-rule-strong);
  border-bottom: 1px solid var(--ed-rule-strong);
}
.cm-authority-stage {
  padding: 9px 12px 8px 0;
  color: var(--ed-ink-2);
  font-size: 11.2px;
  line-height: 1.25;
}
.cm-authority-stage + .cm-authority-stage { padding-left: 12px; border-left: 1px solid var(--ed-rule); }
.cm-authority-stage strong {
  display: inline-block;
  margin-right: 7px;
  color: var(--ed-accent);
  font-family: var(--ed-mono);
  font-size: 9.5px;
}
.cm-authority-stage.decision { color: var(--cm-decision); font-weight: 700; }
.cm-authority-boundary {
  display: grid;
  place-items: center;
  border-right: 1px solid var(--ed-signal);
  border-left: 1px solid var(--ed-signal);
  background: var(--ed-signal-soft);
  color: var(--ed-signal-dark);
  font-family: var(--ed-mono);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .05em;
  text-align: center;
  text-transform: uppercase;
}
.cm-governance-risk { margin-top: 9px; }

/* Other high-density slides: keep the new bottom-safe contract without redesigning accepted compositions. */
.cm-slide-alignment .cm-alignment-col { min-height: 318px; }
.cm-slide-final .cm-decision-panel { min-height: 255px; }
.cm-slide-final .cm-not-proposed { margin-top: 10px; padding-top: 9px; }
.cm-slide-final .cm-deadline-strip { bottom: 39px; }

/* Scroll View remains a reading layout; safe-lane positioning becomes normal document flow. */
.reveal-scroll .cm-source,
.ed-in-scroll-view .reveal .cm-source { margin-top: 16px; }

@media (max-width: 640px) {
  .reveal .cm-cover { grid-template-columns: 1fr; }
  .cm-chain { margin-top: 20px; }
  .cm-process-track { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cm-flow-step + .cm-flow-step { padding-left: 0; border-left: 0; }
  .cm-flow-step:not(:last-child)::after { display: none; }
  .cm-process-decision-row { grid-template-columns: 1fr; }
  .cm-framework-band { grid-template-columns: 1fr; gap: 7px; }
  .cm-framework-band-items { grid-template-columns: 1fr; }
  .cm-framework-band-items span + span { padding-left: 0; border-left: 0; border-top: 1px solid var(--ed-rule); }
  .cm-governance-hub { width: auto; }
  .cm-governance-functions { grid-template-columns: 1fr; }
  .cm-governance-bus { display: none; }
  .cm-authority-rail { grid-template-columns: 1fr; }
  .cm-authority-stage + .cm-authority-stage { padding-left: 0; border-left: 0; border-top: 1px solid var(--ed-rule); }
  .cm-authority-boundary { min-height: 38px; border: 0; border-top: 1px solid var(--ed-signal); border-bottom: 1px solid var(--ed-signal); }
}

@media print {
  .reveal .cm-source { color: #656a73 !important; }
}
