{
  "schema": "adfactory.angles/v1",
  "productId": "gopure-neck-cream-ua",
  "scope": "Expanded multi-character sung campaigns and complete ensemble passports; no video generation.",
  "openingPolicy": {
    "firstSungWordWithinSeconds": 0.2,
    "noInstrumentalIntro": true,
    "feedbackReceived": "2026-09-10: owner says first 2–3s crucial; cut until words start.",
    "futureMontage": "Written concept only"
  },
  "angles": [
    {
      "id": "forgot-neck",
      "title": "Стоп! А шию хто забув?",
      "buyerMotive": "Remember the neglected step",
      "tension": "A meticulous face routine forgets the neck.",
      "hook": "Стоп! А шию хто забув?",
      "payoff": "Початкова проблема отримує ширший сенс",
      "productRole": "A physical cue for extending daily hydration below the jaw.",
      "claimIds": [
        "hydration",
        "ingredients",
        "ritual",
        "payment"
      ],
      "character": {
        "id": "vira",
        "name": "Віра",
        "age": 44,
        "identity": "Auburn asymmetric pixie, hazel eyes, softly square freckled face, average sturdy adult build.",
        "wardrobe": "Cobalt open-collar cotton shirt, coral triangular stud earrings.",
        "voice": "Bright chesty female alto, mischievous crisp pop-punk phrasing.",
        "baselineConcern": "Mild dry neck texture, natural transverse folds; face, age and body stay unchanged.",
        "prompt": "Neutral cinematic-realism identity portrait; age 44, auburn asymmetric pixie, hazel eyes, square freckled face, cobalt open-neck shirt, coral triangular earrings. Head through upper chest, eye-level, mouth closed, visible natural neck texture, gray studio. No age reversal or product.",
        "invariants": [
          "Same face, hair, eye color, age and adult body in all future media.",
          "Neck anatomy and natural aging preserved; no instant wrinkle removal.",
          "Wardrobe/accessories match the neutral master unless a later scene explicitly changes clothing.",
          "Fictional character; never present as a real customer or clinical evidence."
        ],
        "passport": "assets/vira-v01.png",
        "states": {
          "baseline": "Neutral identity master with natural neck texture.",
          "allowedChanges": [
            "Expression",
            "Gesture",
            "Posture",
            "Chosen wardrobe in an explicit scene"
          ],
          "notGenerated": [
            "Treatment before/after",
            "Video",
            "Lip sync"
          ]
        },
        "roleType": "lead",
        "relationship": "Центральна героїня й основна оповідачка.",
        "want": "Дозволити собі хвилину щоденного догляду серед сімейних справ.",
        "fear": "Бути поганою мамою чи партнеркою, якщо не відгукнутися одразу.",
        "change": "Від сімейного диспетчера без власного рядка до людини, яка просить розділити справи.",
        "signatureGesture": "Ставить собі окремий рядок у списку.",
        "fictional": true
      },
      "song": {
        "mode": "cover",
        "style": "Fast bright pop-punk power-pop, 161 bpm, B major. Female alto. Palm-muted distorted guitars, driving bass, tight live drums, staccato verse, huge singalong chorus, mischievous theatrical delivery and one-beat stop before the callback. Sung entirely in Ukrainian with native stress and crisp consonants. First audible event is the first sung word at 0.00; absolutely no instrumental intro, breathy ooh, pickup, spoken intro or count-in. Hook melody immediately. Preserve EVERY written lyric and complete the final call to action. Expanded complete narrative; sing each section ONCE, never loop verses or bridge. Preserve the seed groove, lead vocal timbre and chorus melody. One lead sings all narrative and quoted dialogue; vary expression, never spoken narration. No rap. The only English words are the brand Go Pure: voiced hard G, goh pyoor. All other words Ukrainian. Never sing hope or your.",
        "duration": 270,
        "vocalGender": "f",
        "lyrics": "lyrics/forgot-neck.txt",
        "musicalLane": "Pop-punk / 161 BPM target",
        "syllables": 656,
        "firstAudibleEvent": "First sung hook word; crop any generated instrumental pickup after actual-audio inspection.",
        "negativeTags": "instrumental intro, spoken intro, wordless intro, count-in, English sentences except the brand Go Pure, mumbling, long instrumental outro, rap",
        "seed": "media/forgot-neck-approved.mp3",
        "audioWeight": 0.9,
        "approvedStyleSource": "../gopure-angles/jobs/forgot-neck-v01/spec.json",
        "performanceContract": "One continuous approved female lead sings the story and clearly introduced quotations from four characters. Character passports do not promise four independently generated vocal identities."
      },
      "firstThreeSeconds": [
        {
          "time": "0.00–0.80",
          "action": "Sung «Стоп!»; Vira freezes with face cream on one cheek."
        },
        {
          "time": "0.80–1.80",
          "action": "Daughter at the door points at the unfinished routine; family requests begin around her."
        },
        {
          "time": "1.80–3.00",
          "action": "Vira faces the long family checklist with no place for herself."
        }
      ],
      "referenceReason": "Transfer the measured 161 BPM B-major momentum from the garlic reference. Replace the fear timeline and medical mechanism with self-aware routine comedy.",
      "testHypothesis": "Does humorous recognition get more hook replays than concern-led product language?",
      "status": "expanded-narrative-written",
      "ownerDecision": "expanded narrative awaiting validation; original music approved",
      "fictional": true,
      "cast": [
        {
          "id": "vira",
          "name": "Віра",
          "age": 44,
          "identity": "Auburn asymmetric pixie, hazel eyes, softly square freckled face, average sturdy adult build.",
          "wardrobe": "Cobalt open-collar cotton shirt, coral triangular stud earrings.",
          "voice": "Bright chesty female alto, mischievous crisp pop-punk phrasing.",
          "baselineConcern": "Mild dry neck texture, natural transverse folds; face, age and body stay unchanged.",
          "prompt": "Neutral cinematic-realism identity portrait; age 44, auburn asymmetric pixie, hazel eyes, square freckled face, cobalt open-neck shirt, coral triangular earrings. Head through upper chest, eye-level, mouth closed, visible natural neck texture, gray studio. No age reversal or product.",
          "invariants": [
            "Same face, hair, eye color, age and adult body in all future media.",
            "Neck anatomy and natural aging preserved; no instant wrinkle removal.",
            "Wardrobe/accessories match the neutral master unless a later scene explicitly changes clothing.",
            "Fictional character; never present as a real customer or clinical evidence."
          ],
          "passport": "assets/vira-v01.png",
          "states": {
            "baseline": "Neutral identity master with natural neck texture.",
            "allowedChanges": [
              "Expression",
              "Gesture",
              "Posture",
              "Chosen wardrobe in an explicit scene"
            ],
            "notGenerated": [
              "Treatment before/after",
              "Video",
              "Lip sync"
            ]
          },
          "roleType": "lead",
          "relationship": "Центральна героїня й основна оповідачка.",
          "want": "Дозволити собі хвилину щоденного догляду серед сімейних справ.",
          "fear": "Бути поганою мамою чи партнеркою, якщо не відгукнутися одразу.",
          "change": "Від сімейного диспетчера без власного рядка до людини, яка просить розділити справи.",
          "signatureGesture": "Ставить собі окремий рядок у списку.",
          "fictional": true
        },
        {
          "id": "sofiia",
          "name": "Софія",
          "age": 22,
          "relationship": "Донька Віри; живе з батьками, готує виступ.",
          "want": "Отримати допомогу з жакетом, а зрештою — увагу мами.",
          "fear": "Залишитися без підтримки перед виступом.",
          "change": "Від вимоги знайти річ до самостійності й захисту маминої хвилини.",
          "identity": "Long dark auburn ponytail, hazel eyes, heart-shaped freckled face, slim adult build",
          "wardrobe": "White crew-neck T-shirt under a red denim vest, small silver hoop earrings",
          "signatureGesture": "Спершу простягає мамі річ; потім сама відкладає телефон і сідає поруч.",
          "voice": "Lively light adult female register; direct questions, then softer invitation.",
          "baselineConcern": "Natural age and anatomy; no treatment before/after state.",
          "invariants": [
            "Same face, age, hair, eyes and body in later scenes.",
            "Wardrobe stays locked unless an explicit scene calls for a change.",
            "Expressions, posture and gestures may change; skin is not transformed.",
            "Fictional ensemble character, not a real customer or authority."
          ],
          "prompt": "Use case: photorealistic-natural. Asset type: neutral fictional character passport for a Ukrainian musical campaign ensemble. One person only. Subject: Софія, age 22; Long dark auburn ponytail, hazel eyes, heart-shaped freckled face, slim adult build. Wardrobe: White crew-neck T-shirt under a red denim vest, small silver hoop earrings. Realistic editorial casting photograph, gray studio backdrop, soft neutral daylight, eye level, full head to upper chest, mouth closed, natural skin texture and age, visible neck, centered portrait 1024x1536. Personality through a subtle relaxed expression, not acting a scene. No text, logos, product, props, beauty retouching, age reversal, collage or extra people.",
          "passport": "assets/sofiia-v01.png",
          "roleType": "supporting",
          "fictional": true
        },
        {
          "id": "taras",
          "name": "Тарас",
          "age": 46,
          "relationship": "Чоловік Віри; звик питати її раніше, ніж шукати сам.",
          "want": "Швидко знайти речі й повернутися до своїх справ.",
          "fear": "Визнати, що перекладає побутову роботу на дружину.",
          "change": "Сам знаходить футляр, прибирає стіл і приймає спільне чергування.",
          "identity": "Short salt-and-pepper hair, blue eyes, broad rectangular face, close brown-gray beard, broad adult build",
          "wardrobe": "Ochre casual henley with open top button",
          "signatureGesture": "Порожні долоні з питанням змінюються на поставлену для неї чашку.",
          "voice": "Warm mid male character register, comic clipped questions; quoted by the lead singer.",
          "baselineConcern": "Natural age and anatomy; no treatment before/after state.",
          "invariants": [
            "Same face, age, hair, eyes and body in later scenes.",
            "Wardrobe stays locked unless an explicit scene calls for a change.",
            "Expressions, posture and gestures may change; skin is not transformed.",
            "Fictional ensemble character, not a real customer or authority."
          ],
          "prompt": "Use case: photorealistic-natural. Asset type: neutral fictional character passport for a Ukrainian musical campaign ensemble. One person only. Subject: Тарас, age 46; Short salt-and-pepper hair, blue eyes, broad rectangular face, close brown-gray beard, broad adult build. Wardrobe: Ochre casual henley with open top button. Realistic editorial casting photograph, gray studio backdrop, soft neutral daylight, eye level, full head to upper chest, mouth closed, natural skin texture and age, visible neck, centered portrait 1024x1536. Personality through a subtle relaxed expression, not acting a scene. No text, logos, product, props, beauty retouching, age reversal, collage or extra people.",
          "passport": "assets/taras-v01.png",
          "roleType": "supporting",
          "fictional": true
        },
        {
          "id": "nadiia",
          "name": "Надія",
          "age": 45,
          "relationship": "Подруга Віри; зустріч у кафе, не продавчиня чи лікарка.",
          "want": "Допомогти подрузі помітити себе серед чужих завдань.",
          "fear": "Що порада перетвориться для Віри на ще одну повинність.",
          "change": "Замість готового рецепта питає, слухає й згодом перевіряє побутову зміну.",
          "identity": "Short black tight curls, dark brown eyes, oval face, warm medium-brown skin, average adult build",
          "wardrobe": "Teal linen open-collar shirt, small brass drop earrings",
          "signatureGesture": "Відсуває телефон від холодного чаю, лишає місце для відповіді.",
          "voice": "Grounded warm female mid register, short practical responses.",
          "baselineConcern": "Natural age and anatomy; no treatment before/after state.",
          "invariants": [
            "Same face, age, hair, eyes and body in later scenes.",
            "Wardrobe stays locked unless an explicit scene calls for a change.",
            "Expressions, posture and gestures may change; skin is not transformed.",
            "Fictional ensemble character, not a real customer or authority."
          ],
          "prompt": "Use case: photorealistic-natural. Asset type: neutral fictional character passport for a Ukrainian musical campaign ensemble. One person only. Subject: Надія, age 45; Short black tight curls, dark brown eyes, oval face, warm medium-brown skin, average adult build. Wardrobe: Teal linen open-collar shirt, small brass drop earrings. Realistic editorial casting photograph, gray studio backdrop, soft neutral daylight, eye level, full head to upper chest, mouth closed, natural skin texture and age, visible neck, centered portrait 1024x1536. Personality through a subtle relaxed expression, not acting a scene. No text, logos, product, props, beauty retouching, age reversal, collage or extra people.",
          "passport": "assets/nadiia-v01.png",
          "roleType": "supporting",
          "fictional": true
        }
      ],
      "narrative": {
        "premise": "A meticulous face routine forgets the neck.",
        "initialQuestion": "Віра мусить пояснити власну забудькуватість",
        "climax": "Віра просить Тараса самому знайти футляр",
        "payoff": "Початкова проблема отримує ширший сенс",
        "productBoundary": "A physical cue for extending daily hydration below the jaw.",
        "performanceContract": "One continuous approved female lead sings the story and clearly introduced quotations from four characters. Character passports do not promise four independently generated vocal identities.",
        "referenceTransfers": [
          "targ: a concrete encounter opens the wound; a later related encounter tests changed agency.",
          "sisterbrazil / svekr: objection → responsive peer → practical action → social test; adapt dramatic function, not medical claims.",
          "media-922fbf8f0e9c: forward questions and escalating consequences; no requirement for a large cast in that explainer reference."
        ],
        "honestRisk": "Найкращий комедійний ритм, але довша побутова лінія може відсунути потребу в кремі. Відео має тримати шию/дзеркало в контексті; протестувати втрату уваги до появи продукту.",
        "beats": [
          {
            "id": "b01",
            "trigger": "Пропущений крок видно доньці",
            "action": "Софія жартома питає про шию",
            "consequence": "Віра мусить пояснити власну забудькуватість",
            "emotion": "здивування, комічне впізнавання",
            "persuasionJob": "гачок із питанням",
            "causedBy": [],
            "lines": [
              {
                "number": 1,
                "text": "Стоп! А шию хто забув?",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "sofiia"
                ],
                "addressees": [
                  "vira"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 2,
                "text": "Донька сміється коло дверей.",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "sofiia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 3,
                "text": "Я вся у кремі, наче торт,",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "sofiia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 4,
                "text": "А шия знову без гостей.",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "sofiia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ]
          },
          {
            "id": "b02",
            "trigger": "Віра ще біля дзеркала",
            "action": "Донька й чоловік просять знайти речі",
            "consequence": "Її власний догляд переривають",
            "emotion": "метушня",
            "persuasionJob": "показати побутову причину",
            "causedBy": [
              "b01"
            ],
            "lines": [
              {
                "number": 5,
                "text": "Софія кличе: «Мамо, глянь!",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "sofiia"
                ],
                "addressees": [
                  "vira"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 6,
                "text": "Мій виступ завтра. Де жакет?»",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "sofiia"
                ],
                "addressees": [
                  "vira"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 7,
                "text": "Тарас гукає: «Ключ не там!",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "taras"
                ],
                "addressees": [
                  "vira"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 8,
                "text": "І хто забрав мій інтернет?»",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "taras"
                ],
                "addressees": [
                  "vira"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ]
          },
          {
            "id": "b03",
            "trigger": "Два чужі запити поспіль",
            "action": "Віра знаходить усе й дивиться на список",
            "consequence": "Помічає відсутність себе у власному плані",
            "emotion": "самоіронія переходить у втому",
            "persuasionJob": "назвати потребу через предмет",
            "causedBy": [
              "b02"
            ],
            "lines": [
              {
                "number": 9,
                "text": "Я всім знаходжу все за мить,",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 10,
                "text": "Веду домашній штаб сама.",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 11,
                "text": "На склі мій список аж блищить,",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 12,
                "text": "Але мене у нім нема.",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ]
          },
          {
            "id": "b04",
            "trigger": "Вона помітила порожній рядок",
            "action": "Співає бажаний принцип, але знову відгукується на поклик",
            "consequence": "Першої декларації недостатньо",
            "emotion": "надія, зрив",
            "persuasionJob": "відкласти перемогу",
            "causedBy": [
              "b03"
            ],
            "lines": [
              {
                "number": 13,
                "text": "Обличчю — все, а шиї — теж!",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 14,
                "text": "У догляду немає меж.",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 15,
                "text": "Та знову хтось мене гукає,",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 16,
                "text": "І мій рядок із плану зникає.",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ]
          },
          {
            "id": "b05",
            "trigger": "Навіть у кафе Віра не сідає",
            "action": "Надія звертає увагу на втретє холодний чай",
            "consequence": "Віра визнає дефіцит часу",
            "emotion": "турбота, опір",
            "persuasionJob": "союзниця відповідає на поведінку",
            "causedBy": [
              "b04"
            ],
            "lines": [
              {
                "number": 17,
                "text": "В кафе Надія каже: «Сядь.",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "nadiia"
                ],
                "addressees": [
                  "vira"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 18,
                "text": "Твій чай охолов уже утретє».",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "nadiia"
                ],
                "addressees": [
                  "vira"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 19,
                "text": "«Мені ще стільки наздогнать!»",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "nadiia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 20,
                "text": "«А ти у власному бюджеті?»",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "nadiia"
                ],
                "addressees": [
                  "vira"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ],
            "exchange": [
              "vira",
              "nadiia"
            ]
          },
          {
            "id": "b06",
            "trigger": "Надія пропонує місце для себе",
            "action": "Віра заперечує проти десяти нових банок",
            "consequence": "Подруга зменшує бар’єр до особистої хвилини",
            "emotion": "скепсис, полегшення",
            "persuasionJob": "реальне заперечення і відповідь",
            "causedBy": [
              "b05"
            ],
            "lines": [
              {
                "number": 21,
                "text": "«Ще десять банок? Не почну.",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "nadiia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 22,
                "text": "Не хочу ранку за розкладом».",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "nadiia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 23,
                "text": "«Та ні. Одну хвилину — ту,",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "nadiia"
                ],
                "addressees": [
                  "vira"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 24,
                "text": "Де ти сама із власним доглядом».",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "nadiia"
                ],
                "addressees": [
                  "vira"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ],
            "exchange": [
              "vira",
              "nadiia"
            ]
          },
          {
            "id": "b07",
            "trigger": "Маленька звичка стала можливою",
            "action": "Віра сама питає, що взяти для шиї",
            "consequence": "Крем входить через запит і спільне читання",
            "emotion": "цікавість",
            "persuasionJob": "мотивована поява продукту",
            "causedBy": [
              "b06"
            ],
            "lines": [
              {
                "number": 25,
                "text": "«А що для шиї?» — я питаю.",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "nadiia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 26,
                "text": "Надія дістає свій крем:",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "nadiia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 27,
                "text": "«Go Pure. Я ним шию доглядаю.",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "nadiia"
                ],
                "addressees": [
                  "vira"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 28,
                "text": "Прочитаймо склад удвох тепер».",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "nadiia"
                ],
                "addressees": [
                  "vira"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ],
            "exchange": [
              "vira",
              "nadiia"
            ]
          },
          {
            "id": "b08",
            "trigger": "Етикетка перед ними",
            "action": "Надія називає склад і зволоження; Віра питає про свої справи",
            "consequence": "Відокремлюють догляд від розподілу побуту",
            "emotion": "сміх, ясність",
            "persuasionJob": "межа обіцянки",
            "causedBy": [
              "b07"
            ],
            "lines": [
              {
                "number": 29,
                "text": "«Тут купуасу й гіалурон,",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "nadiia"
                ],
                "addressees": [
                  "vira"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 30,
                "text": "Це крем для зволоження шкіри».",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "nadiia"
                ],
                "addressees": [
                  "vira"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 31,
                "text": "«А хто поробить мої справи?»",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "nadiia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 32,
                "text": "«Не крем! Про це поговорім».",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "nadiia"
                ],
                "addressees": [
                  "vira"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ],
            "exchange": [
              "vira",
              "nadiia"
            ]
          },
          {
            "id": "b09",
            "trigger": "Тепер вона розуміє роль крему",
            "action": "Повертає той самий приспів як намір",
            "consequence": "Готується спробувати",
            "emotion": "енергія",
            "persuasionJob": "пам’ять бренду",
            "causedBy": [
              "b08"
            ],
            "lines": [
              {
                "number": 33,
                "text": "Обличчю — все, а шиї — теж!",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 34,
                "text": "У догляду немає меж.",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 35,
                "text": "Go Pure, не забувай:",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 36,
                "text": "Шию в список додавай!",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ]
          },
          {
            "id": "b10",
            "trigger": "Намір отримав конкретну форму",
            "action": "Номер, огляд на пошті, оплата",
            "consequence": "Крем опиняється вдома за її рішенням",
            "emotion": "контроль",
            "persuasionJob": "показати шлях замовлення",
            "causedBy": [
              "b09"
            ],
            "lines": [
              {
                "number": 37,
                "text": "Я номер у замовленні лишаю,",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 38,
                "text": "Пакунок на пошті оглядаю.",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 39,
                "text": "Тоді оплачую. Несу додому.",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 40,
                "text": "Цю хвильку залишаю собі.",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ]
          },
          {
            "id": "b11",
            "trigger": "Крем уже вдома",
            "action": "Віра наносить тонкий шар, чує старий поклик і майже біжить",
            "consequence": "Звичка самозречення повторюється",
            "emotion": "спокій, напруга",
            "persuasionJob": "спосіб використання і тест",
            "causedBy": [
              "b10"
            ],
            "lines": [
              {
                "number": 41,
                "text": "На чисту шию — тонкий шар,",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "taras"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 42,
                "text": "Легенько рухаюсь догори.",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "taras"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 43,
                "text": "Та з кухні знов: «Де мій футляр?»",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "taras"
                ],
                "addressees": [
                  "vira"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 44,
                "text": "І я вже майже мчу на поклик.",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "taras"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ],
            "exchange": [
              "vira",
              "taras"
            ]
          },
          {
            "id": "b12",
            "trigger": "Старий поклик перервав ритуал",
            "action": "Віра просить Тараса самому знайти футляр",
            "consequence": "Чоловік має діяти інакше",
            "emotion": "завмирання, твердість",
            "persuasionJob": "кульмінація власного рішення",
            "causedBy": [
              "b11"
            ],
            "lines": [
              {
                "number": 45,
                "text": "Стоп! А хто мене забув?",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 46,
                "text": "Я кришку закриваю. Видих.",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 47,
                "text": "«Тарасе, ти ж його поклав.",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 48,
                "text": "Шукай. Я зайнята хвилину».",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ]
          },
          {
            "id": "b13",
            "trigger": "Віра не побігла допомагати",
            "action": "Тарас знаходить футляр, робить чай і прибирає",
            "consequence": "У неї з’являється реальна вільна хвилина",
            "emotion": "здивування, тепло",
            "persuasionJob": "відповідь іншої людини дією",
            "causedBy": [
              "b12"
            ],
            "lines": [
              {
                "number": 49,
                "text": "Тарас спочатку аж затих,",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "taras"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 50,
                "text": "Тоді: «Знайшов! Таки у куртці».",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "taras"
                ],
                "addressees": [
                  "vira"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 51,
                "text": "Поставив чай. Прибрав зі столу.",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "taras"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 52,
                "text": "Мій вечір вмістився у кружці.",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "taras"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ],
            "exchange": [
              "vira",
              "taras"
            ]
          },
          {
            "id": "b14",
            "trigger": "Тарас уже взяв частину справ",
            "action": "Софія сама знаходить жакет і просить побути поруч",
            "consequence": "Мама потрібна як людина, а не пошукова служба",
            "emotion": "ніжність",
            "persuasionJob": "зміна другого стосунку",
            "causedBy": [
              "b13"
            ],
            "lines": [
              {
                "number": 53,
                "text": "Софія: «Мамо, я сама",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "sofiia"
                ],
                "addressees": [
                  "vira"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 54,
                "text": "Жакет знайшла. Побудь зі мною».",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "sofiia"
                ],
                "addressees": [
                  "vira"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 55,
                "text": "Не новий пункт. Не сто завдань.",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "sofiia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 56,
                "text": "Ми обираєм пісню вдвох.",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "sofiia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ],
            "exchange": [
              "vira",
              "sofiia"
            ]
          },
          {
            "id": "b15",
            "trigger": "Новий ранок знов перевантажений",
            "action": "Віра мало не забуває, але крем біля гребеня нагадує",
            "consequence": "Ритуал підтримує конкретне розташування",
            "emotion": "зрив, повернення",
            "persuasionJob": "реалістична повторюваність",
            "causedBy": [
              "b14"
            ],
            "lines": [
              {
                "number": 57,
                "text": "Наступний ранок — знов аврал,",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 58,
                "text": "І я вже майже все забула.",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 59,
                "text": "Та крем стояв там, де мій гребінь,",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 60,
                "text": "І я до дзеркала вернулась.",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ]
          },
          {
            "id": "b16",
            "trigger": "Надія питає про дім після їхньої зустрічі",
            "action": "Віра розповідає про спільне чергування",
            "consequence": "Союзниця чує результат розмови, не лікування",
            "emotion": "вдячність, гумор",
            "persuasionJob": "підтвердити поведінковий наслідок",
            "causedBy": [
              "b15"
            ],
            "lines": [
              {
                "number": 61,
                "text": "Надія пише: «Як твій штаб?»",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "nadiia"
                ],
                "addressees": [
                  "vira"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 62,
                "text": "«Тепер нас троє на чергуванні.",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "nadiia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 63,
                "text": "Мій крем не прибирає кухню,",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "nadiia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 64,
                "text": "Та я вже є у власнім плані».",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "nadiia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ],
            "exchange": [
              "vira",
              "nadiia"
            ],
            "recalls": "b01"
          },
          {
            "id": "b17",
            "trigger": "Родина прийняла новий розподіл",
            "action": "Донька і чоловік додають рядки на дзеркалі",
            "consequence": "Початковий предмет тепер захищає її час",
            "emotion": "спільний сміх",
            "persuasionJob": "предметний колбек",
            "causedBy": [
              "b16"
            ],
            "lines": [
              {
                "number": 65,
                "text": "Софія на дзеркалі пише:",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "sofiia",
                  "taras"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 66,
                "text": "«Мамі — хвилина. Не турбувати».",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "sofiia"
                ],
                "addressees": [
                  "vira"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 67,
                "text": "Тарас додає: «Ключі знайшов!»",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "taras"
                ],
                "addressees": [
                  "vira"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 68,
                "text": "Ми регочем. Можна починати!",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "sofiia",
                  "taras"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ],
            "recalls": "b01"
          },
          {
            "id": "b18",
            "trigger": "Її місце у списку вже реальне",
            "action": "Фінальний приспів додає до шиї саму героїню",
            "consequence": "Початкова проблема отримує ширший сенс",
            "emotion": "радість",
            "persuasionJob": "емоційна виплата",
            "causedBy": [
              "b17"
            ],
            "lines": [
              {
                "number": 69,
                "text": "Обличчю — все, а шиї — теж!",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 70,
                "text": "У догляду немає меж.",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 71,
                "text": "Go Pure, не забувай:",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 72,
                "text": "І себе у список додавай!",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ],
            "recalls": "b01"
          },
          {
            "id": "b19",
            "trigger": "Історія завершилася власним рішенням",
            "action": "Героїня запрошує замовити зрозумілий догляд",
            "consequence": "Глядач знає наступну дію",
            "emotion": "дружня впевненість",
            "persuasionJob": "конкретний CTA",
            "causedBy": [
              "b18"
            ],
            "lines": [
              {
                "number": 73,
                "text": "Для шиї хочеш власний догляд?",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 74,
                "text": "Залиш свій номер у замовленні.",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 75,
                "text": "На пошті оглянь, тоді плати.",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 76,
                "text": "Go Pure — і в списку є ти!",
                "sungBy": "vira",
                "dramaticSpeakers": [
                  "vira"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ]
          }
        ]
      }
    },
    {
      "id": "scarf-holiday",
      "title": "Шарф у відпустку",
      "buyerMotive": "Choose clothes for pleasure",
      "tension": "A scarf has quietly become an automatic hiding habit, even in summer.",
      "hook": "Мій шарф іде у відпустку!",
      "payoff": "Бажання першої хвилини виконано",
      "productRole": "Daily neck care accompanies her choice; it does not grant permission to wear a dress.",
      "claimIds": [
        "hydration",
        "ingredients",
        "ritual",
        "payment"
      ],
      "character": {
        "id": "lada",
        "name": "Лада",
        "age": 51,
        "identity": "Dark brown chin-length curly bob with gray strands, green eyes, warm olive skin, round full face, curvy adult build.",
        "wardrobe": "Emerald open-neck blouse, mustard-yellow round earrings.",
        "voice": "Playful rounded female mezzo, rhythmic disco-funk articulation and melodic octave lift.",
        "baselineConcern": "Natural mature neck folds with mild dry texture; scarf habit changes, skin is not digitally transformed.",
        "prompt": "Neutral editorial cinematic-realism identity portrait; age 51, dark curly bob with gray strands, green eyes, round full olive-skinned face, emerald open-neck blouse, mustard earrings. Head through upper chest, visible natural neck, gray studio, mouth closed. No scarf, no de-aging.",
        "invariants": [
          "Same face, hair, eye color, age and adult body in all future media.",
          "Neck anatomy and natural aging preserved; no instant wrinkle removal.",
          "Wardrobe/accessories match the neutral master unless a later scene explicitly changes clothing.",
          "Fictional character; never present as a real customer or clinical evidence."
        ],
        "passport": "assets/lada-v01.png",
        "states": {
          "baseline": "Neutral identity master with natural neck texture.",
          "allowedChanges": [
            "Expression",
            "Gesture",
            "Posture",
            "Chosen wardrobe in an explicit scene"
          ],
          "notGenerated": [
            "Treatment before/after",
            "Video",
            "Lip sync"
          ]
        },
        "roleType": "lead",
        "relationship": "Центральна героїня й основна оповідачка.",
        "want": "Піти на танці у сукні, яку сама обрала.",
        "fear": "Опинитися під оцінкою, якщо не прикрити шию.",
        "change": "Від відмовки й повернення за двері до вибору, який витримує повторну спокусу сховатися.",
        "signatureGesture": "Тягнеться до шарфа; потім перев’язує його на сумці.",
        "fictional": true
      },
      "song": {
        "mode": "cover",
        "style": "Uplifting disco-funk dance-pop, 120 bpm, D minor with bright major lifts. Confident mature female mezzo. Elastic syncopated bass guitar, crisp handclaps, clean wah rhythm guitar, sparkling brass stabs, concise melodic verses, contagious chant-sung refrain, playful stop-and-go breaks. Sung entirely in Ukrainian with native stress and crisp consonants. First audible event is the first sung word at 0.00; absolutely no instrumental intro, breathy ooh, pickup, spoken intro or count-in. Hook melody immediately. Preserve EVERY written lyric and complete the final call to action. Expanded complete narrative. Preserve the seed groove, lead vocal timbre and chorus melody. One lead sings all narrative and quoted dialogue; vary expression, never spoken narration. No rap.",
        "duration": 270,
        "vocalGender": "f",
        "lyrics": "lyrics/scarf-holiday.txt",
        "musicalLane": "Disco-funk / 120 BPM target",
        "syllables": 677,
        "firstAudibleEvent": "First sung hook word; crop any generated instrumental pickup after actual-audio inspection.",
        "negativeTags": "instrumental intro, spoken intro, wordless intro, count-in, English lyrics, mumbling, long instrumental outro, rap",
        "seed": "media/scarf-holiday-approved.mp3",
        "audioWeight": 0.9,
        "approvedStyleSource": "../gopure-angles/jobs/scarf-holiday-v01/spec.json",
        "performanceContract": "One continuous approved female lead sings the story and clearly introduced quotations from four characters. Character passports do not promise four independently generated vocal identities."
      },
      "firstThreeSeconds": [
        {
          "time": "0.00–0.80",
          "action": "Sung hook on the first beat; scarf lands beside a tiny holiday suitcase."
        },
        {
          "time": "0.80–1.80",
          "action": "Cut to yesterday: Lada in her dress closes the door instead of leaving."
        },
        {
          "time": "1.80–3.00",
          "action": "Unread invitation and unused ticket: why did she stay home?"
        }
      ],
      "referenceReason": "Original musical wildcard: no uploaded melody. Use the references’ recurring-prop callback and payoff structure, with an independently composed dance groove.",
      "testHypothesis": "Does a playful wardrobe-freedom metaphor make this the most memorable chorus?",
      "status": "expanded-narrative-written",
      "ownerDecision": "expanded narrative awaiting validation; original music approved",
      "fictional": true,
      "cast": [
        {
          "id": "lada",
          "name": "Лада",
          "age": 51,
          "identity": "Dark brown chin-length curly bob with gray strands, green eyes, warm olive skin, round full face, curvy adult build.",
          "wardrobe": "Emerald open-neck blouse, mustard-yellow round earrings.",
          "voice": "Playful rounded female mezzo, rhythmic disco-funk articulation and melodic octave lift.",
          "baselineConcern": "Natural mature neck folds with mild dry texture; scarf habit changes, skin is not digitally transformed.",
          "prompt": "Neutral editorial cinematic-realism identity portrait; age 51, dark curly bob with gray strands, green eyes, round full olive-skinned face, emerald open-neck blouse, mustard earrings. Head through upper chest, visible natural neck, gray studio, mouth closed. No scarf, no de-aging.",
          "invariants": [
            "Same face, hair, eye color, age and adult body in all future media.",
            "Neck anatomy and natural aging preserved; no instant wrinkle removal.",
            "Wardrobe/accessories match the neutral master unless a later scene explicitly changes clothing.",
            "Fictional character; never present as a real customer or clinical evidence."
          ],
          "passport": "assets/lada-v01.png",
          "states": {
            "baseline": "Neutral identity master with natural neck texture.",
            "allowedChanges": [
              "Expression",
              "Gesture",
              "Posture",
              "Chosen wardrobe in an explicit scene"
            ],
            "notGenerated": [
              "Treatment before/after",
              "Video",
              "Lip sync"
            ]
          },
          "roleType": "lead",
          "relationship": "Центральна героїня й основна оповідачка.",
          "want": "Піти на танці у сукні, яку сама обрала.",
          "fear": "Опинитися під оцінкою, якщо не прикрити шию.",
          "change": "Від відмовки й повернення за двері до вибору, який витримує повторну спокусу сховатися.",
          "signatureGesture": "Тягнеться до шарфа; потім перев’язує його на сумці.",
          "fictional": true
        },
        {
          "id": "marta",
          "name": "Марта",
          "age": 52,
          "relationship": "Подруга Лади й партнерка для походу на танці.",
          "want": "Провести вечір разом із Ладою.",
          "fear": "Що чергове запрошення стане для подруги тиском.",
          "change": "Від очікування біля входу до теплого прийняття без коментарів про зовнішність.",
          "identity": "Copper-red shoulder-length straight hair, blue eyes, long face, natural smile lines, tall sturdy adult build",
          "wardrobe": "Fuchsia open-neck satin blouse, small gold round earrings",
          "signatureGesture": "Тримає місце поруч, простягає відкриту долоню без підганяння.",
          "voice": "Bright confident female register; buoyant invitations with space to refuse.",
          "baselineConcern": "Natural age and anatomy; no treatment before/after state.",
          "invariants": [
            "Same face, age, hair, eyes and body in later scenes.",
            "Wardrobe stays locked unless an explicit scene calls for a change.",
            "Expressions, posture and gestures may change; skin is not transformed.",
            "Fictional ensemble character, not a real customer or authority."
          ],
          "prompt": "Use case: photorealistic-natural. Asset type: neutral fictional character passport for a Ukrainian musical campaign ensemble. One person only. Subject: Марта, age 52; Copper-red shoulder-length straight hair, blue eyes, long face, natural smile lines, tall sturdy adult build. Wardrobe: Fuchsia open-neck satin blouse, small gold round earrings. Realistic editorial casting photograph, gray studio backdrop, soft neutral daylight, eye level, full head to upper chest, mouth closed, natural skin texture and age, visible neck, centered portrait 1024x1536. Personality through a subtle relaxed expression, not acting a scene. No text, logos, product, props, beauty retouching, age reversal, collage or extra people.",
          "passport": "assets/marta-v01.png",
          "roleType": "supporting",
          "fictional": true
        },
        {
          "id": "daryna",
          "name": "Дарина",
          "age": 27,
          "relationship": "Доросла донька Лади; ненавмисно підтримує звичку ховатися.",
          "want": "Щоб мамі було зручно і спокійно.",
          "fear": "Що її турботу сприймуть як критику.",
          "change": "Вчиться питати про вибір мами; вмикає музику, замість подавати шарф.",
          "identity": "Dark brown long straight hair with blunt bangs, green eyes, round olive-skinned face, average adult build",
          "wardrobe": "Cream and green striped cotton boat-neck top, tiny mustard studs",
          "signatureGesture": "Рука зі складеним шарфом змінюється на палець на кнопці музики.",
          "voice": "Light warm adult female register; tentative suggestions, then playful support.",
          "baselineConcern": "Natural age and anatomy; no treatment before/after state.",
          "invariants": [
            "Same face, age, hair, eyes and body in later scenes.",
            "Wardrobe stays locked unless an explicit scene calls for a change.",
            "Expressions, posture and gestures may change; skin is not transformed.",
            "Fictional ensemble character, not a real customer or authority."
          ],
          "prompt": "Use case: photorealistic-natural. Asset type: neutral fictional character passport for a Ukrainian musical campaign ensemble. One person only. Subject: Дарина, age 27; Dark brown long straight hair with blunt bangs, green eyes, round olive-skinned face, average adult build. Wardrobe: Cream and green striped cotton boat-neck top, tiny mustard studs. Realistic editorial casting photograph, gray studio backdrop, soft neutral daylight, eye level, full head to upper chest, mouth closed, natural skin texture and age, visible neck, centered portrait 1024x1536. Personality through a subtle relaxed expression, not acting a scene. No text, logos, product, props, beauty retouching, age reversal, collage or extra people.",
          "passport": "assets/daryna-v01.png",
          "roleType": "supporting",
          "fictional": true
        },
        {
          "id": "zoia",
          "name": "Зоя",
          "age": 60,
          "relationship": "Кравчиня й знайома Лади; сама ходить на танці.",
          "want": "Зрозуміти, якої зміни сукні насправді хоче клієнтка.",
          "fear": "Переробити річ через чуже очікування, а не її бажання.",
          "change": "Відкладає ножиці, дає вибір; у фіналі зустрічає Ладу як рівну на танцях.",
          "identity": "Short white wavy hair, brown eyes, broad soft face with natural wrinkles, stocky adult build",
          "wardrobe": "Terracotta linen blouse with open collar, dark teal apron straps, small copper earrings",
          "signatureGesture": "Спокійно кладе інструмент і слухає, не торкаючись чужого одягу без згоди.",
          "voice": "Low reassuring female register; economical questions, dry little smile.",
          "baselineConcern": "Natural age and anatomy; no treatment before/after state.",
          "invariants": [
            "Same face, age, hair, eyes and body in later scenes.",
            "Wardrobe stays locked unless an explicit scene calls for a change.",
            "Expressions, posture and gestures may change; skin is not transformed.",
            "Fictional ensemble character, not a real customer or authority."
          ],
          "prompt": "Use case: photorealistic-natural. Asset type: neutral fictional character passport for a Ukrainian musical campaign ensemble. One person only. Subject: Зоя, age 60; Short white wavy hair, brown eyes, broad soft face with natural wrinkles, stocky adult build. Wardrobe: Terracotta linen blouse with open collar, dark teal apron straps, small copper earrings. Realistic editorial casting photograph, gray studio backdrop, soft neutral daylight, eye level, full head to upper chest, mouth closed, natural skin texture and age, visible neck, centered portrait 1024x1536. Personality through a subtle relaxed expression, not acting a scene. No text, logos, product, props, beauty retouching, age reversal, collage or extra people.",
          "passport": "assets/zoia-v01.png",
          "roleType": "supporting",
          "fictional": true
        }
      ],
      "narrative": {
        "premise": "A scarf has quietly become an automatic hiding habit, even in summer.",
        "initialQuestion": "Відкривається питання, чому вона не пішла",
        "climax": "Дарина питає; Лада зав’язує його на сумці",
        "payoff": "Бажання першої хвилини виконано",
        "productBoundary": "Daily neck care accompanies her choice; it does not grant permission to wear a dress.",
        "performanceContract": "One continuous approved female lead sings the story and clearly introduced quotations from four characters. Character passports do not promise four independently generated vocal identities.",
        "referenceTransfers": [
          "targ: a concrete encounter opens the wound; a later related encounter tests changed agency.",
          "sisterbrazil / svekr: objection → responsive peer → practical action → social test; adapt dramatic function, not medical claims.",
          "media-922fbf8f0e9c: forward questions and escalating consequences; no requirement for a large cast in that explainer reference."
        ],
        "honestRisk": "Найвиразніший предметний колбек. Історія легко читається як свобода одягу взагалі; крем — доречний супутній ритуал, а не причина, що дає дозвіл танцювати.",
        "beats": [
          {
            "id": "b01",
            "trigger": "Лада оголошує відпустку шарфа",
            "action": "Пісня відразу повертається до вчорашньої зачиненої двері",
            "consequence": "Відкривається питання, чому вона не пішла",
            "emotion": "зухвалість, інтрига",
            "persuasionJob": "гачок і короткий відступ у минуле",
            "causedBy": [],
            "lines": [
              {
                "number": 1,
                "text": "Мій шарф іде у відпустку!",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 2,
                "text": "А я — у сукні на танці!",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 3,
                "text": "Та вчора він знову виграв:",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 4,
                "text": "Я двері закрила на ґанку.",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ]
          },
          {
            "id": "b02",
            "trigger": "Марта вже взяла квитки",
            "action": "Лада дістає сукню, але прикриває шию",
            "consequence": "Зовнішня мета зустрічає внутрішній бар’єр",
            "emotion": "очікування, сором’язливість",
            "persuasionJob": "конкретний привід діяти",
            "causedBy": [
              "b01"
            ],
            "lines": [
              {
                "number": 5,
                "text": "Марта: «Я взяла квитки!",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "marta"
                ],
                "addressees": [
                  "lada"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 6,
                "text": "О сьомій зустрінемось, Ладо».",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "marta"
                ],
                "addressees": [
                  "lada"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 7,
                "text": "Я сукню дістала з шафи,",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "marta"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 8,
                "text": "Та шию прикрила рукою.",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "marta"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ]
          },
          {
            "id": "b03",
            "trigger": "Лада вагається перед виходом",
            "action": "Дарина пропонує шарф із добрим наміром",
            "consequence": "Мама сприймає це як підтвердження, що краще ховатися",
            "emotion": "турбота, стискання",
            "persuasionJob": "ненавмисний соціальний тиск",
            "causedBy": [
              "b02"
            ],
            "lines": [
              {
                "number": 9,
                "text": "Дарина: «Може, шарфик?",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "daryna"
                ],
                "addressees": [
                  "lada"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 10,
                "text": "Тобі ж у ньому зручно».",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "daryna"
                ],
                "addressees": [
                  "lada"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 11,
                "text": "Я вузлик затягла тугіше:",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "daryna"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 12,
                "text": "«Так краще». Аж стало душно.",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "daryna"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ]
          },
          {
            "id": "b04",
            "trigger": "Шарф не зняв напругу",
            "action": "Лада вигадує справи й відмовляє Марті",
            "consequence": "Втрачає спільний вечір; подруга лишає запрошення відкритим",
            "emotion": "самотність, тепло",
            "persuasionJob": "ціна уникання без приниження",
            "causedBy": [
              "b03"
            ],
            "lines": [
              {
                "number": 13,
                "text": "Написала Марті: «Справи».",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "marta"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 14,
                "text": "А справи — сидіти в сукні.",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "marta"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 15,
                "text": "Вона: «Я зачекаю. Знаєш,",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "marta"
                ],
                "addressees": [
                  "lada"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 16,
                "text": "Мені тебе там бракує».",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "marta"
                ],
                "addressees": [
                  "lada"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ],
            "exchange": [
              "lada",
              "marta"
            ]
          },
          {
            "id": "b05",
            "trigger": "Вона лишилась вдома у сукні",
            "action": "Співає бажання, визнаючи, що ще не рушила",
            "consequence": "Перемога не видана наперед",
            "emotion": "драйв, сумнів",
            "persuasionJob": "повтор hook із новою суперечністю",
            "causedBy": [
              "b04"
            ],
            "lines": [
              {
                "number": 17,
                "text": "Шарф — у відпустку! Я — танцювати!",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 18,
                "text": "Легко співати. Важче рушати.",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 19,
                "text": "Сукня чекає, квиток на столі.",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 20,
                "text": "Хто обирає — мій страх чи я сама?",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ]
          },
          {
            "id": "b06",
            "trigger": "Після відмови потрібен вихід",
            "action": "Лада просить кравчиню закрити виріз",
            "consequence": "Зоя питає, чи це справді її бажання",
            "emotion": "незручність, увага",
            "persuasionJob": "мотивована зустріч із союзницею",
            "causedBy": [
              "b05"
            ],
            "lines": [
              {
                "number": 21,
                "text": "До Зої несу ту сукню:",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "zoia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 22,
                "text": "«Закрийте виріз хоч трішки».",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "zoia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 23,
                "text": "Вона відкладає ножиці:",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "zoia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 24,
                "text": "«Ти хочеш? Чи так спокійніше?»",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "zoia"
                ],
                "addressees": [
                  "lada"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ],
            "exchange": [
              "lada",
              "zoia"
            ]
          },
          {
            "id": "b07",
            "trigger": "Питання Зої відкриває розмову",
            "action": "Лада називає звичку, Зоя повертає їй вибір",
            "consequence": "Переробка перестає бути єдиним варіантом",
            "emotion": "відвертість, полегшення",
            "persuasionJob": "заперечення звичної рамки",
            "causedBy": [
              "b06"
            ],
            "lines": [
              {
                "number": 25,
                "text": "«Я шию ховаю звично,",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "zoia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 26,
                "text": "У спеку — і то під шарфик».",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "zoia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 27,
                "text": "«Я можу перешити сукню.",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "zoia"
                ],
                "addressees": [
                  "lada"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 28,
                "text": "Та вибір лишається твій».",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "zoia"
                ],
                "addressees": [
                  "lada"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ],
            "exchange": [
              "lada",
              "zoia"
            ]
          },
          {
            "id": "b08",
            "trigger": "Лада дозволила собі запитати про догляд",
            "action": "Зоя ділиться кремом, але не ставить сукню в залежність від нього",
            "consequence": "Догляд і вихід у світ можуть початися незалежно",
            "emotion": "цікавість, гумор",
            "persuasionJob": "роль продукту без вигаданої причинності",
            "causedBy": [
              "b07"
            ],
            "lines": [
              {
                "number": 29,
                "text": "«А ти чим шию доглядаєш?»",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "zoia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 30,
                "text": "«Гоу п’юр. Крем для зволоження».",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "zoia"
                ],
                "addressees": [
                  "lada"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 31,
                "text": "«То сукню вдягну лиш потім?»",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "zoia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 32,
                "text": "«Ні. Сукня не просить дозволу».",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "zoia"
                ],
                "addressees": [
                  "lada"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ],
            "exchange": [
              "lada",
              "zoia"
            ]
          },
          {
            "id": "b09",
            "trigger": "Продукт зацікавив її",
            "action": "Зоя показує склад, Лада зберігає фото",
            "consequence": "Є власна інформація для вибору",
            "emotion": "спокій",
            "persuasionJob": "причина довіряти через перевірку",
            "causedBy": [
              "b08"
            ],
            "lines": [
              {
                "number": 33,
                "text": "Вона показала етикетку:",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "zoia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 34,
                "text": "«Купуасу й гіалурон».",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "zoia"
                ],
                "addressees": [
                  "lada"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 35,
                "text": "Я склад прочитала уважно,",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "zoia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 36,
                "text": "Поставила фото в телефон.",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "zoia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ],
            "exchange": [
              "lada",
              "zoia"
            ]
          },
          {
            "id": "b10",
            "trigger": "Вона побачила інший варіант",
            "action": "Той самий приспів стає планом",
            "consequence": "Енергія готує спробу",
            "emotion": "підйом",
            "persuasionJob": "музична впізнаваність",
            "causedBy": [
              "b09"
            ],
            "lines": [
              {
                "number": 37,
                "text": "Шарф — у відпустку! Я — танцювати!",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 38,
                "text": "Шию люблю, не мушу ховати.",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 39,
                "text": "Гоу п’юр — у моєму ритмі,",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 40,
                "text": "Роки зі мною. І всі вони рідні!",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ]
          },
          {
            "id": "b11",
            "trigger": "Є план і фото складу",
            "action": "Лада замовляє, оглядає й оплачує",
            "consequence": "Догляд переходить із розмови у дію",
            "emotion": "рішучість",
            "persuasionJob": "знизити невизначеність покупки",
            "causedBy": [
              "b10"
            ],
            "lines": [
              {
                "number": 41,
                "text": "Я номер лишила у формі,",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 42,
                "text": "На пошті оглянула крем.",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 43,
                "text": "Тоді оплатила. Увечері",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 44,
                "text": "Мій догляд почався з простого:",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ]
          },
          {
            "id": "b12",
            "trigger": "Крем отримано",
            "action": "Лада виконує простий ритуал",
            "consequence": "Догляд має власний щоденний час",
            "emotion": "затишок",
            "persuasionJob": "показати застосування",
            "causedBy": [
              "b11"
            ],
            "lines": [
              {
                "number": 45,
                "text": "На чисту шию — тонкий шар,",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 46,
                "text": "Легенькі рухи догори.",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 47,
                "text": "Не зупиняю календар,",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 48,
                "text": "А час для себе бережу.",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ]
          },
          {
            "id": "b13",
            "trigger": "Наступного разу донька поруч",
            "action": "Дарина пропонує музику; Лада просить не подавати шарф",
            "consequence": "Безпечна кухонна репетиція створює сміх",
            "emotion": "гра, свобода",
            "persuasionJob": "малий крок перед великим тестом",
            "causedBy": [
              "b12"
            ],
            "lines": [
              {
                "number": 49,
                "text": "Дарина: «Музику ввімкнути?»",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "daryna"
                ],
                "addressees": [
                  "lada"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 50,
                "text": "«Вмикай. Та шарф не подавай».",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "daryna"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 51,
                "text": "Ми босі крутимось на кухні,",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "daryna"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 52,
                "text": "І сміх перелився через край.",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "daryna"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ],
            "exchange": [
              "lada",
              "daryna"
            ]
          },
          {
            "id": "b14",
            "trigger": "Спільний танець змінив розмову",
            "action": "Дарина визнає свій намір, мама просить питати",
            "consequence": "Домовляються про межу турботи",
            "emotion": "вразливість, довіра",
            "persuasionJob": "союзниця теж змінюється",
            "causedBy": [
              "b13"
            ],
            "lines": [
              {
                "number": 53,
                "text": "«Я думала, тобі так краще»,",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "daryna"
                ],
                "addressees": [
                  "lada"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 54,
                "text": "Дарина дивиться на вузлик.",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "daryna"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 55,
                "text": "«Спитай наступного разу».",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "daryna"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 56,
                "text": "«Домовились». І знову музика.",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "daryna"
                ],
                "addressees": [
                  "lada"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ],
            "exchange": [
              "lada",
              "daryna"
            ]
          },
          {
            "id": "b15",
            "trigger": "Марта повторно чекає біля входу",
            "action": "Лада знов тягнеться до шарфа і завмирає",
            "consequence": "Старий імпульс повертається перед вибором",
            "emotion": "напруга",
            "persuasionJob": "повторення початкового випробування",
            "causedBy": [
              "b14"
            ],
            "lines": [
              {
                "number": 57,
                "text": "Марта знов: «Я біля входу».",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "marta"
                ],
                "addressees": [
                  "lada"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 58,
                "text": "Я руку до шарфа простягла.",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "marta"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 59,
                "text": "На мить завмерла біля дверей,",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "marta"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 60,
                "text": "А потім сумку підняла.",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "marta"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ],
            "exchange": [
              "lada",
              "marta"
            ]
          },
          {
            "id": "b16",
            "trigger": "Шарф знов у руці",
            "action": "Дарина питає; Лада зав’язує його на сумці",
            "consequence": "Предмет отримує іншу роботу, Лада виходить",
            "emotion": "сюрприз, сміх",
            "persuasionJob": "кульмінація і предметний колбек",
            "causedBy": [
              "b15"
            ],
            "lines": [
              {
                "number": 61,
                "text": "Дарина: «Шарф таки з тобою?»",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "daryna"
                ],
                "addressees": [
                  "lada"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 62,
                "text": "«Так! Та сьогодні інша посада».",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "daryna"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 63,
                "text": "Я вузлик на сумці зав’язала:",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "daryna"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 64,
                "text": "«Він теж заслужив потанцювати!»",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "daryna"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ],
            "exchange": [
              "lada",
              "daryna"
            ],
            "recalls": "b01"
          },
          {
            "id": "b17",
            "trigger": "Лада таки приїхала",
            "action": "Марта веде всередину, Зоя махає з майданчика",
            "consequence": "Повернення до людей доведено дією, не компліментом шкірі",
            "emotion": "належність, азарт",
            "persuasionJob": "зароблений соціальний фінал",
            "causedBy": [
              "b16"
            ],
            "lines": [
              {
                "number": 65,
                "text": "Марта: «Нарешті! Ходімо!»",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "marta"
                ],
                "addressees": [
                  "lada"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 66,
                "text": "Зоя махає з танцмайданчика.",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "marta"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 67,
                "text": "Не питає ніхто про зморшки.",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "marta"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 68,
                "text": "Ми сперечаємось, хто веде!",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "marta"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ],
            "recalls": "b01"
          },
          {
            "id": "b18",
            "trigger": "Вона вже танцює",
            "action": "Приспів означає здійснений вибір",
            "consequence": "Бажання першої хвилини виконано",
            "emotion": "свято",
            "persuasionJob": "емоційний payoff",
            "causedBy": [
              "b17"
            ],
            "lines": [
              {
                "number": 69,
                "text": "Шарф — у відпустку! Я — танцювати!",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 70,
                "text": "Шию люблю, не мушу ховати.",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 71,
                "text": "Гоу п’юр — у моєму ритмі,",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 72,
                "text": "Роки зі мною. І всі вони рідні!",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ],
            "recalls": "b01"
          },
          {
            "id": "b19",
            "trigger": "Особистий вибір відбувся",
            "action": "Запрошення до догляду й конкретного замовлення",
            "consequence": "Глядач може діяти без очікування перетворення",
            "emotion": "смілива доброзичливість",
            "persuasionJob": "CTA",
            "causedBy": [
              "b18"
            ],
            "lines": [
              {
                "number": 73,
                "text": "Залиш свій номер у замовленні,",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 74,
                "text": "На пошті спочатку крем оглядай.",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 75,
                "text": "Після огляду тоді оплати.",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 76,
                "text": "А сукню на потім не відкладай!",
                "sungBy": "lada",
                "dramaticSpeakers": [
                  "lada"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ]
          }
        ]
      }
    },
    {
      "id": "mum-in-frame",
      "title": "Мамо, де ти на фото?",
      "buyerMotive": "Be present in family memories",
      "tension": "She photographs everyone but keeps stepping out of the frame.",
      "hook": "Мамо, де ти на фото?",
      "payoff": "Прогалину в альбомі закрито",
      "productRole": "A small daily care ritual sits inside a larger decision to participate. The cream does not cause family acceptance.",
      "claimIds": [
        "hydration",
        "ingredients",
        "ritual",
        "payment"
      ],
      "character": {
        "id": "orysia",
        "name": "Орися",
        "age": 57,
        "identity": "Silvery ash-gray shoulder-length wavy bob, gray-blue eyes, long oval face, soft full cheeks, fuller average adult build.",
        "wardrobe": "Coral knit cardigan over ivory scoop-neck blouse, tiny silver stud earrings.",
        "voice": "Warm mature female alto with intimate melodic storytelling, rising into a joyous family singalong.",
        "baselineConcern": "Mature horizontal neck folds and slight dryness; no before/after states. Her change is participation and posture.",
        "prompt": "Neutral editorial cinematic-realism portrait; age 57, silvery shoulder-length wavy bob, gray-blue eyes, long oval face, natural mature lines, coral cardigan over ivory open-neck top, small silver earrings. Full head through chest, gray studio, mouth closed, exposed natural neck. No de-aging.",
        "invariants": [
          "Same face, hair, eye color, age and adult body in all future media.",
          "Neck anatomy and natural aging preserved; no instant wrinkle removal.",
          "Wardrobe/accessories match the neutral master unless a later scene explicitly changes clothing.",
          "Fictional character; never present as a real customer or clinical evidence."
        ],
        "passport": "assets/orysia-v01.png",
        "states": {
          "baseline": "Neutral identity master with natural neck texture.",
          "allowedChanges": [
            "Expression",
            "Gesture",
            "Posture",
            "Chosen wardrobe in an explicit scene"
          ],
          "notGenerated": [
            "Treatment before/after",
            "Video",
            "Lip sync"
          ]
        },
        "roleType": "lead",
        "relationship": "Центральна героїня й основна оповідачка.",
        "want": "Бути у спільній сімейній пам’яті без очікування іншої зовнішності.",
        "fear": "Зіпсувати кадр або забрати у всіх зручну фотографиню.",
        "change": "Називає бажання, просить чоловіка навчитися знімати й залишає себе у недосконалому кадрі.",
        "signatureGesture": "Ховається за телефоном; потім передає його й займає місце.",
        "fictional": true
      },
      "song": {
        "mode": "cover",
        "style": "Rhythmic warm acoustic country-pop with a celebratory final chorus, 103 bpm, C major target. Mature female alto, clear fully sung close vocal, fingerpicked guitar turning to strums, bouncy bass, light brushed snare, handclaps, small piano answers. Tender but forward-moving, not a slow ballad. Sung entirely in Ukrainian with native stress and crisp consonants. First audible event is the first sung word at 0.00; absolutely no instrumental intro, breathy ooh, pickup, spoken intro or count-in. Hook melody immediately. Preserve EVERY written lyric and complete the final call to action. Expanded complete narrative. Preserve the seed groove, lead vocal timbre and chorus melody. One lead sings all narrative and quoted dialogue; vary expression, never spoken narration. No rap.",
        "duration": 270,
        "vocalGender": "f",
        "lyrics": "lyrics/mum-in-frame.txt",
        "musicalLane": "Acoustic story-pop / 103 BPM target",
        "syllables": 672,
        "firstAudibleEvent": "First sung hook word; crop any generated instrumental pickup after actual-audio inspection.",
        "negativeTags": "instrumental intro, spoken intro, wordless intro, count-in, English lyrics, mumbling, long instrumental outro, rap",
        "seed": "media/mum-in-frame-approved.mp3",
        "audioWeight": 0.9,
        "approvedStyleSource": "../gopure-angles/jobs/mum-in-frame-v01/spec.json",
        "performanceContract": "One continuous approved female lead sings the story and clearly introduced quotations from four characters. Character passports do not promise four independently generated vocal identities."
      },
      "firstThreeSeconds": [
        {
          "time": "0.00–0.80",
          "action": "First sung question over a family-album spread; Orysia’s own place is empty."
        },
        {
          "time": "0.80–1.80",
          "action": "Daughter points to the missing mother in the birthday album."
        },
        {
          "time": "1.80–3.00",
          "action": "Father passes the phone to Mum again: will anyone change this habit?"
        }
      ],
      "referenceReason": "Use sisterbrazil as a new melodic seed and its intimate relational-story setup. Transfer the feeling of a personal narrative; write a fresh family-memory plot without borrowing product or efficacy claims.",
      "testHypothesis": "Does an immediately recognizable missing-person-in-the-album question create the strongest emotional pull?",
      "status": "expanded-narrative-written",
      "ownerDecision": "expanded narrative awaiting validation; original music approved",
      "fictional": true,
      "cast": [
        {
          "id": "orysia",
          "name": "Орися",
          "age": 57,
          "identity": "Silvery ash-gray shoulder-length wavy bob, gray-blue eyes, long oval face, soft full cheeks, fuller average adult build.",
          "wardrobe": "Coral knit cardigan over ivory scoop-neck blouse, tiny silver stud earrings.",
          "voice": "Warm mature female alto with intimate melodic storytelling, rising into a joyous family singalong.",
          "baselineConcern": "Mature horizontal neck folds and slight dryness; no before/after states. Her change is participation and posture.",
          "prompt": "Neutral editorial cinematic-realism portrait; age 57, silvery shoulder-length wavy bob, gray-blue eyes, long oval face, natural mature lines, coral cardigan over ivory open-neck top, small silver earrings. Full head through chest, gray studio, mouth closed, exposed natural neck. No de-aging.",
          "invariants": [
            "Same face, hair, eye color, age and adult body in all future media.",
            "Neck anatomy and natural aging preserved; no instant wrinkle removal.",
            "Wardrobe/accessories match the neutral master unless a later scene explicitly changes clothing.",
            "Fictional character; never present as a real customer or clinical evidence."
          ],
          "passport": "assets/orysia-v01.png",
          "states": {
            "baseline": "Neutral identity master with natural neck texture.",
            "allowedChanges": [
              "Expression",
              "Gesture",
              "Posture",
              "Chosen wardrobe in an explicit scene"
            ],
            "notGenerated": [
              "Treatment before/after",
              "Video",
              "Lip sync"
            ]
          },
          "roleType": "lead",
          "relationship": "Центральна героїня й основна оповідачка.",
          "want": "Бути у спільній сімейній пам’яті без очікування іншої зовнішності.",
          "fear": "Зіпсувати кадр або забрати у всіх зручну фотографиню.",
          "change": "Називає бажання, просить чоловіка навчитися знімати й залишає себе у недосконалому кадрі.",
          "signatureGesture": "Ховається за телефоном; потім передає його й займає місце.",
          "fictional": true
        },
        {
          "id": "solomiia",
          "name": "Соломія",
          "age": 30,
          "relationship": "Доросла донька Орисі; збирає сімейний альбом до її дня народження.",
          "want": "Знайти фотографію, на якій мама присутня разом з усіма.",
          "fear": "Що залишаться речі й місця, але зникне образ їхнього спільного життя.",
          "change": "Від запитання про порожнє місце до того, що фізично звільняє його для мами.",
          "identity": "Light brown long wavy hair in a loose half-up style, gray-blue eyes, oval face, average adult build",
          "wardrobe": "Sky-blue open-neck cotton blouse, small silver pendant",
          "signatureGesture": "Палець на порожньому місці альбому; потім долоня на вільному місці поряд.",
          "voice": "Clear affectionate adult female register, question without accusation.",
          "baselineConcern": "Natural age and anatomy; no treatment before/after state.",
          "invariants": [
            "Same face, age, hair, eyes and body in later scenes.",
            "Wardrobe stays locked unless an explicit scene calls for a change.",
            "Expressions, posture and gestures may change; skin is not transformed.",
            "Fictional ensemble character, not a real customer or authority."
          ],
          "prompt": "Use case: photorealistic-natural. Asset type: neutral fictional character passport for a Ukrainian musical campaign ensemble. One person only. Subject: Соломія, age 30; Light brown long wavy hair in a loose half-up style, gray-blue eyes, oval face, average adult build. Wardrobe: Sky-blue open-neck cotton blouse, small silver pendant. Realistic editorial casting photograph, gray studio backdrop, soft neutral daylight, eye level, full head to upper chest, mouth closed, natural skin texture and age, visible neck, centered portrait 1024x1536. Personality through a subtle relaxed expression, not acting a scene. No text, logos, product, props, beauty retouching, age reversal, collage or extra people.",
          "passport": "assets/solomiia-v01.png",
          "roleType": "supporting",
          "fictional": true
        },
        {
          "id": "petro",
          "name": "Петро",
          "age": 60,
          "relationship": "Чоловік Орисі; щиро хвалив її фото й не помічав, що виключає її.",
          "want": "Отримати гарне спільне фото без технічної метушні.",
          "fear": "Зіпсувати кадр, бо не вміє керувати телефоном.",
          "change": "Просить зняти за звичкою, потім вчиться таймеру і сам друкує спільний кадр.",
          "identity": "Short receding silver hair, gray eyes, broad kind face, silver mustache, fuller adult build",
          "wardrobe": "Navy open-collar casual shirt over a white undershirt",
          "signatureGesture": "Спершу передає телефон; потім приймає його й уважно вчиться.",
          "voice": "Gentle low male character register, unhurried warmth; sung quotation by the lead.",
          "baselineConcern": "Natural age and anatomy; no treatment before/after state.",
          "invariants": [
            "Same face, age, hair, eyes and body in later scenes.",
            "Wardrobe stays locked unless an explicit scene calls for a change.",
            "Expressions, posture and gestures may change; skin is not transformed.",
            "Fictional ensemble character, not a real customer or authority."
          ],
          "prompt": "Use case: photorealistic-natural. Asset type: neutral fictional character passport for a Ukrainian musical campaign ensemble. One person only. Subject: Петро, age 60; Short receding silver hair, gray eyes, broad kind face, silver mustache, fuller adult build. Wardrobe: Navy open-collar casual shirt over a white undershirt. Realistic editorial casting photograph, gray studio backdrop, soft neutral daylight, eye level, full head to upper chest, mouth closed, natural skin texture and age, visible neck, centered portrait 1024x1536. Personality through a subtle relaxed expression, not acting a scene. No text, logos, product, props, beauty retouching, age reversal, collage or extra people.",
          "passport": "assets/petro-v01.png",
          "roleType": "supporting",
          "fictional": true
        },
        {
          "id": "halyna",
          "name": "Галина",
          "age": 54,
          "relationship": "Молодша сестра Орисі; приходить на чай, потім на родинне свято.",
          "want": "Допомогти сестрі подбати про себе й увійти в кадр вже зараз.",
          "fear": "Що догляд стане умовою, через яку фото знов відкладуть.",
          "change": "Слухає сором, ділиться власним ритуалом, а у фіналі будує опору для телефона.",
          "identity": "Ash-blonde jaw-length softly waved bob, gray-blue eyes, oval face with full cheeks, average adult build",
          "wardrobe": "Lavender V-neck knit top, silver leaf earrings",
          "signatureGesture": "Підсуває книжку або чашку — маленька практична підтримка.",
          "voice": "Mature soft female mid register, reassuring without becoming a lecturer.",
          "baselineConcern": "Natural age and anatomy; no treatment before/after state.",
          "invariants": [
            "Same face, age, hair, eyes and body in later scenes.",
            "Wardrobe stays locked unless an explicit scene calls for a change.",
            "Expressions, posture and gestures may change; skin is not transformed.",
            "Fictional ensemble character, not a real customer or authority."
          ],
          "prompt": "Use case: photorealistic-natural. Asset type: neutral fictional character passport for a Ukrainian musical campaign ensemble. One person only. Subject: Галина, age 54; Ash-blonde jaw-length softly waved bob, gray-blue eyes, oval face with full cheeks, average adult build. Wardrobe: Lavender V-neck knit top, silver leaf earrings. Realistic editorial casting photograph, gray studio backdrop, soft neutral daylight, eye level, full head to upper chest, mouth closed, natural skin texture and age, visible neck, centered portrait 1024x1536. Personality through a subtle relaxed expression, not acting a scene. No text, logos, product, props, beauty retouching, age reversal, collage or extra people.",
          "passport": "assets/halyna-v01.png",
          "roleType": "supporting",
          "fictional": true
        }
      ],
      "narrative": {
        "premise": "She photographs everyone but keeps stepping out of the frame.",
        "initialQuestion": "Відсутність людини стає відкритим питанням",
        "climax": "Орися біжить, Петро помічає капці, вона просить не обрізати її",
        "payoff": "Прогалину в альбомі закрито",
        "productBoundary": "A small daily care ritual sits inside a larger decision to participate. The cream does not cause family acceptance.",
        "performanceContract": "One continuous approved female lead sings the story and clearly introduced quotations from four characters. Character passports do not promise four independently generated vocal identities.",
        "referenceTransfers": [
          "targ: a concrete encounter opens the wound; a later related encounter tests changed agency.",
          "sisterbrazil / svekr: objection → responsive peer → practical action → social test; adapt dramatic function, not medical claims.",
          "media-922fbf8f0e9c: forward questions and escalating consequences; no requirement for a large cast in that explainer reference."
        ],
        "honestRisk": "Найсильніша причинна ансамблева історія: кожен фізично допомагає кадру. Пісня може стати надто сентиментальною; капці й навчання таймера мають лишити живий гумор.",
        "beats": [
          {
            "id": "b01",
            "trigger": "Донька збирає альбом",
            "action": "Соломія питає, де мама; Орися жартує про скло",
            "consequence": "Відсутність людини стає відкритим питанням",
            "emotion": "подив, захисний гумор",
            "persuasionJob": "емоційний hook",
            "causedBy": [],
            "lines": [
              {
                "number": 1,
                "text": "Мамо, де ти на фото?",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "solomiia"
                ],
                "addressees": [
                  "orysia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 2,
                "text": "Соломія гортає альбом.",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "solomiia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 3,
                "text": "«Тут усі. А тебе не знайшла я».",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "solomiia"
                ],
                "addressees": [
                  "orysia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 4,
                "text": "Я сміюся: «Була за склом».",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "solomiia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ]
          },
          {
            "id": "b02",
            "trigger": "У альбомі немає мами",
            "action": "Донька пояснює подарунок до дня народження",
            "consequence": "Є близький привід виправити прогалину",
            "emotion": "ніжність, смуток",
            "persuasionJob": "ставки і подія попереду",
            "causedBy": [
              "b01"
            ],
            "lines": [
              {
                "number": 5,
                "text": "«Це тобі на день народження,",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "solomiia"
                ],
                "addressees": [
                  "orysia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 6,
                "text": "Хочу наші літа зібрати».",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "solomiia"
                ],
                "addressees": [
                  "orysia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 7,
                "text": "Є і море, і торт, і троянди.",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "solomiia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 8,
                "text": "Де ж ту маму їй відшукати?",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "solomiia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ]
          },
          {
            "id": "b03",
            "trigger": "Орися шукає причину відсутності",
            "action": "Згадує повторювану похвалу Петра й передачу телефона",
            "consequence": "Родинна зручність виявляється співучасницею звички",
            "emotion": "впізнавання",
            "persuasionJob": "причина через взаємодію",
            "causedBy": [
              "b02"
            ],
            "lines": [
              {
                "number": 9,
                "text": "Петро: «Ти найкраще знімаєш».",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "petro"
                ],
                "addressees": [
                  "orysia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 10,
                "text": "Так казав мені кожне свято.",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "petro"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 11,
                "text": "Я брала у руки телефон,",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "petro"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 12,
                "text": "І звикла за ним зникати.",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "petro"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ]
          },
          {
            "id": "b04",
            "trigger": "Легко було б звинуватити лише родину",
            "action": "Орися визнає власне бажання ховатися",
            "consequence": "Стає можливою чесна відповідь",
            "emotion": "сором, сміливість",
            "persuasionJob": "внутрішня мотивація",
            "causedBy": [
              "b03"
            ],
            "lines": [
              {
                "number": 13,
                "text": "«Не тільки тому», — я тихо.",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 14,
                "text": "«Я шию рукою ховаю.",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 15,
                "text": "А потім кажу: ви ставайте.",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 16,
                "text": "Хоч місце між вами я маю».",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ]
          },
          {
            "id": "b05",
            "trigger": "Мама назвала свій страх",
            "action": "Донька згадує її сміх і просить спільний образ",
            "consequence": "Мета змінюється з гарної зовнішності на присутність",
            "emotion": "ніжність, біль",
            "persuasionJob": "потреба близької людини",
            "causedBy": [
              "b04"
            ],
            "lines": [
              {
                "number": 17,
                "text": "Соломія: «Я пам’ятаю",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "solomiia"
                ],
                "addressees": [
                  "orysia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 18,
                "text": "Твій сміх того дня біля моря.",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "solomiia"
                ],
                "addressees": [
                  "orysia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 19,
                "text": "Та хочу не тільки згадати,",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "solomiia"
                ],
                "addressees": [
                  "orysia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 20,
                "text": "А бачити нас із тобою».",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "solomiia"
                ],
                "addressees": [
                  "orysia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ]
          },
          {
            "id": "b06",
            "trigger": "Запрошення вже прозвучало",
            "action": "Орися співає бажаний стан, визнає, що ще ховається",
            "consequence": "Декларація чекає перевірки",
            "emotion": "надія, вагання",
            "persuasionJob": "відкладений payoff",
            "causedBy": [
              "b05"
            ],
            "lines": [
              {
                "number": 21,
                "text": "Я теж у кадрі! Я теж тут є!",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 22,
                "text": "Це моє життя, це обличчя моє.",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 23,
                "text": "Та легко слова ці співати,",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 24,
                "text": "Коли ще ховаюсь за склом.",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ]
          },
          {
            "id": "b07",
            "trigger": "Альбом усе ще закривається",
            "action": "Сестра помічає поведінку й питає",
            "consequence": "Мама називає суботнє фото як майбутній тест",
            "emotion": "увага, тривога",
            "persuasionJob": "друга розмова має причину",
            "causedBy": [
              "b06"
            ],
            "lines": [
              {
                "number": 25,
                "text": "Галина прийшла на чай:",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "halyna"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 26,
                "text": "«Чому ти альбом закриваєш?»",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "halyna"
                ],
                "addressees": [
                  "orysia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 27,
                "text": "«В суботу всі будуть у нас.",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "halyna"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 28,
                "text": "Я знову про фото гадаю».",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "halyna"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ],
            "exchange": [
              "orysia",
              "halyna"
            ]
          },
          {
            "id": "b08",
            "trigger": "Орися говорить про догляд як про запізнення",
            "action": "Галина розділяє щоденну турботу й право бути на фото",
            "consequence": "Знімається хибна умова чекати",
            "emotion": "полегшення",
            "persuasionJob": "чесна межа продукту",
            "causedBy": [
              "b07"
            ],
            "lines": [
              {
                "number": 29,
                "text": "«Хочеться шию доглянуть,",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "halyna"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 30,
                "text": "Та ніби запізно почати».",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "halyna"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 31,
                "text": "«Догляд не має дедлайну.",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "halyna"
                ],
                "addressees": [
                  "orysia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 32,
                "text": "І фото не треба чекати».",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "halyna"
                ],
                "addressees": [
                  "orysia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ],
            "exchange": [
              "orysia",
              "halyna"
            ]
          },
          {
            "id": "b09",
            "trigger": "Тепер можна говорити про сам догляд",
            "action": "Орися питає сестру, що та використовує",
            "consequence": "Крем входить через особисте питання і склад",
            "emotion": "цікавість",
            "persuasionJob": "мотивований продукт",
            "causedBy": [
              "b08"
            ],
            "lines": [
              {
                "number": 33,
                "text": "«А що ти береш для шиї?»",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "halyna"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 34,
                "text": "«Гоу п’юр. Ось мій крем, подивись.",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "halyna"
                ],
                "addressees": [
                  "orysia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 35,
                "text": "Є у складі гіалурон,",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "halyna"
                ],
                "addressees": [
                  "orysia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 36,
                "text": "Для зволоження шкіри щодня».",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "halyna"
                ],
                "addressees": [
                  "orysia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ],
            "exchange": [
              "orysia",
              "halyna"
            ]
          },
          {
            "id": "b10",
            "trigger": "Догляд став власним вибором",
            "action": "Замовлення, огляд, оплата, поличка",
            "consequence": "Героїня має конкретний засіб для ритуалу",
            "emotion": "спокійний контроль",
            "persuasionJob": "покупка без пропущених кроків",
            "causedBy": [
              "b09"
            ],
            "lines": [
              {
                "number": 37,
                "text": "Я номер лишила у формі,",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 38,
                "text": "На пошті пакунок відкрила.",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 39,
                "text": "Оглянула крем, оплатила,",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 40,
                "text": "На поличку удома поставила.",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ]
          },
          {
            "id": "b11",
            "trigger": "Крем на поличці",
            "action": "Орися наносить тонкий шар догори",
            "consequence": "Ритуал турботи існує без нового обличчя",
            "emotion": "затишок",
            "persuasionJob": "використання без надобіцянки",
            "causedBy": [
              "b10"
            ],
            "lines": [
              {
                "number": 41,
                "text": "На чисту шию — тонкий шар,",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 42,
                "text": "Легенько рухаюсь догори.",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 43,
                "text": "Доглядаю себе щодня,",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 44,
                "text": "Не шукаю нового обличчя.",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ]
          },
          {
            "id": "b12",
            "trigger": "Вона дозволяє собі маленький догляд",
            "action": "Знайомий приспів зв’язує турботу із самостійним рішенням",
            "consequence": "Готується до суботи",
            "emotion": "зростання впевненості",
            "persuasionJob": "музична опора",
            "causedBy": [
              "b11"
            ],
            "lines": [
              {
                "number": 45,
                "text": "Я теж у кадрі! Я теж тут є!",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 46,
                "text": "Це моє життя, це обличчя моє.",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 47,
                "text": "Гоу п’юр — мій крем для шиї,",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 48,
                "text": "А в кадр я стаю, бо сама так хотіла.",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ]
          },
          {
            "id": "b13",
            "trigger": "Настала субота",
            "action": "Петро знову просить зняти всіх",
            "consequence": "Стара звичка повернулася попри новий намір",
            "emotion": "напруга",
            "persuasionJob": "повторення початкової ситуації",
            "causedBy": [
              "b12"
            ],
            "lines": [
              {
                "number": 49,
                "text": "Субота. Петро за звичкою:",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "petro"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 50,
                "text": "«Зніми нас, поки всі поруч».",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "petro"
                ],
                "addressees": [
                  "orysia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 51,
                "text": "Я вже простягнула руку,",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "petro"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 52,
                "text": "Та глянула на Соломію.",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "petro"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ],
            "exchange": [
              "orysia",
              "petro"
            ]
          },
          {
            "id": "b14",
            "trigger": "Рука вже тягнеться до телефона",
            "action": "Орися просить Петра зняти; на його невміння пропонує навчити",
            "consequence": "Чоловік приймає відповідальність замість відмовки",
            "emotion": "твердість, співпраця",
            "persuasionJob": "головна зміна через репліку-відповідь",
            "causedBy": [
              "b13"
            ],
            "lines": [
              {
                "number": 53,
                "text": "«Петре, сьогодні зніми ти.",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "petro"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 54,
                "text": "Я хочу стояти між вами».",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "petro"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 55,
                "text": "«Не вмію». — «Давай навчу».",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "petro",
                  "orysia"
                ],
                "addressees": [
                  "petro"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 56,
                "text": "І ми розбираємось разом.",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "petro"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ],
            "exchange": [
              "orysia",
              "petro"
            ]
          },
          {
            "id": "b15",
            "trigger": "Телефон треба поставити й лишити місце",
            "action": "Галина дає книжку, донька кличе маму поряд",
            "consequence": "Кожна союзниця фізично допомагає результату",
            "emotion": "очікування, гра",
            "persuasionJob": "ансамбль діє разом",
            "causedBy": [
              "b14"
            ],
            "lines": [
              {
                "number": 57,
                "text": "Галина підсунула книжку:",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "solomiia",
                  "halyna"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 58,
                "text": "«На неї постав телефон».",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "halyna"
                ],
                "addressees": [
                  "orysia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 59,
                "text": "Соломія звільнила місце:",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "solomiia",
                  "halyna"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 60,
                "text": "«Мамо, до мене! Бігом!»",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "solomiia"
                ],
                "addressees": [
                  "orysia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ],
            "exchange": [
              "orysia",
              "halyna"
            ]
          },
          {
            "id": "b16",
            "trigger": "Таймер уже працює",
            "action": "Орися біжить, Петро помічає капці, вона просить не обрізати її",
            "consequence": "Кадр приймають разом із недосконалістю",
            "emotion": "метушня, сміх",
            "persuasionJob": "кульмінація з колбеком зникнення",
            "causedBy": [
              "b15"
            ],
            "lines": [
              {
                "number": 61,
                "text": "Таймер біжить. Я теж біжу!",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "petro"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 62,
                "text": "«Ой, капці!» — сміється Петро.",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "petro"
                ],
                "addressees": [
                  "orysia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 63,
                "text": "«То що? Не обрізуй мене».",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "petro"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 64,
                "text": "Клац! І нас четверо.",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "petro"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ],
            "exchange": [
              "orysia",
              "petro"
            ],
            "recalls": "b01"
          },
          {
            "id": "b17",
            "trigger": "Спільний кадр збережено",
            "action": "Петро друкує його і називає цінність її сміху",
            "consequence": "Його початкова похвала фотографині стає вдячністю учасниці",
            "emotion": "тепло",
            "persuasionJob": "зароблена зміна стосунку",
            "causedBy": [
              "b16"
            ],
            "lines": [
              {
                "number": 65,
                "text": "Петро роздрукував цей кадр,",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "petro"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 66,
                "text": "Поставив на кухні в рамку.",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "petro"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 67,
                "text": "«Цей сміх не зняв би я без тебе».",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "petro"
                ],
                "addressees": [
                  "orysia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 68,
                "text": "Я впізнаю себе. До крапки.",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "petro"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ],
            "recalls": "b01"
          },
          {
            "id": "b18",
            "trigger": "Фото вже стоїть на кухні",
            "action": "Питання доньки отримує пряму відповідь мами",
            "consequence": "Прогалину в альбомі закрито",
            "emotion": "радість, близькість",
            "persuasionJob": "фінальний payoff",
            "causedBy": [
              "b17"
            ],
            "lines": [
              {
                "number": 69,
                "text": "Я теж у кадрі! Я теж тут є!",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "solomiia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 70,
                "text": "Це моє життя, це обличчя моє.",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "solomiia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 71,
                "text": "«Мамо, де ти?» — «Ось я, доню!",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "solomiia",
                  "orysia"
                ],
                "addressees": [
                  "solomiia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 72,
                "text": "В капцях. І разом з усіма!»",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "solomiia"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ],
            "exchange": [
              "orysia",
              "solomiia"
            ],
            "recalls": "b01"
          },
          {
            "id": "b19",
            "trigger": "Історія присутності завершена",
            "action": "Героїня називає догляд і порядок замовлення",
            "consequence": "Глядачеві лишено конкретну дію",
            "emotion": "дружня впевненість",
            "persuasionJob": "CTA",
            "causedBy": [
              "b18"
            ],
            "lines": [
              {
                "number": 73,
                "text": "Гоу п’юр — щоденний догляд для шиї.",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 74,
                "text": "Залиш номер у формі замовлення.",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 75,
                "text": "На пошті оглянь, а тоді оплати.",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 76,
                "text": "І місце на фото собі залиши.",
                "sungBy": "orysia",
                "dramaticSpeakers": [
                  "orysia"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ]
          }
        ]
      }
    },
    {
      "id": "no-fairy-tales",
      "title": "Баночко, тільки без казок",
      "buyerMotive": "Make an informed low-pressure purchase",
      "tension": "A skeptical buyer has had enough of miracle promises.",
      "hook": "Баночко, тільки без казок!",
      "payoff": "Героїня лишається собою після покупки",
      "productRole": "An inspectable product with an understandable routine and transparent order process.",
      "claimIds": [
        "hydration",
        "ingredients",
        "ritual",
        "payment"
      ],
      "character": {
        "id": "iryna",
        "name": "Ірина",
        "age": 49,
        "identity": "Straight dark sharply cut short bob with a broad silver forelock, brown eyes, angular face, strong eyebrows, slim average adult build.",
        "wardrobe": "Plum tailored jacket over lemon-yellow open-neck blouse, dark rectangular glasses.",
        "voice": "Dry witty female contralto, clean rhythmic questions, punchy melodic call-and-answer.",
        "baselineConcern": "Fine neck folds and mild dry texture, face/neck anatomy stable; skepticism changes into an informed choice.",
        "prompt": "Neutral editorial cinematic-realism portrait; age 49, sharp short dark bob with a broad silver forelock, brown eyes, angular face, dark rectangular glasses, plum jacket and lemon-yellow open-neck blouse. Full head through chest, gray studio, mouth closed, natural exposed neck texture. No doctor or authority costume.",
        "invariants": [
          "Same face, hair, eye color, age and adult body in all future media.",
          "Neck anatomy and natural aging preserved; no instant wrinkle removal.",
          "Wardrobe/accessories match the neutral master unless a later scene explicitly changes clothing.",
          "Fictional character; never present as a real customer or clinical evidence."
        ],
        "passport": "assets/iryna-v01.png",
        "states": {
          "baseline": "Neutral identity master with natural neck texture.",
          "allowedChanges": [
            "Expression",
            "Gesture",
            "Posture",
            "Chosen wardrobe in an explicit scene"
          ],
          "notGenerated": [
            "Treatment before/after",
            "Video",
            "Lip sync"
          ]
        },
        "roleType": "lead",
        "relationship": "Центральна героїня й основна оповідачка.",
        "want": "Придбати зрозумілий щоденний догляд на перевірених умовах.",
        "fear": "Бути ошуканою або поступитися власним рішенням.",
        "change": "Зберігає скепсис, але замінює сварку конкретними питаннями й перевіркою.",
        "signatureGesture": "Закриває рекламу; потім перевіряє й ставить власну галочку.",
        "fictional": true
      },
      "song": {
        "mode": "cover",
        "style": "Witty rhythmic country-soul pop with a lightly swung groove, 103 bpm, E major. Mature low female contralto, sharply articulated melodic questions, muted plucked guitar, punchy piano, warm electric bass, dry snare, short brass answers; lifted hook refrain and vocal-only beat before the payment answer. Sung entirely in Ukrainian with native stress and crisp consonants. First audible event is the first sung word at 0.00; absolutely no instrumental intro, breathy ooh, pickup, spoken intro or count-in. Hook melody immediately. Preserve EVERY written lyric and complete the final call to action. Expanded complete narrative. Preserve the seed groove, lead vocal timbre and chorus melody. One lead sings all narrative and quoted dialogue; vary expression, never spoken narration. No rap.",
        "duration": 270,
        "vocalGender": "f",
        "lyrics": "lyrics/no-fairy-tales.txt",
        "musicalLane": "Country-soul / 103 BPM target",
        "syllables": 687,
        "firstAudibleEvent": "First sung hook word; crop any generated instrumental pickup after actual-audio inspection.",
        "negativeTags": "instrumental intro, spoken intro, wordless intro, count-in, English lyrics, mumbling, long instrumental outro, rap",
        "seed": "media/no-fairy-tales-approved.mp3",
        "audioWeight": 0.9,
        "approvedStyleSource": "../gopure-angles/jobs/no-fairy-tales-v01/spec.json",
        "performanceContract": "One continuous approved female lead sings the story and clearly introduced quotations from four characters. Character passports do not promise four independently generated vocal identities."
      },
      "firstThreeSeconds": [
        {
          "time": "0.00–0.80",
          "action": "First sung word; Iryna slides a glittery «диво» card out of frame."
        },
        {
          "time": "0.80–1.80",
          "action": "Friend’s message arrives; Iryna’s finger closes the glittery advert."
        },
        {
          "time": "1.80–3.00",
          "action": "Reverse angle: the friend looks hurt, opening a relational question."
        }
      ],
      "referenceReason": "Reinterpret svekr’s measured 103 BPM E-major song seed with dry skeptical delivery and a new label-reading plot. Do not borrow its family humiliation or supplement mechanism.",
      "testHypothesis": "Does an assertive skeptic and inspect-before-paying CTA create more trust than emotional storytelling?",
      "status": "expanded-narrative-written",
      "ownerDecision": "expanded narrative awaiting validation; original music approved",
      "fictional": true,
      "cast": [
        {
          "id": "iryna",
          "name": "Ірина",
          "age": 49,
          "identity": "Straight dark sharply cut short bob with a broad silver forelock, brown eyes, angular face, strong eyebrows, slim average adult build.",
          "wardrobe": "Plum tailored jacket over lemon-yellow open-neck blouse, dark rectangular glasses.",
          "voice": "Dry witty female contralto, clean rhythmic questions, punchy melodic call-and-answer.",
          "baselineConcern": "Fine neck folds and mild dry texture, face/neck anatomy stable; skepticism changes into an informed choice.",
          "prompt": "Neutral editorial cinematic-realism portrait; age 49, sharp short dark bob with a broad silver forelock, brown eyes, angular face, dark rectangular glasses, plum jacket and lemon-yellow open-neck blouse. Full head through chest, gray studio, mouth closed, natural exposed neck texture. No doctor or authority costume.",
          "invariants": [
            "Same face, hair, eye color, age and adult body in all future media.",
            "Neck anatomy and natural aging preserved; no instant wrinkle removal.",
            "Wardrobe/accessories match the neutral master unless a later scene explicitly changes clothing.",
            "Fictional character; never present as a real customer or clinical evidence."
          ],
          "passport": "assets/iryna-v01.png",
          "states": {
            "baseline": "Neutral identity master with natural neck texture.",
            "allowedChanges": [
              "Expression",
              "Gesture",
              "Posture",
              "Chosen wardrobe in an explicit scene"
            ],
            "notGenerated": [
              "Treatment before/after",
              "Video",
              "Lip sync"
            ]
          },
          "roleType": "lead",
          "relationship": "Центральна героїня й основна оповідачка.",
          "want": "Придбати зрозумілий щоденний догляд на перевірених умовах.",
          "fear": "Бути ошуканою або поступитися власним рішенням.",
          "change": "Зберігає скепсис, але замінює сварку конкретними питаннями й перевіркою.",
          "signatureGesture": "Закриває рекламу; потім перевіряє й ставить власну галочку.",
          "fictional": true
        },
        {
          "id": "oksana",
          "name": "Оксана",
          "age": 48,
          "relationship": "Подруга Ірини; пересилає рекламу, бо пам’ятає її скаргу на сухість.",
          "want": "Допомогти, не втратити контакт через суперечку.",
          "fear": "Що її добрий намір висміють і відкинуть.",
          "change": "Визнає незнання, переходить від пересилання гасел до спільного читання, просить список питань.",
          "identity": "Chestnut shoulder-length curls, brown eyes, rounded face, natural freckles, curvy adult build",
          "wardrobe": "Coral open-neck blouse, small turquoise earrings",
          "signatureGesture": "Розвертає телефон від себе до середини столу: дивімося разом.",
          "voice": "Animated friendly female register, slows down when reading actual conditions.",
          "baselineConcern": "Natural age and anatomy; no treatment before/after state.",
          "invariants": [
            "Same face, age, hair, eyes and body in later scenes.",
            "Wardrobe stays locked unless an explicit scene calls for a change.",
            "Expressions, posture and gestures may change; skin is not transformed.",
            "Fictional ensemble character, not a real customer or authority."
          ],
          "prompt": "Use case: photorealistic-natural. Asset type: neutral fictional character passport for a Ukrainian musical campaign ensemble. One person only. Subject: Оксана, age 48; Chestnut shoulder-length curls, brown eyes, rounded face, natural freckles, curvy adult build. Wardrobe: Coral open-neck blouse, small turquoise earrings. Realistic editorial casting photograph, gray studio backdrop, soft neutral daylight, eye level, full head to upper chest, mouth closed, natural skin texture and age, visible neck, centered portrait 1024x1536. Personality through a subtle relaxed expression, not acting a scene. No text, logos, product, props, beauty retouching, age reversal, collage or extra people.",
          "passport": "assets/oksana-v01.png",
          "roleType": "supporting",
          "fictional": true
        },
        {
          "id": "maksym",
          "name": "Максим",
          "age": 25,
          "relationship": "Дорослий син Ірини; допомагає організувати питання, не обирає замість неї.",
          "want": "Зробити мамине рішення зрозумілим і спокійним.",
          "fear": "Що вона сприйме допомогу як зверхність або тиск.",
          "change": "Від провокаційного питання до чіткого визнання її права вирішувати.",
          "identity": "Dark brown short textured hair, brown eyes, angular face and strong brows, clean-shaven, slim adult build",
          "wardrobe": "Sage green cotton overshirt over cream crew-neck tee",
          "signatureGesture": "Кладе ручку на стіл після списку й дає їй вирішувати.",
          "voice": "Relaxed young adult male register, curious not condescending; quoted in song.",
          "baselineConcern": "Natural age and anatomy; no treatment before/after state.",
          "invariants": [
            "Same face, age, hair, eyes and body in later scenes.",
            "Wardrobe stays locked unless an explicit scene calls for a change.",
            "Expressions, posture and gestures may change; skin is not transformed.",
            "Fictional ensemble character, not a real customer or authority."
          ],
          "prompt": "Use case: photorealistic-natural. Asset type: neutral fictional character passport for a Ukrainian musical campaign ensemble. One person only. Subject: Максим, age 25; Dark brown short textured hair, brown eyes, angular face and strong brows, clean-shaven, slim adult build. Wardrobe: Sage green cotton overshirt over cream crew-neck tee. Realistic editorial casting photograph, gray studio backdrop, soft neutral daylight, eye level, full head to upper chest, mouth closed, natural skin texture and age, visible neck, centered portrait 1024x1536. Personality through a subtle relaxed expression, not acting a scene. No text, logos, product, props, beauty retouching, age reversal, collage or extra people.",
          "passport": "assets/maksym-v01.png",
          "roleType": "supporting",
          "fictional": true
        },
        {
          "id": "bohdana",
          "name": "Богдана",
          "age": 39,
          "relationship": "Працівниця поштового відділення в умовній сцені отримання замовлення.",
          "want": "Провести видачу пакунка з оглядом перед оплатою.",
          "fear": "Що клієнтка не зрозуміє порядок дій.",
          "change": "Перетворює прочитану умову на конкретну дію: подає коробку для огляду.",
          "identity": "Dark chestnut hair in a low neat bun, hazel eyes, narrow oval face, average adult build",
          "wardrobe": "Slate-blue plain open-collar work blouse, no company logo or badge",
          "signatureGesture": "Підсуває закриту коробку для огляду, чекає рішення покупчині.",
          "voice": "Calm matter-of-fact female register; no sales pitch and no efficacy claims.",
          "baselineConcern": "Natural age and anatomy; no treatment before/after state.",
          "invariants": [
            "Same face, age, hair, eyes and body in later scenes.",
            "Wardrobe stays locked unless an explicit scene calls for a change.",
            "Expressions, posture and gestures may change; skin is not transformed.",
            "Fictional ensemble character, not a real customer or authority."
          ],
          "prompt": "Use case: photorealistic-natural. Asset type: neutral fictional character passport for a Ukrainian musical campaign ensemble. One person only. Subject: Богдана, age 39; Dark chestnut hair in a low neat bun, hazel eyes, narrow oval face, average adult build. Wardrobe: Slate-blue plain open-collar work blouse, no company logo or badge. Realistic editorial casting photograph, gray studio backdrop, soft neutral daylight, eye level, full head to upper chest, mouth closed, natural skin texture and age, visible neck, centered portrait 1024x1536. Personality through a subtle relaxed expression, not acting a scene. No text, logos, product, props, beauty retouching, age reversal, collage or extra people.",
          "passport": "assets/bohdana-v01.png",
          "roleType": "supporting",
          "fictional": true
        }
      ],
      "narrative": {
        "premise": "A skeptical buyer has had enough of miracle promises.",
        "initialQuestion": "Виникає конфлікт між добрим наміром і недовірою",
        "climax": "Ірина прямо питає про огляд; Богдана подає коробку",
        "payoff": "Героїня лишається собою після покупки",
        "productBoundary": "An inspectable product with an understandable routine and transparent order process.",
        "performanceContract": "One continuous approved female lead sings the story and clearly introduced quotations from four characters. Character passports do not promise four independently generated vocal identities.",
        "referenceTransfers": [
          "targ: a concrete encounter opens the wound; a later related encounter tests changed agency.",
          "sisterbrazil / svekr: objection → responsive peer → practical action → social test; adapt dramatic function, not medical claims.",
          "media-922fbf8f0e9c: forward questions and escalating consequences; no requirement for a large cast in that explainer reference."
        ],
        "honestRisk": "Найкраще показує перевірку покупки, але найбільший ризик відчуття переліку. У поштарки коротка службова роль; не видавати її за рекомендацію чи окрему емоційну арку.",
        "beats": [
          {
            "id": "b01",
            "trigger": "Оксана пересилає рекламу",
            "action": "Ірина співає претензію баночці й закриває програму",
            "consequence": "Виникає конфлікт між добрим наміром і недовірою",
            "emotion": "сміх, роздратування",
            "persuasionJob": "hook через активний спротив",
            "causedBy": [],
            "lines": [
              {
                "number": 1,
                "text": "Баночко, тільки без казок!",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 2,
                "text": "Оксана шле мені рекламу.",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 3,
                "text": "Я бачу блиск, читаю: «Диво!»",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 4,
                "text": "І закриваю ту програму.",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ]
          },
          {
            "id": "b02",
            "trigger": "Рекламу відкинуто",
            "action": "Оксана пояснює, що пам’ятає сухість; Ірина уточнює потребу",
            "consequence": "Обидві мають зрозумілі мотиви",
            "emotion": "образа, ясність",
            "persuasionJob": "показати заперечення без карикатури",
            "causedBy": [
              "b01"
            ],
            "lines": [
              {
                "number": 5,
                "text": "Вона: «Та я ж хотіла краще.",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "oksana"
                ],
                "addressees": [
                  "iryna"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 6,
                "text": "Ти ж казала: шия сохне».",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "oksana"
                ],
                "addressees": [
                  "iryna"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 7,
                "text": "«Я хочу догляд, не машину,",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "oksana"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 8,
                "text": "Що повертає мені роки».",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "oksana"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ]
          },
          {
            "id": "b03",
            "trigger": "Суперечка зайшла в глухий кут",
            "action": "Максим пропонує поставити питання замість відмови від усього",
            "consequence": "З’являється новий спосіб розмови",
            "emotion": "роздратування, цікавість",
            "persuasionJob": "союзник змінює метод",
            "causedBy": [
              "b02"
            ],
            "lines": [
              {
                "number": 9,
                "text": "Максим: «То що тебе спиняє?»",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "maksym"
                ],
                "addressees": [
                  "iryna"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 10,
                "text": "«Що все обіцяють одразу».",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "maksym"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 11,
                "text": "«А ти питання їм постав.",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "maksym"
                ],
                "addressees": [
                  "iryna"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 12,
                "text": "Відповідь — краща за образу».",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "maksym"
                ],
                "addressees": [
                  "iryna"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ]
          },
          {
            "id": "b04",
            "trigger": "Є пропозиція читати по суті",
            "action": "Оксана визнає незнання й кладе телефон посередині",
            "consequence": "Вони перестають бути продавцем і захисником",
            "emotion": "чесність, контакт",
            "persuasionJob": "відновлення довіри",
            "causedBy": [
              "b03"
            ],
            "lines": [
              {
                "number": 13,
                "text": "Оксана: «Добре. Без реклами.",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "oksana"
                ],
                "addressees": [
                  "iryna"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 14,
                "text": "Я теж не знаю всіх відповідей».",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "oksana"
                ],
                "addressees": [
                  "iryna"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 15,
                "text": "Кладе телефон між нами:",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "oksana"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 16,
                "text": "«Давай прочитаємо разом».",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "oksana"
                ],
                "addressees": [
                  "iryna"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ],
            "exchange": [
              "iryna",
              "oksana"
            ]
          },
          {
            "id": "b05",
            "trigger": "Спільний перегляд став можливим",
            "action": "Ірина формулює три питання",
            "consequence": "У пісні з’являється рахунок незакритих відповідей",
            "emotion": "азарт",
            "persuasionJob": "відкриті петлі уваги",
            "causedBy": [
              "b04"
            ],
            "lines": [
              {
                "number": 17,
                "text": "Менше казок — більше догляду!",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 18,
                "text": "Не обіцянка, а звичка щодня.",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 19,
                "text": "Та як відрізнити слова від діла?",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 20,
                "text": "Три запитання поставлю я.",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ]
          },
          {
            "id": "b06",
            "trigger": "Перше питання стосується призначення",
            "action": "Подруги називають крем для шиї і зволоження",
            "consequence": "Ірина вперше лишає сторінку відкритою",
            "emotion": "обережна цікавість",
            "persuasionJob": "зрозумілий продукт",
            "causedBy": [
              "b05"
            ],
            "lines": [
              {
                "number": 21,
                "text": "«Що це?» — «Гоу п’юр, крем для шиї».",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna",
                  "oksana"
                ],
                "addressees": [
                  "oksana"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 22,
                "text": "«Навіщо?» — «Для зволоження».",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna",
                  "oksana"
                ],
                "addressees": [
                  "oksana"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 23,
                "text": "«Не стиратиме роки?» — «Не має».",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna",
                  "oksana"
                ],
                "addressees": [
                  "oksana"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 24,
                "text": "Я вперше не закрила сторінку.",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "oksana"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ],
            "exchange": [
              "iryna",
              "oksana"
            ]
          },
          {
            "id": "b07",
            "trigger": "Склад прочитаний, але це ще слова",
            "action": "Ірина просить показати; Оксана збільшує фото",
            "consequence": "Назви інгредієнтів прив’язані до перевірки",
            "emotion": "скепсис, контроль",
            "persuasionJob": "причина довіряти через дію",
            "causedBy": [
              "b06"
            ],
            "lines": [
              {
                "number": 25,
                "text": "«Купуасу й гіалурон,",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "oksana"
                ],
                "addressees": [
                  "iryna"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 26,
                "text": "Кофеїн, оливковий комплекс».",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "oksana"
                ],
                "addressees": [
                  "iryna"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 27,
                "text": "«Красиві слова. Де це видно?»",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "oksana"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 28,
                "text": "Оксана збільшує склад на фото.",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "oksana"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ],
            "exchange": [
              "iryna",
              "oksana"
            ]
          },
          {
            "id": "b08",
            "trigger": "Питання накопичуються",
            "action": "Максим записує список і віддає право рішення мамі",
            "consequence": "Допомога не стає новим тиском",
            "emotion": "настороженість, повага",
            "persuasionJob": "власність рішення",
            "causedBy": [
              "b07"
            ],
            "lines": [
              {
                "number": 29,
                "text": "Максим на папері пише:",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "maksym"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 30,
                "text": "«Склад. Догляд. Оплата».",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "maksym"
                ],
                "addressees": [
                  "iryna"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 31,
                "text": "Я: «Ти уже все вирішив?»",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "maksym"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 32,
                "text": "«Ні, мамо. Це твоє обирати».",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "maksym"
                ],
                "addressees": [
                  "iryna"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ],
            "exchange": [
              "iryna",
              "maksym"
            ]
          },
          {
            "id": "b09",
            "trigger": "Наступний пункт — використання",
            "action": "Оксана читає тонкий шар і рухи догори; Ірина підтверджує зрозумілість",
            "consequence": "Другий бар’єр знято відповіддю",
            "emotion": "ясність",
            "persuasionJob": "практична простота",
            "causedBy": [
              "b08"
            ],
            "lines": [
              {
                "number": 33,
                "text": "«І що робити щодня?»",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "oksana"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 34,
                "text": "«На чисту шию — тонкий шар,",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "oksana"
                ],
                "addressees": [
                  "iryna"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 35,
                "text": "Легенькі рухи догори».",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "oksana"
                ],
                "addressees": [
                  "iryna"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 36,
                "text": "Я: «Оце зрозумілий план».",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "oksana"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ],
            "exchange": [
              "iryna",
              "oksana"
            ]
          },
          {
            "id": "b10",
            "trigger": "Два питання вже отримали відповіді",
            "action": "Знайомий приспів підсумовує критерії",
            "consequence": "Третій пункт поки відкритий",
            "emotion": "підйом",
            "persuasionJob": "музична пам’ять і незавершене питання",
            "causedBy": [
              "b09"
            ],
            "lines": [
              {
                "number": 37,
                "text": "Менше казок — більше догляду!",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 38,
                "text": "Не обіцянка, а звичка щодня.",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 39,
                "text": "Гоу п’юр — для зволоження шкіри.",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 40,
                "text": "А рішення тут ухвалюю я!",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ]
          },
          {
            "id": "b11",
            "trigger": "Залишилося питання грошей",
            "action": "Оксана читає огляд перед оплатою; Ірина вирішує перевірити",
            "consequence": "Виникає обіцянка майбутньої сцени на пошті",
            "emotion": "обережність",
            "persuasionJob": "зняття покупкиного бар’єра з тестом",
            "causedBy": [
              "b10"
            ],
            "lines": [
              {
                "number": 41,
                "text": "«А платити коли?» — питаю.",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "oksana"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 42,
                "text": "Оксана читає повільно:",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "oksana"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 43,
                "text": "«Огляд на пошті, потім оплата».",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "oksana"
                ],
                "addressees": [
                  "iryna"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 44,
                "text": "«Добре. Я перевірю на місці».",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "oksana"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ],
            "exchange": [
              "iryna",
              "oksana"
            ]
          },
          {
            "id": "b12",
            "trigger": "Вона знає, що перевірятиме",
            "action": "Лишає номер; пояснює сину, що не відмовилась від запитань",
            "consequence": "Рішення лишається її власним",
            "emotion": "спокій",
            "persuasionJob": "перехід від слів до зобов’язання",
            "causedBy": [
              "b11"
            ],
            "lines": [
              {
                "number": 45,
                "text": "Лишаю свій номер у формі.",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "maksym"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 46,
                "text": "Максим: «Ну що, переконали?»",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "maksym"
                ],
                "addressees": [
                  "iryna"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 47,
                "text": "«Я досі люблю запитання.",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "maksym"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 48,
                "text": "Тепер хоч знаю, що шукати».",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "maksym"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ],
            "exchange": [
              "iryna",
              "maksym"
            ]
          },
          {
            "id": "b13",
            "trigger": "Пакунок прибув",
            "action": "Ірина прямо питає про огляд; Богдана подає коробку",
            "consequence": "Прочитана умова проходить практичну перевірку",
            "emotion": "напруга, полегшення",
            "persuasionJob": "кульмінація довіри",
            "causedBy": [
              "b12"
            ],
            "lines": [
              {
                "number": 49,
                "text": "На пошті Богдана: «Ваш пакунок».",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "bohdana"
                ],
                "addressees": [
                  "iryna"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 50,
                "text": "Я: «Спершу можу оглянути?»",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "bohdana"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 51,
                "text": "Вона підсуває коробку:",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "bohdana"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 52,
                "text": "«Так, ось. Перевірте, будь ласка».",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "bohdana"
                ],
                "addressees": [
                  "iryna"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ],
            "exchange": [
              "iryna",
              "bohdana"
            ]
          },
          {
            "id": "b14",
            "trigger": "Коробку можна оглянути",
            "action": "Ірина звіряє назву, склад і цілісність, потім платить",
            "consequence": "Третя галочка earned конкретною дією",
            "emotion": "задоволення",
            "persuasionJob": "закриття списку",
            "causedBy": [
              "b13"
            ],
            "lines": [
              {
                "number": 53,
                "text": "Звіряю назву, читаю склад,",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 54,
                "text": "Дивлюсь, чи ціла баночка.",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 55,
                "text": "«Тепер оплачую. Дякую».",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 56,
                "text": "І ставлю третю галочку.",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ]
          },
          {
            "id": "b15",
            "trigger": "Крем удома",
            "action": "Вона починає ритуал і лишає нагадування на завтра",
            "consequence": "Покупка не підміняє регулярний догляд",
            "emotion": "спокій",
            "persuasionJob": "використання після замовлення",
            "causedBy": [
              "b14"
            ],
            "lines": [
              {
                "number": 57,
                "text": "Вдома наношу тонкий шар,",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 58,
                "text": "Легенько рухаюсь догори.",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 59,
                "text": "Папір лишаю біля дзеркала:",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 60,
                "text": "«Догляд — це завтра також».",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ]
          },
          {
            "id": "b16",
            "trigger": "Оксана питає про диво",
            "action": "Ірина жартує, що дочитала до кінця; подруга припиняє чарівні гасла",
            "consequence": "Початкова суперечка отримує теплий ремонт",
            "emotion": "сміх, примирення",
            "persuasionJob": "колбек слова диво",
            "causedBy": [
              "b15"
            ],
            "lines": [
              {
                "number": 61,
                "text": "Оксана: «Ну що? Диво сталось?»",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "oksana"
                ],
                "addressees": [
                  "iryna"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 62,
                "text": "«Так! Я дочитала до кінця!»",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "oksana"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 63,
                "text": "Ми сміємось. Вона: «Зрозуміла.",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "oksana"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 64,
                "text": "Більше не шлю тобі чарів».",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "oksana"
                ],
                "addressees": [
                  "iryna"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ],
            "exchange": [
              "iryna",
              "oksana"
            ],
            "recalls": "b01"
          },
          {
            "id": "b17",
            "trigger": "Син перевіряє, чи скепсис зник",
            "action": "Ірина зберігає питання; Оксана просить список",
            "consequence": "Метод стає спільним, характер не стирається",
            "emotion": "повага, дружба",
            "persuasionJob": "поведінковий payoff",
            "causedBy": [
              "b16"
            ],
            "lines": [
              {
                "number": 65,
                "text": "Максим: «То більше не питаєш?»",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "maksym"
                ],
                "addressees": [
                  "iryna"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 66,
                "text": "«Питаю. Просто не сердито».",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "oksana",
                  "maksym"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 67,
                "text": "Оксана: «Мені той список скинеш?»",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "oksana"
                ],
                "addressees": [
                  "iryna"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 68,
                "text": "«Тримай. Тут місце ще лишилось».",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "oksana",
                  "maksym"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ],
            "recalls": "b01"
          },
          {
            "id": "b18",
            "trigger": "Усі три питання перевірені",
            "action": "Фінальний приспів підтверджує право вибору",
            "consequence": "Героїня лишається собою після покупки",
            "emotion": "впевненість",
            "persuasionJob": "емоційне закриття",
            "causedBy": [
              "b17"
            ],
            "lines": [
              {
                "number": 69,
                "text": "Менше казок — більше догляду!",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 70,
                "text": "Не обіцянка, а звичка щодня.",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 71,
                "text": "Гоу п’юр — для зволоження шкіри.",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 72,
                "text": "А рішення тут ухвалюю я!",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ],
            "recalls": "b01"
          },
          {
            "id": "b19",
            "trigger": "Метод вибору показано",
            "action": "Запрошення прочитати склад, лишити номер, оглянути і сплатити",
            "consequence": "У глядача є послідовність дій",
            "emotion": "легкість",
            "persuasionJob": "CTA",
            "causedBy": [
              "b18"
            ],
            "lines": [
              {
                "number": 73,
                "text": "Хочеш так само? Склад прочитай.",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 74,
                "text": "Свій номер у формі замовлення залишай.",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 75,
                "text": "На пошті оглянь, а тоді оплати.",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              },
              {
                "number": 76,
                "text": "Баночко, будемо на ти!",
                "sungBy": "iryna",
                "dramaticSpeakers": [
                  "iryna"
                ],
                "addressees": [
                  "audience"
                ],
                "delivery": "Fully sung narration or quotation; preserve the approved lead timbre."
              }
            ]
          }
        ]
      }
    }
  ],
  "narrativeContract": "adfactory.sung-campaign/v1",
  "ownerFeedback": {
    "receivedAt": "2026-09-10T04:10:48Z",
    "music": "All four original musical styles explicitly approved by owner.",
    "correction": "Expand to complete interacting ensemble narratives, explain reference structure and honestly self-verify all four.",
    "opening": "Sung hook words first; no instrumental-only intro.",
    "videoGeneration": false
  },
  "sourceCampaignSha256": "978f5934ac5816e84b6adafae75a53b274c2d4941c8c5cae08ded42ba87e1086"
}