/* =====================================================================================================================
   Revisión visual (22-10-2026): carteles del ciclo, vitrina, galería, escena del archivo, explorador móvil y pie.
   Se carga la última en todas las páginas. Dirección común: profundidad, luz ambiental y transiciones sobrias; los
   efectos llamativos se reservan para la escena del archivo y el abanico de la galería. Nada oculta contenido sin
   JavaScript (las apariciones dependen de clases que solo añade carteles.js) y todo respeta «Reducir animaciones» y
   prefers-reduced-motion.
   ===================================================================================================================== */

/* ---------- Vitrina: cartel bajo cristal. Marco fino, sombra, reflejo tenue SOLO en el marco (nunca sobre el cartel),
   luz del tema bajo la pieza y elevación discreta al pasar el puntero o enfocar. */
.vitrina { position: relative; isolation: isolate; margin: 0; }
.vitrina__marco {
  --marco: clamp(5px, .55vw, 9px);
  position: relative; display: block; padding: var(--marco); border: 1px solid #ffffff30; border-radius: 4px;
  background: linear-gradient(140deg, #ffffff22 0%, #ffffff0a 38%, #ffffff04 62%, #ffffff16 100%);
  box-shadow: inset 0 1px 0 #ffffff2e, 0 2px 4px -2px #000c, 0 26px 50px -26px #000e, 0 0 0 1px #0000004d;
  color: var(--tiza-2); text-decoration: none;
  transition: transform .5s var(--ease), box-shadow .5s var(--ease), border-color .5s;
}
.vitrina__marco picture, .vitrina__marco img { display: block; width: 100%; height: auto; }
.vitrina__marco img { border-radius: 1px; background: var(--noche-2); }
/* Reflejo: una franja de luz recorre el marco; la máscara la limita al borde de cristal */
.vitrina__marco::before {
  content: ""; position: absolute; inset: 0; padding: var(--marco); border-radius: inherit; pointer-events: none;
  background: linear-gradient(115deg, transparent 25%, #ffffff3d 42%, #ffffff10 50%, transparent 60%) 0 0 / 260% 100% no-repeat;
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
  transition: background-position 1.1s var(--ease);
}
/* Luz ambiental bajo el cartel (no bajo el pie de foto), del color del tema */
.vitrina__marco::after {
  content: ""; position: absolute; z-index: -1; left: 10%; right: 10%; bottom: -14px; height: 34px; pointer-events: none;
  background: radial-gradient(closest-side, color-mix(in srgb, var(--tema, #bfe5e2) 40%, transparent), transparent);
  opacity: .55; transition: opacity .5s;
}
.vitrina__ampliar { display: flex; align-items: center; gap: .45rem; min-height: 36px; padding: .5rem .15rem 0; font: 500 .78rem/1.2 var(--sans); letter-spacing: .02em; color: var(--tiza-2); }
.vitrina__ampliar svg { width: 18px; height: 18px; flex: none; color: var(--acrecion-claro); }
.vitrina__marco:focus-visible { outline: 3px solid var(--cian); outline-offset: 4px; }
@media (hover: hover) {
  .vitrina__marco:hover, .vitrina__marco:focus-visible { transform: translateY(-5px); border-color: #ffffff4d; box-shadow: inset 0 1px 0 #ffffff3a, 0 4px 8px -4px #000c, 0 40px 70px -30px #000, 0 0 0 1px #0000004d; }
  .vitrina__marco:hover::before, .vitrina__marco:focus-visible::before { background-position: 100% 0; }
  .vitrina__marco:hover::after, .vitrina__marco:focus-visible::after { opacity: .9; }
  .vitrina__marco:hover .vitrina__ampliar { color: var(--tiza); }
}
/* Táctil: sin elevación; una leve presión confirma el toque */
@media (hover: none) { .vitrina__marco { -webkit-tap-highlight-color: transparent; } .vitrina__marco:active { transform: scale(.985); } }
.vitrina__pie { margin-top: .9rem; font-size: .82rem; line-height: 1.5; color: var(--tiza-3); }
.vitrina__pie a { color: var(--tiza-2); text-underline-offset: .2em; }
.vitrina__pie a:hover { color: var(--tiza); }
.movimiento-reducido .vitrina__marco, .movimiento-reducido .vitrina__marco::before { transition: none; transform: none !important; }
@media (prefers-reduced-motion: reduce) { .vitrina__marco, .vitrina__marco::before { transition: none; transform: none !important; } }
@media (forced-colors: active) { .vitrina__marco { border: 1px solid CanvasText; } .vitrina__marco::before, .vitrina__marco::after { display: none; } }

/* Ficha de conferencia: el cartel encabeza la columna lateral; en tableta, cartel y ficha lado a lado */
.conferencia__lateral { display: grid; gap: 1.8rem; align-content: start; }
.vitrina--ficha .vitrina__pie { margin-top: 1.1rem; }
@media (min-width: 700px) and (max-width: 999px) {
  .conferencia__lateral:has(.vitrina) { grid-template-columns: minmax(0, .85fr) minmax(0, 1fr); align-items: start; gap: 2rem; }
}
@media (max-width: 699px) { .vitrina--ficha { max-width: 22rem; } }

/* ---------- Visor del cartel ampliado */
.visor { width: 100vw; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: #04070df5; color: var(--tiza); overscroll-behavior: contain; }
.visor::backdrop { background: #04070dcc; }
.visor[open] { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; }
.visor__barra { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .6rem 1.2rem; padding: max(.7rem, env(safe-area-inset-top)) var(--margen) .7rem; border-bottom: 1px solid #ffffff1a; }
.visor__titulo { flex: 1 1 18rem; margin: 0; font: 400 1.1rem/1.3 var(--serif); }
.visor__controles { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; }
.visor__boton { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 .7rem; border: 1px solid #ffffff3d; border-radius: 3px; background: #ffffff0a; color: var(--tiza); font: 600 .8rem var(--sans); text-decoration: none; cursor: pointer; }
.visor__boton:hover { background: #ffffff1a; }
.visor__boton:focus-visible, .visor__lienzo:focus-visible { outline: 3px solid var(--cian); outline-offset: 2px; }
.visor__boton svg { width: 20px; height: 20px; }
.visor__cerrar { margin-left: .4rem; border-color: #ffffff66; }
.visor__nivel { min-width: 4.4em; text-align: center; font: 500 .85rem var(--sans); font-variant-numeric: tabular-nums; color: var(--tiza-2); }
.visor__lienzo { position: relative; overflow: hidden; touch-action: none; cursor: zoom-in; }
.visor__lienzo:focus-visible { outline-offset: -3px; }
.visor__lienzo--ampliado { cursor: grab; }
.visor__lienzo--ampliado:active { cursor: grabbing; }
.visor__imagen { position: absolute; left: 0; top: 0; max-width: none; transform-origin: 0 0; user-select: none; -webkit-user-select: none; box-shadow: 0 30px 90px #000; }
.visor__ayuda { margin: 0; padding: .55rem var(--margen) calc(.55rem + env(safe-area-inset-bottom)); font-size: .78rem; color: var(--tiza-3); text-align: center; }
body.visor-abierto { overflow: hidden; }
/* Ayuda adaptada: gestos en pantallas táctiles, teclas con puntero fino (ambas si no se sabe) */
@media (hover: none) and (pointer: coarse) { .visor__ayuda-teclado { display: none; } }
@media (hover: hover) and (pointer: fine) { .visor__ayuda-tactil { display: none; } }
@media (max-width: 699px) { .visor__titulo { font-size: .95rem; flex-basis: 100%; } .visor__boton--texto[data-visor-original] { display: none; } }

/* ---------- Apariciones (solo con JS y con movimiento permitido) */
.aparece-listo [data-aparece] { opacity: 0; translate: 0 14px; transition: opacity .9s var(--ease), translate .9s var(--ease); }
.aparece-listo [data-aparece].aparece--visto { opacity: 1; translate: 0 0; }
@media print { .aparece-listo [data-aparece] { opacity: 1; translate: none; } }

/* ---------- Galería de carteles */
.cabecera-galeria { position: relative; isolation: isolate; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .9fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; max-width: none; }
.cabecera-galeria::before { content: ""; position: absolute; z-index: -1; inset: -40% -12% -25% 25%; pointer-events: none; background: radial-gradient(42% 46% at 62% 50%, #f3c49f1c, transparent 70%), radial-gradient(34% 40% at 84% 26%, #8c9cff1a, transparent 70%); }
.cabecera-galeria__texto { max-width: 44rem; }
.cabecera-galeria__nota { max-width: 40rem; margin: 1.1rem 0 0; color: var(--tiza-3); line-height: 1.65; }
.cabecera-galeria__cifra { margin: 1.8rem 0 0; font: 600 .75rem var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--acrecion-claro); }
.cabecera-galeria__cifra strong { margin-right: .35rem; font: 400 2.6rem/1 var(--serif); letter-spacing: -.03em; text-transform: none; color: var(--tiza); }
.abanico { position: relative; height: clamp(300px, 36vw, 500px); }
.abanico__hoja { position: absolute; left: 50%; top: 50%; width: clamp(140px, 17vw, 260px); padding: 5px; border: 1px solid #ffffff30; border-radius: 3px; background: linear-gradient(140deg, #ffffff22, #ffffff06); box-shadow: 0 30px 60px -24px #000, inset 0 1px 0 #ffffff2e; transform-origin: 50% 120%; translate: -50% -50%; }
.abanico__hoja img { display: block; width: 100%; height: auto; }
.abanico__hoja--1 { z-index: 3; rotate: 0deg; }
.abanico__hoja--2 { z-index: 2; rotate: -13deg; }
.abanico__hoja--3 { z-index: 1; rotate: 12deg; }
.js:not(.movimiento-reducido) .abanico__hoja--2, .js:not(.movimiento-reducido) .abanico__hoja--3 { animation: abanico-abre 1.4s var(--ease) .2s both; }
@keyframes abanico-abre { from { rotate: 0deg; } }
@media (prefers-reduced-motion: reduce) { .abanico__hoja { animation: none !important; } }
.galeria { position: relative; margin-top: clamp(3.5rem, 7vw, 6.5rem); }
.galeria__curso { display: flex; flex-wrap: wrap; align-items: baseline; gap: .4rem 1rem; margin: 0 0 clamp(1.8rem, 3.5vw, 3rem); padding-top: 1.1rem; border-top: 1px solid #ffffff25; font: 400 clamp(2rem, 4.4vw, 3.6rem)/1 var(--serif); letter-spacing: -.04em; }
.galeria__etiqueta, .galeria__n { font: 600 .75rem var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--acrecion-claro); }
.galeria__n { margin-left: auto; color: var(--tiza-3); }
.galeria__rejilla { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.4rem 1rem; align-items: start; margin: 0; padding: 0; list-style: none; }
.galeria__pieza:nth-child(even) { margin-top: 2rem; }
.galeria__ficha { margin-top: 1.1rem; }
.galeria__fecha { margin: 0 0 .35rem; font: 600 .75rem var(--sans); letter-spacing: .12em; text-transform: uppercase; color: var(--tema, var(--acrecion-claro)); }
.galeria__titulo { margin: 0; font: 400 1.08rem/1.35 var(--serif); letter-spacing: -.01em; }
.galeria__titulo a { color: var(--tiza); text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .45s var(--ease); }
.galeria__titulo a:hover, .galeria__titulo a:focus-visible { background-size: 100% 1px; }
.galeria__ponente { margin: .35rem 0 0; font-size: .88rem; color: var(--tiza-2); }
.galeria--exposicion .galeria__pieza:first-child { grid-column: 1 / -1; width: min(80%, 24rem); margin-top: 0; }
.galeria--exposicion .galeria__pieza:first-child ~ .galeria__pieza:nth-child(odd) { margin-top: 2rem; }
.galeria--exposicion .galeria__pieza:first-child ~ .galeria__pieza:nth-child(even) { margin-top: 0; }
.galeria__credito { margin-top: clamp(3rem, 6vw, 5rem); }
@media (min-width: 700px) { .galeria__rejilla { gap: 3rem 1.8rem; } .galeria__pieza:nth-child(even) { margin-top: 3.5rem; } }
@media (min-width: 1000px) {
  .galeria__rejilla { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 3.5rem 2rem; }
  .galeria__pieza, .galeria__pieza:nth-child(even) { grid-column: span 3; margin-top: 0; }
  /* Exposición: la pieza más reciente en grande, con su ficha a escala; las demás la rodean */
  .galeria--exposicion .galeria__rejilla { grid-auto-flow: dense; }
  .galeria--exposicion .galeria__pieza:first-child { grid-column: 1 / span 6; grid-row: span 2; width: auto; }
  .galeria--exposicion .galeria__pieza:first-child .galeria__titulo { font-size: clamp(1.4rem, 2vw, 2rem); }
  .galeria--exposicion .galeria__pieza:first-child ~ .galeria__pieza:nth-child(odd) { margin-top: 0; }
  .galeria--exposicion .galeria__pieza:nth-child(n+2):nth-child(-n+5):nth-child(odd) { margin-top: 3rem; }
  /* Mosaico: tamaños alternos 5-4-3 / 3-4-5 con alturas escalonadas */
  .galeria--mosaico .galeria__pieza:nth-child(6n+1) { grid-column: span 5; }
  .galeria--mosaico .galeria__pieza:nth-child(6n+2) { grid-column: span 4; margin-top: 6rem; }
  .galeria--mosaico .galeria__pieza:nth-child(6n+3) { grid-column: span 3; margin-top: 2rem; }
  .galeria--mosaico .galeria__pieza:nth-child(6n+4) { grid-column: span 3; }
  .galeria--mosaico .galeria__pieza:nth-child(6n+5) { grid-column: span 4; margin-top: 4rem; }
  .galeria--mosaico .galeria__pieza:nth-child(6n+6) { grid-column: span 5; margin-top: 1rem; }
  /* Escalera: cuatro por fila, cada una un peldaño más abajo */
  .galeria--escalera .galeria__pieza:nth-child(4n+2) { margin-top: 4rem; }
  .galeria--escalera .galeria__pieza:nth-child(4n+3) { margin-top: 8rem; }
  .galeria--escalera .galeria__pieza:nth-child(4n+4) { margin-top: 12rem; }
  /* Tríptico: tres piezas amplias, la central adelantada */
  .galeria--triptico .galeria__pieza { grid-column: span 4; padding-inline: clamp(0rem, 2vw, 2rem); text-align: center; }
  .galeria--triptico .galeria__pieza:nth-child(3n+1), .galeria--triptico .galeria__pieza:nth-child(3n+3) { margin-top: 3.5rem; }
  .galeria--triptico .vitrina__ampliar { justify-content: center; }
}
@media (max-width: 699px) {
  .cabecera-galeria { grid-template-columns: 1fr; }
  .abanico { order: -1; height: 250px; margin-bottom: -.5rem; }
  .abanico__hoja { width: 130px; }
  .galeria__titulo { font-size: 1rem; }
  .vitrina--galeria .vitrina__ampliar { font-size: .75rem; }
}

/* ---------- Composiciones de carteles en las secciones (tema y ponente) */
.titulo-bloque__enlace { display: inline-flex; align-items: center; min-height: 44px; margin-left: auto; font: 500 .82rem var(--sans); letter-spacing: .02em; text-transform: none; color: var(--tiza-2); }
.titulo-bloque__enlace:hover { color: var(--tiza); }
.composicion { margin-bottom: clamp(3rem, 6vw, 5rem); }
.composicion__piezas { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr) minmax(0, 1fr); gap: clamp(1rem, 3vw, 2.6rem); align-items: end; max-width: 64rem; margin: 0; padding: 0; list-style: none; }
.composicion__pieza:nth-child(2) { margin-bottom: 3.5rem; }
.composicion--derecha .composicion__piezas { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.45fr); grid-auto-flow: dense; margin-left: auto; }
.composicion--derecha .composicion__pieza:first-child { grid-column: 3; grid-row: 1; }
.composicion--2 .composicion__piezas { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); max-width: 44rem; }
.composicion--derecha.composicion--2 .composicion__piezas { grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); }
.composicion--derecha.composicion--2 .composicion__pieza:first-child { grid-column: 2; }
.composicion--1 .composicion__piezas { grid-template-columns: minmax(0, 20rem); }
.composicion--derecha.composicion--1 .composicion__pieza:first-child { grid-column: 1; }
.vitrina--composicion .vitrina__pie a { display: block; font: 400 1rem/1.35 var(--serif); color: var(--tiza); text-decoration: none; }
.vitrina--composicion .vitrina__pie a:hover { text-decoration: underline; }
.vitrina--composicion .vitrina__pie span { display: block; margin-top: .2rem; }
@media (max-width: 699px) {
  .composicion__piezas, .composicion--derecha .composicion__piezas, .composicion--2 .composicion__piezas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .composicion__pieza:first-child, .composicion--derecha .composicion__pieza:first-child { grid-column: 1 / -1; grid-row: auto; width: 74%; }
  .composicion--derecha .composicion__pieza:first-child { justify-self: end; }
  .composicion__pieza:nth-child(2) { margin-bottom: 0; }
  .composicion__pieza:nth-child(3) { margin-top: 2rem; }
}
.cabecera-con-cartel { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 18.5rem); gap: clamp(2rem, 5vw, 5rem); align-items: start; margin-bottom: clamp(2.5rem, 5vw, 4rem); }
.cabecera-con-cartel .cabecera-pagina { margin-bottom: 0; }
.cabecera-con-cartel--sin { display: block; }
@media (max-width: 699px) { .cabecera-con-cartel { grid-template-columns: 1fr; } .vitrina--ponente { max-width: 15rem; } }

/* ---------- Escena del archivo (portada): sustituye a la franja blanca. Sala oscura con un muro de carteles en
   perspectiva, tres planos de profundidad, luz cálida cenital y reflejo en el suelo. El mensaje queda en su propia
   zona, sobre fondo oscuro (el logotipo oficial es blanco sobre transparente y se muestra tal cual). */
.escena-archivo { --desplazamiento: 0; position: relative; isolation: isolate; overflow: hidden; display: grid; grid-template-columns: minmax(0, 36rem) minmax(0, 1fr); align-items: center; min-height: clamp(36rem, 60vw, 48rem); padding: clamp(4.5rem, 8vw, 7.5rem) var(--margen); background: radial-gradient(110% 90% at 78% 42%, #15233a 0%, #0c1426 42%, var(--noche) 74%); }
.escena-archivo__texto { position: relative; z-index: 3; grid-column: 1; grid-row: 1; }
.escena-archivo__lema { margin: 0 0 1.5rem; font: 400 clamp(2.5rem, 4.8vw, 4.6rem)/1.04 var(--serif); letter-spacing: -.045em; }
.escena-archivo__lema em { color: var(--acrecion-claro); }
.escena-archivo__entradilla { max-width: 30rem; margin: 0; color: var(--tiza-2); line-height: 1.7; }
.escena-archivo__acciones { margin: 1.9rem 0 0; }
.escena-archivo__logo { width: min(100%, 440px); height: auto; margin-top: 2.8rem; opacity: .92; }
.escena-archivo__sala { position: absolute; z-index: 1; inset: 0 0 0 40%; perspective: 1100px; perspective-origin: 0% 45%;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 16%, #000 86%, transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 16%, #000 86%, transparent 100%); }
.escena-archivo__muro { position: absolute; inset: 7% -14% 9% 0; display: flex; flex-direction: column; justify-content: center; gap: clamp(1rem, 2vw, 1.8rem); transform: rotateY(-22deg); transform-origin: 0 50%; }
.escena-archivo__fila { display: flex; gap: clamp(.9rem, 1.5vw, 1.5rem); translate: calc(var(--desplazamiento) * var(--deriva, 0px)) 0; will-change: translate; }
.escena-archivo__fila--lejos { --deriva: 34px; margin-left: 9%; filter: brightness(.55) saturate(.85); }
.escena-archivo__fila--medio { --deriva: -52px; margin-left: 2%; filter: brightness(.78) saturate(.92); }
.escena-archivo__fila--cerca { --deriva: 74px; margin-left: 13%; }
.escena-archivo__cartel { flex: none; width: clamp(96px, 10.5vw, 168px); padding: 4px; border: 1px solid #ffffff2b; border-radius: 2px; background: linear-gradient(140deg, #ffffff26, #ffffff06); box-shadow: 0 18px 30px -16px #000, 0 0 46px -20px var(--tema, #bfe5e2); }
.escena-archivo__cartel img { display: block; width: 100%; height: auto; }
.escena-archivo__fila--cerca .escena-archivo__cartel { -webkit-box-reflect: below 8px linear-gradient(transparent 74%, #ffffff1f); }
.escena-archivo__luz { position: absolute; z-index: 2; inset: 0; pointer-events: none; background:
  linear-gradient(90deg, var(--noche) 0%, #080d1aee 28%, #080d1a80 40%, transparent 52%),
  radial-gradient(38% 46% at 72% -4%, #f3c49f26, transparent 72%),
  radial-gradient(30% 40% at 96% 90%, #8c9cff14, transparent 70%),
  linear-gradient(0deg, var(--noche) 0%, transparent 16%, transparent 86%, #080d1aaa 100%); }
.escena-archivo--sin-muro { grid-template-columns: minmax(0, 46rem); }
@media (max-width: 999px) { .escena-archivo__sala { left: 46%; } .escena-archivo__cartel { width: clamp(84px, 13vw, 130px); } }
@media (max-width: 699px) {
  .escena-archivo { grid-template-columns: 1fr; min-height: 0; padding-top: 0; }
  .escena-archivo__sala { position: relative; inset: auto; grid-row: 1; height: 300px; margin: 0 calc(-1 * var(--margen)); perspective-origin: 50% 40%;
    -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 14%, #000 70%, transparent 100%); mask-image: linear-gradient(180deg, transparent 0, #000 14%, #000 70%, transparent 100%); }
  .escena-archivo__muro { inset: 8% -30% 6% -6%; transform: rotateY(-14deg); gap: .9rem; }
  .escena-archivo__fila--lejos { display: none; }
  .escena-archivo__fila .escena-archivo__cartel:nth-child(n+6) { display: none; }
  .escena-archivo__cartel { width: 98px; }
  .escena-archivo__fila--cerca .escena-archivo__cartel { -webkit-box-reflect: none; }
  .escena-archivo__luz { background: linear-gradient(0deg, var(--noche) 0%, var(--noche) 52%, transparent 66%), radial-gradient(70% 30% at 50% 0%, #f3c49f1f, transparent 70%); }
  .escena-archivo__texto { grid-row: 2; margin-top: -1rem; }
  .escena-archivo__logo { margin-top: 2.2rem; }
}
.movimiento-reducido .escena-archivo__fila { translate: none; }
@media (prefers-reduced-motion: reduce) { .escena-archivo__fila { translate: none; } }
@media (forced-colors: active) { .escena-archivo__sala, .escena-archivo__luz { display: none; } }

/* ---------- Explorador de temas en el móvil (con JS): galaxia entera en pantalla, fila de temas y lista del tema */
.mapa__chips, .mapa__panel, .mapa__ayuda-movil { display: none; }
@media (max-width: 699px) {
  .mapa.mapa--movil { overflow: visible; margin-inline: calc(-1 * var(--margen)); padding: 0; }
  .mapa--movil .mapa__chips { display: flex; gap: .5rem; overflow-x: auto; scroll-snap-type: x proximity; padding: .2rem var(--margen) 1rem; scrollbar-width: none; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 var(--margen), #000 calc(100% - var(--margen)), transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 var(--margen), #000 calc(100% - var(--margen)), transparent 100%); }
  .mapa--movil .mapa__chips::-webkit-scrollbar { display: none; }
  .mapa__chips a { flex: none; scroll-snap-align: start; display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; padding: 0 1rem; border: 1px solid #ffffff2e; border-radius: 999px; background: #ffffff06; color: var(--tiza-2); font-size: .84rem; white-space: nowrap; text-decoration: none; }
  .mapa__chips .punto { background: var(--tema); box-shadow: 0 0 0 3px color-mix(in srgb, var(--tema) 25%, transparent); }
  .mapa__chips a[aria-current="true"] { border-color: var(--tema); background: color-mix(in srgb, var(--tema) 18%, transparent); color: var(--tiza); font-weight: 600; }
  .mapa__chips a:focus-visible { outline: 3px solid var(--cian); outline-offset: 2px; }
  .mapa.mapa--movil svg { width: 100%; max-width: 100%; height: auto; aspect-ratio: 1200 / 820; overflow: hidden; }
  .mapa--movil .mapa__etiqueta { opacity: 0; transition: opacity .4s; }
  .mapa--movil.mapa--acercado .mapa__tema--activo .mapa__etiqueta { opacity: 1; }
  .mapa--movil.mapa--acercado .mapa__tema:not(.mapa__tema--activo) { opacity: .1; }
  .mapa--movil.mapa--acercado .mapa__puentes { opacity: .3; }
  .mapa--movil figcaption { position: static; width: auto; min-height: 0; padding: 0 var(--margen); }
  .mapa--movil .mapa__ayuda-movil { display: block; }
  .mapa--movil.mapa--acercado .mapa__ayuda-movil { display: none; }
  .mapa--movil .mapa__panel { display: block; padding: 0 var(--margen); }
  /* El nombre del tema ya lo rotula la constelación acercada: aquí solo queda para lectores de pantalla (sin repetirlo a la vista) */
  .mapa__panel-cabecera { display: flex; justify-content: flex-end; margin: -.4rem 0 .2rem; }
  .mapa__volver { min-height: 44px; padding: 0 .9rem; font-size: .78rem; }
  .mapa__panel-lista { margin: 0 0 1rem; padding: 0; list-style: none; }
  .mapa__panel-lista a { display: flex; flex-direction: column; justify-content: center; min-height: 52px; padding: .65rem 0; border-top: 1px solid #ffffff17; text-decoration: none; }
  .mapa__panel-conf { font: 400 1rem/1.35 var(--serif); color: var(--tiza); }
  .mapa__panel-ponente { margin-top: .15rem; font-size: .82rem; color: var(--tiza-3); }
}

/* ---------- Pie fundido con la página: degradado amplio en lugar de línea de corte; logotipos que se revelan */
footer.pie { position: relative; border-top: 0; background:
  radial-gradient(70% 55% at 50% 100%, #12203a55, transparent 72%),
  linear-gradient(180deg, var(--noche) 0%, #070b17 34%, #04070e 100%); }
footer.pie::before { content: ""; position: absolute; left: 0; right: 0; bottom: 100%; height: clamp(6rem, 14vw, 12rem); pointer-events: none; background: linear-gradient(180deg, transparent, var(--noche)); }
footer.pie .pie__abajo { position: relative; border-top-color: transparent; }
footer.pie .pie__abajo::before { content: ""; position: absolute; top: -1px; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, transparent, #ffffff30 20%, #f3c49f55 50%, #ffffff30 80%, transparent); }
.pie-animable footer.pie .logo-institucional { clip-path: inset(0 100% 0 0); opacity: .25; transition: clip-path 1.8s var(--ease) .15s, opacity 1.8s var(--ease) .15s; }
.pie-animable footer.pie.pie--visible .logo-institucional { clip-path: inset(0 0 0 0); opacity: .9; }
.pie-animable footer.pie .pie__abajo::before { transform: scaleX(0); transition: transform 1.6s var(--ease); }
.pie-animable footer.pie.pie--visible .pie__abajo::before { transform: scaleX(1); }
.pie-animable footer.pie .pie__nombre, .pie-animable footer.pie .pie__lema { opacity: 0; translate: 0 10px; transition: opacity 1.1s var(--ease), translate 1.1s var(--ease); }
.pie-animable footer.pie .pie__lema { transition-delay: .15s; }
.pie-animable footer.pie.pie--visible .pie__nombre, .pie-animable footer.pie.pie--visible .pie__lema { opacity: 1; translate: 0 0; }
@media print { footer.pie::before { display: none; } .pie-animable footer.pie .logo-institucional { clip-path: none; opacity: 1; } }

/* Cartel de la conferencia destacada (portada): mismo acabado bajo cristal que el resto */
.cartel .vitrina__marco img { border-radius: 1px; }

/* ---------- «Ver» y «Escuchar» (portada): ilustraciones protagonistas, familia grafiti (televisión y auriculares).
   Decorativas (alt vacío, ocultas a lectores): título, texto y enlace siguen siendo el contenido y funcionan aunque la
   imagen no cargue. La tarjeta se compone según el ancho disponible: con sitio, la ilustración ocupa
   una columna junto al texto; estrecha, acompaña al título y el texto pasa debajo. Flotación muy suave; al pasar el
   puntero o enfocar el enlace, un leve giro y más luz. Con movimiento reducido, estáticas. */
.puerta { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 42%); grid-template-areas: "titulo arte" "desc desc" "enlace enlace"; align-content: start; column-gap: 1rem; row-gap: .8rem; }
.puerta > .puerta__accion { grid-area: titulo; align-self: center; }
.puerta > .puerta__desc { grid-area: desc; }
.puerta > .enlace-flecha { grid-area: enlace; justify-self: start; }
.puerta__arte { grid-area: arte; position: relative; z-index: 0; align-self: center; justify-self: end; width: min(100%, 15rem); margin: -1.4rem -1rem -.6rem 0; pointer-events: none; transition: transform .6s var(--ease), filter .6s var(--ease); }
.puerta__arte img { display: block; width: 100%; height: auto; animation: puerta-flota 7s ease-in-out infinite alternate; }
.puerta--escuchar .puerta__arte img { animation-duration: 8.5s; animation-delay: -3s; }
@keyframes puerta-flota { from { transform: translateY(0) rotate(-.6deg); } to { transform: translateY(-7px) rotate(.8deg); } }
.puerta:hover .puerta__arte, .puerta:focus-within .puerta__arte { transform: rotate(-2.5deg) scale(1.035); filter: drop-shadow(0 0 18px color-mix(in srgb, var(--cian) 28%, transparent)); }
.puerta--escuchar:hover .puerta__arte, .puerta--escuchar:focus-within .puerta__arte { transform: rotate(2.5deg) scale(1.035); filter: drop-shadow(0 0 18px color-mix(in srgb, var(--acrecion) 30%, transparent)); }
/* Con sitio (tarjetas anchas: escritorio amplio, o una sola columna en tableta), ilustración en columna propia */
@media (min-width: 1440px), (min-width: 600px) and (max-width: 759px) {
  .puerta { grid-template-columns: minmax(0, 1fr) minmax(0, 40%); grid-template-areas: "titulo arte" "desc arte" "enlace arte"; }
  .puerta__arte { align-self: center; width: min(112%, 19rem); margin: -1.6rem -1.4rem -1rem 0; }
}
/* El texto queda siempre por encima: la ilustración nunca lo tapa */
.puerta > :not(.puerta__arte) { position: relative; z-index: 1; }
/* Móvil: la ilustración en su propia franja, encima del título y alineada a la derecha (sin solaparse con él) */
@media (max-width: 599px) {
  .puerta { grid-template-columns: minmax(0, 1fr); grid-template-areas: "arte" "titulo" "desc" "enlace"; row-gap: .6rem; }
  .puerta__arte { width: min(62%, 12rem); margin: -1rem -.8rem -1.6rem 0; }
}
.movimiento-reducido .puerta__arte img { animation: none; }
.movimiento-reducido .puerta__arte { transition: none; transform: none !important; }
@media (prefers-reduced-motion: reduce) { .puerta__arte img { animation: none; } .puerta__arte { transition: none; transform: none !important; } }
@media (forced-colors: active) { .puerta__arte { display: none; } }
@media print { .puerta__arte img { animation: none; } }

/* ---------- Texto ampliado (200 % solo del texto, más exigente que el zoom): nada ensancha la página.
   Detectado con tools/auditoria/auditar.mjs. A tamaño normal no cambia nada visible. */
.cabecera__capsula, .nav { flex-wrap: wrap; row-gap: .4rem; }
.cabecera-galeria { overflow-x: clip; }                       /* el abanico girado no ensancha la página */
.cabecera-con-cartel > *, .conferencia__rejilla > *, .conferencia__lateral > *, .tarjeta a, .tarjeta__texto { min-width: 0; }
.galeria__titulo, .vitrina__pie, .tarjeta__titulo, .conferencia__cabecera h1, .cabecera-pagina h1, .reproductor__titulo { overflow-wrap: break-word; hyphens: auto; }
.migas [aria-current] { max-width: min(40ch, calc(100vw - 2 * var(--margen))); }
.migas li { min-width: 0; }
.cartel { max-width: 100%; }
.tabla-datos { display: block; max-width: 100%; overflow-x: auto; }
.tarjetas { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 900px) { .tarjetas { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.destacada__rejilla > *, .cabecera__capsula > *, .ficha-tecnica dl > div > * { min-width: 0; }
.ficha-tecnica dd, .marca__nombre, .marca__ciclo { overflow-wrap: anywhere; }

/* Título de la conferencia destacada: enlace a su ficha, sin perder el aspecto de titular */
.ficha__titulo a { color: inherit; text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .45s var(--ease); }
.ficha__titulo a:hover, .ficha__titulo a:focus-visible { background-size: 100% 1px; }

/* ---------- Archivo sonoro: espera del reproductor de Internet Archive. La pantalla del portal ocupa el mismo hueco
   que el reproductor (sin saltos); el reproductor aparece cuando ha cargado. Ondas de sonido en la paleta del portal y
   un barrido de luz muy suave; con movimiento reducido, todo queda quieto. */
.escucha { display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; min-height: 60px; margin-top: .4rem; } /* misma altura esperando y listo: sin saltos */
.escucha__aviso, .escucha__marco { grid-area: 1 / 1; }
.escucha__aviso { position: relative; z-index: 1; overflow: hidden; display: flex; align-items: center; gap: 1rem; min-height: 60px; padding: .65rem 1rem; border: 1px solid #ffffff21; border-radius: 3px;
  background: linear-gradient(110deg, var(--noche-2) 0%, #142238 55%, var(--noche-2) 100%); }
.escucha__aviso::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(100deg, transparent 30%, #bfe5e214 50%, transparent 70%) -100% 0 / 60% 100% no-repeat; animation: escucha-barrido 2.6s ease-in-out infinite; }
@keyframes escucha-barrido { to { background-position: 220% 0; } }
.escucha__ondas { display: inline-flex; align-items: center; gap: 3px; height: 26px; flex: none; }
.escucha__ondas i { display: block; width: 3px; height: 100%; border-radius: 2px; background: var(--cian); transform: scaleY(.3); transform-origin: center; animation: escucha-onda 1.1s ease-in-out infinite alternate; }
.escucha__ondas i:nth-child(2) { animation-delay: -.25s; background: var(--acrecion-claro); }
.escucha__ondas i:nth-child(3) { animation-delay: -.5s; }
.escucha__ondas i:nth-child(4) { animation-delay: -.75s; background: var(--acrecion-claro); }
.escucha__ondas i:nth-child(5) { animation-delay: -1s; }
@keyframes escucha-onda { to { transform: scaleY(1); } }
.escucha__texto { margin: 0; font-size: .86rem; line-height: 1.45; color: var(--tiza-2); }
.escucha__texto strong { display: block; font: 600 .95rem/1.35 var(--sans); color: var(--tiza); }
/* Medidas del código de inserción de Internet Archive para audio (barra de 30 px): sin su página blanca alrededor */
.escucha__marco { align-self: center; }
.escucha__marco iframe { display: block; width: min(100%, 500px); height: 30px; border: 0; border-radius: 3px; background: transparent; opacity: 0; transition: opacity .45s var(--ease); }
.escucha:not(.escucha--lista) .escucha__marco { pointer-events: none; }
/* Listo: el reproductor a la vista; el aviso queda solo para lectores de pantalla («Reproductor listo…») */
.escucha--lista .escucha__marco iframe { opacity: 1; }
.escucha--lista .escucha__aviso { position: absolute; width: 1px; height: 1px; min-height: 0; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
/* Fallo o espera excesiva: sin ondas, borde cálido, y las acciones visibles debajo */
.escucha--fallo .escucha__aviso { border-color: #f3c49f66; background: var(--noche-2); }
.escucha--fallo .escucha__aviso::after, .escucha--fallo .escucha__ondas { display: none; }
.escucha__acciones { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1.4rem; margin-top: .7rem; }
.escucha__acciones .boton { min-height: 44px; }
.escucha__acciones[hidden] { display: none; }
.movimiento-reducido .escucha__aviso::after, .movimiento-reducido .escucha__ondas i { animation: none; }
.movimiento-reducido .escucha__ondas i { transform: scaleY(.6); }
.movimiento-reducido .escucha__marco iframe { transition: none; }
@media (prefers-reduced-motion: reduce) { .escucha__aviso::after, .escucha__ondas i { animation: none; } .escucha__ondas i { transform: scaleY(.6); } .escucha__marco iframe { transition: none; } }
@media (forced-colors: active) { .escucha__aviso { border: 1px solid CanvasText; } .escucha__ondas i { background: CanvasText; } }

/* ---------- Reproductor propio del archivo sonoro (sustituye al de archive.org, que no se muestra). Mientras carga, el
   aviso ocupa el hueco ya reservado para el reproductor: al aparecer no se mueve nada. */
.escucha--propio, .escucha:has(.ra) { min-height: 0; }
.escucha:has(.ra):not(.escucha--lista) .ra { visibility: hidden; }
.escucha:has(.ra) .escucha__aviso { align-self: stretch; }
.ra { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: .6rem 1.1rem; padding: .85rem 1rem; border: 1px solid #ffffff21; border-radius: 3px;
  background: linear-gradient(110deg, var(--noche-2) 0%, #142238 60%, var(--noche-2) 100%); }
.ra svg { width: 22px; height: 22px; fill: currentColor; stroke: none; }
.ra__play { position: relative; display: grid; place-items: center; width: 52px; height: 52px; padding: 0; border: 1px solid var(--tiza); border-radius: 50%; background: var(--tiza); color: #111a27; cursor: pointer;
  transition: background .3s, border-color .3s, box-shadow .4s var(--ease), transform .2s; }
.ra__play:hover { transform: scale(1.04); }
.ra__play:disabled { opacity: .45; cursor: default; transform: none; }
.ra--sonando .ra__play { background: var(--acrecion-claro); border-color: var(--acrecion-claro); box-shadow: 0 0 0 6px #f3c49f1f, 0 0 24px -6px #f3c49f88; }
/* Esperando datos durante la escucha: un anillo discreto alrededor del botón */
.ra--cargando .ra__play::after { content: ""; position: absolute; inset: -6px; border: 2px solid transparent; border-top-color: var(--cian); border-radius: 50%; animation: ra-gira 1s linear infinite; }
@keyframes ra-gira { to { transform: rotate(360deg); } }
.ra__cuerpo { min-width: 0; }
.ra__linea { display: flex; align-items: center; gap: .7rem; }
.ra__tiempo { min-width: 3.4em; font: 500 .8rem var(--sans); font-variant-numeric: tabular-nums; color: var(--tiza-2); }
.ra__tiempo--total { text-align: right; color: var(--tiza-3); }
.ra__barra { --avance: 0%; flex: 1; min-width: 0; height: 28px; margin: 0; background: transparent; cursor: pointer; -webkit-appearance: none; appearance: none; }
.ra__barra:disabled { cursor: default; opacity: .5; }
.ra__barra::-webkit-slider-runnable-track { height: 4px; border-radius: 2px; background: linear-gradient(90deg, var(--acrecion-claro) var(--avance), #ffffff2e var(--avance)); }
.ra__barra::-moz-range-track { height: 4px; border-radius: 2px; background: #ffffff2e; }
.ra__barra::-moz-range-progress { height: 4px; border-radius: 2px; background: var(--acrecion-claro); }
.ra__barra::-webkit-slider-thumb { -webkit-appearance: none; width: 16px; height: 16px; margin-top: -6px; border: 2px solid var(--noche); border-radius: 50%; background: var(--tiza); box-shadow: 0 0 0 1px #ffffff55; }
.ra__barra::-moz-range-thumb { width: 14px; height: 14px; border: 2px solid var(--noche); border-radius: 50%; background: var(--tiza); }
.ra__barra:focus-visible { outline: 3px solid var(--cian); outline-offset: 2px; border-radius: 4px; }
.ra__controles { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .5rem; margin-top: .25rem; }
.ra__boton { display: inline-flex; align-items: center; min-height: 40px; padding: 0 .85rem; border: 1px solid #ffffff2e; border-radius: 999px; background: transparent; color: var(--tiza-2);
  font: 600 .78rem var(--sans); font-variant-numeric: tabular-nums; cursor: pointer; transition: border-color .25s, color .25s; }
.ra__boton:hover { border-color: #ffffff66; color: var(--tiza); }
.ra__boton:disabled { opacity: .45; cursor: default; }
.ra__velocidad { min-width: 3.4em; justify-content: center; }
.ra__fuente { display: inline-flex; align-items: center; min-height: 40px; margin-left: auto; font-size: .78rem; color: var(--tiza-3); text-underline-offset: .2em; }
.ra__fuente:hover { color: var(--tiza); }
@media (max-width: 599px) {
  .ra { padding: .8rem; gap: .5rem .8rem; }
  .ra__boton, .ra__fuente { min-height: 44px; }
  .ra__fuente { margin-left: 0; flex-basis: 100%; }
}
.movimiento-reducido .ra__play, .movimiento-reducido .ra__boton { transition: none; }
.movimiento-reducido .ra__play:hover { transform: none; }
.movimiento-reducido .ra--cargando .ra__play::after { animation: none; border-color: var(--cian); border-style: dotted; }
@media (prefers-reduced-motion: reduce) { .ra__play, .ra__boton { transition: none; } .ra__play:hover { transform: none; } .ra--cargando .ra__play::after { animation: none; border-color: var(--cian); border-style: dotted; } }
@media (forced-colors: active) { .ra { border: 1px solid CanvasText; } .ra__play { border: 1px solid ButtonText; } }

/* ---------- Información legal y boletín (F9): lectura cómoda, formulario accesible, enlaces legales en el pie */
.texto-legal { max-width: 46rem; }
.texto-legal__version { margin: 0; font-size: .85rem; color: var(--tiza-3); }
.texto-legal__cuerpo { font-size: 1.02rem; line-height: 1.75; color: var(--tiza-2); }
.texto-legal__cuerpo h2 { margin: 2.2rem 0 .8rem; font: 400 clamp(1.35rem, 2.4vw, 1.7rem)/1.2 var(--serif); letter-spacing: -.02em; color: var(--tiza); }
.texto-legal__cuerpo strong { color: var(--tiza); font-weight: 600; }
.texto-legal__cuerpo a, .texto-legal__preparacion a, .boletin a { color: var(--tiza); text-underline-offset: .2em; }
.texto-legal__cuerpo code { font-size: .9em; color: var(--cian); }
.texto-legal__preparacion { padding: 1.2rem 1.4rem; border: 1px solid #ffffff24; border-radius: 3px; background: var(--noche-2); color: var(--tiza-2); }
.texto-legal__otros { display: flex; flex-wrap: wrap; gap: .4rem 1.4rem; margin-top: 2.5rem; padding-top: 1.2rem; border-top: 1px solid #ffffff22; }
.texto-legal__otros a { display: inline-flex; align-items: center; min-height: 44px; color: var(--tiza-2); }
.boletin { max-width: 40rem; }
.boletin__formulario { display: grid; gap: .8rem; margin-top: 1.6rem; }
.boletin__formulario label { font-weight: 600; font-size: .92rem; }
.boletin__formulario input[type="email"] { min-height: 48px; padding: 0 .9rem; border: 1px solid #ffffff4d; border-radius: 3px; background: var(--noche-2); color: var(--tiza); font: inherit; }
.boletin__formulario input[type="email"][aria-invalid="true"] { border-color: var(--acrecion-claro); }
.boletin__casilla { display: flex; gap: .7rem; align-items: flex-start; font-weight: 400 !important; line-height: 1.5; color: var(--tiza-2); }
.boletin__casilla input { flex: none; width: 22px; height: 22px; margin-top: .1rem; accent-color: var(--acrecion-claro); }
.boletin__info { margin: 0; font-size: .82rem; line-height: 1.55; color: var(--tiza-3); }
.boletin__formulario .boton { justify-self: start; }
.boletin__trampa { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.boletin__error { padding: .8rem 1rem; border-left: 3px solid var(--acrecion-claro); background: #f3c49f12; color: var(--tiza); }
.boletin__resultado { padding: 1.2rem 1.4rem; border: 1px solid #ffffff24; border-radius: 3px; background: var(--noche-2); color: var(--tiza-2); line-height: 1.65; }
.boletin__resultado strong { color: var(--tiza); }
footer.pie .pie__legal { display: flex; flex-wrap: wrap; justify-content: center; gap: .2rem 1.2rem; margin-top: .6rem; }
footer.pie .pie__legal a { display: inline-flex; align-items: center; min-height: 44px; font-size: .85rem; color: var(--tiza-3); text-underline-offset: .2em; }
footer.pie .pie__legal a:hover { color: var(--tiza); }

/* ===== Escucha continua: barra fija con el reproductor mientras se navega (escucha-continua.js) =====
   Encima de la navegación inferior en móvil; el cuerpo reserva su altura para no tapar contenido. */
.escucha-continua { position: fixed; left: 50%; bottom: calc(var(--alto-nav-inferior, 0px) + .75rem); z-index: 46; width: min(44rem, calc(100% - 1.5rem)); transform: translateX(-50%);
  border: 1px solid #ffffff2e; border-radius: 6px; background: rgba(8, 13, 26, .96); box-shadow: 0 18px 40px -12px #000c;
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
.escucha-continua .ra { border: 0; border-radius: 0 0 6px 6px; padding: .55rem .85rem .7rem; }
.escucha-continua .ra__play { width: 44px; height: 44px; }
.escucha-continua__cabeza { display: flex; align-items: center; gap: .75rem; padding: .45rem .5rem 0 .95rem; }
.escucha-continua__titulo { flex: 1; min-width: 0; margin: 0; overflow: hidden; font: 500 .85rem/1.3 var(--sans); color: var(--tiza); white-space: nowrap; text-overflow: ellipsis; }
.escucha-continua__kicker { margin-right: .35rem; font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; color: var(--acrecion-claro); }
.escucha-continua__cerrar { display: grid; place-items: center; flex: none; width: 40px; height: 40px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--tiza-2); cursor: pointer; }
.escucha-continua__cerrar svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; }
.escucha-continua__cerrar:hover { background: #ffffff14; color: var(--tiza); }
.escucha-continua__cerrar:focus-visible { outline: 3px solid var(--cian); outline-offset: 2px; }
html.con-escucha-continua body { padding-bottom: calc(var(--alto-nav-inferior, 0px) + 9.5rem); }
html.ec-cargando main { opacity: .6; transition: opacity .2s .15s; }
@media (prefers-reduced-motion: reduce) { html.ec-cargando main { transition: none; } }
/* Móvil: barra compacta (título, reproducir y posición); los saltos y la velocidad siguen en «Escuchar» */
@media (max-width: 767px) {
  .escucha-continua { bottom: calc(var(--alto-nav-inferior, 0px) + .5rem); width: calc(100% - 1rem); }
  .escucha-continua .ra { padding: .35rem .75rem .55rem; gap: .5rem .8rem; }
  .escucha-continua .ra__controles { display: none; }
  html.con-escucha-continua body { padding-bottom: calc(var(--alto-nav-inferior, 0px) + 7rem); }
}

/* ===== «Lo que dicen de nosotros» (F10): citas breves y atribuidas, sin carrusel ===== */
.aviso-demo { margin: 0 0 2rem; padding: .9rem 1.1rem; border: 1px dashed #f3c49f99; border-radius: 4px; background: #f3c49f12; color: var(--tiza); font-size: .92rem; }
.aviso-demo strong { color: var(--acrecion-claro); }
.menciones-portada { padding: clamp(4rem, 8vw, 7rem) var(--margen); }
.menciones-portada__cabecera { margin-bottom: clamp(1.6rem, 3vw, 2.6rem); }
.menciones-portada__cabecera h2 { margin: .3rem 0 0; font: 400 clamp(2.2rem, 4.6vw, 3.8rem)/1.02 var(--serif); letter-spacing: -.045em; }
.menciones-portada > .enlace-flecha { display: inline-block; margin-top: 2rem; }
.menciones-grupo { margin: 0 0 clamp(3rem, 6vw, 4.5rem); }
.menciones-grupo__titulo { display: flex; align-items: baseline; gap: .7rem; margin: 0 0 1.4rem; padding-top: 1rem; border-top: 1px solid #ffffff25; font: 400 clamp(1.6rem, 3vw, 2.3rem)/1.1 var(--serif); letter-spacing: -.03em; }
.menciones-grupo__titulo span { font: 500 .8rem var(--sans); letter-spacing: .1em; color: var(--tiza-3); }
.menciones-rejilla { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr)); gap: clamp(1rem, 2vw, 1.6rem); }
.mencion { position: relative; display: flex; flex-direction: column; gap: .7rem; padding: clamp(1.3rem, 2.4vw, 1.8rem); border: 1px solid #ffffff1f; border-radius: 4px;
  background: linear-gradient(160deg, #14213a 0%, var(--noche-2) 70%); }
.mencion--testimonio { background: linear-gradient(160deg, #1f1a26 0%, var(--noche-2) 70%); }
.mencion__demo { position: absolute; top: .8rem; right: .8rem; margin: 0; padding: .15rem .5rem; border: 1px dashed #f3c49f99; border-radius: 3px; font: 600 .66rem var(--sans); letter-spacing: .1em; text-transform: uppercase; color: var(--acrecion-claro); }
.mencion__tipo { margin: 0; font: 500 .7rem var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--cian); }
.mencion--testimonio .mencion__tipo { color: var(--acrecion-claro); }
.mencion__titulo { margin: 0; font: 400 1.2rem/1.25 var(--serif); letter-spacing: -.015em; }
.mencion__cita { margin: 0; padding-left: 1rem; border-left: 2px solid #ffffff2e; }
.mencion__cita p { margin: 0; font: italic 400 1.05rem/1.5 var(--serif); color: var(--tiza); }
.mencion__cita p::before { content: "«"; } .mencion__cita p::after { content: "»"; }
.mencion__fuente { margin: auto 0 0; font-size: .85rem; color: var(--tiza-3); }
.mencion__medio { font-weight: 600; color: var(--tiza-2); }
.mencion__enlace { align-self: flex-start; font-size: .88rem; }
.pagina-menciones .mencion__tipo { display: none; }
.menciones-rejilla--portada { grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); }
.menciones-portada .visualmente-oculto { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.mencion__demo { position: static; align-self: flex-start; }

/* ===== Aplicación instalable: «Instalar la aplicación» y «Sin conexión» ===== */
.cabecera-instalar { display: flex; align-items: center; gap: clamp(1rem, 3vw, 2rem); }
.cabecera-instalar__icono { flex: none; width: clamp(72px, 12vw, 96px); height: auto; border-radius: 22%; box-shadow: 0 18px 40px -16px #000c; }
.instalar-pasos { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); gap: clamp(1rem, 2vw, 1.6rem); margin: 0 0 2rem; }
.instalar-plataforma { padding: clamp(1.2rem, 2.4vw, 1.8rem); border: 1px solid #ffffff1f; border-radius: 4px; background: linear-gradient(160deg, #14213a 0%, var(--noche-2) 70%); }
.instalar-plataforma h2 { margin: 0 0 .8rem; font: 400 1.4rem/1.2 var(--serif); }
.instalar-plataforma ol { margin: 0; padding-left: 1.2rem; display: grid; gap: .55rem; line-height: 1.5; }
.instalar-directo, .aviso-instalada { margin: 0 0 2rem; padding: 1.1rem 1.3rem; border: 1px solid #a8f1fb55; border-radius: 4px; background: #a8f1fb0f; }
.instalar-directo h2 { margin: 0 0 .8rem; font: 400 1.3rem var(--serif); }
.enlace-boton { padding: 0; border: 0; background: none; color: inherit; font: inherit; text-decoration: underline; text-underline-offset: .2em; cursor: pointer; min-height: 44px; }

/* ===== Perfil del ponente: fotografía con crédito y biografía breve ===== */
.retrato { float: left; margin: .4rem 1.4rem .6rem 0; width: 160px; }
.retrato img { display: block; width: 160px; height: auto; border-radius: 4px; border: 1px solid #ffffff1f; }
.retrato figcaption { margin-top: .35rem; font-size: .75rem; color: var(--tiza-3); }
.ponente-bio { max-width: 42rem; color: var(--tiza-2); line-height: 1.6; }
.ponente-bio p { margin: 0 0 .8rem; }
.cabecera-pagina--ponente::after { content: ""; display: block; clear: both; }
@media (max-width: 520px) { .retrato { float: none; margin: .4rem 0 1rem; } }
a.idioma { cursor: pointer; color: inherit; text-decoration: none; display: inline-grid; place-items: center; }
