// Página Manifesto.
//
// Conteúdo vindo de instrucoes/manifesto.md, meu_estilo_de_ensino.md e
// orientacao_projeto.md do repositório LivroAntesDoCodigo. Os emoji que
// marcam seção nos originais viraram ícones SVG da marca — o design system
// não usa emoji (ver readme, "Iconography").
//
// Os diagramas são HTML+CSS, não SVG de bloco: assim respondem ao
// responsive.css como qualquer outro conteúdo e o texto continua
// selecionável e legível no celular.

function ManifestoMark({ name, size = 20 }) {
  const paths = {
    // bússola — direção, contexto
    compass: <><circle cx="12" cy="12" r="9" /><path d="M15.5 8.5l-2 5-5 2 2-5z" /></>,
    // olho aberto — consciência
    eye: <><path d="M2.5 12s3.6-6 9.5-6 9.5 6 9.5 6-3.6 6-9.5 6-9.5-6-9.5-6z" /><circle cx="12" cy="12" r="2.5" /></>,
    // camadas — construção em camadas
    layers: <><path d="M12 3l9 5-9 5-9-5z" /><path d="M3 13l9 5 9-5" /></>,
    // alvo — missão
    target: <><circle cx="12" cy="12" r="9" /><circle cx="12" cy="12" r="5" /><circle cx="12" cy="12" r="1.2" /></>,
    // mão aberta — convite
    hand: <><path d="M8 11V5.5a1.5 1.5 0 0 1 3 0V11" /><path d="M11 11V4.5a1.5 1.5 0 0 1 3 0V11" /><path d="M14 11V6.5a1.5 1.5 0 0 1 3 0V13" /><path d="M8 11v-.5a1.5 1.5 0 0 0-3 0V14a7 7 0 0 0 7 7h1a7 7 0 0 0 7-7v-3" /></>,
  };
  return (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">
      {paths[name]}
    </svg>
  );
}

function SectionLabel({ icon, children }) {
  return (
    <div style={{ display: 'flex', alignItems: 'center', gap: 10, color: 'var(--accent-strong)', marginBottom: 'var(--space-5)' }}>
      <ManifestoMark name={icon} size={18} />
      <span style={{ fontFamily: 'var(--font-mono)', fontSize: 12, letterSpacing: 'var(--tracking-caps)', textTransform: 'uppercase' }}>{children}</span>
    </div>
  );
}

function PullQuote({ children, cite }) {
  return (
    <blockquote style={{ margin: 'var(--space-8) 0', paddingLeft: 'var(--space-6)', borderLeft: '2px solid var(--accent)' }}>
      <p style={{ fontFamily: 'var(--font-display)', fontStyle: 'italic', fontWeight: 400, fontSize: 'var(--text-xl)', lineHeight: 'var(--leading-snug)', color: 'var(--text-primary)', margin: 0, textWrap: 'pretty' }}>{children}</p>
      {cite && <div style={{ fontFamily: 'var(--font-mono)', fontSize: 12, color: 'var(--text-muted)', marginTop: 12 }}>{cite}</div>}
    </blockquote>
  );
}

function Para({ children, lead }) {
  return (
    <p style={{ fontFamily: 'var(--font-body)', fontSize: lead ? 'var(--text-lg)' : 'var(--text-base)', lineHeight: 'var(--leading-relaxed)', color: lead ? 'var(--text-primary)' : 'var(--text-secondary)', margin: '0 0 var(--space-5)', textWrap: 'pretty' }}>{children}</p>
  );
}

/* ── Diagrama 1: o tripé e os três modos de falha ─────────────────── */
function DiagramaTripe() {
  const pernas = [
    { nome: 'Prática', falta: 'Sem propósito', vira: 'repetição', cor: 'var(--signal-600)' },
    { nome: 'Reflexão', falta: 'Sem reflexão', vira: 'decoreba', cor: 'var(--gold-600)' },
    { nome: 'Propósito', falta: 'Sem contexto', vira: 'ruído', cor: 'var(--blue-600)' },
  ];
  return (
    <figure style={{ margin: 'var(--space-8) 0' }}>
      <div style={{ padding: '14px var(--space-5)', borderRadius: 'var(--radius-md)', background: 'var(--accent-soft)', border: '1px solid var(--accent)', textAlign: 'center', fontFamily: 'var(--font-display)', fontSize: 19, fontWeight: 600, color: 'var(--text-primary)' }}>
        Aprendizado real
      </div>
      <div style={{ display: 'grid', gridTemplateColumns: 'repeat(3, minmax(0, 1fr))', gap: 'var(--space-4)', marginTop: 2 }}>
        {pernas.map(p => (
          <div key={p.nome} style={{ display: 'flex', flexDirection: 'column', alignItems: 'center' }}>
            <div style={{ width: 1, height: 22, background: p.cor }} />
            <div style={{ width: '100%', padding: 'var(--space-4)', borderRadius: 'var(--radius-md)', border: '1px solid var(--border-subtle)', background: 'var(--surface-card)', textAlign: 'center' }}>
              <div style={{ fontFamily: 'var(--font-display)', fontSize: 17, fontWeight: 600, color: p.cor, marginBottom: 10 }}>{p.nome}</div>
              <div style={{ fontFamily: 'var(--font-mono)', fontSize: 11, color: 'var(--text-muted)', lineHeight: 1.6 }}>
                {p.falta},<br />vira <span style={{ color: 'var(--status-error)' }}>{p.vira}</span>
              </div>
            </div>
          </div>
        ))}
      </div>
      <figcaption style={{ fontFamily: 'var(--font-body)', fontSize: 13, color: 'var(--text-muted)', marginTop: 'var(--space-4)', lineHeight: 'var(--leading-normal)' }}>
        Tire uma perna e o que resta não é aprendizado incompleto — é outra coisa, com outro nome.
      </figcaption>
    </figure>
  );
}

/* ── Diagrama 2: o que vem antes do código ────────────────────────── */
function DiagramaAntes() {
  const etapas = [
    { n: '01', t: 'Contexto', d: 'Que problema real existe aqui, e para quem.' },
    { n: '02', t: 'Raciocínio', d: 'Que caminhos existem, e o que cada um custa.' },
    { n: '03', t: 'Decisão', d: 'Por que este — e por que não os outros.' },
    { n: '04', t: 'Código', d: 'A parte que todo mundo vê. A última.' },
  ];
  return (
    <figure style={{ margin: 'var(--space-8) 0' }}>
      <div style={{ display: 'grid', gridTemplateColumns: 'repeat(4, minmax(0, 1fr))', gap: 'var(--space-3)' }}>
        {etapas.map((e, i) => {
          const ultimo = i === etapas.length - 1;
          return (
            <div key={e.n} style={{ padding: 'var(--space-4)', borderRadius: 'var(--radius-md)', border: `1px solid ${ultimo ? 'var(--border-default)' : 'var(--accent)'}`, background: ultimo ? 'transparent' : 'var(--surface-card)', display: 'flex', flexDirection: 'column', gap: 8 }}>
              <span style={{ fontFamily: 'var(--font-mono)', fontSize: 11, color: ultimo ? 'var(--text-muted)' : 'var(--accent-strong)' }}>{e.n}</span>
              <span style={{ fontFamily: 'var(--font-display)', fontSize: 18, fontWeight: 600, color: ultimo ? 'var(--text-muted)' : 'var(--text-primary)' }}>{e.t}</span>
              <span style={{ fontFamily: 'var(--font-body)', fontSize: 13, lineHeight: 'var(--leading-normal)', color: 'var(--text-secondary)' }}>{e.d}</span>
            </div>
          );
        })}
      </div>
      <figcaption style={{ fontFamily: 'var(--font-body)', fontSize: 13, color: 'var(--text-muted)', marginTop: 'var(--space-4)', lineHeight: 'var(--leading-normal)' }}>
        O mercado ensina a etapa 4 e chama isso de aprender a programar.
      </figcaption>
    </figure>
  );
}

/* ── Diagrama 3: o arco da transformação ──────────────────────────── */
function DiagramaArco() {
  const fases = [
    { fase: 'Antes', desc: 'Visão limitada. Executa o que mandaram, do jeito que viu.', tom: 'var(--text-muted)' },
    { fase: 'Agora', desc: 'Clareza adquirida. Entende por que aquilo funciona — e quando não funcionaria.', tom: 'var(--accent-strong)' },
    { fase: 'Depois', desc: 'Comportamento novo. Decide sozinho em contextos que ninguém ensinou.', tom: 'var(--text-primary)' },
  ];
  return (
    <figure style={{ margin: 'var(--space-8) 0', display: 'flex', flexDirection: 'column', gap: 0 }}>
      {fases.map((f, i) => (
        <div key={f.fase} style={{ display: 'flex', gap: 'var(--space-5)', alignItems: 'stretch' }}>
          <div style={{ display: 'flex', flexDirection: 'column', alignItems: 'center', flexShrink: 0 }}>
            <div style={{ width: 11, height: 11, borderRadius: '50%', background: f.tom, marginTop: 6, flexShrink: 0 }} />
            {i < fases.length - 1 && <div style={{ width: 1, flex: 1, background: 'var(--border-subtle)', minHeight: 28 }} />}
          </div>
          <div style={{ paddingBottom: i < fases.length - 1 ? 'var(--space-5)' : 0 }}>
            <div style={{ fontFamily: 'var(--font-mono)', fontSize: 11, letterSpacing: 'var(--tracking-caps)', textTransform: 'uppercase', color: f.tom, marginBottom: 6 }}>{f.fase}</div>
            <div style={{ fontFamily: 'var(--font-body)', fontSize: 15, lineHeight: 'var(--leading-relaxed)', color: 'var(--text-secondary)' }}>{f.desc}</div>
          </div>
        </div>
      ))}
    </figure>
  );
}

/* ── Diagrama 4: os quatro pilares ────────────────────────────────── */
function DiagramaPilares() {
  const pilares = [
    { p: 'Livro', foco: 'Consciência e mentalidade', res: 'Despertar clareza e raciocínio crítico' },
    { p: 'Mentorias', foco: 'Aplicação e autonomia', res: 'Pensar e decidir com propósito' },
    { p: 'Consultorias', foco: 'Cultura e governança', res: 'Clareza técnica que a empresa sustenta' },
    { p: 'Cursos', foco: 'Estrutura e prática real', res: 'Ensinar por camadas, com contexto antes do código' },
  ];
  return (
    <figure style={{ margin: 'var(--space-8) 0', border: '1px solid var(--border-subtle)', borderRadius: 'var(--radius-lg)', overflow: 'hidden' }}>
      {pilares.map((x, i) => (
        <div key={x.p} className="stack-on-mobile" style={{ display: 'flex', gap: 'var(--space-5)', padding: 'var(--space-5)', borderTop: i ? '1px solid var(--border-subtle)' : 'none', alignItems: 'baseline' }}>
          <div style={{ width: 130, flexShrink: 0, fontFamily: 'var(--font-display)', fontSize: 18, fontWeight: 600, color: 'var(--text-primary)' }}>{x.p}</div>
          <div style={{ width: 210, flexShrink: 0, fontFamily: 'var(--font-mono)', fontSize: 12, color: 'var(--accent-strong)' }}>{x.foco}</div>
          <div style={{ fontFamily: 'var(--font-body)', fontSize: 14, lineHeight: 'var(--leading-normal)', color: 'var(--text-secondary)' }}>{x.res}</div>
        </div>
      ))}
    </figure>
  );
}

function ManifestoPage({ onNavigate }) {
  return (
    <article style={{ padding: 'var(--space-9) var(--space-7)', maxWidth: 760, margin: '0 auto' }}>

      <header style={{ marginBottom: 'var(--space-9)' }}>
        <div style={{ fontFamily: 'var(--font-mono)', fontSize: 12, letterSpacing: 'var(--tracking-caps)', textTransform: 'uppercase', color: 'var(--accent-strong)', marginBottom: 'var(--space-5)' }}>Manifesto</div>
        <h1 style={{ fontFamily: 'var(--font-display)', fontWeight: 600, fontSize: 'var(--text-4xl)', lineHeight: 'var(--leading-tight)', color: 'var(--text-primary)', margin: '0 0 var(--space-5)', textWrap: 'pretty' }}>Antes do código, vem a consciência.</h1>
        <p style={{ fontFamily: 'var(--font-body)', fontSize: 'var(--text-lg)', lineHeight: 'var(--leading-relaxed)', color: 'var(--text-secondary)', margin: 0, textWrap: 'pretty' }}>É ela que separa quem executa de quem entende.</p>
      </header>

      <section style={{ marginBottom: 'var(--space-9)' }}>
        <SectionLabel icon="eye">O que eu acredito</SectionLabel>
        <Para lead>Aprender tecnologia não é decorar frameworks nem colecionar certificados. É entender o que está por trás de cada escolha, pensar criticamente e agir com propósito.</Para>
        <Para>A tecnologia muda todos os dias. O que mantém um profissional relevante é a clareza com que ele pensa — não a velocidade com que ele copia.</Para>
        <Para>Vejo muita gente estudando tecnologia pela tecnologia, sem contexto e sem propósito, alimentada por uma indústria que vende pressa e dopamina: vídeos curtos, promessas instantâneas e resultados de fachada.</Para>
        <PullQuote>Eu não jogo esse jogo. Meu compromisso é outro.</PullQuote>
      </section>

      <section style={{ marginBottom: 'var(--space-9)' }}>
        <SectionLabel icon="compass">O meu compromisso</SectionLabel>
        <ul style={{ listStyle: 'none', padding: 0, margin: '0 0 var(--space-6)', display: 'flex', flexDirection: 'column', gap: 'var(--space-4)' }}>
          {[
            'Ensinar como pensar antes de programar.',
            'Ensinar por que fazer — e, principalmente, por que não fazer.',
            'Mostrar como conectar técnica, propósito e impacto.',
            'Ajudar a desenvolver autonomia intelectual, para que nenhuma moda dite o ritmo da sua carreira.',
          ].map(item => (
            <li key={item} style={{ display: 'flex', gap: 'var(--space-4)', alignItems: 'baseline' }}>
              <span style={{ width: 6, height: 6, borderRadius: '50%', background: 'var(--accent)', flexShrink: 0, transform: 'translateY(-2px)' }} />
              <span style={{ fontFamily: 'var(--font-body)', fontSize: 'var(--text-base)', lineHeight: 'var(--leading-relaxed)', color: 'var(--text-secondary)' }}>{item}</span>
            </li>
          ))}
        </ul>
        <Para>O meu ensino não é sobre atalhos. É sobre consciência. Porque quem entende o contexto não depende de tutoriais — sabe criar o próprio caminho.</Para>
      </section>

      <section style={{ marginBottom: 'var(--space-9)' }}>
        <SectionLabel icon="layers">A base de tudo</SectionLabel>
        <Para lead>Assim como ninguém vira atleta só assistindo jogo, ninguém vira profissional de verdade só assistindo vídeo-aula.</Para>
        <DiagramaTripe />
        <Para>Por isso eu ensino a enxergar o que vem antes do código — as decisões, os raciocínios e as intenções que dão sentido à técnica.</Para>
        <DiagramaAntes />
      </section>

      <section style={{ marginBottom: 'var(--space-9)' }}>
        <SectionLabel icon="target">A minha missão</SectionLabel>
        <Para lead>Ajudar pessoas a entenderem tecnologia antes de usá-la.</Para>
        <Para>Formar profissionais que pensam, decidem e criam com consciência. Gente que entende que resolver problemas de negócio é mais importante do que provar domínio técnico.</Para>
        <Para>Quero que cada pessoa saia com aquela sensação de “agora tudo faz sentido” — porque entendeu não apenas o que fazer, mas por que fazer daquele jeito.</Para>
        <DiagramaArco />
        <PullQuote>Não ensino o que pensar. Ensino como pensar.</PullQuote>
      </section>

      <section style={{ marginBottom: 'var(--space-9)' }}>
        <SectionLabel icon="layers">Onde isso vira trabalho</SectionLabel>
        <Para>O mesmo raciocínio sustenta tudo que eu faço. Muda o formato, não o método.</Para>
        <DiagramaPilares />
        <PullQuote>Não quero formar quem depende de mim — quero formar quem não precisa mais.</PullQuote>
      </section>

      <section style={{ marginBottom: 'var(--space-9)' }}>
        <SectionLabel icon="eye">Como quero ser lembrado</SectionLabel>
        <Para>Não como o professor que ensinou comandos, mas como quem ensinou consciência. Como alguém que ajudou pessoas a deixarem de ser meros operadores de ferramentas para se tornarem engenheiros de pensamento.</Para>
        <Para>Alguém que mudou vidas e carreiras com honestidade, clareza e propósito — sem vender atalhos, promessas ou modismos.</Para>
      </section>

      <section style={{ padding: 'var(--space-7)', border: '1px solid var(--accent)', borderRadius: 'var(--radius-lg)', background: 'var(--accent-soft)' }}>
        <SectionLabel icon="hand">Um convite</SectionLabel>
        <Para lead>Se você busca independência, lucidez e confiança na sua jornada com tecnologia, isto aqui foi feito pra você.</Para>
        <Para>Não é um guia de frameworks. É um guia de raciocínio.</Para>
        <div style={{ display: 'flex', gap: 14, marginTop: 'var(--space-6)', flexWrap: 'wrap' }}>
          <button onClick={() => onNavigate && onNavigate('community')} style={{ background: 'var(--accent)', color: 'var(--ink-900)', border: 'none', borderRadius: 'var(--radius-md)', padding: '13px 26px', fontFamily: 'var(--font-body)', fontWeight: 600, fontSize: 16, cursor: 'pointer' }}>Entrar na comunidade</button>
          <button onClick={() => onNavigate && onNavigate('about')} style={{ background: 'transparent', color: 'var(--text-primary)', border: '1px solid var(--border-default)', borderRadius: 'var(--radius-md)', padding: '13px 26px', fontFamily: 'var(--font-body)', fontWeight: 600, fontSize: 16, cursor: 'pointer' }}>Quem escreve isso</button>
        </div>
      </section>

    </article>
  );
}
/* ── Chamada para o manifesto, usada na home ──────────────────────────
   Não é resumo: é o gesto mais forte do texto — nomear o que o mercado
   vende e recusar. Resumo informa; contraste faz querer ler. */
function ManifestoCallout({ onNavigate }) {
  const contraste = [
    { vende: 'O atalho', ensino: 'O contexto' },
    { vende: 'O que fazer', ensino: 'Por que fazer — e por que não' },
    { vende: 'O próximo tutorial', ensino: 'Não precisar do próximo' },
  ];
  return (
    <section style={{ padding: 'var(--space-9) var(--space-7)', background: 'var(--surface-sunken)' }}>
      <div style={{ maxWidth: 860, margin: '0 auto' }}>
        <div style={{ display: 'flex', alignItems: 'center', gap: 10, color: 'var(--accent-strong)', marginBottom: 'var(--space-5)' }}>
          <ManifestoMark name="eye" size={18} />
          <span style={{ fontFamily: 'var(--font-mono)', fontSize: 12, letterSpacing: 'var(--tracking-caps)', textTransform: 'uppercase' }}>Manifesto</span>
        </div>

        <h2 style={{ fontFamily: 'var(--font-display)', fontWeight: 600, fontSize: 'var(--text-3xl)', lineHeight: 'var(--leading-tight)', color: 'var(--text-primary)', margin: '0 0 var(--space-5)', textWrap: 'pretty' }}>Eu não jogo esse jogo.</h2>

        <p style={{ fontFamily: 'var(--font-body)', fontSize: 'var(--text-lg)', lineHeight: 'var(--leading-relaxed)', color: 'var(--text-secondary)', margin: '0 0 var(--space-7)', maxWidth: 680, textWrap: 'pretty' }}>Tem muita gente estudando tecnologia pela tecnologia, sem contexto e sem propósito — alimentada por uma indústria que vende pressa e dopamina: vídeos curtos, promessas instantâneas e resultados de fachada.</p>

        <div style={{ display: 'grid', gridTemplateColumns: 'repeat(3, minmax(0, 1fr))', gap: 'var(--space-5)', marginBottom: 'var(--space-7)' }}>
          {contraste.map(c => (
            <div key={c.vende} style={{ display: 'flex', flexDirection: 'column', gap: 10 }}>
              <div style={{ fontFamily: 'var(--font-mono)', fontSize: 11, letterSpacing: 'var(--tracking-wide)', textTransform: 'uppercase', color: 'var(--text-muted)', textDecoration: 'line-through', textDecorationColor: 'var(--status-error)' }}>{c.vende}</div>
              <div style={{ width: '100%', height: 1, background: 'var(--border-subtle)' }} />
              <div style={{ fontFamily: 'var(--font-display)', fontSize: 18, fontWeight: 600, lineHeight: 'var(--leading-snug)', color: 'var(--text-primary)', textWrap: 'pretty' }}>{c.ensino}</div>
            </div>
          ))}
        </div>

        <blockquote style={{ margin: '0 0 var(--space-7)', paddingLeft: 'var(--space-6)', borderLeft: '2px solid var(--accent)' }}>
          <p style={{ fontFamily: 'var(--font-display)', fontStyle: 'italic', fontSize: 'var(--text-xl)', lineHeight: 'var(--leading-snug)', color: 'var(--text-primary)', margin: 0, textWrap: 'pretty' }}>Não quero formar quem depende de mim — quero formar quem não precisa mais.</p>
        </blockquote>

        <button onClick={() => onNavigate && onNavigate('manifesto')} style={{ background: 'transparent', color: 'var(--accent-strong)', border: '1px solid var(--accent)', borderRadius: 'var(--radius-md)', padding: '13px 26px', fontFamily: 'var(--font-body)', fontWeight: 600, fontSize: 16, cursor: 'pointer' }}>Ler o manifesto completo</button>
      </div>
    </section>
  );
}

Object.assign(window, { ManifestoPage, ManifestoCallout });
