// === Escena 01 — "El correo pregunta" (contrato + dolor de soporte) ===
// Tres preguntas de cliente llegan por correo. Para contestarlas: dejas el correo,
// entras en el programa, buscas… y vuelves → 10 min por pregunta. NO es el buzón de
// facturas ("eso ya tiene su buzón"). Cierra con la Única Cosa como promesa.
function EscenaBA01({ t }){
  // LOCUCIÓN (audio/escena-01.mp3): un cliente escribe → 3 preguntas (stock 340 /
  // proyecto / bono de horas) → el bucle manual → 10 min × pregunta → aclaración
  // "no es de facturas" → foco en soporte → Única Cosa → puente "Con una dirección".
  const T = {
    entra:0.0,     // "Un cliente te escribe"
    q1:2.7,        // "¿queda stock de la referencia 340?"
    q2:7.0,        // "cómo va su proyecto"
    q3:9.7,        // "cuántas horas le quedan"
    loop:13.2,     // "haces siempre lo mismo"
    s1:15.0,       // "dejas el correo"
    s2:16.1,       // "entras en el programa"
    s3:17.3,       // "buscas"
    cont:20.0,     // "Diez minutos"
    x3:21.4,       // "Por cada pregunta"
    facturas:24.6, // "no hablamos de facturas"
    sello:27.0,    // "Eso ya tiene su buzón"
    foco:31.0,     // "contestar a tus clientes"
    calma:32.9,    // "ahí va la idea" (anticipación)
    cosa1:34.2,    // "el correo pregunta"
    cosa2:35.8,    // "tus datos responden"
    salida:38.6,   // "Con una dirección"
  };

  // ---- iconos ----
  const IcoSobre = ({ c='#94A3B8', s=22 })=>(
    <svg width={s} height={s*0.74} viewBox="0 0 34 24" style={{display:'block'}}>
      <rect x="1" y="1" width="32" height="22" rx="4" fill="none" stroke={c} strokeWidth="2"/>
      <path d="M2 3 L17 14 L32 3" fill="none" stroke={c} strokeWidth="2" strokeLinejoin="round"/>
    </svg>
  );
  const IcoStep = ({ kind, c='#64748B' })=>{
    if (kind==='mail') return <svg width="26" height="26" viewBox="0 0 24 24" fill="none"><rect x="3" y="6" width="18" height="13" rx="2" stroke={c} strokeWidth="1.9"/><path d="M3 8 L12 14 L21 8" stroke={c} strokeWidth="1.9" strokeLinejoin="round"/></svg>;
    if (kind==='app')  return <svg width="26" height="26" viewBox="0 0 24 24" fill="none"><rect x="3" y="4" width="18" height="16" rx="2.5" stroke={c} strokeWidth="1.9"/><path d="M3 8.5 H21" stroke={c} strokeWidth="1.9"/><circle cx="6" cy="6.2" r="0.7" fill={c}/><circle cx="8.4" cy="6.2" r="0.7" fill={c}/></svg>;
    return <svg width="26" height="26" viewBox="0 0 24 24" fill="none"><circle cx="11" cy="11" r="6.5" stroke={c} strokeWidth="1.9"/><path d="M16 16 L21 21" stroke={c} strokeWidth="1.9" strokeLinecap="round"/></svg>;
  };

  // ---- preguntas (columna izquierda) ----
  const colLeft = 150, colW = 770;
  const QTOP = [230, 372, 514];
  const QS = [
    { at0:T.entra, atTxt:T.q1, name:'Laura, tienda',      ini:'L',
      text:(<>¿Os queda stock de la <span className="f-mono" style={{background:'#F1F5F9', borderRadius:6, padding:'1px 8px', fontWeight:700, color:'#0F172A'}}>ref. 340</span>?</>) },
    { at0:T.q2, atTxt:T.q2, name:'Andrés, obra',          ini:'A',
      text:(<>¿Cómo va mi proyecto?</>) },
    { at0:T.q3, atTxt:T.q3, name:'Cafés del Sur',         ini:'C',
      text:(<>¿Cuántas horas me quedan del bono?</>) },
  ];

  // ---- opacidades por acto (doctrina: el acto viejo se atenúa, no desaparece) ----
  const dimAll = t >= T.calma ? lerp(1, 0.06, Easing.easeOutCubic(clamp((t-T.calma)/0.6,0,1))) : 1;
  // velo blanco que limpia el fondo justo antes de la Única Cosa
  const velo = clamp((t-T.calma)/0.6,0,1) * 0.78;

  let qStage = 1;
  if (t >= T.loop) qStage = lerp(1, 0.5, clamp((t-T.loop)/0.6,0,1));      // secundario durante el bucle
  if (t >= T.facturas) qStage = lerp(0.5, 0.32, clamp((t-T.facturas)/0.5,0,1)); // más atrás durante la aclaración
  if (t >= T.foco) qStage = lerp(0.32, 1, clamp((t-T.foco)/0.6,0,1));     // protagonista otra vez
  const qOp = qStage * dimAll;

  let loopStage = 1;
  if (t >= T.facturas) loopStage = lerp(1, 0.28, clamp((t-T.facturas)/0.6,0,1));
  const loopOp = loopStage * dimAll;

  let facStage = 1;
  if (t >= T.foco) facStage = lerp(1, 0.16, clamp((t-T.foco)/0.6,0,1));
  const facOp = facStage * dimAll;

  // ---- bucle manual (panel derecha) ----
  const panelL = 1005, panelW = 815, panelT = 210;
  const loopP = clamp((t-T.loop)/0.6,0,1), loopE = Easing.easeOutBack(loopP);
  const STEPS = [
    { at:T.s1, kind:'mail', label:'Dejas el correo' },
    { at:T.s2, kind:'app',  label:'Entras en el programa' },
    { at:T.s3, kind:'search', label:'Buscas' },
  ];
  const stepY = [78, 158, 238];
  const retP = Easing.easeInOutCubic(clamp((t-(T.s3+0.9))/1.0,0,1)); // "…y vuelves"

  // ---- contador 10:00 (cronómetro que se dispara) ----
  const contShow = t >= T.cont;
  const contP = clamp((t-T.cont)/1.0,0,1);
  const secs = Math.round(600 * Easing.easeOutCubic(contP)); // aterriza en 600s = 10:00
  const clock = `${Math.floor(secs/60)}:${String(secs%60).padStart(2,'0')}`;
  const contE = Easing.easeOutBack(clamp((t-T.cont)/0.5,0,1));
  const x3P = clamp((t-T.x3)/0.4,0,1), x3E = Easing.easeOutBack(x3P);

  // ---- tarjeta facturas (aclaración: eso ya tiene su buzón) ----
  const facP = clamp((t-T.facturas)/0.55,0,1), facE = Easing.easeOutBack(facP);
  const strikeP = Easing.easeOutCubic(clamp((t-(T.facturas+0.7))/0.6,0,1));
  const selloP = clamp((t-T.sello)/0.45,0,1), selloE = Easing.easeOutBack(selloP);
  const facL = 660, facW = 600, facT = 745;

  // ---- foco de soporte + Única Cosa ----
  const focoGlow = clamp((t-T.foco)/0.5,0,1) * (1 - clamp((t-T.calma)/0.4,0,1));
  const c1P = clamp((t-T.cosa1)/0.6,0,1), c1E = Easing.easeOutCubic(c1P);
  const c2P = clamp((t-T.cosa2)/0.6,0,1), c2E = Easing.easeOutCubic(c2P);
  const outP = clamp((t-T.salida)/0.6,0,1);

  const headOp = clamp(t/0.5,0,1) * (t >= T.calma ? lerp(1,0,clamp((t-T.calma)/0.5,0,1)) : 1);

  return (
    <SlideCanvas variant="hero">
      {/* Contrato: quién habla + para quién */}
      <div style={{position:'absolute', top:52, left:60, opacity:headOp}}>
        <DinaupLogo size={30}/>
      </div>
      <div style={{position:'absolute', top:58, left:0, right:0, textAlign:'center', opacity:headOp}}>
        <div className="f-plex" style={{fontSize:14, fontWeight:600, letterSpacing:'2.5px', color:'#0085FF'}}>ATENCIÓN AL CLIENTE · POR CORREO</div>
        <div className="f-plex" style={{marginTop:8, fontSize:30, fontWeight:800, letterSpacing:'-0.02em', color:'#0F172A'}}>Tus clientes preguntan. Todos los días.</div>
      </div>

      {/* Resalte suave detrás de las preguntas cuando el foco vuelve a soporte */}
      {focoGlow > 0 && (
        <div style={{position:'absolute', left:colLeft-26, top:QTOP[0]-26, width:colW+52, height:(QTOP[2]+118)-(QTOP[0])+26, borderRadius:26, background:'rgba(0,133,255,0.06)', border:'1.5px solid rgba(0,133,255,0.3)', boxShadow:'0 18px 44px rgba(0,133,255,0.10)', opacity:focoGlow}}/>
      )}

      {/* ===== ACTO A · las tres preguntas ===== */}
      <div style={{position:'absolute', inset:0, opacity:qOp, filter:qOp<0.98?'saturate(0.75)':'none'}}>
        {QS.map((q,i)=>{
          const p = clamp((t-q.at0)/0.55,0,1), e = Easing.easeOutBack(p);
          if (p <= 0) return null;
          const tp = clamp((t-q.atTxt)/0.5,0,1), te = Easing.easeOutCubic(tp);
          return (
            <div key={i} style={{position:'absolute', left:colLeft, top:QTOP[i], width:colW, background:'#fff', border:'1px solid #E2E8F0', borderRadius:'6px 18px 18px 18px', padding:'18px 22px', boxShadow:'0 12px 30px rgba(15,23,42,0.07)', transform:`translateX(${(1-e)*-34}px) scale(${lerp(0.94,1,e)})`, opacity:clamp(p*1.3,0,1)}}>
              <div style={{display:'flex', alignItems:'center', gap:12, marginBottom:10}}>
                <div style={{width:38, height:38, borderRadius:100, background:'linear-gradient(135deg,#94A3B8,#475569)', color:'#fff', display:'flex', alignItems:'center', justifyContent:'center', fontWeight:700, fontSize:16}} className="f-plex">{q.ini}</div>
                <div className="f-plex" style={{fontSize:15, fontWeight:700, color:'#334155'}}>{q.name}</div>
                <div style={{marginLeft:'auto', display:'inline-flex', alignItems:'center', gap:7, padding:'4px 10px', borderRadius:100, background:'#F1F5F9'}}>
                  <IcoSobre c="#94A3B8" s={16}/>
                  <span className="f-mono" style={{fontSize:11, fontWeight:600, color:'#94A3B8', letterSpacing:'0.5px'}}>por correo</span>
                </div>
              </div>
              <div className="f-plex" style={{fontSize:24, fontWeight:600, color:'#0F172A', lineHeight:1.3, opacity:te, transform:`translateY(${(1-te)*8}px)`, minHeight:32}}>{q.text}</div>
            </div>
          );
        })}
      </div>

      {/* ===== ACTO A · el bucle manual (panel derecha) ===== */}
      {loopP > 0 && (
        <div style={{position:'absolute', left:panelL, top:panelT, width:panelW, opacity:loopOp, filter:loopOp<0.98?'saturate(0.72)':'none', transform:`translateY(${(1-loopE)*24}px) scale(${lerp(0.96,1,loopE)})`}}>
          <div style={{position:'relative', background:'#fff', border:'1px solid #E2E8F0', borderRadius:20, boxShadow:'0 20px 48px rgba(15,23,42,0.08)', padding:'24px 26px 30px', minHeight:322}}>
            <div className="f-mono" style={{fontSize:12, fontWeight:700, letterSpacing:'2.5px', color:'#94A3B8'}}>PARA CONTESTAR, SIEMPRE LO MISMO</div>

            {/* flecha de retorno (el bucle) en el canalón izquierdo */}
            <svg width="70" height="300" viewBox="0 0 70 300" style={{position:'absolute', left:18, top:56, pointerEvents:'none'}}>
              <path d="M 46 250 C 8 250, 8 70, 42 70" fill="none" stroke="#CBD5E1" strokeWidth="2.5" strokeDasharray="7 7"
                strokeDashoffset={lerp(560,0,retP)} strokeLinecap="round" opacity={clamp(retP/0.3,0,1)}/>
              <path d="M 34 62 L 44 70 L 34 78" fill="none" stroke="#CBD5E1" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round" opacity={clamp((retP-0.75)/0.25,0,1)}/>
            </svg>
            {retP > 0.6 && (
              <div className="f-mono" style={{position:'absolute', left:-2, top:168, fontSize:11, fontWeight:700, color:'#94A3B8', transform:'rotate(-90deg)', transformOrigin:'left center', opacity:clamp((retP-0.6)/0.4,0,1)}}>…y vuelves</div>
            )}

            {/* pasos */}
            {STEPS.map((s,i)=>{
              const p = clamp((t-s.at)/0.45,0,1), e = Easing.easeOutBack(p);
              if (p <= 0) return null;
              return (
                <div key={i} style={{position:'absolute', left:94, top:stepY[i], width:panelW-150, display:'flex', alignItems:'center', gap:16, transform:`translateX(${(1-e)*22}px)`, opacity:clamp(p*1.3,0,1)}}>
                  <div style={{width:30, height:30, borderRadius:100, background:'#F1F5F9', border:'1px solid #E2E8F0', display:'flex', alignItems:'center', justifyContent:'center'}} className="f-mono">
                    <span style={{fontSize:13, fontWeight:800, color:'#64748B'}}>{i+1}</span>
                  </div>
                  <div style={{width:52, height:52, borderRadius:14, background:'#F8FAFC', border:'1px solid #EEF2F7', display:'flex', alignItems:'center', justifyContent:'center', flexShrink:0}}>
                    <IcoStep kind={s.kind}/>
                  </div>
                  <span className="f-plex" style={{fontSize:21, fontWeight:600, color:'#334155'}}>{s.label}</span>
                </div>
              );
            })}
          </div>

          {/* contador 10 minutos × pregunta */}
          {contShow && (
            <div style={{marginTop:26, background:'#fff', border:'1.5px solid rgba(239,68,68,0.35)', borderRadius:20, boxShadow:'0 20px 48px rgba(239,68,68,0.12)', padding:'22px 28px', display:'flex', alignItems:'center', gap:26, opacity:clamp((t-T.cont)/0.5,0,1), transform:`scale(${lerp(0.92,1,contE)})`}}>
              <div style={{width:56, height:56, borderRadius:16, background:'rgba(239,68,68,0.1)', display:'flex', alignItems:'center', justifyContent:'center', flexShrink:0}}>
                <svg width="30" height="30" viewBox="0 0 24 24" fill="none"><circle cx="12" cy="13" r="8" stroke="#EF4444" strokeWidth="1.9"/><path d="M12 9 V13 L15 15" stroke="#EF4444" strokeWidth="1.9" strokeLinecap="round"/><path d="M9 3 H15" stroke="#EF4444" strokeWidth="1.9" strokeLinecap="round"/></svg>
              </div>
              <div>
                <div className="f-mono" style={{fontSize:11, fontWeight:700, letterSpacing:'2px', color:'#94A3B8'}}>TIEMPO POR PREGUNTA</div>
                <div className="f-mono" style={{fontSize:56, fontWeight:800, color:'#EF4444', lineHeight:1.05, letterSpacing:'0.02em'}}>{clock}</div>
              </div>
              {x3P > 0 && (
                <div style={{marginLeft:'auto', textAlign:'center', transform:`scale(${lerp(0.6,1,x3E)})`, opacity:clamp(x3P*1.3,0,1)}}>
                  <div className="f-plex" style={{fontSize:44, fontWeight:800, color:'#DC2626', lineHeight:1}}>× 3</div>
                  <div className="f-plex" style={{marginTop:2, fontSize:14, fontWeight:600, color:'#94A3B8'}}>una y otra vez</div>
                </div>
              )}
            </div>
          )}
        </div>
      )}

      {/* ===== Aclaración: NO es el buzón de facturas ===== */}
      {facP > 0 && (
        <div style={{position:'absolute', left:facL, top:facT, width:facW, opacity:facOp, transform:`translateY(${(1-facE)*-24}px) scale(${lerp(0.9,1,facE)})`}}>
          <div style={{position:'relative', background:'#fff', border:'1px solid #E2E8F0', borderRadius:18, boxShadow:'0 30px 70px rgba(15,23,42,0.16)', padding:'26px 30px', display:'flex', alignItems:'center', gap:20}}>
            <div style={{width:60, height:60, borderRadius:16, background:'#F1F5F9', display:'flex', alignItems:'center', justifyContent:'center', flexShrink:0}}>
              <IcoSobre c="#64748B" s={30}/>
            </div>
            <div>
              <div className="f-plex" style={{fontSize:26, fontWeight:800, color:'#0F172A', letterSpacing:'-0.01em'}}>Facturas · Pedidos</div>
              <div className="f-plex" style={{fontSize:16, fontWeight:500, color:'#94A3B8'}}>documentos de proveedores</div>
            </div>
            {/* tachón (dibujado como div, nunca textDecoration animado) */}
            <div style={{position:'absolute', left:24, right:24, top:'50%', height:3, borderRadius:2, background:'#EF4444', transformOrigin:'left', transform:`scaleX(${strikeP})`, opacity:strikeP>0?0.9:0}}/>
            {/* sello: ya tiene su buzón */}
            {selloP > 0 && (
              <div style={{position:'absolute', right:-18, bottom:-20, transform:`rotate(-9deg) scale(${lerp(0.5,1,selloE)})`, opacity:clamp(selloP*1.3,0,1)}}>
                <div style={{display:'inline-flex', alignItems:'center', gap:8, background:'#ECFDF5', border:'2px solid rgba(16,185,129,0.55)', borderRadius:12, padding:'8px 16px', boxShadow:'0 10px 26px rgba(16,185,129,0.16)'}}>
                  <svg width="18" height="18" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10" fill="rgba(16,185,129,0.16)"/><path d="M7 12.5 L10.5 16 L17 9" fill="none" stroke="#059669" strokeWidth="2.6" strokeLinecap="round" strokeLinejoin="round"/></svg>
                  <span className="f-mono" style={{fontSize:14, fontWeight:800, letterSpacing:'1px', color:'#059669'}}>YA TIENE SU BUZÓN</span>
                </div>
              </div>
            )}
          </div>
        </div>
      )}

      {/* velo que apaga el fondo para que la Única Cosa quede limpia */}
      {velo > 0 && (
        <div style={{position:'absolute', inset:0, background:'#fff', opacity:velo}}/>
      )}

      {/* ===== Única Cosa (promesa) ===== */}
      {c1P > 0 && (
        <div className="f-plex" style={{position:'absolute', left:0, right:0, top:432, textAlign:'center', fontSize:62, fontWeight:800, letterSpacing:'-0.03em', color:'#0F172A', opacity:c1E, transform:`translateY(${(1-c1E)*18}px)`}}>
          El correo pregunta…
        </div>
      )}
      {c2P > 0 && (
        <div className="f-plex" style={{position:'absolute', left:0, right:0, top:530, textAlign:'center', fontSize:62, fontWeight:800, letterSpacing:'-0.03em', opacity:c2E, transform:`translateY(${(1-c2E)*18}px)`}}>
          y <span className="grad-text">tus datos responden.</span>
        </div>
      )}

      {/* ===== Puente de salida ===== */}
      {outP > 0 && (
        <div className="f-plex" style={{position:'absolute', left:0, right:0, top:662, textAlign:'center', fontSize:22, fontWeight:500, color:'#64748B', opacity:outP}}>
          ¿Cómo? Con una dirección.
        </div>
      )}
    </SlideCanvas>
  );
}
Object.assign(window, { EscenaBA01 });
