# 05 — Critérios de aceitação e verificação

## Funcionais
- [ ] `npm install` conclui sem erros.
- [ ] `npm run dev` arranca e serve a aplicação sem erros de runtime.
- [ ] `npm run build` (ou `tsc --noEmit`) sem **erros de TypeScript**.
- [ ] Âncoras `#home`, `#work-plan`, `#indicators` (+`#goal`) navegáveis com scroll suave.
- [ ] Header colapsa em menu < md; links funcionam em mobile e desktop.
- [ ] Work plan: hover (desktop) e clique (mobile) revelam o cronograma.
- [ ] Indicators: cartões clicáveis abrem detalhe.
- [ ] Footer lista os 3 beneficiários e o suporte financeiro.

## Containerização (Docker) — ver [06-deployment.md](./06-deployment.md)
- [ ] **RF-D1** `docker build -t resilience-microsite .` conclui sem erros (o build
  corre `npm run build` → `tsc -b`; erros de TS fazem o build falhar).
- [ ] **RF-D2** `docker run -p 8080:80 resilience-microsite` serve o site em
  http://localhost:8080 sem depender de Node/npm no host.
- [ ] **RF-D3** `docker compose up --build` arranca o serviço com a porta mapeada.
- [ ] **RF-D4** Refresh/deep-link de uma âncora (ex.: `/#work-plan`) devolve 200
  (SPA fallback do nginx para `index.html`).
- [ ] **RF-D5** Imagem final isolada e sem estado: não inclui código-fonte nem
  Node; não requer volumes nem serviços externos.
- [ ] **RF-D6** Versões base pinadas e `.dockerignore` exclui `node_modules`/`dist`.

## Conteúdo
- [ ] Todo o texto em inglês e fiel a [03-content.md](./03-content.md) (sem invenção).
- [ ] Datas, código de projeto, montantes e DOI corretos.

## Visual / UX
- [ ] Paleta navy institucional INESCC + tipografia Outfit aplicadas.
- [ ] Responsivo (mobile → desktop) sem overflow/quebras.
- [ ] Animações discretas; respeitam `prefers-reduced-motion`.

## Rastreabilidade
- [ ] Cada incremento de código referenciado em [CHANGELOG.md](./CHANGELOG.md).

## Plano de verificação
1. **Com Node local:** `npm install` → `npm run build` (gate TypeScript) →
   `npm run dev` → inspeção manual das 6 secções + navegação.
2. **Sem Node local (recomendado nesta máquina):** `docker build` (gate TS dentro
   da imagem) → `docker run -p 8080:80` → inspeção manual em http://localhost:8080.
3. Teste responsivo (largura mobile/desktop) e teclado/scroll.
4. Teste de SPA fallback: refrescar com hash `/#indicators` devolve a página.
