/* =====================================================================
   DIFUSORES CATÓLICOS
   Noche azul profunda, marfil de mármol y un único acento: oro viejo.
   Display: Cinzel (capitales romanas, como las inscripciones del Vaticano)
   Escritura: Cormorant Garamond · Interfaz: Manrope
   ===================================================================== */

:root{
  --noche-0:#03070f;
  --noche-1:#060e1c;
  --noche-2:#0a1a31;
  --azul-3:#13305a;
  --azul-4:#2a5a9e;
  --azul-5:#7aa6de;
  --hielo:#cfe0f5;
  --marfil:#f4efe4;
  --marfil-2:#d9d2c3;
  --oro:#d4a857;
  --oro-claro:#efd49a;
  --oro-oscuro:#8e6a2c;

  --f-display:'Cinzel', 'Times New Roman', serif;
  --f-escritura:'Cormorant Garamond', Georgia, serif;
  --f-ui:'Manrope', system-ui, sans-serif;

  --ease-out:cubic-bezier(0.23, 1, 0.32, 1);
  --ease-in-out:cubic-bezier(0.77, 0, 0.175, 1);
  --ease-drawer:cubic-bezier(0.32, 0.72, 0, 1);

  --gutter:clamp(1rem, 4vw, 3.5rem);
  --ancho:1320px;

  /* capas */
  --z-escena:0;
  --z-contenido:2;
  --z-nav:40;
  --z-menu:45;
  --z-grano:60;
  --z-cursor:70;
  --z-intro:80;

  --sombra:0 30px 80px -30px rgba(1,6,16,.85);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:90px}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto !important}
body{
  margin:0;
  background:var(--noche-0);
  color:var(--marfil);
  font-family:var(--f-ui);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
body.cargando{overflow:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
h1,h2,h3{margin:0;font-weight:500}
p{margin:0}
blockquote{margin:0}
em{font-style:italic}

.visualmente-oculto{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.saltar{position:fixed;top:12px;left:12px;z-index:100;padding:.7em 1.2em;background:var(--oro);color:var(--noche-0);border-radius:999px;transform:translateY(-200%);transition:transform .2s var(--ease-out)}
.saltar:focus{transform:none}
:focus-visible{outline:2px solid var(--oro-claro);outline-offset:3px;border-radius:6px}

/* ---------- grano fílmico (fijo, no repinta al scrollear) ---------- */
.grano{
  position:fixed;inset:-50%;
  z-index:var(--z-grano);
  pointer-events:none;
  opacity:.07;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grano .9s steps(6) infinite;
}
@keyframes grano{
  0%{transform:translate(0,0)}20%{transform:translate(-4%,3%)}40%{transform:translate(3%,-5%)}
  60%{transform:translate(-6%,-2%)}80%{transform:translate(5%,4%)}100%{transform:translate(0,0)}
}

/* ---------- botones ---------- */
.boton{
  display:inline-flex;align-items:center;gap:.9em;
  padding:.85em .9em .85em 1.6em;
  border-radius:999px;
  font-family:var(--f-ui);font-weight:600;font-size:.92rem;letter-spacing:.02em;
  white-space:nowrap;
  border:1px solid transparent;
  cursor:pointer;
  transition:transform .16s var(--ease-out), background-color .3s ease, border-color .3s ease, color .3s ease, box-shadow .3s ease;
}
.boton:active{transform:scale(.97)}
.boton-icono{
  display:grid;place-items:center;
  width:2.1em;height:2.1em;border-radius:50%;
  background:rgba(3,7,15,.14);
  transition:transform .4s var(--ease-out);
}
.boton-oro{
  background:linear-gradient(180deg,var(--oro-claro),var(--oro) 70%);
  color:#1a1206;
  box-shadow:0 14px 34px -14px rgba(212,168,87,.65), inset 0 1px 0 rgba(255,255,255,.45);
}
.boton-linea{
  background:transparent;
  padding:.85em 1.6em;
  border-color:rgba(239,212,154,.35);
  color:var(--oro-claro);
}
.boton-linea .boton-icono{background:rgba(239,212,154,.1);margin-right:-.7em}
.boton-chico{padding:.6em 1.1em;font-size:.82rem;gap:.55em}
@media (hover:hover) and (pointer:fine){
  .boton-oro:hover{box-shadow:0 18px 40px -12px rgba(212,168,87,.8), inset 0 1px 0 rgba(255,255,255,.5)}
  .boton:hover .boton-icono{transform:translate(2px,-1px) scale(1.06)}
  .boton-linea:hover{background:rgba(239,212,154,.08);border-color:rgba(239,212,154,.6)}
}

.eyebrow{
  font-family:var(--f-ui);font-size:.72rem;font-weight:600;
  letter-spacing:.24em;text-transform:uppercase;
  color:var(--oro);
}

/* =====================================================================
   CURSOR (solo mouse): punto marfil, aro con aurora, estela dorada
   ===================================================================== */
#cursor-punto,#cursor-aro{position:fixed;top:0;left:0;z-index:calc(var(--z-cursor) + 1);pointer-events:none;opacity:0;transition:opacity .3s ease}
#cursor-punto{
  width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;
  background:var(--marfil);
  box-shadow:0 0 10px 2px rgba(239,212,154,.8);
}
#cursor-aro{
  width:34px;height:34px;margin:-17px 0 0 -17px;border-radius:50%;
  background:conic-gradient(from var(--giro,0deg), rgba(122,166,222,.0), rgba(122,166,222,.55), rgba(239,212,154,.65), rgba(122,166,222,0) 70%);
  -webkit-mask:radial-gradient(circle, transparent 58%, #000 61%, #000 68%, transparent 71%);
          mask:radial-gradient(circle, transparent 58%, #000 61%, #000 68%, transparent 71%);
}
#cursor-aro .aro-escala{display:none}
body.cursor-activo #cursor-punto, body.cursor-activo #cursor-aro{opacity:1}
@media (hover:hover) and (pointer:fine){
  body.cursor-activo, body.cursor-activo a, body.cursor-activo button, body.cursor-activo label{cursor:none}
  body.cursor-activo input, body.cursor-activo textarea{cursor:text}
}
@keyframes aleteo-der{from{transform:rotate(-30deg)}to{transform:rotate(16deg)}}
@keyframes aleteo-izq{from{transform:rotate(30deg)}to{transform:rotate(-16deg)}}
.aurora-click{
  position:fixed;top:0;left:0;z-index:var(--z-cursor);pointer-events:none;
  width:120px;height:120px;margin:-60px 0 0 -60px;border-radius:50%;
  background:conic-gradient(from 0deg, rgba(122,166,222,.0), rgba(122,166,222,.5), rgba(239,212,154,.6), rgba(160,220,255,.35), rgba(122,166,222,0));
  -webkit-mask:radial-gradient(circle, transparent 45%, #000 55%, transparent 70%);
          mask:radial-gradient(circle, transparent 45%, #000 55%, transparent 70%);
  filter:blur(1px);
}

/* =====================================================================
   INTRO
   ===================================================================== */
#intro{
  position:fixed;inset:0;z-index:var(--z-intro);
  background:var(--noche-0);
  display:grid;place-items:center;
  overflow:hidden;
}
#intro-lienzo{position:absolute;inset:0;width:100%;height:100%}
.intro-marca{position:relative;text-align:center;pointer-events:none;margin-top:4vh}
.intro-carga{
  position:absolute;left:50%;bottom:clamp(2rem,6vh,4rem);transform:translateX(-50%);
  display:flex;align-items:center;gap:1rem;
  font-size:.72rem;letter-spacing:.2em;color:var(--azul-5);
}
.intro-barra{display:block;width:140px;height:1px;background:rgba(122,166,222,.25);overflow:hidden}
.intro-barra i{display:block;height:100%;width:100%;background:linear-gradient(90deg,var(--oro-oscuro),var(--oro-claro));transform-origin:left;transform:scaleX(0)}
.intro-pct{min-width:3ch;font-variant-numeric:tabular-nums}
.intro-entrar{
  position:absolute;left:50%;bottom:clamp(2rem,6vh,4rem);transform:translateX(-50%);
  padding:.8em 2em;border-radius:999px;
  background:transparent;border:1px solid rgba(239,212,154,.4);
  color:var(--oro-claro);font-family:var(--f-ui);font-weight:600;font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;
  opacity:0;pointer-events:none;
  transition:opacity .5s ease, background-color .3s ease;
}
.intro-entrar.visible{opacity:1;pointer-events:auto}
@media (hover:hover){.intro-entrar:hover{background:rgba(239,212,154,.1)}}

/* =====================================================================
   NAV: isla flotante
   ===================================================================== */
.nav{
  position:fixed;top:14px;left:50%;z-index:var(--z-nav);
  width:max-content;max-width:calc(100vw - 24px);
  display:flex;align-items:center;gap:clamp(.8rem,2vw,2rem);
  padding:.45rem .5rem .45rem 1rem;
  border-radius:999px;
  background:rgba(6,14,28,.72);
  -webkit-backdrop-filter:blur(18px) saturate(150%);
          backdrop-filter:blur(18px) saturate(150%);
  border:1px solid rgba(239,212,154,.14);
  box-shadow:var(--sombra), inset 0 1px 0 rgba(255,255,255,.06);
  transform:translate(-50%, 0);
  transition:transform .5s var(--ease-drawer), opacity .4s ease;
  opacity:0;
}
body.listo .nav{opacity:1}
.nav.escondida{transform:translate(-50%, -140%)}
.nav-marca{display:flex;align-items:center;gap:.75rem}
.nav-nombre{font-family:var(--f-display);font-size:.86rem;letter-spacing:.08em;white-space:nowrap}
.nav-links{display:flex;gap:.2rem}
.nav-links a{
  white-space:nowrap;
  padding:.5rem .85rem;border-radius:999px;
  font-size:.84rem;font-weight:500;color:var(--hielo);
  transition:background-color .25s ease, color .25s ease;
}
.nav-links a.actual{color:var(--oro-claro);background:rgba(239,212,154,.08)}
@media (hover:hover){.nav-links a:hover{color:var(--marfil);background:rgba(255,255,255,.05)}}
.nav-movimiento,.nav-menu{
  display:grid;place-items:center;
  width:2.4rem;height:2.4rem;border-radius:50%;
  background:rgba(239,212,154,.08);border:1px solid rgba(239,212,154,.18);
  color:var(--oro-claro);font-size:1.1rem;cursor:pointer;
  transition:background-color .25s ease, transform .16s var(--ease-out);
}
.nav-movimiento:active,.nav-menu:active{transform:scale(.94)}
.nav-movimiento[aria-pressed="true"]{background:rgba(122,166,222,.18);color:var(--hielo)}
.nav-menu{display:none;position:relative}
.nav-menu span:not(.visualmente-oculto){position:absolute;left:50%;width:16px;height:1.5px;margin-left:-8px;background:var(--oro-claro);border-radius:2px;transition:transform .35s var(--ease-out)}
.nav-menu span:nth-child(1){transform:translateY(-3px)}
.nav-menu span:nth-child(2){transform:translateY(3px)}
.nav-menu[aria-expanded="true"] span:nth-child(1){transform:rotate(45deg)}
.nav-menu[aria-expanded="true"] span:nth-child(2){transform:rotate(-45deg)}

.menu-movil{
  position:fixed;inset:0;z-index:var(--z-menu);
  display:grid;place-items:center;
  background:rgba(3,7,15,.97);
}
.menu-movil[hidden]{display:none}
.menu-movil nav{display:flex;flex-direction:column;align-items:center;gap:1.4rem}
.menu-movil a{font-family:var(--f-display);font-size:1.7rem;color:var(--marfil)}

/* vidrio sin transparencia (Windows con transparencias apagadas) */
@media (prefers-reduced-transparency: reduce){
  .nav{background:rgba(6,14,28,.96);-webkit-backdrop-filter:none;backdrop-filter:none}
}

/* =====================================================================
   HERO
   ===================================================================== */
.hero{position:relative;height:250vh}
.hero-escena{position:sticky;top:0;height:100vh;height:100dvh;overflow:hidden}
#hero-lienzo{position:absolute;inset:0;width:100%;height:100%;display:block}
/* sin WebGL: foto real de La Piedad con el mismo tratamiento */
.hero.sin-3d .hero-escena{background:url(/assets/paintings/pieta.webp) 70% 30%/cover no-repeat}
.hero.sin-3d #hero-lienzo{display:none}
.hero-velo{
  position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(90deg, rgba(3,7,15,.82) 0%, rgba(3,7,15,.35) 38%, rgba(3,7,15,0) 60%),
    linear-gradient(0deg, rgba(3,7,15,.9) 0%, rgba(3,7,15,0) 30%);
}
.hero-texto{
  position:absolute;left:var(--gutter);bottom:clamp(4rem,14vh,9rem);
  max-width:min(46rem, 90vw);
  z-index:var(--z-contenido);
}
.hero-titulo{
  font-family:var(--f-display);font-weight:500;
  font-size:clamp(2.5rem, 5.6vw, 5.4rem);
  line-height:1.04;letter-spacing:.005em;
  color:var(--marfil);
  text-wrap:balance;
}
.hero-titulo em{font-style:normal;color:var(--oro-claro)}
.hero-sub{
  margin-top:1.4rem;max-width:34ch;
  font-family:var(--f-escritura);font-size:clamp(1.2rem,1.7vw,1.5rem);line-height:1.45;
  color:var(--hielo);
}
.hero-ctas{margin-top:2.2rem;display:flex;flex-wrap:wrap;gap:.8rem}
.hero-cita{
  position:absolute;left:var(--gutter);top:50%;
  width:min(30rem, 80vw);
  transform:translateY(-50%);
  text-align:left;
  z-index:var(--z-contenido);
  opacity:0;
}
.hero-cita p{font-family:var(--f-escritura);font-style:italic;font-size:clamp(1.5rem,2.6vw,2.4rem);line-height:1.25;color:var(--marfil)}
.hero-cita cite{display:block;margin-top:1rem;font-style:normal;font-family:var(--f-display);font-size:.9rem;letter-spacing:.12em;color:var(--oro)}
.hero-obra{
  position:absolute;right:var(--gutter);bottom:1.6rem;z-index:var(--z-contenido);
  font-size:.74rem;letter-spacing:.06em;color:rgba(207,224,245,.55);
}

/* =====================================================================
   PALABRA DE HOY
   ===================================================================== */
.palabra{
  position:relative;
  min-height:100vh;min-height:100dvh;
  display:grid;align-items:center;
  padding:clamp(6rem,14vh,10rem) var(--gutter);
  overflow:hidden;
  background:radial-gradient(120% 90% at 20% 10%, var(--noche-2) 0%, var(--noche-0) 60%);
}
.palabra-luz{
  position:absolute;width:70vmax;height:70vmax;left:50%;top:40%;
  transform:translate(-50%,-50%);
  background:radial-gradient(circle, rgba(212,168,87,.16), rgba(42,90,158,.08) 40%, transparent 65%);
  filter:blur(10px);
  pointer-events:none;
}
.palabra-interior{position:relative;max-width:var(--ancho);margin:0 auto;width:100%}
.palabra .eyebrow span{margin-left:1.2em;color:var(--azul-5);letter-spacing:.12em;text-transform:none;font-weight:500}
.palabra-texto{
  margin-top:2rem;
  font-family:var(--f-escritura);font-weight:500;
  font-size:clamp(1.9rem, 4.4vw, 4.4rem);
  line-height:1.16;
  color:var(--marfil);
  max-width:22ch;
  text-wrap:pretty;
}
.palabra-texto .word{will-change:opacity}
.palabra-pie{margin-top:2.6rem;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.4rem;max-width:62rem}
.palabra-ref{font-family:var(--f-display);font-size:1.05rem;letter-spacing:.14em;color:var(--oro)}
.palabra-compartir{display:flex;gap:.6rem}

/* =====================================================================
   GALERIA CINEMATOGRAFICA
   ===================================================================== */
.galeria{position:relative;background:var(--noche-0)}
.galeria-pin{position:relative;height:100vh;height:100dvh;overflow:hidden}
#galeria-lienzo{position:absolute;inset:0;width:100%;height:100%;display:block}
/* velo para que la leyenda y el índice se lean sobre frescos claros */
.galeria-pin::after{
  content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:
    linear-gradient(0deg, rgba(3,7,15,.78) 0%, rgba(3,7,15,0) 42%),
    linear-gradient(90deg, rgba(3,7,15,.55) 0%, rgba(3,7,15,0) 45%),
    linear-gradient(270deg, rgba(3,7,15,.5) 0%, rgba(3,7,15,0) 22%);
}
.galeria-franja{position:absolute;left:0;right:0;height:4.5vh;background:var(--noche-0);z-index:3;transform:scaleY(0);pointer-events:none}
.galeria-franja-arriba{top:0;transform-origin:top}
.galeria-franja-abajo{bottom:0;transform-origin:bottom}
.galeria-intro{
  position:absolute;inset:0;z-index:4;
  display:grid;place-items:center;text-align:center;
  font-family:var(--f-display);font-weight:500;
  font-size:clamp(2rem,4.6vw,4.4rem);line-height:1.1;
  color:var(--marfil);
  text-shadow:0 4px 60px rgba(3,7,15,.9);
  pointer-events:none;
}
.galeria-leyenda{
  position:absolute;left:var(--gutter);bottom:calc(4.5vh + clamp(1.5rem,4vh,3rem));z-index:4;
  max-width:min(52rem, 78vw);
  pointer-events:none;
}
.galeria-obra-titulo{
  font-family:var(--f-display);font-weight:500;
  font-size:clamp(1.9rem,4vw,3.6rem);line-height:1.05;
  color:var(--marfil);
  text-shadow:0 2px 40px rgba(3,7,15,.85);
}
.galeria-obra-datos{margin-top:.6rem;font-size:.86rem;letter-spacing:.04em;color:var(--hielo);text-shadow:0 1px 12px rgba(3,7,15,.9)}
.galeria-cita{margin-top:1.4rem;padding-left:1.1rem;border-left:1px solid rgba(239,212,154,.5);max-width:40rem}
.galeria-cita p{font-family:var(--f-escritura);font-style:italic;font-size:clamp(1.15rem,1.7vw,1.5rem);line-height:1.35;color:var(--marfil);text-shadow:0 1px 18px rgba(3,7,15,.95)}
.galeria-cita cite{display:block;margin-top:.5rem;font-style:normal;font-family:var(--f-display);font-size:.78rem;letter-spacing:.14em;color:var(--oro-claro)}
.galeria-riel{position:absolute;right:var(--gutter);top:50%;z-index:4;width:1px;height:34vh;transform:translateY(-50%);background:rgba(239,212,154,.18)}
.galeria-riel span{position:absolute;inset:0;background:var(--oro);transform-origin:top;transform:scaleY(0)}
.galeria-indice{
  position:absolute;right:calc(var(--gutter) + 1.1rem);top:50%;z-index:4;
  margin:0;padding:0;list-style:none;transform:translateY(-50%);
  display:flex;flex-direction:column;gap:calc(34vh / 6 - 1.1rem);
  text-align:right;
}
.galeria-indice li{font-size:.72rem;letter-spacing:.06em;color:rgba(207,224,245,.4);transition:color .4s ease, transform .5s var(--ease-out);white-space:nowrap}
.galeria-indice li.actual{color:var(--oro-claro);transform:translateX(-6px)}
.galeria-noscript{position:absolute;inset:0;display:grid;place-items:center}

/* =====================================================================
   SALMO
   ===================================================================== */
.salmo{
  position:relative;
  display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);
  background:linear-gradient(180deg, var(--noche-0), var(--noche-1) 30%, var(--noche-1) 70%, var(--noche-0));
}
.salmo-estatua{position:sticky;top:0;height:100vh;height:100dvh}
#salmo-lienzo{width:100%;height:100%;display:block}
.salmo-obra{position:absolute;left:var(--gutter);top:6.5rem;font-size:.74rem;letter-spacing:.06em;color:rgba(207,224,245,.7);text-shadow:0 1px 10px rgba(3,7,15,.95)}
.salmo-texto{padding:clamp(7rem,18vh,12rem) var(--gutter) clamp(6rem,14vh,9rem) clamp(1rem,3vw,3rem);max-width:44rem}
.salmo-titulo{margin-top:1.4rem;font-family:var(--f-display);font-weight:500;font-size:clamp(2rem,3.6vw,3.4rem);line-height:1.08;color:var(--marfil);text-wrap:balance}
.salmo-ref{margin-top:.9rem;font-size:.86rem;letter-spacing:.06em;color:var(--azul-5)}
.salmo-cuerpo{margin-top:3rem;display:flex;flex-direction:column;gap:1.5rem}
.salmo-verso{display:grid;grid-template-columns:2.2rem 1fr;gap:.4rem;align-items:baseline}
.salmo-verso .num{font-family:var(--f-display);font-size:.8rem;color:var(--oro);font-variant-numeric:tabular-nums}
.salmo-verso p{font-family:var(--f-escritura);font-size:clamp(1.25rem,1.6vw,1.5rem);line-height:1.5;color:var(--hielo)}
.salmo-nota{margin-top:3.5rem;font-size:.8rem;color:rgba(122,166,222,.8);max-width:46ch}

/* =====================================================================
   REFLEXION
   ===================================================================== */
.reflexion{
  position:relative;overflow:hidden;
  padding:clamp(8rem,20vh,14rem) var(--gutter);
  background:var(--noche-0);
}
.reflexion-interior{position:relative;max-width:var(--ancho);margin:0 auto}
.reflexion-titulo{
  font-family:var(--f-display);font-weight:500;
  font-size:clamp(2.6rem,7vw,7rem);line-height:1.02;
  max-width:14ch;
  color:transparent;
  -webkit-text-stroke:1px rgba(239,212,154,.55);
}
.reflexion-titulo .word{
  background:linear-gradient(90deg, var(--marfil) 0 50%, transparent 50% 100%);
  background-size:200% 100%;
  background-position:100% 0;
  -webkit-background-clip:text;background-clip:text;
}
.reflexion-cuerpo{margin-top:clamp(3rem,8vh,5rem);margin-left:auto;max-width:36rem;display:flex;flex-direction:column;gap:1.4rem}
.reflexion-cuerpo p{font-family:var(--f-escritura);font-size:clamp(1.25rem,1.7vw,1.55rem);line-height:1.55;color:var(--hielo)}
.reflexion-cuerpo .reflexion-firma{font-family:var(--f-display);font-size:.9rem;letter-spacing:.14em;color:var(--oro)}

/* =====================================================================
   VIDEOS
   ===================================================================== */
.videos{padding:clamp(7rem,16vh,11rem) 0 clamp(6rem,14vh,9rem);background:linear-gradient(180deg,var(--noche-0),var(--noche-1))}
.videos-cabecera,.videos-principal{max-width:var(--ancho);margin:0 auto;padding:0 var(--gutter)}
.videos-titulo{margin-top:1.2rem;font-family:var(--f-display);font-weight:500;font-size:clamp(2.2rem,4.6vw,4.2rem);line-height:1.05}
.videos-principal{margin-top:3.5rem;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:clamp(1.5rem,3vw,3rem);align-items:end}
.video-destacado{
  position:relative;aspect-ratio:16/9;border-radius:22px;overflow:hidden;
  background:var(--noche-2);
  box-shadow:var(--sombra);
  outline:1px solid rgba(239,212,154,.14);outline-offset:6px;
}
.video-portada{position:absolute;inset:0;padding:0;border:0;background:none;cursor:pointer}
.video-portada img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease-out), filter .6s ease;filter:saturate(.85) contrast(1.05)}
.video-play{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  display:grid;place-items:center;width:88px;height:88px;border-radius:50%;
  background:rgba(3,7,15,.72);border:1px solid rgba(239,212,154,.6);
  box-shadow:0 10px 40px -10px rgba(1,4,12,.9);
  color:var(--oro-claro);font-size:2rem;
  transition:transform .4s var(--ease-out), background-color .3s ease;
}
@media (hover:hover){
  .video-portada:hover img{transform:scale(1.04);filter:saturate(1) contrast(1.05)}
  .video-portada:hover .video-play{transform:translate(-50%,-50%) scale(1.08);background:rgba(212,168,87,.9);color:#1a1206}
}
.video-destacado iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video-fecha{font-size:.8rem;letter-spacing:.08em;color:var(--azul-5)}
.video-titulo{margin-top:.8rem;font-family:var(--f-escritura);font-weight:500;font-size:clamp(1.5rem,2.2vw,2rem);line-height:1.2;color:var(--marfil);text-wrap:balance}
.video-desc{margin-top:.9rem;font-size:.92rem;color:var(--hielo);opacity:.8;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.video-info .boton{margin-top:1.8rem}
.video-fuente{margin-top:1.4rem;font-size:.74rem;color:rgba(122,166,222,.75)}
.videos-carrete{
  margin-top:3.5rem;
  display:flex;gap:1.2rem;
  overflow-x:auto;overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;
  padding:0 var(--gutter) 1.2rem;
  scroll-padding:0 var(--gutter);
  scrollbar-width:thin;scrollbar-color:rgba(239,212,154,.3) transparent;
  cursor:grab;
}
.videos-carrete.arrastrando{cursor:grabbing;scroll-snap-type:none}
.miniatura{
  flex:0 0 clamp(240px, 24vw, 330px);
  scroll-snap-align:start;
  padding:0;border:0;background:none;text-align:left;cursor:pointer;
}
.miniatura-img{position:relative;aspect-ratio:16/9;border-radius:14px;overflow:hidden;background:var(--noche-2)}
.miniatura-img img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease-out), opacity .4s ease;opacity:.85}
.miniatura.actual .miniatura-img{outline:1px solid var(--oro);outline-offset:3px}
.miniatura p{margin-top:.8rem;font-size:.9rem;line-height:1.4;color:var(--hielo);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.miniatura span{display:block;margin-top:.3rem;font-size:.74rem;color:var(--azul-5)}
@media (hover:hover){.miniatura:hover .miniatura-img img{transform:scale(1.05);opacity:1}}

/* =====================================================================
   SUMATE: cartas apiladas
   ===================================================================== */
.sumate{padding:clamp(7rem,16vh,11rem) var(--gutter) 0;background:var(--noche-1)}
.sumate-titulo{
  max-width:var(--ancho);margin:0 auto;
  padding-right:clamp(0px, 34vw, 560px);
  font-family:var(--f-display);font-weight:500;
  font-size:clamp(2.2rem,4.8vw,4.6rem);line-height:1.05;
  text-wrap:balance;
}
.pila{max-width:var(--ancho);margin:clamp(3rem,8vh,5rem) auto 0;padding-bottom:12vh}
.pila-carta{position:sticky;top:12vh;min-height:76vh;display:grid;align-items:center;margin-bottom:6vh}
.carta-interior{
  display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(2rem,5vw,5rem);align-items:center;
  padding:clamp(2rem,5vw,4.5rem);
  border-radius:32px;
  background:linear-gradient(160deg, #0d2140 0%, #081427 60%);
  border:1px solid rgba(239,212,154,.12);
  box-shadow:0 40px 100px -40px rgba(1,4,12,.95), inset 0 1px 0 rgba(255,255,255,.05);
  will-change:transform;
}
.carta-empresa .carta-interior{background:linear-gradient(160deg, #102748 0%, #0a172b 60%)}
.carta-form .carta-interior{background:linear-gradient(160deg, #13294b 0%, #0b1a31 60%);grid-template-columns:minmax(0,4fr) minmax(0,6fr)}
.carta-texto h3{font-family:var(--f-display);font-weight:500;font-size:clamp(1.7rem,2.8vw,2.6rem);color:var(--marfil)}
.carta-texto > p{margin-top:1rem;font-size:1rem;line-height:1.65;color:var(--hielo);max-width:42ch}
.carta-texto .boton{margin-top:2rem}

.sello{position:relative;width:min(100%,340px);aspect-ratio:1;margin:0 auto;display:grid;place-items:center}
.sello::before{
  content:"";position:absolute;inset:6%;border-radius:50%;
  background:radial-gradient(circle at 50% 40%, rgba(239,212,154,.18), rgba(19,48,90,.35) 55%, rgba(3,7,15,0) 72%);
  border:1px solid rgba(239,212,154,.35);
  box-shadow:inset 0 0 60px rgba(212,168,87,.12), 0 0 80px -20px rgba(212,168,87,.35);
}
.sello-anillo{position:absolute;inset:0;width:100%;height:100%;animation:girar 40s linear infinite}
.sello-anillo text{font-family:var(--f-display);font-size:11px;fill:var(--oro-claro)}
@keyframes girar{to{transform:rotate(360deg)}}
.muro{margin-top:1.6rem;padding:1.2rem 1.4rem;border-radius:18px;border:1px dashed rgba(239,212,154,.28)}
.muro-vacio{font-family:var(--f-escritura);font-style:italic;font-size:1.1rem;color:var(--oro-claro)}

.vitrina{position:relative;aspect-ratio:4/3;border-radius:22px;padding:1px;overflow:hidden;
  background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%), rgba(239,212,154,.75), rgba(239,212,154,.08) 45%, rgba(239,212,154,.08));
}
.vitrina-marco{
  position:absolute;inset:1px;border-radius:21px;
  display:grid;place-content:center;text-align:center;gap:.6rem;
  background:
    repeating-linear-gradient(135deg, rgba(122,166,222,.05) 0 2px, transparent 2px 14px),
    linear-gradient(160deg,#0f2443,#081426);
}
.vitrina-etiqueta{font-family:var(--f-display);font-size:clamp(1.3rem,2.2vw,1.9rem);color:var(--marfil)}
.vitrina-sub{font-size:.86rem;color:var(--azul-5)}

.formulario{display:flex;flex-direction:column;gap:1.2rem}
.campo-tipo{display:flex;gap:.5rem;padding:.3rem;border-radius:999px;background:rgba(3,7,15,.45);border:1px solid rgba(239,212,154,.14);width:max-content}
.campo-tipo input{position:absolute;opacity:0;pointer-events:none}
.campo-tipo span{display:block;padding:.55rem 1.3rem;border-radius:999px;font-size:.88rem;font-weight:500;color:var(--hielo);cursor:pointer;transition:background-color .25s ease,color .25s ease}
.campo-tipo input:checked + span{background:var(--oro);color:#1a1206}
.campo-tipo input:focus-visible + span{outline:2px solid var(--oro-claro);outline-offset:2px}
.campo{display:flex;flex-direction:column;gap:.45rem}
.campo label{font-size:.84rem;font-weight:500;color:var(--hielo)}
.opcional{color:var(--azul-5);font-weight:400}
.campo input,.campo textarea{
  width:100%;padding:.9rem 1.1rem;border-radius:14px;
  background:rgba(3,7,15,.5);border:1px solid rgba(207,224,245,.22);
  color:var(--marfil);font:inherit;font-size:1rem;
  transition:border-color .25s ease, box-shadow .25s ease;
  resize:vertical;
}
.campo input:focus,.campo textarea:focus{outline:none;border-color:var(--oro);box-shadow:0 0 0 3px rgba(212,168,87,.2)}
.campo input[aria-invalid="true"]{border-color:#e08a7a}
.campo-error{min-height:1.1em;font-size:.8rem;color:#f0a898}
.formulario .boton{align-self:flex-start}
.formulario-estado{font-size:.9rem;color:var(--oro-claro);min-height:1.4em}

/* =====================================================================
   PIE
   ===================================================================== */
.pie{padding:clamp(5rem,12vh,8rem) var(--gutter) 2rem;background:var(--noche-0);border-top:1px solid rgba(239,212,154,.08)}
.pie-marca{
  font-family:var(--f-display);font-weight:500;
  font-size:clamp(2rem,6.4vw,7.6rem);line-height:.95;letter-spacing:.01em;
  color:transparent;-webkit-text-stroke:1px rgba(239,212,154,.28);
  text-align:center;white-space:nowrap;
}
.pie-grilla{max-width:var(--ancho);margin:4rem auto 0;display:grid;grid-template-columns:2fr 1fr 1fr;gap:2rem}
.pie h3{font-size:.72rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--oro);margin-bottom:.8rem}
.pie a{color:var(--hielo);font-size:.92rem}
@media (hover:hover){.pie a:hover{color:var(--oro-claro)}}
.pie-lema{font-family:var(--f-escritura);font-size:1.3rem;color:var(--marfil)}
.pie-privacidad{margin-top:.6rem;font-size:.8rem;color:var(--azul-5)}
.creditos{max-width:var(--ancho);margin:3rem auto 0;font-size:.8rem;color:rgba(207,224,245,.6)}
.creditos summary{cursor:pointer;color:var(--hielo);font-size:.84rem;width:max-content}
.creditos ul{margin:1rem 0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.5rem 2rem}
.creditos a{font-size:.8rem;text-decoration:underline;text-decoration-color:rgba(207,224,245,.3);text-underline-offset:3px}
.pie-copia{max-width:var(--ancho);margin:2.5rem auto 0;font-size:.78rem;color:rgba(122,166,222,.7)}

/* =====================================================================
   RESPONSIVE
   ===================================================================== */
@media (max-width: 1100px){
  .nav-links{display:none}
  .nav-menu{display:grid}
  .nav{gap:.8rem}
}
@media (max-width: 980px){
  .videos-principal{grid-template-columns:1fr}
  .carta-interior,.carta-form .carta-interior{grid-template-columns:1fr}
  .salmo{grid-template-columns:1fr}
  .salmo-estatua{position:relative;height:70vh;height:70svh}
  .salmo-texto{padding-top:3rem}
  .galeria-indice{display:none}
}
@media (max-width: 640px){
  body{font-size:15px}
  .nav-nombre{font-size:.78rem}
  .nav-movimiento{display:none}
  .nav{padding-left:.9rem}
  .hero-texto{bottom:5.5rem}
  .hero-velo{background:linear-gradient(0deg, rgba(3,7,15,.95) 0%, rgba(3,7,15,.55) 45%, rgba(3,7,15,.1) 75%)}
  .hero-cita{left:var(--gutter);right:var(--gutter);width:auto;text-align:left;top:28%}
  .hero-obra{left:var(--gutter);right:auto;bottom:1.2rem}
  .galeria-riel{display:none}
  .galeria-leyenda{bottom:calc(4.5vh + 1rem)}
  .pila-carta{position:relative;top:auto;min-height:0;margin-bottom:1.5rem}
  .sumate-titulo{padding-right:0}
  .salmo-obra{top:auto;bottom:1rem}
  .pie-grilla{grid-template-columns:1fr}
  .palabra-texto{max-width:none}
}

/* Movimiento reducido elegido desde el botón del sitio */
html.movimiento-reducido .grano{animation:none}
html.movimiento-reducido .sello-anillo{animation:none}

/* =====================================================================
   PROGRAMACION
   ===================================================================== */
.programacion{padding:clamp(7rem,16vh,11rem) var(--gutter);background:linear-gradient(180deg,var(--noche-0),#07122a 45%,var(--noche-1))}
.programacion-interior{max-width:var(--ancho);margin:0 auto}
.programacion-titulo{font-family:var(--f-display);font-weight:500;font-size:clamp(2.2rem,4.6vw,4.2rem);line-height:1.05}
.programacion-sub{margin-top:1rem;font-family:var(--f-escritura);font-size:clamp(1.15rem,1.5vw,1.35rem);color:var(--hielo);max-width:46ch}
.programacion-grilla{margin-top:3.5rem;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(1.5rem,3vw,3rem);align-items:start}

.al-aire{
  position:sticky;top:110px;
  padding:clamp(1.8rem,3vw,2.6rem);border-radius:28px;
  background:
    radial-gradient(120% 90% at 0% 0%, rgba(212,168,87,.16), transparent 55%),
    linear-gradient(165deg,#10264a,#0a1830 70%);
  border:1px solid rgba(239,212,154,.2);
  box-shadow:0 40px 90px -40px rgba(1,4,12,.95), inset 0 1px 0 rgba(255,255,255,.06);
}
.al-aire-estado{display:flex;align-items:center;gap:.6rem;font-size:.74rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--oro-claro)}
.al-aire-punto{width:9px;height:9px;border-radius:50%;background:#e0584d;box-shadow:0 0 0 0 rgba(224,88,77,.6);animation:latido 1.8s ease-out infinite}
.al-aire.sin-vivo .al-aire-punto{background:var(--azul-5);animation:none}
@keyframes latido{0%{box-shadow:0 0 0 0 rgba(224,88,77,.55)}100%{box-shadow:0 0 0 12px rgba(224,88,77,0)}}
.al-aire-nombre{margin-top:1.1rem;font-family:var(--f-display);font-weight:500;font-size:clamp(1.8rem,2.8vw,2.6rem);line-height:1.08;color:var(--marfil);text-wrap:balance}
.al-aire-horario{margin-top:.6rem;font-size:.95rem;color:var(--azul-5);font-variant-numeric:tabular-nums}
.al-aire-desc{margin-top:1rem;font-family:var(--f-escritura);font-size:1.2rem;line-height:1.45;color:var(--hielo)}
.al-aire-progreso{margin-top:1.6rem;height:2px;border-radius:2px;background:rgba(207,224,245,.14);overflow:hidden}
.al-aire-progreso span{display:block;height:100%;background:linear-gradient(90deg,var(--oro-oscuro),var(--oro-claro));transform-origin:left;transform:scaleX(0);transition:transform 1s var(--ease-out)}
.a-continuacion{margin-top:1.8rem;padding-top:1.4rem;border-top:1px solid rgba(207,224,245,.1)}
.a-continuacion-etiqueta{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--azul-5)}
.a-continuacion-nombre{margin-top:.4rem;font-family:var(--f-escritura);font-size:1.35rem;color:var(--marfil)}
.a-continuacion-horario{font-size:.86rem;color:var(--hielo);opacity:.75;font-variant-numeric:tabular-nums}
.al-aire .boton{margin-top:1.8rem}

/* =====================================================================
   BANNERS (misión en imágenes)
   ===================================================================== */
.banner-principal{margin-top:3rem}
.banner{
  position:relative;display:block;width:100%;overflow:hidden;border-radius:26px;border:0;padding:0;cursor:pointer;text-align:left;
  background:var(--noche-2);color:var(--marfil);
  box-shadow:0 40px 90px -40px rgba(1,4,12,.95);
  outline:1px solid rgba(239,212,154,.14);outline-offset:-1px;
  isolation:isolate;
}
.banner img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform 1.4s var(--ease-out),filter .8s ease;filter:saturate(.9)}
.banner::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(4,10,22,.92) 0%,rgba(4,10,22,.6) 45%,rgba(4,10,22,.08) 100%)}
@media (hover:hover){.banner:hover img{transform:scale(1.05);filter:saturate(1.05)}}
.banner:focus-visible{outline:2px solid var(--oro-claro);outline-offset:3px}
.banner-grande{aspect-ratio:21/8;min-height:300px}
.banner-grande .banner-texto{position:absolute;left:clamp(1.6rem,4vw,3.6rem);top:50%;transform:translateY(-50%);max-width:30rem}
.banner-marca{display:flex;align-items:center;gap:.8rem}
.monograma{
  display:grid;place-items:center;flex:0 0 auto;width:2.6rem;height:2.6rem;border-radius:50%;
  border:1px solid rgba(239,212,154,.6);font-family:var(--f-display);font-size:1rem;color:var(--oro-claro);
  background:rgba(3,7,15,.35);
}
.banner-rubro{font-size:.74rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--oro-claro)}
.banner-nombre{display:block;margin-top:1rem;font-family:var(--f-display);font-weight:500;font-size:clamp(1.9rem,3.6vw,3.4rem);line-height:1.04}
.banner-lema{display:block;margin-top:.8rem;font-family:var(--f-escritura);font-style:italic;font-size:clamp(1.15rem,1.6vw,1.45rem);color:var(--hielo)}
.banner-accion{display:inline-flex;align-items:center;gap:.6rem;margin-top:1.6rem;font-size:.88rem;font-weight:600;color:var(--oro-claro)}
.banner-accion i{transition:transform .4s var(--ease-out)}
@media (hover:hover){.banner:hover .banner-accion i{transform:translateX(4px)}}
.banners{margin-top:1.4rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.4rem}
.banner-chico{aspect-ratio:4/3.3}
.banner-chico::after{background:linear-gradient(0deg,rgba(4,10,22,.95) 0%,rgba(4,10,22,.5) 50%,rgba(4,10,22,.05) 100%)}
.banner-chico .banner-texto{position:absolute;left:1.5rem;right:1.5rem;bottom:1.5rem}
.banner-chico .banner-nombre{font-size:clamp(1.4rem,2vw,1.8rem);margin-top:.8rem}
.banner-chico .banner-lema{font-size:1.08rem}
.cinta{margin-top:clamp(4rem,9vh,6rem);padding:1.6rem 0;border-top:1px solid rgba(239,212,154,.1);border-bottom:1px solid rgba(239,212,154,.1);overflow:hidden}
.cinta-pista{display:flex;gap:4rem;width:max-content;animation:cinta 38s linear infinite}
.cinta-item{display:flex;align-items:center;gap:.8rem;font-family:var(--f-display);font-size:1.15rem;color:rgba(244,239,228,.7);white-space:nowrap}
@keyframes cinta{to{transform:translateX(-50%)}}
html.movimiento-reducido .cinta-pista{animation:none}

.catalogo{
  padding:0;border:0;border-radius:26px;width:min(560px,94vw);max-height:90vh;overflow:auto;
  background:#0c1c36;color:var(--marfil);
  box-shadow:0 50px 120px -30px rgba(0,0,0,.9);
  outline:1px solid rgba(239,212,154,.18);
}
.catalogo::backdrop{background:rgba(2,5,12,.72)}
.catalogo[open]{animation:catalogo-entra .45s var(--ease-out)}
@keyframes catalogo-entra{from{opacity:0;transform:translateY(24px) scale(.97)}}
.catalogo-img{width:100%;aspect-ratio:16/8;object-fit:cover}
.catalogo-cuerpo{padding:1.8rem 2rem 2.2rem}
.catalogo-rubro{font-size:.74rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--oro-claro)}
.catalogo-nombre{margin-top:.6rem;font-family:var(--f-display);font-weight:500;font-size:2rem}
.catalogo-lema{margin-top:.4rem;font-family:var(--f-escritura);font-style:italic;font-size:1.2rem;color:var(--hielo)}
.catalogo-lista{margin:1.6rem 0 0;padding:0;list-style:none;display:grid;gap:.9rem}
.catalogo-lista li{display:grid;grid-template-columns:auto 1fr;gap:.9rem;align-items:start;padding:.9rem 1rem;border-radius:14px;background:rgba(3,7,15,.35)}
.catalogo-lista i{color:var(--oro);font-size:1.2rem;margin-top:.15rem}
.catalogo-lista strong{display:block;font-weight:600}
.catalogo-lista span{font-size:.88rem;color:var(--hielo);opacity:.85}
.catalogo .boton{margin-top:1.8rem}
.catalogo-cerrar-form{position:sticky;top:0;height:0;z-index:2}
.catalogo-cerrar{position:absolute;right:1rem;top:1rem;width:2.4rem;height:2.4rem;border-radius:50%;border:0;display:grid;place-items:center;cursor:pointer;background:rgba(3,7,15,.7);color:var(--marfil);font-size:1.1rem}

@media (max-width: 980px){
  .programacion-grilla{grid-template-columns:minmax(0,1fr)}
  .al-aire{position:relative;top:auto}
  .banners{grid-template-columns:1fr}
  .banner-grande{aspect-ratio:auto;min-height:420px}
  .banner-grande::after{background:linear-gradient(0deg,rgba(4,10,22,.95) 0%,rgba(4,10,22,.55) 60%,rgba(4,10,22,.1) 100%)}
  .banner-grande .banner-texto{top:auto;bottom:1.8rem;transform:none;right:1.6rem}
}
@media (max-width: 640px){
}

/* =====================================================================
   IDENTIDAD REAL: logo, videos de fondo, quiénes somos, radio, misión
   ===================================================================== */
.nav-logo{width:36px;height:36px;border-radius:50%;box-shadow:0 0 0 1px rgba(239,212,154,.35),0 0 18px -4px rgba(122,166,222,.6)}
@keyframes aparecer-logo{from{opacity:0;transform:scale(.9);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}

/* video de fondo: virado al azul del sitio, velo para que el texto se lea */
.fondo-video{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;
  filter:saturate(.75) brightness(.55) contrast(1.05);
  transform:scale(1.08);
}
.fondo-velo{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(180deg,var(--noche-0) 0%,rgba(3,7,15,.35) 18%,rgba(3,7,15,.35) 82%,var(--noche-0) 100%),
    radial-gradient(120% 90% at 30% 40%,rgba(10,30,70,.25),rgba(3,7,15,.75) 75%),
    linear-gradient(90deg,rgba(18,48,100,.35),rgba(3,7,15,.2));
  mix-blend-mode:normal;
}

/* ---------- quiénes somos ---------- */
.nosotros{position:relative;overflow:hidden;padding:clamp(8rem,18vh,12rem) var(--gutter);background:var(--noche-0);isolation:isolate}
.nosotros-interior{position:relative;z-index:2;max-width:var(--ancho);margin:0 auto;display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(2rem,6vw,6rem);align-items:center}
.nosotros-marca{text-align:center}
.nosotros-logo{
  width:min(100%,300px);height:auto;margin:0 auto;border-radius:50%;
  box-shadow:0 0 0 1px rgba(239,212,154,.45),0 0 0 14px rgba(239,212,154,.05),0 40px 100px -20px rgba(80,150,255,.55);
  animation:flotar 7s ease-in-out infinite;
}
@keyframes flotar{50%{transform:translateY(-12px)}}
.nosotros-usuario{margin-top:1.4rem;font-size:.9rem;letter-spacing:.06em;color:var(--oro-claro)}
.nosotros-titulo{font-family:var(--f-display);font-weight:500;font-size:clamp(2.2rem,4.8vw,4.4rem);line-height:1.05;text-wrap:balance}
.nosotros-bio{margin-top:1.4rem;font-family:var(--f-escritura);font-size:clamp(1.25rem,1.8vw,1.6rem);line-height:1.45;color:var(--hielo);max-width:40ch}
.nosotros-lema{margin-top:1rem;font-family:var(--f-display);font-size:.95rem;letter-spacing:.2em;text-transform:uppercase;color:var(--oro)}
.logros{margin:2.6rem 0 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.logro{
  padding:1.2rem 1.3rem;border-radius:18px;
  background:rgba(6,16,34,.62);border:1px solid rgba(239,212,154,.16);
  transition:transform .4s var(--ease-out),border-color .4s ease;
}
@media (prefers-reduced-transparency: no-preference){.logro{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}}
@media (hover:hover){.logro:hover{transform:translateY(-4px);border-color:rgba(239,212,154,.4)}}
.logro dt{font-family:var(--f-display);font-size:clamp(1.3rem,2.2vw,1.8rem);color:var(--oro-claro);line-height:1.1}
.logro dd{margin:.35rem 0 0;font-size:.86rem;color:var(--hielo)}
.logro a{color:inherit;text-decoration:underline;text-decoration-color:rgba(239,212,154,.35);text-underline-offset:3px}
.redes{margin-top:2rem;display:flex;flex-wrap:wrap;gap:.6rem}
.red{
  display:inline-flex;align-items:center;gap:.5rem;padding:.6rem 1.1rem;border-radius:999px;
  border:1px solid rgba(239,212,154,.3);background:rgba(3,7,15,.45);color:var(--marfil);font-size:.86rem;font-weight:500;
  transition:background-color .25s ease,border-color .25s ease,transform .16s var(--ease-out);
}
.red i{font-size:1.15rem;color:var(--oro-claro)}
.red:active{transform:scale(.97)}
@media (hover:hover){.red:hover{background:rgba(239,212,154,.12);border-color:rgba(239,212,154,.6)}}
.redes-pie{margin-top:0;flex-direction:column;align-items:flex-start;gap:.4rem}
.redes-pie .red{padding:0;border:0;background:none;font-size:.92rem;color:var(--hielo)}

/* ---------- compartiendo carisma (radio) ---------- */
.programacion{position:relative;overflow:hidden;isolation:isolate;background:var(--noche-0)}
.programacion-interior{position:relative;z-index:2}
.programacion-cabecera .eyebrow{margin-bottom:1rem}
.programacion-sub{max-width:52ch}
.cuenta{margin-top:1.6rem;display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}
.cuenta div{padding:.8rem .4rem;border-radius:14px;background:rgba(3,7,15,.45);text-align:center;border:1px solid rgba(207,224,245,.08)}
.cuenta strong{display:block;font-family:var(--f-display);font-size:1.9rem;color:var(--marfil);font-variant-numeric:tabular-nums;line-height:1}
.cuenta span{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--azul-5)}
.al-aire.en-vivo .cuenta{display:none}
.al-aire:not(.en-vivo) .al-aire-progreso{display:none}
.al-aire-botones{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.8rem}
.al-aire-botones .boton{margin-top:0}
.mosaico{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto auto;gap:1rem;position:relative}
.mosaico-foto{margin:0;overflow:hidden;border-radius:22px;background:var(--noche-2);box-shadow:0 30px 70px -30px rgba(1,4,12,.9)}
.mosaico-foto img{width:100%;height:100%;object-fit:cover;aspect-ratio:1/1;transition:transform 1.4s var(--ease-out)}
.mosaico-grande{grid-column:1 / -1}
.mosaico-grande img{aspect-ratio:16/10}
@media (hover:hover){.mosaico-foto:hover img{transform:scale(1.05)}}
.mosaico-premio{
  position:absolute;right:-.6rem;top:-1.2rem;z-index:3;
  display:flex;align-items:center;gap:.8rem;padding:.9rem 1.2rem .9rem 1rem;border-radius:18px;
  background:linear-gradient(160deg,#2a2210,#171205);border:1px solid rgba(239,212,154,.55);
  box-shadow:0 20px 50px -18px rgba(212,168,87,.55);
  color:var(--oro-claro);transform:rotate(3deg);
  transition:transform .4s var(--ease-out);
}
.mosaico-premio i{font-size:1.9rem}
.mosaico-premio strong{display:block;font-family:var(--f-display);font-size:1rem;color:#f6e3b0}
.mosaico-premio span{font-size:.78rem;color:rgba(239,212,154,.85)}
@media (hover:hover){.mosaico-premio:hover{transform:rotate(0) scale(1.04)}}

/* ---------- nuestra misión en imágenes ---------- */
.mision{padding:clamp(6rem,14vh,9rem) 0 0;background:var(--noche-1);overflow:hidden}
.mision-interior{max-width:var(--ancho);margin:0 auto;padding:0 var(--gutter)}
.mision-titulo{font-family:var(--f-display);font-weight:500;font-size:clamp(2.2rem,4.6vw,4.2rem);line-height:1.05}
.mision-sub{margin-top:.9rem;font-family:var(--f-escritura);font-size:clamp(1.15rem,1.5vw,1.35rem);color:var(--hielo)}
.banner-foto-fecha{display:block;margin-top:.9rem;font-size:.8rem;color:var(--azul-5)}
.mision-mas{margin-top:2.4rem}
.banner img{animation:respira-foto 16s ease-in-out infinite alternate}
@keyframes respira-foto{from{transform:scale(1)}to{transform:scale(1.07) translate(-1%,-1%)}}
html.movimiento-reducido .banner img{animation:none}
.catalogo-img{aspect-ratio:auto;max-height:60vh;object-fit:contain;background:#050c1a}

.pie-logo{display:block;margin:0 auto 2rem;width:84px;height:84px;border-radius:50%;box-shadow:0 0 0 1px rgba(239,212,154,.35)}

@media (max-width: 980px){
  .nosotros-interior{grid-template-columns:1fr;text-align:center}
  .nosotros-bio{margin-inline:auto}
  .logros{text-align:left}
  .redes{justify-content:center}
  .mosaico-premio{right:.4rem;top:-1rem}
}
@media (max-width: 640px){
  .logros{grid-template-columns:1fr 1fr;gap:.6rem}
  .logro{padding:1rem}
}

/* =====================================================================
   FONDOS VIVOS en las secciones de texto (v4)
   ===================================================================== */
/* enlace al video de su canal que está de fondo */
.fondo-credito{
  position:absolute;right:var(--gutter);bottom:1.4rem;z-index:3;
  display:inline-flex;align-items:center;gap:.45rem;padding:.45rem .85rem;border-radius:999px;
  font-size:.74rem;letter-spacing:.04em;color:var(--hielo);
  background:rgba(3,7,15,.55);border:1px solid rgba(207,224,245,.14);
  transition:border-color .25s ease,color .25s ease;
}
.fondo-credito i{font-size:1rem;color:#ff5a5a}
@media (hover:hover){.fondo-credito:hover{border-color:rgba(239,212,154,.5);color:var(--marfil)}}
@media (prefers-reduced-transparency: no-preference){.fondo-credito{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}}

/* video en baja resolución: desenfocado como una profundidad de campo de cine */
.fondo-video.desenfocado{filter:blur(2.5px) saturate(.8) brightness(.6) contrast(1.05)}
.videos .fondo-velo{opacity:.8}

/* polvo dorado */
canvas.polvo{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:-1;mix-blend-mode:screen}

/* palabra de hoy: la basílica en penumbra, con haces de luz que giran lento */
.palabra{isolation:isolate}
.palabra-fondo{position:absolute;inset:-6%;z-index:-2;overflow:hidden}
.palabra-fondo img{
  width:100%;height:100%;object-fit:cover;object-position:60% 40%;
  filter:saturate(.55) brightness(.3) contrast(1.1) hue-rotate(-8deg);
  -webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,.35) 0%,#000 55%);mask-image:linear-gradient(90deg,rgba(0,0,0,.35) 0%,#000 55%);
  animation:camara-lenta 38s ease-in-out infinite alternate;
}
@keyframes camara-lenta{from{transform:scale(1.02) translate(0,0)}to{transform:scale(1.14) translate(-2.5%,-1.5%)}}
.palabra-rayos{
  position:absolute;left:62%;top:-30%;width:120vmax;height:120vmax;z-index:-1;pointer-events:none;
  transform:translateX(-50%);
  background:repeating-conic-gradient(from 160deg at 50% 0%,rgba(255,226,170,.075) 0deg 2.2deg,transparent 2.2deg 7deg);
  -webkit-mask-image:radial-gradient(60% 55% at 50% 0%,#000,transparent 75%);mask-image:radial-gradient(60% 55% at 50% 0%,#000,transparent 75%);
  mix-blend-mode:screen;animation:rayos-giran 60s linear infinite alternate;
}
@keyframes rayos-giran{from{transform:translateX(-50%) rotate(-7deg)}to{transform:translateX(-50%) rotate(7deg)}}
.palabra-luz{z-index:-1;animation:luz-respira 9s ease-in-out infinite}
@keyframes luz-respira{50%{opacity:.6;transform:translate(-50%,-50%) scale(1.08)}}

/* videos: su música en vivo detrás */
.videos{position:relative;overflow:hidden;isolation:isolate}
.videos .fondo-video,.sumate .fondo-video{z-index:-2}
.videos .fondo-velo{z-index:-1}

/* sumate: la comunidad reunida, cámara que se acerca */
.sumate{position:relative;overflow:hidden;isolation:isolate}
.sumate-fondo{position:absolute;inset:0 0 auto;height:min(115vh,1100px);z-index:-2;overflow:hidden}
.sumate-fondo img{
  width:100%;height:100%;object-fit:cover;object-position:50% 45%;
  filter:saturate(.6) brightness(.38) contrast(1.05);
  animation:camara-lenta 34s ease-in-out infinite alternate;
}
.sumate-fondo::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,var(--noche-1) 0%,rgba(8,16,32,.45) 25%,rgba(8,16,32,.55) 60%,var(--noche-1) 100%),
             linear-gradient(90deg,rgba(8,16,32,.85),rgba(8,16,32,.2) 70%);
}

/* pie: cinta de fotos reales */
.pie{position:relative;overflow:hidden}
.pie-fotos{
  margin:-1rem calc(var(--gutter) * -1) 4rem;overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
}
.pie-fotos-pista{display:flex;gap:1rem;width:max-content;animation:cinta-fotos 90s linear infinite}
.pie-fotos img{height:clamp(120px,16vw,200px);width:auto;aspect-ratio:4/3;object-fit:cover;border-radius:16px;filter:saturate(.7) brightness(.75);opacity:.85}
@keyframes cinta-fotos{to{transform:translateX(calc(-50% - .5rem))}}

html.movimiento-reducido .palabra-fondo img,html.movimiento-reducido .palabra-rayos,html.movimiento-reducido .palabra-luz,
html.movimiento-reducido .sumate-fondo img,html.movimiento-reducido .pie-fotos-pista{animation:none}
@media (max-width: 640px){
  .fondo-credito{right:50%;transform:translateX(50%);bottom:1rem}
  .palabra-fondo img{-webkit-mask-image:none;mask-image:none}
}

/* pie de obra legible sobre la estatua pintada */
.salmo-obra,.hero-obra{text-shadow:0 1px 3px rgba(0,0,0,.85),0 0 14px rgba(0,0,0,.6)}

/* =====================================================================
   INTRO v5: solo el logo, con su resplandor, sobre San Miguel Arcángel
   ===================================================================== */
.intro-marca{margin-top:0}
.intro-logo-caja{position:relative;width:clamp(170px,26vmin,300px);aspect-ratio:1;margin:0 auto}
.intro-logo{
  position:relative;z-index:2;display:block;width:100%;height:100%;border-radius:50%;
  box-shadow:0 0 0 1px rgba(239,212,154,.6),0 0 36px rgba(255,226,170,.55),0 0 110px rgba(120,170,255,.45);
}
.intro-halo,.intro-rayos,.intro-aro{position:absolute;pointer-events:none;border-radius:50%}
/* halo: la luz que sale del logo */
.intro-halo{
  inset:-70%;z-index:1;
  background:radial-gradient(circle,rgba(255,238,200,.62) 0%,rgba(236,196,120,.28) 22%,rgba(90,140,230,.14) 42%,transparent 66%);
  mix-blend-mode:screen;animation:halo-late 5.5s ease-in-out infinite;
}
@keyframes halo-late{50%{transform:scale(1.08);opacity:.82}}
/* rayos que giran muy despacio */
.intro-rayos{
  inset:-130%;z-index:0;
  background:repeating-conic-gradient(from 0deg,rgba(255,230,180,.11) 0deg 2.5deg,transparent 2.5deg 11deg);
  -webkit-mask-image:radial-gradient(circle,#000 16%,transparent 58%);mask-image:radial-gradient(circle,#000 16%,transparent 58%);
  mix-blend-mode:screen;animation:girar 120s linear infinite;
}
/* aro de luz que se expande, como una onda que lleva el mensaje */
.intro-aro{inset:-4%;z-index:1;border:1px solid rgba(239,212,154,.55);box-shadow:0 0 24px rgba(239,212,154,.35);animation:aro-onda 3.6s ease-out infinite}
@keyframes aro-onda{from{transform:scale(1);opacity:.8}to{transform:scale(1.55);opacity:0}}
html.movimiento-reducido .intro-halo,html.movimiento-reducido .intro-rayos,html.movimiento-reducido .intro-aro{animation:none}

/* clic: destello de luz dorada */
.destello-click{
  position:fixed;z-index:var(--z-cursor,90);width:90px;height:90px;border-radius:50%;pointer-events:none;
  border:1px solid rgba(239,212,154,.8);
  background:radial-gradient(circle,rgba(255,236,190,.5),rgba(255,236,190,0) 60%);
  box-shadow:0 0 18px rgba(239,212,154,.5);
}

/* reflexión: una luz cálida en lugar del ala */
.reflexion{isolation:isolate}
.reflexion-luz{
  position:absolute;right:-18vw;top:50%;width:min(90vw,1200px);aspect-ratio:1;z-index:-2;pointer-events:none;
  background:radial-gradient(circle,rgba(212,168,87,.16) 0%,rgba(42,90,158,.1) 38%,transparent 66%);
  filter:blur(8px);
}
/* sello del promotor: el logo en el centro */
.sello-logo{position:relative;width:clamp(80px,9vw,112px);height:auto;border-radius:50%;box-shadow:0 0 0 1px rgba(239,212,154,.5),0 0 40px rgba(239,212,154,.35)}

/* =====================================================================
   EQUIPO LIVIANO (celulares): las mismas animaciones, con efectos más baratos
   ===================================================================== */
/* vidrio esmerilado y mezclas de color: en el celular se recalculan en cada cuadro */
html.liviano .nav{-webkit-backdrop-filter:none;backdrop-filter:none;background:rgba(6,14,28,.94)}
html.liviano .logro,html.liviano .fondo-credito{-webkit-backdrop-filter:none;backdrop-filter:none}
html.liviano .logro{background:rgba(6,16,34,.86)}
html.liviano canvas.polvo,html.liviano .palabra-rayos,html.liviano .intro-halo,html.liviano .intro-rayos{mix-blend-mode:normal}
/* los videos de fondo sin filtros: el velo los oscurece igual */
html.liviano .fondo-video,html.liviano .fondo-video.desenfocado{filter:none}
html.liviano .fondo-velo{background-color:rgba(3,7,15,.42)}
/* luces grandes sin desenfoque (el degradado ya es suave) y sin el grano de película */
html.liviano .palabra-luz,html.liviano .reflexion-luz{filter:none}
html.liviano .grano{display:none}
/* recorridos más cortos */
html.liviano .hero{height:190vh}

/* indicador de la galería en el celular: qué obra es y que hay que deslizar */
.galeria-pista{display:none}
html.liviano .galeria-pista{
  position:absolute;left:50%;top:calc(4.5vh + 78px);z-index:5;transform:translate(-50%,-8px);
  display:flex;align-items:center;gap:.7rem;padding:.5rem .9rem;border-radius:999px;
  background:rgba(3,7,15,.72);border:1px solid rgba(239,212,154,.28);
  color:var(--marfil);font-size:.78rem;white-space:nowrap;
  opacity:0;pointer-events:none;transition:opacity .4s ease,transform .4s var(--ease-out);
}
html.liviano .galeria-pista.visible{opacity:1;transform:translate(-50%,0)}
.galeria-pista-num{font-family:var(--f-display);color:var(--oro-claro);font-variant-numeric:tabular-nums;min-width:3.2ch}
.galeria-pista-barra{width:54px;height:2px;border-radius:2px;background:rgba(239,212,154,.2);overflow:hidden}
.galeria-pista-barra i{display:block;height:100%;background:var(--oro);transform-origin:left;transform:scaleX(0)}
.galeria-pista-texto{display:inline-flex;align-items:center;gap:.35rem;color:var(--hielo)}
.galeria-pista-texto i{animation:pista-baja 1.6s ease-in-out infinite}
@keyframes pista-baja{50%{transform:translateY(3px)}}
.galeria-pista .fin{display:none}
.galeria-pista.final .seguir{display:none}
.galeria-pista.final .fin{display:inline}

/* fundido para los saltos largos de los atajos (debajo de la barra, que queda visible) */
.velo-salto{position:fixed;inset:0;z-index:calc(var(--z-nav) - 1);background:var(--noche-0);opacity:0;pointer-events:none}
/* el menú del celular avisa que tocando afuera se cierra */
.menu-movil{cursor:pointer}
.menu-movil nav{cursor:auto}

/* secciones fuera de la pantalla: sus animaciones de CSS en pausa (marquesinas, halos, fotos) */
.fuera-de-vista,.fuera-de-vista *,.fuera-de-vista *::before,.fuera-de-vista *::after{animation-play-state:paused!important}
