# Scene performance — September 23, 2026

Lucky walks to the character before a conversation begins. The camera then moves to a closer two-character composition. Dialogue appears inside the scene in a cloud-shaped bubble, with a different tint for Lucky. Reply and research choices sit immediately below the scene. Leaving the conversation restores the wide view; floor clicks use the camera's current coordinates throughout that transition.

## Current animation

South Beach now conceals Marina's lower body in the water until she accepts a lift and comes ashore. The jellyfish appears only in the reveal pose. See [Marina Reveal Notes](Marina_Reveal_Notes.md) for the scene order, assets and prompts.

Dialogue readability update: speech text now scales from 24 to 36 px on desktop, with bold 18–26 px speaker labels and larger reply buttons. Lucky's name is always green; female character names use dark pink and other NPC names use blue. These high-contrast colors sit on the pale speech bubbles. Smaller screens use a separate responsive scale. The styles are in `game/dialogue-readability.css`; voice changes are assigned in `game/scene-life.js`.

- Lucky has six new transparent poses. His idle routines straighten his leisure suit and slick back his hair. **Strike a pose / P** alternates the two routines.
- Nina has a separate clean background and four transparent character poses: resting on the counter, adjusting her blouse collar, tucking her hair, and gesturing during conversation.
- The other painted characters use subtle local texture deformation for breathing, fabric and outer hair sway. Faces and feet stay fixed. These remain limited animation rigs, not separate hand-drawn action sequences for every NPC.
- Each location has character or environmental motion. Water highlights move at the beach, marina, deck and salon; other locations have restrained light, steam or sparkle effects.
- **Motion: on / paused** controls idle and environmental performance. Device reduced-motion preferences disable these effects and make camera changes immediate. Walking and story interaction remain available.
- Animation pauses while research, storyboards, help or the atlas are open, and when the browser tab is hidden. Research still returns to the same conversation.

## Production assets

The environmental layers include passing cars, flapping and gliding gulls, swaying palms, climbing iguanas, city traffic and a fluttering yacht flag. See [Living Miami — World Ambience Notes](World_Ambience_Notes.md) for the location guide, assets and generation prompts.

The built-in image-generation tool created these versioned assets. Original scene art and walking sprites are retained.

- `game/world/assets/lucky_idle_v1.png` — 1024 × 1536, six poses with alpha.
- `game/world/assets/nina_idle_v1.png` — 1536 × 1024, four poses with alpha.
- `game/world/assets/rental_lobby_clean_v1.png` — 1672 × 941, rental lobby without the painted Nina.

The public release uses lossless WebP equivalents. Frame rectangles, pose timing, camera framing and ambient motion are defined in `game/scene-life.js`; bubble presentation is in `game/scene-life.css`.

## Final generation prompts

### Lucky — reference: lucky_walk_alpha.png

Game animation asset. Make a transparent-background sprite sheet of the supplied fully dressed fictional man, keeping his face, white leisure suit, coral shirt, gold necklace and white shoes consistent. Six full-body poses in a 3-column, 2-row grid, equal cells, aligned feet and equal figure scale, facing right. Pose 1 standing relaxed. Pose 2 holding suit lapels. Pose 3 straightening suit lapels. Pose 4 raising a hand toward his hair. Pose 5 smoothing his hair back with his palm. Pose 6 lowering his hand. Match the illustrated adventure-game style of the reference. No captions or background. Use real alpha transparency.

### Rental clean plate — reference: rental_lobby.png

Game animation clean plate edit. Preserve this exact illustrated Hertz airport rental lobby composition, architecture, counters, neon Miami windows, signage, lighting and colors. Remove only the woman behind the right-hand counter, reconstruct the wall and cabinetry she obscured. Keep the entire foreground counter intact. No people. Keep 16:9 framing and identical camera. This is the background layer for adding an animated character later.

### Nina — reference: rental_lobby.png

Production game character animation sheet on a genuinely transparent alpha background. Extract the adult rental agent at the right-hand counter as the reference character: exact dark curly hair, warm expressive face, gold hoop earrings, yellow tied rental-agent blouse with Hertz name badge, navy high-waisted trousers. Same retro painterly adventure-game style, no change in outfit. Four waist-up animation poses arranged in equal 2 columns by 2 rows cells, equal size, head at same height, waist at same baseline. Include her complete arms and hands in every cell. Pose 1 smiles with both hands resting on an invisible waist-high countertop, matching reference. Pose 2 raises one hand to straighten her blouse collar near her shoulder, other hand stays on invisible counter. Pose 3 tucks a curl behind her ear with one hand, other hand on invisible counter. Pose 4 conversational open-palm gesture and knowing smile. All poses face slightly toward the viewer's left as in reference. No background, no counters, no text outside the small badge, no cell borders. Actual alpha transparency. Fully clothed friendly comic performance for a game, no undressing.

## Validation records

### Label and motion refinement

- NPC labels sit above the character or move beside/below when the top edge is crowded. Names stay inside the scene and clear the protected head areas. Door and gangway labels are also clamped inside the stage. Labels disappear while the conversation camera returns to its wide position.
- Recalibrated the auction, depot, matchmaker and autonomous-lounge hitboxes against the current artwork. Eight character positions had inherited inaccurate bounds.
- Lucky's gait follows distance traveled, uses a balanced four-step order and has corrected foot/head anchors. His idle gestures have revised timing, longer rests and grounded breathing. Nina's pose anchors are aligned and her gestures have longer holds. Lucky settles into a listening pose during conversation.
- Poses use crisp held cels with full opacity. Whole-character crossfades were removed because they produced doubled faces and translucent limbs between distinct drawings. These are deliberately limited cel animations, not continuous skeletal animation.
- Painted NPCs no longer receive constant face/head wobble. Palm motion is slower and smaller, gulls alternate flapping with gliding, and iguanas ease into their climbs and pause before head movements.
- The motion button freezes the current ambient pose instead of snapping palms and NPCs back to their starting shapes. Walking and story actions remain usable; the system reduced-motion setting retains the simplified beach presentation.
- Marina's walk ashore eases in and out. The jellyfish pose is gated by the reveal phase, including floating-point boundary cases at the end of the walk.

`source/scene_polish_validation.json` covers responsive name/exit placement, continuous pose weights, fixed facial regions and eased iguana paths. `source/scene_polish_browser_validation.json` records the full location review, responsive browser audit and interaction checks for this release.

`source/scene_life_validation.json` checks camera bounds and character framing for all 18 conversation positions, screen/world coordinate round trips, frame indices and both HTML entry points. The existing nine-chapter campaign logic check remains separate.

`source/scene_life_browser_validation.json` records visual and interaction checks. Existing PDF and PowerPoint bibles remain historical visual snapshots; this note describes the current playable animation implementation.
