/* Deck chrome + reusable slide primitives. Slides compose these; no per-slide one-offs
   unless a slide genuinely needs a bespoke element (kept in its own section below). */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html, body { height: 100%; }
body {
  background: var(--surface-ink);
  color: var(--text-primary);
  font-family: var(--font);
  -webkit-font-smoothing: antialiased;
  overflow: hidden;
  cursor: default;
}

/* Stage: fixed 1920×1080, scaled by deck.js */
.stage {
  position: absolute; left: 50%; top: 50%;
  width: 1920px; height: 1080px;
  transform-origin: 50% 50%;
  background: var(--surface);
  overflow: hidden;
}

.slide {
  position: absolute; inset: 0;
  padding: var(--margin-y) var(--margin-x);
  opacity: 0; visibility: hidden;
  transition: opacity var(--dur-m) var(--ease-out), visibility 0s linear var(--dur-m);
}
.slide.is-active { opacity: 1; visibility: visible; transition: opacity var(--dur-m) var(--ease-out), visibility 0s; }

/* Surfaces */
.slide--light { background: var(--surface); }
.slide--warm  { background: var(--surface-warm); }
.slide--brand { background: var(--brand-primary); color: var(--text-on-brand); }
.slide--ink   { background: var(--surface-ink); color: var(--text-on-brand); }

/* Type */
.t-display { font-size: var(--fs-display); font-weight: 600; line-height: var(--lh-tight); letter-spacing: var(--track-display); }
.t-h1 { font-size: var(--fs-h1); font-weight: 600; line-height: var(--lh-snug); letter-spacing: -0.015em; }
.t-h2 { font-size: var(--fs-h2); font-weight: 600; line-height: var(--lh-snug); letter-spacing: -0.01em; }
.t-h3 { font-size: var(--fs-h3); font-weight: 500; line-height: var(--lh-snug); }
.t-body-lg { font-size: var(--fs-body-lg); font-weight: 400; line-height: var(--lh-body); color: var(--text-secondary); }
.t-body { font-size: var(--fs-body); font-weight: 400; line-height: var(--lh-body); color: var(--text-secondary); }
.t-label { font-size: var(--fs-label); font-weight: 600; letter-spacing: var(--track-label); text-transform: uppercase; }
.t-muted { color: var(--text-tertiary); }
.t-brand { color: var(--brand-primary); }
.slide--brand .t-body, .slide--brand .t-body-lg, .slide--ink .t-body, .slide--ink .t-body-lg { color: rgb(255 255 255 / .78); }

/* Brand devices */
.logo { display: block; height: auto; }
.logo--hero { width: 300px; }
.logo--corner { position: absolute; top: 56px; right: var(--margin-x); width: 150px; }
.gold-rule { height: 6px; background: var(--brand-gold); transform-origin: left center; }
.brand-edge { position: absolute; left: 0; right: 0; bottom: 0; height: 14px; background: var(--brand-primary); }

.eyebrow { display: inline-flex; align-items: center; gap: var(--s-2); color: var(--brand-primary); }
.eyebrow::before { content: ""; width: 40px; height: 2px; background: currentColor; }

.placeholder {
  display: grid; place-items: center; text-align: center;
  border: 2px dashed var(--line-strong); border-radius: var(--radius);
  color: var(--text-tertiary); font-size: var(--fs-label); letter-spacing: .04em;
  background: repeating-linear-gradient(135deg, transparent 0 14px, rgb(31 23 24 / .025) 14px 28px);
}

/* Reveal primitives: .rv elements animate in when their slide enters;
   [data-step] elements wait for their step. --i sets stagger order. */
.rv, [data-step] {
  opacity: 0; transform: translateY(28px);
  transition: opacity var(--dur-m) var(--ease-out), transform var(--dur-m) var(--ease-out);
  transition-delay: calc(var(--i, 0) * var(--stagger) + var(--delay, 0ms));
}
.slide.is-active .rv, [data-step].is-shown { opacity: 1; transform: none; }

.mask { display: block; overflow: hidden; padding-bottom: .08em; margin-bottom: -.08em; }
.mask > span { display: block; transform: translateY(105%); transition: transform var(--dur-l) var(--ease-out); transition-delay: calc(var(--i, 0) * 120ms + var(--delay, 0ms)); }
.slide.is-active .mask > span { transform: none; }

.draw { transform: scaleX(0); transition: transform var(--dur-l) var(--ease-in-out); transition-delay: var(--delay, 0ms); }
.slide.is-active .draw { transform: scaleX(1); }

/* Chrome */
.progress { position: fixed; left: 0; bottom: 0; height: 3px; width: calc(var(--progress, 0) * 100%); background: var(--brand-gold); transition: width var(--dur-m) var(--ease-out); z-index: 10; opacity: .9; }
.counter { position: fixed; right: 20px; bottom: 14px; font: 500 13px/1 var(--font); letter-spacing: .12em; color: rgb(255 255 255 / .45); z-index: 10; mix-blend-mode: difference; }
.notes { position: fixed; left: 0; right: 0; bottom: 0; max-height: 34vh; overflow: auto; padding: 20px 28px 28px; background: rgb(20 14 15 / .94); color: #EEE; font: 400 18px/1.5 var(--font); transform: translateY(100%); transition: transform var(--dur-s) var(--ease-out); z-index: 20; }
body.show-notes .notes { transform: none; }
aside.speaker { display: none; }

html.is-still *, html.is-still *::before, html.is-still *::after { transition: none !important; animation: none !important; }

@media (prefers-reduced-motion: reduce) {
  .rv, [data-step], .mask > span, .draw, .slide { transition-duration: 1ms !important; transition-delay: 0ms !important; }
}

/* ───────── Slide: opening ───────── */
.opening { display: grid; grid-template-columns: 1fr 420px; grid-template-rows: auto 1fr auto; column-gap: var(--s-7); }
.opening__brand { grid-column: 1 / -1; display: flex; align-items: flex-start; justify-content: space-between; }
.opening__head { align-self: center; }
.opening__head .eyebrow { margin-bottom: var(--s-4); }
.opening__head .t-display span.t-brand { color: var(--brand-primary); }
.opening__rule { width: 220px; margin-top: var(--s-5); }
.opening__pillars { align-self: center; list-style: none; border-top: 1.5px solid var(--line); }
.opening__pillars li { display: grid; grid-template-columns: 64px 1fr; padding: var(--s-4) 0; border-bottom: 1.5px solid var(--line); }
.opening__pillars .num { font-size: var(--fs-label); font-weight: 600; color: var(--brand-primary); padding-top: 8px; letter-spacing: .08em; }
.opening__pillars .t-h3 { color: var(--text-primary); font-size: 34px; }
.opening__pillars .t-body { margin-top: 6px; font-size: 22px; }
.opening__by { grid-column: 1 / -1; display: flex; align-items: flex-end; justify-content: space-between; padding-bottom: var(--s-2); }
.opening__by strong { display: block; font-size: 26px; font-weight: 600; }
.opening__by span { font-size: 22px; color: var(--text-secondary); }

/* ───────── Content slide frame ───────── */
.content { display: grid; grid-template-rows: auto 1fr; row-gap: var(--s-6); }
.content__head { padding-right: 220px; }
.content__meta { display: flex; align-items: center; gap: var(--s-4); margin-bottom: var(--s-3); }
.content__meta .status { padding: 8px 18px; font-size: 18px; }
.content__head .t-h1 { max-width: 1440px; }
.content__body { display: grid; grid-template-columns: 700px 1fr; column-gap: var(--s-8); align-items: center; min-height: 0; }

.pillar-tag { color: var(--brand-primary); }
.pillar-tag b { font-weight: 700; margin-right: 10px; }

/* Status chip — every initiative is labelled with its real stage */
.status { display: inline-flex; align-items: center; gap: 12px; padding: 12px 22px; border-radius: 999px; font-size: 20px; font-weight: 500; white-space: nowrap; border: 1.5px solid var(--line-strong); color: var(--text-primary); background: var(--surface); }
.status::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--dot, var(--text-tertiary)); }
.status--built    { --dot: var(--brand-primary); }
.status--existing { --dot: var(--text-primary); }
.status--proposed { --dot: var(--brand-gold); }
.status--planned  { --dot: transparent; border-style: dashed; }
.status--planned::before { border: 2px solid var(--text-tertiary); }
.status--confirm  { --dot: transparent; border-style: dashed; color: var(--text-secondary); }
.status--confirm::before { border: 2px dashed var(--text-tertiary); }

/* Field moment — the DSE's question leads every slide */
.moment { position: relative; padding-left: var(--s-4); border-left: 4px solid var(--brand-gold); margin-bottom: var(--s-6); }
.moment .t-label { color: var(--text-tertiary); display: block; margin-bottom: var(--s-2); font-size: 16px; }
.moment q { display: block; font-size: 40px; font-weight: 500; line-height: 1.2; color: var(--text-primary); quotes: "“" "”"; }

.points { list-style: none; display: grid; gap: var(--s-4); }
.points li { display: grid; grid-template-columns: 28px 1fr; gap: var(--s-2); font-size: 28px; line-height: 1.35; color: var(--text-primary); }
.points li::before { content: ""; width: 12px; height: 12px; margin-top: 13px; border-radius: 3px; background: var(--brand-primary); }
.points li.is-later { color: var(--text-secondary); }
.points li.is-later::before { background: transparent; border: 2px dashed var(--text-tertiary); }
.points small { display: block; font-size: 20px; color: var(--text-tertiary); margin-top: 2px; }

.illustrative { position: absolute; top: 20px; right: 24px; font-size: 15px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--text-tertiary); }
.visual { position: relative; height: 100%; max-height: 720px; display: grid; place-items: center; border-radius: var(--radius-lg); background: var(--surface-warm); }

.disclaimer { font-size: 18px; line-height: 1.45; color: var(--text-secondary); }

/* ───────── Phone + WhatsApp (field output frame) ───────── */
.phone { width: 360px; height: 680px; border-radius: 52px; padding: 12px; background: #141012; box-shadow: var(--shadow-phone); }
.phone__screen { width: 100%; height: 100%; border-radius: 42px; overflow: hidden; display: flex; flex-direction: column; background: #EFEAE2; }
.wa-bar { display: flex; align-items: center; gap: 12px; padding: 34px 16px 12px; background: #F7F5F2; border-bottom: 1px solid #E2DDD6; }
.wa-bar .av { width: 36px; height: 36px; border-radius: 50%; background: #D8D2CB; }
.wa-bar b { display: block; font-size: 15px; font-weight: 600; color: #111; }
.wa-bar span { font-size: 12px; color: #667; }
.wa-chat { flex: 1; padding: 16px 12px; display: flex; flex-direction: column; gap: 8px; justify-content: flex-end; }
.wa-msg { align-self: flex-start; max-width: 88%; background: #fff; border-radius: 4px 14px 14px 14px; padding: 6px; box-shadow: 0 1px 1px rgb(0 0 0 / .08); }
.wa-msg p { font-size: 13px; line-height: 1.4; color: #222; padding: 4px 6px 2px; }
.wa-msg time { display: block; text-align: right; font-size: 10px; color: #889; padding: 0 6px 2px; }
.wa-slot { width: 268px; aspect-ratio: 4 / 5; border-radius: 10px; font-size: 13px; padding: 16px; }

/* ───────── Journey (horizontal steps) ───────── */
.journey { list-style: none; display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 0; width: 100%; padding: 0 var(--s-5); counter-reset: j; }
.journey li { position: relative; padding: 0 var(--s-3) 0 0; counter-increment: j; }
.journey li::before { content: counter(j, decimal-leading-zero); display: block; font-size: 16px; font-weight: 700; letter-spacing: .1em; color: var(--brand-primary); margin-bottom: var(--s-3); }
.journey .node { position: relative; height: 4px; background: var(--line); margin-bottom: var(--s-4); }
.journey .node::after { content: ""; position: absolute; left: 0; top: 50%; width: 22px; height: 22px; border-radius: 50%; transform: translateY(-50%); background: var(--surface); border: 4px solid var(--brand-primary); }
.journey .node::before { content: ""; position: absolute; inset: 0; background: var(--brand-primary); transform-origin: left; transform: scaleX(0); transition: transform var(--dur-l) var(--ease-in-out) .2s; }
.journey li.is-shown .node::before, .slide.is-active .journey li.rv .node::before { transform: scaleX(1); }
.journey li:last-child .node::before { display: none; }
.journey h4 { font-size: 30px; font-weight: 600; line-height: 1.2; color: var(--text-primary); }
.journey p { font-size: 21px; line-height: 1.4; color: var(--text-secondary); margin-top: var(--s-1); }
.journey .sys { display: inline-block; margin-top: var(--s-2); font-size: 15px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--text-tertiary); }
.journey li.is-later h4, .journey li.is-later p { color: var(--text-tertiary); }
.journey li.is-later .node::after { border-style: dashed; border-color: var(--text-tertiary); }

/* ───────── Lead list mock ───────── */
.leads { width: 560px; background: var(--surface); border-radius: var(--radius); box-shadow: var(--shadow-2); overflow: hidden; }
.leads__top { display: flex; justify-content: space-between; align-items: center; padding: 22px 28px; border-bottom: 1px solid var(--line); font-size: 22px; font-weight: 600; }
.leads__top span { font-size: 16px; font-weight: 500; color: var(--text-tertiary); }
.leads__group { padding: 14px 28px 6px; font-size: 15px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.leads__group--fresh { color: var(--brand-primary); }
.leads__group--prio { color: var(--text-secondary); border-top: 1px solid var(--line); }
.lead { display: grid; grid-template-columns: 40px 1fr auto; align-items: center; gap: 16px; padding: 12px 28px; }
.lead i { width: 40px; height: 40px; border-radius: 50%; background: var(--surface-alt); }
.lead .bar { height: 12px; border-radius: 6px; background: var(--surface-alt); }
.lead .bar + .bar { width: 60%; margin-top: 8px; height: 10px; }
.lead em { font-style: normal; font-size: 14px; font-weight: 600; padding: 4px 10px; border-radius: 6px; }
.lead--fresh em { color: var(--brand-primary); background: var(--brand-blush); }
.lead--prio em { color: var(--text-secondary); background: var(--surface-alt); }

/* ───────── Support: existing flow + planned layer ───────── */
.support { display: grid; grid-template-columns: 1fr; gap: var(--s-4); width: 100%; padding: var(--s-6); }
.support__planned { border: 2px dashed var(--line-strong); border-radius: var(--radius); padding: var(--s-4); display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-3); }
.support__planned .t-label, .support__existing .t-label { grid-column: 1 / -1; font-size: 15px; color: var(--text-tertiary); }
.support__planned div { font-size: 24px; font-weight: 600; color: var(--text-secondary); }
.support__planned div span { display: block; font-size: 19px; font-weight: 400; margin-top: 4px; }
.support__arrow { justify-self: center; width: 2px; height: 36px; background: repeating-linear-gradient(to bottom, var(--text-tertiary) 0 6px, transparent 6px 12px); }
.support__existing { background: var(--surface); border-radius: var(--radius); box-shadow: var(--shadow-1); padding: var(--s-4); display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s-3); }
.support__existing .step { background: var(--surface-ink); color: #fff; border-radius: 12px; padding: 26px 20px; font-size: 30px; font-weight: 600; text-align: center; position: relative; }
.support__existing .step + .step::before { content: "→"; position: absolute; left: -26px; top: 50%; transform: translateY(-50%); color: var(--text-tertiary); font-size: 24px; }

/* ───────── Closing (brand) ───────── */
.closing { display: grid; grid-template-rows: auto 1fr auto; }
.closing .logo { width: 300px; }
.closing__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--s-4); align-self: center; list-style: none; }
.closing__grid li { border-top: 2px solid rgb(255 255 255 / .35); padding-top: var(--s-3); }
.closing__grid b { display: block; font-size: 16px; letter-spacing: .14em; color: var(--brand-gold); margin-bottom: var(--s-2); }
.closing__grid h4 { font-size: 30px; font-weight: 600; line-height: 1.2; }
.closing__grid p { font-size: 21px; line-height: 1.4; color: rgb(255 255 255 / .78); margin-top: var(--s-1); }
.closing__q { font-size: 64px; font-weight: 600; line-height: 1.1; letter-spacing: -0.01em; max-width: 1400px; }
.closing__q + .gold-rule { width: 220px; margin-top: var(--s-4); }
.slide--brand .eyebrow { color: #fff; }
.slide--brand .brand-edge { background: var(--brand-gold); height: 10px; }

/* ═════════ v3 — 9-slide field story ═════════ */

/* Status label — fixed vocabulary: LIVE / BUILT / PILOT / PROPOSED / PLANNED / LATER DIRECTION */
.st { display: inline-flex; align-items: center; gap: 10px; padding: 9px 16px 8px; border-radius: 8px; font-size: 16px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; background: var(--surface-alt); color: var(--text-primary); }
.st::before { content: ""; width: 9px; height: 9px; border-radius: 50%; flex: none; }
.st small { font-size: 15px; font-weight: 500; letter-spacing: .02em; text-transform: none; color: var(--text-secondary); }
.st--live::before     { background: #1F8A4C; box-shadow: 0 0 0 4px rgb(31 138 76 / .15); }
.st--built::before    { background: var(--brand-primary); }
.st--proposed::before { background: var(--brand-gold); }
.st--planned          { background: transparent; box-shadow: inset 0 0 0 1.5px var(--line-strong); }
.st--planned::before  { border: 2px solid var(--text-tertiary); }
.st--later            { background: transparent; box-shadow: inset 0 0 0 1.5px var(--line); color: var(--text-tertiary); }
.st--later::before    { border: 2px dashed var(--text-tertiary); }

/* Content slide v3: two columns, the visual is the hero */
.cs { display: grid; grid-template-columns: 640px 1fr; column-gap: 96px; padding-top: 88px; padding-bottom: 80px; }
.cs .logo--corner { top: 52px; }
.cs__copy { display: flex; flex-direction: column; }
.cs__copy .eyebrow { margin-bottom: 28px; }
.cs__copy h2 { font-size: 72px; font-weight: 600; line-height: 1.02; letter-spacing: -0.022em; }
.cs__ask { margin-top: 36px; padding-left: 24px; border-left: 4px solid var(--brand-gold); font-size: 32px; font-weight: 400; line-height: 1.3; color: var(--text-primary); }
.cs__ask span { display: block; font-size: 15px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--text-tertiary); margin-bottom: 8px; }
.cs__lede { margin-top: 32px; font-size: 26px; line-height: 1.45; color: var(--text-secondary); }
.cs__foot { margin-top: auto; display: grid; gap: 18px; }
.cs__sys { font-size: 15px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--text-tertiary); }
.cs__sys b { color: var(--text-secondary); font-weight: 600; }
.cs__note { font-size: 18px; line-height: 1.45; color: var(--text-secondary); padding-top: 18px; border-top: 1.5px solid var(--line); }
.cs__vis { position: relative; margin-top: 64px; border-radius: 28px; background: var(--surface-warm); display: grid; place-items: center; overflow: hidden; }
.cs__vis .illustrative { top: 24px; right: 28px; }

/* Slide 1 — opening: field day */
.fd { display: grid; grid-template-rows: auto 1fr auto; }
.fd__top { display: flex; justify-content: space-between; align-items: flex-start; }
.fd__head { align-self: center; padding-bottom: 40px; }
.fd__head h1 { font-size: 112px; font-weight: 600; line-height: .98; letter-spacing: -0.03em; }
.fd__head p { margin-top: 32px; font-size: 32px; line-height: 1.4; color: var(--text-secondary); max-width: 1100px; }
.day { list-style: none; display: grid; grid-template-columns: repeat(5, 1fr); position: relative; padding-top: 34px; }
.day::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 2px; background: var(--line); }
.day::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 2px; background: var(--brand-primary); transform-origin: left; transform: scaleX(0); transition: transform 1400ms var(--ease-in-out) 500ms; }
.slide.is-active .day::after { transform: scaleX(1); }
.day li { position: relative; padding-right: 32px; }
.day li::before { content: ""; position: absolute; top: -43px; left: 0; width: 18px; height: 18px; border-radius: 50%; background: var(--surface); border: 3px solid var(--brand-primary); }
.day b { display: block; font-size: 15px; font-weight: 700; letter-spacing: .14em; color: var(--brand-primary); margin-bottom: 10px; }
.day h4 { font-size: 30px; font-weight: 600; line-height: 1.15; }
.day p { margin-top: 8px; font-size: 21px; line-height: 1.35; color: var(--text-secondary); }
.fd__by { display: flex; justify-content: space-between; align-items: flex-end; margin-top: 48px; padding-bottom: 8px; font-size: 21px; color: var(--text-secondary); }
.fd__by strong { color: var(--text-primary); font-weight: 600; }

/* Slide 2 — portfolio */
.pf { display: grid; grid-template-rows: auto 1fr auto; padding-top: 88px; }
.pf__head { display: flex; justify-content: space-between; align-items: flex-end; padding-right: 220px; }
.pf__head h2 { font-size: 72px; font-weight: 600; line-height: 1.02; letter-spacing: -0.022em; margin-top: 24px; }
.pf__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; margin-top: 64px; align-items: stretch; }
.pf__col { display: flex; flex-direction: column; gap: 16px; }
.pf__col > b { font-size: 15px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--brand-primary); padding-bottom: 14px; border-bottom: 2px solid var(--brand-primary); }
.pf__col > b span { color: var(--text-tertiary); margin-right: 10px; }
.pf__q { font-size: 24px; line-height: 1.3; color: var(--text-secondary); min-height: 64px; }
.card { background: var(--surface-warm); border-radius: 18px; padding: 26px 26px 24px; display: grid; gap: 14px; align-content: start; flex: 1; }
.card h4 { font-size: 28px; font-weight: 600; line-height: 1.15; }
.card p { font-size: 20px; line-height: 1.4; color: var(--text-secondary); }
.card .st { justify-self: start; }
.pf__key { display: flex; gap: 28px; align-items: center; margin-top: 40px; font-size: 17px; color: var(--text-tertiary); }

/* Slide 3 — phone */
.cs__vis .phone { width: 400px; height: 800px; border-radius: 60px; padding: 13px; box-shadow: 0 50px 90px -30px rgb(31 23 24 / .45), 0 0 0 1px rgb(31 23 24 / .08); }
.cs__vis .phone__screen { border-radius: 48px; }
.cs__vis .wa-bar { padding: 46px 18px 14px; }
.cs__vis .wa-bar b { font-size: 16px; }
.cs__vis .wa-msg p { font-size: 14.5px; }
.cs__vis .wa-msg[data-step] { transform: translateY(36px) scale(.96); transform-origin: left bottom; transition-timing-function: var(--ease-spring); }
.cs__vis .wa-msg[data-step].is-shown { transform: none; }
.slot { width: 300px; aspect-ratio: 4 / 5; border-radius: 10px; position: relative; display: grid; place-items: center; text-align: center;
  background: linear-gradient(160deg, #FFF4D9 0%, #FDF7F7 50%, #F6DEDE 100%); }
.slot::before { content: ""; position: absolute; inset: 12px; border: 1.5px dashed rgb(201 20 41 / .35); border-radius: 6px; }
.slot div { position: relative; padding: 0 34px; }
.slot img { width: 110px; display: block; margin: 0 auto 18px; }
.slot b { display: block; font-size: 16px; color: var(--brand-primary); }
.slot span { display: block; margin-top: 6px; font-size: 13px; color: var(--text-secondary); }

/* Slide 4 — Incentivate view */
.iv { width: 640px; background: var(--surface); border-radius: 22px; box-shadow: var(--shadow-2); overflow: hidden; }
.iv__top { padding: 30px 34px 26px; border-bottom: 1px solid var(--line); }
.iv__top span { font-size: 15px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--text-tertiary); }
.iv__amt { display: flex; align-items: baseline; gap: 16px; margin-top: 10px; }
.iv__amt strong { font-size: 60px; font-weight: 600; letter-spacing: -0.02em; color: var(--text-primary); }
.iv__amt em { font-style: normal; font-size: 15px; font-weight: 700; letter-spacing: .12em; color: var(--brand-primary); background: var(--brand-blush); padding: 5px 10px; border-radius: 6px; }
.iv__sec { padding: 22px 34px; border-bottom: 1px solid var(--line); }
.iv__sec > span { display: block; font-size: 15px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--brand-primary); margin-bottom: 14px; }
.iv__row { display: flex; justify-content: space-between; align-items: center; padding: 12px 0; font-size: 22px; color: var(--text-primary); }
.iv__row + .iv__row { border-top: 1px dashed var(--line); }
.iv__row i { font-style: normal; color: var(--text-tertiary); letter-spacing: .1em; }
.iv__later { padding: 22px 34px; display: flex; justify-content: space-between; align-items: center; color: var(--text-tertiary); font-size: 22px; background: repeating-linear-gradient(135deg, transparent 0 12px, rgb(31 23 24 / .025) 12px 24px); }
.iv__disc { padding: 16px 34px 22px; font-size: 15px; line-height: 1.45; color: var(--text-secondary); background: var(--surface-warm); }

/* Slide 5 — sorting lead list (FLIP via CSS vars; step 1 = sorted) */
.ll { width: 680px; background: var(--surface); border-radius: 22px; box-shadow: var(--shadow-2); overflow: hidden; }
.ll__top { display: flex; justify-content: space-between; align-items: center; padding: 24px 30px; border-bottom: 1px solid var(--line); }
.ll__top b { font-size: 24px; font-weight: 600; }
.ll__top span { font-size: 15px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--text-tertiary); transition: color var(--dur-s); }
.ll.is-sorted .ll__top span { color: var(--brand-primary); }
.ll__body { position: relative; height: calc(8 * 70px); }
.ll__row { position: absolute; left: 0; right: 0; height: 70px; display: grid; grid-template-columns: 30px 1fr auto; align-items: center; gap: 16px; padding: 0 30px; border-bottom: 1px solid var(--line);
  transform: translateY(calc(var(--u) * 70px)); transition: transform 1100ms var(--ease-in-out); transition-delay: calc(var(--s) * 40ms); }
.ll.is-sorted .ll__row { transform: translateY(calc(var(--s) * 70px)); }
.ll__row .n { font-size: 15px; font-weight: 700; color: var(--text-tertiary); transition: color var(--dur-s); }
.ll.is-sorted .ll__row .n { color: var(--brand-primary); }
.ll__row .who { font-size: 21px; font-weight: 500; color: var(--text-primary); }
.ll__row .who small { display: block; font-size: 15px; font-weight: 400; color: var(--text-tertiary); margin-top: 2px; }
.ll__row em { font-style: normal; font-size: 15px; font-weight: 600; padding: 6px 12px; border-radius: 7px; background: var(--surface-alt); color: var(--text-secondary); }
.ll__row.p1 em { background: var(--brand-primary); color: #fff; }
.ll__row.p2 em, .ll__row.p3 em { background: var(--brand-blush); color: var(--brand-primary); }
.ll__row.done { opacity: .55; }
.ll__foot { padding: 16px 30px; font-size: 16px; color: var(--text-tertiary); border-top: 1px solid var(--line); background: var(--surface-warm); }

/* Slide 6 — allocation flow */
.af { display: grid; grid-template-columns: 1fr 70px 1fr 70px 1fr 70px 1fr; align-items: center; width: 100%; padding: 0 56px; }
.af__node { background: var(--surface); border-radius: 20px; box-shadow: var(--shadow-1); padding: 30px 24px; text-align: center; min-height: 220px; display: grid; align-content: center; gap: 10px; }
.af__node b { font-size: 15px; font-weight: 700; letter-spacing: .14em; color: var(--brand-primary); }
.af__node h4 { font-size: 26px; font-weight: 600; line-height: 1.2; }
.af__node p { font-size: 17px; line-height: 1.4; color: var(--text-tertiary); }
.af__node--hub { background: var(--surface-ink); color: #fff; }
.af__node--hub p { color: rgb(255 255 255 / .6); }
.af__node--hub b { color: var(--brand-gold); }
.af__in { display: grid; gap: 8px; margin-top: 6px; }
.af__in span { font-size: 16px; padding: 8px 10px; border-radius: 8px; background: rgb(255 255 255 / .08); color: rgb(255 255 255 / .85); }
.af__arrow { height: 2px; background: var(--line-strong); position: relative; }
.af__arrow::after { content: ""; position: absolute; right: -2px; top: -6px; border: 7px solid transparent; border-left: 10px solid var(--line-strong); border-right: 0; }

/* Slide 7 — LSQ opportunity with customer context */
.op { width: 760px; display: grid; grid-template-columns: 250px 1fr; background: var(--surface); border-radius: 22px; box-shadow: var(--shadow-2); overflow: hidden; }
.op__tl { background: var(--surface-warm); padding: 26px 22px; border-right: 1px solid var(--line); }
.op__tl > span, .op__pr > span { display: block; font-size: 14px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--text-tertiary); margin-bottom: 18px; }
.call { position: relative; padding: 0 0 20px 22px; border-left: 2px solid var(--line-strong); }
.call::before { content: ""; position: absolute; left: -7px; top: 3px; width: 12px; height: 12px; border-radius: 50%; background: var(--brand-gold); }
.call b { display: block; font-size: 17px; font-weight: 600; }
.call small { font-size: 15px; color: var(--text-tertiary); }
.op__pr { padding: 26px 30px; }
.op__head { display: flex; justify-content: space-between; align-items: center; padding-bottom: 18px; margin-bottom: 18px; border-bottom: 1px solid var(--line); }
.op__head b { font-size: 24px; font-weight: 600; }
.op__head em { font-style: normal; font-size: 14px; font-weight: 700; letter-spacing: .1em; color: var(--brand-primary); background: var(--brand-blush); padding: 5px 10px; border-radius: 6px; }
.pr { display: grid; grid-template-columns: 170px 1fr; gap: 10px 18px; font-size: 19px; line-height: 1.35; }
.pr dt { font-size: 15px; font-weight: 600; letter-spacing: .06em; color: var(--text-tertiary); padding-top: 2px; }
.pr dd { color: var(--text-primary); }

/* Slide 8 — support */
.sp { width: 100%; padding: 56px; display: grid; gap: 22px; }
.sp__next { display: grid; grid-template-columns: auto 1fr 1fr; gap: 18px; align-items: stretch; padding: 22px; border-radius: 18px; box-shadow: inset 0 0 0 2px var(--line-strong); background-image: repeating-linear-gradient(135deg, transparent 0 14px, rgb(31 23 24 / .02) 14px 28px); }
.sp__next .st { align-self: start; }
.sp__next div { font-size: 24px; font-weight: 600; color: var(--text-secondary); }
.sp__next div span { display: block; margin-top: 4px; font-size: 18px; font-weight: 400; color: var(--text-tertiary); }
.sp__now { background: var(--surface); border-radius: 18px; box-shadow: var(--shadow-1); padding: 22px; display: grid; gap: 18px; }
.sp__now .st { justify-self: start; }
.sp__steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 34px; }
.sp__steps div { position: relative; background: var(--surface-ink); color: #fff; border-radius: 14px; padding: 30px 16px; text-align: center; font-size: 32px; font-weight: 600; }
.sp__steps div small { display: block; font-size: 16px; font-weight: 400; color: rgb(255 255 255 / .6); margin-top: 6px; }
.sp__steps div + div::before { content: ""; position: absolute; left: -28px; top: 50%; width: 20px; height: 2px; background: var(--line-strong); }
.sp__link { justify-self: center; width: 2px; height: 30px; background: repeating-linear-gradient(to bottom, var(--text-tertiary) 0 6px, transparent 6px 12px); }

/* Slide 9 — closing */
.cl { display: grid; grid-template-rows: auto auto 1fr auto; }
.cl__top { display: flex; justify-content: space-between; align-items: flex-start; }
.cl__top .logo { width: 290px; }
.cl h2 { margin-top: 56px; font-size: 76px; font-weight: 600; line-height: 1.02; letter-spacing: -0.022em; }
.cl__grid { list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; align-self: center; }
.cl__grid li { border-top: 2px solid rgb(255 255 255 / .35); padding-top: 22px; }
.cl__grid b { display: block; font-size: 15px; letter-spacing: .14em; color: var(--brand-gold); margin-bottom: 12px; }
.cl__grid h4 { font-size: 30px; font-weight: 600; line-height: 1.15; }
.cl__grid p { margin-top: 8px; font-size: 21px; line-height: 1.4; color: rgb(255 255 255 / .8); }
.cl__q { padding: 30px 0 24px; border-top: 1.5px solid rgb(255 255 255 / .25); font-size: 46px; font-weight: 500; line-height: 1.2; max-width: 1500px; }
.cl__q::before { content: "“"; color: var(--brand-gold); }
.cl__q::after { content: "”"; color: var(--brand-gold); }

/* v3 polish */
.cs__foot { margin-top: 44px; }
.cs__foot .st { justify-self: start; }
.cs__copy .cs__note { margin-top: auto; }
.cs__foot .cs__note { display: none; }
.card { flex: none; }
.af__node { min-height: 300px; padding: 34px 22px; }
.af__node h4 { font-size: 32px; }
.af__node p { font-size: 19px; }
.af__in span { font-size: 18px; padding: 10px; }
.op { width: 900px; grid-template-columns: 280px 1fr; }
.op__tl, .op__pr { padding: 32px 30px; }
.call b { font-size: 19px; }
.call small { font-size: 16px; }
.call { padding-bottom: 26px; }
.op__head b { font-size: 28px; }
.pr { grid-template-columns: 150px 1fr; gap: 14px 20px; font-size: 22px; }
.pr dt { font-size: 16px; }
.sp__steps div { padding: 40px 16px; font-size: 38px; }
.sp__next div { font-size: 27px; }
.sp__next div span { font-size: 19px; }
.iv { width: 700px; }
