// === Escena 03 — "El contrato de cuatro" ===  [VALLE: todo entra en cascada de 8-12 px]
// Lo que la ventana le entrega al panel al montar (el retrato de su estado + las once herramientas
// escritas a mano, literales de EntidadDialog.razor:1342-1352) → los cuatro miembros del contrato
// (IAgentComponent.cs:10-34) → las cinco ventanas con su recuento (9 · 7 · 11 · 3 · 4) y un solo
// punto de montaje (AgentDialogLayout) → y las herramientas de fábrica, apagadas
// (SkipDefaultTools = true, AgentDialogLayout.razor:80).
function EscenaYV03({ t }){
  // LOCUCIÓN (audio/escena-03.mp3): se lo cuenta la propia ventana al montar → un retrato de su
  // estado → una lista de herramientas escritas a mano → el contrato tiene cuatro miembros →
  // cinco ventanas lo implementan → las cinco pasan por el mismo montaje → si se rompe, se rompen
  // las cinco → y aquí las herramientas generales vienen apagadas.
  const T = {
    cuenta:0.1,      // "Se lo cuenta la propia ventana" → la ventana entra; el conector se dibuja
    montar:1.7,      // "al montar el panel" → la entrega aterriza en la tarjeta de la derecha
    retrato:3.6,     // "Un retrato de su estado" → el bloque del retrato, ilegible salvo tres líneas
    quien:5.2,       // "quién es la entidad" → primera línea legible
    falta:7.3,       // "qué le falta" → tercera línea legible, en ámbar
    tools:9.2,       // "una lista de herramientas escritas a mano" → los 11 nombres, en cascada
    unaporuna:11.5,  // "una por una" → el recuento aterriza
    miembros:14.0,   // "cuatro miembros" → la página gira: cuatro huecos vacíos
    m1:15.7,         // "el título, el retrato" → los miembros se rellenan uno a uno
    web:18.1,        // "si puede buscar en la web" → el cuarto, con su chip encendido
    cinco:20.2,      // "Cinco ventanas lo implementan hoy" → la página gira a las cinco tarjetas
    w1:22.4,         // "fichajes" → tarjeta 1
    w2:23.2,         // "asientos" → tarjeta 2
    w3:23.8,         // ", entidad," → tarjeta 3
    w4:24.8,         // "datos fiscales" → tarjeta 4
    w5:25.7,         // "análisis bancario" → tarjeta 5
    montaje:27.7,    // "Las cinco pasan por el mismo montaje" → el punto de montaje y sus 5 hilos
    rompe:30.8,      // "Si se rompe, se rompen las cinco a la vez" → todo el haz se pone en ámbar
    apagadas:35.2,   // "las herramientas generales vienen apagadas" → cuatro chips tachados
    salida:38.3,     // "Ya sabemos qué toca" → salida
    toolStep:0.11,   // incremento de la cascada de los once nombres
    lineStep:0.16,   // incremento entre las líneas del retrato
    memberStep:0.78, // incremento entre los cuatro miembros del contrato
    chipStep:0.22,   // incremento entre los cuatro chips tachados
  };

  // ── Datos verificados ──
  const HERRAMIENTAS = ['read_state','set_identificacion','set_contacto','set_flags',
    'read_datos_fiscales_entidad','open_agregar_datos_fiscales','list_compras','list_ventas',
    'list_subcuentas','set_compra','set_venta'];

  const VENTANAS = [
    { titulo:'Yudo - Fichajes',          n:9,  web:false, tw:T.w1 },
    { titulo:'Yudo - Asientos',          n:7,  web:false, tw:T.w2 },
    { titulo:'Yudo - Entidad',           n:11, web:true,  tw:T.w3 },
    { titulo:'Yudo - Datos fiscales',    n:3,  web:true,  tw:T.w4 },
    { titulo:'Yudo - Análisis bancario', n:4,  web:false, tw:T.w5 },
  ];

  const MIEMBROS = [
    { k:'AgentTitle',              n:'El título',        v:'Yudo - Entidad' },
    { k:'GetAgentSystemPrompt()',  n:'El retrato',       v:'una sola vez, al montar' },
    { k:'GetAgentTools()',         n:'Las herramientas', v:'once, en esta ventana' },
    { k:'EnableWebSearch',         n:'¿Busca en la web?',v:'aquí, sí' },
  ];

  const FABRICA = [
    { n:'consultar',        k:'query · por sección' },
    { n:'escribir',         k:'write_operations' },
    { n:'abrir formulario', k:'open_dialog' },
    { n:'generar imagen',   k:'generate_image' },
  ];

  // ── Páginas: A (la entrega) → B (los cuatro miembros) → C (las cinco ventanas) ──
  const aP  = clamp((t-T.cuenta)/0.7,0,1), aE = Easing.easeOutCubic(aP);
  const aOut = clamp((t-T.miembros+0.2)/0.5,0,1);
  const bP  = clamp((t-T.miembros)/0.6,0,1), bE = Easing.easeOutCubic(bP);
  const bOut = clamp((t-T.cinco+0.2)/0.5,0,1);
  const cP  = clamp((t-T.cinco)/0.6,0,1), cE = Easing.easeOutCubic(cP);

  const conector = Easing.easeInOutCubic(clamp((t-T.cuenta-0.5)/0.9,0,1));
  const entrega  = clamp((t-T.montar)/0.6,0,1), entregaE = Easing.easeOutBack(entrega);
  const retP = clamp((t-T.retrato)/0.55,0,1), retE = Easing.easeOutCubic(retP);
  const toolsP = clamp((t-T.tools)/0.5,0,1);
  const nTools = clamp((t-T.unaporuna)/0.5,0,1);

  const webGlow = t >= T.web && t < T.web+1.4 ? Math.sin((t-T.web)/1.4*Math.PI) : 0;

  const monP = clamp((t-T.montaje)/0.6,0,1), monE = Easing.easeOutCubic(monP);
  const hilos = Easing.easeInOutCubic(clamp((t-T.montaje-0.25)/0.9,0,1));
  const roto = clamp((t-T.rompe)/0.5,0,1);
  const rotoGlow = t >= T.rompe && t < T.rompe+1.6 ? Math.sin((t-T.rompe)/1.6*Math.PI) : 0;

  const saP = clamp((t-T.salida)/0.6,0,1), saE = Easing.easeOutCubic(saP);

  const nToolsCount = useCountUp(0, 11, T.unaporuna, 0.9, t);

  // ── Una línea del retrato: atrezzo borroso salvo las tres que la voz nombra ──
  const LineaRetrato = ({ texto, i, legible, color })=>{
    const p = clamp((t-T.retrato-0.25-i*T.lineStep)/0.4,0,1);
    const viva = legible ? clamp((t-legible)/0.5,0,1) : 0;
    return (
      <div className="f-mono" style={{fontSize:20, lineHeight:'31px', opacity:p*(legible ? lerp(0.30,1,viva) : 0.34),
                   color:legible ? (color || '#0F172A') : '#64748B',
                   filter:legible ? `blur(${(1-viva)*2.4}px)` : 'blur(2.6px)',
                   fontWeight:legible && 0.4 < viva ? 700 : 400}}>
        {texto}
      </div>
    );
  };

  return (
    <SlideCanvas variant="light-soft">
      <div className="f-plex" style={{position:'absolute', top:44, left:0, right:0, textAlign:'center',
                                      fontSize:19, fontWeight:700, letterSpacing:'3.4px', color:'#94A3B8'}}>
        EL CONTRATO · CUATRO MIEMBROS, CINCO VENTANAS
      </div>

      {/* ═══════ PÁGINA A · lo que la ventana le entrega al panel ═══════ */}
      {0 < aP && aOut < 1 && (
        <div style={{position:'absolute', inset:0, opacity:aE*(1-aOut), transform:`translateY(${aOut*-20}px)`}}>

          {/* La ventana, reducida */}
          <div style={{position:'absolute', left:110, top:262, width:620, height:446,
                       background:'#fff', borderRadius:14, border:'1px solid #E2E8F0',
                       boxShadow:'0 22px 52px rgba(15,23,42,0.11)', overflow:'hidden',
                       transform:`translateY(${(1-aE)*12}px)`}}>
            <div style={{height:58, display:'flex', alignItems:'center', padding:'0 18px', gap:10,
                         borderBottom:'1px solid #E8EDF3', background:'#FBFCFE'}}>
              <span className="f-plex" style={{fontSize:21, fontWeight:700, color:'#0F172A'}}>Editar Entidad</span>
              <div style={{flex:1}}/>
              <span className="f-plex" style={{fontSize:17, fontWeight:700, color:'#0F172A'}}>Yudo</span>
              <div style={{width:38, height:21, borderRadius:99, background:'#0085FF', position:'relative'}}>
                <div style={{position:'absolute', top:2, left:19, width:17, height:17, borderRadius:99, background:'#fff'}}/>
              </div>
            </div>
            <div style={{display:'flex', height:388}}>
              <div style={{flex:'1 1 auto', padding:18}}>
                {['Talleres Marbán, S.L.','B98314207','info@talleresmarban.es','961 244 180','Nacional'].map((v,i)=>(
                  <div key={v} style={{marginBottom:14, opacity:clamp((t-T.cuenta-0.25-i*0.06)/0.4,0,1)}}>
                    <div style={{width:80, height:9, borderRadius:99, background:'#E2E8F0', marginBottom:7}}/>
                    <div style={{height:38, borderRadius:7, border:'1px solid #E6EBF2', background:'#fff',
                                 display:'flex', alignItems:'center', padding:'0 11px'}}>
                      <span className="f-plex" style={{fontSize:16, color:'#64748B'}}>{v}</span>
                    </div>
                  </div>
                ))}
              </div>
              <div style={{width:216, flexShrink:0, borderLeft:'1px solid #E2E8F0', background:'#FCFDFF'}}>
                <div style={{height:38, borderBottom:'1px solid #E8EDF3', display:'flex', alignItems:'center', padding:'0 11px', gap:6, background:'#fff'}}>
                  <span className="f-plex" style={{fontSize:14, fontWeight:700, color:'#0F172A'}}>Yudo - Entidad</span>
                  <span className="f-mono" style={{fontSize:11, fontWeight:700, color:'#0085FF'}}>IA</span>
                </div>
                <div style={{height:32, borderBottom:'1px solid #E8EDF3', display:'flex', alignItems:'center', padding:'0 11px', background:'#fff'}}>
                  <span className="f-plex" style={{fontSize:13, color:'#94A3B8'}}>Yudo - Entidad</span>
                </div>
              </div>
            </div>
          </div>

          {/* El conector: la ventana se lo cuenta al panel */}
          <svg style={{position:'absolute', left:718, top:425, pointerEvents:'none'}} width="120" height="120" viewBox="0 0 140 120">
            <path d="M8 60 H118" pathLength="100" stroke="#0085FF" strokeWidth="4" fill="none" strokeLinecap="round"
                  strokeDasharray="100" strokeDashoffset={100*(1-conector)}/>
            <path d="M106 48 L120 60 L106 72" stroke="#0085FF" strokeWidth="4" fill="none" strokeLinecap="round"
                  strokeLinejoin="round" opacity={clamp((conector-0.82)/0.18,0,1)}/>
          </svg>

          {/* Lo que recibe el panel */}
          <div style={{position:'absolute', left:800, top:148, width:1010, minHeight:752, padding:'30px 34px',
                       background:'#fff', borderRadius:18, border:'1px solid #E2E8F0',
                       boxShadow:'0 26px 62px rgba(15,23,42,0.11)',
                       opacity:clamp(entrega*1.3,0,1), transform:`translateY(${(1-entregaE)*14}px)`}}>
            <div className="f-plex" style={{fontSize:20, fontWeight:700, letterSpacing:'2.2px', color:'#0085FF'}}>
              LO QUE RECIBE EL PANEL AL MONTAR
            </div>

            {/* 1 · el retrato del estado */}
            {0 < retP && (
              <div style={{marginTop:24, opacity:clamp(retP*1.3,0,1), transform:`translateY(${(1-retE)*10}px)`}}>
                <div className="f-plex" style={{fontSize:26, fontWeight:700, color:'#0F172A', marginBottom:14}}>El retrato de su estado</div>
                <div style={{padding:'18px 20px', borderRadius:12, background:'#F8FAFC', border:'1px solid #EEF2F6'}}>
                  <LineaRetrato i={0} texto="Ficha de entidad — modo edición" />
                  <LineaRetrato i={1} texto="Entidad: Talleres Marbán, S.L." legible={T.quien}/>
                  <LineaRetrato i={2} texto="Identificador fiscal: B98314207" />
                  <LineaRetrato i={3} texto="Es Cliente: sí · Tipo de Cliente: Nacional" legible={T.quien+0.9}/>
                  <LineaRetrato i={4} texto="Tipo Venta: Factura · Impuesto: IVA 21 %" />
                  <LineaRetrato i={5} texto="Cuenta contable (430): 43000012" />
                  <LineaRetrato i={6} texto="Datos fiscales: sin asignar" legible={T.falta} color="#B45309"/>
                  <LineaRetrato i={7} texto="Es Proveedor: no · Configuración Proveedor: vacía" />
                  <LineaRetrato i={8} texto="Título automático: apagado · Dirección Envío: la principal" />
                </div>
              </div>
            )}

            {/* 2 · las once herramientas, escritas a mano */}
            {0 < toolsP && (
              <div style={{marginTop:26, opacity:clamp(toolsP*1.3,0,1)}}>
                <div style={{display:'flex', alignItems:'baseline', gap:14, marginBottom:14}}>
                  <span className="f-plex" style={{fontSize:26, fontWeight:700, color:'#0F172A'}}>Las herramientas, escritas a mano</span>
                  {0 < nTools && (
                    <span className="f-plex" style={{fontSize:32, fontWeight:800, color:'#0085FF', opacity:nTools}}>{nToolsCount}</span>
                  )}
                </div>
                <div style={{display:'grid', gridTemplateColumns:'1fr 1fr', gap:'11px 26px'}}>
                  {HERRAMIENTAS.map((h,i)=>{
                    const p = clamp((t-T.tools-0.2-i*T.toolStep)/0.35,0,1);
                    return (
                      <div key={h} className="f-mono" style={{fontSize:20, color:'#334155', opacity:p,
                                   transform:`translateX(${(1-p)*-10}px)`, display:'flex', alignItems:'center', gap:9}}>
                        <span style={{width:6, height:6, borderRadius:99, background:'#0085FF', flexShrink:0}}/>
                        {h}
                      </div>
                    );
                  })}
                </div>
              </div>
            )}
          </div>
        </div>
      )}

      {/* ═══════ PÁGINA B · los cuatro miembros ═══════ */}
      {0 < bP && bOut < 1 && (
        <div style={{position:'absolute', inset:0, opacity:bE*(1-bOut), transform:`translateY(${bOut*-20}px)`}}>
          <div className="f-plex" style={{position:'absolute', top:152, left:0, right:0, textAlign:'center',
                                          fontSize:52, fontWeight:800, color:'#0F172A', letterSpacing:'-0.03em',
                                          opacity:bE, transform:`translateY(${(1-bE)*14}px)`}}>
            Cuatro miembros. Y nada más.
          </div>
          <div className="f-mono" style={{position:'absolute', top:228, left:0, right:0, textAlign:'center',
                                          fontSize:20, color:'#94A3B8', opacity:bE}}>
            IAgentComponent
          </div>

          <div style={{position:'absolute', left:112, top:300, display:'flex', gap:32}}>
            {MIEMBROS.map((m,i)=>{
              const p = clamp((t-T.m1-i*T.memberStep)/0.5,0,1), e = Easing.easeOutCubic(p);
              const esWeb = i === 3;
              const on = esWeb ? clamp((t-T.web)/0.4,0,1) : 0;
              return (
                <div key={m.k} style={{width:400, height:474, borderRadius:16, padding:'28px 26px',
                             background:'#fff', border:`1px solid ${0 < p ? '#E2E8F0' : '#EAF0F7'}`,
                             borderStyle:0 < p ? 'solid' : 'dashed',
                             boxShadow:0 < p ? '0 18px 44px rgba(15,23,42,0.09)' : 'none',
                             display:'flex', flexDirection:'column'}}>
                  <div className="f-mono" style={{fontSize:20, fontWeight:700, color:'#94A3B8'}}>{i+1}</div>
                  <div className="f-plex" style={{fontSize:33, fontWeight:800, color:'#0F172A', marginTop:16,
                               opacity:p, transform:`translateY(${(1-e)*10}px)`, lineHeight:1.15}}>{m.n}</div>
                  <div className="f-mono" style={{fontSize:18, color:'#7C3AED', marginTop:14, opacity:p*0.9,
                               wordBreak:'break-all'}}>{m.k}</div>
                  <div style={{flex:1}}/>
                  {esWeb ? (
                    <span style={{display:'inline-flex', alignItems:'center', gap:10, alignSelf:'flex-start',
                                  padding:'10px 18px', borderRadius:99,
                                  background:0 < on ? 'rgba(16,185,129,0.12)' : '#F1F5F9',
                                  border:`1px solid ${0 < on ? 'rgba(16,185,129,0.35)' : '#E2E8F0'}`,
                                  boxShadow:0 < webGlow ? `0 0 ${webGlow*30}px rgba(16,185,129,0.55)` : 'none',
                                  opacity:p}}>
                      <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke={0 < on ? '#059669' : '#94A3B8'} strokeWidth="1.9">
                        <circle cx="12" cy="12" r="9"/><path d="M3 12 H21 M12 3 A14 14 0 0 1 12 21 A14 14 0 0 1 12 3"/>
                      </svg>
                      <span className="f-plex" style={{fontSize:21, fontWeight:700, color:0 < on ? '#059669' : '#94A3B8'}}>
                        {0 < on ? 'encendida aquí' : 'apagada por defecto'}
                      </span>
                    </span>
                  ) : (
                    <div className="f-plex" style={{fontSize:22, color:'#64748B', opacity:p}}>{m.v}</div>
                  )}
                </div>
              );
            })}
          </div>

          <div className="f-plex" style={{position:'absolute', top:832, left:0, right:0, textAlign:'center',
                                          fontSize:28, color:'#64748B',
                                          opacity:clamp((t-T.web-0.9)/0.6,0,1)}}>
            Solo dos de las cinco ventanas la traen encendida.
          </div>
        </div>
      )}

      {/* ═══════ PÁGINA C · las cinco ventanas y el punto de montaje ═══════ */}
      {0 < cP && (
        <div style={{position:'absolute', inset:0, opacity:cE}}>
          <div className="f-plex" style={{position:'absolute', top:170, left:0, right:0, textAlign:'center',
                                          fontSize:46, fontWeight:800, color:'#0F172A', letterSpacing:'-0.03em',
                                          transform:`translateY(${(1-cE)*14}px)`}}>
            Cinco ventanas lo implementan hoy
          </div>

          {/* Los hilos hacia el punto de montaje */}
          {0 < hilos && (
            <svg style={{position:'absolute', left:0, top:0, pointerEvents:'none'}} width="1920" height="1080" viewBox="0 0 1920 1080">
              {VENTANAS.map((v,i)=>{
                const x = 138 + i*336 + 150;
                const col = 0 < roto ? '#FB8C00' : '#0085FF';
                return (
                  <path key={v.titulo} d={`M${x} 490 C ${x} 536, 960 528, 960 568`} pathLength="100" fill="none"
                        stroke={col} strokeWidth="3" strokeLinecap="round" opacity={0.75}
                        strokeDasharray="100" strokeDashoffset={100*(1-hilos)}/>
                );
              })}
            </svg>
          )}

          {/* Las cinco tarjetas: entran como huecos y se rellenan una a una */}
          <div style={{position:'absolute', left:138, top:300, display:'flex', gap:36}}>
            {VENTANAS.map((v,i)=>{
              const p = clamp((t-v.tw)/0.45,0,1), e = Easing.easeOutBack(p);
              const vac = clamp((t-T.cinco-0.2-i*0.08)/0.45,0,1);
              return (
                <div key={v.titulo} style={{width:300, height:190, borderRadius:14, padding:'18px 20px',
                             background:0 < p ? '#fff' : 'rgba(255,255,255,0.5)',
                             border:`${0 < p ? 1 : 1}px ${0 < p ? 'solid' : 'dashed'} ${0 < p ? (0 < roto ? 'rgba(251,140,0,0.55)' : '#E2E8F0') : '#D5DEEA'}`,
                             boxShadow:0 < p ? (0 < rotoGlow ? `0 0 ${rotoGlow*34}px rgba(251,140,0,0.40)` : '0 14px 34px rgba(15,23,42,0.08)') : 'none',
                             opacity:vac, transform:`translateY(${(1-Easing.easeOutCubic(vac))*12}px) scale(${lerp(0.97,1,e)})`,
                             display:'flex', flexDirection:'column'}}>
                  <div className="f-plex" style={{fontSize:22, fontWeight:700, color:'#0F172A', lineHeight:1.2,
                               opacity:clamp(p*1.4,0,1), transform:`translateY(${(1-e)*8}px)`}}>{v.titulo}</div>
                  <div style={{flex:1}}/>
                  <div style={{display:'flex', alignItems:'baseline', gap:10, opacity:clamp(p*1.4,0,1)}}>
                    <span className="f-plex" style={{fontSize:54, fontWeight:800, color:'#0085FF', lineHeight:1}}>{v.n}</span>
                    <span className="f-plex" style={{fontSize:19, color:'#64748B'}}>herramientas</span>
                  </div>
                  {v.web && (
                    <div style={{marginTop:10, opacity:clamp((p-0.3)*1.6,0,1)}}>
                      <span className="f-plex" style={{fontSize:15, fontWeight:700, color:'#059669', background:'rgba(16,185,129,0.10)',
                                    border:'1px solid rgba(16,185,129,0.28)', borderRadius:99, padding:'3px 11px'}}>busca en la web</span>
                    </div>
                  )}
                </div>
              );
            })}
          </div>

          {/* El punto de montaje, único */}
          <div style={{position:'absolute', left:510, top:568, width:900, height:126, padding:'22px 28px', borderRadius:14,
                       background:0 < monP ? (0 < roto ? 'rgba(251,140,0,0.10)' : '#fff') : 'rgba(255,255,255,0.5)',
                       border:`2px ${0 < monP ? 'solid' : 'dashed'} ${0 < monP ? (0 < roto ? '#FB8C00' : '#E2E8F0') : '#D5DEEA'}`,
                       boxShadow:0 < monP ? (0 < rotoGlow ? `0 0 ${rotoGlow*46}px rgba(251,140,0,0.45)` : '0 16px 40px rgba(15,23,42,0.09)') : 'none',
                       opacity:clamp((t-T.cinco-0.5)/0.5,0,1), transform:`translateY(${(1-monE)*10}px)`,
                       display:'flex', alignItems:'center', gap:22}}>
            <span style={{opacity:clamp(monP*1.4,0,1)}}>
              <svg width="38" height="38" viewBox="0 0 24 24" fill="none" stroke={0 < roto ? '#B45309' : '#0085FF'} strokeWidth="2">
                <path d="M12 2.6 L21 7.2 V16.8 L12 21.4 L3 16.8 V7.2 Z" strokeLinejoin="round"/>
                <path d="M3 7.2 L12 11.8 L21 7.2 M12 11.8 V21.4"/>
              </svg>
            </span>
            <div style={{lineHeight:1.25, opacity:clamp(monP*1.4,0,1)}}>
              <div className="f-mono" style={{fontSize:26, fontWeight:700, color:0 < roto ? '#B45309' : '#0F172A'}}>AgentDialogLayout</div>
              <div className="f-plex" style={{fontSize:21, color:'#64748B', marginTop:5}}>el único punto de montaje de la aplicación</div>
            </div>
          </div>

          {/* Las herramientas de fábrica, apagadas */}
          <div style={{position:'absolute', left:0, right:0, top:756, display:'flex', justifyContent:'center', gap:22,
                       opacity:clamp((t-T.cinco-0.8)/0.5,0,1)}}>
            {FABRICA.map((f,i)=>{
              const p = clamp((t-T.apagadas-i*T.chipStep)/0.4,0,1);
              const tacha = Easing.easeInOutCubic(clamp((t-T.apagadas-0.2-i*T.chipStep)/0.45,0,1));
              return (
                <div key={f.n} style={{position:'relative', width:296, height:112, padding:'18px 20px', borderRadius:12,
                             background:0 < p ? '#F1F5F9' : 'rgba(255,255,255,0.5)',
                             border:`1px ${0 < p ? 'solid' : 'dashed'} ${0 < p ? '#E2E8F0' : '#D5DEEA'}`,
                             textAlign:'center', display:'flex', flexDirection:'column', justifyContent:'center'}}>
                  <div className="f-plex" style={{fontSize:25, fontWeight:700, color:'#94A3B8', opacity:clamp(p*1.4,0,1)}}>{f.n}</div>
                  <div className="f-mono" style={{fontSize:16, color:'#B6C0CD', marginTop:6, opacity:clamp(p*1.4,0,1)}}>{f.k}</div>
                  <span style={{position:'absolute', left:16, right:16, top:'50%', height:3, borderRadius:2,
                                background:'#EF4444', transform:`scaleX(${tacha})`, transformOrigin:'left'}}/>
                </div>
              );
            })}
          </div>
          <div className="f-plex" style={{position:'absolute', top:898, left:0, right:0, textAlign:'center',
                                          fontSize:21, color:'#94A3B8',
                                          opacity:clamp((t-T.apagadas-0.9)/0.5,0,1)}}>
            De fábrica siempre se añade una sola: la de la fecha.
          </div>

          {/* Salida */}
          {0 < saP && (
            <div className="f-plex" style={{position:'absolute', top:958, left:0, right:0, textAlign:'center',
                                            fontSize:32, fontWeight:600, color:'#0F172A',
                                            opacity:saE, transform:`translateY(${(1-saE)*12}px)`}}>
              Vamos a qué se lleva cuando cierras.
            </div>
          )}
        </div>
      )}
    </SlideCanvas>
  );
}
Object.assign(window, { EscenaYV03 });
