<!doctype html>
<html lang="pt-BR">
<head>
<meta charset="utf-8">
<title>{{TITULO_AULA}}</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Inter:wght@400;500;600;700;900&family=JetBrains+Mono:wght@400;500;700&display=swap" rel="stylesheet">
<script src="deck-stage.js"></script>
<style>
/* ============================================================
   TOKENS — Direcao C (navy/gold + paper)
   ============================================================ */
:root {
  --font-d: 'Instrument Serif', serif;
  --font-b: 'Inter', sans-serif;
  --font-m: 'JetBrains Mono', monospace;

  /* navy family */
  --navy:   #0E1B2E;
  --navy2:  #162538;
  --navy3:  #1B2D45;
  --cream:  #F5EBD4;
  --cream2: #C6BEA8;
  --cream3: #8A8472;
  --gold:   #D6A648;
  --gold2:  #B98A2F;
  --border: #2A3B55;

  /* paper family */
  --paper:  #FAF7F0;
  --paper2: #F0E9D8;
  --ink:    #0A1020;
  --ink2:   #2A3655;
  --ink3:   #5C6784;
  --brick:  #C0432A;
  --border-p: #DDD5C0;

  /* slide frame */
  --px: 120px;
  --py: 88px;
  --pb: 72px;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html, body { width: 100%; height: 100%; background: #000; overflow: hidden; }

/* ============================================================
   SLIDE BASE
   ============================================================ */
deck-stage section {
  font-family: var(--font-b);
  padding: var(--py) var(--px) var(--pb);
  position: relative;
  overflow: hidden;
}
.s-navy  { background: var(--navy);  color: var(--cream); }
.s-dark  { background: #060E1A;      color: var(--cream); }
.s-paper { background: var(--paper); color: var(--ink); }

/* ============================================================
   ANIMATION SYSTEM
   ============================================================ */
@keyframes kUp    { from { opacity:0; transform:translateY(22px); } to { opacity:1; transform:translateY(0); } }
@keyframes kIn    { from { opacity:0; }                             to { opacity:1; } }
@keyframes kRight { from { opacity:0; transform:translateX(32px); } to { opacity:1; transform:translateX(0); } }
@keyframes kLeft  { from { opacity:0; transform:translateX(-32px); } to { opacity:1; transform:translateX(0); } }
@keyframes kScale { from { opacity:0; transform:scale(0.93); }      to { opacity:1; transform:scale(1); } }
@keyframes kBig   { from { opacity:0; transform:translateY(40px) scale(0.95); } to { opacity:1; transform:translateY(0) scale(1); } }

.a { opacity: 0; }
.a.go.av-up    { animation: kUp    0.65s cubic-bezier(.22,1,.36,1) both; }
.a.go.av-in    { animation: kIn    0.55s cubic-bezier(.22,1,.36,1) both; }
.a.go.av-right { animation: kRight 0.65s cubic-bezier(.22,1,.36,1) both; }
.a.go.av-left  { animation: kLeft  0.65s cubic-bezier(.22,1,.36,1) both; }
.a.go.av-scale { animation: kScale 0.6s  cubic-bezier(.22,1,.36,1) both; }
.a.go.av-big   { animation: kBig   0.8s  cubic-bezier(.22,1,.36,1) both; }

.a-1 { animation-delay: .05s }  .a-2 { animation-delay: .18s }
.a-3 { animation-delay: .31s }  .a-4 { animation-delay: .44s }
.a-5 { animation-delay: .57s }  .a-6 { animation-delay: .70s }
.a-7 { animation-delay: .83s }  .a-8 { animation-delay: .96s }
.a-9 { animation-delay:1.09s }

/* ============================================================
   SHARED — eye + watermark
   ============================================================ */
.eye {
  font-family: var(--font-m);
  font-size: 24px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--cream3);
  display: flex;
  align-items: center;
  gap: 18px;
}
.eye::before {
  content: "";
  width: 44px;
  height: 2px;
  background: var(--gold);
  flex-shrink: 0;
}
.s-paper .eye { color: var(--ink3); }
.s-paper .eye::before { background: var(--brick); }

.wm {
  position: absolute;
  bottom: 52px;
  left: var(--px);
  font-family: var(--font-d);
  font-style: italic;
  font-size: 30px;
  letter-spacing: -.03em;
  color: var(--cream);
  opacity: .55;
}
.wm .dot { color: var(--gold); opacity: 1; }
.s-paper .wm { color: var(--ink); opacity: .45; }
.s-paper .wm .dot { color: var(--brick); opacity: 1; }

/* ============================================================
   SLIDE 01 — TITULO
   ============================================================ */
.s-title {
  background: var(--navy);
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0;
}
.s-title canvas { position: absolute; inset: 0; pointer-events: none; opacity: .35; }
.s-title .accent-vline {
  position: absolute; right: var(--px); top: 10%; bottom: 10%;
  width: 1px;
  background: linear-gradient(to bottom, transparent 0%, var(--gold) 40%, var(--gold) 60%, transparent 100%);
  opacity: .25;
}
.t-label {
  font-family: var(--font-m); font-size: 24px;
  letter-spacing: .14em; text-transform: uppercase;
  color: var(--gold);
  display: flex; align-items: center; gap: 18px;
  margin-bottom: 44px;
}
.t-label::before { content: ""; width: 44px; height: 2px; background: var(--gold); }
.t-h1 {
  font-family: var(--font-d); font-size: 280px;
  line-height: .84; letter-spacing: -.045em;
  color: var(--cream); margin-bottom: 44px;
}
.t-h1 em { font-style: italic; color: var(--gold); }
.t-sub { font-size: 32px; line-height: 1.5; color: var(--cream2); max-width: 32ch; }

/* ============================================================
   SLIDE 02 — DEFINICAO + 4 EXEMPLOS
   ============================================================ */
.s-what { display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: start; }
.s-what .col-l { display: flex; flex-direction: column; gap: 40px; }
.s-what h2 {
  font-family: var(--font-d); font-size: 86px;
  line-height: .93; letter-spacing: -.03em; color: var(--cream);
}
.s-what h2 em { font-style: italic; color: var(--gold); }
.s-what .def { font-size: 28px; line-height: 1.55; color: var(--cream2); max-width: 34ch; }
.s-what .col-r { display: flex; flex-direction: column; gap: 20px; padding-top: 4px; }
.ex-card {
  background: var(--navy2); border: 1px solid var(--border);
  border-radius: 12px; padding: 26px 30px;
  display: grid; grid-template-columns: 164px 1fr; gap: 20px;
  align-items: center; transition: border-color .2s;
}
.ex-card:hover { border-color: var(--gold); }
.ex-card .cron {
  font-family: var(--font-m); font-size: 26px;
  font-weight: 500; color: var(--gold); white-space: nowrap;
}
.ex-card .desc { font-size: 24px; color: var(--cream2); line-height: 1.35; }

/* ============================================================
   SLIDE 03 — COMPARACAO A vs B
   ============================================================ */
.s-compare { background: var(--paper); display: flex; flex-direction: column; gap: 40px; }
.s-compare .header { display: flex; align-items: baseline; gap: 32px; }
.s-compare h2 {
  font-family: var(--font-d); font-size: 96px;
  letter-spacing: -.03em; color: var(--ink); line-height: .9;
}
.s-compare h2 em { font-style: italic; color: var(--brick); }
.compare-grid {
  display: grid; grid-template-columns: 1fr 1fr; flex: 1;
  border: 1.5px solid var(--border-p); border-radius: 16px; overflow: hidden;
}
.cg-col { padding: 44px 52px; display: flex; flex-direction: column; gap: 28px; }
.cg-col:first-child { background: var(--ink); color: var(--cream); }
.cg-col:last-child { background: #fff; color: var(--ink); }
.cg-tag { font-family: var(--font-m); font-size: 24px; letter-spacing: .1em; text-transform: uppercase; }
.cg-col:first-child .cg-tag { color: var(--gold); }
.cg-col:last-child .cg-tag { color: var(--brick); }
.cg-title { font-family: var(--font-d); font-size: 60px; line-height: .95; letter-spacing: -.025em; }
.cg-col:first-child .cg-title { color: var(--cream); }
.cg-col:last-child .cg-title { color: var(--ink); }
.cg-title em { font-style: italic; }
.cg-col:first-child .cg-title em { color: var(--gold); }
.cg-col:last-child .cg-title em { color: var(--brick); }
.cg-rows { display: flex; flex-direction: column; gap: 0; }
.cg-row { display: flex; flex-direction: column; gap: 2px; padding: 16px 0; border-bottom: 1px solid; }
.cg-col:first-child .cg-row { border-color: rgba(255,255,255,.08); }
.cg-col:last-child .cg-row { border-color: var(--border-p); }
.cg-row:last-child { border-bottom: none; }
.cg-lbl { font-family: var(--font-m); font-size: 24px; text-transform: uppercase; letter-spacing: .09em; }
.cg-col:first-child .cg-lbl { color: var(--cream3); }
.cg-col:last-child .cg-lbl { color: #9A8E7A; }
.cg-val { font-size: 26px; font-weight: 600; line-height: 1.2; }
.cg-col:first-child .cg-val { color: var(--cream); }
.cg-col:last-child .cg-val { color: var(--ink); }
.cg-val.yes { color: #2F7D4F !important; }
.cg-val.no { color: #B8321E !important; }

/* ============================================================
   SLIDE 04 — COMANDO/CODIGO
   ============================================================ */
.s-create { display: flex; flex-direction: column; gap: 44px; }
.s-create h2 {
  font-family: var(--font-d); font-size: 100px;
  letter-spacing: -.038em; line-height: .88; color: var(--cream);
}
.s-create h2 em { font-style: italic; color: var(--gold); }
.cmd-box {
  background: #050D18; border: 1px solid var(--border);
  border-radius: 14px; padding: 38px 48px; position: relative;
}
.cmd-pill {
  position: absolute; top: -15px; left: 48px;
  background: var(--gold); color: var(--ink);
  font-family: var(--font-m); font-size: 24px; font-weight: 700;
  letter-spacing: .05em; padding: 4px 16px; border-radius: 20px;
}
.cmd-text { font-family: var(--font-m); font-size: 28px; line-height: 1.65; color: var(--cream); }
.cmd-text .c-cmd { color: var(--gold); }
.cmd-text .c-time { color: #7FC8A0; }
.cmd-text .c-num { color: #9BB8FF; }
.struct-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.struct-card { background: var(--navy2); border: 1px solid var(--border); border-radius: 10px; padding: 22px 26px; }
.sc-label {
  font-family: var(--font-m); font-size: 24px;
  text-transform: uppercase; letter-spacing: .1em;
  color: var(--gold); margin-bottom: 6px;
}
.sc-val { font-size: 26px; color: var(--cream2); line-height: 1.3; }

/* ============================================================
   SLIDE 05 — BREAKDOWN VISUAL (5 BOXES)
   ============================================================ */
.s-cron { background: var(--paper); display: flex; flex-direction: column; gap: 0; }
.s-cron h2 {
  font-family: var(--font-d); font-size: 96px;
  letter-spacing: -.032em; color: var(--ink);
  line-height: .9; margin-bottom: 48px;
}
.s-cron h2 em { font-style: italic; color: var(--brick); }
.cron-vis {
  display: grid; grid-template-columns: repeat(5, 1fr); gap: 0;
  margin-bottom: 44px; border: 1.5px solid var(--border-p);
  border-radius: 14px; overflow: hidden;
}
.cp {
  display: flex; flex-direction: column; align-items: center;
  padding: 24px 12px 20px; border-right: 1px solid var(--border-p);
  background: #fff;
}
.cp:last-child { border-right: none; }
.cp.hi { background: var(--paper2); }
.cp-range {
  font-family: var(--font-m); font-size: 24px;
  text-transform: uppercase; letter-spacing: .1em;
  color: var(--ink3); margin-bottom: 10px;
}
.cp-num {
  font-family: var(--font-m); font-size: 88px; font-weight: 700;
  line-height: 1; color: var(--ink); margin-bottom: 10px;
}
.cp.hi .cp-num { color: var(--brick); }
.cp-name {
  font-family: var(--font-m); font-size: 24px;
  text-transform: uppercase; letter-spacing: .08em;
  color: var(--ink2); font-weight: 600;
}
.cron-eg-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.ceg {
  background: var(--paper2); border: 1px solid var(--border-p);
  border-radius: 8px; padding: 18px 22px;
  display: flex; flex-direction: column; gap: 6px;
}
.ceg-code { font-family: var(--font-m); font-size: 26px; font-weight: 700; color: var(--ink); letter-spacing: .02em; }
.ceg-desc { font-size: 24px; color: var(--ink3); }

/* ============================================================
   SLIDE 06 — CARDS NUMERADOS 1-N
   ============================================================ */
.s-ops { display: flex; flex-direction: column; gap: 44px; }
.s-ops h2 {
  font-family: var(--font-d); font-size: 100px;
  letter-spacing: -.038em; color: var(--cream); line-height: .88;
}
.s-ops h2 em { font-style: italic; color: var(--gold); }
.ops-grid { display: grid; grid-template-columns: repeat(var(--ops-n, 5), 1fr); gap: 20px; flex: 1; }
.op-card {
  background: var(--navy2); border: 1px solid var(--border);
  border-radius: 12px; padding: 32px 28px;
  display: flex; flex-direction: column; gap: 14px;
  transition: border-color .2s;
}
.op-card:hover { border-color: var(--gold); }
.op-n { font-family: var(--font-d); font-size: 76px; line-height: .9; letter-spacing: -.04em; color: var(--gold); }
.op-name { font-size: 28px; font-weight: 700; color: var(--cream); line-height: 1.1; }
.op-desc { font-size: 24px; color: var(--cream3); line-height: 1.45; }

/* ============================================================
   SLIDE 07 — LISTA NUMERADA VERTICAL
   ============================================================ */
.s-bp { display: flex; flex-direction: column; gap: 36px; }
.s-bp h2 {
  font-family: var(--font-d); font-size: 100px;
  letter-spacing: -.038em; color: var(--cream); line-height: .88;
}
.s-bp h2 em { font-style: italic; color: var(--gold); }
.bp-list { display: flex; flex-direction: column; flex: 1; }
.bp-item {
  display: grid; grid-template-columns: 72px 1fr; gap: 28px;
  align-items: baseline; padding: 20px 0; border-bottom: 1px solid var(--border);
}
.bp-item:last-child { border-bottom: none; }
.bp-n { font-family: var(--font-d); font-size: 52px; color: var(--gold); line-height: 1; letter-spacing: -.03em; }
.bp-body { display: flex; flex-direction: column; gap: 2px; }
.bp-title { font-family: var(--font-d); font-size: 40px; letter-spacing: -.02em; color: var(--cream); line-height: 1.05; }
.bp-title em { font-style: italic; color: var(--gold); }
.bp-desc { font-size: 26px; color: var(--cream3); line-height: 1.4; }

/* ============================================================
   SLIDE 08 — YES/NO DOIS PAINEIS
   ============================================================ */
.s-cases { background: var(--paper); display: flex; flex-direction: column; gap: 36px; }
.s-cases .hrow { display: flex; align-items: baseline; gap: 28px; }
.s-cases h2 {
  font-family: var(--font-d); font-size: 96px;
  letter-spacing: -.032em; color: var(--ink); line-height: .9;
}
.s-cases h2 em { font-style: italic; color: var(--brick); }
.case-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; flex: 1; }
.case-col { border-radius: 14px; padding: 32px 36px; display: flex; flex-direction: column; gap: 18px; }
.case-col.yes { background: rgba(47,125,79,.07); border: 1.5px solid rgba(47,125,79,.2); }
.case-col.no  { background: rgba(184,50,30,.06); border: 1.5px solid rgba(184,50,30,.18); }
.case-col-hd {
  font-family: var(--font-m); font-size: 24px;
  text-transform: uppercase; letter-spacing: .1em;
  display: flex; align-items: center; gap: 10px;
}
.case-col.yes .case-col-hd { color: #2F7D4F; }
.case-col.no  .case-col-hd { color: var(--brick); }
.case-items { display: flex; flex-direction: column; gap: 12px; }
.case-item {
  font-size: 24px; color: var(--ink); line-height: 1.35;
  padding: 14px 18px; background: rgba(255,255,255,.55);
  border-radius: 8px; display: flex; gap: 12px; align-items: flex-start;
}
.ci-arrow { flex-shrink: 0; font-size: 24px; margin-top: 3px; color: var(--ink3); }

/* ============================================================
   SLIDE 09 — LIMITACOES (dark)
   ============================================================ */
.s-limits {
  background: #060E1A; display: grid;
  grid-template-columns: 1fr 1fr; gap: 72px; align-items: start;
}
.s-limits .lim-l { display: flex; flex-direction: column; gap: 36px; }
.s-limits h2 {
  font-family: var(--font-d); font-size: 112px; line-height: .86;
  letter-spacing: -.032em; color: var(--cream);
}
.s-limits h2 em { font-style: italic; color: #FF6B4A; }
.warn-box {
  background: rgba(255,107,74,.07); border: 1px solid rgba(255,107,74,.25);
  border-radius: 10px; padding: 22px 26px;
  font-size: 24px; color: rgba(245,235,212,.65); line-height: 1.55;
}
.s-limits .lim-r { display: flex; flex-direction: column; gap: 16px; padding-top: 4px; }
.lim-item {
  display: flex; gap: 18px; align-items: flex-start;
  padding: 22px 26px; background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.06); border-radius: 10px;
  transition: border-color .2s;
}
.lim-item:hover { border-color: rgba(255,255,255,.12); }
.lim-icon { font-size: 24px; flex-shrink: 0; margin-top: 1px; line-height: 1.4; }
.lim-text { font-size: 24px; color: rgba(245,235,212,.68); line-height: 1.45; }
.lim-text strong { color: var(--cream); font-weight: 600; }

/* ============================================================
   SLIDE 10 — QUOTE/STAT GIGANTE
   ============================================================ */
.s-stat { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.s-stat.s-paper { background: var(--paper); color: var(--ink); }
.s-stat .stat-l { display: flex; flex-direction: column; gap: 24px; }
.stat-num {
  font-family: var(--font-d); font-size: 320px;
  line-height: .84; letter-spacing: -.05em; color: var(--gold);
}
.s-paper.s-stat .stat-num { color: var(--brick); }
.stat-unidade { font-family: var(--font-m); font-size: 28px; color: var(--cream3); letter-spacing: .08em; text-transform: uppercase; }
.s-paper.s-stat .stat-unidade { color: var(--ink3); }
.s-stat .stat-r { display: flex; flex-direction: column; gap: 36px; padding-top: 8px; }
.stat-frase {
  font-family: var(--font-d); font-size: 64px;
  line-height: 1.05; letter-spacing: -.025em; color: var(--cream); max-width: 18ch;
}
.s-paper.s-stat .stat-frase { color: var(--ink); }
.stat-frase em { font-style: italic; color: var(--gold); }
.s-paper.s-stat .stat-frase em { color: var(--brick); }
.stat-source {
  font-family: var(--font-m); font-size: 24px;
  color: var(--cream3); letter-spacing: .04em;
}
.s-paper.s-stat .stat-source { color: var(--ink3); }

/* ============================================================
   SLIDE 11 — TIMELINE HORIZONTAL
   ============================================================ */
.s-timeline { background: var(--paper); display: flex; flex-direction: column; gap: 56px; }
.s-timeline h2 {
  font-family: var(--font-d); font-size: 96px;
  letter-spacing: -.032em; color: var(--ink); line-height: .9;
}
.s-timeline h2 em { font-style: italic; color: var(--brick); }
.tl-grid { display: grid; grid-template-columns: repeat(var(--tl-n, 4), 1fr); gap: 0; flex: 1; align-items: stretch; position: relative; }
.tl-grid::before {
  content: ""; position: absolute; left: 6%; right: 6%; top: 56px;
  height: 2px; background: linear-gradient(to right, var(--brick), var(--ink3));
  opacity: .35; z-index: 0;
}
.tl-step {
  display: flex; flex-direction: column; align-items: center;
  text-align: center; padding: 0 14px; position: relative; z-index: 1;
}
.tl-n {
  width: 112px; height: 112px; border-radius: 50%;
  background: var(--paper2); border: 2px solid var(--brick);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-d); font-size: 64px; line-height: 1;
  color: var(--brick); letter-spacing: -.03em;
  margin-bottom: 28px;
}
.tl-label {
  font-family: var(--font-d); font-size: 42px;
  line-height: 1.05; letter-spacing: -.02em; color: var(--ink);
  margin-bottom: 12px;
}
.tl-label em { font-style: italic; color: var(--brick); }
.tl-desc { font-size: 24px; color: var(--ink3); line-height: 1.4; max-width: 24ch; }

/* ============================================================
   SLIDE 13 — PROVA SOCIAL CASCATA (CPL)
   ============================================================ */
.s-prova-social { background: var(--navy); display: flex; flex-direction: column; gap: 36px; }
.ps-header { display: flex; flex-direction: column; gap: 16px; }
.ps-h2 {
  font-family: var(--font-d); font-size: 86px;
  line-height: .93; letter-spacing: -.03em; color: var(--cream);
}
.ps-h2 em { font-style: italic; color: var(--gold); }
.ps-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 18px; flex: 1;
}
.ps-card {
  background: var(--navy2); border: 1px solid var(--border);
  border-radius: 12px; padding: 24px 26px;
  display: flex; flex-direction: column; gap: 14px;
  transition: border-color .2s;
}
.ps-card:hover { border-color: var(--gold); }
.ps-foto {
  width: 56px; height: 56px; border-radius: 50%;
  background: var(--navy3); display: flex; align-items: center; justify-content: center;
  font-size: 32px; flex-shrink: 0;
}
.ps-info { display: flex; flex-direction: column; gap: 2px; }
.ps-nome {
  font-family: var(--font-b); font-size: 24px;
  font-weight: 700; color: var(--cream); line-height: 1.1;
}
.ps-nicho {
  font-family: var(--font-m); font-size: 24px;
  color: var(--cream3); text-transform: uppercase;
  letter-spacing: .08em; font-weight: 500;
}
.ps-frase {
  font-size: 24px; color: var(--cream2);
  line-height: 1.4; flex: 1;
}
.ps-frase em { font-style: italic; color: var(--gold); font-weight: 600; }

/* ============================================================
   SLIDE 14 — PROJECAO 5 ANOS (CPL)
   ============================================================ */
.s-projecao { background: var(--paper); display: flex; flex-direction: column; gap: 32px; }
.proj-header { display: flex; flex-direction: column; gap: 16px; }
.proj-h2 {
  font-family: var(--font-d); font-size: 96px;
  letter-spacing: -.032em; color: var(--ink); line-height: .9;
}
.proj-h2 em { font-style: italic; color: var(--brick); }
.proj-premissa {
  font-size: 24px; color: var(--ink3); font-style: italic;
}
.proj-table {
  display: flex; flex-direction: column;
  border: 1.5px solid var(--border-p); border-radius: 14px;
  overflow: hidden; background: #fff;
}
.proj-row {
  display: grid; grid-template-columns: 1fr 1.5fr 2fr;
  border-bottom: 1px solid var(--border-p);
}
.proj-row:last-child { border-bottom: none; }
.proj-row-head {
  background: var(--paper2);
}
.proj-row-head .proj-col {
  font-family: var(--font-m); font-size: 24px;
  font-weight: 700; text-transform: uppercase;
  letter-spacing: .1em; color: var(--ink2);
}
.proj-row-total {
  background: var(--paper2);
  border-top: 2px solid var(--brick);
}
.proj-row-total .proj-col {
  font-family: var(--font-d); font-weight: 700;
  color: var(--brick);
}
.proj-col {
  padding: 22px 28px;
  font-size: 28px; color: var(--ink);
  display: flex; align-items: center;
}
.proj-ano {
  font-family: var(--font-d); font-size: 40px;
  font-weight: 600; letter-spacing: -.02em;
}
.proj-fat {
  font-family: var(--font-m); font-weight: 600;
  letter-spacing: .02em;
}
.proj-row-total .proj-fat { font-size: 36px; }
.proj-rodape {
  text-align: center; font-size: 28px; color: var(--ink2);
  margin-top: 8px;
}
.proj-rodape em { font-style: italic; color: var(--brick); font-weight: 600; }

/* ============================================================
   SLIDE 15 — SOFT PITCH (CPL2)
   ============================================================ */
.s-soft-pitch { background: var(--navy); display: flex; flex-direction: column; gap: 36px; }
.sp-header { display: flex; flex-direction: column; gap: 16px; }
.sp-h2 {
  font-family: var(--font-d); font-size: 96px;
  letter-spacing: -.038em; color: var(--cream); line-height: .92;
}
.sp-h2 em { font-style: italic; color: var(--gold); }
.sp-body {
  display: grid; grid-template-columns: 1.6fr 1fr;
  gap: 32px; flex: 1;
}
.sp-section-label {
  font-family: var(--font-m); font-size: 24px;
  text-transform: uppercase; letter-spacing: .1em;
  color: var(--gold); margin-bottom: 18px;
}
.sp-section-label.sp-sim { color: #4FB37A; }
.sp-section-label.sp-nao { color: #D67560; }
.sp-entrega { display: flex; flex-direction: column; }
.sp-entrega-grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.sp-entrega-card {
  background: var(--navy2); border: 1px solid var(--border);
  border-radius: 10px; padding: 20px 22px;
  display: flex; flex-direction: column; gap: 6px;
}
.sp-e-titulo {
  font-family: var(--font-d); font-size: 28px;
  letter-spacing: -.02em; color: var(--gold); line-height: 1.1;
}
.sp-e-desc { font-size: 24px; color: var(--cream2); line-height: 1.4; }
.sp-quem { display: flex; flex-direction: column; gap: 32px; }
.sp-quem-col {
  background: var(--navy2); border: 1px solid var(--border);
  border-radius: 12px; padding: 24px 26px;
  display: flex; flex-direction: column; gap: 10px;
}
.sp-quem-sim { border-left: 3px solid #4FB37A; }
.sp-quem-nao { border-left: 3px solid #D67560; }
.sp-perfil { font-size: 24px; color: var(--cream); line-height: 1.45; }

/* ============================================================
   SLIDE 16 — DEMOLICAO DE OBJECAO (CPL)
   ============================================================ */
.s-demolicao { background: #060E1A; display: flex; flex-direction: column; gap: 36px; }
.dem-header { display: flex; flex-direction: column; }
.dem-body {
  display: grid; grid-template-columns: 1fr 80px 1fr;
  gap: 28px; flex: 1; align-items: stretch;
}
.dem-objecao, .dem-reframing {
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 14px; padding: 36px 40px;
  display: flex; flex-direction: column; gap: 24px;
}
.dem-objecao { border-left: 3px solid #FF6B4A; }
.dem-reframing { border-left: 3px solid var(--gold); }
.dem-label {
  font-family: var(--font-m); font-size: 24px;
  text-transform: uppercase; letter-spacing: .12em;
  color: #FF6B4A; font-weight: 700;
}
.dem-label-bom { color: var(--gold); }
.dem-objecao-quote, .dem-reframe-quote {
  font-family: var(--font-d); font-size: 48px;
  line-height: 1.1; letter-spacing: -.02em;
  color: var(--cream);
}
.dem-objecao-quote { color: rgba(245,235,212,.7); }
.dem-validacao {
  font-size: 24px; color: rgba(245,235,212,.5);
  line-height: 1.5; font-style: italic;
}
.dem-arrow {
  font-size: 64px; color: var(--gold);
  display: flex; align-items: center; justify-content: center;
  font-weight: 700;
}
.dem-case {
  background: rgba(214,166,72,.08);
  border: 1px solid rgba(214,166,72,.2);
  border-radius: 10px; padding: 18px 22px;
  display: flex; flex-direction: column; gap: 4px;
}
.dem-case-label {
  font-family: var(--font-m); font-size: 24px;
  text-transform: uppercase; letter-spacing: .12em;
  color: var(--gold); font-weight: 700; margin-bottom: 4px;
}
.dem-case-nome {
  font-family: var(--font-d); font-size: 32px;
  color: var(--cream); line-height: 1.1;
}
.dem-case-resultado {
  font-family: var(--font-m); font-size: 26px;
  color: var(--gold); font-weight: 700;
}

/* ============================================================
   SLIDE 12 — FECHAMENTO
   ============================================================ */
.s-close { background: var(--navy); display: flex; flex-direction: column; justify-content: center; }
.s-close .bg-word {
  position: absolute; right: -40px; top: 50%;
  transform: translateY(-52%);
  font-family: var(--font-d); font-style: italic;
  font-size: 500px; line-height: .85;
  color: rgba(214,166,72,.04); letter-spacing: -.05em;
  pointer-events: none; user-select: none;
}
.s-close .close-eye {
  font-family: var(--font-m); font-size: 18px;
  letter-spacing: .12em; text-transform: uppercase; color: var(--gold);
  display: flex; align-items: center; gap: 18px; margin-bottom: 40px;
}
.s-close .close-eye::before { content: ""; width: 44px; height: 2px; background: var(--gold); }
.s-close .big {
  font-family: var(--font-d); font-size: 240px;
  line-height: .84; letter-spacing: -.045em;
  color: var(--cream); margin-bottom: 44px;
}
.s-close .big em { font-style: italic; color: var(--gold); display: block; }
.s-close .close-sub { font-size: 30px; color: var(--cream2); max-width: 36ch; line-height: 1.5; }
.s-close .close-sub code {
  font-family: var(--font-m); font-size: 26px;
  background: rgba(214,166,72,.12); color: var(--gold);
  padding: 2px 10px; border-radius: 6px;
}
</style>
</head>
<body>
<deck-stage width="1920" height="1080">

{{SLIDES}}

</deck-stage>

<script>
/* ============================================================
   ANIMATION ENGINE
   ============================================================ */
const sections = [...document.querySelectorAll('deck-stage section')];

function triggerSlide(idx) {
  sections.forEach(s => {
    s.querySelectorAll('.a.go').forEach(el => el.classList.remove('go'));
  });
  const slide = sections[idx];
  if (!slide) return;
  const targets = [...slide.querySelectorAll('.a')];
  void slide.offsetWidth;
  targets.forEach(el => el.classList.add('go'));
}

window.addEventListener('message', e => {
  if (e.data && typeof e.data.slideIndexChanged === 'number') {
    triggerSlide(e.data.slideIndexChanged);
  }
});

setTimeout(() => triggerSlide(0), 380);

/* ============================================================
   PARTICLES — Slide 01
   ============================================================ */
const canvas = document.getElementById('pt-canvas');
if (canvas) {
  const ctx = canvas.getContext('2d');
  let pts = [];

  function resize() {
    canvas.width  = canvas.offsetWidth  || 1920;
    canvas.height = canvas.offsetHeight || 1080;
  }

  function init() {
    resize();
    pts = Array.from({ length: 90 }, () => ({
      x: Math.random() * canvas.width,
      y: Math.random() * canvas.height,
      r: Math.random() * 1.8 + 0.4,
      vx: (Math.random() - .5) * .28,
      vy: (Math.random() - .5) * .28,
      a: Math.random() * .5 + .08
    }));
  }

  function draw() {
    ctx.clearRect(0, 0, canvas.width, canvas.height);
    pts.forEach(p => {
      ctx.beginPath();
      ctx.arc(p.x, p.y, p.r, 0, Math.PI * 2);
      ctx.fillStyle = `rgba(214,166,72,${p.a})`;
      ctx.fill();
      p.x += p.vx; p.y += p.vy;
      if (p.x < 0) p.x = canvas.width;
      if (p.x > canvas.width) p.x = 0;
      if (p.y < 0) p.y = canvas.height;
      if (p.y > canvas.height) p.y = 0;
    });
    for (let i = 0; i < pts.length; i++) {
      for (let j = i + 1; j < pts.length; j++) {
        const d = Math.hypot(pts[i].x - pts[j].x, pts[i].y - pts[j].y);
        if (d < 140) {
          ctx.beginPath();
          ctx.strokeStyle = `rgba(214,166,72,${.07 * (1 - d / 140)})`;
          ctx.lineWidth = .6;
          ctx.moveTo(pts[i].x, pts[i].y);
          ctx.lineTo(pts[j].x, pts[j].y);
          ctx.stroke();
        }
      }
    }
    requestAnimationFrame(draw);
  }

  init();
  draw();
}
</script>
</body>
</html>
