SANGRE Y PODER — CURRENT PHASE

CURRENT_PHASE=19_gruta_sacrificio
phase_id = 19_gruta_sacrificio
current_location = Gruta del Sacrificio
timeline = {"dia":3,"hora":"noche/eclipsándose"}
phase_loaded = true
current_phase_loaded = true

This phase package is a derived execution view of canonical Sangre y poder resources. Canonical resources remain the source of truth.

This is Creator material. It is not automatically player-facing output.

=== LOCAL PHASE SOURCE LOCK ===

LOCK_POSITION = START
EXPECTED_CURRENT_PHASE = 19_gruta_sacrificio
CURRENT_PHASE=19_gruta_sacrificio
STARTUP_READY = true
current_phase_loaded = true

PRIMARY SOURCE:
THIS COMPLETE PHASE PACKAGE

FALLBACK:
https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/phased/phases/19_gruta_sacrificio.txt

SEARCH_ALLOWED = false
REDDIT_ALLOWED = false
MEDIUM_ALLOWED = false
EXTERNAL_RUNTIME_REDISCOVERY = false

If the answer exists in this phase:
USE IT.

If HTML phase cannot be read:
USE THE PAIRED TXT FALLBACK.

If both are unavailable and a significant answer cannot be produced
from already-loaded canonical state:
STOP rather than Search.

PHASE_PAYLOAD_VERIFIED = false until the complete package has been read and both markers are detected:
1. CURRENT_PHASE=19_gruta_sacrificio
2. === PHASE EXECUTION LOCK ===

Only after both checks:
PHASE_PAYLOAD_VERIFIED = true
current_phase_loaded = true

=== END LOCAL PHASE SOURCE LOCK ===

Contexto canónico íntegro de la escena

Canonical source: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/aventura/escenas/19_gruta_sacrificio.json

{
  "id": "19_gruta_sacrificio",
  "titulo": "Gruta del Sacrificio",
  "dia": 3,
  "hora": "noche/eclipsándose",
  "lectura": "La galería desemboca en una cámara natural alargada de unos veinte metros. Al fondo, Karlein está atado sobre una plataforma y un hombre prepara una ceremonia. Entre el Dalma y el altar se encuentran los dos viajeros.",
  "datos_creador": {
    "mapa": "data/19_MAPA_GRUTA_COMBATE_FINAL.json",
    "combate": "data/20_COMBATES_SANGRE_Y_PODER.json",
    "climax_model": "published default plus legitimate pre-transition intervention attempts; see data/20_COMBATES_SANGRE_Y_PODER.json"
  },
  "salidas": [
    "20_refugio_cortijo",
    "21_regreso_pueblo"
  ],
  "capsule_additive_source": "/ia/aventuras/sangre-y-poder/free/capsulas/19_gruta_del_sacrificio.md",
  "merge_policy": "stable runtime plus compatible capsule additions; reconciliation rules have precedence",
  "global_time": {
    "persistent": true,
    "all_actions_advance_estimated_time": true
  }
}

Política local de fuente, percepción y diálogo social seguro

Exact object extracted from https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/docs/29_REGLAS_IMPROVISACION_NO_INVENCION.md at /local_phase_execution_policy/19_gruta_sacrificio.

{
  "policy_version": "1.4",
  "current_phase_id": "19_gruta_sacrificio",
  "primary_source": "THIS COMPLETE PHASE PACKAGE",
  "paired_text_fallback": "https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/phased/phases/19_gruta_sacrificio.txt",
  "external_sources": {
    "search": "forbidden",
    "reddit": "forbidden",
    "medium": "forbidden",
    "social_posts": "forbidden",
    "search_engine_snippets": "forbidden",
    "play_reports": "forbidden",
    "rule": "Once STARTUP_READY=true, none of these are runtime sources even if they appear accurate or were published by Saga Antípodas."
  },
  "scene_description": {
    "player_visible_canon": {
      "lectura": "La galería desemboca en una cámara natural alargada de unos veinte metros. Al fondo, Karlein está atado sobre una plataforma y un hombre prepara una ceremonia. Entre el Dalma y el altar se encuentran los dos viajeros.",
      "visible": []
    },
    "rule": "Describe observable canonical elements from this package. Do not answer that description is unavailable when lectura or visible contains it. Do not add buildings, clues or significant facts."
  },
  "perception": {
    "rule": "A Perception roll never creates a clue. A 4-5 partial result must still provide a useful partial selection of real observable information already present in lectura, visible or clues_available.",
    "forbidden_output": "Do not merely explain the protocol or say nothing can be invented when real observable information exists."
  },
  "safe_social_improvisation": {
    "rule_id": "SAFE SOCIAL IMPROVISATION",
    "required_when": "The player addresses a present NPC and no literal sentence is scripted, but a natural minor response can be derived safely.",
    "decision_filter": [
      "CREATOR TRUTH",
      "NPC KNOWLEDGE",
      "NPC PERSONALITY/MOTIVATION",
      "CURRENT STATE",
      "PLAYER OUTPUT"
    ],
    "allowed": [
      "greetings",
      "farewells",
      "courtesy",
      "minor humor",
      "tone",
      "speech mannerisms",
      "hospitality",
      "reasonable emotional reaction",
      "evasive answers",
      "courtesy questions",
      "everyday conversation",
      "natural reformulation of facts the NPC already knows"
    ],
    "forbidden": [
      "new clues",
      "new significant rumors",
      "new suspicions",
      "secrets",
      "identities",
      "properties",
      "genealogies",
      "new relationships",
      "enemies",
      "rewards",
      "missions",
      "historical events",
      "important locations",
      "conspiracies",
      "information the NPC does not know"
    ],
    "fact_rule": "Minor social color does not create a fact_id, clue, historical event or chronology entry.",
    "natural_response_rule": "Do not say the response is pending, no exact phrase exists, or I cannot invent when safe minor dialogue is possible.",
    "present_npcs": [
      {
        "id": "asher",
        "name": "Asher",
        "personality": [
          "refinado",
          "correcto",
          "contenido",
          "seco"
        ],
        "knows": [
          "hábitos de Karlein",
          "Teolin fue el último en verlo",
          "recompensa 10 oros",
          "broche familiar",
          "la Colina del Amanecer pertenece a su familia",
          "según su último conocimiento la propiedad está abandonada",
          "el antiguo camino continúa hacia las montañas",
          "no existe actualmente una ruta comercial que haga rentable mantener actividad allí",
          "no tiene constancia de que viva nadie en la propiedad"
        ],
        "ignores": [
          "secta",
          "Dumar",
          "pacto de sangre",
          "interpretación oculta del contrato",
          "historia completa de Dumar",
          "significado del mensaje de Dumar",
          "relación Karlein-eclipse",
          "contenido de Sangre y poder"
        ]
      },
      {
        "id": "karlein",
        "name": "Karlein",
        "personality": [],
        "knows": [
          "lo capturaron cuando Teolin se perdió",
          "le dieron una bebida desagradable",
          "oyó referencias a esperar a las lunas"
        ],
        "ignores": [
          "sentido del ritual"
        ]
      },
      {
        "id": "heldris",
        "name": "Heldris",
        "personality": [
          "prudente",
          "metódico",
          "discreto",
          "estudioso"
        ],
        "knows": [
          "visita del desconocido",
          "tomo de Raldorf",
          "Welter",
          "Bradel",
          "Dumar",
          "Sherat",
          "antiguo contrato y cláusula vinculada a la sangre de Welter",
          "tragedia del Cortijo del Amanecer",
          "mensaje de Dumar",
          "relación del mensaje con un eclipse de las dos lunas"
        ],
        "ignores": [
          "que el visitante es el líder",
          "Rumal y Darfil son sectarios",
          "capilla oculta",
          "Sangre y poder"
        ]
      },
      {
        "id": "rumal",
        "name": "Rumal",
        "personality": [],
        "knows": [],
        "ignores": []
      },
      {
        "id": "darfil",
        "name": "Darfil",
        "personality": [],
        "knows": [],
        "ignores": []
      }
    ]
  },
  "phase_load_verification": {
    "expected_current_phase": "19_gruta_sacrificio",
    "required_markers": [
      "CURRENT_PHASE=19_gruta_sacrificio",
      "=== PHASE EXECUTION LOCK ==="
    ],
    "set_only_after_complete_read": {
      "PHASE_PAYLOAD_VERIFIED": true,
      "current_phase_loaded": true
    },
    "failure_chain": [
      "HTML phase",
      "paired TXT phase",
      "STOP"
    ],
    "never_after_failure": [
      "Search",
      "Reddit",
      "Medium",
      "generic substitute scene"
    ]
  }
}

Filtro canónico Creador → Dalma

Exact object extracted from https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/data/14_MATRIZ_DE_CONOCIMIENTO.json at /complete_matrix.

{
  "principio": "La IA mantiene conocimiento del Creador separado del conocimiento del Dalma. Un dato solo pasa a conocimiento del Dalma cuando una escena, diálogo, observación, maniobra o deducción válida lo revela.",
  "reglas": [
    "No usar nombres no conocidos.",
    "No revelar acontecimientos futuros.",
    "No revelar secretos de PNJ.",
    "No presentar conocimiento del Creador como inferencia del Dalma.",
    "Celdris puede revelar únicamente los destinatarios Serkan, Asher y Heldris; no procedencia ni contenido de los paquetes.",
    "Antes de heldris_disponible = true, una visita a su casa no obtiene respuesta y no se revela que Heldris está dentro estudiando.",
    "Drassel, Balanar y el contenido genealógico del paquete solo pueden surgir a través de Heldris cuando su investigación está completada.",
    "Asher puede confirmar la propiedad y su abandono, pero nunca la historia oculta de la Colina del Amanecer."
  ],
  "hechos_inicialmente_ocultos": [
    "Rumal y Darfil son sectarios.",
    "El visitante de Heldris es el líder.",
    "Karlein está en la gruta.",
    "Existe Sangre y poder.",
    "El líder se transformará en vampiro.",
    "Los sectarios muertos se levantarán.",
    "El paquete de Heldris procede de Drassel, bibliotecario de Balanar.",
    "El paquete contiene el anexo genealógico que confirma la descendencia hasta Karlein.",
    "Heldris está dentro de su casa estudiando cuando no responde durante la mañana y primeras horas de la tarde."
  ],
  "hechos_revelables_por_evento": {
    "nombre_rumal_darfil": "solo si se presentan/son presentados o el Dalma escucha sus nombres",
    "lider_visitante": "Heldris solo puede confirmarlo al comparar descripción después; durante la aventura puede deducirse por coincidencia de descripción",
    "sangre_y_poder": "solo al hallar el libro",
    "pacto_sangre": "al leer el libro y relacionarlo con la cláusula de Welter",
    "nombre_heldris_por_celdris": "si el Dalma oye o pregunta por los destinatarios de Celdris; desde entonces puede averiguar públicamente que Heldris es bibliotecario/estudioso y dónde vive",
    "drassel_balanar": "solo cuando Heldris, ya disponible, explica de dónde recibió la documentación esa mañana",
    "anexo_genealogico": "solo durante la escena de revelación de Heldris; debe ser el último anexo que muestra antes de su conclusión",
    "colina_propiedad_abandonada": "Asher puede confirmarlo como información práctica/familiar después de que el Dalma pregunte por la propiedad; no añade historia oculta"
  },
  "dia2_celdris_heldris": {
    "celdris": {
      "conoce": [
        "Bleida",
        "ruta de reparto",
        "destinatarios Serkan, Asher y Heldris"
      ],
      "no_revela": [
        "procedencia",
        "contenido",
        "investigación de Heldris",
        "genealogía",
        "Colina del Amanecer",
        "secta",
        "eclipse",
        "ritual"
      ]
    },
    "bleida": {
      "puede_saber": [
        "quién es Celdris",
        "Celdris es mensajero habitual",
        "quién es Heldris a nivel público",
        "dónde vive Heldris"
      ],
      "no_sabe": [
        "contenido del paquete de Heldris",
        "qué investiga Heldris",
        "qué conclusión alcanzará esa tarde"
      ]
    },
    "heldris": {
      "antes_paquete": "Posee investigación histórica pero no puede confirmar el linaje de Karlein.",
      "despues_estudio": "Confirma la descendencia, relaciona el secuestro con la sangre y comprende la importancia del eclipse."
    },
    "asher": "Conoce la propiedad y su estado práctico; desconoce la historia oculta."
  }
}

PNJ relevantes — objetos canónicos exactos

Exact object extracted from https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/data/13_PNJ_SANGRE_Y_PODER.json at /pnj[relevant_to_phase].

[
  {
    "id": "asher",
    "nombre": "Asher",
    "raza": "Humano",
    "rol": "Padre de Karlein, terrateniente",
    "personalidad": [
      "refinado",
      "correcto",
      "contenido",
      "seco"
    ],
    "interes": "Recuperar a Karlein",
    "sabe": [
      "hábitos de Karlein",
      "Teolin fue el último en verlo",
      "recompensa 10 oros",
      "broche familiar",
      "la Colina del Amanecer pertenece a su familia",
      "según su último conocimiento la propiedad está abandonada",
      "el antiguo camino continúa hacia las montañas",
      "no existe actualmente una ruta comercial que haga rentable mantener actividad allí",
      "no tiene constancia de que viva nadie en la propiedad"
    ],
    "cree": [
      "Serkan podría estar implicado"
    ],
    "ignora": [
      "secta",
      "Dumar",
      "pacto de sangre",
      "interpretación oculta del contrato",
      "historia completa de Dumar",
      "significado del mensaje de Dumar",
      "relación Karlein-eclipse",
      "contenido de Sangre y poder"
    ],
    "restriccion_colina": "La información sobre la propiedad es práctica/familiar. No conoce su historia oculta."
  },
  {
    "id": "karlein",
    "nombre": "Karlein",
    "raza": "Humano",
    "edad": 8,
    "rol": "Niño secuestrado",
    "sabe": [
      "lo capturaron cuando Teolin se perdió",
      "le dieron una bebida desagradable",
      "oyó referencias a esperar a las lunas"
    ],
    "ignora": [
      "sentido del ritual"
    ]
  },
  {
    "id": "heldris",
    "nombre": "Heldris",
    "raza": "Humano",
    "rol": "Bibliotecario e historiador local",
    "personalidad": [
      "prudente",
      "metódico",
      "discreto",
      "estudioso"
    ],
    "sabe": [
      "visita del desconocido",
      "tomo de Raldorf",
      "Welter",
      "Bradel",
      "Dumar",
      "Sherat",
      "antiguo contrato y cláusula vinculada a la sangre de Welter",
      "tragedia del Cortijo del Amanecer",
      "mensaje de Dumar",
      "relación del mensaje con un eclipse de las dos lunas"
    ],
    "ignora": [
      "que el visitante es el líder",
      "Rumal y Darfil son sectarios",
      "capilla oculta",
      "Sangre y poder"
    ],
    "estado_conocimiento_dia2": {
      "antes_paquete": [
        "sospecha que los elementos históricos pueden estar relacionados",
        "no puede confirmar que Karlein pertenezca a la línea de Sherat"
      ],
      "paquete_manana": "Recibe de Drassel, bibliotecario de Balanar, el último anexo necesario para comprobar documentalmente la genealogía.",
      "durante_estudio": "Permanece aislado y concentrado; no responde a visitas y el Creador no revela que está dentro.",
      "pocas_horas_antes_puesta_sol": [
        "confirma Sherat → descendencia posterior → Asher → Karlein",
        "relaciona el secuestro con la línea de sangre",
        "comprende la importancia del eclipse inminente",
        "considera urgente advertir al Dalma"
      ]
    },
    "restriccion_temporal": "No desarrolla la revelación completa hasta heldris_disponible = true, a pocas horas de la puesta de sol.",
    "ultimo_anexo": "El anexo genealógico recibido de Drassel esa mañana es el último documento que muestra antes de exponer su conclusión."
  },
  {
    "id": "rumal",
    "nombre": "Rumal",
    "raza": "Humano",
    "rol_publico": "Viajero hacia Gudur en busca de nueva vida",
    "rol_secreto": "Sectario",
    "secreto": true,
    "objetivo": "Bloquear al Dalma en la Gruta del Sacrificio"
  },
  {
    "id": "darfil",
    "nombre": "Darfil",
    "raza": "Medio Elfo",
    "rol_publico": "Viajero hacia Gudur en busca de nueva vida",
    "rol_secreto": "Sectario",
    "secreto": true,
    "objetivo": "Bloquear al Dalma en la Gruta del Sacrificio"
  }
]

Control local de pistas

Exact object extracted from https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/data/22_PISTAS_Y_DEDUCCIONES.json at /pistas[localized_to_phase].

{
  "clues_available": [],
  "clues_already_known": "state.pistas intersect clues_available ids",
  "clues_not_available_yet": [
    "anuncio",
    "rumores_serkan",
    "broche_retrato",
    "broche_bosque",
    "nombre_heldris_por_celdris",
    "anexo_genealogico_heldris",
    "heldris_tomo",
    "hoguera_cortijo",
    "puerta_secreta",
    "libro",
    "rumal_darfil_cortijo",
    "asher_colina_abandonada"
  ],
  "rule": "A Perception roll may reveal only a conditionally available canonical clue or real environmental information in this package. Never create a new clue."
}

Mappings JPG oficiales disponibles en esta fase

Exact object extracted from https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/data/32_ASSET_MANIFEST.json at /scene_card_assets/19_gruta_sacrificio.

{
  "rule_id": "OFFICIAL_CARD_VISUALIZATION_RULE",
  "state_field": "revealed_card_assets",
  "visible_url_text_required": true,
  "visible_output_contract": "The visible response must literally contain both https://sagaantipodas.com/ and .jpg. A named link, citation or source card is not sufficient.",
  "equipment_card_assets": [],
  "enemy_card_assets": [
    {
      "enemy_id": "siervo-de-aman",
      "card_id": "siervo-de-aman",
      "card_name": "Siervo de Amán",
      "asset_type": "official_jpg",
      "asset_path": "/ia/aventuras/sangre-y-poder/runtime/assets/enemigos/siervodeaman.jpg",
      "official_jpg_url": "https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/assets/enemigos/siervodeaman.jpg",
      "visible_url_text_required": true,
      "output_contract": "Carta oficial — Siervo de Amán:\nhttps://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/assets/enemigos/siervodeaman.jpg",
      "reveal_condition": "enemy_revealed_to_dalma = true for Rumal/Darfil; never while known only as travelers, strangers or NPCs",
      "spoiler_lock": "Do not expose card name or URL before enemy_revealed_to_dalma = true.",
      "repeat_rule": "After legitimate reveal, print the absolute JPG URL literally in visible response text. Show automatically once per card_id; one URL is sufficient for multiple enemies using the same card."
    },
    {
      "enemy_id": "lider-del-bastion",
      "card_id": "lider-del-bastion",
      "card_name": "Líder del Bastión",
      "asset_type": "official_jpg",
      "asset_path": "/ia/aventuras/sangre-y-poder/runtime/assets/enemigos/liderdelbastion.jpg",
      "official_jpg_url": "https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/assets/enemigos/liderdelbastion.jpg",
      "visible_url_text_required": true,
      "output_contract": "Carta oficial — Líder del Bastión:\nhttps://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/assets/enemigos/liderdelbastion.jpg",
      "reveal_condition": "visual representation only after the human leader is visible; never inherit stats, abilities, equipment, identity, name or mechanical behavior",
      "spoiler_lock": "Do not expose card name or URL before enemy_revealed_to_dalma = true.",
      "repeat_rule": "After legitimate reveal, print the absolute JPG URL literally in visible response text. Show automatically once per card_id; one URL is sufficient for multiple enemies using the same card."
    },
    {
      "enemy_id": "muerto-viviente",
      "card_id": "muerto-viviente",
      "card_name": "Muerto Viviente",
      "asset_type": "official_jpg",
      "asset_path": "/ia/aventuras/sangre-y-poder/runtime/assets/enemigos/muertoviviente.jpg",
      "official_jpg_url": "https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/assets/enemigos/muertoviviente.jpg",
      "visible_url_text_required": true,
      "output_contract": "Carta oficial — Muerto Viviente:\nhttps://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/assets/enemigos/muertoviviente.jpg",
      "reveal_condition": "enemy_revealed_to_dalma = true after canonical reanimation",
      "spoiler_lock": "Do not expose card name or URL before enemy_revealed_to_dalma = true.",
      "repeat_rule": "After legitimate reveal, print the absolute JPG URL literally in visible response text. Show automatically once per card_id; one URL is sufficient for multiple enemies using the same card."
    },
    {
      "enemy_id": "vampiro",
      "card_id": "vampiro",
      "card_name": "Vampiro",
      "asset_type": "official_jpg",
      "asset_path": "/ia/aventuras/sangre-y-poder/runtime/assets/enemigos/vampiro.jpg",
      "official_jpg_url": "https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/assets/enemigos/vampiro.jpg",
      "visible_url_text_required": true,
      "output_contract": "Carta oficial — Vampiro:\nhttps://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/assets/enemigos/vampiro.jpg",
      "reveal_condition": "enemy_revealed_to_dalma = true only after canonical transformation/revelation as Vampiro",
      "spoiler_lock": "Do not expose card name or URL before enemy_revealed_to_dalma = true.",
      "repeat_rule": "After legitimate reveal, print the absolute JPG URL literally in visible response text. Show automatically once per card_id; one URL is sufficient for multiple enemies using the same card."
    }
  ],
  "inventory_listing_rule": "Text inventory does not automatically display all URLs. If the player explicitly asks to see the visible cards, provide these official JPG URLs.",
  "enemy_spoiler_rule": "Never expose an enemy card name or URL before enemy_revealed_to_dalma = true.",
  "missing_asset_rule": "Record MISSING_CARD_ASSET, do not invent a URL, do not generate art, and continue play.",
  "generation_rule": "NEVER GENERATE CARD ART."
}

Reglas acumulativas y reconciliaciones autorizadas

Canonical source: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/docs/42_CAPA_FREE_RUNTIME_ACUMULATIVO.md

# Sangre y poder — Runtime acumulativo y Capa Free

## Autoridad

El runtime estable permanece como baseline. Las 24 cápsulas Free aportan contexto, estados, controles temporales, límites de conocimiento y bifurcaciones compatibles. Las reconciliaciones acumulativas de esta página prevalecen sobre cualquier cláusula original incompatible de una cápsula.

`RUNTIME_CAPABILITY_PROBE_FIRST = true`

`PASS_SELECTS_FREE = true`

`NO_PASS_ALONE_AUTHORIZES_COMPLETE_RUNTIME = true`

`AMBIGUOUS_PARTIAL_TRUNCATED_OR_UNKNOWN_SELECTS_PASS_AND_FREE = true`

La Capa Free se encuentra en `/ia/aventuras/sangre-y-poder/free/`. Su manifest y router enlazan 24 documentos Markdown completos; ningún asistente necesita interpretar DOCX.

## Reglas transversales

- `GLOBAL_TIME = PERSISTENT`: todas las acciones consumen tiempo estimado y los eventos duros no se desplazan artificialmente.
- `null != false` y `null != 0`: un estado no reconstruible continúa desconocido.
- `PLAYER_CONTROLS_DALMA_SPEECH = true`: separar hechos, afirmaciones, conocimiento y creencias.
- La densidad narrativa se adapta al turno actual, nunca al canon ni a la dificultad.
- Antes de toda transición se guarda el estado completo; las escrituras relacionadas se realizan atómicamente.
- Durante una reconstrucción Free, si resulta imprescindible mostrar un mensaje intermedio, se usa únicamente «Realizando tareas de Creador...» y se lee la cápsula íntegra antes de responder.
- La infraestructura es invisible durante la ficción.

## Escenas 01–19

Cada paquete phased integra como fuente local la cápsula Markdown de su escena. La cápsula amplía el runtime sin borrar el contenido publicado. Se conservan ambientación, PNJ, pistas, contratos, negociación, comercio, descanso, violencia urbana, consultas, genealogía, eclipse, viaje, encuentros, Cortijo, capilla, libro, seguimiento, gruta, combate, inventario y PX.

## Comercio conciliado

`FINAL_STORE_CATALOG = PUBLISHED_CURRENT_CATALOG UNION CAPSULE_COMPATIBLE_ADDITIONS`.

Las listas resultantes son cerradas: una tirada o negociación no crea mercancía. `Saco sin fondo` permanece como stock nominativo de El Cazador Precavido aunque esté excluido del comercio genérico. `Maza de guerra` se añade a Punta de Lanza como excepción nominativa de 3 Òros y 2 Platas sin elevar el límite general. Una carta puede permanecer disponible en varias tiendas.

## Cortijo idempotente

La escena 15 conserva zonas de descanso, cuerdas, yesca, aceite y tela con símbolo. La escena 20 realiza una segunda exploración o contextualización: puede precisar camastros, herramientas, restos de comida y semejanza entre símbolos, pero nunca duplica un hallazgo previo. La identidad y localización de la tela se preservan.

## Clímax híbrido

La ruta publicada es el comportamiento por defecto. Rumal y Darfil bloquean el paso y el líder continúa el ritual. Si el segundo sectario cae sin que el Dalma haya abierto antes una vía alternativa, no existe una acción gratuita intermedia: sacrificio y transformación se resuelven inmediatamente.

Antes de ese punto el jugador puede intentar una intervención legítima. Se resuelve con posición, amenazas, tiempo, reglas y recursos reales. `RITUAL_PROGRESS` utiliza `CURRENT_TIME`, `ELAPSED_TIME`, acciones, tiempo de combate, posición, demoras y variante de entrada. La cautela razonable no es demora automática; la dilación deliberada sí puede agotar la aproximadamente una hora de margen.

El asset Líder del Bastión es sólo visual. `PRE_TRANSFORMATION_LEADER_STATS = undefined`; no se heredan estadísticas, habilidades, equipo, identidad, nombre ni comportamiento.

## Divisor de escena 19

- Antes de 19, el eclipse activa 24-A publicada.
- Durante 19, el clímax permanece en 19.
- Después de completar 19, A queda deshabilitada permanentemente.

Al completar 19 se registra el momento real y un deadline en la medianoche al final del día siguiente. Entrar en Villapreston no lo cancela. Sólo `karlein_delivered_to_asher = true` cancela el disparador.

Si vence con Karlein vivo sin entregar, se activa 24-B. Si Karlein muere después de 19 y antes de entregarlo, se activa inmediatamente 24-C.

## Demonio

Base V13/F6/R6/I6. Con Mandoble flamígero, Coraza de acero mágico, Escudo de los Hacedores y Anillo de Piedra Negra: V13/F14/R13/I8. TR +4. Miedo aplica −1 F/R/I al Dalma sin alterar Vida máxima. Drenar recupera 2 Vida al causar daño real, máximo 13. Sin vida impide aturdimiento y anula venenos/pociones. La curación externa es imposible. La huida no existe ni genera tirada.

La resolución publicada Pifia del Demonio + 666 del Dalma conserva su victoria inmediata y transferencia de cuatro objetos. Ese botín no se extrapola a otra victoria.

## Entrega y epílogo

La entrega a Asher actualiza en una operación `karlein_delivered_to_asher`, `karlein_with_dalma`, contrato, búsqueda y disparador Demonio. El epílogo publicado sigue ofreciendo Templo y Heldris/libro. `XP_LEDGER` se liquida una vez; el premio específico de final exitoso permanece en +2 PX. Inventario, Vida, PRI, gastos y consecuencias se conservan hasta el cierre real.

## Créditos exactos

Esta aventura ha sido creada por Víctor Pedro Lucio Blanco, creador de Saga Antípodas

Si quieres publicar tus historias como partidas de rol adaptadas a este sistema de juego y al universo de Saga Antípodas, contacta con la Saga. Instagram: @dj_rol_master

Ampliación completa de escena — cápsula Free reconciliada

Canonical source: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/free/capsulas/19_gruta_del_sacrificio.md

<!-- FREE_VNEXT_HEADER_START -->
=== FREE LIMITED MODEL EXECUTION HEADER ===

FREE_PROTOCOL_REQUIRED = true
Protocol: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/free/protocolo/
Protocol raw: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/free/protocolo/PROTOCOLO_FREE.md
Router: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/free/router/
Manifest: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/free/manifest.json

CAPSULE: Cápsula 19 / Capsula 19
CAPSULE_ID: 19_gruta_del_sacrificio
SCENE: 19_gruta_sacrificio
PHASE: 19_gruta_sacrificio
DAY: 3
TIME: noche/eclipsándose
LOCATION: entrada / galería de la gruta

ENTRY CONDITION:
- canonical transition from one of: 18_seguimiento_gruta
- or recovered history/state selects this scene

PLAYER CAN SEE NOW:
- Al entrar, el Dalma encuentra una galería que conduce hacia el interior.
- Desde la entrada todavía no ve el espacio al que conduce la galería.

LIMITED_MODEL_HEADER_SCOPE = CAPSULE_ENTRY_STATE
SOURCE_PRIORITY = FREE_CAPSULE_INITIAL_STATE > FREE_CAPSULE_PAYLOAD > ADVANCED_RUNTIME_CONVENIENCE_TEXT

CAPSULE ENTRY STATE:
- Preserve inherited state and reveal only the entry-visible facts above.

AVAILABLE LATER IN CAPSULE:
- Al avanzar legítimamente puede oír voces y, desde una posición adecuada, contemplar la cámara, Karlein, la plataforma, el líder y los sectarios que continúen presentes según el estado heredado.

DISCOVERY TRIGGERS:
- Avanzar por la galería permite oír las primeras voces cuando los sectarios están presentes.
- Alcanzar una posición desde la que se contempla la cámara revela únicamente los elementos compatibles con la variante de entrada y el estado actual.

PLAYER ALREADY KNOWS:
- Only facts present in the current structured state and legitimately revealed during this game.
- PREVIOUS TEST SESSION != CURRENT GAME STATE.

CREATOR KNOWS BUT MUST NOT REVEAL:
- Consult the canonical scene, plot and knowledge matrix; filter every output through current state.
- CREATOR KNOWLEDGE != DALMA KNOWLEDGE.

IMPORTANT NPCS:
- None declared in the compact canonical scene record.

AVAILABLE CLUES:
- Only clues whose payload trigger is satisfied and recorded in current state.

IMPORTANT TRIGGERS:
- the current action establishes a canonical transition
- allowed targets: 20_refugio_cortijo, 21_regreso_pueblo

NO-ROLL INFORMATION:
- The scene opening and obvious visible elements above; never require a roll for information declared automatic in the payload.

ROLL-DEPENDENT INFORMATION:
- Read the complete payload and, when necessary, the canonical rules. A roll detects existing facts; it never creates clues.

STATE CHANGES:
- Apply only changes explicitly produced by the capsule, rules and current player action; then persist the structured state.

ALLOWED EXITS:
- Cápsula 20
- Cápsula 21

NEXT CAPSULES:
- https://sagaantipodas.com/ia/aventuras/sangre-y-poder/free/router/#capsula-20
- https://sagaantipodas.com/ia/aventuras/sangre-y-poder/free/router/#capsula-21

IF DATA IS MISSING:
follow canonical resource links below. Set NEED_DATA = true only for significant required data.

CANONICAL_LOOKUP_MAP
- scene: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/aventura/escenas/19_gruta_sacrificio.json
- phase: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/phased/phases/19_gruta_sacrificio.html
- rules: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/data/06_REFERENCIA_RAPIDA_REGLAS_IA.json
- manual: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/docs/05_MANUAL_COMPLETO_ANTIPODAS.md
- creation: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/data/03_RAZAS_PROFESIONES_CREACION.json
- equipment: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/data/09_EQUIPO_INICIAL_DISPONIBLE.json
- cards: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/data/07_CARTAS_NIVEL_I.json
- card_assets: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/data/32_ASSET_MANIFEST.json
- npcs: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/data/13_PNJ_SANGRE_Y_PODER.json
- knowledge_matrix: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/data/14_MATRIZ_DE_CONOCIMIENTO.json
- plot: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/docs/10_SANGRE_Y_PODER_TRAMA_CREADOR.md
- complete_adventure: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/docs/17_AVENTURA_COMPLETA_SANGRE_Y_PODER.md
- chronology: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/data/11_SANGRE_Y_PODER_ESTADO_CRONOLOGIA.json
- clues: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/data/22_PISTAS_Y_DEDUCCIONES.json
- anti_blocking: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/docs/23_SISTEMA_ANTIBLOQUEO.md
- improvisation_rules: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/docs/29_REGLAS_IMPROVISACION_NO_INVENCION.md
- runtime_state_schema: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/data/28_ESTADO_DE_PARTIDA_SCHEMA.json
- free_state_schema: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/free/state-schema.json

DO NOT INVENT CANON.
DO NOT SEARCH FOR ANOTHER CAPSULE GENERICALLY.
USE THE FREE ROUTER.
READ THE COMPLETE CAPSULE WHEN ACCESS ALLOWS IT.

CAPSULE_HEADER_LOADED = true
CAPSULE_PAYLOAD_VERIFIED = false until CAPSULE_PAYLOAD_END has been read.

=== END LIMITED MODEL EXECUTION HEADER ===
<!-- FREE_VNEXT_HEADER_END -->

CAPSULE_PAYLOAD_START
<!-- Generated from the authored DOCX source. Do not edit this file without updating the source/reconciliation workflow. -->

Fuente de origen: `Capsula_Free_19_Gruta_del_Sacrificio.docx`

Jerarquía: runtime estable + decisiones acumulativas expresas + ampliaciones compatibles de esta cápsula.

## Reconciliación acumulativa obligatoria — clímax híbrido

La resolución publicada sigue siendo la ruta por defecto: Rumal y Darfil bloquean el paso; el líder continúa el ritual; si cae el segundo sectario sin que el Dalma haya abierto antes una vía alternativa, no existe acción gratuita y el sacrificio se completa inmediatamente. Antes de ese punto pueden intentarse maniobras legítimas de intervención, sujetas a posición, amenazas y tiempo. El asset Líder del Bastión es sólo representación visual; no concede estadísticas, habilidades, equipo, identidad ni comportamiento. `PRE_TRANSFORMATION_LEADER_STATS = undefined`.

# SANGRE Y PODER

Cápsula Free 19 — Gruta del sacrificio

Documento completo de ejecución de escena

| PRINCIPIO DE ESTA ESCENA |
| --- |
| La Cápsula 19 es el clímax principal de Sangre y poder. Debe respetar estrictamente el estado heredado: Rumal y Darfil pueden llegar vivos, puede llegar sólo uno o pueden haber sido eliminados antes. Nunca deben restaurarse para reproducir la narración de referencia. La escena controla la entrada en la gruta, el ritual, el sacrificio, la transformación del líder en Vampiro, la posible reanimación de sectarios muertos dentro de la gruta, el combate final, la muerte del Vampiro, el fenómeno luminoso y el regreso de Karlein a la vida. La Cápsula 20 posee el refugio posterior. |

## 1. Identificación

| SCENE_ID = 19_gruta_sacrificio TITLE = Gruta del sacrificio LOCATION = Colina_del_Amanecer / Gruta_oculta GLOBAL_TIME = PERSISTENT CANONICAL_PREVIOUS = 18_seguimiento_gruta OR special_cave_search_branch CANONICAL_NEXT = 20_refugio |
| --- |

La Cápsula 19 controla:

- Entrada en la gruta, galería, voces y aproximación.

- Cámara ritual, Karlein, líder y Rumal/Darfil según el estado.

- Ritual, acciones para intentar detenerlo, combate, sacrificio y transformación.

- Vampiro, posible resurrección ritual de sectarios muertos dentro, combate final y desenlace sobrenatural.

No desarrolla todavía el refugio nocturno, el registro posterior del Cortijo, los recuerdos de Karlein, el regreso a Villapreston, la recompensa de Asher ni el epílogo.

## 2. Estado obligatorio de entrada

Antes de narrar nada, leer y conservar:

- CURRENT_DAY, CURRENT_TIME y ELAPSED_TIME.

- STATE y REVEALED_STATE.

- Vida actual/máxima y PRI actual/máximo.

- Equipo, inventario, consumibles, dinero y efectos persistentes.

- Fuente de luz actual.

- Estado completo de Rumal y Darfil: eliminados, Vida, cartas reveladas y botín ya recogido.

- STATE.gruta_entrance_found, gruta_entered, gruta_entry_time y gruta_entry_variant.

- STATE.gruta_found_without_following.

- STATE.book_sangre_y_poder_taken y book_reading_minutes.

- Estado de combate previo, PX/eventos y cualquier modificador persistente.

| PRESERVE_ALL_PRIOR_STATE = true |
| --- |

## 3. Recursos canónicos auxiliares

| MANUAL_URL = https://sagaantipodas.com/ia/juegos/antipodas-juego-rol-con-cartas/manual/ TRAMA_GENERAL_URL = https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/docs/10_SANGRE_Y_PODER_TRAMA_CREADOR.md FULL_ADVENTURE_CONTEXT_URL = https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/docs/17_AVENTURA_COMPLETA_SANGRE_Y_PODER.md |
| --- |

- Usarlos sólo cuando una acción concreta requiera precisión adicional.

- Consultar especialmente ante un ataque o acción directa contra el líder antes de la transformación, una tentativa de interrumpir el ritual o una estrategia no resuelta por la cápsula.

- No utilizar la trama general para adelantar información al jugador.

## 4. Variantes de entrada

Determinar primero cómo llegó el Dalma. No utilizar una escena estándar única para todas las partidas.

| ENTRY_VARIANT: A = normal_follow B = one_sectarian_absent C = sectarians_eliminated_after_cave_location_known D = sectarians_eliminated_cave_found_late |
| --- |

## 5. Variante A — seguimiento normal

| Rumal_present = true Darfil_present = true |
| --- |

Han entrado antes que el Dalma. Conservar cualquier conocimiento previo sobre ellos. No reiniciar sus cartas, Vida, heridas, equipo ni botín.

## 6. Variante B — sólo uno llega

| IF rumal_eliminated: Rumal_present = false IF darfil_eliminated: Darfil_present = false |
| --- |

El superviviente ocupa la función de sectario presente. Nunca duplicarlo para mantener dos enemigos.

## 7. Variante C — ambos muertos pero la entrada ya era conocida

| GRUTA_ENTRY_VARIANT = sectarians_eliminated_after_cave_location_known Rumal_present = false Darfil_present = false RITUAL_STAGE = derive_from_CURRENT_TIME_and_ELAPSED_TIME |
| --- |

No requiere búsqueda de la cueva. No forzar automáticamente la daga ni la transformación: el momento real del ritual depende del reloj heredado.

## 8. Variante D — ambos muertos y la cueva se encontró buscando

| GRUTA_ENTRY_VARIANT = sectarians_eliminated_cave_found_late ENTRY_MOMENT = dagger_and_transformation Rumal_present = false Darfil_present = false OTHER_SECTARIANS_PRESENT = false VAMPIRE_ONLY_AFTER_TRANSFORMATION = true |
| --- |

Esta variante ya está fijada por las cápsulas anteriores: la búsqueda consume el tiempo crítico y el Dalma llega justo en el momento de la daga y la transformación. Rumal y Darfil no están presentes y no hay otros sectarios.

## 9. Entrada física a la gruta

Al entrar, el Dalma encuentra una galería que conduce hacia el interior. No describir todavía toda la cámara. Puede avanzar normalmente, en silencio, deprisa, con luz, sin luz, preparado para combatir o mediante otra acción coherente.

## 10. No inventar estructura adicional

La fuente autoriza:

- Entrada oculta.

- Galería.

- Cámara larga.

- Estrechamiento o zona central.

- Plataforma.

- Altar.

- Abertura vinculada al exterior/cielo.

No añadir habitaciones laterales, celdas, puertas secundarias, túneles, tesoros, criptas, estatuas, puentes, pozos o salidas secretas.

## 11. Primeras voces

En la ruta ordinaria, si los sectarios están presentes, al avanzar puede escuchar:

| VOCES CANÓNICAS |
| --- |
| —Ya debe estar todo preparado. —No queda mucho tiempo. |

Una tercera voz responde desde más al fondo, pero su texto exacto no está fijado.

| THIRD_VOICE_EXACT_TEXT = undefined |
| --- |

No inventarle un discurso revelador.

## 12. Las voces no revelan todavía todo

Estas frases sólo prueban que hay personas dentro y que preparan algo sometido a tiempo. No permiten afirmar automáticamente que Karlein está allí, los detalles del sacrificio, la identidad del líder, la transformación en Vampiro ni la mecánica exacta del ritual.

## 13. Aproximación silenciosa

| ACTION = Subterfugio / acechar |
| --- |

Aplicar el manual y los modificadores reales cuando exista riesgo de detección. No pedir una tirada si el Dalma simplemente permanece inmóvil escuchando desde una posición donde todavía no existe riesgo real.

## 14. Éxito en aproximación

Un éxito permite alcanzar una posición desde la que puede contemplar la cámara sin haber sido detectado. No significa teletransportarse hasta Karlein, atacar automáticamente al líder ni rescatar al niño sin oposición.

## 15. Fallo en aproximación

| STATE.player_detected_in_gruta = true |
| --- |

Los enemigos presentes reaccionan. Si Rumal/Darfil están activos, el líder puede ordenar: «¡Detenla!».

## 16. Primera visión completa de la cámara

| CHAMBER_SHAPE = long KARLEIN_DISTANCE_REFERENCE ≈ 20 metres KARLEIN_POSITION = tied_on_platform LEADER_POSITION = beside_Karlein / altar_area |
| --- |

La referencia de unos veinte metros es narrativa; no convertirla en una cuadrícula exacta de combate salvo que el manual lo exija para una acción concreta.

## 17. Karlein

| KARLEIN_PRESENT = true KARLEIN_RESTRAINED = true DO_NOT_DECLARE_KARLEIN_DEAD_BEFORE_SACRIFICE = true |
| --- |

Está atado sobre una plataforma y en la secuencia canónica no se mueve. No inventar heridas previas, sangre previa, enfermedad, maldición ni estado médico exacto.

## 18. El líder

| LEADER_VISIBLE: human tall thin dark_hair_with_grey LEADER_NAME = unknown |
| --- |

Si el Dalma recibió de Heldris la descripción completa, puede reconocer que coincide con el hombre que visitó al bibliotecario semanas antes. Esto no revela un nombre.

## 19. No convertir al líder en «Líder del Bastión»

| PRE_TRANSFORMATION_LEADER_CARD = NOT_ASSIGNED DO_NOT_USE_LIDER_DEL_BASTION_BY_ASSUMPTION = true |
| --- |

Existe una carta genérica llamada Líder del Bastión, pero las fuentes de Sangre y poder no identifican al hombre de la gruta con esa carta. No introducirle por semejanza atributos, habilidades o equipo no establecidos.

## 20. Rumal y Darfil en la cámara

| IF Rumal_present: Rumal_position = central_area IF Darfil_present: Darfil_position = central_area |
| --- |

En la ruta normal ocupan el centro y pueden bloquear el estrechamiento entre el Dalma y Karlein. No es obligatorio que ambos existan si el estado heredado dice lo contrario.

## 21. Sus cartas en combate

| Rumal = Siervo de Amán + Daga Darfil = Siervo de Amán + Daga BASE_STATS = Vida 5 / Fuerza 4 / Resistencia 3 / Iniciativa 3 HABILIDAD = Congregación |
| --- |

Conservar Vida real, heridas y cualquier efecto previo. No restaurar el estado de un enemigo ya dañado.

## 22. El dinero no se duplica

| Rumal_loot = Daga + 2 platas Darfil_loot = Daga + 2 platas DO_NOT_RESPAWN_LOOT = true |
| --- |

Si ese dinero o las dagas ya fueron saqueados, no reaparecen.

## 23. Si el Dalma permanece oculto observando

| OBSERVATION_ADVANCES_TIME = true |
| --- |

Puede observar, pero el ritual continúa. No congelar la escena hasta que el jugador decida intervenir.

## 24. El verdadero enemigo de la escena es también el reloj

| RITUAL_DEADLINE = eclipse_time |
| --- |

El mensaje de Dumar vinculaba sangre, sacrificio, lunas negras y regreso como ser inmortal. La documentación disponible no fija una cantidad universal de asaltos, minutos o acciones antes del sacrificio. No inventarla.

## 25. Cronología del ritual

| RITUAL_PROGRESS uses: CURRENT_TIME distance_to_Karlein player_actions combat_elapsed_time previous_delays entry_variant |
| --- |

Cada acción relevante consume tiempo. La daga ocurre cuando el desarrollo temporal real del ritual alcanza su punto canónico.

## 26. No forzar la daga antes de tiempo

| IF player_reaches_chamber_before_ritual_deadline: player_may_attempt_to_intervene |
| --- |

No declarar que el líder apuñala a Karlein independientemente de lo que haga el jugador, salvo en la variante late cave search, donde la llegada al momento de la daga ya quedó establecida.

## 27. Tampoco garantizar que pueda impedirla

Llegar temprano no garantiza automáticamente salvar a Karlein. Si intenta disparar al líder, atacarlo, usar un hechizo, correr hacia Karlein, cortar las cuerdas, distraerlo o interrumpir el ritual de otra forma, resolver con manual, posición real, tiempo real y fuentes canónicas, sin fabricar estadísticas.

## 28. Ataque directo al líder antes de transformarse

| IF player_attacks_human_leader_before_transformation: consult canonical adventure combat/context DO_NOT_INVENT_LEADER_STATS = true |
| --- |

La acción del jugador es válida. Lo prohibido es resolverla inventando Fuerza, Resistencia, Iniciativa, Vida, armadura, arma o una carta humana no documentada.

## 29. Intentar liberar a Karlein

| FREE_KARLEIN_ATTEMPT = legitimate |
| --- |

Si consigue físicamente llegar hasta él antes de la daga, puede intentar liberarlo. La acción consume tiempo y depende de amenazas activas, posición del líder, ataduras reales, herramientas y situación de combate. No añadir una cerradura o mecanismo especial inexistente.

## 30. Si es detectado con Rumal/Darfil presentes

| LEADER_CONTINUES_RITUAL_WHILE_SECTARIANS_ENGAGE = true |
| --- |

El líder continúa el ritual mientras los sectarios intentan detener al Dalma. Rumal y Darfil pueden bloquear el paso hacia Karlein.

## 31. Combate contra Rumal/Darfil

Usar íntegramente el sistema normal de combate. Cada enemigo conserva su propia Vida, Iniciativa, daño, efectos y equipo. No convertir el enfrentamiento en una resolución narrativa automática.

## 32. Matar a Rumal o Darfil dentro de la gruta

| IF Rumal dies inside gruta before transformation: STATE.rumal_died_in_gruta_before_transformation = true IF Darfil dies inside gruta before transformation: STATE.darfil_died_in_gruta_before_transformation = true |
| --- |

Registrar dónde y cuándo mueren: será decisivo tras la transformación.

## 33. Muertes anteriores fuera de la gruta

| IF Rumal died outside gruta: STATE.rumal_died_in_gruta_before_transformation = false IF Darfil died outside gruta: STATE.darfil_died_in_gruta_before_transformation = false NO_TELEPORTING_CORPSES = true |
| --- |

No aparecerán después de la transformación.

## 34. El sacrificio

Cuando el ritual alcanza su punto, el líder:

1.  Hunde una hoja en Karlein.

2.  Recoge su sangre.

3.  Bebe la sangre.

| STATE.karlein_sacrificed = true STATE.leader_drank_karlein_blood = true |
| --- |

No inventar recipiente, cantidad exacta de sangre ni tipo concreto de hoja si la fuente no lo define.

## 35. Las lunas

| ECLIPSE_ACTIVE = true |
| --- |

Inmediatamente alrededor del sacrificio, las dos lunas comienzan a oscurecerse sobre la abertura de la gruta. Éste es el clímax canónico del eclipse.

## 36. La fase 24 no interrumpe la 19

| CANONICAL_GRUTA_CLIMAX_ACTIVE = true IF eclipse_time reached AND CURRENT_SCENE == 19 AND CANONICAL_GRUTA_CLIMAX_ACTIVE: DO_NOT_ROUTE_TO_CAPSULE_24 |
| --- |

Una vez la Cápsula 19 desarrolla legítimamente el clímax, el eclipse se resuelve dentro de esta escena.

## 37. Transformación

El líder sufre una transformación física: la espalda se arquea, la piel pierde color, los dedos se alargan, los dientes crecen y el cuerpo deja de parecer completamente humano.

| STATE.leader_transformed = true STATE.vampire_active = true |
| --- |

## 38. Revelar carta del Vampiro

En ese instante mostrar la carta oficial del enemigo Vampiro. Para esta cápsula usar la ficha completa asociada a vampiro.pdf.

| Atributo | Valor |
| --- | --- |
| Vida | 7 |
| Fuerza | 6 |
| Resistencia | 4 |
| Iniciativa | 5 |

- Drenar: cuando causa daño de combate, recupera 2 Vida sin superar su máximo.

- Sin vida: no se aturde y no recibe efectos de venenos ni pociones.

## 39. Asset oficial del Vampiro

| VAMPIRE_CARD_ASSET = /assets/cartas/tierras-antipodas/vampiro.jpg SHOW_OFFICIAL_VAMPIRE_CARD = true DO_NOT_RECREATE_CARD = true |
| --- |

## 40. Drenar

| IF Vampire deals combat_damage: Vampire recovers 2 Life max_life = 7 |
| --- |

No puede superar su Vida máxima.

## 41. Sin vida

| Vampire: cannot_be_stunned poisons_do_not_affect potions_do_not_affect |
| --- |

No hacer excepciones narrativas.

## 42. Frase del Vampiro

| LÍNEA CANÓNICA |
| --- |
| —Un nuevo amanecer. |

Puede utilizarse tras la transformación. No es obligatorio repetirla si la secuencia se ha alterado de forma que resulte incoherente.

## 43. Resurrección ritual de Rumal y Darfil

| IF STATE.rumal_died_in_gruta_before_transformation: STATE.rumal_undead_active = true IF STATE.darfil_died_in_gruta_before_transformation: STATE.darfil_undead_active = true |
| --- |

Sólo se levantan como muertos vivientes quienes murieron dentro de la gruta antes de la transformación.

## 44. Si murieron fuera

| IF Rumal died outside gruta: Rumal_undead_active = false IF Darfil died outside gruta: Darfil_undead_active = false |
| --- |

Esto preserva la variante en la que el Vampiro es el único enemigo.

## 45. Si uno murió dentro

Sólo se levanta ese sectario. Ejemplo: si Rumal murió en la cámara y Darfil murió fuera, Rumal se convierte en Muerto Viviente y Darfil permanece ausente. No crear un segundo muerto viviente.

## 46. Si siguen vivos durante la transformación

| IF Rumal_alive_at_transformation: Rumal remains living Siervo_de_Aman IF Darfil_alive_at_transformation: Darfil remains living Siervo_de_Aman |
| --- |

La fuente sólo demuestra la transformación en muerto viviente de quienes ya habían muerto.

## 47. Carta de Muerto Viviente

Cuando uno de ellos se levanta, revelar la carta oficial de Muerto Viviente.

| Atributo | Valor |
| --- | --- |
| Vida | 6 |
| Fuerza | 4 |
| Resistencia | 3 |
| Iniciativa | 3 |

- Hambre voraz: cuando hace daño, quita 1 Vida adicional.

- Sin vida: no se aturde y no recibe efectos de venenos ni pociones.

## 48. Nueva entidad de combate

| old living sectarian state = dead new combat state = Muerto_Viviente Life = 6 enemy_card = Muerto Viviente |
| --- |

Mantener la identidad narrativa Rumal o Darfil, pero no restaurar la Vida anterior de Siervo de Amán.

## 49. Equipo del muerto viviente

| IF dagger_was_not_removed: physical_dagger_remains_with_body NO_LOOT_DUPLICATION = true |
| --- |

El cuerpo conserva los objetos físicos que todavía posea. No crear un segundo ejemplar.

## 50. Combate final — composición dinámica

| Estado heredado | Enemigos posibles tras la transformación |
| --- | --- |
| Ruta normal; Rumal y Darfil murieron dentro | Vampiro + Muerto Viviente Rumal + Muerto Viviente Darfil |
| Sólo uno murió dentro | Vampiro + ese Muerto Viviente + cualquier sectario vivo restante |
| Ambos murieron fuera | Vampiro sólo |
| Ambos vivos al transformar | Vampiro + Rumal vivo + Darfil vivo |

Nunca añadir enemigos para alcanzar un número predeterminado.

## 51. No hay otros sectarios

| OTHER_SECTARIANS_PRESENT = 0 |
| --- |

No introducir acólitos, sacerdotes, guardias, refuerzos o cultistas adicionales.

## 52. Sistema de combate

| COMBAT_SYSTEM = canonical Antipodas Modo Aventura de Rol DAMAGE = 1d6 + Fuerza_atacante - Resistencia_defensor IF DAMAGE > 0: lose_that_amount_of_Life |
| --- |

Aplicar iniciativa, orden del asalto, ataques, hechizos, habilidades, armas, armaduras, consumibles, muerte, PRI y efectos conforme al manual.

## 53. Estado de Karlein durante el combate final

| STATE.karlein_alive_normal = false STATE.karlein_post_sacrifice_unresolved = true |
| --- |

Una vez sacrificado, no declarar todavía que ha muerto definitivamente. La escena canónica no ha terminado.

## 54. El Dalma puede intentar atenderlo

Puede acercarse, examinarlo o actuar sobre él si la situación lo permite. Sin embargo, una curación ordinaria no sustituye automáticamente la resolución sobrenatural canónica del clímax.

## 55. Muerte del Vampiro

| STATE.vampire_defeated = true |
| --- |

Cuando su Vida llega legítimamente a 0, el combate no termina simplemente con un cadáver ordinario: se activa el acontecimiento canónico.

## 56. Desintegración

1.  El Vampiro queda inmóvil.

2.  Comienza a deshacerse.

3.  Finalmente se convierte en polvo.

| VAMPIRE_CORPSE = none VAMPIRE_REMAINS = dust |
| --- |

No generar botín corporal no definido.

## 57. La luz

De su pecho surge una luz. Narrarla como fenómeno:

- No es fuego.

- No es una magia que el Dalma pueda identificar automáticamente.

- Forma una nube luminosa.

- Adopta brevemente una forma humana.

- Atraviesa la cámara.

- Entra en Karlein.

## 58. Frontera epistemológica de la luz

| LIGHT_EVENT = canonical_fact LIGHT_TRUE_NATURE = unknown DO_NOT_EXPLAIN_LIGHT = true |
| --- |

No identificarla como alma de Dumar, espíritu de Árathan, efecto del Elixir de Amán, dios o hechizo de resurrección. La causa permanece desconocida.

## 59. Caída de los Muertos Vivientes

| IF rumal_undead_active: STATE.rumal_undead_active = false IF darfil_undead_active: STATE.darfil_undead_active = false |
| --- |

Cuando el Vampiro muere y culmina el fenómeno, los cuerpos reanimados caen al suelo.

## 60. Karlein vuelve a respirar

| Karlein breathes Karlein opens eyes STATE.karlein_revived = true STATE.karlein_alive = true STATE.karlein_rescued = true |
| --- |

Tras un breve instante sin reacción, Karlein inspira y abre los ojos.

## 61. No explicar inmediatamente lo ocurrido

Narrar el hecho observado, no una teoría. No afirmar que su alma ha regresado gracias a una causa concreta. La naturaleza del fenómeno permanece desconocida.

## 62. Estado de Rumal y Darfil después

| IF Rumal ended as undead and collapsed: STATE.rumal_final_dead = true IF Darfil ended as undead and collapsed: STATE.darfil_final_dead = true |
| --- |

Si ya estaban muertos fuera, siguen muertos allí y no existe un nuevo cadáver dentro. Si estaban vivos y sobrevivieron al combate, conservar su estado real; no declararlos muertos sólo porque la narración de referencia lo hiciera.

## 63. Botín final

| VAMPIRE_LOOT = none_defined Rumal_defined_loot = Daga + 2 platas if still_present Darfil_defined_loot = Daga + 2 platas if still_present NO_LOOT_DUPLICATION = true |
| --- |

No crear botín del Vampiro. Rumal y Darfil conservan únicamente lo ya definido y no recogido.

## 64. El altar y la cámara después

Pueden permanecer accesibles como escenario físico, pero la Cápsula 19 no genera automáticamente tesoro, segundo libro, mapa, reliquia, documentos u objetos rituales valiosos. Una búsqueda exhaustiva posterior pertenece a la fase que controle el refugio/registro.

## 65. Fin del peligro inmediato

| IF Vampire_defeated AND all_hostile_active_enemies_resolved AND Karlein_revived: STATE.gruta_climax_completed = true |
| --- |

## 66. Transición a la 20

| IF STATE.gruta_climax_completed: SAVE COMPLETE STATE ROUTE_TO = CAPSULE_20_REFUGIO |
| --- |

La Cápsula 19 termina cuando el combate final ha acabado, ocurre el fenómeno de la luz, Karlein vuelve a respirar y se conserva el estado completo. La noche de refugio en el Cortijo pertenece a la Cápsula 20.

## 67. Si el Dalma muere

| IF DALMA_DIES: apply canonical death/failure resolution |
| --- |

No falsear tiradas ni reducir daño para garantizar el final canónico. No ejecutar la resurrección de Karlein como recompensa automática si la batalla no ha producido legítimamente la muerte del Vampiro.

## 68. No proteger artificialmente al Vampiro

No aumentar su Vida, Resistencia, número de enemigos ni inmunidades para prolongar el clímax. Usar la carta real.

## 69. No proteger artificialmente a Karlein

La prioridad es respetar la cronología y la agencia, no garantizar un final escrito. La única excepción rígida ya aprobada es la entrada sectarians_eliminated_cave_found_late, que llega al momento de daga y transformación. Las demás variantes mantienen tiempo real y acciones reales.

## 70. Estado operativo

| STATE.gruta_entered = true\|false STATE.gruta_entry_time = time STATE.gruta_entry_variant = normal_follow \| one_sectarian_absent \| sectarians_eliminated_after_cave_location_known \| sectarians_eliminated_cave_found_late STATE.gruta_voices_heard = true\|false STATE.gruta_chamber_seen = true\|false STATE.karlein_found = true\|false STATE.karlein_restrained_seen = true\|false STATE.leader_seen = true\|false STATE.leader_matches_heldris_description = true\|false STATE.player_detected_in_gruta = true\|false STATE.rumal_present_in_gruta = true\|false STATE.darfil_present_in_gruta = true\|false STATE.rumal_died_in_gruta_before_transformation = true\|false STATE.darfil_died_in_gruta_before_transformation = true\|false STATE.karlein_sacrificed = true\|false STATE.leader_drank_karlein_blood = true\|false STATE.eclipse_active = true\|false STATE.leader_transformed = true\|false STATE.vampire_active = true\|false STATE.vampire_current_life = 0..7 STATE.rumal_undead_active = true\|false STATE.darfil_undead_active = true\|false STATE.vampire_defeated = true\|false STATE.light_event_seen = true\|false STATE.karlein_revived = true\|false STATE.karlein_alive = true\|false STATE.karlein_rescued = true\|false STATE.gruta_climax_completed = true\|false |
| --- |

## 71. REVEALED_STATE progresivo

| REVEALED_STATE.gruta_gallery REVEALED_STATE.voices_inside_gruta REVEALED_STATE.gruta_ritual_chamber REVEALED_STATE.karlein_in_gruta REVEALED_STATE.karlein_restrained REVEALED_STATE.unknown_leader_present REVEALED_STATE.leader_is_heldris_visitor # sólo si la descripción era conocida y la confirmación visual es legítima REVEALED_STATE.ritual_uses_karlein_blood # sólo tras presenciarlo o descubrirlo legítimamente REVEALED_STATE.leader_transforms_into_vampire # sólo después de la transformación REVEALED_STATE.dead_sectarian_reanimation # sólo si se presencia REVEALED_STATE.vampire_death_light # sólo si se presencia REVEALED_STATE.karlein_revived # sólo después del evento |
| --- |

## 72. Pruebas mínimas de conformidad

| Caso | Resultado esperado |
| --- | --- |
| Entra siguiendo a Rumal y Darfil | Galería y voces; no mostrar toda la cámara desde la boca. |
| Avanza en silencio | Subterfugio cuando exista riesgo real de detección. |
| Tiene éxito | Contempla la cámara sin ser detectado; no teletransporte hasta Karlein. |
| Ve la cámara | Karlein a unos 20 m, atado sobre plataforma; líder junto a él; sectarios según estado. |
| Conoce descripción Heldris | Reconoce al líder como visitante desconocido; no conoce su nombre. |
| Pregunta si es Líder del Bastión | No está establecido; no asignar esa carta. |
| Ataca al líder antes de transformación | Acción legítima; resolver con runtime/trama sin inventar ficha humana. |
| Ataca a Rumal/Darfil | Siervos de Amán con estado real heredado. |
| Mata a Rumal dentro | Registrar muerte dentro antes de transformación. |
| Rumal murió fuera | No aparece ni se levanta dentro. |
| Ambos eliminados + búsqueda tardía | Llegada a daga/transformación; Vampiro único enemigo. |
| Ambos eliminados + entrada ya conocida | Usar CURRENT_TIME; no forzar automáticamente la daga. |
| Ritual alcanza su punto | Hoja en Karlein -> sangre -> líder bebe -> eclipse -> transformación. |
| Transformación | Revelar carta oficial Vampiro. |
| Vampiro causa daño | Drenar: recupera 2 Vida hasta máximo 7. |
| Intentan envenenar al Vampiro | Sin vida: venenos no le afectan. |
| Sectario murió dentro | Tras transformación se levanta como Muerto Viviente. |
| Sectario sigue vivo | Continúa como Siervo de Amán. |
| Muerto Viviente causa daño | Hambre voraz: +1 Vida adicional. |
| Vampiro muere | Se deshace -> luz -> forma humana momentánea -> entra en Karlein. |
| Pregunta qué era la luz | Desconocido; no inventar explicación. |
| Karlein | Inspira y abre los ojos. |
| Fin del clímax | Guardar estado y transferir a Cápsula 20. |

## 73. Lock final propuesto

| === SCENE 19 EXECUTION LOCK === CURRENT_SCENE = 19_gruta_sacrificio LOCATION = Colina_del_Amanecer / Gruta_oculta GLOBAL_TIME = PERSISTENT CANONICAL_NEXT = CAPSULE_20_REFUGIO ENTRY_VARIANTS = normal_follow one_sectarian_absent sectarians_eliminated_after_cave_location_known sectarians_eliminated_cave_found_late PRESERVE_RUMAL_DARFIL_REAL_STATE = true IF_ENTRY_VARIANT == sectarians_eliminated_cave_found_late: Rumal_present = false Darfil_present = false other_sectarians = 0 entry_moment = dagger_and_transformation vampire_only_after_transformation = true IF_ENTRY_VARIANT == sectarians_eliminated_after_cave_location_known: Rumal_present = false Darfil_present = false ritual_stage = derive_from_CURRENT_TIME NORMAL_ENTRY: gallery canonical_voices_if_applicable long_chamber Karlein_approx_20m Karlein_tied_on_platform leader_near_Karlein Rumal_Darfil_central_if_present CANONICAL_VOICES = "Ya debe estar todo preparado." "No queda mucho tiempo." THIRD_VOICE_EXACT_TEXT = undefined LEADER = human tall thin dark_hair_with_grey identity_name_unknown IF Heldris_description_known: leader_matches_previous_library_visitor = true PRE_TRANSFORMATION_LEADER_CARD = undefined DO_NOT_ASSIGN_LIDER_DEL_BASTION = true RITUAL_DEADLINE = eclipse_time ALL_PLAYER_ACTIONS_ADVANCE_TIME = true COMBAT_ADVANCES_TIME = true OBSERVATION_ADVANCES_TIME = true IF_PLAYER_REACHES_LEADER_BEFORE_DEADLINE: allow_legitimate_intervention_attempt consult_canonical_runtime_if_resolution_not_defined do_not_invent_leader_stats IF_RITUAL_REACHES_SACRIFICE_POINT: stab_Karlein collect_Karlein_blood leader_drinks_blood activate_eclipse transform_leader_to_Vampire IF_CANONICAL_GRUTA_CLIMAX_ACTIVE: eclipse_does_not_route_to_CAPSULE_24 VAMPIRE_CARD = Vida 7 Fuerza 6 Resistencia 4 Iniciativa 5 Drenar Sin_vida VAMPIRE_DRENAR = on_combat_damage recover_2_life max_7 SIN_VIDA = cannot_be_stunned immune_to_poisons immune_to_potions IF Rumal_dies_inside_gruta_before_transformation: Rumal_returns_as = Muerto_Viviente IF Darfil_dies_inside_gruta_before_transformation: Darfil_returns_as = Muerto_Viviente IF sectarian_died_outside_gruta: do_not_resurrect_inside IF sectarian_alive_at_transformation: remain_living_Siervo_de_Aman MUERTO_VIVIENTE_CARD = Vida 6 Fuerza 4 Resistencia 3 Iniciativa 3 Hambre_voraz Sin_vida HAMBRE_VORAZ = on_successful_damage +1 additional_life_damage OTHER_SECTARIANS_PRESENT = 0 IF_VAMPIRE_DEFEATED: vampire_disintegrates luminous_human_shaped_cloud_emerges light_enters_Karlein ritual_undead_collapse Karlein_breathes Karlein_opens_eyes LIGHT_TRUE_NATURE = unknown DO_NOT_EXPLAIN_LIGHT = true VAMPIRE_LOOT = none_defined NO_LOOT_DUPLICATION = true IF_CLIMAX_RESOLVED: preserve_complete_state route_to = CAPSULE_20_REFUGIO CAPSULE_19_DOES_NOT_EXECUTE_REFUGE = true PRESERVE_ALL_PRIOR_STATE = true DO_NOT_TOUCH_DALMA_CREATION = true === END SCENE 19 LOCK === |
| --- |

## 74. Resumen ultracompacto para modelo limitado

| GRUTA DEL SACRIFICIO. Heredar TODO. Rumal/Darfil sólo existen si siguen vivos/presentes. Entrada normal: galería -> voces -> cámara larga. Karlein: ~20 m, atado sobre plataforma. Líder: humano, alto, delgado, pelo oscuro con canas. Si conoce descripción de Heldris: es el visitante de la biblioteca. NOMBRE DESCONOCIDO. NO asignarle carta Líder del Bastión. Rumal/Darfil: zona central si presentes. Si combate: Siervo de Amán + Daga. Conservar Vida/estado anterior. RITUAL = reloj real. No fijar número arbitrario de asaltos. Si Dalma llega antes: puede intentar intervenir. No garantizar éxito ni forzar daga. VARIANTE BÚSQUEDA TARDÍA: ambos sectarios ausentes. Llegada fija a daga + transformación. Vampiro único enemigo. Sacrificio: hoja en Karlein -> recoge sangre -> líder bebe -> eclipse -> transformación. VAMPIRO: V7 F6 R4 I5. Drenar = +2 Vida al hacer daño. Sin vida = no aturdimiento, sin venenos ni pociones. Sectario muerto DENTRO antes de transformación -> se levanta como Muerto Viviente. Muerto fuera -> NO aparece. Sectario vivo -> sigue siendo Siervo de Amán. MUERTO VIVIENTE: V6 F4 R3 I3. Hambre voraz = +1 Vida si hace daño. Sin vida. Muerte Vampiro: se deshace -> luz de su pecho -> nube luminosa brevemente humana -> entra en Karlein -> muertos vivientes caen -> Vampiro polvo -> Karlein inspira -> abre los ojos. NO explicar qué es la luz. Guardar TODO -> Cápsula 20. La 19 NO narra todavía la noche de refugio en el Cortijo. |
| --- |

CAPSULE_PAYLOAD_END

Regla/fuente local — data/19_MAPA_GRUTA_COMBATE_FINAL.json

Canonical source: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/data/19_MAPA_GRUTA_COMBATE_FINAL.json

{
  "imagen": "../assets/mapas/gruta_del_sacrificio.png",
  "longitud_aprox_m": 20,
  "disposicion": [
    "entrada",
    "zona_central_bloqueo_sectarios",
    "altar_con_Karlein_y_lider"
  ],
  "regla": "Rumal y Darfil bloquean físicamente el paso y líneas claras al líder; al morir el segundo se dispara la transición del ritual sin acción intermedia."
}

Regla/fuente local — data/20_COMBATES_SANGRE_Y_PODER.json

Canonical source: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/data/20_COMBATES_SANGRE_Y_PODER.json

{
  "fase_1": {
    "oponentes": [
      {
        "pnj": "rumal",
        "base": "Siervo de Amán"
      },
      {
        "pnj": "darfil",
        "base": "Siervo de Amán"
      }
    ],
    "objetivo_enemigo": "bloquear el paso",
    "reglas": [
      "El líder no entra normalmente en combate y continúa el ritual.",
      "Mientras al menos un sectario mantenga el bloqueo convencional, el Dalma no alcanza gratuitamente el altar.",
      "No hay línea clara inicial para atacar al líder a través de la zona de bloqueo.",
      "Antes de la transición automática el Dalma puede intentar abrir una vía legítima mediante posición, movimiento, distancia, hechizo, distracción o liberación; resolver con reglas existentes y tiempo real.",
      "PRE_TRANSFORMATION_LEADER_STATS = undefined; no inventar ficha humana."
    ],
    "transicion": "muerte del segundo sectario",
    "intervencion_previa_autorizada": {
      "actions": [
        "buscar línea clara",
        "bordear o superar bloqueo",
        "ataque a distancia con línea legítima",
        "hechizo aplicable",
        "distraer",
        "alcanzar Karlein",
        "liberar ataduras",
        "interrumpir físicamente ritual",
        "otra maniobra coherente"
      ],
      "guarantees_success": false,
      "consumes_time": true,
      "respects": [
        "position",
        "active threats",
        "ritual clock",
        "canonical rules"
      ]
    }
  },
  "transicion": {
    "orden": [
      "muere segundo sectario",
      "no hay acción intermedia",
      "líder completa sacrificio",
      "líder bebe sangre de Karlein",
      "Karlein queda sin respiración",
      "líder se transforma en Vampiro",
      "Rumal y Darfil se levantan como Muertos Vivientes"
    ],
    "precondition": "second sectarian dies and no alternative intervention route was opened beforehand"
  },
  "fase_2": {
    "oponentes": [
      {
        "base": "Vampiro",
        "cantidad": 1,
        "regla_especial": "Drenar: cuando hace daño de combate recupera 2 Vida; Sin vida."
      },
      {
        "base": "Muerto Viviente",
        "cantidad": 2,
        "regla_especial": "Hambre voraz: cuando hace daño, quita 1 Vida adicional; Sin vida."
      }
    ],
    "victoria": "Al morir el Vampiro, una nube de luz sale de su cuerpo, entra en Karlein, los muertos vivientes caen y Karlein vuelve a la vida."
  },
  "bases": {
    "Líder del Bastión": {
      "codigo": "lider-del-bastion",
      "nombre": "Líder del Bastión",
      "tipo": "enemigo",
      "imagen": "/assets/cartas/tierras-antipodas/lider-del-bastion.jpg",
      "atributos": {
        "vida": 7,
        "fuerza": 5,
        "resistencia": 4,
        "iniciativa": 3
      },
      "img": "/assets/secta/cards/liderdelbastion.jpg"
    },
    "Muerto Viviente": {
      "codigo": "muerto-viviente",
      "nombre": "Muerto Viviente",
      "tipo": "enemigo",
      "imagen": "/assets/cartas/tierras-antipodas/muerto-viviente.jpg",
      "atributos": {
        "vida": 6,
        "fuerza": 4,
        "resistencia": 3,
        "iniciativa": 3
      },
      "img": "/assets/secta/cards/muertoviviente.jpg"
    },
    "Siervo de Amán": {
      "codigo": "siervo-de-aman",
      "nombre": "Siervo de Amán",
      "tipo": "enemigo",
      "imagen": "/assets/cartas/tierras-antipodas/siervo-de-aman.jpg",
      "atributos": {
        "vida": 5,
        "fuerza": 4,
        "resistencia": 3,
        "iniciativa": 3
      },
      "img": "/assets/secta/cards/siervodeaman.jpg"
    },
    "Vampiro": {
      "codigo": "vampiro",
      "nombre": "Vampiro",
      "tipo": "enemigo",
      "imagen": "/assets/cartas/tierras-antipodas/vampiro.jpg",
      "atributos": {
        "vida": 7,
        "fuerza": 6,
        "resistencia": 4,
        "iniciativa": 5
      },
      "img": "/assets/secta/cards/vampiro.jpg"
    },
    "Demonio": {
      "codigo": "demonio",
      "nombre": "Demonio",
      "tipo": "enemigo",
      "atributos": {
        "vida": 13,
        "fuerza": 6,
        "resistencia": 6,
        "iniciativa": 6
      },
      "asset": "assets/enemigos/demonio.jpg"
    }
  },
  "reglas_adicionales": {
    "siervo_de_aman": "Congregación: +1 Fuerza por cada sectario activo que no entre en combate.",
    "lider_visual": "Líder del Bastión may be used only as a visual representation. Do not inherit stats, abilities, equipment, identity, name or mechanical behavior.",
    "pre_transformation_leader_stats": null
  },
  "final_alternativo_demonio": {
    "spec": "data/39_FINAL_ALTERNATIVO_DEMONIO.json",
    "enemigo": {
      "base": "Demonio",
      "atributos_base": {
        "vida": 13,
        "fuerza": 6,
        "resistencia": 6,
        "iniciativa": 6
      }
    },
    "equipo_ids": [
      "mandoble-flamigero",
      "coraza-de-acero-magico",
      "escudo-de-los-hacedores",
      "anillo-de-piedra-negra"
    ],
    "equipamiento_excepcional": "Los cuatro elementos están equipados simultáneamente en este encuentro especial; aplicar sus cartas oficiales aunque exista incompatibilidad ordinaria de manos.",
    "huida": false,
    "condicion_victoria_especial": "Dentro del mismo combate deben producirse una Pifia del Demonio y una Tirada 666 del Dalma. Al cumplirse ambas, derrota inmediata del Demonio.",
    "recompensa": "El Dalma conserva Mandoble flamígero, Coraza de acero mágico, Escudo de los Hacedores y Anillo de Piedra Negra.",
    "fin": "Victoria por proeza = final alternativo de éxito. Muerte definitiva del Dalma = derrota."
  },
  "transicion_default": {
    "orden": [
      "muere segundo sectario",
      "no hay acción intermedia",
      "líder completa sacrificio",
      "líder bebe sangre de Karlein",
      "Karlein queda sin respiración",
      "líder se transforma en Vampiro",
      "Rumal y Darfil se levantan como Muertos Vivientes"
    ],
    "precondition": "second sectarian dies and no alternative intervention route was opened beforehand"
  },
  "ritual_progress": [
    "CURRENT_TIME",
    "ELAPSED_TIME",
    "player_actions",
    "combat_elapsed_time",
    "position",
    "previous_delays",
    "entry_variant"
  ],
  "composicion_dinamica_post_transformacion": {
    "sectarian_died_inside_before_transformation": "returns as that named Muerto Viviente",
    "sectarian_died_outside": "does not appear or resurrect inside",
    "sectarian_alive_at_transformation": "remains living Siervo de Amán",
    "no_additional_sectarians": true
  }
}

Lecturas y escrituras de estado de esta fase

Exact object extracted from https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/data/28_ESTADO_DE_PARTIDA_SCHEMA.json at /phase_state_contract.

{
  "required_state": [
    "execution_mode",
    "current_phase_id",
    "current_phase_loaded",
    "previous_phase_id",
    "visited_phase_ids",
    "router_version",
    "estado",
    "dia",
    "hora_aprox",
    "localizacion",
    "dalma",
    "conocimiento_dalma",
    "pnj_conocidos",
    "confianza_pnj",
    "escenas_visitadas",
    "pistas",
    "revealed_card_assets",
    "aventura"
  ],
  "writes_state": [
    "current_phase_id",
    "current_phase_loaded",
    "previous_phase_id",
    "visited_phase_ids",
    "dia",
    "hora_aprox",
    "localizacion",
    "escenas_visitadas",
    "conocimiento_dalma",
    "pnj_conocidos",
    "confianza_pnj",
    "pistas",
    "revealed_card_assets"
  ],
  "transition_rule": "SAVE complete state before changing phase; resolve against loaded router; follow existing HTML anchor; read complete payload; verify CURRENT_PHASE and PHASE EXECUTION LOCK; only then set PHASE_PAYLOAD_VERIFIED=true and current_phase_loaded=true. Never reset unrelated state fields.",
  "mandatory_continuity": [
    "current_phase_id",
    "previous_phase_id",
    "visited_phase_ids",
    "current_phase_loaded",
    "revealed_card_assets",
    "dalma.equipo",
    "dalma.inventario",
    "dalma.monedas",
    "dalma.atributos_base",
    "dalma.atributos_finales",
    "dalma.maniobras_base",
    "dalma.maniobras_efectivas",
    "dalma.vida_actual",
    "dalma.pri_actual",
    "pistas",
    "pnj_conocidos"
  ],
  "phase_payload_verified": "Set true only after the complete target package contains CURRENT_PHASE=<expected id> and === PHASE EXECUTION LOCK ===."
}

Transiciones posibles

Exact object extracted from https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/phased/router.json at /phases/19_gruta_sacrificio/transitions.

{
  "allowed_next_phases": [
    "20_refugio_cortijo",
    "21_regreso_pueblo"
  ],
  "terminal_outcomes": [],
  "conditional_routes": []
}
=== PHASE EXECUTION LOCK ===

current_phase_id = 19_gruta_sacrificio
current_location = Gruta del Sacrificio
current_phase_loaded = true

DO:
- use canonical Creator knowledge;
- preserve state;
- answer user request;
- use only canonical clues;
- apply output filter.
- resolve official cards by canonical id and print the exact absolute JPG URL literally in visible response text when its reveal condition is satisfied;

DO NOT:
- invent significant facts;
- use generic fantasy instead of canon;
- advance phase without exit condition;
- restart runtime discovery;
- use Search to locate another phase.
- generate, recreate, approximate or substitute official card art;
- hide an official JPG URL behind Markdown link text, a citation or a browser source card;

META QUESTIONS:
- answer from the exact canonical source;
- preserve current_phase_id;
- return control to the player in this phase.

RELOAD:
- use the already-present HTML anchor for current_phase_id;
- if HTML fails, follow its already-present TXT fallback anchor;
- never use Search.
- never construct a phase URL manually.

NEXT:
20_refugio_cortijo, 21_regreso_pueblo

=== END PHASE EXECUTION LOCK ===
=== LOCAL PHASE SOURCE LOCK ===

LOCK_POSITION = END
EXPECTED_CURRENT_PHASE = 19_gruta_sacrificio
CURRENT_PHASE=19_gruta_sacrificio
STARTUP_READY = true
current_phase_loaded = true

PRIMARY SOURCE:
THIS COMPLETE PHASE PACKAGE

FALLBACK:
https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/phased/phases/19_gruta_sacrificio.txt

SEARCH_ALLOWED = false
REDDIT_ALLOWED = false
MEDIUM_ALLOWED = false
EXTERNAL_RUNTIME_REDISCOVERY = false

If the answer exists in this phase:
USE IT.

If HTML phase cannot be read:
USE THE PAIRED TXT FALLBACK.

If both are unavailable and a significant answer cannot be produced
from already-loaded canonical state:
STOP rather than Search.

PHASE_PAYLOAD_VERIFIED = false until the complete package has been read and both markers are detected:
1. CURRENT_PHASE=19_gruta_sacrificio
2. === PHASE EXECUTION LOCK ===

Only after both checks:
PHASE_PAYLOAD_VERIFIED = true
current_phase_loaded = true

=== END LOCAL PHASE SOURCE LOCK ===