/* ============================================================================
   MODO CABINA (2026-08-15) — el scroll ya no cuenta la historia.
   Una sola pantalla: el cerebro al centro, el teatro del flujo a la
   izquierda, la prueba de vida a la derecha. En pantallas apiladas
   (<=1099px) se permite el scroll natural de UNA sección — no hay capítulos.
   ========================================================================== */
html,body{height:100%;overflow:hidden}
@media(max-width:1099px){html,body{height:auto;overflow:auto}}
#scroller{min-height:100dvh}

/* pie: en cabina flota discreto abajo-derecha, junto al borde */
footer{position:fixed;right:16px;bottom:8px;left:auto;z-index:56;display:block;
  background:transparent;border:0;padding:0}
footer .pie-marca,footer .pie-sp{display:none}
footer .pie-legal{font-size:.62rem;color:var(--mut);opacity:.66;letter-spacing:.06em}
@media(max-width:1099px){footer{position:static;padding:18px;text-align:center}}

/* ===== MISIONES (chips bajo el titular) ===== */
.misiones{margin-top:14px;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.mis-titulo{margin:0;font-family:var(--mono);font-size:.64rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--mut)}
.mis-chip{cursor:pointer;padding:8px 13px;border-radius:30px;text-align:left;
  border:1px solid rgba(var(--vio-rgb),.3);background:rgba(9,17,32,.55);
  color:var(--txt-3);font-size:.8rem;
  transition:border-color .25s,color .25s,box-shadow .25s}
.mis-chip:hover{border-color:var(--vio);color:#fff;
  box-shadow:0 0 22px -10px rgba(var(--vio-2-rgb),.9)}
body.mision .misiones{display:none}

/* ===== EL TEATRO — la demo guiada dentro de la columna del argumento ===== */
body.mision .h-texto>*:not(#teatro){display:none}
#teatro{display:none;width:100%;max-width:560px;text-align:left}
body.mision #teatro{display:block}

.tj-cab{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.tj-demo{font-family:var(--mono);font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--vio);padding:6px 11px;border:1px solid rgba(var(--vio-rgb),.35);border-radius:30px;
  background:rgba(var(--vio-2-rgb),.08)}
.tj-salir{cursor:pointer;border:1px solid var(--line);background:rgba(9,17,32,.6);
  color:var(--mut);border-radius:50%;width:30px;height:30px;font-size:.9rem;line-height:1;
  transition:color .25s,border-color .25s}
.tj-salir:hover{color:#fff;border-color:var(--line-fuerte)}

.tj-etapas{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px;padding:0;list-style:none}
.tj-etapas li{font-family:var(--mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;
  padding:5px 9px;border-radius:20px;border:1px solid var(--line);color:var(--mut);
  transition:all .35s var(--ease)}
.tj-etapas li.activa{border-color:var(--vio);color:#fff;
  box-shadow:0 0 16px -6px rgba(var(--vio-2-rgb),.9);background:rgba(var(--vio-2-rgb),.14)}
.tj-etapas li:nth-child(5).activa{border-color:var(--amber);color:var(--amber);
  box-shadow:0 0 18px -6px rgba(var(--amber-rgb),.8);background:rgba(var(--amber-rgb),.08)}
.tj-etapas li.lista{border-color:rgba(var(--node-rgb),.5);color:var(--node)}

.tj-flujo{display:flex;flex-direction:column;gap:10px;max-height:min(52vh,470px);
  overflow-y:auto;overscroll-behavior:contain;padding-right:6px;
  -webkit-mask:linear-gradient(180deg,transparent 0,#000 18px,#000 100%);
          mask:linear-gradient(180deg,transparent 0,#000 18px,#000 100%)}
.tj-flujo::-webkit-scrollbar{width:4px}
.tj-flujo::-webkit-scrollbar-thumb{background:rgba(var(--vio-rgb),.3);border-radius:4px}

.tj-carta{border:1px solid var(--line);border-radius:14px;padding:12px 15px;
  background:var(--glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  color:var(--txt-3);font-size:.86rem;line-height:1.5;
  opacity:0;transform:translateY(10px);transition:opacity .5s var(--ease),transform .5s var(--ease)}
.tj-carta.en{opacity:1;transform:none}
.tj-carta i{font-style:normal;font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;
  color:var(--node2);display:block;margin-bottom:5px}
.tj-carta q{quotes:none;color:#fff;font-size:.92rem}
.tj-carta ul{margin:6px 0 0;padding-left:18px}
.tj-carta li{margin:3px 0}
.tj-carta .tj-arch{display:block;font-family:var(--mono);font-size:.72rem;color:var(--txt-2);
  margin-top:4px;line-height:1.7}
.tj-arch.tj-espera{opacity:.5}
.tj-carta.etiqueta{border-color:rgba(var(--node2-rgb),.35)}
.tj-carta.etiqueta em{color:var(--node2);font-style:normal}
.tj-carta.carpeta i{color:var(--gold)}
.tj-carta.plan{border-color:rgba(var(--vio-rgb),.4)}
.tj-carta.plan i{color:var(--vio)}
.tj-carta.equipo{padding:9px 15px;border-color:rgba(var(--violet-rgb),.35)}
.tj-carta.equipo b{color:var(--violet)}
.tj-carta.verde{border-color:rgba(var(--node-rgb),.45)}
.tj-carta.verde b{color:var(--node)}

/* la carta ámbar: el checkpoint humano — lo único sagrado */
.tj-carta.ambar{border-color:rgba(var(--amber-rgb),.55);background:rgba(24,16,4,.66);
  box-shadow:0 0 34px -12px rgba(var(--amber-rgb),.5)}
.tj-carta.ambar b{color:var(--amber)}
.tj-carta.ambar p{margin:6px 0 0}
.tj-carta.aprobada{opacity:.66}
.tj-plan-recap{margin:9px 0 4px;padding:0 0 0 2px;list-style:none;display:grid;gap:4px}
.tj-plan-recap li{font-size:.8rem;line-height:1.35;color:var(--txt);padding-left:15px;position:relative;opacity:.92}
.tj-plan-recap li::before{content:"›";position:absolute;left:0;color:var(--amber);font-weight:700}
.tj-botones{display:flex;gap:9px;margin-top:11px;flex-wrap:wrap}
.tj-ok,.tj-no,.tj-otra,.tj-cta{cursor:pointer;border-radius:30px;padding:9px 16px;
  font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;
  transition:all .25s}
.tj-ok{border:1px solid var(--amber);background:rgba(var(--amber-rgb),.14);color:var(--amber)}
.tj-ok:hover{background:var(--amber);color:#1a1204;box-shadow:0 0 26px -6px var(--amber)}
.tj-no,.tj-otra{border:1px solid var(--line);background:transparent;color:var(--mut)}
.tj-no:hover,.tj-otra:hover{color:#fff;border-color:var(--line-fuerte)}
.tj-carta.oro{border-color:rgba(var(--gold-rgb),.5)}
.tj-carta.oro b{color:var(--gold)}
.tj-cta{display:inline-block;border:1px solid var(--gold);color:var(--gold);text-decoration:none;
  background:rgba(var(--gold-rgb),.1)}
.tj-cta:hover{background:var(--gold);color:#1a1404;box-shadow:0 0 26px -6px var(--gold)}

/* ===== EL NÚCLEO REACCIONA ===== */
.cap.encendida .disco{box-shadow:0 0 0 2px rgba(var(--vio-rgb),.8),0 0 34px 6px rgba(var(--vio-2-rgb),.55)}
.cap.encendida .et{color:#fff;text-shadow:0 0 14px rgba(var(--vio-rgb),.8)}
.nx-caja.pide-humano .nx-esfera{stroke:var(--amber);filter:drop-shadow(0 0 22px rgba(var(--amber-rgb),.6))}
.nx-caja.pide-humano .nx-luz{background:radial-gradient(circle,rgba(var(--amber-rgb),.32),transparent 60%)}

/* ===== GABY DENTRO DEL CEREBRO ===== */
#gabyPill.en-nucleo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  bottom:auto;z-index:5;flex-direction:column;gap:4px;padding:0;
  width:92px;height:92px;border-radius:50%;justify-content:center;
  border:1px solid rgba(var(--vio-rgb),.5);
  background:radial-gradient(circle at 36% 30%,rgba(255,255,255,.1),rgba(9,17,32,.55) 60%);
  box-shadow:0 0 44px -8px rgba(var(--vio-2-rgb),.8),inset 0 0 26px rgba(var(--vio-2-rgb),.25);
  opacity:0;pointer-events:none;transition:opacity .9s var(--ease),box-shadow .3s,border-color .3s}
#gabyPill.en-nucleo.viva{opacity:1;transform:translate(-50%,-50%);pointer-events:auto}
#gabyPill.en-nucleo:hover{border-color:var(--vio);
  box-shadow:0 0 60px -6px rgba(var(--vio-2-rgb),.95),inset 0 0 30px rgba(var(--vio-2-rgb),.35)}
#gabyPill.en-nucleo .pto{width:12px;height:12px}
#gabyPill.en-nucleo #gabyLb{display:block;font-size:.5rem;letter-spacing:.18em}
#gabyPill.en-nucleo::after{content:none}
#gabyPill.en-nucleo .mis{font-size:.56rem;letter-spacing:.24em;text-indent:.24em}
body.gaby-montada #gabyPill.en-nucleo{bottom:auto}
/* durante la misión el botón cede el centro (el cerebro está trabajando) —
   salvo que la llamada esté EN VIVO: a Gaby no se le cuelga por una demo */
body.mision #gabyPill.en-nucleo:not(.live){opacity:0;pointer-events:none}
/* el globo de Gaby acompaña al núcleo, no a la esquina */
#gabyGlobo{left:auto;right:26px;bottom:26px}
@media(max-width:1099px){#gabyGlobo{left:14px;right:14px;bottom:14px;max-width:none}}

/* ===== DIÁLOGOS (capacidades y preguntas) ===== */
dialog.dlg{border:1px solid rgba(var(--vio-rgb),.3);border-radius:18px;padding:26px 28px;
  width:min(560px,92vw);max-height:min(78vh,720px);overflow:auto;
  background:rgba(6,11,22,.92);color:var(--txt-2);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  box-shadow:0 30px 90px -30px rgba(0,0,0,.9),0 0 60px -20px rgba(var(--vio-2-rgb),.5)}
dialog.dlg::backdrop{background:rgba(2,4,9,.72);backdrop-filter:blur(4px)}
.dlg-x{position:absolute;top:10px;right:14px;border:0;background:none;cursor:pointer;
  color:var(--mut);font-size:1.3rem;line-height:1;padding:6px}
.dlg-x:hover{color:#fff}
.dlg-k{margin:0 0 4px;font-family:var(--mono);font-size:.62rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--vio)}
.dlg-t{margin:0 0 10px;font-size:1.4rem;color:#fff}
.dlg-p{margin:0 0 12px;line-height:1.6;color:var(--txt-3)}
.dlg-h{margin:0 0 14px;padding-left:18px;color:var(--txt-3)}
.dlg-h li{margin:5px 0}
#capCuerpo video,#capCuerpo img{width:100%;border-radius:12px;border:1px solid var(--line);display:block}
.dlg-cta{margin-top:14px}
.dlg .faq details{border-bottom:1px solid var(--line);padding:10px 0}
.dlg .faq summary{cursor:pointer;color:#fff;font-size:.95rem}
.dlg .faq p{color:var(--txt-3);line-height:1.6;margin:8px 0 2px}

/* móvil: el teatro respira */
@media(max-width:1099px){
  #teatro{max-width:600px;margin-inline:auto}
  .tj-flujo{max-height:none;-webkit-mask:none;mask:none;overflow:visible;padding-right:0}
}
@media(prefers-reduced-motion:reduce){
  .tj-carta{transition:none;opacity:1;transform:none}
}

/* ============================================================================
   v2 — EL ESPACIO 3D NARRADO (los nodos flotan; nada de hoja plana)
   ========================================================================== */
#espacio{position:fixed;inset:0;z-index:40;pointer-events:none;
  perspective:1200px;perspective-origin:50% 46%}
.esp-mundo{position:absolute;inset:0;transform-style:preserve-3d;will-change:transform}

.nodo3d{position:absolute;left:50%;top:50%;transform-style:preserve-3d;
  transform:translate(-50%,-50%)
    translate3d(var(--tx,0),var(--ty,0),var(--tz,0)) rotateY(var(--ry,0deg));
  opacity:1;filter:blur(0);
  transition:transform 1.1s cubic-bezier(.16,.7,.2,1),opacity .8s ease,filter .8s ease}
.nodo3d.lejos{opacity:0;filter:blur(10px);
  transform:translate(-50%,-50%)
    translate3d(var(--tx,0),var(--ty,0),calc(var(--tz,0px) - 520px))
    rotateY(var(--ry,0deg)) scale(.6)}
.nodo3d .flote{animation:nodoFlota 7s ease-in-out infinite alternate;
  animation-delay:calc(var(--tz,0px) * 0.002s)}
@keyframes nodoFlota{from{transform:translateY(-5px)}to{transform:translateY(7px)}}
.nodo3d .tj-carta{width:clamp(200px,21vw,268px);box-shadow:0 22px 60px -28px rgba(0,0,0,.9)}
.nodo3d.frente .tj-carta{width:clamp(250px,30vw,350px)}
.nodo3d{pointer-events:none}
.nodo3d.toca .tj-carta{pointer-events:auto}
.nodo3d.aprobada{opacity:.55}
@media(max-width:1099px){
  #espacio{perspective:900px}
  .nodo3d .tj-carta{width:clamp(190px,62vw,250px)}
  .nodo3d.frente .tj-carta{width:min(84vw,330px)}
}
@media(prefers-reduced-motion:reduce){
  .nodo3d,.nodo3d.lejos{transition:none;opacity:1;filter:none;
    transform:translate(-50%,-50%) translate3d(var(--tx,0),var(--ty,0),var(--tz,0))}
  .nodo3d .flote{animation:none}
}

/* cabecera de la misión: flota arriba, bajo la barra */
#mCab{position:fixed;top:60px;left:50%;transform:translateX(-50%);z-index:57;
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center;
  padding:9px 14px;border-radius:30px;border:1px solid rgba(var(--vio-rgb),.25);
  background:rgba(5,9,18,.78);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
#mCab .tj-etapas{margin:0}
@media(max-width:700px){#mCab{top:56px;width:min(96vw,560px)}}

/* subtítulos: la voz, escrita — abajo al centro */
#gabySub{position:fixed;left:50%;bottom:clamp(18px,6vh,54px);transform:translateX(-50%) translateY(8px);
  z-index:57;max-width:min(680px,88vw);margin:0;padding:10px 18px;border-radius:14px;
  border:1px solid rgba(var(--vio-rgb),.22);background:rgba(4,7,14,.78);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  font-size:.92rem;line-height:1.5;color:var(--txt-2);text-align:center;
  opacity:0;pointer-events:none;transition:opacity .45s ease,transform .45s ease}
#gabySub.viva{opacity:1;transform:translateX(-50%)}

/* el núcleo respira con la voz (narración o Gaby en vivo) */
.nx-caja{--gv:0}
.nx-caja.narrando .nx-luz,.nx-caja.hablando .nx-luz{
  opacity:calc(.45 + var(--gv) * .55);
  transform:scale(calc(1.02 + var(--gv) * .22));
  transition:transform .12s linear,opacity .12s linear}
.nx-caja.narrando .nx-svg{filter:saturate(1.25)}
.nx-caja.hablando .nx-svg{filter:saturate(calc(1.1 + var(--gv) * .9)) brightness(calc(1 + var(--gv) * .18))}

/* el disco en llamada */
#gabyPill.conectando{border-color:rgba(var(--node2-rgb),.7)}
#gabyPill.conectando .pto{background:var(--node2);animation:dspRespira 1s ease-in-out infinite}
#gabyPill.live{border-color:var(--node);
  box-shadow:0 0 54px -6px rgba(var(--node-rgb),.8),inset 0 0 26px rgba(var(--node-rgb),.2)}
#gabyPill.live .pto{background:var(--node);box-shadow:0 0 12px 3px rgba(var(--node-rgb),.8);
  animation:dspRespira 1.6s ease-in-out infinite}

/* ============================================================================
   v3 — LA ESCENA THREE.JS (cine de verdad)
   ========================================================================== */
#lienzo3d{position:fixed;inset:0;z-index:45;pointer-events:none;display:block}

/* la carta del nodo ACTIVO: una sola a la vez, proyectada desde la escena */
.carta3d{position:fixed;left:0;top:0;z-index:58;pointer-events:none;
  opacity:0;transition:opacity .45s var(--ease);will-change:transform}
.carta3d.abierta{opacity:1}
.carta3d .tj-carta{pointer-events:auto;width:clamp(220px,24vw,300px);
  box-shadow:0 24px 70px -30px rgba(0,0,0,.95)}
.carta3d.plana{left:50%;top:50%;transform:translate(-50%,-50%)}
.carta3d.plana .tj-carta{width:min(88vw,360px)}
@media(max-width:700px){.carta3d .tj-carta{width:min(78vw,280px)}}

/* durante la misión, el hero SVG cede el escenario al lienzo */
body.mision .nx,body.mision .sysp{transition:opacity .8s var(--ease)}
body.mision .nx{opacity:0;pointer-events:none}
body.mision .sysp{opacity:.92;position:relative;z-index:46}
@media(max-width:1099px){body.mision .sysp{opacity:0;pointer-events:none}}

/* Gaby DENTRO de la esfera 3D: el disco viaja al corazón de la escena.
   La posición la escribe experiencia3d.js (proyección del origen). */
#gabyPill.en-esfera{position:fixed;left:0;top:0;bottom:auto;z-index:59;
  width:84px;height:84px}
body.mision #gabyPill.en-nucleo:not(.live){opacity:0;pointer-events:none}
body.mision #gabyPill.en-esfera{opacity:1 !important;pointer-events:auto !important}

/* la esencia de Gaby (video real del panel) llena su disco */
#gabyPill{overflow:hidden}
#gabyPill .gvid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  border-radius:inherit;opacity:.5;pointer-events:none;z-index:-1;
  filter:saturate(1.2) brightness(.9)}
#gabyPill.sin-video{background-image:url(../img/equipo/gaby-avatar.png);
  background-size:cover;background-position:center}
#gabyPill.sin-video .gvid{display:none}
#gabyPill.en-nucleo #gabyLb,#gabyPill.en-esfera #gabyLb{text-shadow:0 1px 8px rgba(0,0,0,.9)}

/* las caras reales del equipo en sus cartas */
.tj-carta.equipo{display:flex;align-items:center;gap:10px}
.tj-carta.equipo .tj-avatar{width:44px;height:44px;border-radius:50%;flex:none;
  border:1px solid rgba(var(--violet-rgb),.6);object-fit:cover;
  box-shadow:0 0 16px -4px rgba(var(--violet-rgb),.8)}

/* imágenes y dashboards REALES dentro de las cartas de la escena */
.tj-carta .tj-media{width:100%;border-radius:10px;border:1px solid var(--line);
  display:block;margin-top:9px}
.tj-carta .tj-pie{display:block;margin-top:5px;font-family:var(--mono);font-size:.6rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--mut)}

/* la cara de Gaby manda en el disco: el letrero baja a un pie, fuera del círculo */
#gabyPill{overflow:visible}
#gabyPill .gvid{border-radius:50%;opacity:.88;z-index:0}
#gabyPill.en-nucleo #gabyLb,#gabyPill.en-esfera #gabyLb{
  position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);
  white-space:nowrap;z-index:2;font-size:.52rem}
#gabyPill.en-nucleo .mis,#gabyPill.en-esfera .mis{
  position:absolute;top:calc(100% + 24px);left:50%;transform:translateX(-50%);z-index:2}
#gabyPill.en-nucleo .pto,#gabyPill.en-esfera .pto{
  position:absolute;top:4px;right:4px;z-index:2;width:11px;height:11px;
  border:2px solid rgba(4,7,14,.8)}

/* la entidad 3D de fondo del hero: centrada tras el cerebro SVG */
.nx-caja{transition:transform .25s ease-out;transform-style:preserve-3d}
/* z-index:-1 la deja detrás de todo lo que vive en la caja (el tilt de la
   caja crea el contexto de apilamiento) SIN tocar el posicionamiento de los
   nodos del anillo ni del SVG. */
.nx-fondo3d{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  z-index:-1;pointer-events:none;opacity:.85;
  /* la entidad se disuelve en los bordes: jamás se monta sobre el titular */
  -webkit-mask:radial-gradient(circle,#000 58%,transparent 86%);
          mask:radial-gradient(circle,#000 58%,transparent 86%)}
body.mision .nx-fondo3d{opacity:0}

/* ===== PROFUNDIDAD DEL MARCO: barra y prueba de vida ===== */
/* En cabina no hay scroll, así que la barra jamás recibía su vidrio: ahora
   tiene presencia propia — vidrio, filo de luz y sombra que la despega. */
#top{background:linear-gradient(180deg,rgba(6,10,20,.82),rgba(6,10,20,.46));
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(var(--vio-rgb),.16);
  box-shadow:0 12px 44px -20px rgba(0,0,0,.85)}

/* la carta de estado se inclina hacia la escena y FLOTA — nada plano */
@media(min-width:1100px){
  .sysp{transform:perspective(1100px) rotateY(-7deg);
    box-shadow:0 34px 80px -32px rgba(0,0,0,.9),0 0 52px -20px rgba(var(--vio-2-rgb),.4);
    border-color:rgba(var(--vio-rgb),.22);
    animation:sysFlota 9s ease-in-out infinite alternate}
  @keyframes sysFlota{
    from{transform:perspective(1100px) rotateY(-7.5deg) translateY(-5px)}
    to{transform:perspective(1100px) rotateY(-5deg) translateY(7px)}}
}
@media(prefers-reduced-motion:reduce){.sysp{animation:none;transform:none}}

/* cabecera de escena de CAPACIDAD: sin fila de etapas */
#mCab.solo-cap .tj-etapas{display:none}

/* ===== GABY v2: retrato nítido + anillo eléctrico (cero video oscuro) ===== */
#gabyPill .gvid{display:none}
#gabyPill .gcara{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  border-radius:50%;pointer-events:none;z-index:0;
  filter:saturate(1.15) contrast(1.06)}
#gabyPill.en-nucleo,#gabyPill.en-esfera{
  border:2px solid rgba(139,48,255,.95);
  box-shadow:0 0 0 3px rgba(2,2,8,.9),0 0 24px 2px rgba(109,31,255,.75),
             0 0 70px -8px rgba(109,31,255,.9)}
#gabyPill.en-nucleo:hover,#gabyPill.en-esfera:hover{
  border-color:#b98cff;
  box-shadow:0 0 0 3px rgba(2,2,8,.9),0 0 30px 4px rgba(139,48,255,.9),
             0 0 90px -6px rgba(109,31,255,1)}
#gabyPill.live{border-color:#00e676 !important;
  box-shadow:0 0 0 3px rgba(2,2,8,.9),0 0 26px 3px rgba(0,230,118,.8),
             0 0 80px -8px rgba(0,230,118,.9) !important}

/* lo esencial en letra: invisible en la cabina (queda bajo el pliegue),
   cierre digno en el teléfono */
.esencial{max-width:720px;margin:0 auto;padding:48px 22px 120px;color:var(--txt-3);
  font-size:.95rem;line-height:1.7}
.esencial h2{color:#fff;margin-bottom:14px;font-size:1.4rem}
.esencial ul{margin:14px 0;padding-left:20px}
.esencial li{margin:7px 0}
.esencial a{color:var(--vio)}
.esencial strong{color:var(--txt-2)}

/* ============================================================================
   LIVING INTERFACE (v4) — vuelve el scroll, pero ahora el CEREBRO permanece.
   Paleta disciplinada: obsidiana · azul eléctrico · azul-violeta · blanco
   frío · oro solo donde el humano decide. Profundidad, no ruido.
   ========================================================================== */
/* el scroll vuelve a ser el narrador (adiós cabina cerrada) */
html,body{height:auto;overflow:visible}
html{overflow-x:hidden}

/* el pie vuelve a su sitio natural, al final del documento */
footer{position:static;right:auto;bottom:auto;padding:26px 22px;text-align:center;
  background:transparent}
footer .pie-legal{opacity:.75}
/* enlaces a las páginas de contenido (lo que Google lee y posiciona) */
footer .pie-mas{display:block;margin:0 0 10px;font-size:.78rem;letter-spacing:.04em;color:var(--mut)}
footer .pie-mas a{color:var(--node);text-decoration:none;margin:0 4px}
footer .pie-mas a:hover{text-decoration:underline}

/* durante el viaje, la escena 3D es el FONDO del mundo (detrás del texto) */
body.viaje3d:not(.mision) #lienzo3d{z-index:1;opacity:1}
#lienzo3d{transition:opacity .8s ease}

/* ===== LAS SEIS ESTACIONES ===== */
#viajeEtapas{position:relative;z-index:10}
.etapaP{min-height:92vh;display:flex;align-items:center;padding:0 clamp(22px,8vw,140px)}
.etapaP-in{max-width:560px}
.etapaP-n{display:block;font-family:var(--mono);font-size:clamp(3.4rem,9vw,7rem);
  font-weight:700;line-height:1;color:transparent;
  -webkit-text-stroke:1.5px var(--ec,#0a84ff);opacity:.85;
  text-shadow:0 0 44px rgba(10,132,255,.14)}
.etapaP-t{margin:10px 0 12px;font-size:clamp(1.8rem,4vw,3rem);color:#fff;
  letter-spacing:-.5px}
.etapaP-f{font-size:clamp(1rem,1.4vw,1.2rem);line-height:1.65;color:var(--txt-2)}
.etapaP-in{border-left:1px solid rgba(140,175,215,.16);padding-left:clamp(18px,3vw,34px)}
.etapaP.humana .etapaP-in{border-left-color:rgba(255,179,0,.6)}
.etapaP-sello{display:inline-block;margin-top:16px;padding:9px 16px;border-radius:30px;
  font-family:var(--mono);font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;
  color:#ffb300;border:1px solid rgba(255,179,0,.6);background:rgba(30,20,2,.5);
  box-shadow:0 0 30px -10px rgba(255,179,0,.7)}
/* alterna el lado: el ojo viaja, el cerebro queda al centro */
.etapaP:nth-child(even){justify-content:flex-end;text-align:right}
.etapaP:nth-child(even) .etapaP-in{border-left:0;padding-left:0;
  border-right:1px solid rgba(140,175,215,.16);padding-right:clamp(18px,3vw,34px)}
.etapaP:nth-child(even).humana .etapaP-in{border-right-color:rgba(255,179,0,.6)}

/* ===== GABY, DONDE TÚ ESTÉS ===== */
.canales{position:relative;z-index:10;min-height:70vh;display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;padding:80px 22px}
.canales h2{font-size:clamp(2rem,4.6vw,3.4rem);color:#fff;margin:14px 0 40px}
.canales .grad{background:linear-gradient(100deg,#b98cff,#6d1fff);
  -webkit-background-clip:text;background-clip:text;color:transparent}
.canales-fila{display:flex;gap:18px;flex-wrap:wrap;justify-content:center}
.canal{display:flex;flex-direction:column;align-items:center;gap:6px;
  width:min(300px,84vw);padding:26px 22px;border-radius:18px;
  border:1px solid rgba(10,132,255,.35);background:rgba(5,10,22,.72);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  color:var(--txt-2);text-decoration:none;
  box-shadow:0 24px 60px -30px rgba(0,0,0,.9);
  transition:transform .3s var(--ease),border-color .3s,box-shadow .3s}
.canal:hover{transform:translateY(-5px);border-color:#0a84ff;
  box-shadow:0 30px 70px -28px rgba(0,0,0,.95),0 0 44px -14px rgba(10,132,255,.7)}
.canal-ico{font-size:2rem}
.canal b{color:#fff;font-size:1.05rem}
.canal small{color:var(--mut);font-size:.82rem}

/* ===== EL AVISO ESTILO WHATSAPP (notificación real, dramatizada) ===== */
#wspSim{position:fixed;right:18px;bottom:18px;z-index:80;width:min(330px,86vw);
  border-radius:14px;overflow:hidden;border:1px solid rgba(0,230,118,.35);
  background:#0b141a;box-shadow:0 24px 70px -24px rgba(0,0,0,.95),
  0 0 40px -16px rgba(0,230,118,.5);
  opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .5s ease}
#wspSim.viva{opacity:1;transform:none}
.ws-cab{display:flex;align-items:center;gap:9px;padding:10px 12px;background:#111b21;
  border-bottom:1px solid rgba(255,255,255,.06)}
.ws-cab b{color:#e9edef;font-size:.9rem}
.ws-en{color:#00e676;font-size:.68rem}
.ws-x{margin-left:auto;border:0;background:none;color:#8696a0;font-size:1.1rem;cursor:pointer}
.ws-cuerpo{padding:12px;display:flex;flex-direction:column;gap:8px;min-height:64px}
.ws-escribe{display:inline-flex;gap:5px;background:#1f2c34;border-radius:12px;
  padding:12px 14px;width:max-content}
.ws-escribe i{width:7px;height:7px;border-radius:50%;background:#8696a0;
  animation:wsPunto 1.2s ease-in-out infinite}
.ws-escribe i:nth-child(2){animation-delay:.18s}
.ws-escribe i:nth-child(3){animation-delay:.36s}
@keyframes wsPunto{0%,60%,100%{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
.ws-msj{background:#1f2c34;color:#e9edef;border-radius:12px;padding:10px 12px;
  font-size:.86rem;line-height:1.45;max-width:95%}
.ws-msj b{color:#00e676}
.ws-meta{display:block;text-align:right;color:#8696a0;font-size:.64rem;margin-top:5px}
.ws-check{font-style:normal;color:#53bdeb}
.ws-pie{margin:0;padding:8px 12px 10px;font-size:.62rem;color:#8696a0;
  border-top:1px solid rgba(255,255,255,.05);font-family:var(--mono);letter-spacing:.04em}

/* lo esencial, ahora visible al final del viaje: centrado y digno */
.esencial{position:relative;z-index:10}
@media(prefers-reduced-motion:reduce){
  .etapaP-in{opacity:1 !important;transform:none !important}
}

/* convivencia de modos: fuera del viaje y del cine, la escena 3D se esconde
   (nunca puede tapar el hero al volver arriba) */
body:not(.mision):not(.viaje3d) #lienzo3d{opacity:0;pointer-events:none}
/* el hero y las secciones viven por encima del fondo 3D */
.ch,#viajeEtapas,.canales,.esencial,footer{position:relative;z-index:10}

/* ===== LEGIBILIDAD SOBRE EL MUNDO 3D ===================================
   Cuando el texto habla, el universo se atenúa detrás: vidrio obsidiana
   bajo cada bloque de lectura. Profundidad sí; pelea con las letras, jamás. */
.esencial{background:rgba(3,5,12,.9);backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);border:1px solid rgba(140,175,215,.14);
  border-radius:22px;margin:70px auto;max-width:760px;
  padding:clamp(28px,5vw,52px);
  box-shadow:0 40px 90px -40px rgba(0,0,0,.95)}

.etapaP-in{background:linear-gradient(135deg,rgba(2,4,10,.86),rgba(2,4,10,.62));
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border-radius:18px;padding:clamp(20px,3.4vw,38px) !important;
  box-shadow:0 30px 70px -34px rgba(0,0,0,.9)}
.etapaP-in{border-left-width:2px}
.etapaP:nth-child(even) .etapaP-in{border-right-width:2px}

.canales h2,.canales .kicker{text-shadow:0 2px 18px rgba(0,0,0,.95)}
.canales{background:radial-gradient(60% 50% at 50% 50%,rgba(2,4,10,.72),transparent 100%)}

/* ===== GABY FLOTANTE: la presencia que acompaña todo el viaje ===== */
#gabyPill.flotante{position:fixed;left:auto;top:auto;right:18px;bottom:18px;
  width:62px;height:62px;z-index:81;opacity:1;pointer-events:auto;
  border:2px solid rgba(139,48,255,.95);border-radius:50%;
  padding:0;flex-direction:column;justify-content:center;
  background:radial-gradient(circle at 36% 30%,rgba(255,255,255,.1),rgba(9,17,32,.55) 60%);
  box-shadow:0 0 0 3px rgba(2,2,8,.9),0 0 22px 2px rgba(109,31,255,.75),
             0 10px 40px -12px rgba(0,0,0,.9);
  transition:box-shadow .3s,border-color .3s,transform .3s}
#gabyPill.flotante:hover{transform:scale(1.08);border-color:#b98cff}
#gabyPill.flotante .gcara{opacity:.92}
#gabyPill.flotante #gabyLb{position:absolute;right:calc(100% + 10px);top:50%;
  transform:translateY(-50%);white-space:nowrap;font-size:.56rem;
  background:rgba(4,7,14,.9);padding:6px 10px;border-radius:20px;
  border:1px solid rgba(139,48,255,.4);opacity:0;transition:opacity .25s}
#gabyPill.flotante:hover #gabyLb{opacity:1}
#gabyPill.flotante .mis{display:none}
#gabyPill.flotante .pto{position:absolute;top:2px;right:2px;width:12px;height:12px;
  border:2px solid rgba(4,7,14,.9)}
#gabyPill.flotante.live{border-color:#00e676}
/* que no choque con el aviso de WhatsApp: el aviso vive a la izquierda si Gaby flota */
#gabyPill.flotante ~ #wspSim, body:has(#gabyPill.flotante) #wspSim{right:96px}

/* el botón APROBAR llama la mano: pulso ámbar hasta que lo toquen */
.tj-ok{animation:okLlama 1.6s ease-in-out infinite}
@keyframes okLlama{0%,100%{box-shadow:0 0 0 0 rgba(255,179,0,.55)}60%{box-shadow:0 0 0 10px rgba(255,179,0,0)}}
.tj-ok:hover{animation:none}
@media(prefers-reduced-motion:reduce){.tj-ok{animation:none}}

/* ===== HILOS: todo cuelga del orbe (v4.1) ===== */
#hilos{position:fixed;inset:0;z-index:9;pointer-events:none;
  transition:opacity .6s ease}
.hilo{fill:none;stroke-linecap:round;filter:url(#hiloGlow);opacity:.95}
.hilo-halo{fill:none;stroke-linecap:round;opacity:.16}
.hilo-pulso{filter:url(#hiloGlow)}
/* las cartas ganan un ANCLA visible donde entra el hilo (bisel de luz) */
.etapaP-in{position:relative}
.etapaP-in::before{content:"";position:absolute;top:calc(min(70px,35%) - 5px);width:10px;height:10px;
  border-radius:50%;background:#fff;box-shadow:0 0 0 3px rgba(2,4,10,.9),0 0 18px 4px var(--ec,#0a84ff)}
.etapaP:nth-child(odd) .etapaP-in::before{right:-5px}
.etapaP:nth-child(even) .etapaP-in::before{left:-5px}
/* Gaby LIBRE: sin esquina fija, transform manda (la escribe hilos.js) */
#gabyPill.flotante.libre{right:auto;bottom:auto;left:0;top:0;transition:none}
#gabyPill.flotante.libre #gabyLb{opacity:1;right:auto;left:calc(100% + 10px);transform:translateY(-50%)}
@media(prefers-reduced-motion:reduce){#gabyPill.flotante.libre{left:auto;top:auto;right:18px;bottom:18px;transform:none !important}}

/* ===== EVIDENCIA REAL en cada estación (v4.2 — "acciones, no explicación") ===== */
.etapaP-in{max-width:600px}
.ev{margin-top:16px;border-radius:14px;overflow:hidden;font-size:.86rem;line-height:1.45;
  border:1px solid rgba(140,175,215,.16);background:rgba(3,5,12,.7)}
/* chat estilo WhatsApp (sin copiar el app: solo el lenguaje de burbujas) */
.ev-wsp,.ev-aprob{background:#0b141a}
.ev-cab{display:flex;align-items:center;gap:9px;padding:9px 12px;background:#111b21;
  border-bottom:1px solid rgba(255,255,255,.06)}
.ev-cab img{width:26px;height:26px;border-radius:50%;object-fit:cover}
.ev-cab b{color:#e9edef;font-size:.85rem}
.ev-cab span{color:#00e676;font-size:.66rem;margin-left:auto}
.ev-msj{position:relative;margin:9px 12px 0;padding:8px 12px 16px;border-radius:10px;
  background:#1f2c34;color:#e9edef;max-width:88%}
.ev-msj.mio{background:#005c4b;margin-left:auto}
.ev-msj:last-child{margin-bottom:11px}
.ev-msj i{font-style:normal;margin-right:4px}
.ev-msj em{font-style:normal;color:#e9edef}
.ev-msj small{position:absolute;right:8px;bottom:3px;font-size:.6rem;color:#8696a0}
.ev-msj b{color:#00e676;font-weight:600}
.ev-doc{display:flex;flex-direction:column;margin:8px 12px;padding:9px 12px;border-radius:10px;
  background:#1f2c34;color:#e9edef}
.ev-doc span{color:#8696a0;font-size:.7rem}
.ev-doc:last-child{margin-bottom:11px}
/* archivos / carpetas del cerebro */
.ev-arch{padding:12px 14px;font-family:var(--mono);font-size:.78rem;color:var(--txt-2)}
.ev-ruta{color:#fff;margin-bottom:8px;display:flex;align-items:center;gap:8px}
.ev-ruta b{color:var(--ec,#0a84ff)}
.ev-cara{width:22px;height:22px;border-radius:50%;object-fit:cover;border:1px solid rgba(139,48,255,.6)}
.ev-arch ul,.ev-arch ol{margin:0;padding-left:16px}
.ev-arch li{margin:4px 0}
.ev-arch li span{color:var(--mut);margin-left:6px}
.ev-tag{margin-top:9px;font-size:.68rem;color:var(--mut)}
.ev-tag b{color:#0a84ff}
.ev-estado{margin-left:auto;font-size:.62rem;padding:3px 8px;border-radius:20px;color:#ffb300;
  border:1px solid rgba(255,179,0,.5)}
/* hilos más finos y discretos: seda, no manguera */
.hilo{opacity:.7}
.hilo-halo{opacity:.08}
.hilo-pulso{opacity:.6}
/* aire: las cartas del viaje no pegan al borde */
.etapaP{padding:0 clamp(40px,9vw,160px)}
/* el aviso de WhatsApp vive abajo a la IZQUIERDA en el viaje: no tapa cartas
   ni a Gaby (que deriva por la derecha) */
body.viaje3d #wspSim{right:auto;left:18px}
body:has(#gabyPill.flotante) #wspSim{right:auto;left:18px}

/* ===== EVIDENCIAS: correo, dashboard (video), imagen, reel, página ===== */
.ev-mail{background:#0f1218;font-size:.84rem}
.ev-mail-cab{display:flex;justify-content:space-between;padding:9px 12px;border-bottom:1px solid rgba(255,255,255,.06)}
.ev-mail-de{color:#e6ecf5;font-weight:600}
.ev-mail-hora{color:var(--mut);font-size:.72rem}
.ev-mail-asunto{padding:9px 12px 4px;color:#fff;font-weight:600}
.ev-mail-cuerpo{padding:0 12px 10px;color:var(--txt-2);line-height:1.5}
.ev-mail-cuerpo b{color:#0a84ff}
.ev-mail-cuerpo code{font-family:var(--mono);font-size:.76rem;color:#b98cff}
.ev-mail-adj{margin:0 12px 11px;padding:6px 10px;border-radius:8px;background:rgba(255,255,255,.05);
  color:var(--txt-2);font-size:.76rem;display:inline-block}
.ev-video video{width:100%;display:block;aspect-ratio:16/10;object-fit:cover;background:#05070c}
.ev-pie{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:.74rem;color:var(--txt-2);
  font-family:var(--mono)}
.ev-pie b{color:#fff}
.ev-entrega{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px;background:transparent;border:0}
.ev-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid rgba(140,175,215,.16);background:#05070c}
.ev-item img,.ev-item video{width:100%;display:block;object-fit:cover}
.ev-item-img img,.ev-item-vid video{aspect-ratio:9/12}
.ev-item span{position:absolute;left:0;right:0;bottom:0;padding:7px 9px;font-size:.68rem;color:#fff;
  background:linear-gradient(transparent,rgba(0,0,0,.85));display:flex;align-items:center;gap:6px}
.ev-item-web{grid-column:1/-1}
.ev-nav{display:flex;align-items:center;gap:6px;padding:8px 10px;background:#161a22;font-size:.72rem;color:#e6ecf5;font-family:var(--mono)}
.ev-nav i{width:9px;height:9px;border-radius:50%;background:#3a4150}
.ev-nav b{margin-left:8px;font-weight:500;color:#cfe0ff}
.ev-web-cuerpo{padding:12px;color:#00e676;font-size:.82rem}
@media(max-width:600px){.ev-entrega{grid-template-columns:1fr}.ev-item-img img,.ev-item-vid video{aspect-ratio:16/10}}
/* las evidencias siempre se leen de izquierda a derecha, aunque la carta
   esté al lado derecho; y en móvil todas las cartas van al mismo lado */
.etapaP .ev, .etapaP .ev *{text-align:left}
@media(max-width:700px){
  .etapaP:nth-child(even){justify-content:flex-start;text-align:left}
  .etapaP:nth-child(even) .etapaP-in{border-right:0;padding-right:0;
    border-left:2px solid rgba(140,175,215,.16);padding-left:clamp(18px,3vw,34px)}
  .etapaP:nth-child(even).humana .etapaP-in{border-left-color:rgba(255,179,0,.6)}
  .etapaP:nth-child(even) .etapaP-in::before{left:auto;right:-5px}
  #wspSim{width:min(300px,86vw)}
}
/* el aviso desaparece si el visitante empieza a bajar: nunca tapa el viaje */
body.viaje3d #wspSim{opacity:0;pointer-events:none;transition:opacity .4s}
/* Nexora: capturas REALES (dashboard grande + datos y gráficas) */
.ev-nexora{background:#05070c}
.ev-nx-grande{width:100%;display:block;border-bottom:1px solid rgba(140,175,215,.12)}
.ev-nx-fila{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:rgba(140,175,215,.12)}
.ev-nx-fila img{width:100%;display:block;aspect-ratio:16/9;object-fit:cover;object-position:top left;background:#05070c}
/* ===== ESTACIÓN 06: piezas COMPLETAS, sin recortar, sin nada encima ===== */
.ev-entrega{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:12px;background:transparent;border:0}
.ev-pieza{margin:0;border-radius:12px;overflow:hidden;border:1px solid rgba(140,175,215,.16);background:#05070c}
.ev-pieza>img,.ev-pieza>video{width:100%;height:auto;display:block;aspect-ratio:9/16;object-fit:contain;background:#05070c}
.ev-pieza figcaption img.ev-cara{width:22px;height:22px;border-radius:50%;object-fit:cover;aspect-ratio:1/1;flex:none}
.ev-pieza figcaption{display:flex;align-items:center;gap:7px;padding:8px 10px;font-size:.72rem;color:var(--txt-2);
  font-family:var(--mono);border-top:1px solid rgba(140,175,215,.12)}
.ev-pub{grid-column:1/-1;display:flex;align-items:center;gap:8px;padding:11px 14px;border-radius:12px;
  border:1px solid rgba(0,230,118,.3);background:rgba(0,230,118,.06);color:var(--txt-2);font-size:.84rem}
.ev-pub b{color:#00e676}
.ev-pub span{color:var(--mut)}
@media(max-width:600px){.ev-entrega{grid-template-columns:1fr 1fr;gap:8px}.ev-pieza figcaption{font-size:.64rem}}
.ev-pub{flex-wrap:wrap;line-height:1.4}
@media(max-width:600px){.ev-pub{font-size:.76rem;gap:6px}}

/* ---------------------------------------------------------------------------
   TRABAJOS REALIZADOS (Sr Troy, 2026-08-22)
   Rejilla de obra, no de "cards": la captura manda y el texto se retira. El
   filo violeta solo aparece al pasar por encima, para que doce miniaturas no
   se conviertan en doce marcos compitiendo. Toma los tokens de sistema.css.
   --------------------------------------------------------------------------- */
.trabajos{position:relative;z-index:10;max-width:1120px;margin:0 auto;padding:40px 22px 96px;
  /* al saltar a #trabajos el titulo quedaba debajo de la barra de arriba */
  scroll-margin-top:88px}
.trabajos h2{color:#fff;font-size:1.4rem;margin-bottom:12px}
.tr-intro{color:var(--txt-3);max-width:62ch;margin:0 0 26px;line-height:1.6}
.tr-rejilla{display:grid;grid-template-columns:repeat(auto-fill,minmax(272px,1fr));gap:18px}
.tr-obra{display:flex;flex-direction:column;text-decoration:none;border-radius:13px;overflow:hidden;
  background:rgba(9,17,32,.55);border:1px solid rgba(var(--vio-rgb),.16);
  transition:transform .22s cubic-bezier(.22,1,.36,1),border-color .22s,box-shadow .22s}
.tr-obra:hover,.tr-obra:focus-visible{transform:translateY(-4px);
  border-color:rgba(var(--vio-rgb),.55);box-shadow:0 18px 44px -22px #000,0 0 26px -14px rgba(var(--vio-2-rgb),.9)}
.tr-obra:focus-visible{outline:2px solid var(--vio);outline-offset:3px}
.tr-foto{display:block;aspect-ratio:16/10;overflow:hidden;background:#050a14;position:relative}
.tr-foto img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block;
  filter:saturate(.92) brightness(.86);transition:filter .25s,transform .5s cubic-bezier(.22,1,.36,1)}
.tr-obra:hover .tr-foto img{filter:none;transform:scale(1.04)}
.tr-txt{display:flex;flex-direction:column;gap:3px;padding:13px 15px 15px}
.tr-txt b{color:#fff;font-size:1rem;font-weight:600;letter-spacing:-.01em}
.tr-txt i{color:var(--txt-3);font-style:normal;font-size:.85rem;line-height:1.45}
.tr-txt em{color:var(--txt-2);font-style:normal;font-family:var(--mono);font-size:.68rem;
  opacity:.6;margin-top:4px;letter-spacing:.02em}
.tr-obra:hover .tr-txt em{opacity:.95;color:var(--vio)}
.tr-pie{margin:28px 0 0;color:var(--txt-3);font-size:.9rem}
.tr-pie b{color:#fff}
.tr-pie a{color:var(--vio)}
@media(prefers-reduced-motion:reduce){
  .tr-obra,.tr-foto img{transition:none}
  .tr-obra:hover{transform:none} .tr-obra:hover .tr-foto img{transform:none}
}

/* Cuando Gaby SENALA un trabajo mientras habla (Sr Troy, 2026-08-26).
   Resalte breve: se nota cual es sin taparle la pagina al visitante. */
.tr-obra.tr-senalada{border-color:var(--vio);
  box-shadow:0 0 0 2px rgba(var(--vio-rgb),.55),0 18px 44px -20px #000,0 0 40px -12px rgba(var(--vio-2-rgb),.9);
  transform:translateY(-4px)}
.tr-obra.tr-senalada .tr-foto img{filter:none;transform:scale(1.04)}
@media(prefers-reduced-motion:reduce){.tr-obra.tr-senalada{transform:none}}
