// === Escena 06 — "El cierre de mes" (resolución serena + recap + eco) ===
// Pantalla Contabilidad automática: 4 nóminas sin asiento → marcar → Procesar →
// cada fila enlazada a su asiento. Ciclo de estado, vigía "Ponerse al día",
// recap del método en 3 tarjetas y ECO final: "El concepto lleva el asiento dentro."
// LOCUCIÓN (audio/escena-06.mp3, 36.1s): pantalla → lista → marcas/procesas →
// asientos → ciclo de estado → vigía → recap 3 ideas → eco + cierre.
function EscenaNO06({ t }){
  const T = {
    pantalla:   0.0,  // "El cierre de mes"                → entra el mockup Contabilidad automática
    lista:      2.2,  // "Contabilidad automática"         → lista de nóminas del periodo
    sinAsiento: 5.1,  // "sin asiento"                     → chips "Sin asiento" fila a fila
    marcas:     6.3,  // "Marcas"                          → checkboxes se marcan en cascada
    procesas:   6.8,  // "procesas"                        → cursor al botón Procesar
    click:      7.1,  //   click en Procesar + barra de progreso corta
    asientos:   9.1,  // "enlazada a su asiento"           → check verde + nº de asiento f-mono
    ciclo:     11.1,  // "El estado sigue el ciclo"        → tarjeta del ciclo de estado
    pendiente: 12.9,  // "pendiente"                       → chip 1
    tramitada: 13.8,  // "tramitada"                       → chip 2
    pagada:    15.0,  // "pagada"                          → chip 3
    vigia:     16.1,  // "Ponerse al día"                  → banner vigía
    avatares:  18.4,  // "dos empleados sin nómina"        → 2 avatares señalados
    recap:     21.1,  // "Recuerda el método"              → 3 tarjetas recap escalonadas
    check1:    23.2,  // "se configura una vez"            → check catálogo
    hereda:    24.8,  // "La nómina hereda"                → pulso en la tarjeta 2
    check2:    26.3,  // "deriva sus totales"              → check nómina
    check3:    28.0,  // "el asiento sale solo"            → check asiento
    eco:       30.7,  // "El concepto lleva el asiento dentro" → ECO grande + logo
    cierre:    33.3,  // "Eso es llevar nóminas en Dinaup" → cierre sereno
  };

  // ---- Geometría del mockup (compartida con el cursor) ----
  const MX = 100, MY = 158, MW = 1120, CONT_H = 470;
  const CONT_Y = MY + 76 + 69;                      // chrome navegador + cabecera app
  const ROWS_TOP = 120, ROW_H = 64, ROW_GAP = 10;
  const rowTop = (i)=> ROWS_TOP + i*(ROW_H+ROW_GAP);
  const rowCY  = (i)=> CONT_Y + rowTop(i) + ROW_H/2; // coordenada canvas (cursor)
  const CHK_CX = MX + 46;
  const BTN_CX = MX + MW - 36 - 78, BTN_CY = CONT_Y + 42;

  const ROWS = [
    { ini:'MJ', name:'María José García', grad:'linear-gradient(135deg,#0085FF,#56E16A)', asiento:'AS-0341' },
    { ini:'LF', name:'Lucía Ferrer',      grad:'linear-gradient(135deg,#94A3B8,#64748B)', asiento:'AS-0342' },
    { ini:'AP', name:'Andrés Pons',       grad:'linear-gradient(135deg,#94A3B8,#64748B)', asiento:'AS-0343' },
    { ini:'SI', name:'Sara Iglesias',     grad:'linear-gradient(135deg,#94A3B8,#64748B)', asiento:'AS-0344' },
  ];
  const CLICKS = [6.3, 6.46, 6.61, 6.75];           // un checkbox por click, en cascada
  const chkAsiento = (i)=> T.asientos + i*0.25;     // check verde + nº asiento, fila a fila

  // ---- Cursor guionizado: park → 4 checkboxes → botón Procesar → sale ----
  const CUR_FRAMES = [
    { t:5.65, x:1930, y:990 },
    { t:6.23, x:CHK_CX, y:rowCY(0) }, { t:6.36, x:CHK_CX, y:rowCY(0) },
    { t:6.45, x:CHK_CX, y:rowCY(1) }, { t:6.52, x:CHK_CX, y:rowCY(1) },
    { t:6.59, x:CHK_CX, y:rowCY(2) }, { t:6.66, x:CHK_CX, y:rowCY(2) },
    { t:6.74, x:CHK_CX, y:rowCY(3) }, { t:6.81, x:CHK_CX, y:rowCY(3), arc:60 },
    { t:7.07, x:BTN_CX, y:BTN_CY },   { t:7.32, x:BTN_CX, y:BTN_CY },
    { t:7.83, x:1960, y:1010 },
  ];

  // ---- Progresiones ----
  const mkP   = clamp((t-0.15)/0.9, 0, 1), mkE = Easing.easeOutCubic(mkP);       // cortina de entrada
  const subP  = clamp((t-T.lista)/0.5, 0, 1);                                     // subrayado del título
  const pgP   = Easing.easeInOutCubic(clamp((t-(T.click+0.05))/1.4, 0, 1));       // barra de progreso
  const pgOut = 1 - clamp((t-9.0)/0.4, 0, 1);
  const btnPressed = t >= T.click && t < T.click + 0.22;

  const faseAOut  = 1 - clamp((t-20.7)/0.35, 0, 1);   // salida de la pantalla (fade 0.35s)
  const headerOut = 1 - clamp((t-30.25)/0.35, 0, 1);  // el header se va con el recap
  const recapOut  = 1 - clamp((t-30.25)/0.35, 0, 1);

  const ecoP    = clamp((t-T.eco)/0.7, 0, 1),   ecoE    = Easing.easeOutCubic(ecoP);
  const ecoPulse = 1 + 0.015 * Math.sin(clamp((t-(T.eco+0.7))/1.1, 0, 1) * Math.PI); // UN pulso
  const cierreP = clamp((t-T.cierre)/0.6, 0, 1), cierreE = Easing.easeOutCubic(cierreP);

  // ---- Piezas locales ----
  const Checkbox = ({ clickT })=>{
    const on = t >= clickT;
    const e = Easing.easeOutBack(clamp((t-clickT)/0.3, 0, 1));
    return (
      <div style={{width:20, height:20, borderRadius:6, flexShrink:0, border:`1.5px solid ${on?'#0085FF':'#CBD5E1'}`, background:on?'#0085FF':'#fff', display:'flex', alignItems:'center', justifyContent:'center'}}>
        {on && (
          <svg width="13" height="13" viewBox="0 0 24 24" fill="none" style={{transform:`scale(${e})`}}>
            <path d="M5 12 L10 17 L19 7" stroke="#fff" strokeWidth="3.4" strokeLinecap="round" strokeLinejoin="round"/>
          </svg>
        )}
      </div>
    );
  };

  const ChipEstado = ({ label, start, bg, border, fg })=>{
    const p = clamp((t-start)/0.5, 0, 1), e = Easing.easeOutBack(p);
    if (p <= 0) return <div style={{width:132}}/>;
    return (
      <div style={{width:132, display:'flex', alignItems:'center', justifyContent:'center', gap:8, padding:'11px 0', background:bg, border:`1.5px solid ${border}`, borderRadius:100, transform:`scale(${lerp(0.6,1,e)})`, opacity:clamp(p*1.3,0,1)}}>
        <span style={{width:8, height:8, borderRadius:100, background:fg}}/>
        <span className="f-plex" style={{fontSize:15, fontWeight:700, color:fg}}>{label}</span>
      </div>
    );
  };

  const Flecha = ({ start })=>{
    const p = clamp((t-start)/0.45, 0, 1), e = Easing.easeInOutCubic(p);
    return (
      <svg width="44" height="20" viewBox="0 0 44 20" style={{flexShrink:0}}>
        <path d="M4 10 H34" stroke="#94A3B8" strokeWidth="2" strokeLinecap="round" strokeDasharray="30" strokeDashoffset={30*(1-e)}/>
        <path d="M31 5 L38 10 L31 15" fill="none" stroke="#94A3B8" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" opacity={clamp((p-0.7)/0.3, 0, 1)}/>
      </svg>
    );
  };

  const iconRecap = (kind, color)=>{
    if (kind === 'catalogo') return (
      <svg width="30" height="30" viewBox="0 0 24 24" fill="none">
        <rect x="3.5" y="4" width="17" height="16" rx="2.5" stroke={color} strokeWidth="1.9"/>
        <path d="M7.5 9 H16.5 M7.5 12.5 H16.5 M7.5 16 H12.5" stroke={color} strokeWidth="1.9" strokeLinecap="round"/>
      </svg>
    );
    if (kind === 'nomina') return (
      <svg width="30" height="30" viewBox="0 0 24 24" fill="none">
        <path d="M6 3.5 H14.5 L19 8 V20.5 H6 Z" stroke={color} strokeWidth="1.9" strokeLinejoin="round"/>
        <path d="M14.5 3.5 V8 H19" stroke={color} strokeWidth="1.9" strokeLinejoin="round"/>
        <path d="M9 12 H16 M9 15.5 H13.5" stroke={color} strokeWidth="1.9" strokeLinecap="round"/>
      </svg>
    );
    return (
      <svg width="30" height="30" viewBox="0 0 24 24" fill="none">
        <path d="M4 6 H20 M12 6 V20" stroke={color} strokeWidth="1.9" strokeLinecap="round"/>
        <text x="7.5" y="15" fontSize="7" fontWeight="700" fontFamily="'JetBrains Mono',monospace" fill={color} textAnchor="middle">D</text>
        <text x="16.5" y="15" fontSize="7" fontWeight="700" fontFamily="'JetBrains Mono',monospace" fill={color} textAnchor="middle">H</text>
      </svg>
    );
  };

  const RECAP = [
    { kind:'catalogo', color:'#0085FF', tag:'UNA VEZ',        name:'El catálogo', desc:'Naturaleza, destino y dos cuentas.', in:21.15, check:T.check1 },
    { kind:'nomina',   color:'#10B981', tag:'HEREDA Y DERIVA', name:'La nómina',   desc:'Totales y reparto, derivados.',      in:21.75, check:T.check2 },
    { kind:'asiento',  color:'#0F172A', tag:'SALE SOLO',       name:'El asiento',  desc:'Cuadrado al céntimo.',               in:22.35, check:T.check3 },
  ];

  return (
    <SlideCanvas variant="light-soft">
      {/* Header (se retira con el recap, antes del eco) */}
      {headerOut > 0 && (
        <div style={{position:'absolute', inset:0, opacity:headerOut, pointerEvents:'none'}}>
          <DemoHeader t={t} eyebrow="PYMES · NÓMINAS · CIERRE DE MES" title={<span>Cierre de mes: una pantalla</span>}/>
        </div>
      )}

      {/* ============ FASE A — pantalla Contabilidad automática ============ */}
      {t < 21.15 && (
        <div style={{position:'absolute', inset:0, opacity:faseAOut}}>

          {/* Mockup navegador */}
          <div style={{position:'absolute', left:MX, top:MY, width:MW, borderRadius:14, overflow:'hidden', boxShadow:'0 30px 70px rgba(15,23,42,0.16)', border:'1px solid #E2E8F0', opacity:clamp(mkP*1.3,0,1), transform:`translateY(${(1-mkE)*26}px)`}}>
            <BrowserChrome url="play.dinaup.com/App/Pymes/Nominas/Contabilidad" title="Dinaup — Nóminas"/>
            <DinaupAppHeader breadcrumb={['Pymes','Nóminas','Contabilidad automática']} company="Clínica Sonrisa, S.L." initials="MJ"/>
            <div style={{position:'relative', height:CONT_H, background:'#F8FAFC'}}>

              {/* Título del panel + subrayado al nombrarlo */}
              <div style={{position:'absolute', left:36, top:18}}>
                <div className="f-plex" style={{fontSize:21, fontWeight:700, color:'#0F172A', letterSpacing:'-0.01em'}}>Contabilidad automática</div>
                <div style={{height:3, width:`${subP*100}%`, maxWidth:236, background:'linear-gradient(90deg,#0085FF,#56E16A)', borderRadius:100, marginTop:4}}/>
                <div className="f-plex" style={{fontSize:13, color:'#64748B', marginTop:5}}>Nóminas de marzo · sin asiento</div>
              </div>

              {/* Chip resultado tras procesar */}
              {t >= 10.3 && (
                <div style={{position:'absolute', right:216, top:32}}>
                  <StatusChip label="4 asientos generados" color="success" icon="✓" start={10.3} t={t}/>
                </div>
              )}

              {/* Botón Procesar */}
              <div className="f-plex" style={{position:'absolute', right:36, top:22, width:156, height:40, borderRadius:10, background: btnPressed ? 'linear-gradient(180deg,#0072DB,#0060B8)' : 'linear-gradient(180deg,#38BDF8,#0085FF)', boxShadow: btnPressed ? '0 3px 10px rgba(0,133,255,0.3)' : '0 8px 20px rgba(0,133,255,0.32)', display:'flex', alignItems:'center', justifyContent:'center', gap:8, color:'#fff', fontSize:15, fontWeight:700, opacity:lerp(0.55, 1, clamp((t-6.74)/0.3,0,1)), transform:`translateY(${btnPressed?1.5:0}px)`}}>
                <svg width="15" height="15" viewBox="0 0 24 24" fill="none"><path d="M7 4 L19 12 L7 20 Z" fill="#fff"/></svg>
                Procesar
              </div>

              {/* Barra de progreso corta */}
              {t >= T.click + 0.05 && pgOut > 0 && (
                <div style={{position:'absolute', left:36, right:36, top:104, height:5, borderRadius:100, background:'#E2E8F0', opacity:pgOut}}>
                  <div style={{height:'100%', width:`${pgP*100}%`, borderRadius:100, background:'linear-gradient(90deg,#0085FF,#56E16A)'}}/>
                </div>
              )}

              {/* Cabecera de la tabla */}
              <div className="f-mono" style={{position:'absolute', left:36, right:36, top:92, display:'flex', fontSize:10.5, fontWeight:700, letterSpacing:'1.5px', color:'#94A3B8', opacity:clamp((t-1.4)/0.5,0,1)}}>
                <span style={{width:92}}/>
                <span style={{flex:1}}>EMPLEADO</span>
                <span style={{width:260}}>PERIODO</span>
                <span style={{width:210, textAlign:'right'}}>ASIENTO</span>
              </div>

              {/* Filas: 4 nóminas del periodo */}
              {ROWS.map((r,i)=>{
                const inP = clamp((t-(2.3+i*0.3))/0.5, 0, 1), inE = Easing.easeOutCubic(inP);
                if (inP <= 0) return null;
                const marcado = t >= CLICKS[i];
                const saP = clamp((t-(T.sinAsiento+i*0.12))/0.4, 0, 1);               // chip "Sin asiento"
                const saOut = 1 - clamp((t-(chkAsiento(i)-0.25))/0.25, 0, 1);          // se disuelve justo antes de llegar el asiento
                const okP = clamp((t-chkAsiento(i))/0.5, 0, 1), okE = Easing.easeOutBack(okP);
                return (
                  <div key={r.ini} style={{position:'absolute', left:36, right:36, top:rowTop(i), height:ROW_H, background: marcado ? '#F5FAFF' : '#fff', border:`1.5px solid ${marcado ? 'rgba(0,133,255,0.45)' : '#E2E8F0'}`, borderRadius:12, boxShadow:'0 3px 10px rgba(15,23,42,0.05)', display:'flex', alignItems:'center', padding:'0 0 0 0', opacity:clamp(inP*1.3,0,1), transform:`translateY(${(1-inE)*14}px)`}}>
                    <div style={{width:56, display:'flex', justifyContent:'center'}}><Checkbox clickT={CLICKS[i]}/></div>
                    <div className="f-plex" style={{width:36, height:36, borderRadius:100, background:r.grad, color:'#fff', display:'flex', alignItems:'center', justifyContent:'center', fontSize:13, fontWeight:700, flexShrink:0}}>{r.ini}</div>
                    <div className="f-plex" style={{flex:1, marginLeft:14, fontSize:15.5, fontWeight:600, color:'#0F172A'}}>{r.name}</div>
                    <div className="f-mono" style={{width:260, fontSize:13, color:'#64748B'}}>01/03 – 31/03</div>
                    <div style={{width:210, display:'flex', justifyContent:'flex-end', paddingRight:18, position:'relative'}}>
                      {/* Antes: sin asiento */}
                      {saP > 0 && saOut > 0 && okP <= 0 && (
                        <span className="f-mono" style={{padding:'5px 12px', borderRadius:100, background:'#F8FAFC', border:'1.5px dashed #CBD5E1', color:'#94A3B8', fontSize:11.5, fontWeight:700, opacity:Math.min(clamp(saP*1.3,0,1), saOut), transform:`scale(${lerp(0.85,1,Easing.easeOutCubic(saP))})`}}>Sin asiento</span>
                      )}
                      {/* Después: check verde + nº de asiento */}
                      {okP > 0 && (
                        <span style={{display:'inline-flex', alignItems:'center', gap:9, opacity:clamp(okP*1.3,0,1), transform:`scale(${lerp(0.6,1,okE)})`}}>
                          <span style={{width: i===0?26:22, height: i===0?26:22, borderRadius:100, background:'linear-gradient(180deg,#34D399,#10B981)', boxShadow:'0 4px 12px rgba(16,185,129,0.35)', display:'inline-flex', alignItems:'center', justifyContent:'center'}}>
                            <svg width={i===0?14:12} height={i===0?14:12} viewBox="0 0 24 24" fill="none"><path d="M5 12 L10 17 L19 7" stroke="#fff" strokeWidth="3.2" strokeLinecap="round" strokeLinejoin="round"/></svg>
                          </span>
                          <span className="f-mono" style={{fontSize:14, fontWeight:700, color:'#059669'}}>{r.asiento}</span>
                        </span>
                      )}
                    </div>
                  </div>
                );
              })}
            </div>
          </div>

          {/* Tarjeta: el estado sigue el ciclo */}
          {t >= T.ciclo && (
            <div style={{position:'absolute', left:1270, top:310, width:570, background:'#fff', borderRadius:16, border:'1px solid #E2E8F0', boxShadow:'0 18px 44px rgba(15,23,42,0.08)', padding:'22px 26px', opacity:clamp((t-T.ciclo)/0.5,0,1), transform:`translateY(${(1-Easing.easeOutCubic(clamp((t-T.ciclo)/0.6,0,1)))*14}px)`}}>
              <div className="f-mono" style={{fontSize:11, fontWeight:700, letterSpacing:'2.5px', color:'#94A3B8'}}>ESTADO DE LA NÓMINA</div>
              <div className="f-plex" style={{fontSize:19, fontWeight:700, color:'#0F172A', marginTop:4}}>El estado sigue el ciclo</div>
              <div style={{display:'flex', alignItems:'center', justifyContent:'space-between', marginTop:18}}>
                <ChipEstado label="Pendiente" start={T.pendiente} bg="#FFF7ED" border="#FDBA74" fg="#C2410C"/>
                <Flecha start={T.pendiente + 0.55}/>
                <ChipEstado label="Tramitada" start={T.tramitada} bg="rgba(0,133,255,0.10)" border="rgba(0,133,255,0.35)" fg="#0085FF"/>
                <Flecha start={T.tramitada + 0.7}/>
                <ChipEstado label="Pagada" start={T.pagada} bg="rgba(16,185,129,0.12)" border="rgba(16,185,129,0.4)" fg="#059669"/>
              </div>
            </div>
          )}

          {/* Banner vigía: Ponerse al día */}
          {t >= T.vigia && (()=>{
            const vp = clamp((t-T.vigia)/0.6, 0, 1), ve = Easing.easeOutBack(vp);
            const PEND = [ {ini:'LM', name:'Laura Medina'}, {ini:'DC', name:'David Costa'} ];
            return (
              <div style={{position:'absolute', left:1270, top:508, width:570, background:'#fff', borderRadius:16, border:'1.5px solid rgba(251,140,0,0.35)', boxShadow:'0 18px 44px rgba(251,140,0,0.10)', padding:'22px 26px', opacity:clamp(vp*1.3,0,1), transform:`translateY(${(1-ve)*20}px) scale(${lerp(0.94,1,ve)})`}}>
                <div style={{display:'flex', alignItems:'center', gap:14}}>
                  <div style={{width:44, height:44, borderRadius:12, background:'#FFF7ED', border:'1px solid #FDBA74', display:'flex', alignItems:'center', justifyContent:'center', flexShrink:0}}>
                    <svg width="22" height="22" viewBox="0 0 24 24" fill="none">
                      <path d="M2.5 12 C5 6.8 8.3 4.5 12 4.5 C15.7 4.5 19 6.8 21.5 12 C19 17.2 15.7 19.5 12 19.5 C8.3 19.5 5 17.2 2.5 12 Z" stroke="#C2410C" strokeWidth="1.9"/>
                      <circle cx="12" cy="12" r="3.2" stroke="#C2410C" strokeWidth="1.9"/>
                    </svg>
                  </div>
                  <div style={{flex:1}}>
                    <div className="f-plex" style={{fontSize:20, fontWeight:800, color:'#0F172A', letterSpacing:'-0.01em'}}>Ponerse al día</div>
                    <div className="f-plex" style={{fontSize:13.5, color:'#64748B', marginTop:1}}>Vigila lo que falta</div>
                  </div>
                  {t >= T.avatares && (
                    <div className="f-mono" style={{width:36, height:36, borderRadius:100, background:'linear-gradient(180deg,#FBBF6B,#FB8C00)', color:'#fff', fontSize:16, fontWeight:800, display:'flex', alignItems:'center', justifyContent:'center', boxShadow:'0 6px 16px rgba(251,140,0,0.35)', transform:`scale(${Easing.easeOutBack(clamp((t-T.avatares)/0.45,0,1))})`}}>2</div>
                  )}
                </div>
                {/* Dos empleados sin nómina este mes */}
                {PEND.map((p,i)=>{
                  const ap = clamp((t-(T.avatares+i*0.3))/0.5, 0, 1), ae = Easing.easeOutCubic(ap);
                  if (ap <= 0) return null;
                  return (
                    <div key={p.ini} style={{display:'flex', alignItems:'center', gap:12, marginTop: i===0 ? 18 : 10, padding:'10px 14px', background:'#FFFBF5', border:'1px solid #FDE6C8', borderRadius:12, opacity:clamp(ap*1.3,0,1), transform:`translateY(${(1-ae)*10}px)`}}>
                      <div className="f-plex" style={{width:34, height:34, borderRadius:100, background:'linear-gradient(135deg,#94A3B8,#64748B)', color:'#fff', display:'flex', alignItems:'center', justifyContent:'center', fontSize:12.5, fontWeight:700}}>{p.ini}</div>
                      <div className="f-plex" style={{flex:1, fontSize:15, fontWeight:600, color:'#0F172A'}}>{p.name}</div>
                      <span className="f-mono" style={{padding:'4px 11px', borderRadius:100, background:'#FFF7ED', border:'1.5px solid #FDBA74', color:'#C2410C', fontSize:11, fontWeight:700}}>Sin nómina este mes</span>
                    </div>
                  );
                })}
              </div>
            );
          })()}

          {/* Cursor guionizado: marca las 4 y pulsa Procesar */}
          <ScriptedCursor frames={CUR_FRAMES} t={t} clickTimes={[...CLICKS, T.click]}/>
        </div>
      )}

      {/* ============ FASE B — recap del método en 3 tarjetas ============ */}
      {t >= T.recap && t < T.eco + 0.1 && (
        <div style={{position:'absolute', inset:0, opacity:recapOut}}>
          <div style={{position:'absolute', left:0, right:0, top:330, display:'flex', gap:34, justifyContent:'center'}}>
            {RECAP.map((c,i)=>{
              const cp = clamp((t-c.in)/0.6, 0, 1), ce = Easing.easeOutBack(cp);
              if (cp <= 0) return <div key={c.kind} style={{width:390}}/>;
              const pulso = c.kind==='nomina' ? 1 + 0.025*Math.sin(clamp((t-T.hereda)/0.9,0,1)*Math.PI) : 1;
              const okP = clamp((t-c.check)/0.45, 0, 1), okE = Easing.easeOutBack(okP);
              return (
                <div key={c.kind} style={{position:'relative', width:390, background:'#fff', borderRadius:20, border:`1px solid ${c.color}30`, boxShadow:`0 26px 60px ${c.color}1a, 0 6px 16px rgba(15,23,42,0.05)`, padding:'30px 32px', opacity:clamp(cp*1.3,0,1), transform:`translateY(${(1-ce)*40}px) scale(${lerp(0.92,1,ce)*pulso})`}}>
                  <div style={{display:'flex', alignItems:'center', gap:15}}>
                    <div style={{width:60, height:60, borderRadius:15, background:`${c.color}12`, display:'flex', alignItems:'center', justifyContent:'center', flexShrink:0}}>{iconRecap(c.kind, c.color)}</div>
                    <div>
                      <div className="f-mono" style={{fontSize:11, fontWeight:700, letterSpacing:'2.5px', color:c.color}}>{c.tag}</div>
                      <div className="f-plex" style={{fontSize:28, fontWeight:800, color:'#0F172A', letterSpacing:'-0.02em', lineHeight:1.1}}>{c.name}</div>
                    </div>
                  </div>
                  <div className="f-plex" style={{marginTop:16, fontSize:17, fontWeight:500, color:'#475569', lineHeight:1.4, opacity:clamp((t-(c.in+0.5))/0.5,0,1)}}>{c.desc}</div>
                  {/* Check de cada idea, en su beat */}
                  {okP > 0 && (
                    <div style={{position:'absolute', top:-13, right:-13, width:38, height:38, borderRadius:100, background:'linear-gradient(180deg,#34D399,#10B981)', boxShadow:'0 8px 20px rgba(16,185,129,0.4)', display:'flex', alignItems:'center', justifyContent:'center', transform:`scale(${okE})`}}>
                      <svg width="19" height="19" viewBox="0 0 24 24" fill="none"><path d="M5 12 L10 17 L19 7" stroke="#fff" strokeWidth="3.4" strokeLinecap="round" strokeLinejoin="round"/></svg>
                    </div>
                  )}
                </div>
              );
            })}
          </div>
        </div>
      )}

      {/* ============ FASE C — ECO + cierre ============ */}
      {ecoP > 0 && (
        <div style={{position:'absolute', left:0, right:0, top:0, bottom:0}}>
          <div style={{position:'absolute', left:0, right:0, top:380, display:'flex', justifyContent:'center', opacity:ecoE, transform:`translateY(${(1-ecoE)*18}px)`}}>
            <DinaupLogo mark size={62}/>
          </div>
          <div style={{position:'absolute', left:0, right:0, top:490, textAlign:'center', opacity:ecoE, transform:`translateY(${(1-ecoE)*18}px) scale(${ecoPulse})`}}>
            <div className="f-plex" style={{fontSize:58, fontWeight:800, letterSpacing:'-0.03em', color:'#0F172A', lineHeight:1.1}}>
              El concepto lleva <span className="grad-text">el asiento dentro.</span>
            </div>
          </div>
          {cierreP > 0 && (
            <div style={{position:'absolute', left:0, right:0, top:600, textAlign:'center', opacity:cierreE, transform:`translateY(${(1-cierreE)*10}px)`}}>
              <div className="f-plex" style={{fontSize:25, fontWeight:500, color:'#64748B', letterSpacing:'-0.01em'}}>
                Eso es llevar nóminas en Dinaup.
              </div>
            </div>
          )}
        </div>
      )}
    </SlideCanvas>
  );
}
Object.assign(window, { EscenaNO06 });
