# Primo piano del biliardo Il tavolo in `assets/closeups/biliardo-tavolo.png` è generato con lo strumento immagini integrato di Codex, senza API. Prompt completo in `prompts/closeups/biliardo-tavolo.integrated.txt` (cartella esclusa da git). Specifica: vista ortogonale dall'alto, pixel art da avventura anni '90, mogano scuro a fasce chiare e scure, diamanti d'ottone, panno verde, sala in penombra; senza buche, biglie, birilli, persone, stecche o testi. Riferimento di stile: `circolo-4-maggio.png`. L'Ingegnere usa il foglio esistente `ing-tozzi.json`, coerente con la fotografia di riferimento. Il master misura 1672×941. `tablePatches()` in `biliardo-render.js` mappa il panno sorgente (190, 214)–(1484, 722) su `(VIEW.x, VIEW.y, LEN * VIEW.k, WID * VIEW.k)`; i ritagli esterni mantengono una cornice larga 16 pixel. La geometria della simulazione resta invariata. Il caricamento passa da `story.closeups.biliardo.picture`, con la stessa cache delle bocce. La luce calda è disegnata sul panno con una piccola tela memorizzata, ingrandita senza smoothing. Biglie e birilli usano blocchi di pixel; le ombre delle biglie si allontanano dalla lampada centrale. I segnapunti sono cifre rosse a sette segmenti. Le quattro pose di Tozzi rimangono nel margine sinistro. `biliardo.js` aggiunge soltanto stato visivo: orologio, posizione iniziale della steccata, breve cronologia delle posizioni e istante della caduta dei birilli. La presentazione del moto è ritardata di 180 ms, per mostrare arretramento e scatto della stecca; la fisica parte subito. La caduta dei birilli dura 240 ms sul medesimo orologio visivo. Previsione e CPU non scrivono questa cronologia. Un confronto con la versione precedente ha verificato 6626 aggiornamenti identici, escludendo i soli campi visivi. Controlli: `tests/biliardo-render.test.mjs` verifica allineamento, presentazione, cadute, pose e immutabilità del disegno. `npm run browser:biliardo` conserva i controlli dei comandi su desktop, touch e telefono verticale e aggiunge controlli dei pixel e catture delle animazioni in `/tmp/regolo-biliardo`. Verifica di questa modifica: test JavaScript e Python superati; anteprima locale del renderer ispezionata. Restano da completare `make -s verify` e `npm run browser:biliardo` in un ambiente che permetta server locale e Chromium: nella sandbox della sessione entrambi sono bloccati da `Operation not permitted`. Le vecchie schermate browser non validano questa modifica.