/* ════════════════════════════════════════════════════════════
   DBFC PITCH DECK · CINEMATIC HIMALAYAN · v3
   Widened palette · image-led · animation-ready
   ════════════════════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght,SOFT,WONK@9..144,200..900,0..100,0..1&family=Geist:wght@100..900&family=Geist+Mono:wght@100..900&family=Tiro+Devanagari+Hindi&display=swap');

:root {
  /* ── DEEP CINEMATIC PALETTE ── */
  --ink-950: #050D0A;
  --ink-900: #0A1612;
  --ink-850: #0D1F1A;
  --ink-800: #0F2620;
  --ink-700: #14342C;
  --ink-600: #1C4A3E;

  /* ── PAPER (warm editorial) ── */
  --paper-50: #F7F1E6;
  --paper-100: #F0E8D6;
  --paper-200: #E3D8C5;
  --paper-300: #C9BCA5;

  /* ── BRAND ── */
  --moss-900: #0F3329;
  --moss-700: #1F5947;
  --moss-500: #2E7D5F;
  --moss-300: #6FA88E;

  --gold-700: #9C7E3F;
  --gold-500: #C9A961;
  --gold-400: #D9BC78;
  --gold-300: #E8D199;

  /* ── WIDENED PALETTE — Uttarakhand "lively" ── */
  --saffron-700: #B85A2A;
  --saffron-500: #E8743A;          /* sunrise saffron */
  --saffron-400: #F09058;
  --saffron-300: #F4B58A;

  --rhodo-700: #6B1E4A;            /* deep rhododendron */
  --rhodo-500: #A23568;
  --rhodo-400: #C9527E;

  --twilight-900: #1A1846;         /* deep mountain twilight */
  --twilight-700: #2D2A6E;
  --twilight-500: #4A4498;

  --river-700: #1C5A6E;
  --river-500: #2E8AA8;
  --river-400: #5BA8C2;

  --pine-700: #0F4030;
  --pine-500: #1F6B4E;

  --terracotta: #BC4E3A;
  --bronze: #8B6131;

  /* ── TEXT ── */
  --text-dark: #0A1612;
  --text-dark-soft: #3A4742;
  --text-dark-muted: #6B7570;
  --text-dark-faint: #A3ADA8;
  --text-light: #F7F1E6;
  --text-light-soft: #C5CDC8;
  --text-light-muted: #8A9692;
  --text-light-faint: #5A6661;

  /* ── TYPE STACK ── */
  --serif: 'Fraunces', 'Tiempos Headline', Georgia, serif;
  --sans: 'Geist', -apple-system, BlinkMacSystemFont, sans-serif;
  --mono: 'Geist Mono', 'JetBrains Mono', ui-monospace, monospace;
  --devanagari: 'Tiro Devanagari Hindi', 'Fraunces', serif;

  /* ── GEOMETRY ── */
  --slide-w: 1440px;
  --slide-h: 810px;
  --pad-x: 88px;
  --pad-y: 64px;
}

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

html, body {
  font-family: var(--sans);
  font-feature-settings: 'ss01', 'ss02', 'cv11';
  background: #050505;
  color: var(--text-dark);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-optical-sizing: auto;
}

/* ════════════════════════════════════════════════════════════
   SLIDE ENVELOPE
   ════════════════════════════════════════════════════════════ */
.slide {
  width: var(--slide-w);
  height: var(--slide-h);
  margin: 32px auto;
  position: relative;
  overflow: hidden;
  box-shadow: 0 40px 120px rgba(0,0,0,0.65);
  border-radius: 2px;
  isolation: isolate;
}

.slide.dark    { background: var(--ink-900); color: var(--text-light); }
.slide.darker  { background: var(--ink-950); color: var(--text-light); }
.slide.light   { background: var(--paper-50); color: var(--text-dark); }

/* ── GRADIENT BACKDROPS (atmospheric, used on hero slides) ── */
.bg-dawn {
  background:
    radial-gradient(ellipse at 70% 25%, rgba(232,116,58,0.32) 0%, transparent 50%),
    radial-gradient(ellipse at 30% 70%, rgba(74,68,152,0.30) 0%, transparent 55%),
    linear-gradient(180deg, #2D2A6E 0%, #1A1846 35%, #0A1612 80%);
}

.bg-dusk {
  background:
    radial-gradient(ellipse at 50% 30%, rgba(232,116,58,0.18) 0%, transparent 50%),
    radial-gradient(ellipse at 20% 80%, rgba(31,89,71,0.40) 0%, transparent 60%),
    linear-gradient(180deg, #1A1846 0%, #0F3329 50%, #050D0A 100%);
}

.bg-himalaya {
  background:
    radial-gradient(ellipse at 50% 80%, rgba(201,169,97,0.10) 0%, transparent 60%),
    linear-gradient(180deg, #14342C 0%, #0A1612 70%, #050D0A 100%);
}

.bg-saffron {
  background:
    radial-gradient(ellipse at 70% 30%, rgba(244,181,138,0.25) 0%, transparent 50%),
    linear-gradient(135deg, #E8743A 0%, #B85A2A 50%, #6B1E4A 100%);
}

.bg-river {
  background:
    radial-gradient(ellipse at 30% 70%, rgba(91,168,194,0.25) 0%, transparent 55%),
    linear-gradient(180deg, #1C5A6E 0%, #0F4030 60%, #0A1612 100%);
}

.bg-rhodo {
  background:
    radial-gradient(ellipse at 70% 30%, rgba(232,116,58,0.18) 0%, transparent 50%),
    linear-gradient(135deg, #6B1E4A 0%, #2D2A6E 60%, #0A1612 100%);
}

.bg-pine {
  background:
    radial-gradient(ellipse at 50% 50%, rgba(46,125,95,0.20) 0%, transparent 60%),
    linear-gradient(180deg, #1F6B4E 0%, #0F4030 50%, #0A1612 100%);
}

/* ── FILM GRAIN OVERLAY ── */
.slide.dark::after, .slide.darker::after,
.slide[class*="bg-"]::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 2;
  opacity: 0.4;
  mix-blend-mode: overlay;
  background-image:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.92' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.08 0'/></filter><rect width='180' height='180' filter='url(%23n)'/></svg>");
}

.slide.light::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 2;
  opacity: 0.4;
  background-image:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='1.4' numOctaves='1' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.4 0 0 0 0 0.32 0 0 0 0 0.2 0 0 0 0.05 0'/></filter><rect width='240' height='240' filter='url(%23n)'/></svg>");
}

/* ════════════════════════════════════════════════════════════
   IMAGE PLACEHOLDER SYSTEM
   On generation: data-img="01_cover_hero" loads /assets/images/01_cover_hero.png
   Until file exists: shows designed atmospheric placeholder
   ════════════════════════════════════════════════════════════ */
.hero-img {
  position: absolute;
  inset: 0;
  overflow: hidden;
  z-index: 1;
}

.hero-img-fill {
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  background-color: var(--ink-900);
  position: relative;
}

/* Placeholder: cinematic gradient + topo SVG + slot label */
.hero-img-fill.placeholder::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
}
.hero-img-fill.placeholder::after {
  content: attr(data-label);
  position: absolute;
  bottom: 16px;
  right: 16px;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(245,239,228,0.35);
  background: rgba(0,0,0,0.4);
  padding: 4px 10px;
  border: 1px solid rgba(201,169,97,0.25);
  z-index: 3;
}

/* Image fallbacks by tone */
.hero-img-fill.placeholder.tone-dawn { background-image: radial-gradient(ellipse at 70% 30%, #E8743A 0%, transparent 45%), linear-gradient(180deg, #2D2A6E 0%, #1A1846 50%, #0A1612 100%); }
.hero-img-fill.placeholder.tone-dusk { background-image: radial-gradient(ellipse at 50% 30%, #E8743A 0%, transparent 40%), linear-gradient(180deg, #1A1846 0%, #0F3329 60%, #050D0A 100%); }
.hero-img-fill.placeholder.tone-mountain { background-image: linear-gradient(180deg, #14342C 0%, #0A1612 70%); }
.hero-img-fill.placeholder.tone-saffron { background-image: linear-gradient(135deg, #E8743A 0%, #B85A2A 50%, #6B1E4A 100%); }
.hero-img-fill.placeholder.tone-river { background-image: linear-gradient(180deg, #1C5A6E 0%, #0F4030 60%, #0A1612 100%); }
.hero-img-fill.placeholder.tone-pine { background-image: linear-gradient(180deg, #1F6B4E 0%, #0F4030 50%, #0A1612 100%); }
.hero-img-fill.placeholder.tone-twilight { background-image: linear-gradient(180deg, #2D2A6E 0%, #1A1846 60%, #0A1612 100%); }
.hero-img-fill.placeholder.tone-rhodo { background-image: linear-gradient(135deg, #6B1E4A 0%, #2D2A6E 60%, #0A1612 100%); }
.hero-img-fill.placeholder.tone-academy { background-image: radial-gradient(ellipse at 30% 70%, #C9A961 0%, transparent 50%), linear-gradient(135deg, #2D2A6E 0%, #1F5947 50%, #0A1612 100%); }
.hero-img-fill.placeholder.tone-led { background-image: radial-gradient(ellipse at 50% 50%, #4A4498 0%, transparent 50%), linear-gradient(135deg, #1A1846 0%, #0A1612 60%); }

/* Overlay for legibility on full-bleed image slides */
.hero-img-overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
}
.overlay-left {
  background:
    linear-gradient(90deg, rgba(10,22,18,0.96) 0%, rgba(10,22,18,0.85) 35%, rgba(10,22,18,0.55) 60%, rgba(10,22,18,0.35) 85%, rgba(10,22,18,0.25) 100%);
}
.overlay-bottom {
  background: linear-gradient(180deg, rgba(10,22,18,0.25) 0%, rgba(10,22,18,0.6) 55%, rgba(10,22,18,0.96) 100%);
}
.overlay-center {
  background: linear-gradient(180deg, rgba(10,22,18,0.7) 0%, rgba(10,22,18,0.45) 50%, rgba(10,22,18,0.88) 100%);
}
.overlay-vignette {
  background: radial-gradient(ellipse at center, rgba(10,22,18,0.1) 30%, rgba(10,22,18,0.6) 75%, rgba(10,22,18,0.9) 100%);
}
/* Used on section openers where headline extends full-width */
.overlay-strong {
  background:
    linear-gradient(90deg, rgba(10,22,18,0.95) 0%, rgba(10,22,18,0.85) 50%, rgba(10,22,18,0.7) 100%),
    linear-gradient(180deg, rgba(10,22,18,0.2) 0%, rgba(10,22,18,0.55) 100%);
}

/* Topographic line overlay over images */
.topo-overlay {
  position: absolute;
  inset: 0;
  z-index: 3;
  opacity: 0.12;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 810' preserveAspectRatio='xMidYMid slice'><g fill='none' stroke='%23C9A961' stroke-width='0.6'><path d='M0,580 Q200,520 400,560 T800,540 T1200,520 T1440,500'/><path d='M0,620 Q200,560 400,600 T800,580 T1200,560 T1440,540'/><path d='M0,660 Q200,600 400,640 T800,620 T1200,600 T1440,580'/><path d='M0,700 Q200,640 400,680 T800,660 T1200,640 T1440,620'/></g></svg>");
}

/* ════════════════════════════════════════════════════════════
   TYPOGRAPHY
   ════════════════════════════════════════════════════════════ */
.eyebrow {
  font-family: var(--mono);
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--gold-500);
}
.slide.light .eyebrow { color: var(--moss-700); }
.eyebrow-tick::before {
  content: '';
  display: inline-block;
  width: 24px;
  height: 1px;
  background: currentColor;
  vertical-align: middle;
  margin-right: 12px;
  opacity: 0.7;
}

.kicker {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--text-dark-muted);
}
.slide.dark .kicker, .slide.darker .kicker, .slide[class*="bg-"] .kicker { color: var(--text-light-muted); }

.display-xl { font-family: var(--serif); font-size: 168px; font-weight: 200; line-height: 0.88; letter-spacing: -0.045em; font-variation-settings:"opsz" 144,"SOFT" 30; }
.display-1  { font-family: var(--serif); font-size: 124px; font-weight: 250; line-height: 0.92; letter-spacing: -0.035em; font-variation-settings:"opsz" 144,"SOFT" 40; }
.display-2  { font-family: var(--serif); font-size: 88px;  font-weight: 300; line-height: 0.98; letter-spacing: -0.025em; font-variation-settings:"opsz" 120,"SOFT" 50; }
.headline   { font-family: var(--serif); font-size: 56px;  font-weight: 350; line-height: 1.05; letter-spacing: -0.018em; font-variation-settings:"opsz" 96,"SOFT" 60; }
.subhead    { font-family: var(--serif); font-size: 38px;  font-weight: 400; line-height: 1.18; letter-spacing: -0.012em; }
.lede       { font-family: var(--serif); font-size: 26px;  font-weight: 350; line-height: 1.35; letter-spacing: -0.008em; font-style: italic; }

.title-md  { font-family: var(--sans); font-size: 20px; font-weight: 600; line-height: 1.25; letter-spacing: -0.005em; }
.title-sm  { font-family: var(--sans); font-size: 15px; font-weight: 600; letter-spacing: 0.02em; text-transform: uppercase; }

.body-lg { font-family: var(--sans); font-size: 18px; font-weight: 400; line-height: 1.55; color: var(--text-dark-soft); }
.slide.dark .body-lg, .slide.darker .body-lg, .slide[class*="bg-"] .body-lg { color: var(--text-light-soft); }

.body { font-family: var(--sans); font-size: 15px; font-weight: 400; line-height: 1.6; color: var(--text-dark-soft); }
.slide.dark .body, .slide.darker .body, .slide[class*="bg-"] .body { color: var(--text-light-soft); }

.body-sm { font-family: var(--sans); font-size: 13px; font-weight: 400; line-height: 1.55; color: var(--text-dark-muted); }
.slide.dark .body-sm, .slide.darker .body-sm, .slide[class*="bg-"] .body-sm { color: var(--text-light-muted); }

.caption { font-family: var(--mono); font-size: 11px; font-weight: 400; letter-spacing: 0.08em; color: var(--text-dark-faint); text-transform: uppercase; }
.slide.dark .caption, .slide.darker .caption, .slide[class*="bg-"] .caption { color: var(--text-light-faint); }

.devanagari { font-family: var(--devanagari); font-weight: 400; }

.tabular { font-variant-numeric: tabular-nums; font-feature-settings: 'tnum'; }

/* ════════════════════════════════════════════════════════════
   LAYOUT PRIMITIVES
   ════════════════════════════════════════════════════════════ */
.slide-content {
  position: absolute;
  inset: 0;
  /* Top padding · side padding · bottom padding (safe-zone above slide-chrome at 18px) */
  padding: var(--pad-y) var(--pad-x) 56px var(--pad-x);
  display: flex;
  flex-direction: column;
  z-index: 5;
}

.slide-chrome {
  position: absolute;
  left: var(--pad-x);
  right: var(--pad-x);
  bottom: 18px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--mono);
  font-size: 10.5px;
  font-weight: 400;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--text-dark-faint);
  z-index: 10;
}
.slide.dark .slide-chrome, .slide.darker .slide-chrome, .slide[class*="bg-"] .slide-chrome { color: var(--text-light-faint); }

.rule {
  height: 1px;
  width: 48px;
  background: var(--gold-500);
  margin: 18px 0 28px;
  border: none;
}
.slide.light .rule { background: var(--moss-700); }

.rule-long { height: 1px; background: rgba(201,169,97,0.4); width: 100%; border: none; }
.slide.light .rule-long { background: var(--paper-300); }

.section-no-bg {
  position: absolute;
  font-family: var(--serif);
  font-weight: 200;
  font-style: italic;
  font-size: 520px;
  line-height: 0.78;
  color: var(--gold-500);
  opacity: 0.08;
  letter-spacing: -0.05em;
  pointer-events: none;
  z-index: 2;
  font-variation-settings: "opsz" 144, "SOFT" 60;
}

/* ── GRID ── */
.g2 { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; }
.g3 { display: grid; grid-template-columns: repeat(3,1fr); gap: 32px; }
.g4 { display: grid; grid-template-columns: repeat(4,1fr); gap: 24px; }
.g5 { display: grid; grid-template-columns: repeat(5,1fr); gap: 18px; }
.g2-1 { display: grid; grid-template-columns: 2fr 1fr; gap: 56px; }
.g1-2 { display: grid; grid-template-columns: 1fr 2fr; gap: 56px; }
.g3-2 { display: grid; grid-template-columns: 3fr 2fr; gap: 56px; }
.g5-7 { display: grid; grid-template-columns: 5fr 7fr; gap: 56px; }
.g7-5 { display: grid; grid-template-columns: 7fr 5fr; gap: 56px; }

/* ── METRIC POSTER ── */
.metric-poster .num {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 200;
  font-size: 88px;
  line-height: 0.92;
  letter-spacing: -0.035em;
  color: var(--moss-700);
  font-variation-settings:"opsz" 144,"SOFT" 40;
}
.slide.dark .metric-poster .num, .slide.darker .metric-poster .num, .slide[class*="bg-"] .metric-poster .num { color: var(--gold-500); }
.metric-poster .num sup { font-size: 0.35em; vertical-align: top; font-style: normal; margin-left: 4px; font-weight: 400; }
.metric-poster .label {
  font-family: var(--mono);
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--text-dark-muted);
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--paper-300);
}
.slide.dark .metric-poster .label, .slide.darker .metric-poster .label, .slide[class*="bg-"] .metric-poster .label {
  color: var(--text-light-muted);
  border-top-color: rgba(245,239,228,0.12);
}
.metric-poster .detail {
  font-family: var(--sans);
  font-size: 13px;
  color: var(--text-dark-soft);
  margin-top: 6px;
  line-height: 1.5;
}
.slide.dark .metric-poster .detail, .slide.darker .metric-poster .detail, .slide[class*="bg-"] .metric-poster .detail { color: var(--text-light-soft); }

/* ── TABLES ── */
.dbfc-table { width: 100%; border-collapse: collapse; font-family: var(--sans); font-size: 14px; }
.dbfc-table thead th {
  text-align: left;
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--moss-700);
  padding: 16px 14px 10px;
  border-bottom: 1px solid var(--moss-700);
}
.slide.dark .dbfc-table thead th, .slide.darker .dbfc-table thead th, .slide[class*="bg-"] .dbfc-table thead th {
  color: var(--gold-500); border-bottom-color: var(--gold-500);
}
.dbfc-table tbody td {
  padding: 10px 14px;
  border-bottom: 1px solid var(--paper-200);
  color: var(--text-dark-soft);
  vertical-align: top;
  line-height: 1.4;
  font-size: 13.5px;
}
.slide.dark .dbfc-table tbody td, .slide.darker .dbfc-table tbody td, .slide[class*="bg-"] .dbfc-table tbody td {
  border-bottom-color: rgba(245,239,228,0.08);
  color: var(--text-light-soft);
}
.dbfc-table tbody td.num {
  font-variant-numeric: tabular-nums;
  color: var(--text-dark);
  font-weight: 500;
  font-family: var(--mono);
}
.slide.dark .dbfc-table tbody td.num, .slide.darker .dbfc-table tbody td.num, .slide[class*="bg-"] .dbfc-table tbody td.num { color: var(--text-light); }
.dbfc-table tr.total td {
  border-top: 1px solid var(--moss-700);
  border-bottom: none;
  font-weight: 600;
  color: var(--moss-700);
  padding-top: 16px;
}
/* Dense modifier for very tall tables */
.dbfc-table.dense thead th { padding: 12px 14px 8px; }
.dbfc-table.dense tbody td { padding: 8px 14px; font-size: 13px; }
.dbfc-table.dense tr.total td { padding-top: 12px; }
.slide.dark .dbfc-table tr.total td, .slide.darker .dbfc-table tr.total td, .slide[class*="bg-"] .dbfc-table tr.total td {
  color: var(--gold-500); border-top-color: var(--gold-500);
}

/* ── TAGS ── */
.tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 5px 11px;
  border-radius: 2px;
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.tag.gold { background: rgba(201,169,97,0.1); color: var(--gold-500); border: 1px solid rgba(201,169,97,0.4); }
.tag.moss { background: rgba(31,89,71,0.06); color: var(--moss-700); border: 1px solid rgba(31,89,71,0.25); }
.tag.saffron { background: rgba(232,116,58,0.10); color: var(--saffron-700); border: 1px solid rgba(232,116,58,0.35); }
.tag.rhodo { background: rgba(162,53,104,0.10); color: var(--rhodo-700); border: 1px solid rgba(162,53,104,0.35); }
.tag.outline-light { border: 1px solid rgba(245,239,228,0.3); color: var(--text-light); }
.tag-dot::before { content: ''; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }

/* ── CALLOUT ── */
.callout {
  border-left: 2px solid var(--gold-500);
  padding: 4px 0 4px 28px;
}
.slide.light .callout { border-left-color: var(--moss-700); }

/* ── ORNAMENT ── */
.ornament {
  display: flex; align-items: center; gap: 14px; margin: 16px 0;
}
.ornament::before, .ornament::after { content: ''; flex: 1; height: 1px; background: var(--gold-500); opacity: 0.4; }
.ornament-dot { width: 6px; height: 6px; background: var(--gold-500); transform: rotate(45deg); }

/* ════════════════════════════════════════════════════════════
   ANIMATIONS — entrance, scroll-triggered fade-up, counters
   ════════════════════════════════════════════════════════════ */
@keyframes fadeUp { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes drawLine { from { stroke-dashoffset: 1000; } to { stroke-dashoffset: 0; } }
@keyframes scaleIn { from { opacity: 0; transform: scale(0.96); } to { opacity: 1; transform: scale(1); } }
@keyframes kenBurns {
  0% { transform: scale(1.0) translate(0,0); }
  100% { transform: scale(1.08) translate(-1.5%, -1%); }
}

.anim-fade-up { animation: fadeUp 0.9s cubic-bezier(0.2,0.7,0.2,1) both; }
.anim-fade-in { animation: fadeIn 1.1s ease-out both; }
.anim-scale-in { animation: scaleIn 0.9s cubic-bezier(0.2,0.7,0.2,1) both; }

/* Ken Burns slow zoom on hero images */
.kenburns .hero-img-fill { animation: kenBurns 22s ease-out both alternate infinite; }

/* Delay helpers */
.d-1 { animation-delay: .1s; }
.d-2 { animation-delay: .25s; }
.d-3 { animation-delay: .45s; }
.d-4 { animation-delay: .7s; }
.d-5 { animation-delay: .95s; }
.d-6 { animation-delay: 1.2s; }

/* Reveal-on-scroll target (JS adds .in) */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity .9s cubic-bezier(0.2,0.7,0.2,1), transform .9s cubic-bezier(0.2,0.7,0.2,1); }
.reveal.in { opacity: 1; transform: translateY(0); }
.reveal-d-1 { transition-delay: .08s; }
.reveal-d-2 { transition-delay: .18s; }
.reveal-d-3 { transition-delay: .32s; }
.reveal-d-4 { transition-delay: .5s; }

/* SVG line draw */
.draw-path {
  stroke-dasharray: 1500;
  stroke-dashoffset: 1500;
  animation: drawLine 2.2s ease-out forwards;
}

/* ── DECK / VIEW ── */
.deck { background: #050505; min-height: 100vh; padding: 32px 0; }

@media print {
  .slide { margin: 0; box-shadow: none; page-break-after: always; animation: none !important; }
  body { background: white; }
  .kenburns .hero-img-fill { animation: none; }
}

canvas { max-width: 100%; }

/* ── DECK NAV (top fixed) ── */
.deck-nav {
  position: fixed;
  top: 12px;
  right: 16px;
  background: rgba(10,22,18,0.85);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(201,169,97,0.25);
  border-radius: 100px;
  padding: 8px 16px;
  z-index: 100;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-light);
  display: flex;
  gap: 20px;
  align-items: center;
}
.deck-nav .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--gold-500); display:inline-block; }
.deck-nav .total { color: var(--text-light-muted); }
