{
  "status": "completed",
  "completed_count": 30,
  "applicable_count": 30,
  "failed_count": 0,
  "data": {
    "scenes": [
      {
        "scene_index": 1,
        "scene_heading": "S#1. 숲속 / 해 질 무렵",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "action",
            "before_state": "상처를 입은 채 잔뜩 겁에 질려 숲속을 도망침",
            "after_state": "어디선가 달려온 검은 인영의 기습을 받고 비명을 지름",
            "description": "다리에 상처를 입고 도망치던 남자가 정체불명의 검은 인영에게 덮쳐지며 공격을 당한다."
          }
        ]
      },
      {
        "scene_index": 2,
        "scene_heading": "S#2. 도시 뒷골목 / N",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "action",
            "before_state": "도시 뒷골목 가로등 밑에서 가쁜 숨을 내쉬며 뒤엉켜 있음",
            "after_state": "남자가 붉은 눈동자를 드러내며 여자의 목을 물어뜯고, 여자는 힘없이 쓰러짐",
            "description": "서로 밀착되어 있던 남녀 중 남자가 돌연 흡혈귀처럼 여자를 물어뜯어 죽음에 이르게 한다."
          }
        ]
      },
      {
        "scene_index": 3,
        "scene_heading": "S#3. 현장 / D",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "situation",
            "before_state": "잇단 변사체 발견으로 인해 혼란스러운 사건 현장",
            "after_state": "수사본부가 차려지고 갑호 비상령이 내려진 가운데 혜수가 현장을 통제하고 지휘함",
            "description": "연쇄 살인으로 비상령이 선포된 엄중한 상황 속에서 혜수를 중심으로 경찰의 본격적인 감식과 시신 수거가 진행된다."
          }
        ]
      },
      {
        "scene_index": 4,
        "scene_heading": "S#4. 옥탑방 / D",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "situation",
            "before_state": "경찰의 수사에도 불구하고 범인의 윤곽조차 잡히지 않음",
            "after_state": "사건에 대한 흉흉한 소문이 횡행하며 지역 주민들의 불안과 두려움이 가중됨",
            "description": "뉴스를 통해 범인 검거 실패 소식이 전해지며 지역 사회 전체에 공포 분위기가 확산된다."
          }
        ]
      },
      {
        "scene_index": 5,
        "scene_heading": "S#5. 옥탑방 안 / 실내",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "emotion",
            "before_state": "심각한 뉴스 보도에 집중하며 표정이 어둡고 긴장되어 있음",
            "after_state": "수리영이 방에서 나오자 황급히 TV를 끄며 평온하고 다정한 태도로 위장함",
            "description": "살인 사건 뉴스에 불안해하던 민숙이 딸 수리영이 등장하자 사건을 숨기며 일상적이고 다정한 엄마의 모습으로 태세를 전환한다."
          },
          {
            "beat_index": 2,
            "change_type": "decision",
            "before_state": "수리영은 아르바이트를, 민숙은 마트 오후 출근을 각자 준비함",
            "after_state": "일정을 마친 후 마트에서 만나 모처럼 밖에서 저녁을 먹기로 약속을 잡음",
            "description": "수리영이 알바가 끝난 뒤 민숙의 직장으로 찾아가 함께 외식을 하기로 결정한다."
          }
        ]
      },
      {
        "scene_index": 6,
        "scene_heading": "S#6. 해안가 도로 / D",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "situation",
            "before_state": "바다 냄새를 맡으며 해안도로를 밝고 활기차게 달림",
            "after_state": "어디선가 사납게 개 짖는 소리가 들려오며 유기견 보호원 진입을 암시함",
            "description": "자전거를 타고 평화롭게 달리던 수리영 주변으로 맹견의 짖는 소리가 끼어들며 다음 장소의 분위기로 전환된다."
          }
        ]
      },
      {
        "scene_index": 7,
        "scene_heading": "S#7. 유기견 보호원 / D",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "reaction",
            "before_state": "맹견이 금방이라도 물어버릴 듯 사납게 짖으며 날뜀",
            "after_state": "수리영이 눈을 노려보자 맹견의 기세가 수그러들며 순한 양처럼 얌전해짐",
            "description": "통제 불능이던 로트와일러가 수리영의 매서운 눈빛 제압에 즉각 굴복하고 기세를 꺾는다."
          },
          {
            "beat_index": 2,
            "change_type": "information",
            "before_state": "민숙과 저녁 약속이 있어 끝나는 시간을 알리려 함",
            "after_state": "보호원 업무가 길어지는데 민숙이 전화를 받지 않아 연락이 두절됨",
            "description": "업무 지연을 알리기 위해 민숙에게 연락을 시도하지만 받지 않아 미세한 차질이 발생한다."
          }
        ]
      },
      {
        "scene_index": 8,
        "scene_heading": "S#8. 번화가·대형 마트 / 해질 무렵",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "information",
            "before_state": "저녁 약속을 위해 마트에 도착해 민숙을 찾아다님",
            "after_state": "직원들을 통해 민숙이 밖에서 누군가와 대화한 후 일찍 조퇴했다는 엇갈린 사실을 알게 됨",
            "description": "약속 장소인 마트에 온 수리영은 민숙이 누군가 낯선 사람과 만난 후 자신을 엇갈려 조퇴했다는 의아한 소식을 접한다."
          },
          {
            "beat_index": 2,
            "change_type": "decision",
            "before_state": "마트 밖으로 나와 민숙에게 계속 전화를 걸어보며 배회함",
            "after_state": "전화를 받지 않자 일단 엇갈린 민숙을 찾기 위해 서둘러 집으로 향하기로 결심함",
            "description": "엄마와 끝내 연락이 닿지 않자 수리영은 확인을 위해 곧장 집으로 돌아가기로 결정한다."
          }
        ]
      },
      {
        "scene_index": 9,
        "scene_heading": "S#9. 해안가 / N",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "situation",
            "before_state": "해질 무렵 번화가에 있었으나 어둠이 깔린 밤이 됨",
            "after_state": "연락이 안 되는 엄마에 대한 걱정으로 밤의 해안도로를 바쁘게 질주함",
            "description": "시간이 밤으로 바뀌고 수리영은 엇갈린 엄마를 찾기 위해 초조한 마음으로 자전거 페달을 밟는다."
          }
        ]
      },
      {
        "scene_index": 10,
        "scene_heading": "S#10. 옥탑방 / N",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "action",
            "before_state": "낯선 남자가 옥탑방 철문 앞 문틈을 이용해 몰래 잠금을 품",
            "after_state": "안으로 침입해 민숙을 덮쳐 어깨를 물어뜯고, 민숙의 비명 소리가 터져 나옴",
            "description": "얼굴이 보이지 않는 낯선 남자가 옥탑방에 침입하여 민숙에게 치명적인 흡혈 공격을 가한다."
          }
        ]
      },
      {
        "scene_index": 11,
        "scene_heading": "S#11. 옥탑 방 밖 / N",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "information",
            "before_state": "서둘러 빌라로 들어와 옥탑방 계단을 다급하게 뛰어오름",
            "after_state": "갑작스러운 역겨운 냄새와 반쯤 열린 현관문을 직면하고 강한 불길함을 감지함",
            "description": "집에 도착한 수리영이 피비린내로 짐작되는 역겨운 냄새와 부자연스럽게 열린 철문을 마주하며 참극이 벌어졌음을 직감한다."
          }
        ]
      },
      {
        "scene_index": 12,
        "scene_heading": "S#12. 옥탑방 안 / N",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "information",
            "before_state": "열린 문과 악취로 인해 긴장한 상태로 텅 빈 집안을 살핌",
            "after_state": "자신의 방에서 참혹하게 훼손된 엄마의 시신과 혈흔을 목격하고 극도의 충격에 빠짐",
            "description": "옥탑방으로 들어와 빈 방들을 확인하던 수리영이 자신의 방 커튼 뒤에서 짐승에게 뜯긴 듯한 엄마의 시신을 발견하고 얼어붙는다."
          },
          {
            "beat_index": 2,
            "change_type": "action",
            "before_state": "시신의 끔찍한 모습에 압도되어 몸을 가누지 못함",
            "after_state": "본능적으로 핸드폰을 꺼내 혜수 이모에게 도움을 요청함",
            "description": "공포에 주춤하던 수리영이 부들부들 떨리는 손으로 혜수 이모에게 전화를 걸어 사태를 알리려 한다."
          },
          {
            "beat_index": 3,
            "change_type": "information",
            "before_state": "전화 연결을 기다리며 엄마의 시신 곁에 서 있음",
            "after_state": "문신 색이 변하고 벽에 붉은 원이 스스로 그려지는 초자연적 현상을 목격하고 기겁함",
            "description": "엄마의 손에 쥔 사진을 꺼내려는 순간, 문신이 붉어지고 벽에 붓으로 그린 듯한 붉은 원이 나타나는 기이한 현상을 보며 수리영이 비명을 지른다."
          }
        ]
      },
      {
        "scene_index": 13,
        "scene_heading": "S#13. 옥탑방 외곽 / N",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "information",
            "before_state": "수리영은 공포에 질려 도망쳐 내려오고, 혜수는 상황을 모른 채 도착함",
            "after_state": "수리영을 통해 살인 사건이 발생했음을 인지한 혜수와 형사가 다급히 현장으로 진입함",
            "description": "비명을 지르며 옥탑방을 빠져나온 수리영이 혜수에게 엄마의 죽음을 알리자, 혜수와 김형사가 놀라며 옥탑방으로 뛰어 올라간다."
          }
        ]
      },
      {
        "scene_index": 14,
        "scene_heading": "S#14. 옥탑방 안 / N",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "situation",
            "before_state": "끔찍한 살인 사건 현장을 예상하고 집 안으로 뛰어듦",
            "after_state": "시신은 물론 혈흔조차 하나도 남아있지 않은 상태임을 확인하고 허탈해함",
            "description": "급히 현장에 진입해 집안을 수색한 형사들이 시신이나 범행의 흔적을 전혀 찾지 못하고 당황하며 밖으로 나온다."
          },
          {
            "beat_index": 2,
            "change_type": "emotion",
            "before_state": "자신이 본 끔찍한 시신을 확신하며 형사들의 말에 놀라 방으로 향함",
            "after_state": "지나치게 깨끗한 방과 사라진 시신을 직접 확인하고 극심한 혼란에 빠짐",
            "description": "시신이 있던 방과 식탁이 흔적도 없이 깨끗한 것을 확인한 수리영이 자신이 분명히 봤던 광경과 대조되는 현실에 충격을 받고 혼란스러워한다."
          },
          {
            "beat_index": 3,
            "change_type": "reaction",
            "before_state": "수리영이 자신이 본 것을 거듭 주장하며 혼란을 호소함",
            "after_state": "김형사는 장난전화로 치부해 짜증을 내고, 혜수는 수리영이 과로로 환각을 본 것이라며 다독임",
            "description": "수리영의 말에 김형사가 장난이라며 짜증을 내자, 혜수는 김형사를 내보낸 뒤 수리영을 감싸며 악몽을 꾼 것이라 위로한다."
          }
        ]
      },
      {
        "scene_index": 15,
        "scene_heading": "S#15. 해안가. 버스정류장 부근 / N",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "decision",
            "before_state": "자신이 헛것을 본 것인지 현실인지 구분하지 못해 멍한 상태로 앉아 있음",
            "after_state": "혜수의 위로를 받아들여 환각을 본 것으로 애써 믿기로 결심하고 다시 집으로 향함",
            "description": "혜수 곁에서 자신이 잘못 본 것이라 합리화한 수리영이 스스로 불안감을 떨쳐내고 옥탑방으로 돌아가기 위해 서둘러 달려간다."
          }
        ]
      },
      {
        "scene_index": 16,
        "scene_heading": "S#16. 경찰서 사무실 / N",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "decision",
            "before_state": "수리영 앞에서는 과로로 인한 환각이라며 대수롭지 않게 넘겼음",
            "after_state": "민숙과 계속 연락이 닿지 않자 불길한 예감에 사로잡혀 위치추적을 지시함",
            "description": "수리영을 안심시켰던 혜수는 사무실로 돌아와 민숙에게 전화를 걸지만 무응답이자, 심상치 않음을 느끼고 김형사에게 위치추적을 요구한다."
          }
        ]
      },
      {
        "scene_index": 17,
        "scene_heading": "S#17. 옥탑방 / 동틀무렵",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "situation",
            "before_state": "긴박하고 혼란스러운 사건이 벌어졌던 어두운 밤임",
            "after_state": "동이 트는 새벽, 고양이가 배회하는 스산한 분위기의 아침으로 넘어감",
            "description": "새벽이 밝아오는 가운데 검은 고양이가 불이 켜진 옥탑방 담을 넘으며 밤사이의 시간이 경과했음을 보여준다."
          }
        ]
      },
      {
        "scene_index": 18,
        "scene_heading": "S#18. 안방 안 / D",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "action",
            "before_state": "뜬눈으로 밤을 새우다 침대 곁에서 깜빡 졸고 있음",
            "after_state": "고양이 울음소리에 번쩍 깨어나 혹시나 하는 마음에 빈 집을 다시 확인함",
            "description": "밤새 민숙을 기다리다 선잠이 든 수리영이 고양이 소리에 깨어나 집안에 엄마가 돌아왔는지 인기척을 살핀다."
          },
          {
            "beat_index": 2,
            "change_type": "emotion",
            "before_state": "커튼 뒤 시신에 대한 트라우마 때문에 조심스레 자신의 방을 확인하려 함",
            "after_state": "방이 여전히 깨끗한 것에 일순간 안도하지만, 혜수와의 통화로 엄마의 실종과 사고를 강하게 확신하며 불안해함",
            "description": "트라우마가 남은 자신의 방에 시신이 없음을 재확인한 수리영은 전화를 걸어온 혜수에게 엄마에게 사고가 난 것이 분명하다며 불안을 표출한다."
          },
          {
            "beat_index": 3,
            "change_type": "information",
            "before_state": "경찰의 위치추적을 기다리며 욕실에서 세수를 하고 마음을 다잡으려 함",
            "after_state": "붉은 원이 나타나고 사진 속 엄마 얼굴이 기괴하게 흘러내리는 환각을 연이어 목격하며 정신적 한계에 부딪힘",
            "description": "욕실 거울과 거실의 사진에서 끔찍한 환각을 연달아 본 수리영이 비명을 지르며 자신의 뺨을 쳐 스스로 정신을 차리려 애쓴다."
          }
        ]
      },
      {
        "scene_index": 19,
        "scene_heading": "S#19. 마트 / D",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "information",
            "before_state": "엄마의 실종 원인과 행방을 모른 채 단서를 찾아 탐문하던 상태",
            "after_state": "어제 엄마가 신원 미상의 남자와 대화를 나누었다는 사실을 알게 된 상태",
            "description": "수리영이 마트 남자 직원에게 물어 엄마가 낯선 남자와 이야기를 나눴다는 단서를 확보한다."
          },
          {
            "beat_index": 2,
            "change_type": "action",
            "before_state": "엄마가 남자와 만났다는 진술만 들은 상태",
            "after_state": "당시 상황이 찍혔을 CCTV 위치를 확인하고 혜수에게 연락하여 조사를 요청한 상태",
            "description": "수리영이 밖으로 나가 CCTV 카메라를 확인한 후, 혜수에게 전화해 상황을 설명하며 추적을 시작한다."
          }
        ]
      },
      {
        "scene_index": 20,
        "scene_heading": "S#20. 마트 총무과 / 실내",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "emotion",
            "before_state": "CCTV 화면에서 단서를 찾을 수 있을 것이라 기대하고 주시하던 상태",
            "after_state": "화면이 너무 어두워 식별이 불가능하자 불안감이 깊어진 상태",
            "description": "엄마와 남자의 모습이 유독 어두워 분간할 수 없다는 보안 직원의 말에 수리영이 초조함과 불안을 느낀다."
          },
          {
            "beat_index": 2,
            "change_type": "decision",
            "before_state": "현장에서 육안으로만 CCTV 화면을 확인하던 상태",
            "after_state": "정밀 분석을 위해 영상 전체 복사본을 가져가기로 결정한 상태",
            "description": "혜수가 식별 불가능한 현재 상황을 해결하기 위해 보안 직원에게 CCTV 전체 영상 복사를 요청한다."
          }
        ]
      },
      {
        "scene_index": 21,
        "scene_heading": "S#21. 경찰서 안 / D",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "emotion",
            "before_state": "경찰서에 홀로 얌전히 앉아 혜수를 기다리던 상태",
            "after_state": "살인사건 사진을 보고 환각 속 엄마의 모습과 흡사하여 경악한 상태",
            "description": "수리영이 혜수 책상의 살인사건 사진을 넘겨보며 자신이 보았던 끔찍한 환각 이미지와 똑같음에 큰 충격을 받는다."
          },
          {
            "beat_index": 2,
            "change_type": "information",
            "before_state": "엄마의 마지막 위치를 전혀 알지 못하던 상태",
            "after_state": "김형사 모니터에 뜬 해상 좌표(바다)를 통해 엄마의 위치 정보를 파악한 상태",
            "description": "수리영이 아무도 없는 틈을 타 모니터를 조작하여 엄마 폰의 마지막 위치가 바다임을 알아낸다."
          },
          {
            "beat_index": 3,
            "change_type": "action",
            "before_state": "위치 정보를 막 확인하고 놀라 굳어버린 상태",
            "after_state": "좌표를 몰래 메모한 후 단독 행동을 위해 경찰서를 빠져나가는 상태",
            "description": "수리영이 다급히 해상 좌표를 메모 쪽지에 적은 후 몰래 경찰서 사무실을 빠져나간다."
          }
        ]
      },
      {
        "scene_index": 22,
        "scene_heading": "S#22. 경찰서 밖 / D",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "action",
            "before_state": "경찰서 건물에서 막 나온 상태",
            "after_state": "바다를 향해 자전거를 타고 서둘러 출발한 상태",
            "description": "수리영이 확보한 단서를 좇아 자전거에 올라타 빠르게 이동하기 시작한다."
          }
        ]
      },
      {
        "scene_index": 23,
        "scene_heading": "S#23. 어느 PC방 / 실내",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "action",
            "before_state": "수기 메모로 좌표만 가지고 있던 상태",
            "after_state": "PC로 실제 지리를 파악하고 여러 장의 지도를 인쇄하여 백팩에 챙긴 상태",
            "description": "수리영이 메모한 해상 좌표를 검색해 위치를 특정하고 탐색용 지도를 인쇄하여 수색을 준비한다."
          }
        ]
      },
      {
        "scene_index": 24,
        "scene_heading": "S#24. 해안가 / 소나기",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "situation",
            "before_state": "실내에서 위치를 조사하고 나온 직후의 상황",
            "after_state": "천둥번개와 폭우가 쏟아지는 악천후를 뚫고 바다를 향해 달리는 상황",
            "description": "궂은 날씨 속에서도 수리영은 엄마를 찾겠다는 일념만으로 비바람을 맞으며 거침없이 자전거를 몬다."
          }
        ]
      },
      {
        "scene_index": 25,
        "scene_heading": "S#25. 옥탑방 안 / 해질 무렵",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "situation",
            "before_state": "비를 맞으며 바다 쪽으로 무작정 향하던 상태",
            "after_state": "누군가 침입해 난장판을 만들어놓은 집에 돌아와 직면한 상태",
            "description": "수리영이 옥탑방에 도착해 가재도구가 헤집어지고 발자국이 남은 엉망인 집을 보며 거칠게 숨을 쉰다."
          },
          {
            "beat_index": 2,
            "change_type": "information",
            "before_state": "단순 가택 침입으로만 인식하여 당황한 상태",
            "after_state": "벽의 붉은 원과 환각 속 죽은 엄마가 쥐고 있던 낡은 사진을 발견해 기이함을 인지한 상태",
            "description": "수리영이 자신의 방 벽에 꽂혀 있는 어릴 적 엄마의 피 묻은 사진을 발견하고 끔찍한 환각을 떠올린다."
          },
          {
            "beat_index": 3,
            "change_type": "decision",
            "before_state": "연이은 이상한 사건에 혼미해져 주저앉아 있던 상태",
            "after_state": "알 수 없는 힘에 이끌리듯 사진을 쥐고 다시 목적지를 향해 나가는 상태",
            "description": "정신이 멍한 수리영이 방을 획 둘러본 뒤, 사진을 손에 꼭 쥐고 백팩을 메며 집을 나선다."
          }
        ]
      },
      {
        "scene_index": 26,
        "scene_heading": "S#26. 포구 / 해질 무렵",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "situation",
            "before_state": "배가 없어 막막하게 안개 낀 포구를 헤매던 상태",
            "after_state": "짙은 안개를 뚫고 인우의 배 한 척이 포구로 다가온 상태",
            "description": "지쳐 갯바위에 앉아있던 수리영 앞에 텅 빈 바다에서 인우가 모는 유일한 배가 기적처럼 나타난다."
          },
          {
            "beat_index": 2,
            "change_type": "action",
            "before_state": "바다로 나갈 수단이 없어 발이 묶여 있던 상태",
            "after_state": "인우를 설득해 섬으로 향하는 배를 얻어타게 된 상태",
            "description": "수리영이 돌아가려던 인우에게 간곡히 승선을 요청하여 배에 올라탄다."
          },
          {
            "beat_index": 3,
            "change_type": "action",
            "before_state": "혜수의 전화를 부재중으로 남겨두고 무시하던 상태",
            "after_state": "배에 오르기 전 혜수에게 안심시키는 음성 메시지를 남긴 상태",
            "description": "수리영이 이모가 걱정하지 않도록 잠깐 다녀오겠다는 메시지를 남기고 바다로 떠날 준비를 마친다."
          }
        ]
      },
      {
        "scene_index": 27,
        "scene_heading": "S#27. 옥탑방 안 / 해질 무렵",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "information",
            "before_state": "수리영이 사라진 이유를 몰라 애타게 찾고 있던 상태",
            "after_state": "수리영의 메시지를 듣고 아이가 해상 좌표를 몰래 알아내어 바다로 갔음을 간파한 상태",
            "description": "혜수가 조카의 음성 메시지를 확인하자마자 수리영이 경찰서에서 좌표를 빼내갔음을 확신한다."
          },
          {
            "beat_index": 2,
            "change_type": "reaction",
            "before_state": "수리영의 행방에 크게 신경 쓰지 않던 상태",
            "after_state": "혜수의 다급한 우려에도 불구하고 망망대해에서 별일 있겠냐며 대수롭지 않게 여기는 상태",
            "description": "김형사는 사태의 심각성을 호소하는 혜수의 말에 혀를 끌끌 차며 곧 돌아올 것이라고 안일하게 반응한다."
          },
          {
            "beat_index": 3,
            "change_type": "situation",
            "before_state": "조카의 단독 행동을 알고 충격을 받은 상태",
            "after_state": "경찰의 비협조 속에서 바람 소리만 들리는 빈 집에 홀로 남겨져 스산함을 느끼는 상태",
            "description": "바람에 덜커덩거리는 현관문 소리가 울리며, 혼자 남겨진 혜수가 처한 황량하고 막막한 분위기가 연출된다."
          }
        ]
      },
      {
        "scene_index": 28,
        "scene_heading": "S#28. 바다 + 갑판 / 해질 무렵",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "information",
            "before_state": "인우가 인근 섬으로 목적지를 알고 항해하던 상태",
            "after_state": "수리영이 내민 좌표를 보고 빈 바다라며 황당해하는 상태",
            "description": "수리영이 지도를 내밀며 북동쪽 70km 지점을 목적지로 지목하자, 인우는 그곳에 아무것도 없다며 의아해한다."
          },
          {
            "beat_index": 2,
            "change_type": "reaction",
            "before_state": "인우가 수리영의 행선지를 납득하지 못하는 상태",
            "after_state": "과거 사진 속 장소를 보고 크게 동요하며 발뺌하는 상태",
            "description": "수리영이 '금월'이라 적힌 엄마의 사진을 들이밀며 추궁하자, 인우는 모른다며 부인하지만 시선이 심하게 흔들린다."
          },
          {
            "beat_index": 3,
            "change_type": "action",
            "before_state": "항해를 지속하고 있던 상태",
            "after_state": "인우가 뱃머리를 돌리려 하고 수리영이 이를 물리적으로 저지하는 상태",
            "description": "정체를 들킬 위기에 처한 인우가 발작적으로 조타실로 달려가 배를 돌리려 하자, 수리영이 뒤따라 들어가 막아선다."
          }
        ]
      },
      {
        "scene_index": 29,
        "scene_heading": "S#29. 조타실 / 해질 무렵",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "emotion",
            "before_state": "목적지를 두고 실랑이를 벌이는 상태",
            "after_state": "수리영이 엄마가 잡혀있다는 절박함에 분노를 터뜨리는 상태",
            "description": "거긴 못 간다며 돌아가려는 인우에게, 수리영은 엄마가 그곳에 잡혀있을지도 모른다며 울분을 토해낸다."
          },
          {
            "beat_index": 2,
            "change_type": "information",
            "before_state": "수리영 엄마의 정확한 신원을 알지 못하던 상태",
            "after_state": "엄마의 이름이 '강민숙'임을 듣고 인우가 충격에 빠진 상태",
            "description": "수리영이 사진 속 인물이 자신의 엄마인 '강민숙'이라고 구체적으로 밝히자, 인우의 얼굴이 사색이 된다."
          },
          {
            "beat_index": 3,
            "change_type": "information",
            "before_state": "인우를 평범한 선원으로 대하던 상태",
            "after_state": "조타실 내의 붉은 원들을 발견하고 인우의 실체에 경악하는 상태",
            "description": "인우의 얼굴 너머로 방 안 가득 빙글빙글 도는 붉은 원들을 목격한 수리영이 공포에 질려 인우의 정체를 의심한다."
          },
          {
            "beat_index": 4,
            "change_type": "situation",
            "before_state": "충격 속에서도 의식을 유지하며 대치하던 상태",
            "after_state": "수리영이 의식을 잃고 인우에게 무력하게 제압되는 상태",
            "description": "수리영은 급격히 의식이 혼미해지며, 자신을 서늘하게 노려보는 인우의 어깨 위로 쓰러진다."
          }
        ]
      },
      {
        "scene_index": 30,
        "scene_heading": "S#30. 바다 / 해질 무렵",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "situation",
            "before_state": "해질 무렵 노을 지는 바다 위에 떠 있던 상태",
            "after_state": "짙은 안개 속으로 진입하며 세상과의 경계가 지워진 상태",
            "description": "인우의 배가 황금빛 그림자를 뒤로하고, 세상과 단절된 듯한 짙은 안개 띠 안으로 서서히 모습을 감춘다."
          }
        ]
      }
    ],
    "total_beats": 54
  },
  "step_id": "beat_extract",
  "run_id": "a2a913dd-a37b-48fb-8948-482cce2d430b",
  "resolved_model": "gemini-pro",
  "updated_at": "2026-05-27T09:04:17.737682+00:00",
  "schema_version": 1,
  "config_hash": "99914b932bd37a50",
  "project_config_snapshot": {}
}