/* global React */

// ============================================================
// DECK NEW WAY — 4 linhas (C/D/E/F) × 12 layouts essenciais
// 1920×1080
// ============================================================

const C = {
  aurora: '#7418DA',
  neuralPurple: '#371A82',
  synapse: '#792BB8',
  quantum: '#AA4BEF',
  coreSlate: '#434A54',
  systemGray: '#626A75',
  neuralNight: '#1E242C',
  neuralMist: '#A7AFBA',
  softIface: '#C8CED7',
  lightCanvas: '#EFF1F5',
};

const SANS = "'Inter', sans-serif";
const SERIF = "'Inter', sans-serif"; // brand: Inter italic 300 substitui Instrument Serif
const MONO = "'JetBrains Mono', 'Courier New', monospace";

const SLIDE_W = 1920;
const SLIDE_H = 1080;

// ============================================================
// FRAME BASE
// ============================================================
const Slide = ({ children, bg = '#fff', color = C.coreSlate, style = {} }) => (
  <div style={{
    width: SLIDE_W, height: SLIDE_H, background: bg, color,
    fontFamily: SANS, position: 'relative', overflow: 'hidden',
    ...style,
  }}>
    {children}
  </div>
);

// Logo institucional
// size = WIDTH em px (logo é horizontal 7.2:1)
const Logo = ({ dark = false, size = 160, top = 56, left = 56, right = null }) => (
  <img
    src={`assets/marca/logo-horizontal${dark ? '-branco' : ''}.svg`}
    alt="newway"
    style={{
      position: 'absolute', top,
      ...(right != null ? { right } : { left }),
      width: size, height: 'auto', display: 'block',
    }}
  />
);

// Footer institucional (data, página, label)
const Footer = ({ dark = false, page = 1, total = 12, label = 'gruponewway.com.br' }) => (
  <div style={{
    position: 'absolute', bottom: 56, left: 56, right: 56,
    display: 'flex', justifyContent: 'space-between', alignItems: 'center',
    fontSize: 18, fontWeight: 500, letterSpacing: '0.18em', textTransform: 'uppercase',
    color: dark ? 'rgba(255,255,255,.55)' : C.systemGray,
    fontFamily: SANS,
  }}>
    <span>{label}</span>
    <span>{String(page).padStart(2, '0')} / {String(total).padStart(2, '0')}</span>
  </div>
);

// Eyebrow padrão
const Eyebrow = ({ children, color, mb = 24, mono = false }) => (
  <div style={{
    fontSize: 18, fontWeight: 700, letterSpacing: mono ? '0.18em' : '0.24em',
    textTransform: 'uppercase', color, marginBottom: mb,
    fontFamily: mono ? MONO : SANS,
  }}>{children}</div>
);

// ============================================================
// IDENTIDADE C · EDITORIAL DUOTONE
// Foto duotone Aurora + sans bold + serif itálica
// ============================================================
const DuotoneStub = ({ children, h = '100%', tone = C.aurora }) => (
  <div style={{
    width: '100%', height: h, position: 'relative', overflow: 'hidden',
    background: `linear-gradient(160deg, ${C.neuralNight} 0%, ${tone} 60%, ${C.quantum} 100%)`,
  }}>
    <div style={{
      position: 'absolute', inset: 0,
      background: `radial-gradient(circle at 20% 30%, rgba(255,255,255,0.18), transparent 50%), radial-gradient(circle at 75% 80%, rgba(0,0,0,0.4), transparent 60%)`,
    }} />
    <div style={{
      position: 'absolute', inset: 0,
      background: 'repeating-linear-gradient(0deg, transparent, transparent 1px, rgba(0,0,0,0.04) 1px, rgba(0,0,0,0.04) 2px)',
    }} />
    <div style={{ position: 'absolute', inset: 0, display: 'flex', alignItems: 'center', justifyContent: 'center', color: 'rgba(255,255,255,.4)', fontSize: 16, letterSpacing: '0.25em', textTransform: 'uppercase' }}>
      {children || 'foto · duotone'}
    </div>
  </div>
);

// ============================================================
// IDENTIDADE D · TECH ONDA
// Background dark + ondas em outline NW
// ============================================================
const Waves = ({ variant = 'topright', opacity = 1, color = C.aurora, color2 = C.quantum }) => {
  const presets = {
    topright: { transform: 'translate(1200px, -200px) rotate(15deg) scale(1.4)' },
    bottomleft: { transform: 'translate(-200px, 600px) rotate(-15deg) scale(1.5)' },
    full: { transform: 'translate(-100px, 0px) scale(1.8)' },
    side: { transform: 'translate(1100px, 100px) scale(1.2)' },
  };
  const id = `dgrad-${variant}-${color.slice(1)}`;
  return (
    <svg width="900" height="1200" viewBox="0 0 900 1200" style={{
      position: 'absolute', top: 0, left: 0,
      ...presets[variant], pointerEvents: 'none', opacity,
    }} fill="none">
      <defs>
        <linearGradient id={id} x1="0%" y1="0%" x2="100%" y2="100%">
          <stop offset="0%" stopColor={color} stopOpacity="0" />
          <stop offset="40%" stopColor={color} stopOpacity="0.55" />
          <stop offset="100%" stopColor={color2} stopOpacity="0.85" />
        </linearGradient>
      </defs>
      {Array.from({ length: 26 }).map((_, i) => (
        <path key={i}
          d={`M ${100 - i * 4},${300 + i * 6} Q ${300 + i * 8},${100 - i * 3} ${800 + i * 4},${500 + i * 14} T ${1100},${900 + i * 8}`}
          stroke={`url(#${id})`}
          strokeWidth={i % 6 === 0 ? 1.3 : 0.8}
          fill="none"
          strokeOpacity={0.15 + (i % 5) * 0.1}
        />
      ))}
    </svg>
  );
};

// ============================================================
// IDENTIDADE E/F · TECH GRID (cyber dark / light)
// ============================================================
const TechBg = ({ dark = true }) => {
  const grid = dark ? `${C.aurora}25` : `${C.aurora}1A`;
  const grid2 = dark ? `${C.aurora}10` : `${C.aurora}10`;
  const radial = dark ? `${C.aurora}33` : `${C.quantum}25`;
  const scan = dark ? 'rgba(255,255,255,0.025)' : 'rgba(0,0,0,0.025)';
  return (
    <div style={{ position: 'absolute', inset: 0 }}>
      <div style={{
        position: 'absolute', inset: 0,
        backgroundImage: `linear-gradient(${grid} 1px, transparent 1px), linear-gradient(90deg, ${grid} 1px, transparent 1px)`,
        backgroundSize: '80px 80px',
      }} />
      <div style={{
        position: 'absolute', inset: 0,
        backgroundImage: `linear-gradient(${grid2} 1px, transparent 1px), linear-gradient(90deg, ${grid2} 1px, transparent 1px)`,
        backgroundSize: '20px 20px',
      }} />
      <div style={{
        position: 'absolute', inset: 0,
        background: `radial-gradient(circle at 30% 60%, ${radial}, transparent 55%)`,
      }} />
      <div style={{
        position: 'absolute', inset: 0,
        background: `repeating-linear-gradient(0deg, transparent, transparent 3px, ${scan} 3px, ${scan} 4px)`,
        pointerEvents: 'none',
      }} />
    </div>
  );
};

// Header de "sistema" (E e F)
const SysHeader = ({ id = 'NW//DECK', status = 'LIVE', dark = true }) => (
  <div style={{
    position: 'absolute', top: 56, left: 56, right: 56,
    display: 'flex', justifyContent: 'space-between', alignItems: 'center',
    fontFamily: MONO, fontSize: 16, color: dark ? 'rgba(255,255,255,.55)' : C.systemGray,
    letterSpacing: '0.08em',
  }}>
    <div style={{ display: 'flex', alignItems: 'center', gap: 16 }}>
      <span style={{ display: 'inline-block', width: 10, height: 10, borderRadius: 5, background: dark ? C.quantum : C.aurora, boxShadow: `0 0 12px ${dark ? C.quantum : C.aurora}` }} />
      <span style={{ color: dark ? '#fff' : C.coreSlate, fontWeight: 700 }}>{id}</span>
      <span style={{ opacity: 0.4 }}>·</span>
      <span>{new Date().toISOString().slice(0, 10)}</span>
    </div>
    <span style={{
      padding: '6px 14px', border: `1px solid ${dark ? C.quantum : C.aurora}`,
      color: dark ? C.quantum : C.aurora, fontSize: 13,
      letterSpacing: '0.18em', fontWeight: 700,
    }}>{status}</span>
  </div>
);

// ============================================================
// LAYOUTS — recebem theme ('C' | 'D' | 'E' | 'F') + props
// ============================================================
//
// THEMES:
//   C · Editorial duotone   → bg claro/foto, serif itálico, accent aurora
//   D · Tech onda           → bg neuralNight + ondas, sans bold
//   E · Hyper-tech (cyber)  → bg dark #0A0D12 + grid + mono, highlight quantum
//   F · Light-tech          → bg lilás claro #F4F1FA + grid + mono, highlight aurora

// Theme tokens
const TH = {
  C: {
    bg: '#fff', text: C.coreSlate, sub: C.systemGray, accent: C.aurora,
    accent2: C.quantum, dark: false, label: 'gruponewway.com.br · proposta', isCyber: false,
  },
  D: {
    bg: C.neuralNight, text: '#fff', sub: 'rgba(255,255,255,.7)', accent: C.aurora,
    accent2: C.quantum, dark: true, label: 'gruponewway.com.br', isCyber: false,
  },
  E: {
    bg: '#0A0D12', text: '#fff', sub: 'rgba(255,255,255,.7)', accent: C.quantum,
    accent2: C.aurora, dark: true, label: 'gruponewway.com.br // deck', isCyber: true,
  },
  F: {
    bg: '#F4F1FA', text: C.coreSlate, sub: C.systemGray, accent: C.aurora,
    accent2: C.quantum, dark: false, label: 'gruponewway.com.br // deck', isCyber: true,
  },
};

// Background apropriado por tema
const ThemeBg = ({ t }) => {
  if (t === 'C') return null;
  if (t === 'D') return <Waves variant="topright" opacity={0.7} />;
  return <TechBg dark={TH[t].dark} />;
};

// Header apropriado por tema
const ThemeHeader = ({ t, id, status }) => {
  if (TH[t].isCyber) return <SysHeader id={id} status={status} dark={TH[t].dark} />;
  return <Logo dark={TH[t].dark} size={160} />;
};

// Eyebrow tematizado
const ThEyebrow = ({ t, children, mb = 24 }) => {
  const th = TH[t];
  const display = th.isCyber && typeof children === 'string' ? `> ${children.toLowerCase()}` : children;
  return (
    <Eyebrow color={th.accent2 || th.accent} mb={mb} mono={th.isCyber}>
      {display}
    </Eyebrow>
  );
};

// ============================================================
// L01 · CAPA
// ============================================================
const L01_Capa = ({ t = 'C' }) => {
  const th = TH[t];
  return (
    <Slide bg={th.bg} color={th.text}>
      <ThemeBg t={t} />
      <ThemeHeader t={t} id="NW//CAPA" status="DECK" />
      {t === 'C' && (
        <div style={{ position: 'absolute', top: 0, right: 0, width: 760, height: '100%' }}>
          <DuotoneStub h="100%">retrato · time</DuotoneStub>
          <div style={{ position: 'absolute', inset: 0, background: 'linear-gradient(90deg, rgba(255,255,255,1) 0%, rgba(255,255,255,0) 25%)' }} />
        </div>
      )}
      <div style={{ position: 'absolute', top: 360, left: 80, right: t === 'C' ? 820 : 80, zIndex: 2 }}>
        <ThEyebrow t={t}>Proposta de parceria</ThEyebrow>
        <h1 style={{
          fontSize: t === 'C' ? 132 : 156, fontWeight: 800, lineHeight: 0.94,
          letterSpacing: '-0.04em', margin: 0, textWrap: 'balance',
          textTransform: t === 'C' ? 'none' : 'uppercase', color: th.text,
        }}>
          {t === 'C' ? (<>Crescimento <span style={{ fontFamily: SERIF, fontStyle: 'italic', fontWeight: 300, color: th.accent }}>inteligente</span> não é <span style={{ fontFamily: SERIF, fontStyle: 'italic', fontWeight: 400 }}>sorte.</span></>)
            : (<>Crescimento<br />inteligente<br /><span style={{ color: th.accent }}>{th.isCyber ? '$ não_é_sorte' : 'não é sorte.'}</span></>)}
        </h1>
        <div style={{ marginTop: 56, display: 'flex', alignItems: 'center', gap: 40 }}>
          <div>
            <div style={{ fontSize: 16, color: th.sub, letterSpacing: '0.2em', textTransform: 'uppercase', marginBottom: 8, fontFamily: th.isCyber ? MONO : SANS }}>preparado para</div>
            <div style={{ fontSize: 28, fontWeight: 700, color: th.text }}>[ Cliente ]</div>
          </div>
          <div style={{ width: 1, height: 56, background: th.sub, opacity: 0.3 }} />
          <div>
            <div style={{ fontSize: 16, color: th.sub, letterSpacing: '0.2em', textTransform: 'uppercase', marginBottom: 8, fontFamily: th.isCyber ? MONO : SANS }}>por</div>
            <div style={{ fontSize: 28, fontWeight: 700, color: th.text }}>New Way · Grupo</div>
          </div>
        </div>
      </div>
      <Footer dark={th.dark} page={1} label={th.label} />
    </Slide>
  );
};

// ============================================================
// L02 · DIVISOR DE SEÇÃO
// ============================================================
const L02_Divisor = ({ t = 'C' }) => {
  const th = TH[t];
  return (
    <Slide bg={t === 'C' ? th.accent : th.bg} color="#fff">
      {t !== 'C' && <ThemeBg t={t} />}
      <ThemeHeader t={t} id="NW//SECTION" status="02" />
      <div style={{ position: 'absolute', top: '50%', left: 80, right: 80, transform: 'translateY(-50%)', zIndex: 2 }}>
        <div style={{
          fontSize: 320, fontWeight: 800, lineHeight: 1, letterSpacing: '-0.06em',
          color: t === 'C' ? 'rgba(255,255,255,0.18)' : `${th.accent}30`,
          fontFamily: th.isCyber ? MONO : SANS, marginBottom: -120,
        }}>02</div>
        <ThEyebrow t={t} mb={24}>Capítulo 02</ThEyebrow>
        <h2 style={{
          fontSize: 156, fontWeight: 700, lineHeight: 0.95, letterSpacing: '-0.035em',
          color: t === 'C' ? '#fff' : th.text, margin: 0, textWrap: 'balance',
          textTransform: t === 'C' ? 'none' : 'uppercase',
        }}>
          {t === 'C' ? (<>O <span style={{ fontFamily: SERIF, fontStyle: 'italic', fontWeight: 300 }}>contexto</span><br />em que sua<br />empresa decide.</>)
            : (<>O contexto<br />em que sua<br /><span style={{ color: th.accent }}>empresa decide.</span></>)}
        </h2>
      </div>
      <Footer dark page={2} label={th.label} />
    </Slide>
  );
};

// ============================================================
// L03 · AGENDA
// ============================================================
const L03_Agenda = ({ t = 'C' }) => {
  const th = TH[t];
  const items = [
    'Diagnóstico · onde estamos',
    'Mercado · o que mudou',
    'Método · IA aplicada com rigor',
    'Plano · 90 dias para o primeiro resultado',
    'Investimento · proposta comercial',
    'Próximos passos',
  ];
  return (
    <Slide bg={th.bg} color={th.text}>
      <ThemeBg t={t} />
      <ThemeHeader t={t} id="NW//AGENDA" status="06 ITEMS" />
      <div style={{ position: 'absolute', top: 200, left: 80, right: 80 }}>
        <ThEyebrow t={t}>Agenda</ThEyebrow>
        <h2 style={{ fontSize: 96, fontWeight: 700, lineHeight: 1, letterSpacing: '-0.03em', margin: 0, color: th.text }}>
          {t === 'C' ? (<>Por onde <span style={{ fontFamily: SERIF, fontStyle: 'italic', fontWeight: 300, color: th.accent }}>vamos</span>.</>)
            : 'Por onde vamos.'}
        </h2>
      </div>
      <div style={{
        position: 'absolute', top: 480, left: 80, right: 80,
        display: 'grid', gridTemplateColumns: '1fr 1fr', gap: '24px 80px',
      }}>
        {items.map((it, i) => (
          <div key={i} style={{
            display: 'flex', alignItems: 'baseline', gap: 24,
            padding: '24px 0',
            borderTop: `1px solid ${th.dark ? 'rgba(255,255,255,.15)' : 'rgba(67,74,84,.15)'}`,
          }}>
            <span style={{
              fontFamily: th.isCyber ? MONO : SANS, fontSize: 22, fontWeight: 700,
              color: th.accent, letterSpacing: '0.1em', minWidth: 56,
            }}>{String(i + 1).padStart(2, '0')}</span>
            <span style={{ fontSize: 30, fontWeight: 500, color: th.text, lineHeight: 1.3 }}>{it}</span>
          </div>
        ))}
      </div>
      <Footer dark={th.dark} page={3} label={th.label} />
    </Slide>
  );
};

// ============================================================
// L04 · CONTEÚDO + BULLETS
// ============================================================
const L04_Conteudo = ({ t = 'C' }) => {
  const th = TH[t];
  const points = [
    { k: '01', t: 'Decisões viraram aposta', d: 'Times grandes, dados ruins. Crescer virou tentativa-erro.' },
    { k: '02', t: 'IA virou ruído', d: 'Ferramenta nova toda semana, e ninguém sabe o que move o ponteiro.' },
    { k: '03', t: 'Método ficou pra trás', d: 'Sem rigor, IA só amplifica o que já tava errado.' },
  ];
  return (
    <Slide bg={th.bg} color={th.text}>
      <ThemeBg t={t} />
      <ThemeHeader t={t} id="NW//DIAGNOSE" status="03 PTS" />
      <div style={{ position: 'absolute', top: 200, left: 80, width: 720 }}>
        <ThEyebrow t={t}>Diagnóstico</ThEyebrow>
        <h2 style={{
          fontSize: 84, fontWeight: 700, lineHeight: 1, letterSpacing: '-0.03em', margin: 0, color: th.text,
          textWrap: 'balance',
        }}>
          {t === 'C' ? (<>O que travou o <span style={{ fontFamily: SERIF, fontStyle: 'italic', fontWeight: 300, color: th.accent }}>crescimento.</span></>)
            : 'O que travou o crescimento.'}
        </h2>
        <p style={{
          fontSize: 24, lineHeight: 1.6, color: th.sub, marginTop: 48,
          fontFamily: th.isCyber ? MONO : SANS,
        }}>
          {t === 'C' || t === 'D'
            ? 'Olhamos centenas de operações. As travas se repetem.'
            : '// olhamos centenas de operações. as travas se repetem.'}
        </p>
      </div>
      <div style={{
        position: 'absolute', top: 200, right: 80, width: 880,
        display: 'flex', flexDirection: 'column', gap: 32,
      }}>
        {points.map(p => (
          <div key={p.k} style={{
            padding: '32px 36px', display: 'flex', gap: 28, alignItems: 'flex-start',
            background: th.dark ? 'rgba(255,255,255,.04)' : 'rgba(116,24,218,.05)',
            border: `1px solid ${th.dark ? 'rgba(255,255,255,.1)' : 'rgba(116,24,218,.18)'}`,
          }}>
            <div style={{
              fontFamily: th.isCyber ? MONO : SANS, fontSize: 22, fontWeight: 800,
              color: th.accent, letterSpacing: '0.1em',
            }}>{p.k}</div>
            <div>
              <div style={{ fontSize: 32, fontWeight: 700, color: th.text, marginBottom: 10, letterSpacing: '-0.015em' }}>{p.t}</div>
              <div style={{ fontSize: 22, color: th.sub, lineHeight: 1.5 }}>{p.d}</div>
            </div>
          </div>
        ))}
      </div>
      <Footer dark={th.dark} page={4} label={th.label} />
    </Slide>
  );
};

// ============================================================
// L05 · DADO / KPI GIGANTE
// ============================================================
const L05_Dado = ({ t = 'C' }) => {
  const th = TH[t];
  return (
    <Slide bg={th.bg} color={th.text}>
      <ThemeBg t={t} />
      <ThemeHeader t={t} id="NW//METRIC.001" status="↑ 3x" />
      <div style={{ position: 'absolute', top: 220, left: 80, right: 80 }}>
        <ThEyebrow t={t}>O número que importa</ThEyebrow>
        <div style={{
          fontSize: 480, fontWeight: 800, color: th.accent, letterSpacing: '-0.06em',
          lineHeight: 0.85, fontFeatureSettings: '"tnum" 1',
        }}>
          3<span style={{ color: th.accent2 }}>x</span>
        </div>
        <div style={{ marginTop: 24, fontSize: 36, fontWeight: 500, color: th.text, maxWidth: 1100, lineHeight: 1.3 }}>
          {t === 'C' ? (<>é o que separa quem trata IA como <span style={{ fontFamily: SERIF, fontStyle: 'italic' }}>moda</span> de quem trata como <span style={{ fontFamily: SERIF, fontStyle: 'italic' }}>método.</span></>)
            : 'é o que separa quem trata IA como moda de quem trata como método.'}
        </div>
      </div>
      <div style={{
        position: 'absolute', bottom: 160, left: 80, right: 80,
        display: 'grid', gridTemplateColumns: '1fr 1fr 1fr', gap: 0,
        border: `1px solid ${th.accent}40`, fontFamily: th.isCyber ? MONO : SANS,
      }}>
        {[
          ['CICLO', 'até 50%', 'menor time-to-decision'],
          ['CUSTO', 'até 40%', 'menos no CAC'],
          ['VELOCIDADE', '90 dias', 'até a primeira métrica'],
        ].map(([k, v, sub], i) => (
          <div key={i} style={{
            padding: '24px 28px',
            borderRight: i < 2 ? `1px solid ${th.accent}25` : 'none',
            background: th.dark ? 'rgba(116,24,218,.1)' : 'rgba(170,75,239,.06)',
          }}>
            <div style={{ fontSize: 14, color: th.accent, letterSpacing: '0.2em', marginBottom: 12 }}>{k}</div>
            <div style={{ fontSize: 56, fontWeight: 700, color: th.text, letterSpacing: '-0.03em' }}>{v}</div>
            <div style={{ fontSize: 14, color: th.sub, marginTop: 4 }}>{sub}</div>
          </div>
        ))}
      </div>
      <Footer dark={th.dark} page={5} label={th.label} />
    </Slide>
  );
};

// ============================================================
// L06 · QUOTE / DEPOIMENTO
// ============================================================
const L06_Quote = ({ t = 'C' }) => {
  const th = TH[t];
  return (
    <Slide bg={th.bg} color={th.text}>
      <ThemeBg t={t} />
      <ThemeHeader t={t} id="NW//QUOTE.07" status="STMT" />
      {t === 'C' && (
        <div style={{ position: 'absolute', top: 0, left: 0, width: 600, height: '100%' }}>
          <DuotoneStub h="100%" tone={C.synapse}>cliente · executivo</DuotoneStub>
        </div>
      )}
      <div style={{
        position: 'absolute', top: 280, left: t === 'C' ? 680 : 80, right: 80,
      }}>
        <div style={{
          fontSize: 320, color: th.accent, lineHeight: 0.7, fontWeight: 700,
          marginBottom: -60, fontFamily: SERIF, opacity: 0.85,
        }}>"</div>
        <h2 style={{
          fontSize: t === 'C' ? 56 : 64, fontWeight: t === 'C' ? 500 : 600, lineHeight: 1.2, letterSpacing: '-0.02em',
          color: th.text, margin: 0,
          fontFamily: t === 'C' ? SERIF : SANS, fontStyle: t === 'C' ? 'italic' : 'normal',
          textWrap: 'balance', maxWidth: 1100,
        }}>
          A gente não vende IA. Vende um jeito diferente de tomar decisão<br />— com dados, método e gente sênior do lado.
        </h2>
        <div style={{
          marginTop: 56, display: 'flex', alignItems: 'center', gap: 24,
          paddingTop: 24, borderTop: `1px ${th.isCyber ? 'dashed' : 'solid'} ${th.accent}55`,
        }}>
          <div style={{ width: 64, height: 64, borderRadius: 32, background: `linear-gradient(135deg, ${C.synapse}, ${C.quantum})`, display: 'flex', alignItems: 'center', justifyContent: 'center', color: '#fff', fontWeight: 800, fontSize: 24, letterSpacing: '-0.02em' }}>nw</div>
          <div>
            <img src={th.dark ? "assets/marca/logo-horizontal-branco.svg" : "assets/marca/logo-horizontal.svg"} alt="New Way" style={{ width: 180, height: 'auto', display: 'block' }} />
            <div style={{ fontSize: 16, color: th.sub, fontFamily: th.isCyber ? MONO : SANS, letterSpacing: '0.1em', marginTop: 6 }}>manifesto · 2026</div>
          </div>
        </div>
      </div>
      <Footer dark={th.dark} page={6} label={th.label} />
    </Slide>
  );
};

// ============================================================
// L07 · TIME / PESSOAS
// ============================================================
const L07_Time = ({ t = 'C' }) => {
  const th = TH[t];
  const team = [
    { n: 'Estrategista', r: 'Sócio · Estratégia' },
    { n: 'IA Aplicada', r: 'Líder · Engenharia de IA' },
    { n: 'Crescimento', r: 'Head · Growth & RevOps' },
    { n: 'Produto', r: 'Lead · Engineering' },
  ];
  return (
    <Slide bg={th.bg} color={th.text}>
      <ThemeBg t={t} />
      <ThemeHeader t={t} id="NW//TEAM" status="04 PEOPLE" />
      <div style={{ position: 'absolute', top: 200, left: 80, width: 760 }}>
        <ThEyebrow t={t}>Time alocado</ThEyebrow>
        <h2 style={{ fontSize: 84, fontWeight: 700, lineHeight: 1, letterSpacing: '-0.03em', margin: 0, color: th.text }}>
          {t === 'C' ? (<>Quem vai <span style={{ fontFamily: SERIF, fontStyle: 'italic', fontWeight: 300, color: th.accent }}>tocar</span> isso.</>)
            : 'Quem vai tocar isso.'}
        </h2>
        <p style={{ fontSize: 24, lineHeight: 1.6, color: th.sub, marginTop: 40, fontFamily: th.isCyber ? MONO : SANS }}>
          {th.isCyber ? '// times pequenos. sêniors. dedicação alta.' : 'Times pequenos. Sêniors. Dedicação alta.'}
        </p>
      </div>
      <div style={{
        position: 'absolute', top: 200, right: 80, width: 880,
        display: 'grid', gridTemplateColumns: '1fr 1fr', gap: 24,
      }}>
        {team.map((p, i) => (
          <div key={i} style={{
            padding: 32, background: th.dark ? 'rgba(255,255,255,.04)' : 'rgba(116,24,218,.05)',
            border: `1px solid ${th.dark ? 'rgba(255,255,255,.1)' : 'rgba(116,24,218,.18)'}`,
          }}>
            <div style={{ width: '100%', height: 220, marginBottom: 24, position: 'relative', overflow: 'hidden' }}>
              <DuotoneStub h={220} tone={i % 2 === 0 ? C.aurora : C.synapse}>retrato</DuotoneStub>
            </div>
            <div style={{ fontSize: 28, fontWeight: 700, color: th.text, marginBottom: 4 }}>{p.n}</div>
            <div style={{ fontSize: 16, color: th.sub, fontFamily: th.isCyber ? MONO : SANS, letterSpacing: '0.1em', textTransform: 'uppercase' }}>{p.r}</div>
          </div>
        ))}
      </div>
      <Footer dark={th.dark} page={7} label={th.label} />
    </Slide>
  );
};

// ============================================================
// L08 · CASE / CLIENTE
// ============================================================
const L08_Case = ({ t = 'C' }) => {
  const th = TH[t];
  return (
    <Slide bg={th.bg} color={th.text}>
      <ThemeBg t={t} />
      <ThemeHeader t={t} id="NW//CASE.01" status="LIVE" />
      <div style={{ position: 'absolute', top: 200, left: 80, right: 80 }}>
        <ThEyebrow t={t}>Case · indústria nacional</ThEyebrow>
        <h2 style={{ fontSize: 96, fontWeight: 700, lineHeight: 1, letterSpacing: '-0.03em', margin: 0, color: th.text }}>
          {t === 'C' ? (<>De ciclo de venda <span style={{ fontFamily: SERIF, fontStyle: 'italic', fontWeight: 300, color: th.accent }}>longo</span> a previsível.</>)
            : 'De ciclo longo a previsível.'}
        </h2>
      </div>
      <div style={{
        position: 'absolute', top: 520, left: 80, right: 80,
        display: 'grid', gridTemplateColumns: '1fr 1fr 1fr', gap: 40,
      }}>
        {[
          { k: 'Antes', v: '~90 dias', d: 'Ciclo médio sem priorização nem scoring.' },
          { k: 'Depois', v: '~35 dias', d: 'Mesmo time, IA + scoring novo.' },
          { k: 'Resultado', v: '+2x receita', d: 'No primeiro semestre pós-sprint.', highlight: true },
        ].map((m, i) => (
          <div key={i} style={{
            padding: 36, background: m.highlight ? th.accent : (th.dark ? 'rgba(255,255,255,.04)' : 'rgba(116,24,218,.05)'),
            color: m.highlight ? '#fff' : th.text,
            border: `1px solid ${m.highlight ? th.accent : (th.dark ? 'rgba(255,255,255,.1)' : 'rgba(116,24,218,.18)')}`,
          }}>
            <div style={{
              fontSize: 16, fontWeight: 700, letterSpacing: '0.2em', textTransform: 'uppercase',
              color: m.highlight ? 'rgba(255,255,255,.85)' : th.accent, marginBottom: 24,
              fontFamily: th.isCyber ? MONO : SANS,
            }}>{m.k}</div>
            <div style={{ fontSize: 88, fontWeight: 800, letterSpacing: '-0.04em', lineHeight: 1, marginBottom: 16 }}>{m.v}</div>
            <div style={{ fontSize: 18, lineHeight: 1.5, opacity: 0.85 }}>{m.d}</div>
          </div>
        ))}
      </div>
      <Footer dark={th.dark} page={8} label={th.label} />
    </Slide>
  );
};

// ============================================================
// L09 · DIAGRAMA / PROCESSO
// ============================================================
const L09_Processo = ({ t = 'C' }) => {
  const th = TH[t];
  const steps = [
    { n: '01', k: 'DIAGNOSE', t: 'Diagnóstico', d: 'Onde estão os gargalos reais.' },
    { n: '02', k: 'STRATEGIZE', t: 'Estratégia', d: 'Mapa de alavancas com IA + método.' },
    { n: '03', k: 'EXECUTE', t: 'Execução', d: 'Times pequenos, sprints curtos.' },
    { n: '04', k: 'SCALE', t: 'Escala', d: 'Medimos, replicamos, escalamos.' },
  ];
  return (
    <Slide bg={th.bg} color={th.text}>
      <ThemeBg t={t} />
      <ThemeHeader t={t} id="NW//METHOD" status="04 STEPS" />
      <div style={{ position: 'absolute', top: 200, left: 80, right: 80 }}>
        <ThEyebrow t={t}>Método NW</ThEyebrow>
        <h2 style={{ fontSize: 84, fontWeight: 700, lineHeight: 1, letterSpacing: '-0.03em', margin: 0, color: th.text }}>
          {t === 'C' ? (<>O <span style={{ fontFamily: SERIF, fontStyle: 'italic', fontWeight: 300, color: th.accent }}>protocolo</span> de crescimento.</>)
            : 'O protocolo de crescimento.'}
        </h2>
      </div>
      <div style={{
        position: 'absolute', top: 540, left: 80, right: 80,
        display: 'grid', gridTemplateColumns: 'repeat(4, 1fr)', gap: 0,
      }}>
        {steps.map((s, i) => (
          <div key={i} style={{
            padding: '32px 28px', position: 'relative',
            borderLeft: `3px solid ${i === 0 ? th.accent : `${th.accent}40`}`,
            background: th.dark ? 'rgba(255,255,255,.03)' : 'transparent',
          }}>
            <div style={{
              fontSize: 14, fontWeight: 700, letterSpacing: '0.22em', color: th.accent,
              marginBottom: 16, fontFamily: th.isCyber ? MONO : SANS,
            }}>{s.n} · {s.k}</div>
            <div style={{ fontSize: 30, fontWeight: 700, color: th.text, lineHeight: 1.15, marginBottom: 14, letterSpacing: '-0.02em' }}>{s.t}</div>
            <div style={{ fontSize: 20, fontWeight: 400, color: th.sub, lineHeight: 1.4, marginBottom: 24 }}>{s.d}</div>
            {i < 3 && (
              <span style={{
                position: 'absolute', top: '50%', right: -16, transform: 'translateY(-50%)',
                color: th.accent, fontSize: 28, fontWeight: 700,
              }}>→</span>
            )}
          </div>
        ))}
      </div>
      <Footer dark={th.dark} page={9} label={th.label} />
    </Slide>
  );
};

// ============================================================
// L10 · TIMELINE
// ============================================================
const L10_Timeline = ({ t = 'C' }) => {
  const th = TH[t];
  const phases = [
    { d: '0–30d', t: 'Imersão & diagnóstico', dt: 'Mergulho em dados, decisões, gargalos.' },
    { d: '31–60d', t: 'Quick wins', dt: 'Primeiras alavancas com IA aplicada.' },
    { d: '61–90d', t: 'Resultado mensurável', dt: 'Métrica primária movendo o ponteiro.' },
    { d: '91–180d', t: 'Escala', dt: 'Replicar e ampliar onde funcionou.' },
  ];
  return (
    <Slide bg={th.bg} color={th.text}>
      <ThemeBg t={t} />
      <ThemeHeader t={t} id="NW//ROADMAP" status="180 DAYS" />
      <div style={{ position: 'absolute', top: 200, left: 80, right: 80 }}>
        <ThEyebrow t={t}>Roadmap</ThEyebrow>
        <h2 style={{ fontSize: 84, fontWeight: 700, lineHeight: 1, letterSpacing: '-0.03em', margin: 0, color: th.text }}>
          {t === 'C' ? (<>Os primeiros <span style={{ fontFamily: SERIF, fontStyle: 'italic', fontWeight: 300, color: th.accent }}>180 dias</span>.</>)
            : 'Os primeiros 180 dias.'}
        </h2>
      </div>
      <div style={{
        position: 'absolute', top: 560, left: 80, right: 80,
        display: 'grid', gridTemplateColumns: 'repeat(4, 1fr)', gap: 0, position: 'absolute',
      }}>
        <div style={{
          position: 'absolute', top: 56, left: 24, right: 24, height: 2,
          background: `linear-gradient(90deg, ${th.accent} 0%, ${th.accent2} 100%)`,
        }} />
        {phases.map((p, i) => (
          <div key={i} style={{ paddingTop: 80, position: 'relative', paddingRight: 16 }}>
            <span style={{
              position: 'absolute', top: 44, left: 24,
              width: 24, height: 24, borderRadius: 12,
              background: th.bg, border: `3px solid ${th.accent}`,
            }} />
            <div style={{
              fontSize: 16, fontWeight: 700, letterSpacing: '0.2em', color: th.accent,
              marginBottom: 16, fontFamily: th.isCyber ? MONO : SANS,
            }}>{p.d}</div>
            <div style={{ fontSize: 28, fontWeight: 700, color: th.text, marginBottom: 12, letterSpacing: '-0.015em' }}>{p.t}</div>
            <div style={{ fontSize: 18, color: th.sub, lineHeight: 1.5 }}>{p.dt}</div>
          </div>
        ))}
      </div>
      <Footer dark={th.dark} page={10} label={th.label} />
    </Slide>
  );
};

// ============================================================
// L11 · PRICING / PROPOSTA
// ============================================================
const L11_Pricing = ({ t = 'C' }) => {
  const th = TH[t];
  const tiers = [
    { n: 'Diagnóstico', p: 'a partir de', sub: '4 semanas · executive readout', items: ['Imersão nos seus dados', 'Mapa de alavancas reais', 'Plano 90d sugerido'] },
    { n: 'Sprint 90d', p: 'sob escopo', sub: 'time dedicado · 1 alavanca', items: ['Tudo do anterior', 'Implementação ponta a ponta', 'Métrica primária mensurável'], highlight: true },
    { n: 'Programa 12m', p: 'sob medida', sub: 'parceria de crescimento', items: ['Múltiplas alavancas', 'Time co-localizado', 'Governança trimestral'] },
  ];
  return (
    <Slide bg={th.bg} color={th.text}>
      <ThemeBg t={t} />
      <ThemeHeader t={t} id="NW//PRICING" status="03 OPTIONS" />
      <div style={{ position: 'absolute', top: 200, left: 80, right: 80 }}>
        <ThEyebrow t={t}>Investimento</ThEyebrow>
        <h2 style={{ fontSize: 84, fontWeight: 700, lineHeight: 1, letterSpacing: '-0.03em', margin: 0, color: th.text }}>
          {t === 'C' ? (<>Três formas de <span style={{ fontFamily: SERIF, fontStyle: 'italic', fontWeight: 300, color: th.accent }}>começar</span>.</>)
            : 'Três formas de começar.'}
        </h2>
      </div>
      <div style={{
        position: 'absolute', top: 460, left: 80, right: 80,
        display: 'grid', gridTemplateColumns: 'repeat(3, 1fr)', gap: 24,
      }}>
        {tiers.map((tier, i) => (
          <div key={i} style={{
            padding: 36,
            background: tier.highlight ? th.accent : (th.dark ? 'rgba(255,255,255,.04)' : '#fff'),
            color: tier.highlight ? '#fff' : th.text,
            border: `1px solid ${tier.highlight ? th.accent : (th.dark ? 'rgba(255,255,255,.12)' : 'rgba(116,24,218,.18)')}`,
            position: 'relative',
          }}>
            <div style={{
              fontSize: 14, fontWeight: 700, letterSpacing: '0.22em', textTransform: 'uppercase',
              color: tier.highlight ? 'rgba(255,255,255,.85)' : th.accent, marginBottom: 24,
              fontFamily: th.isCyber ? MONO : SANS,
            }}>{tier.n}</div>
            <div style={{ fontSize: 64, fontWeight: 800, letterSpacing: '-0.03em', lineHeight: 1, marginBottom: 8 }}>{tier.p}</div>
            <div style={{ fontSize: 16, opacity: 0.7, marginBottom: 32, fontFamily: th.isCyber ? MONO : SANS, letterSpacing: '0.05em' }}>{tier.sub}</div>
            <div style={{
              borderTop: `1px solid ${tier.highlight ? 'rgba(255,255,255,.25)' : (th.dark ? 'rgba(255,255,255,.1)' : 'rgba(67,74,84,.15)')}`,
              paddingTop: 20, display: 'flex', flexDirection: 'column', gap: 14,
            }}>
              {tier.items.map((it, j) => (
                <div key={j} style={{ display: 'flex', gap: 12, fontSize: 18, lineHeight: 1.4 }}>
                  <span style={{ color: tier.highlight ? '#fff' : th.accent, fontWeight: 700 }}>+</span>
                  <span>{it}</span>
                </div>
              ))}
            </div>
          </div>
        ))}
      </div>
      <Footer dark={th.dark} page={11} label={th.label} />
    </Slide>
  );
};

// ============================================================
// L13 · ANTES / DEPOIS (transformação)
// ============================================================
const L13_AntesDepois = ({ t = 'C' }) => {
  const th = TH[t];
  const rows = [
    ['Decisão', 'Por intuição, semanas de discussão', 'Dados + IA, em horas'],
    ['Time', 'Operação grande, generalista', 'Núcleo pequeno, sênior'],
    ['Métrica', 'Vaidade (impressões, leads)', 'Receita, ciclo, margem'],
    ['IA', 'Ferramenta de moda, isolada', 'Aplicada onde move o ponteiro'],
    ['Cadência', 'Trimestral, formal', 'Semanal, executável'],
  ];
  return (
    <Slide bg={th.bg} color={th.text}>
      <ThemeBg t={t} />
      <ThemeHeader t={t} id="NW//SHIFT" status="BEFORE → AFTER" />
      <div style={{ position: 'absolute', top: 200, left: 80, right: 80 }}>
        <ThEyebrow t={t}>A virada</ThEyebrow>
        <h2 style={{ fontSize: 84, fontWeight: 700, lineHeight: 1, letterSpacing: '-0.03em', margin: 0, color: th.text }}>
          {t === 'C' ? (<>O que <span style={{ fontFamily: SERIF, fontStyle: 'italic', fontWeight: 300, color: th.accent }}>muda</span> com a New Way.</>)
            : 'O que muda com a New Way.'}
        </h2>
      </div>
      <div style={{
        position: 'absolute', top: 460, left: 80, right: 80,
        border: `1px solid ${th.dark ? 'rgba(255,255,255,.12)' : 'rgba(67,74,84,.18)'}`,
      }}>
        <div style={{
          display: 'grid', gridTemplateColumns: '180px 1fr 1fr',
          padding: '20px 32px',
          background: th.dark ? 'rgba(255,255,255,.04)' : 'rgba(116,24,218,.05)',
          borderBottom: `1px solid ${th.dark ? 'rgba(255,255,255,.12)' : 'rgba(67,74,84,.18)'}`,
          fontFamily: th.isCyber ? MONO : SANS,
          fontSize: 14, fontWeight: 700, letterSpacing: '0.22em', textTransform: 'uppercase',
          color: th.sub,
        }}>
          <span></span>
          <span>Antes</span>
          <span style={{ color: th.accent }}>Depois</span>
        </div>
        {rows.map(([k, a, d], i) => (
          <div key={i} style={{
            display: 'grid', gridTemplateColumns: '180px 1fr 1fr',
            padding: '24px 32px', alignItems: 'center',
            borderBottom: i < rows.length - 1 ? `1px solid ${th.dark ? 'rgba(255,255,255,.08)' : 'rgba(67,74,84,.1)'}` : 'none',
          }}>
            <span style={{ fontSize: 18, fontWeight: 700, color: th.accent, letterSpacing: '0.18em', textTransform: 'uppercase', fontFamily: th.isCyber ? MONO : SANS }}>{k}</span>
            <span style={{ fontSize: 22, color: th.sub, lineHeight: 1.4, paddingRight: 32 }}>{a}</span>
            <span style={{ fontSize: 24, fontWeight: 600, color: th.text, lineHeight: 1.4, letterSpacing: '-0.01em' }}>{d}</span>
          </div>
        ))}
      </div>
      <Footer dark={th.dark} page={13} label={th.label} />
    </Slide>
  );
};

// ============================================================
// L14 · LOGOS DE CLIENTES
// ============================================================
const L14_Logos = ({ t = 'C' }) => {
  const th = TH[t];
  const logos = [
    'CLIENTE 01', 'CLIENTE 02', 'CLIENTE 03', 'CLIENTE 04',
    'CLIENTE 05', 'CLIENTE 06', 'CLIENTE 07', 'CLIENTE 08',
    'CLIENTE 09', 'CLIENTE 10', 'CLIENTE 11', 'CLIENTE 12',
  ];
  return (
    <Slide bg={th.bg} color={th.text}>
      <ThemeBg t={t} />
      <ThemeHeader t={t} id="NW//CLIENTS" status="12 LOGOS" />
      <div style={{ position: 'absolute', top: 200, left: 80, right: 80 }}>
        <ThEyebrow t={t}>Quem confia</ThEyebrow>
        <h2 style={{ fontSize: 84, fontWeight: 700, lineHeight: 1, letterSpacing: '-0.03em', margin: 0, color: th.text }}>
          {t === 'C' ? (<>Empresas que <span style={{ fontFamily: SERIF, fontStyle: 'italic', fontWeight: 300, color: th.accent }}>cresceram</span> com a gente.</>)
            : 'Empresas que cresceram com a gente.'}
        </h2>
      </div>
      <div style={{
        position: 'absolute', top: 480, left: 80, right: 80,
        display: 'grid', gridTemplateColumns: 'repeat(4, 1fr)', gridTemplateRows: 'repeat(3, 1fr)',
        gap: 0, height: 440,
        border: `1px solid ${th.dark ? 'rgba(255,255,255,.1)' : 'rgba(67,74,84,.15)'}`,
      }}>
        {logos.map((l, i) => (
          <div key={i} style={{
            display: 'flex', alignItems: 'center', justifyContent: 'center',
            borderRight: (i + 1) % 4 !== 0 ? `1px solid ${th.dark ? 'rgba(255,255,255,.08)' : 'rgba(67,74,84,.1)'}` : 'none',
            borderBottom: i < 8 ? `1px solid ${th.dark ? 'rgba(255,255,255,.08)' : 'rgba(67,74,84,.1)'}` : 'none',
            background: th.dark ? 'rgba(255,255,255,.02)' : 'transparent',
          }}>
            <div style={{
              fontFamily: th.isCyber ? MONO : SANS,
              fontSize: 24, fontWeight: 700, letterSpacing: '0.2em',
              color: th.sub, opacity: 0.7,
            }}>{l}</div>
          </div>
        ))}
      </div>
      <div style={{
        position: 'absolute', bottom: 130, left: 80, right: 80,
        display: 'flex', justifyContent: 'space-between', alignItems: 'center',
        paddingTop: 16, borderTop: `1px dashed ${th.accent}55`,
        fontFamily: th.isCyber ? MONO : SANS, fontSize: 16, color: th.sub, letterSpacing: '0.18em',
      }}>
        <span>+ empresas atendidas</span>
        <span>receita destravada em todos os portes</span>
        <span>NPS alto, real, mensurado</span>
      </div>
      <Footer dark={th.dark} page={14} label={th.label} />
    </Slide>
  );
};

// ============================================================
// L15 · FAQ / OBJEÇÕES
// ============================================================
const L15_FAQ = ({ t = 'C' }) => {
  const th = TH[t];
  const faqs = [
    { q: '"IA é só hype, não é?"', a: 'IA sem método é. A gente entrega IA aplicada a 1 alavanca por vez, com métrica primária mensurável em 90 dias.' },
    { q: '"Vamos demorar pra ver resultado?"', a: 'Não. Quick wins na semana 4–6. Métrica primária movendo no fim do trimestre. Sem isso, não cobramos a renovação.' },
    { q: '"Meu time vai ser substituído?"', a: 'Pelo contrário. A gente opera com seu time, não no lugar dele. Sai com playbook documentado para vocês manterem.' },
    { q: '"Por que não contratar interno?"', a: 'Porque você precisa de cabeça sênior por 90 dias, não de 4 contratações que demoram 6 meses para ramp-up.' },
  ];
  return (
    <Slide bg={th.bg} color={th.text}>
      <ThemeBg t={t} />
      <ThemeHeader t={t} id="NW//FAQ" status="04 OBJ" />
      <div style={{ position: 'absolute', top: 200, left: 80, right: 80 }}>
        <ThEyebrow t={t}>O que perguntam</ThEyebrow>
        <h2 style={{ fontSize: 84, fontWeight: 700, lineHeight: 1, letterSpacing: '-0.03em', margin: 0, color: th.text }}>
          {t === 'C' ? (<>As <span style={{ fontFamily: SERIF, fontStyle: 'italic', fontWeight: 300, color: th.accent }}>quatro</span> objeções clássicas.</>)
            : 'As quatro objeções clássicas.'}
        </h2>
      </div>
      <div style={{
        position: 'absolute', top: 480, left: 80, right: 80,
        display: 'grid', gridTemplateColumns: '1fr 1fr', gap: 24,
      }}>
        {faqs.map((f, i) => (
          <div key={i} style={{
            padding: '28px 32px',
            background: th.dark ? 'rgba(255,255,255,.04)' : 'rgba(116,24,218,.05)',
            border: `1px solid ${th.dark ? 'rgba(255,255,255,.1)' : 'rgba(116,24,218,.18)'}`,
            borderLeft: `3px solid ${th.accent}`,
          }}>
            <div style={{
              fontSize: 22, fontWeight: 600, color: th.text, marginBottom: 16, letterSpacing: '-0.01em',
              fontFamily: t === 'C' ? SERIF : SANS, fontStyle: t === 'C' ? 'italic' : 'normal',
            }}>{f.q}</div>
            <div style={{ fontSize: 18, lineHeight: 1.55, color: th.sub }}>
              <span style={{
                color: th.accent, fontWeight: 700, marginRight: 10,
                fontFamily: th.isCyber ? MONO : SANS, letterSpacing: '0.1em',
              }}>NW →</span>
              {f.a}
            </div>
          </div>
        ))}
      </div>
      <Footer dark={th.dark} page={15} label={th.label} />
    </Slide>
  );
};

// ============================================================
// L12 · CTA / PRÓXIMOS PASSOS
// ============================================================
const L12_CTA = ({ t = 'C' }) => {
  const th = TH[t];
  return (
    <Slide bg={t === 'C' ? '#fff' : th.bg} color={th.text}>
      <ThemeBg t={t} />
      <ThemeHeader t={t} id="NW//ENGAGE" status="READY" />
      <div style={{ position: 'absolute', top: 280, left: 80, right: 80 }}>
        <ThEyebrow t={t}>Próximos passos</ThEyebrow>
        <h1 style={{
          fontSize: 156, fontWeight: 800, lineHeight: 0.95, letterSpacing: '-0.04em',
          margin: 0, textWrap: 'balance', color: th.text,
          textTransform: t === 'C' ? 'none' : 'uppercase',
        }}>
          {t === 'C' ? (<>Vamos <span style={{ fontFamily: SERIF, fontStyle: 'italic', fontWeight: 300, color: th.accent }}>começar?</span></>)
            : (<>Vamos<br /><span style={{ color: th.accent }}>{th.isCyber ? '$ start_now' : 'começar?'}</span></>)}
        </h1>
      </div>
      <div style={{
        position: 'absolute', bottom: 200, left: 80, right: 80,
        display: 'grid', gridTemplateColumns: 'repeat(3, 1fr)', gap: 32,
      }}>
        {[
          { k: '01', t: 'Aprovar escopo', d: 'Decisão nesta semana' },
          { k: '02', t: 'Kick-off', d: 'Semana seguinte · 2h presencial' },
          { k: '03', t: 'Imersão', d: 'Time NW começa em D+7' },
        ].map((s, i) => (
          <div key={i} style={{
            padding: '24px 28px',
            borderLeft: `3px solid ${th.accent}`,
            background: th.dark ? 'rgba(255,255,255,.03)' : 'rgba(116,24,218,.05)',
          }}>
            <div style={{
              fontSize: 14, fontWeight: 700, letterSpacing: '0.22em', color: th.accent,
              marginBottom: 12, fontFamily: th.isCyber ? MONO : SANS,
            }}>{s.k}</div>
            <div style={{ fontSize: 28, fontWeight: 700, color: th.text, marginBottom: 8, letterSpacing: '-0.015em' }}>{s.t}</div>
            <div style={{ fontSize: 18, color: th.sub, fontFamily: th.isCyber ? MONO : SANS }}>{s.d}</div>
          </div>
        ))}
      </div>
      <Footer dark={th.dark} page={12} label={th.label} />
    </Slide>
  );
};

// ============================================================
// CANVAS
// ============================================================
const ART_W = 1920;
const ART_H = 1080;

const LAYOUTS = [
  ['L01 · Capa', L01_Capa],
  ['L02 · Divisor', L02_Divisor],
  ['L03 · Agenda', L03_Agenda],
  ['L04 · Conteúdo', L04_Conteudo],
  ['L05 · Dado / KPI', L05_Dado],
  ['L06 · Quote', L06_Quote],
  ['L07 · Time', L07_Time],
  ['L08 · Case', L08_Case],
  ['L09 · Método', L09_Processo],
  ['L10 · Timeline', L10_Timeline],
  ['L11 · Pricing', L11_Pricing],
  ['L13 · Antes/Depois', L13_AntesDepois],
  ['L14 · Logos clientes', L14_Logos],
  ['L15 · FAQ', L15_FAQ],
  ['L12 · CTA', L12_CTA],
];

const LINES = [
  { k: 'E', title: 'E · Hyper-tech (cyber dark)', sub: 'Terminal aesthetic, monospace, grid + scanlines, badges system. Para audiências tech / IA que esperam densidade e atitude. Funciona muito em dark room.' },
  { k: 'F', title: 'F · Light-tech', sub: 'Mesma linguagem da E em modo claro: fundo lilás suave, texto Core Slate. Sensação dashboard SaaS premium — boa para boards e contextos formais que ainda querem aroma tech.' },
];

const EXTRA_LINES = [
  { k: 'G', title: 'G · Apple Keynote', sub: 'Preto puro / branco puro, alternância dramática. Tipografia gigante (200–480pt) — 1 ideia por slide. Stripe / Linear / keynote vibe. Para palco grande, demos de produto, narrativa de impacto.', layouts: () => window.G_LAYOUTS },
];

const DeckApp = () => {
  const renderRow = (lineKey) =>
    LAYOUTS.map(([name, Comp], i) => (
      <window.DCArtboard key={`${lineKey}-${i}`} id={`${lineKey}-${i + 1}`} label={name} width={ART_W} height={ART_H}>
        <Comp t={lineKey} />
      </window.DCArtboard>
    ));

  return (
    <window.DesignCanvas
      title="Deck New Way · 4 linhas × 12 layouts"
      subtitle="1920×1080 · linhas C/D/E/F do brand board · 12 layouts essenciais para pitch comercial, institucional e all-hands"
    >
      {LINES.map(L => (
        <window.DCSection key={L.k} id={`line-${L.k}`} title={L.title} subtitle={L.sub}>
          {renderRow(L.k)}
        </window.DCSection>
      ))}
      {EXTRA_LINES.map(L => {
        const layouts = L.layouts() || [];
        return (
          <window.DCSection key={L.k} id={`line-${L.k}`} title={L.title} subtitle={L.sub}>
            {layouts.map(([name, Comp], i) => (
              <window.DCArtboard key={`${L.k}-${i}`} id={`${L.k}-${i + 1}`} label={name} width={ART_W} height={ART_H}>
                <Comp />
              </window.DCArtboard>
            ))}
          </window.DCSection>
        );
      })}
    </window.DesignCanvas>
  );
};

window.DeckApp = DeckApp;
window.DECK_LAYOUTS = LAYOUTS;
