/* EXPERIMENT · Consolidada R1. D1 stays native through the path; this local
   stage starts only after its final reading position. Astra supplies the tree
   mask and the cabin layers. No global mobile pin or second scroll driver. */
.pelicula .ruta-claro,.pelicula .ruta-escenario{display:contents}
.pelicula .ruta-rama{display:block}
.consolidada-ruta .paseo-escenario{position:relative;height:auto;min-height:0;overflow:visible}
.consolidada-ruta .ruta-claro{position:relative}
.consolidada-ruta .ruta-escenario{position:sticky;top:calc(-1 * var(--union-captura,0px));height:calc(var(--union-alto,100svh) + var(--union-captura,0px));overflow:hidden;isolation:isolate;background:#f4e4c2}
.consolidada-ruta #aldea{position:relative;height:var(--union-alto,100svh);min-height:var(--union-alto,100svh);margin:0}
.consolidada-ruta #claro{position:absolute;left:0;right:0;top:var(--union-captura,0px);height:var(--union-alto,100svh);min-height:0;margin:0;z-index:3}
.consolidada-ruta .ruta-rama{display:block;top:var(--union-captura,0px)}
.consolidada-ruta #claro .tramo-texto{opacity:0;translate:0 8px;transition:opacity .6s var(--ease),translate .6s var(--ease);pointer-events:none}
.consolidada-ruta #claro .tramo-texto.ruta-visible{opacity:1;translate:none;pointer-events:auto}
.consolidada-ruta #claro::before,.consolidada-ruta #claro::after{display:none}
@media print{
  .consolidada-ruta .ruta-claro{height:auto!important}
  .consolidada-ruta .ruta-escenario{position:relative;top:0;height:auto;overflow:visible}
  .consolidada-ruta #claro{position:relative;top:0;min-height:100svh;height:auto;clip-path:none!important;opacity:1!important}
  .consolidada-ruta #claro .tramo-texto{opacity:1;translate:none}
  .consolidada-ruta .ruta-rama{display:none}
}

/* R5: the cabin and the library share a natural edge. Keep the doorway visible
   during the final .38 viewport of absorption after the sticky stage releases. */
.consolidada.pelicula .libros{margin-top:0}
