{
  "projectName": "Степь · Netflix Prestige",
  "cards": [
    {
      "id": "c-l-5n1b",
      "type": "lyrics",
      "x": 60,
      "y": 60,
      "w": 320,
      "h": 360,
      "rotation": -0.5,
      "color": "paper",
      "shape": "sticky",
      "z": 1,
      "title": "Текст · степь",
      "content": "[INTRO]\nСтепь да степь кругом,\nПуть далёк лежит,\n\nВ той степи глухой\nЗамерзал ямщик.\n\n[VERSE 2]\nИ, набравшись сил,\nЧуя смертный час,\nОн товарищу\nОтдавал наказ:\n\n[CHORUS]\n«Ты, товарищ мой,\nНе попомни зла,\nЗдесь, в степи глухой,\nСхорони меня…»",
      "meta": {}
    },
    {
      "id": "c-m-40xs",
      "type": "note",
      "x": 420,
      "y": 60,
      "w": 280,
      "h": 200,
      "rotation": -0.7040088655521286,
      "color": "sky",
      "shape": "sticky",
      "z": 1,
      "title": "центральное чувство",
      "content": "Не «трагедия смерти». А масштаб тишины, который смерть подсвечивает.\n\nГерой не борется. Он РЕГИСТРИРУЕТ свою смерть и передаёт сообщение. Это и есть достоинство.",
      "meta": {}
    },
    {
      "id": "c-n-cw7s",
      "type": "scene",
      "x": 420,
      "y": 290,
      "w": 280,
      "h": 180,
      "rotation": -1.1777643005156007,
      "color": "sky",
      "shape": "sticky",
      "z": 1,
      "title": "Establishing · степь как кадр",
      "content": "EXT. ЗАМЁРЗШАЯ СТЕПЬ — РАССВЕТ\n\nWide, locked. Точка-человек в нижней трети. Snow on ground, минимум следов саней.\n\nКамера не двигается 90 секунд. Звук — только ветер.",
      "meta": {}
    },
    {
      "id": "c-o-0oo0",
      "type": "note",
      "x": 60,
      "y": 460,
      "w": 280,
      "h": 200,
      "rotation": 1.5177702035572667,
      "color": "cream",
      "shape": "sticky",
      "z": 1,
      "title": "Refs (cineLANGUAGE)",
      "content": "Breaking Bad — desert vastness, low-angle godhood\nBetter Call Saul — geometric framing, slow burn\nSicario — aerial god-view, moral fog\n\nИспользуем как PATTERN не TEMPLATE",
      "meta": {}
    },
    {
      "id": "c-u-rm4b",
      "type": "todo",
      "x": 420,
      "y": 510,
      "w": 280,
      "h": 200,
      "rotation": -0.9732705654135483,
      "color": "paper",
      "shape": "sticky",
      "z": 1,
      "title": "Production TODO",
      "content": "",
      "meta": {
        "items": [
          {
            "id": "i-p-2k4s",
            "text": "Location: ровная степь, минимум деревьев",
            "done": false
          },
          {
            "id": "i-q-2voz",
            "text": "Cast: ямщик (минимум 50+) и товарищ (40+)",
            "done": false
          },
          {
            "id": "i-r-27li",
            "text": "Костюм: period-accurate — изучить 19 в.",
            "done": false
          },
          {
            "id": "i-s-yzzp",
            "text": "Лошадь, упряжь, сани",
            "done": false
          },
          {
            "id": "i-t-5wrr",
            "text": "Свет: только estesto, рассвет/закат",
            "done": true
          }
        ]
      }
    },
    {
      "id": "c-v-6q6k",
      "type": "adlib",
      "x": 720,
      "y": 60,
      "w": 200,
      "h": 100,
      "rotation": 5,
      "color": "rose",
      "shape": "sticky",
      "z": 1,
      "title": "Hook",
      "content": "«Не попомни зла»",
      "meta": {}
    },
    {
      "id": "c-w-kzg8",
      "type": "note",
      "x": 720,
      "y": 200,
      "w": 200,
      "h": 160,
      "rotation": -1.5949384513959703,
      "color": "lemon",
      "shape": "sticky",
      "z": 1,
      "title": "Anti-refs",
      "content": "НЕ: эпический оркестр\nНЕ: пафосный voiceover\nНЕ: handheld",
      "meta": {}
    }
  ],
  "connections": [],
  "viewport": {
    "x": 0,
    "y": 0,
    "zoom": 1
  },
  "selectedId": null,
  "focusId": null,
  "schemaVersion": 5,
  "hasSeenIntro": true,
  "timeline": {
    "durationSec": 75,
    "pixelsPerSec": 10,
    "tracks": [
      {
        "id": "t-0-3hbn",
        "name": "Lyrics",
        "kind": "text",
        "special": "lyrics",
        "color": "paper",
        "icon": "Type",
        "segments": [
          {
            "id": "s-7-0dcc",
            "start": 0,
            "end": 18,
            "label": "Intro · степь",
            "function": "opening",
            "moodTags": [
              "cold_precision",
              "spiritual_growth"
            ],
            "energyLevel": 3,
            "sceneDensity": 5,
            "emotionalIntensity": 5,
            "selectedReferenceIds": [
              "BETTER_CALL_SAUL",
              "BREAKING_BAD"
            ],
            "selectedRecipeIds": [],
            "lockedByUser": false,
            "userNotes": "",
            "lyricsText": "Степь да степь кругом",
            "suggestionHistory": []
          },
          {
            "id": "s-8-yomk",
            "start": 18,
            "end": 38,
            "label": "Setup · ямщик замерзает",
            "function": "establish",
            "moodTags": [
              "cold_precision",
              "moral_reckoning"
            ],
            "energyLevel": 4,
            "sceneDensity": 5,
            "emotionalIntensity": 5,
            "selectedReferenceIds": [
              "SICARIO"
            ],
            "selectedRecipeIds": [],
            "lockedByUser": false,
            "userNotes": "",
            "lyricsText": "",
            "suggestionHistory": [
              {
                "id": "sug-b-q9of",
                "action": "full",
                "createdAt": "2026-05-12T12:00:00Z",
                "data": {
                  "diagnosis": "Установить мир: бесконечная степь как антагонист. Не показывать страдание прямо — показать ничтожный масштаб человека в пустоте.",
                  "viewerEffect": "Зритель чувствует холодное, медленное удушение времени. Понимает: герой не победит — но это и не точка фильма.",
                  "sceneFunction": "setup — устанавливаем правило мира (пустота сильнее человека) и эмоциональную ставку (последние слова имеют вес именно потому что свидетель — один).",
                  "solution": {
                    "visualImage": "Aerial wide на полностью замёрзшую степь. Точка-человек в нижней трети. Не движется. Снег едва шевелится — почти статика.",
                    "camera": "Geometric wide, locked off. Затем 30-секундный медленный push-in. Никаких handheld.",
                    "editingRhythm": "ASL 15-20 сек. Hold-cuts. Время субъективно растягивается.",
                    "sound": "Только ветер. Никакой музыки до conscious решения момента позже.",
                    "characterAction": "Минимум. Грудь приподнимается. Веко моргает с задержкой.",
                    "transition": "Match cut на интерьер сарая через 30 лет — пустая лошадиная упряжь висит на стене (epilogue).",
                    "whatToReveal": "Масштаб пустоты. Что герой осознаёт смерть, но не паникует.",
                    "whatToHide": "Конкретный момент смерти. Внутренний монолог."
                  },
                  "referenceBasis": {
                    "primaryReferenceId": "BREAKING_BAD",
                    "secondaryReferenceIds": [
                      "SICARIO",
                      "BETTER_CALL_SAUL"
                    ],
                    "usedPatterns": [
                      "geometric_composition",
                      "desert_vastness",
                      "silence_hold"
                    ],
                    "notCopiedElements": [
                      "Не цитируем конкретную сцену — берём только композиционный принцип"
                    ]
                  },
                  "variants": {
                    "subtle": "Один кадр — wide на 90 секунд. Камера не двигается. Один cut.",
                    "bold": "Параллельный монтаж: ямщик в степи / комментирующая закадровая аудиокнига этого же фольклорного текста, читаемая ребёнком в современной кухне.",
                    "moreDramatic": "Голос диктора (off-screen voiceover) читает текст — но не как ямщик, а как историк."
                  },
                  "antiReference": "НЕ Netflix Western. НЕ Discovery про природу. НЕ закадровая «русская душа».",
                  "nextMicroAction": "Снять одну тестовую wide-секвенцию на полном свете заката. 30 секунд. Без движения камеры. Посмотреть может ли держать.",
                  "qualityCheck": {
                    "timelineFunctionClear": true,
                    "emotionalSpineClear": true,
                    "cameraEditSoundConnected": true,
                    "doesNotCopyExactScene": true,
                    "doesNotOverexplain": true
                  }
                }
              }
            ]
          },
          {
            "id": "s-9-ivyd",
            "start": 38,
            "end": 58,
            "label": "Turn · наказ товарищу",
            "function": "pivot",
            "moodTags": [
              "moral_reckoning",
              "obsession_pressure"
            ],
            "energyLevel": 6,
            "sceneDensity": 5,
            "emotionalIntensity": 5,
            "selectedReferenceIds": [
              "BREAKING_BAD",
              "BETTER_CALL_SAUL"
            ],
            "selectedRecipeIds": [],
            "lockedByUser": false,
            "userNotes": "",
            "lyricsText": "",
            "suggestionHistory": []
          },
          {
            "id": "s-a-ifv8",
            "start": 58,
            "end": 75,
            "label": "Release · последние слова",
            "function": "release",
            "moodTags": [
              "cold_precision"
            ],
            "energyLevel": 5,
            "sceneDensity": 5,
            "emotionalIntensity": 5,
            "selectedReferenceIds": [],
            "selectedRecipeIds": [],
            "lockedByUser": false,
            "userNotes": "",
            "lyricsText": "",
            "suggestionHistory": []
          }
        ]
      },
      {
        "id": "t-1-ym0y",
        "name": "Music",
        "kind": "music",
        "special": "music",
        "color": "lavender",
        "icon": "Music2",
        "segments": [
          {
            "id": "s-6-xqcf",
            "start": 0,
            "end": 75,
            "label": "Степь да степь кругом · народная",
            "function": "audio",
            "moodTags": [],
            "energyLevel": 5,
            "sceneDensity": 5,
            "emotionalIntensity": 5,
            "selectedReferenceIds": [],
            "selectedRecipeIds": [],
            "lockedByUser": false,
            "userNotes": "BPM 72, медленный шёлковый темп",
            "lyricsText": "",
            "suggestionHistory": []
          }
        ]
      },
      {
        "id": "t-2-axcq",
        "name": "Sound",
        "kind": "sound",
        "special": null,
        "color": "coral",
        "icon": "Volume2",
        "segments": []
      },
      {
        "id": "t-3-xn8d",
        "name": "Camera",
        "kind": "camera",
        "special": null,
        "color": "sky",
        "icon": "Camera",
        "segments": []
      },
      {
        "id": "t-4-b60g",
        "name": "Notes",
        "kind": "text",
        "special": "notes-link",
        "color": "cream",
        "icon": "StickyNote",
        "segments": []
      },
      {
        "id": "t-5-vq75",
        "name": "Rhythm",
        "kind": "rhythm",
        "special": "rhythm",
        "color": "coral",
        "icon": "Zap",
        "bpm": 72,
        "bpmOffsetSec": 0,
        "segments": []
      }
    ],
    "anchors": [
      {
        "id": "a-c-6p0q",
        "type": "CAMERA",
        "timelineSec": 1,
        "title": "aerial wide locked",
        "comment": "геометрическая композиция, точка-человек в третьей четверти кадра",
        "confidence": "high",
        "origin": "explicit",
        "needsReview": false,
        "groupId": null,
        "segmentId": "s-7-0dcc",
        "trackId": "t-3-xn8d"
      },
      {
        "id": "a-d-6y8e",
        "type": "SFX",
        "timelineSec": 2,
        "title": "ветер pure",
        "comment": "без music — только wind layer",
        "confidence": "high",
        "origin": "explicit",
        "needsReview": false,
        "groupId": null,
        "segmentId": "s-7-0dcc",
        "trackId": "t-2-axcq"
      },
      {
        "id": "a-e-p18v",
        "type": "CAMERA",
        "timelineSec": 20,
        "title": "slow push-in 30s",
        "comment": "медленный долли вперёд, едва заметно",
        "confidence": "high",
        "origin": "explicit",
        "needsReview": false,
        "groupId": null,
        "segmentId": "s-8-yomk",
        "trackId": "t-3-xn8d"
      },
      {
        "id": "a-f-kkkv",
        "type": "MONTAGE",
        "timelineSec": 22,
        "title": "period detail close-up",
        "comment": "крупный план кожи лошадиной упряжи / снега на ресницах",
        "confidence": "high",
        "origin": "explicit",
        "needsReview": false,
        "groupId": null,
        "segmentId": "s-8-yomk",
        "trackId": "t-3-xn8d"
      },
      {
        "id": "a-g-p5zl",
        "type": "PROP",
        "timelineSec": 30,
        "title": "упряжь как символ",
        "comment": "позже появится в epilogue match-cut",
        "confidence": "high",
        "origin": "explicit",
        "needsReview": false,
        "groupId": null,
        "segmentId": "s-8-yomk",
        "trackId": "t-4-b60g"
      },
      {
        "id": "a-h-n8fa",
        "type": "CHARACTER",
        "timelineSec": 40,
        "title": "взгляд товарища",
        "comment": "единственный близкий план — реакция свидетеля",
        "confidence": "high",
        "origin": "explicit",
        "needsReview": false,
        "groupId": null,
        "segmentId": "s-9-ivyd",
        "trackId": "t-4-b60g"
      },
      {
        "id": "a-i-3zji",
        "type": "SOUND",
        "timelineSec": 45,
        "title": "добавляется виолончель",
        "comment": "первая ноту — только сейчас. До этого только wind",
        "confidence": "high",
        "origin": "explicit",
        "needsReview": false,
        "groupId": null,
        "segmentId": "s-9-ivyd",
        "trackId": "t-2-axcq"
      },
      {
        "id": "a-j-vxqq",
        "type": "EDIT",
        "timelineSec": 58,
        "title": "hold-cut 8s",
        "comment": "тишина внутри кадра — пауза перед последней фразой",
        "confidence": "high",
        "origin": "explicit",
        "needsReview": false,
        "groupId": null,
        "segmentId": "s-a-ifv8",
        "trackId": "t-3-xn8d"
      },
      {
        "id": "a-k-2l5y",
        "type": "TRANSITION",
        "timelineSec": 73,
        "title": "match cut на упряжь",
        "comment": "30 лет спустя — пустой сарай",
        "confidence": "high",
        "origin": "explicit",
        "needsReview": false,
        "groupId": null,
        "segmentId": "s-a-ifv8",
        "trackId": "t-3-xn8d"
      }
    ]
  },
  "genres": [
    "cineLANGUAGE",
    "modernMOOD"
  ],
  "userReferences": []
}