STOCKMIL STUDIO

f4 Storyboard · T01E01

En la máquina: storyboard · tiene puerta (se aprueba) · ← cadena del proyecto

Cada plano va en tres bloques separados: diálogo (lo que suena), imagen (el prompt) y vídeo (lo que se mueve). El prompt del guion manda; el director solo añade lo técnico. Si tarda y el log sale vacío, no está parado: la máquina escribe en buffer.

Estado: hecha · puerta: pendiente

/tmp/proyectos/T01E01/Guiones/STORYBOARD.md md sí (22127 B) /tmp/proyectos/T01E01/Guiones/planos.json json sí (50199 B)

sha256 aprobado: — · sha256 actual: 5c5e26d682a876c024ebfaf3de6f8a6b133e88ff0e6cc3ead47e585994062ad0

El .md (prosa para leer y aprobar)

Los planos y sus prompts, para aprobar antes de generar nada.

# STORYBOARD — T01E01

**19 planos · 138.0 s · corto vertical 9:16**
- **Master lock** (no cambia entre planos): cold teal dock light, rust orange cargo, vertical framing
- **Motivo de serie** (el ancla que se repite): el sello azul corrido en la esquina del pasaporte

## e1 · 6.0s · introduce_subject
**DICE:** «¡Esperen! ¡El barco! ¡Llevo el billete, esperen! ¡No se vayan sin mí!»
**SE VE:** Botas golpeando el muelle mojado; al fondo, la popa de un barco se pierde entre la niebla.
**Por qué existe:** Mostrar que el barco se va sin él en el primer segundo.
**Cámara:** wide · tracking_right · 35 · blue_hour · deep · cool
**Detalles:** detalle_entorno: charco de agua sucia que devuelve la luz de las farolas | micro_accion: hombros adelantados, boca abierta gritando sin aire | motivo: N/A — no aparece
**Asset:** generar · gemini-omni-flash · motor google-flow
**Refs:** REF-ME
**LOS 3 BLOQUES (independientes):**
- **DIÁLOGO:** «¡Esperen! ¡El barco! ¡Llevo el billete, esperen! ¡No se vayan sin mí!»
- **IMAGEN:** `Man running along a dock with a suitcase, ship ropes untied, hull pulling away, 35mm lens, slow lateral track right, deep depth of field, blue hour light, cool tones. cold teal dock light, rust orange cargo, vertical framing.`
- **VÍDEO:** Corre, grita, tropieza con un noray y vuelve a arrancar | movimiento: slow lateral track right

## e2 · 8.0s · build_tension
**DICE:** «Hay otro barco a Holanda. Mismo destino. Sale mañana. Dame todo el dinero que lleves.»
**SE VE:** Una palma abierta esperando billetes en la penumbra; tras ella, una fila de contenedores apilados.
**Por qué existe:** Convertir la esperanza en un precio.
**Cámara:** medium_close · dolly_in · 50 · low_key · shallow · cool
**Detalles:** detalle_entorno: bombilla desnuda zumbando sobre cajas de cartón mojadas | micro_accion: dedos que se cierran sobre el dinero antes de que el otro suelte | motivo: N/A — no aparece
**Asset:** generar · gemini-omni-flash · motor google-flow
**Refs:** REF-BRUNO
**LOS 3 BLOQUES (independientes):**
- **DIÁLOGO:** «Hay otro barco a Holanda. Mismo destino. Sale mañana. Dame todo el dinero que lleves.»
- **IMAGEN:** `Stranger in a leather jacket holding an open passport in front of a passenger's face, 50mm lens, slow dolly in, shallow depth of field, low key light, cool tones. cold teal dock light, rust orange cargo, vertical framing.`
- **VÍDEO:** Extiende la palma, cuenta los billetes con el pulgar y señala el contenedor con la barbilla | movimiento: slow dolly in

## e3 · 8.0s · build_tension
**DICE:** «Sube aquí. El viaje va en silencio. No hables con nadie, no salgas hasta que abran.»
**SE VE:** La puerta del contenedor cerrándose desde dentro; la franja de luz exterior se estrecha hasta desaparecer.
**Por qué existe:** Marcar el instante exacto en que queda encerrado.
**Cámara:** insert · dolly_in · 35 · low_key · shallow · cool
**Detalles:** detalle_entorno: óxido saltando del raíl mientras la puerta rueda | micro_accion: dedos agarrotados en el borde de la chapa al soltar | motivo: N/A — no aparece
**Asset:** generar · gemini-omni-flash · motor google-flow
**Refs:** REF-BRUNO
**LOS 3 BLOQUES (independientes):**
- **DIÁLOGO:** «Sube aquí. El viaje va en silencio. No hables con nadie, no salgas hasta que abran.»
- **IMAGEN:** `Open shipping container door in a dark hold, stranger's hand pointing inside, 35mm lens, slow dolly in, shallow depth of field, low key light, cool tones. cold teal dock light, rust orange cargo, vertical framing.`
- **VÍDEO:** La puerta rueda, la franja de luz se convierte en línea y el pestillo cae | movimiento: slow dolly in

## e4 · 8.0s · emotional_beat  ★HERO
**DICE:** «Esta foto no es mía. Este pasaporte no es mío. ¿Dónde estoy? ¿Dónde me llevan?»
**SE VE:** Una linterna de móvil recorre un pasaporte ajeno; el sello azul corrido en la esquina.
**Por qué existe:** Enseñar la primera prueba de que le han cambiado la identidad.
**Cámara:** extreme_close_up · rack_focus · 85 · low_key · shallow · cool
**Detalles:** detalle_entorno: aire espeso y polvo flotando en el haz del móvil | micro_accion: pulgar detenido sobre la foto que no es la suya | motivo: el sello azul corrido en la esquina del pasaporte
**Asset:** generar · gemini-omni-flash · motor google-flow
**Refs:** REF-ME
**LOS 3 BLOQUES (independientes):**
- **DIÁLOGO:** «Esta foto no es mía. Este pasaporte no es mío. ¿Dónde estoy? ¿Dónde me llevan?»
- **IMAGEN:** `Fingers pressing a stranger's photo on a passport page, thin slit of light on metal wall, 85mm lens, rack focus, shallow depth of field, low key light, cool tones. cold teal dock light, rust orange cargo, vertical framing.`
- **VÍDEO:** Abre el pasaporte, gira la página bajo la luz y contiene la respiración | movimiento: rack focus

## e5 · 6.0s · build_tension
**DICE:** «¡Eh, aquí dentro! ¿Hay alguien al otro lado? ¡Contesta, por favor, contesta!»
**SE VE:** Un puño golpeando la chapa del contenedor; el óxido cae en escamas sobre el suelo.
**Por qué existe:** Mostrar que el encierro es real y que está solo.
**Cámara:** close_up · handheld · 35 · low_key · shallow · cool
**Detalles:** detalle_entorno: golpes que rebotan en la chapa y vuelven sin respuesta | micro_accion: dientes apretados y puño temblando antes del siguiente golpe | motivo: N/A — no aparece
**Asset:** generar · gemini-omni-flash · motor google-flow
**Refs:** REF-ME
**LOS 3 BLOQUES (independientes):**
- **DIÁLOGO:** «¡Eh, aquí dentro! ¿Hay alguien al otro lado? ¡Contesta, por favor, contesta!»
- **IMAGEN:** `Fist knocking on corrugated metal wall, dust falling, darkness around a crouched man, 35mm lens, handheld, shallow depth of field, low key light, cool tones. cold teal dock light, rust orange cargo, vertical framing.`
- **VÍDEO:** Pega la mejilla al metal, grita y golpea con la base del puño | movimiento: handheld

## e6 · 8.0s · deliver_payload
**DICE:** «Yo voy en el contenedor de al lado. Pagué lo mismo y me dieron un pasaporte igual.»
**SE VE:** Una oreja pegada a la chapa metálica; al otro lado, nudillos que golpean despacio tres veces.  🎙 **VOZ EN OFF** (el que habla no sale en pantalla)
**Por qué existe:** Descubrir que hay otro engañado como él.
**Cámara:** medium_close · static · 50 · low_key · shallow · cool
**Detalles:** detalle_entorno: metal tan frío que empaña la mejilla al apoyarla | micro_accion: ceja levantada y labios separados conteniendo la respuesta | motivo: N/A — no aparece
**Asset:** generar · gemini-omni-flash · motor google-flow
**Refs:** REF-CHICO
**LOS 3 BLOQUES (independientes):**
- **DIÁLOGO:** «Yo voy en el contenedor de al lado. Pagué lo mismo y me dieron un pasaporte igual.»
- **IMAGEN:** `Ear pressed to metal sheet, mouth close to the wall, one eye squinting, 50mm lens, locked off, shallow depth of field, low key light, cool tones. cold teal dock light, rust orange cargo, vertical framing.`
- **VÍDEO:** Se queda inmóvil, abre los ojos y responde golpeando dos veces | movimiento: locked off

## e7 · 8.0s · evidence
**DICE:** «El billete no era un billete. Era una trampa. Nos vendieron la misma mentira a los dos.»
**SE VE:** Dos mitades del billete rasgadas sobre el suelo metálico, bajo la luz de la pantalla.
**Por qué existe:** Convertir el billete en la prueba del engaño compartido.
**Cámara:** insert · static · 50 · low_key · shallow · cool
**Detalles:** detalle_entorno: papel húmedo que se deshilacha al rasgarse | micro_accion: manos que dejan de temblar en cuanto rompe el papel | motivo: N/A — no aparece
**Asset:** generar · gemini-omni-flash · motor google-flow
**Refs:** REF-ME
**LOS 3 BLOQUES (independientes):**
- **DIÁLOGO:** «El billete no era un billete. Era una trampa. Nos vendieron la misma mentira a los dos.»
- **IMAGEN:** `Two passports lying on container floor beside a torn paper boarding ticket, 50mm lens, locked off, shallow depth of field, low key light, cool tones. cold teal dock light, rust orange cargo, vertical framing.`
- **VÍDEO:** Rasga el billete por la mitad, junta los trozos y los vuelve a separar | movimiento: locked off

## e8 · 6.0s · deliver_payload  ★HERO
**DICE:** «¿Ningbo? Esto no es Holanda. ¿Dónde está el mar? ¿Dónde está mi barco?»
**SE VE:** La puerta del contenedor se abre de golpe: grúas gigantes y niebla amarillenta de puerto chino.
**Por qué existe:** Revelar el destino real: no hay mar, hay grúas.
**Cámara:** wide · dolly_out · 24 · overcast_soft · deep · mixed
**Detalles:** detalle_entorno: luz amarilla de sodio colándose entre la niebla de las grúas | micro_accion: pie a medio levantar, congelado antes de tocar el asfalto | motivo: N/A — no aparece
**Asset:** generar · gemini-omni-flash · motor google-flow
**Refs:** REF-ME
**LOS 3 BLOQUES (independientes):**
- **DIÁLOGO:** «¿Ningbo? Esto no es Holanda. ¿Dónde está el mar? ¿Dónde está mi barco?»
- **IMAGEN:** `Port cranes and stacked containers with Chinese characters painted on a hull, 24mm lens, slow dolly out, deep depth of field, overcast soft light, mixed tones. cold teal dock light, rust orange cargo, vertical framing.`
- **VÍDEO:** Empuja las puertas hacia fuera, da un paso y se queda clavado en el umbral | movimiento: slow dolly out

## e9 · 8.0s · transition
**DICE:** «Holanda no existe para nosotros. Esto es Ningbo. Estamos al otro lado del mundo.»
**SE VE:** El protagonista gira la cabeza hacia una voz entre contenedores; letreros en chino sobre las naves.  🎙 **VOZ EN OFF** (el que habla no sale en pantalla)
**Por qué existe:** Situar la acción al otro lado del mundo.
**Cámara:** medium · pan_right · 35 · overcast_soft · medium · cool
**Detalles:** detalle_entorno: cada contenedor con una numeración distinta pintada en blanco | micro_accion: cabeza ladeada, boca entreabierta sin llegar a responder | motivo: N/A — no aparece
**Asset:** generar · gemini-omni-flash · motor google-flow
**Refs:** REF-CHICO
**LOS 3 BLOQUES (independientes):**
- **DIÁLOGO:** «Holanda no existe para nosotros. Esto es Ningbo. Estamos al otro lado del mundo.»
- **IMAGEN:** `Workers in vests under a sign with Chinese characters, port cranes behind, 35mm lens, slow pan right, medium depth of field, overcast soft light, cool tones. cold teal dock light, rust orange cargo, vertical framing.`
- **VÍDEO:** Gira sobre los talones, entrecierra los ojos y da dos pasos hacia el sonido | movimiento: slow pan right

## e10 · 8.0s · build_tension
**DICE:** «Aquí nadie sale sin pagar. O pagáis la deuda de Bruno, o bajáis a la bodega a trabajar.»
**SE VE:** Un chaleco reflectante bloquea el paso y una linterna da de lleno en la cara del protagonista.
**Por qué existe:** Presentar la deuda como única salida del barco.
**Cámara:** medium_wide · handheld · 35 · low_key · medium · cool
**Detalles:** detalle_entorno: linterna que dibuja el vapor del aliento en el aire frío | micro_accion: mandíbula cuadrada y dedo que golpea la linterna al hablar | motivo: N/A — no aparece
**Asset:** generar · gemini-omni-flash · motor google-flow
**Refs:** REF-JIN
**LOS 3 BLOQUES (independientes):**
- **DIÁLOGO:** «Aquí nadie sale sin pagar. O pagáis la deuda de Bruno, o bajáis a la bodega a trabajar.»
- **IMAGEN:** `Man in a vest holding a notebook, finger pointing at two workers, 35mm lens, handheld, medium depth of field, low key light, cool tones. cold teal dock light, rust orange cargo, vertical framing.`
- **VÍDEO:** Abre el brazo, señala la bodega con la linterna y espera respuesta | movimiento: handheld

## e11 · 6.0s · build_tension
**DICE:** «Terminé el turno. ¿Habéis visto a Chico? Nadie lo ha visto salir.»
**SE VE:** Una llave inglesa grasienta sobre la barandilla; al fondo, una litera vacía y sin mantas.
**Por qué existe:** Sembrar la desaparición de Chico sin nombrarla aún.
**Cámara:** medium · dolly_in · 50 · tungsten_warm · medium · warm
**Detalles:** detalle_entorno: litera con el colchón todavía hundido y una manta arrastrada al suelo | micro_accion: manos girando la llave entre los dedos sin darse cuenta | motivo: N/A — no aparece
**Asset:** generar · gemini-omni-flash · motor google-flow
**Refs:** REF-ME
**LOS 3 BLOQUES (independientes):**
- **DIÁLOGO:** «Terminé el turno. ¿Habéis visto a Chico? Nadie lo ha visto salir.»
- **IMAGEN:** `Empty bunk with a folded blanket, man standing in the doorway of the dormitory, 50mm lens, slow dolly in, medium depth of field, tungsten warm light, warm tones. cold teal dock light, rust orange cargo, vertical framing.`
- **VÍDEO:** Suelta la llave, se limpia las manos en el pantalón y mira la litera deshecha | movimiento: slow dolly in

## e12 · 8.0s · evidence
**DICE:** «Este pasaporte lleva el nombre de Chico. Es el mismo que Bruno me dio a mí.»
**SE VE:** Un pasaporte abierto sobre una mesa metálica; un dedo se detiene en el nombre impreso.
**Por qué existe:** Unir el nombre de Chico con el mismo pasaporte que él recibió.
**Cámara:** insert · static · 85 · tungsten_warm · shallow · warm
**Detalles:** detalle_entorno: bombilla que se balancea y hace oscilar la sombra del pasaporte | micro_accion: dedo que presiona el nombre hasta dejar marca en el papel | motivo: el sello azul corrido en la esquina del pasaporte
**Asset:** generar · gemini-omni-flash · motor google-flow
**Refs:** REF-ME
**LOS 3 BLOQUES (independientes):**
- **DIÁLOGO:** «Este pasaporte lleva el nombre de Chico. Es el mismo que Bruno me dio a mí.»
- **IMAGEN:** `Passport photo of a young man on a mattress, thumb covering the printed name, 85mm lens, locked off, shallow depth of field, tungsten warm light, warm tones. cold teal dock light, rust orange cargo, vertical framing.`
- **VÍDEO:** Desliza el pasaporte bajo la bombilla, compara la foto y lo cierra de golpe | movimiento: locked off

## e13 · 8.0s · emotional_beat
**DICE:** «¿Lara? Soy yo. Estoy en China, en un puerto. Me engañaron con el billete.»
**SE VE:** El protagonista con el móvil pegado a la oreja en el muelle; grúas encendidas detrás de él.
**Por qué existe:** Mostrar que su único apoyo está a un océano de distancia.
**Cámara:** medium_close · steadicam · 50 · neon · shallow · mixed
**Detalles:** detalle_entorno: viento que cruza el micrófono y corta la frase a medias | micro_accion: nudillos blancos apretando el teléfono contra la oreja | motivo: N/A — no aparece
**Asset:** generar · gemini-omni-flash · motor google-flow
**Refs:** REF-ME
**LOS 3 BLOQUES (independientes):**
- **DIÁLOGO:** «¿Lara? Soy yo. Estoy en China, en un puerto. Me engañaron con el billete.»
- **IMAGEN:** `Phone screen glowing on a face in a dim dormitory, thumb over the dial, 50mm lens, steadicam glide, shallow depth of field, neon light, mixed tones. cold teal dock light, rust orange cargo, vertical framing.`
- **VÍDEO:** Se tapa el oído libre, habla rápido y mira al suelo mientras espera respuesta | movimiento: steadicam glide

## e14 · 8.0s · deliver_payload
**DICE:** «Lara ya pagó tu viaje. Igual que tú. Aquí tengo el justificante con su nombre.»
**SE VE:** Una carpeta abierta con el justificante de pago y un nombre subrayado en rojo.
**Por qué existe:** Confirmar que Lara también pagó y también fue engañada.
**Cámara:** over_shoulder · static · 50 · low_key · shallow · cool
**Detalles:** detalle_entorno: fluorescente que parpadea sobre el papel cuché del justificante | micro_accion: dedos índice y medio golpeando el nombre subrayado sin soltar la carpeta | motivo: N/A — no aparece
**Asset:** generar · gemini-omni-flash · motor google-flow
**Refs:** REF-BRUNO
**LOS 3 BLOQUES (independientes):**
- **DIÁLOGO:** «Lara ya pagó tu viaje. Igual que tú. Aquí tengo el justificante con su nombre.»
- **IMAGEN:** `Phone held up showing a payment receipt with a handwritten signature, dock lights behind, 50mm lens, locked off, shallow depth of field, low key light, cool tones. cold teal dock light, rust orange cargo, vertical framing.`
- **VÍDEO:** Gira la carpeta hacia el protagonista y golpea el nombre con dos dedos | movimiento: locked off

## e15 · 8.0s · call_to_action
**DICE:** «Jin y Bruno comparten deuda, negocio y gente. Voy a devolverles un pasaporte que no es mío.»
**SE VE:** El pasaporte ajeno guardado en el bolsillo interior de la chaqueta, camino del almacén.
**Por qué existe:** Marcar el arranque de su plan de venganza.
**Cámara:** medium_wide · tracking_right · 35 · tungsten_warm · medium · warm
**Detalles:** detalle_entorno: charco con la luz naranja del almacén partida en dos | micro_accion: paso más largo del normal, manos cerradas a los lados | motivo: el sello azul corrido en la esquina del pasaporte
**Asset:** generar · gemini-omni-flash · motor google-flow
**Refs:** REF-ME
**LOS 3 BLOQUES (independientes):**
- **DIÁLOGO:** «Jin y Bruno comparten deuda, negocio y gente. Voy a devolverles un pasaporte que no es mío.»
- **IMAGEN:** `Man walking between stacked containers towards a gate, passport in one hand, 35mm lens, slow lateral track right, medium depth of field, tungsten warm light, warm tones. cold teal dock light, rust orange cargo, vertical framing.`
- **VÍDEO:** Cierra la cremallera del bolsillo, ajusta la solapa y camina decidido hacia la puerta | movimiento: slow lateral track right

## e16 · 8.0s · evidence
**DICE:** «Este pasaporte lo vendí yo hace años. Bruno, me estás vendiendo gente con mis propios papeles.»
**SE VE:** Un hombre mayor con lupa compara dos pasaportes idénticos bajo una lámpara de taller.
**Por qué existe:** Cerrar el círculo: Bruno vende personas con papeles que él mismo fabricó.
**Cámara:** close_up · dolly_in · 85 · tungsten_warm · shallow · warm
**Detalles:** detalle_entorno: tampones de goma alineados y un trapo negro con restos de tinta azul | micro_accion: lupa temblando en la mano al reconocer su propio sello | motivo: el sello azul corrido en la esquina del pasaporte
**Asset:** generar · gemini-omni-flash · motor google-flow
**Refs:** REF-JIN
**LOS 3 BLOQUES (independientes):**
- **DIÁLOGO:** «Este pasaporte lo vendí yo hace años. Bruno, me estás vendiendo gente con mis propios papeles.»
- **IMAGEN:** `Older man holding a passport open, another man turning his face away, 85mm lens, slow dolly in, shallow depth of field, tungsten warm light, warm tones. cold teal dock light, rust orange cargo, vertical framing.`
- **VÍDEO:** Levanta la lupa, superpone las dos páginas y las separa con un gesto de asco | movimiento: slow dolly in

## e17 · 6.0s · resolution
**DICE:** «Un pasaporte con sello de salida. Bruno, gracias por tu nombre.»
**SE VE:** Un sello de salida estampado de golpe sobre la página; la tinta se corre un milímetro.
**Por qué existe:** Ver el arma ya cargada: el pasaporte marcado como salida.
**Cámara:** extreme_close_up · static · 135 · low_key · shallow · cool
**Detalles:** detalle_entorno: tinta azul brillante que contrasta con el resto de la página seca | micro_accion: muñeca firme y respiración lenta al levantar el sello | motivo: el sello azul corrido en la esquina del pasaporte
**Asset:** generar · gemini-omni-flash · motor google-flow
**Refs:** REF-ME
**LOS 3 BLOQUES (independientes):**
- **DIÁLOGO:** «Un pasaporte con sello de salida. Bruno, gracias por tu nombre.»
- **IMAGEN:** `Two men fighting on the dock floor, passports scattered, a boot stepping on one, 135mm lens, locked off, shallow depth of field, low key light, cool tones. cold teal dock light, rust orange cargo, vertical framing.`
- **VÍDEO:** Presiona el sello, lo levanta y sopla la tinta fresca con calma | movimiento: locked off

## e18 · 6.0s · deliver_payload
**DICE:** «Soy Bruno. Vengo de Ningbo. Aquí está mi pasaporte de salida.»
**SE VE:** Un hombre corpulento en la cola de control muestra su pasaporte; el sello azul en la esquina.
**Por qué existe:** Que Bruno caiga con el pasaporte que él mismo vendió.
**Cámara:** medium · static · 50 · high_key · medium · neutral
**Detalles:** detalle_entorno: fluorescentes blancos y cinta amarilla marcando la cola en el suelo | micro_accion: sonrisa que se apaga en cuanto el agente mira la página | motivo: el sello azul corrido en la esquina del pasaporte
**Asset:** generar · gemini-omni-flash · motor google-flow
**Refs:** REF-ME
**LOS 3 BLOQUES (independientes):**
- **DIÁLOGO:** «Soy Bruno. Vengo de Ningbo. Aquí está mi pasaporte de salida.»
- **IMAGEN:** `Hand pushing a passport across a boarding counter, guard checking the photo, 50mm lens, locked off, medium depth of field, high key light, neutral tones. cold teal dock light, rust orange cargo, vertical framing.`
- **VÍDEO:** Entrega el pasaporte, sonríe al agente y se ajusta el cuello de la camisa | movimiento: locked off

## e19 · 6.0s · resolution  ★HERO
**DICE:** «¿Eres tú? ¿Eres Chico? Llevo días esperando aquí. Ven, abrázame.»
**SE VE:** Una mujer corre por el muelle y se cuelga del cuello del protagonista sin soltarle la cara.
**Por qué existe:** Cerrar con el reencuentro que revela quién es él de verdad.
**Cámara:** medium_close · orbital · 50 · golden_hour · shallow · warm
**Detalles:** detalle_entorno: niebla baja sobre el agua y el primer sol partiendo las grúas | micro_accion: manos que le recorren la cara buscando un rasgo conocido | motivo: N/A — no aparece
**Asset:** generar · gemini-omni-flash · motor google-flow
**Refs:** REF-LARA
**LOS 3 BLOQUES (independientes):**
- **DIÁLOGO:** «¿Eres tú? ¿Eres Chico? Llevo días esperando aquí. Ven, abrázame.»
- **IMAGEN:** `Woman holding a cardboard sign with a name, arms open, crowd behind her, 50mm lens, slow orbit, shallow depth of field, golden hour light, warm tones. cold teal dock light, rust orange cargo, vertical framing.`
- **VÍDEO:** Corre, frena en seco, le agarra la cara con las dos manos y lo abraza | movimiento: slow orbit

El .json (la misma información para las máquinas)

{
  "version": "1.0",
  "proyecto_id": "T01E01",
  "idioma_texto": "es",
  "formato": "corto vertical 9:16",
  "master_lock": "cold teal dock light, rust orange cargo, vertical framing",
  "motivo_serie": "el sello azul corrido en la esquina del pasaporte",
  "erratas": [],
  "duracion_total_s": 138,
  "escenas": [
    {
      "id": "e1",
      "beat": null,
      "tipo": "generated",
      "texto": "¡Esperen! ¡El barco! ¡Llevo el billete, esperen! ¡No se vayan sin mí!",
      "hablante": "@me",
      "voz_en_off": false,
      "refs": [
        "REF-ME"
      ],
      "visual": "Botas golpeando el muelle mojado; al fondo, la popa de un barco se pierde entre la niebla.",
      "prompt_base_guion": "Man running along a dock with a suitcase, ship ropes untied, hull pulling away",
      "bloques": {
        "dialogo": "¡Esperen! ¡El barco! ¡Llevo el billete, esperen! ¡No se vayan sin mí!",
        "imagen": "Man running along a dock with a suitcase, ship ropes untied, hull pulling away, 35mm lens, slow lateral track right, deep depth of field, blue hour light, cool tones. cold teal dock light, rust orange cargo, vertical framing.",
        "video": "Corre, grita, tropieza con un noray y vuelve a arrancar | movimiento: slow lateral track right"
      },
      "start_seconds": 0,
      "end_seconds": 6,
      "narrative_role": "introduce_subject",
      "shot_intent": "Mostrar que el barco se va sin él en el primer segundo.",
      "hero_moment": false,
      "shot_language": {
        "shot_size": "wide",
        "camera_movement": "tracking_right",
        "lighting_key": "blue_hour",
        "depth_of_field": "deep",
        "color_temperature": "cool",
        "lens_mm": 35
      },
      "aspectos": {
        "sujeto": "El protagonista con una bolsa de tela al hombro",
        "accion": "Corre, grita, tropieza con un noray y vuelve a arrancar",
        "escena": "Muelle de carga al amanecer, niebla húmeda, marineros cargando cajas al fondo",
        "espacial": "wide; sujeto centrado en el cuadro, profundidad FG/MG/BG simple; camara a altura de pecho",
        "camara": "35mm, tracking_right, DoF deep, estabilizada"
      },
      "detalles": {
        "detalle_entorno": "charco de agua sucia que devuelve la luz de las farolas",
        "micro_accion": "hombros adelantados, boca abierta gritando sin aire",
        "motivo": "N/A — no aparece"
      },
      "overlays": [],
      "asset": {
        "decision": "generar",
        "libreria_id": null,
        "modelo": "gemini-omni-flash"
      },
      "motor": "google-flow",
      "prompt_final": "Man running along a dock with a suitcase, ship ropes untied, hull pulling away, 35mm lens, slow lateral track right, deep depth of field, blue hour light, cool tones. cold teal dock light, rust orange cargo, vertical framing.",
      "prompt_palabras": 38,
      "transition_out": "hard cut"
    },
    {
      "id": "e2",
      "beat": null,
      "tipo": "generated",
      "texto": "Hay otro barco a Holanda. Mismo destino. Sale mañana. Dame todo el dinero que lleves.",
      "hablante": "@bruno",
      "voz_en_off": false,
      "refs": [
        "REF-BRUNO"
      ],
      "visual": "Una palma abierta esperando billetes en la penumbra; tras ella, una fila de contenedores apilados.",
      "prompt_base_guion": "Stranger in a leather jacket holding an open passport in front of a passenger's face",
      "bloques": {
        "dialogo": "Hay otro barco a Holanda. Mismo destino. Sale mañana. Dame todo el dinero que lleves.",
        "imagen": "Stranger in a leather jacket holding an open passport in front of a passenger's face, 50mm lens, slow dolly in, shallow depth of field, low key light, cool tones. cold teal dock light, rust orange cargo, vertical framing.",
        "video": "Extiende la palma, cuenta los billetes con el pulgar y señala el contenedor con la barbilla | movimiento: slow dolly in"
      },
      "start_seconds": 6,
      "end_seconds": 14,
      "narrative_role": "build_tension",
      "shot_intent": "Convertir la esperanza en un precio.",
      "hero_moment": false,
      "shot_language": {
        "shot_size": "medium_close",
        "camera_movement": "dolly_in",
        "lighting_key": "low_key",
        "depth_of_field": "shallow",
        "color_temperature": "cool",
        "lens_mm": 50
      },
      "aspectos": {
        "sujeto": "El intermediario que ofrece el otro barco",
        "accion": "Extiende la palma, cuenta los billetes con el pulgar y señala el contenedor con la barbilla",
        "escena": "Cobertizo del puerto al amanecer, contenedores apilados, operarios cruzando al fondo",
        "espacial": "medium_close; sujeto centrado en el cuadro, profundidad FG/MG/BG simple; camara a altura de pecho",
        "camara": "50mm, dolly_in, DoF shallow, estabilizada"
      },
      "detalles": {
        "detalle_entorno": "bombilla desnuda zumbando sobre cajas de cartón mojadas",
        "micro_accion": "dedos que se cierran sobre el dinero antes de que el otro suelte",
        "motivo": "N/A — no aparece"
      },
      "overlays": [],
      "asset": {
        "decision": "generar",
        "libreria_id": null,
        "modelo": "gemini-omni-flash"
      },
      "motor": "google-flow",
      "prompt_final": "Stranger in a leather jacket holding an open passport in front of a passenger's face, 50mm lens, slow dolly in, shallow depth of field, low key light, cool tones. cold teal dock light, rust orange cargo, vertical framing.",
      "prompt_palabras": 38,
      "transition_out": "hard cut"
    },
    {
      "id": "e3",
      "beat": null,
      "tipo": "generated",
      "texto": "Sube aquí. El viaje va en silencio. No hables con nadie, no salgas hasta que abran.",
      "hablante": "@bruno",
      "voz_en_off": false,
      "refs": [
        "REF-BRUNO"
      ],
      "visual": "La puerta del contenedor cerrándose desde dentro; la franja de luz exterior se estrecha hasta desaparecer.",
      "prompt_base_guion": "Open shipping container door in a dark hold, stranger's hand pointing inside",
      "bloques": {
        "dialogo": "Sube aquí. El viaje va en silencio. No hables con nadie, no salgas hasta que abran.",
        "imagen": "Open shipping container door in a dark hold, stranger's hand pointing inside, 35mm lens, slow dolly in, shallow depth of field, low key light, cool tones. cold teal dock light, rust orange cargo, vertical framing.",
        "video": "La puerta rueda, la franja de luz se convierte en línea y el pestillo cae | movimiento: slow dolly in"
      },
      "start_seconds": 14,
      "end_seconds": 22,
      "narrative_role": "build_tension",
      "shot_intent": "Marcar el instante exacto en que queda encerrado.",
      "hero_moment": false,
      "shot_language": {
        "shot_size": "insert",
        "camera_movement": "dolly_in",
        "lighting_key": "low_key",
        "depth_of_field": "shallow",
        "color_temperature": "cool",
        "lens_mm": 35
      },
      "aspectos": {
        "sujeto": "La puerta corredera y las manos que la empujan desde fuera",
        "accion": "La puerta rueda, la franja de luz se convierte en línea y el pestillo cae",
        "escena": "Interior de un contenedor en el muelle, mediodía, sin gente de fondo",
        "espacial": "insert; sujeto centrado en el cuadro, profundidad FG/MG/BG simple; camara a altura de pecho",
        "camara": "35mm, dolly_in, DoF shallow, estabilizada"
      },
      "detalles": {
        "detalle_entorno": "óxido saltando del raíl mientras la puerta rueda",
        "micro_accion": "dedos agarrotados en el borde de la chapa al soltar",
        "motivo": "N/A — no aparece"
      },
      "overlays": [],
      "asset": {
        "decision": "generar",
        "libreria_id": null,
        "modelo": "gemini-omni-flash"
      },
      "motor": "google-flow",
      "prompt_final": "Open shipping container door in a dark hold, stranger's hand pointing inside, 35mm lens, slow dolly in, shallow depth of field, low key light, cool tones. cold teal dock light, rust orange cargo, vertical framing.",
      "prompt_palabras": 35,
      "transition_out": "hard cut"
    },
    {
      "id": "e4",
      "beat": null,
      "tipo": "generated",
      "texto": "Esta foto no es mía. Este pasaporte no es mío. ¿Dónde estoy? ¿Dónde me llevan?",
      "hablante": "@me",
      "voz_en_off": false,
      "refs": [
        "REF-ME"
      ],
      "visual": "Una linterna de móvil recorre un pasaporte ajeno; el sello azul corrido en la esquina.",
      "prompt_base_guion": "Fingers pressing a stranger's photo on a passport page, thin slit of light on metal wall",
      "bloques": {
        "dialogo": "Esta foto no es mía. Este pasaporte no es mío. ¿Dónde estoy? ¿Dónde me llevan?",
        "imagen": "Fingers pressing a stranger's photo on a passport page, thin slit of light on metal wall, 85mm lens, rack focus, shallow depth of field, low key light, cool tones. cold teal dock light, rust orange cargo, vertical framing.",
        "video": "Abre el pasaporte, gira la página bajo la luz y contiene la respiración | movimiento: rack focus"
      },
      "start_seconds": 22,
      "end_seconds": 30,
      "narrative_role": "emotional_beat",
      "shot_intent": "Enseñar la primera prueba de que le han cambiado la identidad.",
      "hero_moment": true,
      "shot_language": {
        "shot_size": "extreme_close_up",
        "camera_movement": "rack_focus",
        "lighting_key": "low_key",
        "depth_of_field": "shallow",
        "color_temperature": "cool",
        "lens_mm": 85
      },
      "aspectos": {
        "sujeto": "El protagonista arrodillado con el móvil y un pasaporte abierto",
        "accion": "Abre el pasaporte, gira la página bajo la luz y contiene la respiración",
        "escena": "Interior de contenedor a oscuras, luz de pantalla, sin nadie más",
        "espacial": "extreme_close_up; sujeto centrado en el cuadro, profundidad FG/MG/BG simple; camara a altura de pecho",
        "camara": "85mm, rack_focus, DoF shallow, estabilizada"
      },
      "detalles": {
        "detalle_entorno": "aire espeso y polvo flotando en el haz del móvil",
        "micro_accion": "pulgar detenido sobre la foto que no es la suya",
        "motivo": "el sello azul corrido en la esquina del pasaporte"
      },
      "overlays": [],
      "asset": {
        "decision": "generar",
        "libreria_id": null,
        "modelo": "gemini-omni-flash"
      },
      "motor": "google-flow",
      "prompt_final": "Fingers pressing a stranger's photo on a passport page, thin slit of light on metal wall, 85mm lens, rack focus, shallow depth of field, low key light, cool tones. cold teal dock light, rust orange cargo, vertical framing.",
      "prompt_palabras": 38,
      "transition_out": "hard cut"
    },
    {
      "id": "e5",
      "beat": null,
      "tipo": "generated",
      "texto": "¡Eh, aquí dentro! ¿Hay alguien al otro lado? ¡Contesta, por favor, contesta!",
      "hablante": "@me",
      "voz_en_off": false,
      "refs": [
        "REF-ME"
      ],
      "visual": "Un puño golpeando la chapa del contenedor; el óxido cae en escamas sobre el suelo.",
      "prompt_base_guion": "Fist knocking on corrugated metal wall, dust falling, darkness around a crouched man",
      "bloques": {
        "dialogo": "¡Eh, aquí dentro! ¿Hay alguien al otro lado? ¡Contesta, por favor, contesta!",
        "imagen": "Fist knocking on corrugated metal wall, dust falling, darkness around a crouched man, 35mm lens, handheld, shallow depth of field, low key light, cool tones. cold teal dock light, rust orange cargo, vertical framing.",
        "video": "Pega la mejilla al metal, grita y golpea con la base del puño | movimiento: handheld"
      },
      "start_seconds": 30,
      "end_seconds": 36,
      "narrative_role": "build_tension",
      "shot_intent": "Mostrar que el encierro es real y que está solo.",
      "hero_moment": false,
      "shot_language": {
        "shot_size": "close_up",
        "camera_movement": "handheld",
        "lighting_key": "low_key",
        "depth_of_field": "shallow",
        "color_temperature": "cool",
        "lens_mm": 35
      },
      "aspectos": {
        "sujeto": "El protagonista golpeando la pared metálica desde dentro",
        "accion": "Pega la mejilla al metal, grita y golpea con la base del puño",
        "escena": "Interior de contenedor negro, madrugada, nadie responde",
        "espacial": "close_up; sujeto centrado en el cuadro, profundidad FG/MG/BG simple; camara a altura de pecho",
        "camara": "35mm, handheld, DoF shallow, estabilizada"
      },
      "detalles": {
        "detalle_entorno": "golpes que rebotan en la chapa y vuelven sin respuesta",
        "micro_accion": "dientes apretados y puño temblando antes del siguiente golpe",
        "motivo": "N/A — no aparece"
      },
      "overlays": [],
      "asset": {
        "decision": "generar",
        "libreria_id": null,
        "modelo": "gemini-omni-flash"
      },
      "motor": "google-flow",
      "prompt_final": "Fist knocking on corrugated metal wall, dust falling, darkness around a crouched man, 35mm lens, handheld, shallow depth of field, low key light, cool tones. cold teal dock light, rust orange cargo, vertical framing.",
      "prompt_palabras": 34,
      "transition_out": "hard cut"
    },
    {
      "id": "e6",
      "beat": null,
      "tipo": "generated",
      "texto": "Yo voy en el contenedor de al lado. Pagué lo mismo y me dieron un pasaporte igual.",
      "hablante": "@chico",
      "voz_en_off": true,
      "refs": [
        "REF-CHICO"
      ],
      "visual": "Una oreja pegada a la chapa metálica; al otro lado, nudillos que golpean despacio tres veces.",
      "prompt_base_guion": "Ear pressed to metal sheet, mouth close to the wall, one eye squinting",
      "bloques": {
        "dialogo": "Yo voy en el contenedor de al lado. Pagué lo mismo y me dieron un pasaporte igual.",
        "imagen": "Ear pressed to metal sheet, mouth close to the wall, one eye squinting, 50mm lens, locked off, shallow depth of field, low key light, cool tones. cold teal dock light, rust orange cargo, vertical framing.",
        "video": "Se queda inmóvil, abre los ojos y responde golpeando dos veces | movimiento: locked off"
      },
      "start_seconds": 36,
      "end_seconds": 44,
      "narrative_role": "deliver_payload",
      "shot_intent": "Descubrir que hay otro engañado como él.",
      "hero_moment": false,
      "shot_language": {
        "shot_size": "medium_close",
        "camera_movement": "static",
        "lighting_key": "low_key",
        "depth_of_field": "shallow",
        "color_temperature": "cool",
        "lens_mm": 50
      },
      "aspectos": {
        "sujeto": "El protagonista escuchando la voz del contenedor vecino",
        "accion": "Se queda inmóvil, abre los ojos y responde golpeando dos veces",
        "escena": "Interior de contenedor a oscuras, noche, una sola voz al otro lado",
        "espacial": "medium_close; sujeto centrado en el cuadro, profundidad FG/MG/BG simple; camara a altura de pecho",
        "camara": "50mm, static, DoF shallow, estabilizada"
      },
      "detalles": {
        "detalle_entorno": "metal tan frío que empaña la mejilla al apoyarla",
        "micro_accion": "ceja levantada y labios separados conteniendo la respuesta",
        "motivo": "N/A — no aparece"
      },
      "overlays": [],
      "asset": {
        "decision": "generar",
        "libreria_id": null,
        "modelo": "gemini-omni-flash"
      },
      "motor": "google-flow",
      "prompt_final": "Ear pressed to metal sheet, mouth close to the wall, one eye squinting, 50mm lens, locked off, shallow depth of field, low key light, cool tones. cold teal dock light, rust orange cargo, vertical framing.",
      "prompt_palabras": 35,
      "transition_out": "hard cut"
    },
    {
      "id": "e7",
      "beat": null,
      "tipo": "generated",
      "texto": "El billete no era un billete. Era una trampa. Nos vendieron la misma mentira a los dos.",
      "hablante": "@me",
      "voz_en_off": false,
      "refs": [
        "REF-ME"
      ],
      "visual": "Dos mitades del billete rasgadas sobre el suelo metálico, bajo la luz de la pantalla.",
      "prompt_base_guion": "Two passports lying on container floor beside a torn paper boarding ticket",
      "bloques": {
        "dialogo": "El billete no era un billete. Era una trampa. Nos vendieron la misma mentira a los dos.",
        "imagen": "Two passports lying on container floor beside a torn paper boarding ticket, 50mm lens, locked off, shallow depth of field, low key light, cool tones. cold teal dock light, rust orange cargo, vertical framing.",
        "video": "Rasga el billete por la mitad, junta los trozos y los vuelve a separar | movimiento: locked off"
      },
      "start_seconds": 44,
      "end_seconds": 52,
      "narrative_role": "evidence",
      "shot_intent": "Convertir el billete en la prueba del engaño compartido.",
      "hero_moment": false,
      "shot_language": {
        "shot_size": "insert",
        "camera_movement": "static",
        "lighting_key": "low_key",
        "depth_of_field": "shallow",
        "color_temperature": "cool",
        "lens_mm": 50
      },
      "aspectos": {
        "sujeto": "Las manos del protagonista y el billete partido",
        "accion": "Rasga el billete por la mitad, junta los trozos y los vuelve a separar",
        "escena": "Interior de contenedor, madrugada, sin nadie más visible",
        "espacial": "insert; sujeto centrado en el cuadro, profundidad FG/MG/BG simple; camara a altura de pecho",
        "camara": "50mm, static, DoF shallow, estabilizada"
      },
      "detalles": {
        "detalle_entorno": "papel húmedo que se deshilacha al rasgarse",
        "micro_accion": "manos que dejan de temblar en cuanto rompe el papel",
        "motivo": "N/A — no aparece"
      },
      "overlays": [],
      "asset": {
        "decision": "generar",
        "libreria_id": null,
        "modelo": "gemini-omni-flash"
      },
      "motor": "google-flow",
      "prompt_final": "Two passports lying on container floor beside a torn paper boarding ticket, 50mm lens, locked off, shallow depth of field, low key light, cool tones. cold teal dock light, rust orange cargo, vertical framing.",
      "prompt_palabras": 34,
      "transition_out": "hard cut"
    },
    {
      "id": "e8",
      "beat": null,
      "tipo": "generated",
      "texto": "¿Ningbo? Esto no es Holanda. ¿Dónde está el mar? ¿Dónde está mi barco?",
      "hablante": "@me",
      "voz_en_off": false,
      "refs": [
        "REF-ME"
      ],
      "visual": "La puerta del contenedor se abre de golpe: grúas gigantes y niebla amarillenta de puerto chino.",
      "prompt_base_guion": "Port cranes and stacked containers with Chinese characters painted on a hull",
      "bloques": {
        "dialogo": "¿Ningbo? Esto no es Holanda. ¿Dónde está el mar? ¿Dónde está mi barco?",
        "imagen": "Port cranes and stacked containers with Chinese characters painted on a hull, 24mm lens, slow dolly out, deep depth of field, overcast soft light, mixed tones. cold teal dock light, rust orange cargo, vertical framing.",
        "video": "Empuja las puertas hacia fuera, da un paso y se queda clavado en el umbral | movimiento: slow dolly out"
      },
      "start_seconds": 52,
      "end_seconds": 58,
      "narrative_role": "deliver_payload",
      "shot_intent": "Revelar el destino real: no hay mar, hay grúas.",
      "hero_moment": true,
      "shot_language": {
        "shot_size": "wide",
        "camera_movement": "dolly_out",
        "lighting_key": "overcast_soft",
        "depth_of_field": "deep",
        "color_temperature": "mixed",
        "lens_mm": 24
      },
      "aspectos": {
        "sujeto": "El protagonista de espaldas, encuadrado contra el exterior",
        "accion": "Empuja las puertas hacia fuera, da un paso y se queda clavado en el umbral",
        "escena": "Exterior del puerto de Ningbo al alba, grúas y filas de contenedores, estibadores al fondo",
        "espacial": "wide; sujeto centrado en el cuadro, profundidad FG/MG/BG simple; camara a altura de pecho",
        "camara": "24mm, dolly_out, DoF deep, estabilizada"
      },
      "detalles": {
        "detalle_entorno": "luz amarilla de sodio colándose entre la niebla de las grúas",
        "micro_accion": "pie a medio levantar, congelado antes de tocar el asfalto",
        "motivo": "N/A — no aparece"
      },
      "overlays": [],
      "asset": {
        "decision": "generar",
        "libreria_id": null,
        "modelo": "gemini-omni-flash"
      },
      "motor": "google-flow",
      "prompt_final": "Port cranes and stacked containers with Chinese characters painted on a hull, 24mm lens, slow dolly out, deep depth of field, overcast soft light, mixed tones. cold teal dock light, rust orange cargo, vertical framing.",
      "prompt_palabras": 35,
      "transition_out": "hard cut"
    },
    {
      "id": "e9",
      "beat": null,
      "tipo": "generated",
      "texto": "Holanda no existe para nosotros. Esto es Ningbo. Estamos al otro lado del mundo.",
      "hablante": "@chico",
      "voz_en_off": true,
      "refs": [
        "REF-CHICO"
      ],
      "visual": "El protagonista gira la cabeza hacia una voz entre contenedores; letreros en chino sobre las naves.",
      "prompt_base_guion": "Workers in vests under a sign with Chinese characters, port cranes behind",
      "bloques": {
        "dialogo": "Holanda no existe para nosotros. Esto es Ningbo. Estamos al otro lado del mundo.",
        "imagen": "Workers in vests under a sign with Chinese characters, port cranes behind, 35mm lens, slow pan right, medium depth of field, overcast soft light, cool tones. cold teal dock light, rust orange cargo, vertical framing.",
        "video": "Gira sobre los talones, entrecierra los ojos y da dos pasos hacia el sonido | movimiento: slow pan right"
      },
      "start_seconds": 58,
      "end_seconds": 66,
      "narrative_role": "transition",
      "shot_intent": "Situar la acción al otro lado del mundo.",
      "hero_moment": false,
      "shot_language": {
        "shot_size": "medium",
        "camera_movement": "pan_right",
        "lighting_key": "overcast_soft",
        "depth_of_field": "medium",
        "color_temperature": "cool",
        "lens_mm": 35
      },
      "aspectos": {
        "sujeto": "El protagonista buscando de dónde viene la voz",
        "accion": "Gira sobre los talones, entrecierra los ojos y da dos pasos hacia el sonido",
        "escena": "Patio de contenedores de Ningbo al alba, letreros en chino, operarios de fondo",
        "espacial": "medium; sujeto centrado en el cuadro, profundidad FG/MG/BG simple; camara a altura de pecho",
        "camara": "35mm, pan_right, DoF medium, estabilizada"
      },
      "detalles": {
        "detalle_entorno": "cada contenedor con una numeración distinta pintada en blanco",
        "micro_accion": "cabeza ladeada, boca entreabierta sin llegar a responder",
        "motivo": "N/A — no aparece"
      },
      "overlays": [],
      "asset": {
        "decision": "generar",
        "libreria_id": null,
        "modelo": "gemini-omni-flash"
      },
      "motor": "google-flow",
      "prompt_final": "Workers in vests under a sign with Chinese characters, port cranes behind, 35mm lens, slow pan right, medium depth of field, overcast soft light, cool tones. cold teal dock light, rust orange cargo, vertical framing.",
      "prompt_palabras": 35,
      "transition_out": "hard cut"
    },
    {
      "id": "e10",
      "beat": null,
      "tipo": "generated",
      "texto": "Aquí nadie sale sin pagar. O pagáis la deuda de Bruno, o bajáis a la bodega a trabajar.",
      "hablante": "@jin",
      "voz_en_off": false,
      "refs": [
        "REF-JIN"
      ],
      "visual": "Un chaleco reflectante bloquea el paso y una linterna da de lleno en la cara del protagonista.",
      "prompt_base_guion": "Man in a vest holding a notebook, finger pointing at two workers",
      "bloques": {
        "dialogo": "Aquí nadie sale sin pagar. O pagáis la deuda de Bruno, o bajáis a la bodega a trabajar.",
        "imagen": "Man in a vest holding a notebook, finger pointing at two workers, 35mm lens, handheld, medium depth of field, low key light, cool tones. cold teal dock light, rust orange cargo, vertical framing.",
        "video": "Abre el brazo, señala la bodega con la linterna y espera respuesta | movimiento: handheld"
      },
      "start_seconds": 66,
      "end_seconds": 74,
      "narrative_role": "build_tension",
      "shot_intent": "Presentar la deuda como única salida del barco.",
      "hero_moment": false,
      "shot_language": {
        "shot_size": "medium_wide",
        "camera_movement": "handheld",
        "lighting_key": "low_key",
        "depth_of_field": "medium",
        "color_temperature": "cool",
        "lens_mm": 35
      },
      "aspectos": {
        "sujeto": "El capataz del puerto con chaleco reflectante y linterna",
        "accion": "Abre el brazo, señala la bodega con la linterna y espera respuesta",
        "escena": "Pasarela del buque de noche, grúas apagadas, dos ayudantes al fondo",
        "espacial": "medium_wide; sujeto centrado en el cuadro, profundidad FG/MG/BG simple; camara a altura de pecho",
        "camara": "35mm, handheld, DoF medium, estabilizada"
      },
      "detalles": {
        "detalle_entorno": "linterna que dibuja el vapor del aliento en el aire frío",
        "micro_accion": "mandíbula cuadrada y dedo que golpea la linterna al hablar",
        "motivo": "N/A — no aparece"
      },
      "overlays": [],
      "asset": {
        "decision": "generar",
        "libreria_id": null,
        "modelo": "gemini-omni-flash"
      },
      "motor": "google-flow",
      "prompt_final": "Man in a vest holding a notebook, finger pointing at two workers, 35mm lens, handheld, medium depth of field, low key light, cool tones. cold teal dock light, rust orange cargo, vertical framing.",
      "prompt_palabras": 33,
      "transition_out": "hard cut"
    },
    {
      "id": "e11",
      "beat": null,
      "tipo": "generated",
      "texto": "Terminé el turno. ¿Habéis visto a Chico? Nadie lo ha visto salir.",
      "hablante": "@me",
      "voz_en_off": false,
      "refs": [
        "REF-ME"
      ],
      "visual": "Una llave inglesa grasienta sobre la barandilla; al fondo, una litera vacía y sin mantas.",
      "prompt_base_guion": "Empty bunk with a folded blanket, man standing in the doorway of the dormitory",
      "bloques": {
        "dialogo": "Terminé el turno. ¿Habéis visto a Chico? Nadie lo ha visto salir.",
        "imagen": "Empty bunk with a folded blanket, man standing in the doorway of the dormitory, 50mm lens, slow dolly in, medium depth of field, tungsten warm light, warm tones. cold teal dock light, rust orange cargo, vertical framing.",
        "video": "Suelta la llave, se limpia las manos en el pantalón y mira la litera deshecha | movimiento: slow dolly in"
      },
      "start_seconds": 74,
      "end_seconds": 80,
      "narrative_role": "build_tension",
      "shot_intent": "Sembrar la desaparición de Chico sin nombrarla aún.",
      "hero_moment": false,
      "shot_language": {
        "shot_size": "medium",
        "camera_movement": "dolly_in",
        "lighting_key": "tungsten_warm",
        "depth_of_field": "medium",
        "color_temperature": "warm",
        "lens_mm": 50
      },
      "aspectos": {
        "sujeto": "El protagonista al terminar el turno, buscando a Chico",
        "accion": "Suelta la llave, se limpia las manos en el pantalón y mira la litera deshecha",
        "escena": "Cubierta y camarote de tripulación al amanecer, nadie más dentro",
        "espacial": "medium; sujeto centrado en el cuadro, profundidad FG/MG/BG simple; camara a altura de pecho",
        "camara": "50mm, dolly_in, DoF medium, estabilizada"
      },
      "detalles": {
        "detalle_entorno": "litera con el colchón todavía hundido y una manta arrastrada al suelo",
        "micro_accion": "manos girando la llave entre los dedos sin darse cuenta",
        "motivo": "N/A — no aparece"
      },
      "overlays": [],
      "asset": {
        "decision": "generar",
        "libreria_id": null,
        "modelo": "gemini-omni-flash"
      },
      "motor": "google-flow",
      "prompt_final": "Empty bunk with a folded blanket, man standing in the doorway of the dormitory, 50mm lens, slow dolly in, medium depth of field, tungsten warm light, warm tones. cold teal dock light, rust orange cargo, vertical framing.",
      "prompt_palabras": 37,
      "transition_out": "hard cut"
    },
    {
      "id": "e12",
      "beat": null,
      "tipo": "generated",
      "texto": "Este pasaporte lleva el nombre de Chico. Es el mismo que Bruno me dio a mí.",
      "hablante": "@me",
      "voz_en_off": false,
      "refs": [
        "REF-ME"
      ],
      "visual": "Un pasaporte abierto sobre una mesa metálica; un dedo se detiene en el nombre impreso.",
      "prompt_base_guion": "Passport photo of a young man on a mattress, thumb covering the printed name",
      "bloques": {
        "dialogo": "Este pasaporte lleva el nombre de Chico. Es el mismo que Bruno me dio a mí.",
        "imagen": "Passport photo of a young man on a mattress, thumb covering the printed name, 85mm lens, locked off, shallow depth of field, tungsten warm light, warm tones. cold teal dock light, rust orange cargo, vertical framing.",
        "video": "Desliza el pasaporte bajo la bombilla, compara la foto y lo cierra de golpe | movimiento: locked off"
      },
      "start_seconds": 80,
      "end_seconds": 88,
      "narrative_role": "evidence",
      "shot_intent": "Unir el nombre de Chico con el mismo pasaporte que él recibió.",
      "hero_moment": false,
      "shot_language": {
        "shot_size": "insert",
        "camera_movement": "static",
        "lighting_key": "tungsten_warm",
        "depth_of_field": "shallow",
        "color_temperature": "warm",
        "lens_mm": 85
      },
      "aspectos": {
        "sujeto": "El pasaporte con el nombre de Chico y la mano que lo sostiene",
        "accion": "Desliza el pasaporte bajo la bombilla, compara la foto y lo cierra de golpe",
        "escena": "Camarote de tripulación de noche, bombilla colgante, sin nadie más",
        "espacial": "insert; sujeto centrado en el cuadro, profundidad FG/MG/BG simple; camara a altura de pecho",
        "camara": "85mm, static, DoF shallow, estabilizada"
      },
      "detalles": {
        "detalle_entorno": "bombilla que se balancea y hace oscilar la sombra del pasaporte",
        "micro_accion": "dedo que presiona el nombre hasta dejar marca en el papel",
        "motivo": "el sello azul corrido en la esquina del pasaporte"
      },
      "overlays": [],
      "asset": {
        "decision": "generar",
        "libreria_id": null,
        "modelo": "gemini-omni-flash"
      },
      "motor": "google-flow",
      "prompt_final": "Passport photo of a young man on a mattress, thumb covering the printed name, 85mm lens, locked off, shallow depth of field, tungsten warm light, warm tones. cold teal dock light, rust orange cargo, vertical framing.",
      "prompt_palabras": 36,
      "transition_out": "hard cut"
    },
    {
      "id": "e13",
      "beat": null,
      "tipo": "generated",
      "texto": "¿Lara? Soy yo. Estoy en China, en un puerto. Me engañaron con el billete.",
      "hablante": "@me",
      "voz_en_off": false,
      "refs": [
        "REF-ME"
      ],
      "visual": "El protagonista con el móvil pegado a la oreja en el muelle; grúas encendidas detrás de él.",
      "prompt_base_guion": "Phone screen glowing on a face in a dim dormitory, thumb over the dial",
      "bloques": {
        "dialogo": "¿Lara? Soy yo. Estoy en China, en un puerto. Me engañaron con el billete.",
        "imagen": "Phone screen glowing on a face in a dim dormitory, thumb over the dial, 50mm lens, steadicam glide, shallow depth of field, neon light, mixed tones. cold teal dock light, rust orange cargo, vertical framing.",
        "video": "Se tapa el oído libre, habla rápido y mira al suelo mientras espera respuesta | movimiento: steadicam glide"
      },
      "start_seconds": 88,
      "end_seconds": 96,
      "narrative_role": "emotional_beat",
      "shot_intent": "Mostrar que su único apoyo está a un océano de distancia.",
      "hero_moment": false,
      "shot_language": {
        "shot_size": "medium_close",
        "camera_movement": "steadicam",
        "lighting_key": "neon",
        "depth_of_field": "shallow",
        "color_temperature": "mixed",
        "lens_mm": 50
      },
      "aspectos": {
        "sujeto": "El protagonista llamando a Lara desde el puerto",
        "accion": "Se tapa el oído libre, habla rápido y mira al suelo mientras espera respuesta",
        "escena": "Muelle de Ningbo de noche, grúas iluminadas, estibadores lejanos",
        "espacial": "medium_close; sujeto centrado en el cuadro, profundidad FG/MG/BG simple; camara a altura de pecho",
        "camara": "50mm, steadicam, DoF shallow, estabilizada"
      },
      "detalles": {
        "detalle_entorno": "viento que cruza el micrófono y corta la frase a medias",
        "micro_accion": "nudillos blancos apretando el teléfono contra la oreja",
        "motivo": "N/A — no aparece"
      },
      "overlays": [],
      "asset": {
        "decision": "generar",
        "libreria_id": null,
        "modelo": "gemini-omni-flash"
      },
      "motor": "google-flow",
      "prompt_final": "Phone screen glowing on a face in a dim dormitory, thumb over the dial, 50mm lens, steadicam glide, shallow depth of field, neon light, mixed tones. cold teal dock light, rust orange cargo, vertical framing.",
      "prompt_palabras": 35,
      "transition_out": "hard cut"
    },
    {
      "id": "e14",
      "beat": null,
      "tipo": "generated",
      "texto": "Lara ya pagó tu viaje. Igual que tú. Aquí tengo el justificante con su nombre.",
      "hablante": "@bruno",
      "voz_en_off": false,
      "refs": [
        "REF-BRUNO"
      ],
      "visual": "Una carpeta abierta con el justificante de pago y un nombre subrayado en rojo.",
      "prompt_base_guion": "Phone held up showing a payment receipt with a handwritten signature, dock lights behind",
      "bloques": {
        "dialogo": "Lara ya pagó tu viaje. Igual que tú. Aquí tengo el justificante con su nombre.",
        "imagen": "Phone held up showing a payment receipt with a handwritten signature, dock lights behind, 50mm lens, locked off, shallow depth of field, low key light, cool tones. cold teal dock light, rust orange cargo, vertical framing.",
        "video": "Gira la carpeta hacia el protagonista y golpea el nombre con dos dedos | movimiento: locked off"
      },
      "start_seconds": 96,
      "end_seconds": 104,
      "narrative_role": "deliver_payload",
      "shot_intent": "Confirmar que Lara también pagó y también fue engañada.",
      "hero_moment": false,
      "shot_language": {
        "shot_size": "over_shoulder",
        "camera_movement": "static",
        "lighting_key": "low_key",
        "depth_of_field": "shallow",
        "color_temperature": "cool",
        "lens_mm": 50
      },
      "aspectos": {
        "sujeto": "El hombre que enseña el justificante del pago de Lara",
        "accion": "Gira la carpeta hacia el protagonista y golpea el nombre con dos dedos",
        "escena": "Oficina pequeña del puerto de noche, fluorescente, sin más gente",
        "espacial": "over_shoulder; sujeto centrado en el cuadro, profundidad FG/MG/BG simple; camara a altura de pecho",
        "camara": "50mm, static, DoF shallow, estabilizada"
      },
      "detalles": {
        "detalle_entorno": "fluorescente que parpadea sobre el papel cuché del justificante",
        "micro_accion": "dedos índice y medio golpeando el nombre subrayado sin soltar la carpeta",
        "motivo": "N/A — no aparece"
      },
      "overlays": [],
      "asset": {
        "decision": "generar",
        "libreria_id": null,
        "modelo": "gemini-omni-flash"
      },
      "motor": "google-flow",
      "prompt_final": "Phone held up showing a payment receipt with a handwritten signature, dock lights behind, 50mm lens, locked off, shallow depth of field, low key light, cool tones. cold teal dock light, rust orange cargo, vertical framing.",
      "prompt_palabras": 36,
      "transition_out": "hard cut"
    },
    {
      "id": "e15",
      "beat": null,
      "tipo": "generated",
      "texto": "Jin y Bruno comparten deuda, negocio y gente. Voy a devolverles un pasaporte que no es mío.",
      "hablante": "@me",
      "voz_en_off": false,
      "refs": [
        "REF-ME"
      ],
      "visual": "El pasaporte ajeno guardado en el bolsillo interior de la chaqueta, camino del almacén.",
      "prompt_base_guion": "Man walking between stacked containers towards a gate, passport in one hand",
      "bloques": {
        "dialogo": "Jin y Bruno comparten deuda, negocio y gente. Voy a devolverles un pasaporte que no es mío.",
        "imagen": "Man walking between stacked containers towards a gate, passport in one hand, 35mm lens, slow lateral track right, medium depth of field, tungsten warm light, warm tones. cold teal dock light, rust orange cargo, vertical framing.",
        "video": "Cierra la cremallera del bolsillo, ajusta la solapa y camina decidido hacia la puerta | movimiento: slow lateral track right"
      },
      "start_seconds": 104,
      "end_seconds": 112,
      "narrative_role": "call_to_action",
      "shot_intent": "Marcar el arranque de su plan de venganza.",
      "hero_moment": false,
      "shot_language": {
        "shot_size": "medium_wide",
        "camera_movement": "tracking_right",
        "lighting_key": "tungsten_warm",
        "depth_of_field": "medium",
        "color_temperature": "warm",
        "lens_mm": 35
      },
      "aspectos": {
        "sujeto": "El protagonista guardándose el pasaporte que no es suyo",
        "accion": "Cierra la cremallera del bolsillo, ajusta la solapa y camina decidido hacia la puerta",
        "escena": "Exterior de almacén portuario de noche, luces de sodio, un guardia al fondo",
        "espacial": "medium_wide; sujeto centrado en el cuadro, profundidad FG/MG/BG simple; camara a altura de pecho",
        "camara": "35mm, tracking_right, DoF medium, estabilizada"
      },
      "detalles": {
        "detalle_entorno": "charco con la luz naranja del almacén partida en dos",
        "micro_accion": "paso más largo del normal, manos cerradas a los lados",
        "motivo": "el sello azul corrido en la esquina del pasaporte"
      },
      "overlays": [],
      "asset": {
        "decision": "generar",
        "libreria_id": null,
        "modelo": "gemini-omni-flash"
      },
      "motor": "google-flow",
      "prompt_final": "Man walking between stacked containers towards a gate, passport in one hand, 35mm lens, slow lateral track right, medium depth of field, tungsten warm light, warm tones. cold teal dock light, rust orange cargo, vertical framing.",
      "prompt_palabras": 36,
      "transition_out": "hard cut"
    },
    {
      "id": "e16",
      "beat": null,
      "tipo": "generated",
      "texto": "Este pasaporte lo vendí yo hace años. Bruno, me estás vendiendo gente con mis propios papeles.",
      "hablante": "@jin",
      "voz_en_off": false,
      "refs": [
        "REF-JIN"
      ],
      "visual": "Un hombre mayor con lupa compara dos pasaportes idénticos bajo una lámpara de taller.",
      "prompt_base_guion": "Older man holding a passport open, another man turning his face away",
      "bloques": {
        "dialogo": "Este pasaporte lo vendí yo hace años. Bruno, me estás vendiendo gente con mis propios papeles.",
        "imagen": "Older man holding a passport open, another man turning his face away, 85mm lens, slow dolly in, shallow depth of field, tungsten warm light, warm tones. cold teal dock light, rust orange cargo, vertical framing.",
        "video": "Levanta la lupa, superpone las dos páginas y las separa con un gesto de asco | movimiento: slow dolly in"
      },
      "start_seconds": 112,
      "end_seconds": 120,
      "narrative_role": "evidence",
      "shot_intent": "Cerrar el círculo: Bruno vende personas con papeles que él mismo fabricó.",
      "hero_moment": false,
      "shot_language": {
        "shot_size": "close_up",
        "camera_movement": "dolly_in",
        "lighting_key": "tungsten_warm",
        "depth_of_field": "shallow",
        "color_temperature": "warm",
        "lens_mm": 85
      },
      "aspectos": {
        "sujeto": "El falsificador que reconoce los pasaportes que vendió",
        "accion": "Levanta la lupa, superpone las dos páginas y las separa con un gesto de asco",
        "escena": "Taller de sellos de noche, mesa llena de tampones y tinta, sin nadie más",
        "espacial": "close_up; sujeto centrado en el cuadro, profundidad FG/MG/BG simple; camara a altura de pecho",
        "camara": "85mm, dolly_in, DoF shallow, estabilizada"
      },
      "detalles": {
        "detalle_entorno": "tampones de goma alineados y un trapo negro con restos de tinta azul",
        "micro_accion": "lupa temblando en la mano al reconocer su propio sello",
        "motivo": "el sello azul corrido en la esquina del pasaporte"
      },
      "overlays": [],
      "asset": {
        "decision": "generar",
        "libreria_id": null,
        "modelo": "gemini-omni-flash"
      },
      "motor": "google-flow",
      "prompt_final": "Older man holding a passport open, another man turning his face away, 85mm lens, slow dolly in, shallow depth of field, tungsten warm light, warm tones. cold teal dock light, rust orange cargo, vertical framing.",
      "prompt_palabras": 35,
      "transition_out": "hard cut"
    },
    {
      "id": "e17",
      "beat": null,
      "tipo": "generated",
      "texto": "Un pasaporte con sello de salida. Bruno, gracias por tu nombre.",
      "hablante": "@me",
      "voz_en_off": false,
      "refs": [
        "REF-ME"
      ],
      "visual": "Un sello de salida estampado de golpe sobre la página; la tinta se corre un milímetro.",
      "prompt_base_guion": "Two men fighting on the dock floor, passports scattered, a boot stepping on one",
      "bloques": {
        "dialogo": "Un pasaporte con sello de salida. Bruno, gracias por tu nombre.",
        "imagen": "Two men fighting on the dock floor, passports scattered, a boot stepping on one, 135mm lens, locked off, shallow depth of field, low key light, cool tones. cold teal dock light, rust orange cargo, vertical framing.",
        "video": "Presiona el sello, lo levanta y sopla la tinta fresca con calma | movimiento: locked off"
      },
      "start_seconds": 120,
      "end_seconds": 126,
      "narrative_role": "resolution",
      "shot_intent": "Ver el arma ya cargada: el pasaporte marcado como salida.",
      "hero_moment": false,
      "shot_language": {
        "shot_size": "extreme_close_up",
        "camera_movement": "static",
        "lighting_key": "low_key",
        "depth_of_field": "shallow",
        "color_temperature": "cool",
        "lens_mm": 135
      },
      "aspectos": {
        "sujeto": "La mano del protagonista y el sello de salida",
        "accion": "Presiona el sello, lo levanta y sopla la tinta fresca con calma",
        "escena": "Mostrador de control portuario de madrugada, ventanilla vacía, sin nadie más",
        "espacial": "extreme_close_up; sujeto centrado en el cuadro, profundidad FG/MG/BG simple; camara a altura de pecho",
        "camara": "135mm, static, DoF shallow, estabilizada"
      },
      "detalles": {
        "detalle_entorno": "tinta azul brillante que contrasta con el resto de la página seca",
        "micro_accion": "muñeca firme y respiración lenta al levantar el sello",
        "motivo": "el sello azul corrido en la esquina del pasaporte"
      },
      "overlays": [],
      "asset": {
        "decision": "generar",
        "libreria_id": null,
        "modelo": "gemini-omni-flash"
      },
      "motor": "google-flow",
      "prompt_final": "Two men fighting on the dock floor, passports scattered, a boot stepping on one, 135mm lens, locked off, shallow depth of field, low key light, cool tones. cold teal dock light, rust orange cargo, vertical framing.",
      "prompt_palabras": 36,
      "transition_out": "hard cut"
    },
    {
      "id": "e18",
      "beat": null,
      "tipo": "generated",
      "texto": "Soy Bruno. Vengo de Ningbo. Aquí está mi pasaporte de salida.",
      "hablante": "@me",
      "voz_en_off": false,
      "refs": [
        "REF-ME"
      ],
      "visual": "Un hombre corpulento en la cola de control muestra su pasaporte; el sello azul en la esquina.",
      "prompt_base_guion": "Hand pushing a passport across a boarding counter, guard checking the photo",
      "bloques": {
        "dialogo": "Soy Bruno. Vengo de Ningbo. Aquí está mi pasaporte de salida.",
        "imagen": "Hand pushing a passport across a boarding counter, guard checking the photo, 50mm lens, locked off, medium depth of field, high key light, neutral tones. cold teal dock light, rust orange cargo, vertical framing.",
        "video": "Entrega el pasaporte, sonríe al agente y se ajusta el cuello de la camisa | movimiento: locked off"
      },
      "start_seconds": 126,
      "end_seconds": 132,
      "narrative_role": "deliver_payload",
      "shot_intent": "Que Bruno caiga con el pasaporte que él mismo vendió.",
      "hero_moment": false,
      "shot_language": {
        "shot_size": "medium",
        "camera_movement": "static",
        "lighting_key": "high_key",
        "depth_of_field": "medium",
        "color_temperature": "neutral",
        "lens_mm": 50
      },
      "aspectos": {
        "sujeto": "Bruno presentándose en el control con el pasaporte de salida",
        "accion": "Entrega el pasaporte, sonríe al agente y se ajusta el cuello de la camisa",
        "escena": "Sala de control fronterizo de día, cola de viajeros de fondo",
        "espacial": "medium; sujeto centrado en el cuadro, profundidad FG/MG/BG simple; camara a altura de pecho",
        "camara": "50mm, static, DoF medium, estabilizada"
      },
      "detalles": {
        "detalle_entorno": "fluorescentes blancos y cinta amarilla marcando la cola en el suelo",
        "micro_accion": "sonrisa que se apaga en cuanto el agente mira la página",
        "motivo": "el sello azul corrido en la esquina del pasaporte"
      },
      "overlays": [],
      "asset": {
        "decision": "generar",
        "libreria_id": null,
        "modelo": "gemini-omni-flash"
      },
      "motor": "google-flow",
      "prompt_final": "Hand pushing a passport across a boarding counter, guard checking the photo, 50mm lens, locked off, medium depth of field, high key light, neutral tones. cold teal dock light, rust orange cargo, vertical framing.",
      "prompt_palabras": 34,
      "transition_out": "hard cut"
    },
    {
      "id": "e19",
      "beat": null,
      "tipo": "generated",
      "texto": "¿Eres tú? ¿Eres Chico? Llevo días esperando aquí. Ven, abrázame.",
      "hablante": "@lara",
      "voz_en_off": false,
      "refs": [
        "REF-LARA"
      ],
      "visual": "Una mujer corre por el muelle y se cuelga del cuello del protagonista sin soltarle la cara.",
      "prompt_base_guion": "Woman holding a cardboard sign with a name, arms open, crowd behind her",
      "bloques": {
        "dialogo": "¿Eres tú? ¿Eres Chico? Llevo días esperando aquí. Ven, abrázame.",
        "imagen": "Woman holding a cardboard sign with a name, arms open, crowd behind her, 50mm lens, slow orbit, shallow depth of field, golden hour light, warm tones. cold teal dock light, rust orange cargo, vertical framing.",
        "video": "Corre, frena en seco, le agarra la cara con las dos manos y lo abraza | movimiento: slow orbit"
      },
      "start_seconds": 132,
      "end_seconds": 138,
      "narrative_role": "resolution",
      "shot_intent": "Cerrar con el reencuentro que revela quién es él de verdad.",
      "hero_moment": true,
      "shot_language": {
        "shot_size": "medium_close",
        "camera_movement": "orbital",
        "lighting_key": "golden_hour",
        "depth_of_field": "shallow",
        "color_temperature": "warm",
        "lens_mm": 50
      },
      "aspectos": {
        "sujeto": "La mujer que espera a Chico y el protagonista abrazados",
        "accion": "Corre, frena en seco, le agarra la cara con las dos manos y lo abraza",
        "escena": "Muelle de Ningbo al amanecer, grúas apagadas, un par de operarios al fondo",
        "espacial": "medium_close; sujeto centrado en el cuadro, profundidad FG/MG/BG simple; camara a altura de pecho",
        "camara": "50mm, orbital, DoF shallow, estabilizada"
      },
      "detalles": {
        "detalle_entorno": "niebla baja sobre el agua y el primer sol partiendo las grúas",
        "micro_accion": "manos que le recorren la cara buscando un rasgo conocido",
        "motivo": "N/A — no aparece"
      },
      "overlays": [],
      "asset": {
        "decision": "generar",
        "libreria_id": null,
        "modelo": "gemini-omni-flash"
      },
      "motor": "google-flow",
      "prompt_final": "Woman holding a cardboard sign with a name, arms open, crowd behind her, 50mm lens, slow orbit, shallow depth of field, golden hour light, warm tones. cold teal dock light, rust orange cargo, vertical framing.",
      "prompt_palabras": 35,
      "transition_out": "hard cut"
    }
  ]
}