ACCEPTANCE CRITERIA (28/28)
☑ cycleTraffic() com ciclo real: verde 8s, amarelo 2s, vermelho 6s
☑ Classe CSS no .street alterna: traffic-go, traffic-caution, traffic-stop
☑ Carros pausam quando sinal vermelho (animation-play-state: paused)
☑ Carros retomam quando sinal verde
☑ Luzes de freio vermelhas nos carros quando parados
☑ Semaforo visual atualiza (verde/amarelo/vermelho com glow)
☑ Sedan (10x4px) com cabine e farois
☑ SUV (12x5px) mais alto
☑ Van/Bus (22x6px) com janelas em repeating-gradient
☑ Moto (6x3px) menor e mais rapida
☑ 4-6 veiculos gerados com tipos aleatorios
☑ Veiculos em ambas direcoes (left/right lanes)
☑ Velocidades variam por tipo (moto mais rapida, bus mais lento)
☑ Pernas animadas com skewX (substituir ped-body/ped-head simples)
☑ 1 dog walker (pessoa + coleira + cachorro com rabo abanando)
☑ 1 ciclista (pessoa + bicicleta com rodas girando)
☑ Cores variadas de roupa nos pedestres
☑ 4-6 pedestres no total
☑ 3-4 fire hydrants (vermelho, 4x7px) nas calcadas
☑ 2-3 trash cans (cinza, 5x6px)
☑ 2 benches (marrom, 12x5px com pernas)
☑ 1 food cart (com umbrella listrado)
☑ 2-3 manholes com steam subindo (animacao)
☑ Distribuidos ao longo da sidewalk-bottom
☑ `node squads/hq/scripts/sync.js` gera sem erros
☑ Todos os features v3 Sprint 1 continuam funcionando
☑ prefers-reduced-motion cobre novos elementos
☑ Performance: max 6-8 veiculos, 6-8 pedestres