/* ==============================================================
   Reading Deck · extra slide styles
   (Layered on top of reading-deck.css which mirrors the Presenting Deck.)
   ============================================================== */

/* Slide 2 · Macro forces (3 cards, smaller than market-cards) */
.macro-layout { flex: 1; display: flex; flex-direction: column; }
.macro-top { max-width: 1600px; margin-bottom: 56px; }
.macro-top .title-a { font-size: 72px; }
.macro-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  flex: 1;
}
.macro-card {
  background: var(--navy-surface);
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 44px 40px;
  display: flex;
  flex-direction: column;
}
.macro-card .macro-v {
  font-family: var(--font-display);
  font-size: 120px;
  color: var(--blue);
  line-height: 0.95;
  font-weight: 400;
  letter-spacing: -0.03em;
  margin-bottom: 28px;
}
.macro-card .macro-v .u { font-size: 72px; }
.macro-card .macro-h {
  font-size: 26px;
  color: var(--fg-1);
  font-weight: 600;
  letter-spacing: -0.01em;
  margin-bottom: 18px;
  line-height: 1.2;
}
.macro-card .macro-d {
  font-size: 18px;
  color: var(--fg-2);
  line-height: 1.55;
  flex: 1;
}
.macro-card .macro-src {
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid var(--border);
  font-size: 13px;
  color: var(--fg-3);
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-weight: 600;
}

/* Slide 13 · Expansion (reuses market-cards + new expansion timeline) */
.expansion-layout { flex: 1; display: flex; flex-direction: column; }
.expansion-top { max-width: 1600px; margin-bottom: 44px; }
.expansion-top .title-a { font-size: 68px; }
.expansion-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  margin-bottom: 32px;
}
.exp-card {
  background: var(--navy-surface);
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 36px 32px;
}
.exp-card .exp-v {
  font-family: var(--font-display);
  font-size: 84px;
  color: var(--blue);
  line-height: 0.95;
  font-weight: 400;
  letter-spacing: -0.03em;
  margin-bottom: 18px;
}
.exp-card .exp-v .u { font-size: 56px; }
.exp-card .exp-h {
  font-size: 22px;
  color: var(--fg-1);
  font-weight: 600;
  margin-bottom: 14px;
  letter-spacing: -0.01em;
}
.exp-card .exp-d {
  font-size: 16px;
  color: var(--fg-2);
  line-height: 1.5;
}
.exp-phases {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  border-top: 1px solid var(--border);
  padding-top: 32px;
}
.exp-phases--five {
  grid-template-columns: repeat(5, 1fr);
  gap: 18px;
}
.exp-phases--five .exp-phase .nm { font-size: 26px; }
.exp-phases--five .exp-phase .geo { font-size: 14px; }
.exp-phases--five .exp-phase .desc { font-size: 13px; line-height: 1.45; }
.exp-footnote {
  margin-top: 24px;
  padding-top: 18px;
  border-top: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 12px;
  color: var(--fg-3);
  line-height: 1.45;
}
.exp-footnote sup { color: var(--blue); font-weight: 700; }

/* Three-stat variant (fits one row, avoids cut-off) */
.tr-stats--three { grid-template-columns: repeat(3, 1fr) !important; }

/* Shadow AI warning flag on macro card */
.macro-flag {
  margin-top: 14px;
  padding: 10px 12px;
  background: rgba(239, 68, 68, 0.08);
  border-left: 3px solid #ef4444;
  border-radius: 4px;
  font-size: 14px;
  color: #fca5a5;
  line-height: 1.45;
}
.macro-flag strong { color: #fecaca; }

/* Higher contrast in light mode */
body.light-mode .macro-flag {
  background: rgba(185, 28, 28, 0.08);
  border-left-color: #b91c1c;
  color: #991b1b;
}
body.light-mode .macro-flag strong { color: #7f1d1d; }
.exp-phase .yrs {
  font-size: 14px;
  color: var(--blue);
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-weight: 700;
  margin-bottom: 10px;
}
.exp-phase .nm {
  font-family: var(--font-display);
  font-size: 32px;
  color: var(--fg-1);
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1.05;
  margin-bottom: 6px;
}
.exp-phase .geo {
  font-size: 16px;
  color: var(--fg-3);
  font-weight: 500;
  margin-bottom: 12px;
}
.exp-phase .desc {
  font-size: 15px;
  color: var(--fg-2);
  line-height: 1.5;
}

/* Slide 14 · The Ask (reuse ask-layout + unlock list) */
.ask-unlock {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 18px;
  margin-bottom: 32px;
}
.unlock-card {
  background: var(--navy-surface);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 24px 22px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.unlock-card .u-num {
  font-family: var(--font-display);
  font-size: 42px;
  color: var(--blue);
  line-height: 1;
  font-weight: 400;
}
.unlock-card .u-head {
  font-size: 17px;
  color: var(--fg-1);
  font-weight: 600;
  line-height: 1.3;
}
.unlock-card .u-desc {
  font-size: 14px;
  color: var(--fg-3);
  line-height: 1.5;
}
.series-a-callout {
  background: var(--navy-surface);
  border: 1.5px dashed rgba(77, 141, 247, 0.5);
  border-radius: 14px;
  padding: 22px 28px;
  margin-top: 20px;
}
.series-a-callout .l {
  font-size: 13px;
  color: var(--blue);
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-weight: 700;
  margin-bottom: 8px;
}
.series-a-callout .t {
  font-size: 18px;
  color: var(--fg-1);
  line-height: 1.55;
  font-weight: 500;
}

/* Slide 15 / 24 · Contact / break */
.contact-slide {
  padding: 140px 120px !important;
  justify-content: center !important;
  background:
    radial-gradient(ellipse 1100px 800px at 12% 105%, rgba(77, 141, 247, 0.20) 0%, transparent 60%),
    radial-gradient(ellipse 800px 600px at 105% -5%, rgba(77, 141, 247, 0.12) 0%, transparent 60%),
    var(--navy-base) !important;
}
.contact-body { max-width: 1400px; }
.contact-logo {
  font-size: 72px;
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--fg-1);
  margin-bottom: 44px;
}
.contact-logo .ai { color: var(--blue); }
.contact-headline {
  font-family: var(--font-display);
  font-size: 96px;
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: var(--fg-1);
  font-weight: 400;
  margin-bottom: 44px;
}
.contact-headline .em { color: var(--blue); font-style: italic; }
.contact-round {
  font-size: 26px;
  color: var(--fg-2);
  letter-spacing: 0.02em;
  margin-bottom: 56px;
  padding-bottom: 28px;
  border-bottom: 1px solid var(--border);
  max-width: 1100px;
}
.contact-details {
  display: flex;
  gap: 96px;
  align-items: flex-end;
  justify-content: space-between;
}
.contact-person .name {
  font-family: var(--font-display);
  font-size: 52px;
  color: var(--fg-1);
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1;
  margin-bottom: 16px;
}
.contact-person .email {
  display: inline-block;
  font-size: 24px;
  color: var(--blue);
  text-decoration: none;
  letter-spacing: -0.01em;
}
.contact-foot {
  font-size: 18px;
  color: var(--fg-3);
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-weight: 500;
  text-align: right;
}

/* Slide 12 · Competitive positioning v2 · 2x2 matrix + side panels */
.comp2-layout { flex: 1; display: flex; flex-direction: column; min-height: 0; }
.comp2-top { margin-bottom: 16px; max-width: 1750px; }
.comp2-top .title-a { font-size: 40px; line-height: 1.08; }
.comp2-top .sub-a { font-size: 16px; max-width: 1500px; margin-top: 10px; }
.comp2-body {
  flex: 1;
  display: grid;
  grid-template-columns: 1.55fr 1fr;
  gap: 24px;
  min-height: 0;
}
.comp2-matrix {
  position: relative;
  display: grid;
  grid-template-columns: 28px 1fr;
  grid-template-rows: 1fr 28px;
  gap: 8px;
}
.cm-yaxis {
  grid-row: 1; grid-column: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  padding: 8px 0;
}
.cm-yaxis span {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-size: 11px;
  color: var(--fg-3);
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-weight: 700;
  white-space: nowrap;
}
.cm-yaxis .cm-yax-t { color: var(--blue); }
.cm-xaxis {
  grid-row: 2; grid-column: 2;
  display: flex;
  justify-content: space-around;
  align-items: center;
  font-size: 11px;
  color: var(--fg-3);
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-weight: 700;
}
.cm-xaxis .cm-xax-r { color: var(--blue); }
.cm-grid {
  grid-row: 1; grid-column: 2;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 10px;
}
.cm-quad {
  background: var(--navy-surface);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 12px 14px 12px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-height: 0;
  overflow: hidden;
}
.cm-quad.highlight {
  background: rgba(77,141,247,0.06);
  border-color: rgba(77,141,247,0.45);
  box-shadow: 0 0 0 1px rgba(77,141,247,0.2);
}
.cm-qhdr {
  display: flex;
  flex-direction: column-reverse;
  align-items: flex-start;
  gap: 2px;
}
.cm-qhdr .cm-qttl { min-width: 0; white-space: nowrap; }
.cm-qttl {
  font-family: var(--font-display);
  font-size: 18px;
  color: var(--fg-1);
  letter-spacing: -0.01em;
  line-height: 1.1;
}
.cm-qtag {
  font-size: 9px;
  color: var(--fg-3);
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-weight: 700;
  white-space: nowrap;
}
.cm-qtag.hot { color: var(--blue); }
.cm-qdesc {
  font-size: 12px;
  color: var(--fg-3);
  line-height: 1.45;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--border);
}
.cm-logos {
  display: flex;
  flex-direction: column;
  gap: 2px;
  overflow: hidden;
}
.cm-lg {
  font-size: 11.5px;
  color: var(--fg-1);
  font-weight: 600;
  line-height: 1.3;
  padding: 1px 0;
}
.cm-lg span {
  color: var(--fg-3);
  font-weight: 400;
  display: block;
  font-size: 10.5px;
  margin-top: 0px;
}
.cm-lg.wai {
  background: rgba(77,141,247,0.12);
  border: 1px solid rgba(77,141,247,0.4);
  border-radius: 8px;
  padding: 6px 10px;
  margin-bottom: 2px;
}
.cm-lg.wai .wai-badge {
  display: inline-block;
  color: var(--blue);
  font-weight: 700;
  font-size: 13px;
  margin-bottom: 0;
}
.cm-lg.wai span { color: var(--fg-2); font-size: 11px; }
.cm-lg.partner { color: var(--blue); }
.cm-lg.partner::before {
  content: '◇ ';
  color: var(--blue);
}

/* Side panel */
.comp2-side {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: 0;
}
.cs-card {
  background: var(--navy-surface);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 16px 20px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.cs-card.watch {
  background: rgba(248, 148, 107, 0.04);
  border-color: rgba(248, 148, 107, 0.25);
}
.cs-hdr {
  font-size: 11px;
  color: var(--blue);
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-weight: 700;
}
.cs-hdr.warn { color: #f8946b; }
.cs-name {
  font-family: var(--font-display);
  font-size: 22px;
  color: var(--fg-1);
  letter-spacing: -0.01em;
}
.cs-meta {
  font-family: var(--font-body, 'Inter');
  font-size: 12px;
  color: var(--fg-3);
  font-weight: 400;
  letter-spacing: 0;
}
.cs-bullets {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.cs-bullets.tight { gap: 4px; }
.cs-b {
  font-size: 13px;
  color: var(--fg-1);
  line-height: 1.4;
  display: flex;
  gap: 8px;
  align-items: baseline;
}
.cs-b span {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 4px;
  flex-shrink: 0;
  white-space: nowrap;
}
.cs-b span.ok { background: rgba(255,255,255,0.06); color: var(--fg-3); }
.cs-b span.us { background: rgba(77,141,247,0.15); color: var(--blue); }
.cs-b span.warn { background: rgba(248,148,107,0.15); color: #f8946b; }
.cs-wins {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px 14px;
}
.cw {
  display: flex;
  gap: 10px;
  font-size: 12px;
  color: var(--fg-2);
  line-height: 1.4;
}
.cw-n {
  font-family: var(--font-display);
  font-size: 20px;
  color: var(--blue);
  line-height: 1;
  flex-shrink: 0;
  min-width: 18px;
}
.cw strong { color: var(--fg-1); font-weight: 600; }

/* Slide 16 · Platform / Office columns (compact variant) */
.office-v2-layout { flex: 1; display: flex; flex-direction: column; }
.office-v2-top { max-width: 1700px; margin-bottom: 36px; }
.office-v2-top .title-a { font-size: 56px; line-height: 1.05; }
.office-v2-top .sub-a { max-width: 1200px; }

/* Slide 11 · Why now · visual timeline */
.whynow-layout .whynow-top { margin-bottom: 32px; }
.whynow-timeline {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 6px;
  background: var(--navy-surface);
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 22px 32px 24px;
  position: relative;
}
.wt-axis {
  position: relative;
  height: 38px;
  margin-left: 220px;
  margin-right: 20px;
  border-bottom: 1px dashed var(--border);
}
.wt-tick {
  position: absolute;
  bottom: 0;
  transform: translateX(-50%);
  font-size: 12px;
  color: var(--fg-3);
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-weight: 600;
  padding-bottom: 6px;
}
.wt-tick::after {
  content: '';
  position: absolute;
  left: 50%; bottom: -4px;
  width: 1px; height: 8px;
  background: var(--border-strong);
}
.wt-window {
  position: absolute;
  top: -6px; bottom: -2px;
  background: rgba(77,141,247,0.08);
  border-left: 2px solid rgba(77,141,247,0.5);
  border-right: 2px solid rgba(77,141,247,0.5);
  border-radius: 2px;
  z-index: 0;
}
.wt-window span {
  position: absolute;
  top: -22px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 11px;
  color: var(--blue);
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-weight: 700;
  white-space: nowrap;
}
.wt-now {
  position: absolute;
  top: 0; bottom: -6px;
  width: 0; border-left: 2px solid var(--blue);
  z-index: 1;
}
.wt-now span {
  position: absolute;
  bottom: -24px;
  left: -28px;
  font-size: 10px;
  font-weight: 700;
  color: var(--blue);
  letter-spacing: 0.22em;
  background: var(--navy-surface);
  padding: 2px 6px;
  border-radius: 4px;
}
.wt-lane {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 20px;
  align-items: stretch;
  padding: 12px 0;
  border-top: 1px solid var(--border);
}
.wt-lane:first-of-type { border-top: none; }
.wt-lane-head {
  display: flex;
  flex-direction: column;
  gap: 6px;
  justify-content: center;
  padding-right: 20px;
  border-right: 1px solid var(--border);
}
.wt-lane-lbl {
  font-size: 18px;
  color: var(--blue);
  text-transform: uppercase;
  letter-spacing: 0.2em;
  font-weight: 700;
}
.wt-lane-desc {
  font-size: 13px;
  color: var(--fg-3);
  line-height: 1.45;
}
.wt-lane-track {
  position: relative;
  min-height: 64px;
  background: linear-gradient(to right, transparent, rgba(255,255,255,0.015), transparent);
}
.wt-lane-track::before {
  content: '';
  position: absolute;
  left: 0; right: 20px;
  top: 50%;
  height: 1px;
  background: var(--border);
}
.wt-m {
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  white-space: nowrap;
  z-index: 2;
}
.wt-m::before {
  content: '';
  width: 10px; height: 10px;
  border-radius: 50%;
  background: var(--navy-elev);
  border: 2px solid var(--border-strong);
  margin-bottom: 3px;
}
.wt-m-d {
  font-size: 10px;
  color: var(--fg-3);
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-weight: 700;
}
.wt-m-t {
  font-size: 12px;
  color: var(--fg-1);
  font-weight: 500;
}
.wt-m.hot::before {
  background: var(--blue);
  border-color: var(--blue);
  box-shadow: 0 0 0 4px rgba(77,141,247,0.2);
}
.wt-m.hot .wt-m-d { color: var(--blue); }
.wt-m.wai .wt-m-t { color: var(--blue); font-weight: 700; }

/* Keep old whynow-tracks styles working for safety — no longer used */

/* Firm map · agent deployment across front/middle/back */
.firm-map { flex: 1; display: flex; flex-direction: column; gap: 14px; }
.firm-map-bar {
  background: rgba(77,141,247,0.08);
  border: 1px solid rgba(77,141,247,0.3);
  border-radius: 14px;
  padding: 18px 24px;
  display: flex;
  align-items: center;
  gap: 28px;
}
.firm-map-bar.foundation {
  background: var(--navy-surface);
  border-color: var(--border);
}
.fmb-lbl {
  font-size: 13px;
  color: var(--blue);
  text-transform: uppercase;
  letter-spacing: 0.2em;
  font-weight: 700;
  min-width: 160px;
}
.firm-map-bar.foundation .fmb-lbl { color: var(--fg-3); }
.fmb-chips { display: flex; gap: 12px; flex-wrap: wrap; }
.fmb-chip {
  background: rgba(255,255,255,0.04);
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 8px 16px;
  font-size: 15px;
  color: var(--fg-1);
  font-weight: 500;
}
.firm-map-cols {
  flex: 1;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}
.fmc {
  background: var(--navy-surface);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 22px 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.fmc-hdr { display: flex; align-items: baseline; gap: 14px; }
.fmc-tag {
  font-size: 12px;
  color: var(--blue);
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-weight: 700;
  background: rgba(77,141,247,0.12);
  padding: 5px 12px;
  border-radius: 999px;
}
.fmc-ttl {
  font-family: var(--font-display);
  font-size: 24px;
  color: var(--fg-1);
  letter-spacing: -0.01em;
  white-space: nowrap;
}
.fmc-users {
  font-size: 14px;
  color: var(--fg-3);
  line-height: 1.4;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--border);
}
.fmc-agents { display: flex; flex-direction: column; gap: 8px; }
.fma {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 16px;
  color: var(--fg-2);
  font-weight: 500;
  padding: 10px 14px;
  border-radius: 10px;
  background: rgba(255,255,255,0.02);
  border: 1px solid transparent;
}
.fma .fd {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--fg-4);
  flex-shrink: 0;
}
.fma .sx {
  margin-left: auto;
  font-size: 12px;
  color: var(--fg-4);
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-weight: 600;
}
.fma.live {
  background: rgba(77,141,247,0.08);
  border-color: rgba(77,141,247,0.3);
  color: var(--fg-1);
}
.fma.live .fd { background: var(--blue); box-shadow: 0 0 0 4px rgba(77,141,247,0.2); }
.fma.live .sx { color: var(--blue); }
.fma.wedge {
  background: rgba(77,141,247,0.14);
  border-color: rgba(77,141,247,0.5);
}
.fmc-foot {
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px solid var(--border);
  font-size: 13px;
  color: var(--fg-3);
  line-height: 1.5;
}

/* Slide 17 GTM v2 extended funnel pattern */
.gtm2-layout { flex: 1; display: grid; grid-template-columns: 1fr 1.15fr; gap: 72px; }
.gtm2-left .title-a { font-size: 60px; }
.gtm2-funnel-visual {
  margin-top: 32px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.gtm2-bar {
  padding: 16px 22px;
  border-radius: 10px;
  background: var(--navy-elev);
  border: 1px solid var(--border);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
}
.gtm2-bar.s1 { width: 100%; }
.gtm2-bar.s2 { width: 86%; margin-left: auto; margin-right: auto; }
.gtm2-bar.s3 { width: 72%; margin-left: auto; margin-right: auto; border-color: rgba(77,141,247,0.4); }
.gtm2-bar.s4 { width: 56%; margin-left: auto; margin-right: auto; background: var(--blue); border-color: var(--blue); }
.gtm2-bar .lbl {
  font-size: 11px;
  color: var(--fg-3);
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-weight: 700;
}
.gtm2-bar.s4 .lbl { color: rgba(255,255,255,0.85); }
.gtm2-bar .val {
  font-size: 18px;
  color: var(--fg-1);
  font-weight: 600;
}
.gtm2-bar.s4 .val { color: #fff; }
.gtm2-caption {
  margin-top: 18px;
  padding: 18px 22px;
  border: 1.5px dashed rgba(77, 141, 247, 0.5);
  border-radius: 10px;
  background: rgba(77,141,247,0.06);
  font-size: 16px;
  color: var(--fg-2);
  line-height: 1.5;
  text-align: center;
}
.gtm2-caption strong { color: var(--blue); }
.gtm2-phases { padding-top: 0; }
.gtm2-phases h3 {
  font-family: var(--font-display);
  font-size: 36px;
  font-weight: 400;
  color: var(--fg-1);
  letter-spacing: -0.02em;
  line-height: 1.1;
  margin-bottom: 24px;
}
.gtm2-phase {
  border-top: 1px solid var(--border);
  padding: 22px 0;
}
.gtm2-phase .when {
  font-size: 13px;
  color: var(--blue);
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-weight: 700;
  margin-bottom: 6px;
}
.gtm2-phase .title {
  font-size: 22px;
  color: var(--fg-1);
  font-weight: 600;
  letter-spacing: -0.01em;
  margin-bottom: 8px;
}
.gtm2-phase .body {
  font-size: 16px;
  color: var(--fg-2);
  line-height: 1.55;
}

/* Slide 18 · Reference clients */
.ref-layout { flex: 1; display: flex; flex-direction: column; }
.ref-top { max-width: 1600px; margin-bottom: 44px; }
.ref-top .title-a { font-size: 60px; }
.ref-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
  margin-bottom: 32px;
  flex: 1;
}
.ref-card {
  background: var(--navy-surface);
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 36px 32px;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.ref-card .ref-name {
  font-family: var(--font-display);
  font-size: 36px;
  color: var(--fg-1);
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1.05;
}
.ref-card .ref-type {
  font-size: 14px;
  color: var(--fg-3);
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-weight: 600;
}
.ref-card .ref-badge {
  display: inline-block;
  font-size: 13px;
  color: var(--blue);
  background: rgba(77,141,247,0.12);
  border: 1px solid rgba(77,141,247,0.35);
  padding: 6px 12px;
  border-radius: 6px;
  font-weight: 600;
  align-self: flex-start;
}
.ref-card .ref-quote {
  font-size: 17px;
  color: var(--fg-2);
  line-height: 1.6;
  font-style: italic;
  padding-top: 18px;
  border-top: 1px solid var(--border);
  flex: 1;
}
.ref-card .ref-quote::before { content: '"'; color: var(--blue); font-weight: 700; }
.ref-card .ref-quote::after { content: '"'; color: var(--blue); font-weight: 700; }
.ref-card .ref-author {
  font-size: 14px;
  color: var(--fg-3);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  font-weight: 600;
}
.ref-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  background: var(--navy-surface);
  border: 1px solid var(--border);
  border-radius: 14px;
}
.ref-stat {
  padding: 24px 32px;
  border-right: 1px solid var(--border);
  text-align: center;
}
.ref-stat:last-child { border-right: none; }
.ref-stat .v {
  font-family: var(--font-display);
  font-size: 44px;
  color: var(--blue);
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1;
  margin-bottom: 10px;
}
.ref-stat .l {
  font-size: 14px;
  color: var(--fg-3);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  font-weight: 600;
}

/* Slide 19 · Client Advisory Board */
.cab-layout { flex: 1; display: flex; flex-direction: column; }
.cab-top { max-width: 1600px; margin-bottom: 72px; }
.cab-top .title-a { font-size: 72px; }
.cab-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  flex: 1;
  align-content: center;
}
.cab-card {
  background: var(--navy-surface);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 48px 40px;
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.cab-card .cab-num {
  font-family: var(--font-display);
  font-size: 72px;
  color: var(--blue);
  line-height: 1;
  font-weight: 400;
  letter-spacing: -0.02em;
}
.cab-card .cab-text {
  font-size: 24px;
  color: var(--fg-1);
  line-height: 1.4;
  font-weight: 500;
  letter-spacing: -0.01em;
}

/* Slide 20 · Marketplace logos */
.mkt-layout { flex: 1; display: flex; flex-direction: column; }
.mkt-top { max-width: 1600px; margin-bottom: 20px; }
.mkt-top .title-a { font-size: 56px; }
.mkt-top .sub-a { margin-top: 10px; }
.mkt-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  background: var(--navy-surface);
  border: 1px solid var(--border);
  border-radius: 14px;
  margin-bottom: 18px;
}
.mkt-stat {
  padding: 18px 32px;
  border-right: 1px solid var(--border);
  text-align: center;
}
.mkt-stat:last-child { border-right: none; }
.mkt-stat .v {
  font-family: var(--font-display);
  font-size: 44px;
  color: var(--blue);
  line-height: 1;
  font-weight: 400;
  letter-spacing: -0.02em;
}
.mkt-stat .l {
  font-size: 12px;
  color: var(--fg-3);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  font-weight: 600;
  margin-top: 8px;
}
.mkt-cats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(2, 1fr);
  gap: 12px;
  flex: 1;
  margin-top: 2px;
  min-height: 0;
}
.mkt-cat {
  background: var(--navy-surface);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 12px 18px 14px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-height: 0;
}
.mkt-cat-next {
  background: transparent;
  border-style: dashed;
}
.mkt-cat-hdr {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--border);
}
.mkt-cat-name {
  font-family: var(--font-display);
  font-size: 22px;
  color: var(--fg-1);
  letter-spacing: -0.01em;
}
.mkt-cat-next .mkt-cat-name { color: var(--fg-3); }
.mkt-cat-rev {
  font-size: 11px;
  color: var(--blue);
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-weight: 700;
}
.mkt-cat-next .mkt-cat-rev { color: var(--fg-4); }
.mkt-cat-logos {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.mkt-cat .mkt-logo {
  padding: 7px 14px;
  font-size: 14px;
  min-height: 0;
  justify-content: flex-start;
  border-radius: 8px;
  background: rgba(255,255,255,0.025);
  font-weight: 500;
}
.mkt-cat-next .mkt-logo {
  background: transparent;
  border-style: dashed;
  color: var(--fg-3);
}
.mkt-foot {
  margin-top: 12px;
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 10px 20px;
  background: rgba(77,141,247,0.08);
  border: 1px solid rgba(77,141,247,0.28);
  border-radius: 12px;
}
.mkt-foot-l {
  font-size: 12px;
  color: var(--blue);
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-weight: 700;
  min-width: 220px;
}
.mkt-foot-t {
  font-size: 16px;
  color: var(--fg-2);
  line-height: 1.5;
}
.mkt-foot-t strong { color: var(--fg-1); font-weight: 600; }
.mkt-logos {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 16px;
  flex: 1;
}
.mkt-logo {
  background: var(--navy-surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 24px 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-size: 20px;
  font-weight: 600;
  color: var(--fg-1);
  letter-spacing: -0.01em;
  min-height: 72px;
}
.mkt-logo.hl {
  background: rgba(77,141,247,0.08);
  border-color: rgba(77,141,247,0.3);
  color: var(--blue);
}

/* Slide 21 · Roadmap */
.rm-layout { flex: 1; display: flex; flex-direction: column; }
.rm-top { max-width: 1600px; margin-bottom: 44px; }
.rm-top .title-a { font-size: 68px; }
.rm-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
  flex: 1;
}
.rm-card {
  background: var(--navy-surface);
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 36px 32px;
  border-top: 4px solid var(--blue);
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.rm-card .rm-stage {
  font-size: 14px;
  color: var(--blue);
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-weight: 700;
}
.rm-card .rm-period {
  font-family: var(--font-display);
  font-size: 44px;
  color: var(--fg-1);
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1;
}
.rm-card .rm-badge {
  display: inline-block;
  font-size: 12px;
  color: var(--blue);
  background: rgba(77,141,247,0.12);
  border: 1px solid rgba(77,141,247,0.35);
  padding: 6px 12px;
  border-radius: 6px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  align-self: flex-start;
}
.rm-card ul {
  list-style: none;
  margin: 12px 0 0;
  padding: 20px 0 0;
  border-top: 1px solid var(--border);
}
.rm-card li {
  font-size: 17px;
  color: var(--fg-2);
  line-height: 1.45;
  padding: 10px 0;
  border-bottom: 1px solid var(--border);
  position: relative;
  padding-left: 22px;
}
.rm-card li:last-child { border-bottom: none; }
.rm-card li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 18px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--blue);
  opacity: 0.5;
}
.rm-foot {
  margin-top: 28px;
  padding: 20px 28px;
  background: var(--navy-surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  font-size: 17px;
  color: var(--fg-2);
  line-height: 1.55;
  font-style: italic;
}

/* Slide 22 Financial projections */
.fin-layout { flex: 1; display: flex; flex-direction: column; min-height: 0; }
.fin-top { max-width: 1600px; margin-bottom: 24px; }
.fin-top .title-a { font-size: 56px; }
.fin-top .sub-a { font-size: 22px; }
.fin-grid {
  flex: 1;
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 24px;
  min-height: 0;
}
.fin-charts { display: flex; flex-direction: column; gap: 16px; min-height: 0; }
.fin-chart {
  background: var(--navy-surface);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 16px 22px 8px;
  display: flex;
  flex-direction: column;
}
.fin-chart-hd {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 6px;
}
.fin-chart-title {
  font-family: var(--font-display);
  font-size: 22px;
  letter-spacing: -0.01em;
  color: var(--fg-1);
  white-space: nowrap;
}
.fin-legend { display: flex; gap: 14px; }
.fl-item {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 11px;
  color: var(--fg-3);
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-weight: 600;
}
.fl-sw { width: 12px; height: 12px; border-radius: 3px; display: inline-block; }
.fl-sw.arr { background: var(--blue); }
.fl-sw.rev { background: rgba(77, 141, 247, 0.35); border: 1px solid rgba(77, 141, 247, 0.6); }
.fl-sw.ebitda { background: #f3c969; border-radius: 50%; }
.fl-sw.cash { background: var(--blue); border-radius: 50%; }
.fl-sw.raise { background: transparent; border: 1px dashed rgba(255,255,255,0.55); }

.fin-svg {
  width: 100%;
  height: 220px;
  overflow: visible;
}
.fin-svg .grid line { stroke: rgba(255,255,255,0.08); stroke-width: 1; }
.fin-svg .zero { stroke: rgba(255,255,255,0.35); stroke-width: 1.2; stroke-dasharray: 4 4; }
.fin-svg .axis text {
  font-family: var(--font-sans);
  font-size: 12px;
  fill: var(--fg-3);
  text-anchor: end;
  font-variant-numeric: tabular-nums;
}
.fin-svg .axis-x text {
  font-family: var(--font-sans);
  font-size: 13px;
  fill: var(--fg-2);
  text-anchor: middle;
  font-weight: 600;
  letter-spacing: 0.02em;
}
.fin-svg .b-arr { fill: var(--blue); }
.fin-svg .b-rev { fill: rgba(77, 141, 247, 0.32); stroke: rgba(77, 141, 247, 0.7); stroke-width: 1; }
.fin-svg .bar-v {
  font-family: var(--font-display);
  font-size: 14px;
  fill: var(--fg-2);
  text-anchor: middle;
  font-variant-numeric: tabular-nums;
}
.fin-svg .bar-v.hl { fill: var(--blue); font-size: 18px; font-weight: 600; }

.fin-svg .cash-area { fill: rgba(77, 141, 247, 0.10); }
.fin-svg .cash-line { stroke: var(--blue); stroke-width: 2.5; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.fin-svg .cash-dots circle { fill: var(--blue); stroke: var(--navy-surface); stroke-width: 2; }
.fin-svg .ebitda-line { stroke: #f3c969; stroke-width: 2.5; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.fin-svg .ebitda-dots circle { fill: #f3c969; stroke: var(--navy-surface); stroke-width: 2; }
.fin-svg .pt-v {
  font-family: var(--font-display);
  font-size: 13px;
  text-anchor: middle;
  font-variant-numeric: tabular-nums;
}
.fin-svg .pt-v.cash-v { fill: var(--blue); font-size: 16px; font-weight: 600; }
.fin-svg .pt-v.ebitda-v.pos { fill: #f3c969; font-weight: 600; }
.fin-svg .pt-v.ebitda-v.neg { fill: rgba(243, 201, 105, 0.75); font-size: 12px; }
.fin-svg .raise-line { stroke: rgba(255,255,255,0.3); stroke-width: 1; stroke-dasharray: 3 5; }
.fin-svg .raise-pill { fill: rgba(77, 141, 247, 0.18); stroke: rgba(77, 141, 247, 0.55); stroke-width: 1; }
.fin-svg .raise-pill.seed { fill: rgba(255,255,255,0.06); stroke: rgba(255,255,255,0.3); }
.fin-svg .raise-txt {
  font-family: var(--font-sans);
  font-size: 11px;
  fill: var(--fg-1);
  text-anchor: middle;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.fin-side { display: flex; flex-direction: column; gap: 16px; min-height: 0; }
.fin-table-wrap {
  background: var(--navy-surface);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 4px 0;
}
.fin-table {
  width: 100%;
  border-collapse: collapse;
  font-variant-numeric: tabular-nums;
}
.fin-table th {
  font-size: 11px;
  color: var(--fg-3);
  text-transform: uppercase;
  letter-spacing: 0.2em;
  font-weight: 700;
  padding: 14px 18px;
  text-align: left;
  border-bottom: 1px solid var(--border);
}
.fin-table th:not(:first-child) { text-align: right; }
.fin-table td {
  font-size: 16px;
  color: var(--fg-1);
  padding: 12px 18px;
  border-bottom: 1px solid var(--border);
  font-weight: 500;
  letter-spacing: -0.01em;
}
.fin-table tr:last-child td { border-bottom: none; }
.fin-table td:not(:first-child) { text-align: right; }
.fin-table td:first-child {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 18px;
  letter-spacing: -0.02em;
  color: var(--fg-2);
}
.fin-table td.pos { color: var(--blue); font-weight: 600; }
.fin-table td.neg { color: rgba(243, 201, 105, 0.85); }

.fin-key {
  background: var(--navy-surface);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 14px 22px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.fin-key-row {
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 14px;
  align-items: baseline;
  padding: 6px 0;
  border-bottom: 1px solid var(--border);
}
.fin-key-row:last-child { border-bottom: none; }
.fkr-k {
  font-size: 10px;
  color: var(--fg-3);
  text-transform: uppercase;
  letter-spacing: 0.2em;
  font-weight: 700;
}
.fkr-v {
  font-size: 14px;
  color: var(--fg-1);
  font-weight: 500;
  line-height: 1.4;
}


/* Slide 21 · Roadmap v2 · horizontal 4-lane timeline */
.rm2-timeline {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 12px;
  background: var(--navy-surface);
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 28px 32px 20px;
  position: relative;
  min-height: 0;
}
.rm2-axis {
  position: relative;
  height: 28px;
  margin-left: 220px;
  margin-right: 10px;
  border-bottom: 1px dashed var(--border);
}
.rm2-tick {
  position: absolute;
  top: 0;
  transform: translateX(-50%);
  font-size: 11px;
  color: var(--fg-3);
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-weight: 700;
}
.rm2-tick::after {
  content: '';
  position: absolute;
  left: 50%; bottom: -8px;
  width: 1px; height: 6px;
  background: var(--border-strong);
}
.rm2-now {
  position: absolute;
  top: -6px; bottom: -10px;
  border-left: 2px solid var(--blue);
  z-index: 2;
}
.rm2-now span {
  position: absolute;
  top: -22px;
  left: -18px;
  font-size: 10px;
  font-weight: 700;
  color: var(--blue);
  letter-spacing: 0.22em;
  background: var(--navy-surface);
  padding: 2px 6px;
  border-radius: 4px;
  text-transform: uppercase;
}
.rm2-lanes {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.rm2-lane {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 20px;
  align-items: stretch;
  padding: 10px 0;
  border-top: 1px solid var(--border);
  flex: 1;
}
.rm2-lane:first-of-type { border-top: none; }
.rm2-lane-hdr {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
  padding-right: 20px;
  border-right: 1px solid var(--border);
}
.rm2-lane-n {
  font-size: 15px;
  color: var(--blue);
  text-transform: uppercase;
  letter-spacing: 0.2em;
  font-weight: 700;
}
.rm2-lane-d {
  font-size: 12px;
  color: var(--fg-3);
  line-height: 1.4;
}
.rm2-lane-track {
  position: relative;
  min-height: 60px;
}
.rm2-bar {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  padding: 8px 12px;
  border-radius: 8px;
  font-size: 12px;
  color: var(--fg-1);
  font-weight: 600;
  letter-spacing: -0.005em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}
.rm2-bar-d {
  font-size: 10px;
  color: var(--fg-3);
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: none;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.rm2-bar.s1 {
  background: rgba(77,141,247,0.2);
  border: 1px solid rgba(77,141,247,0.55);
}
.rm2-bar.s1 .rm2-bar-d { color: rgba(77,141,247,0.85); }
.rm2-bar.s2 {
  background: rgba(77,141,247,0.1);
  border: 1px solid rgba(77,141,247,0.35);
}
.rm2-bar.s3 {
  background: rgba(255,255,255,0.035);
  border: 1px dashed var(--border-strong);
  color: var(--fg-2);
}
.rm2-bar.s3 .rm2-bar-d { color: var(--fg-4); }
.rm2-foot {
  margin-top: 14px;
  display: grid;
  grid-template-columns: repeat(3, 1fr) 1.6fr;
  gap: 14px;
  padding: 14px 18px;
  background: var(--navy-surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  align-items: center;
}
.rm2-foot-stage {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding-right: 12px;
  border-right: 1px solid var(--border);
}
.rm2-fs-n {
  font-size: 12px;
  color: var(--blue);
  text-transform: uppercase;
  letter-spacing: 0.2em;
  font-weight: 700;
}
.rm2-fs-p {
  font-family: var(--font-display);
  font-size: 22px;
  color: var(--fg-1);
  letter-spacing: -0.01em;
  line-height: 1.1;
}
.rm2-fs-b {
  font-size: 10px;
  color: var(--fg-3);
  text-transform: uppercase;
  letter-spacing: 0.2em;
  font-weight: 600;
}
.rm2-foot-note {
  font-size: 13px;
  color: var(--fg-3);
  line-height: 1.5;
  font-style: italic;
}

/* Slide 23 · Risk & Mitigation */
.risk-layout { flex: 1; display: flex; flex-direction: column; }
.risk-top { max-width: 1600px; margin-bottom: 40px; }
.risk-top .title-a { font-size: 64px; }
.risk-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  flex: 1;
}
.risk-card {
  background: var(--navy-surface);
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 32px 36px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 36px;
}
.risk-card .risk-left {
  border-right: 1px solid var(--border);
  padding-right: 36px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.risk-card .risk-title {
  font-family: var(--font-display);
  font-size: 30px;
  color: var(--fg-1);
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1.1;
}
.risk-card .risk-desc {
  font-size: 16px;
  color: var(--fg-3);
  line-height: 1.55;
}
.risk-card .risk-right {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.risk-card .risk-lbl {
  font-size: 12px;
  color: var(--blue);
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-weight: 700;
}
.risk-card .risk-mit {
  font-size: 17px;
  color: var(--fg-1);
  line-height: 1.55;
  font-weight: 500;
}

/* Slide 25/26/27 · Appendix tables */
.app-layout { flex: 1; display: flex; flex-direction: column; }
.app-top { max-width: 1600px; margin-bottom: 24px; }
.app-top .title-a { font-size: 48px; }
.app-top .sub-a { font-size: 20px; }
.app-table-wrap {
  background: var(--navy-surface);
  border: 1px solid var(--border);
  border-radius: 18px;
  overflow: hidden;
  flex: 1;
}
.app-table {
  width: 100%;
  border-collapse: collapse;
  font-variant-numeric: tabular-nums;
}
.app-table th {
  font-size: 11px;
  color: var(--fg-3);
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-weight: 700;
  padding: 12px 20px;
  text-align: left;
  background: rgba(255,255,255,0.03);
  border-bottom: 1px solid var(--border);
}
.app-table td {
  font-size: 15px;
  color: var(--fg-1);
  padding: 7px 20px;
  border-bottom: 1px solid var(--border);
  font-weight: 500;
  line-height: 1.3;
}
.app-table tr:last-child td { border-bottom: none; }
.app-table td.muted { color: var(--fg-3); font-size: 16px; }
.app-table td.num { text-align: right; }
.app-table td.blue { color: var(--blue); font-weight: 600; }
.app-table tr.total td {
  background: rgba(77,141,247,0.08);
  color: var(--fg-1);
  font-weight: 700;
}
.app-table tr.total td.blue { color: var(--blue); }
.app-table tr.total td:first-child { color: var(--blue); }

.app-footline {
  margin-top: 20px;
  font-size: 17px;
  color: var(--blue);
  font-weight: 600;
  letter-spacing: -0.01em;
}

.clg-timeline-strip {
  margin-top: 24px;
  padding: 20px 28px;
  background: var(--navy-surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 28px;
  align-items: start;
}
.clg-timeline-strip .lbl {
  font-size: 13px;
  color: var(--blue);
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-weight: 700;
  padding-top: 2px;
}
.clg-timeline-strip .items {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.clg-timeline-strip .item {
  font-size: 15px;
  color: var(--fg-2);
  line-height: 1.45;
}
.clg-timeline-strip .item strong {
  color: var(--fg-1);
  display: block;
  margin-bottom: 4px;
  font-weight: 600;
  font-size: 14px;
}

/* Appendix A1 · Pipeline · funnel + table */
.pipeline-body {
  flex: 1;
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 22px;
  min-height: 0;
}
.pipeline-funnel {
  background: var(--navy-surface);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 24px 28px;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.pf-hdr {
  font-size: 13px;
  color: var(--blue);
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-weight: 700;
}
.pf-bars {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.pf-row {
  display: grid;
  grid-template-columns: 180px 1fr 80px;
  gap: 14px;
  align-items: center;
}
.pf-lbl {
  font-size: 14px;
  color: var(--fg-2);
  font-weight: 500;
}
.pf-bar {
  height: 32px;
  background: rgba(77,141,247,0.22);
  border-right: 2px solid var(--blue);
  border-radius: 4px 0 0 4px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding-right: 10px;
  min-width: 44px;
}
.pf-firm {
  color: var(--fg-1);
  font-weight: 700;
  font-size: 14px;
  font-variant-numeric: tabular-nums;
}
.pf-tcv {
  text-align: right;
  font-size: 14px;
  color: var(--fg-1);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.pf-row.live .pf-bar { background: rgba(77,141,247,0.45); }
.pf-row.signed .pf-bar { background: rgba(77,141,247,0.35); }
.pf-total {
  border-top: 1px solid var(--border);
  padding-top: 16px;
  background: rgba(77,141,247,0.05);
  margin: 4px -28px -6px;
  padding: 14px 28px 16px;
}
.pf-total-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-size: 16px;
  color: var(--fg-1);
  font-weight: 700;
}
.pf-total-v { font-variant-numeric: tabular-nums; }
.pf-total-v .blue { color: var(--blue); }
.pf-total-sub {
  font-size: 13px;
  color: var(--fg-3);
  margin-top: 4px;
}
.pf-geo {
  border-top: 1px solid var(--border);
  padding-top: 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.pf-geo-hdr {
  font-size: 13px;
  color: var(--blue);
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-weight: 700;
  margin-bottom: 6px;
}
.pf-geo-row {
  display: grid;
  grid-template-columns: 100px 1fr 70px;
  gap: 14px;
  align-items: center;
  font-size: 13px;
  color: var(--fg-2);
}
.pf-geo-bar {
  height: 8px;
  background: rgba(255,255,255,0.04);
  border-radius: 4px;
  display: block;
  overflow: hidden;
}
.pf-geo-bar i {
  display: block;
  height: 100%;
  background: var(--blue);
  border-radius: 4px;
}
.pf-geo-v {
  font-weight: 600;
  color: var(--fg-1);
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.app-table-wrap.no-flex { flex: initial; display: flex; flex-direction: column; gap: 14px; }
.pipeline-kpis {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  padding: 16px 20px;
  border-top: 1px solid var(--border);
  background: rgba(255,255,255,0.02);
  margin-top: auto;
}
.pk { text-align: center; }
.pk-v {
  font-family: var(--font-display);
  font-size: 32px;
  color: var(--blue);
  line-height: 1;
  margin-bottom: 4px;
}
.pk-l {
  font-size: 11px;
  color: var(--fg-3);
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-weight: 600;
}

/* Appendix A3 · Compliance Launch Group · firm cards + journey */
.clg-body {
  flex: 1;
  display: grid;
  grid-template-columns: 1.7fr 1fr;
  gap: 22px;
  min-height: 0;
}
.clg-firms {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: 1fr;
  gap: 10px;
}
.clg-firm {
  background: var(--navy-surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}
.clg-firm.anchor {
  background: rgba(77,141,247,0.1);
  border-color: rgba(77,141,247,0.5);
}
.clg-firm.active {
  border-color: rgba(77,141,247,0.4);
}
.clg-firm.target {
  background: repeating-linear-gradient(
    135deg,
    rgba(255,255,255,0.02),
    rgba(255,255,255,0.02) 8px,
    rgba(255,255,255,0.04) 8px,
    rgba(255,255,255,0.04) 16px
  );
  border-style: dashed;
}
.cf-top {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 8px;
}
.cf-num {
  font-family: var(--font-display);
  font-size: 14px;
  color: var(--fg-4);
  font-variant-numeric: tabular-nums;
}
.cf-tag {
  font-size: 9px;
  color: var(--fg-3);
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-weight: 700;
  padding: 3px 7px;
  border-radius: 4px;
  background: rgba(255,255,255,0.04);
  white-space: nowrap;
}
.cf-tag.anchor { background: rgba(77,141,247,0.25); color: var(--blue); }
.cf-tag.active { background: rgba(77,141,247,0.18); color: var(--blue); }
.cf-tag.target { background: rgba(77,141,247,0.12); color: var(--blue); }
.cf-name {
  font-family: var(--font-display);
  font-size: 22px;
  color: var(--fg-1);
  letter-spacing: -0.01em;
  line-height: 1.1;
}
.clg-firm.anchor .cf-name { color: var(--blue); }
.cf-meta {
  font-size: 11px;
  color: var(--fg-3);
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-weight: 600;
}
.cf-body {
  font-size: 12px;
  color: var(--fg-2);
  line-height: 1.45;
  flex: 1;
}
.cf-foot {
  border-top: 1px solid var(--border);
  padding-top: 8px;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-size: 11px;
  color: var(--fg-3);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  font-weight: 600;
}
.cf-foot strong {
  font-family: var(--font-display);
  font-size: 18px;
  color: var(--fg-1);
  letter-spacing: -0.01em;
  text-transform: none;
  font-variant-numeric: tabular-nums;
  font-weight: 400;
}
.cf-foot strong.blue { color: var(--blue); }

.clg-side {
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-height: 0;
}
.clg-kpis {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  background: var(--navy-surface);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 18px 20px;
}
.ck { text-align: left; }
.ck-v {
  font-family: var(--font-display);
  font-size: 36px;
  color: var(--blue);
  line-height: 1;
  margin-bottom: 4px;
  letter-spacing: -0.02em;
}
.ck-v .u { font-size: 22px; color: var(--fg-3); }
.ck-l {
  font-size: 11px;
  color: var(--fg-3);
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-weight: 600;
  line-height: 1.4;
}
.clg-why {
  background: var(--navy-surface);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 16px 20px;
}
.cwhy-hdr {
  font-size: 12px;
  color: var(--blue);
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-weight: 700;
  margin-bottom: 10px;
}
.clg-why ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.clg-why li {
  font-size: 12px;
  color: var(--fg-2);
  line-height: 1.5;
  padding-left: 14px;
  position: relative;
}
.clg-why li::before {
  content: '◆';
  position: absolute;
  left: 0;
  color: var(--blue);
  font-size: 8px;
  top: 4px;
}
.clg-why li strong { color: var(--fg-1); font-weight: 600; }
.clg-journey {
  background: var(--navy-surface);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 16px 20px;
  flex: 1;
}
.cj-hdr {
  font-size: 12px;
  color: var(--blue);
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-weight: 700;
  margin-bottom: 12px;
}
.cj-track {
  display: flex;
  flex-direction: column;
  gap: 10px;
  position: relative;
  padding-left: 6px;
}
.cj-track::before {
  content: '';
  position: absolute;
  left: 10px;
  top: 8px;
  bottom: 8px;
  width: 1px;
  background: var(--border);
}
.cj-step {
  display: grid;
  grid-template-columns: 20px 1fr;
  gap: 12px;
  align-items: center;
  position: relative;
}
.cj-dot {
  width: 10px; height: 10px;
  border-radius: 50%;
  background: var(--navy-elev);
  border: 2px solid var(--border-strong);
  margin-left: -1px;
  z-index: 1;
}
.cj-step.done .cj-dot { background: var(--blue); border-color: var(--blue); }
.cj-step.active .cj-dot {
  background: var(--blue);
  border-color: var(--blue);
  box-shadow: 0 0 0 4px rgba(77,141,247,0.2);
}
.cj-lbl {
  font-size: 12px;
  color: var(--fg-2);
  line-height: 1.45;
}
.cj-lbl strong {
  display: block;
  color: var(--fg-1);
  font-weight: 600;
  font-size: 13px;
  margin-bottom: 1px;
}
.cj-step.active .cj-lbl strong { color: var(--blue); }


/* Slide 23 · Risk v2 · severity + mitigation */
.risk2-grid {
  flex: 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 18px;
}
.risk2-card {
  background: var(--navy-surface);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 22px 26px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.risk2-hdr {
  display: grid;
  grid-template-columns: 56px 1fr auto;
  align-items: center;
  gap: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--border);
}
.risk2-num {
  font-family: var(--font-display);
  font-size: 30px;
  color: var(--blue);
  letter-spacing: -0.02em;
  line-height: 1;
}
.risk2-title {
  font-family: var(--font-display);
  font-size: 22px;
  color: var(--fg-1);
  line-height: 1.2;
  letter-spacing: -0.01em;
}
.risk2-sev {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  color: var(--fg-3);
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-weight: 700;
  white-space: nowrap;
}
.sev-dot {
  width: 10px; height: 10px;
  border-radius: 50%;
  display: inline-block;
}
.sev-dot.sev-low { background: #5FD28B; box-shadow: 0 0 0 3px rgba(95,210,139,0.15); }
.sev-dot.sev-med { background: #F5B841; box-shadow: 0 0 0 3px rgba(245,184,65,0.15); }
.sev-dot.sev-hi { background: #E66; box-shadow: 0 0 0 3px rgba(230,100,100,0.18); }
.risk2-desc {
  font-size: 14px;
  color: var(--fg-3);
  line-height: 1.55;
}
.risk2-mit {
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px dashed var(--border);
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.risk2-mlbl {
  font-size: 11px;
  color: var(--blue);
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-weight: 700;
}
.risk2-mtext {
  font-size: 14px;
  color: var(--fg-2);
  line-height: 1.55;
}
.risk2-mkv {
  display: flex;
  gap: 36px;
  padding-top: 8px;
  flex-wrap: wrap;
}
.r-kv {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.r-kv .k {
  font-size: 10px;
  color: var(--fg-4);
  text-transform: uppercase;
  letter-spacing: 0.2em;
  font-weight: 600;
}
.r-kv .v {
  font-family: var(--font-display);
  font-size: 15px;
  color: var(--fg-1);
  letter-spacing: -0.01em;
}

/* Slide 6 · Product v2 · office role map */
.prod2-roles {
  flex: 1;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 8px;
}
.prod2-col {
  background: var(--navy-surface);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 22px 24px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.prod2-col.middle {
  border-color: rgba(77,141,247,0.35);
  background: linear-gradient(180deg, rgba(77,141,247,0.06) 0%, var(--navy-surface) 60%);
}
.prod2-hdr {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--border);
}
.prod2-tag {
  display: inline-block;
  width: fit-content;
  font-size: 11px;
  color: var(--blue);
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-weight: 700;
  background: rgba(77,141,247,0.12);
  padding: 5px 12px;
  border-radius: 999px;
}
.prod2-who {
  font-size: 14px;
  color: var(--fg-3);
  letter-spacing: 0.02em;
}
.prod2-jobs {
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 1;
}
.prod2-job {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 10px 14px;
  border-radius: 10px;
  background: rgba(255,255,255,0.022);
  border-left: 2px solid var(--border);
}
.prod2-job.live {
  background: rgba(77,141,247,0.1);
  border-left-color: var(--blue);
}
.pj-n {
  font-size: 15px;
  color: var(--fg-1);
  font-weight: 600;
  letter-spacing: -0.005em;
}
.prod2-job.live .pj-n { color: var(--blue); }
.pj-d {
  font-size: 12.5px;
  color: var(--fg-3);
  line-height: 1.4;
}
.prod2-impact {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 14px;
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px solid var(--border);
}
.pi-l {
  font-size: 11px;
  color: var(--fg-3);
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-weight: 700;
}
.pi-v {
  font-family: var(--font-display);
  font-size: 18px;
  color: var(--blue);
  letter-spacing: -0.01em;
  text-align: right;
}
.prod2-foot {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-top: 18px;
  padding: 16px 24px;
  background: var(--navy-surface);
  border: 1px solid var(--border);
  border-radius: 12px;
}
.prod2-foot-l {
  font-size: 12px;
  color: var(--blue);
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-weight: 700;
  white-space: nowrap;
}
.prod2-foot-chips {
  display: flex;
  gap: 6px;
  flex-wrap: nowrap;
  flex: 1;
  overflow: hidden;
}
.p2-chip {
  font-size: 13px;
  color: var(--fg-3);
  padding: 6px 12px;
  border: 1px solid var(--border);
  border-radius: 999px;
  font-weight: 500;
}
.p2-chip.live {
  color: var(--blue);
  border-color: rgba(77,141,247,0.4);
  background: rgba(77,141,247,0.08);
  font-weight: 600;
}
.prod2-foot-r {
  font-size: 13px;
  color: var(--fg-3);
  white-space: nowrap;
}
.prod2-foot-r strong {
  color: var(--blue);
  font-weight: 600;
  font-family: var(--font-display);
  font-size: 18px;
  letter-spacing: -0.01em;
}
.cab2-layout { flex: 1; display: flex; flex-direction: column; min-height: 0; }
.cab2-top { margin-bottom: 28px; max-width: 1700px; }
.cab2-top .title-a { font-size: 60px; line-height: 1.05; }
.cab2-body {
  flex: 1;
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  gap: 28px;
  min-height: 0;
}
.cab2-left, .cab2-right { display: flex; flex-direction: column; gap: 14px; min-height: 0; }
.cab2-sub {
  font-size: 13px;
  color: var(--blue);
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-weight: 700;
}
.cab2-members {
  background: var(--navy-surface);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 10px 4px;
  display: flex;
  flex-direction: column;
}
.cab2-member {
  display: grid;
  grid-template-columns: 24px 1fr auto;
  align-items: center;
  gap: 12px;
  padding: 14px 20px;
  border-bottom: 1px solid var(--border);
}
.cab2-member:last-child { border-bottom: none; }
.cab2-dot {
  width: 10px; height: 10px;
  border-radius: 50%;
  background: var(--navy-elev);
  border: 2px solid var(--border-strong);
}
.cab2-dot.live {
  background: var(--blue);
  border-color: var(--blue);
  box-shadow: 0 0 0 4px rgba(77,141,247,0.18);
}
.cab2-who { font-size: 15px; color: var(--fg-2); line-height: 1.4; }
.cab2-who strong { color: var(--fg-1); font-weight: 600; }
.cab2-tag {
  font-size: 11px;
  color: var(--fg-3);
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-weight: 600;
  white-space: nowrap;
}
.cab2-member .cab2-dot.live ~ .cab2-tag { color: var(--blue); }
.cab2-cadence {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.cab2-c {
  background: var(--navy-surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.cab2-cl { font-size: 10px; color: var(--fg-3); text-transform: uppercase; letter-spacing: 0.22em; font-weight: 700; }
.cab2-cv { font-size: 16px; color: var(--fg-1); font-weight: 500; }
.cab2-effect {
  background: var(--navy-surface);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 20px 24px;
  display: grid;
  grid-template-columns: 56px 1fr;
  grid-template-rows: auto auto auto;
  gap: 6px 20px;
  flex: 1;
}
.cab2-num {
  grid-row: 1 / 4;
  font-family: var(--font-display);
  font-size: 44px;
  color: var(--blue);
  line-height: 1;
  letter-spacing: -0.02em;
}
.cab2-ehead {
  font-family: var(--font-display);
  font-size: 24px;
  color: var(--fg-1);
  letter-spacing: -0.01em;
}
.cab2-etext { font-size: 14px; color: var(--fg-2); line-height: 1.55; }
.cab2-etext strong { color: var(--fg-1); font-weight: 600; }
.cab2-etag {
  font-size: 11px;
  color: var(--blue);
  text-transform: uppercase;
  letter-spacing: 0.2em;
  font-weight: 700;
  padding-top: 6px;
  border-top: 1px solid var(--border);
  margin-top: 4px;
}


/* =============================================================
   Slide 17 · Go to market (v3) — funnel + 3 faithful phases
   ============================================================= */
.gtm3-layout {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.gtm3-head { max-width: 1560px; margin-bottom: 40px; }
.gtm3-head .title-a { font-size: 68px; }
.gtm3-head .sub-a { font-size: 22px; max-width: 1100px; color: var(--fg-2); }

.gtm3-body {
  flex: 1;
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  gap: 56px;
  min-height: 0;
}

/* --- Left funnel panel --- */
.gtm3-funnel {
  background: var(--navy-surface-2, rgba(255,255,255,0.03));
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 36px 36px 32px;
  display: flex;
  flex-direction: column;
}
.gtm3-funnel-ttl {
  font-family: var(--font-display);
  font-size: 28px;
  color: var(--fg-1);
  letter-spacing: -0.01em;
  margin-bottom: 4px;
}
.gtm3-funnel-sub {
  font-size: 16px;
  color: var(--fg-2);
  margin-bottom: 28px;
}
.gtm3-stages {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 20px;
}
.gtm3-stage {
  padding: 18px 24px;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,0.03);
  display: flex;
  flex-direction: column;
  gap: 5px;
  position: relative;
}
.gtm3-stage.s1 { width: 100%; }
.gtm3-stage.s2 { width: 86%; margin-left: auto; margin-right: auto; }
.gtm3-stage.s3 {
  width: 72%;
  margin-left: auto;
  margin-right: auto;
  border-color: rgba(77, 141, 247, 0.35);
  background: rgba(77, 141, 247, 0.06);
}
.gtm3-stage.s4 {
  width: 56%;
  margin-left: auto;
  margin-right: auto;
  background: var(--blue);
  border-color: var(--blue);
}
.gtm3-stage-lbl {
  font-size: 12px;
  color: var(--fg-3);
  text-transform: uppercase;
  letter-spacing: 0.09em;
  font-weight: 700;
}
.gtm3-stage-val {
  font-size: 20px;
  color: var(--fg-1);
  font-weight: 600;
}
.gtm3-stage.s4 .gtm3-stage-lbl { color: rgba(255,255,255,0.78); }
.gtm3-stage.s4 .gtm3-stage-val { color: #fff; }

.gtm3-post {
  margin-top: auto;
  padding: 18px 22px;
  border: 1px dashed var(--blue);
  border-radius: 10px;
  background: rgba(77, 141, 247, 0.06);
  text-align: center;
}
.gtm3-post-lbl {
  font-size: 12px;
  color: var(--blue);
  text-transform: uppercase;
  letter-spacing: 0.09em;
  font-weight: 700;
  margin-bottom: 6px;
}
.gtm3-post-val {
  font-size: 22px;
  color: var(--fg-1);
  font-weight: 700;
  letter-spacing: -0.01em;
}

/* --- Right phases panel --- */
.gtm3-phases {
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.gtm3-phases-ttl {
  font-family: var(--font-display);
  font-size: 38px;
  line-height: 1.08;
  letter-spacing: -0.01em;
  color: var(--fg-1);
  margin-bottom: 24px;
}
.gtm3-phase {
  display: grid;
  grid-template-columns: 8px 1fr;
  gap: 20px;
  padding: 16px 0 18px;
  border-top: 1px solid var(--border);
}
.gtm3-phase:last-child { border-bottom: 1px solid var(--border); }
.gtm3-phase-stripe {
  width: 4px;
  border-radius: 2px;
  align-self: stretch;
  background: var(--blue);
  opacity: 0.9;
}
.gtm3-phase.p1 .gtm3-phase-stripe { background: var(--blue); }
.gtm3-phase.p2 .gtm3-phase-stripe { background: rgba(77, 141, 247, 0.55); }
.gtm3-phase.p3 .gtm3-phase-stripe { background: rgba(77, 141, 247, 0.3); }

.gtm3-phase-content { display: flex; flex-direction: column; }
.gtm3-phase-meta {
  display: flex;
  align-items: baseline;
  gap: 14px;
  margin-bottom: 6px;
}
.gtm3-phase-tag {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--blue);
}
.gtm3-phase-when {
  font-size: 14px;
  color: var(--fg-3);
  letter-spacing: 0.02em;
}
.gtm3-phase-ttl {
  font-family: var(--font-display);
  font-size: 26px;
  line-height: 1.1;
  color: var(--fg-1);
  letter-spacing: -0.01em;
  margin-bottom: 4px;
}
.gtm3-phase-team {
  font-size: 14px;
  color: var(--fg-3);
  margin-bottom: 10px;
  font-weight: 500;
}
.gtm3-phase-desc {
  font-size: 14px;
  line-height: 1.45;
  color: var(--fg-2);
  margin: 4px 0 12px;
  max-width: 680px;
}
.gtm3-phase-foot {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  padding-top: 10px;
  border-top: 1px solid var(--border);
}
.gtm3-phase-foot > div {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.gtm3-phase-foot .l {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--fg-3);
  font-weight: 600;
}
.gtm3-phase-foot .v {
  font-family: var(--font-display);
  font-size: 16px;
  color: var(--fg-1);
  letter-spacing: -0.01em;
  line-height: 1.2;
}
.gtm3-phase.p3 .gtm3-phase-foot .v {
  color: var(--blue);
}
.gtm3-phase-body {
  font-size: 17px;
  line-height: 1.55;
  color: var(--fg-2);
  max-width: 640px;
}
.gtm3-phase-body strong {
  color: var(--fg-1);
  font-weight: 600;
}


/* =============================================================
   Slide 22 · Financials v2 — 3 yearly KPI cards + unit econ panel
   (Faithful to source reading.html; no 2029/2030 fabrications.)
   ============================================================= */
.fin2-layout { flex:1; display:flex; flex-direction:column; min-height:0; }
.fin2-top { max-width:1560px; margin-bottom:40px; }
.fin2-top .title-a { font-size:68px; }
.fin2-top .sub-a { font-size:22px; max-width:1180px; color:var(--fg-2); }

.fin2-grid { flex:1; display:grid; grid-template-columns:1.3fr 1fr; gap:48px; min-height:0; }

.fin2-years { display:flex; flex-direction:column; gap:18px; }
.fin2-year {
  border:1px solid var(--border);
  border-radius:16px;
  padding:24px 28px;
  background:rgba(255,255,255,0.025);
}
.fin2-year.profitable {
  border-color:var(--blue);
  background:rgba(77,141,247,0.08);
}
.fin2-year-hd {
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  margin-bottom:14px;
  padding-bottom:12px;
  border-bottom:1px solid var(--border);
}
.fin2-year-lbl {
  font-family:var(--font-display);
  font-size:30px;
  letter-spacing:-0.01em;
  color:var(--fg-1);
}
.fin2-year-tag {
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:0.12em;
  font-weight:700;
  color:var(--blue);
}
.fin2-year.profitable .fin2-year-tag { color:var(--blue); }
.fin2-kpis { display:grid; grid-template-columns:repeat(5,1fr); gap:18px; }
.fin2-kpi .k {
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:0.08em;
  color:var(--fg-3);
  font-weight:700;
  margin-bottom:4px;
}
.fin2-kpi .v {
  font-size:24px;
  font-weight:700;
  color:var(--fg-1);
  letter-spacing:-0.01em;
  font-variant-numeric:tabular-nums;
}
.fin2-kpi .v.pos { color:#2DBE8C; }
.fin2-kpi .v.neg { color:var(--fg-2); }

.fin2-side { display:flex; flex-direction:column; gap:18px; }
.fin2-panel {
  border:1px solid var(--border);
  border-radius:14px;
  padding:22px 24px;
  background:rgba(255,255,255,0.025);
}
.fin2-panel-ttl {
  font-size:13px;
  text-transform:uppercase;
  letter-spacing:0.1em;
  font-weight:700;
  color:var(--blue);
  margin-bottom:14px;
}
.fin2-ue-row {
  display:flex;
  justify-content:space-between;
  padding:10px 0;
  border-bottom:1px solid var(--border);
}
.fin2-ue-row:last-child { border-bottom:none; }
.ue-k { font-size:16px; color:var(--fg-2); }
.ue-v { font-size:18px; color:var(--fg-1); font-weight:600; font-variant-numeric:tabular-nums; }
.ue-note { color:var(--fg-3); font-size:14px; font-weight:400; }
.fin2-note { font-size:16px; line-height:1.55; color:var(--fg-2); }
.fin2-note strong { color:var(--fg-1); font-weight:600; }
.fin2-foot {
  margin-top:auto;
  padding-top:16px;
  border-top:1px solid var(--border);
}
.fin2-foot-k { font-size:14px; color:var(--fg-2); font-weight:600; }
.fin2-foot-v { font-size:13px; color:var(--fg-3); margin-top:4px; }


/* Slide 9 Traction - hero stat */
.tr-hero {
  color: var(--blue);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}


/* Slide 8 Business Model - 5 stages layout */
.bm-stages-5 {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 16px;
}
.bm-stages-5 .stage-card {
  padding: 22px 20px;
  font-size: 19px;
}
.bm-stages-5 .sc-label {
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0.02em;
}
.bm-stages-5 .sc-period {
  font-size: 15px;
  color: var(--muted);
  margin-top: 2px;
}
.bm-stages-5 .sc-head {
  font-size: 21px;
  font-weight: 600;
  line-height: 1.25;
  margin: 14px 0 10px;
}
.bm-stages-5 .sc-body {
  font-size: 17px;
  line-height: 1.4;
  color: var(--muted);
}
.bm-stages-5 .sc-arr {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(11, 36, 71, 0.12);
}
.bm-stages-5 .sc-arr .v {
  font-size: 26px;
  font-weight: 700;
  color: var(--blue);
}
.bm-stages-5 .sc-arr .l {
  font-size: 14px;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.1em;
}


/* Slide 9 Traction - tighten to fit 1080 */
.traction-layout .tr-sub {
  margin-bottom: 18px;
}
.traction-layout .tr-stats {
  gap: 14px;
}


/* ═══════════════════════════════════════════════════════════════
   THE SHIFT (Now vs Future)
   Two-pane comparison: fragmented stack -> one operating system
   ═══════════════════════════════════════════════════════════════ */
.shift-layout {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 28px;
  min-height: 0;
}
.shift-top { flex-shrink: 0; }
.shift-top .title-a { font-size: 64px; }
.shift-body {
  flex: 1;
  display: grid;
  grid-template-columns: 1fr 1px 1fr;
  gap: 40px;
  min-height: 0;
}
.shift-divider {
  background: repeating-linear-gradient(to bottom, var(--border-strong) 0 6px, transparent 6px 14px);
  width: 1px;
}
.shift-pane {
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.shift-pane-hdr {
  display: flex;
  align-items: center;
  gap: 14px;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--fg-3);
  margin-bottom: 18px;
}
.shift-pane--today .shift-pane-tag { color: var(--fg-2); }
.shift-pane--future .shift-pane-tag { color: var(--blue); }
.shift-pane-sep { color: var(--fg-4); }
.shift-pane-name { color: var(--fg-2); }
.shift-pane-cap {
  text-align: center;
  font-size: 20px;
  color: var(--fg-2);
  font-style: italic;
  margin-top: 14px;
  flex-shrink: 0;
}
.shift-pane--future .shift-pane-cap {
  font-style: normal;
  color: var(--fg-1);
}
.shift-pane--future .shift-pane-cap strong { color: var(--blue); font-weight: 600; }
.shift-pane--future .shift-pane-cap .acc-orange { color: var(--warning); }
.shift-pane--future .shift-pane-cap .acc-teal { color: #4dd9b8; }

.shift-canvas {
  flex: 1;
  min-height: 0;
  width: 100%;
  display: block;
}

/* Fragmented diagram: muted, scattered look */
.shift-canvas .frag-line {
  stroke: rgba(255, 255, 255, 0.18);
  stroke-width: 1;
  fill: none;
}
.shift-canvas .frag-box {
  fill: var(--navy-elev);
  stroke: rgba(255, 255, 255, 0.22);
  stroke-width: 1;
}
.shift-canvas .frag-label {
  fill: var(--fg-2);
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-anchor: middle;
  dominant-baseline: middle;
}
.shift-canvas .adv-circle {
  fill: var(--navy-elev);
  stroke: var(--fg-3);
  stroke-width: 1.2;
}
.shift-canvas .adv-label {
  fill: var(--fg-3);
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 500;
  text-anchor: middle;
  letter-spacing: 0.04em;
}

/* Future diagram: structured stack */
.shift-canvas .fut-line {
  stroke: var(--blue);
  stroke-width: 1.2;
  fill: none;
  opacity: 0.7;
}
.shift-canvas .fut-asst {
  fill: rgba(77, 141, 247, 0.18);
  stroke: var(--blue);
  stroke-width: 1.5;
}
.shift-canvas .fut-asst-name {
  fill: var(--fg-1);
  font-family: var(--font-sans);
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.shift-canvas .fut-asst-tag {
  fill: var(--fg-2);
  font-family: var(--font-sans);
  font-size: 13px;
  font-style: italic;
  text-anchor: end;
}
.shift-canvas .fut-agent {
  fill: var(--navy-elev);
  stroke: var(--warning);
  stroke-width: 1;
}
.shift-canvas .fut-agent-dot {
  fill: var(--warning);
}
.shift-canvas .fut-agent-tag {
  fill: var(--warning);
  font-family: var(--font-sans);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  text-anchor: middle;
}
.shift-canvas .fut-agent-name {
  fill: var(--fg-1);
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 600;
  text-anchor: middle;
}
.shift-canvas .fut-agents-label {
  fill: var(--warning);
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  text-anchor: end;
}
.shift-canvas .fut-data {
  fill: rgba(77, 217, 184, 0.10);
  stroke: #4dd9b8;
  stroke-width: 1;
}
.shift-canvas .fut-data-hdr {
  fill: #4dd9b8;
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}
.shift-canvas .fut-data-tile {
  fill: var(--navy-elev);
  stroke: rgba(77, 217, 184, 0.5);
  stroke-width: 1;
}
.shift-canvas .fut-data-label {
  fill: var(--fg-1);
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 500;
  text-anchor: middle;
  dominant-baseline: middle;
  letter-spacing: 0.06em;
}
.shift-canvas .adv-future-circle {
  fill: var(--navy-elev);
  stroke: var(--blue);
  stroke-width: 1.4;
}
.shift-canvas .adv-future-label {
  fill: var(--fg-1);
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 500;
  text-anchor: middle;
}

/* Light mode adjustments */
body.light-mode .shift-canvas .frag-line { stroke: rgba(10, 22, 40, 0.22); }
body.light-mode .shift-canvas .frag-box { fill: #ffffff; stroke: rgba(10, 22, 40, 0.18); }
body.light-mode .shift-canvas .adv-circle { fill: #ffffff; stroke: rgba(10, 22, 40, 0.32); }
body.light-mode .shift-canvas .fut-agent { fill: #ffffff; }
body.light-mode .shift-canvas .fut-data-tile { fill: #ffffff; }
body.light-mode .shift-canvas .adv-future-circle { fill: #ffffff; }


/* ═══════════════════════════════════════════════════════════════
   IP & MOAT — Why this compounds
   Vertical depth gauge + 3 moat rows + flywheel summary
   ═══════════════════════════════════════════════════════════════ */
.moat-layout {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 24px;
  min-height: 0;
}
.moat-top { flex-shrink: 0; }
.moat-top .title-a { font-size: 60px; }
.moat-body {
  flex: 1;
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: 24px;
  min-height: 0;
}
.moat-gauge {
  display: grid;
  grid-template-rows: auto 1fr auto;
  align-items: center;
  justify-items: center;
  position: relative;
  padding: 4px 0;
}
.moat-gauge::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 30px;
  bottom: 30px;
  width: 6px;
  transform: translateX(-50%);
  background: linear-gradient(to bottom, var(--blue) 0%, var(--blue) 33%, var(--warning) 33%, var(--warning) 66%, #4dd9b8 66%, #4dd9b8 100%);
  border-radius: 3px;
}
.moat-gauge-top, .moat-gauge-bot {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--fg-3);
  z-index: 1;
  background: var(--navy-base);
  padding: 4px 0;
}
section.slide.light .moat-gauge-top,
section.slide.light .moat-gauge-bot { background: var(--navy-surface); }
.moat-gauge-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--fg-2);
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  z-index: 1;
  background: var(--navy-base);
  padding: 8px 0;
}
section.slide.light .moat-gauge-label { background: var(--navy-surface); }

.moat-rows {
  display: grid;
  grid-template-rows: 1fr 1fr 1fr;
  gap: 14px;
  min-height: 0;
}
.moat-row {
  display: grid;
  grid-template-columns: 70px minmax(0, 1.1fr) minmax(0, 1.4fr);
  gap: 24px;
  align-items: center;
  padding: 18px 22px;
  background: var(--navy-elev);
  border-left: 4px solid;
  border-radius: 6px;
  min-height: 0;
}
section.slide.light .moat-row { background: #ffffff; box-shadow: 0 1px 0 rgba(10, 22, 40, 0.06); }
.moat-row--01 { border-left-color: var(--blue); }
.moat-row--02 { border-left-color: var(--warning); }
.moat-row--03 { border-left-color: #4dd9b8; }
.moat-row-num {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 56px;
  line-height: 1;
  color: var(--fg-3);
  font-weight: 400;
  text-align: center;
}
.moat-row-text { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.moat-row-tag {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}
.moat-row--01 .moat-row-tag { color: var(--blue); }
.moat-row--02 .moat-row-tag { color: var(--warning); }
.moat-row--03 .moat-row-tag { color: #4dd9b8; }
.moat-row-text h3 {
  font-family: var(--font-sans);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: var(--fg-1);
}
.moat-row-text p {
  font-size: 14px;
  line-height: 1.45;
  color: var(--fg-2);
  margin-top: 2px;
}
.moat-row-viz {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 20px;
  height: 100%;
  min-height: 0;
}

/* Row 01: 3 firm clusters */
.moat-firms {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  height: 100%;
  justify-content: flex-end;
}
.moat-firm {
  flex: 1;
  max-width: 220px;
  border: 1px solid rgba(77, 141, 247, 0.3);
  border-radius: 8px;
  padding: 14px 10px 12px;
  background: rgba(77, 141, 247, 0.06);
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: center;
}
.moat-firm-avatars {
  display: flex;
  gap: 8px;
  padding: 4px 0 2px;
}
.moat-avatar {
  width: 44px;
  height: 56px;
  border-radius: 7px;
  background: rgba(77, 141, 247, 0.10);
  border: 1px solid var(--blue);
  position: relative;
  flex-shrink: 0;
}
.moat-avatar::before {
  content: "";
  position: absolute;
  top: 9px;
  left: 50%;
  transform: translateX(-50%);
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--blue);
}
.moat-avatar::after {
  content: "";
  position: absolute;
  bottom: 6px;
  left: 50%;
  transform: translateX(-50%);
  width: 30px;
  height: 14px;
  border-radius: 7px 7px 0 0;
  background: var(--blue);
}
.moat-avatar-ai {
  position: absolute;
  top: -6px;
  right: -6px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--blue);
  color: var(--navy-base);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.02em;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}
.moat-firm-label {
  font-size: 13px;
  font-weight: 600;
  color: var(--blue);
  letter-spacing: 0.08em;
}
.moat-firm-arrow {
  color: var(--blue);
  font-size: 18px;
  flex-shrink: 0;
}

/* Row 02: hub with partners */
.moat-hub-wrap {
  position: relative;
  flex: 1;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.moat-hub-svg { width: 100%; height: 100%; max-height: 280px; }
.moat-hub-cap {
  font-size: 12px;
  color: var(--fg-2);
  text-align: right;
  flex-shrink: 0;
  width: 110px;
  line-height: 1.3;
}
.moat-hub-cap em { color: var(--warning); font-style: italic; font-weight: 500; }

/* Row 03: stacked client file (pyramid) */
.moat-stack {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 4px;
  align-items: center;
  height: 100%;
  justify-content: center;
}
.moat-stack-row {
  border: 1px solid rgba(77, 217, 184, 0.45);
  border-radius: 5px;
  padding: 12px 22px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #4dd9b8;
  background: rgba(77, 217, 184, 0.05);
  text-align: center;
  width: 60%;
}
.moat-stack > .moat-stack-row:nth-child(2) { width: 75%; }
.moat-stack > .moat-stack-row:nth-child(3) { width: 88%; }
.moat-stack-base-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  margin-top: 3px;
}
.moat-stack-base-wrap .moat-stack-row.base { width: 100%; padding: 16px 22px; font-size: 14px; }
.moat-lock {
  width: 32px;
  height: 40px;
  flex-shrink: 0;
  position: relative;
}
.moat-lock::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 20px;
  height: 16px;
  border: 2.5px solid #4dd9b8;
  border-bottom: none;
  border-radius: 10px 10px 0 0;
}
.moat-lock::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 1px;
  right: 1px;
  height: 24px;
  background: rgba(77, 217, 184, 0.18);
  border: 1.5px solid #4dd9b8;
  border-radius: 4px;
}
.moat-stack-row.base {
  background: rgba(77, 217, 184, 0.18);
  border-width: 1.5px;
  font-weight: 800;
  color: var(--fg-1);
  padding: 11px 14px;
  margin-top: 2px;
}
.moat-stack-cap {
  font-size: 12px;
  color: var(--fg-2);
  width: 130px;
  flex-shrink: 0;
  line-height: 1.3;
}
.moat-stack-cap .switch {
  display: block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--fg-3);
  margin-bottom: 4px;
}
.moat-stack-cap .switch-eq {
  font-size: 16px;
  font-weight: 700;
  color: #4dd9b8;
  display: block;
  margin-bottom: 6px;
}
.moat-stack-cap em { font-style: italic; color: var(--fg-3); }

/* Flywheel summary bar */
.moat-flywheel {
  flex-shrink: 0;
  padding: 14px 24px;
  background: rgba(77, 141, 247, 0.08);
  border: 1px solid rgba(77, 141, 247, 0.25);
  border-radius: 6px;
  font-size: 15px;
  line-height: 1.5;
  color: var(--fg-1);
  text-align: center;
}
.moat-flywheel strong { font-weight: 700; }
.moat-flywheel .fw-blue { color: var(--blue); }
.moat-flywheel .fw-orange { color: var(--warning); }
.moat-flywheel .fw-teal { color: #4dd9b8; }
.moat-flywheel em { font-style: italic; color: var(--fg-2); }

body.light-mode .moat-flywheel { background: rgba(30, 64, 175, 0.06); }
body.light-mode .moat-firm { background: rgba(30, 64, 175, 0.04); }
body.light-mode .moat-stack-row { background: rgba(15, 118, 110, 0.04); color: #0f766e; border-color: rgba(15, 118, 110, 0.4); }
body.light-mode .moat-stack-row.base { background: rgba(15, 118, 110, 0.18); color: #064e3b; }
