@font-face {
  font-family: "Space Grotesk";
  src: url("./assets/space-grotesk-600.ttf") format("truetype");
  font-weight: 600;
  font-display: swap;
}

@font-face {
  font-family: "Space Grotesk";
  src: url("./assets/space-grotesk-700.ttf") format("truetype");
  font-weight: 700;
  font-display: swap;
}

@font-face {
  font-family: "Inter";
  src: url("./assets/inter-400.ttf") format("truetype");
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "Inter";
  src: url("./assets/inter-600.ttf") format("truetype");
  font-weight: 600;
  font-display: swap;
}

:root {
  color-scheme: dark;
  --ink: #0e0e0e;
  --ink-raised: #1e1e1e;
  --paper: #f5f0e8;
  --paper-light: #fffcfa;
  --line: #e3ddd4;
  --signal: #cc5734;
  --signal-bright: #ff6536;
  --milestone: #e4b949;
  --sea: #117595;
  --text-on-dark: #f5f0e8;
  --text-muted-dark: rgba(245, 240, 232, 0.68);
  --text-muted-light: rgba(14, 14, 14, 0.62);
  --ease: cubic-bezier(0.2, 0, 0, 1);
  --slide-pad-x: clamp(30px, 4vw, 76px);
  --slide-pad-y: clamp(28px, 3.5vh, 58px);
}

* { box-sizing: border-box; }

html,
body {
  margin: 0;
  width: 100%;
  min-height: 100%;
  overflow: hidden;
  background: var(--ink);
  font-family: "Inter", Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body.motion-off *,
body.motion-off *::before,
body.motion-off *::after { transition-duration: 1ms !important; animation-duration: 1ms !important; }

button,
textarea { font: inherit; }

button { color: inherit; }

.skip-link {
  position: fixed;
  z-index: 1000;
  top: 12px;
  left: 12px;
  padding: 10px 14px;
  color: var(--ink);
  background: var(--paper);
  transform: translateY(-160%);
}

.skip-link:focus { transform: translateY(0); }

.deck {
  position: relative;
  width: 100vw;
  height: 100vh;
  overflow: hidden;
  background: var(--ink);
}

.slide {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  padding: var(--slide-pad-y) var(--slide-pad-x) clamp(126px, 12.5vh, 154px);
  opacity: 0;
  visibility: hidden;
  transform: translateY(18px);
  transition: opacity 320ms var(--ease), transform 320ms var(--ease), visibility 320ms;
}

body.cues-off .slide { padding-bottom: clamp(78px, 8vh, 108px); }

.slide.is-active {
  z-index: 2;
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.slide[data-appendix] { display: none; }
.slide[data-appendix].is-active { display: grid; }

.slide--paper,
.slide--rfid { color: var(--ink); background: var(--paper); }
.slide--ink,
.slide--architecture,
.slide--appendix { color: var(--text-on-dark); background: var(--ink); }
.slide--signal { color: var(--paper-light); background: var(--signal); }

.slide-header {
  position: relative;
  z-index: 5;
  display: flex;
  justify-content: space-between;
  align-self: start;
  min-height: 30px;
  border-bottom: 1px solid rgba(14, 14, 14, 0.18);
}

.slide-header--dark,
.slide-header--signal { border-color: rgba(245, 240, 232, 0.24); }

.eyebrow,
.slide-number {
  margin: 0 0 13px;
  font-size: clamp(11px, 0.8vw, 16px);
  font-weight: 600;
  letter-spacing: 0.15em;
}

.slide-number { color: var(--text-muted-light); }
.slide-header--dark .slide-number,
.slide-header--signal .slide-number { color: var(--text-muted-dark); }

/* Presentation memory rail */
.slide-cues {
  position: absolute;
  z-index: 12;
  right: var(--slide-pad-x);
  bottom: clamp(72px, 7.6vh, 94px);
  left: var(--slide-pad-x);
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: clamp(12px, 1.4vw, 24px);
  align-items: center;
  min-height: 44px;
  padding-top: 10px;
  color: var(--ink);
  border-top: 1px solid rgba(14,14,14,.23);
}

.slide-cues__title {
  color: var(--signal);
  font-size: 9px;
  font-weight: 600;
  letter-spacing: .14em;
  white-space: nowrap;
}

.slide-cues__items {
  display: flex;
  min-width: 0;
  align-items: center;
  overflow: hidden;
}

.slide-cues__item {
  display: grid;
  flex: 0 1 auto;
  gap: 2px;
  min-width: 0;
  padding: 0 clamp(10px, 1vw, 18px);
}

.slide-cues__item:first-child { padding-left: 0; }
.slide-cues__item + .slide-cues__item { border-left: 1px solid rgba(14,14,14,.16); }
.slide-cues__item em { color: var(--signal); font-size: 8px; font-style: normal; font-weight: 600; letter-spacing: .09em; }
.slide-cues__item strong { overflow: hidden; font-size: clamp(10px, .72vw, 14px); font-weight: 600; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
.slide-cues__action { padding: 8px 0 6px; color: var(--signal); border-bottom: 1px solid currentColor; font-size: 9px; font-weight: 600; letter-spacing: .08em; text-decoration: none; white-space: nowrap; }
.slide-cues__action:focus-visible { outline: 3px solid var(--milestone); outline-offset: 4px; }

.slide--ink .slide-cues,
.slide--photo .slide-cues,
.slide--cover .slide-cues,
.slide--close .slide-cues,
.slide--architecture .slide-cues,
.slide--appendix .slide-cues { color: var(--paper); border-color: rgba(245,240,232,.28); }

.slide--ink .slide-cues__item + .slide-cues__item,
.slide--photo .slide-cues__item + .slide-cues__item,
.slide--cover .slide-cues__item + .slide-cues__item,
.slide--close .slide-cues__item + .slide-cues__item,
.slide--architecture .slide-cues__item + .slide-cues__item,
.slide--appendix .slide-cues__item + .slide-cues__item { border-color: rgba(245,240,232,.18); }

.slide--ink .slide-cues__title,
.slide--ink .slide-cues__item em,
.slide--photo .slide-cues__title,
.slide--photo .slide-cues__item em,
.slide--cover .slide-cues__title,
.slide--cover .slide-cues__item em,
.slide--close .slide-cues__title,
.slide--close .slide-cues__item em,
.slide--architecture .slide-cues__title,
.slide--architecture .slide-cues__item em,
.slide--appendix .slide-cues__title,
.slide--appendix .slide-cues__item em { color: var(--signal-bright); }

.slide--signal .slide-cues { color: var(--paper-light); border-color: rgba(255,252,250,.4); }
.slide--signal .slide-cues__title,
.slide--signal .slide-cues__item em,
.slide--signal .slide-cues__action { color: var(--paper-light); }
.slide--signal .slide-cues__item + .slide-cues__item { border-color: rgba(255,252,250,.25); }
body.cues-off .slide-cues { display: none; }

h1,
h2,
h3,
p { text-wrap: balance; }

h1,
h2,
h3 { font-family: "Space Grotesk", sans-serif; }

[data-fragment] {
  transition: opacity 260ms var(--ease), transform 320ms var(--ease), filter 260ms var(--ease);
}

[data-fragment].fragment-hidden {
  opacity: 0.12;
  transform: translateY(8px);
  filter: saturate(0.2);
}

[data-fragment].fragment-current {
  opacity: 1;
  transform: translateY(0);
  filter: none;
}

/* Cover and close */
.slide--cover,
.slide--close {
  color: var(--text-on-dark);
  grid-template-rows: auto 1fr auto;
  overflow: hidden;
}

.cover-image,
.cover-wash,
.close-wash {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.cover-image {
  object-fit: cover;
  object-position: center 45%;
  filter: saturate(0.76) contrast(1.07);
}

.cover-wash {
  background:
    linear-gradient(90deg, rgba(14, 14, 14, 0.97) 0%, rgba(14, 14, 14, 0.66) 46%, rgba(14, 14, 14, 0.12) 78%),
    linear-gradient(0deg, rgba(14, 14, 14, 0.78), transparent 50%);
}

.brandline,
.cover-copy,
.cover-index,
.close-copy,
.close-line { position: relative; z-index: 1; }

.brandline {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: "Space Grotesk", sans-serif;
  font-size: clamp(12px, 0.95vw, 18px);
  font-weight: 700;
  letter-spacing: 0.09em;
}

.brandline__partner { color: var(--text-muted-dark); }

.cover-copy {
  align-self: end;
  max-width: min(1050px, 76vw);
  padding-bottom: clamp(8px, 2vh, 30px);
}

.cover-copy h1 {
  margin: 0;
  font-size: clamp(64px, 8.1vw, 154px);
  line-height: 0.82;
  letter-spacing: -0.065em;
  text-transform: uppercase;
}

.cover-copy h1 span { color: var(--signal-bright); }

.cover-thesis {
  max-width: 760px;
  margin: clamp(22px, 3vh, 42px) 0 0;
  color: rgba(245, 240, 232, 0.88);
  font-size: clamp(19px, 1.5vw, 29px);
  line-height: 1.36;
}

.cover-index {
  position: absolute;
  right: var(--slide-pad-x);
  bottom: clamp(134px, 15vh, 180px);
  color: rgba(245, 240, 232, 0.38);
  font-family: "Space Grotesk", sans-serif;
  font-size: clamp(68px, 7vw, 136px);
  font-weight: 700;
  letter-spacing: -0.08em;
}

body.cues-off .cover-index { bottom: clamp(82px, 10vh, 120px); }

.close-wash {
  background:
    linear-gradient(90deg, rgba(14,14,14,.94), rgba(14,14,14,.78) 55%, rgba(14,14,14,.34)),
    linear-gradient(0deg, rgba(14,14,14,.9), transparent 52%);
}

.close-copy {
  align-self: center;
  max-width: 1250px;
}

.close-copy h2 {
  max-width: 1180px;
  margin: 0;
  font-size: clamp(55px, 6.2vw, 118px);
  line-height: 0.95;
  letter-spacing: -0.055em;
}

.close-outcomes {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 42px;
}

.close-outcomes span {
  padding: 11px 14px;
  color: var(--ink);
  background: var(--paper);
  font-size: clamp(11px, .72vw, 14px);
  font-weight: 600;
  letter-spacing: .08em;
}

.close-line {
  margin: 0;
  color: var(--milestone);
  font-size: clamp(13px, 1vw, 19px);
  font-weight: 600;
  letter-spacing: .1em;
}

/* Slide 2 */
.understanding {
  display: grid;
  grid-template-columns: minmax(360px, .72fr) minmax(650px, 1.28fr);
  gap: clamp(34px, 4vw, 76px);
  align-items: center;
  min-height: 0;
}

.understanding__statement h2 {
  margin: 0;
  max-width: 680px;
  font-size: clamp(46px, 4.6vw, 88px);
  line-height: .94;
  letter-spacing: -.06em;
}

.understanding__statement h2 span { color: var(--signal); }

.understanding__statement p {
  max-width: 640px;
  margin: clamp(18px, 2.2vh, 30px) 0 0;
  color: var(--text-muted-light);
  font-size: clamp(15px, 1.05vw, 20px);
  line-height: 1.46;
}

.understanding-logic { display: grid; gap: 0; margin-top: clamp(18px,2.2vh,28px); border-top: 1px solid rgba(14,14,14,.18); }
.understanding-logic article { display: grid; grid-template-columns: 88px 1fr; gap: 4px 14px; padding: 11px 0; border-bottom: 1px solid rgba(14,14,14,.14); }
.understanding-logic small { grid-row: 1 / 3; color: var(--signal); font-size: 9px; font-weight: 600; letter-spacing: .1em; }
.understanding-logic strong { font-size: clamp(13px,.9vw,17px); }
.understanding-logic span { color: var(--text-muted-light); font-size: clamp(10px,.69vw,13px); line-height: 1.35; }

.operating-model {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-self: center;
  min-width: 0;
  border: 1px solid rgba(14,14,14,.2);
  background: var(--paper-light);
}

.operating-model__join {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: auto 1.2fr 1fr;
  gap: 16px;
  align-items: center;
  padding: 14px 18px;
  color: var(--paper);
  background: var(--ink);
}
.operating-model__join small { color: var(--signal-bright); font-size: 9px; font-weight: 600; letter-spacing: .1em; }
.operating-model__join strong { font-family: "Space Grotesk",sans-serif; font-size: clamp(13px,.9vw,17px); letter-spacing: .025em; }
.operating-model__join span { color: var(--text-muted-dark); font-size: clamp(9px,.63vw,12px); line-height: 1.35; }

.operating-record {
  position: relative;
  display: grid;
  grid-template-columns: 42px 1fr;
  grid-template-rows: auto auto 1fr auto;
  gap: 4px 12px;
  min-height: clamp(190px,23vh,240px);
  padding: clamp(17px,1.5vw,27px);
  border-bottom: 1px solid rgba(14,14,14,.16);
}
.operating-record:nth-of-type(even) { border-left: 1px solid rgba(14,14,14,.16); }
.operating-record > b { grid-row: 1 / 5; color: rgba(14,14,14,.22); font: 700 clamp(27px,2.2vw,42px)/1 "Space Grotesk",sans-serif; letter-spacing: -.05em; }
.operating-record small { color: var(--signal); font-size: 9px; font-weight: 600; letter-spacing: .11em; }
.operating-record h3 { margin: 3px 0 0; font: 700 clamp(22px,1.6vw,31px)/1 "Space Grotesk",sans-serif; }
.operating-record p { margin: 9px 0 0; color: var(--text-muted-light); font-size: clamp(10px,.7vw,13.5px); line-height: 1.42; }
.operating-record > span { align-self: end; margin-top: 12px; padding-top: 8px; color: var(--signal); border-top: 1px solid rgba(14,14,14,.12); font-size: clamp(9px,.62vw,12px); font-weight: 600; line-height: 1.25; }
.operating-model__outcome { grid-column: 1 / -1; display: grid; grid-template-columns: 190px 1fr; gap: 16px; padding: 13px 18px; color: var(--ink); background: var(--milestone); }
.operating-model__outcome strong { font-size: 9px; letter-spacing: .1em; }
.operating-model__outcome span { font-size: clamp(10px,.7vw,13px); line-height: 1.35; }

/* Questions */
.questions-layout {
  display: grid;
  grid-template-columns: .68fr 1.32fr;
  gap: clamp(34px, 4.4vw, 84px);
  align-items: center;
}

.questions-intro h2,
.ecosystem-copy h2,
.flow-heading h2,
.truth-heading h2,
.phase-heading h2,
.ninety-heading h2,
.risk-heading h2,
.scorecard-heading h2,
.governance-heading h2,
.investment-heading h2,
.stack-heading h2,
.data-model-heading h2,
.permission-heading h2 {
  margin: 0;
  font-size: clamp(50px, 5.4vw, 104px);
  line-height: .94;
  letter-spacing: -.06em;
}

.questions-intro h2 { font-size: clamp(44px,4.55vw,86px); }
.questions-intro h2 span { color: var(--signal-bright); }
.questions-intro p,
.ecosystem-copy p,
.flow-heading p,
.truth-heading p,
.ninety-heading p,
.governance-heading p,
.investment-heading p,
.stack-heading p {
  max-width: 660px;
  margin: 26px 0 0;
  color: var(--text-muted-dark);
  font-size: clamp(17px, 1.25vw, 24px);
  line-height: 1.48;
}

.gap-logic { display: grid; gap: 0; margin-top: 28px; border-top: 1px solid rgba(245,240,232,.2); }
.gap-logic > span { display: grid; grid-template-columns: 74px 1fr; gap: 12px; align-items: start; padding: 12px 0; border-bottom: 1px solid rgba(245,240,232,.16); }
.gap-logic small { color: var(--signal-bright); font-size: 9px; font-weight: 600; letter-spacing: .1em; }
.gap-logic strong { color: var(--text-muted-dark); font-size: clamp(11px,.75vw,14px); line-height: 1.35; }

.question-list { display: grid; border-top: 1px solid rgba(245,240,232,.24); }
.question-list__head,
.question-row {
  display: grid;
  grid-template-columns: 34px 1.05fr 1fr 1fr;
  gap: 15px;
  align-items: center;
  border-bottom: 1px solid rgba(245,240,232,.17);
}
.question-list__head { min-height: 38px; color: var(--text-muted-dark); font-size: 8px; font-weight: 600; letter-spacing: .11em; }
.question-row { min-height: clamp(65px,7.3vh,82px); }
.question-row > b { color: var(--signal-bright); font-size: 11px; }
.question-row strong { font-family: "Space Grotesk",sans-serif; font-size: clamp(15px,1.12vw,21px); line-height: 1.1; }
.question-row > span { color: var(--paper); font-size: clamp(10px,.72vw,13.5px); line-height: 1.32; }
.question-row small { color: var(--text-muted-dark); font-size: clamp(10px,.68vw,13px); line-height: 1.32; }

/* Ecosystem */
.ecosystem {
  display: grid;
  grid-template-columns: .82fr 1.18fr;
  gap: clamp(30px, 3.4vw, 66px);
  align-items: center;
}

.ecosystem-copy h2 { font-size: clamp(45px, 4.45vw, 84px); }
.ecosystem-copy p { color: var(--text-muted-light); }

.relationship-rules { display: grid; margin-top: 24px; border-top: 1px solid rgba(14,14,14,.18); }
.relationship-rules article { display: grid; grid-template-columns: 12px 1fr; gap: 11px; align-items: start; padding: 10px 0; border-bottom: 1px solid rgba(14,14,14,.14); }
.relationship-rules .legend__dot { margin-top: 2px; }
.relationship-rules strong,
.relationship-rules small { display: block; }
.relationship-rules strong { color: var(--signal); font-size: 9px; letter-spacing: .1em; }
.relationship-rules small { margin-top: 4px; color: var(--text-muted-light); font-size: clamp(9.5px,.66vw,12.5px); line-height: 1.35; }

.legend {
  display: grid;
  gap: 10px;
  margin-top: 36px;
  color: var(--text-muted-light);
  font-size: clamp(12px, .85vw, 16px);
}

.legend span { display: flex; gap: 10px; align-items: center; }
.legend__dot { width: 10px; height: 10px; border-radius: 50%; }
.legend__dot--signal { background: var(--signal); }
.legend__dot--ink { background: var(--ink); }
.legend__dot--gold { background: var(--milestone); }

.precinct-map {
  position: relative;
  width: 100%;
  height: min(69vh, 730px);
  min-height: 520px;
  background: var(--paper-light);
  border: 1px solid rgba(14,14,14,.18);
  overflow: hidden;
}

.precinct-map::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: linear-gradient(rgba(14,14,14,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(14,14,14,.06) 1px, transparent 1px);
  background-size: 40px 40px;
}

.map-street {
  position: absolute;
  z-index: 2;
  display: grid;
  place-items: center;
  color: rgba(14,14,14,.5);
  background: var(--line);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .12em;
}

.map-street--horizontal { right: 0; bottom: 20%; left: 0; height: 12%; }
.map-street--vertical { top: 0; bottom: 0; left: 48%; width: 10%; writing-mode: vertical-rl; }

.map-block {
  position: absolute;
  z-index: 3;
  padding: clamp(14px, 1.4vw, 26px);
  background: var(--paper);
  border: 1px solid rgba(14,14,14,.19);
  box-shadow: 0 16px 40px rgba(14,14,14,.08);
}

.map-block::before { content: ""; position: absolute; top: 0; right: 0; left: 0; height: 5px; background: var(--signal); }
.map-block--workspace { top: 8%; left: 5%; width: 36%; height: 28%; }
.map-block--culture { top: 8%; right: 5%; width: 36%; height: 28%; }
.map-block--commerce { bottom: 4%; left: 5%; width: 36%; height: 31%; }
.map-block--tenant { right: 5%; bottom: 4%; width: 36%; height: 31%; }
.map-block--tenant::before { background: var(--ink); }
.map-block--culture::before { background: var(--milestone); }
.map-block small,
.map-block strong,
.map-block span,
.map-block em { display: block; }
.map-block small { color: var(--signal); font-size: 11px; font-weight: 600; letter-spacing: .1em; }
.map-block strong { margin-top: 11px; font-family: "Space Grotesk",sans-serif; font-size: clamp(19px, 1.55vw, 30px); }
.map-block span { margin-top: 8px; color: var(--text-muted-light); font-size: clamp(12px, .9vw, 16px); line-height: 1.4; }
.map-block em { margin-top: 6px; color: var(--signal); font-size: clamp(9px,.62vw,12px); font-style: normal; font-weight: 600; line-height: 1.3; }
.map-block--tenant em { color: var(--text-muted-light); }

.map-person {
  position: absolute;
  z-index: 5;
  padding: 8px 11px;
  color: var(--paper);
  background: var(--ink);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .1em;
}
.map-person--visitor { top: 43%; left: 18%; }
.map-person--staff { top: 46%; right: 18%; background: var(--signal); }
.map-person--finance { right: 7%; bottom: 17%; background: var(--sea); }

/* RFID introduction */
.rfid-intro-layout {
  display: grid;
  grid-template-columns: minmax(360px, .72fr) minmax(690px, 1.28fr);
  gap: clamp(34px, 4.2vw, 82px);
  align-items: center;
  min-height: 0;
}

.rfid-intro-kicker {
  margin: 0 0 18px;
  color: var(--milestone);
  font-size: clamp(10px, .72vw, 14px);
  font-weight: 600;
  letter-spacing: .12em;
  line-height: 1.35;
}

.rfid-intro-definition h2 {
  max-width: 720px;
  margin: 0;
  font-size: clamp(43px, 4.25vw, 82px);
  line-height: .94;
  letter-spacing: -.055em;
}

.rfid-intro-definition > p:not(.rfid-intro-kicker) {
  max-width: 650px;
  margin: 24px 0 0;
  color: var(--text-muted-dark);
  font-size: clamp(15px, 1.06vw, 20px);
  line-height: 1.46;
}

.rfid-intro-reason {
  display: grid;
  grid-template-columns: 92px 1fr;
  gap: 14px;
  margin-top: 28px;
  padding-top: 16px;
  border-top: 1px solid rgba(245,240,232,.22);
}

.rfid-intro-reason small {
  color: var(--signal-bright);
  font-size: 9px;
  font-weight: 600;
  letter-spacing: .11em;
}

.rfid-intro-reason strong {
  color: var(--paper);
  font-size: clamp(12px, .82vw, 16px);
  line-height: 1.4;
}

.rfid-intro-example {
  align-self: center;
  min-width: 0;
  border: 1px solid rgba(245,240,232,.2);
  background: rgba(245,240,232,.035);
}

.rfid-intro-example > header {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 18px;
  color: var(--ink);
  background: var(--milestone);
  font-size: 9px;
  font-weight: 600;
  letter-spacing: .1em;
}

.rfid-intro-flow {
  display: grid;
  grid-template-columns: 1fr 34px 1fr 34px 1fr;
  align-items: stretch;
  padding: clamp(18px, 1.7vw, 30px);
}

.rfid-intro-flow article {
  display: grid;
  grid-template-rows: auto auto auto 1fr;
  min-height: clamp(250px, 31vh, 320px);
  padding: clamp(16px, 1.35vw, 24px);
  border-top: 4px solid var(--signal-bright);
  background: var(--ink-raised);
}

.rfid-intro-flow article:nth-of-type(2) { border-top-color: var(--milestone); }
.rfid-intro-flow article:nth-of-type(3) { border-top-color: var(--sea); }
.rfid-intro-flow article b { color: rgba(245,240,232,.24); font: 700 clamp(30px,2.4vw,46px)/1 "Space Grotesk",sans-serif; letter-spacing: -.05em; }
.rfid-intro-flow article small { margin-top: 12px; color: var(--signal-bright); font-size: 9px; font-weight: 600; letter-spacing: .11em; }
.rfid-intro-flow article:nth-of-type(2) small { color: var(--milestone); }
.rfid-intro-flow article:nth-of-type(3) small { color: #55b6d4; }
.rfid-intro-flow article h3 { margin: 9px 0 0; font: 600 clamp(16px, 1.12vw, 22px)/1.14 "Space Grotesk",sans-serif; }
.rfid-intro-flow article p { align-self: end; margin: 18px 0 0; color: var(--text-muted-dark); font-size: clamp(10px, .69vw, 13px); line-height: 1.42; }

.rfid-intro-flow > i {
  position: relative;
  align-self: center;
  height: 1px;
  background: rgba(245,240,232,.36);
}

.rfid-intro-flow > i::after {
  content: "";
  position: absolute;
  top: -3px;
  right: 0;
  width: 6px;
  height: 6px;
  border-top: 1px solid rgba(245,240,232,.62);
  border-right: 1px solid rgba(245,240,232,.62);
  transform: rotate(45deg);
}

.rfid-intro-boundary {
  display: grid;
  grid-template-columns: auto repeat(4, minmax(0, 1fr));
  gap: 8px;
  align-items: center;
  padding: 13px 18px;
  border-top: 1px solid rgba(245,240,232,.18);
}

.rfid-intro-boundary small { color: var(--signal-bright); font-size: 8px; font-weight: 600; letter-spacing: .1em; white-space: nowrap; }
.rfid-intro-boundary span { padding-left: 8px; color: var(--text-muted-dark); border-left: 1px solid rgba(245,240,232,.2); font-size: clamp(9px, .62vw, 12px); line-height: 1.25; }

/* RFID venue plan */
.rfid-venue-layout {
  display: grid;
  grid-template-columns: minmax(390px, .68fr) minmax(760px, 1.32fr);
  gap: clamp(34px, 3.8vw, 72px);
  align-items: center;
  min-height: 0;
}

.rfid-venue-copy h2 {
  max-width: 700px;
  margin: 0;
  font-size: clamp(40px, 4vw, 76px);
  line-height: .94;
  letter-spacing: -.058em;
}

.rfid-venue-copy > p {
  max-width: 650px;
  margin: 18px 0 0;
  color: var(--text-muted-light);
  font-size: clamp(13px, .9vw, 17px);
  line-height: 1.46;
}

.rfid-venue-phases { margin-top: 18px; border-top: 1px solid rgba(14,14,14,.2); }
.rfid-venue-phases article { display: grid; grid-template-columns: 118px 1fr; gap: 4px 16px; padding: 9px 0; border-bottom: 1px solid rgba(14,14,14,.15); }
.rfid-venue-phases small { grid-row: 1 / 3; color: var(--signal); font-size: 8px; font-weight: 600; letter-spacing: .1em; line-height: 1.35; }
.rfid-venue-phases strong { font-size: clamp(12px,.84vw,16px); line-height: 1.25; }
.rfid-venue-phases span { color: var(--text-muted-light); font-size: clamp(9.5px,.64vw,12.5px); line-height: 1.38; }

.rfid-venue-map { min-width: 0; border: 1px solid rgba(14,14,14,.2); background: var(--paper-light); }
.rfid-venue-map > header { display: flex; justify-content: space-between; gap: 16px; padding: 12px 16px; color: var(--paper); background: var(--ink); font-size: 8px; font-weight: 600; letter-spacing: .1em; }
.rfid-venue-map > header strong { color: var(--milestone); }

.rfid-map-canvas {
  position: relative;
  height: min(48vh, 500px);
  min-height: 420px;
  overflow: hidden;
  background-image: linear-gradient(rgba(14,14,14,.055) 1px, transparent 1px), linear-gradient(90deg, rgba(14,14,14,.055) 1px, transparent 1px);
  background-size: 32px 32px;
}

.rfid-map-street { position: absolute; z-index: 1; display: grid; place-items: center; color: rgba(14,14,14,.42); background: var(--line); font-size: 8px; font-weight: 600; letter-spacing: .12em; }
.rfid-map-street--main { top: 0; bottom: 0; left: 22%; width: 7%; writing-mode: vertical-rl; }
.rfid-map-street--walk { top: 56%; right: 0; left: 0; height: 8%; }

.rfid-map-link { position: absolute; z-index: 2; pointer-events: none; }
.rfid-map-link--gate { top: 46%; left: 18%; width: 16%; border-top: 2px solid var(--signal); }
.rfid-map-link--sarakasi { top: 17%; left: 57%; width: 9%; height: 30%; border-right: 2px solid var(--milestone); border-bottom: 2px solid var(--milestone); }
.rfid-map-link--soma { top: 47%; left: 57%; width: 9%; border-top: 2px solid var(--milestone); }
.rfid-map-link--jikoni { top: 47%; left: 57%; width: 9%; height: 34%; border-right: 2px dashed var(--sea); border-top: 2px dashed var(--sea); }

.rfid-venue-node {
  position: absolute;
  z-index: 3;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(12px,1vw,18px);
  background: var(--paper);
  border: 1px solid rgba(14,14,14,.22);
  box-shadow: 0 10px 24px rgba(14,14,14,.08);
}

.rfid-venue-node::before { content: ""; position: absolute; top: 0; right: 0; left: 0; height: 4px; background: var(--signal); }
.rfid-venue-node > b { position: absolute; top: 10px; right: 10px; display: grid; width: 30px; height: 30px; place-items: center; color: var(--ink); background: var(--milestone); border-radius: 50%; font-size: 9px; letter-spacing: .06em; }
.rfid-venue-node small { max-width: calc(100% - 36px); color: var(--signal); font-size: 7px; font-weight: 600; letter-spacing: .09em; line-height: 1.25; }
.rfid-venue-node strong { margin-top: 6px; font: 700 clamp(14px,1vw,19px)/1.05 "Space Grotesk",sans-serif; }
.rfid-venue-node span { margin-top: 6px; color: var(--text-muted-light); font-size: clamp(8px,.56vw,11px); line-height: 1.32; }
.rfid-venue-node > em { position: absolute; top: 9px; right: 9px; color: var(--text-muted-light); font-size: 7px; font-style: normal; font-weight: 600; letter-spacing: .08em; }

.rfid-venue-node--gate { top: 34%; left: 2%; width: 19%; height: 24%; }
.rfid-venue-node--courtyard { top: 29%; left: 34%; width: 23%; height: 36%; }
.rfid-venue-node--courtyard::before { background: var(--milestone); }
.rfid-venue-node--sarakasi { top: 5%; right: 2%; width: 32%; height: 25%; }
.rfid-venue-node--soma { top: 36%; right: 2%; width: 32%; height: 25%; }
.rfid-venue-node--jikoni { right: 2%; bottom: 5%; width: 32%; height: 26%; }
.rfid-venue-node--art { bottom: 5%; left: 2%; width: 27%; height: 25%; }
.rfid-venue-node--optional { border-style: dashed; }
.rfid-venue-node--optional::before { background: var(--sea); }
.rfid-venue-node--optional > b { color: var(--paper); background: var(--sea); }
.rfid-venue-node--art::before { background: rgba(14,14,14,.34); }
.rfid-venue-node--art small { color: var(--text-muted-light); }

.rfid-read-trail { display: grid; grid-template-columns: 1fr 22px 1fr 22px 1fr; gap: 7px 9px; align-items: center; padding: 12px 16px 13px; color: var(--paper); background: var(--ink); }
.rfid-read-trail > small { grid-column: 1 / -1; color: var(--signal-bright); font-size: 8px; font-weight: 600; letter-spacing: .1em; }
.rfid-read-trail > span { font-size: clamp(8px,.58vw,11px); line-height: 1.25; }
.rfid-read-trail > span b { color: var(--milestone); }
.rfid-read-trail > i { height: 1px; background: rgba(245,240,232,.35); }
.rfid-read-trail > strong { grid-column: 1 / 4; color: var(--paper); font-size: 8px; letter-spacing: .07em; }
.rfid-read-trail > em { grid-column: 4 / -1; color: var(--text-muted-dark); font-size: 8px; font-style: normal; text-align: right; }

/* RFID room and precinct architecture */
.rfid-arch-layout { display: grid; grid-template-rows: auto minmax(0,1fr); gap: 14px; min-height: 0; }
.rfid-arch-heading { display: grid; grid-template-columns: 1.35fr .65fr; gap: clamp(30px,4vw,76px); align-items: end; }
.rfid-arch-heading h2 { max-width: 1050px; margin: 0; font-size: clamp(36px,3.45vw,66px); line-height: .96; letter-spacing: -.05em; }
.rfid-arch-heading p { max-width: 620px; margin: 0; color: var(--text-muted-dark); font-size: clamp(11px,.76vw,14px); line-height: 1.42; }

.rfid-arch-map { min-width: 0; border: 1px solid rgba(245,240,232,.2); background: rgba(245,240,232,.025); }
.rfid-arch-boundary { padding: 7px 13px; color: var(--milestone); background: rgba(245,240,232,.07); border-bottom: 1px solid rgba(245,240,232,.16); font-size: 8px; font-weight: 600; letter-spacing: .11em; }
.rfid-arch-flow { display: grid; grid-template-columns: 1.16fr 40px .92fr 40px 1.24fr 40px .82fr; align-items: stretch; min-height: 300px; padding: 12px; }

.rfid-arch-zone { display: flex; min-width: 0; flex-direction: column; padding: 13px; border: 1px solid rgba(245,240,232,.17); background: rgba(245,240,232,.045); }
.rfid-arch-zone > header { display: grid; grid-template-columns: 25px 1fr; gap: 9px; align-items: start; padding-bottom: 9px; border-bottom: 1px solid rgba(245,240,232,.14); }
.rfid-arch-zone > header > span { color: var(--signal-bright); font: 700 17px/1 "Space Grotesk",sans-serif; }
.rfid-arch-zone > header strong,
.rfid-arch-zone > header small { display: block; }
.rfid-arch-zone > header strong { font-size: 10px; letter-spacing: .075em; }
.rfid-arch-zone > header small { margin-top: 3px; color: var(--text-muted-dark); font-size: 7px; line-height: 1.25; }
.rfid-arch-zone > footer { margin-top: auto; padding-top: 8px; color: var(--text-muted-dark); border-top: 1px solid rgba(245,240,232,.13); font-size: 7px; line-height: 1.3; }

.rfid-arch-tag { display: grid; grid-template-columns: 58px 1fr; gap: 9px; align-items: center; margin-top: 9px; padding: 7px 9px; color: var(--ink); background: var(--milestone); }
.rfid-arch-tag b { font: 700 13px/1 "Space Grotesk",sans-serif; }
.rfid-arch-tag span { font-size: 7px; line-height: 1.2; }
.rfid-arch-door-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; margin: 7px 0 9px; }
.rfid-arch-door-grid article { position: relative; min-height: 61px; padding: 8px; background: rgba(245,240,232,.07); }
.rfid-arch-door-grid i { position: absolute; top: 6px; right: 6px; color: var(--signal-bright); font-size: 7px; font-style: normal; font-weight: 600; }
.rfid-arch-door-grid strong,
.rfid-arch-door-grid small { display: block; }
.rfid-arch-door-grid strong { max-width: calc(100% - 22px); font: 600 9px/1.12 "Space Grotesk",sans-serif; }
.rfid-arch-door-grid small { margin-top: 5px; color: var(--text-muted-dark); font-size: 6.5px; line-height: 1.2; }

.rfid-edge-reader { margin-top: 10px; padding: 12px; border-top: 4px solid var(--signal-bright); background: rgba(245,240,232,.08); }
.rfid-edge-reader b,
.rfid-edge-reader span { display: block; }
.rfid-edge-reader b { font: 600 11px/1.1 "Space Grotesk",sans-serif; }
.rfid-edge-reader span { margin-top: 7px; color: var(--text-muted-dark); font-size: 7px; line-height: 1.3; }
.rfid-edge-service { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; margin-top: 8px; }
.rfid-edge-service strong { grid-column: 1 / -1; color: var(--milestone); font-size: 8px; letter-spacing: .08em; }
.rfid-edge-service span { padding: 7px; color: var(--text-muted-dark); background: rgba(245,240,232,.06); font-size: 7px; }

.rfid-cloud-ingest { display: grid; grid-template-columns: 30px 1fr; gap: 9px; align-items: center; margin-top: 10px; padding: 8px; background: rgba(245,240,232,.08); }
.rfid-cloud-ingest img { width: 28px; height: 28px; object-fit: contain; filter: brightness(0) invert(1); }
.rfid-cloud-ingest strong,
.rfid-cloud-ingest small { display: block; }
.rfid-cloud-ingest strong { font-size: 8px; letter-spacing: .06em; }
.rfid-cloud-ingest small { margin-top: 3px; color: var(--text-muted-dark); font-size: 7px; }
.rfid-cloud-rules { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; margin-top: 7px; }
.rfid-cloud-rules span { padding: 7px; color: var(--text-muted-dark); background: rgba(245,240,232,.055); font-size: 7px; }
.rfid-cloud-stores { display: grid; grid-template-columns: repeat(3,1fr); gap: 5px; margin-top: 7px; }
.rfid-cloud-stores > span { display: grid; justify-items: center; gap: 4px; padding: 6px 3px; text-align: center; border: 1px solid rgba(245,240,232,.12); }
.rfid-cloud-stores img { width: 25px; height: 25px; object-fit: contain; }
.rfid-cloud-stores small { color: var(--text-muted-dark); font-size: 6px; line-height: 1.15; }

.rfid-output-list { display: grid; margin-top: 10px; }
.rfid-output-list span { padding: 7px 0; color: var(--text-muted-dark); border-bottom: 1px solid rgba(245,240,232,.12); font-size: 7.5px; }
.rfid-output-report { display: grid; grid-template-columns: 28px 1fr; gap: 8px; align-items: center; margin-top: auto; padding: 8px; color: var(--ink); background: var(--milestone); }
.rfid-output-report img { width: 26px; height: 26px; object-fit: contain; }
.rfid-output-report strong,
.rfid-output-report small { display: block; }
.rfid-output-report strong { font-size: 8px; letter-spacing: .08em; }
.rfid-output-report small { margin-top: 2px; font-size: 6.5px; line-height: 1.2; }

.rfid-arch-arrow { display: grid; grid-template-rows: 1fr auto 1fr; justify-items: center; align-items: center; }
.rfid-arch-arrow span { align-self: end; color: var(--text-muted-dark); font-size: 6.5px; font-weight: 600; letter-spacing: .07em; text-align: center; }
.rfid-arch-arrow i { position: relative; width: 28px; height: 1px; margin: 7px 0; background: rgba(245,240,232,.34); }
.rfid-arch-arrow i::after { content: ""; position: absolute; top: -3px; right: 0; width: 6px; height: 6px; border-top: 1px solid rgba(245,240,232,.6); border-right: 1px solid rgba(245,240,232,.6); transform: rotate(45deg); }

.rfid-arch-lanes { display: grid; grid-template-columns: 1fr 1fr 1fr; border-top: 1px solid rgba(245,240,232,.17); }
.rfid-arch-lanes article { display: grid; grid-template-columns: 86px 1fr; gap: 3px 10px; padding: 9px 12px; }
.rfid-arch-lanes article + article { border-left: 1px solid rgba(245,240,232,.15); }
.rfid-arch-lanes small { grid-row: 1 / 3; color: var(--signal-bright); font-size: 7px; font-weight: 600; letter-spacing: .08em; }
.rfid-arch-lanes strong { font-size: 8px; line-height: 1.2; }
.rfid-arch-lanes span { color: var(--text-muted-dark); font-size: 6.5px; line-height: 1.25; }

/* Visitor journey */
.slide--photo { color: var(--text-on-dark); background: var(--ink); overflow: hidden; }
.photo-panel,
.photo-panel__wash { position: absolute; inset: 0; width: 100%; height: 100%; }
.photo-panel { object-fit: cover; object-position: center 45%; filter: saturate(.72) contrast(1.08); }
.photo-panel__wash { background: linear-gradient(90deg, rgba(14,14,14,.96) 0 38%, rgba(14,14,14,.72) 62%, rgba(14,14,14,.58)), linear-gradient(0deg, rgba(14,14,14,.9), transparent 44%); }

.journey-stage {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: .58fr 1.42fr;
  gap: 5vw;
  align-items: center;
}

.journey-person { margin: 0 0 20px; color: var(--milestone); font-weight: 600; letter-spacing: .12em; }
.journey-copy h2 { margin: 0; font-size: clamp(54px, 5.8vw, 110px); line-height: .9; letter-spacing: -.065em; }
.journey-copy h2 span { color: var(--signal-bright); }

.journey-rail { position: relative; display: grid; grid-template-columns: repeat(6, 1fr); gap: 8px; padding-top: 80px; }
.journey-line { position: absolute; top: 109px; right: 8%; left: 8%; height: 2px; background: rgba(245,240,232,.3); }
.journey-line::after { content: ""; position: absolute; inset: -2px auto -2px 0; width: var(--journey-progress, 0%); background: var(--signal-bright); transition: width 400ms var(--ease); }
.journey-step { position: relative; min-height: 220px; padding: 64px 14px 20px; background: rgba(14,14,14,.68); border: 1px solid rgba(245,240,232,.18); backdrop-filter: blur(8px); }
.journey-step i { position: absolute; top: 5px; left: 50%; display: grid; place-items: center; width: 52px; height: 52px; color: var(--ink); background: var(--paper); border: 5px solid rgba(14,14,14,.72); border-radius: 50%; font-style: normal; font-weight: 600; transform: translateX(-50%); }
.journey-step.fragment-current i { color: var(--paper); background: var(--signal-bright); }
.journey-step strong,
.journey-step span,
.journey-step small { display: block; }
.journey-step strong { font-family: "Space Grotesk",sans-serif; font-size: clamp(15px, 1vw, 20px); }
.journey-step span { margin-top: 10px; font-size: clamp(14px, .9vw, 17px); }
.journey-step small { margin-top: 22px; color: var(--text-muted-dark); font-size: clamp(11px, .72vw, 14px); line-height: 1.45; }
.identity-thread { position: absolute; right: 0; bottom: 0; display: flex; align-items: center; gap: 22px; padding: 14px 18px; color: var(--ink); background: var(--milestone); }
.identity-thread span { font-size: 11px; font-weight: 600; letter-spacing: .1em; }
.identity-thread strong { font-size: clamp(12px, .8vw, 15px); }

/* Commercial flow */
.flow-layout { display: grid; grid-template-rows: auto 1fr auto; gap: clamp(22px, 3vh, 38px); min-height: 0; padding-top: 4vh; }
.flow-heading { display: grid; grid-template-columns: 1.25fr .75fr; gap: 5vw; align-items: end; }
.flow-heading h2 { font-size: clamp(44px, 4.4vw, 84px); max-width: 1040px; }
.flow-heading p { margin: 0; font-size: clamp(15px, 1vw, 19px); }
.flow-diagram { display: grid; grid-template-columns: 1.9fr .22fr 1fr .22fr 1fr .22fr 1fr; align-items: stretch; min-height: 300px; }
.flow-node { display: flex; flex-direction: column; justify-content: center; padding: clamp(18px, 1.8vw, 34px); background: var(--ink-raised); border-top: 5px solid rgba(245,240,232,.25); }
.flow-node--source { border-color: var(--signal-bright); }
.flow-node--outcome { color: var(--ink); background: var(--milestone); border-color: var(--milestone); }
.flow-node small { color: var(--signal-bright); font-weight: 600; letter-spacing: .12em; }
.flow-node--outcome small { color: rgba(14,14,14,.6); }
.flow-node strong { margin-top: 17px; font-family: "Space Grotesk",sans-serif; font-size: clamp(19px, 1.45vw, 28px); line-height: 1.06; }
.flow-node span { margin-top: 20px; color: var(--text-muted-dark); font-size: clamp(12px, .8vw, 15px); line-height: 1.4; }
.flow-node--outcome span { color: rgba(14,14,14,.66); }
.export-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 9px 16px; margin: 18px 0 0; padding: 0; list-style: none; }
.export-fields li { display: grid; grid-template-columns: 24px 1fr; gap: 8px; align-items: start; min-width: 0; padding-top: 8px; border-top: 1px solid rgba(245,240,232,.17); }
.export-fields b { color: var(--signal-bright); font-size: 9px; letter-spacing: .08em; }
.export-fields span { margin: 0; color: var(--paper); font-size: clamp(10px,.68vw,13px); line-height: 1.25; }
.flow-edge { position: relative; display: grid; place-items: center; }
.flow-edge::before { content: ""; position: absolute; right: 10%; left: 10%; height: 1px; background: rgba(245,240,232,.4); }
.flow-edge::after { content: ""; position: absolute; right: 8%; width: 8px; height: 8px; border-top: 1px solid var(--paper); border-right: 1px solid var(--paper); transform: rotate(45deg); }
.flow-edge span { z-index: 1; padding: 6px 8px; color: var(--text-muted-dark); background: var(--ink); font-size: 9px; font-weight: 600; letter-spacing: .1em; transform: rotate(-90deg); }
.flow-footnote { padding: 15px 18px; color: var(--text-muted-dark); border-left: 4px solid var(--signal-bright); font-size: clamp(13px, .88vw, 17px); }
.flow-footnote strong { color: var(--paper); }

/* Truth */
.truth-layout { display: grid; grid-template-columns: .68fr 1.32fr; gap: 5vw; align-items: center; }
.truth-heading h2 { font-size: clamp(50px, 5vw, 96px); }
.truth-heading p { color: var(--text-muted-light); }
.evidence-lanes { display: grid; gap: 14px; }
.evidence { display: grid; grid-template-columns: 72px 1fr 170px; gap: 22px; align-items: center; min-height: clamp(145px, 18vh, 190px); padding: 20px 24px; background: var(--paper-light); border-left: 7px solid var(--ink); box-shadow: 0 12px 34px rgba(14,14,14,.07); }
.evidence--observed { border-color: var(--signal); }
.evidence--inferred { border-color: var(--milestone); }
.evidence--unknown { border-color: #77736c; }
.evidence__number { color: rgba(14,14,14,.24); font-family: "Space Grotesk",sans-serif; font-size: 42px; font-weight: 700; }
.evidence p { margin: 0; color: var(--signal); font-size: 11px; font-weight: 600; letter-spacing: .12em; }
.evidence h3 { margin: 8px 0 0; font-size: clamp(18px, 1.4vw, 27px); }
.evidence ul { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 12px 0 0; padding: 0; color: var(--text-muted-light); list-style: none; font-size: clamp(11px, .75vw, 14px); }
.evidence ul li::before { content: "+"; margin-right: 5px; color: var(--signal); }
.confidence { justify-self: end; padding: 8px 10px; font-size: 10px; letter-spacing: .1em; border: 1px solid rgba(14,14,14,.22); }

/* Architecture */
.slide--architecture {
  grid-template-rows: auto auto minmax(0, 1fr);
  background: radial-gradient(circle at 85% 10%, rgba(204,87,52,.14), transparent 31%), var(--ink);
}
.architecture-heading { display: flex; justify-content: space-between; align-items: end; padding: 3vh 0 2vh; }
.architecture-heading h2 { max-width: 1080px; margin: 0; font-size: clamp(40px, 4.1vw, 78px); line-height: .95; letter-spacing: -.055em; }
.architecture-actions { display: grid; justify-items: end; gap: 8px; padding-bottom: 1px; }
.architecture-actions > span { color: var(--text-muted-dark); font-size: 11px; letter-spacing: .06em; }
.text-button { padding: 0 0 5px; color: var(--signal); background: none; border: 0; border-bottom: 1px solid currentColor; cursor: pointer; font-size: 13px; font-weight: 600; }
.text-button--light { color: var(--paper); }
.text-button:focus-visible { outline: 3px solid var(--milestone); outline-offset: 4px; }
.architecture-map { position: relative; display: grid; grid-template-rows: minmax(0,1fr) auto auto; gap: 8px; min-height: 0; padding: 22px 18px 14px; border: 1px solid rgba(245,240,232,.2); }
.architecture-boundary { position: absolute; top: -10px; left: 20px; padding: 2px 9px; color: var(--milestone); background: var(--ink); font-size: 10px; font-weight: 600; letter-spacing: .12em; }
.architecture-flow { display: grid; grid-template-columns: 1.05fr 32px 1.35fr 32px 1.22fr 32px .95fr; min-height: 0; }
.architecture-zone { display: flex; flex-direction: column; min-width: 0; padding: 11px; background: var(--ink-raised); border: 1px solid rgba(245,240,232,.17); }
.architecture-zone > header { display: grid; grid-template-columns: 24px 1fr; gap: 7px; align-items: start; min-height: 48px; padding-bottom: 8px; border-bottom: 1px solid rgba(245,240,232,.13); }
.architecture-zone > header > span { display: grid; place-items: center; width: 23px; height: 23px; color: var(--ink); background: var(--milestone); font-size: 9px; font-weight: 600; }
.architecture-zone > header div { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
.architecture-zone > header strong { font-family: "Space Grotesk",sans-serif; font-size: clamp(11px,.74vw,14px); line-height: 1.05; letter-spacing: .035em; }
.architecture-zone > header small { color: var(--text-muted-dark); font-size: clamp(9px,.58vw,11px); line-height: 1.2; }
.architecture-zone--platform { border-top: 4px solid var(--signal-bright); }
.architecture-zone--records { border-top: 4px solid var(--milestone); }
.architecture-zone--insight { border-top: 4px solid var(--sea); }
.architecture-app-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; margin-top: 8px; }
.architecture-app-grid article { min-height: 59px; padding: 8px; color: var(--ink); background: var(--paper); border-left: 3px solid var(--signal); }
.architecture-app-grid strong { display: block; font-size: clamp(9.5px,.65vw,12.5px); letter-spacing: .025em; }
.architecture-app-grid small { display: block; margin-top: 5px; color: rgba(14,14,14,.64); font-size: clamp(8.5px,.53vw,10.5px); line-height: 1.25; }
.architecture-tech { display: flex; align-items: center; gap: 5px; margin-top: auto; padding-top: 8px; }
.architecture-tech img,
.architecture-api img,
.architecture-insight-flow img,
.architecture-observe > img,
.architecture-foundation img { width: 27px; height: 27px; padding: 4px; object-fit: contain; background: var(--paper-light); border-radius: 4px; }
.architecture-tech span { margin-left: 3px; color: var(--text-muted-dark); font-size: clamp(8.5px,.54vw,10.5px); line-height: 1.25; }
.architecture-api { display: flex; align-items: center; gap: 9px; margin-top: 8px; padding: 9px; color: var(--ink); background: var(--signal-bright); }
.architecture-api img { width: 31px; height: 31px; }
.architecture-api div { display: flex; flex-direction: column; gap: 2px; }
.architecture-api strong { font-size: clamp(10.5px,.72vw,14px); letter-spacing: .04em; }
.architecture-api small { font-size: clamp(8.5px,.54vw,10.5px); font-weight: 600; }
.architecture-domain-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 5px; margin-top: 6px; }
.architecture-domain-grid span { display: grid; place-items: center; min-height: 41px; padding: 5px; text-align: center; color: var(--text-muted-dark); border: 1px solid rgba(245,240,232,.15); font-size: clamp(9px,.58vw,11px); line-height: 1.15; }
.architecture-domain-grid span:last-child { grid-column: 1 / -1; min-height: 34px; }
.architecture-service-list { display: grid; gap: 5px; margin-top: 8px; }
.architecture-service-list article { display: grid; grid-template-columns: 59px 1fr; gap: 7px; align-items: center; min-height: 59px; padding: 5px 6px; border: 1px solid rgba(245,240,232,.14); }
.architecture-logos { display: flex; align-items: center; }
.architecture-logos img { width: 32px; height: 32px; padding: 3px; object-fit: contain; background: var(--paper-light); border-radius: 4px; }
.architecture-logos img + img { margin-left: -5px; transform: translateY(7px); box-shadow: 0 0 0 2px var(--ink-raised); }
.architecture-service-list p,
.architecture-insight-flow p { margin: 0; }
.architecture-service-list strong,
.architecture-insight-flow strong,
.architecture-observe strong { display: block; font-size: clamp(9px,.6vw,11.5px); letter-spacing: .03em; }
.architecture-service-list small,
.architecture-insight-flow small,
.architecture-observe small { display: block; margin-top: 3px; color: var(--text-muted-dark); font-size: clamp(8.3px,.52vw,10px); line-height: 1.2; }
.architecture-insight-flow { display: grid; gap: 5px; margin-top: 8px; }
.architecture-insight-flow article { display: grid; grid-template-columns: 35px 1fr; gap: 8px; align-items: center; padding: 8px; border: 1px solid rgba(245,240,232,.14); }
.architecture-insight-flow > i { justify-self: center; width: 1px; height: 10px; background: rgba(245,240,232,.38); }
.architecture-insight-flow > i::after { content: ""; display: block; width: 6px; height: 6px; margin: 5px 0 0 -3px; border-right: 1px solid var(--paper); border-bottom: 1px solid var(--paper); transform: rotate(45deg); }
.architecture-observe { display: flex; align-items: center; gap: 5px; margin-top: auto; padding-top: 8px; border-top: 1px solid rgba(245,240,232,.13); }
.architecture-observe span { margin-left: 2px; }
.architecture-arrow { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; }
.architecture-arrow span { color: var(--text-muted-dark); font-size: 7px; font-weight: 600; letter-spacing: .08em; writing-mode: vertical-rl; transform: rotate(180deg); }
.architecture-arrow i { position: relative; width: 19px; height: 1px; background: rgba(245,240,232,.38); }
.architecture-arrow i::after { content: ""; position: absolute; top: -3px; right: 0; width: 6px; height: 6px; border-top: 1px solid var(--paper); border-right: 1px solid var(--paper); transform: rotate(45deg); }
.architecture-adapters { display: grid; grid-template-columns: 184px 1fr; align-items: center; min-height: 58px; padding: 7px 10px; border: 1px dashed rgba(245,240,232,.28); }
.architecture-adapters header { display: flex; flex-direction: column; gap: 3px; }
.architecture-adapters header strong { color: var(--signal-bright); font-size: 10px; letter-spacing: .09em; }
.architecture-adapters header small { color: var(--text-muted-dark); font-size: 8.5px; }
.architecture-adapters > div { display: grid; grid-template-columns: repeat(7,1fr); gap: 5px; }
.architecture-adapters > div span { display: flex; align-items: center; gap: 5px; color: var(--text-muted-dark); font-size: clamp(7.5px,.49vw,9.5px); font-weight: 600; line-height: 1.1; }
.architecture-adapters i { display: grid; place-items: center; flex: 0 0 25px; width: 25px; height: 25px; color: var(--ink); background: var(--paper); font-size: 8px; font-style: normal; }
.architecture-foundation { display: grid; grid-template-columns: minmax(245px,1.35fr) repeat(3,1fr); gap: 8px; align-items: center; min-height: 55px; padding: 7px 10px; color: var(--ink); background: var(--paper); }
.architecture-foundation__title { display: flex; flex-direction: column; gap: 3px; }
.architecture-foundation__title strong { font-size: 10px; letter-spacing: .09em; }
.architecture-foundation__title small { color: rgba(14,14,14,.6); font-size: 9px; }
.architecture-foundation > div:not(.architecture-foundation__title) { display: flex; align-items: center; gap: 7px; border-left: 1px solid rgba(14,14,14,.15); padding-left: 8px; }
.architecture-foundation img { width: 31px; height: 31px; padding: 3px; background: #fff; }
.architecture-foundation span { display: flex; flex-direction: column; gap: 2px; }
.architecture-foundation span strong { font-size: 9px; letter-spacing: .05em; }
.architecture-foundation span small { color: rgba(14,14,14,.6); font-size: 8.5px; }

/* Phases */
.slide-header--signal .slide-number { color: rgba(255,252,250,.68); }
.phase-heading { display: flex; align-items: center; }
.phase-heading h2 { max-width: 1450px; font-size: clamp(43px, 4.5vw, 86px); }
.phase-rail { display: grid; grid-template-columns: .7fr 1fr .58fr 1.15fr; gap: 3px; align-self: end; min-height: 48vh; background: rgba(255,252,250,.25); border: 1px solid rgba(255,252,250,.4); }
.phase { position: relative; display: flex; flex-direction: column; padding: clamp(20px, 2vw, 36px); color: var(--paper-light); background: var(--signal); }
.phase + .phase { border-left: 1px solid rgba(255,252,250,.35); }
.phase small { opacity: .75; font-weight: 600; letter-spacing: .1em; }
.phase > span { margin-top: auto; font-size: 12px; font-weight: 600; letter-spacing: .12em; }
.phase h3 { margin: 12px 0 0; font-size: clamp(25px, 2.1vw, 40px); line-height: 1; }
.phase p { min-height: 90px; margin: 20px 0 0; color: rgba(255,252,250,.78); font-size: clamp(13px, .92vw, 17px); line-height: 1.45; }
.phase strong { margin-top: 20px; padding-top: 14px; border-top: 1px solid rgba(255,252,250,.35); font-size: 10px; letter-spacing: .11em; }
.phase--one { background: #a34128; }
.phase--stabilise { color: var(--ink); background: var(--milestone); }
.phase--stabilise p { color: rgba(14,14,14,.66); }
.phase--stabilise strong { border-color: rgba(14,14,14,.28); }
.phase--two { color: var(--paper); background: var(--ink); }

/* Phase 1 scope */
.scope-layout {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: clamp(16px, 2.2vh, 26px);
  min-height: 0;
  padding-top: clamp(18px, 2.6vh, 32px);
}

.scope-heading {
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 5vw;
  align-items: end;
}

.scope-heading h2 {
  max-width: 1050px;
  margin: 0;
  font-size: clamp(44px, 4.7vw, 90px);
  line-height: .94;
  letter-spacing: -.06em;
}

.scope-heading p {
  max-width: 600px;
  margin: 0;
  color: var(--text-muted-light);
  font-size: clamp(14px, 1vw, 19px);
  line-height: 1.48;
}

.scope-lanes {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  min-height: 0;
  border-top: 1px solid rgba(14,14,14,.2);
  border-bottom: 1px solid rgba(14,14,14,.2);
}

.scope-lanes section {
  display: flex;
  min-width: 0;
  flex-direction: column;
  padding: clamp(16px, 1.7vw, 30px);
}

.scope-lanes section + section { border-left: 1px solid rgba(14,14,14,.17); }
.scope-lanes section > span { color: rgba(14,14,14,.25); font-family: "Space Grotesk",sans-serif; font-size: clamp(30px, 3vw, 56px); font-weight: 700; letter-spacing: -.05em; }
.scope-lanes small { margin-top: auto; color: var(--signal); font-size: 9px; font-weight: 600; letter-spacing: .12em; }
.scope-lanes h3 { margin: 10px 0 0; font-size: clamp(21px, 1.6vw, 31px); line-height: 1; }
.scope-lanes ul { display: grid; gap: 8px; margin: 18px 0 0; padding: 0; color: var(--text-muted-light); list-style: none; font-size: clamp(11px, .76vw, 14px); line-height: 1.3; }
.scope-lanes li { padding-top: 7px; border-top: 1px solid rgba(14,14,14,.12); }

.scope-boundary {
  display: grid;
  grid-template-columns: auto 1fr auto 1.25fr;
  gap: 14px;
  align-items: center;
  padding: 13px 16px;
  color: var(--paper);
  background: var(--ink);
}

.scope-boundary strong { color: var(--milestone); font-size: 9px; letter-spacing: .1em; white-space: nowrap; }
.scope-boundary span { color: var(--text-muted-dark); font-size: clamp(10px, .72vw, 14px); }

/* QR to RFID */
.rfid-layout {
  display: grid;
  grid-template-rows: auto auto 1fr;
  gap: clamp(12px, 1.8vh, 20px);
  min-height: 0;
  padding-top: clamp(14px, 2.2vh, 24px);
}
.rfid-heading {
  display: grid;
  grid-template-columns: 1.35fr .65fr;
  gap: 4vw;
  align-items: end;
}
.rfid-heading h2 {
  margin: 0;
  max-width: 1150px;
  font-size: clamp(36px, 3.55vw, 68px);
  line-height: .94;
  letter-spacing: -.055em;
}
.rfid-heading h2 span { color: var(--signal); }
.rfid-heading p {
  margin: 0;
  color: var(--text-muted-light);
  font-size: clamp(13px, .9vw, 17px);
  line-height: 1.5;
}
.rfid-compare {
  display: grid;
  grid-template-columns: 1fr 78px 1fr;
  gap: 12px;
  min-height: 0;
}
.capture-card {
  display: grid;
  grid-template-columns: .72fr 1.28fr;
  grid-template-rows: auto auto 1fr;
  gap: 8px 22px;
  padding: clamp(15px, 1.5vw, 24px);
  background: var(--paper-light);
  border: 1px solid rgba(14,14,14,.15);
  box-shadow: 0 10px 24px rgba(14,14,14,.05);
}
.capture-card--qr { border-top: 5px solid var(--signal); }
.capture-card--rfid { color: var(--paper); background: var(--ink); border-color: var(--ink); border-top: 5px solid var(--milestone); }
.capture-card header {
  display: flex;
  flex-direction: column;
  grid-row: 1 / -1;
  padding-right: 20px;
  border-right: 1px solid rgba(14,14,14,.15);
}
.capture-card--rfid header { border-color: rgba(245,240,232,.18); }
.capture-card header span {
  color: var(--signal);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .12em;
}
.capture-card--rfid header span { color: var(--milestone); }
.capture-card header strong {
  margin-top: auto;
  font: 700 clamp(32px, 3vw, 56px)/.9 "Space Grotesk",sans-serif;
  letter-spacing: -.055em;
}
.capture-card h3 {
  margin: 0;
  font-size: clamp(20px, 1.6vw, 30px);
  line-height: 1;
}
.capture-card ul {
  display: flex;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.capture-card li {
  flex: 1;
  padding-top: 8px;
  color: var(--text-muted-light);
  border-top: 1px solid rgba(14,14,14,.13);
  font-size: clamp(11px, .72vw, 14px);
  line-height: 1.35;
}
.capture-card--rfid li { color: var(--text-muted-dark); border-color: rgba(245,240,232,.16); }
.capture-limit {
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 10px;
  align-items: start;
  padding-top: 8px;
  border-top: 1px solid rgba(14,14,14,.13);
}
.capture-card--rfid .capture-limit { border-color: rgba(245,240,232,.16); }
.capture-limit strong {
  color: var(--signal);
  font-size: 9px;
  letter-spacing: .1em;
}
.capture-card--rfid .capture-limit strong { color: var(--milestone); }
.capture-limit span {
  color: var(--text-muted-light);
  font-size: clamp(10px, .67vw, 13px);
  line-height: 1.38;
}
.capture-card--rfid .capture-limit span { color: var(--text-muted-dark); }
.capture-shift,
.rfid-pipe {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 0;
}
.capture-shift span,
.rfid-pipe span {
  color: var(--signal);
  font-size: 8px;
  font-weight: 600;
  letter-spacing: .12em;
}
.capture-shift i,
.rfid-pipe i {
  position: relative;
  display: block;
  width: 74%;
  height: 1px;
  margin-top: 8px;
  background: rgba(14,14,14,.32);
}
.capture-shift i::after,
.rfid-pipe i::after {
  content: "";
  position: absolute;
  right: 0;
  top: -4px;
  width: 7px;
  height: 7px;
  border-top: 1px solid rgba(14,14,14,.58);
  border-right: 1px solid rgba(14,14,14,.58);
  transform: rotate(45deg);
}
.rfid-system {
  display: grid;
  grid-template-columns: .8fr 80px 1.65fr 80px 1fr;
  gap: 10px;
  min-height: 0;
  padding: 10px;
  color: var(--paper);
  background: #171717;
  border-bottom: 5px solid var(--signal);
}
.rfid-enrol,
.rfid-insight,
.rfid-zones {
  min-width: 0;
  padding: clamp(12px, 1.2vw, 20px);
  border: 1px solid rgba(245,240,232,.18);
}
.rfid-enrol,
.rfid-insight { display: flex; flex-direction: column; }
.rfid-enrol small,
.rfid-insight > small,
.rfid-zones header small {
  color: var(--signal-bright);
  font-size: 9px;
  font-weight: 600;
  letter-spacing: .1em;
}
.rfid-enrol > strong,
.rfid-insight > strong,
.rfid-zones header strong {
  margin-top: 7px;
  font: 600 clamp(15px, 1.1vw, 21px)/1 "Space Grotesk",sans-serif;
}
.rfid-enrol > span {
  margin-top: 12px;
  color: var(--text-muted-dark);
  font-size: clamp(11px, .75vw, 14px);
}
.rfid-enrol b,
.rfid-insight > b {
  margin-top: auto;
  padding-top: 10px;
  color: var(--milestone);
  border-top: 1px solid rgba(245,240,232,.15);
  font-size: 9px;
  letter-spacing: .07em;
}
.rfid-pipe span { color: var(--text-muted-dark); font-size: 7px; }
.rfid-pipe i { background: rgba(245,240,232,.32); }
.rfid-pipe i::after { border-color: rgba(245,240,232,.58); }
.rfid-zones { display: grid; grid-template-rows: auto 1fr auto; gap: 9px; }
.rfid-zones header { display: flex; justify-content: space-between; align-items: end; gap: 10px; }
.rfid-zones header strong { margin: 0; }
.rfid-zone-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 5px; }
.rfid-zone-grid > span {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  padding: 8px;
  background: rgba(245,240,232,.07);
  font-size: clamp(8px, .55vw, 11px);
  font-weight: 600;
}
.rfid-zone-grid i {
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  margin-bottom: 7px;
  color: var(--ink);
  background: var(--milestone);
  border-radius: 50%;
  font-size: 8px;
  font-style: normal;
}
.rfid-zone-grid small { margin-top: 3px; color: var(--text-muted-dark); font-size: 7px; font-weight: 400; }
.rfid-zones footer {
  display: grid;
  grid-template-columns: 90px 1fr;
  gap: 8px;
  padding-top: 8px;
  border-top: 1px solid rgba(245,240,232,.15);
}
.rfid-zones footer b { color: var(--signal-bright); font-size: 8px; letter-spacing: .08em; }
.rfid-zones footer span { color: var(--text-muted-dark); font-size: 8px; line-height: 1.35; }
.rfid-insight > div { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; margin: 12px 0; }
.rfid-insight > div span { padding: 7px; color: var(--text-muted-dark); background: rgba(245,240,232,.07); font-size: 8px; }

/* 90 days */
.ninety-layout { display: grid; grid-template-columns: .65fr 1.35fr; gap: 5vw; align-items: center; }
.ninety-heading h2 { font-size: clamp(47px, 4.8vw, 92px); }
.ninety-heading p { color: var(--text-muted-light); }
.week-track { display: grid; grid-template-columns: repeat(2,1fr); gap: 12px; }
.week-block { display: flex; flex-direction: column; min-height: clamp(235px, 29vh, 300px); padding: clamp(20px, 2vw, 34px); background: var(--paper-light); border-top: 5px solid var(--ink); box-shadow: 0 12px 30px rgba(14,14,14,.06); }
.week-block--definition { border-color: var(--signal); }
.week-block--launch { border-color: var(--milestone); }
.week-block > span { color: var(--signal); font-size: 11px; font-weight: 600; letter-spacing: .11em; }
.week-block h3 { margin: 16px 0 0; font-size: clamp(24px, 1.8vw, 35px); }
.week-block p { margin: 14px 0 0; color: var(--text-muted-light); font-size: clamp(13px, .86vw, 16px); line-height: 1.45; }
.week-block small { margin-top: auto; padding-top: 14px; border-top: 1px solid rgba(14,14,14,.15); font-size: 9px; font-weight: 600; letter-spacing: .1em; }

/* Risks */
.risk-layout { display: grid; grid-template-columns: .6fr 1.4fr; gap: 5vw; align-items: center; }
.risk-heading h2 { font-size: clamp(49px, 5vw, 96px); }
.risk-table { border-top: 1px solid rgba(245,240,232,.24); }
.risk-row { display: grid; grid-template-columns: .85fr 1.15fr 150px; gap: 20px; align-items: center; min-height: clamp(72px, 9vh, 96px); border-bottom: 1px solid rgba(245,240,232,.16); }
.risk-row--header { min-height: 42px; color: var(--text-muted-dark); font-size: 10px; letter-spacing: .12em; }
.risk-row strong { font-family: "Space Grotesk",sans-serif; font-size: clamp(16px, 1.25vw, 24px); }
.risk-row span { color: var(--text-muted-dark); font-size: clamp(13px, .9vw, 17px); line-height: 1.38; }
.risk-row small { color: var(--signal-bright); font-weight: 600; letter-spacing: .08em; }

/* Scorecard */
.scorecard-layout { display: grid; grid-template-rows: auto 1fr; gap: 3vh; padding-top: 3vh; }
.scorecard-heading h2 { max-width: 1280px; font-size: clamp(48px, 4.9vw, 94px); }
.scorecard-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; min-height: 0; }
.score-group { display: grid; grid-template-columns: 1fr 1fr; gap: 0 22px; padding: clamp(20px, 2vw, 34px); background: var(--paper-light); border-top: 6px solid var(--ink); }
.score-group--baseline { border-color: var(--signal); }
.score-group header { grid-column: 1 / -1; display: flex; justify-content: space-between; margin-bottom: 12px; padding-bottom: 12px; border-bottom: 1px solid rgba(14,14,14,.16); }
.score-group header span { font-size: 11px; font-weight: 600; letter-spacing: .1em; }
.score-group header strong { color: var(--signal); }
.metric { display: flex; flex-direction: column; justify-content: center; min-height: clamp(105px, 14vh, 150px); border-bottom: 1px solid rgba(14,14,14,.12); }
.metric b { color: var(--signal); font-family: "Space Grotesk",sans-serif; font-size: clamp(34px, 3vw, 58px); letter-spacing: -.05em; }
.metric span { max-width: 28ch; margin-top: 8px; color: var(--text-muted-light); font-size: clamp(12px, .82vw, 15px); line-height: 1.35; }

/* Governance */
.governance-layout { display: grid; grid-template-columns: .68fr 1.32fr; gap: 5vw; align-items: center; }
.governance-heading h2 { font-size: clamp(48px, 4.8vw, 92px); }
.governance-heading p { color: var(--text-muted-light); }
.governance-map { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }
.person-card { min-height: 170px; padding: 22px; color: var(--paper); background: var(--ink); border-top: 5px solid var(--signal); }
.person-card--uap { color: var(--ink); background: var(--milestone); border-color: var(--milestone); }
.person-card small,
.person-card strong,
.person-card span { display: block; }
.person-card small { color: var(--signal-bright); font-size: 9px; font-weight: 600; letter-spacing: .1em; }
.person-card--uap small { color: rgba(14,14,14,.58); }
.person-card strong { margin-top: 20px; font-family: "Space Grotesk",sans-serif; font-size: clamp(20px, 1.45vw, 28px); }
.person-card span { margin-top: 12px; color: var(--text-muted-dark); font-size: clamp(11px,.76vw,14px); }
.person-card--uap span { color: rgba(14,14,14,.62); }
.sprint-loop { grid-column: 1 / -1; display: grid; grid-template-columns: auto 1fr auto 1fr auto 1fr auto; align-items: center; min-height: 150px; padding: 24px; background: var(--paper-light); border: 1px solid rgba(14,14,14,.16); }
.sprint-loop span { font-family: "Space Grotesk",sans-serif; font-size: clamp(14px, 1vw, 19px); font-weight: 600; }
.sprint-loop i { height: 1px; margin: 0 16px; background: rgba(14,14,14,.3); }
.sprint-loop i::after { content: ""; display: block; width: 7px; height: 7px; margin: -4px 0 0 auto; border-top: 1px solid var(--ink); border-right: 1px solid var(--ink); transform: rotate(45deg); }
.sprint-loop strong { grid-column: 1 / -1; margin-top: 26px; color: var(--signal); font-size: 11px; letter-spacing: .11em; }
.ownership-strip { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4,1fr); background: var(--signal); }
.ownership-strip span { padding: 13px 10px; color: var(--paper); text-align: center; font-size: 9px; font-weight: 600; letter-spacing: .08em; border-right: 1px solid rgba(255,255,255,.3); }

/* Investment */
.investment-layout { display: grid; grid-template-rows: auto 1fr auto; gap: 3vh; padding-top: 3vh; }
.investment-heading { display: grid; grid-template-columns: 1.2fr .8fr; gap: 5vw; align-items: end; }
.investment-heading h2 { font-size: clamp(43px, 4.3vw, 82px); }
.investment-heading p { margin: 0; color: var(--text-muted-light); font-size: clamp(13px,.92vw,17px); }
.investment-figures { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }
.investment-card { display: flex; flex-direction: column; min-height: clamp(300px, 39vh, 390px); padding: clamp(22px,2.2vw,40px); background: var(--paper-light); border-top: 6px solid var(--ink); }
.investment-card--signal { color: var(--paper); background: var(--signal); border-color: var(--signal); }
.investment-card--ownership { color: var(--paper); background: var(--ink); border-color: var(--milestone); }
.investment-card small { color: var(--signal); font-weight: 600; letter-spacing: .12em; }
.investment-card--signal small,
.investment-card--ownership small { color: var(--milestone); }
.investment-card strong { margin-top: 32px; font-family: "Space Grotesk",sans-serif; font-size: clamp(48px, 4.1vw, 78px); letter-spacing: -.06em; }
.investment-card span { margin-top: 24px; color: var(--text-muted-light); font-size: clamp(13px,.9vw,17px); line-height: 1.45; }
.investment-card--signal span,
.investment-card--ownership span { color: var(--text-muted-dark); }
.investment-card b { margin-top: auto; padding-top: 16px; border-top: 1px solid rgba(14,14,14,.17); font-size: 11px; letter-spacing: .1em; }
.investment-card--signal b,
.investment-card--ownership b { border-color: rgba(245,240,232,.24); }
.investment-footnote { color: var(--text-muted-light); font-size: 12px; }

/* Appendix */
.stack-layout,
.data-model-layout,
.permission-layout { display: grid; grid-template-rows: auto 1fr auto; gap: 3vh; padding-top: 3vh; min-height: 0; }
.stack-heading { display: grid; grid-template-columns: 1.2fr .8fr; gap: 4vw; align-items: end; }
.stack-heading h2,
.data-model-heading h2,
.permission-heading h2 { font-size: clamp(40px, 4vw, 76px); }
.stack-heading p { margin: 0; font-size: clamp(13px,.9vw,17px); }
.stack-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; min-height: 0; }
.stack-group { padding: clamp(18px,1.7vw,30px); background: var(--ink-raised); border-top: 4px solid var(--signal-bright); }
.stack-group > p { margin: 0 0 18px; color: var(--signal-bright); font-size: 10px; font-weight: 600; letter-spacing: .12em; }
.tech { display: flex; align-items: center; gap: 16px; min-height: 78px; border-top: 1px solid rgba(245,240,232,.13); }
.tech img {
  width: 38px;
  height: 38px;
  padding: 5px;
  object-fit: contain;
  background: var(--paper-light);
  border-radius: 5px;
}
.tech span,
.tech strong,
.tech small { display: block; }
.tech strong { font-family: "Space Grotesk",sans-serif; font-size: clamp(16px,1.1vw,21px); }
.tech small { margin-top: 4px; color: var(--text-muted-dark); font-size: 11px; }
.aws-strip { display: flex; justify-content: space-between; padding: 13px 15px; color: var(--ink); background: var(--milestone); font-size: 10px; letter-spacing: .08em; }
.entity-map { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; align-content: center; }
.entity { min-height: 160px; padding: 22px; background: var(--ink-raised); border-top: 4px solid rgba(245,240,232,.26); }
.entity--profile { grid-column: 2 / 4; color: var(--ink); background: var(--milestone); border-color: var(--milestone); }
.entity small,
.entity strong,
.entity span { display: block; }
.entity small { color: var(--signal-bright); font-size: 9px; font-weight: 600; letter-spacing: .1em; }
.entity--profile small { color: rgba(14,14,14,.57); }
.entity strong { margin-top: 16px; font-family: "Space Grotesk",sans-serif; font-size: clamp(18px,1.35vw,26px); }
.entity span { margin-top: 12px; color: var(--text-muted-dark); font-size: 12px; line-height: 1.4; }
.entity--profile span { color: rgba(14,14,14,.62); }
.permission-table { align-self: center; border-top: 1px solid rgba(245,240,232,.24); }
.permission-row { display: grid; grid-template-columns: 1.1fr repeat(4,1fr); gap: 12px; align-items: center; min-height: clamp(68px,9vh,92px); border-bottom: 1px solid rgba(245,240,232,.16); }
.permission-row--head { min-height: 42px; color: var(--text-muted-dark); font-size: 10px; letter-spacing: .1em; }
.permission-row strong { color: var(--signal-bright); font-family: "Space Grotesk",sans-serif; font-size: clamp(15px,1.05vw,20px); }
.permission-row span { color: var(--text-muted-dark); font-size: clamp(12px,.82vw,15px); }
.audit-rule { margin: 0; padding: 13px 16px; color: var(--ink); background: var(--milestone); font-weight: 600; }

/* Controls */
.deck-nav {
  position: fixed;
  z-index: 30;
  right: clamp(22px, 2.6vw, 48px);
  bottom: clamp(16px, 2.2vh, 32px);
  left: clamp(22px, 2.6vw, 48px);
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--text-on-dark);
  mix-blend-mode: difference;
}

.progress-stack { flex: 1; display: grid; grid-template-rows: 3px auto; gap: 7px; min-width: 0; align-self: center; }

.nav-button {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  color: inherit;
  background: transparent;
  border: 1px solid currentColor;
  border-radius: 50%;
  cursor: pointer;
  transition: transform 120ms var(--ease), background-color 120ms var(--ease), color 120ms var(--ease);
}
.nav-button:hover { color: var(--ink); background: var(--paper); }
.nav-button:active { transform: scale(.96); }
.nav-button:focus-visible { outline: 3px solid var(--signal-bright); outline-offset: 3px; }
.nav-button--grid { font-size: 17px; }
.progress { height: 1px; background: rgba(255,255,255,.32); }
.progress__fill { display: block; width: 6.25%; height: 3px; margin-top: -1px; background: currentColor; transition: width 280ms var(--ease); }
.progress-takeaway { overflow: hidden; margin: 0; opacity: .62; font-size: clamp(9px,.64vw,12px); font-weight: 500; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.progress-label { display: flex; gap: 4px; min-width: 62px; margin: 0; font-size: 13px; font-weight: 600; }
.progress-label__total { opacity: .52; }

.overview,
.help {
  position: fixed;
  z-index: 60;
  inset: 4vh 4vw;
  display: grid;
  grid-template-rows: auto 1fr auto;
  padding: 28px;
  color: var(--paper);
  background: rgba(14,14,14,.97);
  border: 1px solid rgba(245,240,232,.24);
  opacity: 0;
  visibility: hidden;
  transform: scale(.98);
  transition: opacity 180ms var(--ease), transform 180ms var(--ease), visibility 180ms;
}
.overview.is-open,
.help.is-open { opacity: 1; visibility: visible; transform: scale(1); }
.overview header,
.help header,
.overview footer { display: flex; justify-content: space-between; align-items: center; }
.overview header span,
.help header span { font-size: 11px; font-weight: 600; letter-spacing: .12em; }
.overview header button,
.help header button { width: 42px; height: 42px; color: var(--paper); background: none; border: 1px solid rgba(245,240,232,.3); border-radius: 50%; cursor: pointer; font-size: 22px; }
.overview-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 10px; align-content: center; overflow: auto; padding: 20px 0; }
.overview-item { min-height: 105px; padding: 14px; color: var(--paper); text-align: left; background: var(--ink-raised); border: 1px solid rgba(245,240,232,.16); cursor: pointer; }
.overview-item.is-current { border-color: var(--signal-bright); }
.overview-item span { display: block; color: var(--signal-bright); font-size: 10px; }
.overview-item strong { display: block; margin-top: 12px; font-family: "Space Grotesk",sans-serif; font-size: 16px; }
.overview footer { color: var(--text-muted-dark); font-size: 12px; }
.overview footer div { display: flex; gap: 22px; }
.overview footer a { color: var(--milestone); }
.help { inset: 50% auto auto 50%; width: min(680px,90vw); height: auto; transform: translate(-50%,-50%) scale(.98); }
.help.is-open { transform: translate(-50%,-50%) scale(1); }
.help dl { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; margin: 22px 0 0; }
.help dl div { display: grid; grid-template-columns: 100px 1fr; gap: 10px; padding: 13px 0; border-top: 1px solid rgba(245,240,232,.14); }
.help dt { color: var(--milestone); font-weight: 600; }
.help dd { margin: 0; color: var(--text-muted-dark); }
.blackout { position: fixed; z-index: 100; inset: 0; display: grid; place-items: end center; padding: 30px; color: #333; background: #000; opacity: 0; visibility: hidden; }
.blackout.is-open { opacity: 1; visibility: visible; }
.blackout span { font-size: 11px; }

@media (max-width: 1100px) {
  .understanding,
  .questions-layout,
  .ecosystem,
  .truth-layout,
  .ninety-layout,
  .risk-layout,
  .governance-layout { grid-template-columns: 1fr; gap: 28px; }
  .precinct-map { min-height: 390px; height: 48vh; }
  .rfid-intro-layout { grid-template-columns: minmax(0,.65fr) minmax(0,1.35fr); gap: 28px; }
  .rfid-intro-definition h2 { font-size: clamp(38px,4.7vw,58px); }
  .rfid-intro-flow { grid-template-columns: 1fr 24px 1fr 24px 1fr; padding: 16px; }
  .rfid-intro-flow article { min-height: 240px; padding: 15px; }
  .rfid-intro-boundary { grid-template-columns: 1fr 1fr; }
  .rfid-intro-boundary small { grid-column: 1 / -1; }
  .rfid-venue-layout { grid-template-columns: minmax(0,.62fr) minmax(0,1.38fr); gap: 28px; }
  .rfid-venue-copy h2 { font-size: clamp(37px,4.7vw,56px); }
  .rfid-venue-phases article { grid-template-columns: 92px 1fr; gap: 4px 11px; }
  .rfid-map-canvas { min-height: 390px; }
  .rfid-arch-heading { grid-template-columns: 1.2fr .8fr; gap: 24px; }
  .rfid-arch-map { overflow-x: auto; }
  .rfid-arch-boundary,
  .rfid-arch-flow,
  .rfid-arch-lanes { min-width: 1120px; }
  .journey-stage { grid-template-columns: 1fr; }
  .journey-copy h2 { font-size: clamp(42px, 7vw, 72px); }
  .flow-heading,
  .investment-heading,
  .stack-heading { grid-template-columns: 1fr; gap: 18px; }
  .flow-diagram { min-height: 250px; }
  .architecture-heading h2 { font-size: clamp(36px,5.3vw,62px); }
  .architecture-map { overflow-x: auto; }
  .architecture-flow,
  .architecture-adapters,
  .architecture-foundation { min-width: 1120px; }
  .rfid-heading { grid-template-columns: 1fr; gap: 12px; }
  .rfid-heading p { max-width: 760px; }
  .rfid-system { grid-template-columns: .8fr 48px 1.65fr 48px 1fr; }
  .risk-heading h2 { font-size: clamp(40px, 6vw, 70px); }
  .scope-heading { grid-template-columns: 1fr; gap: 12px; }
  .scope-lanes { grid-template-columns: repeat(2,1fr); }
  .scope-lanes section:nth-child(3) { border-left: 0; border-top: 1px solid rgba(14,14,14,.17); }
  .scope-lanes section:nth-child(4) { border-top: 1px solid rgba(14,14,14,.17); }
  .slide-cues__title { display: none; }
}

@media (max-width: 760px) {
  html,
  body { overflow: auto; }
  .deck { height: 100dvh; }
  .slide { padding: 22px 20px 148px; overflow: auto; }
  body.cues-off .slide { padding-bottom: 88px; }
  .brandline__partner,
  .cover-index { display: none; }
  .cover-copy { max-width: 100%; }
  .cover-copy h1 { font-size: clamp(48px, 15vw, 78px); }
  .cover-thesis { font-size: 17px; }
  .understanding__statement h2,
  .questions-intro h2,
  .ecosystem-copy h2,
  .truth-heading h2,
  .phase-heading h2,
  .ninety-heading h2,
  .risk-heading h2,
  .scorecard-heading h2,
  .governance-heading h2,
  .investment-heading h2 { font-size: clamp(38px, 10vw, 58px); }
  .understanding { padding-top: 20px; }
  .understanding-logic article { grid-template-columns: 74px 1fr; }
  .operating-model { grid-template-columns: 1fr; }
  .operating-model__join { grid-template-columns: 1fr; gap: 6px; }
  .operating-record { min-height: 180px; }
  .operating-record:nth-of-type(even) { border-left: 0; }
  .operating-model__outcome { grid-template-columns: 1fr; gap: 6px; }
  .questions-layout { padding-top: 20px; }
  .question-list__head { display: none; }
  .question-row { grid-template-columns: 30px 1fr; gap: 5px 10px; padding: 12px 0; }
  .question-row > b { grid-row: 1 / 4; }
  .question-row > span,
  .question-row small { grid-column: 2; }
  .relationship-rules { margin-top: 18px; }
  .precinct-map { min-height: 430px; }
  .rfid-intro-layout { grid-template-columns: 1fr; padding-top: 20px; }
  .rfid-intro-definition h2 { font-size: clamp(38px,10vw,56px); }
  .rfid-intro-reason { grid-template-columns: 74px 1fr; }
  .rfid-intro-flow { grid-template-columns: 1fr; gap: 0; }
  .rfid-intro-flow article { min-height: 215px; }
  .rfid-intro-flow > i { justify-self: center; width: 1px; height: 28px; }
  .rfid-intro-flow > i::after { top: auto; right: -3px; bottom: 0; transform: rotate(135deg); }
  .rfid-intro-boundary { grid-template-columns: 1fr 1fr; }
  .rfid-venue-layout { grid-template-columns: 1fr; padding-top: 20px; }
  .rfid-venue-copy h2 { font-size: clamp(38px,10vw,56px); }
  .rfid-venue-phases article { grid-template-columns: 92px 1fr; }
  .rfid-venue-map { overflow-x: auto; }
  .rfid-venue-map > header,
  .rfid-map-canvas,
  .rfid-read-trail { min-width: 760px; }
  .rfid-arch-heading { grid-template-columns: 1fr; padding-top: 20px; }
  .rfid-arch-heading h2 { font-size: clamp(36px,9vw,54px); }
  .rfid-arch-boundary,
  .rfid-arch-flow,
  .rfid-arch-lanes { min-width: 1120px; }
  .journey-rail { grid-template-columns: 1fr; padding-top: 0; }
  .journey-line { display: none; }
  .journey-step { min-height: 85px; padding: 18px 18px 18px 74px; }
  .journey-step i { top: 16px; left: 36px; transform: none; }
  .journey-step small { margin-top: 5px; }
  .identity-thread { position: static; margin-top: 10px; }
  .flow-diagram { grid-template-columns: 1fr; gap: 7px; }
  .export-fields { grid-template-columns: 1fr; }
  .flow-edge { min-height: 36px; }
  .flow-edge::before { top: 4px; bottom: 4px; left: 50%; width: 1px; height: auto; }
  .flow-edge::after { right: auto; bottom: 4px; left: calc(50% - 4px); transform: rotate(135deg); }
  .flow-edge span { transform: none; }
  .evidence { grid-template-columns: 45px 1fr; }
  .confidence { grid-column: 2; justify-self: start; }
  .architecture-heading { flex-direction: column; align-items: start; gap: 16px; }
  .architecture-actions { justify-items: start; }
  .architecture-map { padding-right: 16px; overflow: auto; }
  .rfid-layout { display: block; }
  .rfid-heading { margin: 20px 0; }
  .rfid-compare { grid-template-columns: 1fr; }
  .capture-card { min-height: 255px; }
  .capture-shift { min-height: 52px; }
  .capture-shift i { width: 1px; height: 28px; }
  .capture-shift i::after { right: -3px; top: auto; bottom: 0; transform: rotate(135deg); }
  .rfid-system { grid-template-columns: 1fr; min-width: 760px; margin-top: 16px; }
  .rfid-pipe { min-height: 38px; }
  .rfid-pipe i { width: 1px; height: 22px; }
  .rfid-pipe i::after { right: -3px; top: auto; bottom: 0; transform: rotate(135deg); }
  .phase-rail,
  .scorecard-grid,
  .investment-figures,
  .stack-grid,
  .week-track,
  .phase-rail { overflow: auto; }
  .phase { min-height: 230px; }
  .risk-row { grid-template-columns: 1fr; gap: 5px; padding: 14px 0; }
  .risk-row--header { display: none; }
  .score-group { grid-template-columns: 1fr; }
  .governance-map { grid-template-columns: 1fr; }
  .sprint-loop,
  .ownership-strip { grid-column: 1; }
  .ownership-strip { grid-template-columns: 1fr 1fr; }
  .overview-grid { grid-template-columns: 1fr 1fr; }
  .entity-map { grid-template-columns: 1fr 1fr; }
  .entity--profile { grid-column: 1 / -1; }
  .permission-row { grid-template-columns: 1fr; padding: 14px 0; }
  .permission-row--head { display: none; }
  .scope-lanes { grid-template-columns: 1fr; }
  .scope-lanes section + section { border-left: 0; border-top: 1px solid rgba(14,14,14,.17); }
  .scope-boundary { grid-template-columns: 1fr; gap: 6px; }
  .slide-cues { right: 20px; bottom: 72px; left: 20px; grid-template-columns: minmax(0,1fr) auto; gap: 10px; }
  .slide-cues__items { overflow-x: auto; }
  .slide-cues__item { flex: 0 0 auto; }
  .slide-cues__action { font-size: 8px; }
  .progress-takeaway { font-size: 8px; }
}

@media print {
  html,
  body { overflow: visible; background: white; }
  .deck { width: auto; height: auto; overflow: visible; }
  .slide,
  .slide[data-appendix] { position: relative; display: grid; width: 13.333in; height: 7.5in; page-break-after: always; opacity: 1; visibility: visible; transform: none; overflow: hidden; }
  [data-fragment] { opacity: 1 !important; transform: none !important; filter: none !important; }
  .deck-nav,
  .overview,
  .help,
  .blackout { display: none !important; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 1ms !important; animation-duration: 1ms !important; animation-iteration-count: 1 !important; }
}
