:root {
  --ink: #17232c;
  --muted: #5b6a74;
  --line: #d9e0e4;
  --surface: #ffffff;
  --surface-soft: #f3f6f7;
  --surface-warm: #f8f5ee;
  --psi-blue: #006b8f;
  --psi-deep: #0b3b52;
  --teal: #008a82;
  --amber: #d99614;
  --red: #c44e52;
  --purple: #7656a8;
  --shadow: 0 14px 36px rgba(20, 42, 55, 0.1);
}

.premise-name { font-style: italic; }

* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  min-height: 100%;
  background: #e9eef0;
  color: var(--ink);
  font-family: Arial, Helvetica, sans-serif;
}

button,
input,
select {
  font: inherit;
}

.app-shell {
  height: 100vh;
  min-height: 0;
  overflow: hidden;
  display: grid;
  grid-template-rows: 72px 4px minmax(0, 1fr) 68px;
  background: var(--surface-soft);
}

.app-header {
  display: grid;
  grid-template-columns: minmax(330px, 380px) minmax(0, 1fr);
  align-items: center;
  gap: 16px;
  padding: 0 34px;
  background: var(--surface);
  border-bottom: 1px solid var(--line);
}

.chapter-nav {
  min-width: 0;
  display: flex;
  justify-content: center;
  gap: 5px;
  overflow-x: auto;
  scrollbar-width: none;
}

.chapter-nav::-webkit-scrollbar { display: none; }

.chapter-button {
  flex: 0 0 auto;
  padding: 7px 9px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.chapter-button:hover,
.chapter-button:focus-visible {
  background: #eaf3f6;
  color: var(--psi-deep);
}

.pdf-export-button {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 8px 12px;
  border: 1px solid #a8c1cc;
  border-radius: 8px;
  color: var(--psi-deep);
  background: #eef6f8;
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
  cursor: pointer;
}

.pdf-export-button:hover,
.pdf-export-button:focus-visible {
  border-color: var(--psi-blue);
  background: #dfeff3;
}

.pdf-export-button:disabled {
  opacity: 0.6;
  cursor: wait;
}

.pdf-export-icon {
  font-size: 17px;
  line-height: 1;
}

.print-deck {
  display: none;
}

@media screen {
  .print-deck:not(:empty) {
    position: absolute;
    top: 0;
    left: -20000px;
    width: 1536px;
    display: block;
    visibility: hidden;
    pointer-events: none;
  }

  .print-page {
    width: 1536px;
    height: 864px;
    overflow: hidden;
  }

  .print-page > .slide {
    width: 100%;
    height: 100%;
    min-height: 0;
  }
}

.brand-lockup {
  display: flex;
  align-items: center;
  gap: 14px;
  color: inherit;
  text-decoration: none;
}

.psi-mark {
  width: 44px;
  height: 44px;
  display: block;
  object-fit: contain;
}

.brand-copy {
  display: flex;
  flex-direction: column;
  gap: 2px;
  color: var(--muted);
  font-size: 14px;
}

.brand-copy strong {
  max-width: 300px;
  color: var(--ink);
  font-size: 12px;
  line-height: 1.08;
  letter-spacing: 0.045em;
  white-space: normal;
}

.session-badge {
  justify-self: center;
  padding: 8px 13px;
  border-radius: 999px;
  background: #eaf3f6;
  color: var(--psi-deep);
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.slide-label {
  display: none;
}

.progress-track {
  background: #dce4e8;
}

.progress-fill {
  height: 4px;
  width: 0;
  background: linear-gradient(90deg, var(--psi-blue), var(--teal));
  transition: width 280ms ease;
}

.slide-stage {
  min-height: 0;
  padding: 14px 24px 10px;
  overflow: auto;
}

.slide {
  position: relative;
  width: min(1500px, 100%);
  min-height: calc(100vh - 190px);
  margin: 0 auto;
  padding: 26px 36px 22px;
  display: flex;
  flex-direction: column;
  background: var(--surface);
  border: 1px solid #dfe5e8;
  border-radius: 18px;
  box-shadow: var(--shadow);
}

.backup-slide {
  border-color: #c3d3da;
  box-shadow: 0 12px 30px rgba(20, 42, 55, 0.07);
}

.backup-slide-toolbar {
  position: absolute;
  z-index: 4;
  top: 10px;
  right: 18px;
  display: flex;
  align-items: center;
  gap: 7px;
}

.backup-slide-marker {
  padding: 5px 9px;
  border: 1px solid #a8c1cc;
  border-radius: 999px;
  color: var(--psi-deep);
  background: #eef6f8;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.1em;
  line-height: 1;
  text-transform: uppercase;
}

.backup-return-button,
.backup-link-button {
  border: 1px solid #a8c1cc;
  border-radius: 8px;
  color: var(--psi-deep);
  background: #eef6f8;
  font-weight: 800;
  cursor: pointer;
}

.backup-return-button {
  min-height: 30px;
  padding: 5px 9px;
  font-size: 11px;
}

.backup-link-button {
  position: absolute;
  z-index: 4;
  top: 10px;
  right: 18px;
  max-width: 220px;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 7px;
  align-items: center;
  padding: 6px 9px;
  font-size: 10px;
  line-height: 1.12;
  text-align: left;
}

.backup-link-kicker {
  color: var(--psi-blue);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.backup-return-button:hover,
.backup-return-button:focus-visible,
.backup-link-button:hover,
.backup-link-button:focus-visible {
  border-color: var(--psi-blue);
  background: #deeff3;
}

.backup-slide > .title-block { padding-right: 265px; }
.has-backup-link > .title-block { padding-right: 235px; }

@media (max-width: 700px) {
  .backup-slide-toolbar,
  .backup-link-button {
    position: static;
    align-self: flex-end;
    margin-bottom: 7px;
  }

  .backup-slide > .title-block,
  .has-backup-link > .title-block { padding-right: 0; }
}

.definition-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  flex: 1;
}

.concept-card {
  padding: 18px 20px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--surface-soft);
}

.concept-card h3 { margin: 0 0 8px; font-size: 20px; }
.concept-card p { margin: 0; color: var(--muted); font-size: 17px; line-height: 1.42; }
.definition-card { border-top: 5px solid var(--psi-blue); }
.concept-accent { border-color: rgba(0, 138, 130, 0.45); background: #eef8f6; }

.question-banner {
  margin-top: 16px;
  padding: 15px 20px;
  border-left: 6px solid var(--amber);
  border-radius: 9px;
  background: #fff7df;
  color: var(--psi-deep);
  font-size: 19px;
  font-weight: 700;
}

.four-card-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-top: 12px;
}

.graph-frame.model-mapping-heatmap-large {
  flex: 1 1 355px;
  min-height: 355px;
}

.model-heatmap-reading {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 9px;
}

.model-heatmap-reading > div,
.model-architecture-implications > div {
  display: grid;
  gap: 3px;
  padding: 9px 12px;
  border-left: 5px solid var(--teal);
  border-radius: 8px;
  background: #edf7f5;
}

.model-heatmap-reading > div:nth-child(2) { border-left-color: var(--amber); background: #fff8e8; }
.model-heatmap-reading > div:nth-child(3) { border-left-color: var(--psi-blue); background: #eaf3f6; }
.model-heatmap-reading strong,
.model-architecture-implications strong { color: var(--psi-deep); font-size: 13px; }
.model-heatmap-reading span,
.model-architecture-implications span { color: var(--muted); font-size: 10px; line-height: 1.18; }

.model-architecture-layout {
  display: grid;
  gap: 12px;
  align-content: center;
  flex: 1;
}

.model-architecture-panel {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: #fff;
}

.model-architecture-heading {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: baseline;
  padding: 7px 10px;
  color: var(--psi-deep);
  background: #eaf3f6;
}

.model-architecture-heading strong { font-size: 13px; }
.model-architecture-heading span { color: var(--muted); font-size: 9px; }

.model-architecture-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.model-architecture-table th,
.model-architecture-table td {
  padding: 5px 7px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  vertical-align: middle;
  font-size: 9px;
  line-height: 1.14;
  text-align: left;
  overflow-wrap: anywhere;
}

.model-architecture-table thead th {
  color: #fff;
  background: var(--psi-deep);
  font-size: 9.5px;
  text-align: center;
}

.model-architecture-table thead th:first-child,
.model-architecture-table tbody th { width: 122px; }
.model-architecture-table tbody th {
  color: var(--psi-deep);
  background: #f3f6f7;
  font-size: 9.5px;
}
.model-architecture-table tr > :last-child { border-right: 0; }
.model-architecture-table tbody tr:last-child > * { border-bottom: 0; }

.model-architecture-panel-large .model-architecture-heading { padding: 10px 13px; }
.model-architecture-panel-large .model-architecture-heading strong { font-size: 16px; }
.model-architecture-panel-large .model-architecture-heading span { font-size: 11px; }
.model-architecture-panel-large .model-architecture-table th,
.model-architecture-panel-large .model-architecture-table td {
  padding: 10px 11px;
  font-size: 11px;
  line-height: 1.22;
}
.model-architecture-panel-large .model-architecture-table thead th { font-size: 11.5px; }
.model-architecture-panel-large .model-architecture-table thead th:first-child,
.model-architecture-panel-large .model-architecture-table tbody th { width: 145px; }
.model-architecture-panel-large .model-architecture-table tbody th { font-size: 11.5px; }

.model-architecture-implications {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.model-architecture-implications > div:nth-child(2) { border-left-color: var(--amber); background: #fff8e8; }
.model-architecture-implications > div:nth-child(3) { border-left-color: var(--psi-blue); background: #eaf3f6; }

.limitations-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  flex: 1;
}

.limitation-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  border-top: 4px solid var(--red);
  padding: 12px 13px 10px;
}
.limitation-card h3 { margin-bottom: 5px; font-size: 16.5px; }
.limitation-card p { margin: 0; font-size: 12px; line-height: 1.25; }

.limitation-models {
  display: grid;
  gap: 5px;
  margin-top: auto;
  padding-top: 8px;
  border-top: 1px solid #d9e0e4;
}

.limitation-model-label {
  color: #8f1d1d;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.limitation-model-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
}

.limitation-model-chip {
  padding: 3px 5px;
  border-radius: 999px;
  color: #713436;
  background: #f7e7e7;
  font-size: 8px;
  font-weight: 800;
  line-height: 1;
}

.limitations-source-row { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; margin-top: 5px; }
.limitations-source-row .source-note { flex: 1 1 auto; min-width: 0; margin-top: 0; }
.limitations-source-row .recommended-reading-link { max-width: 390px; text-align: right; white-space: normal; }
.limitations-slide .source-note { font-size: 10px; line-height: 1.15; }
.limitations-slide .takeaway { margin-top: 6px; }

.family-list { display: grid; gap: 8px; align-content: center; }
.family-card { display: grid; grid-template-columns: 42px 1fr; gap: 10px; padding: 10px 13px; border-left: 8px solid var(--line); background: var(--surface-soft); border-radius: 7px; }
.family-card strong { font-size: 18px; }
.family-card span { color: var(--muted); }
.family-h { border-color: #8f1d1d; }
.family-hl { border-color: #c44e52; }
.family-m { border-color: #d99614; }
.family-ml { border-color: #7e9d42; }
.family-l { border-color: #008a82; }
.family-vl { border-color: #006b8f; }
.family-ln { border-color: #7656a8; }

.evidence-derived { border-top: 5px solid var(--purple); }
.watch-text { font-size: 13px !important; font-weight: 700; color: var(--psi-deep) !important; }

.plot-controls {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  margin: -6px 0 12px;
}

.control-group { display: flex; align-items: center; gap: 7px; }
.control-label { margin-right: 4px; color: var(--muted); font-size: 13px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.control-chip { padding: 7px 12px; border: 1px solid #cbd6dc; border-radius: 999px; background: #fff; color: var(--psi-deep); font-size: 14px; font-weight: 700; cursor: pointer; }
.control-chip.active { background: var(--psi-deep); border-color: var(--psi-deep); color: #fff; }

.sector-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr);
  gap: 16px;
  min-height: 0;
  flex: 1;
}
.sector-main, .sector-side { min-height: 390px; }

.transformation-table { display: grid; gap: 9px; flex: 1; }
.transformation-row { display: grid; grid-template-columns: .55fr 1fr 1.15fr 1.2fr; gap: 12px; align-items: center; padding: 14px 16px; border: 1px solid var(--line); border-radius: 11px; background: var(--surface-soft); }
.transformation-row strong { color: var(--psi-deep); font-size: 18px; }
.transformation-row span { color: var(--muted); line-height: 1.3; }
.transformation-row span::before { content: "→ "; color: var(--teal); font-weight: 900; }

.lcia-main { min-height: 470px; }

.eyebrow {
  color: var(--psi-blue);
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  margin-bottom: 8px;
}

.title-block {
  margin-bottom: 14px;
}

.slide-title {
  margin: 0;
  font-size: clamp(36px, 3.3vw, 58px);
  line-height: 1.04;
  letter-spacing: -0.035em;
}

.slide-subtitle {
  margin: 10px 0 0;
  color: var(--muted);
  font-size: clamp(20px, 1.5vw, 26px);
  line-height: 1.35;
}

.hero-slide {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  align-items: center;
  overflow: hidden;
  background:
    radial-gradient(circle at 86% 14%, rgba(0, 138, 130, 0.13), transparent 28%),
    linear-gradient(135deg, #fff 0%, #f5f9fa 100%);
}

.hero-copy {
  padding: 20px 0 20px 20px;
}

.hero-title {
  white-space: pre-line;
  margin: 22px 0 18px;
  font-size: clamp(64px, 6vw, 102px);
  line-height: 0.92;
  letter-spacing: -0.055em;
}

.hero-subtitle {
  max-width: 760px;
  color: var(--muted);
  font-size: clamp(24px, 2.1vw, 36px);
  line-height: 1.3;
}

.pill-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 26px;
}

.pill-row.centered {
  justify-content: center;
}

.pill {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 8px 13px;
  border: 1px solid #cfd9de;
  border-radius: 999px;
  background: #fff;
  color: var(--psi-deep);
  font-size: 15px;
  font-weight: 700;
}

.pill-dark {
  color: #fff;
  background: var(--psi-deep);
  border-color: var(--psi-deep);
}

.hero-system {
  width: min(580px, 43vw);
  justify-self: center;
  display: grid;
  grid-template-rows: auto 18px 245px 18px auto auto;
  gap: 5px;
  padding: 20px;
  border: 1px solid rgba(0, 107, 143, .22);
  border-radius: 24px;
  background:
    radial-gradient(circle at 50% 42%, rgba(0, 138, 130, .12), transparent 42%),
    rgba(255, 255, 255, .72);
  box-shadow: 0 18px 45px rgba(20, 42, 55, .11);
}

.hero-inputs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 7px;
}

.hero-inputs span {
  display: grid;
  place-items: center;
  min-height: 38px;
  padding: 6px 8px;
  border: 1px solid #cbd8de;
  border-radius: 999px;
  color: var(--psi-deep);
  background: #fff;
  font-size: 12px;
  font-weight: 800;
  text-align: center;
}

.hero-flow-arrow {
  display: grid;
  place-items: center;
  color: var(--teal);
  font-size: 22px;
  line-height: 1;
  font-weight: 800;
}

.hero-flow-down { font-size: 20px; }

.hero-iam-system {
  position: relative;
  overflow: hidden;
  border: 1px solid #cddce2;
  border-radius: 18px;
  background:
    linear-gradient(rgba(0, 107, 143, .045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0, 107, 143, .045) 1px, transparent 1px),
    #f7fafb;
  background-size: 24px 24px;
}

.hero-iam-system::before,
.hero-iam-system::after {
  content: "";
  position: absolute;
  z-index: 0;
  background: linear-gradient(90deg, rgba(0, 107, 143, .18), var(--teal), rgba(0, 107, 143, .18));
}

.hero-iam-system::before {
  left: 72px;
  right: 72px;
  top: 50%;
  height: 3px;
}

.hero-iam-system::after {
  top: 42px;
  bottom: 42px;
  left: 50%;
  width: 3px;
  background: linear-gradient(180deg, rgba(0, 107, 143, .18), var(--teal), rgba(0, 107, 143, .18));
}

.hero-iam-core {
  position: absolute;
  z-index: 2;
  left: 50%;
  top: 50%;
  width: 178px;
  min-height: 104px;
  transform: translate(-50%, -50%);
  display: grid;
  place-items: center;
  align-content: center;
  gap: 3px;
  border-radius: 16px;
  color: #fff;
  background: var(--psi-deep);
  box-shadow: 0 0 0 10px rgba(0, 107, 143, .08), 0 12px 28px rgba(11, 59, 82, .22);
  text-align: center;
}

.hero-iam-core strong { font-size: 19px; }
.hero-iam-core small { color: rgba(255, 255, 255, .72); font-size: 11px; }

.hero-iam-badge {
  padding: 3px 8px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .15);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .12em;
}

.hero-domain {
  position: absolute;
  z-index: 1;
  width: 148px;
  min-height: 54px;
  display: grid;
  place-items: center;
  padding: 8px 10px;
  border: 1px solid #cbd8de;
  border-left: 5px solid var(--psi-blue);
  border-radius: 10px;
  background: #fff;
  color: var(--psi-deep);
  font-size: 13px;
  font-weight: 800;
  text-align: center;
  box-shadow: 0 7px 18px rgba(20, 42, 55, .08);
}

.domain-a { top: 22px; left: 15px; }
.domain-b { top: 22px; right: 15px; border-left-color: var(--teal); }
.domain-c { bottom: 22px; left: 15px; border-left-color: var(--amber); }
.domain-d { bottom: 22px; right: 15px; border-left-color: var(--red); }

.hero-outputs {
  display: grid;
  grid-template-columns: 1fr auto 1fr auto 1fr;
  gap: 6px;
  align-items: center;
}

.hero-output-card {
  min-height: 60px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 3px;
  padding: 8px;
  border: 1px solid #cbd8de;
  border-top: 5px solid var(--psi-blue);
  border-radius: 10px;
  background: #fff;
  color: var(--psi-deep);
  text-align: center;
}

.hero-output-card strong { font-size: 15px; }
.hero-output-card small { color: var(--muted); font-size: 10px; }
.inventory-output { border-top-color: var(--teal); }
.lcia-output { border-top-color: var(--purple); }

.hero-workflow-caption {
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
  text-align: center;
}

.two-column {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.33fr);
  gap: 22px;
  align-items: stretch;
}

.chart-and-panel {
  flex: 1;
  min-height: 350px;
}

.graph-frame {
  min-height: 326px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  overflow: hidden;
}

.intro-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(360px, 0.9fr);
  gap: 18px;
  min-height: 315px;
  flex: 1;
}

.intro-chart { min-height: 315px; }
.integration-chart { min-height: 390px; }

.intro-energy-slide .title-block { margin-bottom: 9px; }
.intro-energy-slide .takeaway { margin-top: 7px; }
.intro-energy-slide .source-note { margin-top: 5px; }

.energy-trend-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.38fr) minmax(390px, .62fr);
  gap: 14px;
  flex: 1;
  min-height: 300px;
}

.energy-trend-chart { min-height: 300px; }

.energy-metric-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.energy-metric-card {
  min-width: 0;
  display: grid;
  align-content: center;
  gap: 3px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-top: 5px solid var(--psi-blue);
  border-radius: 12px;
  background: linear-gradient(180deg, #fff, #f5f8f9);
}

.energy-metric-card .metric-value {
  color: var(--psi-deep);
  font-size: 31px;
  font-weight: 900;
  letter-spacing: -.035em;
  line-height: 1;
}

.energy-metric-card strong { color: var(--psi-deep); font-size: 15px; }
.energy-metric-card p { margin: 1px 0 0; color: var(--muted); font-size: 12px; line-height: 1.23; }
.metric-co2 { border-top-color: var(--red); }
.metric-intensity { border-top-color: var(--teal); background: #edf7f5; }
.metric-current { border-top-color: var(--amber); background: #fff8e7; }
.metric-current .metric-value { font-size: 23px; letter-spacing: -.02em; }

.service-chain {
  display: grid;
  grid-template-columns: 1fr auto 1.15fr auto 1fr auto 1.2fr auto 1fr;
  gap: 5px;
  align-items: center;
  margin-top: 9px;
}

.service-chain-step {
  min-width: 0;
  min-height: 53px;
  display: grid;
  align-content: center;
  gap: 2px;
  padding: 7px 10px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--psi-blue);
  border-radius: 9px;
  background: var(--surface-soft);
}

.service-chain-step strong { color: var(--psi-deep); font-size: 15px; }
.service-chain-step span { overflow: hidden; color: var(--muted); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.service-chain-emissions { border-left-color: var(--red); background: #fbf1f1; }
.service-chain-arrow { color: var(--teal); font-size: 20px; font-weight: 900; }

@media (max-height: 820px) and (min-width: 701px) {
  .intro-energy-slide .title-block { margin-bottom: 6px; }
  .intro-energy-slide .slide-subtitle { margin-top: 6px; }

  .energy-trend-layout {
    flex: 0 0 254px;
    min-height: 254px;
  }

  .energy-trend-chart { min-height: 254px; }

  .energy-metric-card { padding: 8px 12px; }
  .energy-metric-card .metric-value { font-size: 27px; }
  .metric-current .metric-value { font-size: 20px; }

  .service-chain { margin-top: 6px; }
  .service-chain-step { min-height: 44px; padding-block: 5px; }
  .service-chain-step strong { font-size: 14px; }

  .intro-energy-slide .source-note { margin-top: 3px; font-size: 11px; }
  .intro-energy-slide .takeaway { margin-top: 4px; padding-block: 10px; }
}

.causal-chain,
.mechanism-chain {
  display: grid;
  gap: 8px;
  align-content: center;
}

.causal-step {
  position: relative;
  display: grid;
  grid-template-columns: minmax(150px, 0.6fr) 1fr;
  gap: 14px;
  align-items: center;
  padding: 12px 15px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--psi-blue);
  border-radius: 10px;
  background: var(--surface-soft);
}

.causal-step:not(:last-child)::after {
  content: "↓";
  position: absolute;
  left: 50%;
  bottom: -14px;
  z-index: 2;
  color: var(--teal);
  font-weight: 900;
}

.causal-step strong { font-size: 18px; color: var(--psi-deep); }
.causal-step span { color: var(--muted); line-height: 1.3; }
.causal-step:last-child { border-left-color: var(--red); background: #fbf1f1; }

.mechanism-chain { padding: 8px 0; }
.mechanism-step {
  display: grid;
  gap: 4px;
  padding: 13px 17px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--surface-soft);
}
.mechanism-step strong { color: var(--psi-deep); font-size: 18px; }
.mechanism-step span { color: var(--muted); }
.mechanism-accent { border-color: rgba(196, 78, 82, .5); background: #fbf1f1; }
.mechanism-arrow { text-align: center; color: var(--teal); font-size: 18px; font-weight: 900; line-height: .6; }

.dense-panel { display: grid; gap: 10px; align-content: center; }
.dense-panel .concept-card { padding: 14px 16px; }
.dense-panel .concept-card h3 { font-size: 18px; }
.dense-panel .concept-card p { font-size: 15px; }

.emissions-visual-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(0, .86fr) minmax(0, 1.12fr);
  gap: 14px;
  flex: 1;
  min-height: 310px;
}

.emissions-sector-chart,
.emissions-gas-chart,
.emissions-region-chart { min-height: 310px; }

.emissions-stat-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-top: 9px;
}

.emissions-stat-card {
  min-width: 0;
  min-height: 74px;
  display: grid;
  align-content: center;
  gap: 2px;
  padding: 9px 12px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--psi-blue);
  border-radius: 10px;
  background: var(--surface-soft);
}

.emissions-stat-value {
  color: var(--psi-deep);
  font-size: 25px;
  font-weight: 900;
  letter-spacing: -.035em;
  line-height: 1;
}

.emissions-stat-card strong { color: var(--psi-deep); font-size: 14px; }
.emissions-stat-card p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.2; }
.emissions-stat-growth { border-left-color: var(--red); background: #fbf1f1; }
.emissions-stat-indirect { border-left-color: var(--teal); background: #edf7f5; }

.intro-emissions-slide .title-block,
.intro-budget-slide .title-block,
.model-mapping-heatmap-slide .title-block,
.model-architecture-slide .title-block,
.cross-iam-slide .title-block { margin-bottom: 10px; }

.intro-emissions-slide .takeaway,
.intro-budget-slide .takeaway,
.model-mapping-heatmap-slide .takeaway,
.model-architecture-slide .takeaway,
.cross-iam-slide .takeaway { margin-top: 10px; }

.intro-emissions-slide .source-note { margin-top: 5px; }

.mechanics-slide .title-block { margin-bottom: 8px; }
.mechanics-chart {
  flex: 1 1 320px;
  min-height: 310px;
}

.mechanics-stat-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-top: 9px;
}

.mechanics-stat-grid .energy-metric-card {
  min-height: 92px;
  padding: 9px 12px;
}

.mechanics-stat-grid .metric-value { font-size: 25px; }
.mechanics-stat-grid strong { font-size: 13px; }
.mechanics-stat-grid p { font-size: 10.5px; line-height: 1.17; }
.mechanics-investment-card { border-top-color: var(--amber); background: #fff9ec; }
.mechanics-output-card { border-top-color: var(--teal); background: #edf7f5; }
.mechanics-efficiency-card { border-top-color: var(--purple); background: #f5f1fa; }
.mechanics-premise-card { border-top-color: var(--psi-deep); }
.mechanics-slide .source-note { margin-top: 5px; font-size: 10.5px; }
.mechanics-slide .takeaway { margin-top: 6px; padding-block: 10px; }
.mechanics-slide .takeaway p { font-size: 17px; }

.energy-accounting-slide .title-block,
.energy-layer-slide .title-block,
.iam-mapping-slide .title-block { margin-bottom: 8px; }

.energy-boundary-chain {
  display: flex;
  gap: 0;
  align-items: stretch;
  margin-top: 4px;
}

.energy-stage-wrap {
  min-width: 0;
  display: flex;
  flex: 1 1 0;
  align-items: center;
}

.energy-stage {
  min-width: 0;
  min-height: 74px;
  display: grid;
  align-content: center;
  gap: 5px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-top: 5px solid var(--psi-blue);
  border-radius: 11px;
  background: var(--surface-soft);
  text-align: center;
}

.energy-stage strong { color: var(--psi-deep); font-size: 17px; }
.energy-stage span { color: var(--muted); font-size: 11px; line-height: 1.2; }
.energy-stage-arrow { flex: 0 0 24px; color: var(--teal); font-size: 22px; font-weight: 900; text-align: center; }
.energy-stage-primary { border-top-color: #9a7b5b; background: #f8f5ee; }
.energy-stage-conversion { border-top-color: var(--amber); background: #fff9ec; }
.energy-stage-secondary { border-top-color: var(--psi-blue); background: #eaf3f6; }
.energy-stage-final { border-top-color: var(--purple); background: #f5f1fa; }
.energy-stage-service { border-top-color: var(--teal); background: #edf7f5; }

.energy-boundary-details {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  margin-top: 8px;
}

.energy-boundary-detail {
  min-width: 0;
  padding: 9px 11px;
  border-left: 4px solid var(--psi-blue);
  border-radius: 8px;
  background: var(--surface-soft);
}

.energy-boundary-detail strong { color: var(--psi-deep); font-size: 12px; }
.energy-boundary-detail p { margin: 3px 0 0; color: var(--muted); font-size: 10.5px; line-height: 1.22; }
.energy-boundary-detail.energy-stage-primary { border-left-color: #9a7b5b; }
.energy-boundary-detail.energy-stage-conversion { border-left-color: var(--amber); }
.energy-boundary-detail.energy-stage-secondary { border-left-color: var(--psi-blue); }
.energy-boundary-detail.energy-stage-final { border-left-color: var(--purple); }
.energy-boundary-detail.energy-stage-service { border-left-color: var(--teal); }

.energy-rule-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 10px;
}

.energy-rule-grid .concept-card { padding: 12px 15px; }
.energy-rule-grid .concept-card h3 { margin-bottom: 4px; font-size: 16px; }
.energy-rule-grid .concept-card p { font-size: 13px; line-height: 1.28; }
.energy-rule-card { border-left: 5px solid var(--red); background: #fbf1f1; }
.premise-rule-card { border-left: 5px solid var(--teal); background: #edf7f5; }
.energy-accounting-slide .takeaway { margin-top: 9px; }

.energy-example-layout {
  min-height: 300px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(285px, .29fr);
  gap: 12px;
  flex: 1 1 320px;
}

.energy-sankey-chart {
  min-width: 0;
  min-height: 300px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: #f8fafb;
}

.energy-example-side {
  min-width: 0;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: 8px;
}

.energy-coordinate-card,
.energy-service-example,
.energy-premise-example {
  min-width: 0;
  padding: 10px 12px;
  border-radius: 9px;
}

.energy-coordinate-card {
  border: 1px solid #cddde3;
  background: #edf4f6;
}

.energy-coordinate-card > strong,
.service-unit-label {
  color: #526675;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .05em;
}

.energy-example-coordinate {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 6px;
}

.energy-example-coordinate span {
  padding: 4px 7px;
  border-radius: 999px;
  color: var(--psi-deep);
  background: #fff;
  font-size: 9px;
  font-weight: 800;
}

.energy-service-example {
  display: grid;
  align-content: center;
  border-top: 5px solid var(--teal);
  background: #edf7f5;
}

.service-metric {
  margin-top: 3px;
  color: var(--teal);
  font-size: 35px;
  font-weight: 900;
  line-height: 1;
}

.energy-service-bridge {
  display: flex;
  flex-wrap: wrap;
  gap: 3px 5px;
  align-items: center;
  margin-top: 6px;
  color: var(--psi-deep);
  font-size: 8px;
  font-weight: 800;
  line-height: 1.1;
}

.energy-service-bridge b { color: var(--teal); font-size: 12px; }

.energy-service-example > strong,
.energy-premise-example > strong {
  color: var(--psi-deep);
  font-size: 12px;
}

.energy-service-example p,
.energy-premise-example p {
  margin: 5px 0 0;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.22;
}

.energy-premise-example {
  border-left: 4px solid var(--psi-blue);
  background: #eaf3f6;
}

.energy-example-reading-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 8px;
}

.energy-example-reading-strip > div {
  min-width: 0;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 7px;
  align-items: baseline;
  padding: 7px 9px;
  border-left: 4px solid var(--amber);
  border-radius: 7px;
  background: #fff8e7;
}

.energy-example-reading-strip > div:nth-child(2) {
  border-left-color: var(--red);
  background: #fbf1f1;
}

.energy-example-reading-strip > div:nth-child(3) {
  border-left-color: var(--teal);
  background: #edf7f5;
}

.energy-example-reading-strip strong {
  color: var(--psi-deep);
  font-size: 11px;
}

.energy-example-reading-strip span {
  color: var(--muted);
  font-size: 9px;
  line-height: 1.12;
}

.energy-example-slide .source-note {
  margin-top: 5px;
  font-size: 9px;
  line-height: 1.12;
}

.energy-comparison-grid {
  min-height: 315px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 11px;
  flex: 1 1 330px;
}

.energy-comparison-panel {
  min-width: 0;
  min-height: 0;
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: #f8fafb;
}

.energy-compare-heading {
  display: grid;
  grid-template-columns: auto auto 1fr;
  gap: 8px;
  align-items: baseline;
  padding: 7px 10px 5px;
  border-bottom: 1px solid var(--line);
}

.energy-compare-heading > strong {
  color: var(--psi-deep);
  font-size: 20px;
}

.energy-compare-heading > span {
  padding: 3px 6px;
  border-radius: 999px;
  color: #fff;
  background: var(--teal);
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .04em;
}

.energy-compare-heading > b {
  justify-self: end;
  color: #526675;
  font-size: 9px;
}

.energy-stage-route {
  display: grid;
  grid-template-columns: 1fr auto 1fr auto 1fr auto 1.15fr;
  gap: 4px;
  align-items: center;
  padding: 4px 18px 1px;
  color: var(--psi-deep);
  font-size: 7px;
  font-weight: 900;
  text-align: center;
}

.energy-stage-route b { color: var(--teal); font-size: 10px; }

.energy-stage-route-three {
  grid-template-columns: 1fr auto 1.55fr auto 1fr;
}

.energy-stage-route-four-wide {
  grid-template-columns: .82fr auto 1.08fr auto 1.18fr auto .72fr;
}

.energy-compare-chart {
  min-width: 0;
  min-height: 245px;
  overflow: hidden;
}

.energy-service-context {
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: 5px;
  padding: 5px 7px 7px;
}

.energy-service-context > div {
  min-width: 0;
  display: grid;
  gap: 1px;
  padding: 5px 7px;
  border-left: 4px solid var(--psi-blue);
  border-radius: 6px;
  background: #eaf3f6;
}

.energy-service-context > div:last-child {
  border-left-color: var(--teal);
  background: #edf7f5;
}

.energy-service-context span {
  color: #526675;
  font-size: 7px;
  font-weight: 900;
  letter-spacing: .035em;
}

.energy-service-context strong {
  overflow: hidden;
  color: var(--psi-deep);
  font-size: 11px;
  line-height: 1.1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.total-energy-indicators {
  display: grid;
  grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
  gap: 5px;
  padding: 5px 7px 7px;
}

.total-energy-indicators > div {
  min-width: 0;
  display: grid;
  gap: 1px;
  padding: 5px 7px;
  border-left: 4px solid var(--amber);
  border-radius: 6px;
  background: #fff8e7;
}

.total-energy-indicators > div:last-child {
  border-left-color: var(--teal);
  background: #edf7f5;
}

.total-energy-indicators span {
  color: #526675;
  font-size: 7px;
  font-weight: 900;
  letter-spacing: .035em;
}

.total-energy-indicators strong {
  overflow: hidden;
  color: var(--psi-deep);
  font-size: 9px;
  line-height: 1.1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.energy-change-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 7px;
}

.energy-change-strip > div {
  min-width: 0;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 2px 7px;
  align-items: baseline;
  padding: 6px 9px;
  border-left: 4px solid var(--teal);
  border-radius: 7px;
  background: #edf7f5;
}

.energy-change-strip > div:nth-child(2) {
  border-left-color: var(--psi-blue);
  background: #eaf3f6;
}

.energy-change-strip > div:nth-child(3) {
  border-left-color: var(--amber);
  background: #fff8e7;
}

.energy-change-strip strong {
  grid-row: 1 / 3;
  color: var(--psi-deep);
  font-size: 11px;
}

.energy-change-strip span,
.energy-change-strip b {
  min-width: 0;
  overflow: hidden;
  color: var(--muted);
  font-size: 8px;
  line-height: 1.08;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.energy-change-strip b { color: #385466; }

.energy-layer-chart {
  flex: 1 1 300px;
  min-height: 285px;
}

.energy-layer-stat-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
  margin-top: 8px;
}

.energy-layer-stat-grid .energy-metric-card {
  min-height: 78px;
  padding: 8px 11px;
}

.energy-layer-stat-grid .metric-value { font-size: 23px; }
.energy-layer-stat-grid strong { font-size: 12px; }
.energy-layer-stat-grid p { font-size: 10px; line-height: 1.17; }
.energy-layer-good { border-top-color: var(--teal); background: #edf7f5; }
.energy-layer-risk { border-top-color: var(--red); background: #fbf1f1; }
.energy-layer-signal { border-top-color: var(--amber); background: #fff9ec; }
.energy-layer-premise { border-top-color: var(--psi-blue); background: #eaf3f6; }
.energy-layer-slide .source-note,
.iam-mapping-slide .source-note { margin-top: 5px; font-size: 10px; line-height: 1.15; }
.energy-layer-slide .takeaway,
.iam-mapping-slide .takeaway { margin-top: 6px; padding-block: 9px; }
.energy-layer-slide .takeaway p,
.iam-mapping-slide .takeaway p { font-size: 16px; }

.end-use-transformation-slide .title-block { margin-bottom: 5px; }
.end-use-transformation-slide .slide-subtitle { margin-top: 5px; font-size: 16px; }

.end-use-transformation-chart {
  flex: 1 1 290px;
  min-height: 280px;
}

.end-use-stat-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-top: 7px;
}

.end-use-stat-grid .energy-metric-card {
  min-height: 74px;
  padding: 7px 9px;
}

.end-use-stat-grid .metric-value { font-size: 21px; }
.end-use-stat-grid strong { font-size: 10.5px; line-height: 1.1; }
.end-use-stat-grid p { font-size: 8.8px; line-height: 1.13; }
.end-use-transformation-slide .source-note { margin-top: 4px; font-size: 9px; line-height: 1.12; }
.end-use-transformation-slide .takeaway { margin-top: 5px; padding-block: 8px; }
.end-use-transformation-slide .takeaway p { font-size: 15px; }

.iam-file-metric-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 9px;
}

.iam-file-metric-grid .energy-metric-card {
  min-height: 72px;
  padding: 8px 11px;
}
.iam-file-metric-grid .metric-value { font-size: 24px; }
.iam-file-metric-grid strong { font-size: 12px; }
.iam-file-metric-grid p { font-size: 9.5px; line-height: 1.14; }

.mapping-count-slide .title-block { margin-bottom: 6px; }
.mapping-count-slide .slide-subtitle { margin-top: 5px; font-size: 16px; }
.iam-mapping-count-chart { flex: 1 1 320px; min-height: 305px; }

.mapping-count-stat-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-top: 7px;
}

.mapping-count-stat-grid .energy-metric-card {
  min-height: 70px;
  padding: 7px 9px;
}

.mapping-count-stat-grid .metric-value { font-size: 22px; }
.mapping-count-stat-grid strong { font-size: 10.5px; line-height: 1.1; }
.mapping-count-stat-grid p { font-size: 8.8px; line-height: 1.13; }

.iam-mapping-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(300px, .45fr);
  gap: 12px;
  margin-top: 9px;
  flex: 1;
  min-height: 240px;
}

.iam-mapping-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: #fff;
}

.iam-mapping-table th,
.iam-mapping-table td {
  padding: 9px 10px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  vertical-align: top;
  font-size: 11px;
  line-height: 1.2;
  text-align: left;
}
.iam-mapping-table thead th { background: #e6edf0; color: var(--psi-deep); font-size: 11px; }
.iam-mapping-table thead th:first-child { width: 11%; }
.iam-mapping-table thead th:nth-child(2) { width: 34%; }
.iam-mapping-table thead th:nth-child(3) { width: 24%; }
.iam-mapping-table tr > :last-child { border-right: 0; }
.iam-mapping-table tbody tr:last-child > * { border-bottom: 0; }
.iam-mapping-table tbody th { color: var(--psi-deep); background: #f3f6f7; }
.iam-variable-cell { color: #385466; font-family: "SFMono-Regular", Consolas, monospace; font-size: 9.5px !important; overflow-wrap: anywhere; }

.mapping-side-panel {
  display: grid;
  align-content: start;
  gap: 9px;
  padding: 14px;
  border: 1px solid var(--line);
  border-top: 5px solid var(--teal);
  border-radius: 11px;
  background: #edf7f5;
}
.mapping-side-panel > strong { color: var(--psi-deep); font-size: 16px; }
.mapping-side-panel > p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.3; }
.scenario-coordinate { display: flex; flex-wrap: wrap; gap: 5px; }
.scenario-coordinate span { padding: 4px 7px; border-radius: 999px; background: #fff; color: var(--psi-deep); font-size: 10px; font-weight: 800; }
.mapping-guardrail { display: grid; gap: 4px; padding: 9px 10px; border-left: 4px solid var(--amber); border-radius: 7px; background: #fff9ec; }
.mapping-guardrail strong { color: var(--psi-deep); font-size: 12px; }
.mapping-guardrail span { color: var(--muted); font-size: 10.5px; line-height: 1.22; }

@media (max-height: 820px) and (min-width: 701px) {
  .intro-emissions-slide .title-block { margin-bottom: 6px; }
  .intro-emissions-slide .slide-subtitle { margin-top: 6px; }

  .emissions-visual-grid {
    flex: 0 0 245px;
    min-height: 245px;
  }

  .emissions-sector-chart,
  .emissions-gas-chart,
  .emissions-region-chart { min-height: 245px; }

  .emissions-stat-grid { margin-top: 6px; }
  .emissions-stat-card { min-height: 61px; padding-block: 6px; }
  .emissions-stat-value { font-size: 22px; }
  .intro-emissions-slide .source-note { margin-top: 3px; font-size: 11px; }
  .intro-emissions-slide .takeaway { margin-top: 4px; padding-block: 10px; }

  .mechanics-slide .title-block { margin-bottom: 4px; }
  .mechanics-slide .slide-subtitle { margin-top: 5px; font-size: 17px; }
  .mechanics-chart { flex: 0 0 238px; min-height: 238px; }
  .mechanics-stat-grid { gap: 6px; margin-top: 5px; }
  .mechanics-stat-grid .energy-metric-card { min-height: 60px; padding: 5px 7px; }
  .mechanics-stat-grid .metric-value { font-size: 19px; }
  .mechanics-stat-grid strong { font-size: 9px; }
  .mechanics-stat-grid p { font-size: 7.5px; line-height: 1.08; }
  .mechanics-slide .source-note { margin-top: 3px; font-size: 8px; line-height: 1.08; }
  .mechanics-slide .takeaway { margin-top: 4px; padding-block: 7px; }
  .mechanics-slide .takeaway p { font-size: 14px; }

  .energy-accounting-slide .title-block,
  .energy-layer-slide .title-block,
  .iam-mapping-slide .title-block { margin-bottom: 4px; }
  .energy-accounting-slide .slide-subtitle,
  .energy-layer-slide .slide-subtitle,
  .iam-mapping-slide .slide-subtitle { margin-top: 5px; font-size: 16px; }
  .energy-stage { min-height: 54px; padding: 6px 7px; }
  .energy-stage strong { font-size: 12px; }
  .energy-stage span { font-size: 7.5px; }
  .energy-stage-arrow { flex-basis: 15px; font-size: 16px; }
  .energy-boundary-details { gap: 5px; margin-top: 5px; }
  .energy-boundary-detail { padding: 5px 7px; }
  .energy-boundary-detail strong { font-size: 8.5px; }
  .energy-boundary-detail p { font-size: 7px; line-height: 1.12; }
  .energy-rule-grid { gap: 6px; margin-top: 6px; }
  .energy-rule-grid .concept-card { padding: 7px 9px; }
  .energy-rule-grid .concept-card h3 { font-size: 11px; }
  .energy-rule-grid .concept-card p { font-size: 8px; line-height: 1.17; }
  .energy-accounting-slide .takeaway { margin-top: 5px; padding-block: 8px; }
  .energy-accounting-slide .takeaway p { font-size: 14px; }

  .energy-example-layout {
    min-height: 216px;
    grid-template-columns: minmax(0, 1fr) 236px;
    gap: 7px;
    flex: 0 0 216px;
  }
  .energy-sankey-chart { min-height: 216px; }
  .energy-example-side { gap: 5px; }
  .energy-coordinate-card,
  .energy-service-example,
  .energy-premise-example { padding: 5px 7px; }
  .energy-coordinate-card > strong,
  .service-unit-label { font-size: 6.5px; }
  .energy-example-coordinate { gap: 3px; margin-top: 3px; }
  .energy-example-coordinate span { padding: 2px 4px; font-size: 6.5px; }
  .service-metric { font-size: 24px; }
  .energy-service-bridge { gap: 1px 3px; margin-top: 2px; font-size: 5.6px; }
  .energy-service-bridge b { font-size: 8px; }
  .energy-service-example > strong,
  .energy-premise-example > strong { font-size: 8px; }
  .energy-service-example p,
  .energy-premise-example p { margin-top: 2px; font-size: 6.7px; line-height: 1.1; }
  .energy-example-reading-strip { gap: 5px; margin-top: 5px; }
  .energy-example-reading-strip > div { gap: 4px; padding: 4px 6px; }
  .energy-example-reading-strip strong { font-size: 7.5px; }
  .energy-example-reading-strip span { font-size: 6.5px; }
  .energy-example-slide .source-note { margin-top: 3px; font-size: 6.8px; }

  .energy-comparison-grid {
    min-height: 205px;
    gap: 6px;
    flex: 0 0 205px;
  }
  .energy-compare-heading { gap: 4px; padding: 3px 5px 2px; }
  .energy-compare-heading > strong { font-size: 13px; }
  .energy-compare-heading > span { padding: 2px 4px; font-size: 5.5px; }
  .energy-compare-heading > b { font-size: 6px; }
  .energy-stage-route { gap: 2px; padding: 2px 8px 0; font-size: 5px; }
  .energy-stage-route b { font-size: 7px; }
  .total-energy-indicators { grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr); gap: 3px; padding: 2px 4px 4px; }
  .total-energy-indicators > div { padding: 2px 4px; border-left-width: 3px; }
  .total-energy-indicators span { font-size: 4.8px; }
  .total-energy-indicators strong { font-size: 6.2px; }
  .energy-compare-chart { min-height: 148px; }
  .energy-service-context { gap: 3px; padding: 2px 4px 4px; }
  .energy-service-context > div { padding: 2px 4px; border-left-width: 3px; }
  .energy-service-context span { font-size: 4.8px; }
  .energy-service-context strong { font-size: 7px; }
  .energy-change-strip { gap: 5px; margin-top: 4px; }
  .energy-change-strip > div { gap: 1px 4px; padding: 3px 5px; }
  .energy-change-strip strong { font-size: 7.5px; }
  .energy-change-strip span,
  .energy-change-strip b { font-size: 5.7px; }

  .energy-layer-chart { flex: 0 0 223px; min-height: 223px; }
  .energy-layer-stat-grid { gap: 6px; margin-top: 5px; }
  .energy-layer-stat-grid .energy-metric-card { min-height: 55px; padding: 5px 7px; }
  .energy-layer-stat-grid .metric-value { font-size: 18px; }
  .energy-layer-stat-grid strong { font-size: 8px; }
  .energy-layer-stat-grid p { font-size: 7px; line-height: 1.08; }
  .energy-layer-slide .source-note,
  .iam-mapping-slide .source-note { margin-top: 3px; font-size: 7.5px; line-height: 1.08; }
  .energy-layer-slide .takeaway,
  .iam-mapping-slide .takeaway { margin-top: 4px; padding-block: 7px; }
  .energy-layer-slide .takeaway p,
  .iam-mapping-slide .takeaway p { font-size: 14px; }

  .end-use-transformation-slide .title-block { margin-bottom: 3px; }
  .end-use-transformation-slide .slide-subtitle { margin-top: 4px; font-size: 14px; }
  .end-use-transformation-chart { flex: 0 0 220px; min-height: 220px; }
  .end-use-stat-grid { gap: 5px; margin-top: 4px; }
  .end-use-stat-grid .energy-metric-card { min-height: 53px; padding: 4px 6px; }
  .end-use-stat-grid .metric-value { font-size: 16px; }
  .end-use-stat-grid strong { font-size: 7.2px; }
  .end-use-stat-grid p { font-size: 6.3px; line-height: 1.06; }
  .end-use-transformation-slide .source-note { margin-top: 3px; font-size: 6.8px; line-height: 1.05; }
  .end-use-transformation-slide .takeaway { margin-top: 3px; padding-block: 6px; }
  .end-use-transformation-slide .takeaway p { font-size: 13px; }

  .iam-file-metric-grid { gap: 6px; }
  .iam-file-metric-grid .energy-metric-card { min-height: 50px; padding: 5px 7px; }
  .iam-file-metric-grid .metric-value { font-size: 17px; }
  .iam-file-metric-grid strong { font-size: 8px; }
  .iam-file-metric-grid p { font-size: 6.5px; line-height: 1.05; }
  .mapping-count-slide .title-block { margin-bottom: 3px; }
  .mapping-count-slide .slide-subtitle { margin-top: 4px; font-size: 14px; }
  .iam-mapping-count-chart { flex: 0 0 238px; min-height: 238px; }
  .mapping-count-stat-grid { gap: 5px; margin-top: 4px; }
  .mapping-count-stat-grid .energy-metric-card { min-height: 52px; padding: 4px 6px; }
  .mapping-count-stat-grid .metric-value { font-size: 16px; }
  .mapping-count-stat-grid strong { font-size: 7.2px; }
  .mapping-count-stat-grid p { font-size: 6.3px; line-height: 1.06; }
  .iam-mapping-layout { grid-template-columns: minmax(0, 1.62fr) minmax(230px, .38fr); gap: 7px; margin-top: 5px; min-height: 175px; }
  .iam-mapping-table th,
  .iam-mapping-table td { padding: 4px 5px; font-size: 7px; line-height: 1.1; }
  .iam-mapping-table thead th { font-size: 7px; }
  .iam-variable-cell { font-size: 6px !important; }
  .mapping-side-panel { gap: 5px; padding: 8px; }
  .mapping-side-panel > strong { font-size: 11px; }
  .mapping-side-panel > p { font-size: 7.5px; line-height: 1.15; }
  .scenario-coordinate { gap: 3px; }
  .scenario-coordinate span { padding: 2px 4px; font-size: 6.5px; }
  .mapping-guardrail { gap: 2px; padding: 5px 6px; }
  .mapping-guardrail strong { font-size: 8px; }
  .mapping-guardrail span { font-size: 7px; line-height: 1.1; }
}

.budget-visual-grid {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: 14px;
  flex: 1;
  min-height: 300px;
}

.budget-main-chart,
.budget-timing-chart { min-height: 300px; }

.budget-stat-grid,
.integration-stat-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-top: 9px;
}

.budget-stat-card,
.integration-stat-card {
  min-width: 0;
  min-height: 72px;
  display: grid;
  align-content: center;
  gap: 2px;
  padding: 9px 12px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--psi-blue);
  border-radius: 10px;
  background: var(--surface-soft);
}

.budget-stat-value,
.integration-stat-value {
  color: var(--psi-deep);
  font-size: 25px;
  font-weight: 900;
  letter-spacing: -.035em;
  line-height: 1;
}

.budget-stat-card strong,
.integration-stat-card strong { color: var(--psi-deep); font-size: 14px; }

.budget-stat-card p,
.integration-stat-card p {
  margin: 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.2;
}

.budget-stat-history { border-left-color: var(--muted); }
.budget-stat-limit { border-left-color: var(--teal); background: #edf7f5; }
.budget-stat-delay { border-left-color: var(--red); background: #fbf1f1; }
.intro-budget-slide .source-note { margin-top: 6px; }

.integration-slide .title-block { margin-bottom: 10px; }
.integration-slide .source-note { margin-top: 5px; }
.integration-slide .takeaway { margin-top: 8px; }

.integration-enriched-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(0, .94fr) minmax(0, .98fr);
  gap: 10px;
  flex: 1;
  min-height: 320px;
}

.integration-matrix-panel {
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr);
  gap: 6px;
  min-width: 0;
}

.matrix-reading-guide {
  display: flex;
  gap: 7px;
  align-items: baseline;
  padding: 7px 10px;
  border-left: 5px solid var(--psi-blue);
  border-radius: 7px;
  background: #eaf3f6;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.2;
}

.matrix-reading-guide strong {
  flex: 0 0 auto;
  color: var(--psi-deep);
  font-size: 13px;
}

.matrix-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 7px 14px;
  padding-inline: 10px;
}

.matrix-legend-item {
  display: inline-flex;
  gap: 5px;
  align-items: center;
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
}

.matrix-swatch {
  width: 17px;
  height: 12px;
  border: 1px solid rgba(11, 59, 82, .15);
  border-radius: 3px;
}

.level-0 { background: #edf1f3; }
.level-1 { background: #bfdad8; }
.level-2 { background: #5baea8; }
.level-3 { background: #006b8f; }

.integration-slide .integration-chart { min-height: 246px; }

.mitigation-potential-panel {
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  min-width: 0;
  gap: 5px;
}

.mitigation-potential-chart { min-height: 235px; }

.mitigation-definition-grid {
  display: grid;
  gap: 4px;
}

.mitigation-definition {
  display: grid;
  grid-template-columns: 9px minmax(0, 1fr);
  gap: 6px;
  align-items: start;
  padding: 5px 7px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #f7f9fa;
}

.mitigation-definition > div { display: grid; gap: 1px; }
.mitigation-definition strong { color: var(--psi-deep); font-size: 11px; line-height: 1.08; }
.mitigation-definition span { color: var(--muted); font-size: 9px; line-height: 1.16; }

.mitigation-definition-swatch {
  width: 9px;
  height: 100%;
  min-height: 29px;
  border-radius: 3px;
}

.definition-2030 { background: var(--psi-blue); }
.definition-2050 { background: var(--amber); }

.integration-example-panel {
  display: grid;
  grid-template-rows: auto auto auto auto auto auto auto;
  gap: 5px;
  min-width: 0;
  padding: 11px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: linear-gradient(180deg, #f8fbfc, #eef5f6);
}

.integration-example-title {
  display: grid;
  gap: 2px;
  padding-bottom: 5px;
  border-bottom: 1px solid var(--line);
}

.integration-example-title strong { color: var(--psi-deep); font-size: 18px; }
.integration-example-title small { color: var(--muted); font-size: 10px; }
.resource-kicker { color: var(--teal); font-size: 9px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }

.sector-demand-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 5px;
}

.sector-demand-chip {
  min-width: 0;
  display: grid;
  align-content: center;
  gap: 1px;
  min-height: 43px;
  padding: 5px 6px;
  border: 1px solid var(--line);
  border-top: 4px solid var(--psi-blue);
  border-radius: 7px;
  background: #fff;
}

.sector-demand-chip:nth-child(2) { border-top-color: var(--teal); }
.sector-demand-chip:nth-child(3) { border-top-color: var(--purple); }
.sector-demand-chip:nth-child(4) { border-top-color: var(--amber); }
.sector-demand-chip strong { color: var(--psi-deep); font-size: 11px; }
.sector-demand-chip span { color: var(--muted); font-size: 9px; line-height: 1.12; }

.sector-decisions-step,
.power-system-step,
.lca-output-step {
  display: grid;
  grid-template-columns: 25px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  padding: 6px 8px;
  border-radius: 8px;
}

.sector-decisions-step { padding-block: 2px; }
.power-system-step { color: #fff; background: var(--psi-deep); }
.lca-output-step { border: 1px solid #afd8d3; background: #dff1ee; }

.sector-decisions-step > div,
.power-system-step > div,
.lca-output-step > div { display: grid; gap: 1px; }

.sector-decisions-step strong,
.power-system-step strong,
.lca-output-step strong { font-size: 13px; }

.sector-decisions-step span,
.lca-output-step span { color: var(--muted); font-size: 10px; }
.power-system-step span { color: #d9edf3; font-size: 10px; }

.integration-step-number {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--teal);
  color: #fff !important;
  font-size: 12px !important;
  font-weight: 900;
}

.power-system-step .integration-step-number { background: #fff; color: var(--psi-deep) !important; }

.integration-flow-label {
  display: flex;
  justify-content: center;
  gap: 7px;
  align-items: center;
  color: var(--psi-deep);
  font-size: 10px;
  text-align: center;
}

.integration-flow-arrow { color: var(--teal); font-size: 15px; font-weight: 900; }

.integration-stat-card:nth-child(3) { border-left-color: var(--teal); background: #edf7f5; }
.integration-stat-card:nth-child(4) { border-left-color: var(--amber); background: #fff8e7; }

@media (max-height: 820px) and (min-width: 701px) {
  .intro-budget-slide .title-block,
  .integration-slide .title-block { margin-bottom: 6px; }

  .intro-budget-slide .slide-subtitle,
  .integration-slide .slide-subtitle { margin-top: 6px; }

  .budget-visual-grid {
    flex: 0 0 260px;
    min-height: 260px;
  }

  .integration-enriched-layout {
    flex: 0 0 250px;
    min-height: 250px;
  }

  .budget-main-chart,
  .budget-timing-chart { min-height: 260px; }

  .integration-slide .integration-chart { min-height: 185px; }
  .mitigation-potential-chart { min-height: 182px; }
  .mitigation-definition-grid { gap: 3px; }
  .mitigation-definition { padding-block: 3px; }
  .mitigation-definition-swatch { min-height: 27px; }

  .budget-stat-grid,
  .integration-stat-grid { margin-top: 6px; }

  .budget-stat-card,
  .integration-stat-card { min-height: 55px; padding-block: 5px; }

  .budget-stat-value,
  .integration-stat-value { font-size: 21px; }

  .matrix-reading-guide { padding-block: 5px; font-size: 11px; }
  .matrix-reading-guide strong { font-size: 12px; }
  .integration-example-panel { gap: 3px; padding: 8px; }
  .integration-example-title { padding-bottom: 3px; }
  .integration-example-title strong { font-size: 16px; }
  .sector-demand-chip { min-height: 39px; padding-block: 4px; }
  .sector-decisions-step,
  .power-system-step,
  .lca-output-step { padding-block: 4px; }
  .integration-flow-label { line-height: 1.05; }

  .intro-budget-slide .source-note,
  .integration-slide .source-note { margin-top: 3px; font-size: 11px; }

  .intro-budget-slide .takeaway,
  .integration-slide .takeaway { margin-top: 4px; padding-block: 8px; }

  .netzero-slide .title-block { margin-bottom: 6px; }
  .netzero-slide .slide-subtitle { margin-top: 6px; }
  .netzero-slide { padding-block: 20px 16px; }
  .netzero-layout { flex: 0 0 278px; gap: 9px; }
  .netzero-map-panel { padding: 6px 9px 5px; }
  .netzero-map { height: 226px; }
  .netzero-legend { gap: 3px 10px; padding-top: 3px; }
  .netzero-legend-item { gap: 4px; font-size: 10px; }
  .pathway-chain { gap: 3px; }
  .pathway-step { grid-template-columns: 25px 1fr; gap: 6px; padding-block: 3px; }
  .pathway-step-number { width: 21px; height: 21px; font-size: 11px; }
  .pathway-step strong { font-size: 14px; }
  .pathway-step p { font-size: 10px; line-height: 1.12; }
  .netzero-target-panel { padding: 5px 7px 6px; }
  .netzero-target-heading { gap: 1px; margin-bottom: 2px; }
  .netzero-target-table { font-size: 9.5px; }
  .netzero-target-table th { padding-block: 3px; font-size: 9px; }
  .netzero-target-table td { padding-block: 2px; }
  .netzero-slide .source-note { margin-top: 2px; font-size: 9px; }
  .netzero-slide .takeaway { margin-top: 3px; padding-block: 7px; }
  .netzero-slide .takeaway p { font-size: 16px; }
}

.netzero-slide .title-block,
.iam-definition-slide .title-block,
.iam-history-slide .title-block { margin-bottom: 10px; }

.netzero-slide .source-note,
.iam-definition-slide .source-note,
.iam-history-slide .source-note { margin-top: 6px; }

.netzero-slide .takeaway,
.iam-definition-slide .takeaway,
.iam-history-slide .takeaway { margin-top: 8px; }

.netzero-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, .62fr) minmax(360px, .72fr);
  gap: 14px;
  flex: 0 0 330px;
  min-height: 0;
}

.netzero-map-panel {
  min-width: 0;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  padding: 10px 12px 8px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
}

.netzero-map {
  width: 100%;
  height: 270px;
  min-height: 0;
  object-fit: contain;
}

.netzero-legend {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 5px 14px;
  padding-top: 5px;
}

.netzero-legend-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.legend-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
}

.netzero-2050 { background: #ffb703; }
.netzero-before { background: #164dbf; }
.netzero-after { background: #ff6b35; }
.netzero-achieved { background: #1597d4; }
.netzero-none { background: #c8cacc; }

.map-caption {
  margin-top: 5px;
  color: #71808a;
  font-size: 11px;
  text-align: center;
}

.pathway-chain {
  display: grid;
  gap: 6px;
  align-content: center;
}

.pathway-step {
  position: relative;
  display: grid;
  grid-template-columns: 29px 1fr;
  gap: 9px;
  align-items: start;
  padding: 5px 9px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--psi-blue);
  border-radius: 9px;
  background: var(--surface-soft);
}

.pathway-step:not(:last-child)::after {
  content: "↓";
  position: absolute;
  left: 14px;
  bottom: -12px;
  z-index: 2;
  color: var(--teal);
  font-weight: 900;
}

.pathway-step:last-child {
  border-left-color: var(--teal);
  background: #edf7f5;
}

.pathway-step-number {
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: var(--psi-deep);
  font-size: 13px;
  font-weight: 800;
}

.pathway-step strong { color: var(--psi-deep); font-size: 15px; }
.pathway-step p { margin: 1px 0 0; color: var(--muted); font-size: 12px; line-height: 1.18; }

.netzero-target-panel {
  min-width: 0;
  display: grid;
  grid-template-rows: auto 1fr;
  overflow: hidden;
  padding: 9px 10px 10px;
  border: 1px solid var(--line);
  border-top: 5px solid var(--amber);
  border-radius: 14px;
  background: linear-gradient(180deg, #fffdf7, #f7f9fa);
}

.netzero-target-heading {
  display: grid;
  gap: 2px;
  margin-bottom: 5px;
}

.netzero-target-heading strong {
  color: var(--psi-deep);
  font-size: 15px;
  line-height: 1.08;
}

.netzero-target-heading span {
  color: var(--muted);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.netzero-target-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  color: var(--ink);
  font-size: 10.5px;
}

.netzero-target-table th {
  padding: 4px 5px;
  color: #fff;
  background: var(--psi-deep);
  font-size: 9.5px;
  letter-spacing: .03em;
  text-align: left;
  text-transform: uppercase;
}

.netzero-target-table th:first-child,
.netzero-target-table td:first-child {
  width: 69px;
  font-weight: 850;
}

.netzero-target-table td {
  padding: 4px 5px;
  border-bottom: 1px solid #dfe6e9;
  line-height: 1.1;
  vertical-align: top;
}

.netzero-target-table tbody tr:nth-child(even) { background: #f1f5f6; }
.netzero-target-table tbody tr:last-child td { border-bottom: 0; }

.iam-meaning-strip {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}

.iam-meaning-card {
  display: grid;
  grid-template-columns: 36px 1fr;
  gap: 10px;
  align-items: center;
  min-width: 0;
  padding: 8px 12px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--psi-blue);
  border-radius: 10px;
  background: linear-gradient(180deg, #fff, #f7f9fa);
}

.iam-meaning-letter {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: var(--psi-blue);
  font-size: 18px;
  font-weight: 900;
}

.iam-meaning-card strong { color: var(--psi-deep); font-size: 17px; }
.iam-meaning-card p { margin: 1px 0 0; color: var(--muted); font-size: 12px; line-height: 1.18; }
.iam-meaning-assessment { border-left-color: var(--teal); }
.iam-meaning-assessment .iam-meaning-letter { background: var(--teal); }
.iam-meaning-model { border-left-color: var(--amber); }
.iam-meaning-model .iam-meaning-letter { background: var(--amber); }

.iam-definition-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: 78px minmax(0, 1fr);
  gap: 14px;
  flex: 1 1 390px;
  min-height: 0;
  margin-top: 10px;
}

.iam-experiment-panel {
  min-width: 0;
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr) 285px;
  grid-template-rows: minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #f6f8f9;
}

.iam-experiment-heading {
  display: grid;
  gap: 1px;
  padding-right: 10px;
  border-right: 1px solid var(--line);
}

.iam-experiment-heading strong { color: var(--psi-deep); font-size: 17px; }
.iam-experiment-heading span { color: var(--muted); font-size: 11px; }

.iam-experiment-chain {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 5px;
  align-content: center;
  padding-block: 0;
}

.iam-experiment-step {
  position: relative;
  display: grid;
  grid-template-columns: 27px 1fr;
  gap: 8px;
  align-items: start;
  padding: 5px 7px;
  border: 1px solid var(--line);
  border-left: 4px solid var(--psi-blue);
  border-radius: 8px;
  background: #fff;
}

.iam-experiment-step:not(:last-child)::after {
  content: "→";
  position: absolute;
  right: -10px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  color: var(--teal);
  font-size: 12px;
  font-weight: 900;
}

.iam-experiment-step-2 { border-left-color: var(--amber); }
.iam-experiment-step-3 { border-left-color: var(--teal); background: #edf7f5; }

.iam-experiment-number {
  width: 23px;
  height: 23px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: var(--psi-deep);
  font-size: 12px;
  font-weight: 900;
}

.iam-experiment-step strong { color: var(--psi-deep); font-size: 13px; }
.iam-experiment-step p { margin: 1px 0 0; color: var(--muted); font-size: 10px; line-height: 1.15; }

.iam-mode-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 5px;
}

.iam-mode-chip {
  display: grid;
  gap: 1px;
  padding: 5px 4px;
  border-radius: 7px;
  background: var(--psi-deep);
  text-align: center;
}

.iam-mode-chip strong { color: #fff; font-size: 10px; }
.iam-mode-chip span { color: #d9edf3; font-size: 9px; }

.iam-coupling-figure {
  min-width: 0;
  display: grid;
  grid-template-rows: auto 1fr auto;
  margin: 0;
  padding: 10px 12px 8px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
}

.iam-coupling-caption {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: baseline;
  margin-bottom: 6px;
}

.iam-coupling-caption strong { color: var(--psi-deep); font-size: 18px; }
.iam-coupling-caption span { color: var(--muted); font-size: 11px; }

.iam-coupling-diagram {
  min-height: 0;
  display: grid;
  grid-template-rows: auto 1fr auto;
  gap: 6px;
  padding: 7px;
  border-radius: 9px;
  background: #f5f8f9;
}

.iam-driver-band {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
}

.iam-driver-card {
  position: relative;
  display: grid;
  gap: 1px;
  padding: 5px 8px;
  border: 1px solid #b8cde8;
  border-radius: 7px;
  background: #edf3fb;
}

.iam-driver-card::after {
  content: "↓";
  position: absolute;
  left: 50%;
  bottom: -10px;
  z-index: 2;
  color: var(--psi-blue);
  font-size: 12px;
  font-weight: 900;
}

.iam-policy-card { border-color: #ead090; background: #fff8e7; }
.iam-policy-card::after { color: var(--amber); }
.iam-technology-card { border-color: #c8b8df; background: #f5f1fa; }
.iam-technology-card::after { color: var(--purple); }
.iam-driver-card strong { color: var(--psi-deep); font-size: 11px; }
.iam-driver-card span { color: var(--muted); font-size: 9px; }

.iam-coupled-core {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 150px minmax(0, 1fr);
  gap: 7px;
  min-height: 0;
}

.iam-system-zone {
  min-width: 0;
  display: grid;
  grid-template-rows: auto 1fr;
  gap: 5px;
  padding: 7px;
  border: 2px solid rgba(7, 109, 146, .35);
  border-radius: 9px;
  background: #eef4fa;
}

.iam-system-zone > strong { color: var(--psi-deep); font-size: 14px; }
.iam-natural-zone { border-color: rgba(0, 145, 132, .4); background: #edf7f2; }

.iam-system-node-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px;
}

.iam-system-node-grid span {
  display: grid;
  place-items: center;
  min-width: 0;
  padding: 4px 5px;
  border: 1px solid rgba(7, 52, 71, .12);
  border-radius: 6px;
  background: rgba(255, 255, 255, .8);
  color: var(--ink);
  font-size: 9.5px;
  line-height: 1.08;
  text-align: center;
}

.iam-exchange-column {
  display: grid;
  gap: 10px;
  align-content: center;
}

.iam-exchange {
  display: flex;
  gap: 5px;
  align-items: center;
  justify-content: center;
  padding: 5px 6px;
  border-radius: 999px;
  text-align: center;
}

.iam-exchange strong { font-size: 9px; line-height: 1.05; }
.iam-exchange span { font-size: 18px; font-weight: 900; line-height: .7; }
.iam-exchange-emissions { color: #9e3236; background: #f8e8e8; }
.iam-exchange-feedback { color: #007d73; background: #e4f3ef; }

.iam-pathway-band {
  display: flex;
  justify-content: center;
  gap: 9px;
  align-items: center;
  padding: 5px 8px;
  border-radius: 7px;
  color: #fff;
  background: var(--psi-deep);
}

.iam-pathway-band strong { font-size: 11px; }
.iam-pathway-band span { color: #d9edf3; font-size: 9px; }
.iam-pathway-band b {
  padding-left: 9px;
  border-left: 1px solid rgba(255, 255, 255, .35);
  color: #fff2c9;
  font-size: 9px;
}

.iam-figure-note {
  margin-top: 5px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.15;
}

.iam-model-coverage {
  margin-top: 5px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.iam-coverage-heading {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: baseline;
  padding: 4px 7px;
  background: #f2f5f6;
}

.iam-coverage-heading strong { color: var(--psi-deep); font-size: 10px; }
.iam-coverage-heading span { color: var(--muted); font-size: 8px; }

.iam-coverage-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  color: var(--ink);
  font-size: 9px;
  text-align: center;
}

.iam-coverage-table th,
.iam-coverage-table td {
  padding: 2px 4px;
  border-top: 1px solid #e0e7e9;
  border-right: 1px solid #e0e7e9;
  line-height: 1.05;
}

.iam-coverage-table thead tr:first-child th {
  border-top: 0;
  color: #fff;
  background: var(--psi-deep);
  font-size: 9px;
}

.iam-coverage-table thead tr:nth-child(2) th {
  color: var(--psi-deep);
  background: #eaf0f2;
  font-size: 8px;
}

.iam-coverage-table th:first-child {
  width: 150px;
  text-align: left;
}

.iam-coverage-table tbody th {
  color: var(--psi-deep);
  background: #f8fafb;
  font-size: 8px;
}

.iam-coverage-table tbody td {
  color: var(--teal);
  font-size: 13px;
  font-weight: 900;
}

.iam-coverage-table tr > :last-child { border-right: 0; }

.iam-definition-slide .iam-coupling-figure {
  grid-template-rows: auto minmax(0, 1fr);
}

.iam-definition-slide .iam-coupling-diagram {
  grid-template-rows: 34px minmax(0, 1fr) 28px;
  gap: 6px;
  padding: 7px;
}

.iam-definition-slide .iam-driver-card { padding: 5px 9px; }
.iam-definition-slide .iam-driver-card strong { font-size: 11px; }
.iam-definition-slide .iam-driver-card span { font-size: 8.5px; }
.iam-definition-slide .iam-coupled-core {
  grid-template-columns: minmax(0, 1fr) 150px minmax(0, 1fr);
  gap: 7px;
}
.iam-definition-slide .iam-system-zone { gap: 5px; padding: 7px; }
.iam-definition-slide .iam-system-zone > strong { font-size: 15px; }
.iam-definition-slide .iam-system-node-grid { gap: 5px; }
.iam-definition-slide .iam-system-node-grid span {
  padding: 5px 6px;
  font-size: 10px;
}
.iam-definition-slide .iam-exchange-column { gap: 8px; }
.iam-definition-slide .iam-exchange { padding: 5px 6px; }
.iam-definition-slide .iam-exchange strong { font-size: 9px; }
.iam-definition-slide .iam-exchange span { font-size: 18px; }
.iam-definition-slide .iam-pathway-band { gap: 9px; padding: 5px 8px; }
.iam-definition-slide .iam-pathway-band strong { font-size: 11px; }
.iam-definition-slide .iam-pathway-band span { font-size: 8.5px; }
.iam-definition-slide .iam-pathway-band b { font-size: 8.5px; }

.iam-coverage-slide .title-block { margin-bottom: 10px; }

.iam-coverage-key-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.iam-coverage-key {
  min-width: 0;
  display: grid;
  grid-template-columns: 34px 1fr;
  gap: 9px;
  align-items: center;
  padding: 9px 12px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--teal);
  border-radius: 9px;
  background: #f7f9fa;
}

.iam-coverage-key-symbol {
  color: var(--teal);
  font-size: 25px;
  font-weight: 900;
  line-height: 1;
  text-align: center;
}

.iam-coverage-key-copy { min-width: 0; display: grid; gap: 2px; }
.iam-coverage-key-copy strong {
  color: var(--psi-deep);
  font-size: 12px;
  line-height: 1.1;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.iam-coverage-key-copy span { color: var(--muted); font-size: 11px; line-height: 1.15; }
.iam-coverage-key-linked { border-left-color: var(--amber); }
.iam-coverage-key-linked .iam-coverage-key-symbol { color: var(--amber); }
.iam-coverage-key-outside { border-left-color: #91a0a8; }
.iam-coverage-key-outside .iam-coverage-key-symbol { color: #71808a; }

.iam-model-coverage-large {
  flex: 1;
  min-height: 0;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  margin-top: 10px;
  border-radius: 12px;
}

.iam-coverage-slide-heading {
  padding: 8px 12px;
  color: var(--psi-deep);
  background: #eaf0f2;
  font-size: 14px;
  font-weight: 800;
}

.iam-coverage-slide .iam-coverage-table-large {
  height: 100%;
  font-size: 14px;
}

.iam-coverage-slide .iam-coverage-table-large th,
.iam-coverage-slide .iam-coverage-table-large td {
  padding: 8px 10px;
  line-height: 1.1;
}

.iam-coverage-slide .iam-coverage-table-large thead tr:first-child th {
  font-size: 13px;
}

.iam-coverage-slide .iam-coverage-table-large thead tr:nth-child(2) th {
  font-size: 12px;
}

.iam-coverage-slide .iam-coverage-table-large th:first-child { width: 220px; }
.iam-coverage-slide .iam-coverage-table-large tbody th { font-size: 12px; }
.iam-coverage-slide .iam-coverage-table-large tbody td { font-size: 22px; }
.iam-coverage-table tbody td.iam-coverage-cell-core { color: var(--teal); }
.iam-coverage-table tbody td.iam-coverage-cell-linked { color: var(--amber); }
.iam-coverage-table tbody td.iam-coverage-cell-outside { color: #71808a; }

.iam-coverage-note-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 10px;
}

.iam-coverage-note {
  padding: 9px 12px;
  border-left: 4px solid var(--psi-blue);
  border-radius: 7px;
  background: #f2f6f8;
}

.iam-coverage-note:nth-child(2) { border-left-color: var(--amber); }
.iam-coverage-note:nth-child(3) { border-left-color: var(--teal); }
.iam-coverage-note strong { color: var(--psi-deep); font-size: 14px; }
.iam-coverage-note p { margin: 3px 0 0; color: var(--muted); font-size: 11px; line-height: 1.2; }
.iam-coverage-slide .source-note { margin-top: 6px; }
.iam-coverage-slide .takeaway { margin-top: 7px; }

.ssp-worlds-slide .title-block,
.forcing-families-slide .title-block,
.scenario-combination-slide .title-block { margin-bottom: 10px; }

.ssp-world-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  flex: 1;
  min-height: 260px;
}

.ssp-world-card {
  min-width: 0;
  display: grid;
  grid-template-rows: auto auto 1fr auto;
  padding: 13px 13px 11px;
  border: 1px solid var(--line);
  border-top: 6px solid var(--psi-blue);
  border-radius: 12px;
  background: #f7fafb;
}

.ssp-world-heading {
  min-width: 0;
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  gap: 9px;
  align-items: start;
}

.ssp-world-heading > strong {
  display: grid;
  place-items: center;
  min-height: 44px;
  border-radius: 9px;
  color: #fff;
  background: var(--psi-deep);
  font-size: 17px;
}

.ssp-world-heading-copy { min-width: 0; display: grid; gap: 2px; }
.ssp-world-heading-copy b { color: var(--psi-deep); font-size: 15px; line-height: 1.08; }
.ssp-world-heading-copy span { color: var(--muted); font-size: 10px; font-weight: 700; line-height: 1.12; }
.ssp-world-card ul { margin: 9px 0 7px; padding-left: 17px; color: var(--muted); font-size: 11px; line-height: 1.2; }
.ssp-world-card li + li { margin-top: 4px; }

.ssp-indicator-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px;
  align-content: end;
  margin-bottom: 7px;
}

.ssp-indicator {
  min-width: 0;
  display: grid;
  gap: 1px;
  padding: 5px 6px;
  border: 1px solid #dce5e8;
  border-radius: 6px;
  background: #fff;
}

.ssp-indicator span {
  overflow: hidden;
  color: #647681;
  font-size: 7px;
  font-weight: 800;
  letter-spacing: .015em;
  line-height: 1.05;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.ssp-indicator strong { color: var(--psi-deep); font-size: 10px; line-height: 1.05; }

.ssp-challenge-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; }
.ssp-challenge-badge { display: grid; gap: 2px; padding: 6px; border-radius: 7px; text-align: center; }
.ssp-challenge-badge span { color: #49606c; font-size: 8px; font-weight: 800; text-transform: uppercase; letter-spacing: .03em; }
.ssp-challenge-badge strong { color: var(--psi-deep); font-size: 11px; text-transform: uppercase; }
.challenge-low { background: #dff2ed; }
.challenge-medium { background: #fff0c9; }
.challenge-high { background: #f7dddd; }
.ssp-world-ssp2 { border-top-color: var(--amber); }
.ssp-world-ssp3 { border-top-color: var(--red); }
.ssp-world-ssp4 { border-top-color: var(--purple); }
.ssp-world-ssp5 { border-top-color: #765237; }
.ssp-world-ssp2 .ssp-world-heading > strong { background: var(--amber); }
.ssp-world-ssp3 .ssp-world-heading > strong { background: var(--red); }
.ssp-world-ssp4 .ssp-world-heading > strong { background: var(--purple); }
.ssp-world-ssp5 .ssp-world-heading > strong { background: #765237; }

.ssp-driver-band {
  display: grid;
  grid-template-columns: minmax(200px, .72fr) minmax(0, 1.45fr) minmax(260px, .92fr);
  gap: 12px;
  align-items: center;
  margin-top: 10px;
  padding: 10px 12px;
  border-radius: 10px;
  background: #edf4f6;
}

.ssp-driver-intro,
.ssp-baseline-note { display: grid; gap: 2px; }
.ssp-driver-intro strong,
.ssp-baseline-note strong { color: var(--psi-deep); font-size: 13px; }
.ssp-driver-intro span,
.ssp-baseline-note span { color: var(--muted); font-size: 10px; line-height: 1.15; }
.ssp-indicator-scale { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; }
.ssp-indicator-scale span { padding: 6px 7px; border-radius: 7px; color: var(--psi-deep); font-size: 9px; font-weight: 900; text-align: center; text-transform: uppercase; }
.ssp-scale-low { background: #dff2ed; }
.ssp-scale-medium { background: #fff0c9; }
.ssp-scale-high { background: #f7dddd; }
.ssp-baseline-note { padding-left: 10px; border-left: 4px solid var(--amber); }
.ssp-worlds-slide .source-note,
.forcing-families-slide .source-note,
.scenario-combination-slide .source-note { margin-top: 6px; }
.ssp-worlds-slide .takeaway,
.forcing-families-slide .takeaway,
.scenario-combination-slide .takeaway { margin-top: 7px; }

.ssp-quantitative-slide .title-block,
.ssp-narrative-slide .title-block { margin-bottom: 9px; }

.ssp-quant-method-band {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 9px;
}

.ssp-quant-method-band > div {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 8px;
  align-items: baseline;
  padding: 7px 9px;
  border-left: 4px solid var(--psi-blue);
  border-radius: 7px;
  background: #edf4f6;
}
.ssp-quant-method-band > div:nth-child(2) { border-left-color: var(--amber); }
.ssp-quant-method-band > div:nth-child(3) { border-left-color: var(--teal); }
.ssp-quant-method-band strong { color: var(--psi-deep); font-size: 11px; }
.ssp-quant-method-band span { color: var(--muted); font-size: 9px; line-height: 1.12; }

.ssp-quant-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 11px;
  flex: 1;
  min-height: 315px;
}
.ssp-quant-card { min-width: 0; min-height: 0; display: grid; grid-template-rows: auto minmax(0, 1fr); padding: 9px 10px 5px; border: 1px solid var(--line); border-radius: 11px; background: #f8fafb; }
.ssp-quant-card-heading { min-height: 38px; display: grid; gap: 2px; }
.ssp-quant-card-heading strong { color: var(--psi-deep); font-size: 14px; }
.ssp-quant-card-heading span { color: var(--muted); font-size: 9px; line-height: 1.12; }
.ssp-quant-graph { min-height: 270px; height: 100%; overflow: hidden; }

.ssp-challenge-summary-row { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; margin-top: 8px; }
.ssp-challenge-summary { display: grid; grid-template-columns: auto 1fr 1fr; gap: 6px; align-items: center; padding: 6px 8px; border-top: 4px solid var(--psi-blue); border-radius: 7px; background: #edf4f6; }
.ssp-challenge-summary strong { color: var(--psi-deep); font-size: 11px; }
.ssp-challenge-summary span { color: var(--muted); font-size: 8px; text-align: center; }
.ssp-challenge-summary-ssp2 { border-top-color: var(--amber); }
.ssp-challenge-summary-ssp3 { border-top-color: var(--red); }
.ssp-challenge-summary-ssp4 { border-top-color: var(--purple); }
.ssp-challenge-summary-ssp5 { border-top-color: #765237; }
.ssp-quantitative-slide .source-note,
.ssp-narrative-slide .source-note { margin-top: 5px; }
.ssp-quantitative-slide .takeaway,
.ssp-narrative-slide .takeaway { margin-top: 6px; }

.ssp-story-grid-three,
.ssp-story-grid-two { display: grid; gap: 12px; flex: 1; min-height: 390px; }
.ssp-story-grid-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ssp-story-grid-two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ssp-story-card { min-width: 0; display: flex; flex-direction: column; padding: 13px 14px 11px; border: 1px solid var(--line); border-top: 6px solid var(--psi-blue); border-radius: 12px; background: #f8fafb; }
.ssp-story-ssp2 { border-top-color: var(--amber); }
.ssp-story-ssp3 { border-top-color: var(--red); }
.ssp-story-ssp4 { border-top-color: var(--purple); }
.ssp-story-ssp5 { border-top-color: #765237; }
.ssp-story-header { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 9px; align-items: center; }
.ssp-story-header > strong { display: grid; place-items: center; min-height: 48px; border-radius: 9px; color: #fff; background: var(--psi-deep); font-size: 17px; }
.ssp-story-ssp2 .ssp-story-header > strong { background: var(--amber); }
.ssp-story-ssp3 .ssp-story-header > strong { background: var(--red); }
.ssp-story-ssp4 .ssp-story-header > strong { background: var(--purple); }
.ssp-story-ssp5 .ssp-story-header > strong { background: #765237; }
.ssp-story-name h2 { margin: 0; color: var(--psi-deep); font-size: 19px; }
.ssp-story-name span { color: var(--muted); font-size: 10px; font-weight: 800; }
.ssp-story-thesis { margin: 8px 0; padding-bottom: 7px; border-bottom: 1px solid var(--line); color: var(--psi-deep); font-size: 12px; font-weight: 800; line-height: 1.22; }
.ssp-story-sections { display: grid; gap: 6px; }
.ssp-story-section { padding: 7px 8px; border-radius: 7px; background: #fff; }
.ssp-story-section strong { color: var(--psi-deep); font-size: 10px; }
.ssp-story-section p { margin: 2px 0 0; color: var(--muted); font-size: 9.5px; line-height: 1.2; }
.ssp-story-lca { margin-top: 7px; padding: 7px 8px; border-left: 4px solid var(--teal); border-radius: 7px; background: #e9f6f3; }
.ssp-story-lca strong { color: var(--psi-deep); font-size: 9px; text-transform: uppercase; letter-spacing: .04em; }
.ssp-story-lca p { margin: 2px 0 0; color: #425962; font-size: 9.5px; line-height: 1.2; }
.ssp-story-signals { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; margin-top: auto; padding-top: 7px; }
.ssp-story-signals > div { display: grid; gap: 1px; padding: 5px 6px; border: 1px solid #dce5e8; border-radius: 6px; background: #fff; }
.ssp-story-signals span { color: var(--muted); font-size: 7px; font-weight: 800; text-transform: uppercase; }
.ssp-story-signals strong { color: var(--psi-deep); font-size: 10px; }
.ssp-story-card .ssp-challenge-pair { margin-top: 6px; }
.ssp-pair-story-sections { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.ssp-pair-contrast-band { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 8px; }
.ssp-pair-contrast-band > div { display: grid; grid-template-columns: auto 1fr; gap: 7px; align-items: baseline; padding: 7px 9px; border-radius: 7px; background: #edf4f6; }
.ssp-pair-contrast-band > div:nth-child(2) { background: #f2edf8; }
.ssp-pair-contrast-band > div:nth-child(3) { background: #f4ede8; }
.ssp-pair-contrast-band strong { color: var(--psi-deep); font-size: 10px; }
.ssp-pair-contrast-band span { color: var(--muted); font-size: 9px; }

.forcing-framework-layout {
  display: grid;
  grid-template-columns: minmax(0, .94fr) minmax(0, 1.06fr);
  gap: 14px;
  flex: 0 0 145px;
  min-height: 145px;
}

.forcing-framework-panel {
  min-width: 0;
  display: flex;
  flex-direction: column;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #f7fafb;
}

.rcp-framework-panel { border-top: 6px solid var(--psi-deep); }
.emissions-framework-panel { border-top: 6px solid var(--teal); }
.forcing-panel-heading h2 { margin: 0; color: var(--psi-deep); font-size: 17px; }
.forcing-panel-heading p { margin: 4px 0 6px; color: var(--muted); font-size: 10px; line-height: 1.18; }

.rcp-ladder { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 5px; flex: 1; }
.rcp-ladder-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1px;
  align-items: center;
  padding: 5px 7px;
  border-radius: 8px;
  color: #fff;
  background: var(--psi-blue);
  text-align: center;
}
.rcp-ladder-row strong { font-size: 13px; }
.rcp-ladder-row b { font-size: 10px; }
.rcp-ladder-row span { font-size: 8px; font-weight: 800; text-transform: uppercase; }
.rcp-ladder-row i { display: none; }
.rcp-ladder-85 { background: #8f3034; }
.rcp-ladder-60 { background: #b66b2d; }
.rcp-ladder-45 { background: #9a8928; }
.rcp-ladder-26 { background: var(--teal); }
.rcp-ladder-19 { background: var(--psi-blue); }

.forcing-definition-note {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 8px;
  margin-top: 5px;
  padding: 5px 8px;
  border-left: 4px solid var(--amber);
  border-radius: 7px;
  background: #fff7df;
}
.forcing-definition-note strong { color: var(--psi-deep); font-size: 9px; }
.forcing-definition-note span { color: var(--muted); font-size: 8px; line-height: 1.12; }
.workshop-label-note { border-left-color: var(--purple); background: #f2edf8; }

.emission-family-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 5px; flex: 1; align-content: center; }
.emission-family-chip { min-width: 0; display: grid; grid-template-rows: auto auto 1fr; gap: 1px; padding: 6px 5px; border-radius: 8px; color: #fff; background: #9a3438; text-align: center; }
.emission-family-chip strong { font-size: 16px; }
.emission-family-chip b { font-size: 8px; line-height: 1.05; }
.emission-family-chip span { color: #f4f8f9; font-size: 6.5px; line-height: 1.05; }
.emission-family-hl { background: var(--red); }
.emission-family-m,
.emission-family-ml { background: var(--amber); }
.emission-family-l { background: #578d68; }
.emission-family-ln,
.emission-family-vl { background: var(--teal); }

.forcing-overview-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr) auto;
  gap: 7px;
  flex: 0 0 170px;
  min-height: 170px;
}
.forcing-overview-layout > * { min-width: 0; }

.forcing-reading-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-rows: minmax(0, 1fr);
  gap: 7px;
}
.forcing-reading-card {
  min-width: 0;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 8px;
  align-items: baseline;
  padding: 6px 9px;
  border-left: 4px solid var(--psi-blue);
  border-radius: 7px;
  background: #edf4f6;
}
.forcing-reading-card:nth-child(2) { border-left-color: var(--amber); background: #fff7df; }
.forcing-reading-card:nth-child(3) { border-left-color: var(--teal); background: #e9f6f3; }
.forcing-reading-card strong { color: var(--psi-deep); font-size: 10px; }
.forcing-reading-card span { color: var(--muted); font-size: 9px; line-height: 1.15; }

.emission-family-overview {
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  gap: 7px;
  flex: 0 0 168px;
  min-height: 168px;
}
.emission-family-reading-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
.emission-family-reading-row .forcing-reading-card { padding-block: 5px; }

.forcing-continuity-band {
  display: grid;
  grid-template-columns: minmax(160px, 1fr) 25px minmax(180px, 1fr) 25px minmax(160px, 1fr) minmax(260px, 1.6fr);
  gap: 7px;
  align-items: center;
  margin-top: 10px;
  padding: 8px 10px;
  border-radius: 10px;
  background: #eaf3f6;
}
.framework-step { display: grid; grid-template-columns: auto 1fr; gap: 7px; align-items: baseline; padding: 5px 8px; border-radius: 7px; background: #fff; }
.framework-step strong { color: var(--psi-deep); font-size: 12px; }
.framework-step span { color: var(--muted); font-size: 10px; }
.framework-step-active { border: 2px solid rgba(0, 107, 143, .28); }
.framework-arrow { color: var(--teal); font-size: 19px; font-weight: 900; text-align: center; }
.forcing-continuity-band p { margin: 0 0 0 5px; color: var(--psi-deep); font-size: 10px; font-weight: 700; line-height: 1.16; }

.forcing-trajectory-panel {
  min-height: 270px;
  display: flex;
  flex: 1;
  flex-direction: column;
  margin-top: 10px;
  padding: 9px 11px 8px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #f7fafb;
}

.forcing-trajectory-title-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: start;
}

.forcing-trajectory-heading h2 { margin: 0; color: var(--psi-deep); font-size: 16px; }
.forcing-trajectory-heading p { margin: 2px 0 5px; color: var(--muted); font-size: 9px; line-height: 1.12; }
.forcing-trajectory-caveat { align-self: center; padding: 5px 8px; border-left: 4px solid var(--amber); border-radius: 6px; background: #fff7df; color: var(--muted); font-size: 8px; }
.forcing-trajectory-grid { min-height: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 7px 9px; flex: 1; }
.forcing-chart-card { min-width: 0; min-height: 0; display: grid; grid-template-rows: auto minmax(0, 1fr); padding: 5px 7px 3px; border: 1px solid #dbe4e7; border-radius: 8px; background: #fff; }
.forcing-chart-label { display: flex; justify-content: space-between; gap: 8px; align-items: baseline; }
.forcing-chart-label strong { color: var(--psi-deep); font-size: 10px; }
.forcing-chart-label span { color: var(--muted); font-size: 7.5px; }
.forcing-trajectory-graph { height: 102px; min-height: 102px; overflow: hidden; }
.forcing-trajectory-pair-panel { min-height: 270px; }
.forcing-trajectory-pair-grid { grid-template-rows: minmax(0, 1fr); }
.forcing-trajectory-graph-large {
  height: clamp(150px, 24vh, 215px);
  min-height: clamp(150px, 24vh, 215px);
}

.scenario-equation {
  display: grid;
  grid-template-columns: minmax(150px, 1fr) 22px minmax(190px, 1.2fr) 22px minmax(130px, .8fr) 30px minmax(210px, 1.35fr);
  gap: 7px;
  align-items: center;
  margin-bottom: 10px;
  padding: 9px 11px;
  border-radius: 11px;
  background: #eaf3f6;
}
.scenario-equation > i { color: var(--teal); font-size: 21px; font-style: normal; font-weight: 900; text-align: center; }
.scenario-equation-part { display: grid; gap: 2px; padding: 7px 10px; border-radius: 8px; background: #fff; text-align: center; }
.scenario-equation-part strong { color: var(--psi-deep); font-size: 13px; }
.scenario-equation-part span { color: var(--muted); font-size: 9px; }
.equation-output { color: #fff; background: var(--teal); }
.equation-output strong { color: #fff; }
.equation-output span { color: #e4f4f2; }

.scenario-combination-layout { display: grid; grid-template-columns: minmax(300px, .68fr) minmax(600px, 1.32fr); gap: 13px; flex: 1; min-height: 300px; }
.scenario-label-panel,
.scenario-matrix-panel { min-width: 0; padding: 13px 14px; border: 1px solid var(--line); border-radius: 11px; background: #f7fafb; }
.scenario-label-panel { display: flex; flex-direction: column; }
.scenario-label-panel h2,
.scenario-matrix-heading h2 { margin: 0; color: var(--psi-deep); font-size: 18px; }
.scenario-label-panel > p,
.scenario-matrix-heading p { margin: 4px 0 8px; color: var(--muted); font-size: 10px; line-height: 1.2; }
.scenario-label-examples { display: grid; gap: 6px; margin-block: auto; }
.scenario-label-example { display: grid; grid-template-columns: 98px 48px 13px 48px 16px 1fr; gap: 4px; align-items: center; padding: 7px 8px; border-radius: 7px; background: #fff; font-size: 10px; }
.scenario-label-example > span { color: var(--muted); font-size: 8px; line-height: 1.05; }
.scenario-label-example strong { color: var(--psi-deep); text-align: center; }
.scenario-label-example i { color: var(--teal); font-size: 14px; font-style: normal; font-weight: 900; text-align: center; }
.scenario-label-example b { padding: 5px 6px; border-radius: 6px; color: #fff; background: var(--teal); text-align: center; }
.scenario-label-caution { display: grid; gap: 3px; margin-top: 9px; padding: 8px 9px; border-left: 4px solid var(--amber); border-radius: 7px; background: #fff7df; }
.scenario-label-caution strong { color: var(--psi-deep); font-size: 10px; text-transform: uppercase; }
.scenario-label-caution span { color: var(--muted); font-size: 9px; line-height: 1.15; }

.scenario-matrix-panel { display: flex; flex-direction: column; }
.scenario-matrix-title-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(250px, .78fr); gap: 12px; align-items: end; }
.matrix-direction { display: grid; grid-template-columns: 1fr 24px 1fr; gap: 4px; align-items: center; padding-bottom: 7px; }
.matrix-direction-label { color: var(--muted); font-size: 8px; font-weight: 800; line-height: 1.05; text-align: center; text-transform: uppercase; }
.matrix-direction-arrow { color: var(--teal); font-size: 16px; font-weight: 900; text-align: center; }
.scenario-matrix-table { width: 100%; border-collapse: separate; border-spacing: 4px; table-layout: fixed; }
.scenario-matrix-table th { color: var(--psi-deep); font-size: 11px; }
.scenario-matrix-table thead th { padding: 5px 4px; border-radius: 6px; background: #e6edf0; }
.scenario-matrix-table thead th:first-child { width: 92px; }
.scenario-matrix-table tbody th { display: grid; grid-template-columns: 1fr auto; gap: 3px; align-items: baseline; padding: 6px 8px; border-radius: 6px; background: #e6edf0; text-align: right; }
.scenario-matrix-table tbody th strong { font-size: 13px; }
.scenario-matrix-table tbody th span { color: var(--muted); font-size: 7px; }
.scenario-matrix-cell { padding: 6px 4px; border-radius: 6px; color: #fff; font-size: 12px; font-weight: 900; text-align: center; }
.scenario-matrix-all { background: var(--teal); }
.scenario-matrix-partial { background: var(--amber); }
.scenario-matrix-none { background: var(--red); }
.scenario-matrix-na { color: #657783; background: #e4e9eb; }
.scenario-matrix-legend { display: flex; flex-wrap: wrap; gap: 6px 13px; align-items: center; margin: 4px 2px 0; }
.scenario-matrix-legend > div { display: flex; gap: 5px; align-items: center; color: var(--muted); font-size: 8px; }
.matrix-legend-swatch { width: 11px; height: 11px; border-radius: 3px; }
.matrix-legend-all { background: var(--teal); }
.matrix-legend-partial { background: var(--amber); }
.matrix-legend-none { background: var(--red); }
.matrix-legend-na { background: #e4e9eb; }
.scenario-matrix-reading { margin: 5px 2px 0; color: #405762; font-size: 9px; line-height: 1.15; }

@media (max-height: 1000px) and (min-width: 701px) {
  .iam-definition-layout {
    grid-template-rows: clamp(52px, 7vh, 70px) minmax(0, 1fr);
    flex: 0 0 clamp(324px, calc(100vh - 521px), 390px);
    height: clamp(324px, calc(100vh - 521px), 390px);
    gap: 8px;
    margin-top: 8px;
  }

  .iam-experiment-panel {
    grid-template-columns: 175px minmax(0, 1fr) 270px;
    gap: 9px;
    padding: 6px 9px;
  }
  .iam-experiment-heading { padding-right: 8px; }
  .iam-experiment-heading strong { font-size: 16px; }
  .iam-experiment-heading span { font-size: 10px; }
  .iam-experiment-step { grid-template-columns: 24px 1fr; gap: 6px; padding: 4px 6px; }
  .iam-experiment-number { width: 21px; height: 21px; font-size: 11px; }
  .iam-experiment-step strong { font-size: 12px; }
  .iam-experiment-step p { font-size: 9px; }
  .iam-mode-chip { padding: 4px 3px; }
  .iam-mode-chip strong { font-size: 9px; }
  .iam-mode-chip span { font-size: 8px; }

  .iam-coupling-figure {
    grid-template-rows: auto clamp(112px, calc(100vh - 721px), 160px) auto;
    padding: 7px 9px 6px;
  }
  .iam-coupling-caption { margin-bottom: 4px; }
  .iam-coupling-caption strong { font-size: 16px; }
  .iam-coupling-caption span { font-size: 9px; }
  .iam-coupling-diagram {
    grid-template-rows: 22px minmax(48px, 1fr) 16px;
    gap: 4px;
    padding: 5px;
  }
  .iam-driver-band { gap: 5px; }
  .iam-driver-card { min-height: 0; overflow: hidden; padding: 2px 6px; }
  .iam-driver-card strong { font-size: 9px; }
  .iam-driver-card span { font-size: 6.5px; }
  .iam-coupled-core {
    grid-template-columns: minmax(0, 1fr) 130px minmax(0, 1fr);
    gap: 5px;
    min-height: 0;
  }
  .iam-system-zone { gap: 2px; min-height: 0; overflow: hidden; padding: 3px 5px; }
  .iam-system-zone > strong { font-size: 12px; }
  .iam-system-node-grid { gap: 2px; }
  .iam-system-node-grid span { padding: 2px 4px; font-size: 8px; }
  .iam-exchange-column { gap: 5px; }
  .iam-exchange { padding: 3px 4px; }
  .iam-exchange strong { font-size: 7.5px; }
  .iam-exchange span { font-size: 14px; }
  .iam-pathway-band { min-height: 0; gap: 7px; overflow: hidden; padding: 2px 6px; }
  .iam-pathway-band strong { font-size: 9px; }
  .iam-pathway-band span { font-size: 7px; }
  .iam-pathway-band b { padding-left: 6px; font-size: 7px; }

  .iam-model-coverage { margin-top: 3px; }
  .iam-coverage-heading { padding: 2px 6px; }
  .iam-coverage-heading strong { font-size: 8.5px; }
  .iam-coverage-heading span { font-size: 7px; }
  .iam-coverage-table th,
  .iam-coverage-table td { padding: 1px 3px; }
  .iam-coverage-table thead tr:first-child th { font-size: 7.5px; }
  .iam-coverage-table thead tr:nth-child(2) th { font-size: 7px; }
  .iam-coverage-table th:first-child { width: 145px; }
  .iam-coverage-table tbody th { font-size: 7px; }
  .iam-coverage-table tbody td { font-size: 10px; }

  .iam-definition-slide .source-note { margin-top: 4px; font-size: 10px; }
  .iam-definition-slide .takeaway { margin-top: 5px; padding-block: 9px; }
  .iam-definition-slide .takeaway p { font-size: 16px; }
}

@media (max-height: 820px) and (min-width: 701px) {
  .iam-definition-slide .title-block { margin-bottom: 6px; }
  .iam-definition-slide .slide-subtitle { margin-top: 6px; }
  .iam-meaning-card {
    grid-template-columns: 30px 1fr;
    gap: 7px;
    padding-block: 4px;
  }
  .iam-meaning-letter { width: 28px; height: 28px; font-size: 15px; }
  .iam-meaning-card strong { font-size: 16px; }
  .iam-meaning-card p { font-size: 10.5px; }
  .iam-definition-layout {
    grid-template-rows: 52px minmax(0, 1fr);
    flex: 0 0 292px;
    height: 292px;
    gap: 6px;
    margin-top: 7px;
  }
  .iam-experiment-panel {
    grid-template-columns: 160px minmax(0, 1fr) 250px;
    gap: 7px;
    padding: 5px 8px;
  }
  .iam-experiment-heading { padding: 0 7px 0 0; }
  .iam-experiment-heading strong { font-size: 15px; }
  .iam-experiment-heading span { font-size: 9px; }
  .iam-experiment-chain { gap: 3px; padding-block: 0; }
  .iam-experiment-step { grid-template-columns: 23px 1fr; gap: 6px; padding: 3px 6px; }
  .iam-experiment-number { width: 20px; height: 20px; font-size: 10px; }
  .iam-experiment-step strong { font-size: 12px; }
  .iam-experiment-step p { font-size: 9px; }
  .iam-mode-chip { padding: 3px; }
  .iam-mode-chip strong { font-size: 8px; }
  .iam-mode-chip span { font-size: 7px; }

  .iam-coupling-figure {
    grid-template-rows: auto 102px auto;
    padding: 6px 8px 5px;
  }
  .iam-coupling-caption { margin-bottom: 3px; }
  .iam-coupling-caption strong { font-size: 15px; }
  .iam-coupling-caption span { font-size: 9px; }
  .iam-coupling-diagram { gap: 3px; padding: 4px; }
  .iam-coupling-diagram {
    grid-template-rows: 22px minmax(48px, 1fr) 16px;
  }
  .iam-driver-band { gap: 4px; }
  .iam-driver-card { min-height: 0; overflow: hidden; padding: 2px 6px; }
  .iam-driver-card strong { font-size: 9px; }
  .iam-driver-card span { font-size: 6.5px; }
  .iam-coupled-core {
    grid-template-columns: minmax(0, 1fr) 120px minmax(0, 1fr);
    gap: 4px;
    min-height: 0;
  }
  .iam-system-zone { gap: 2px; min-height: 0; overflow: hidden; padding: 3px 4px; }
  .iam-system-zone > strong { font-size: 11px; }
  .iam-system-node-grid { gap: 2px; }
  .iam-system-node-grid span { padding: 2px 3px; font-size: 7.5px; }
  .iam-exchange-column { gap: 4px; }
  .iam-exchange { padding: 3px 4px; }
  .iam-exchange strong { font-size: 7px; }
  .iam-exchange span { font-size: 13px; }
  .iam-pathway-band { min-height: 0; gap: 6px; overflow: hidden; padding: 2px 6px; }
  .iam-pathway-band strong { font-size: 9px; }
  .iam-pathway-band span { font-size: 7px; }
  .iam-pathway-band b { padding-left: 5px; font-size: 6.5px; }

  .iam-model-coverage { margin-top: 3px; }
  .iam-coverage-heading { padding: 2px 5px; }
  .iam-coverage-heading strong { font-size: 8px; }
  .iam-coverage-heading span { font-size: 6.5px; }
  .iam-coverage-table th,
  .iam-coverage-table td { padding: 1px 3px; }
  .iam-coverage-table thead tr:first-child th { font-size: 7px; }
  .iam-coverage-table thead tr:nth-child(2) th { font-size: 6.5px; }
  .iam-coverage-table th:first-child { width: 150px; }
  .iam-coverage-table tbody th { font-size: 6.5px; }
  .iam-coverage-table tbody td { font-size: 9px; }

  .iam-definition-slide .source-note { margin-top: 3px; font-size: 9.5px; }
  .iam-definition-slide .takeaway { margin-top: 4px; padding-block: 8px; }
  .iam-definition-slide .takeaway p { font-size: 16px; }

  .iam-coverage-slide .title-block { margin-bottom: 5px; }
  .iam-coverage-slide .slide-subtitle { margin-top: 5px; }
  .iam-coverage-key-grid { gap: 7px; }
  .iam-coverage-key {
    grid-template-columns: 26px 1fr;
    gap: 6px;
    padding: 5px 8px;
  }
  .iam-coverage-key-symbol { font-size: 20px; }
  .iam-coverage-key-copy strong { font-size: 10px; }
  .iam-coverage-key-copy span { font-size: 8.5px; }
  .iam-model-coverage-large { margin-top: 6px; }
  .iam-coverage-slide-heading { padding: 5px 8px; font-size: 11px; }
  .iam-coverage-slide .iam-coverage-table-large th,
  .iam-coverage-slide .iam-coverage-table-large td { padding: 3px 6px; }
  .iam-coverage-slide .iam-coverage-table-large thead tr:first-child th { font-size: 10px; }
  .iam-coverage-slide .iam-coverage-table-large thead tr:nth-child(2) th { font-size: 9px; }
  .iam-coverage-slide .iam-coverage-table-large th:first-child { width: 180px; }
  .iam-coverage-slide .iam-coverage-table-large tbody th { font-size: 9px; }
  .iam-coverage-slide .iam-coverage-table-large tbody td { font-size: 16px; }
  .iam-coverage-note-grid { gap: 7px; margin-top: 6px; }
  .iam-coverage-note { padding: 5px 8px; }
  .iam-coverage-note strong { font-size: 11px; }
  .iam-coverage-note p { margin-top: 2px; font-size: 9px; line-height: 1.1; }
  .iam-coverage-slide .source-note { margin-top: 3px; font-size: 9px; }
  .iam-coverage-slide .takeaway { margin-top: 4px; padding-block: 8px; }
  .iam-coverage-slide .takeaway p { font-size: 15px; }

  .ssp-worlds-slide .title-block,
  .forcing-families-slide .title-block,
  .scenario-combination-slide .title-block { margin-bottom: 5px; }
  .ssp-worlds-slide .slide-subtitle,
  .forcing-families-slide .slide-subtitle,
  .scenario-combination-slide .slide-subtitle { margin-top: 5px; }

  .ssp-world-grid { flex: 0 0 238px; min-height: 238px; gap: 7px; }
  .ssp-world-card { padding: 7px 8px; border-top-width: 5px; }
  .ssp-world-heading { grid-template-columns: 41px minmax(0, 1fr); gap: 6px; }
  .ssp-world-heading > strong { min-height: 35px; font-size: 14px; }
  .ssp-world-heading-copy b { font-size: 11px; }
  .ssp-world-heading-copy span { font-size: 8px; }
  .ssp-world-card ul { margin: 7px 0 5px; padding-left: 14px; font-size: 9px; line-height: 1.16; }
  .ssp-world-card li + li { margin-top: 3px; }
  .ssp-indicator-grid { gap: 2px; margin-bottom: 4px; }
  .ssp-indicator { gap: 0; padding: 3px 4px; }
  .ssp-indicator span { font-size: 5.5px; }
  .ssp-indicator strong { font-size: 7.5px; }
  .ssp-challenge-pair { gap: 3px; }
  .ssp-challenge-badge { gap: 1px; padding: 4px 2px; }
  .ssp-challenge-badge span { font-size: 6px; }
  .ssp-challenge-badge strong { font-size: 8px; }
  .ssp-driver-band { grid-template-columns: minmax(155px, .72fr) minmax(0, 1.45fr) minmax(220px, .92fr); gap: 7px; margin-top: 6px; padding: 6px 8px; }
  .ssp-driver-intro strong,
  .ssp-baseline-note strong { font-size: 10px; }
  .ssp-driver-intro span,
  .ssp-baseline-note span { font-size: 8px; }
  .ssp-indicator-scale { gap: 3px; }
  .ssp-indicator-scale span { padding: 4px 5px; font-size: 6.5px; }
  .ssp-baseline-note { padding-left: 7px; }

  .ssp-quantitative-slide .title-block,
  .ssp-narrative-slide .title-block { margin-bottom: 5px; }
  .ssp-quantitative-slide .slide-subtitle,
  .ssp-narrative-slide .slide-subtitle { margin-top: 5px; }
  .ssp-quant-method-band { gap: 5px; margin-bottom: 5px; }
  .ssp-quant-method-band > div { grid-template-columns: auto 1fr; gap: 5px; padding: 4px 6px; }
  .ssp-quant-method-band strong { font-size: 8px; }
  .ssp-quant-method-band span { font-size: 6.5px; }
  .ssp-quant-grid { flex: 0 0 255px; min-height: 255px; gap: 7px; }
  .ssp-quant-card { padding: 5px 6px 2px; }
  .ssp-quant-card-heading { min-height: 28px; }
  .ssp-quant-card-heading strong { font-size: 10px; }
  .ssp-quant-card-heading span { font-size: 6.5px; }
  .ssp-quant-graph { min-height: 215px; }
  .ssp-challenge-summary-row { gap: 4px; margin-top: 5px; }
  .ssp-challenge-summary { grid-template-columns: auto 1fr 1fr; gap: 3px; padding: 3px 5px; border-top-width: 3px; }
  .ssp-challenge-summary strong { font-size: 8px; }
  .ssp-challenge-summary span { font-size: 5.5px; }

  .ssp-story-grid-three,
  .ssp-story-grid-two { flex: 0 0 345px; min-height: 345px; gap: 7px; }
  .ssp-pair-slide .ssp-story-grid-two { flex-basis: 300px; min-height: 300px; }
  .ssp-story-card { padding: 7px 8px 6px; border-top-width: 5px; }
  .ssp-story-header { grid-template-columns: 42px minmax(0, 1fr); gap: 6px; }
  .ssp-story-header > strong { min-height: 35px; font-size: 13px; }
  .ssp-story-name h2 { font-size: 13px; }
  .ssp-story-name span { font-size: 7px; }
  .ssp-story-thesis { margin: 4px 0; padding-bottom: 4px; font-size: 8.5px; line-height: 1.12; }
  .ssp-story-sections { gap: 3px; }
  .ssp-story-section { padding: 4px 5px; }
  .ssp-story-section strong { font-size: 7.5px; }
  .ssp-story-section p { margin-top: 1px; font-size: 7px; line-height: 1.12; }
  .ssp-story-lca { margin-top: 4px; padding: 4px 5px; }
  .ssp-story-lca strong { font-size: 6.5px; }
  .ssp-story-lca p { margin-top: 1px; font-size: 7px; line-height: 1.12; }
  .ssp-story-signals { gap: 3px; padding-top: 4px; }
  .ssp-story-signals > div { padding: 3px 4px; }
  .ssp-story-signals span { font-size: 5px; }
  .ssp-story-signals strong { font-size: 7px; }
  .ssp-story-card .ssp-challenge-pair { margin-top: 3px; }
  .ssp-story-card .ssp-challenge-badge { padding: 3px 2px; }
  .ssp-pair-story-sections { gap: 4px; }
  .ssp-pair-contrast-band { gap: 5px; margin-top: 5px; }
  .ssp-pair-contrast-band > div { gap: 4px; padding: 4px 6px; }
  .ssp-pair-contrast-band strong { font-size: 7.5px; }
  .ssp-pair-contrast-band span { font-size: 6.5px; }
  .ssp-quantitative-slide .source-note,
  .ssp-narrative-slide .source-note { margin-top: 3px; font-size: 8px; }
  .ssp-quantitative-slide .takeaway,
  .ssp-narrative-slide .takeaway { margin-top: 4px; padding-block: 7px; }
  .ssp-quantitative-slide .takeaway p,
  .ssp-narrative-slide .takeaway p { font-size: 14px; }

  .forcing-framework-layout { flex: 0 0 125px; min-height: 125px; gap: 7px; }
  .forcing-framework-panel { padding: 8px 10px; border-top-width: 5px; }
  .forcing-panel-heading h2 { font-size: 12px; }
  .forcing-panel-heading p { margin: 2px 0 4px; font-size: 7px; line-height: 1.1; }
  .rcp-ladder { gap: 3px; }
  .rcp-ladder-row { grid-template-columns: 1fr; gap: 0; padding: 3px 4px; }
  .rcp-ladder-row strong { font-size: 9px; }
  .rcp-ladder-row b { font-size: 7px; }
  .rcp-ladder-row span { font-size: 6px; }
  .forcing-definition-note { gap: 4px; margin-top: 3px; padding: 3px 5px; }
  .forcing-definition-note strong { font-size: 6.5px; }
  .forcing-definition-note span { font-size: 6px; }
  .emission-family-grid { gap: 3px; }
  .emission-family-chip { padding: 3px 2px; }
  .emission-family-chip strong { font-size: 11px; }
  .emission-family-chip b { font-size: 6.5px; }
  .emission-family-chip span { font-size: 5px; }
  .forcing-overview-layout {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr) auto;
    flex-basis: 118px;
    min-height: 118px;
    gap: 4px;
  }
  .forcing-reading-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-template-rows: minmax(0, 1fr);
    gap: 4px;
  }
  .forcing-reading-card { gap: 4px; padding: 3px 5px; border-left-width: 3px; }
  .forcing-reading-card strong { font-size: 7px; }
  .forcing-reading-card span { font-size: 6px; line-height: 1.08; }
  .emission-family-overview { flex-basis: 118px; min-height: 118px; gap: 4px; }
  .emission-family-reading-row { gap: 4px; }
  .emission-family-reading-row .forcing-reading-card { padding-block: 3px; }
  .forcing-continuity-band { grid-template-columns: minmax(135px, 1fr) 18px minmax(145px, 1fr) 18px minmax(135px, 1fr) minmax(215px, 1.6fr); gap: 4px; margin-top: 6px; padding: 5px 7px; }
  .framework-step { gap: 5px; padding: 3px 5px; }
  .framework-step strong { font-size: 9px; }
  .framework-step span { font-size: 7.5px; }
  .framework-arrow { font-size: 15px; }
  .forcing-continuity-band p { font-size: 7.5px; }
  .forcing-trajectory-panel { flex: 0 0 210px; min-height: 210px; margin-top: 6px; padding: 4px 6px 3px; }
  .forcing-trajectory-title-row { gap: 7px; }
  .forcing-trajectory-heading h2 { font-size: 11px; }
  .forcing-trajectory-heading p { margin: 1px 0 3px; font-size: 6.5px; }
  .forcing-trajectory-caveat { max-width: 300px; padding: 3px 5px; font-size: 6px; }
  .forcing-trajectory-grid { gap: 4px 6px; }
  .forcing-chart-card { padding: 2px 4px 0; }
  .forcing-chart-label strong { font-size: 6.5px; }
  .forcing-chart-label span { font-size: 5px; }
  .forcing-trajectory-graph { height: 72px; min-height: 72px; }
  .forcing-trajectory-pair-panel { flex-basis: 218px; min-height: 218px; }
  .forcing-trajectory-pair-grid { grid-template-rows: minmax(0, 1fr); }
  .forcing-trajectory-graph-large { height: 158px; min-height: 158px; }

  .scenario-equation { grid-template-columns: minmax(125px, 1fr) 18px minmax(155px, 1.2fr) 18px minmax(105px, .8fr) 24px minmax(175px, 1.35fr); gap: 4px; margin-bottom: 6px; padding: 5px 7px; }
  .scenario-equation > i { font-size: 16px; }
  .scenario-equation-part { gap: 1px; padding: 4px 6px; }
  .scenario-equation-part strong { font-size: 10px; }
  .scenario-equation-part span { font-size: 7px; }
  .scenario-combination-layout { grid-template-columns: minmax(260px, .68fr) minmax(520px, 1.32fr); flex: 0 0 282px; min-height: 282px; gap: 8px; }
  .scenario-label-panel,
  .scenario-matrix-panel { padding: 7px 8px; }
  .scenario-label-panel h2,
  .scenario-matrix-heading h2 { font-size: 13px; }
  .scenario-label-panel > p,
  .scenario-matrix-heading p { margin: 2px 0 4px; font-size: 7.5px; }
  .scenario-label-examples { gap: 4px; margin-block: 0; }
  .scenario-label-example { grid-template-columns: 80px 39px 10px 39px 12px 1fr; gap: 3px; padding: 4px 5px; font-size: 8px; }
  .scenario-label-example > span { font-size: 6.5px; }
  .scenario-label-example i { font-size: 11px; }
  .scenario-label-example b { padding: 3px 4px; }
  .scenario-label-caution { gap: 2px; margin-top: 5px; padding: 5px 6px; }
  .scenario-label-caution strong { font-size: 7.5px; }
  .scenario-label-caution span { font-size: 7px; }
  .scenario-matrix-title-row { grid-template-columns: minmax(0, 1fr) minmax(210px, .78fr); gap: 6px; }
  .matrix-direction { grid-template-columns: 1fr 18px 1fr; padding-bottom: 3px; }
  .matrix-direction-label { font-size: 6px; }
  .matrix-direction-arrow { font-size: 12px; }
  .scenario-matrix-table { border-spacing: 3px; }
  .scenario-matrix-table th { font-size: 8.5px; }
  .scenario-matrix-table thead th { padding: 3px; }
  .scenario-matrix-table thead th:first-child { width: 72px; }
  .scenario-matrix-table tbody th { padding: 3px 5px; }
  .scenario-matrix-table tbody th strong { font-size: 10px; }
  .scenario-matrix-table tbody th span { font-size: 5.5px; }
  .scenario-matrix-cell { padding: 3px; font-size: 9px; }
  .scenario-matrix-legend { gap: 3px 8px; margin-top: 2px; }
  .scenario-matrix-legend > div { gap: 3px; font-size: 6px; }
  .matrix-legend-swatch { width: 8px; height: 8px; }
  .scenario-matrix-reading { margin-top: 3px; font-size: 6.8px; }

  .ssp-worlds-slide .source-note,
  .forcing-families-slide .source-note,
  .scenario-combination-slide .source-note { margin-top: 3px; font-size: 9px; }
  .ssp-worlds-slide .takeaway,
  .forcing-families-slide .takeaway,
  .scenario-combination-slide .takeaway { margin-top: 4px; padding-block: 8px; }
  .forcing-families-slide .takeaway { padding-block: 6px; }
  .ssp-worlds-slide .takeaway p,
  .forcing-families-slide .takeaway p,
  .scenario-combination-slide .takeaway p { font-size: 15px; }

  .anonymous-scenario-slide .title-block { margin-bottom: 7px; }
  .anonymous-scenario-slide .slide-subtitle { margin-top: 6px; }
  .anonymous-scenario-slide .chart-and-panel { flex: 0 0 330px; min-height: 330px; }
  .anonymous-scenario-slide .graph-frame { min-height: 330px; }
  .anonymous-scenario-slide .side-panel { padding: 9px 10px; }
  .anonymous-scenario-slide .evidence-screen-panel { gap: 5px; }
  .anonymous-scenario-slide .evidence-screen-panel .panel-heading {
    margin-bottom: 2px;
    font-size: 19px;
    line-height: 1.03;
  }
  .anonymous-scenario-slide .side-panel > p { margin-block: 2px; font-size: 11px; line-height: 1.15; }
  .anonymous-scenario-slide .evidence-gap-section { padding: 4px 7px; }
  .anonymous-scenario-slide .evidence-gap-section strong { font-size: 7.5px; }
  .anonymous-scenario-slide .evidence-gap-section ul { margin: 2px 0 0; padding-left: 13px; }
  .anonymous-scenario-slide .evidence-gap-section li { font-size: 7.5px; line-height: 1.08; }
  .anonymous-scenario-slide .evidence-gap-section li + li { margin-top: 2px; }
  .anonymous-scenario-slide .evidence-screen-rule { gap: 1px; margin-top: 2px; padding: 4px 7px; }
  .anonymous-scenario-slide .evidence-screen-rule strong { font-size: 7px; }
  .anonymous-scenario-slide .evidence-screen-rule span { font-size: 7.5px; line-height: 1.06; }
  .anonymous-scenario-slide .takeaway { margin-top: 7px; padding-block: 9px; }
  .anonymous-scenario-slide .takeaway p { font-size: 16px; }
}

.history-policy-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.22fr) minmax(390px, .78fr);
  gap: 18px;
  flex: 1;
  min-height: 375px;
}

.history-timeline {
  position: relative;
  display: grid;
  gap: 5px;
  align-content: center;
}

.history-timeline::before {
  content: "";
  position: absolute;
  top: 5%;
  bottom: 5%;
  left: 57px;
  width: 3px;
  background: linear-gradient(180deg, #7c8e9a, var(--psi-blue), var(--teal));
}

.history-item {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 115px 1fr;
  align-items: center;
  min-height: 54px;
}

.history-year {
  justify-self: start;
  min-width: 93px;
  padding: 6px 9px;
  border: 3px solid #fff;
  border-radius: 999px;
  color: #fff;
  background: var(--psi-deep);
  font-size: 13px;
  font-weight: 800;
  text-align: center;
}

.history-copy {
  padding: 6px 10px;
  border-left: 3px solid #d9e4e8;
}

.history-copy strong { color: var(--psi-deep); font-size: 16px; }
.history-copy p { margin: 2px 0 0; color: var(--muted); font-size: 13px; line-height: 1.25; }
.history-more {
  display: block;
  margin-top: 2px;
  color: #48616e;
  font-size: 11px;
  line-height: 1.18;
}

.policy-interface {
  display: grid;
  gap: 7px;
  align-content: center;
  padding: 13px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--surface-warm);
}

.policy-interface h2 { margin: 0 0 3px; color: var(--psi-deep); font-size: 22px; }

.policy-interface-step {
  display: grid;
  grid-template-columns: 30px 1fr;
  gap: 9px;
  align-items: start;
  padding: 7px 9px;
  border-radius: 8px;
  background: #fff;
}

.policy-number {
  width: 25px;
  height: 25px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: var(--psi-blue);
  font-size: 12px;
  font-weight: 800;
}

.policy-interface-step strong { color: var(--psi-deep); font-size: 15px; }
.policy-interface-step p { margin: 2px 0 0; color: var(--muted); font-size: 12px; line-height: 1.24; }

.policy-caution {
  padding: 9px 11px;
  border-left: 5px solid var(--amber);
  border-radius: 0 8px 8px 0;
  background: #fff7df;
}

.policy-caution strong { color: var(--psi-deep); }
.policy-caution p { margin: 3px 0 0; color: var(--muted); font-size: 12px; line-height: 1.25; }

@media (max-height: 820px) and (min-width: 701px) {
  .iam-history-slide .title-block { margin-bottom: 6px; }
  .iam-history-slide .slide-subtitle { margin-top: 6px; }

  .history-policy-layout {
    grid-template-columns: minmax(0, 1.35fr) minmax(360px, .65fr);
    gap: 14px;
    flex: 0 0 310px;
    min-height: 310px;
  }

  .history-timeline { gap: 1px; }
  .history-timeline::before { left: 48px; }
  .history-item {
    grid-template-columns: 100px 1fr;
    min-height: 0;
  }

  .history-year {
    min-width: 80px;
    padding: 4px 7px;
    font-size: 11px;
  }

  .history-copy { padding: 3px 7px; }
  .history-copy strong { font-size: 14px; }
  .history-copy p { margin-top: 1px; font-size: 11.5px; line-height: 1.13; }
  .history-more { margin-top: 1px; font-size: 10px; line-height: 1.08; }

  .policy-interface { gap: 4px; padding: 9px; }
  .policy-interface h2 { margin-bottom: 1px; font-size: 19px; }
  .policy-interface-step { padding: 5px 7px; }
  .policy-interface-step strong { font-size: 13px; }
  .policy-interface-step p { margin-top: 1px; font-size: 10.5px; line-height: 1.15; }
  .policy-caution { padding: 6px 8px; }
  .policy-caution p { margin-top: 1px; font-size: 10.5px; line-height: 1.15; }

  .iam-history-slide .source-note { margin-top: 3px; font-size: 10.5px; }
  .iam-history-slide .takeaway { margin-top: 4px; padding-block: 9px; }
}

@media (max-height: 820px) and (min-width: 701px) {
  .model-mapping-heatmap-slide .title-block,
  .model-architecture-slide .title-block { margin-bottom: 4px; }
  .model-mapping-heatmap-slide .slide-subtitle,
  .model-architecture-slide .slide-subtitle { margin-top: 5px; font-size: 15px; }
  .model-mapping-heatmap-slide .model-mapping-heatmap-large {
    flex: 0 0 255px;
    min-height: 255px;
  }
  .model-mapping-heatmap-slide .model-heatmap-reading { gap: 5px; margin-top: 5px; }
  .model-mapping-heatmap-slide .model-heatmap-reading > div,
  .model-architecture-slide .model-architecture-implications > div {
    gap: 2px;
    padding: 7px 8px;
    border-left-width: 4px;
  }
  .model-mapping-heatmap-slide .model-heatmap-reading strong,
  .model-architecture-slide .model-architecture-implications strong { font-size: 10px; }
  .model-mapping-heatmap-slide .model-heatmap-reading span,
  .model-architecture-slide .model-architecture-implications span { font-size: 8px; line-height: 1.1; }
  .model-architecture-slide .model-architecture-layout { gap: 8px; }
  .model-architecture-slide .model-architecture-heading { padding: 7px 9px; }
  .model-architecture-slide .model-architecture-heading strong { font-size: 11.5px; }
  .model-architecture-slide .model-architecture-heading span { font-size: 8px; }
  .model-architecture-slide .model-architecture-table th,
  .model-architecture-slide .model-architecture-table td {
    padding: 7px 6px;
    font-size: 9px;
    line-height: 1.12;
  }
  .model-architecture-slide .model-architecture-table thead th { font-size: 9.3px; }
  .model-architecture-slide .model-architecture-table thead th:first-child,
  .model-architecture-slide .model-architecture-table tbody th { width: 110px; }
  .model-architecture-slide .model-architecture-table tbody th { font-size: 9.3px; }
  .model-mapping-heatmap-slide .source-note,
  .model-architecture-slide .source-note { margin-top: 3px; font-size: 7.3px; line-height: 1.08; }
  .model-mapping-heatmap-slide .takeaway,
  .model-architecture-slide .takeaway { margin-top: 4px; padding-block: 7px; }
  .model-mapping-heatmap-slide .takeaway p,
  .model-architecture-slide .takeaway p { font-size: 14px; }
}

@media (max-height: 820px) and (min-width: 1101px) {
  .limitations-slide .title-block { margin-bottom: 4px; }
  .limitations-slide .slide-subtitle { margin-top: 5px; font-size: 14px; }
  .limitations-slide .limitations-grid {
    gap: 6px 8px;
    flex: 0 0 314px;
    min-height: 314px;
  }
  .limitations-slide .limitation-card { padding: 7px 9px 6px; border-top-width: 3px; }
  .limitations-slide .limitation-card h3 { margin-bottom: 3px; font-size: 13px; }
  .limitations-slide .limitation-card p { font-size: 9.3px; line-height: 1.17; }
  .limitations-slide .limitation-models { gap: 3px; padding-top: 4px; }
  .limitations-slide .limitation-model-label { font-size: 6.5px; }
  .limitations-slide .limitation-model-chips { gap: 2px; }
  .limitations-slide .limitation-model-chip { padding: 2px 4px; font-size: 7px; }
  .limitations-slide .source-note { margin-top: 3px; font-size: 7.2px; line-height: 1.08; }
  .limitations-slide .takeaway { margin-top: 4px; padding-block: 7px; }
  .limitations-slide .takeaway p { font-size: 14px; }
}

.cross-iam-chart { min-height: 292px; }
.cross-iam-slide .four-card-grid { gap: 10px; margin-top: 8px; }
.cross-iam-slide .four-card-grid .concept-card { padding: 13px 15px; }
.cross-iam-slide .four-card-grid .concept-card h3 { font-size: 18px; }
.cross-iam-slide .four-card-grid .concept-card p { font-size: 15px; }

.lcia-slide .chart-and-panel { min-height: 440px; }
.lcia-slide .lcia-main { min-height: 440px; }
.lcia-slide .dense-panel { gap: 7px; padding: 12px; }
.lcia-slide .dense-panel .concept-card { padding: 9px 12px; border-radius: 10px; }
.lcia-slide .dense-panel .concept-card h3 { margin-bottom: 4px; font-size: 16px; }
.lcia-slide .dense-panel .concept-card p { font-size: 13px; line-height: 1.28; }
.lcia-slide .status-chip { margin-bottom: 0; }

.workshop-graph,
.workshop-graph .js-plotly-plot,
.workshop-graph .plot-container {
  height: 100%;
  min-height: inherit;
}

.side-panel {
  padding: 18px;
  border-radius: 14px;
  background: var(--surface-warm);
  border: 1px solid #e4decd;
}

.panel-heading,
.side-panel h2 {
  margin: 0 0 10px;
  font-size: 25px;
}

.side-panel p {
  color: var(--muted);
  font-size: 16px;
  line-height: 1.35;
}

.evidence-screen-panel {
  display: flex;
  flex-direction: column;
  gap: 10px;
  background: linear-gradient(180deg, #f7fafb, #f1f6f7);
  border-color: #ccdadd;
}

.evidence-screen-panel .panel-heading {
  margin-bottom: 0;
  color: var(--psi-deep);
  font-size: 22px;
  line-height: 1.08;
}

.evidence-screen-panel > p { margin: 0; font-size: 14px; line-height: 1.25; }

.evidence-gap-section {
  padding: 10px 12px;
  border-left: 5px solid var(--teal);
  border-radius: 8px;
  background: #fff;
}

.evidence-gap-section strong {
  color: var(--psi-deep);
  font-size: 11px;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.evidence-gap-section ul { margin: 7px 0 0; padding-left: 18px; }
.evidence-gap-section li { color: #405762; font-size: 12px; line-height: 1.22; }
.evidence-gap-section li + li { margin-top: 5px; }
.evidence-gap-missing { border-left-color: var(--amber); background: #fffaf0; }

.evidence-screen-rule {
  display: grid;
  gap: 4px;
  margin-top: auto;
  padding: 9px 11px;
  border-radius: 8px;
  color: #fff;
  background: var(--psi-deep);
}

.evidence-screen-rule strong {
  color: #9de0d7;
  font-size: 10px;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.evidence-screen-rule span { font-size: 11px; line-height: 1.2; }

.vote-grid {
  display: grid;
  gap: 7px;
  margin-top: 14px;
}

.vote-button {
  width: 100%;
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 10px 8px 16px;
  border: 1px solid #bdc9cf;
  border-radius: 9px;
  color: var(--ink);
  background: #fff;
  cursor: pointer;
  font-weight: 700;
  transition: transform 120ms ease, border-color 120ms ease;
}

.vote-button:hover {
  transform: translateY(-1px);
  border-color: var(--psi-blue);
}

.vote-count {
  min-width: 36px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: #eaf3f6;
  color: var(--psi-deep);
}

.facilitator-hint,
.honesty-note {
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid #ddd5c1;
  color: #6b6254 !important;
  font-size: 14px !important;
}

.takeaway {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 14px;
  margin-top: 18px;
  padding: 13px 17px;
  border-left: 5px solid var(--teal);
  border-radius: 0 9px 9px 0;
  background: #edf7f5;
}

.takeaway p {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
}

.takeaway-label {
  color: var(--teal);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.source-note {
  margin-top: 10px;
  color: #71808a;
  font-size: 12px;
}

.pipeline-arrow,
.region-arrow {
  color: #82919a;
  font-size: 34px;
  font-weight: 700;
}

.timeline {
  flex: 1;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  align-items: stretch;
  position: relative;
}

.timeline::before {
  content: "";
  position: absolute;
  top: 34px;
  left: 12%;
  right: 12%;
  height: 3px;
  background: linear-gradient(90deg, #7c8e9a, var(--psi-blue), var(--teal));
}

.timeline-card {
  position: relative;
  z-index: 1;
  margin-top: 14px;
  padding: 58px 24px 24px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
}

.timeline-era {
  position: absolute;
  top: 2px;
  left: 22px;
  padding: 9px 13px;
  color: #fff;
  background: var(--psi-deep);
  border-radius: 999px;
  font-weight: 800;
}

.timeline-card h2 {
  margin: 0 0 10px;
  font-size: 34px;
}

.timeline-description {
  min-height: 72px;
  color: var(--muted);
  font-size: 18px;
  line-height: 1.35;
}

.timeline-question {
  padding-top: 14px;
  border-top: 1px solid var(--line);
  font-weight: 700;
  line-height: 1.35;
}

.name-decoder {
  display: grid;
  grid-template-columns: 1fr auto 1fr auto 1fr;
  align-items: center;
  gap: 14px;
  margin-top: 18px;
}

.decoder-part {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 16px;
  border-radius: 9px;
  background: var(--surface-soft);
}

.decoder-plus {
  font-size: 28px;
  color: var(--muted);
}

.conditional-evidence-slide .title-block,
.traceability-slide .title-block,
.framework-crosswalk-slide .title-block { margin-bottom: 10px; }

.conditional-statement {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1.2fr);
  gap: 8px;
  align-items: center;
  padding: 9px 11px;
  border-radius: 11px;
  background: #eaf3f6;
}
.conditional-statement > div {
  min-width: 0;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 8px;
  align-items: baseline;
  padding: 8px 10px;
  border-radius: 8px;
  background: #fff;
}
.conditional-statement > div:last-child { color: #fff; background: var(--teal); }
.conditional-statement strong { font-size: 12px; }
.conditional-statement span { color: var(--muted); font-size: 11px; }
.conditional-statement > div:last-child span { color: #e9fffb; }
.conditional-statement i { color: var(--teal); font-size: 19px; font-style: normal; font-weight: 900; }

.conditional-evidence-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  flex: 1;
  min-height: 235px;
  margin-top: 12px;
}
.conditional-check-card {
  min-width: 0;
  padding: 15px 17px;
  border: 1px solid var(--line);
  border-top: 5px solid var(--psi-blue);
  border-radius: 11px;
  background: #f7fafb;
}
.conditional-check-card:nth-child(2) { border-top-color: var(--amber); }
.conditional-check-card:nth-child(2) .conditional-check-number { background: var(--amber); }
.conditional-check-card:nth-child(3) { border-top-color: var(--teal); }
.conditional-check-card:nth-child(3) .conditional-check-number { background: var(--teal); }
.conditional-check-card:nth-child(4) { border-top-color: var(--purple); }
.conditional-check-card:nth-child(4) .conditional-check-number { background: var(--purple); }
.conditional-check-number {
  width: 31px;
  height: 31px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: var(--psi-blue);
  font-weight: 900;
}
.conditional-check-card h2 { margin: 14px 0 8px; color: var(--psi-deep); font-size: 19px; }
.conditional-check-card p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.3; }
.conditional-record { display: grid; gap: 2px; margin-top: 16px; padding-top: 11px; border-top: 1px solid var(--line); }
.conditional-record strong { color: var(--teal); font-size: 10px; text-transform: uppercase; }
.conditional-record span { color: var(--psi-deep); font-size: 11px; font-weight: 700; }
.evidence-language-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 11px; }
.evidence-language-card { padding: 10px 13px; border-left: 5px solid var(--teal); border-radius: 8px; background: #edf7f5; }
.evidence-language-card strong { color: var(--psi-deep); font-size: 12px; text-transform: uppercase; letter-spacing: .05em; }
.evidence-language-card p { margin: 3px 0 0; color: #405762; font-size: 12px; line-height: 1.22; }
.evidence-language-avoid { border-left-color: var(--red); background: #fbefef; }

.traceability-coordinate {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  margin-bottom: 10px;
  padding: 7px 10px;
  border-radius: 9px;
  background: #eaf3f6;
}
.traceability-coordinate strong {
  margin-right: 3px;
  color: var(--psi-deep);
  font-size: 10px;
  text-transform: uppercase;
}
.traceability-coordinate span {
  padding: 4px 7px;
  border: 1px solid #d7e4e9;
  border-radius: 999px;
  color: #405762;
  background: #fff;
  font-size: 9px;
  font-weight: 800;
}
.traceability-evidence-chain {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 24px minmax(0, 1fr) 24px minmax(0, 1fr) 24px minmax(0, 1fr);
  gap: 6px;
  align-items: stretch;
  flex: 1;
  min-height: 275px;
}
.traceability-evidence-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 13px 14px;
  border: 1px solid var(--line);
  border-top: 5px solid var(--psi-blue);
  border-radius: 11px;
  background: linear-gradient(180deg, #fff, #f7f9fa);
}
.traceability-premise-card { border-top-color: var(--amber); }
.traceability-inventory-card { border-top-color: var(--purple); }
.traceability-lcia-card { border-top-color: var(--teal); }
.traceability-evidence-card > strong {
  color: var(--teal);
  font-size: 10px;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.traceability-evidence-card h2 {
  margin: 8px 0 6px;
  color: var(--psi-deep);
  font-size: 18px;
  line-height: 1.06;
}
.traceability-evidence-card p {
  margin: 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.25;
}
.traceability-evidence-card small {
  margin-top: auto;
  padding-top: 8px;
  border-top: 1px solid var(--line);
  color: #687c86;
  font-size: 8px;
  line-height: 1.2;
}
.traceability-arrow {
  display: grid;
  place-items: center;
  color: var(--teal);
  font-size: 25px;
  font-weight: 900;
}
.traceability-share-bars {
  display: grid;
  gap: 7px;
  margin: 11px 0 9px;
}
.traceability-share-bars > div {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) 34px;
  gap: 6px;
  align-items: center;
}
.traceability-share-bars span,
.traceability-share-bars b { color: var(--psi-deep); font-size: 9px; }
.traceability-share-bars b { text-align: right; }
.traceability-share-bars > div > div {
  height: 11px;
  overflow: hidden;
  border-radius: 999px;
  background: #dce7eb;
}
.traceability-share-bars i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--psi-blue), var(--teal));
}
.traceability-big-number {
  margin: 12px 0 0;
  color: var(--amber);
  font-size: 45px;
  font-weight: 900;
  line-height: .85;
}
.traceability-rule-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin: 12px 0 9px;
}
.traceability-rule-chips span {
  padding: 4px 6px;
  border-radius: 999px;
  color: #fff;
  background: var(--purple);
  font-size: 8px;
  font-weight: 800;
}
.traceability-lcia-values {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  margin: 8px 0 9px;
}
.traceability-lcia-values > div {
  display: grid;
  gap: 2px;
  padding: 7px;
  border-radius: 7px;
  background: #eaf3f6;
}
.traceability-lcia-values span { color: var(--muted); font-size: 8px; font-weight: 800; }
.traceability-lcia-values b { color: var(--psi-deep); font-size: 19px; }
.traceability-inference-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 10px;
}
.traceability-inference {
  padding: 8px 11px;
  border-left: 5px solid var(--teal);
  border-radius: 8px;
  background: #edf7f5;
}
.traceability-inference strong {
  color: var(--psi-deep);
  font-size: 10px;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.traceability-inference p {
  margin: 3px 0 0;
  color: #405762;
  font-size: 10px;
  line-height: 1.2;
}
.traceability-inference-invalid { border-left-color: var(--red); background: #fbefef; }
.traceability-slide .source-note { margin-top: 5px; font-size: 9px; }

.framework-comparison-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  flex: 1;
  min-height: 245px;
}
.framework-comparison-card { min-width: 0; padding: 16px 18px; border: 1px solid var(--line); border-top: 6px solid var(--psi-deep); border-radius: 12px; background: #f8fafb; }
.framework-comparison-card:nth-child(2) { border-top-color: var(--amber); }
.framework-comparison-card:nth-child(3) { border-top-color: var(--teal); }
.framework-comparison-label { display: inline-block; padding: 6px 9px; border-radius: 999px; color: #fff; background: var(--psi-deep); font-size: 12px; font-weight: 900; }
.framework-comparison-card:nth-child(2) .framework-comparison-label { background: var(--amber); }
.framework-comparison-card:nth-child(3) .framework-comparison-label { background: var(--teal); }
.framework-comparison-card h2 { margin: 13px 0 7px; color: var(--psi-deep); font-size: 20px; }
.framework-comparison-card p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.3; }
.framework-comparison-details { display: grid; gap: 6px; margin-top: 13px; }
.framework-comparison-details > div { display: grid; grid-template-columns: 62px 1fr; gap: 7px; padding: 6px 7px; border-radius: 6px; background: #fff; }
.framework-comparison-details strong { color: var(--teal); font-size: 9px; text-transform: uppercase; }
.framework-comparison-details span { color: var(--muted); font-size: 10px; line-height: 1.15; }
.framework-comparison-use { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--line); color: var(--psi-deep); font-size: 11px; font-weight: 800; }
.crosswalk-workflow { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-top: 10px; }
.crosswalk-step { display: grid; grid-template-columns: 30px 1fr; gap: 7px; align-items: center; padding: 7px 9px; border-radius: 8px; background: #edf4f6; }
.crosswalk-step > strong { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--psi-blue); }
.crosswalk-step div { display: grid; gap: 2px; }
.crosswalk-step b { color: var(--psi-deep); font-size: 10px; }
.crosswalk-step span { color: var(--muted); font-size: 8px; line-height: 1.15; }
.crosswalk-caution { display: grid; grid-template-columns: auto 1fr; gap: 9px; margin-top: 9px; padding: 8px 11px; border-left: 5px solid var(--red); border-radius: 8px; background: #fbefef; }
.crosswalk-caution strong { color: var(--psi-deep); font-size: 11px; }
.crosswalk-caution span { color: #53646d; font-size: 10px; }
.framework-crosswalk-slide .source-note { margin-top: 6px; }
.conditional-evidence-slide .takeaway,
.traceability-slide .takeaway,
.framework-crosswalk-slide .takeaway { margin-top: 7px; }

@media (max-height: 820px) and (min-width: 701px) {
  .conditional-evidence-slide .title-block,
  .traceability-slide .title-block,
  .framework-crosswalk-slide .title-block { margin-bottom: 5px; }
  .conditional-evidence-slide .slide-subtitle,
  .traceability-slide .slide-subtitle,
  .framework-crosswalk-slide .slide-subtitle { margin-top: 5px; }

  .conditional-statement { gap: 4px; padding: 5px 7px; }
  .conditional-statement > div { gap: 4px; padding: 4px 6px; }
  .conditional-statement strong { font-size: 8px; }
  .conditional-statement span { font-size: 6.5px; }
  .conditional-statement i { font-size: 14px; }
  .conditional-evidence-grid { flex: 1 1 190px; min-height: 190px; gap: 7px; margin-top: 6px; }
  .conditional-check-card { padding: 8px 9px; border-top-width: 4px; }
  .conditional-check-number { width: 23px; height: 23px; font-size: 9px; }
  .conditional-check-card h2 { margin: 7px 0 4px; font-size: 14px; }
  .conditional-check-card p { font-size: 10px; line-height: 1.18; }
  .conditional-record { gap: 1px; margin-top: 8px; padding-top: 5px; }
  .conditional-record strong { font-size: 7px; }
  .conditional-record span { font-size: 7.5px; }
  .evidence-language-grid { gap: 7px; margin-top: 6px; }
  .evidence-language-card { padding: 5px 7px; }
  .evidence-language-card strong { font-size: 8px; }
  .evidence-language-card p { margin-top: 2px; font-size: 8px; line-height: 1.12; }

  .traceability-coordinate { gap: 3px; margin-bottom: 5px; padding: 4px 6px; }
  .traceability-coordinate strong { font-size: 6.5px; }
  .traceability-coordinate span { padding: 2px 4px; font-size: 6px; }
  .traceability-evidence-chain {
    grid-template-columns: minmax(0, 1fr) 14px minmax(0, 1fr) 14px minmax(0, 1fr) 14px minmax(0, 1fr);
    gap: 3px;
    flex: 1 1 205px;
    min-height: 205px;
  }
  .traceability-evidence-card { padding: 7px 8px; border-top-width: 4px; }
  .traceability-evidence-card > strong { font-size: 6.5px; }
  .traceability-evidence-card h2 { margin: 5px 0 4px; font-size: 12px; }
  .traceability-evidence-card p { font-size: 7.5px; line-height: 1.15; }
  .traceability-evidence-card small { padding-top: 4px; font-size: 5.8px; }
  .traceability-arrow { font-size: 15px; }
  .traceability-share-bars { gap: 4px; margin: 6px 0 5px; }
  .traceability-share-bars > div { grid-template-columns: 24px 1fr 25px; gap: 3px; }
  .traceability-share-bars span,
  .traceability-share-bars b { font-size: 6px; }
  .traceability-share-bars > div > div { height: 7px; }
  .traceability-big-number { margin-top: 7px; font-size: 30px; }
  .traceability-rule-chips { gap: 3px; margin: 6px 0 5px; }
  .traceability-rule-chips span { padding: 2px 4px; font-size: 5.8px; }
  .traceability-lcia-values { gap: 3px; margin: 5px 0; }
  .traceability-lcia-values > div { gap: 1px; padding: 4px; }
  .traceability-lcia-values span { font-size: 5.5px; }
  .traceability-lcia-values b { font-size: 12px; }
  .traceability-inference-grid { gap: 6px; margin-top: 5px; }
  .traceability-inference { padding: 4px 6px; border-left-width: 4px; }
  .traceability-inference strong { font-size: 6.5px; }
  .traceability-inference p { margin-top: 1px; font-size: 6.8px; line-height: 1.12; }
  .traceability-slide .source-note { margin-top: 3px; font-size: 6.5px; }

  .framework-comparison-grid { flex: 1 1 185px; min-height: 185px; gap: 7px; }
  .framework-comparison-card { padding: 8px 9px; border-top-width: 4px; }
  .framework-comparison-label { padding: 3px 5px; font-size: 7px; }
  .framework-comparison-card h2 { margin: 6px 0 4px; font-size: 13px; }
  .framework-comparison-card p { font-size: 8.5px; line-height: 1.15; }
  .framework-comparison-details { gap: 3px; margin-top: 6px; }
  .framework-comparison-details > div { grid-template-columns: 40px 1fr; gap: 4px; padding: 3px 4px; }
  .framework-comparison-details strong { font-size: 5.5px; }
  .framework-comparison-details span { font-size: 7px; }
  .framework-comparison-use { margin-top: 6px; padding-top: 5px; font-size: 7.5px; }
  .crosswalk-workflow { gap: 5px; margin-top: 6px; }
  .crosswalk-step { grid-template-columns: 21px 1fr; gap: 4px; padding: 4px 5px; }
  .crosswalk-step > strong { width: 20px; height: 20px; font-size: 8px; }
  .crosswalk-step b { font-size: 7px; }
  .crosswalk-step span { font-size: 6px; }
  .crosswalk-caution { gap: 5px; margin-top: 5px; padding: 5px 7px; }
  .crosswalk-caution strong { font-size: 7.5px; }
  .crosswalk-caution span { font-size: 7px; }
  .framework-crosswalk-slide .source-note { margin-top: 3px; font-size: 8px; }
  .conditional-evidence-slide .takeaway,
  .traceability-slide .takeaway,
  .framework-crosswalk-slide .takeaway { margin-top: 4px; padding-block: 7px; }
  .conditional-evidence-slide .takeaway p,
  .traceability-slide .takeaway p,
  .framework-crosswalk-slide .takeaway p { font-size: 14px; }
}

.axis-grid {
  flex: 1;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 13px;
  align-items: stretch;
}

.axis-card {
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: linear-gradient(180deg, #fff, #f7f9fa);
}

.axis-number,
.check-number {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: var(--psi-blue);
  font-weight: 800;
}

.axis-card h2 {
  min-height: 58px;
  margin: 18px 0 8px;
  font-size: 24px;
}

.axis-card p {
  color: var(--muted);
  line-height: 1.45;
}

.evidence-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-top: 18px;
}

.evidence-card {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 13px 16px;
  border-radius: 9px;
  background: var(--surface-soft);
}

.evidence-card strong {
  white-space: nowrap;
}

.evidence-source { border-left: 5px solid #5c8dce; }
.evidence-model { border-left: 5px solid var(--teal); }
.evidence-interpretation { border-left: 5px solid var(--amber); }

.detective-graph {
  min-height: 360px;
  flex: 1;
}

.detective-choices {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin-top: 13px;
}

.detective-choices span {
  display: grid;
  place-items: center;
  min-height: 48px;
  border: 2px dashed #adb8be;
  border-radius: 9px;
  color: var(--muted);
  font-size: 24px;
  font-weight: 800;
}

.scenario-reveal-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-top: 12px;
}

.scenario-reveal-card {
  padding: 13px 15px;
  border: 1px solid var(--line);
  border-radius: 10px;
}

.scenario-card-id {
  font-size: 17px;
  font-weight: 800;
}

.scenario-reveal-card p {
  margin: 7px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.35;
}

.two-graph-grid {
  flex: 1;
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 16px;
  min-height: 338px;
}

.half-graph {
  min-height: 338px;
}

.comparison-row {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
  margin-top: 14px;
}

.comparison-card {
  padding: 12px 16px;
  border-left: 5px solid #8da0aa;
  border-radius: 0 9px 9px 0;
  background: var(--surface-soft);
}

.comparison-card p {
  display: inline;
  margin-left: 10px;
  color: var(--muted);
}

.comparison-accent {
  border-left-color: var(--purple);
  background: #f3eff8;
}

.pipeline {
  flex: 1;
  display: grid;
  grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr auto 1fr;
  gap: 10px;
  align-items: center;
}

.pipeline-step {
  min-height: 180px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
}

.pipeline-step h3 {
  margin: 12px 0 7px;
  font-size: 20px;
}

.pipeline-step p {
  margin: 0;
  color: var(--muted);
  line-height: 1.35;
}

.pipeline-number {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  color: #fff;
  background: var(--psi-deep);
  font-weight: 800;
}

.pipeline-accent {
  border: 2px solid var(--teal);
  background: #edf7f5;
}

.pipeline-accent .pipeline-number {
  background: var(--teal);
}

.wide-callout {
  margin-top: 18px;
  padding: 18px 22px;
  border-radius: 12px;
  background: var(--psi-deep);
  color: #fff;
}

.wide-callout h2 {
  margin: 0 0 7px;
  font-size: 24px;
}

.wide-callout p {
  margin: 0;
  color: #dce8ed;
}

.boundary-note {
  display: flex;
  gap: 12px;
  margin-top: 11px;
  padding-top: 10px;
  border-top: 1px solid rgba(255, 255, 255, 0.22);
  font-size: 14px;
}

.dac-layout {
  flex: 1;
  display: grid;
  grid-template-columns: 1.05fr 0.75fr 0.8fr;
  gap: 16px;
  align-items: stretch;
}

.dac-graph {
  min-height: 350px;
}

.dac-chain {
  display: grid;
  gap: 7px;
}

.dac-chain .pipeline-step {
  min-height: 0;
  display: grid;
  grid-template-columns: 34px 1fr;
  column-gap: 12px;
  align-items: center;
  padding: 10px 12px;
}

.dac-chain .pipeline-step h3 {
  margin: 0;
}

.dac-chain .pipeline-step p {
  grid-column: 1 / -1;
  margin-top: 4px;
  font-size: 14px;
  line-height: 1.25;
}

.result-placeholder {
  padding: 18px;
  border: 1px dashed #9eabb3;
  border-radius: 13px;
  background: #f7f9fa;
}

.result-placeholder h2 {
  margin: 12px 0 8px;
  font-size: 23px;
}

.result-placeholder p {
  color: var(--muted);
  line-height: 1.35;
}

.status-chip {
  display: inline-flex;
  padding: 7px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.status-pending { color: #6c5312; background: #faedc6; }
.status-ready { color: #0d5d54; background: #d8f0ec; }

.selection-layout {
  flex: 1;
}

.selection-list {
  display: grid;
  gap: 8px;
}

.selection-step {
  min-height: 48px;
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 14px;
  align-items: center;
  padding: 7px 13px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
}

.selection-step span {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: var(--psi-blue);
  font-weight: 800;
}

.selection-step p {
  margin: 0;
  font-size: 19px;
  font-weight: 700;
}

.selection-layout + .takeaway {
  margin-top: 5px;
}

.region-map {
  flex: 1;
  display: grid;
  grid-template-columns: 1fr auto 0.8fr;
  gap: 22px;
  align-items: center;
}

.region-source-card,
.region-target-card {
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: #fff;
}

.region-target-card {
  background: #edf7f5;
  border-color: #b9dcd6;
}

.region-heading {
  margin-bottom: 16px;
  color: var(--psi-deep);
  font-size: 25px;
  font-weight: 800;
}

.region-row {
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 12px;
  padding: 11px 0;
  border-top: 1px solid var(--line);
}

.region-row span {
  color: var(--muted);
}

.source-link {
  display: inline-block;
  margin-top: 12px;
  color: var(--psi-blue);
  font-weight: 700;
}

.mapping-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-top: 18px;
}

.mapping-card {
  padding: 14px 16px;
  border-radius: 9px;
  border-top: 5px solid #8998a1;
  background: var(--surface-soft);
}

.mapping-card h3,
.mapping-card p {
  margin: 0;
}

.mapping-card p {
  margin-top: 5px;
  color: var(--muted);
}

/* Applied closing sequence: geography → contrasts → transformations → LCIA → choice */
.geography-applied-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(360px, .75fr); gap: 12px; flex: 1; min-height: 340px; }
.geography-map-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; min-width: 0; }
.geography-map-card { display: grid; grid-template-rows: auto auto minmax(0, 1fr); min-width: 0; padding: 8px 9px 5px; border: 1px solid var(--line); border-radius: 10px; background: #f8fafb; }
.geography-map-heading { display: flex; justify-content: space-between; gap: 8px; align-items: center; }
.geography-map-heading > div { display: grid; gap: 1px; }
.geography-map-heading strong { color: var(--psi-deep); font-size: 14px; }
.geography-map-heading span { color: var(--muted); font-size: 8px; text-transform: uppercase; }
.geography-map-heading > b { padding: 4px 7px; border-radius: 999px; color: #fff; background: var(--psi-deep); font-size: 9px; white-space: nowrap; }
.geography-map-card > p { margin: 4px 0 2px; color: var(--muted); font-size: 8.5px; line-height: 1.15; }
.geography-map-graph { min-height: 280px; }
.geography-step-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.geography-step { min-width: 0; padding: 13px 14px; border: 1px solid var(--line); border-top: 5px solid var(--psi-blue); border-radius: 10px; background: linear-gradient(180deg, #fff, #f6f9fa); }
.geography-step:nth-child(2) { border-top-color: var(--teal); }
.geography-step:nth-child(3) { border-top-color: var(--amber); }
.geography-step:nth-child(4) { border-top-color: var(--purple); }
.geography-step > strong { color: var(--teal); font-size: 10px; letter-spacing: .05em; text-transform: uppercase; }
.geography-step h2 { margin: 8px 0 6px; color: var(--psi-deep); font-size: 21px; line-height: 1.05; }
.geography-step p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.25; }
.geography-chain { grid-template-columns: 1fr; gap: 7px; }
.geography-chain-step { position: relative; display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 10px; align-items: center; padding: 9px 12px; border-top-width: 1px; border-left: 5px solid var(--psi-blue); }
.geography-chain-step:nth-child(2) { border-left-color: var(--teal); }
.geography-chain-step:nth-child(3) { border-left-color: var(--amber); }
.geography-chain-step:nth-child(4) { border-left-color: var(--purple); }
.geography-chain-step:not(:last-child)::after { content: "↓"; position: absolute; left: 15px; bottom: -10px; z-index: 2; color: var(--teal); font-size: 13px; font-weight: 900; }
.geography-step-number { display: grid; place-items: center; width: 31px; height: 31px; border-radius: 50%; color: #fff; background: var(--psi-deep); font-size: 13px; font-weight: 900; }
.geography-step-copy { min-width: 0; }
.geography-step-copy > strong { color: var(--teal); font-size: 9px; letter-spacing: .05em; text-transform: uppercase; }
.geography-step-copy h2 { margin: 3px 0 2px; font-size: 18px; }
.geography-step-copy p { font-size: 10px; line-height: 1.2; }
.geography-non-transform-strip { display: grid; grid-template-columns: auto repeat(2, minmax(0, 1fr)); gap: 12px; align-items: center; margin-top: 8px; padding: 7px 10px; border-left: 5px solid var(--red); border-radius: 8px; background: #fbefef; }
.geography-non-transform-strip > strong { color: var(--psi-deep); font-size: 9px; text-transform: uppercase; }
.geography-non-transform-strip > span { color: var(--muted); font-size: 9px; text-align: center; }
.geography-non-transform-strip b { color: var(--psi-deep); }
.boundary-rule-banner, .lcia-boundary-warning { display: grid; grid-template-columns: auto 1fr; gap: 10px; align-items: center; margin-top: 9px; padding: 8px 11px; border-left: 5px solid var(--red); border-radius: 8px; background: #fbefef; }
.boundary-rule-banner strong, .lcia-boundary-warning strong { color: var(--psi-deep); font-size: 11px; text-transform: uppercase; }
.boundary-rule-banner span, .lcia-boundary-warning span { color: #53646d; font-size: 10px; line-height: 1.2; }
.applied-geography-slide .source-note { margin-top: 5px; }
.applied-geography-slide .takeaway { margin-top: 6px; }

.controlled-comparison-graph { flex: 1; min-height: 350px; }
.controlled-comparison-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 10px; }
.controlled-comparison-card { padding: 10px 13px; border-left: 5px solid var(--teal); border-radius: 8px; background: #edf7f5; }
.controlled-comparison-card:nth-child(2) { border-left-color: var(--amber); background: #fdf6e5; }
.controlled-comparison-card > strong { color: var(--psi-deep); font-size: 11px; letter-spacing: .04em; text-transform: uppercase; }
.controlled-formula { display: flex; gap: 8px; align-items: center; margin-top: 5px; }
.controlled-formula span { padding: 4px 7px; border-radius: 999px; color: var(--psi-deep); background: #fff; font-size: 10px; font-weight: 800; }
.controlled-formula i { color: var(--teal); font-style: normal; font-weight: 900; }
.controlled-comparison-card p { margin: 6px 0 0; color: var(--muted); font-size: 10px; line-height: 1.2; }
.controlled-comparison-slide .takeaway { margin-top: 7px; }

.consolidated-sector-slide .plot-controls { align-items: center; }
.consolidated-sector-slide .sector-control-group { flex: 1; justify-content: center; }
.consolidated-sector-slide .sector-grid { grid-template-columns: minmax(0, 1.15fr) minmax(0, .75fr) minmax(0, .85fr); flex: 1; min-height: 350px; }
.consolidated-sector-slide .sector-main, .consolidated-sector-slide .sector-side, .consolidated-sector-slide .sector-gwp { min-height: 350px; }
.sector-explorer-footer { display: grid; grid-template-columns: minmax(190px, .42fr) minmax(0, 1.58fr); gap: 9px; margin-top: 9px; }
.sector-mapping-badge, .sector-audit-question { display: flex; align-items: center; gap: 9px; min-width: 0; padding: 8px 11px; border-radius: 8px; background: #eaf3f6; }
.sector-mapping-badge strong { color: var(--psi-blue); font-size: 25px; line-height: 1; }
.sector-mapping-badge span { color: var(--muted); font-size: 9px; font-weight: 800; }
.sector-audit-question { border-left: 5px solid var(--amber); background: #fdf6e5; }
.sector-audit-question strong { flex: 0 0 auto; color: var(--psi-deep); font-size: 10px; text-transform: uppercase; }
.sector-audit-question span { color: #53646d; font-size: 10px; line-height: 1.2; }
.consolidated-sector-slide .source-note { margin-top: 5px; }

.cdr-summary-graph { flex: 1; min-height: 390px; }
.cdr-reading-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 9px; }
.cdr-reading-grid .concept-card { padding: 9px 12px; }
.cdr-reading-grid .concept-card h3 { margin: 0 0 4px; font-size: 13px; }
.cdr-reading-grid .concept-card p { margin: 0; font-size: 10px; line-height: 1.2; }
.cdr-summary-slide .takeaway { margin-top: 7px; }

.coverage-flow { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr); gap: 7px; align-items: stretch; margin-top: 2px; }
.coverage-flow-step { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 9px; align-items: center; min-width: 0; min-height: 86px; padding: 10px 12px; border: 1px solid #cbd7dc; border-top: 5px solid var(--psi-blue); border-radius: 10px; background: #f5f8fa; }
.coverage-flow-step > b { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--psi-blue); font-size: 13px; }
.coverage-flow-step > div { display: grid; gap: 4px; min-width: 0; }
.coverage-flow-step strong { color: var(--psi-deep); font-size: 14px; }
.coverage-flow-step span { color: var(--muted); font-size: 10px; line-height: 1.18; }
.coverage-flow-rules { border-top-color: var(--teal); background: #edf7f5; }
.coverage-flow-rules > b { background: var(--teal); }
.coverage-flow-database { border-top-color: var(--purple); background: #f3f0f8; }
.coverage-flow-database > b { background: var(--purple); }
.coverage-flow-study { border-top-color: var(--amber); background: #fdf6e5; }
.coverage-flow-study > b { color: var(--psi-deep); background: var(--amber); }
.coverage-flow-arrow { align-self: center; color: var(--teal); font-size: 23px; font-style: normal; font-weight: 900; }
.coverage-examples { display: flex; flex-direction: column; flex: 1; min-height: 245px; margin-top: 10px; }
.coverage-examples-heading { display: flex; justify-content: space-between; gap: 14px; align-items: baseline; margin-bottom: 6px; }
.coverage-examples-heading strong { color: var(--psi-deep); font-size: 13px; text-transform: uppercase; letter-spacing: .05em; }
.coverage-examples-heading span { color: var(--muted); font-size: 10px; }
.coverage-sector-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; flex: 1; }
.coverage-sector-card { display: flex; flex-direction: column; min-width: 0; padding: 10px; border: 1px solid var(--line); border-top: 5px solid var(--psi-blue); border-radius: 9px; background: #f7f9fa; }
.coverage-sector-steel { border-top-color: var(--purple); }
.coverage-sector-transport { border-top-color: var(--teal); }
.coverage-sector-cement { border-top-color: var(--amber); }
.coverage-sector-dac { border-top-color: var(--red); }
.coverage-sector-heading { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px; align-items: center; }
.coverage-sector-heading > div { display: grid; gap: 2px; min-width: 0; }
.coverage-sector-heading strong { color: var(--psi-deep); font-size: 14px; }
.coverage-sector-heading span { color: var(--muted); font-size: 9px; font-weight: 800; }
.coverage-sector-code { min-width: 31px; height: 31px; display: grid; place-items: center; padding: 0 4px; border-radius: 7px; color: #fff; background: var(--psi-deep); font-size: 10px; }
.coverage-sector-path { display: grid; gap: 2px; margin-top: 9px; padding: 7px 8px; border-radius: 7px; background: #fff; }
.coverage-sector-path span { color: var(--teal); font-size: 8px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.coverage-sector-path b { color: var(--psi-deep); font-size: 10px; line-height: 1.12; }
.coverage-sector-path i { margin: 2px 0; color: var(--muted); font-size: 8px; font-style: normal; font-weight: 800; text-transform: uppercase; }
.coverage-sector-effect { margin: 7px 0; color: var(--muted); font-size: 9px; line-height: 1.16; }
.coverage-sector-effect strong { color: var(--psi-deep); }
.coverage-sector-outside { display: grid; gap: 3px; margin: auto 0 8px; padding: 7px 8px; border-left: 4px solid var(--red); border-radius: 6px; background: #fbefef; }
.coverage-sector-outside span { color: #9c5555; font-size: 7px; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.coverage-sector-outside b { color: #713436; font-size: 9px; line-height: 1.15; }
.coverage-status { align-self: flex-start; padding: 4px 6px; border-radius: 999px; font-size: 8px; white-space: nowrap; }
.coverage-validated { color: #0d5d54; background: #d8f0ec; }
.coverage-teaching { color: #6c5312; background: #faedc6; }
.coverage-boundary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 9px; }
.coverage-boundary > div { display: grid; gap: 3px; padding: 8px 11px; border-left: 5px solid var(--amber); border-radius: 8px; background: #fdf6e5; }
.coverage-boundary strong { color: var(--psi-deep); font-size: 10px; text-transform: uppercase; }
.coverage-boundary span { color: var(--muted); font-size: 9px; line-height: 1.18; }
.coverage-boundary-unmapped { border-left-color: var(--psi-blue) !important; background: #eaf3f6 !important; }
.coverage-slide .takeaway { margin-top: 7px; }

.lcia-evidence-graph { flex: 1; min-height: 400px; }
.lcia-reading-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; margin-top: 7px; }
.lcia-reading-strip span { padding: 6px 8px; border-radius: 7px; color: var(--psi-deep); background: #eaf3f6; font-size: 9px; font-weight: 800; text-align: center; }
.lcia-evidence-slide .source-note { margin-top: 5px; }
.lcia-evidence-slide .takeaway { margin-top: 6px; }

@media (max-height: 820px) and (min-width: 701px) {
  .applied-geography-slide .title-block, .controlled-comparison-slide .title-block, .consolidated-sector-slide .title-block, .cdr-summary-slide .title-block, .coverage-slide .title-block, .lcia-evidence-slide .title-block { margin-bottom: 5px; }
  .geography-applied-grid { grid-template-columns: minmax(0, 1.45fr) minmax(315px, .75fr); flex: 1 1 250px; min-height: 250px; gap: 7px; }
  .geography-map-pair { gap: 4px; }
  .geography-map-card { padding: 4px 5px 2px; }
  .geography-map-heading { gap: 4px; }
  .geography-map-heading strong { font-size: 8px; }
  .geography-map-heading span { font-size: 5px; }
  .geography-map-heading > b { padding: 2px 4px; font-size: 5.5px; }
  .geography-map-card > p { margin: 2px 0 0; font-size: 5.5px; line-height: 1.08; }
  .geography-map-graph { min-height: 205px; }
  .geography-step-list { gap: 5px; }
  .geography-step { padding: 7px 8px; border-top-width: 4px; }
  .geography-step > strong { font-size: 6.5px; }
  .geography-step h2 { margin: 4px 0 3px; font-size: 13px; }
  .geography-step p { font-size: 7px; line-height: 1.15; }
  .geography-chain { gap: 4px; }
  .geography-chain-step { grid-template-columns: 22px minmax(0, 1fr); gap: 6px; padding: 4px 6px; border-top-width: 1px; border-left-width: 4px; }
  .geography-chain-step:not(:last-child)::after { left: 9px; bottom: -7px; font-size: 9px; }
  .geography-step-number { width: 20px; height: 20px; font-size: 8px; }
  .geography-step-copy > strong { font-size: 6.5px; }
  .geography-step-copy h2 { margin: 2px 0 1px; font-size: 12px; }
  .geography-step-copy p { font-size: 7.5px; line-height: 1.12; }
  .geography-non-transform-strip { gap: 6px; margin-top: 4px; padding: 4px 6px; }
  .geography-non-transform-strip > strong { font-size: 6px; }
  .geography-non-transform-strip > span { font-size: 6.5px; }
  .boundary-rule-banner, .lcia-boundary-warning { gap: 5px; margin-top: 5px; padding: 5px 7px; }
  .boundary-rule-banner strong, .lcia-boundary-warning strong { font-size: 7px; }
  .boundary-rule-banner span, .lcia-boundary-warning span { font-size: 6.7px; }
  .applied-geography-slide .source-note { margin-top: 3px; font-size: 6.5px; }
  .controlled-comparison-graph { flex: 1 1 250px; min-height: 250px; }
  .controlled-comparison-cards { gap: 6px; margin-top: 5px; }
  .controlled-comparison-card { padding: 5px 7px; }
  .controlled-comparison-card > strong { font-size: 7px; }
  .controlled-formula { gap: 4px; margin-top: 3px; }
  .controlled-formula span { padding: 2px 4px; font-size: 6.5px; }
  .controlled-comparison-card p { margin-top: 3px; font-size: 6.5px; }
  .consolidated-sector-slide .plot-controls { gap: 6px; margin: -2px 0 5px; }
  .consolidated-sector-slide .control-group { gap: 3px; }
  .consolidated-sector-slide .control-label { font-size: 7px; }
  .consolidated-sector-slide .control-chip { padding: 3px 6px; font-size: 7.5px; }
  .consolidated-sector-slide .sector-grid { flex: 1 1 245px; min-height: 245px; gap: 7px; }
  .consolidated-sector-slide .sector-main, .consolidated-sector-slide .sector-side, .consolidated-sector-slide .sector-gwp { min-height: 245px; }
  .sector-explorer-footer { grid-template-columns: .45fr 1.55fr; gap: 5px; margin-top: 5px; }
  .sector-mapping-badge, .sector-audit-question { gap: 5px; padding: 4px 6px; }
  .sector-mapping-badge strong { font-size: 16px; }
  .sector-mapping-badge span, .sector-audit-question span { font-size: 6.3px; }
  .sector-audit-question strong { font-size: 6.5px; }
  .consolidated-sector-slide .source-note { margin-top: 3px; font-size: 6.5px; }
  .cdr-summary-graph { flex: 1 1 275px; min-height: 275px; }
  .cdr-reading-grid { gap: 6px; margin-top: 5px; }
  .cdr-reading-grid .concept-card { padding: 5px 7px; }
  .cdr-reading-grid .concept-card h3 { font-size: 8px; }
  .cdr-reading-grid .concept-card p { font-size: 6.5px; }
  .coverage-flow { gap: 4px; margin-top: 0; }
  .coverage-flow-step { grid-template-columns: 23px minmax(0, 1fr); gap: 5px; min-height: 54px; padding: 5px 6px; border-top-width: 4px; }
  .coverage-flow-step > b { width: 21px; height: 21px; font-size: 7px; }
  .coverage-flow-step > div { gap: 2px; }
  .coverage-flow-step strong { font-size: 9px; }
  .coverage-flow-step span { font-size: 6.8px; line-height: 1.1; }
  .coverage-flow-arrow { font-size: 13px; }
  .coverage-examples { min-height: 194px; margin-top: 5px; }
  .coverage-examples-heading { gap: 7px; margin-bottom: 3px; }
  .coverage-examples-heading strong { font-size: 7.5px; }
  .coverage-examples-heading span { font-size: 6.3px; }
  .coverage-sector-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); grid-template-rows: minmax(0, 1fr); gap: 4px; }
  .coverage-sector-card,
  .coverage-sector-cement,
  .coverage-sector-dac { grid-column: auto; grid-row: auto; }
  .coverage-sector-card { padding: 5px; border-top-width: 4px; }
  .coverage-sector-heading { gap: 4px; }
  .coverage-sector-heading strong { font-size: 9px; }
  .coverage-sector-heading span { font-size: 6.2px; }
  .coverage-sector-code { min-width: 21px; height: 21px; padding: 0 3px; font-size: 6px; }
  .coverage-sector-path { gap: 1px; margin-top: 4px; padding: 4px; }
  .coverage-sector-path span { font-size: 5.2px; }
  .coverage-sector-path b { font-size: 6.8px; }
  .coverage-sector-path i { margin: 1px 0; font-size: 5.2px; }
  .coverage-sector-effect { margin: 3px 0; font-size: 6.2px; }
  .coverage-sector-outside { gap: 1px; margin: auto 0 3px; padding: 3px 4px; border-left-width: 3px; }
  .coverage-sector-outside span { font-size: 4.8px; }
  .coverage-sector-outside b { font-size: 6px; }
  .coverage-status { padding: 2px 3px; font-size: 5.5px; }
  .coverage-boundary { gap: 4px; margin-top: 4px; }
  .coverage-boundary > div { padding: 4px 6px; border-left-width: 4px; }
  .coverage-boundary strong { font-size: 6px; }
  .coverage-boundary span { font-size: 5px; }
  .coverage-slide .takeaway { gap: 7px; margin-top: 3px; padding: 5px 8px; }
  .coverage-slide .takeaway p { font-size: 12px; }
  .coverage-slide .takeaway-label { font-size: 9px; }
  .lcia-evidence-graph { flex: 1 1 280px; min-height: 280px; }
  .lcia-reading-strip { gap: 4px; margin-top: 4px; }
  .lcia-reading-strip span { padding: 3px 4px; font-size: 6px; }
  .lcia-evidence-slide .source-note { margin-top: 3px; font-size: 6px; }
}

.mapping-exact { border-color: #2b8c72; }
.mapping-aggregate { border-color: #4f7fb8; }
.mapping-approximate { border-color: #d99614; }
.mapping-unavailable { border-color: #9c5555; }

.check-grid {
  flex: 1;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 13px;
}

.check-card {
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: linear-gradient(180deg, #fff, #f7f9fa);
}

.check-card h2 {
  margin: 12px 0 7px;
  font-size: 24px;
}

.check-card p {
  margin: 0;
  color: var(--muted);
  line-height: 1.4;
}

.decision-rule {
  display: flex;
  justify-content: center;
  gap: 14px;
  margin-top: 16px;
  padding: 14px;
  border-radius: 10px;
  color: #fff;
  background: var(--psi-deep);
  font-size: 19px;
}

/* Applied-case capstone */
.process-system-slide,
.result-tracer-slide,
.steel-causal-slide,
.pv-resolution-slide,
.pv-uncertainty-slide,
.system-tradeoff-slide,
.audit-chain-slide,
.case-library-slide {
  overflow: hidden;
}

.analysis-rail {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1.15fr);
  gap: 9px;
  align-items: stretch;
  margin-bottom: 11px;
}

.analysis-rail-step {
  display: grid;
  grid-template-columns: 37px minmax(0, 1fr);
  grid-template-rows: auto auto;
  gap: 1px 10px;
  align-items: center;
  min-width: 0;
  padding: 10px 13px;
  border: 1px solid var(--line);
  border-top: 5px solid var(--psi-blue);
  border-radius: 10px;
  background: #f7f9fa;
}

.analysis-rail-premise { border-top-color: var(--teal); }
.analysis-rail-choice { border-top-color: var(--amber); }
.analysis-rail-number {
  grid-row: 1 / span 2;
  display: grid;
  place-items: center;
  width: 35px;
  height: 35px;
  border-radius: 50%;
  color: #fff;
  background: var(--psi-deep);
  font-size: 14px;
  font-weight: 900;
}
.analysis-rail-step strong { color: var(--psi-deep); font-size: 15px; }
.analysis-rail-step small { color: var(--muted); font-size: 10px; line-height: 1.15; }
.analysis-rail-arrow { align-self: center; color: var(--teal); font-size: 22px; font-style: normal; font-weight: 900; }

.analysis-path-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(215px, .62fr) minmax(0, 1fr);
  gap: 11px;
  flex: 1;
  min-height: 300px;
}
.analysis-path-card,
.analysis-gates {
  min-width: 0;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 12px;
}
.analysis-path-card { display: flex; flex-direction: column; border-top: 7px solid var(--psi-blue); background: linear-gradient(180deg, #f4f8fb, #fff); }
.analysis-system-card { border-top-color: var(--teal); background: linear-gradient(180deg, #eef8f6, #fff); }
.analysis-path-kicker { color: var(--teal); font-size: 10px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.analysis-path-card h2 { margin: 6px 0 12px; color: var(--psi-deep); font-size: 22px; }
.analysis-equation { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; gap: 5px; align-items: center; padding: 11px; border-radius: 8px; background: #fff; box-shadow: inset 0 0 0 1px var(--line); text-align: center; }
.analysis-equation span { color: var(--muted); font-size: 10px; font-weight: 800; }
.analysis-equation i { color: var(--teal); font-style: normal; font-weight: 900; }
.analysis-equation strong { color: var(--psi-deep); font-size: 11px; }
.analysis-path-card p { margin: 14px 0; color: var(--muted); font-size: 12px; line-height: 1.35; }
.analysis-answer { display: grid; gap: 3px; margin-top: auto; padding: 10px 12px; border-left: 5px solid var(--amber); border-radius: 7px; background: #fff8df; }
.analysis-answer span { color: #80600e; font-size: 9px; font-weight: 900; text-transform: uppercase; }
.analysis-answer b { color: var(--psi-deep); font-size: 12px; }
.analysis-gates { display: grid; gap: 7px; align-content: start; background: var(--psi-deep); color: #fff; }
.analysis-gates > strong { margin-bottom: 2px; color: var(--amber); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.analysis-gate { display: grid; grid-template-columns: 27px minmax(0, 1fr); gap: 8px; align-items: start; padding: 8px; border-radius: 7px; background: rgba(255, 255, 255, .1); }
.analysis-gate > span { display: grid; place-items: center; width: 25px; height: 25px; border-radius: 50%; color: var(--psi-deep); background: var(--amber); font-size: 10px; font-weight: 900; }
.analysis-gate > div { display: grid; gap: 2px; }
.analysis-gate b { font-size: 10px; }
.analysis-gate small { color: #dce8ed; font-size: 8.5px; line-height: 1.15; }
.analysis-scaling-rule { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; align-items: center; margin-top: 9px; padding: 8px 12px; border-left: 5px solid var(--red); border-radius: 8px; background: #fbefef; }
.analysis-scaling-rule strong { color: #713436; font-size: 11px; text-transform: uppercase; }
.analysis-scaling-rule span { color: var(--muted); font-size: 10px; }

.capstone-controls { display: grid; grid-template-columns: 1.22fr .86fr .48fr 1.05fr; gap: 8px; margin: -3px 0 7px; }
.capstone-controls .control-group { min-width: 0; }
.capstone-controls .control-chip { padding: 5px 9px; font-size: 10px; }
.capstone-case-controls,
.capstone-scenario-controls,
.capstone-indicator-controls { flex-wrap: nowrap; }
.tracer-top-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(245px, .58fr) minmax(0, 1fr); gap: 8px; flex: 1 1 300px; min-height: 260px; }
.tracer-step-panel,
.tracer-mapping-card,
.tracer-contribution-panel,
.tracer-selected-result { min-width: 0; min-height: 0; border: 1px solid var(--line); border-radius: 11px; background: linear-gradient(180deg, #f7f9fa, #fff); overflow: hidden; }
.tracer-step-panel,
.tracer-contribution-panel { display: flex; flex-direction: column; }
.tracer-step-heading { display: grid; grid-template-columns: 27px minmax(0, 1fr); gap: 8px; align-items: center; padding: 7px 9px 4px; }
.tracer-step-heading > span { display: grid; place-items: center; width: 25px; height: 25px; border-radius: 50%; color: #fff; background: var(--psi-deep); font-size: 9px; font-weight: 900; }
.tracer-step-heading > div { display: grid; gap: 1px; min-width: 0; }
.tracer-step-heading strong { color: var(--psi-deep); font-size: 10px; line-height: 1.08; }
.tracer-step-heading small { overflow: hidden; color: var(--muted); font-size: 7.5px; line-height: 1.12; text-overflow: ellipsis; white-space: nowrap; }
.tracer-top-graph { flex: 1; min-height: 0; border: 0; border-radius: 0; }
.tracer-mapping-card { display: flex; flex-direction: column; padding-bottom: 8px; border-top: 5px solid var(--teal); }
.tracer-mapping-flow { display: grid; gap: 3px; align-content: center; flex: 1; min-height: 0; padding: 3px 9px; }
.tracer-mapping-flow > i { color: var(--teal); font-size: 10px; font-style: normal; font-weight: 900; line-height: .75; text-align: center; }
.tracer-mapping-stage { display: grid; gap: 2px; min-width: 0; padding: 7px 8px; border-left: 4px solid var(--psi-blue); border-radius: 6px; background: #edf4f8; }
.tracer-mapping-derived { border-left-color: var(--teal); background: #eaf6f3; }
.tracer-mapping-inventory { border-left-color: var(--amber); background: #fff7df; }
.tracer-mapping-stage span { color: var(--muted); font-size: 6.5px; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.tracer-mapping-stage b { color: var(--psi-deep); font-size: 8px; line-height: 1.12; }
.tracer-mapping-status { display: flex; justify-content: space-between; gap: 6px; margin: 1px 9px 0; padding: 5px 7px; border-radius: 6px; color: #fff; background: var(--psi-deep); font-size: 6.5px; }
.tracer-mapping-status strong { color: var(--amber); text-transform: uppercase; }
.tracer-mapping-status span { font-weight: 800; text-transform: capitalize; }
.tracer-bottom-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(230px, .45fr); gap: 8px; flex: 0 0 190px; min-height: 170px; margin-top: 8px; }
.tracer-contribution-graph { flex: 1; min-height: 0; border: 0; border-radius: 0; }
.tracer-selected-result { display: flex; flex-direction: column; padding: 9px 11px; border-top: 6px solid var(--teal); }
.tracer-result-heading { display: grid; gap: 1px; }
.tracer-result-heading strong { color: var(--teal); font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.tracer-result-heading small { color: var(--muted); font-size: 8px; }
.tracer-score-value { margin-top: 4px; color: var(--psi-deep); font-size: 25px; font-weight: 900; line-height: 1; }
.tracer-score-unit { margin-top: 2px; color: var(--muted); font-size: 9px; font-weight: 800; }
.tracer-result-chips { display: flex; flex-wrap: wrap; gap: 3px; margin: 7px 0 6px; }
.tracer-result-chips span { padding: 3px 5px; border-radius: 999px; color: var(--psi-deep); background: #e6eef2; font-size: 7.5px; font-weight: 900; }
.tracer-result-receipt { display: grid; gap: 3px; min-height: 0; }
.tracer-result-receipt > div { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 5px; padding-top: 3px; border-top: 1px solid var(--line); }
.tracer-result-receipt strong { color: var(--teal); font-size: 7px; text-transform: uppercase; }
.tracer-result-receipt span { overflow: hidden; color: var(--psi-deep); font-size: 7.5px; font-weight: 800; line-height: 1.12; text-overflow: ellipsis; white-space: nowrap; }
.result-tracer-slide .source-note { margin-top: 4px; }

.steel-causal-graph { flex: 1; min-height: 360px; }
.steel-causal-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; margin-top: 8px; }
.steel-causal-metrics .energy-metric-card { min-height: 0; padding: 8px 10px; }
.steel-causal-metrics .energy-metric-value { font-size: 19px; }
.steel-causal-metrics .energy-metric-label { font-size: 9px; }
.steel-causal-metrics p { margin-top: 3px; font-size: 8px; line-height: 1.15; }
.steel-causal-slide .source-note { margin-top: 4px; }

.pv-resolution-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(310px, .65fr); gap: 12px; flex: 1; min-height: 400px; }
.pv-efficiency-figure { position: relative; display: grid; place-items: center; min-width: 0; min-height: 0; padding: 8px; border: 1px solid var(--line); border-radius: 11px; background: #fff; overflow: hidden; }
.pv-efficiency-figure img { position: absolute; inset: 4px; width: calc(100% - 8px); height: calc(100% - 8px); object-fit: contain; }
.pv-resolution-panel { display: flex; flex-direction: column; gap: 9px; min-width: 0; }
.pv-resolution-warning { padding: 11px 12px; border-left: 5px solid var(--red); border-radius: 8px; background: #fbefef; }
.pv-resolution-warning strong { color: #713436; font-size: 12px; }
.pv-resolution-warning p { margin: 5px 0 0; color: var(--muted); font-size: 10px; line-height: 1.28; }
.pv-completion-chain { display: grid; gap: 6px; }
.pv-completion-step { position: relative; display: grid; grid-template-columns: 27px minmax(0, 1fr); gap: 8px; align-items: center; padding: 8px 9px; border: 1px solid var(--line); border-left: 5px solid var(--teal); border-radius: 7px; background: #f7f9fa; }
.pv-completion-step:not(:last-child)::after { content: "↓"; position: absolute; left: 16px; bottom: -10px; z-index: 2; color: var(--teal); font-size: 11px; font-weight: 900; }
.pv-completion-step > span { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; color: #fff; background: var(--psi-deep); font-size: 9px; font-weight: 900; }
.pv-completion-step > div { display: grid; gap: 2px; }
.pv-completion-step b { color: var(--psi-deep); font-size: 10px; }
.pv-completion-step small { color: var(--muted); font-size: 8px; line-height: 1.15; }
.pv-assumption-chips { display: flex; flex-wrap: wrap; gap: 5px; margin-top: auto; padding: 8px; border-radius: 8px; background: var(--psi-deep); }
.pv-assumption-chips strong { flex-basis: 100%; color: var(--amber); font-size: 8px; letter-spacing: .07em; text-transform: uppercase; }
.pv-assumption-chips span { padding: 4px 6px; border-radius: 999px; color: var(--psi-deep); background: #fff; font-size: 8px; font-weight: 800; }
.pv-resolution-slide .source-note { margin-top: 5px; }

.pv-uncertainty-evidence { display: grid; grid-template-columns: minmax(0, 1.32fr) minmax(0, .6fr) minmax(0, .6fr); gap: 8px; flex: 1; min-height: 365px; }
.pv-market-panel,
.pv-system-column-panel { display: flex; flex-direction: column; min-width: 0; min-height: 0; padding: 8px; border: 1px solid var(--line); border-radius: 10px; background: #fff; overflow: hidden; }
.pv-market-panel > strong,
.pv-system-column-panel > strong { min-height: 26px; color: var(--psi-deep); font-size: 10px; line-height: 1.15; }
.pv-market-panel img { width: 100%; height: calc(100% - 28px); object-fit: contain; }
.pv-system-crop { position: relative; flex: 1; min-height: 0; overflow: hidden; }
.pv-system-crop img { display: block; width: 300%; max-width: none; height: 100%; object-fit: fill; }
.pv-system-climate-crop img { transform: translateX(-33.333%); }
.pv-system-impact-crop img { transform: translateX(-66.666%); }
.pv-uncertainty-lessons { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 8px; }
.pv-uncertainty-lessons .concept-card { min-height: 0; padding: 8px 10px; }
.pv-uncertainty-lessons .concept-card h3 { margin-bottom: 3px; font-size: 11px; }
.pv-uncertainty-lessons .concept-card p { font-size: 8.5px; line-height: 1.18; }
.pv-uncertainty-slide .source-note { margin-top: 4px; }

.system-tradeoff-grid { display: grid; grid-template-columns: minmax(0, 1.62fr) minmax(300px, .58fr); gap: 10px; flex: 1; min-height: 430px; }
.system-tradeoff-figure { position: relative; display: grid; place-items: center; min-width: 0; min-height: 0; padding: 7px; border: 1px solid var(--line); border-radius: 10px; background: #fff; overflow: hidden; }
.system-tradeoff-figure img { position: absolute; inset: 4px; width: calc(100% - 8px); height: calc(100% - 8px); object-fit: contain; }
.system-tradeoff-selected { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: minmax(0, 1fr) auto; gap: 8px; place-items: stretch; }
.tradeoff-panel-crop { position: relative; align-self: center; width: 100%; aspect-ratio: 1.25; border: 1px solid #dbe4e8; border-radius: 7px; background: #fff; overflow: hidden; }
.system-tradeoff-selected .tradeoff-panel-crop img { top: 0; left: 0; right: auto; bottom: auto; width: 367%; max-width: none; height: auto; object-fit: initial; }
.tradeoff-crop-health img { transform: translate(0, -33%); }
.tradeoff-crop-land img { transform: translate(0, -66.9%); }
.tradeoff-crop-minerals img { transform: translate(-51.7%, -66.9%); }
.tradeoff-selected-note { grid-column: 1 / -1; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 9px; align-items: center; padding: 8px 10px; border-left: 5px solid var(--amber); border-radius: 7px; color: var(--muted); background: #fff8df; }
.tradeoff-selected-note strong { color: var(--psi-deep); font-size: 11px; }
.tradeoff-selected-note span { font-size: 10px; line-height: 1.2; }
.tradeoff-reading-panel { display: grid; grid-template-rows: auto repeat(4, 1fr); gap: 6px; min-width: 0; }
.tradeoff-read-card,
.tradeoff-finding-card { padding: 9px 10px; border: 1px solid var(--line); border-radius: 8px; background: #f7f9fa; }
.tradeoff-read-card { border-top: 5px solid var(--psi-blue); }
.tradeoff-read-card strong,
.tradeoff-finding-card strong { color: var(--psi-deep); font-size: 10px; }
.tradeoff-read-card p,
.tradeoff-finding-card p { margin: 4px 0 0; color: var(--muted); font-size: 8px; line-height: 1.18; }
.tradeoff-color-key { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.tradeoff-color-key span { display: flex; gap: 4px; align-items: center; color: var(--muted); font-size: 8px; font-weight: 800; }
.tradeoff-swatch { width: 10px; height: 10px; border-radius: 2px; }
.swatch-low { background: #287c8e; }
.swatch-mid { background: #f2a541; }
.swatch-high { background: #d65b5b; }
.system-tradeoff-slide .source-note { margin-top: 4px; }

.audit-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 8px; flex: 1; min-height: 315px; }
.audit-card { display: grid; grid-template-columns: 31px minmax(0, 1fr); gap: 8px; align-content: start; min-width: 0; padding: 10px; border: 1px solid var(--line); border-top: 5px solid var(--teal); border-radius: 9px; background: linear-gradient(180deg, #f7f9fa, #fff); }
.audit-number { display: grid; place-items: center; width: 29px; height: 29px; border-radius: 50%; color: #fff; background: var(--psi-deep); font-size: 9px; font-weight: 900; }
.audit-card > div { display: grid; gap: 4px; }
.audit-card strong { color: var(--psi-deep); font-size: 11px; }
.audit-card p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.2; }
.audit-card small { padding-top: 4px; border-top: 1px solid var(--line); color: var(--teal); font-size: 8px; font-weight: 800; line-height: 1.15; }
.audit-report-template { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 4px 13px; align-items: start; margin-top: 9px; padding: 10px 13px; border-left: 6px solid var(--amber); border-radius: 9px; background: #fff8df; }
.audit-report-template > strong { grid-row: 1 / span 2; color: var(--psi-deep); font-size: 12px; }
.audit-report-template p { margin: 0; color: #5c5d5f; font-size: 9px; line-height: 1.25; }
.audit-receipt-chips { display: flex; flex-wrap: wrap; gap: 4px; }
.audit-receipt-chips span { padding: 3px 6px; border-radius: 999px; color: #6c5312; background: #faedc6; font-size: 7px; font-weight: 900; }

.case-library-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 9px; flex: 1; min-height: 350px; }
.case-library-card { display: flex; flex-direction: column; min-width: 0; padding: 12px; border: 1px solid var(--line); border-top: 6px solid var(--psi-blue); border-radius: 10px; background: linear-gradient(180deg, #f7f9fa, #fff); }
.case-library-heading { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 9px; align-items: center; }
.case-library-code { display: grid; place-items: center; min-width: 36px; height: 36px; padding: 0 4px; border-radius: 8px; color: #fff; background: var(--psi-deep); font-size: 10px; font-weight: 900; }
.case-library-heading h2 { margin: 0; color: var(--psi-deep); font-size: 17px; }
.case-library-heading strong { color: var(--teal); font-size: 8px; }
.case-library-levers { display: grid; gap: 3px; margin-top: 9px; padding: 7px 8px; border-radius: 7px; background: #eaf3f6; }
.case-library-levers span { color: var(--teal); font-size: 7px; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.case-library-levers b { color: var(--psi-deep); font-size: 9px; line-height: 1.15; }
.case-library-card > p { margin: 9px 0; color: var(--muted); font-size: 10px; line-height: 1.22; }
.case-library-status { align-self: flex-start; margin-top: auto; padding: 4px 7px; border-radius: 999px; font-size: 8px; font-weight: 900; }
.case-ready { color: #0d5d54; background: #d8f0ec; }
.case-published { color: #315a87; background: #dce9f5; }
.case-community { color: #6c5312; background: #faedc6; }
.case-library-scope { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr); gap: 7px; align-items: center; margin-top: 8px; padding: 8px 10px; border-radius: 9px; color: #fff; background: var(--psi-deep); }
.case-library-scope > div { display: grid; gap: 2px; text-align: center; }
.case-library-scope strong { color: var(--amber); font-size: 9px; }
.case-library-scope span { color: #e3edf1; font-size: 8px; }
.case-library-scope i { color: var(--amber); font-style: normal; font-weight: 900; }
.case-library-slide .source-note { margin-top: 4px; }

@media (max-height: 950px) and (min-width: 701px) {
  .process-system-slide .eyebrow,
  .result-tracer-slide .eyebrow,
  .steel-causal-slide .eyebrow,
  .pv-resolution-slide .eyebrow,
  .pv-uncertainty-slide .eyebrow,
  .system-tradeoff-slide .eyebrow,
  .audit-chain-slide .eyebrow,
  .case-library-slide .eyebrow { margin-bottom: 5px; font-size: 11px; }
  .process-system-slide .title-block,
  .result-tracer-slide .title-block,
  .steel-causal-slide .title-block,
  .pv-resolution-slide .title-block,
  .pv-uncertainty-slide .title-block,
  .system-tradeoff-slide .title-block,
  .audit-chain-slide .title-block,
  .case-library-slide .title-block { margin-bottom: 7px; }
  .process-system-slide .slide-title,
  .result-tracer-slide .slide-title,
  .steel-causal-slide .slide-title,
  .pv-resolution-slide .slide-title,
  .pv-uncertainty-slide .slide-title,
  .system-tradeoff-slide .slide-title,
  .audit-chain-slide .slide-title,
  .case-library-slide .slide-title { font-size: 42px; }
  .process-system-slide .slide-subtitle,
  .result-tracer-slide .slide-subtitle,
  .steel-causal-slide .slide-subtitle,
  .pv-resolution-slide .slide-subtitle,
  .pv-uncertainty-slide .slide-subtitle,
  .system-tradeoff-slide .slide-subtitle,
  .audit-chain-slide .slide-subtitle,
  .case-library-slide .slide-subtitle { margin-top: 6px; font-size: 17px; line-height: 1.22; }
  .process-system-slide .takeaway,
  .steel-causal-slide .takeaway,
  .pv-resolution-slide .takeaway,
  .pv-uncertainty-slide .takeaway,
  .system-tradeoff-slide .takeaway,
  .audit-chain-slide .takeaway,
  .case-library-slide .takeaway { gap: 8px; margin-top: 5px; padding: 8px 10px; }
  .process-system-slide .takeaway p,
  .steel-causal-slide .takeaway p,
  .pv-resolution-slide .takeaway p,
  .pv-uncertainty-slide .takeaway p,
  .system-tradeoff-slide .takeaway p,
  .audit-chain-slide .takeaway p,
  .case-library-slide .takeaway p { font-size: 12px; }
  .process-system-slide .takeaway-label,
  .steel-causal-slide .takeaway-label,
  .pv-resolution-slide .takeaway-label,
  .pv-uncertainty-slide .takeaway-label,
  .system-tradeoff-slide .takeaway-label,
  .audit-chain-slide .takeaway-label,
  .case-library-slide .takeaway-label { font-size: 8px; }
  .steel-causal-slide .source-note,
  .pv-resolution-slide .source-note,
  .pv-uncertainty-slide .source-note,
  .system-tradeoff-slide .source-note,
  .case-library-slide .source-note { margin-top: 3px; font-size: 8px; }

  .capstone-controls { gap: 6px; margin: -2px 0 5px; }
  .capstone-controls .control-group { gap: 4px; }
  .capstone-controls .control-label { font-size: 8px; }
  .capstone-controls .control-chip { padding: 4px 7px; font-size: 8px; }
  .tracer-top-grid { grid-template-columns: minmax(0, 1fr) minmax(215px, .58fr) minmax(0, 1fr); gap: 6px; flex: 0 0 270px; min-height: 0; height: 270px; }
  .tracer-bottom-grid { grid-template-columns: minmax(0, 1.55fr) minmax(210px, .45fr); gap: 6px; flex: 0 0 176px; min-height: 0; height: 176px; margin-top: 6px; }
  .tracer-step-heading { grid-template-columns: 23px minmax(0, 1fr); gap: 6px; padding: 5px 7px 2px; }
  .tracer-step-heading > span { width: 21px; height: 21px; font-size: 7px; }
  .tracer-step-heading strong { font-size: 8px; }
  .tracer-step-heading small { font-size: 6px; }
  .tracer-mapping-card { padding-bottom: 5px; border-top-width: 4px; }
  .tracer-mapping-flow { gap: 2px; padding: 2px 7px; }
  .tracer-mapping-stage { gap: 1px; padding: 5px 6px; }
  .tracer-mapping-stage span { font-size: 5.5px; }
  .tracer-mapping-stage b { font-size: 6.5px; }
  .tracer-mapping-status { margin: 1px 7px 0; padding: 4px 5px; font-size: 5.5px; }
  .tracer-selected-result { padding: 7px 9px; border-top-width: 5px; }
  .tracer-score-value { font-size: 20px; }
  .tracer-score-unit { font-size: 6.5px; }
  .tracer-result-chips { margin: 5px 0 4px; }
  .tracer-result-receipt { gap: 2px; }
  .tracer-result-receipt > div { grid-template-columns: 61px minmax(0, 1fr); gap: 4px; padding-top: 2px; }
  .tracer-result-receipt strong { font-size: 6.2px; }
  .tracer-result-receipt span { font-size: 6.7px; }
  .result-tracer-slide .source-note { margin-top: 2px; font-size: 7px; }

  .steel-causal-graph { min-height: 285px; }
  .steel-causal-metrics { margin-top: 5px; }
  .steel-causal-metrics .energy-metric-card { padding: 6px 8px; }
  .steel-causal-metrics .energy-metric-value { font-size: 16px; }
  .steel-causal-metrics .energy-metric-label { font-size: 8px; }
  .steel-causal-metrics p { font-size: 7px; }

  .pv-resolution-grid { flex: 0 0 515px; min-height: 0; height: 515px; }
  .pv-resolution-panel { gap: 6px; }
  .pv-resolution-warning { padding: 7px 9px; }
  .pv-resolution-warning p { margin-top: 3px; font-size: 8px; }
  .pv-completion-chain { gap: 4px; }
  .pv-completion-step { padding: 5px 7px; }
  .pv-completion-step b { font-size: 8px; }
  .pv-completion-step small { font-size: 6.5px; }
  .pv-assumption-chips { padding: 5px; }
  .pv-assumption-chips span { padding: 3px 5px; font-size: 6.5px; }

  .pv-uncertainty-evidence { flex: 0 0 405px; min-height: 0; height: 405px; }
  .pv-market-panel > strong,
  .pv-system-column-panel > strong { min-height: 20px; font-size: 8px; }
  .pv-uncertainty-lessons { margin-top: 5px; }
  .pv-uncertainty-lessons .concept-card { padding: 6px 8px; }
  .pv-uncertainty-lessons .concept-card h3 { font-size: 9px; }
  .pv-uncertainty-lessons .concept-card p { font-size: 7px; }

  .system-tradeoff-grid { flex: 0 0 490px; min-height: 0; height: 490px; }
  .tradeoff-reading-panel { gap: 4px; }
  .tradeoff-read-card,
  .tradeoff-finding-card { padding: 6px 8px; }
  .tradeoff-read-card strong,
  .tradeoff-finding-card strong { font-size: 8px; }
  .tradeoff-read-card p,
  .tradeoff-finding-card p { font-size: 6.5px; }

  .audit-grid { min-height: 270px; }
  .audit-card { padding: 7px; }
  .audit-card strong { font-size: 9px; }
  .audit-card p { font-size: 7.5px; }
  .audit-card small { font-size: 6.5px; }
  .audit-report-template { margin-top: 5px; padding: 7px 9px; }

  .case-library-grid { min-height: 290px; }
  .case-library-card { padding: 8px; }
  .case-library-heading h2 { font-size: 13px; }
  .case-library-card > p { margin: 6px 0; font-size: 8px; }
  .case-library-scope { margin-top: 5px; padding: 6px 8px; }
}

@media (max-height: 820px) and (min-width: 701px) {
  .process-system-slide .slide-title,
  .result-tracer-slide .slide-title,
  .steel-causal-slide .slide-title,
  .pv-resolution-slide .slide-title,
  .pv-uncertainty-slide .slide-title,
  .system-tradeoff-slide .slide-title,
  .audit-chain-slide .slide-title,
  .case-library-slide .slide-title { font-size: 34px; }
  .process-system-slide .slide-subtitle,
  .result-tracer-slide .slide-subtitle,
  .steel-causal-slide .slide-subtitle,
  .pv-resolution-slide .slide-subtitle,
  .pv-uncertainty-slide .slide-subtitle,
  .system-tradeoff-slide .slide-subtitle,
  .audit-chain-slide .slide-subtitle,
  .case-library-slide .slide-subtitle { margin-top: 4px; font-size: 14px; }
  .process-system-slide .title-block,
  .result-tracer-slide .title-block,
  .steel-causal-slide .title-block,
  .pv-resolution-slide .title-block,
  .pv-uncertainty-slide .title-block,
  .system-tradeoff-slide .title-block,
  .audit-chain-slide .title-block,
  .case-library-slide .title-block { margin-bottom: 5px; }

  .analysis-rail { gap: 5px; margin-bottom: 5px; }
  .analysis-rail-step { grid-template-columns: 25px minmax(0, 1fr); gap: 1px 6px; padding: 5px 7px; border-top-width: 4px; }
  .analysis-rail-number { width: 23px; height: 23px; font-size: 8px; }
  .analysis-rail-step strong { font-size: 9px; }
  .analysis-rail-step small { font-size: 6.5px; }
  .analysis-rail-arrow { font-size: 13px; }
  .analysis-path-grid { grid-template-columns: minmax(0, 1fr) minmax(165px, .55fr) minmax(0, 1fr); gap: 6px; min-height: 245px; }
  .analysis-path-card, .analysis-gates { padding: 8px; border-radius: 8px; }
  .analysis-path-card { border-top-width: 5px; }
  .analysis-path-kicker { font-size: 6px; }
  .analysis-path-card h2 { margin: 3px 0 6px; font-size: 13px; }
  .analysis-equation { gap: 3px; padding: 6px; }
  .analysis-equation span, .analysis-equation strong { font-size: 6.5px; }
  .analysis-path-card p { margin: 7px 0; font-size: 7.5px; line-height: 1.2; }
  .analysis-answer { gap: 1px; padding: 5px 7px; border-left-width: 4px; }
  .analysis-answer span { font-size: 5.5px; }
  .analysis-answer b { font-size: 7.5px; }
  .analysis-gates { gap: 4px; }
  .analysis-gates > strong { font-size: 6px; }
  .analysis-gate { grid-template-columns: 18px minmax(0, 1fr); gap: 5px; padding: 4px; }
  .analysis-gate > span { width: 17px; height: 17px; font-size: 6px; }
  .analysis-gate b { font-size: 6.5px; }
  .analysis-gate small { font-size: 5.5px; }
  .analysis-scaling-rule { gap: 6px; margin-top: 4px; padding: 4px 7px; border-left-width: 4px; }
  .analysis-scaling-rule strong { font-size: 6.5px; }
  .analysis-scaling-rule span { font-size: 6px; }

  .capstone-controls { gap: 4px; margin: -2px 0 4px; }
  .capstone-controls .control-group { gap: 3px; }
  .capstone-controls .control-label { font-size: 6px; }
  .capstone-controls .control-chip { padding: 3px 5px; font-size: 7.2px; }
  .tracer-top-grid { grid-template-columns: minmax(0, 1fr) minmax(170px, .56fr) minmax(0, 1fr); gap: 4px; flex: 0 0 210px; height: 210px; }
  .tracer-bottom-grid { grid-template-columns: minmax(0, 1.45fr) minmax(250px, .55fr); gap: 4px; flex: 0 0 138px; height: 138px; margin-top: 4px; }
  .tracer-step-panel, .tracer-mapping-card, .tracer-contribution-panel, .tracer-selected-result { border-radius: 7px; }
  .tracer-step-heading { grid-template-columns: 18px minmax(0, 1fr); gap: 4px; padding: 3px 5px 1px; }
  .tracer-step-heading > span { width: 16px; height: 16px; font-size: 5.5px; }
  .tracer-step-heading strong { font-size: 6.5px; }
  .tracer-step-heading small { font-size: 4.8px; }
  .tracer-mapping-card { padding-bottom: 3px; }
  .tracer-mapping-flow { gap: 1px; padding: 1px 5px; }
  .tracer-mapping-flow > i { font-size: 6px; }
  .tracer-mapping-stage { padding: 3px 4px; border-left-width: 3px; }
  .tracer-mapping-stage span { font-size: 4.2px; }
  .tracer-mapping-stage b { font-size: 5.2px; }
  .tracer-mapping-status { margin: 0 5px; padding: 3px 4px; font-size: 4.3px; }
  .tracer-selected-result { padding: 5px 6px; border-top-width: 4px; }
  .tracer-result-heading strong { font-size: 6.3px; }
  .tracer-result-heading small { font-size: 5.3px; }
  .tracer-score-value { margin-top: 2px; font-size: 17px; }
  .tracer-score-unit { font-size: 5.7px; }
  .tracer-result-chips { gap: 2px; margin: 3px 0; }
  .tracer-result-chips span { padding: 2px 3px; font-size: 5.3px; }
  .tracer-result-receipt { gap: 1px; }
  .tracer-result-receipt > div { grid-template-columns: 55px minmax(0, 1fr); gap: 3px; padding-top: 1px; }
  .tracer-result-receipt strong { font-size: 5.3px; }
  .tracer-result-receipt span { font-size: 6.1px; }
  .result-tracer-slide .source-note { margin-top: 2px; font-size: 5.5px; }

  .steel-causal-graph { flex: 0 0 250px; min-height: 0; height: 250px; }
  .steel-causal-metrics { gap: 4px; margin-top: 4px; }
  .steel-causal-metrics .energy-metric-card { padding: 5px 6px; }
  .steel-causal-metrics .energy-metric-value { font-size: 13px; }
  .steel-causal-metrics .energy-metric-label { font-size: 6px; }
  .steel-causal-metrics p { margin-top: 2px; font-size: 5.5px; }
  .steel-causal-slide .source-note { margin-top: 2px; font-size: 5.5px; }

  .pv-resolution-grid { grid-template-columns: minmax(0, 1.55fr) minmax(245px, .65fr); gap: 6px; flex: 0 0 360px; min-height: 0; height: 360px; }
  .pv-efficiency-figure { padding: 4px; }
  .pv-resolution-panel { gap: 5px; }
  .pv-resolution-warning { padding: 5px 7px; border-left-width: 4px; }
  .pv-resolution-warning strong { font-size: 7px; }
  .pv-resolution-warning p { margin-top: 2px; font-size: 6px; }
  .pv-completion-chain { gap: 3px; }
  .pv-completion-step { grid-template-columns: 19px minmax(0, 1fr); gap: 5px; padding: 4px 5px; border-left-width: 4px; }
  .pv-completion-step:not(:last-child)::after { left: 10px; bottom: -6px; font-size: 7px; }
  .pv-completion-step > span { width: 17px; height: 17px; font-size: 6px; }
  .pv-completion-step b { font-size: 6.5px; }
  .pv-completion-step small { font-size: 5.2px; }
  .pv-assumption-chips { gap: 3px; padding: 4px; }
  .pv-assumption-chips strong { font-size: 5px; }
  .pv-assumption-chips span { padding: 2px 4px; font-size: 5.2px; }
  .pv-resolution-slide .source-note { margin-top: 2px; font-size: 5.5px; }

  .pv-uncertainty-evidence { gap: 5px; flex: 0 0 325px; min-height: 0; height: 325px; }
  .pv-market-panel, .pv-system-column-panel { padding: 4px; }
  .pv-market-panel > strong, .pv-system-column-panel > strong { min-height: 15px; font-size: 6.5px; }
  .pv-market-panel img { height: calc(100% - 17px); }
  .pv-uncertainty-lessons { gap: 4px; margin-top: 4px; }
  .pv-uncertainty-lessons .concept-card { padding: 5px 6px; }
  .pv-uncertainty-lessons .concept-card h3 { margin-bottom: 2px; font-size: 7px; }
  .pv-uncertainty-lessons .concept-card p { font-size: 5.8px; }
  .pv-uncertainty-slide .source-note { margin-top: 2px; font-size: 5.5px; }

  .system-tradeoff-grid { grid-template-columns: minmax(0, 1.75fr) minmax(230px, .55fr); gap: 6px; flex: 0 0 370px; min-height: 0; height: 370px; }
  .system-tradeoff-figure { padding: 4px; }
  .tradeoff-reading-panel { gap: 3px; }
  .tradeoff-read-card, .tradeoff-finding-card { padding: 5px 6px; }
  .tradeoff-read-card { border-top-width: 4px; }
  .tradeoff-read-card strong, .tradeoff-finding-card strong { font-size: 6.5px; }
  .tradeoff-read-card p, .tradeoff-finding-card p { margin-top: 2px; font-size: 5.3px; }
  .tradeoff-color-key { gap: 3px; margin-top: 3px; }
  .tradeoff-color-key span { gap: 2px; font-size: 5px; }
  .tradeoff-swatch { width: 7px; height: 7px; }
  .system-tradeoff-slide .source-note { margin-top: 2px; font-size: 5.5px; }

  .audit-grid { gap: 4px; min-height: 250px; }
  .audit-card { grid-template-columns: 21px minmax(0, 1fr); gap: 5px; padding: 5px; border-top-width: 4px; }
  .audit-number { width: 19px; height: 19px; font-size: 5.5px; }
  .audit-card > div { gap: 2px; }
  .audit-card strong { font-size: 7px; }
  .audit-card p { font-size: 5.8px; }
  .audit-card small { padding-top: 2px; font-size: 5.2px; }
  .audit-report-template { grid-template-columns: 105px minmax(0, 1fr); gap: 2px 7px; margin-top: 4px; padding: 5px 7px; border-left-width: 4px; }
  .audit-report-template > strong { font-size: 7px; }
  .audit-report-template p { font-size: 5.5px; }
  .audit-receipt-chips { gap: 2px; }
  .audit-receipt-chips span { padding: 2px 3px; font-size: 4.8px; }

  .case-library-grid { gap: 5px; min-height: 275px; }
  .case-library-card { padding: 6px; border-top-width: 4px; }
  .case-library-heading { grid-template-columns: 25px minmax(0, 1fr); gap: 5px; }
  .case-library-code { min-width: 23px; height: 23px; padding: 0 2px; font-size: 6px; }
  .case-library-heading h2 { font-size: 10px; }
  .case-library-heading strong { font-size: 5px; }
  .case-library-levers { gap: 1px; margin-top: 4px; padding: 4px; }
  .case-library-levers span { font-size: 4.8px; }
  .case-library-levers b { font-size: 5.8px; }
  .case-library-card > p { margin: 4px 0; font-size: 6.2px; }
  .case-library-status { padding: 2px 4px; font-size: 5px; }
  .case-library-scope { gap: 4px; margin-top: 4px; padding: 4px 6px; }
  .case-library-scope strong { font-size: 5.8px; }
  .case-library-scope span { font-size: 5px; }
  .case-library-scope i { font-size: 7px; }
  .case-library-slide .source-note { margin-top: 2px; font-size: 5.5px; }
}

@media (max-width: 1350px) {
  .app-header {
    grid-template-columns: 330px minmax(0, 1fr);
  }

  .slide-label {
    display: none;
  }
}

.app-footer {
  display: grid;
  grid-template-columns: auto auto auto 1fr auto auto;
  gap: 12px;
  align-items: center;
  padding: 10px 28px;
  background: var(--surface);
  border-top: 1px solid var(--line);
}

.nav-button {
  min-width: 112px;
  min-height: 44px;
  padding: 8px 16px;
  border-radius: 8px;
  border: 1px solid transparent;
  cursor: pointer;
  font-weight: 800;
}

.nav-button:disabled {
  opacity: 0.35;
  cursor: default;
}

.app-footer .pdf-export-button {
  border-color: #a8c1cc;
}

.nav-secondary {
  color: var(--psi-deep);
  background: #fff;
  border-color: #b9c5cb;
}

.nav-primary {
  color: #fff;
  background: var(--psi-deep);
}

.reveal-button {
  color: var(--psi-deep);
  background: #dff1ee;
  border-color: #a8d5cd;
}

.footer-hint {
  color: var(--muted);
  font-size: 13px;
  text-align: center;
}

.slide-number,
.print-slide-number {
  color: var(--psi-blue);
  font-size: 12px;
  font-variant-numeric: tabular-nums;
  font-weight: 900;
  letter-spacing: 0.08em;
  white-space: nowrap;
}

.slide-number {
  min-width: 66px;
  text-align: right;
}

.print-slide-number {
  display: none;
}

@media (max-width: 1100px) {
  .app-header { grid-template-columns: 300px minmax(0, 1fr); padding: 0 16px; gap: 10px; }
  .chapter-button { font-size: 11px; padding: 6px; }
  .definition-grid, .limitations-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .four-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sector-grid { grid-template-columns: 1fr; }
  .slide-label {
    display: none;
  }

  .slide-stage {
    padding: 12px;
  }

  .slide {
    min-height: auto;
    padding: 25px;
  }

  .hero-slide,
  .two-column,
  .two-graph-grid,
  .dac-layout,
  .region-map,
  .netzero-layout,
  .history-policy-layout,
  .energy-trend-layout,
  .emissions-visual-grid {
    grid-template-columns: 1fr;
  }

  .budget-visual-grid,
  .integration-enriched-layout {
    grid-template-columns: 1fr;
  }

  .iam-definition-layout { grid-template-columns: 1fr; grid-template-rows: auto auto; height: auto; }
  .iam-experiment-panel { grid-template-columns: 1fr; }
  .iam-experiment-heading { padding: 0 0 6px; border-right: 0; border-bottom: 1px solid var(--line); }
  .iam-experiment-chain { grid-template-columns: 1fr; }
  .iam-experiment-step:not(:last-child)::after {
    content: "↓";
    left: 13px;
    right: auto;
    top: auto;
    bottom: -10px;
    transform: none;
  }
  .iam-meaning-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .emissions-stat-grid,
  .budget-stat-grid,
  .integration-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .iam-word-grid,
  .experiment-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .hero-system {
    display: none;
  }

  .system-map,
  .pipeline {
    grid-template-columns: 1fr;
  }

  .system-arrow,
  .pipeline-arrow,
  .region-arrow {
    transform: rotate(90deg);
    justify-self: center;
  }

  .timeline,
  .axis-grid,
  .scenario-reveal-grid,
  .mapping-grid,
  .check-grid,
  .iam-word-grid,
  .experiment-grid {
    grid-template-columns: repeat(2, 1fr);
  }

}

@media (max-width: 700px) {
  .app-header {
    grid-template-columns: 1fr;
    padding: 0 14px;
  }

  .chapter-nav {
    display: none;
  }

  .session-badge,
  .footer-hint {
    display: none;
  }

  .slide-title {
    font-size: 36px;
  }

  .timeline,
  .axis-grid,
  .scenario-reveal-grid,
  .mapping-grid,
  .check-grid,
  .iam-word-grid,
  .experiment-grid,
  .evidence-row,
  .comparison-row,
  .detective-choices,
  .name-decoder {
    grid-template-columns: 1fr;
  }

  .energy-metric-grid,
  .service-chain,
  .emissions-stat-grid,
  .budget-stat-grid,
  .integration-stat-grid,
  .shared-resource-grid {
    grid-template-columns: 1fr;
  }

  .service-chain-arrow {
    display: none;
  }

  .experiment-flow {
    grid-template-columns: 1fr;
  }

  .experiment-arrow {
    transform: rotate(90deg);
    justify-self: center;
  }

  .timeline::before,
  .decoder-plus {
    display: none;
  }

  .app-footer {
    grid-template-columns: repeat(3, 1fr);
    padding: 8px;
  }

  .nav-button {
    min-width: 0;
  }
}

/* Presentation readability floors. These overrides intentionally come last:
   the earlier compact layouts preserve geometry, while this layer prevents
   instructional copy, chart legends and evidence labels from becoming microtype. */
@media (min-width: 701px) and (min-height: 821px) {
  .workshop-graph .xtick text,
  .workshop-graph .ytick text,
  .workshop-graph .legendtext,
  .workshop-graph .sankey-node text,
  .workshop-graph .cbaxis text { font-size: 10px !important; }

  .integration-slide .mitigation-definition span,
  .integration-slide .resource-kicker,
  .integration-slide .sector-demand-chip span,
  .netzero-slide .netzero-target-table,
  .netzero-slide .netzero-target-table th { font-size: 10px; }

  .iam-definition-slide .iam-driver-card span,
  .iam-definition-slide .iam-exchange strong,
  .iam-definition-slide .iam-pathway-band span,
  .iam-definition-slide .iam-pathway-band b { font-size: 10px; }

  .ssp-quantitative-slide .ssp-challenge-summary span { font-size: 9.5px; }
  .ssp-quantitative-slide .ssp-challenge-summary strong { font-size: 11px; }
  .ssp-narrative-slide .ssp-story-section p,
  .ssp-narrative-slide .ssp-story-lca p { font-size: 10px; }
  .ssp-narrative-slide .ssp-story-section strong,
  .ssp-narrative-slide .ssp-story-lca strong { font-size: 9.5px; }
  .ssp-narrative-slide .ssp-indicator span { font-size: 8.5px; }
  .ssp-narrative-slide .ssp-indicator strong { font-size: 10px; }
  .ssp-narrative-slide .ssp-challenge-badge span,
  .ssp-narrative-slide .ssp-story-signals span { font-size: 8.5px; }
  .ssp-narrative-slide .ssp-challenge-badge strong { font-size: 10.5px; }
  .ssp-pair-slide .ssp-pair-contrast-band span { font-size: 9.5px; }

  .forcing-families-slide .forcing-definition-note strong,
  .forcing-families-slide .forcing-reading-card strong { font-size: 10px; }
  .forcing-families-slide .forcing-definition-note span,
  .forcing-families-slide .forcing-reading-card span,
  .forcing-families-slide .forcing-trajectory-heading p,
  .forcing-families-slide .forcing-trajectory-caveat { font-size: 9.5px; }
  .forcing-families-slide .forcing-chart-label span { font-size: 9px; }
  .forcing-emissions-slide .emission-family-chip b { font-size: 9.5px; }
  .forcing-emissions-slide .emission-family-chip span { font-size: 8.5px; }

  .scenario-combination-slide .scenario-matrix-table tbody th span,
  .scenario-combination-slide .matrix-direction-label { font-size: 9px; }
  .scenario-combination-slide .scenario-matrix-legend > div,
  .scenario-combination-slide .scenario-matrix-reading { font-size: 9.5px; }

  .energy-example-slide .energy-compare-heading > span,
  .energy-example-slide .energy-stage-route,
  .energy-example-slide .total-energy-indicators span,
  .energy-example-slide .energy-service-context span,
  .energy-example-slide .energy-change-strip span,
  .energy-example-slide .energy-change-strip b { font-size: 8.5px; }
  .energy-example-slide .energy-compare-heading > b,
  .energy-example-slide .energy-stage-route b,
  .energy-example-slide .total-energy-indicators strong,
  .energy-example-slide .energy-service-context strong,
  .energy-example-slide .energy-change-strip strong { font-size: 10px; }

  .end-use-transformation-slide .end-use-stat-grid strong,
  .iam-mapping-slide .mapping-count-stat-grid strong { font-size: 11px; }
  .end-use-transformation-slide .end-use-stat-grid p,
  .iam-mapping-slide .mapping-count-stat-grid p { font-size: 10px; line-height: 1.16; }

  .limitations-slide .limitation-model-label,
  .limitations-slide .limitation-model-chip { font-size: 9px; }
  .limitations-source-row { gap: 8px; margin-top: 3px; }
  .limitations-source-row .recommended-reading-link { font-size: 10px; }

  .traceability-slide .traceability-coordinate strong,
  .traceability-slide .traceability-evidence-card > strong,
  .traceability-slide .traceability-inference strong { font-size: 9px; }
  .traceability-slide .traceability-coordinate span,
  .traceability-slide .traceability-evidence-card small,
  .traceability-slide .traceability-share-bars span,
  .traceability-slide .traceability-share-bars b,
  .traceability-slide .traceability-rule-chips span,
  .traceability-slide .traceability-lcia-values span { font-size: 8.5px; }
  .traceability-slide .traceability-evidence-card p,
  .traceability-slide .traceability-inference p { font-size: 10px; }

  .applied-geography-slide .geography-map-heading span,
  .applied-geography-slide .geography-map-card > p { font-size: 9px; }
  .applied-geography-slide .geography-map-heading > b,
  .applied-geography-slide .geography-step-copy > strong,
  .applied-geography-slide .geography-non-transform-strip > strong,
  .applied-geography-slide .geography-non-transform-strip > span { font-size: 9px; }
  .applied-geography-slide .geography-step-copy p { font-size: 10px; }

  .coverage-slide .coverage-flow-step span,
  .coverage-slide .coverage-sector-heading span,
  .coverage-slide .coverage-sector-path span,
  .coverage-slide .coverage-sector-path i,
  .coverage-slide .coverage-sector-effect,
  .coverage-slide .coverage-sector-outside span,
  .coverage-slide .coverage-status,
  .coverage-slide .coverage-boundary strong,
  .coverage-slide .coverage-boundary span { font-size: 8.5px; }
  .coverage-slide .coverage-sector-path b,
  .coverage-slide .coverage-sector-outside b { font-size: 10px; }

  .lcia-evidence-slide .evidence-layer-label,
  .process-system-slide .analysis-rail-step small,
  .process-system-slide .analysis-gate small { font-size: 9.5px; }
  .process-system-slide .analysis-gate b { font-size: 11px; }

  .result-tracer-slide .capstone-controls .control-label { font-size: 9px; }
  .result-tracer-slide .capstone-controls .control-chip { font-size: 9px; }
  .result-tracer-slide .tracer-step-heading strong { font-size: 10px; }
  .result-tracer-slide .tracer-step-heading small { font-size: 8px; }
  .result-tracer-slide .tracer-mapping-stage span,
  .result-tracer-slide .tracer-mapping-status { font-size: 8px; }
  .result-tracer-slide .tracer-mapping-stage b { font-size: 9px; }
  .result-tracer-slide .tracer-result-heading small,
  .result-tracer-slide .tracer-score-unit,
  .result-tracer-slide .tracer-result-chips span,
  .result-tracer-slide .tracer-result-receipt strong,
  .result-tracer-slide .tracer-result-receipt span { font-size: 8.5px; }

  .steel-causal-slide .steel-causal-metrics .energy-metric-label { font-size: 9.5px; }
  .steel-causal-slide .steel-causal-metrics p { font-size: 9px; line-height: 1.18; }

  .pv-resolution-slide .pv-resolution-warning p,
  .pv-resolution-slide .pv-completion-step small,
  .pv-resolution-slide .pv-assumption-chips span { font-size: 9px; }
  .pv-resolution-slide .pv-completion-step b,
  .pv-resolution-slide .pv-assumption-chips strong { font-size: 10px; }

  .pv-uncertainty-slide .pv-uncertainty-lessons .concept-card h3 { font-size: 11px; }
  .pv-uncertainty-slide .pv-uncertainty-lessons .concept-card p { font-size: 9.5px; }

  .system-tradeoff-slide .tradeoff-read-card strong,
  .system-tradeoff-slide .tradeoff-finding-card strong { font-size: 10px; }
  .system-tradeoff-slide .tradeoff-read-card p,
  .system-tradeoff-slide .tradeoff-finding-card p { font-size: 9px; line-height: 1.18; }

  .audit-chain-slide .audit-card strong { font-size: 14px; }
  .audit-chain-slide .audit-card p { font-size: 11.5px; line-height: 1.24; }
  .audit-chain-slide .audit-card small { font-size: 10.5px; line-height: 1.2; }
  .audit-chain-slide .audit-report-template > strong { font-size: 13px; }
  .audit-chain-slide .audit-report-template p,
  .audit-chain-slide .audit-receipt-chips span { font-size: 10px; }

  .case-library-slide .case-library-heading h2 { font-size: 18px; }
  .case-library-slide .case-library-heading strong,
  .case-library-slide .case-library-levers span,
  .case-library-slide .case-library-status { font-size: 10.5px; }
  .case-library-slide .case-library-levers b,
  .case-library-slide .case-library-card > p { font-size: 12px; line-height: 1.24; }
  .case-library-slide .case-library-scope strong,
  .case-library-slide .case-library-scope span { font-size: 10.5px; }

  .forcing-families-slide .source-note,
  .energy-example-slide .source-note,
  .end-use-transformation-slide .source-note,
  .iam-mapping-slide .source-note,
  .limitations-slide .source-note,
  .traceability-slide .source-note,
  .applied-geography-slide .source-note,
  .coverage-slide .source-note,
  .lcia-evidence-slide .source-note,
  .result-tracer-slide .source-note,
  .steel-causal-slide .source-note,
  .pv-resolution-slide .source-note,
  .pv-uncertainty-slide .source-note,
  .system-tradeoff-slide .source-note,
  .audit-chain-slide .source-note,
  .case-library-slide .source-note { font-size: 9px; line-height: 1.15; }
}

@media (min-width: 701px) and (max-height: 820px) {
  .cdr-summary-slide .cdr-summary-graph { flex-basis: 265px; min-height: 265px; }
  .workshop-graph .xtick text,
  .workshop-graph .ytick text,
  .workshop-graph .legendtext,
  .workshop-graph .sankey-node text,
  .workshop-graph .cbaxis text { font-size: 8px !important; }

  .iam-definition-slide .iam-driver-card span,
  .iam-definition-slide .iam-exchange strong,
  .iam-definition-slide .iam-pathway-band span,
  .iam-definition-slide .iam-pathway-band b { font-size: 7.5px; }

  .ssp-quantitative-slide .ssp-challenge-summary span { font-size: 7px; }
  .ssp-narrative-slide .ssp-story-section p,
  .ssp-narrative-slide .ssp-story-lca p { font-size: 7.3px; }
  .ssp-narrative-slide .ssp-story-section strong,
  .ssp-narrative-slide .ssp-story-lca strong { font-size: 7.5px; }
  .ssp-narrative-slide .ssp-indicator span,
  .ssp-narrative-slide .ssp-challenge-badge span,
  .ssp-narrative-slide .ssp-story-signals span { font-size: 6.5px; }
  .ssp-narrative-slide .ssp-indicator strong,
  .ssp-narrative-slide .ssp-challenge-badge strong { font-size: 8.2px; }

  .forcing-families-slide .forcing-definition-note strong,
  .forcing-families-slide .forcing-reading-card strong,
  .forcing-emissions-slide .emission-family-chip b { font-size: 7.5px; }
  .forcing-families-slide .forcing-definition-note span,
  .forcing-families-slide .forcing-reading-card span,
  .forcing-families-slide .forcing-trajectory-heading p,
  .forcing-families-slide .forcing-trajectory-caveat,
  .forcing-emissions-slide .emission-family-chip span { font-size: 6.5px; }

  .scenario-combination-slide .scenario-matrix-table tbody th span,
  .scenario-combination-slide .matrix-direction-label,
  .scenario-combination-slide .scenario-matrix-legend > div { font-size: 7px; }
  .scenario-combination-slide .scenario-matrix-reading { font-size: 7.5px; }

  .energy-example-slide .energy-compare-heading > span,
  .energy-example-slide .energy-stage-route,
  .energy-example-slide .total-energy-indicators span,
  .energy-example-slide .energy-service-context span,
  .energy-example-slide .energy-change-strip span,
  .energy-example-slide .energy-change-strip b { font-size: 6.5px; }
  .energy-example-slide .energy-compare-heading > b,
  .energy-example-slide .energy-stage-route b,
  .energy-example-slide .total-energy-indicators strong,
  .energy-example-slide .energy-service-context strong,
  .energy-example-slide .energy-change-strip strong { font-size: 7.8px; }

  .end-use-transformation-slide .end-use-stat-grid strong,
  .iam-mapping-slide .mapping-count-stat-grid strong { font-size: 8px; }
  .end-use-transformation-slide .end-use-stat-grid p,
  .iam-mapping-slide .mapping-count-stat-grid p { font-size: 7.3px; line-height: 1.12; }
  .limitations-slide .limitation-model-label,
  .limitations-slide .limitation-model-chip { font-size: 7.5px; }

  .traceability-slide .traceability-coordinate strong,
  .traceability-slide .traceability-evidence-card > strong,
  .traceability-slide .traceability-inference strong { font-size: 7.5px; }
  .traceability-slide .traceability-coordinate span,
  .traceability-slide .traceability-evidence-card small,
  .traceability-slide .traceability-share-bars span,
  .traceability-slide .traceability-share-bars b,
  .traceability-slide .traceability-rule-chips span,
  .traceability-slide .traceability-lcia-values span { font-size: 7px; }
  .traceability-slide .traceability-evidence-card p,
  .traceability-slide .traceability-inference p { font-size: 8px; }

  .applied-geography-slide .geography-map-heading span,
  .applied-geography-slide .geography-map-heading > b,
  .applied-geography-slide .geography-map-card > p,
  .applied-geography-slide .geography-step-copy > strong,
  .applied-geography-slide .geography-non-transform-strip > strong,
  .applied-geography-slide .geography-non-transform-strip > span { font-size: 7px; }
  .applied-geography-slide .geography-step-copy p { font-size: 8px; }

  .coverage-slide .coverage-flow-step span,
  .coverage-slide .coverage-sector-heading span,
  .coverage-slide .coverage-sector-path span,
  .coverage-slide .coverage-sector-path i,
  .coverage-slide .coverage-sector-effect,
  .coverage-slide .coverage-sector-outside span,
  .coverage-slide .coverage-status,
  .coverage-slide .coverage-boundary strong,
  .coverage-slide .coverage-boundary span { font-size: 7px; }
  .coverage-slide .coverage-sector-path b,
  .coverage-slide .coverage-sector-outside b { font-size: 8px; }

  .lcia-evidence-slide .evidence-layer-label,
  .process-system-slide .analysis-rail-step small,
  .process-system-slide .analysis-gate small { font-size: 7.5px; }
  .process-system-slide .analysis-gate b { font-size: 8.5px; }

  .result-tracer-slide .capstone-controls .control-label,
  .result-tracer-slide .capstone-controls .control-chip { font-size: 7.5px; }
  .result-tracer-slide .tracer-step-heading strong { font-size: 8px; }
  .result-tracer-slide .tracer-step-heading small,
  .result-tracer-slide .tracer-mapping-stage span,
  .result-tracer-slide .tracer-mapping-status { font-size: 6.5px; }
  .result-tracer-slide .tracer-mapping-stage b { font-size: 7.3px; }
  .result-tracer-slide .tracer-result-heading small,
  .result-tracer-slide .tracer-score-unit,
  .result-tracer-slide .tracer-result-chips span,
  .result-tracer-slide .tracer-result-receipt strong,
  .result-tracer-slide .tracer-result-receipt span { font-size: 6.5px; }

  .steel-causal-slide .steel-causal-metrics .energy-metric-label { font-size: 7.5px; }
  .steel-causal-slide .steel-causal-metrics p { font-size: 7px; }
  .pv-resolution-slide .pv-resolution-warning p,
  .pv-resolution-slide .pv-completion-step small,
  .pv-resolution-slide .pv-assumption-chips span { font-size: 7px; }
  .pv-resolution-slide .pv-completion-step b,
  .pv-resolution-slide .pv-assumption-chips strong { font-size: 8px; }
  .pv-uncertainty-slide .pv-uncertainty-lessons .concept-card h3 { font-size: 8.5px; }
  .pv-uncertainty-slide .pv-uncertainty-lessons .concept-card p { font-size: 7.3px; }
  .system-tradeoff-slide .tradeoff-read-card strong,
  .system-tradeoff-slide .tradeoff-finding-card strong { font-size: 8px; }
  .system-tradeoff-slide .tradeoff-read-card p,
  .system-tradeoff-slide .tradeoff-finding-card p { font-size: 7px; }

  .audit-chain-slide .audit-card strong { font-size: 11px; }
  .audit-chain-slide .audit-card p { font-size: 9.5px; line-height: 1.2; }
  .audit-chain-slide .audit-card small { font-size: 8.5px; line-height: 1.18; }
  .audit-chain-slide .audit-report-template > strong { font-size: 10px; }
  .audit-chain-slide .audit-report-template p,
  .audit-chain-slide .audit-receipt-chips span { font-size: 8.5px; }

  .case-library-slide .case-library-heading h2 { font-size: 13.5px; }
  .case-library-slide .case-library-heading strong,
  .case-library-slide .case-library-levers span,
  .case-library-slide .case-library-status { font-size: 8.5px; }
  .case-library-slide .case-library-levers b,
  .case-library-slide .case-library-card > p { font-size: 9.5px; line-height: 1.2; }
  .case-library-slide .case-library-scope strong,
  .case-library-slide .case-library-scope span { font-size: 8.5px; }

  .forcing-families-slide .source-note,
  .energy-example-slide .source-note,
  .end-use-transformation-slide .source-note,
  .iam-mapping-slide .source-note,
  .limitations-slide .source-note,
  .traceability-slide .source-note,
  .applied-geography-slide .source-note,
  .coverage-slide .source-note,
  .lcia-evidence-slide .source-note,
  .result-tracer-slide .source-note,
  .steel-causal-slide .source-note,
  .pv-resolution-slide .source-note,
  .pv-uncertainty-slide .source-note,
  .system-tradeoff-slide .source-note,
  .audit-chain-slide .source-note,
  .case-library-slide .source-note { font-size: 7px; line-height: 1.12; }
}

/* Interactive cross-IAM geography comparison */
.iam-map-slide,
.resources-slide { display: flex; flex-direction: column; }
.iam-map-controls { display: flex; gap: 7px; align-items: center; margin-bottom: 8px; }
.iam-map-control-label { margin-right: 2px; color: var(--muted); font-size: 10px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.iam-map-button { padding: 7px 12px; border: 1px solid #b7c7cf; border-radius: 999px; color: var(--psi-deep); background: #fff; font-size: 10px; font-weight: 900; cursor: pointer; }
.iam-map-button:hover { border-color: var(--teal); }
.iam-map-button.active { border-color: var(--psi-deep); color: #fff; background: var(--psi-deep); }
.iam-map-layout { display: grid; grid-template-columns: minmax(0, 3.25fr) minmax(245px, .95fr); gap: 10px; flex: 1; min-height: 390px; }
.iam-world-map-graph { min-height: 390px; border: 1px solid var(--line); border-radius: 10px; background: #f7fafb; overflow: hidden; }
.iam-map-side { display: grid; grid-template-rows: auto auto minmax(0, 1fr); gap: 8px; min-width: 0; }
.iam-map-selected,
.iam-map-reading { padding: 11px 12px; border: 1px solid var(--line); border-radius: 9px; background: #f7f9fa; }
.iam-map-selected { border-top: 5px solid var(--teal); }
.iam-map-selected > span,
.iam-map-reading > strong { color: var(--teal); font-size: 9px; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.iam-map-selected h2 { margin: 3px 0; color: var(--psi-deep); font-size: 23px; }
.iam-map-selected p,
.iam-map-reading p { margin: 3px 0 0; color: var(--muted); font-size: 10px; line-height: 1.2; }
.iam-map-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.iam-map-metrics > div { display: grid; align-content: center; min-width: 0; padding: 8px; border-radius: 8px; background: #eaf3f6; }
.iam-map-metrics strong { color: var(--psi-deep); font-size: 17px; line-height: 1; }
.iam-map-metrics span { margin-top: 3px; color: var(--muted); font-size: 8.5px; line-height: 1.12; }
.iam-map-region-chips { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 7px; }
.iam-map-region-chips span { padding: 4px 6px; border-radius: 999px; color: var(--psi-deep); background: #eaf3f6; font-size: 8px; font-weight: 800; }

/* Removal-dependence evidence cards */
.cdr-reading-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cdr-reading-card { min-width: 0; padding: 9px 11px; border: 1px solid var(--line); border-top: 5px solid var(--teal); border-radius: 9px; background: #f7f9fa; }
.cdr-reading-card > span { color: var(--teal); font-size: 8.5px; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.cdr-reading-card > strong { display: block; margin-top: 2px; color: var(--psi-deep); font-size: 11px; }
.cdr-reading-card h2 { margin: 3px 0 0; color: var(--psi-deep); font-size: 20px; }
.cdr-reading-card p { margin: 3px 0 0; color: var(--muted); font-size: 9.5px; line-height: 1.18; }
.cdr-reading-high { border-top-color: #7656A8; }
.cdr-reading-low { border-top-color: #008A82; }
.cdr-reading-missing { border-top-color: #C44E52; }

/* Concrete analytical-boundary decision */
.boundary-evidence-row { display: grid; grid-template-columns: minmax(0, 1fr) 110px minmax(0, 1fr); gap: 9px; align-items: stretch; }
.boundary-evidence-card { padding: 11px 13px; border: 1px solid var(--line); border-top: 5px solid var(--teal); border-radius: 9px; background: #f7f9fa; }
.boundary-activity-card { border-top-color: var(--amber); }
.boundary-evidence-card > span { color: var(--teal); font-size: 9px; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.boundary-evidence-card h2 { margin: 3px 0; color: var(--psi-deep); font-size: 23px; }
.boundary-evidence-card strong { color: var(--psi-deep); font-size: 10px; }
.boundary-evidence-card p { margin: 4px 0 0; color: var(--muted); font-size: 10px; }
.boundary-not-equal { display: grid; place-content: center; text-align: center; }
.boundary-not-equal strong { color: var(--red); font-size: 30px; line-height: 1; }
.boundary-not-equal span { margin-top: 4px; color: var(--muted); font-size: 9px; font-weight: 800; }
.boundary-gate-table { display: grid; gap: 4px; margin-top: 8px; padding: 7px; border: 1px solid var(--line); border-radius: 9px; background: #fff; }
.boundary-gate-heading,
.boundary-gate-row { display: grid; grid-template-columns: 1.05fr 1.25fr 1.25fr .72fr; gap: 7px; align-items: center; }
.boundary-gate-heading { padding: 0 8px 4px; border-bottom: 2px solid var(--psi-deep); }
.boundary-gate-heading strong { color: var(--psi-deep); font-size: 10px; text-transform: uppercase; }
.boundary-gate-heading span { color: var(--muted); font-size: 8.5px; font-weight: 800; }
.boundary-gate-row { padding: 6px 8px; border-radius: 6px; background: #f7f9fa; }
.boundary-gate-row > strong { color: var(--psi-deep); font-size: 10px; }
.boundary-gate-row > span { color: var(--muted); font-size: 9.5px; }
.boundary-gate-status { justify-self: start; padding: 4px 7px; border-radius: 999px; font-size: 8.5px; white-space: nowrap; }
.boundary-match { color: #116A55; background: #E2F3ED; }
.boundary-mismatch { color: #8C3437; background: #F8E7E8; }
.boundary-conditional { color: #76520A; background: #FFF2CC; }
.boundary-outcome-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 8px; }
.boundary-outcome { padding: 8px 10px; border-left: 5px solid var(--teal); border-radius: 7px; background: #edf7f5; }
.boundary-system-outcome { border-left-color: var(--amber); background: #fdf6e5; }
.boundary-outcome strong { color: var(--psi-deep); font-size: 10px; text-transform: uppercase; }
.boundary-outcome p { margin: 3px 0 0; color: var(--muted); font-size: 9.5px; line-height: 1.18; }

/* Case-library decision matrix */
.case-library-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: minmax(0, 1fr); }
.case-library-group { display: grid; grid-template-rows: auto repeat(2, minmax(0, 1fr)); gap: 7px; min-width: 0; padding: 9px; border: 1px solid var(--line); border-top: 6px solid var(--psi-blue); border-radius: 10px; background: #f7f9fa; }
.case-library-group:nth-child(2) { border-top-color: var(--teal); }
.case-library-group:nth-child(3) { border-top-color: var(--amber); }
.case-library-group-heading h2 { margin: 0; color: var(--psi-deep); font-size: 16px; }
.case-library-group-heading p { margin: 3px 0 0; color: var(--muted); font-size: 9px; line-height: 1.15; }
.case-library-case { padding: 8px; border-radius: 8px; background: #fff; }
.case-library-case-heading { display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 7px; align-items: center; }
.case-library-case-heading h3 { margin: 0; color: var(--psi-deep); font-size: 13px; }
.case-library-case > p { margin: 6px 0; color: var(--muted); font-size: 9.5px; line-height: 1.18; }
.case-library-case-details { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 3px 6px; padding-top: 6px; border-top: 1px solid var(--line); }
.case-library-case-details span { color: var(--teal); font-size: 7.5px; font-weight: 900; text-transform: uppercase; }
.case-library-case-details b { color: var(--psi-deep); font-size: 8.5px; line-height: 1.12; }
.case-library-scope { grid-template-columns: auto repeat(9, auto); justify-content: center; }
.case-library-scope > strong { color: var(--amber); font-size: 9px; text-transform: uppercase; }
.case-library-scope > span { color: #fff; font-size: 8.5px; font-weight: 800; }

/* Premise tooling epilogue */
.premise-library-slide,
.premise-history-slide,
.premise-workflow-slide,
.premise-ecosystem-slide,
.premise-analysis-slide { display: flex; flex-direction: column; }

.premise-library-flow { display: grid; grid-template-columns: minmax(0, 1.15fr) 28px minmax(230px, .82fr) 28px minmax(0, 1fr); gap: 7px; align-items: stretch; flex: 1; min-height: 210px; }
.premise-library-inputs,
.premise-library-outputs { display: grid; gap: 6px; min-width: 0; }
.premise-library-inputs { grid-template-rows: repeat(3, minmax(0, 1fr)); }
.premise-library-outputs { grid-template-rows: repeat(2, minmax(0, 1fr)); }
.premise-library-input,
.premise-library-output { display: grid; align-content: center; min-width: 0; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; background: #f7f9fa; }
.premise-library-input { border-left: 5px solid var(--psi-blue); }
.premise-library-output { border-right: 5px solid var(--teal); }
.premise-library-input > span { color: var(--teal); font-size: 8px; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.premise-library-input strong,
.premise-library-output strong { color: var(--psi-deep); font-size: 11px; }
.premise-library-input p,
.premise-library-output p { margin: 3px 0 0; color: var(--muted); font-size: 9px; line-height: 1.16; }
.premise-library-arrow { display: grid; place-content: center; color: var(--amber); font-size: 23px; font-weight: 900; }
.premise-library-hub { display: grid; align-content: center; justify-items: center; padding: 12px; border: 2px solid var(--teal); border-radius: 16px; background: linear-gradient(145deg, #edf8f6, #e6f0f5); text-align: center; box-shadow: 0 5px 14px rgba(0,58,80,.08); }
.premise-library-hub > span { color: var(--teal); font-size: 8.5px; font-weight: 900; letter-spacing: .08em; }
.premise-library-hub h2 { margin: 3px 0; color: var(--psi-deep); font-size: 26px; }
.premise-library-hub p { margin: 2px 0 8px; color: var(--muted); font-size: 9.5px; line-height: 1.18; }
.premise-library-api { display: flex; flex-wrap: wrap; gap: 4px; justify-content: center; }
.premise-library-api code { padding: 4px 6px; border-radius: 5px; color: #fff; background: var(--psi-deep); font-size: 8px; }
.premise-library-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; margin-top: 7px; }
.premise-library-stats > div { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 7px; align-items: center; min-width: 0; padding: 7px 9px; border-radius: 7px; background: #eaf3f6; }
.premise-library-stats strong { color: var(--psi-deep); font-size: 17px; }
.premise-library-stats span { color: var(--muted); font-size: 8.5px; line-height: 1.12; }
.premise-library-boundary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; margin-top: 7px; }
.premise-library-does { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px; align-items: center; padding: 7px 9px; border-left: 5px solid var(--teal); border-radius: 7px; background: #edf7f5; }
.premise-library-does-not { border-left-color: var(--red); background: #f9eeee; }
.premise-library-does strong { color: var(--psi-deep); font-size: 9px; text-transform: uppercase; }
.premise-library-does span { color: var(--muted); font-size: 9px; line-height: 1.15; }

.premise-history-timeline { position: relative; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; flex: 1; min-height: 275px; padding-top: 20px; }
.premise-history-timeline::before { position: absolute; top: 52px; right: 4%; left: 4%; height: 4px; border-radius: 999px; background: linear-gradient(90deg, var(--psi-blue), var(--teal), var(--amber)); content: ""; }
.premise-history-card { position: relative; display: grid; align-content: start; min-width: 0; margin-top: 34px; padding: 34px 10px 10px; border: 1px solid var(--line); border-top: 5px solid var(--psi-blue); border-radius: 10px; background: #f7f9fa; }
.premise-history-card:nth-child(2),
.premise-history-card:nth-child(4) { border-top-color: var(--teal); }
.premise-history-card:nth-child(5) { border-top-color: var(--amber); }
.premise-history-card::before { position: absolute; top: -22px; left: 50%; width: 14px; height: 14px; border: 4px solid #fff; border-radius: 50%; background: var(--teal); box-shadow: 0 0 0 2px var(--teal); content: ""; transform: translateX(-50%); }
.premise-history-tag { position: absolute; top: 8px; left: 10px; color: var(--teal); font-size: 7.5px; font-weight: 900; letter-spacing: .06em; }
.premise-history-year { color: var(--psi-deep); font-size: 21px; }
.premise-history-card h3 { margin: 4px 0; color: var(--psi-deep); font-size: 12px; }
.premise-history-card p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.18; }
.premise-history-reading { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; margin-top: 8px; }
.premise-history-reading > div { padding: 8px 9px; border-left: 5px solid var(--teal); border-radius: 7px; background: #edf7f5; }
.premise-history-reading strong { display: block; color: var(--psi-deep); font-size: 9px; text-transform: uppercase; }
.premise-history-reading span { display: block; margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.16; }

.premise-workflow-inputs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
.premise-workflow-input { display: grid; grid-template-columns: 28px auto minmax(0, 1fr); gap: 7px; align-items: center; min-width: 0; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; background: #f7f9fa; }
.premise-workflow-input > span { display: grid; width: 26px; height: 26px; place-content: center; border-radius: 50%; color: #fff; background: var(--psi-blue); font-size: 10px; font-weight: 900; }
.premise-workflow-input strong { color: var(--psi-deep); font-size: 10px; }
.premise-workflow-input p { margin: 0; color: var(--muted); font-size: 8.5px; line-height: 1.14; }
.premise-workflow-steps { display: grid; grid-template-columns: minmax(0, 1fr) 19px minmax(0, 1fr) 19px minmax(0, 1fr) 19px minmax(0, 1fr) 19px minmax(0, 1fr); gap: 4px; align-items: stretch; flex: 1; min-height: 150px; margin-top: 8px; }
.premise-workflow-step { display: grid; align-content: center; justify-items: center; min-width: 0; padding: 9px; border: 1px solid var(--line); border-top: 5px solid var(--teal); border-radius: 9px; background: #fff; text-align: center; }
.premise-workflow-step > span { display: grid; width: 27px; height: 27px; margin-bottom: 5px; place-content: center; border-radius: 50%; color: #fff; background: var(--psi-deep); font-size: 10px; font-weight: 900; }
.premise-workflow-step strong { color: var(--psi-deep); font-size: 10px; line-height: 1.12; }
.premise-workflow-step p { margin: 5px 0 0; color: var(--muted); font-size: 8.5px; line-height: 1.14; }
.premise-workflow-arrow { display: grid; place-content: center; color: var(--amber); font-size: 18px; font-style: normal; font-weight: 900; }
.premise-workflow-bottom { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 8px; margin-top: 8px; }
.premise-code-card { display: grid; align-content: center; min-width: 0; margin: 0; padding: 10px 12px; overflow: hidden; border-radius: 8px; color: #e9f7f5; background: var(--psi-deep); font-size: 9px; line-height: 1.45; }
.premise-workflow-contract { display: grid; gap: 4px; }
.premise-workflow-contract > div { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 7px; align-items: center; padding: 5px 7px; border-radius: 6px; background: #eaf3f6; }
.premise-workflow-contract strong { color: var(--teal); font-size: 8.5px; text-transform: uppercase; }
.premise-workflow-contract span { color: var(--muted); font-size: 8.5px; line-height: 1.12; }

.premise-ecosystem-flow { display: grid; grid-template-columns: minmax(0, 1fr) 24px minmax(0, 1fr) 24px minmax(0, 1fr) 24px minmax(0, 1fr); gap: 5px; align-items: stretch; flex: 1; min-height: 190px; }
.premise-ecosystem-stage { display: grid; align-content: center; justify-items: start; min-width: 0; padding: 11px; border: 1px solid var(--line); border-top: 6px solid var(--psi-blue); border-radius: 10px; background: #f7f9fa; }
.premise-ecosystem-stage:nth-of-type(2) { border-top-color: var(--teal); }
.premise-ecosystem-stage:nth-of-type(3) { border-top-color: var(--amber); }
.premise-ecosystem-stage > span { display: grid; width: 26px; height: 26px; place-content: center; border-radius: 50%; color: #fff; background: var(--psi-deep); font-size: 10px; font-weight: 900; }
.premise-ecosystem-stage h2 { margin: 7px 0 2px; color: var(--psi-deep); font-size: 16px; }
.premise-ecosystem-stage strong { color: var(--teal); font-size: 8.5px; text-transform: uppercase; }
.premise-ecosystem-stage p { margin: 5px 0 0; color: var(--muted); font-size: 9px; line-height: 1.17; }
.premise-ecosystem-arrow { display: grid; place-content: center; color: var(--amber); font-size: 20px; font-style: normal; font-weight: 900; }
.premise-ecosystem-destinations { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; margin-top: 8px; }
.premise-ecosystem-destination { display: grid; grid-template-columns: 25px minmax(0, 1fr); gap: 7px; min-width: 0; padding: 8px; border-radius: 8px; background: #eaf3f6; }
.premise-ecosystem-destination-number { display: grid; width: 24px; height: 24px; place-content: center; border-radius: 50%; color: #fff; background: var(--teal); font-size: 9px; font-weight: 900; }
.premise-ecosystem-destination strong { display: block; color: var(--psi-deep); font-size: 10px; }
.premise-ecosystem-destination small { display: block; margin-top: 2px; color: var(--teal); font-size: 8px; font-weight: 900; }
.premise-ecosystem-destination p { margin: 4px 0 0; color: var(--muted); font-size: 8.5px; line-height: 1.14; }
.premise-superstructure-note { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 9px; align-items: center; margin-top: 8px; padding: 8px 10px; border-left: 5px solid var(--amber); border-radius: 8px; background: #fff7df; }
.premise-superstructure-note strong { color: var(--psi-deep); font-size: 9px; text-transform: uppercase; }
.premise-superstructure-note span { color: var(--muted); font-size: 9px; line-height: 1.15; }

.premise-analysis-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; flex: 1; min-height: 250px; }
.premise-analysis-mode { display: grid; align-content: start; min-width: 0; padding: 11px; border: 1px solid var(--line); border-top: 6px solid var(--psi-blue); border-radius: 10px; background: #f7f9fa; }
.premise-analysis-mode:nth-child(2) { border-top-color: var(--teal); }
.premise-analysis-mode:nth-child(3) { border-top-color: var(--amber); }
.premise-analysis-heading { display: grid; grid-template-columns: 31px minmax(0, 1fr); gap: 8px; align-items: center; }
.premise-analysis-heading span { display: grid; width: 30px; height: 30px; place-content: center; border-radius: 50%; color: #fff; background: var(--psi-deep); font-size: 9px; font-weight: 900; }
.premise-analysis-heading h2 { margin: 0; color: var(--psi-deep); font-size: 16px; }
.premise-analysis-mode h3 { margin: 12px 0 8px; color: var(--psi-deep); font-size: 12px; line-height: 1.18; }
.premise-analysis-equation { display: grid; gap: 5px; padding: 9px; border-radius: 7px; background: #eaf3f6; }
.premise-analysis-equation strong { color: var(--teal); font-size: 9px; text-transform: uppercase; }
.premise-analysis-equation code { color: var(--psi-deep); font-size: 9px; font-weight: 800; }
.premise-analysis-mode > p { margin: 10px 0 0; color: var(--muted); font-size: 9.5px; line-height: 1.2; }
.premise-analysis-dimensions { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; justify-content: center; margin-top: 8px; padding: 7px; border-radius: 8px; background: var(--psi-deep); }
.premise-analysis-dimensions strong { margin-right: 4px; color: var(--amber); font-size: 8.5px; text-transform: uppercase; }
.premise-analysis-dimensions span { padding: 4px 7px; border-radius: 999px; color: #fff; background: rgba(255,255,255,.12); font-size: 8.5px; font-weight: 800; }
.premise-analysis-reading { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; margin-top: 8px; }
.premise-analysis-reading > div { padding: 7px 9px; border-left: 5px solid var(--teal); border-radius: 7px; background: #edf7f5; }
.premise-analysis-reading > div:last-child { border-left-color: var(--amber); background: #fff7df; }
.premise-analysis-reading strong { display: block; color: var(--psi-deep); font-size: 9px; text-transform: uppercase; }
.premise-analysis-reading span { display: block; margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.15; }

/* Final resources */
.resource-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; flex: 1; min-height: 390px; }
.resource-group { display: grid; grid-template-rows: auto; grid-auto-rows: minmax(0, 1fr); gap: 7px; min-width: 0; padding: 10px; border: 1px solid var(--line); border-top: 6px solid var(--psi-blue); border-radius: 10px; background: #f7f9fa; }
.resource-group:nth-child(2) { border-top-color: var(--teal); }
.resource-group:nth-child(3) { border-top-color: var(--amber); }
.resource-group-heading span { color: var(--teal); font-size: 8px; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.resource-group-heading h2 { margin: 2px 0 0; color: var(--psi-deep); font-size: 16px; }
.resource-link-card { display: grid; align-content: center; min-width: 0; padding: 8px 9px; border: 1px solid var(--line); border-radius: 8px; color: inherit; background: #fff; text-decoration: none; }
.resource-link-card:hover { border-color: var(--teal); box-shadow: 0 2px 8px rgba(0,58,80,.1); }
.resource-link-card > div { display: flex; gap: 8px; justify-content: space-between; }
.resource-link-card strong { color: var(--psi-deep); font-size: 10.5px; }
.resource-link-card > div span { color: var(--teal); font-weight: 900; }
.resource-link-card p { margin: 3px 0; color: var(--muted); font-size: 9px; line-height: 1.15; }
.resource-link-card small { display: block; overflow: hidden; color: var(--teal); font-size: 7.5px; line-height: 1.1; text-overflow: ellipsis; white-space: nowrap; }
.resource-citation-strip { display: grid; grid-template-columns: auto 1fr; gap: 9px; align-items: center; margin-top: 8px; padding: 8px 10px; border-left: 5px solid var(--amber); border-radius: 8px; background: #fff7df; }
.resource-citation-strip strong { color: var(--psi-deep); font-size: 9px; text-transform: uppercase; }
.resource-citation-strip span { color: var(--muted); font-size: 9.5px; }
.resources-slide .takeaway { margin-top: 10px; }

@media (min-width: 701px) and (min-height: 821px) {
  .cdr-summary-slide .cdr-summary-graph { flex: 1 1 350px; min-height: 350px; }
  .system-tradeoff-slide .tradeoff-read-card strong { font-size: 12px; }
  .system-tradeoff-slide .tradeoff-read-card p { font-size: 11px; line-height: 1.2; }
  .resources-slide .resource-grid { min-height: 370px; }
}

@media (min-width: 701px) and (max-height: 820px) {
  .iam-map-controls { gap: 5px; margin-bottom: 5px; }
  .iam-map-control-label,
  .iam-map-button { font-size: 8.5px; }
  .iam-map-button { padding: 5px 8px; }
  .iam-map-layout { grid-template-columns: minmax(0, 3.4fr) minmax(220px, .9fr); gap: 7px; min-height: 270px; }
  .iam-world-map-graph { min-height: 270px; }
  .iam-map-side { gap: 5px; }
  .iam-map-selected,
  .iam-map-reading { padding: 7px 8px; }
  .iam-map-selected > span,
  .iam-map-reading > strong,
  .iam-map-metrics span,
  .iam-map-region-chips span { font-size: 8.5px; }
  .iam-map-selected h2 { font-size: 18px; }
  .iam-map-selected p,
  .iam-map-reading p { font-size: 9px; line-height: 1.16; }
  .iam-map-metrics { gap: 4px; }
  .iam-map-metrics > div { padding: 6px; }
  .iam-map-metrics strong { font-size: 14px; }
  .iam-map-region-chips { gap: 3px; margin-top: 5px; }
  .iam-map-region-chips span { padding: 3px 5px; }

  .cdr-summary-slide .cdr-summary-graph { flex: 0 0 220px; height: 220px; min-height: 220px; }
  .cdr-reading-card { padding: 6px 8px; }
  .cdr-reading-card > span { font-size: 8.5px; }
  .cdr-reading-card > strong { font-size: 9px; }
  .cdr-reading-card h2 { font-size: 15px; }
  .cdr-reading-card p { font-size: 8.5px; line-height: 1.15; }

  .boundary-evidence-row { grid-template-columns: minmax(0, 1fr) 78px minmax(0, 1fr); gap: 6px; }
  .boundary-evidence-card { padding: 7px 9px; }
  .boundary-evidence-card > span,
  .boundary-evidence-card strong,
  .boundary-evidence-card p,
  .boundary-not-equal span { font-size: 8.5px; }
  .boundary-evidence-card h2 { font-size: 17px; }
  .boundary-not-equal strong { font-size: 24px; }
  .boundary-gate-table { gap: 3px; margin-top: 5px; padding: 5px; }
  .boundary-gate-heading,
  .boundary-gate-row { gap: 4px; }
  .boundary-gate-heading { padding: 0 6px 3px; }
  .boundary-gate-heading strong,
  .boundary-gate-heading span,
  .boundary-gate-row > strong,
  .boundary-gate-row > span,
  .boundary-gate-status { font-size: 8.5px; }
  .boundary-gate-row { padding: 4px 6px; }
  .boundary-outcome-grid { gap: 6px; margin-top: 5px; }
  .boundary-outcome { padding: 6px 8px; }
  .boundary-outcome strong,
  .boundary-outcome p { font-size: 8.5px; line-height: 1.14; }

  .case-library-grid { gap: 6px; min-height: 292px; }
  .case-library-group { gap: 5px; padding: 6px; border-top-width: 4px; }
  .case-library-group-heading h2 { font-size: 13px; }
  .case-library-group-heading p { font-size: 8.5px; }
  .case-library-case { padding: 6px; }
  .case-library-case-heading { grid-template-columns: 25px minmax(0, 1fr); gap: 5px; }
  .case-library-case-heading h3 { font-size: 11px; }
  .case-library-case > p { margin: 4px 0; font-size: 8.5px; line-height: 1.14; }
  .case-library-case-details { gap: 2px 4px; padding-top: 4px; }
  .case-library-case-details span,
  .case-library-case-details b { font-size: 8.5px; }
  .case-library-scope { gap: 4px; padding: 5px 7px; }
  .case-library-scope > strong,
  .case-library-scope > span { font-size: 8.5px; }

  .premise-library-flow { grid-template-columns: minmax(0, 1.15fr) 20px minmax(200px, .82fr) 20px minmax(0, 1fr); gap: 5px; min-height: 155px; }
  .premise-library-inputs,
  .premise-library-outputs { gap: 4px; }
  .premise-library-input,
  .premise-library-output { padding: 5px 7px; }
  .premise-library-input > span,
  .premise-library-input strong,
  .premise-library-output strong,
  .premise-library-input p,
  .premise-library-output p,
  .premise-library-hub > span,
  .premise-library-hub p,
  .premise-library-api code { font-size: 9.5px; line-height: 1.14; }
  .premise-library-hub { padding: 7px; border-radius: 11px; }
  .premise-library-hub h2 { font-size: 20px; }
  .premise-library-hub p { margin-bottom: 5px; }
  .premise-library-api code { padding: 3px 4px; }
  .premise-library-stats,
  .premise-library-boundary { gap: 4px; margin-top: 5px; }
  .premise-library-stats > div { gap: 5px; padding: 5px 6px; }
  .premise-library-stats strong { font-size: 14px; }
  .premise-library-stats span,
  .premise-library-does strong,
  .premise-library-does span { font-size: 9px; line-height: 1.14; }
  .premise-library-does { gap: 6px; padding: 5px 7px; }

  .premise-history-timeline { gap: 5px; min-height: 210px; padding-top: 12px; }
  .premise-history-timeline::before { top: 40px; }
  .premise-history-card { margin-top: 27px; padding: 28px 7px 7px; border-top-width: 4px; }
  .premise-history-card::before { top: -18px; width: 11px; height: 11px; }
  .premise-history-tag { top: 6px; left: 7px; font-size: 9px; }
  .premise-history-year { font-size: 18px; }
  .premise-history-card h3 { margin: 2px 0; font-size: 11px; }
  .premise-history-card p,
  .premise-history-reading strong,
  .premise-history-reading span { font-size: 9.2px; line-height: 1.16; }
  .premise-history-reading { gap: 5px; margin-top: 5px; }
  .premise-history-reading > div { padding: 5px 7px; }

  .premise-workflow-inputs { gap: 5px; }
  .premise-workflow-input { grid-template-columns: 24px auto minmax(0, 1fr); gap: 5px; padding: 5px 7px; }
  .premise-workflow-input > span { width: 22px; height: 22px; font-size: 8.5px; }
  .premise-workflow-input strong,
  .premise-workflow-input p { font-size: 9px; line-height: 1.13; }
  .premise-workflow-steps { grid-template-columns: minmax(0, 1fr) 14px minmax(0, 1fr) 14px minmax(0, 1fr) 14px minmax(0, 1fr) 14px minmax(0, 1fr); gap: 3px; min-height: 104px; margin-top: 5px; }
  .premise-workflow-step { padding: 5px; border-top-width: 4px; }
  .premise-workflow-step > span { width: 22px; height: 22px; margin-bottom: 3px; font-size: 8.5px; }
  .premise-workflow-step strong { font-size: 10px; line-height: 1.12; }
  .premise-workflow-step p { font-size: 9px; line-height: 1.12; }
  .premise-workflow-step p { margin-top: 3px; }
  .premise-workflow-arrow { font-size: 14px; }
  .premise-workflow-bottom { gap: 5px; margin-top: 5px; }
  .premise-code-card { padding: 6px 8px; font-size: 9px; line-height: 1.3; }
  .premise-workflow-contract { gap: 3px; }
  .premise-workflow-contract > div { gap: 5px; padding: 3px 5px; }
  .premise-workflow-contract strong,
  .premise-workflow-contract span { font-size: 9px; line-height: 1.12; }

  .premise-ecosystem-flow { grid-template-columns: minmax(0, 1fr) 17px minmax(0, 1fr) 17px minmax(0, 1fr) 17px minmax(0, 1fr); gap: 3px; min-height: 128px; }
  .premise-ecosystem-stage { padding: 7px; border-top-width: 4px; }
  .premise-ecosystem-stage > span { width: 22px; height: 22px; font-size: 8.5px; }
  .premise-ecosystem-stage h2 { margin: 4px 0 1px; font-size: 14px; }
  .premise-ecosystem-stage strong,
  .premise-ecosystem-stage p { font-size: 9.2px; line-height: 1.14; }
  .premise-ecosystem-stage p { margin-top: 3px; }
  .premise-ecosystem-arrow { font-size: 15px; }
  .premise-ecosystem-destinations { gap: 4px; margin-top: 5px; }
  .premise-ecosystem-destination { grid-template-columns: 21px minmax(0, 1fr); gap: 5px; padding: 5px; }
  .premise-ecosystem-destination-number { width: 20px; height: 20px; font-size: 8.5px; }
  .premise-ecosystem-destination strong,
  .premise-ecosystem-destination small,
  .premise-ecosystem-destination p { font-size: 9px; line-height: 1.12; }
  .premise-ecosystem-destination p { margin-top: 2px; }
  .premise-superstructure-note { gap: 6px; margin-top: 5px; padding: 5px 7px; }
  .premise-superstructure-note strong,
  .premise-superstructure-note span { font-size: 9px; line-height: 1.14; }

  .premise-analysis-grid { gap: 5px; min-height: 180px; }
  .premise-analysis-mode { padding: 7px; border-top-width: 4px; }
  .premise-analysis-heading { grid-template-columns: 25px minmax(0, 1fr); gap: 5px; }
  .premise-analysis-heading span { width: 24px; height: 24px; font-size: 8.5px; }
  .premise-analysis-heading h2 { font-size: 14px; }
  .premise-analysis-mode h3 { margin: 7px 0 5px; font-size: 11px; }
  .premise-analysis-equation { gap: 3px; padding: 5px; }
  .premise-analysis-equation strong,
  .premise-analysis-equation code,
  .premise-analysis-mode > p { font-size: 9.5px; line-height: 1.15; }
  .premise-analysis-mode > p { margin-top: 5px; }
  .premise-analysis-dimensions { gap: 3px; margin-top: 5px; padding: 4px; }
  .premise-analysis-dimensions strong,
  .premise-analysis-dimensions span { font-size: 8.5px; }
  .premise-analysis-dimensions span { padding: 3px 5px; }
  .premise-analysis-reading { gap: 4px; margin-top: 5px; }
  .premise-analysis-reading > div { padding: 5px 7px; }
  .premise-analysis-reading strong,
  .premise-analysis-reading span { font-size: 9.2px; line-height: 1.14; }

  .resource-grid { flex: 0 0 285px; gap: 5px; height: 285px; min-height: 285px; }
  .resource-group { gap: 2px; min-height: 0; padding: 4px; overflow: hidden; border-top-width: 4px; }
  .resource-group-heading span { font-size: 8.5px; }
  .resource-group-heading h2 { font-size: 13px; }
  .resource-link-card { min-height: 0; padding: 2px 5px; overflow: hidden; }
  .resource-link-card p { margin: 0; }
  .resource-link-card strong,
  .resource-link-card p,
  .resource-link-card small { font-size: 8.5px; line-height: 1.05; }
  .resource-link-card small { height: 12px; line-height: 12px; }
  .resource-citation-strip { margin-top: 5px; padding: 6px 8px; }
  .resource-citation-strip strong,
  .resource-citation-strip span { font-size: 8.5px; }

  .system-tradeoff-slide .tradeoff-read-card strong { font-size: 10.5px; }
  .system-tradeoff-slide .tradeoff-read-card p { font-size: 10px; line-height: 1.15; }
}

/* Second-pass projector audit: eliminate the remaining microtype. Plot labels,
   provenance and compact card copy receive explicit floors; layouts are then
   validated at both supported presenter sizes. */
@media (min-width: 701px) and (min-height: 821px) {
  .slide .takeaway-label { font-size: 10px; }
  .slide .source-note { font-size: 9.5px; line-height: 1.18; }

  .workshop-graph .legend2text,
  .workshop-graph .annotation-text,
  .workshop-graph .bartext,
  .workshop-graph .ytitle,
  .workshop-graph .xtitle { font-size: 10px !important; }

  .netzero-slide .netzero-target-heading span { font-size: 10.5px; }

  .iam-definition-slide .iam-mode-chip span,
  .iam-definition-slide .iam-mode-chip strong,
  .iam-definition-slide .iam-coupling-caption,
  .iam-definition-slide .iam-experiment-step p { font-size: 10.5px; line-height: 1.18; }

  .ssp-quantitative-slide .ssp-quant-card-heading span,
  .ssp-quantitative-slide .ssp-quant-method-band span,
  .ssp-quantitative-slide .ssp-challenge-summary span { font-size: 10px; line-height: 1.18; }
  .ssp-narrative-slide .ssp-challenge-badge span,
  .ssp-narrative-slide .ssp-story-signals span,
  .ssp-narrative-slide .ssp-indicator span { font-size: 10px; }
  .ssp-narrative-slide .ssp-story-section strong,
  .ssp-narrative-slide .ssp-story-lca strong,
  .ssp-pair-slide .ssp-pair-contrast-band span { font-size: 10.5px; }

  .forcing-families-slide .rcp-ladder-row span,
  .forcing-families-slide .forcing-chart-label span,
  .forcing-families-slide .emission-family-chip span,
  .forcing-families-slide .emission-family-chip b,
  .forcing-families-slide .forcing-definition-note span,
  .forcing-families-slide .forcing-reading-card span,
  .forcing-families-slide .forcing-trajectory-heading p,
  .forcing-families-slide .forcing-trajectory-caveat { font-size: 10px; line-height: 1.16; }

  .scenario-combination-slide .scenario-label-example span,
  .scenario-combination-slide .scenario-label-example strong,
  .scenario-combination-slide .scenario-label-example b,
  .scenario-combination-slide .scenario-label-caution span,
  .scenario-combination-slide .scenario-label-caution strong,
  .scenario-combination-slide .scenario-equation-part span,
  .scenario-combination-slide .scenario-matrix-table tbody th span,
  .scenario-combination-slide .matrix-direction-label,
  .scenario-combination-slide .scenario-matrix-legend > div,
  .scenario-combination-slide .scenario-matrix-reading { font-size: 10px; line-height: 1.18; }

  .energy-example-slide .energy-compare-heading > span,
  .energy-example-slide .energy-stage-route,
  .energy-example-slide .total-energy-indicators span,
  .energy-example-slide .energy-service-context span,
  .energy-example-slide .energy-change-strip span,
  .energy-example-slide .energy-change-strip b { font-size: 10px; line-height: 1.15; }

  .end-use-transformation-slide .end-use-stat-grid p,
  .iam-mapping-slide .mapping-count-stat-grid p { font-size: 10.5px; }

  .limitations-slide .limitation-card p { font-size: 10.5px; line-height: 1.22; }
  .limitations-slide .limitation-model-label,
  .limitations-slide .limitation-model-chip { font-size: 10px; }

  .traceability-slide .traceability-coordinate span,
  .traceability-slide .traceability-evidence-card small,
  .traceability-slide .traceability-share-bars span,
  .traceability-slide .traceability-share-bars b,
  .traceability-slide .traceability-rule-chips span,
  .traceability-slide .traceability-lcia-values span,
  .traceability-slide .traceability-coordinate strong,
  .traceability-slide .traceability-evidence-card > strong,
  .traceability-slide .traceability-inference strong { font-size: 10px; }
  .traceability-slide .traceability-evidence-card p,
  .traceability-slide .traceability-inference p { font-size: 10.5px; line-height: 1.2; }

  .applied-geography-slide .geography-map-heading span,
  .applied-geography-slide .geography-map-heading > b,
  .applied-geography-slide .geography-map-card > p,
  .applied-geography-slide .geography-step-copy > strong,
  .applied-geography-slide .geography-non-transform-strip > strong,
  .applied-geography-slide .geography-non-transform-strip > span { font-size: 10px; }
  .applied-geography-slide .geography-step-copy p { font-size: 10.5px; }
  .applied-geography-slide svg text,
  .applied-geography-slide svg tspan { font-size: 10px !important; }

  .coverage-slide .coverage-flow-step span,
  .coverage-slide .coverage-sector-heading span,
  .coverage-slide .coverage-sector-path span,
  .coverage-slide .coverage-sector-path i,
  .coverage-slide .coverage-sector-effect,
  .coverage-slide .coverage-sector-outside span,
  .coverage-slide .coverage-status,
  .coverage-slide .coverage-boundary strong,
  .coverage-slide .coverage-boundary span { font-size: 10px; line-height: 1.16; }
  .coverage-slide .coverage-sector-path b,
  .coverage-slide .coverage-sector-outside b { font-size: 10.5px; }

  .lcia-evidence-slide .lcia-reading-strip span,
  .process-system-slide .analysis-rail-step small,
  .process-system-slide .analysis-gate small,
  .process-system-slide .analysis-answer span { font-size: 10px; }

  .result-tracer-slide .tracer-step-heading span,
  .result-tracer-slide .tracer-step-heading small,
  .result-tracer-slide .tracer-mapping-stage span,
  .result-tracer-slide .tracer-mapping-stage b,
  .result-tracer-slide .tracer-mapping-status,
  .result-tracer-slide .tracer-result-heading small,
  .result-tracer-slide .tracer-score-unit,
  .result-tracer-slide .tracer-result-chips span,
  .result-tracer-slide .tracer-result-receipt strong,
  .result-tracer-slide .tracer-result-receipt span { font-size: 10px; line-height: 1.12; }

  .steel-causal-slide .steel-causal-metrics .energy-metric-label,
  .steel-causal-slide .steel-causal-metrics p { font-size: 10px; }

  .pv-resolution-slide .pv-resolution-warning p,
  .pv-resolution-slide .pv-completion-step span,
  .pv-resolution-slide .pv-completion-step small,
  .pv-resolution-slide .pv-assumption-chips span { font-size: 10px; line-height: 1.18; }
  .pv-uncertainty-slide .pv-market-panel > strong,
  .pv-uncertainty-slide .pv-system-column-panel > strong,
  .pv-uncertainty-slide .pv-uncertainty-lessons .concept-card p { font-size: 10px; }

  .system-tradeoff-slide .tradeoff-color-key span,
  .system-tradeoff-slide .tradeoff-read-card p,
  .system-tradeoff-slide .tradeoff-finding-card p { font-size: 10px; line-height: 1.2; }

  .audit-chain-slide .audit-number { font-size: 10px; }

  .iam-definition-slide .iam-coupling-caption span,
  .consolidated-sector-slide .sector-mapping-badge span,
  .result-tracer-slide .capstone-controls .control-label,
  .result-tracer-slide .capstone-controls .control-chip,
  .result-tracer-slide .tracer-result-heading strong { font-size: 10px; }

  .steel-causal-slide .js-plotly-plot .xtick text,
  .steel-causal-slide .js-plotly-plot .ytick text,
  .steel-causal-slide .js-plotly-plot .legendtext,
  .steel-causal-slide .js-plotly-plot .legend2text { font-size: 10px !important; }
}

@media (min-width: 701px) and (max-height: 820px) {
  .slide .takeaway-label { font-size: 8.5px; }
  .slide .source-note { font-size: 7.5px; line-height: 1.16; }

  .workshop-graph .xtick text,
  .workshop-graph .ytick text,
  .workshop-graph .legendtext,
  .workshop-graph .legend2text,
  .workshop-graph .annotation-text,
  .workshop-graph .bartext,
  .workshop-graph .ytitle,
  .workshop-graph .xtitle,
  .workshop-graph .sankey-node text,
  .workshop-graph .cbaxis text { font-size: 8.5px !important; }

  .iam-definition-slide .iam-driver-card span,
  .iam-definition-slide .iam-exchange strong,
  .iam-definition-slide .iam-pathway-band span,
  .iam-definition-slide .iam-pathway-band b,
  .iam-definition-slide .iam-mode-chip span,
  .iam-definition-slide .iam-mode-chip strong,
  .iam-definition-slide .iam-coupling-caption,
  .iam-definition-slide .iam-experiment-step p { font-size: 8.5px; line-height: 1.15; }

  .ssp-quantitative-slide .ssp-quant-card-heading span,
  .ssp-quantitative-slide .ssp-quant-method-band span,
  .ssp-quantitative-slide .ssp-challenge-summary span { font-size: 8px; line-height: 1.15; }
  .ssp-narrative-slide .ssp-story-section p,
  .ssp-narrative-slide .ssp-story-lca p,
  .ssp-narrative-slide .ssp-story-section strong,
  .ssp-narrative-slide .ssp-story-lca strong,
  .ssp-narrative-slide .ssp-indicator span,
  .ssp-narrative-slide .ssp-challenge-badge span,
  .ssp-narrative-slide .ssp-story-signals span,
  .ssp-pair-slide .ssp-pair-contrast-band span { font-size: 8px; line-height: 1.14; }

  .forcing-families-slide .rcp-ladder-row span,
  .forcing-families-slide .forcing-chart-label span,
  .forcing-families-slide .emission-family-chip span,
  .forcing-families-slide .emission-family-chip b,
  .forcing-families-slide .forcing-definition-note span,
  .forcing-families-slide .forcing-reading-card span,
  .forcing-families-slide .forcing-trajectory-heading p,
  .forcing-families-slide .forcing-trajectory-caveat { font-size: 8px; line-height: 1.14; }

  .scenario-combination-slide .scenario-label-example span,
  .scenario-combination-slide .scenario-label-caution span,
  .scenario-combination-slide .scenario-equation-part span,
  .scenario-combination-slide .scenario-matrix-table tbody th span,
  .scenario-combination-slide .matrix-direction-label,
  .scenario-combination-slide .scenario-matrix-legend > div,
  .scenario-combination-slide .scenario-matrix-reading { font-size: 8px; line-height: 1.15; }

  .energy-example-slide .energy-compare-heading > span,
  .energy-example-slide .energy-stage-route,
  .energy-example-slide .total-energy-indicators span,
  .energy-example-slide .energy-service-context span,
  .energy-example-slide .energy-change-strip span,
  .energy-example-slide .energy-change-strip b { font-size: 8px; line-height: 1.12; }

  .end-use-transformation-slide .end-use-stat-grid p,
  .iam-mapping-slide .mapping-count-stat-grid p { font-size: 8.5px; line-height: 1.15; }

  .limitations-slide .limitation-card p { font-size: 8.5px; line-height: 1.18; }
  .limitations-slide .limitation-model-label,
  .limitations-slide .limitation-model-chip { font-size: 8px; }

  .traceability-slide .traceability-coordinate span,
  .traceability-slide .traceability-evidence-card small,
  .traceability-slide .traceability-share-bars span,
  .traceability-slide .traceability-share-bars b,
  .traceability-slide .traceability-rule-chips span,
  .traceability-slide .traceability-lcia-values span,
  .traceability-slide .traceability-coordinate strong,
  .traceability-slide .traceability-evidence-card > strong,
  .traceability-slide .traceability-inference strong { font-size: 8px; }
  .traceability-slide .traceability-evidence-card p,
  .traceability-slide .traceability-inference p { font-size: 8.5px; line-height: 1.16; }

  .applied-geography-slide .geography-map-heading span,
  .applied-geography-slide .geography-map-heading > b,
  .applied-geography-slide .geography-map-card > p,
  .applied-geography-slide .geography-step-copy > strong,
  .applied-geography-slide .geography-non-transform-strip > strong,
  .applied-geography-slide .geography-non-transform-strip > span { font-size: 8px; }
  .applied-geography-slide .geography-step-copy p { font-size: 8.5px; }
  .applied-geography-slide svg text,
  .applied-geography-slide svg tspan { font-size: 8px !important; }

  .coverage-slide .coverage-flow-step span,
  .coverage-slide .coverage-sector-heading span,
  .coverage-slide .coverage-sector-path span,
  .coverage-slide .coverage-sector-path i,
  .coverage-slide .coverage-sector-effect,
  .coverage-slide .coverage-sector-outside span,
  .coverage-slide .coverage-status,
  .coverage-slide .coverage-boundary strong,
  .coverage-slide .coverage-boundary span { font-size: 8px; line-height: 1.12; }
  .coverage-slide .coverage-sector-path b,
  .coverage-slide .coverage-sector-outside b { font-size: 8.5px; }

  .lcia-evidence-slide .lcia-reading-strip span,
  .process-system-slide .analysis-rail-step small,
  .process-system-slide .analysis-gate small,
  .process-system-slide .analysis-answer span { font-size: 8px; }

  .result-tracer-slide .tracer-step-heading span,
  .result-tracer-slide .tracer-step-heading small,
  .result-tracer-slide .tracer-mapping-stage span,
  .result-tracer-slide .tracer-mapping-stage b,
  .result-tracer-slide .tracer-mapping-status,
  .result-tracer-slide .tracer-result-heading small,
  .result-tracer-slide .tracer-score-unit,
  .result-tracer-slide .tracer-result-chips span,
  .result-tracer-slide .tracer-result-receipt strong,
  .result-tracer-slide .tracer-result-receipt span { font-size: 8px; line-height: 1.1; }

  .steel-causal-slide .steel-causal-metrics .energy-metric-label,
  .steel-causal-slide .steel-causal-metrics p { font-size: 8px; }

  .pv-resolution-slide .pv-resolution-warning p,
  .pv-resolution-slide .pv-completion-step span,
  .pv-resolution-slide .pv-completion-step small,
  .pv-resolution-slide .pv-assumption-chips span { font-size: 8px; line-height: 1.14; }
  .pv-uncertainty-slide .pv-market-panel > strong,
  .pv-uncertainty-slide .pv-system-column-panel > strong,
  .pv-uncertainty-slide .pv-uncertainty-lessons .concept-card p { font-size: 8px; }

  .system-tradeoff-slide .tradeoff-color-key span,
  .system-tradeoff-slide .tradeoff-read-card p,
  .system-tradeoff-slide .tradeoff-finding-card p { font-size: 8px; line-height: 1.16; }

  .audit-chain-slide .audit-number { font-size: 9px; }

  .ssp-narrative-slide .ssp-story-name span,
  .ssp-narrative-slide .ssp-story-signals strong,
  .ssp-pair-slide .ssp-pair-contrast-band strong { font-size: 8px; }

  .forcing-families-slide .forcing-chart-label strong,
  .forcing-families-slide .rcp-ladder-row b,
  .forcing-families-slide .forcing-panel-heading p,
  .forcing-families-slide .forcing-reading-card strong,
  .forcing-families-slide .forcing-definition-note strong { font-size: 8px; line-height: 1.14; }

  .scenario-combination-slide .scenario-matrix-heading p,
  .scenario-combination-slide .scenario-label-caution strong,
  .scenario-combination-slide .scenario-label-panel > p { font-size: 8px; line-height: 1.15; }

  .anonymous-scenario-slide .evidence-screen-rule strong,
  .anonymous-scenario-slide .evidence-screen-rule span,
  .anonymous-scenario-slide .evidence-gap-section strong,
  .anonymous-scenario-slide .evidence-gap-section li { font-size: 8px; line-height: 1.15; }

  .conditional-evidence-slide .conditional-statement span,
  .conditional-evidence-slide .conditional-record strong,
  .conditional-evidence-slide .conditional-record span { font-size: 8px; line-height: 1.15; }

  .mechanics-slide .mechanics-stat-grid .energy-metric-card p,
  .energy-layer-slide .energy-layer-stat-grid .energy-metric-card p,
  .cdr-summary-slide .cdr-reading-grid .concept-card p { font-size: 8.5px; line-height: 1.16; }

  .energy-example-slide .energy-compare-heading > b,
  .energy-example-slide .total-energy-indicators strong,
  .energy-example-slide .energy-service-context strong,
  .energy-example-slide .energy-change-strip strong { font-size: 8.5px; }

  .consolidated-sector-slide .plot-controls .control-label,
  .consolidated-sector-slide .plot-controls .control-chip { font-size: 8px; }
  .consolidated-sector-slide .sector-mapping-badge span,
  .consolidated-sector-slide .sector-audit-question strong,
  .consolidated-sector-slide .sector-audit-question span { font-size: 8px; line-height: 1.14; }

  .coverage-slide .coverage-sector-code,
  .coverage-slide .coverage-examples-heading span,
  .coverage-slide .coverage-examples-heading strong,
  .coverage-slide .coverage-flow-step > b { font-size: 8px; }

  .lcia-evidence-slide .lcia-boundary-warning strong,
  .lcia-evidence-slide .lcia-boundary-warning span { font-size: 8px; line-height: 1.15; }

  .process-system-slide .analysis-gates > strong,
  .process-system-slide .analysis-gate > span,
  .process-system-slide .analysis-path-kicker,
  .process-system-slide .analysis-scaling-rule strong,
  .process-system-slide .analysis-scaling-rule span,
  .process-system-slide .analysis-equation span,
  .process-system-slide .analysis-equation strong,
  .process-system-slide .analysis-path-card > p,
  .process-system-slide .analysis-answer b { font-size: 8px; line-height: 1.14; }

  .result-tracer-slide .capstone-controls .control-label,
  .result-tracer-slide .capstone-controls .control-chip,
  .result-tracer-slide .tracer-result-heading strong,
  .result-tracer-slide .tracer-mapping-flow i { font-size: 8px; }

  .pv-resolution-slide .pv-resolution-warning strong { font-size: 8px; }
  .case-library-slide .case-library-code,
  .case-library-slide .case-library-scope i { font-size: 8px; }

  .ssp-narrative-slide .ssp-story-section p,
  .ssp-narrative-slide .ssp-story-lca p { font-size: 9px; line-height: 1.16; }
  .ssp-narrative-slide .ssp-story-section strong,
  .ssp-narrative-slide .ssp-story-lca strong,
  .ssp-narrative-slide .ssp-story-signals strong,
  .ssp-narrative-slide .ssp-indicator strong { font-size: 9px; }
  .ssp-narrative-slide .ssp-story-name span,
  .ssp-narrative-slide .ssp-story-signals span,
  .ssp-narrative-slide .ssp-challenge-badge span,
  .ssp-narrative-slide .ssp-indicator span,
  .ssp-pair-slide .ssp-pair-contrast-band span,
  .ssp-pair-slide .ssp-pair-contrast-band strong { font-size: 8.5px; }

  .forcing-families-slide .forcing-panel-heading p,
  .forcing-families-slide .forcing-reading-card span,
  .forcing-families-slide .forcing-definition-note span,
  .forcing-families-slide .forcing-trajectory-heading p,
  .forcing-families-slide .forcing-trajectory-caveat { font-size: 8.5px; }
  .forcing-families-slide .forcing-chart-label strong,
  .forcing-families-slide .forcing-reading-card strong,
  .forcing-families-slide .forcing-definition-note strong,
  .forcing-families-slide .rcp-ladder-row b,
  .forcing-families-slide .emission-family-chip b { font-size: 8.5px; }

  .scenario-combination-slide .scenario-matrix-heading p,
  .scenario-combination-slide .scenario-label-panel > p,
  .scenario-combination-slide .scenario-label-caution span,
  .scenario-combination-slide .scenario-label-example span,
  .scenario-combination-slide .scenario-equation-part span,
  .scenario-combination-slide .scenario-matrix-reading { font-size: 8.5px; }

  .anonymous-scenario-slide .evidence-screen-rule strong,
  .anonymous-scenario-slide .evidence-screen-rule span,
  .anonymous-scenario-slide .evidence-gap-section strong,
  .anonymous-scenario-slide .evidence-gap-section li { font-size: 9px; line-height: 1.17; }

  .conditional-evidence-slide .conditional-check-card > p,
  .conditional-evidence-slide .conditional-record strong,
  .conditional-evidence-slide .conditional-record span,
  .conditional-evidence-slide .conditional-inference p { font-size: 9px; line-height: 1.17; }
  .conditional-evidence-slide .conditional-statement span { font-size: 8.5px; }

  .mechanics-slide .mechanics-stat-grid .energy-metric-card p,
  .energy-layer-slide .energy-layer-stat-grid .energy-metric-card p,
  .cdr-summary-slide .cdr-reading-grid .concept-card p { font-size: 9px; line-height: 1.18; }

  .energy-example-slide .energy-compare-heading > span,
  .energy-example-slide .energy-stage-route span,
  .energy-example-slide .total-energy-indicators span,
  .energy-example-slide .energy-service-context span,
  .energy-example-slide .energy-change-strip span,
  .energy-example-slide .energy-change-strip b,
  .energy-example-slide .energy-compare-heading > b,
  .energy-example-slide .total-energy-indicators strong,
  .energy-example-slide .energy-service-context strong,
  .energy-example-slide .energy-change-strip strong { font-size: 8.5px; }

  .limitations-slide .limitation-card p { font-size: 9.5px; line-height: 1.2; }
  .limitations-slide .limitation-model-label,
  .limitations-slide .limitation-model-chip { font-size: 8.5px; }

  .traceability-slide .traceability-coordinate span,
  .traceability-slide .traceability-coordinate strong,
  .traceability-slide .traceability-evidence-card small,
  .traceability-slide .traceability-share-bars span,
  .traceability-slide .traceability-share-bars b,
  .traceability-slide .traceability-rule-chips span,
  .traceability-slide .traceability-lcia-values span,
  .traceability-slide .traceability-evidence-card > strong,
  .traceability-slide .traceability-inference strong { font-size: 8.5px; }
  .traceability-slide .traceability-evidence-card p,
  .traceability-slide .traceability-inference p { font-size: 9.5px; line-height: 1.18; }

  .applied-geography-slide .geography-map-heading span,
  .applied-geography-slide .geography-map-heading > b,
  .applied-geography-slide .geography-map-card > p,
  .applied-geography-slide .geography-step-copy > strong,
  .applied-geography-slide .geography-non-transform-strip > strong,
  .applied-geography-slide .geography-non-transform-strip > span,
  .applied-geography-slide svg text,
  .applied-geography-slide svg tspan { font-size: 8.5px !important; }
  .applied-geography-slide .geography-step-copy p { font-size: 9.5px; line-height: 1.18; }

  .coverage-slide .coverage-flow-step span,
  .coverage-slide .coverage-sector-heading span,
  .coverage-slide .coverage-sector-path span,
  .coverage-slide .coverage-sector-path i,
  .coverage-slide .coverage-sector-effect,
  .coverage-slide .coverage-sector-outside b { font-size: 9px; line-height: 1.15; }
  .coverage-slide .coverage-sector-path b { font-size: 9.5px; }
  .coverage-slide .coverage-sector-outside span,
  .coverage-slide .coverage-status,
  .coverage-slide .coverage-boundary strong,
  .coverage-slide .coverage-boundary span,
  .coverage-slide .coverage-sector-code,
  .coverage-slide .coverage-examples-heading span,
  .coverage-slide .coverage-examples-heading strong { font-size: 8.5px; }

  .lcia-evidence-slide .lcia-reading-strip span,
  .lcia-evidence-slide .lcia-boundary-warning strong,
  .lcia-evidence-slide .lcia-boundary-warning span { font-size: 9px; line-height: 1.17; }

  .process-system-slide .analysis-gates > strong,
  .process-system-slide .analysis-gate > span,
  .process-system-slide .analysis-gate small,
  .process-system-slide .analysis-path-kicker,
  .process-system-slide .analysis-scaling-rule strong,
  .process-system-slide .analysis-scaling-rule span,
  .process-system-slide .analysis-equation span,
  .process-system-slide .analysis-equation strong,
  .process-system-slide .analysis-path-card > p,
  .process-system-slide .analysis-answer span,
  .process-system-slide .analysis-answer b,
  .process-system-slide .analysis-rail-step small { font-size: 9px; line-height: 1.16; }

  .result-tracer-slide .capstone-controls .control-label,
  .result-tracer-slide .capstone-controls .control-chip,
  .result-tracer-slide .tracer-step-heading span,
  .result-tracer-slide .tracer-step-heading small,
  .result-tracer-slide .tracer-mapping-stage span,
  .result-tracer-slide .tracer-mapping-stage b,
  .result-tracer-slide .tracer-mapping-status,
  .result-tracer-slide .tracer-result-heading strong,
  .result-tracer-slide .tracer-result-heading small,
  .result-tracer-slide .tracer-score-unit,
  .result-tracer-slide .tracer-result-chips span,
  .result-tracer-slide .tracer-result-receipt strong,
  .result-tracer-slide .tracer-result-receipt span { font-size: 8.5px; line-height: 1.14; }

  .steel-causal-slide .steel-causal-metrics .energy-metric-label,
  .steel-causal-slide .steel-causal-metrics p,
  .pv-resolution-slide .pv-resolution-warning strong,
  .pv-resolution-slide .pv-resolution-warning p,
  .pv-resolution-slide .pv-completion-step span,
  .pv-resolution-slide .pv-completion-step small,
  .pv-resolution-slide .pv-assumption-chips span,
  .pv-uncertainty-slide .pv-market-panel > strong,
  .pv-uncertainty-slide .pv-system-column-panel > strong,
  .pv-uncertainty-slide .pv-uncertainty-lessons .concept-card p { font-size: 9px; line-height: 1.17; }

  .system-tradeoff-slide .tradeoff-color-key span { font-size: 8.5px; }
  .system-tradeoff-slide .tradeoff-read-card strong,
  .system-tradeoff-slide .tradeoff-finding-card strong { font-size: 9.5px; }
  .system-tradeoff-slide .tradeoff-read-card p,
  .system-tradeoff-slide .tradeoff-finding-card p { font-size: 9.5px; line-height: 1.18; }
}

/* Final compact-view floor: short labels remain readable without enlarging
   citations, which intentionally stay visually subordinate. */
@media (min-width: 701px) and (max-height: 820px) {
  .model-architecture-slide .model-architecture-heading span,
  .model-architecture-slide .model-architecture-implications span,
  .ssp-quantitative-slide .ssp-quant-card-heading span,
  .ssp-quantitative-slide .ssp-quant-method-band span,
  .ssp-quantitative-slide .ssp-quant-method-band strong,
  .ssp-quantitative-slide .ssp-challenge-summary span,
  .ssp-quantitative-slide .ssp-challenge-summary strong,
  .ssp-narrative-slide .ssp-challenge-badge strong,
  .ssp-narrative-slide .ssp-world-heading-copy span,
  .ssp-narrative-slide .ssp-baseline-note span,
  .forcing-families-slide .rcp-ladder-row span,
  .forcing-families-slide .forcing-chart-label span,
  .forcing-families-slide .forcing-chart-label strong,
  .forcing-families-slide .emission-family-chip span,
  .forcing-families-slide .emission-family-chip b,
  .forcing-families-slide .forcing-trajectory-caveat,
  .scenario-combination-slide .scenario-label-example span,
  .scenario-combination-slide .scenario-label-caution span,
  .scenario-combination-slide .scenario-equation-part span,
  .scenario-combination-slide .scenario-matrix-table tbody th span,
  .scenario-combination-slide .matrix-direction-label,
  .scenario-combination-slide .scenario-matrix-legend > div,
  .scenario-combination-slide .scenario-matrix-reading,
  .anonymous-scenario-slide .evidence-screen-rule strong,
  .anonymous-scenario-slide .evidence-screen-rule span,
  .conditional-evidence-slide .conditional-statement span,
  .conditional-evidence-slide .conditional-statement strong,
  .conditional-evidence-slide .conditional-record strong,
  .conditional-evidence-slide .conditional-record span,
  .conditional-evidence-slide .evidence-language-card strong,
  .conditional-evidence-slide .evidence-language-card p,
  .energy-example-slide .energy-stage-route,
  .energy-example-slide .energy-stage-route b,
  .energy-example-slide .energy-change-strip b,
  .energy-layer-slide .energy-metric-label,
  .energy-layer-slide .energy-layer-stat-grid strong,
  .end-use-transformation-slide .end-use-chart-heading span,
  .end-use-transformation-slide .end-use-premise-label,
  .end-use-transformation-slide .end-use-stat-grid strong,
  .iam-mapping-slide .mapping-count-stat-grid strong,
  .iam-mapping-slide .mapping-count-stat-grid span,
  .model-mapping-heatmap-slide .model-heatmap-reading span,
  .applied-geography-slide .geography-step-number,
  .applied-geography-slide .geography-map-heading span,
  .applied-geography-slide .geography-map-heading strong,
  .consolidated-sector-slide .plot-controls .control-label,
  .consolidated-sector-slide .plot-controls .control-chip,
  .consolidated-sector-slide .sector-mapping-badge span,
  .consolidated-sector-slide .sector-audit-question strong,
  .consolidated-sector-slide .sector-audit-question span,
  .cdr-summary-slide .cdr-reading-grid .concept-card h3,
  .coverage-slide .coverage-flow-step > b,
  .process-system-slide .analysis-rail-number,
  .result-tracer-slide .capstone-controls .control-label,
  .result-tracer-slide .capstone-controls .control-chip,
  .result-tracer-slide .tracer-step-heading strong,
  .result-tracer-slide .tracer-step-heading span,
  .result-tracer-slide .tracer-step-heading small,
  .result-tracer-slide .tracer-mapping-stage span,
  .result-tracer-slide .tracer-mapping-stage b,
  .result-tracer-slide .tracer-mapping-status,
  .result-tracer-slide .tracer-mapping-flow i,
  .result-tracer-slide .tracer-result-heading strong,
  .result-tracer-slide .tracer-result-heading small,
  .result-tracer-slide .tracer-score-unit,
  .result-tracer-slide .tracer-result-chips span,
  .result-tracer-slide .tracer-result-receipt strong,
  .result-tracer-slide .tracer-result-receipt span,
  .steel-causal-slide .steel-causal-metrics .energy-metric-label,
  .steel-causal-slide .steel-causal-metrics p,
  .pv-resolution-slide .pv-resolution-warning strong,
  .pv-resolution-slide .pv-resolution-warning p,
  .pv-resolution-slide .pv-completion-step span,
  .pv-resolution-slide .pv-completion-step b,
  .pv-resolution-slide .pv-completion-step small,
  .pv-resolution-slide .pv-assumption-chips strong,
  .pv-resolution-slide .pv-assumption-chips span,
  .pv-uncertainty-slide .pv-market-panel > strong,
  .pv-uncertainty-slide .pv-system-column-panel > strong,
  .pv-uncertainty-slide .pv-uncertainty-lessons .concept-card p,
  .case-library-slide .case-library-code,
  .case-library-slide .case-library-scope i {
    font-size: 8.5px;
  }

  .controlled-comparison-slide .controlled-comparison-card > strong,
  .controlled-comparison-slide .controlled-formula span,
  .controlled-comparison-slide .controlled-comparison-card p {
    font-size: 8.5px;
    line-height: 1.15;
  }

  .energy-sankey-slide .energy-stage-arrow,
  .case-library-slide .case-library-arrow { font-size: 9px; }

  .scenario-combination-slide .scenario-label-example strong,
  .scenario-combination-slide .scenario-label-example b,
  .scenario-combination-slide .scenario-label-caution strong {
    font-size: 8.5px;
  }

  .controlled-comparison-slide .controlled-comparison-graph {
    flex-basis: 240px;
    min-height: 240px;
  }
}

/* Illustrated Premise epilogue: five different visual grammars */
.premise-library-visual-slide,
.premise-history-visual-slide,
.premise-engine-slide,
.premise-network-slide,
.premise-scale-slide { display: flex; flex-direction: column; }

.premise-library-visual-layout { display: grid; grid-template-columns: minmax(0, 1.62fr) minmax(280px, .72fr); gap: 15px; flex: 1; min-height: 360px; }
.premise-library-art-panel { display: grid; grid-template-rows: minmax(0, 1fr) auto; min-width: 0; min-height: 0; }
.premise-library-figure { position: relative; justify-self: center; height: 100%; max-width: 100%; aspect-ratio: 1100 / 560; min-width: 0; min-height: 0; }
.premise-library-bridge-art { width: 100%; height: 100%; min-height: 0; object-fit: contain; }
.premise-library-official-logo { position: absolute; z-index: 2; top: 24.5%; left: 46.6%; width: 8.5%; height: auto; object-fit: contain; mix-blend-mode: multiply; }
.premise-library-stat-ribbon { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 5px; margin-top: 4px; }
.premise-library-stat-ribbon span { padding: 7px 8px; border-radius: 999px; color: var(--muted); background: #eaf3f6; font-size: 10px; text-align: center; }
.premise-library-stat-ribbon strong { margin-right: 4px; color: var(--psi-deep); font-size: 15px; }
.premise-library-story-panel { display: grid; grid-template-rows: repeat(3, minmax(0, 1fr)) auto; gap: 8px; align-content: stretch; }
.premise-library-story { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 10px; align-items: center; padding: 8px 6px 8px 12px; border-left: 7px solid var(--psi-blue); }
.premise-library-story-teal { border-left-color: var(--teal); }
.premise-library-story-amber { border-left-color: var(--amber); }
.premise-library-story > span { display: grid; width: 34px; height: 34px; place-content: center; border-radius: 50%; color: #fff; background: var(--psi-deep); font-size: 10px; font-weight: 900; }
.premise-library-story strong { color: var(--psi-deep); font-size: 15px; }
.premise-library-story p { margin: 5px 0 0; color: var(--muted); font-size: 11px; line-height: 1.2; }
.premise-library-caveat { padding: 10px 12px; border-radius: 9px; color: #713c3f; background: #f9eeee; }
.premise-library-caveat strong { font-size: 10px; text-transform: uppercase; }
.premise-library-caveat p { margin: 3px 0 0; font-size: 10px; line-height: 1.17; }

.premise-history-visual { display: grid; grid-template-rows: auto minmax(0, 1fr); flex: 1; min-height: 350px; }
.premise-history-era-ribbon { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; gap: 10px; align-items: center; padding: 8px 14px; border-radius: 999px; color: #fff; background: linear-gradient(90deg, var(--psi-blue), var(--teal), var(--amber)); text-align: center; }
.premise-history-era-ribbon span { font-size: 10px; font-weight: 900; letter-spacing: .05em; }
.premise-history-era-ribbon i { font-size: 17px; font-style: normal; }
.premise-history-visual-stops { position: relative; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; padding-top: 35px; }
.premise-history-visual-stops::before { position: absolute; top: 74px; right: 6%; left: 6%; height: 6px; border-radius: 999px; background: linear-gradient(90deg, var(--psi-blue), var(--teal), var(--amber)); content: ""; }
.premise-history-visual-stop { position: relative; display: grid; align-content: start; justify-items: center; min-width: 0; padding: 0 8px; text-align: center; }
.premise-history-visual-icon { z-index: 1; display: grid; width: 78px; height: 78px; place-content: center; border: 7px solid #fff; border-radius: 50%; color: #fff; background: var(--psi-deep); box-shadow: 0 0 0 5px var(--teal), 0 8px 18px rgba(0,58,80,.14); font-family: monospace; font-size: 22px; font-weight: 900; }
.premise-history-visual-stop:nth-child(1) .premise-history-visual-icon,
.premise-history-visual-stop:nth-child(2) .premise-history-visual-icon { box-shadow: 0 0 0 5px var(--psi-blue), 0 8px 18px rgba(0,58,80,.14); }
.premise-history-visual-stop:nth-child(5) .premise-history-visual-icon { box-shadow: 0 0 0 5px var(--amber), 0 8px 18px rgba(0,58,80,.14); }
.premise-history-visual-tag { margin-top: 14px; color: var(--teal); font-size: 9px; font-weight: 900; letter-spacing: .06em; }
.premise-history-visual-year { margin-top: 3px; color: var(--psi-deep); font-size: 25px; }
.premise-history-visual-stop h3 { margin: 5px 0; color: var(--psi-deep); font-size: 14px; }
.premise-history-visual-stop p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.18; }
.premise-history-shift-ribbon { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px; align-items: center; margin-top: 7px; padding: 9px 12px; border-left: 6px solid var(--teal); border-radius: 8px; background: #edf7f5; }
.premise-history-shift-ribbon strong { color: var(--psi-deep); font-size: 10px; text-transform: uppercase; }
.premise-history-shift-ribbon span { color: var(--muted); font-size: 10px; }
.premise-history-shift-ribbon i { color: var(--teal); font-size: 10px; }

.premise-engine-layout { display: grid; grid-template-columns: minmax(0, 1.72fr) minmax(275px, .62fr); gap: 15px; flex: 1; min-height: 360px; }
.premise-engine-art-panel { min-width: 0; min-height: 0; }
.premise-engine-art { width: 100%; height: 100%; object-fit: contain; }
.premise-build-receipt { display: grid; grid-template-rows: auto auto minmax(0, 1fr) auto; align-content: stretch; min-width: 0; padding: 14px; border-radius: 14px; color: #fff; background: var(--psi-deep); }
.premise-build-receipt > span { color: #77d3ca; font-size: 10px; font-weight: 900; letter-spacing: .07em; }
.premise-build-receipt h2 { margin: 5px 0 10px; color: #fff; font-size: 19px; }
.premise-build-code { display: grid; align-content: center; min-width: 0; margin: 0; padding: 12px; overflow: hidden; border: 1px solid rgba(255,255,255,.18); border-radius: 10px; color: #e9f7f5; background: rgba(0,0,0,.18); font-size: 10px; line-height: 1.38; }
.premise-build-receipt-list { display: grid; gap: 4px; margin: 10px 0 0; padding-left: 20px; color: #d9edf2; font-size: 10px; line-height: 1.17; }
.premise-build-receipt-list strong { color: #fff; }
.premise-engine-summary-ribbon { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; gap: 9px; align-items: center; margin-top: 7px; padding: 8px 11px; border-radius: 9px; background: #eaf3f6; text-align: center; }
.premise-engine-summary-ribbon span { color: var(--muted); font-size: 10px; }
.premise-engine-summary-ribbon strong { color: var(--teal); }
.premise-engine-summary-ribbon i { color: var(--amber); font-size: 17px; font-style: normal; font-weight: 900; }

.premise-network-layout { display: grid; grid-template-columns: minmax(0, 1.68fr) minmax(280px, .62fr); gap: 15px; flex: 1; min-height: 350px; }
.premise-network-art-panel { position: relative; justify-self: center; height: 100%; max-width: 100%; aspect-ratio: 1080 / 570; min-width: 0; min-height: 0; }
.premise-network-art { width: 100%; height: 100%; object-fit: contain; }
.premise-network-official-logo { position: absolute; z-index: 2; top: 37.2%; left: 44.4%; width: 11.25%; height: auto; object-fit: contain; mix-blend-mode: multiply; }
.premise-network-brightway-logo { position: absolute; z-index: 2; top: 14.3%; left: 78.8%; width: 14.6%; height: 17%; object-fit: contain; }
.premise-network-pathways-logo { position: absolute; z-index: 2; top: 68.2%; left: 80.2%; width: 11.8%; height: 18.7%; object-fit: contain; }
.premise-network-trails-logo { position: absolute; z-index: 2; top: 85%; left: 61.2%; width: 4.6%; height: 8%; object-fit: contain; mix-blend-mode: multiply; }
.premise-role-legend { display: grid; grid-template-rows: auto repeat(6, minmax(0, 1fr)); gap: 3px; align-content: stretch; }
.premise-role-legend > span { color: var(--teal); font-size: 10px; font-weight: 900; letter-spacing: .07em; }
.premise-role-row { display: grid; grid-template-columns: 13px minmax(0, 1fr); gap: 9px; align-items: center; padding: 5px 0; border-bottom: 1px solid var(--line); }
.premise-role-row:last-child { border-bottom: 0; }
.premise-role-dot { display: block; width: 12px; height: 42px; border-radius: 999px; background: var(--teal); }
.premise-role-blue { background: var(--psi-blue); }
.premise-role-red { background: var(--red); }
.premise-role-amber { background: var(--amber); }
.premise-role-orange { background: #e56b38; }
.premise-role-purple { background: var(--purple); }
.premise-role-row small { display: block; color: var(--teal); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.premise-role-row strong { display: block; margin-top: 2px; color: var(--psi-deep); font-size: 13px; }
.premise-role-row p { margin: 3px 0 0; color: var(--muted); font-size: 10px; line-height: 1.16; }
.premise-network-slide .premise-superstructure-note { margin-top: 7px; }

.premise-scale-layout { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(300px, .72fr); gap: 15px; flex: 1; min-height: 335px; }
.premise-scale-art-panel { min-width: 0; min-height: 0; }
.premise-scale-art { width: 100%; height: 100%; object-fit: contain; }
.premise-scale-story-panel { display: grid; grid-template-rows: repeat(3, minmax(0, 1fr)); gap: 8px; }
.premise-scale-story { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 10px; align-items: center; padding: 8px 5px 8px 12px; border-left: 7px solid var(--amber); }
.premise-scale-story-teal { border-left-color: var(--teal); }
.premise-scale-story-blue { border-left-color: var(--psi-blue); }
.premise-scale-story > span { display: grid; width: 36px; height: 36px; place-content: center; border-radius: 50%; color: #fff; background: var(--psi-deep); font-size: 10px; font-weight: 900; }
.premise-scale-story h2 { margin: 0; color: var(--psi-deep); font-size: 16px; }
.premise-scale-story strong { display: block; margin-top: 5px; color: var(--teal); font-size: 10px; }
.premise-scale-story p { margin: 5px 0 0; color: var(--muted); font-size: 10px; line-height: 1.17; }
.premise-scale-dimensions { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; justify-content: center; margin-top: 7px; padding: 7px; border-radius: 9px; color: #fff; background: var(--psi-deep); }
.premise-scale-dimensions strong { margin-right: 5px; color: var(--amber); font-size: 10px; text-transform: uppercase; }
.premise-scale-dimensions span { padding: 4px 7px; border-radius: 999px; background: rgba(255,255,255,.13); font-size: 10px; font-weight: 800; }
.premise-scale-boundary-ribbon { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; align-items: center; margin-top: 6px; padding: 7px 10px; border-left: 6px solid var(--amber); border-radius: 8px; background: #fff7df; }
.premise-scale-boundary-ribbon strong { color: var(--psi-deep); font-size: 10px; text-transform: uppercase; }
.premise-scale-boundary-ribbon span { color: var(--muted); font-size: 10px; line-height: 1.16; }

.premise-analysis-evidence-layout { display: grid; grid-template-columns: minmax(0, 1.82fr) minmax(300px, .62fr); gap: 12px; flex: 1; min-height: 340px; }
.premise-analysis-example-panel { display: grid; grid-template-rows: auto auto minmax(0, 1fr); min-width: 0; min-height: 0; padding: 9px 11px 7px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.premise-analysis-example-heading { display: flex; gap: 10px; align-items: baseline; justify-content: space-between; padding: 0 5px 5px; }
.premise-analysis-example-heading strong { color: var(--psi-deep); font-size: 13px; }
.premise-analysis-example-heading span { color: var(--muted); font-size: 10px; }
.premise-analysis-curve-legend { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px 10px; padding: 4px 5px 6px; border-top: 1px solid #edf2f4; }
.premise-analysis-curve-legend > span { display: flex; gap: 5px; align-items: center; min-width: 0; color: var(--muted); font-size: 9px; line-height: 1.05; white-space: nowrap; }
.premise-analysis-curve-legend i { flex: 0 0 16px; height: 3px; border-radius: 999px; }
.premise-analysis-example-image { width: 100%; height: 100%; min-height: 0; object-fit: contain; }
.premise-analysis-evidence-cards { display: grid; grid-template-rows: repeat(3, minmax(0, 1fr)); gap: 7px; min-height: 0; }
.premise-analysis-evidence-card { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 9px; align-items: center; min-width: 0; padding: 7px 7px 7px 10px; border-left: 6px solid var(--psi-blue); background: #f8fafb; }
.premise-analysis-evidence-card-teal { border-left-color: var(--teal); }
.premise-analysis-evidence-card-amber { border-left-color: var(--amber); }
.premise-analysis-evidence-card > span { display: grid; width: 32px; height: 32px; place-content: center; border-radius: 50%; color: #fff; background: var(--psi-deep); font-size: 9px; font-weight: 900; }
.premise-analysis-evidence-card h2 { margin: 0; color: var(--psi-deep); font-size: 15px; }
.premise-analysis-evidence-card strong { display: block; margin-top: 3px; color: var(--teal); font-size: 10px; }
.premise-analysis-evidence-card p { margin: 3px 0 0; color: var(--muted); font-size: 10px; line-height: 1.14; }
.premise-analysis-reading-ribbon { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; align-items: center; margin-top: 6px; padding: 7px 10px; border-left: 6px solid var(--amber); border-radius: 8px; background: #fff7df; }
.premise-analysis-reading-ribbon strong { color: var(--psi-deep); font-size: 10px; text-transform: uppercase; }
.premise-analysis-reading-ribbon span { color: var(--muted); font-size: 10px; line-height: 1.16; }

@media (min-width: 701px) and (max-height: 820px) {
  .premise-library-visual-slide .eyebrow,
  .premise-history-visual-slide .eyebrow,
  .premise-engine-slide .eyebrow,
  .premise-network-slide .eyebrow,
  .premise-scale-slide .eyebrow { margin-bottom: 4px; font-size: 11px; }
  .premise-library-visual-slide .title-block,
  .premise-history-visual-slide .title-block,
  .premise-engine-slide .title-block,
  .premise-network-slide .title-block,
  .premise-scale-slide .title-block { margin-bottom: 6px; }
  .premise-library-visual-slide .slide-title,
  .premise-history-visual-slide .slide-title,
  .premise-engine-slide .slide-title,
  .premise-network-slide .slide-title,
  .premise-scale-slide .slide-title { font-size: 34px; line-height: 1.02; }
  .premise-library-visual-slide .slide-subtitle,
  .premise-history-visual-slide .slide-subtitle,
  .premise-engine-slide .slide-subtitle,
  .premise-network-slide .slide-subtitle,
  .premise-scale-slide .slide-subtitle { margin-top: 5px; font-size: 15px; line-height: 1.18; }
  .premise-library-visual-slide .source-note,
  .premise-history-visual-slide .source-note,
  .premise-engine-slide .source-note,
  .premise-network-slide .source-note,
  .premise-scale-slide .source-note { margin-top: 3px; font-size: 8.5px; line-height: 1.1; }
  .premise-library-visual-slide .takeaway,
  .premise-history-visual-slide .takeaway,
  .premise-engine-slide .takeaway,
  .premise-network-slide .takeaway,
  .premise-scale-slide .takeaway { gap: 8px; margin-top: 4px; padding: 7px 10px; }
  .premise-library-visual-slide .takeaway-label,
  .premise-history-visual-slide .takeaway-label,
  .premise-engine-slide .takeaway-label,
  .premise-network-slide .takeaway-label,
  .premise-scale-slide .takeaway-label { font-size: 8.5px; }
  .premise-library-visual-slide .takeaway p,
  .premise-history-visual-slide .takeaway p,
  .premise-engine-slide .takeaway p,
  .premise-network-slide .takeaway p,
  .premise-scale-slide .takeaway p { font-size: 13.5px; line-height: 1.12; }

  .premise-library-visual-layout { grid-template-columns: minmax(0, 1.7fr) minmax(250px, .68fr); gap: 8px; min-height: 250px; }
  .premise-library-visual-layout { flex: 0 0 325px; height: 325px; }
  .premise-library-stat-ribbon { gap: 3px; }
  .premise-library-stat-ribbon span { padding: 4px 5px; font-size: 9px; }
  .premise-library-stat-ribbon strong { font-size: 13px; }
  .premise-library-story-panel { gap: 4px; }
  .premise-library-story { grid-template-columns: 29px minmax(0, 1fr); gap: 6px; padding: 4px 3px 4px 8px; border-left-width: 5px; }
  .premise-library-story > span { width: 27px; height: 27px; font-size: 9px; }
  .premise-library-story strong { font-size: 12px; }
  .premise-library-story p,
  .premise-library-caveat strong,
  .premise-library-caveat p { font-size: 9.5px; line-height: 1.12; }
  .premise-library-caveat strong { font-size: 9px; }
  .premise-library-story p { margin-top: 2px; }
  .premise-library-caveat { padding: 5px 7px; }

  .premise-history-visual { flex: 0 0 265px; height: 265px; min-height: 265px; }
  .premise-history-era-ribbon { gap: 5px; padding: 5px 9px; }
  .premise-history-era-ribbon span { font-size: 8.5px; }
  .premise-history-era-ribbon i { font-size: 13px; }
  .premise-history-visual-stops { gap: 5px; padding-top: 18px; }
  .premise-history-visual-stops::before { top: 48px; height: 4px; }
  .premise-history-visual-stop { padding: 0 4px; }
  .premise-history-visual-icon { width: 56px; height: 56px; border-width: 5px; box-shadow: 0 0 0 3px var(--teal); font-size: 16px; }
  .premise-history-visual-stop:nth-child(1) .premise-history-visual-icon,
  .premise-history-visual-stop:nth-child(2) .premise-history-visual-icon { box-shadow: 0 0 0 3px var(--psi-blue); }
  .premise-history-visual-stop:nth-child(5) .premise-history-visual-icon { box-shadow: 0 0 0 3px var(--amber); }
  .premise-history-visual-tag { margin-top: 8px; font-size: 9px; }
  .premise-history-visual-year { font-size: 17px; }
  .premise-history-visual-stop h3 { margin: 2px 0; font-size: 11px; }
  .premise-history-visual-stop p { font-size: 9.5px; line-height: 1.12; }
  .premise-history-shift-ribbon { gap: 6px; margin-top: 4px; padding: 5px 7px; }
  .premise-history-shift-ribbon strong,
  .premise-history-shift-ribbon span,
  .premise-history-shift-ribbon i { font-size: 9px; }
  .premise-history-shift-ribbon span { font-size: 9.5px; }

  .premise-engine-layout { grid-template-columns: minmax(0, 1.78fr) minmax(240px, .58fr); gap: 8px; flex: 0 0 310px; height: 310px; min-height: 310px; }
  .premise-build-receipt { padding: 8px; border-radius: 10px; }
  .premise-build-receipt > span { font-size: 9px; }
  .premise-build-receipt h2 { margin: 3px 0 5px; font-size: 14px; }
  .premise-build-code { padding: 7px; font-size: 9px; line-height: 1.2; }
  .premise-build-receipt-list { gap: 2px; margin-top: 5px; padding-left: 16px; font-size: 9px; line-height: 1.1; }
  .premise-engine-summary-ribbon { gap: 5px; margin-top: 4px; padding: 5px 7px; }
  .premise-engine-summary-ribbon span { font-size: 9px; }
  .premise-engine-summary-ribbon i { font-size: 13px; }

  .premise-network-layout { grid-template-columns: minmax(0, 1.35fr) minmax(300px, .72fr); gap: 8px; flex: 0 0 300px; height: 300px; min-height: 300px; }
  .premise-role-legend { gap: 2px; }
  .premise-role-legend > span { font-size: 9px; }
  .premise-role-row { grid-template-columns: 9px minmax(0, 1fr); gap: 6px; padding: 2px 0; }
  .premise-role-dot { width: 8px; height: 28px; }
  .premise-role-row small { font-size: 9px; line-height: 1.1; }
  .premise-role-row p { font-size: 9.5px; line-height: 1.1; }
  .premise-role-row strong { font-size: 11px; }
  .premise-role-row p { margin-top: 1px; }
  .premise-network-slide .premise-superstructure-note { margin-top: 4px; padding: 5px 7px; }

  .premise-analysis-evidence-layout { grid-template-columns: minmax(0, 1.62fr) minmax(285px, .68fr); gap: 7px; flex: 0 0 285px; height: 285px; min-height: 285px; }
  .premise-analysis-example-panel { padding: 5px 6px 4px; border-radius: 10px; }
  .premise-analysis-example-heading { padding: 0 3px 3px; }
  .premise-analysis-example-heading strong { font-size: 10px; }
  .premise-analysis-example-heading span { font-size: 9px; }
  .premise-analysis-curve-legend { gap: 2px 6px; padding: 2px 3px 3px; }
  .premise-analysis-curve-legend > span { gap: 4px; font-size: 8.5px; }
  .premise-analysis-curve-legend i { flex-basis: 12px; height: 2px; }
  .premise-analysis-evidence-cards { gap: 3px; }
  .premise-analysis-evidence-card { grid-template-columns: 27px minmax(0, 1fr); gap: 5px; padding: 4px 3px 4px 6px; border-left-width: 5px; }
  .premise-analysis-evidence-card > span { width: 25px; height: 25px; font-size: 8.5px; }
  .premise-analysis-evidence-card h2 { font-size: 11px; }
  .premise-analysis-evidence-card strong { margin-top: 2px; font-size: 9px; line-height: 1.08; }
  .premise-analysis-evidence-card p { margin-top: 2px; font-size: 9.5px; line-height: 1.08; }
  .premise-analysis-reading-ribbon { gap: 6px; margin-top: 4px; padding: 5px 7px; }
  .premise-analysis-reading-ribbon strong,
  .premise-analysis-reading-ribbon span { font-size: 9px; line-height: 1.1; }

  .premise-scale-layout { grid-template-columns: minmax(0, .9fr) minmax(450px, 1.1fr); gap: 8px; flex: 0 0 275px; height: 275px; min-height: 275px; }
  .premise-scale-story-panel { gap: 4px; }
  .premise-scale-story { grid-template-columns: 29px minmax(0, 1fr); gap: 6px; padding: 4px 3px 4px 8px; border-left-width: 5px; }
  .premise-scale-story > span { width: 27px; height: 27px; font-size: 9px; }
  .premise-scale-story h2 { font-size: 12px; }
  .premise-scale-story strong { font-size: 9px; line-height: 1.1; }
  .premise-scale-story p { font-size: 9.5px; line-height: 1.1; }
  .premise-scale-story strong,
  .premise-scale-story p { margin-top: 2px; }
  .premise-scale-dimensions { gap: 3px; margin-top: 4px; padding: 4px; }
  .premise-scale-dimensions strong,
  .premise-scale-dimensions span { font-size: 9px; }
  .premise-scale-dimensions span { padding: 3px 5px; }
  .premise-scale-boundary-ribbon { gap: 6px; margin-top: 4px; padding: 5px 7px; }
  .premise-scale-boundary-ribbon strong,
  .premise-scale-boundary-ribbon span { font-size: 9px; line-height: 1.1; }
}

@media (min-width: 701px) and (min-height: 821px) {
  .system-tradeoff-slide .tradeoff-read-card strong { font-size: 12px; }
  .system-tradeoff-slide .tradeoff-read-card p { font-size: 11px; line-height: 1.2; }

  .iam-map-slide .iam-map-control-label,
  .iam-map-slide .iam-map-button,
  .iam-map-slide .iam-map-selected > span,
  .iam-map-slide .iam-map-reading > strong,
  .iam-map-slide .iam-map-selected p,
  .iam-map-slide .iam-map-reading p,
  .iam-map-slide .iam-map-metrics span,
  .iam-map-slide .iam-map-region-chips span,
  .cdr-summary-slide .cdr-reading-card > span,
  .cdr-summary-slide .cdr-reading-card p,
  .process-system-slide .boundary-evidence-card > span,
  .process-system-slide .boundary-evidence-card strong,
  .process-system-slide .boundary-evidence-card p,
  .process-system-slide .boundary-not-equal span,
  .process-system-slide .boundary-gate-heading strong,
  .process-system-slide .boundary-gate-heading span,
  .process-system-slide .boundary-gate-row > strong,
  .process-system-slide .boundary-gate-row > span,
  .process-system-slide .boundary-gate-status,
  .process-system-slide .boundary-outcome strong,
  .process-system-slide .boundary-outcome p,
  .case-library-slide .case-library-group-heading p,
  .case-library-slide .case-library-case > p,
  .case-library-slide .case-library-case-details span,
  .case-library-slide .case-library-case-details b,
  .case-library-slide .case-library-scope > strong,
  .case-library-slide .case-library-scope > span,
  .resources-slide .resource-group-heading span,
  .resources-slide .resource-link-card strong,
  .resources-slide .resource-link-card p,
  .resources-slide .resource-link-card small,
  .resources-slide .resource-citation-strip strong,
  .resources-slide .resource-citation-strip span {
    font-size: 10px;
  }

  .premise-library-slide .premise-library-input > span,
  .premise-library-slide .premise-library-input strong,
  .premise-library-slide .premise-library-output strong,
  .premise-library-slide .premise-library-input p,
  .premise-library-slide .premise-library-output p,
  .premise-library-slide .premise-library-hub > span,
  .premise-library-slide .premise-library-hub p,
  .premise-library-slide .premise-library-api code,
  .premise-library-slide .premise-library-stats span,
  .premise-library-slide .premise-library-does strong,
  .premise-library-slide .premise-library-does span,
  .premise-history-slide .premise-history-tag,
  .premise-history-slide .premise-history-card p,
  .premise-history-slide .premise-history-reading strong,
  .premise-history-slide .premise-history-reading span,
  .premise-workflow-slide .premise-workflow-input strong,
  .premise-workflow-slide .premise-workflow-input p,
  .premise-workflow-slide .premise-workflow-step strong,
  .premise-workflow-slide .premise-workflow-step p,
  .premise-workflow-slide .premise-code-card,
  .premise-workflow-slide .premise-workflow-contract strong,
  .premise-workflow-slide .premise-workflow-contract span,
  .premise-ecosystem-slide .premise-ecosystem-stage strong,
  .premise-ecosystem-slide .premise-ecosystem-stage p,
  .premise-ecosystem-slide .premise-ecosystem-destination-number,
  .premise-ecosystem-slide .premise-ecosystem-destination strong,
  .premise-ecosystem-slide .premise-ecosystem-destination small,
  .premise-ecosystem-slide .premise-ecosystem-destination p,
  .premise-ecosystem-slide .premise-superstructure-note strong,
  .premise-ecosystem-slide .premise-superstructure-note span,
  .premise-analysis-slide .premise-analysis-heading span,
  .premise-analysis-slide .premise-analysis-equation strong,
  .premise-analysis-slide .premise-analysis-equation code,
  .premise-analysis-slide .premise-analysis-mode > p,
  .premise-analysis-slide .premise-analysis-dimensions strong,
  .premise-analysis-slide .premise-analysis-dimensions span,
  .premise-analysis-slide .premise-analysis-reading strong,
  .premise-analysis-slide .premise-analysis-reading span {
    font-size: 10px;
    line-height: 1.16;
  }
}

@media (min-width: 701px) and (max-height: 820px) {
  .system-tradeoff-slide .tradeoff-read-card strong { font-size: 10.5px; }
  .system-tradeoff-slide .tradeoff-read-card p { font-size: 10px; line-height: 1.15; }
}

/* Wide presentation screens: keep SVG aspect ratios from setting the slide
   height, while retaining a deliberately larger visual canvas than compact mode. */
@media (min-width: 1101px) and (min-height: 821px) {
  .premise-library-visual-slide .eyebrow,
  .premise-history-visual-slide .eyebrow,
  .premise-engine-slide .eyebrow,
  .premise-network-slide .eyebrow,
  .premise-scale-slide .eyebrow { margin-bottom: 5px; font-size: 12px; }
  .premise-library-visual-slide .title-block,
  .premise-history-visual-slide .title-block,
  .premise-engine-slide .title-block,
  .premise-network-slide .title-block,
  .premise-scale-slide .title-block { margin-bottom: 9px; }
  .premise-library-visual-slide .slide-title,
  .premise-history-visual-slide .slide-title,
  .premise-engine-slide .slide-title,
  .premise-scale-slide .slide-title { font-size: 46px; line-height: 1.02; }
  .premise-network-slide .slide-title { font-size: 42px; line-height: 1.02; }
  .premise-library-visual-slide .slide-subtitle,
  .premise-history-visual-slide .slide-subtitle,
  .premise-engine-slide .slide-subtitle,
  .premise-network-slide .slide-subtitle,
  .premise-scale-slide .slide-subtitle { margin-top: 6px; font-size: 19px; line-height: 1.2; }

  .premise-library-visual-layout { flex: 0 0 390px; height: 390px; min-height: 390px; }
  .premise-history-visual { flex: 0 0 350px; height: 350px; min-height: 350px; }
  .premise-engine-layout { flex: 0 0 390px; height: 390px; min-height: 390px; }
  .premise-network-layout { grid-template-columns: minmax(0, 1.45fr) minmax(340px, .62fr); flex: 0 0 375px; height: 375px; min-height: 375px; }
  .premise-scale-layout { grid-template-columns: minmax(0, .9fr) minmax(500px, 1.1fr); flex: 0 0 365px; height: 365px; min-height: 365px; }

  .premise-library-visual-slide .source-note,
  .premise-history-visual-slide .source-note,
  .premise-engine-slide .source-note,
  .premise-network-slide .source-note,
  .premise-scale-slide .source-note { margin-top: 4px; font-size: 9.5px; line-height: 1.12; }
  .premise-library-visual-slide .takeaway,
  .premise-history-visual-slide .takeaway,
  .premise-engine-slide .takeaway,
  .premise-network-slide .takeaway,
  .premise-scale-slide .takeaway { gap: 10px; margin-top: 5px; padding: 9px 12px; }
  .premise-library-visual-slide .takeaway-label,
  .premise-history-visual-slide .takeaway-label,
  .premise-engine-slide .takeaway-label,
  .premise-network-slide .takeaway-label,
  .premise-scale-slide .takeaway-label { font-size: 10px; }
  .premise-library-visual-slide .takeaway p,
  .premise-history-visual-slide .takeaway p,
  .premise-engine-slide .takeaway p,
  .premise-network-slide .takeaway p,
  .premise-scale-slide .takeaway p { font-size: 16px; line-height: 1.15; }
  .premise-history-visual-tag,
  .premise-role-row small { font-size: 10px; }
}

@media (min-width: 701px) and (min-height: 821px) and (max-height: 950px) {
  .ssp-narrative-slide,
  .anonymous-scenario-slide { padding-block: 17px 12px; }
}

/* Projector refinements for workshop slides 7–11. */
@media (min-width: 701px) and (min-height: 821px) {
  .iam-definition-slide .iam-meaning-card strong { font-size: 18px; }
  .iam-definition-slide .iam-meaning-card p { font-size: 13px; line-height: 1.2; }
  .iam-definition-slide .iam-experiment-heading span { font-size: 12px; }
  .iam-definition-slide .iam-experiment-step strong { font-size: 13px; }
  .iam-definition-slide .iam-experiment-step p { font-size: 11.5px; line-height: 1.16; }
  .iam-definition-slide .iam-mode-chip strong,
  .iam-definition-slide .iam-mode-chip span { font-size: 11px; }
  .iam-definition-slide .iam-driver-card strong { font-size: 12px; }
  .iam-definition-slide .iam-driver-card span { font-size: 11px; }
  .iam-definition-slide .iam-system-zone > strong { font-size: 14px; }
  .iam-definition-slide .iam-system-node-grid span { font-size: 11px; }
  .iam-definition-slide .iam-exchange strong { font-size: 11px; }
  .iam-definition-slide .iam-pathway-band strong { font-size: 12px; }
  .iam-definition-slide .iam-pathway-band span,
  .iam-definition-slide .iam-pathway-band b { font-size: 10.5px; }

  .iam-coverage-slide .iam-coverage-key {
    grid-template-columns: 42px minmax(0, 1fr);
  }
  .iam-coverage-slide .iam-coverage-key-symbol { font-size: 34px; }
  .iam-coverage-slide .iam-coverage-table-large tbody td { font-size: 30px; }

  .model-architecture-slide .model-architecture-heading strong { font-size: 17px; }
  .model-architecture-slide .model-architecture-heading span { font-size: 12px; }
  .model-architecture-slide .model-architecture-table th,
  .model-architecture-slide .model-architecture-table td {
    font-size: 13px;
    line-height: 1.2;
  }
  .model-architecture-slide .model-architecture-table thead th,
  .model-architecture-slide .model-architecture-table tbody th { font-size: 13px; }
  .model-architecture-slide .model-architecture-implications strong { font-size: 14px; }
  .model-architecture-slide .model-architecture-implications span {
    font-size: 12px;
    line-height: 1.2;
  }
}

@media (min-width: 701px) and (max-height: 820px) {
  .iam-definition-slide .iam-meaning-card p { font-size: 10.5px; }
  .iam-definition-slide .iam-experiment-heading span { font-size: 9.5px; }
  .iam-definition-slide .iam-experiment-step p,
  .iam-definition-slide .iam-mode-chip strong,
  .iam-definition-slide .iam-mode-chip span,
  .iam-definition-slide .iam-driver-card span,
  .iam-definition-slide .iam-system-node-grid span,
  .iam-definition-slide .iam-exchange strong,
  .iam-definition-slide .iam-pathway-band span,
  .iam-definition-slide .iam-pathway-band b { font-size: 9px; }

  .iam-coverage-slide .iam-coverage-key-symbol { font-size: 26px; }
  .iam-coverage-slide .iam-coverage-table-large tbody td { font-size: 22px; }

  .model-architecture-slide .model-architecture-heading strong { font-size: 13px; }
  .model-architecture-slide .model-architecture-heading span { font-size: 10px; }
  .model-architecture-slide .model-architecture-table th,
  .model-architecture-slide .model-architecture-table td,
  .model-architecture-slide .model-architecture-table thead th,
  .model-architecture-slide .model-architecture-table tbody th {
    font-size: 10.5px;
    line-height: 1.15;
  }
  .model-architecture-slide .model-architecture-implications strong { font-size: 11px; }
  .model-architecture-slide .model-architecture-implications span {
    font-size: 10px;
    line-height: 1.16;
  }
}

@media (min-width: 1101px) {
  .ssp-narrative-slide.has-backup-link > .title-block { padding-right: 0; }
  .ssp-narrative-slide.has-backup-link .slide-title {
    font-size: clamp(32px, 3vw, 48px);
    white-space: nowrap;
  }
}

.forcing-source-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  margin-top: 5px;
}

.forcing-source-row .source-note {
  min-width: 0;
  margin-top: 0;
}

.recommended-reading-link {
  flex: 0 0 auto;
  color: var(--psi-blue);
  font-size: 10px;
  font-weight: 800;
  line-height: 1.18;
  text-decoration: underline;
  text-decoration-color: rgba(0, 107, 143, .35);
  text-underline-offset: 2px;
  white-space: nowrap;
}

.recommended-reading-link:hover,
.recommended-reading-link:focus-visible {
  color: var(--teal);
  text-decoration-color: currentColor;
}

@media (max-width: 1100px) {
  .forcing-source-row {
    align-items: flex-start;
    flex-direction: column;
    gap: 3px;
  }

  .recommended-reading-link { white-space: normal; }
}

@page {
  size: 16in 9in;
  margin: 0;
}

/* Projector readability: keep the values in slide 19's heatmap cells, all copy
   in slide 20's limitation cards and slide 28's reading cards legible from the
   back of the room. */
@media (min-width: 701px) and (min-height: 821px) {
  .model-mapping-heatmap-slide .workshop-graph .annotation-text {
    font-size: 16px !important;
  }

  .limitations-slide .limitation-card h3 { font-size: 18px; }
  .limitations-slide .limitation-card p { font-size: 13px; line-height: 1.24; }
  .limitations-slide .limitation-model-label,
  .limitations-slide .limitation-model-chip { font-size: 11px; }

  .system-tradeoff-slide .tradeoff-read-card strong,
  .system-tradeoff-slide .tradeoff-finding-card strong { font-size: 14px; }
  .system-tradeoff-slide .tradeoff-read-card p,
  .system-tradeoff-slide .tradeoff-finding-card p { font-size: 12px; line-height: 1.2; }
  .system-tradeoff-slide .tradeoff-color-key span { font-size: 11px; }
}

@media (min-width: 701px) and (max-height: 820px) {
  .model-mapping-heatmap-slide .workshop-graph .annotation-text {
    font-size: 14px !important;
  }

  .limitations-slide .limitation-card h3 { font-size: 14px; }
  .limitations-slide .limitation-card p { font-size: 10px; line-height: 1.18; }
  .limitations-slide .limitation-model-label,
  .limitations-slide .limitation-model-chip { font-size: 9px; }
  .limitations-source-row { gap: 8px; margin-top: 3px; }
  .limitations-source-row .recommended-reading-link { font-size: 8px; }

  .system-tradeoff-slide .tradeoff-read-card strong,
  .system-tradeoff-slide .tradeoff-finding-card strong { font-size: 12px; }
  .system-tradeoff-slide .tradeoff-read-card p,
  .system-tradeoff-slide .tradeoff-finding-card p { font-size: 10.5px; line-height: 1.17; }
  .system-tradeoff-slide .tradeoff-color-key span { font-size: 10px; }
}

@media print {
  html,
  body {
    margin: 0;
    background: #fff;
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
  }

  body.workshop-printing {
    overflow: visible;
  }

  body.workshop-printing .app-shell {
    height: auto;
    display: block;
    overflow: visible;
    background: #fff;
  }

  body.workshop-printing .app-header,
  body.workshop-printing .progress-track,
  body.workshop-printing .slide-stage,
  body.workshop-printing .app-footer {
    display: none;
  }

  body.workshop-printing .print-deck {
    display: block;
  }

  body.workshop-printing .print-page {
    position: relative;
    width: 16in;
    height: 9in;
    margin: 0;
    overflow: hidden;
    break-after: page;
    page-break-after: always;
  }

  body.workshop-printing .print-slide-number {
    position: absolute;
    right: 24px;
    bottom: 14px;
    z-index: 10;
    display: block;
    font-size: 8px;
  }

  body.workshop-printing .print-page:last-child {
    break-after: auto;
    page-break-after: auto;
  }

  body.workshop-printing .print-page > .slide {
    width: 100%;
    height: 100%;
    min-height: 0;
    margin: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }

  body.workshop-printing .backup-link-button,
  body.workshop-printing .backup-return-button {
    display: none;
  }

  body.workshop-printing .has-backup-link > .title-block {
    padding-right: 0;
  }

  body.workshop-printing .modebar {
    display: none !important;
  }
}
