// === voz.jsx — los beats de cada escena salen del segundo real de cada palabra ===
// audio/align.js es la transcripción de la toma de ElevenLabs (voz oficial, 09/10/2026): por escena,
// [carácter del guion, segundo del mp3] de cada palabra. B(texto, frase) devuelve el segundo en que la
// voz empieza esa frase. Sin align.js, cae a un reloj nominal (un carácter = 1/CPS s) y avisa.

const CPS = 14;
const ALIGN = window.ALIGN || null;

function B(texto, frase){
  const i = texto.indexOf(frase);
  if (i < 0) { console.warn('[voz] beat sin su frase en el guion:', frase); return 0; }
  if (!ALIGN) return i / CPS;
  const palabras = ALIGN[window.GUION.indexOf(texto)];
  const p = palabras.find(w => w[0] >= i);
  return p ? p[1] : palabras[palabras.length - 1][1];
}

Object.assign(window, { B, CPS });
