/* =========================================================
   Nestor Exchange — SAFE Round Pitch Deck v5.3
   Design tokens + components + responsive slide template
   Brand: nestor-brand-guidelines L3 (Vignelli + Eames register)
   Visual remediation 2026-05-13:
     - Palette rebalance — working slides FAFAFA, hero slides 0E423E
     - Hex glyph discipline — top:32px right:32px, 36px square
     - Typography hierarchy — stat numerals at 2.5× body weight
     - 4px Mindaro left-accent bar standardised on all card plates
     - Eyebrows 10pt letter-spacing 0.12em
     - Cover radial pattern visibility (lighter veil)
   ========================================================= */

/* ---------- 1. FONT FACES (local, sovereign) ------------ */
@font-face {
  font-family: 'Familjen Grotesk';
  src: url('../fonts/familjen-grotesk/FamiljenGrotesk-Regular.ttf') format('truetype');
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: 'Familjen Grotesk';
  src: url('../fonts/familjen-grotesk/FamiljenGrotesk-SemiBold.ttf') format('truetype');
  font-weight: 600;
  font-display: swap;
}
@font-face {
  font-family: 'Familjen Grotesk';
  src: url('../fonts/familjen-grotesk/FamiljenGrotesk-Bold.ttf') format('truetype');
  font-weight: 700;
  font-display: swap;
}
@font-face {
  font-family: 'Source Sans 3';
  src: url('../fonts/source-sans-3/SourceSans3-Regular.ttf') format('truetype');
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: 'Source Sans 3';
  src: url('../fonts/source-sans-3/SourceSans3-SemiBold.ttf') format('truetype');
  font-weight: 600;
  font-display: swap;
}
@font-face {
  font-family: 'Source Sans 3';
  src: url('../fonts/source-sans-3/SourceSans3-Bold.ttf') format('truetype');
  font-weight: 700;
  font-display: swap;
}

/* ---------- 2. DESIGN TOKENS ---------------------------- */
:root {
  /* Palette — LIGHTER VARIANT, dark green as ACCENT */
  --c-white-pure: #FFFFFF;
  --c-white-snow: #FAFAFA;
  --c-green-soft: #F0F7F6;
  --c-green-tea:  #CEEDB2;
  --c-green-jungle: #0E423E;   /* accent — small areas only, except cover + closing */
  --c-mindaro:  #E9FC8C;       /* highlights — strictly <=5-10% of each slide */
  --c-charcoal: #131818;       /* body text on light */
  --c-gray-muted: #6B7280;     /* page numbers, labels */
  --c-border:   #E5E7EB;       /* card borders */

  /* Typography */
  --f-head: 'Familjen Grotesk', Arial, sans-serif;
  --f-body: 'Source Sans 3', Calibri, sans-serif;

  /* Type scale — fluid */
  --t-display: clamp(2.2rem, 5vw, 4.2rem);
  --t-h1:      clamp(1.7rem, 3.5vw, 2.6rem);
  --t-h2:      clamp(1.3rem, 2.2vw, 1.7rem);
  --t-body:    clamp(0.95rem, 1.2vw, 1.05rem);
  --t-small:   0.82rem;
  --t-micro:   0.7rem;
  /* Stat numeral — reduced 2026-05-13 (Principal feedback: overlap at 1024–1440px).
     Was clamp(3.2rem, 6.2vw, 5.4rem) — peaked ~86px and collided with adjacent body.
     Now peaks ~58px, hero peaks ~80px. Hierarchy preserved, collision resolved. */
  --t-stat:    clamp(2.4rem, 4.2vw, 3.6rem);

  /* Spacing — 8pt grid */
  --s-1: 0.5rem;
  --s-2: 1rem;
  --s-3: 1.5rem;
  --s-4: 2rem;
  --s-5: 3rem;
  --s-6: 4rem;
  --s-7: 6rem;

  /* Slide */
  --slide-max-w: 1440px;
  --slide-pad-x: clamp(1.5rem, 5vw, 5rem);
  --slide-pad-y: clamp(2rem, 5vh, 4rem);
}

/* ---------- 3. RESET + GLOBAL --------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html, body {
  margin: 0; padding: 0;
  font-family: var(--f-body);
  font-size: 16px;
  line-height: 1.5;
  color: var(--c-charcoal);
  background: var(--c-white-snow);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
h1, h2, h3, h4 {
  font-family: var(--f-head);
  font-weight: 700;
  color: var(--c-green-jungle);
  margin: 0 0 var(--s-3);
  line-height: 1.15;
  letter-spacing: -0.01em;
}
p { margin: 0 0 var(--s-2); }
a { color: var(--c-green-jungle); text-decoration: underline; text-underline-offset: 3px; }
a:hover { text-decoration-thickness: 2px; }
strong { font-weight: 700; }
em { font-style: italic; }
table { width: 100%; border-collapse: collapse; }
th, td { text-align: left; padding: var(--s-2); vertical-align: top; }
img, svg { max-width: 100%; height: auto; display: block; }

/* ---------- 4. SLIDE TEMPLATE --------------------------- */
.deck {
  scroll-snap-type: y mandatory;
  overflow-y: scroll;
  height: 100vh;
}
@media (prefers-reduced-motion: reduce) {
  .deck { scroll-behavior: auto; }
}
.slide {
  scroll-snap-align: start;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  position: relative;
  padding: var(--slide-pad-y) var(--slide-pad-x);
  background: var(--c-white-pure);
  overflow: hidden;
}
.slide--snow      { background: var(--c-white-snow); }
.slide--green-soft { background: var(--c-green-soft); }
.slide--dark      { background: var(--c-green-jungle); color: var(--c-white-snow); }
.slide--dark h1, .slide--dark h2, .slide--dark h3 { color: var(--c-mindaro); }
.slide--dark a { color: var(--c-mindaro); }

/* Slide header chrome — hex glyph discipline locked at 32px / 36px square */
.slide__logomark {
  position: absolute;
  top: 32px;
  right: 32px;
  width: 36px;
  height: 36px;
  opacity: 0.85;
}
.slide--dark .slide__logomark { opacity: 1; }

.slide__page-num {
  position: absolute;
  bottom: var(--s-3);
  right: var(--s-3);
  font-family: var(--f-head);
  font-size: var(--t-small);
  font-weight: 600;
  color: var(--c-gray-muted);
  letter-spacing: 0.08em;
}
.slide--dark .slide__page-num { color: var(--c-mindaro); opacity: 0.7; }

.slide__sideline {
  position: absolute;
  top: 50%;
  right: var(--s-1);
  transform: translateY(-50%) rotate(90deg);
  transform-origin: right center;
  font-family: var(--f-head);
  font-size: var(--t-micro);
  letter-spacing: 0.4em;
  color: var(--c-gray-muted);
  opacity: 0.4;
  text-transform: uppercase;
  white-space: nowrap;
  pointer-events: none;
}
.slide--dark .slide__sideline { color: var(--c-white-snow); opacity: 0.3; }

.slide__footer {
  position: absolute;
  bottom: var(--s-2);
  left: var(--slide-pad-x);
  right: calc(var(--slide-pad-x) + 40px);
  font-family: var(--f-body);
  font-size: var(--t-micro);
  color: var(--c-gray-muted);
  opacity: 0.6;
  line-height: 1.3;
}
.slide--dark .slide__footer { color: var(--c-white-snow); opacity: 0.5; }

/* Slide content container */
.slide__content {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  max-width: var(--slide-max-w);
  width: 100%;
  margin: 0 auto;
  padding-bottom: var(--s-5); /* room for footer */
}

.slide__eyebrow {
  font-family: var(--f-head);
  font-size: 10pt;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--c-green-jungle);
  margin-bottom: var(--s-2);
}
.slide--dark .slide__eyebrow { color: var(--c-mindaro); }

.slide__headline {
  font-size: var(--t-h1);
  margin-bottom: var(--s-4);
}
.slide__subhead {
  font-family: var(--f-body);
  font-style: italic;
  font-size: var(--t-h2);
  color: var(--c-green-jungle);
  margin-bottom: var(--s-4);
}
.slide--dark .slide__subhead { color: var(--c-mindaro); }

/* ---------- 5. COVER + CLOSING (anchor moments) --------- */
.slide--cover, .slide--closing {
  background-color: var(--c-green-jungle);
  background-image: url('../patterns/nestor-exchange-pattern-green.svg');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: var(--c-white-snow);
  text-align: center;
  justify-content: center;
  align-items: center;
}
.slide--cover::before, .slide--closing::before {
  /* Light veil — pattern stays visible (board brainstorm §3 cover fix) */
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(14,66,62,0.22) 0%, rgba(14,66,62,0.35) 100%);
  pointer-events: none;
}
.slide--cover > *, .slide--closing > * { position: relative; z-index: 1; }
.slide--cover .slide__logomark, .slide--closing .slide__logomark { display: none; }
.slide--cover .slide__sideline, .slide--cover .slide__page-num,
.slide--closing .slide__sideline { display: none; }

.cover__wordmark {
  /* Wordmark ~55% of cover width per board brainstorm §3 */
  width: clamp(360px, 55vw, 760px);
  margin: 0 auto var(--s-4);
}
.cover__tricolon {
  font-family: var(--f-head);
  font-weight: 700;
  font-size: clamp(2.8rem, 8vw, 6rem);
  color: var(--c-mindaro);
  letter-spacing: -0.02em;
  line-height: 1;
  margin: 0 0 var(--s-3);
}
.cover__subline {
  font-family: var(--f-body);
  font-style: italic;
  font-size: clamp(1.05rem, 1.8vw, 1.4rem);
  color: var(--c-white-snow);
  max-width: 720px;
  margin: 0 auto var(--s-5);
}
.cover__eyebrow {
  font-family: var(--f-head);
  font-size: var(--t-small);
  font-weight: 600;
  letter-spacing: 0.4em;
  text-transform: uppercase;
  color: var(--c-mindaro);
  margin-bottom: var(--s-4);
}
.cover__corner {
  position: absolute;
  bottom: var(--s-3);
  right: var(--s-4);
  font-family: var(--f-body);
  font-size: var(--t-small);
  color: var(--c-white-snow);
  opacity: 0.6;
  z-index: 2;
}

/* ---------- 6. COMPONENTS ------------------------------- */

/* Stat panel — large Mindaro numeral + caption */
.stat-panel {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: var(--s-3);
}
.stat {
  background: var(--c-green-jungle);
  color: var(--c-white-snow);
  /* Minimum --s-3 padding all round; extra left for 4px accent bar */
  padding: var(--s-3) var(--s-3) var(--s-3) calc(var(--s-3) + 4px);
  border-radius: 2px;
  display: flex;
  flex-direction: column;
  gap: var(--s-2); /* ≥16px breathing room between numeral and caption */
  position: relative;
  border-left: 4px solid var(--c-mindaro); /* legacy v4 accent-bar discipline */
}
.stat__num {
  font-family: var(--f-head);
  font-weight: 700;
  /* Reduced 2026-05-13 — see --t-stat token note. Hierarchy preserved via weight + colour, not raw size. */
  font-size: var(--t-stat);
  color: var(--c-mindaro);
  line-height: 1.05; /* was 0.95 — gives baseline clearance to adjacent caption */
  letter-spacing: -0.03em;
  margin-bottom: 4px; /* explicit baseline-to-caption breathing room */
}
.stat__cap {
  font-family: var(--f-body);
  font-size: var(--t-small);
  color: var(--c-white-snow);
  opacity: 0.85;
  line-height: 1.45;
}
/* Hero stat — single, very large, centred on its plate */
.stat--hero {
  text-align: center;
  align-items: center;
  padding: var(--s-5) var(--s-4);
  gap: var(--s-3); /* extra room on hero plates (slide 08 EUR 575M) */
}
.stat--hero .stat__num {
  /* Reduced 2026-05-13 — was clamp(4rem, 9vw, 7.2rem) (peaked ~115px and overran plate at 1024px).
     Now peaks ~80px — still clearly the dominant stat on its slide. */
  font-size: clamp(2.8rem, 6vw, 5rem);
  line-height: 1.05;
  margin-bottom: var(--s-1);
}

/* Card with border + standardised 4px Mindaro left-accent bar (v4 discipline) */
.card {
  background: var(--c-white-pure);
  border: 1px solid var(--c-border);
  border-left: 4px solid var(--c-mindaro);
  padding: var(--s-3) var(--s-3) var(--s-3) var(--s-3);
  border-radius: 2px;
}
.card--callout {
  background: var(--c-green-soft);
  border-color: var(--c-green-tea);
  border-left-color: var(--c-mindaro);
}
.card--dark {
  background: var(--c-green-jungle);
  color: var(--c-white-snow);
  border-color: var(--c-green-jungle);
  border-left-color: var(--c-mindaro);
}
.card--dark h3, .card--dark h4 { color: var(--c-mindaro); }
/* Accent-bar opt-out for plain card-like containers */
.card--noaccent { border-left: 1px solid var(--c-border); }

/* Accent bar list — left accent in Mindaro */
.accent-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
}
.accent-list__item {
  position: relative;
  padding: var(--s-2) var(--s-3) var(--s-2) var(--s-4);
  background: var(--c-green-jungle);
  color: var(--c-white-snow);
}
.accent-list__item::before {
  content: '';
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 4px;
  background: var(--c-mindaro);
}
.accent-list__item h4 {
  color: var(--c-mindaro);
  margin: 0 0 var(--s-1);
  font-size: var(--t-h2);
}
.accent-list__item ul { margin: 0; padding-left: var(--s-3); }
.accent-list__item li { margin-bottom: var(--s-1); font-size: var(--t-body); }

/* Pills */
.pill {
  display: inline-block;
  padding: 2px 10px;
  font-family: var(--f-head);
  font-size: var(--t-micro);
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  border-radius: 999px;
}
.pill--mindaro { background: var(--c-mindaro); color: var(--c-green-jungle); }
.pill--green   { background: var(--c-green-jungle); color: var(--c-mindaro); }
.pill--ghost   { background: transparent; color: var(--c-green-jungle); border: 1px solid var(--c-green-jungle); }

/* Two-column / multi-column grids */
.grid-2 {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s-4);
}
.grid-3 {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s-3);
}
.grid-4 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--s-3);
}
@media (min-width: 768px) {
  .grid-2 { grid-template-columns: 1fr 1fr; }
  .grid-3 { grid-template-columns: repeat(3, 1fr); }
  .grid-4 { grid-template-columns: repeat(4, 1fr); }
}

/* Hex portrait */
.hex {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--s-1);
}
.hex__img-wrap {
  width: clamp(120px, 14vw, 180px);
  aspect-ratio: 1 / 1.155;
  clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
  overflow: hidden;
  background: var(--c-green-jungle);
  position: relative;
}
.hex--lg .hex__img-wrap { width: clamp(160px, 18vw, 240px); }
.hex__img-wrap img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center top;
}
/* Empty hex — used when a verified portrait is not available (2026-05-13: Tsvi Guy) */
.hex__img-wrap--empty {
  background: transparent;
  border: 2px solid var(--c-green-jungle);
  /* Inner outline echoing the hex silhouette via clip-path remains crisp */
}
.slide--dark .hex__img-wrap--empty {
  border-color: var(--c-mindaro);
  background: rgba(233, 252, 140, 0.06);
}
.hex__name {
  font-family: var(--f-head);
  font-weight: 700;
  font-size: var(--t-h2);
  color: var(--c-mindaro);
  margin-top: var(--s-2);
}
.slide:not(.slide--dark) .hex__name { color: var(--c-green-jungle); }
.hex__role {
  font-family: var(--f-body);
  font-size: var(--t-small);
  color: var(--c-white-snow);
  opacity: 0.85;
}
.slide:not(.slide--dark) .hex__role { color: var(--c-charcoal); }
.hex__bio {
  font-family: var(--f-body);
  font-size: var(--t-small);
  color: var(--c-white-snow);
  opacity: 0.7;
  max-width: 240px;
}
.slide:not(.slide--dark) .hex__bio { color: var(--c-gray-muted); opacity: 1; }
.hex__rule {
  width: 30px;
  height: 1px;
  background: var(--c-mindaro);
  margin: var(--s-1) 0;
}

/* Tables — institutional restraint */
.table--clean {
  font-family: var(--f-body);
  font-size: var(--t-small);
  border-top: 1px solid var(--c-border);
}
.table--clean th, .table--clean td {
  padding: var(--s-2);
  border-bottom: 1px solid var(--c-border);
  vertical-align: top;
}
.table--clean th {
  font-family: var(--f-head);
  font-weight: 600;
  color: var(--c-green-jungle);
  font-size: var(--t-small);
  background: var(--c-green-soft);
}
.slide--dark .table--clean { border-color: rgba(255,255,255,0.15); }
.slide--dark .table--clean th, .slide--dark .table--clean td { border-color: rgba(255,255,255,0.1); color: var(--c-white-snow); }
.slide--dark .table--clean th { background: rgba(233,252,140,0.08); color: var(--c-mindaro); }

/* Pull quote */
.pullquote {
  font-family: var(--f-body);
  font-size: clamp(1.1rem, 1.8vw, 1.4rem);
  font-style: italic;
  line-height: 1.45;
  padding: var(--s-3) 0;
  border-top: 1px solid var(--c-mindaro);
  border-bottom: 1px solid var(--c-mindaro);
  margin: var(--s-3) 0;
}
.pullquote__attr {
  font-style: italic;
  font-size: var(--t-small);
  color: var(--c-mindaro);
  margin-top: var(--s-2);
  display: block;
}

/* Diagram wrapper */
.diagram-wrap {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}
.diagram-wrap svg { width: 100%; height: auto; max-width: 1200px; }

/* Source line */
.source {
  font-family: var(--f-body);
  font-size: var(--t-micro);
  font-style: italic;
  color: var(--c-gray-muted);
  margin-top: var(--s-3);
  line-height: 1.4;
}
.slide--dark .source { color: var(--c-white-snow); opacity: 0.55; }

/* ---------- 7. NAVIGATION ------------------------------- */
.nav-bar {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  background: rgba(14, 66, 62, 0.92);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  color: var(--c-white-snow);
  font-family: var(--f-head);
  font-size: var(--t-small);
  padding: var(--s-1) var(--s-3);
  display: flex;
  justify-content: space-between;
  align-items: center;
  z-index: 100;
  border-top: 1px solid var(--c-mindaro);
}
.nav-bar__hint {
  font-size: var(--t-micro);
  opacity: 0.7;
  letter-spacing: 0.1em;
}
.nav-bar__counter {
  font-weight: 600;
  color: var(--c-mindaro);
  letter-spacing: 0.1em;
}
.nav-bar button {
  background: transparent;
  border: 1px solid var(--c-mindaro);
  color: var(--c-mindaro);
  font-family: var(--f-head);
  font-size: var(--t-small);
  padding: 4px 12px;
  cursor: pointer;
  border-radius: 2px;
}
.nav-bar button:hover { background: var(--c-mindaro); color: var(--c-green-jungle); }
.nav-bar button:focus { outline: 2px solid var(--c-mindaro); outline-offset: 2px; }

.overview-grid {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(14,66,62,0.96);
  z-index: 200;
  padding: var(--s-5);
  overflow-y: auto;
}
.overview-grid.is-open { display: block; }
.overview-grid__title {
  color: var(--c-mindaro);
  font-family: var(--f-head);
  font-size: var(--t-h1);
  margin-bottom: var(--s-4);
  text-align: center;
}
.overview-grid__items {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: var(--s-3);
  max-width: 1200px;
  margin: 0 auto;
}
.overview-card {
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(233,252,140,0.25);
  padding: var(--s-3);
  color: var(--c-white-snow);
  cursor: pointer;
  font-family: var(--f-body);
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: var(--s-1);
}
.overview-card:hover { background: rgba(233,252,140,0.1); border-color: var(--c-mindaro); }
.overview-card__num {
  font-family: var(--f-head);
  font-size: var(--t-small);
  color: var(--c-mindaro);
  letter-spacing: 0.1em;
}
.overview-card__title {
  font-family: var(--f-head);
  font-weight: 600;
  font-size: var(--t-body);
  color: var(--c-white-snow);
}

/* ---------- 8. RESPONSIVE TWEAKS ------------------------ */
@media (max-width: 767px) {
  .deck { scroll-snap-type: y proximity; }
  .slide { padding: var(--s-4) var(--s-3); }
  .slide__sideline { display: none; }
  .stat-panel { grid-template-columns: 1fr; }
}

@media (min-width: 1024px) {
  .grid-2--asymmetric { grid-template-columns: 1fr 2fr; }
  .grid-2--asymmetric-rev { grid-template-columns: 2fr 1fr; }
}

/* ---------- 9. SLIDE-SPECIFIC OVERRIDES ----------------- */

/* Slide 03 — three bands */
.bands { display: flex; flex-direction: column; gap: var(--s-2); }
.band {
  padding: var(--s-3);
  border: 1px solid var(--c-green-jungle);
  background: var(--c-white-pure);
  color: var(--c-charcoal);
}
.band--dead {
  background: var(--c-green-jungle);
  color: var(--c-white-snow);
  border-color: var(--c-green-jungle);
  border-left: 6px solid var(--c-mindaro);
  padding: var(--s-4);
}
.band--dead h3 { color: var(--c-mindaro); }
.band h3 { margin-bottom: var(--s-1); font-size: var(--t-h2); }

/* Slide 06 — three-layer vertical architecture */
.architecture-stack {
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
  margin: var(--s-3) 0;
}
.layer {
  background: var(--c-white-snow);
  color: var(--c-charcoal);
  border-left: 4px solid var(--c-mindaro);
  padding: var(--s-3) var(--s-4);
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s-2);
}
@media (min-width: 900px) {
  .layer { grid-template-columns: 1fr auto; align-items: center; }
}
.layer__label {
  font-family: var(--f-head);
  font-size: 10pt;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--c-green-jungle);
  opacity: 0.7;
  margin-bottom: var(--s-1);
}
.layer__title {
  font-family: var(--f-head);
  font-size: var(--t-h2);
  font-weight: 700;
  color: var(--c-green-jungle);
  margin: 0 0 var(--s-1);
}
.layer__body { font-size: var(--t-body); color: var(--c-charcoal); margin: 0; line-height: 1.45; }
.layer__body p { margin: 0 0 var(--s-1); }
.layer__chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-1);
  justify-content: flex-start;
}
@media (min-width: 900px) {
  .layer__chips { justify-content: flex-end; max-width: 360px; }
}
.layer-chip {
  display: inline-block;
  padding: 4px 10px;
  border: 1px solid var(--c-green-jungle);
  color: var(--c-green-jungle);
  background: transparent;
  font-family: var(--f-head);
  font-size: var(--t-micro);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border-radius: 999px;
}
.architecture-foot {
  font-style: italic;
  font-size: var(--t-body);
  color: var(--c-mindaro);
  text-align: center;
  margin: var(--s-3) 0 0;
  line-height: 1.5;
}

/* Slide 05 — three-pillar architecture + sovereign substrate plate */
.pillars {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s-2);
  margin-top: var(--s-2);
}
@media (min-width: 900px) {
  .pillars { grid-template-columns: repeat(3, 1fr); gap: var(--s-3); }
}
.pillar-card {
  background: var(--c-white-pure);
  border: 1px solid var(--c-green-jungle);
  border-left: 4px solid var(--c-mindaro);
  padding: var(--s-3);
  display: flex;
  flex-direction: column;
  gap: var(--s-1);
}
.pillar-card__tag {
  font-family: var(--f-head);
  font-size: 10pt;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--c-green-jungle);
  opacity: 0.65;
}
.pillar-card__name {
  font-family: var(--f-head);
  font-size: var(--t-h2);
  font-weight: 700;
  color: var(--c-green-jungle);
  margin: 0;
}
.pillar-card__line { font-size: var(--t-body); color: var(--c-charcoal); margin: 0; line-height: 1.4; }
.pillar-card__status {
  font-family: var(--f-body);
  font-style: italic;
  font-size: var(--t-small);
  color: var(--c-green-jungle);
  opacity: 0.7;
  margin: 0;
}
.holding-bar {
  background: var(--c-green-jungle);
  color: var(--c-white-snow);
  text-align: center;
  padding: var(--s-2) var(--s-3);
  font-family: var(--f-head);
  font-size: var(--t-body);
  font-weight: 600;
  letter-spacing: 0.04em;
  margin-bottom: var(--s-2);
}

/* Sovereign substrate value plate (slide 05 lower 40%) */
.substrate-plate {
  background: var(--c-green-jungle);
  color: var(--c-white-snow);
  border-left: 4px solid var(--c-mindaro);
  padding: var(--s-3) var(--s-4);
  margin-top: var(--s-3);
}
.substrate-plate__head {
  font-family: var(--f-head);
  font-size: var(--t-h2);
  font-weight: 700;
  color: var(--c-mindaro);
  margin: 0 0 var(--s-1);
}
.substrate-plate__lede {
  font-style: italic;
  font-size: var(--t-body);
  color: var(--c-white-snow);
  margin: 0 0 var(--s-3);
  opacity: 0.92;
  line-height: 1.45;
}
.substrate-plate__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s-2);
}
@media (min-width: 900px) {
  .substrate-plate__grid { grid-template-columns: repeat(4, 1fr); gap: 0; }
}
.substrate-item {
  padding: 0 var(--s-3);
  border-left: 1px solid rgba(233, 252, 140, 0.3);
}
.substrate-item:first-child { border-left: 0; padding-left: 0; }
@media (max-width: 899px) {
  .substrate-item { border-left: 0; padding-left: 0; }
}
.substrate-item__label {
  font-family: var(--f-head);
  font-size: 10pt;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--c-mindaro);
  margin: 0 0 var(--s-1);
}
.substrate-item__body {
  font-size: var(--t-small);
  color: var(--c-white-snow);
  opacity: 0.92;
  margin: 0;
  line-height: 1.45;
}

/* Slide 08 — pipeline two-market plate + sector lines */
.market-plate {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s-2);
}
@media (min-width: 900px) {
  .market-plate { grid-template-columns: 1fr 1fr; gap: var(--s-3); }
}
.market-card {
  background: var(--c-white-pure);
  border: 1px solid var(--c-green-jungle);
  border-left: 4px solid var(--c-mindaro);
  padding: var(--s-3);
}
.market-card__name {
  font-family: var(--f-head);
  font-size: var(--t-h2);
  font-weight: 700;
  color: var(--c-green-jungle);
  margin: 0 0 var(--s-2);
}
.market-card__line {
  font-size: var(--t-body);
  color: var(--c-charcoal);
  margin: 0 0 var(--s-1);
  line-height: 1.45;
}
.sector-lines {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
}
.sector-lines li {
  font-size: var(--t-body);
  color: var(--c-charcoal);
  line-height: 1.45;
  padding-left: var(--s-3);
  position: relative;
}
.sector-lines li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 8px;
  height: 8px;
  background: var(--c-mindaro);
}
.sector-lines li strong { color: var(--c-green-jungle); font-weight: 600; }

/* Generic dividers / accent rules */
.rule-mindaro { height: 2px; background: var(--c-mindaro); border: none; margin: var(--s-3) 0; }
.rule-thin    { height: 1px; background: var(--c-border); border: none; margin: var(--s-3) 0; }

/* Confidential watermark only on first/last for emphasis */
.print-only { display: none; }

/* Print fallback */
@media print {
  .nav-bar, .overview-grid { display: none !important; }
  .slide { page-break-after: always; min-height: 100vh; }
}
