/* ===============================================================
   Bronze Age · Investor deck v2

   Every slide is a 1440 x 900 artboard (.frame) that scales to fit
   the screen, so the layout is identical on every laptop and in the
   PDF. Sizes are written in design pixels: calc(N * var(--p)).
   Phones, portrait tablets and very short windows get a single-column
   layout instead (see "Phones" at the end).
   =============================================================== */

*,
*::before,
*::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --cream: #f5efe5;
  --night: #110d07;
  --night-2: #1a140c;
  --bronze: #b08d57;
  --bronze-deep: #86663a;
  --paper: #f0e9db;
  --ink: #1a150d;

  --serif: "Cormorant Garamond", "Times New Roman", Times, serif;
  --typewriter: "Special Elite", "Courier New", Courier, monospace;
  --sans: "Jost", "Helvetica Neue", Helvetica, Arial, sans-serif;

  /* One design pixel: the frame fills the window, and type scales with
     whichever side is tighter against a 1440 x 900 design. */
  --p: min(calc(100cqw / 1440), calc(100cqh / 900));

  --t-display: calc(100 * var(--p));
  --t-h1: calc(60 * var(--p));
  --t-h2: calc(38 * var(--p));
  --t-h3: calc(28 * var(--p));
  --t-h4: calc(22 * var(--p));
  --t-lead: calc(23 * var(--p));
  --t-body: calc(18.5 * var(--p));
  --t-small: calc(16 * var(--p));
  --t-micro: calc(11 * var(--p));

  --s1: calc(8 * var(--p));
  --s2: calc(14 * var(--p));
  --s3: calc(22 * var(--p));
  --s4: calc(34 * var(--p));
  --s5: calc(52 * var(--p));

  --pad-x: calc(56 * var(--p));
  --pad-top: calc(46 * var(--p));
  --pad-bottom: calc(92 * var(--p));
  --media: 44%;
}

html { background: var(--night); scroll-behavior: smooth; }
body {
  background: var(--night);
  color: var(--cream);
  font-family: var(--sans);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img { display: block; max-width: 100%; }
a { color: inherit; }
ol, ul { list-style: none; }
::selection { background: #3d2e1e; color: var(--cream); }

/* --- Deck, slides, artboards ------------------------------------- */

.deck {
  height: 100dvh;
  overflow-y: auto;
  scroll-snap-type: y mandatory;
  scrollbar-width: none;
}
.deck::-webkit-scrollbar { display: none; }

.slide {
  --fg: var(--cream);
  --fg-2: rgba(245, 239, 229, 0.8);
  --fg-3: rgba(245, 239, 229, 0.54);
  --line: rgba(245, 239, 229, 0.14);
  --line-strong: rgba(245, 239, 229, 0.32);
  --accent: var(--bronze);
  --accent-soft: rgba(176, 141, 87, 0.14);
  --card: rgba(245, 239, 229, 0.035);
  --surface: var(--night);

  position: relative;
  height: 100dvh;
  display: grid;
  place-items: center;
  overflow: hidden;
  scroll-snap-align: start;
  scroll-snap-stop: always;
  background: var(--surface);
  color: var(--fg);
}

.slide--paper {
  --fg: var(--ink);
  --fg-2: rgba(26, 21, 13, 0.78);
  --fg-3: rgba(26, 21, 13, 0.56);
  --line: rgba(26, 21, 13, 0.14);
  --line-strong: rgba(26, 21, 13, 0.34);
  --accent: var(--bronze-deep);
  --accent-soft: rgba(134, 102, 58, 0.11);
  --card: rgba(255, 255, 255, 0.45);
  --surface: var(--paper);
}

.frame {
  position: relative;
  z-index: 1;
  width: 100vw;
  height: 100dvh;
  container-type: size;
}

.in {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: var(--s5);
  padding: var(--pad-top) var(--pad-x) var(--pad-bottom);
}
.in--bottom { justify-content: flex-end; }
.in--top { justify-content: flex-start; }
.slide--media-right .in { padding-right: calc(var(--media) + 64 * var(--p)); }
.slide--media-left .in { padding-left: calc(var(--media) + 64 * var(--p)); }

.fill { flex: none; }
.push { margin-top: auto; }

/* Header and footer bands inside each artboard */
.head {
  position: absolute;
  z-index: 3;
  top: calc(40 * var(--p));
  left: var(--pad-x);
  right: var(--pad-x);
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--s3);
}
.slide--media-right .head { right: var(--pad-x); }
.slide--media-right .head .brand { color: var(--cream); text-shadow: 0 1px 10px rgba(0, 0, 0, 0.45); }
.slide--media-left .head { left: calc(var(--media) + 64 * var(--p)); }

.brand {
  display: inline-flex;
  align-items: center;
  gap: calc(9 * var(--p));
  font-family: var(--serif);
  font-size: calc(17 * var(--p));
  letter-spacing: 0.03em;
  text-decoration: none;
  color: var(--fg);
}
.brand img { width: calc(18 * var(--p)); height: auto; }
.brand em { font-style: italic; }

.label {
  font-size: var(--t-micro);
  font-weight: 400;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--fg-3);
}
.label b { font-weight: 400; color: var(--accent); margin-right: 0.9em; }

.foot {
  position: absolute;
  z-index: 3;
  left: var(--pad-x);
  bottom: calc(36 * var(--p));
  max-width: 70%;
  font-size: var(--t-micro);
  line-height: 1.5;
  letter-spacing: 0.02em;
  color: var(--fg-3);
}
.slide--media-left .foot { left: calc(var(--media) + 64 * var(--p)); max-width: 40%; }
.foot a { color: var(--fg-2); }

/* Images inside the artboard, edge to edge on one side */
.media {
  position: absolute;
  z-index: 1;
  top: 0;
  bottom: 0;
  width: var(--media);
  overflow: hidden;
  background: var(--night-2);
}
.slide--media-right .media { right: 0; }
.slide--media-left .media { left: 0; }
.media img { width: 100%; height: 100%; object-fit: cover; }
.credit {
  position: absolute;
  left: calc(20 * var(--p));
  bottom: calc(18 * var(--p));
  font-size: var(--t-micro);
  font-weight: 400;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(245, 239, 229, 0.82);
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.55);
}

/* Full-bleed background image behind the artboard */
.bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.bg img { width: 100%; height: 100%; object-fit: cover; }
.bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(to right, rgba(17, 13, 7, 0.88) 0%, rgba(17, 13, 7, 0.55) 48%, rgba(17, 13, 7, 0.05) 80%),
    linear-gradient(to bottom, rgba(17, 13, 7, 0.75) 0%, rgba(17, 13, 7, 0) 60%);
}
.bg--heavy::after {
  background:
    linear-gradient(to top, rgba(17, 13, 7, 0.95) 0%, rgba(17, 13, 7, 0.82) 60%, rgba(17, 13, 7, 0.7) 100%);
}
.bg--heavy img { object-position: center 60%; }

/* --- Slide title: eyebrow and heading, top left ---------------- */

.title {
  display: flex;
  flex-direction: column;
  gap: calc(18 * var(--p));
  max-width: 76%;
}
.title .lead { max-width: 60ch; }
.slide--media-right .title,
.slide--media-left .title { max-width: none; }
.eyebrow {
  display: flex;
  align-items: center;
  gap: calc(14 * var(--p));
  margin-bottom: calc(14 * var(--p));
  font-size: var(--t-micro);
  font-weight: 400;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  line-height: 1.4;
  color: var(--accent);
}
/* Slide number, a short hairline, then the section name */
.eyebrow b {
  display: inline-flex;
  align-items: center;
  gap: calc(14 * var(--p));
  font-weight: 400;
  color: var(--fg-3);
}
.eyebrow b::after,
.eyebrow--plain::before {
  content: "";
  width: calc(40 * var(--p));
  border-top: 1px solid var(--accent);
  opacity: 0.7;
}

/* Everything under the title fills the rest of the slide, centred in it */
.content {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--s4);
}
.content--top { justify-content: flex-start; }
.content--bottom { justify-content: flex-end; }
/* Sparse slides: title top, body block above .foot (avoid space-between inside .content) */
.in--anchor {
  justify-content: space-between;
  gap: calc(28 * var(--p));
}
.in--anchor > .content {
  flex: 0 0 auto;
  justify-content: flex-start;
}

/* --- Type ------------------------------------------------------- */

.h1 {
  font-family: var(--serif);
  font-weight: 300;
  font-size: var(--t-h1);
  line-height: 1.02;
  letter-spacing: -0.02em;
  text-wrap: balance;
  color: var(--fg);
}
.h1--display { font-size: var(--t-display); line-height: 0.98; letter-spacing: -0.022em; }
.h1 em { font-style: italic; }
.h1--sm { font-size: calc(44 * var(--p)); }
.h1--two { max-width: 15em; }

.lead {
  font-size: var(--t-lead);
  font-style: italic;
  font-weight: 300;
  letter-spacing: 0.01em;
  line-height: 1.38;
  color: var(--fg-2);
  text-wrap: pretty;
}
.p {
  font-size: var(--t-body);
  letter-spacing: 0.012em;
  line-height: 1.6;
  color: var(--fg-2);
  text-wrap: pretty;
}
.p--small { font-size: var(--t-small); line-height: 1.5; }
.p strong, .lead strong { font-weight: 400; color: var(--fg); }

.kicker {
  font-size: var(--t-micro);
  font-weight: 400;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--accent);
}

.statement {
  font-family: var(--sans);
  font-size: var(--t-h3);
  line-height: 1.28;
  color: var(--fg);
  padding-left: var(--s3);
  border-left: 2px solid var(--accent);
  text-wrap: pretty;
}
.statement--plain { padding-left: 0; border-left: none; }

.stack { display: flex; flex-direction: column; gap: var(--s3); }
.stack--tight { gap: var(--s2); }
.stack--loose { gap: var(--s4); }

/* --- Grids ------------------------------------------------------ */

.grid { display: grid; gap: var(--s5); align-items: start; }
.cols-5-7 { grid-template-columns: 5fr 7fr; }
.cols-7-5 { grid-template-columns: 7fr 5fr; }
.cols-2 { grid-template-columns: 1fr 1fr; }
.cols-3 { grid-template-columns: repeat(3, 1fr); gap: var(--s4); }
.cols-4 { grid-template-columns: repeat(4, 1fr); gap: var(--s4); }
.grid--center { align-items: center; }
.grid--end { align-items: end; }

/* --- Lists ------------------------------------------------------ */

.rows { counter-reset: r; border-top: 1px solid var(--line); }
.rows li {
  counter-increment: r;
  display: grid;
  grid-template-columns: calc(54 * var(--p)) 1fr;
  align-items: baseline;
  padding: calc(13 * var(--p)) 0;
  border-bottom: 1px solid var(--line);
  font-size: var(--t-body);
  line-height: 1.45;
  color: var(--fg);
}
.rows li::before {
  content: counter(r, decimal-leading-zero);
  font-family: var(--sans);
  font-size: 1.3em;
  line-height: 1;
  color: var(--accent);
}

.ticks li {
  position: relative;
  padding: calc(8 * var(--p)) 0 calc(8 * var(--p)) calc(24 * var(--p));
  border-bottom: 1px solid var(--line);
  font-size: var(--t-body);
  line-height: 1.42;
  color: var(--fg-2);
}
.ticks li::before {
  content: "";
  position: absolute;
  left: 0;
  top: calc(8 * var(--p) + 0.72em);
  width: calc(11 * var(--p));
  border-top: 1.5px solid var(--accent);
}
.ticks--small li { font-size: var(--t-small); }
.ticks--2 { columns: 2; column-gap: var(--s4); }
.ticks--2 li { break-inside: avoid; }
.ticks--open li:last-child { border-bottom: none; }

/* --- 01 Cover --------------------------------------------------- */

.cover { max-width: 72%; }

/* Cover: headline top left, description along the foot */
.cover-foot {
  margin-top: auto;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--s4);
  padding-top: var(--s3);
  border-top: 1px solid rgba(245, 239, 229, 0.22);
}
.cover-foot .lead { max-width: 46ch; color: rgba(245, 239, 229, 0.86); }
.cover-credit {
  flex: none;
  font-size: var(--t-micro);
  font-weight: 400;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(245, 239, 229, 0.5);
}
.bg--cover::after {
  background:
    linear-gradient(to right, rgba(17, 13, 7, 0.85) 0%, rgba(17, 13, 7, 0.45) 50%, rgba(17, 13, 7, 0.05) 80%),
    linear-gradient(to bottom, rgba(17, 13, 7, 0.7) 0%, rgba(17, 13, 7, 0) 45%),
    linear-gradient(to top, rgba(17, 13, 7, 0.88) 0%, rgba(17, 13, 7, 0) 32%);
}

/* --- 02 The butler ---------------------------------------------- */

.duties {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: calc(10 * var(--p));
  counter-reset: d;
}
.duties li {
  counter-increment: d;
  padding: calc(14 * var(--p)) calc(16 * var(--p));
  border: 1px solid var(--line);
  background: var(--card);
  font-family: var(--sans);
  font-size: var(--t-h4);
  line-height: 1.2;
  color: var(--fg);
}
.duties li::before {
  content: counter(d, decimal-leading-zero);
  display: block;
  margin-bottom: calc(6 * var(--p));
  font-family: var(--typewriter);
  font-size: var(--t-micro);
  font-weight: 400;
  letter-spacing: 0.14em;
  color: var(--accent);
}

/* --- 04 What household AI does -------------------------------- */

.uses__intro { color: var(--fg); }
.uses { counter-reset: u; border-top: 1px solid var(--line); }
.uses li {
  counter-increment: u;
  display: grid;
  grid-template-columns: calc(44 * var(--p)) 1fr;
  align-items: baseline;
  padding: calc(12 * var(--p)) 0;
  border-bottom: 1px solid var(--line);
  font-family: var(--sans);
  font-size: var(--t-body);
  font-weight: 400;
  line-height: 1.35;
  color: var(--fg);
}
.uses li::before {
  content: counter(u, decimal-leading-zero);
  font-family: var(--typewriter);
  font-size: var(--t-micro);
  letter-spacing: 0.18em;
  color: var(--fg-3);
}
.example {
  display: flex;
  flex-direction: column;
  gap: calc(8 * var(--p));
  padding: var(--s3);
  border: 1px solid var(--line);
  background: var(--card);
}
.example .p { color: var(--fg); }

/* --- 03 Wake words ---------------------------------------------- */

.wake { display: flex; flex-direction: column; gap: calc(2 * var(--p)); }
.wake span {
  font-family: var(--sans);
  font-style: italic;
  font-size: var(--t-h2);
  line-height: 1.12;
  color: var(--fg-3);
}
.wake small {
  margin-top: var(--s1);
  font-size: var(--t-micro);
  font-weight: 400;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--fg-3);
}

/* --- 04 Built by hand vs one object ----------------------------- */

.diy {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: stretch;
  gap: var(--s3);
}
/* Both boxes share one width and one height */
.diy__box {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: calc(30 * var(--p)) var(--s3) var(--s3);
  border: 1px dashed var(--line-strong);
}
.diy__arrow { align-self: center; }
/* The parts fill the hand-built box, so neither box has empty bands */
.diy__box:not(.diy__box--ours) .diy__parts { flex: 1; grid-auto-rows: 1fr; }
.diy__parts .chip { display: flex; align-items: center; }
.diy__box--ours {
  border: 1px solid var(--accent);
  background: var(--accent-soft);
  justify-content: center;
  align-items: center;
}
.diy__tag {
  position: absolute;
  top: calc(-8 * var(--p));
  left: var(--s2);
  padding: 0 calc(8 * var(--p));
  background: var(--surface);
  font-size: var(--t-micro);
  font-weight: 400;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  line-height: 1.3;
  color: var(--fg-3);
}
.diy__box--ours .diy__tag { color: var(--accent); }
.diy__parts { display: grid; grid-template-columns: 1fr 1fr; gap: calc(10 * var(--p)); }
.diy__arrow { font-family: var(--sans); font-size: var(--t-h2); color: var(--accent); }
.diy__box--ours img {
  width: 100%;
  max-height: calc(210 * var(--p));
  object-fit: contain;
  object-position: center center;
  margin: auto;
}
.diy__note { font-size: var(--t-small); line-height: 1.4; color: var(--fg-2); }

.chip {
  padding: calc(10 * var(--p)) calc(12 * var(--p));
  border: 1px solid var(--line);
  background: var(--card);
  font-size: var(--t-small);
  line-height: 1.3;
  color: var(--fg-2);
}
.chip--out { border-color: var(--accent); color: var(--fg); background: var(--accent-soft); }

.band {
  padding-top: var(--s3);
  border-top: 1px solid var(--line);
}
.band .p { font-family: var(--sans); font-size: var(--t-h4); line-height: 1.4; color: var(--fg); }

/* --- 05 Chart and stat ------------------------------------------ */

.chart { margin: 0; }
.chart__plot {
  position: relative;
  height: calc(330 * var(--p));
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: calc(28 * var(--p));
  align-items: end;
  border-bottom: 1px solid var(--line-strong);
}
.chart__bar {
  position: relative;
  height: var(--h);
  background: linear-gradient(to top, rgba(176, 141, 87, 0.5), var(--bronze));
}
.chart__bar b {
  position: absolute;
  top: calc(10 * var(--p));
  left: 0;
  right: 0;
  font-family: var(--sans);
  font-weight: 400;
  font-size: var(--t-h3);
  line-height: 1;
  text-align: center;
  color: var(--ink);
}
.chart__bar i {
  position: absolute;
  left: calc(6 * var(--p));
  right: calc(6 * var(--p));
  bottom: calc(10 * var(--p));
  font-style: normal;
  font-size: var(--t-micro);
  font-weight: 400;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-align: center;
  line-height: 1.3;
  color: var(--ink);
}
.chart__ref {
  position: absolute;
  left: 0;
  right: 0;
  bottom: var(--y);
  z-index: 2;
  border-top: 1px dashed var(--fg-2);
}
.chart__ref span {
  position: absolute;
  right: 0;
  bottom: calc(5 * var(--p));
  font-size: var(--t-micro);
  font-weight: 400;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--fg-2);
}
.chart__years {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: calc(28 * var(--p));
  margin-top: calc(9 * var(--p));
  font-size: var(--t-micro);
  font-weight: 400;
  letter-spacing: 0.14em;
  text-align: center;
  color: var(--fg-3);
}
.chart figcaption {
  margin-top: var(--s2);
  font-size: var(--t-micro);
  line-height: 1.5;
  color: var(--fg-3);
}

.stat { display: grid; grid-template-columns: auto 1fr; gap: var(--s3); align-items: center; }
.stat__num {
  font-family: var(--sans);
  font-weight: 300;
  font-size: var(--t-display);
  line-height: 0.9;
  color: var(--accent);
}
.stat__txt { font-size: var(--t-small); line-height: 1.45; color: var(--fg-2); }
.stat__txt small {
  display: block;
  margin-top: calc(6 * var(--p));
  font-size: var(--t-micro);
  font-weight: 400;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--fg-3);
}

.trio { padding-top: var(--s3); border-top: 1px solid var(--line); }

/* --- 05 Model progress chart ------------------------------------ */

.bars { margin: 0; display: flex; flex-direction: column; gap: calc(14 * var(--p)); }
.bars__title {
  font-family: var(--sans);
  font-size: var(--t-body);
  font-weight: 400;
  line-height: 1.35;
  color: var(--fg);
}
.bars__title span {
  display: block;
  margin-top: calc(4 * var(--p));
  font-size: var(--t-small);
  font-weight: 300;
  color: var(--fg-3);
}
.bars__plot {
  position: relative;
  height: calc(300 * var(--p));
  margin-left: calc(34 * var(--p));
  border-bottom: 1px solid var(--line-strong);
}
/* Light gridlines with their values on the left */
.bars__grid span {
  position: absolute;
  left: 0;
  right: 0;
  bottom: calc(var(--v) * 1%);
  border-top: 1px solid var(--line);
}
.bars__chance i {
  position: absolute;
  left: calc(4 * var(--p));
  bottom: calc(4 * var(--p));
  z-index: 3;
  font-family: var(--typewriter);
  font-style: normal;
  font-size: var(--t-micro);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--fg-3);
}
.bars__grid span::before {
  content: attr(data-v);
  position: absolute;
  right: calc(100% + 10 * var(--p));
  top: calc(-0.7em);
  font-family: var(--sans);
  font-size: var(--t-micro);
  color: var(--fg-3);
}
.bars__ref {
  position: absolute;
  left: 0;
  right: 0;
  bottom: calc(var(--v) * 1%);
  z-index: 2;
  border-top: 1px dashed var(--fg-2);
}
.bars__ref span {
  position: absolute;
  left: 0;
  top: calc(6 * var(--p));
  font-family: var(--sans);
  font-size: var(--t-small);
  font-weight: 400;
  color: var(--fg-2);
  padding-right: calc(8 * var(--p));
}
.bars__cols,
.bars__labels {
  display: grid;
  grid-template-columns: repeat(var(--n, 5), 1fr);
  gap: calc(22 * var(--p));
}
.bars__cols {
  position: absolute;
  inset: 0 calc(10 * var(--p)) 0;
  align-items: end;
}
.bars__cols li {
  position: relative;
  justify-self: center;
  width: 58%;
  height: calc(var(--v) * 1%);
  background: rgba(176, 141, 87, var(--o, 1));
}
/* Values sit inside the top of each bar, clear of the reference line */
.bars__cols b {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(12 * var(--p));
  font-family: var(--sans);
  font-size: calc(22 * var(--p));
  font-weight: 400;
  line-height: 1;
  text-align: center;
  color: var(--ink);
}
.bars__labels {
  margin-left: calc(34 * var(--p));
  padding: 0 calc(10 * var(--p));
  text-align: center;
}
.bars__labels li {
  font-family: var(--sans);
  font-size: var(--t-small);
  font-weight: 400;
  line-height: 1.3;
  color: var(--fg);
}
.bars__labels small {
  display: block;
  margin-top: calc(3 * var(--p));
  font-family: var(--typewriter);
  font-size: var(--t-micro);
  letter-spacing: 0.18em;
  color: var(--fg-3);
}
.bars__note {
  font-family: var(--sans);
  font-size: calc(13.5 * var(--p));
  font-weight: 300;
  color: var(--fg-3);
}

.now { grid-template-columns: 2.3fr 1fr; gap: var(--s5); align-items: stretch; }
.now__side {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--s4);
  padding-left: var(--s4);
  border-left: 1px solid var(--line);
}
.now__num {
  font-family: var(--sans);
  font-size: calc(88 * var(--p));
  font-weight: 300;
  line-height: 0.95;
  letter-spacing: -0.02em;
  color: var(--fg);
}
.now__txt {
  margin-top: calc(10 * var(--p));
  font-family: var(--sans);
  font-size: var(--t-body);
  font-weight: 300;
  line-height: 1.45;
  color: var(--fg-2);
}
.now__src {
  margin-top: calc(8 * var(--p));
  font-family: var(--typewriter);
  font-size: var(--t-micro);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--fg-3);
}

/* --- 05 Why now (simplified) ------------------------------------ */

.why-now {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  gap: var(--s5);
  align-items: start;
}
.why-now__hero { padding-right: var(--s4); border-right: 1px solid var(--line); }
.why-now__num {
  font-family: var(--sans);
  font-size: clamp(4.5rem, 9vw, 7.5rem);
  font-weight: 300;
  line-height: 0.92;
  letter-spacing: -0.03em;
  color: var(--fg);
}
.why-now__txt {
  margin-top: calc(12 * var(--p));
  max-width: 16rem;
  font-family: var(--sans);
  font-weight: 300;
  font-size: var(--t-body);
  line-height: 1.45;
  color: var(--fg-2);
}
.why-now__src {
  margin-top: calc(10 * var(--p));
  font-family: var(--typewriter);
  font-size: var(--t-micro);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--fg-3);
}
.why-now__timeline {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: calc(18 * var(--p));
}
.why-now__timeline li {
  padding-top: calc(12 * var(--p));
  border-top: 1px solid var(--line);
}
.why-now__year {
  font-family: var(--typewriter);
  font-size: var(--t-micro);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--fg-3);
}
.why-now__step {
  margin-top: calc(6 * var(--p));
  font-family: var(--sans);
  font-weight: 300;
  font-size: calc(17 * var(--p));
  line-height: 1.4;
  color: var(--fg);
}
.why-now__note {
  grid-column: 1 / -1;
  margin: 0;
  font-family: var(--sans);
  font-weight: 300;
  font-size: calc(13.5 * var(--p));
  color: var(--fg-3);
}

@media screen and (max-width: 760px),
       screen and (max-height: 520px),
       screen and (orientation: portrait) and (max-width: 1100px) {
  .why-now { grid-template-columns: 1fr; }
  .why-now__hero { padding-right: 0; border-right: none; padding-bottom: var(--s4); border-bottom: 1px solid var(--line); }
}

/* --- 06 Product ------------------------------------------------- */

.centre { text-align: center; align-items: center; }
.product { width: calc(820 * var(--p)); margin: 0 auto; }
.caps {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: calc(18 * var(--p));
  width: 100%;
  text-align: left;
  counter-reset: c;
}
.caps li {
  counter-increment: c;
  padding-top: calc(12 * var(--p));
  border-top: 1px solid var(--accent);
  font-size: var(--t-small);
  line-height: 1.38;
  color: var(--fg-2);
}
.caps li::before {
  content: counter(c, decimal-leading-zero);
  display: block;
  margin-bottom: calc(6 * var(--p));
  font-family: var(--sans);
  font-size: var(--t-h4);
  line-height: 1;
  color: var(--accent);
}

/* Product beside its capabilities, grouped */
.prod {
  display: grid;
  grid-template-columns: minmax(0, 2.15fr) minmax(0, 1fr);
  grid-template-areas: "fig groups";
  gap: calc(72 * var(--p));
  align-items: center;
  width: 100%;
}
.prod__fig { grid-area: fig; position: relative; margin: 0; display: flex; justify-content: flex-start; }
.prod__fig::before {
  content: "";
  position: absolute;
  inset: -30% 0 -20% -8%;
  background: radial-gradient(ellipse 55% 50% at 55% 50%, rgba(176, 141, 87, 0.16) 0%, transparent 70%);
  pointer-events: none;
}
.prod__fig::after {
  content: "";
  position: absolute;
  left: 4%;
  right: 8%;
  bottom: calc(-26 * var(--p));
  height: calc(30 * var(--p));
  background: radial-gradient(ellipse 50% 50% at 50% 50%, rgba(0, 0, 0, 0.55) 0%, transparent 70%);
  pointer-events: none;
}
.prod__fig .product { position: relative; z-index: 1; width: 100%; max-width: calc(900 * var(--p)); margin: 0; }
.prod__groups { grid-area: groups; display: flex; flex-direction: column; gap: calc(22 * var(--p)); }
.prod__label {
  margin-bottom: calc(6 * var(--p));
  font-family: var(--typewriter);
  font-size: var(--t-micro);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--fg-3);
}
.prod__group li {
  padding: calc(8 * var(--p)) 0;
  border-top: 1px solid var(--line);
  font-family: var(--sans);
  font-weight: 300;
  font-size: calc(20 * var(--p));
  line-height: 1.3;
  color: var(--fg);
}

.prod__group--next .prod__label { color: var(--accent); }
.prod__group--next li { border-top-color: var(--accent); color: var(--fg); font-weight: 400; }
.prod--progress { grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); gap: calc(56 * var(--p)); }
.prod--progress .prod__fig .product { max-width: none; }
.prod--progress .prod__groups { gap: calc(16 * var(--p)); }
.prod--progress .prod__group li { padding: calc(6 * var(--p)) 0; font-size: calc(19 * var(--p)); }

/* --- 07 Household context --------------------------------------- */

.people { display: grid; grid-template-columns: repeat(4, 1fr); gap: calc(8 * var(--p)); }
.person {
  padding: calc(12 * var(--p)) calc(8 * var(--p));
  border: 1px solid var(--line-strong);
  border-bottom: none;
  background: var(--card);
  text-align: center;
}
.person b {
  display: block;
  font-family: var(--sans);
  font-size: var(--t-h4);
  font-weight: 400;
  line-height: 1.1;
  color: var(--fg);
}
.person span,
.shared b {
  display: block;
  margin-top: calc(4 * var(--p));
  font-size: var(--t-micro);
  font-weight: 400;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--fg-3);
}
.shared {
  padding: calc(12 * var(--p)) calc(14 * var(--p));
  border: 1px solid var(--accent);
  background: var(--accent-soft);
  text-align: center;
  font-size: var(--t-small);
  color: var(--fg-2);
}
.shared b { margin: 0 0 calc(4 * var(--p)); color: var(--accent); }

.card {
  padding: var(--s3) calc(28 * var(--p));
  border: 1px solid var(--line);
  background: var(--card);
}
.flow {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: var(--s2);
  align-items: center;
}
.flow__col { display: flex; flex-direction: column; gap: calc(7 * var(--p)); }
.flow__arrow { font-family: var(--sans); font-size: var(--t-h2); color: var(--accent); }

.approve { display: flex; align-items: center; gap: var(--s2); font-size: var(--t-body); color: var(--fg); }
.approve::before {
  content: "\2713";
  flex: none;
  display: grid;
  place-items: center;
  width: calc(30 * var(--p));
  height: calc(30 * var(--p));
  border-radius: 50%;
  background: var(--accent);
  color: var(--surface);
  font-size: var(--t-small);
  font-weight: 400;
}

/* --- 08 Configurations ------------------------------------------ */

.tiers {
  display: grid;
  grid-template-columns: 1fr calc(122 * var(--p)) 1fr calc(122 * var(--p)) 1fr;
  align-items: stretch;
}
.tier {
  display: flex;
  flex-direction: column;
  gap: var(--s2);
  padding: var(--s3) var(--s3) calc(28 * var(--p));
  border: 1px solid var(--line-strong);
  background: var(--card);
}
.tier img { width: 100%; margin-bottom: calc(4 * var(--p)); }
.tier__name { font-family: var(--serif); font-weight: 300; font-size: var(--t-h2); line-height: 1; color: var(--fg); }
.tier__name small {
  display: block;
  margin-bottom: calc(6 * var(--p));
  font-family: var(--typewriter);
  font-size: var(--t-micro);
  font-weight: 400;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--fg-3);
}
.pills { display: flex; flex-wrap: wrap; gap: calc(6 * var(--p)); }
.pill {
  padding: calc(4 * var(--p)) calc(9 * var(--p));
  border: 1px solid var(--accent);
  font-size: var(--t-micro);
  font-weight: 400;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
}
.pill--fill { background: var(--accent); color: var(--surface); }
.step {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: calc(8 * var(--p));
  padding: 0 calc(12 * var(--p));
  text-align: center;
}
.step__arrow { font-family: var(--sans); font-size: var(--t-h2); line-height: 1; color: var(--accent); }
.step p { font-size: var(--t-small); line-height: 1.35; color: var(--fg-2); }

.slots { display: grid; grid-template-columns: auto 1fr; gap: var(--s3); align-items: center; }
.slots__icon { display: grid; grid-template-columns: 1fr 1fr; gap: calc(6 * var(--p)); width: calc(84 * var(--p)); }
.slots__icon span { height: calc(30 * var(--p)); border: 1px solid var(--accent); }
.slots__icon span:first-child { background: var(--accent); }

/* --- 10 Revenue ladder ------------------------------------------ */

.ladder li {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: baseline;
  gap: calc(4 * var(--p)) var(--s2);
  padding: calc(11 * var(--p)) 0;
  border-bottom: 1px solid var(--line);
}
.ladder li:first-child { border-top: 1px solid var(--line); }
.ladder__units { font-size: var(--t-body); color: var(--fg); }
.ladder__amt {
  font-family: var(--sans);
  font-size: var(--t-h2);
  font-weight: 400;
  line-height: 1;
  color: var(--accent);
  text-align: right;
  font-variant-numeric: lining-nums;
}
.ladder__what {
  grid-column: 1 / -1;
  font-size: var(--t-micro);
  font-weight: 400;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--fg-3);
}

/* --- 11 Tiles --------------------------------------------------- */

.tiles { display: grid; grid-template-columns: 1fr 1fr; gap: calc(10 * var(--p)); counter-reset: t; }
.tiles--4 { grid-template-columns: repeat(4, 1fr); }
.tiles li {
  counter-increment: t;
  display: flex;
  gap: calc(12 * var(--p));
  align-items: baseline;
  padding: calc(15 * var(--p)) calc(16 * var(--p));
  border: 1px solid var(--line);
  background: var(--card);
  font-size: var(--t-body);
  line-height: 1.35;
  color: var(--fg);
}
.tiles li::before {
  content: counter(t, decimal-leading-zero);
  flex: none;
  font-family: var(--sans);
  font-size: 1.2em;
  color: var(--accent);
}

/* --- 12 Progress ------------------------------------------------ */

.block {
  display: flex;
  flex-direction: column;
  gap: var(--s2);
  padding-top: var(--s2);
  border-top: 1px solid var(--accent);
}
.block h3 { font-family: var(--serif); font-size: var(--t-h3); font-weight: 400; line-height: 1.1; color: var(--fg); }
.block--next { padding: var(--s3); border-top: none; background: var(--accent-soft); outline: 1px solid var(--accent); }
.block--next .p { font-family: var(--sans); font-size: var(--t-h4); line-height: 1.35; color: var(--fg); }
.status {
  align-self: flex-start;
  padding: calc(4 * var(--p)) calc(9 * var(--p));
  border: 1px solid var(--accent);
  font-size: var(--t-micro);
  font-weight: 400;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
}
.status--done { background: var(--accent); color: var(--surface); }
.status--soon { border-style: dashed; }

.figure img { width: 100%; border: 1px solid var(--line); }
.figure figcaption {
  margin-top: calc(8 * var(--p));
  font-size: var(--t-micro);
  font-weight: 400;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--fg-3);
}

/* --- 13 Team ---------------------------------------------------- */

.member {
  display: flex;
  flex-direction: column;
  gap: calc(10 * var(--p));
  padding-top: var(--s3);
  border-top: 1px solid var(--accent);
}
.member--adviser { border-top-style: dashed; }

.role--track {
  margin-top: calc(4 * var(--p));
  font-family: var(--typewriter);
  font-size: calc(10 * var(--p));
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--fg-2);
}
.team-founders { margin-bottom: calc(8 * var(--p)); }
.team-adviser {
  display: grid;
  grid-template-columns: calc(120 * var(--p)) minmax(0, 1fr);
  gap: calc(20 * var(--p));
  align-items: start;
  max-width: calc(720 * var(--p));
  margin-top: calc(16 * var(--p));
  padding-top: calc(18 * var(--p));
  border-top: 1px dashed var(--line-strong);
}
.team-adviser .member__photo--sm {
  height: calc(120 * var(--p));
  border-bottom: 1px dashed var(--line-strong);
}
.team-adviser .member__photo--sm img { object-position: 50% 20%; }
.team-adviser h3 { font-size: calc(24 * var(--p)); }
.team-adviser .p { max-width: 36rem; }

.ask-cover__close {
  margin: clamp(0.75rem, 1.6vh, 1.1rem) 0 0;
  padding-top: calc(12 * var(--p));
  border-top: 1px solid rgba(245, 239, 229, 0.14);
  font-family: var(--serif);
  font-size: clamp(1.12rem, 1.75vw, 1.38rem);
  font-weight: 300;
  font-style: italic;
  line-height: 1.35;
  letter-spacing: -0.01em;
  color: rgba(245, 239, 229, 0.9);
  text-wrap: balance;
}
/* Portrait frame: a placeholder with initials until a photo is added */
.member__photo {
  position: relative;
  order: -1;
  height: calc(300 * var(--p));
  margin: 0 0 calc(18 * var(--p));
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--card);
}
.member:has(.member__photo) { padding-top: 0; border-top: none; }
.member__photo { border-bottom: 1px solid var(--accent); }
.member--adviser .member__photo { border-style: dashed; border-color: var(--line-strong); border-bottom-color: var(--accent); }
.member__photo::before {
  content: attr(data-initials);
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  font-family: var(--serif);
  font-size: calc(96 * var(--p));
  font-weight: 300;
  letter-spacing: 0.02em;
  color: var(--fg-3);
  opacity: 0.5;
}
.member__photo::after {
  content: "Photo";
  position: absolute;
  left: calc(14 * var(--p));
  bottom: calc(12 * var(--p));
  font-family: var(--typewriter);
  font-size: var(--t-micro);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--fg-3);
}
.member__photo img {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(1) sepia(0.32) saturate(1.08) contrast(1.05) brightness(0.9);
}
.member h3 { font-family: var(--serif); font-size: var(--t-h3); font-weight: 400; line-height: 1.05; color: var(--fg); }
.role {
  font-size: var(--t-micro);
  font-weight: 400;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
}
.member .p { font-size: var(--t-small); line-height: 1.5; }
.brands {
  font-size: var(--t-micro);
  font-weight: 400;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--fg);
}

/* --- 14 Unit economics ------------------------------------------ */

.table { width: 100%; border-collapse: collapse; }
.table th {
  padding: 0 calc(12 * var(--p)) calc(10 * var(--p)) 0;
  border-bottom: 1px solid var(--line-strong);
  font-size: var(--t-micro);
  font-weight: 400;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-align: left;
  color: var(--fg-3);
}
.table td {
  padding: calc(15 * var(--p)) calc(12 * var(--p)) calc(15 * var(--p)) 0;
  border-bottom: 1px solid var(--line);
  font-size: var(--t-body);
  color: var(--fg);
  font-variant-numeric: tabular-nums lining-nums;
  vertical-align: middle;
}
.table th:last-child,
.table td:last-child { padding-right: 0; }
.table .num { font-family: var(--sans); font-size: var(--t-h3); font-weight: 400; }
.table .right { text-align: right; }
.margin { display: flex; align-items: center; gap: calc(12 * var(--p)); }
.margin span {
  flex: 1;
  height: calc(7 * var(--p));
  background: linear-gradient(to right, var(--accent) 0 var(--m), var(--line) var(--m) 100%);
}
.margin b { font-family: var(--sans); font-size: var(--t-h3); font-weight: 400; color: var(--accent); min-width: 2.3em; text-align: right; }

/* --- 15 Roadmap ------------------------------------------------- */

.road {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1.34fr 1fr;
  gap: calc(22 * var(--p));
}
.road::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: calc(5 * var(--p));
  border-top: 1px solid var(--accent);
  opacity: 0.65;
}
.road > li { position: relative; padding-top: calc(28 * var(--p)); }
.road > li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: calc(11 * var(--p));
  height: calc(11 * var(--p));
  border-radius: 50%;
  border: 1px solid var(--accent);
  background: var(--surface);
}
.road > li:last-child::before { background: var(--accent); box-shadow: 0 0 0 calc(5 * var(--p)) var(--accent-soft); }
.road__when {
  font-size: var(--t-micro);
  font-weight: 400;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
}
.road__title {
  margin: calc(6 * var(--p)) 0 calc(12 * var(--p));
  font-family: var(--serif);
  font-size: var(--t-h4);
  line-height: 1.15;
  color: var(--fg);
}
.road ul li {
  position: relative;
  padding: calc(4 * var(--p)) 0 calc(4 * var(--p)) calc(14 * var(--p));
  font-size: calc(16.5 * var(--p));
  line-height: 1.32;
  color: var(--fg-2);
}
.road ul li::before {
  content: "";
  position: absolute;
  left: 0;
  top: calc(4 * var(--p) + 0.68em);
  width: calc(7 * var(--p));
  border-top: 1px solid var(--accent);
}

/* --- 16 Use of funds -------------------------------------------- */

.funds td { padding-top: calc(6 * var(--p)); padding-bottom: calc(6 * var(--p)); font-size: var(--t-small); line-height: 1.3; }
.funds .num { font-size: calc(23 * var(--p)); line-height: 1.2; }
.funds__bar { width: 30%; }
.funds__bar span { display: block; height: calc(8 * var(--p)); width: var(--w); background: var(--accent); }
.funds__total td {
  border-bottom: none;
  border-top: 1px solid var(--fg);
  padding-top: calc(16 * var(--p));
  font-weight: 400;
}
.funds__total .num { font-weight: 400; }

/* --- 17 Ask ----------------------------------------------------- */

.ask__raise .h1 { max-width: 20ch; }
.cta { display: flex; flex-wrap: wrap; gap: calc(10 * var(--p)); }
.btn {
  font-family: var(--sans);
  font-weight: 500 !important;
  border-radius: 999px;
  display: inline-block;
  padding: calc(13 * var(--p)) calc(20 * var(--p));
  border: 1px solid var(--accent);
  font-size: var(--t-micro);
  font-weight: 400;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--fg);
  transition: background 0.2s, color 0.2s;
}
.btn:hover { background: var(--accent-soft); }
.btn--solid { background: var(--accent); color: var(--ink); }
.btn--solid:hover { background: #c29d63; }
.contact {
  display: flex;
  align-items: center;
  gap: calc(10 * var(--p));
  font-size: var(--t-micro);
  font-weight: 400;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--fg-3);
}
.contact img { width: calc(16 * var(--p)); }
.contact a { color: var(--fg-2); text-decoration: none; }

/* --- Sources ---------------------------------------------------- */

.sources { columns: 2; column-gap: var(--s5); }
.sources li {
  break-inside: avoid;
  padding: calc(9 * var(--p)) 0;
  border-bottom: 1px solid var(--line);
  font-size: calc(16 * var(--p));
  line-height: 1.45;
  color: var(--fg-2);
}
.sources b { display: block; font-weight: 400; color: var(--fg); }

/* --- 03 Comparison --------------------------------------------- */

.versus { width: 100%; border-collapse: collapse; }
.versus th {
  padding: 0 var(--s3) calc(12 * var(--p)) 0;
  border-bottom: 1px solid var(--line-strong);
  font-size: var(--t-micro);
  font-weight: 400;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-align: left;
  color: var(--fg-3);
}
.versus th:last-child { padding-left: var(--s3); color: var(--accent); }
.versus td {
  width: 50%;
  padding: calc(15 * var(--p)) var(--s3) calc(15 * var(--p)) 0;
  border-bottom: 1px solid var(--line);
  font-size: var(--t-body);
  line-height: 1.4;
  vertical-align: top;
  color: var(--fg-3);
}
.versus td:last-child {
  padding-left: var(--s3);
  padding-right: 0;
  border-left: 1px solid var(--accent);
  font-weight: 400;
  color: var(--fg);
}

/* --- 02 Comparison matrix ---------------------------------------- */

.matrix { width: 100%; border-collapse: collapse; table-layout: fixed; }
.matrix th, .matrix td { border-bottom: 1px solid var(--line); }
.matrix thead th {
  padding: 0 calc(12 * var(--p)) calc(16 * var(--p));
  vertical-align: bottom;
  text-align: center;
  font-weight: 400;
  border-bottom-color: var(--line-strong);
}
.matrix thead th:first-child { width: 38%; text-align: left; padding-left: 0; }
.matrix__logo {
  display: block;
  height: calc(30 * var(--p));
  width: auto;
  max-width: 100%;
  margin: 0 auto calc(12 * var(--p));
  filter: brightness(0);
  opacity: 0.78;
}
.matrix__logo--google { height: calc(33 * var(--p)); }
.matrix__logo--alexa { height: calc(38 * var(--p)); margin-bottom: calc(8 * var(--p)); }
.matrix__logo--homepod { height: calc(21 * var(--p)); margin-bottom: calc(16 * var(--p)); }
.matrix__name {
  display: block;
  margin-bottom: calc(10 * var(--p));
  font-family: var(--serif);
  font-size: calc(30 * var(--p));
  font-weight: 400;
  line-height: 1;
  color: var(--fg);
}
.matrix__name em { font-style: italic; }
.matrix__wake,
.matrix__label {
  display: block;
  font-family: var(--typewriter);
  font-size: var(--t-micro);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--fg-3);
}
.matrix tbody th {
  padding: calc(17 * var(--p)) var(--s3) calc(17 * var(--p)) 0;
  text-align: left;
  font-weight: 400;
  font-size: var(--t-body);
  line-height: 1.3;
  color: var(--fg);
}
.matrix td { text-align: center; vertical-align: middle; color: var(--fg-3); }
.matrix .matrix__us { background: var(--accent-soft); color: var(--fg); }

/* Ticks and crosses, drawn as hairlines */
.mark {
  display: inline-block;
  position: relative;
  width: calc(20 * var(--p));
  height: calc(20 * var(--p));
  vertical-align: middle;
}
.mark--yes::before {
  content: "";
  position: absolute;
  left: 30%;
  top: 4%;
  width: 34%;
  height: 70%;
  border-right: 1.75px solid currentColor;
  border-bottom: 1.75px solid currentColor;
  transform: rotate(42deg);
}
.mark--no::before,
.mark--no::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 12%;
  height: 76%;
  border-left: 1.25px solid currentColor;
  transform: rotate(45deg);
}
.mark--no::after { transform: rotate(-45deg); }

/* --- 02 Category contrast ---------------------------------------- */

.category-contrast { gap: var(--s5); align-items: start; }
.category-contrast__col {
  padding-top: calc(12 * var(--p));
  border-top: 1px solid var(--line-strong);
}
.category-contrast__col--us { border-top-color: var(--accent); }
.category-contrast__model {
  margin: calc(8 * var(--p)) 0 calc(14 * var(--p));
  font-family: var(--typewriter);
  font-size: calc(10 * var(--p));
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--fg-3);
}
.category-contrast__list {
  margin: 0;
  padding: 0;
  list-style: none;
}
.category-contrast__list li {
  padding: calc(9 * var(--p)) 0;
  border-top: 1px solid var(--line);
  font-family: var(--sans);
  font-weight: 300;
  font-size: calc(16.5 * var(--p));
  line-height: 1.35;
  color: var(--fg-2);
}
.category-contrast__col--us .category-contrast__list li { color: var(--fg); }

/* --- 10 Targets ------------------------------------------------- */

.targets { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--s3); }
.target {
  display: flex;
  flex-direction: column;
  gap: calc(8 * var(--p));
  padding: var(--s3);
  border: 1px solid var(--line-strong);
  background: var(--card);
}
.target__num {
  font-family: var(--sans);
  font-size: var(--t-display);
  font-weight: 300;
  line-height: 0.95;
  color: var(--accent);
}
.target__what { font-size: var(--t-body); line-height: 1.35; color: var(--fg); }
.target__note {
  font-size: var(--t-micro);
  font-weight: 400;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--fg-3);
}
.channels { display: flex; flex-wrap: wrap; gap: calc(8 * var(--p)); }
.channels li {
  padding: calc(8 * var(--p)) calc(14 * var(--p));
  border: 1px solid var(--line-strong);
  border-radius: 999px;
  font-size: var(--t-small);
  color: var(--fg-2);
}

/* --- 07 First customer ------------------------------------------- */

#customers .content--bottom {
  display: flex;
  flex-direction: column;
  gap: calc(20 * var(--p));
}
.customer-traits {
  margin: 0;
  padding: 0;
  list-style: none;
}
.customer-traits li {
  display: flex;
  flex-direction: column;
  gap: calc(4 * var(--p));
  padding: calc(10 * var(--p)) 0;
  border-top: 1px solid var(--line);
}
.customer-traits li:first-child { padding-top: 0; border-top: none; }
.customer-traits b {
  font-family: var(--serif);
  font-weight: 400;
  font-size: calc(19 * var(--p));
  line-height: 1.25;
  color: var(--fg);
}
.customer-traits span {
  font-family: var(--sans);
  font-weight: 300;
  font-size: calc(15.5 * var(--p));
  line-height: 1.4;
  color: var(--fg-2);
}
.pricing-hypothesis {
  padding-top: calc(14 * var(--p));
  border-top: 1px solid var(--line-strong);
}
.pricing-hypothesis__price {
  margin: calc(6 * var(--p)) 0 0;
  font-family: var(--serif);
  font-size: calc(22 * var(--p));
  font-weight: 400;
  color: var(--fg);
}
.pricing-hypothesis__meta {
  margin: calc(4 * var(--p)) 0 0;
  font-family: var(--sans);
  font-weight: 300;
  font-size: calc(14.5 * var(--p));
  color: var(--fg-2);
}
.pricing-hypothesis__note {
  margin: calc(6 * var(--p)) 0 0;
  font-family: var(--sans);
  font-weight: 300;
  font-size: calc(14.5 * var(--p));
  line-height: 1.4;
  color: var(--fg-2);
}

/* Slide 8 — three GTM stages (targets explicit) */
.gtm-lanes {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: calc(28 * var(--p));
  margin: 0;
  padding: 0;
  list-style: none;
}
.gtm-lane {
  display: flex;
  flex-direction: column;
  gap: calc(8 * var(--p));
  padding-top: calc(12 * var(--p));
  border-top: 1px solid var(--accent);
}
.gtm-lane__num {
  font-family: var(--typewriter);
  font-size: calc(11 * var(--p));
  letter-spacing: 0.22em;
  color: var(--fg-3);
}
.gtm-lane__title {
  font-family: var(--typewriter);
  font-size: calc(10.5 * var(--p));
  font-weight: 400;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--fg);
}
.gtm-lane__target {
  margin-top: calc(6 * var(--p));
  font-family: var(--typewriter);
  font-size: calc(10 * var(--p));
  font-weight: 400;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--accent);
}
.gtm-lane__headline {
  font-family: var(--serif);
  font-size: calc(24 * var(--p));
  font-weight: 300;
  line-height: 1.15;
  letter-spacing: -0.015em;
  color: var(--fg);
}
.gtm-lane__sub {
  font-family: var(--sans);
  font-weight: 300;
  font-size: calc(15 * var(--p));
  line-height: 1.35;
  color: var(--fg-2);
}
.gtm-lane ul {
  margin-top: calc(6 * var(--p));
  padding: 0;
  list-style: none;
}
.gtm-lane ul li {
  padding: calc(5 * var(--p)) 0;
  border-top: 1px solid var(--line);
  font-family: var(--sans);
  font-weight: 300;
  font-size: calc(16 * var(--p));
  line-height: 1.32;
  color: var(--fg-2);
}

@media screen and (max-width: 760px),
       screen and (max-height: 520px),
       screen and (orientation: portrait) and (max-width: 1100px) {
  .gtm-lanes { grid-template-columns: 1fr; }
}

/* Slide 11 — three revenue layers */
.revenue-layers {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: calc(32 * var(--p));
  margin: 0 0 calc(24 * var(--p));
  padding: 0;
  list-style: none;
}
.revenue-layer {
  padding-top: calc(12 * var(--p));
  border-top: 1px solid var(--accent);
}
.revenue-layer__num {
  font-family: var(--typewriter);
  font-size: calc(11 * var(--p));
  letter-spacing: 0.2em;
  color: var(--fg-3);
}
.revenue-layer__title {
  margin: calc(8 * var(--p)) 0 calc(10 * var(--p));
  font-family: var(--serif);
  font-size: calc(26 * var(--p));
  font-weight: 400;
  line-height: 1.1;
  color: var(--fg);
}
.revenue-layer__body {
  font-family: var(--sans);
  font-weight: 300;
  font-size: calc(17 * var(--p));
  line-height: 1.4;
  color: var(--fg);
}
.revenue-layer__meta {
  margin-top: calc(8 * var(--p));
  font-family: var(--sans);
  font-weight: 300;
  font-size: calc(15 * var(--p));
  line-height: 1.4;
  color: var(--fg-2);
}
.revenue-layer ul li {
  padding: calc(6 * var(--p)) 0;
  border-top: 1px solid var(--line);
  font-family: var(--sans);
  font-weight: 300;
  font-size: calc(16.5 * var(--p));
  line-height: 1.32;
  color: var(--fg-2);
}
.revenue-layer__detail {
  margin-top: calc(10 * var(--p));
  font-family: var(--sans);
  font-weight: 300;
  font-size: calc(14.5 * var(--p));
  line-height: 1.4;
  color: var(--fg-2);
}
.margin-story {
  padding-top: calc(16 * var(--p));
  border-top: 1px solid var(--line-strong);
}
.margins__tag--block {
  display: block;
  margin: 0 0 calc(12 * var(--p));
}
.margin-story__config {
  margin: 0 0 calc(8 * var(--p));
  font-family: var(--typewriter);
  font-size: calc(10 * var(--p));
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--fg-3);
}
.margin-story__run {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(1.85rem, 3.2vw, 2.75rem);
  font-weight: 300;
  letter-spacing: -0.02em;
  color: var(--fg);
}
.margin-story__run span { white-space: nowrap; }
.margin-story__scale {
  margin: calc(8 * var(--p)) 0 0;
  font-family: var(--typewriter);
  font-size: calc(10 * var(--p));
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--fg-3);
}
.margin-story__why {
  margin: calc(14 * var(--p)) 0 0;
  max-width: 42rem;
  font-family: var(--sans);
  font-weight: 300;
  font-size: calc(15.5 * var(--p));
  line-height: 1.45;
  color: var(--fg-2);
}
.margins--simple { margin-top: calc(8 * var(--p)); }
.margins__tag {
  display: block;
  margin-top: calc(4 * var(--p));
  font-family: var(--typewriter);
  font-size: calc(9 * var(--p));
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--fg-3);
  font-weight: 400;
}

@media screen and (max-width: 760px),
       screen and (max-height: 520px),
       screen and (orientation: portrait) and (max-width: 1100px) {
  .revenue-layers { grid-template-columns: 1fr; }
}

/* Slide 14 — investment close */
.in--ask-close { gap: calc(16 * var(--p)); }
.title--tight { gap: calc(12 * var(--p)); }
.title--tight .h1 { max-width: 24ch; font-size: clamp(1.65rem, 2.8vw, 2.35rem); }
.ask-close { gap: calc(14 * var(--p)); }
.ask-close__terms {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: calc(16 * var(--p));
  padding: calc(12 * var(--p)) 0 calc(4 * var(--p));
  border-top: 1px solid var(--accent);
  border-bottom: 1px solid var(--line);
}
.ask-close__val {
  font-family: var(--serif);
  font-size: clamp(2rem, 3.8vw, 3.25rem);
  font-weight: 300;
  line-height: 1;
  letter-spacing: -0.03em;
  color: var(--fg);
}
.ask-close__lab {
  margin-top: calc(6 * var(--p));
  font-family: var(--typewriter);
  font-size: calc(10 * var(--p));
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--fg-3);
}
.ask-close__note {
  font-family: var(--sans);
  font-weight: 300;
  font-size: calc(15 * var(--p));
  color: var(--fg-2);
}
.ask-close__alloc-tag {
  margin: 0;
  font-family: var(--typewriter);
  font-size: calc(9.5 * var(--p));
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--fg-3);
}
.ask-close__alloc { gap: calc(14 * var(--p)) calc(24 * var(--p)); align-items: start; }
.ask-close__block { padding-top: calc(6 * var(--p)); border-top: 1px solid var(--line); }
.ask-close__block-head {
  margin-bottom: calc(4 * var(--p));
  font-family: var(--serif);
  font-size: calc(19 * var(--p));
  font-weight: 400;
  line-height: 1.2;
  color: var(--fg);
}
.ask-close__block-head b {
  font-family: var(--sans);
  font-weight: 400;
  color: var(--accent);
  margin-right: calc(6 * var(--p));
}
.ask-close__block .p { font-size: calc(14.5 * var(--p)); line-height: 1.35; color: var(--fg-2); }
.ask-close__outcomes {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: calc(12 * var(--p));
  margin: calc(4 * var(--p)) 0 0;
  padding: calc(14 * var(--p)) 0 0;
  border-top: 1px solid var(--accent);
  list-style: none;
}
.ask-close__outcomes li {
  font-family: var(--serif);
  font-size: clamp(1.05rem, 1.85vw, 1.45rem);
  font-weight: 300;
  line-height: 1.15;
  letter-spacing: -0.01em;
  text-align: center;
  color: var(--fg);
  text-wrap: balance;
}
.ask-close__line {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(1.25rem, 2vw, 1.55rem);
  font-weight: 300;
  font-style: italic;
  line-height: 1.25;
  color: var(--fg);
  text-wrap: balance;
}
.ask-close__foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: calc(12 * var(--p));
  margin-top: calc(4 * var(--p));
  padding-top: calc(12 * var(--p));
  border-top: 1px solid var(--line);
}
.ask-close__foot .contact { margin: 0; font-size: calc(10 * var(--p)); opacity: 0.75; }

@media screen and (max-width: 760px),
       screen and (max-height: 520px),
       screen and (orientation: portrait) and (max-width: 1100px) {
  .ask-close__terms { grid-template-columns: 1fr; }
  .ask-close__outcomes { grid-template-columns: 1fr 1fr; }
  .ask-close__alloc { grid-template-columns: 1fr; }
}

/* Targets beside a map of the first market */
.gtm {
  display: grid;
  grid-template-columns: minmax(0, 1.9fr) minmax(0, 1fr);
  gap: var(--s5);
  align-items: center;
}
.gtm__main { display: flex; flex-direction: column; gap: var(--s4); }
.gtm .targets { grid-template-columns: 1fr 1fr; }
.gtm .target { padding: calc(20 * var(--p)) var(--s3); }
.gtm .target__num { font-size: calc(64 * var(--p)); }
.gtm__map { position: relative; margin: 0; }
.gtm__map img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: calc(470 * var(--p));
  -webkit-mask-image: radial-gradient(ellipse 66% 64% at 42% 46%, #000 60%, transparent 100%);
  mask-image: radial-gradient(ellipse 66% 64% at 42% 46%, #000 60%, transparent 100%);
}
.map__key { display: flex; flex-direction: column; gap: calc(6 * var(--p)); margin-top: calc(10 * var(--p)); }
.map__key p {
  display: flex;
  align-items: center;
  gap: calc(10 * var(--p));
  font-family: var(--sans);
  font-weight: 300;
  font-size: var(--t-small);
  color: var(--fg-2);
}
.key {
  flex: none;
  width: calc(12 * var(--p));
  height: calc(12 * var(--p));
  border: 1px solid var(--line-strong);
  background: var(--card);
}
.key--uk { border-color: var(--accent); background: var(--accent); }

/* Draft figure, to be confirmed by the founders */
.tbc { border-bottom: 1px dashed var(--accent); }

/* --- Appendix detail pages -------------------------------------- */

.detail { columns: 2; column-gap: var(--s5); }
.detail__block { break-inside: avoid; margin-bottom: var(--s3); }
.detail__block h3 {
  margin-bottom: calc(8 * var(--p));
  font-size: var(--t-micro);
  font-weight: 400;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent);
}
.detail__block p,
.detail__block li {
  font-size: calc(17.5 * var(--p));
  line-height: 1.5;
  color: var(--fg-2);
}
.detail__block p + p,
.detail__block ul + p,
.detail__block p + ul { margin-top: calc(6 * var(--p)); }
.detail__block li {
  position: relative;
  padding: calc(2 * var(--p)) 0 calc(2 * var(--p)) calc(16 * var(--p));
}
.detail__block li::before {
  content: "";
  position: absolute;
  left: 0;
  top: calc(2 * var(--p) + 0.72em);
  width: calc(8 * var(--p));
  border-top: 1px solid var(--accent);
}
.detail__block strong { font-weight: 400; color: var(--fg); }

/* --- Brand typography (from the marketing site) ------------------
   Cormorant Garamond for everything readable, Special Elite for small
   labels: uppercase, wide tracking, quiet. No sans-serif, no bold, no
   bronze-coloured text; hierarchy comes from cream or ink opacity. */

.eyebrow, .kicker, .label, .role, .status, .pill, .target__note,
.ladder__what, .road__when, .table th, .versus th, .chart__years,
.chart__bar i, .chart__ref span, .credit, .cover-credit, .diy__tag,
.person span, .shared b, .stat__txt small, .figure figcaption, .contact,
.detail__block h3, .sources b, .tier__name small, .duties li::before,
.brands, .step p {
  font-family: var(--typewriter);
  font-weight: 400;
  font-size: var(--t-micro);
  text-transform: uppercase;
  letter-spacing: 0.22em;
}
.step p { text-transform: none; letter-spacing: 0.08em; line-height: 1.5; }
.eyebrow { letter-spacing: 0.28em; color: var(--fg-2); }
.eyebrow b { color: var(--fg-3); }
.kicker, .label, .road__when, .role, .detail__block h3 { color: var(--fg-2); }
.label b { color: var(--fg-3); }
.diy__tag, .diy__box--ours .diy__tag { color: var(--fg-2); }
.status { color: var(--fg-2); border-color: var(--line-strong); }
.status--done { color: var(--surface); }
.pill { color: var(--fg-2); border-color: var(--line-strong); }
.pill--fill { color: var(--surface); }
.chart__bar i { color: var(--ink); letter-spacing: 0.12em; }

/* Big figures stay on one line and below the cover size */
.target__num { font-size: calc(72 * var(--p)); white-space: nowrap; }
.stat__num { font-size: calc(84 * var(--p)); }

/* Numbers and counters in cream or ink, not bronze */
.target__num, .stat__num, .ladder__amt, .margin b { color: var(--fg); }
.caps li::before, .rows li::before, .tiles li::before { color: var(--fg-3); }

/* Notes read like the site's italic notes */
.foot, .chart figcaption, .econ__note {
  font-family: var(--sans);
  font-style: italic;
  font-size: calc(15 * var(--p));
  letter-spacing: 0.01em;
}
.p strong, .lead strong, .detail__block strong { font-weight: 400; color: var(--fg); }
.versus td:last-child { color: var(--fg); }
.funds__total td { color: var(--fg); }

/* --- Running text in Jost (deck only) -----------------------------
   Paragraphs, list items and table text are set in a light sans.
   Headings, names, figures and statements stay in Cormorant; small
   labels stay in Special Elite. */

.lead, .p, .ticks li, .tiles li, .chip, .channels li, .target__what,
.ladder__units, .approve, .detail__block p, .detail__block li,
.sources li, .table td, .matrix tbody th, .road ul li, .caps li,
.shared, .stat__txt, .slots p {
  font-family: var(--sans);
  font-weight: 300;
  letter-spacing: 0.005em;
}
.lead { font-style: normal; line-height: 1.45; }
.p { line-height: 1.6; }
.detail__block p, .detail__block li { font-size: calc(16 * var(--p)); }
.sources li { font-size: calc(16.5 * var(--p)); }
.road ul li { font-size: calc(15 * var(--p)); }
.p strong, .lead strong, .detail__block strong { font-weight: 400; }

/* Everything except headings is set in Jost */
.statement, .duties li, .band .p, .block--next .p, .person b,
.target__num, .stat__num, .ladder__amt, .chart__bar b, .table .num, .margin b {
  font-weight: 300;
  letter-spacing: -0.005em;
}
.table .num, .margin b { font-size: var(--t-h4); }
.duties li { font-size: calc(19 * var(--p)); line-height: 1.35; }
.band .p { font-size: calc(19 * var(--p)); line-height: 1.5; }
.block--next .p { font-size: calc(19 * var(--p)); }
.chart__bar b { font-weight: 400; font-size: calc(22 * var(--p)); }
.foot, .chart figcaption, .econ__note { font-style: normal; font-weight: 300; font-size: calc(13.5 * var(--p)); }
.btn { letter-spacing: 0.14em; }

/* --- Navigation (fixed to the window) --------------------------- */

.nav {
  position: fixed;
  z-index: 20;
  right: 18px;
  bottom: 14px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 5px;
  border-radius: 999px;
  background: rgba(17, 13, 7, 0.74);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  color: var(--cream);
}
.nav button {
  appearance: none;
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border: 1px solid rgba(245, 239, 229, 0.28);
  border-radius: 50%;
  background: none;
  color: inherit;
  font: 14px/1 var(--typewriter);
  cursor: pointer;
  transition: border-color 0.2s, opacity 0.2s;
}
.nav button:hover { border-color: var(--cream); }
.nav button:disabled { opacity: 0.3; cursor: default; }
.nav__count {
  min-width: 58px;
  font: 11px/1 var(--typewriter);
  letter-spacing: 0.14em;
  text-align: center;
  font-variant-numeric: tabular-nums;
}
.nav__count i { font-style: normal; opacity: 0.45; margin: 0 0.3em; }

.progress { position: fixed; z-index: 21; top: 0; left: 0; right: 0; height: 2px; }
.progress span { display: block; width: 0; height: 100%; background: var(--bronze); transition: width 0.3s ease-out; }

/* --- Reveal ----------------------------------------------------- */

.js .in > * {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 0.8s cubic-bezier(0.2, 0.6, 0.2, 1), transform 0.8s cubic-bezier(0.2, 0.6, 0.2, 1);
}
.js .slide.is-in .in > * { opacity: 1; transform: none; }
.js .slide.is-in .in > :nth-child(2) { transition-delay: 0.08s; }
.js .slide.is-in .in > :nth-child(3) { transition-delay: 0.16s; }
.js .slide.is-in .in > :nth-child(4) { transition-delay: 0.24s; }
.js .slide.is-in .in > :nth-child(5) { transition-delay: 0.32s; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .js .in > * { opacity: 1; transform: none; transition: none; }
}

/* --- Phones, portrait tablets and very short windows ------------ */

@media screen and (max-width: 760px),
       screen and (max-height: 520px),
       screen and (orientation: portrait) and (max-width: 1100px) {
  :root {
    --p: 0.66px;
    --t-display: 34px;
    --t-h1: 29px;
    --t-h2: 24px;
    --t-h3: 20px;
    --t-h4: 18px;
    --t-lead: 18px;
    --t-body: 16px;
    --t-small: 14.5px;
    --t-micro: 10px;
    --s1: 6px;
    --s2: 12px;
    --s3: 18px;
    --s4: 26px;
    --s5: 32px;
    --pad-x: 22px;
  }

  .deck { scroll-snap-type: y proximity; }
  .slide {
    height: auto;
    min-height: 100dvh;
    display: block;
    scroll-snap-stop: normal;
  }
  .frame {
    width: 100%;
    height: auto;
    min-height: 100dvh;
    container-type: normal;
    display: flex;
    flex-direction: column;
  }
  .head,
  .slide--media-right .head,
  .slide--media-left .head {
    position: static;
    order: 0;
    padding: 18px var(--pad-x) 0;
  }
  .label b { margin-right: 0.6em; }
  .media {
    position: relative;
    order: 1;
    width: 100%;
    height: 44vh;
    margin-top: 16px;
  }
  .in,
  .slide--media-right .in,
  .slide--media-left .in {
    position: static;
    order: 2;
    flex: 1 0 auto;
    padding: 28px var(--pad-x) 24px;
  }
  .in--bottom { justify-content: flex-end; }
  .foot,
  .slide--media-left .foot {
    position: static;
    order: 3;
    max-width: none;
    padding: 0 var(--pad-x) 76px;
  }
  .brand { font-size: 15px; }
  .brand img { width: 16px; }

  .grid,
  .cols-5-7,
  .cols-7-5,
  .cols-2,
  .cols-3,
  .cols-4 { grid-template-columns: 1fr; gap: var(--s4); }
  .fill { flex: none; }
  .title { max-width: none; }
  .cover-foot { flex-direction: column; align-items: flex-start; margin-top: 40px; }
  .content { flex: none; justify-content: flex-start; }
  .tiles--4 { grid-template-columns: 1fr; }
  .push { margin-top: 0; }

  .cover .h1 { max-width: none; }
  .duties,
  .people { grid-template-columns: 1fr 1fr; }
  .person { border-bottom: 1px solid var(--line-strong); }
  .diy { grid-template-columns: 1fr; }
  .diy__arrow { transform: rotate(90deg); justify-self: center; }
  .chart__plot { height: 220px; }
  .stat { grid-template-columns: 1fr; gap: 8px; }
  .product { width: 100%; }
  .prod { grid-template-columns: 1fr; grid-template-areas: "fig" "groups"; gap: 28px; }
  .prod__group li { font-size: 16px; padding: 8px 0; }
  .member__photo { height: auto; aspect-ratio: 4 / 5; }
  .grid:has(> .member) { grid-template-columns: 1fr 1fr; gap: 22px 14px; }
  .member__photo::before { font-size: 56px; }
  .caps { grid-template-columns: 1fr 1fr; gap: 16px; }
  .flow { grid-template-columns: 1fr; }
  .flow__arrow { transform: rotate(90deg); justify-self: center; }
  .tiers { grid-template-columns: 1fr; gap: 10px; }
  .step { flex-direction: row; justify-content: flex-start; padding: 4px 0; text-align: left; }
  .step__arrow { transform: rotate(90deg); }
  .ticks--2 { columns: 1; }
  .tiles { grid-template-columns: 1fr; }
  .road { grid-template-columns: 1fr; gap: 18px; padding-left: 22px; }
  .road::before { top: 4px; bottom: 4px; left: 5px; right: auto; border-top: none; border-left: 1px solid var(--accent); }
  .road > li { padding-top: 0; }
  .road > li::before { left: -22px; top: 2px; }
  .road ul li { font-size: 14px; }
  .funds__bar { display: none; }
  .table .num { font-size: 18px; }
  .margin span { min-width: 40px; }
  .sources { columns: 1; }
  .bars__plot { height: 200px; margin-left: 26px; }
  .now__side { padding-left: 0; border-left: none; }
  .now__num { font-size: 52px; }
  .bars__labels { margin-left: 26px; gap: 8px; }
  .bars__cols { gap: 8px; }
  .bars__cols b { font-size: 13px; }
  .bars__ref span { top: auto; bottom: 3px; font-size: 11px; }
  .bars__labels li { font-size: 11px; }
  .matrix { table-layout: auto; font-size: 14px; }
  .matrix thead th:first-child { width: auto; }
  .matrix tbody th { font-size: 15px; }
  .matrix__logo,
  .matrix__logo--google,
  .matrix__logo--alexa,
  .matrix__logo--homepod { height: auto; width: 100%; max-width: 62px; margin-bottom: 0; }
  .matrix__name { font-size: 18px; }
  .matrix__wake { display: none; }
  .targets { grid-template-columns: 1fr 1fr; gap: 10px; }
  .gtm { grid-template-columns: 1fr; }
  .gtm__map img { max-height: 280px; }
  .detail { columns: 1; }
  .versus td { font-size: 14.5px; }
  .sources li { font-size: 13px; }
  .nav { right: 12px; bottom: 12px; }
  .nav button { display: none; }
  .nav__count { min-width: 64px; padding: 8px 4px; }
}

/* --- Print / PDF ------------------------------------------------ */

@page { size: 1440px 900px; margin: 0; }

@media print {
  html, body {
    background: var(--night);
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  .nav, .progress { display: none !important; }
  .deck { height: auto; overflow: visible; scroll-snap-type: none; }
  .slide { width: 1440px; height: 900px; break-after: page; break-inside: avoid; }
  .slide:last-child { break-after: auto; }
  .frame { width: 1440px; height: 900px; }
  .js .in > * { opacity: 1 !important; transform: none !important; transition: none !important; }
  .btn[download] { display: none; }
}

/* --- Appendix: hairline tables and rows ------------------------- */

.ap {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--s5) calc(72 * var(--p));
  align-items: start;
}
.ap--1 { grid-template-columns: 1fr; }
.ap__sec { display: flex; flex-direction: column; gap: calc(12 * var(--p)); }
.ap__col { display: flex; flex-direction: column; gap: var(--s4); }
.ap__h,
.ap-table th {
  font-family: var(--typewriter);
  font-size: calc(12.5 * var(--p));
  font-weight: 400;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--fg-3);
}
.ap__h { padding-bottom: calc(12 * var(--p)); border-bottom: 1px solid var(--line-strong); }
.ap__p {
  font-family: var(--sans);
  font-weight: 300;
  font-size: calc(19 * var(--p));
  line-height: 1.55;
  color: var(--fg-2);
}
.ap__note { margin-top: calc(14 * var(--p)); font-size: calc(16.5 * var(--p)); color: var(--fg-3); }
.ap-rows li {
  padding: calc(10 * var(--p)) 0;
  border-bottom: 1px solid var(--line);
  font-family: var(--sans);
  font-weight: 300;
  font-size: calc(19 * var(--p));
  line-height: 1.4;
  color: var(--fg);
}
.ap__h + .ap-rows li:first-child { padding-top: calc(4 * var(--p)); }
.ap-rows--def li {
  display: grid;
  grid-template-columns: minmax(0, 0.34fr) minmax(0, 1fr);
  gap: calc(32 * var(--p));
}
.ap-rows--def b { font-weight: 400; color: var(--fg); }
.ap-rows--def b small {
  display: block;
  margin-top: calc(4 * var(--p));
  font-family: var(--typewriter);
  font-size: calc(11.5 * var(--p));
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--fg-3);
}
.ap-rows--def span { color: var(--fg-2); }
.ap--1 .ap-rows--def li { grid-template-columns: minmax(0, 0.26fr) minmax(0, 1fr); }

.ap-table { width: 100%; border-collapse: collapse; }
.ap-table th {
  padding: 0 0 calc(14 * var(--p));
  border-bottom: 1px solid var(--line-strong);
  text-align: left;
}
.ap-table td {
  padding: calc(10 * var(--p)) 0;
  border-bottom: 1px solid var(--line);
  font-family: var(--sans);
  font-weight: 300;
  font-size: calc(19 * var(--p));
  line-height: 1.35;
  color: var(--fg);
}
.ap-table .n {
  padding-left: calc(28 * var(--p));
  text-align: right;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.ap-table td.n small { font-size: 0.8em; color: var(--fg-3); }
.ap-table td.tbc { border-bottom: 1px solid var(--line); }
.ap-table td.tbc span { padding-bottom: calc(2 * var(--p)); border-bottom: 1px dashed var(--accent); }
.ap-table--bom th:first-child { width: 52%; }
.ap-table__total td { font-weight: 400; border-top: 1px solid var(--line-strong); }
.ap-table__margin td { border-bottom: none; padding-top: calc(14 * var(--p)); }
.ap-table__margin td.n {
  font-family: var(--serif);
  font-size: calc(30 * var(--p));
  font-weight: 300;
  line-height: 1;
  color: var(--accent);
}
.road ul li { font-size: calc(17 * var(--p)); }

@media screen and (max-width: 760px),
       screen and (max-height: 520px),
       screen and (orientation: portrait) and (max-width: 1100px) {
  .ap, .ap--1 { grid-template-columns: 1fr; gap: 26px; }
  .ap-rows li, .ap-table td, .ap__p { font-size: 15px; }
  .ap-rows--def li, .ap--1 .ap-rows--def li { grid-template-columns: 1fr; gap: 4px; }
  .ap-table--bom th:first-child { width: auto; }
  .ap-table .n { padding-left: 10px; }
  .ap-table__margin td.n { font-size: 20px; }
}

/* --- 12 Roadmap: phases alternate above and below the line ------ */

.road--split {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  grid-template-rows: 1fr 1fr;
  gap: 0;
  height: calc(400 * var(--p));
}
.road--split::before { top: 50%; }
.road--split > li { padding: 0 calc(28 * var(--p)) 0 0; }
.road--split > li:nth-child(odd) { grid-row: 1; align-self: end; padding-bottom: calc(34 * var(--p)); }
.road--split > li:nth-child(even) { grid-row: 2; align-self: start; padding-top: calc(34 * var(--p)); }
.road--split > li:nth-child(1) { grid-column: 1 / span 2; }
.road--split > li:nth-child(2) { grid-column: 2 / span 2; }
.road--split > li:nth-child(3) { grid-column: 3 / span 2; }
.road--split > li:nth-child(4) { grid-column: 4 / span 2; }
.road--split > li:nth-child(5) { grid-column: 5 / 6; padding-right: 0; white-space: nowrap; }
.road--split > li:nth-child(odd)::before { top: auto; bottom: calc(-5.5 * var(--p)); }
.road--split > li:nth-child(even)::before { top: calc(-5.5 * var(--p)); }
.road--split > li::after {
  content: "";
  position: absolute;
  left: calc(5 * var(--p));
  height: calc(22 * var(--p));
  border-left: 1px solid var(--accent);
  opacity: 0.5;
}
.road--split > li:nth-child(odd)::after { bottom: calc(8 * var(--p)); }
.road--split > li:nth-child(even)::after { top: calc(8 * var(--p)); }
.road--split .road__title { font-size: var(--t-h3); }
.road--split ul li { font-size: var(--t-small); }

@media screen and (max-width: 760px),
       screen and (max-height: 520px),
       screen and (orientation: portrait) and (max-width: 1100px) {
  .road--split { height: auto; grid-template-columns: 1fr; grid-template-rows: none; gap: 18px; }
  .road--split::before { top: 4px; }
  .road--split > li:nth-child(n) { grid-column: auto; grid-row: auto; align-self: auto; padding: 0; }
  .road--split > li:nth-child(n)::before { top: 2px; bottom: auto; }
  .road--split > li::after { display: none; }
}

/* --- 11 Business model: three stages, then margin ---------------- */

.stages {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: calc(64 * var(--p));
}
.stage { position: relative; display: flex; flex-direction: column; gap: calc(10 * var(--p)); }
.stage + .stage::before {
  content: "\2192";
  position: absolute;
  left: calc(-44 * var(--p));
  top: calc(40 * var(--p));
  font-family: var(--sans);
  font-weight: 300;
  font-size: calc(24 * var(--p));
  color: var(--accent);
}
.stage__num { font-family: var(--typewriter); font-size: calc(12.5 * var(--p)); letter-spacing: 0.2em; color: var(--fg-3); }
.stage__name {
  padding-bottom: calc(12 * var(--p));
  border-bottom: 1px solid var(--accent);
  font-family: var(--serif);
  font-size: var(--t-h3);
  font-weight: 400;
  line-height: 1.1;
  color: var(--fg);
}
.stage__rows li {
  display: flex;
  gap: calc(12 * var(--p));
  align-items: baseline;
  padding: calc(9 * var(--p)) 0;
  border-bottom: 1px solid var(--line);
  font-family: var(--sans);
  font-weight: 300;
  font-size: calc(18.5 * var(--p));
  line-height: 1.35;
  color: var(--fg-2);
}
.stage__rows b { flex: none; min-width: 5.2em; font-weight: 400; color: var(--fg); }
.stage__note { font-family: var(--sans); font-weight: 300; font-size: var(--t-small); color: var(--fg-3); }

.margins {
  display: grid;
  grid-template-columns: minmax(0, 1fr) repeat(3, minmax(0, 1fr));
  gap: calc(40 * var(--p));
  align-items: end;
  margin-top: var(--s4);
  padding-top: var(--s3);
  border-top: 1px solid var(--line-strong);
}
.margins__label {
  align-self: center;
  font-family: var(--typewriter);
  font-size: calc(12.5 * var(--p));
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--fg-3);
}
.margins__item { display: flex; flex-direction: column; gap: calc(6 * var(--p)); }
.margins__item small { font-family: var(--sans); font-weight: 300; font-size: var(--t-small); color: var(--fg-2); }

@media screen and (max-width: 760px),
       screen and (max-height: 520px),
       screen and (orientation: portrait) and (max-width: 1100px) {
  .stages { grid-template-columns: 1fr; gap: 30px; }
  .stage + .stage::before { left: 0; top: -26px; transform: rotate(90deg); font-size: 18px; }
  .stage__rows li { font-size: 15px; }
  .margins { grid-template-columns: 1fr; gap: 12px; }
}

/* --- 13 Use of funds: what each line pays for -------------------- */

.funds thead th {
  padding-bottom: calc(14 * var(--p));
  border-bottom: 1px solid var(--line-strong);
  font-family: var(--typewriter);
  font-size: calc(12.5 * var(--p));
  font-weight: 400;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  text-align: left;
  color: var(--fg-3);
}
.funds thead th.right { text-align: right; }
.funds tbody th {
  width: 25%;
  padding: calc(11 * var(--p)) calc(24 * var(--p)) calc(11 * var(--p)) 0;
  border-bottom: 1px solid var(--line);
  font-family: var(--sans);
  font-weight: 400;
  font-size: calc(19.5 * var(--p));
  line-height: 1.3;
  text-align: left;
  text-transform: none;
  letter-spacing: 0;
  color: var(--fg);
}
.funds td { padding-top: calc(11 * var(--p)); padding-bottom: calc(11 * var(--p)); }
.funds__what { width: 36%; padding-right: calc(32 * var(--p)); font-family: var(--sans); font-weight: 300; font-size: calc(17.5 * var(--p)); line-height: 1.35; color: var(--fg-2); }
.funds__bar { width: 20%; }
.funds__pct { width: 7%; text-align: right; font-family: var(--sans); font-weight: 300; font-size: calc(17.5 * var(--p)); color: var(--fg-3); }
.funds .num { font-size: calc(24 * var(--p)); }
.funds__total th, .funds__total td { border-bottom: none; border-top: 1px solid var(--fg); }

@media screen and (max-width: 760px),
       screen and (max-height: 520px),
       screen and (orientation: portrait) and (max-width: 1100px) {
  .funds thead, .funds__pct { display: none; }
  .funds tbody th { font-size: 15px; width: auto; }
  .funds__what { font-size: 13px; padding-right: 10px; }
}
.funds thead th.funds__pct { text-align: right; }
.funds .funds__total th,
.funds .funds__total td { border-bottom: none; border-top: 1px solid var(--fg); }

/* --- 12 What this round proves ---------------------------------- */

.pillars { align-items: start; gap: calc(28 * var(--p)); }
.pillar {
  display: flex;
  flex-direction: column;
  gap: calc(14 * var(--p));
  padding-top: calc(12 * var(--p));
  border-top: 1px solid var(--accent);
}
.pillar__title {
  font-family: var(--typewriter);
  font-size: calc(11.5 * var(--p));
  font-weight: 400;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--fg);
}
.pillar ul li {
  padding: calc(7 * var(--p)) 0;
  border-top: 1px solid var(--line);
  font-family: var(--sans);
  font-weight: 300;
  font-size: calc(18 * var(--p));
  line-height: 1.35;
  color: var(--fg-2);
}

@media screen and (max-width: 760px),
       screen and (max-height: 520px),
       screen and (orientation: portrait) and (max-width: 1100px) {
  .pillars { grid-template-columns: 1fr 1fr; }
  .pillar ul li { font-size: 15px; }
}

/* --- 13 The plan: four phases on the timeline ----------------- */

.road--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.road--4 .road__title { font-size: var(--t-h4); }
.road--4 ul li { font-size: calc(15.5 * var(--p)); line-height: 1.28; }

@media screen and (max-width: 760px),
       screen and (max-height: 520px),
       screen and (orientation: portrait) and (max-width: 1100px) {
  .road--4 { grid-template-columns: 1fr; gap: calc(28 * var(--p)); }
}

.road--detail-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: calc(36 * var(--p)) calc(48 * var(--p)); }
.road--detail-4::before { display: none; }
.road--detail-4 > li { padding-top: 0; }
.road--detail-4 > li::before { display: none; }

@media screen and (max-width: 760px),
       screen and (max-height: 520px),
       screen and (orientation: portrait) and (max-width: 1100px) {
  .road--detail-4 { grid-template-columns: 1fr; }
}

/* --- 14 Ask (cover layout, legacy deck) ------------------------- */

.slide--ask { color: var(--cream); }
.slide--ask .brand {
  color: var(--cream);
  text-shadow: 0 1px 12px rgba(0, 0, 0, 0.55);
}
.bg--ask img { object-position: center 42%; }
.bg--ask::after {
  background:
    linear-gradient(to top, rgba(17, 13, 7, 0.96) 0%, rgba(17, 13, 7, 0.84) 38%, rgba(17, 13, 7, 0.28) 68%, rgba(17, 13, 7, 0.06) 100%),
    linear-gradient(to right, rgba(17, 13, 7, 0.58) 0%, rgba(17, 13, 7, 0.12) 55%, rgba(17, 13, 7, 0.02) 100%);
}

.in--ask-cover {
  justify-content: flex-end;
  align-items: stretch;
  padding-bottom: calc(34 * var(--p));
}
.ask-cover__inner {
  display: flex;
  flex-direction: column;
  gap: clamp(0.45rem, 1vh, 0.85rem);
  width: 100%;
  max-width: none;
}
.h1--ask-cover {
  max-width: 22ch;
  margin-bottom: clamp(0.5rem, 1.2vh, 0.85rem);
  font-size: clamp(1.75rem, 3.2vw, 2.65rem);
  line-height: 1.05;
  color: var(--cream);
  text-wrap: balance;
}
.slide--ask .eyebrow {
  margin-bottom: calc(10 * var(--p));
  color: rgba(245, 239, 229, 0.55);
}
.slide--ask .eyebrow b { color: var(--accent); }

.ask-cover__terms {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: calc(20 * var(--p));
  max-width: min(52rem, 100%);
  margin-bottom: clamp(0.75rem, 1.8vh, 1.25rem);
  padding: calc(14 * var(--p)) 0 calc(12 * var(--p));
  border-top: 1px solid rgba(245, 239, 229, 0.22);
  border-bottom: 1px solid rgba(245, 239, 229, 0.1);
}
.ask-cover__term-val {
  font-family: var(--serif);
  font-size: clamp(1.85rem, 3.4vw, 2.85rem);
  font-weight: 300;
  line-height: 1;
  letter-spacing: -0.03em;
  color: var(--cream);
}
.ask-cover__term-lab {
  margin-top: calc(7 * var(--p));
  font-family: var(--typewriter);
  font-size: calc(10 * var(--p));
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: rgba(245, 239, 229, 0.42);
}

.ask-cover__goals { margin: calc(12 * var(--p)) 0 calc(14 * var(--p)); max-width: 100%; }
.ask-cover__goals .kicker { margin-bottom: calc(8 * var(--p)); color: rgba(245, 239, 229, 0.45); }
.ask-cover__outcomes {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: calc(8 * var(--p)) calc(12 * var(--p));
  margin: 0;
  padding: calc(10 * var(--p)) 0 0;
  border-top: 1px solid rgba(245, 239, 229, 0.12);
  list-style: none;
  max-width: 100%;
}
.ask-cover__outcomes li {
  font-family: var(--serif);
  font-size: clamp(0.95rem, 1.35vw, 1.22rem);
  font-weight: 300;
  line-height: 1.15;
  letter-spacing: -0.01em;
  color: rgba(245, 239, 229, 0.92);
  text-wrap: balance;
}

.ask-cover__grid {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
  gap: clamp(1.25rem, 3.2vw, 3.25rem);
  width: 100%;
  margin-top: clamp(0.15rem, 0.5vh, 0.35rem);
  align-items: start;
}
.ask-cover__col--funds { align-self: start; }
.ask-cover__col .kicker { margin-bottom: calc(8 * var(--p)); color: rgba(245, 239, 229, 0.45); }
.ask-cover__raise {
  font-family: var(--serif);
  font-size: clamp(1.55rem, 2.5vw, 2.15rem);
  font-weight: 300;
  line-height: 1.1;
  color: var(--cream);
}
.ask-cover__meta {
  margin-top: calc(6 * var(--p));
  font-family: var(--typewriter);
  font-size: calc(10 * var(--p));
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(245, 239, 229, 0.42);
}
.ask-cover__note {
  margin-top: 0;
  max-width: 38ch;
  font-family: var(--sans);
  font-weight: 300;
  font-size: calc(14.5 * var(--p));
  line-height: 1.4;
  color: rgba(245, 239, 229, 0.72);
}
.ask-cover__col .cta { margin-top: calc(12 * var(--p)); }

.btn--ghost {
  background: transparent;
  color: var(--cream);
  border-color: rgba(245, 239, 229, 0.35);
}
.btn--ghost:hover {
  background: rgba(245, 239, 229, 0.08);
  border-color: rgba(245, 239, 229, 0.55);
}

.ask-cover__funds {
  margin: 0;
  padding: 0;
  list-style: none;
}
.ask-cover__funds li {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.7fr) calc(36 * var(--p));
  align-items: center;
  gap: calc(8 * var(--p)) calc(10 * var(--p));
  padding: calc(6 * var(--p)) 0;
  border-bottom: 1px solid rgba(245, 239, 229, 0.12);
}
.ask-cover__funds li:last-child { border-bottom: none; }
.ask-cover__fund-title {
  font-family: var(--serif);
  font-size: calc(18 * var(--p));
  font-weight: 400;
  line-height: 1.15;
  color: var(--cream);
}
.ask-cover__fund-desc {
  margin-top: calc(2 * var(--p));
  font-family: var(--sans);
  font-weight: 300;
  font-size: calc(11.5 * var(--p));
  line-height: 1.28;
  color: rgba(245, 239, 229, 0.52);
}
.ask-cover__bar {
  display: block;
  height: calc(5 * var(--p));
  background: linear-gradient(to right, var(--accent) 0 var(--w), rgba(245, 239, 229, 0.1) var(--w) 100%);
}
.ask-cover__pct {
  font-family: var(--serif);
  font-size: calc(20 * var(--p));
  font-weight: 300;
  line-height: 1;
  color: var(--cream);
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.ask-cover__pull {
  width: 100%;
  max-width: 28rem;
  margin: 0 0 calc(4 * var(--p));
  padding-left: calc(16 * var(--p));
  border-left: 2px solid var(--accent);
  font-family: var(--serif);
  font-size: clamp(1.08rem, 1.55vw, 1.32rem);
  font-weight: 300;
  font-style: italic;
  line-height: 1.4;
  letter-spacing: -0.01em;
  color: rgba(245, 239, 229, 0.88);
  text-wrap: pretty;
}
.ask-cover__pull strong {
  font-style: normal;
  font-weight: 400;
  color: var(--cream);
}
.ask-cover__foot {
  width: 100%;
  margin-top: clamp(0.5rem, 1.2vh, 0.85rem);
  padding-top: calc(12 * var(--p));
  border-top: 1px solid rgba(245, 239, 229, 0.14);
  font-family: var(--typewriter);
  font-size: calc(10 * var(--p));
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(245, 239, 229, 0.45);
}
.ask-cover__foot img { display: inline-block; vertical-align: -0.15em; margin-right: calc(6 * var(--p)); opacity: 0.75; }
.ask-cover__foot a { color: rgba(245, 239, 229, 0.65); text-decoration: none; }
.ask-cover__foot a:hover { color: var(--cream); }

@media screen and (max-width: 760px),
       screen and (max-height: 520px),
       screen and (orientation: portrait) and (max-width: 1100px) {
  .in--ask-cover { justify-content: flex-start; padding-bottom: var(--pad-bottom); }
  .ask-cover__terms { grid-template-columns: 1fr; gap: calc(12 * var(--p)); }
  .ask-cover__grid { grid-template-columns: 1fr; gap: 28px; }
  .ask-cover__funds li { grid-template-columns: 1fr; gap: 6px; }
  .ask-cover__bar { display: none; }
  .ask-cover__pct { text-align: left; }
  .ask-cover__outcomes { grid-template-columns: 1fr; max-width: none; }
  .team-adviser { grid-template-columns: 1fr; max-width: none; }
  .team-adviser .member__photo--sm { height: auto; aspect-ratio: 4 / 5; max-width: 140px; }
}

/* --- Appendix divider ------------------------------------------- */

.h1--display { font-size: var(--t-display); line-height: 0.95; }
.toc {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: calc(48 * var(--p));
  border-top: 1px solid var(--line-strong);
}
.toc li { border-bottom: 1px solid var(--line); }
.toc a {
  display: flex;
  align-items: baseline;
  gap: calc(16 * var(--p));
  padding: calc(16 * var(--p)) 0;
  font-family: var(--sans);
  font-weight: 300;
  font-size: calc(20 * var(--p));
  color: var(--fg);
  text-decoration: none;
}
.toc b {
  font-family: var(--typewriter);
  font-weight: 400;
  font-size: calc(12.5 * var(--p));
  letter-spacing: 0.2em;
  color: var(--accent);
}
.toc a:hover { color: var(--accent); }

@media screen and (max-width: 760px),
       screen and (max-height: 520px),
       screen and (orientation: portrait) and (max-width: 1100px) {
  .toc { grid-template-columns: 1fr; }
  .toc a { font-size: 16px; padding: 12px 0; }
}

/* Appendix: compact rows and a two-column contents list */
.ap-rows--compact li { padding: calc(7 * var(--p)) 0; font-size: calc(18 * var(--p)); }
.toc--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ap-table--bom td { padding-top: calc(7.5 * var(--p)); padding-bottom: calc(7.5 * var(--p)); }
.ap-table--bom .ap-table__margin td { padding-top: calc(10 * var(--p)); }
.ap-table--bom td { padding-top: calc(5.5 * var(--p)); padding-bottom: calc(5.5 * var(--p)); font-size: calc(17.5 * var(--p)); }
.ap-table--bom th { padding-bottom: calc(10 * var(--p)); }
.ap-table--bom .ap-table__margin td { padding-top: calc(8 * var(--p)); }
.ap-table--bom .ap-table__margin td.n { font-size: calc(26 * var(--p)); }
/* Bill of materials: the compute module is added to the Core total */
.ap-table__add td { color: var(--fg-2); }
.ap-table--bom .ap-table__margin td { border-bottom: none; }
.ap-table--bom .ap-table__margin--first td { padding-top: calc(12 * var(--p)); }
.ap-table--bom .ap-table__margin + .ap-table__margin td { padding-top: calc(2 * var(--p)); }

/* --- A3 Illustrative path to breakeven --------------------------- */

.title--compact { gap: calc(14 * var(--p)); }
.title--compact .h1--sm { max-width: 28ch; }
.lead--tight {
  max-width: 42rem;
  font-size: calc(17 * var(--p));
  line-height: 1.45;
  color: var(--fg-2);
}

.be__assumptions {
  margin-bottom: calc(16 * var(--p));
  padding: calc(14 * var(--p)) calc(18 * var(--p));
  border: 1px solid var(--line-strong);
  border-left: 3px solid var(--accent);
  background: var(--accent-soft);
}
.be__assumptions-tag {
  margin: 0 0 calc(10 * var(--p));
  font-family: var(--typewriter);
  font-size: calc(10 * var(--p));
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--fg-3);
}
.be__assumptions-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: calc(8 * var(--p)) calc(24 * var(--p));
}
.be__assumptions-list li {
  font-family: var(--sans);
  font-weight: 300;
  font-size: calc(14 * var(--p));
  line-height: 1.38;
  color: var(--fg-2);
}
.be__assumptions-list b {
  display: block;
  margin-bottom: calc(2 * var(--p));
  font-family: var(--typewriter);
  font-size: calc(9.5 * var(--p));
  font-weight: 400;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--fg);
}
.be__assumptions-list a { color: var(--fg); text-decoration: underline; text-underline-offset: 0.15em; opacity: 0.85; }

@media screen and (max-width: 760px),
       screen and (max-height: 520px),
       screen and (orientation: portrait) and (max-width: 1100px) {
  .be__assumptions-list { grid-template-columns: 1fr; }
}

/* --- 12 Path to breakeven --------------------------------------- */

.be {
  display: grid;
  grid-template-columns: minmax(0, 2.2fr) minmax(0, 1fr);
  gap: calc(56 * var(--p));
  align-items: start;
}
.be__chart { margin: 0; display: flex; flex-direction: column; gap: calc(10 * var(--p)); }
.be__svg { display: block; width: 100%; height: auto; max-height: calc(430 * var(--p)); overflow: visible; }
.be__key { display: flex; gap: calc(28 * var(--p)); font-family: var(--sans); font-weight: 300; font-size: var(--t-small); color: var(--fg-2); }
.be__k { display: inline-flex; align-items: center; gap: calc(10 * var(--p)); }
.be__k::before { content: ""; width: calc(26 * var(--p)); border-top: 2px solid var(--accent); }
.be__k--cost::before { border-top: 1.5px dashed var(--fg-2); }
.be__band { fill: var(--accent-soft); opacity: 0.6; }
.be__phase { font-family: var(--typewriter); font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; fill: var(--fg-3); }
.be__grid { stroke: var(--line); stroke-width: 1; }
.be__grid--zero { stroke: var(--line-strong); }
.be__ylab, .be__xlab { font-family: var(--sans); font-weight: 300; font-size: 13px; fill: var(--fg-3); }
.be__cost { fill: none; stroke: var(--fg-2); stroke-width: 1.5; stroke-dasharray: 6 5; }
.be__con { fill: none; stroke: var(--accent); stroke-width: 2.5; stroke-linejoin: round; }
.be__fill { fill: var(--accent); opacity: 0.14; }
.be__drop { stroke: var(--accent); stroke-width: 1; stroke-dasharray: 2 4; }
.be__dot { fill: var(--accent); stroke: var(--surface); stroke-width: 3; }
.be__lab { font-family: var(--sans); font-weight: 300; font-size: 14px; fill: var(--fg-2); }
.be__lab--be { font-weight: 300; font-size: 14px; fill: var(--fg-2); font-style: italic; }
.be__lab--end { fill: var(--fg); }
.be__side { display: flex; flex-direction: column; gap: calc(12 * var(--p)); }
.be__table { width: 100%; border-collapse: collapse; }
.be__table th {
  padding: 0 0 calc(10 * var(--p));
  border-bottom: 1px solid var(--line-strong);
  font-family: var(--typewriter);
  font-weight: 400;
  font-size: calc(11.5 * var(--p));
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--fg-3);
}
.be__table td {
  padding: calc(10 * var(--p)) 0;
  border-bottom: 1px solid var(--line);
  font-family: var(--sans);
  font-weight: 300;
  font-size: calc(17 * var(--p));
  color: var(--fg-2);
}
.be__table .n { padding-left: calc(14 * var(--p)); text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.be__net td { font-weight: 400; color: var(--fg); border-bottom: none; }
.be__note { font-family: var(--sans); font-weight: 300; font-size: var(--t-small); line-height: 1.45; color: var(--fg-3); }

@media screen and (max-width: 760px),
       screen and (max-height: 520px),
       screen and (orientation: portrait) and (max-width: 1100px) {
  .be { grid-template-columns: 1fr; gap: 24px; }
  .be__key { flex-direction: column; gap: 6px; }
  .be__table td { font-size: 14px; }
}
/* Breakeven chart, larger, with the key underneath */
.be { grid-template-columns: minmax(0, 2.9fr) minmax(0, 1fr); gap: calc(48 * var(--p)); }
.be__svg { max-height: none; }
.be__chart { gap: calc(14 * var(--p)); }
.be__key { flex-wrap: wrap; gap: calc(10 * var(--p)) calc(28 * var(--p)); padding-left: calc(70 / 1000 * 100%); }
.be__k--fill::before { height: calc(12 * var(--p)); width: calc(20 * var(--p)); border: none; background: var(--accent); opacity: 0.25; }
.be__ylab, .be__xlab { font-size: 15px; }
.be__lab { font-size: 16px; }
.be__lab--be { font-size: 15px; }
.be__lab--end { font-size: 17px; }
.be__side { padding-top: calc(4 * var(--p)); }
.be { grid-template-columns: minmax(0, 2.6fr) minmax(0, 1fr); }
.be__svg { width: 100%; height: calc(420 * var(--p)); }
.be__key { padding-left: calc(64 * var(--p)); }
@media screen and (max-width: 760px),
       screen and (max-height: 520px),
       screen and (orientation: portrait) and (max-width: 1100px) {
  .be__svg { height: auto; }
  .be__key { padding-left: 0; }
}
.be__svg { height: calc(400 * var(--p)); }
.be__key { flex-wrap: nowrap; gap: calc(22 * var(--p)); font-size: calc(14.5 * var(--p)); white-space: nowrap; }
.be__table td:first-child { white-space: nowrap; }
.be__table td { font-size: calc(16 * var(--p)); }
@media screen and (max-width: 760px),
       screen and (max-height: 520px),
       screen and (orientation: portrait) and (max-width: 1100px) {
  .be__key { flex-wrap: wrap; white-space: normal; font-size: 13px; }
}
@media screen and (max-width: 760px),
       screen and (max-height: 520px),
       screen and (orientation: portrait) and (max-width: 1100px) {
  .be { grid-template-columns: 1fr; gap: 24px; }
  .be__svg { height: auto; }
  .be__table td { font-size: 14px; }
}
/* Breakeven: chart takes the height freed by moving the intro to the side */
.be { grid-template-columns: minmax(0, 2.9fr) minmax(0, 1fr); gap: calc(44 * var(--p)); }
.be__svg { height: calc(480 * var(--p)); }
.be__side { gap: calc(18 * var(--p)); }
.be__intro { font-family: var(--sans); font-weight: 300; font-size: calc(18.5 * var(--p)); line-height: 1.5; color: var(--fg-2); }
@media screen and (max-width: 760px),
       screen and (max-height: 520px),
       screen and (orientation: portrait) and (max-width: 1100px) {
  .be { grid-template-columns: 1fr; }
  .be__svg { height: auto; }
  .be__intro { font-size: 16px; }
}
/* Appendix rows with a label above its detail */
.ap-rows--stack li { display: flex; flex-direction: column; gap: calc(3 * var(--p)); padding: calc(10 * var(--p)) 0; }
.ap-rows--stack b { font-weight: 400; color: var(--fg); }
.ap-rows--stack span { font-size: calc(17 * var(--p)); color: var(--fg-2); }
/* A4 roadmap detail: sits at the foot of the page, widest phase gets more room */
.road--detail { grid-template-columns: 1fr 1fr 1fr 1.7fr 1fr; gap: calc(26 * var(--p)); }
.road--detail ul li { font-size: calc(16 * var(--p)); line-height: 1.3; padding-top: calc(3 * var(--p)); padding-bottom: calc(3 * var(--p)); }
.road--detail .road__title { font-size: calc(22 * var(--p)); }
.road--detail.road--detail-4 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: calc(36 * var(--p)) calc(48 * var(--p));
}
.road--detail.road--detail-4::before,
.road--detail.road--detail-4 > li::before { display: none; }
.road--detail.road--detail-4 > li { padding-top: 0; }
#a4 .in { padding-bottom: calc(110 * var(--p)); }
@media screen and (max-width: 760px),
       screen and (max-height: 520px),
       screen and (orientation: portrait) and (max-width: 1100px) {
  .road--detail { grid-template-columns: 1fr; }
  #a4 .in { padding-bottom: 24px; }
}
/* 02: Home Assistant column, icon beside its name */
.matrix__ha {
  display: inline-flex;
  align-items: center;
  gap: calc(6 * var(--p));
  margin-bottom: calc(12 * var(--p));
  font-family: var(--sans);
  font-weight: 500;
  font-size: calc(17 * var(--p));
  letter-spacing: -0.01em;
  color: var(--ink);
  opacity: 0.78;
  white-space: nowrap;
}
.matrix .matrix__logo--ha { width: calc(30 * var(--p)); height: calc(30 * var(--p)); margin: 0; }
.matrix thead th:first-child { width: 32%; }
@media screen and (max-width: 760px),
       screen and (max-height: 520px),
       screen and (orientation: portrait) and (max-width: 1100px) {
  .matrix__ha { flex-direction: column; font-size: 10px; white-space: normal; text-align: center; margin-bottom: 0; }
  .matrix .matrix__logo--ha { width: 26px; height: 26px; }
  .matrix thead th:first-child { width: auto; }
}
@media screen and (max-width: 760px),
       screen and (max-height: 520px),
       screen and (orientation: portrait) and (max-width: 1100px) {
  .matrix__ha-name { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
}
/* 02: partial mark, a tick in a dashed circle */
.mark--part::before {
  content: "";
  position: absolute;
  inset: -12%;
  border: 1.25px dashed currentColor;
  border-radius: 50%;
}
.mark--part::after {
  content: "";
  position: absolute;
  left: 34%;
  top: 14%;
  width: 26%;
  height: 52%;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(42deg);
}
.matrix__legend {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: calc(10 * var(--p));
  margin-top: calc(10 * var(--p));
  font-family: var(--sans);
  font-weight: 300;
  font-size: calc(14 * var(--p));
  color: var(--fg-3);
}
@media screen and (max-width: 760px),
       screen and (max-height: 520px),
       screen and (orientation: portrait) and (max-width: 1100px) {
  .matrix__legend { justify-content: flex-start; font-size: 12px; }
}
.foot--legend { display: flex; align-items: center; gap: calc(10 * var(--p)); }
.foot--legend .mark { width: calc(15 * var(--p)); height: calc(15 * var(--p)); flex: none; }
/* Reference label sits above its line when the line runs through the bars */
.bars__ref--above span { top: auto; bottom: calc(6 * var(--p)); }
@media screen and (max-width: 760px),
       screen and (max-height: 520px),
       screen and (orientation: portrait) and (max-width: 1100px) {
  .bars__ref span { font-size: 9.5px; }
}
/* 06: angled product render on a transparent background */
.prod__fig .product--angle { width: auto; max-width: 100%; max-height: calc(460 * var(--p)); }
.prod__fig::after { display: none; }
@media screen and (max-width: 760px),
       screen and (max-height: 520px),
       screen and (orientation: portrait) and (max-width: 1100px) {
  .prod__fig .product--angle { width: 100%; max-height: none; }
}
/* 09: photo collage on the right, list under the heading */
.collage {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1.15fr 1fr 1fr;
  gap: 4px;
  background: var(--night);
}
.collage img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  /* match marketing craftsmanship: B&W + warm bronze cast */
  filter: grayscale(1) sepia(0.32) saturate(1.08) contrast(1.05) brightness(0.9);
}
.collage__a { grid-column: 1 / 3; }
.collage__b { grid-row: 2 / 4; object-position: 50% 45%; }
.collage__d { object-position: 50% 60%; }
.prod--solo { display: block; }
.prod--solo .prod__groups { max-width: none; }
@media screen and (max-width: 760px),
       screen and (max-height: 520px),
       screen and (orientation: portrait) and (max-width: 1100px) {
  .collage { height: 56vh; }
}
.collage__a { grid-row: 1; }
.collage__b { grid-column: 1; }
.collage__c { grid-column: 2; grid-row: 2; }
.collage__d { grid-column: 2; grid-row: 3; }
.collage img { min-height: 0; }
.slide--paper .collage .credit { color: rgba(245, 239, 229, 0.82); }
@media screen and (max-width: 760px),
       screen and (max-height: 520px),
       screen and (orientation: portrait) and (max-width: 1100px) {
  .slide--paper.slide--media-right .head .brand { color: var(--fg); text-shadow: none; }
}
.member__photo img { object-position: 50% 50%; }
.prod__fig .product--front { width: 100%; max-width: calc(860 * var(--p)); height: auto; }
.prod__fig .product--front { width: 100%; max-width: calc(860 * var(--p)); height: auto; }
/* Cover: the photo is cropped so the product sits at 68% across and 42% down; pin that point at every window shape */
.bg--cover img { object-position: 68% 42%; transform: none; }

/* ===============================================================
   Deck v2 narrative rebuild · slides 02–15
   =============================================================== */

/* 02 · Missing category */
.missing-category {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(calc(190 * var(--p)), 0.48fr) minmax(0, 1fr);
  gap: calc(28 * var(--p));
  align-items: stretch;
}
.missing-category__col {
  padding-top: calc(14 * var(--p));
  border-top: 1px solid var(--line-strong);
}
.missing-category__col ul { margin-top: calc(12 * var(--p)); }
.missing-category__col li {
  padding: calc(8 * var(--p)) 0;
  border-top: 1px solid var(--line);
  font-family: var(--sans);
  font-weight: 300;
  font-size: calc(16.5 * var(--p));
  line-height: 1.34;
  color: var(--fg-2);
}
.missing-category__middle {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: calc(8 * var(--p));
  padding: calc(24 * var(--p)) calc(16 * var(--p));
  border-top: 1px solid var(--accent);
  border-bottom: 1px solid var(--accent);
  text-align: center;
  color: var(--fg);
}
.missing-category__middle > p:last-child {
  max-width: 14ch;
  font-family: var(--typewriter);
  font-size: calc(10 * var(--p));
  letter-spacing: 0.2em;
  line-height: 1.45;
  text-transform: uppercase;
  color: var(--accent);
}
.missing-category__name {
  font-family: var(--serif);
  font-size: calc(26 * var(--p));
  font-weight: 300;
  line-height: 1;
}
.missing-category__name em { font-style: italic; }
.missing-category__line {
  margin-top: calc(20 * var(--p));
  padding-top: calc(14 * var(--p));
  border-top: 1px solid var(--line);
  font-family: var(--serif);
  font-size: calc(24 * var(--p));
  font-weight: 300;
  font-style: italic;
  line-height: 1.3;
  text-align: center;
  color: var(--fg);
}

/* 03 · Why now */
.why-now--implications { align-items: stretch; }
.why-now__implications {
  display: flex;
  flex-direction: column;
  gap: calc(16 * var(--p));
  margin: 0;
  padding: 0;
}
.why-now__implications li {
  padding-top: calc(11 * var(--p));
  border-top: 1px solid var(--line);
}
.why-now__support {
  margin-top: calc(4 * var(--p));
  padding-top: calc(12 * var(--p));
  border-top: 1px solid var(--line-strong);
  font-family: var(--sans);
  font-weight: 300;
  font-size: calc(15 * var(--p));
  line-height: 1.45;
  color: var(--fg-2);
}
.why-now__support a { color: var(--fg); }

/* 04 · Product */
.prod--radio { grid-template-columns: minmax(0, 1.8fr) minmax(0, 1.1fr); gap: calc(62 * var(--p)); }
.prod__groups--four {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: calc(22 * var(--p)) calc(28 * var(--p));
}
.prod__groups--four .prod__group { min-width: 0; }
.prod__groups--four .prod__group li { font-size: calc(17 * var(--p)); }

/* 05 · Experience */
.audio-flow {
  position: relative;
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: calc(8 * var(--p));
  margin: calc(12 * var(--p)) 0 calc(32 * var(--p));
  padding: calc(38 * var(--p)) 0 0;
}
.audio-flow::before {
  content: "";
  position: absolute;
  left: 2%;
  right: 2%;
  top: calc(14 * var(--p));
  height: calc(18 * var(--p));
  background:
    linear-gradient(to right, transparent 0 1%, var(--accent) 1% 99%, transparent 99% 100%) center / 100% 1px no-repeat;
  opacity: 0.55;
}
.audio-flow li {
  position: relative;
  min-width: 0;
  padding-top: calc(13 * var(--p));
  border-top: 1px solid var(--line-strong);
  text-align: center;
}
.audio-flow li::before {
  content: "";
  position: absolute;
  left: 50%;
  top: calc(-31 * var(--p));
  width: calc(9 * var(--p));
  height: calc(9 * var(--p));
  border: 1px solid var(--accent);
  border-radius: 50%;
  background: var(--surface);
  transform: translateX(-50%);
}
.audio-flow li:nth-child(2)::before,
.audio-flow li:nth-child(6)::before { background: var(--accent); box-shadow: 0 0 0 calc(5 * var(--p)) var(--accent-soft); }
.audio-flow span {
  display: block;
  margin-bottom: calc(6 * var(--p));
  font-family: var(--typewriter);
  font-size: calc(9 * var(--p));
  letter-spacing: 0.16em;
  color: var(--fg-3);
}
.audio-flow b {
  display: block;
  font-family: var(--serif);
  font-size: calc(19 * var(--p));
  font-weight: 400;
  line-height: 1.1;
  color: var(--fg);
}
.experience-notes {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: calc(44 * var(--p));
}
.experience-notes > div {
  padding-top: calc(14 * var(--p));
  border-top: 1px solid var(--accent);
}
.experience-notes .p { margin-top: calc(8 * var(--p)); font-size: calc(17 * var(--p)); line-height: 1.48; }

/* 06 · Why hardware */
.hardware-logic {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: calc(22 * var(--p));
}
.hardware-logic li {
  padding-top: calc(14 * var(--p));
  border-top: 1px solid var(--accent);
}
.hardware-logic li > p:last-child {
  margin-top: calc(9 * var(--p));
  font-family: var(--sans);
  font-weight: 300;
  font-size: calc(15.5 * var(--p));
  line-height: 1.46;
  color: var(--fg-2);
}
.hardware-thesis {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: calc(44 * var(--p));
  margin-top: 0;
  padding-top: calc(24 * var(--p));
  border-top: 1px solid var(--line-strong);
}
.hardware-thesis p {
  padding-left: calc(18 * var(--p));
  border-left: 2px solid var(--accent);
  font-family: var(--serif);
  font-size: calc(26 * var(--p));
  font-weight: 300;
  font-style: italic;
  line-height: 1.32;
  color: var(--fg);
}
#why-hardware .in.in--anchor { gap: calc(32 * var(--p)); }
#why-hardware .content { gap: calc(30 * var(--p)); }
#why-hardware .hardware-logic li > p:last-child {
  font-size: calc(16.5 * var(--p));
  line-height: 1.48;
}

/* 07 · Platform */
.platform-map {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) auto minmax(0, 1.2fr) auto minmax(0, 0.85fr);
  gap: calc(20 * var(--p));
  align-items: stretch;
}
.platform-map__step {
  padding: calc(16 * var(--p)) calc(18 * var(--p));
  border-top: 1px solid var(--line-strong);
  border-bottom: 1px solid var(--line);
}
.platform-map__step--core {
  border-top-color: var(--accent);
  background: var(--accent-soft);
}
.platform-map__title {
  margin: calc(10 * var(--p)) 0;
  font-family: var(--serif);
  font-size: calc(24 * var(--p));
  font-weight: 400;
  line-height: 1.12;
  color: var(--fg);
}
.platform-map__step > p:last-child,
.platform-map__step li {
  padding: calc(5 * var(--p)) 0;
  border-top: 1px solid var(--line);
  font-family: var(--sans);
  font-weight: 300;
  font-size: calc(15 * var(--p));
  line-height: 1.38;
  color: var(--fg-2);
}
.platform-map__arrow {
  align-self: center;
  font-family: var(--serif);
  font-size: calc(34 * var(--p));
  font-weight: 300;
  color: var(--accent);
}
#platform .in.in--anchor { gap: calc(28 * var(--p)); }
#platform .content { gap: calc(20 * var(--p)); }
.platform-economics {
  max-width: 76rem;
  font-family: var(--sans);
  font-weight: 300;
  font-size: calc(14.5 * var(--p));
  line-height: 1.42;
  color: var(--fg-3);
}
.platform-principle {
  display: grid;
  grid-template-columns: minmax(0, 0.7fr) minmax(0, 1.3fr);
  gap: calc(36 * var(--p));
  align-items: baseline;
  margin-top: 0;
  padding-top: calc(20 * var(--p));
  border-top: 1px solid var(--accent);
}
.platform-principle__line {
  font-family: var(--serif);
  font-size: calc(28 * var(--p));
  font-weight: 300;
  font-style: italic;
  line-height: 1.2;
  color: var(--fg);
}
.platform-principle > p:last-child {
  font-family: var(--sans);
  font-weight: 300;
  font-size: calc(16 * var(--p));
  line-height: 1.5;
  color: var(--fg-2);
}

/* 09 · Go to market */
.gtm-questions {
  display: flex;
  align-items: baseline;
  gap: calc(28 * var(--p));
  margin-top: calc(18 * var(--p));
  padding-top: calc(14 * var(--p));
  border-top: 1px solid var(--line-strong);
}
.gtm-questions__label {
  flex: none;
  font-family: var(--typewriter);
  font-size: calc(9.5 * var(--p));
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent);
}
.gtm-questions ul {
  display: flex;
  flex-wrap: wrap;
  gap: calc(6 * var(--p)) calc(14 * var(--p));
}
.gtm-questions li {
  font-family: var(--typewriter);
  font-size: calc(9.5 * var(--p));
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--fg-3);
}
.gtm-questions li + li::before {
  content: "\00b7";
  margin-right: calc(14 * var(--p));
  color: var(--fg-3);
  opacity: 0.6;
}

/* 10 · Progress */
#progress .prod__groups { gap: calc(12 * var(--p)); }
#progress .prod__group li { padding: calc(5 * var(--p)) 0; font-size: calc(15.5 * var(--p)); line-height: 1.3; }
#progress .prod__label { margin-bottom: calc(3 * var(--p)); }

/* 11 · Team */
.in--team { gap: calc(26 * var(--p)); }
.title--team { gap: calc(10 * var(--p)); max-width: 88%; }
.h1--team { max-width: 28ch; font-size: calc(43 * var(--p)); }
.title--team .lead { font-size: calc(17 * var(--p)); }
.team-v2 { gap: calc(16 * var(--p)); }
.team-founders--compact { margin: 0; gap: calc(26 * var(--p)); }
.team-founders--compact .member { gap: calc(6 * var(--p)); }
.team-founders--compact .member__photo {
  width: min(100%, calc(204 * var(--p)));
  height: auto;
  aspect-ratio: 1 / 1;
  margin-bottom: calc(8 * var(--p));
}
.team-founders--compact .member__photo img {
  object-fit: cover;
  object-position: 50% 42%;
}
.team-founders--compact .member h3 { font-size: calc(24 * var(--p)); }
.team-founders--compact .member .p { font-size: calc(14.5 * var(--p)); line-height: 1.4; }
.team-founders--compact .role--track { margin-top: 0; color: var(--accent); }
.team-daniel {
  display: grid;
  grid-template-columns: calc(148 * var(--p)) minmax(0, 0.95fr) minmax(0, 1.35fr);
  gap: calc(24 * var(--p));
  align-items: start;
  margin-top: calc(12 * var(--p));
  padding-top: calc(18 * var(--p));
  border-top: 1px solid var(--accent);
}
.team-daniel .member__photo {
  width: calc(148 * var(--p));
  height: calc(148 * var(--p));
  aspect-ratio: 1 / 1;
  flex: none;
  margin: 0;
  border-style: solid;
}
.team-daniel .member__photo img {
  object-fit: cover;
  object-position: 50% 38%;
}
.team-daniel__bio h3 {
  margin: calc(6 * var(--p)) 0 calc(7 * var(--p));
  font-family: var(--serif);
  font-size: calc(25 * var(--p));
  font-weight: 400;
  line-height: 1.1;
  color: var(--fg);
}
.team-daniel__bio > p:last-child,
.team-daniel__proof > p {
  font-family: var(--sans);
  font-weight: 300;
  font-size: calc(14 * var(--p));
  line-height: 1.4;
  color: var(--fg-2);
}
.team-daniel__proof .kicker { margin-bottom: calc(8 * var(--p)); }
.team-daniel__scope {
  margin-top: calc(9 * var(--p));
  padding-top: calc(8 * var(--p));
  border-top: 1px solid var(--line);
  color: var(--fg) !important;
}

/* 13 · Proof and 14 · plan */
.pillar__status {
  margin-left: calc(8 * var(--p));
  font-family: var(--typewriter);
  font-size: calc(8.5 * var(--p));
  font-weight: 400;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
}
.proof-support,
.road-adviser {
  margin-top: calc(20 * var(--p));
  padding-top: calc(13 * var(--p));
  border-top: 1px solid var(--accent);
  font-family: var(--sans);
  font-weight: 300;
  font-size: calc(14.5 * var(--p));
  line-height: 1.4;
  color: var(--fg-2);
}
.road-adviser { max-width: 62rem; }

/* Appendix fit and hierarchy */
#a1 .ap { column-gap: calc(56 * var(--p)); }
#a1 .ap__col { gap: calc(20 * var(--p)); }
#a1 .ap__sec { gap: calc(8 * var(--p)); }
#a1 .ap__h { padding-bottom: calc(8 * var(--p)); }
#a1 .ap__p {
  font-size: calc(16.5 * var(--p));
  line-height: 1.4;
}
#a1 .ap-rows--stack li {
  gap: calc(2 * var(--p));
  padding: calc(6 * var(--p)) 0;
  font-size: calc(16.5 * var(--p));
  line-height: 1.25;
}
#a1 .ap-rows--stack span {
  font-size: calc(15.5 * var(--p));
  line-height: 1.35;
}
#a1 .ap__note {
  margin-top: calc(8 * var(--p));
  font-size: calc(14.5 * var(--p));
  line-height: 1.4;
}

#a3 .content { gap: 0; }
#a2 .content { gap: calc(18 * var(--p)); }
#a3 .be {
  grid-template-columns: minmax(0, 1fr) minmax(calc(390 * var(--p)), 0.44fr);
  gap: calc(40 * var(--p));
  width: 100%;
}
#a3 .be__chart,
#a3 .be__side { min-width: 0; }
#a3 .be__fill,
#a3 .be__con { display: none; }
#a3 .be__fill-corrected { fill: var(--accent); opacity: 0.14; }
#a3 .be__con-corrected {
  fill: none;
  stroke: var(--accent);
  stroke-width: 2.5;
  stroke-linejoin: round;
}
#a3 .be__svg {
  width: 100%;
  height: auto;
  max-height: calc(410 * var(--p));
}
#a3 .be__key {
  flex-wrap: wrap;
  gap: calc(7 * var(--p)) calc(18 * var(--p));
  padding-left: calc(56 * var(--p));
  white-space: normal;
  font-size: calc(13.5 * var(--p));
}
#a3 .be__side { gap: calc(9 * var(--p)); padding-top: 0; }
#a3 .be__assumptions {
  margin: 0 0 calc(3 * var(--p));
  padding: calc(11 * var(--p)) calc(13 * var(--p));
}
#a3 .be__assumptions-tag { margin-bottom: calc(7 * var(--p)); }
#a3 .be__assumptions-list {
  grid-template-columns: 1fr;
  gap: calc(5 * var(--p));
}
#a3 .be__assumptions-list li {
  font-size: calc(12.5 * var(--p));
  line-height: 1.3;
}
#a3 .be__assumptions-list b {
  display: inline;
  margin: 0 calc(6 * var(--p)) 0 0;
  font-size: calc(8.75 * var(--p));
}
#a3 .be__side .ap__h { padding-bottom: calc(7 * var(--p)); }
#a3 .be__table {
  width: 100%;
  table-layout: fixed;
}
#a3 .be__table th {
  padding-bottom: calc(7 * var(--p));
  font-size: calc(9.5 * var(--p));
}
#a3 .be__table th:first-child { width: 29%; }
#a3 .be__table td,
#a3 .be__table td:first-child {
  padding: calc(6 * var(--p)) 0;
  white-space: normal;
  font-size: calc(14 * var(--p));
  line-height: 1.25;
}
#a3 .be__table .n { padding-left: calc(7 * var(--p)); }
#a3 .be__note {
  font-size: calc(12.5 * var(--p));
  line-height: 1.35;
}

@media screen and (max-width: 760px),
       screen and (max-height: 520px),
       screen and (orientation: portrait) and (max-width: 1100px) {
  .missing-category { grid-template-columns: 1fr; }
  .missing-category__middle { order: 3; }
  .prod__groups--four,
  .experience-notes,
  .hardware-thesis,
  .platform-principle { grid-template-columns: 1fr; }
  .audio-flow { grid-template-columns: 1fr; padding-top: 0; }
  .audio-flow::before,
  .audio-flow li::before { display: none; }
  .audio-flow li { text-align: left; }
  .hardware-logic { grid-template-columns: 1fr; }
  .platform-map { grid-template-columns: 1fr; }
  .platform-map__arrow { transform: rotate(90deg); justify-self: center; }
  .gtm-questions { flex-direction: column; gap: calc(10 * var(--p)); }
  .team-founders--compact { grid-template-columns: 1fr; }
  .team-founders--compact .member__photo { width: min(100%, 204px); aspect-ratio: 1 / 1; }
  .team-daniel { grid-template-columns: 1fr; }
  .team-daniel .member__photo { width: 148px; height: 148px; aspect-ratio: 1 / 1; }
  #a1 .ap__p,
  #a1 .ap-rows--stack li,
  #a1 .ap-rows--stack b,
  #a1 .ap-rows--stack span { font-size: 15px; }
  #a3 .be { grid-template-columns: 1fr; }
  #a3 .be__svg { height: auto; max-height: none; }
  #a3 .be__key { padding-left: 0; font-size: 13px; }
  #a3 .be__assumptions-list li { font-size: 14px; }
  #a3 .be__assumptions-list b { font-size: 10px; }
}
