/* ====================================================================
   IQ Family — Investor Deck
   ==================================================================== */

@font-face {
  font-family: 'Outfit';
  font-weight: 400;
  src: url('fonts/Outfit-Regular.ttf') format('truetype');
  font-display: swap;
}
@font-face {
  font-family: 'Outfit';
  font-weight: 500;
  src: url('fonts/Outfit-Medium.ttf') format('truetype');
  font-display: swap;
}
@font-face {
  font-family: 'Outfit';
  font-weight: 600;
  src: url('fonts/Outfit-SemiBold.ttf') format('truetype');
  font-display: swap;
}
@font-face {
  font-family: 'Outfit';
  font-weight: 700;
  src: url('fonts/Outfit-Bold.ttf') format('truetype');
  font-display: swap;
}
@font-face {
  font-family: 'Outfit';
  font-weight: 800;
  src: url('fonts/Outfit-ExtraBold.ttf') format('truetype');
  font-display: swap;
}

:root {
  /* Brand */
  --forest:        #142019;
  --forest-2:      #1B2C22;
  --paper:         #F4F6F2;
  --paper-2:       #ECEFE8;
  --ink:           #18251A;
  --muted-dark:    #8FA38E;
  --muted-light:   #647060;
  --canopy:        #2D6A4F;
  --canopy-mid:    #52B788;
  --canopy-deep:   #1A4A35;
  --leaf-tint:     #E3F2E8;
  --gold:          #C9A227;
  --gold-soft:     #E8C25B;
  --frost:         #DDE5D7;
  --hairline-dark: rgba(244,246,242,0.10);
  --hairline-mid:  rgba(244,246,242,0.18);
  --hairline-light:rgba(24,37,26,0.10);

  /* Type scale — 1920 × 1080 */
  --type-mega:     180px;   /* $250,000 */
  --type-display:  120px;   /* IQ FAMILY */
  --type-h1:       72px;    /* slide titles */
  --type-h2:       44px;    /* sub-titles, section heads */
  --type-h3:       30px;    /* card headers */
  --type-body:     26px;    /* body */
  --type-small:    22px;    /* secondary */
  --type-eyebrow:  16px;    /* uppercase labels */
  --type-mono-big: 56px;    /* big stats */

  /* Spacing */
  --pad-x:         120px;
  --pad-top:       90px;
  --pad-bottom:    90px;
  --gap-title:     56px;
  --gap-item:      28px;

  /* Fonts */
  --font-display: 'Outfit', system-ui, sans-serif;
  --font-body:    'Inter', 'Outfit', system-ui, sans-serif;
  --font-mono:    'JetBrains Mono', 'Geist Mono', ui-monospace, monospace;
}

* { box-sizing: border-box; }

deck-stage {
  background: #000;
  font-family: var(--font-body);
  font-feature-settings: 'ss01', 'cv11';
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ====================================================================
   Slide base — every slide gets these by default
   ==================================================================== */

section {
  padding: var(--pad-top) var(--pad-x) var(--pad-bottom);
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden;
}

section.dark  { background: var(--forest); color: var(--paper); }
section.light { background: var(--paper);  color: var(--ink); }

/* Slide chrome — wordmark + page number, present on every slide */
.chrome {
  position: absolute;
  top: 48px;
  left: var(--pad-x);
  right: var(--pad-x);
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-family: var(--font-display);
  font-size: var(--type-eyebrow);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 600;
  z-index: 5;
}
.chrome .brand {
  display: flex;
  align-items: center;
  gap: 12px;
}
.chrome .mark {
  width: 22px; height: 22px;
  display: inline-block;
}
.chrome .num {
  font-family: var(--font-mono);
  letter-spacing: 0.05em;
  opacity: 0.65;
}
.dark .chrome { color: var(--paper); }
.dark .chrome .num { color: var(--muted-dark); }
.light .chrome { color: var(--ink); }
.light .chrome .num { color: var(--muted-light); }

/* Eyebrow / category label above slide title */
.eyebrow {
  font-family: var(--font-display);
  font-size: var(--type-eyebrow);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-weight: 600;
  margin-bottom: 32px;
  display: inline-flex;
  align-items: center;
  gap: 14px;
}
.eyebrow .dot {
  width: 8px; height: 8px;
  background: var(--canopy-mid);
  display: inline-block;
}
.dark .eyebrow { color: var(--canopy-mid); }
.light .eyebrow { color: var(--canopy); }

/* Slide titles */
.title {
  font-family: var(--font-display);
  font-size: var(--type-h1);
  font-weight: 700;
  line-height: 1.02;
  letter-spacing: -0.025em;
  margin: 0;
  text-wrap: balance;
}
.title.tight { letter-spacing: -0.03em; }

/* Subtitles */
.subtitle {
  font-family: var(--font-display);
  font-size: var(--type-h2);
  font-weight: 500;
  line-height: 1.15;
  letter-spacing: -0.02em;
  margin: 0;
  text-wrap: balance;
}

/* Body */
.body {
  font-family: var(--font-body);
  font-size: var(--type-body);
  line-height: 1.45;
  font-weight: 400;
}
.small {
  font-family: var(--font-body);
  font-size: var(--type-small);
  line-height: 1.5;
}

/* Mono numeric helpers */
.mono {
  font-family: var(--font-mono);
  font-feature-settings: 'tnum';
}

/* Color helpers */
.gold { color: var(--gold); }
.canopy { color: var(--canopy-mid); }
.dark .muted { color: var(--muted-dark); }
.light .muted { color: var(--muted-light); }

/* Stat block — used in many slides */
.stat {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.stat .figure {
  font-family: var(--font-mono);
  font-weight: 700;
  font-feature-settings: 'tnum';
  font-size: var(--type-mono-big);
  line-height: 1;
  letter-spacing: -0.02em;
}
.stat .label {
  font-size: var(--type-small);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-weight: 500;
  font-family: var(--font-display);
}
.dark .stat .label { color: var(--muted-dark); }
.light .stat .label { color: var(--muted-light); }

/* Hairline dividers */
.rule {
  height: 1px;
  width: 100%;
  background: var(--hairline-dark);
}
.light .rule { background: var(--hairline-light); }

/* Chips / pills */
.chip {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 20px;
  border-radius: 999px;
  font-family: var(--font-display);
  font-size: var(--type-small);
  font-weight: 500;
  letter-spacing: 0.02em;
}
.chip-gold {
  background: var(--gold);
  color: var(--forest);
  font-family: var(--font-mono);
  font-weight: 700;
  font-feature-settings: 'tnum';
}
.chip-live {
  background: var(--leaf-tint);
  color: var(--canopy-deep);
  padding: 6px 14px;
  font-size: 18px;
}
.chip-soon {
  background: rgba(244,246,242,0.08);
  color: var(--muted-dark);
  padding: 6px 14px;
  font-size: 18px;
}

/* Generic card */
.card {
  background: var(--forest-2);
  border: 1px solid var(--hairline-mid);
  padding: 36px;
  display: flex;
  flex-direction: column;
}
.light .card {
  background: #fff;
  border-color: var(--frost);
}

/* ====================================================================
   Slide-specific styles
   ==================================================================== */

/* --- Slide 1 (Cover) --- */
.cover {
  padding: 0;
  flex-direction: row;
}
.cover .left {
  flex: 1;
  padding: var(--pad-top) var(--pad-x) var(--pad-bottom);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  z-index: 2;
}
.cover .right {
  position: absolute;
  right: 0; top: 0; bottom: 0;
  width: 55%;
  -webkit-mask-image: linear-gradient(to left, #000 30%, transparent 100%);
  mask-image: linear-gradient(to left, #000 30%, transparent 100%);
  z-index: 1;
}
.cover .wordmark {
  font-family: var(--font-display);
  font-size: var(--type-display);
  font-weight: 800;
  line-height: 0.95;
  letter-spacing: -0.04em;
}
.cover .wordmark .iq {
  color: var(--canopy-mid);
}
.cover .tagline {
  font-family: var(--font-display);
  font-size: 40px;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: -0.02em;
  max-width: 18ch;
  margin-top: 32px;
  color: var(--paper);
}
.cover .sub {
  font-size: 24px;
  margin-top: 14px;
  color: var(--muted-dark);
}
.cover .footer-row {
  display: flex;
  gap: 32px;
  font-family: var(--font-mono);
  font-size: 18px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--muted-dark);
}
.cover .footer-row .sep { color: var(--canopy); }
.cover .floating-chip {
  position: absolute;
  top: 28%;
  right: 18%;
  z-index: 3;
}

/* --- Slide 2 (Problem) --- */
.problem-grid {
  display: grid;
  grid-template-columns: 1fr 1px 1fr;
  gap: 80px;
  margin-top: 64px;
  flex: 1;
  align-content: start;
}
.problem-grid .divider {
  background: var(--hairline-mid);
  width: 1px;
}
.problem-col h3 {
  font-family: var(--font-display);
  font-size: 30px;
  font-weight: 600;
  letter-spacing: -0.02em;
  margin: 0 0 32px;
  color: var(--canopy-mid);
}
.problem-col ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 28px;
}
.problem-col li {
  font-size: 28px;
  line-height: 1.35;
  position: relative;
  padding-left: 36px;
  color: var(--paper);
}
.problem-col li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 17px;
  width: 18px;
  height: 1.5px;
  background: var(--gold);
}
.stat-bar {
  margin-top: auto;
  border-top: 1px solid var(--hairline-mid);
  padding-top: 32px;
  display: flex;
  gap: 80px;
  font-family: var(--font-mono);
  font-feature-settings: 'tnum';
  color: var(--gold);
  font-size: 26px;
  letter-spacing: -0.01em;
}
.stat-bar .figure {
  font-size: 36px;
  font-weight: 700;
}
.stat-bar .sep {
  color: var(--canopy);
}

/* --- Slide 3 (How it works) --- */
.steps {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 32px;
  margin-top: 64px;
  flex: 1;
}
.step {
  background: #fff;
  border: 1px solid var(--frost);
  padding: 40px 36px 36px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.step .num {
  font-family: var(--font-mono);
  font-weight: 700;
  font-size: 22px;
  color: var(--canopy);
  letter-spacing: 0.05em;
}
.step h3 {
  font-family: var(--font-display);
  font-size: 32px;
  font-weight: 600;
  letter-spacing: -0.02em;
  margin: 0;
  line-height: 1.1;
}
.step p {
  margin: 0;
  font-size: 22px;
  line-height: 1.45;
  color: var(--muted-light);
}
.step .visual {
  margin-top: auto;
  height: 200px;
  background: var(--paper-2);
  border: 1px solid var(--frost);
  position: relative;
  overflow: hidden;
}
.contrast {
  margin-top: 48px;
  padding-top: 32px;
  border-top: 1px solid var(--hairline-light);
  display: flex;
  gap: 48px;
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 500;
  align-items: baseline;
}
.contrast .from { color: var(--muted-light); text-decoration: line-through; text-decoration-color: rgba(0,0,0,0.25); }
.contrast .arrow { color: var(--canopy); font-family: var(--font-mono); }
.contrast .to { color: var(--ink); }

/* --- Slide 4 (Demo strip) --- */
.demo-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  margin-top: 56px;
  flex: 1;
}
.demo-shot {
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.demo-shot .frame {
  flex: 1;
  background: var(--forest-2);
  border: 1px solid var(--hairline-mid);
  position: relative;
  overflow: hidden;
  min-height: 480px;
}
.demo-shot .caption {
  font-family: var(--font-display);
  font-size: 20px;
  font-weight: 500;
  color: var(--paper);
}
.demo-shot .step-tag {
  font-family: var(--font-mono);
  font-size: 14px;
  letter-spacing: 0.1em;
  color: var(--canopy-mid);
  text-transform: uppercase;
}
.demo-final {
  margin-top: 40px;
  display: flex;
  gap: 48px;
  align-items: baseline;
  justify-content: flex-end;
  font-family: var(--font-mono);
  font-feature-settings: 'tnum';
}
.demo-final .price {
  font-size: 80px;
  font-weight: 700;
  color: var(--gold);
  letter-spacing: -0.02em;
  line-height: 1;
}
.demo-final .time {
  font-size: 32px;
  color: var(--paper);
}

/* --- Slide 5 (Products) --- */
.products-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  margin-top: 64px;
}
.product-card {
  background: var(--forest-2);
  border: 1px solid var(--hairline-mid);
  padding: 36px 32px;
  display: flex;
  flex-direction: column;
  gap: 20px;
  min-height: 360px;
}
.product-card.soon {
  background: transparent;
  border-style: dashed;
  border-color: var(--hairline-mid);
  color: var(--muted-dark);
}
.product-card .logo {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 38px;
  letter-spacing: -0.02em;
}
.product-card .logo .iq { color: var(--canopy-mid); }
.product-card.soon .logo { color: var(--muted-dark); }
.product-card.soon .logo .iq { color: rgba(82,183,136,0.4); }
.product-card .vert {
  font-size: 22px;
  color: var(--paper);
  font-weight: 500;
}
.product-card.soon .vert { color: var(--muted-dark); }
.product-card .url {
  margin-top: auto;
  font-family: var(--font-mono);
  font-size: 14px;
  color: var(--muted-dark);
  letter-spacing: 0.02em;
}
.platform-note {
  margin-top: 52px;
  padding: 28px 36px;
  border-left: 2px solid var(--gold);
  font-family: var(--font-display);
  font-size: 26px;
  line-height: 1.4;
  font-weight: 400;
  max-width: 1100px;
}
.platform-note .gold-big {
  color: var(--gold);
  font-family: var(--font-mono);
  font-weight: 700;
}

/* --- Slide 6 (GetIQ dashboard) --- */
.split-2 {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: 80px;
  margin-top: 64px;
  flex: 1;
  align-items: stretch;
}
.split-2 ul.checks {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.split-2 ul.checks li {
  font-size: 26px;
  line-height: 1.4;
  padding-left: 48px;
  position: relative;
  text-wrap: pretty;
}
.split-2 ul.checks li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 14px;
  width: 24px; height: 2px;
  background: var(--canopy);
}
.key-line-light {
  margin-top: 40px;
  padding-top: 28px;
  border-top: 1px solid var(--hairline-light);
  font-family: var(--font-display);
  font-size: 26px;
  font-weight: 500;
  line-height: 1.4;
  color: var(--ink);
  max-width: 40ch;
}
.key-line-light .em { color: var(--canopy); }

/* --- Slide 7 (Market) --- */
.market-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  margin-top: 32px;
  flex: 1;
  align-items: center;
}
.tam-stack {
  display: flex;
  flex-direction: column;
  gap: 32px;
  align-items: center;
}
.tam-vis {
  position: relative;
  width: 460px;
  height: 460px;
}
.tam-circle {
  position: absolute;
  border-radius: 50%;
}
.tam-circle.tam {
  inset: 0;
  background: var(--canopy-deep);
}
.tam-circle.sam {
  inset: 18%;
  background: var(--canopy);
}
.tam-circle.som {
  inset: 42%;
  background: var(--gold);
}
.tam-num {
  position: absolute;
  font-family: var(--font-mono);
  font-weight: 700;
  letter-spacing: -0.02em;
  font-feature-settings: 'tnum';
  z-index: 2;
  white-space: nowrap;
}
.tam-num.n-tam {
  top: 16px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 32px;
  color: var(--paper);
}
.tam-num.n-sam {
  top: 100px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 28px;
  color: var(--paper);
}
.tam-num.n-som {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 28px;
  color: var(--forest);
}
.tam-legend {
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 100%;
  max-width: 540px;
}
.tam-legend-row {
  display: grid;
  grid-template-columns: 18px 1fr auto;
  gap: 18px;
  align-items: baseline;
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 500;
  color: var(--paper);
  padding-bottom: 12px;
  border-bottom: 1px dashed var(--hairline-mid);
}
.tam-legend-row:last-child { border-bottom: none; }
.tam-legend-row .swatch {
  width: 18px;
  height: 18px;
  border-radius: 4px;
}
.tam-legend-row .swatch.s-tam { background: var(--canopy-deep); }
.tam-legend-row .swatch.s-sam { background: var(--canopy); }
.tam-legend-row .swatch.s-som { background: var(--gold); }
.tam-legend-row .tier {
  font-family: var(--font-mono);
  font-size: 14px;
  letter-spacing: 0.15em;
  color: var(--muted-dark);
  text-transform: uppercase;
  font-weight: 700;
  margin-right: 10px;
}
.tam-legend-row .desc {
  color: var(--paper);
}
.why-boston h3 {
  font-family: var(--font-display);
  font-size: 24px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--canopy-mid);
  margin: 0 0 32px;
}
.why-boston ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.why-boston li {
  font-size: 26px;
  line-height: 1.4;
  padding-left: 32px;
  position: relative;
}
.why-boston li::before {
  content: '';
  position: absolute;
  left: 0; top: 16px;
  width: 14px; height: 1.5px;
  background: var(--gold);
}

/* --- Slide 8 (Unit economics) --- */
.unit-note {
  font-style: italic;
  font-size: 18px;
  color: var(--muted-light);
  margin-bottom: 32px;
  display: inline-block;
  padding: 8px 16px;
  background: var(--paper-2);
  border-left: 2px solid var(--gold);
}
.unit-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  margin-top: 32px;
  flex: 1;
}
.unit-box {
  background: #fff;
  border: 1px solid var(--frost);
  padding: 48px;
  display: flex;
  flex-direction: column;
  gap: 28px;
}
.unit-box h3 {
  font-family: var(--font-display);
  font-size: 24px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--canopy);
  margin: 0;
}
.unit-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--frost);
  gap: 24px;
}
.unit-row:last-child { border-bottom: none; }
.unit-row .label {
  font-size: 22px;
  color: var(--muted-light);
}
.unit-row .val {
  font-family: var(--font-mono);
  font-weight: 700;
  font-feature-settings: 'tnum';
  font-size: 32px;
  color: var(--ink);
  letter-spacing: -0.01em;
}
.unit-row.hero .val { font-size: 44px; color: var(--canopy); }

/* --- Slide 9 (Competition) --- */
.compare {
  width: 100%;
  border-collapse: collapse;
  margin-top: 56px;
}
.compare th, .compare td {
  text-align: left;
  padding: 28px 24px;
  font-size: 24px;
  vertical-align: top;
  line-height: 1.4;
}
.compare th {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 22px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--muted-dark);
  border-bottom: 1px solid var(--hairline-mid);
}
.compare th.iq {
  background: var(--gold);
  color: var(--forest);
  font-weight: 700;
}
.compare td {
  border-bottom: 1px solid var(--hairline-mid);
  color: var(--paper);
}
.compare td.row-label {
  color: var(--muted-dark);
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 22px;
}
.compare td.iq {
  color: var(--gold-soft);
  background: rgba(201,162,39,0.05);
  font-weight: 500;
}
.compare-key {
  margin-top: 56px;
  font-family: var(--font-display);
  font-size: 36px;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: -0.02em;
  color: var(--paper);
  max-width: 28ch;
}
.compare-key .em { color: var(--gold); }

/* --- Slide 10 (Honest status) --- */
.honest-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  margin-top: 48px;
  flex: 1;
}
.honest-col h3 {
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin: 0 0 36px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--hairline-light);
}
.honest-col.shipped h3 { color: var(--canopy); }
.honest-col.todo h3 { color: var(--gold); }
.honest-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.honest-list li {
  display: flex;
  align-items: baseline;
  gap: 18px;
  font-size: 24px;
  line-height: 1.4;
}
.honest-list li .marker {
  font-family: var(--font-mono);
  font-weight: 700;
  font-size: 22px;
  width: 24px;
  flex-shrink: 0;
}
.shipped .marker { color: var(--canopy); }
.todo .marker { color: var(--gold); }
.honest-list li.headline {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 36px;
  letter-spacing: -0.015em;
  line-height: 1.15;
  margin: 6px 0;
}
.honest-list li.headline .marker {
  font-size: 32px;
  width: 32px;
}
.honest-foot {
  margin-top: 48px;
  padding-top: 24px;
  border-top: 1px solid var(--hairline-light);
  font-family: var(--font-display);
  font-size: 24px;
  font-weight: 500;
  color: var(--ink);
  max-width: 80ch;
}
.subline-italic {
  font-style: italic;
  font-family: var(--font-body);
  font-size: 24px;
  color: var(--muted-light);
  margin-top: 18px;
}

/* --- Slide 11 (Milestones) --- */
.milestones {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 32px;
  margin-top: 56px;
  flex: 1;
}
.milestone {
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding: 36px 32px;
  background: var(--forest-2);
  border-top: 3px solid var(--gold);
  position: relative;
}
.milestone .weeks {
  font-family: var(--font-mono);
  font-weight: 700;
  font-size: 20px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gold);
}
.milestone h3 {
  font-family: var(--font-display);
  font-size: 32px;
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.1;
  margin: 0;
  color: var(--paper);
}
.milestone ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.milestone li {
  font-size: 22px;
  line-height: 1.4;
  padding-left: 24px;
  position: relative;
  color: var(--paper);
}
.milestone li::before {
  content: '';
  position: absolute;
  left: 0; top: 13px;
  width: 12px; height: 1.5px;
  background: var(--canopy-mid);
}
.milestone .target {
  margin-top: auto;
  padding-top: 24px;
  border-top: 1px solid var(--hairline-mid);
  font-family: var(--font-mono);
  font-weight: 700;
  font-size: 22px;
  color: var(--canopy-mid);
  letter-spacing: 0.02em;
}

/* --- Slide 12 (Risks) --- */
.risk-table {
  margin-top: 48px;
  display: flex;
  flex-direction: column;
}
.risk-row {
  display: grid;
  grid-template-columns: 0.65fr 1.35fr;
  gap: 64px;
  padding: 36px 0;
  border-bottom: 1px solid var(--hairline-light);
  align-items: start;
}
.risk-row:first-child { border-top: 1px solid var(--hairline-light); }
.risk-row .r-label {
  font-family: var(--font-display);
  font-size: 28px;
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: var(--ink);
}
.risk-row .r-label .tag {
  display: block;
  font-family: var(--font-mono);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.15em;
  color: var(--canopy);
  text-transform: uppercase;
  margin-bottom: 10px;
}
.risk-row .r-mit {
  font-size: 24px;
  line-height: 1.5;
  color: var(--muted-light);
}
.risk-row .r-mit strong { color: var(--ink); font-weight: 600; }

/* --- Slide 13 (Roadmap) --- */
.phases {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 4px;
  margin-top: 56px;
  flex: 1;
}
.phase {
  padding: 40px 36px;
  display: flex;
  flex-direction: column;
  gap: 24px;
  position: relative;
}
.phase-1 { background: var(--canopy-deep); }
.phase-2 { background: var(--canopy); }
.phase-3 { background: var(--canopy-mid); color: var(--forest); }
.phase .ix {
  font-family: var(--font-mono);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  opacity: 0.7;
}
.phase-3 .ix { opacity: 0.85; }
.phase h3 {
  font-family: var(--font-display);
  font-size: 32px;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.05;
  margin: 0;
  color: inherit;
}
.phase .q {
  font-family: var(--font-mono);
  font-weight: 700;
  font-size: 22px;
  letter-spacing: 0.04em;
  color: var(--gold);
}
.phase-3 .q { color: var(--forest); }
.phase ul {
  list-style: none;
  padding: 0;
  margin: 18px 0 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.phase li {
  font-size: 22px;
  line-height: 1.4;
  padding-left: 22px;
  position: relative;
}
.phase li::before {
  content: '—';
  position: absolute;
  left: 0; top: 0;
  font-weight: 700;
  opacity: 0.6;
}

/* --- Slide 14 (Team) --- */
.team-grid {
  display: grid;
  grid-template-columns: 320px 1fr 320px 1fr;
  gap: 48px;
  margin-top: 48px;
  flex: 1;
  align-items: start;
}
.team-card {
  display: contents;
}
.team-card .meta {
  display: flex;
  flex-direction: column;
  gap: 22px;
  padding-top: 4px;
}
.team-photo {
  width: 100%;
  aspect-ratio: 1 / 1;
  background: var(--forest-2);
  border: 1px solid var(--hairline-mid);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
}
.photo-tag {
  position: absolute;
  bottom: 16px; left: 16px;
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--muted-dark);
}
.team-card .name {
  font-family: var(--font-display);
  font-size: 38px;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.05;
  color: var(--paper);
  margin: 0;
}
.team-card .role {
  font-family: var(--font-display);
  font-size: 18px;
  font-weight: 600;
  color: var(--canopy-mid);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-top: 6px;
}
.team-card .bio {
  font-size: 22px;
  line-height: 1.4;
  color: var(--paper);
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.team-card .bio .item {
  display: flex;
  gap: 14px;
  align-items: baseline;
  padding-left: 0;
}
.team-card .bio .item::before {
  content: '';
  width: 14px;
  height: 1.5px;
  background: var(--canopy);
  flex-shrink: 0;
  position: relative;
  top: -5px;
}

/* --- Slide 15 (Ask) --- */
.ask {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  flex: 1;
}
.ask-top {
  display: flex;
  flex-direction: column;
  gap: 28px;
  align-items: flex-start;
  margin-top: 24px;
}
.ask-mega {
  font-family: var(--font-mono);
  font-feature-settings: 'tnum';
  font-size: var(--type-mega);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.04em;
  color: var(--gold);
}
.ask-sub {
  font-family: var(--font-display);
  font-size: 30px;
  font-weight: 400;
  color: var(--paper);
  letter-spacing: -0.01em;
}
.ask-sub .pipe { color: var(--canopy-mid); margin: 0 12px; }
.use-bar {
  margin-top: 56px;
  display: flex;
  height: 110px;
  width: 100%;
  border: 1px solid var(--hairline-mid);
}
.use-seg {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 18px 24px;
  border-right: 1px solid var(--hairline-mid);
}
.use-seg:last-child { border-right: none; }
.use-seg .pct {
  font-family: var(--font-mono);
  font-weight: 700;
  font-size: 32px;
  letter-spacing: -0.01em;
}
.use-seg .what {
  font-family: var(--font-display);
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.use-seg .detail {
  font-size: 16px;
  color: var(--muted-dark);
  letter-spacing: 0.01em;
}
.use-seg.marketing { background: rgba(201,162,39,0.92); color: var(--forest); flex: 40; }
.use-seg.marketing .detail { color: rgba(20,32,25,0.7); }
.use-seg.engineering { background: var(--canopy); color: var(--paper); flex: 35; }
.use-seg.engineering .detail { color: rgba(244,246,242,0.7); }
.use-seg.operations { background: var(--canopy-deep); color: var(--paper); flex: 25; }
.use-seg.operations .detail { color: rgba(244,246,242,0.7); }

.ask-foot {
  margin-top: 56px;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  font-family: var(--font-mono);
  font-size: 18px;
  letter-spacing: 0.04em;
  color: var(--muted-dark);
  border-top: 1px solid var(--hairline-mid);
  padding-top: 28px;
}
.ask-foot .contact {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.ask-foot .contact .name {
  color: var(--paper);
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 600;
  letter-spacing: -0.01em;
  text-transform: none;
}
.ask-foot .contact .email {
  color: var(--gold);
  font-size: 18px;
}
.ask-foot .links {
  text-align: right;
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 15px;
  letter-spacing: 0.02em;
}
.ask-foot .links .head {
  font-family: var(--font-display);
  font-size: 14px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--canopy-mid);
  margin-bottom: 4px;
}

/* ====================================================================
   Map / screenshot styled mockups
   ==================================================================== */

.satmap {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 20% 30%, rgba(82,183,136,0.10), transparent 50%),
    radial-gradient(circle at 75% 65%, rgba(82,183,136,0.06), transparent 45%),
    #0F1A14;
  overflow: hidden;
}
.satmap::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(82,183,136,0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(82,183,136,0.05) 1px, transparent 1px);
  background-size: 60px 60px;
}
.satmap.light {
  background:
    radial-gradient(circle at 30% 40%, rgba(45,106,79,0.08), transparent 50%),
    #E8EDE4;
}
.satmap.light::before {
  background-image:
    linear-gradient(rgba(45,106,79,0.10) 1px, transparent 1px),
    linear-gradient(90deg, rgba(45,106,79,0.10) 1px, transparent 1px);
}
.parcel {
  fill: rgba(45,106,79,0.18);
  stroke: var(--canopy-mid);
  stroke-width: 2;
  stroke-dasharray: 6 4;
}
.parcel.solid { stroke-dasharray: none; fill: rgba(82,183,136,0.20); }
.parcel-handle {
  fill: var(--canopy-mid);
  stroke: var(--forest);
  stroke-width: 2;
}

/* Mock screenshot inset boxes used in step cards and demo strip */
.shot-search {
  position: absolute;
  top: 18px; left: 18px; right: 18px;
  background: rgba(20,32,25,0.85);
  border: 1px solid rgba(82,183,136,0.3);
  padding: 10px 14px;
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--paper);
  display: flex;
  justify-content: space-between;
  align-items: center;
  z-index: 2;
}
.shot-pill {
  background: var(--canopy);
  color: var(--paper);
  padding: 2px 8px;
  font-size: 10px;
  border-radius: 999px;
  letter-spacing: 0.05em;
}
.shot-result-card {
  position: absolute;
  bottom: 20px;
  left: 20px;
  right: 20px;
  background: linear-gradient(135deg, var(--canopy), var(--canopy-deep));
  color: var(--paper);
  padding: 18px 20px;
  border-radius: 14px;
  z-index: 3;
}
.shot-result-card .price {
  font-family: var(--font-mono);
  font-weight: 700;
  font-size: 28px;
  letter-spacing: -0.01em;
}
.shot-result-card .meta {
  font-family: var(--font-mono);
  font-size: 11px;
  opacity: 0.7;
  margin-top: 4px;
  letter-spacing: 0.04em;
}
.shot-modal {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 4;
}
.shot-modal .panel {
  background: var(--paper);
  width: 75%;
  padding: 14px 18px;
  border-radius: 10px;
  color: var(--ink);
  font-family: var(--font-mono);
  font-size: 12px;
}
.shot-modal .panel .h {
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--canopy);
  margin-bottom: 6px;
}
.shot-modal .panel .field {
  background: #fff;
  border: 1px solid var(--frost);
  border-radius: 6px;
  padding: 8px 10px;
  margin-bottom: 8px;
  color: var(--muted-light);
}
.shot-modal .panel .btn {
  background: var(--canopy);
  color: var(--paper);
  padding: 8px 12px;
  border-radius: 6px;
  display: inline-block;
  font-size: 11px;
  font-family: var(--font-display);
  font-weight: 600;
}

/* Dashboard mock for slide 6 */
.dash-mock {
  background: #fff;
  border: 1px solid var(--frost);
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  font-family: var(--font-body);
  overflow: hidden;
}
.dash-bar {
  background: var(--paper-2);
  border-bottom: 1px solid var(--frost);
  padding: 18px 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--font-display);
}
.dash-bar .t {
  font-weight: 700;
  font-size: 18px;
  letter-spacing: -0.01em;
}
.dash-bar .t .iq { color: var(--canopy); }
.dash-bar .tabs {
  display: flex;
  gap: 24px;
  font-size: 13px;
  font-weight: 500;
  color: var(--muted-light);
}
.dash-bar .tabs .active { color: var(--canopy); border-bottom: 2px solid var(--canopy); padding-bottom: 4px; }
.dash-kpis {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 1px;
  background: var(--frost);
  border-bottom: 1px solid var(--frost);
}
.dash-kpi {
  background: #fff;
  padding: 20px 24px;
}
.dash-kpi .l {
  font-family: var(--font-display);
  font-size: 11px;
  letter-spacing: 0.1em;
  color: var(--muted-light);
  text-transform: uppercase;
  font-weight: 600;
  margin-bottom: 6px;
}
.dash-kpi .v {
  font-family: var(--font-mono);
  font-weight: 700;
  font-size: 28px;
  color: var(--ink);
}
.dash-kpi .v .accent { color: var(--canopy); }
.dash-rows {
  flex: 1;
  display: flex;
  flex-direction: column;
}
.dash-row {
  display: grid;
  grid-template-columns: 0.3fr 1fr 0.8fr 0.5fr 0.5fr;
  padding: 16px 24px;
  border-bottom: 1px solid var(--frost);
  align-items: center;
  font-size: 14px;
  gap: 16px;
}
.dash-row.head {
  font-family: var(--font-display);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted-light);
  background: var(--paper-2);
}
.dash-row .badge {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-family: var(--font-display);
  font-weight: 600;
  text-align: center;
}
.dash-row .b-leaf { background: var(--leaf-tint); color: var(--canopy-deep); }
.dash-row .b-mow  { background: #FFF8E6; color: var(--gold); }
.dash-row .b-gut  { background: #DBEAFE; color: var(--color-info, #1E40AF); }
.dash-row .b-done { background: #D9F2E1; color: var(--canopy-deep); }
.dash-row .b-sched{ background: #DBEAFE; color: #1E40AF; }
.dash-row .b-new  { background: var(--leaf-tint); color: var(--canopy); }
.dash-row .mono { font-family: var(--font-mono); font-size: 13px; }

/* ====================================================================
   Slide 1 floating chip — gold
   ==================================================================== */
.float-card {
  background: var(--gold);
  color: var(--forest);
  padding: 22px 30px;
  font-family: var(--font-mono);
  display: inline-flex;
  flex-direction: column;
  gap: 4px;
  box-shadow: 0 24px 48px rgba(0,0,0,0.35);
}
.float-card .price {
  font-size: 38px;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1;
}
.float-card .lbl {
  font-family: var(--font-display);
  font-size: 13px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  font-weight: 600;
  color: rgba(20,32,25,0.7);
}
