# Trois secondes d’enquête

Film de 44 secondes pour Pragma Monaco, en style anime policier des années 80. Il est calculé en direct dans le navigateur en JavaScript (Canvas 2D) et exporté en MP4 à partir du même code, en deux compositions : paysage 1920 × 1080 et vertical 1080 × 1920.

## Direction

Un anime policier urbain de la fin des années 80. Les personnages sont des illustrations peintes en cel-shading : proportions adultes, cheveux volumineux, reflets brillants, lumière de contour magenta et fond bleu froid. Les décors sont peints à la gouache : un bureau de banque privée la nuit, face au port de Monaco et au Casino sous la pluie, puis Monaco au coucher du soleil pour la fin. Un grain de pellicule léger couvre tout le film. Le code anime tout le reste : cases qui claquent, lignes de concentration, onomatopées, tampon, respiration et atterrissage des poses. La responsable conformité est l’héroïne. Le colibri de la marque est son détective, sur un ciel néon. Le message reste simple : une vérification rapide et sourcée, et la décision revient toujours à la responsable conformité. Une zone réservée accueille les cartouches de narration, et aucun décor n’y entre. Chaque texte est mesuré avant d’être placé.

## Récit

| Temps | Image | À l’écran |
|---|---|---|
| 0 à 7 s | Nuit de pluie. La porte s’ouvre en contre-jour sur une silhouette en long manteau, son ombre s’allonge vers nous, et la responsable conformité lève les yeux. | Un nouveau client. Que faut-il vérifier ? |
| 7 à 13 s | Le colibri détective entre en trombe, s’écrase à l’atterrissage et soulève son chapeau. Son œil remplit l’écran, un éclat jaillit, puis retour au plan large. | Trois secondes d’enquête. |
| 13 à 22 s | Trois cases claquent l’une après l’autre : listes de sanctions, personnes politiquement exposées, registres des sociétés. Un faisceau parcourt chaque liste, puis le résultat claque. Un tableau d’enquête recouvre les cases : les fiches tombent une à une, le fil rouge les relie, et le colibri s’y pose. | Sanctions, PEP, registres : tout est croisé et sourcé. |
| 22 à 32 s | Le dossier se compose. Un point de vigilance est signalé calmement, les sources sont horodatées, le colibri relit à la loupe. La responsable décide et le tampon « Accepté, avec vigilance renforcée » s’abat. | Un dossier sourcé, prêt à relire. Vous décidez. |
| 32 à 38 s | Trois garanties : accès maîtrisés, traçabilité complète, hébergement à Monaco possible. | Pensé pour vos obligations LCB-FT. |
| 38 à 44 s | Le colibri fonce au centre, le wordmark Pragma.mc claque, puis la promesse et le contact. | L’enquête en trois secondes. La décision reste la vôtre. contact@pragma.mc |

Le client est fictif. Le film ne représente ni une personne réelle ni une inscription réelle sur une liste.

## Fichiers

- `src/script.js` : temps, textes, vérifications, dossier, garanties. Tout le contenu se modifie ici.
- `src/figures.js` : la responsable conformité (une illustration par pose, au bureau, en lecture, au tampon, clin d’œil), le client qui sort du contre-jour, le colibri détective, la loupe, l’œil.
- `src/sprites.js` : les illustrations et les décors peints de `art/` (WebP), chargés par le lecteur et par l’export avant la première image, et `backdrop()` pour poser un décor en plein cadre. `art/gen.sh` les génère avec GPT Image 2 par la CLI Higgsfield, avec l’image de référence du personnage pour le garder identique d’une pose à l’autre. Les PNG sources restent hors dépôt, dans `art/raw/`.
- `src/scene_open.js`, `src/scene_eye.js`, `src/scene_checks.js`, `src/scene_verdict.js`, `src/scene_sign.js` : les six temps du film et le gros plan sur l’œil.
- `src/stage.js` : formats, zone des cartouches, coupes en lignes de vitesse, caméra, traînées et étirements de mouvement. `src/fx.js` : trame en motif, assez légère pour tourner en direct.
- `../_manga/manga.js` : la boîte à outils manga commune aux films manga.
- `src/film.js` : `drawFrame(ctx, env, t, format)`, une fonction pure du temps.
- `player.js`, `index.html` : lecteur, avec des liens `?t=` vers chaque scène. `score.mjs` : musique déterministe. `render.mjs` : export MP4.

```bash
bun install
bun score.mjs audio/score.wav && ffmpeg -y -i audio/score.wav -c:a aac -b:a 192k audio/film.m4a
bun run render:16x9 && bun run render:9x16
```

## Fontes

Hanken Grotesk et Gilda Display, sous licence OFL.
