/* ==========================================================================
   Ciclo Lucas Lara · Somos Cosmos — hoja única del portal
   Capas: reset → tokens → base → layout → componentes → secciones → utilidades
   ========================================================================== */
@layer reset, tokens, base, layout, componentes, secciones, utilidades;

/* ── Reset ─────────────────────────────────────────────────────────────── */
@layer reset {
  *, *::before, *::after { box-sizing: border-box; }
  html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
  body, h1, h2, h3, h4, p, figure, blockquote, dl, dd, ul, ol { margin: 0; }
  ul[class], ol[class], nav ul { list-style: none; padding: 0; }
  img, picture, video, svg { display: block; max-width: 100%; }
  img { height: auto; }
  input, button, textarea, select { font: inherit; color: inherit; }
  button { cursor: pointer; }
  [hidden] { display: none !important; }
}

/* ── Tokens del sistema de diseño ──────────────────────────────────────── */
@layer tokens {
  /* Tipografías propias (SIL Open Font License, en recursos/fuentes/): Fraunces para titulares
     y citas, Inter para texto e interfaz. Variables: un archivo cubre todos los pesos. */
  @font-face { font-family: "Fraunces"; src: url("fuentes/fraunces-latin-wght-normal.woff2") format("woff2"); font-weight: 100 900; font-style: normal; font-display: swap; }
  @font-face { font-family: "Fraunces"; src: url("fuentes/fraunces-latin-wght-italic.woff2") format("woff2"); font-weight: 100 900; font-style: italic; font-display: swap; }
  @font-face { font-family: "Inter"; src: url("fuentes/inter-latin-wght-normal.woff2") format("woff2"); font-weight: 100 900; font-style: normal; font-display: swap; }
  :root {
    /* Color: noche cósmica, tiza y el naranja del disco de acreción (identidad Somos Cosmos) */
    --noche: #070b18;
    --noche-1: #0b1122;
    --noche-2: #111a31;
    --noche-3: #1a2442;
    --tiza: #f4efe4;
    --tiza-2: #c5cad5;
    --tiza-3: #959db0;
    --acrecion: #f4bb8f;
    --acrecion-vivo: #ff8c42;
    --cian: #8fe3f0;
    --exito: #8fdcb0;
    --error: #ff9a8f;
    --linea: rgb(244 239 228 / .12);
    --linea-2: rgb(244 239 228 / .24);
    --cristal: rgb(11 17 34 / .72);

    /* Tipografía */
    --serif: "Fraunces", "Iowan Old Style", "Sitka Heading", "Palatino Linotype", Georgia, serif;
    --sans: "Inter", "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
    --t-antetitulo: .72rem;
    --t-pequeno: .875rem;
    --t-base: 1rem;
    --t-medio: clamp(1.06rem, 1rem + .25vw, 1.2rem);
    --t-3: clamp(1.25rem, 1.1rem + .6vw, 1.6rem);
    --t-2: clamp(1.75rem, 1.3rem + 1.8vw, 2.9rem);
    --t-1: clamp(2.2rem, 1.5rem + 2.9vw, 4.1rem);
    --t-hero: clamp(2.9rem, 1.6rem + 4.6vw, 6.1rem);

    /* Espacio (escala 4 px) y ritmo de secciones */
    --e-1: .25rem; --e-2: .5rem; --e-3: .75rem; --e-4: 1rem; --e-5: 1.5rem;
    --e-6: 2rem; --e-7: 3rem; --e-8: 4.5rem; --e-9: 7rem;
    --seccion: clamp(4.5rem, 3rem + 6vw, 9rem);
    --margen: clamp(1.1rem, 4.5vw, 4.5rem);
    --ancho: 1440px;

    /* Forma y movimiento */
    --radio: 4px;
    --radio-2: 10px;
    --ease: cubic-bezier(.22, .8, .2, 1);
    --rapido: .18s;
    --medio: .45s;
    --sombra: 0 18px 50px -22px rgb(0 0 0 / .8);
    --alto-cabecera: 5.25rem;
    --alto-nav-inferior: 0px;
  }
  @media (max-width: 899px) {
    :root { --alto-cabecera: 3.75rem; --alto-nav-inferior: calc(4.1rem + env(safe-area-inset-bottom)); }
  }
}

/* ── Base ──────────────────────────────────────────────────────────────── */
@layer base {
  @view-transition { navigation: auto; }
  html { background: var(--noche); color-scheme: dark; scroll-padding-top: calc(var(--alto-cabecera) + 1rem); }
  @media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
  body {
    min-height: 100svh; background: var(--noche); color: var(--tiza);
    font: 400 var(--t-base)/1.65 var(--sans); font-feature-settings: "kern", "liga";
    -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
    padding-bottom: var(--alto-nav-inferior);
  }
  body::before { /* polvo de estrellas muy sutil, sin imágenes */
    content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none; opacity: .5;
    background:
      radial-gradient(1px 1px at 12% 22%, #fff8 50%, transparent 51%),
      radial-gradient(1px 1px at 68% 14%, #fff6 50%, transparent 51%),
      radial-gradient(1px 1px at 84% 62%, #fff5 50%, transparent 51%),
      radial-gradient(1px 1px at 32% 78%, #fff6 50%, transparent 51%),
      radial-gradient(1.4px 1.4px at 52% 44%, #fff4 50%, transparent 51%),
      radial-gradient(120vmax 80vmax at 80% -10%, #16224a55, transparent 60%);
    background-size: 340px 340px, 420px 420px, 380px 380px, 460px 460px, 520px 520px, 100% 100%;
  }
  h1, h2, h3, h4 { font-family: var(--serif); font-weight: 400; line-height: 1.08; letter-spacing: -.015em; text-wrap: balance; }
  p { text-wrap: pretty; }
  a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .22em; }
  a:hover { color: var(--acrecion); }
  em { font-family: var(--serif); font-style: italic; }
  ::selection { background: var(--acrecion); color: var(--noche); }
  :focus-visible { outline: 2px solid var(--acrecion); outline-offset: 3px; border-radius: 2px; }
  #contenido:focus { outline: none; }
  .icono { width: 1.15em; height: 1.15em; flex: none; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
}

/* ── Layout ────────────────────────────────────────────────────────────── */
@layer layout {
  .envoltura { width: 100%; max-width: calc(var(--ancho) + 2 * var(--margen)); margin-inline: auto; padding-inline: var(--margen); }
  .seccion { padding-block: var(--seccion); position: relative; }
  .seccion + .seccion { border-top: 1px solid var(--linea); }
  .seccion__cabecera { display: flex; flex-wrap: wrap; gap: var(--e-4) var(--e-6); align-items: end; justify-content: space-between; margin-bottom: var(--e-7); }
  .pagina-cabecera { padding-top: calc(var(--alto-cabecera) + clamp(2.5rem, 6vw, 6rem)); padding-bottom: clamp(2rem, 4vw, 3.5rem); border-bottom: 1px solid var(--linea); }
  .pagina-cabecera .titulo-1 { max-width: 18ch; margin-top: var(--e-4); }
  .pagina-cabecera .texto-amplio { margin-top: var(--e-5); max-width: 60ch; }
  .rejilla { display: grid; gap: clamp(1.25rem, 2.2vw, 2.25rem) clamp(1rem, 1.8vw, 1.75rem); grid-template-columns: repeat(auto-fill, minmax(min(100%, 17.5rem), 1fr)); }
  .rejilla--carteles { grid-template-columns: repeat(auto-fill, minmax(min(46%, 12.5rem), 1fr)); }
}

/* ── Componentes ───────────────────────────────────────────────────────── */
@layer componentes {
  /* Tipografía de sistema */
  .antetitulo { font: 600 var(--t-antetitulo)/1.4 var(--sans); letter-spacing: .19em; text-transform: uppercase; color: var(--tiza-2); }
  .antetitulo--acento { color: var(--acrecion); }
  .titulo-1 { font-size: var(--t-1); }
  .titulo-2 { font-size: var(--t-2); line-height: 1.12; }
  .titulo-3 { font-size: var(--t-3); line-height: 1.2; }
  .titulo-1 em, .titulo-2 em { color: var(--acrecion); }
  .texto-amplio { font-size: var(--t-medio); color: var(--tiza-2); line-height: 1.7; }
  .antetitulo + .titulo-1, .antetitulo + .titulo-2 { margin-top: var(--e-4); }
  .titulo-2 + p, .titulo-1 + p { margin-top: var(--e-5); }

  /* Botones */
  .boton {
    display: inline-flex; align-items: center; justify-content: center; gap: .7rem; min-height: 3rem; padding: 0 1.35rem;
    border: 1px solid transparent; border-radius: var(--radio); font: 600 .86rem/1 var(--sans); letter-spacing: .01em; text-decoration: none;
    background: none; transition: transform var(--rapido) var(--ease), background var(--rapido), border-color var(--rapido), color var(--rapido);
  }
  .boton .icono { width: 1.05rem; height: 1.05rem; transition: transform var(--rapido) var(--ease); }
  .boton:hover .icono:last-child { transform: translateX(3px); }
  .boton:active { transform: scale(.98); }
  .boton--claro { background: var(--tiza); color: var(--noche); }
  .boton--claro:hover { background: #fff; color: var(--noche); }
  .boton--borde { border-color: var(--linea-2); color: var(--tiza); }
  .boton--borde:hover { border-color: var(--acrecion); color: var(--tiza); }
  .boton--cristal { border-color: var(--linea-2); background: rgb(7 11 24 / .35); backdrop-filter: blur(8px); color: var(--tiza); }
  .boton--cristal:hover { border-color: var(--tiza); color: var(--tiza); }
  .boton--chico { min-height: 2.5rem; padding: 0 1rem; font-size: .8rem; }
  .boton[disabled] { opacity: .6; cursor: progress; }
  .boton-icono { display: inline-grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: 50%; border: 1px solid var(--linea); background: none; color: var(--tiza); transition: border-color var(--rapido), background var(--rapido); }
  .boton-icono:hover { border-color: var(--linea-2); background: rgb(255 255 255 / .05); color: var(--tiza); }
  .boton-icono[aria-current] { border-color: var(--acrecion); }
  .enlace-flecha { display: inline-flex; align-items: center; gap: .55rem; font-weight: 600; font-size: .9rem; text-decoration: none; padding-block: .6rem; border-bottom: 1px solid var(--acrecion); }
  .enlace-flecha .icono { transition: transform var(--rapido) var(--ease); }
  .enlace-flecha:hover .icono { transform: translateX(4px); }
  .acciones { display: flex; flex-wrap: wrap; gap: var(--e-3); margin-top: var(--e-6); }

  /* Marca */
  .marca { display: inline-flex; flex-direction: column; text-decoration: none; line-height: 1; }
  .marca__antetitulo { font: 600 .56rem/1 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--tiza-2); }
  .marca__nombre { font: 400 1.7rem/1 var(--serif); letter-spacing: -.01em; margin-top: .28rem; }
  .marca:hover { color: var(--tiza); }
  .marca--grande .marca__nombre { font-size: 2.3rem; }
  /* Marca animada del pie (portada) */
  .marca--animada { position: relative; isolation: isolate; padding: 1.6rem 1.4rem 1.5rem 0; }
  .marca--animada .marca__nombre { font-size: clamp(2.6rem, 2rem + 2vw, 3.6rem); position: relative; z-index: 1; white-space: nowrap; }
  /* Destello: copia del nombre encima, transparente salvo una franja de luz que la recorre */
  .marca--animada .marca__nombre::after {
    content: attr(data-texto); position: absolute; inset: 0; pointer-events: none; color: transparent; -webkit-background-clip: text; background-clip: text;
    background-image: linear-gradient(105deg, transparent 40%, #fff6e6 46%, var(--acrecion) 50%, #fff6e6 54%, transparent 60%); background-size: 300% 100%; background-position: 100% 0;
  }
  .marca--animada .marca__antetitulo { position: relative; z-index: 1; }
  .marca__letra { display: inline-block; }
  .marca__orbita { position: absolute; left: -6%; top: 0; width: 112%; height: 100%; overflow: visible; pointer-events: none; }
  .marca__orbita--detras { z-index: 0; }
  .marca__orbita--delante { z-index: 2; }
  .marca__trazo { fill: none; stroke: rgb(244 220 190 / .3); stroke-width: .8; stroke-dasharray: 1; stroke-dashoffset: 0; }
  .marca__orbita circle { filter: drop-shadow(0 0 4px rgb(255 140 66 / .9)); }
  .con-js .marca--animada .marca__antetitulo { opacity: 0; letter-spacing: .5em; }
  .con-js .marca--animada .marca__letra { opacity: 0; transform: translateY(.45em) rotate(4deg); filter: blur(6px); }
  .con-js .marca--animada .marca__trazo { stroke-dashoffset: 1; }
  .con-js .marca--animada .marca__orbita circle { opacity: 0; }
  .con-js .marca--animada.es-visible .marca__antetitulo { opacity: 1; letter-spacing: .2em; transition: opacity 1.2s var(--ease), letter-spacing 1.6s var(--ease); }
  .con-js .marca--animada.es-visible .marca__letra { opacity: 1; transform: none; filter: none; transition: opacity .8s var(--ease), transform 1s var(--ease), filter .9s var(--ease); transition-delay: calc(.25s + var(--i) * .07s); }
  .con-js .marca--animada.es-visible .marca__trazo { stroke-dashoffset: 0; transition: stroke-dashoffset 2.2s var(--ease) .6s; }
  .con-js .marca--animada.es-visible .marca__orbita circle { opacity: 1; transition: opacity .8s 1.6s; }
  .marca--animada.es-visible .marca__nombre::after { animation: marca-destello 9s ease-in-out 1.6s infinite; }
  .marca--animada:hover .marca__trazo { stroke: rgb(244 187 143 / .6); }
  @keyframes marca-destello { 0% { background-position: 100% 0; } 22%, 100% { background-position: 0 0; } }
  @media (prefers-reduced-motion: reduce) { .marca--animada .marca__nombre::after { animation: none !important; } }
  .movimiento-reducido .marca--animada .marca__nombre::after { animation: none; }
  /* Marca de la cabecera: versión sutil. Entrada letra a letra solo la primera vez en la visita
     (html.marca-entrada: al llegar desde fuera del sitio), órbita al pasar el ratón o con foco, y un destello cada 24 s. */
  .marca--viva { position: relative; isolation: isolate; padding: .4rem .7rem .4rem 0; }
  .marca--viva .marca__antetitulo, .marca--viva .marca__nombre { position: relative; z-index: 1; white-space: nowrap; }
  .marca--viva .marca__nombre::after {
    content: attr(data-texto); position: absolute; inset: 0; pointer-events: none; color: transparent; -webkit-background-clip: text; background-clip: text;
    background-image: linear-gradient(105deg, transparent 40%, #fff6e6 46%, var(--acrecion) 50%, #fff6e6 54%, transparent 60%); background-size: 300% 100%; background-position: 100% 0;
    animation: marca-destello-raro 24s ease-in-out 5s infinite;
  }
  .marca--viva .marca__orbita { left: -10%; width: 120%; }
  .marca--viva .marca__trazo { stroke-dashoffset: 1; transition: stroke-dashoffset .9s var(--ease); }
  .marca--viva .marca__orbita circle { opacity: 0; r: 8px; transition: opacity .5s var(--ease); }
  .marca--viva:hover .marca__trazo, .marca--viva:focus-visible .marca__trazo { stroke-dashoffset: 0; }
  .marca--viva:hover .marca__orbita circle, .marca--viva:focus-visible .marca__orbita circle { opacity: 1; transition-delay: .3s; }
  .marca-entrada .marca--viva .marca__antetitulo { animation: marca-ante 1.4s var(--ease) both; }
  .marca-entrada .marca--viva .marca__letra { animation: marca-letra 1s var(--ease) both; animation-delay: calc(.15s + var(--i) * .06s); }
  @keyframes marca-letra { from { opacity: 0; transform: translateY(.45em) rotate(4deg); filter: blur(6px); } }
  @keyframes marca-ante { from { opacity: 0; letter-spacing: .5em; } }
  @keyframes marca-destello-raro { 0% { background-position: 100% 0; } 6%, 100% { background-position: 0 0; } }
  @media (prefers-reduced-motion: reduce) { .marca--viva .marca__nombre::after { animation: none !important; } }
  .movimiento-reducido .marca--viva .marca__nombre::after, .movimiento-reducido .marca--viva .marca__letra, .movimiento-reducido .marca--viva .marca__antetitulo { animation: none; }

  /* Saltar al contenido */
  .saltar { position: fixed; left: 1rem; top: -4rem; z-index: 100; padding: .8rem 1.1rem; background: var(--tiza); color: var(--noche); border-radius: var(--radio); font-weight: 600; }
  .saltar:focus { top: 1rem; }

  /* Cabecera */
  .cabecera { position: fixed; inset: 0 0 auto; z-index: 40; height: var(--alto-cabecera); transition: background var(--medio), border-color var(--medio), transform var(--medio) var(--ease); border-bottom: 1px solid var(--linea); background: rgb(7 11 24 / .82); backdrop-filter: saturate(140%) blur(14px); -webkit-backdrop-filter: saturate(140%) blur(14px); }
  .cabecera--sobre:not(.cabecera--solida) { background: transparent; border-color: transparent; backdrop-filter: none; -webkit-backdrop-filter: none; }
  .cabecera__fila { display: flex; align-items: center; justify-content: space-between; gap: var(--e-6); height: 100%; }
  .nav-principal ul { display: flex; gap: clamp(1rem, 2vw, 2.1rem); }
  .nav-principal a { position: relative; display: block; padding: .9rem 0; font-size: .84rem; font-weight: 500; text-decoration: none; color: var(--tiza-2); transition: color var(--rapido); }
  .nav-principal a::after { content: ""; position: absolute; left: 0; right: 0; bottom: .45rem; height: 1px; background: var(--acrecion); transform: scaleX(0); transform-origin: left; transition: transform var(--medio) var(--ease); }
  .nav-principal a:hover, .nav-principal a[aria-current] { color: var(--tiza); }
  .nav-principal a:hover::after, .nav-principal a[aria-current]::after { transform: scaleX(1); }
  .cabecera__acciones { display: flex; align-items: center; gap: var(--e-3); }

  /* Navegación inferior (móvil) y hoja «Más» */
  .nav-inferior { display: none; }
  @media (max-width: 899px) {
    .nav-principal, .cabecera__participa { display: none; }
    .marca__nombre { font-size: 1.35rem; }
    .marca__antetitulo { font-size: .5rem; }
    .nav-inferior {
      position: fixed; inset: auto 0 0; z-index: 45; display: grid; grid-template-columns: repeat(5, 1fr);
      padding: .35rem .4rem calc(.35rem + env(safe-area-inset-bottom)); background: rgb(9 13 28 / .9);
      backdrop-filter: saturate(150%) blur(16px); -webkit-backdrop-filter: saturate(150%) blur(16px); border-top: 1px solid var(--linea);
    }
    .nav-inferior a, .nav-inferior button {
      display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .2rem; min-height: 3.35rem;
      border: 0; background: none; border-radius: var(--radio-2); color: var(--tiza-3); font-size: .66rem; font-weight: 600; text-decoration: none; -webkit-tap-highlight-color: transparent;
      transition: color var(--rapido), background var(--rapido);
    }
    .nav-inferior .icono { width: 1.45rem; height: 1.45rem; }
    .nav-inferior [aria-current], .nav-inferior [aria-expanded="true"] { color: var(--tiza); }
    .nav-inferior [aria-current] .icono { stroke: var(--acrecion); }
    .nav-inferior a:active, .nav-inferior button:active { background: rgb(255 255 255 / .06); }
  }
  .hoja { position: fixed; inset: 0; z-index: 60; }
  .hoja__fondo { position: absolute; inset: 0; background: rgb(3 5 12 / .6); animation: aparecer var(--medio) var(--ease); }
  .hoja__panel {
    position: absolute; inset: auto 0 0; padding: .7rem var(--margen) calc(1.2rem + env(safe-area-inset-bottom));
    background: var(--noche-1); border-top: 1px solid var(--linea-2); border-radius: 18px 18px 0 0; animation: subir var(--medio) var(--ease);
  }
  .hoja__asa { display: block; width: 2.6rem; height: 4px; margin: 0 auto 1rem; border-radius: 4px; background: var(--linea-2); }
  .hoja__lista a { display: flex; align-items: center; gap: 1rem; min-height: 3.4rem; padding-inline: .3rem; border-bottom: 1px solid var(--linea); font: 400 1.2rem/1.2 var(--serif); text-decoration: none; }
  .hoja__lista a[aria-current] { color: var(--acrecion); }
  .hoja__lista .icono { width: 1.3rem; height: 1.3rem; color: var(--tiza-3); }
  .hoja__cerrar { width: 100%; margin-top: 1rem; }

  /* Tarjetas de conferencia */
  .tarjeta { --matiz: 220; position: relative; }
  .tarjeta__enlace { display: flex; flex-direction: column; height: 100%; text-decoration: none; color: inherit; }
  .tarjeta__enlace:hover { color: inherit; }
  .tarjeta__medio { position: relative; overflow: hidden; aspect-ratio: 16 / 9; border-radius: var(--radio); background: hsl(var(--matiz) 35% 14%); box-shadow: inset 0 0 0 1px var(--linea); }
  .tarjeta--cartel .tarjeta__medio, .tarjeta__medio:has(img[data-vertical]) { aspect-ratio: 400 / 566; }
  .tarjeta__medio img { width: 100%; height: 100%; object-fit: cover; transition: transform .9s var(--ease), filter var(--medio); }
  .tarjeta__enlace:hover .tarjeta__medio img { transform: scale(1.04); }
  .tarjeta__medio::after { content: ""; position: absolute; inset: 0; border-radius: inherit; box-shadow: inset 0 0 0 1px rgb(255 255 255 / .06); pointer-events: none; }
  .tarjeta__tipo {
    position: absolute; left: .6rem; bottom: .6rem; display: inline-flex; align-items: center; gap: .35rem; padding: .32rem .55rem;
    border-radius: 3px; background: rgb(7 11 24 / .78); backdrop-filter: blur(6px); font-size: .68rem; font-weight: 600; letter-spacing: .04em;
  }
  .tarjeta--futura .tarjeta__tipo { background: var(--acrecion); color: var(--noche); }
  .tarjeta__cuerpo { padding-top: 1rem; }
  .tarjeta__meta { display: flex; flex-wrap: wrap; gap: .25rem .8rem; font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; color: var(--tiza-3); }
  .tarjeta__tema { color: hsl(var(--matiz) 70% 78%); }
  .tarjeta__titulo { margin-top: .45rem; font-size: 1.22rem; line-height: 1.22; transition: color var(--rapido); }
  .tarjeta__enlace:hover .tarjeta__titulo { color: var(--acrecion); }
  .tarjeta__ponente { margin-top: .4rem; font-size: .88rem; color: var(--tiza-2); }
  .tarjeta--fila .tarjeta__enlace { display: grid; grid-template-columns: 1fr; padding: 1.1rem 0; border-bottom: 1px solid var(--linea); }
  .tarjeta--fila .tarjeta__cuerpo { padding: 0; }
  .tarjeta--fila .tarjeta__titulo { font-size: 1.12rem; }

  /* Placa tipográfica para audios sin imagen */
  .placa { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; padding: 1rem; background: radial-gradient(120% 90% at 85% 0%, hsl(var(--matiz) 55% 30% / .9), transparent 60%), linear-gradient(160deg, var(--noche-3), var(--noche-1)); }
  .placa__titulo { font: italic 400 1.25rem/1.15 var(--serif); max-width: 85%; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; margin-bottom: 1.6rem; }
  .placa__onda { position: absolute; top: 1rem; right: 1rem; width: 3.2rem; height: 1.4rem; background: repeating-linear-gradient(90deg, var(--acrecion) 0 2px, transparent 2px 6px); -webkit-mask: linear-gradient(0deg, #000 0 20%, transparent 0) 0 100% / 100% 100%, radial-gradient(closest-side, #000, transparent); mask: radial-gradient(ellipse at center, #000 30%, transparent 75%); opacity: .7; }

  /* Personas */
  .rejilla-personas { display: grid; gap: 1px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr)); background: var(--linea); border: 1px solid var(--linea); border-radius: var(--radio); overflow: hidden; }
  .persona { background: var(--noche); }
  .persona__enlace { display: flex; gap: 1rem; align-items: center; height: 100%; padding: 1.25rem; text-decoration: none; transition: background var(--rapido); }
  .persona__enlace:hover { background: var(--noche-1); color: inherit; }
  .persona__monograma { --matiz: 220; flex: none; display: grid; place-items: center; width: 3.1rem; height: 3.1rem; border-radius: 50%; font: 400 1.1rem/1 var(--serif); letter-spacing: .02em; background: radial-gradient(circle at 30% 25%, hsl(var(--matiz) 45% 38%), hsl(var(--matiz) 40% 14%)); box-shadow: inset 0 0 0 1px rgb(255 255 255 / .14); }
  .persona__texto { display: flex; flex-direction: column; min-width: 0; }
  .persona__nombre { font: 400 1.12rem/1.2 var(--serif); }
  .persona__enlace:hover .persona__nombre { color: var(--acrecion); }
  .persona__filiacion { font-size: .8rem; color: var(--tiza-2); margin-top: .2rem; line-height: 1.35; }
  .persona__cuenta { font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; color: var(--tiza-3); margin-top: .35rem; }

  /* Datos clave */
  .datos { display: grid; gap: .9rem; margin-top: var(--e-6); padding-top: var(--e-5); border-top: 1px solid var(--linea); }
  .datos div { display: grid; grid-template-columns: 8.5rem 1fr; gap: 1rem; align-items: baseline; }
  .datos dt { display: flex; gap: .5rem; align-items: center; font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--tiza-3); }
  .datos dd { color: var(--tiza); }

  /* Chips y filtros */
  .chips { display: flex; flex-wrap: wrap; gap: .5rem; }
  .chip {
    --matiz: 220; display: inline-flex; align-items: center; gap: .45rem; min-height: 2.5rem; padding: 0 1rem; border: 1px solid var(--linea-2);
    border-radius: 999px; background: none; font-size: .84rem; text-decoration: none; color: var(--tiza-2); white-space: nowrap; transition: all var(--rapido);
  }
  .chip::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: hsl(var(--matiz) 75% 72%); }
  .chip--sin-punto::before { display: none; }
  .chip:hover { border-color: var(--tiza-2); color: var(--tiza); }
  .chip[aria-pressed="true"], .chip[aria-current] { background: var(--tiza); border-color: var(--tiza); color: var(--noche); }
  .chip small { font-size: .72rem; opacity: .7; }
  .filtros { position: sticky; top: var(--alto-cabecera); z-index: 20; padding-block: 1rem .8rem; background: rgb(7 11 24 / .9); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-bottom: 1px solid var(--linea); }
  @media (max-width: 899px) { .filtros { position: static; } }
  .filtros__fila { display: flex; flex-wrap: wrap; gap: .75rem 1rem; align-items: center; }
  .filtros .chips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; mask: linear-gradient(90deg, #000 92%, transparent); }
  .filtros .chips::-webkit-scrollbar { display: none; }
  .filtros__resumen { margin-top: .9rem; font-size: .82rem; color: var(--tiza-3); }
  .campo-busqueda { position: relative; flex: 1 1 16rem; max-width: 26rem; }
  .campo-busqueda .icono { position: absolute; left: .95rem; top: 50%; translate: 0 -50%; color: var(--tiza-3); pointer-events: none; }
  .campo-busqueda input { width: 100%; min-height: 2.75rem; padding: 0 1rem 0 2.7rem; border: 1px solid var(--linea-2); border-radius: 999px; background: var(--noche-1); }
  .selector { min-height: 2.75rem; padding: 0 2.2rem 0 1rem; border: 1px solid var(--linea-2); border-radius: 999px; background: var(--noche-1) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c5cad5' stroke-width='1.6'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E") right .7rem center / 1rem no-repeat; appearance: none; }
  .vacio { padding: 3rem 0; text-align: center; color: var(--tiza-2); }
  .vacio .titulo-3 { color: var(--tiza); margin-bottom: .5rem; }

  /* Carrusel horizontal */
  .carrusel__pista { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(16.5rem, 22rem); gap: 1.5rem; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--margen); padding-bottom: 1rem; scrollbar-width: none; }
  .carrusel__pista::-webkit-scrollbar { display: none; }
  .carrusel__pista > * { scroll-snap-align: start; }
  .carrusel__controles { display: flex; gap: .6rem; justify-content: flex-end; margin-top: 1rem; }
  @media (max-width: 640px) { .carrusel__pista { grid-auto-columns: 82%; gap: 1rem; } .carrusel__controles { display: none; } }

  /* Reproductor de audio */
  .reproductor { margin-top: .9rem; }
  .reproductor audio { width: 100%; height: 2.6rem; }
  .con-js .reproductor[data-listo] audio { display: none; }
  .reproductor__ui { display: grid; grid-template-columns: auto 1fr; gap: 1rem; align-items: center; padding: .85rem 1rem; border: 1px solid var(--linea); border-radius: var(--radio-2); background: linear-gradient(100deg, var(--noche-1), var(--noche-2)); }
  .reproductor__play { display: grid; place-items: center; width: 3.1rem; height: 3.1rem; border: 0; border-radius: 50%; background: var(--tiza); color: var(--noche); transition: transform var(--rapido) var(--ease), background var(--rapido); }
  .reproductor__play:hover { background: #fff; transform: scale(1.05); }
  .reproductor__play .icono { width: 1.25rem; height: 1.25rem; }
  .reproductor__play .icono--pausa, [data-sonando] .reproductor__play .icono--play { display: none; }
  [data-sonando] .reproductor__play .icono--pausa { display: block; }
  .reproductor__tiempos { display: flex; justify-content: space-between; gap: 1rem; font-size: .74rem; font-variant-numeric: tabular-nums; color: var(--tiza-2); }
  .reproductor__estado { color: var(--acrecion); }
  .reproductor__barra { --p: 0%; width: 100%; height: 1.4rem; margin: .1rem 0; background: none; appearance: none; cursor: pointer; }
  .reproductor__barra::-webkit-slider-runnable-track { height: 3px; border-radius: 3px; background: linear-gradient(90deg, var(--acrecion) var(--p), var(--linea-2) var(--p)); }
  .reproductor__barra::-moz-range-track { height: 3px; border-radius: 3px; background: linear-gradient(90deg, var(--acrecion) var(--p), var(--linea-2) var(--p)); }
  .reproductor__barra::-webkit-slider-thumb { appearance: none; width: 14px; height: 14px; margin-top: -5.5px; border-radius: 50%; background: var(--tiza); border: 0; }
  .reproductor__barra::-moz-range-thumb { width: 14px; height: 14px; border-radius: 50%; background: var(--tiza); border: 0; }
  .reproductor__controles { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; }
  .reproductor__controles button { min-width: 3.2rem; min-height: 2.2rem; padding: 0 .65rem; border: 1px solid var(--linea-2); border-radius: 999px; background: none; font-size: .74rem; font-weight: 600; font-variant-numeric: tabular-nums; }
  .reproductor__controles button:hover { border-color: var(--tiza-2); }
  .reproductor--compacto:not([data-activo]) .reproductor__ui { display: flex; padding: 0; border: 0; background: none; gap: .8rem; }
  .reproductor--compacto:not([data-activo]) .reproductor__pista { display: none; }
  .reproductor--compacto:not([data-activo]) .reproductor__play { width: 2.6rem; height: 2.6rem; }
  .reproductor--compacto[data-activo] .reproductor__invitacion { display: none; }
  .reproductor__invitacion { align-self: center; font-size: .82rem; font-weight: 600; color: var(--tiza-2); }
  .reproductor--compacto[data-activo] .reproductor__ui { animation: aparecer var(--medio) var(--ease); }
  .reproductor__fuente { margin-left: auto; display: inline-flex; gap: .25rem; align-items: center; font-size: .74rem; color: var(--tiza-3); }

  /* Reproductor de vídeo diferido (YouTube sin cookies, al pulsar) */
  .video-diferido { position: relative; aspect-ratio: 16 / 9; overflow: hidden; border-radius: var(--radio-2); background: #000; box-shadow: var(--sombra), inset 0 0 0 1px var(--linea); }
  .video-diferido img, .video-diferido picture, .video-diferido iframe { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border: 0; }
  .video-diferido__boton { position: absolute; inset: 0; display: grid; place-items: center; align-content: center; gap: .9rem; border: 0; background: radial-gradient(circle, rgb(7 11 24 / .15), rgb(7 11 24 / .55)); font-size: .86rem; font-weight: 600; }
  .video-diferido__boton span:first-child { display: grid; place-items: center; width: 5rem; height: 5rem; border-radius: 50%; background: rgb(244 239 228 / .95); color: var(--noche); box-shadow: 0 10px 40px rgb(0 0 0 / .5); transition: transform var(--medio) var(--ease); }
  .video-diferido__boton .icono { width: 1.8rem; height: 1.8rem; margin-left: 4px; }
  .video-diferido__boton:hover span:first-child { transform: scale(1.07); }
  @media (max-width: 640px) { .video-diferido__boton span:first-child { width: 3.8rem; height: 3.8rem; } .video-diferido__boton span:last-child { display: none; } .video-diferido__boton { background: rgb(7 11 24 / .35); } }
  .video-diferido__nota { margin-top: .7rem; font-size: .76rem; color: var(--tiza-3); }

  /* Cuenta atrás */
  .cuenta { display: inline-flex; align-items: center; gap: .55rem; margin-top: var(--e-4); padding: .45rem .85rem; border: 1px solid rgb(244 187 143 / .35); border-radius: 999px; font-size: .82rem; color: var(--acrecion); background: rgb(244 187 143 / .06); }

  /* Formularios */
  .formulario { display: grid; gap: 1.1rem; }
  .campo { display: grid; gap: .45rem; }
  .campo label, .grupo legend { font-size: .8rem; font-weight: 600; letter-spacing: .04em; color: var(--tiza-2); }
  .campo label small { font-weight: 400; color: var(--tiza-3); letter-spacing: 0; }
  .campo input, .campo textarea {
    width: 100%; min-height: 3.1rem; padding: .8rem 1rem; border: 1px solid var(--linea-2); border-radius: var(--radio); background: var(--noche-1);
    transition: border-color var(--rapido), background var(--rapido);
  }
  .campo textarea { min-height: 10rem; resize: vertical; line-height: 1.6; }
  .campo input:hover, .campo textarea:hover { border-color: var(--tiza-3); }
  .campo input:focus-visible, .campo textarea:focus-visible { outline: none; border-color: var(--acrecion); background: var(--noche-2); box-shadow: 0 0 0 3px rgb(244 187 143 / .18); }
  [aria-invalid="true"] { border-color: var(--error) !important; }
  .campo__ayuda { display: flex; justify-content: space-between; gap: 1rem; font-size: .76rem; color: var(--tiza-3); }
  .campo__error { min-height: 0; font-size: .8rem; color: var(--error); }
  .campo__error:empty { display: none; }
  .campo--en-linea { display: flex; gap: .5rem; }
  .campo--en-linea input { flex: 1; min-width: 0; }
  @media (max-width: 520px) { .campo--en-linea { flex-direction: column; } }
  .grupo { border: 0; padding: 0; margin: 0; display: grid; gap: .6rem; }
  .opciones { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: .6rem; }
  .opcion { position: relative; }
  .opcion input { position: absolute; opacity: 0; inset: 0; }
  .opcion label { display: flex; flex-direction: column; gap: .2rem; height: 100%; padding: .95rem 1rem; border: 1px solid var(--linea-2); border-radius: var(--radio); cursor: pointer; transition: all var(--rapido); }
  .opcion label strong { font: 400 1.08rem/1.2 var(--serif); color: var(--tiza); }
  .opcion label span { font-size: .78rem; color: var(--tiza-3); font-weight: 400; letter-spacing: 0; }
  .opcion input:checked + label { border-color: var(--acrecion); background: rgb(244 187 143 / .07); box-shadow: inset 0 0 0 1px var(--acrecion); }
  .opcion input:focus-visible + label { outline: 2px solid var(--acrecion); outline-offset: 2px; }
  .casilla { display: grid; grid-template-columns: auto 1fr; gap: .75rem; align-items: start; font-size: .86rem; color: var(--tiza-2); }
  .casilla input { width: 1.25rem; height: 1.25rem; margin: .15rem 0 0; accent-color: var(--acrecion); }
  .trampa { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
  .aviso { display: flex; gap: .9rem; align-items: flex-start; padding: 1.1rem 1.2rem; border-radius: var(--radio); border: 1px solid var(--linea-2); background: var(--noche-1); font-size: .92rem; animation: aparecer var(--medio) var(--ease); }
  .aviso .icono { width: 1.4rem; height: 1.4rem; margin-top: .1rem; }
  .aviso--exito { border-color: rgb(143 220 176 / .45); }
  .aviso--exito .icono { color: var(--exito); }
  .aviso--error { border-color: rgb(255 154 143 / .45); }
  .aviso--error .icono { color: var(--error); }
  .aviso strong { display: block; font: 400 1.15rem/1.3 var(--serif); margin-bottom: .2rem; }
  .girando { width: 1rem; height: 1rem; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: girar .7s linear infinite; }

  /* Boletín */
  .boletin { display: grid; gap: var(--e-6); }
  .boletin__texto p:last-child { color: var(--tiza-2); }

  /* Diálogo (carteles) */
  .visor { width: min(94vw, 58rem); max-height: 92svh; padding: 0; border: 1px solid var(--linea-2); border-radius: var(--radio-2); background: var(--noche-1); color: var(--tiza); }
  .visor::backdrop { background: rgb(3 5 12 / .82); backdrop-filter: blur(4px); }
  .visor[open] { animation: escalar var(--medio) var(--ease); }
  .visor__rejilla { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); }
  .visor__imagen { background: #000; }
  .visor--apaisado { width: min(94vw, 76rem); }
  .visor--apaisado .visor__rejilla { grid-template-columns: minmax(0, 1.8fr) minmax(0, 1fr); }
  .visor--apaisado .visor__imagen { display: grid; place-items: center; }
  .visor__imagen img { width: 100%; height: 100%; max-height: 92svh; object-fit: contain; }
  .visor__texto { display: flex; flex-direction: column; gap: 1rem; padding: clamp(1.25rem, 3vw, 2.5rem); }
  .visor__cerrar { position: absolute; top: .75rem; right: .75rem; background: rgb(7 11 24 / .7); }
  @media (max-width: 700px) { .visor__rejilla, .visor--apaisado .visor__rejilla { grid-template-columns: 1fr; } .visor__imagen img { max-height: 62svh; } }

  /* Mapa de constelaciones */
  .mapa { position: relative; }
  .mapa svg { width: 100%; height: auto; overflow: visible; }
  .mapa__halo { pointer-events: none; }
  .mapa__puentes line { stroke: var(--tiza); stroke-opacity: .05; stroke-width: .7; transition: stroke-opacity var(--medio); }
  .mapa__trazo { stroke: hsl(var(--matiz) 60% 75%); stroke-opacity: .32; stroke-width: .9; transition: stroke-opacity var(--medio); }
  .mapa__estrella { fill: hsl(var(--matiz) 85% 78%); filter: drop-shadow(0 0 4px hsl(var(--matiz) 90% 70% / .7)); transition: opacity var(--medio), r var(--rapido); }
  .mapa__toque { fill: transparent; }
  .mapa__enlace:hover .mapa__estrella, .mapa__enlace:focus-visible .mapa__estrella { r: 6; fill: #fff; }
  .mapa__enlace:focus-visible { outline: none; }
  .mapa__rotulo { font: 400 17px var(--serif); fill: var(--tiza); text-anchor: middle; transition: opacity var(--medio); }
  .mapa__cuenta { font: 600 9px var(--sans); letter-spacing: .16em; fill: var(--tiza-3); text-anchor: middle; }
  .mapa__rotulo-enlace:hover .mapa__rotulo, .mapa__rotulo-enlace:focus-visible .mapa__rotulo { fill: var(--acrecion); }
  .mapa--compacto .mapa__rotulo { font-size: 15px; fill: var(--tiza-2); }
  .mapa[data-foco] .mapa__grupo:not(.es-foco) { opacity: .25; }
  .mapa[data-foco] .mapa__grupo { transition: opacity var(--medio); }
  .mapa[data-foco] .mapa__puentes line.es-foco { stroke-opacity: .5; stroke: var(--acrecion); }
  .mapa__grupo.es-foco .mapa__trazo { stroke-opacity: .8; }
  @media (max-width: 640px) { .mapa__rotulo { font-size: 22px; } .mapa__cuenta { display: none; } }
}

/* ── Secciones ─────────────────────────────────────────────────────────── */
@layer secciones {
  /* Hero: réplica del encuadre y del fundido de ciclolucaslara.es */
  .hero { position: relative; isolation: isolate; min-height: 100svh; display: flex; flex-direction: column; justify-content: center; padding: 9rem 0 1.6rem; overflow: hidden; background: var(--noche); }
  .hero::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(270deg, #070b18f2 0%, #070b18d6 22%, #070b1894 42%, #070b1800 66%), linear-gradient(0deg, #070b18 0%, transparent 30%, transparent 80%, #070b1899); }
  .hero__arte { position: absolute; inset: 0; z-index: 0; transform: translate3d(var(--px, 0px), var(--py, 0px), 0) scale(1.035); }
  .hero__arte picture, .hero__foto, .hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 30% 45%; }
  .hero__video { opacity: 0; transition: opacity 1.6s ease-in-out; }
  .hero__video.es-visible { opacity: 1; transition-duration: .5s; }
  .hero__asteroides { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; opacity: 0; transition: opacity 1.6s ease-in-out; }
  .hero.foto-lista:not(.hero--video) .hero__asteroides { opacity: 1; }
  .hero--video .hero__asteroides { transition-duration: .5s; }
  .hero__contenido, .hero__base { position: relative; z-index: 3; }
  .hero__texto { max-width: 40rem; margin-left: auto; padding-block: 1.5rem 3rem; }
  .hero__kicker { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem 1rem; margin-bottom: 2rem; padding-left: .9rem; border-left: 2px solid var(--acrecion); font-size: .66rem; font-weight: 600; letter-spacing: .19em; text-transform: uppercase; color: var(--tiza-2); }
  .hero__kicker strong { color: var(--acrecion); font-weight: 600; }
  .hero__titulo { font-family: var(--sans); }
  .hero__preludio { display: block; font: 400 clamp(1.3rem, 1rem + 1vw, 2rem)/1.2 var(--sans); color: rgb(244 239 228 / .88); margin-bottom: .9rem; letter-spacing: -.01em; }
  .hero__preludio em { color: var(--tiza); }
  .hero__principal { display: block; font: 600 var(--t-hero)/1.02 var(--sans); letter-spacing: -.045em; max-width: 11ch; }
  .hero__principal em { display: inline-block; font-weight: 400; color: var(--acrecion); letter-spacing: -.035em; padding-right: .06em; }
  .hero__entradilla { max-width: 27rem; margin-top: 1.7rem; font-size: 1rem; line-height: 1.65; color: #d4d8e0; }
  .hero__acciones { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1.9rem; }
  .hero__base { display: grid; grid-template-columns: 1fr auto 1fr; gap: 2rem; align-items: center; margin-top: auto; padding-top: 1.2rem; border-top: 1px solid rgb(255 255 255 / .16); }
  .hero__base::before { content: none; }
  .hero__explorar { display: inline-flex; align-items: center; gap: .8rem; min-height: 44px; font-size: .74rem; text-decoration: none; color: var(--tiza-2); }
  .hero__explorar .icono { color: var(--acrecion); width: 1.2rem; height: 1.2rem; }
  .hero__credito { text-align: center; font: italic 1.3rem var(--serif); }
  .hero__credito span { display: block; font: 400 .6rem/1.8 var(--sans); letter-spacing: .08em; color: var(--tiza-2); font-style: normal; }
  .hero__movimiento { justify-self: end; min-height: 2.5rem; padding: 0 1rem; border: 1px solid var(--linea-2); border-radius: var(--radio); background: rgb(7 11 24 / .45); font-size: .7rem; font-weight: 600; color: var(--tiza-2); }
  .hero__movimiento:hover { border-color: var(--tiza-2); color: var(--tiza); }
  .con-js .hero__texto > * { opacity: 0; transform: translateY(14px); }
  .con-js .hero.es-listo .hero__texto > * { opacity: 1; transform: none; transition: opacity 1s var(--ease), transform 1.2s var(--ease); }
  .con-js .hero.es-listo .hero__texto > :nth-child(2) { transition-delay: .12s; }
  .con-js .hero.es-listo .hero__texto > :nth-child(3) { transition-delay: .24s; }
  .con-js .hero.es-listo .hero__texto > :nth-child(4) { transition-delay: .36s; }
  @media (max-width: 1199px) {
    .hero__arte picture, .hero__foto, .hero__video { object-position: 22% 45%; }
    .hero::after { background: linear-gradient(270deg, #070b18f0, #070b18b0 45%, #070b1820 75%), linear-gradient(0deg, #070b18, transparent 70%); }
    .hero__texto { max-width: 31rem; }
  }
  @media (max-width: 767px) {
    .hero { justify-content: flex-start; padding: clamp(17rem, 64vw, 25rem) 0 1.1rem; }
    .hero__arte { inset: var(--alto-cabecera) 0 auto 0; height: clamp(18rem, 67vw, 27rem); transform: none; }
    .hero__arte picture, .hero__foto, .hero__video { object-position: center; }
    .hero::after { background: linear-gradient(0deg, #070b18 0%, #070b18 45%, #070b18f0 56%, #070b1800 76%, #070b1822 100%); }
    .hero__texto { padding: 1rem 0 0; margin-left: 0; max-width: none; }
    .hero__kicker { display: block; margin-bottom: 1.2rem; font-size: .56rem; letter-spacing: .12em; line-height: 2; }
    .hero__kicker strong { margin-right: .6rem; }
    .hero__entradilla { font-size: .92rem; margin-top: 1.1rem; }
    .hero__acciones { flex-direction: column; align-items: stretch; margin-top: 1.4rem; }
    .hero__acciones .boton { min-height: 3.1rem; }
    .hero__base { grid-template-columns: 1fr auto; gap: .5rem; margin-top: 1.5rem; padding-top: .6rem; }
    .hero__credito { display: none; }
  }

  /* Destacada (próxima conferencia) */
  .destacada__rejilla { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 5.5rem); align-items: center; }
  .destacada__medio { position: relative; overflow: hidden; border-radius: var(--radio-2); box-shadow: var(--sombra), inset 0 0 0 1px var(--linea); aspect-ratio: 16 / 9; background: var(--noche-2); }
  .destacada__medio:has(img[height="566"]), .destacada__medio:has(img[data-vertical]) { aspect-ratio: 400 / 566; max-width: 30rem; justify-self: center; width: 100%; }
  .destacada__medio img { width: 100%; height: 100%; object-fit: cover; }
  .destacada__medio::before { content: ""; position: absolute; inset: -30%; z-index: -1; background: radial-gradient(closest-side, hsl(var(--matiz) 70% 50% / .25), transparent); }
  .destacada .titulo-1 { margin-top: var(--e-5); }
  .destacada .titulo-1 a { text-decoration: none; }
  .destacada__ponente { margin-top: var(--e-5); font: 400 1.25rem/1.3 var(--serif); }
  .destacada__ponente a { text-decoration: none; }
  .destacada__ponente span { display: block; font: 400 .86rem/1.4 var(--sans); color: var(--tiza-3); margin-top: .2rem; }
  .destacada__sinopsis { margin-top: var(--e-5); color: var(--tiza-2); max-width: 54ch; font-size: var(--t-medio); }
  @media (max-width: 899px) { .destacada__rejilla { grid-template-columns: 1fr; } .datos div { grid-template-columns: 1fr; gap: .2rem; } }

  /* Manifiesto 30 años */
  .manifiesto__rejilla { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(2rem, 6vw, 7rem); align-items: center; }
  .manifiesto__cifra { position: relative; display: grid; place-items: center; width: 100%; aspect-ratio: 1.35; touch-action: pan-y; }
  .manifiesto__cifra canvas { position: absolute; inset: 0; width: 100%; height: 100%; -webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent), linear-gradient(transparent, #000 10%, #000 90%, transparent); -webkit-mask-composite: source-in; mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent), linear-gradient(transparent, #000 10%, #000 90%, transparent); mask-composite: intersect; }
  .manifiesto__cifra.es-animado span { visibility: hidden; }
  .manifiesto__cifra span {
    font: 400 clamp(9rem, 22vw, 22rem)/.8 var(--serif); letter-spacing: -.06em;
    background: radial-gradient(circle at 70% 45%, #ffd9b0 0%, var(--acrecion-vivo) 30%, #7a2d14 62%, transparent 63%), linear-gradient(120deg, #dff5ff, #8fbcd9);
    -webkit-background-clip: text; background-clip: text; color: transparent; filter: drop-shadow(0 0 40px rgb(255 140 66 / .25));
  }
  .cifras { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: var(--e-7); border-top: 1px solid var(--linea); }
  .cifras a, .cifras__item { display: flex; flex-direction: column; gap: .3rem; padding: 1.25rem 1rem 0 0; text-decoration: none; }
  .cifras li + li > * { padding-left: 1rem; border-left: 1px solid var(--linea); }
  .cifras--3 { grid-template-columns: repeat(3, auto); justify-content: start; gap: 0 1.5rem; }
  .cifras strong { font: 400 clamp(2rem, 1.5rem + 2vw, 3.3rem)/1 var(--serif); }
  .cifras span:not(.cifras__item) { font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--tiza-3); }
  .cifras a:hover strong { color: var(--acrecion); }
  @media (max-width: 899px) { .manifiesto__rejilla { grid-template-columns: 1fr; } .manifiesto__cifra span { font-size: 9rem; } .cifras { grid-template-columns: repeat(2, 1fr); } .cifras li:nth-child(3) > * { border-left: 0; padding-left: 0; } }

  /* Mapa en portada */
  .mapa-inicio { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: center; }
  .mapa-inicio__texto p { color: var(--tiza-2); }
  .mapa-inicio__texto .boton { margin-top: var(--e-6); }
  @media (max-width: 899px) { .mapa-inicio { grid-template-columns: 1fr; } }

  /* Fonoteca en portada y listas de pistas */
  .fonoteca-inicio { display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
  .fonoteca-inicio > div p { color: var(--tiza-2); margin-bottom: var(--e-5); }
  @media (max-width: 899px) { .fonoteca-inicio { grid-template-columns: 1fr; } }
  .lista-audio { border-top: 1px solid var(--linea); }
  .pista { display: grid; grid-template-columns: 3.2rem 1fr; gap: 1rem; padding: 1.4rem 0; border-bottom: 1px solid var(--linea); }
  .pista__numero { font: 400 1.05rem/1.7 var(--serif); color: var(--tiza-3); font-variant-numeric: oldstyle-nums; }
  .pista__titulo { font-size: 1.35rem; line-height: 1.2; }
  .pista__titulo a { text-decoration: none; }
  .pista__meta { margin-top: .3rem; font-size: .84rem; color: var(--tiza-3); }

  /* Muro de carteles */
  /* Muro de carteles: plano 3D con seis columnas en desplazamiento infinito */
  .seccion--carteles { position: relative; isolation: isolate; display: flex; align-items: center; min-height: min(58rem, 100svh); overflow: hidden; background: radial-gradient(55% 70% at 78% 50%, #1a2450 0%, transparent 72%); }
  .muro__escena {
    position: absolute; inset: 0; z-index: 0; perspective: 1800px;
    -webkit-mask-image: linear-gradient(90deg, transparent 24%, #000 54%), linear-gradient(transparent, #000 14%, #000 86%, transparent); -webkit-mask-composite: source-in;
    mask-image: linear-gradient(90deg, transparent 24%, #000 54%), linear-gradient(transparent, #000 14%, #000 86%, transparent); mask-composite: intersect;
  }
  .muro__plano { position: absolute; top: -40%; bottom: -40%; left: 38%; right: -16%; display: grid; grid-template-columns: repeat(6, 1fr); gap: 1rem; transform: rotateX(22deg) rotateY(-30deg) rotateZ(12deg); transform-origin: 30% 50%; }
  .muro__pista { display: flex; flex-direction: column; gap: 1rem; animation: muro-desplazar var(--velocidad, 80s) linear infinite; will-change: transform; }
  .muro__columna:nth-child(even) .muro__pista { animation-direction: reverse; }
  .muro__columna:nth-child(3n) { margin-top: -6rem; }
  .muro__cartel { display: block; border-radius: 4px; overflow: hidden; background: linear-gradient(160deg, var(--noche-3), var(--noche-1)); filter: saturate(.85) brightness(.72); box-shadow: 0 30px 60px -28px #000, 0 0 0 1px rgb(255 255 255 / .07); transition: transform .6s var(--ease), filter .6s var(--ease), box-shadow .6s var(--ease); }
  .muro__cartel img { width: 100%; aspect-ratio: 400 / 566; object-fit: cover; }
  .muro__cartel--apaisado img { aspect-ratio: 16 / 9; }
  @media (hover: hover) {
    .muro__columna:hover .muro__pista { animation-play-state: paused; }
    .muro__cartel:hover { transform: scale(1.08); filter: none; box-shadow: 0 40px 80px -24px #000, 0 0 60px -8px rgb(255 140 66 / .5), 0 0 0 1px rgb(244 187 143 / .6); position: relative; z-index: 2; }
  }
  .muro__foco { position: absolute; inset: 0; pointer-events: none; background: radial-gradient(30rem 30rem at var(--mx, 74%) var(--my, 50%), rgb(255 186 130 / .17), transparent 62%); mix-blend-mode: screen; }
  .seccion--carteles.es-pausado .muro__pista { animation-play-state: paused; }
  .muro { position: relative; z-index: 2; pointer-events: none; }
  .muro__texto { max-width: 34rem; pointer-events: auto; }
  .muro__texto p { color: var(--tiza-2); max-width: 44ch; }
  .muro__titulo { font-size: clamp(2.6rem, 1.6rem + 3.6vw, 5.2rem); line-height: 1; }
  .muro__linea { display: block; overflow: hidden; padding-bottom: .12em; margin-bottom: -.06em; }
  .muro__linea > * { display: inline-block; }
  .muro__titulo em {
    padding-right: .08em; color: transparent; -webkit-background-clip: text; background-clip: text;
    background-image: linear-gradient(100deg, var(--acrecion) 0%, var(--acrecion) 35%, #fff0dc 48%, var(--acrecion) 60%, #ff9a55 100%); background-size: 260% 100%;
    animation: muro-brillo 7s ease-in-out infinite;
  }
  .muro__cifra { display: flex; align-items: baseline; gap: .7rem; margin-top: var(--e-5); font-size: .74rem; letter-spacing: .14em; text-transform: uppercase; color: var(--tiza-3) !important; }
  .muro__cifra strong { font: 400 2.6rem/1 var(--serif); letter-spacing: -.02em; color: var(--tiza); text-transform: none; }
  .muro__texto .boton { margin-top: var(--e-6); }
  .con-js .muro__linea > * { transform: translateY(108%); transition: transform 1.3s var(--ease); }
  .con-js .muro__linea + .muro__linea > * { transition-delay: .14s; }
  .con-js .muro__texto > :not(h2) { opacity: 0; transform: translateY(16px); transition: opacity 1s var(--ease) .35s, transform 1.1s var(--ease) .35s; }
  .con-js .muro__texto.es-visible .muro__linea > *, .con-js .muro__texto.es-visible > :not(h2) { opacity: 1; transform: none; }
  @keyframes muro-desplazar { to { transform: translateY(calc(-50% - .5rem)); } }
  @keyframes muro-brillo { 0%, 100% { background-position: 100% 0; } 50% { background-position: 0 0; } }
  @media (max-width: 899px) {
    .seccion--carteles { flex-direction: column; align-items: stretch; min-height: 0; padding-bottom: 0; background: radial-gradient(90% 50% at 50% 85%, #1a2450, transparent 75%); }
    .muro__escena { position: relative; order: 2; height: 30rem; margin-top: var(--e-6); -webkit-mask-image: linear-gradient(transparent, #000 18%, #000 82%, transparent); mask-image: linear-gradient(transparent, #000 18%, #000 82%, transparent); }
    .muro__plano { left: -12%; right: -12%; grid-template-columns: repeat(4, 1fr); gap: .8rem; transform: rotateX(18deg) rotateZ(-8deg); }
    .muro__pista { gap: .8rem; }
    .muro__columna:nth-child(n + 5) { display: none; }
    @keyframes muro-desplazar { to { transform: translateY(calc(-50% - .4rem)); } }
  }
  @media (prefers-reduced-motion: reduce) { .muro__pista, .muro__titulo em { animation: none; } }
  .movimiento-reducido .muro__pista, .movimiento-reducido .muro__titulo em { animation: none; }

  /* Participa + boletín */
  .contigo { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--linea); border: 1px solid var(--linea); border-radius: var(--radio-2); overflow: hidden; }
  .contigo > div { padding: clamp(1.5rem, 4vw, 3.5rem); background: var(--noche); }
  .contigo__participa { background: radial-gradient(90% 120% at 0% 0%, #1a2550, var(--noche) 70%) !important; }
  .contigo__participa p { color: var(--tiza-2); margin-block: var(--e-5) var(--e-6); }
  .contigo .titulo-2 { font-size: clamp(1.6rem, 1.2rem + 1.5vw, 2.5rem); }
  @media (max-width: 899px) { .contigo { grid-template-columns: 1fr; } }

  /* Ficha de conferencia */
  .ficha { padding-top: calc(var(--alto-cabecera) + clamp(1.5rem, 4vw, 3.5rem)); }
  .migas { display: flex; flex-wrap: wrap; gap: .5rem; font-size: .8rem; color: var(--tiza-3); margin-bottom: var(--e-5); }
  .migas a { color: var(--tiza-2); text-decoration: none; }
  .migas li + li::before { content: "/"; margin-right: .5rem; opacity: .5; }
  .ficha__rejilla { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
  .ficha__titulo { font-size: clamp(2rem, 1.4rem + 2.6vw, 3.8rem); margin-top: var(--e-4); }
  .ficha__ponentes { display: grid; gap: .8rem; margin-top: var(--e-5); }
  .ficha__persona { display: flex; gap: 1rem; align-items: center; text-decoration: none; }
  .ficha__persona:hover .persona__nombre { color: var(--acrecion); }
  .ficha__sinopsis { margin-top: var(--e-6); font-size: var(--t-medio); line-height: 1.75; color: var(--tiza-2); max-width: 62ch; }
  .ficha__sinopsis::first-letter { font-family: var(--serif); font-size: 3.4em; float: left; line-height: .9; margin: .06em .1em 0 0; color: var(--acrecion); }
  .ficha__lateral { position: sticky; top: calc(var(--alto-cabecera) + 1.5rem); display: grid; gap: var(--e-6); }
  .ficha__cartel { border-radius: var(--radio); overflow: hidden; box-shadow: var(--sombra); max-width: 22rem; }
  .ficha__cartel img { width: 100%; }
  .ficha .datos { margin-top: 0; }
  .ficha .datos div { grid-template-columns: 7rem 1fr; }
  .ficha__etiquetas { margin-top: var(--e-6); }
  .ficha__acciones { display: flex; flex-wrap: wrap; gap: .6rem; }
  .ficha__aviso { font-size: .8rem; color: var(--tiza-3); }
  @media (max-width: 999px) { .ficha__rejilla { grid-template-columns: 1fr; } .ficha__lateral { position: static; } }

  /* Ponentes */
  .indice-letras { display: flex; flex-wrap: wrap; gap: .25rem; margin-top: var(--e-5); }
  .indice-letras a { display: grid; place-items: center; min-width: 2.4rem; height: 2.4rem; border-radius: var(--radio); font: 400 1.05rem var(--serif); text-decoration: none; color: var(--tiza-2); }
  .indice-letras a:hover { background: var(--noche-2); color: var(--tiza); }
  .letra { margin-top: var(--e-7); }
  .letra__titulo { font-size: 2.6rem; color: var(--acrecion); margin-bottom: var(--e-4); padding-bottom: .6rem; border-bottom: 1px solid var(--linea); }
  .perfil { display: flex; gap: clamp(1rem, 3vw, 2rem); align-items: center; margin-top: var(--e-4); }
  .perfil .persona__monograma { width: clamp(4.5rem, 10vw, 7rem); height: clamp(4.5rem, 10vw, 7rem); font-size: clamp(1.6rem, 3vw, 2.4rem); }

  /* Archivo histórico */
  .linea-tiempo { position: relative; }
  .anios { display: flex; gap: .3rem; overflow-x: auto; scrollbar-width: none; padding-block: .25rem; }
  .anios a { flex: none; padding: .45rem .7rem; border-radius: var(--radio); font: 400 1rem var(--serif); text-decoration: none; color: var(--tiza-2); font-variant-numeric: lining-nums; }
  .anios a:hover { background: var(--noche-2); color: var(--tiza); }
  .anio { display: grid; grid-template-columns: minmax(7rem, .25fr) 1fr; gap: clamp(1rem, 4vw, 4rem); padding-block: clamp(2rem, 4vw, 3.5rem); border-top: 1px solid var(--linea); }
  .anio__cifra { position: sticky; top: calc(var(--alto-cabecera) + 5.5rem); align-self: start; font: 400 clamp(2.6rem, 2rem + 3vw, 5rem)/1 var(--serif); letter-spacing: -.03em; color: var(--tiza); }
  .anio__cifra small { display: block; margin-top: .6rem; font: 600 .7rem/1.4 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--tiza-3); }
  .anio__lista .tarjeta--fila:first-child .tarjeta__enlace { padding-top: 0; }
  @media (max-width: 700px) { .anio { grid-template-columns: 1fr; } .anio__cifra { position: static; } }

  /* Temas (constelaciones) */
  .temas-rejilla { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr)); gap: 1px; background: var(--linea); border: 1px solid var(--linea); }
  .tema { --matiz: 220; position: relative; padding: 1.6rem 1.5rem 1.4rem; background: var(--noche); }
  .tema::before { content: ""; position: absolute; top: -1px; left: 1.5rem; width: 2.6rem; height: 2px; background: hsl(var(--matiz) 75% 72%); }
  .tema__titulo { font-size: 1.55rem; }
  .tema__titulo a { text-decoration: none; }
  .tema__cuenta { margin-top: .35rem; font-size: .7rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: hsl(var(--matiz) 70% 76%); }
  .tema__etiquetas { margin-top: 1rem; border-top: 1px solid var(--linea); }
  .tema__etiquetas li { display: flex; justify-content: space-between; gap: 1rem; padding: .55rem 0; border-bottom: 1px solid var(--linea); font-size: .88rem; color: var(--tiza-2); }
  .tema__etiquetas li:last-child { border-bottom: 0; }
  .tema__etiquetas a { text-decoration: none; }
  .seccion--mapa-completo { padding-top: var(--e-6); }
  .mapa-ayuda { margin-top: var(--e-4); font-size: .82rem; color: var(--tiza-3); }

  /* Buscador */
  .buscador { padding-top: calc(var(--alto-cabecera) + clamp(2rem, 5vw, 4.5rem)); }
  .buscador__campo { position: relative; margin-top: var(--e-5); }
  .buscador__campo .icono { position: absolute; left: 1.25rem; top: 50%; translate: 0 -50%; width: 1.6rem; height: 1.6rem; color: var(--tiza-3); }
  .buscador__campo input { width: 100%; min-height: 4.4rem; padding: 0 1.25rem 0 3.6rem; border: 1px solid var(--linea-2); border-radius: var(--radio-2); background: var(--noche-1); font: 400 clamp(1.3rem, 1.1rem + 1vw, 2rem) var(--serif); }
  .buscador__campo input:focus-visible { outline: none; border-color: var(--acrecion); box-shadow: 0 0 0 4px rgb(244 187 143 / .15); }
  .buscador__pestanas { margin-top: var(--e-4); }
  .resultados { margin-top: var(--e-6); }
  .resultados__grupo + .resultados__grupo { margin-top: var(--e-7); }
  .resultados__grupo > h2 { margin-bottom: var(--e-4); }
  .resultado { display: grid; grid-template-columns: 6.5rem 1fr; gap: 1.1rem; align-items: center; padding: .9rem 0; border-bottom: 1px solid var(--linea); text-decoration: none; }
  .resultado:hover { color: inherit; }
  .resultado:hover .resultado__titulo { color: var(--acrecion); }
  .resultado__medio { position: relative; aspect-ratio: 16 / 9; border-radius: 3px; overflow: hidden; background: var(--noche-2); display: grid; place-items: center; color: var(--tiza-3); }
  .resultado__medio img { width: 100%; height: 100%; object-fit: cover; }
  .resultado__medio--persona { aspect-ratio: 1; width: 3.4rem; justify-self: center; border-radius: 50%; }
  .resultado__titulo { font: 400 1.15rem/1.25 var(--serif); }
  .resultado__meta { font-size: .8rem; color: var(--tiza-3); margin-top: .2rem; }
  .resultado mark { background: rgb(244 187 143 / .22); color: inherit; border-radius: 2px; padding: 0 .1em; }
  .sugerencias { margin-top: var(--e-6); }

  /* Participa */
  .participa { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(2rem, 6vw, 6rem); align-items: start; }
  .participa__intro { position: sticky; top: calc(var(--alto-cabecera) + 2rem); }
  .participa__intro p { color: var(--tiza-2); }
  .participa__garantias { margin-top: var(--e-6); display: grid; gap: .9rem; }
  .participa__garantias li { display: flex; gap: .8rem; font-size: .9rem; color: var(--tiza-2); }
  .participa__garantias .icono { color: var(--acrecion); margin-top: .2rem; }
  .tarjeta-form { padding: clamp(1.25rem, 3.5vw, 2.75rem); border: 1px solid var(--linea); border-radius: var(--radio-2); background: linear-gradient(160deg, var(--noche-1), var(--noche)); }
  .gracias { text-align: center; padding: clamp(2rem, 5vw, 4rem) 1rem; animation: aparecer .8s var(--ease); }
  .gracias__astro { width: 5rem; height: 5rem; margin: 0 auto 1.5rem; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #ffe2c2, var(--acrecion-vivo) 45%, #6b230c 80%); box-shadow: 0 0 60px rgb(255 140 66 / .45); animation: latir 3s ease-in-out infinite; }
  .gracias p { color: var(--tiza-2); max-width: 40ch; margin: 1rem auto 0; }
  .gracias .boton { margin-top: var(--e-6); }
  @media (max-width: 899px) { .participa { grid-template-columns: 1fr; } .participa__intro { position: static; } }

  /* Página de boletín */
  .boletin-pagina { max-width: 44rem; }
  .boletin-pagina .boletin { padding: clamp(1.5rem, 4vw, 3rem); border: 1px solid var(--linea); border-radius: var(--radio-2); background: radial-gradient(100% 120% at 100% 0%, #1c2654, var(--noche-1) 65%); }

  /* Texto legal */
  .prosa { max-width: 68ch; color: var(--tiza-2); }
  .prosa h2 { font-size: 1.6rem; color: var(--tiza); margin: 2.5rem 0 .8rem; }
  .prosa p + p { margin-top: 1rem; }

  /* Página «30 años» */
  .progreso-lectura { position: fixed; inset: var(--alto-cabecera) 0 auto; z-index: 39; height: 2px; opacity: 0; transition: opacity var(--medio); pointer-events: none; }
  .progreso-lectura.es-visible { opacity: 1; }
  .progreso-lectura span { display: block; height: 100%; background: linear-gradient(90deg, var(--acrecion-vivo), var(--acrecion)); transform: scaleX(0); transform-origin: left; }
  /* Portada: la ilustración se ve entera (lleva su propio rótulo); el texto entra por debajo
     sobre el fundido inferior para no tapar a la niña ni la caligrafía. */
  .historia-portada { position: relative; isolation: isolate; padding-top: var(--alto-cabecera); padding-bottom: clamp(3rem, 6vw, 5rem); }
  .historia-portada__fondo { position: relative; background: var(--noche); height: min(56.3vw, calc(100svh - var(--alto-cabecera) - 4rem)); overflow: hidden; }
  .historia-portada__fondo picture { height: 100%; }
  .historia-portada__fondo img { width: 100%; height: 100%; object-fit: cover; object-position: center 45%; animation: historia-acercar 40s ease-in-out infinite alternate; }
  .historia-portada__fondo::after { content: ""; position: absolute; inset: -1px 0 -2px; pointer-events: none; background: linear-gradient(0deg, var(--noche) 0%, var(--noche) 3%, #070b18cc 14%, #070b1800 40%), linear-gradient(180deg, #070b1899, #070b1800 18%); }
  .historia-portada__contenido { position: relative; z-index: 1; margin-top: clamp(-6rem, -6vw, -2rem); display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 1rem 3rem; align-items: end; }
  .historia-portada__contenido > .antetitulo, .historia-portada__contenido > .historia-portada__titulo { grid-column: 1; }
  .historia-portada__contenido > .firma { grid-column: 2; grid-row: 2; margin: 0 0 1rem; }
  .historia-portada__contenido > .acciones { grid-column: 2; grid-row: 3; margin-top: 0; }
  .historia-portada__contenido > .historia-portada__titulo { grid-row: 2 / span 2; }
  @media (max-width: 899px) {
    .historia-portada__fondo { height: 74vw; }
    .historia-portada__fondo img { object-position: 36% 50%; }
    .historia-portada__contenido { grid-template-columns: 1fr; margin-top: -1.5rem; }
    .historia-portada__contenido > * { grid-column: 1 !important; grid-row: auto !important; }
    .historia-portada__contenido > .firma { margin-top: var(--e-5); }
  }
  .historia-portada__titulo { margin-top: var(--e-3); font-size: clamp(3rem, 1.8rem + 5vw, 6.8rem); line-height: .94; letter-spacing: -.03em; }
  .historia-portada__titulo em { display: block; color: var(--acrecion); }
  .firma { display: flex; align-items: center; gap: 1rem; margin-top: var(--e-6); }
  .firma strong { display: block; font: 400 1.3rem/1.2 var(--serif); }
  .firma > span:last-child > span { display: block; font-size: .82rem; color: var(--tiza-2); margin-top: .15rem; }
  @keyframes historia-acercar { from { transform: scale(1); } to { transform: scale(1.04); } }

  .articulo { padding-block: var(--seccion); }
  .articulo__rejilla { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 43rem) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 4rem); }
  .articulo__margen { position: relative; }
  .articulo__anio { position: sticky; top: calc(var(--alto-cabecera) + 3rem); display: block; text-align: right; font: 400 clamp(4rem, 2rem + 5vw, 8rem)/1 var(--serif); letter-spacing: -.04em; color: transparent; -webkit-text-stroke: 1px rgb(244 187 143 / .45); }
  .articulo__cuerpo > p { margin-top: 1.5em; font-size: clamp(1.06rem, 1rem + .3vw, 1.2rem); line-height: 1.85; color: #d6dae2; }
  .articulo__titulo { margin-top: var(--e-4); font-size: clamp(2.2rem, 1.5rem + 3vw, 4rem); line-height: 1.05; }
  .articulo__cuerpo > .articulo__entrada { margin-top: var(--e-6); font-size: clamp(1.18rem, 1.05rem + .5vw, 1.4rem); line-height: 1.75; color: var(--tiza); }
  .articulo__entrada::first-letter { float: left; margin: .08em .12em 0 0; font: 400 4.6em/.82 var(--serif); color: var(--acrecion); }
  .articulo__figura { margin: 2.6rem 0; }
  .articulo__figura figcaption { margin-top: .7rem; font-size: .8rem; color: var(--tiza-3); }
  .articulo__figura--lateral { float: right; width: min(20rem, 46%); margin: .5rem -12rem 1.5rem 2.5rem; }
  .articulo__figura--ancha { margin-inline: -9rem; clear: both; }
  .articulo__ampliar { display: block; width: 100%; padding: 0; border: 0; background: none; border-radius: var(--radio-2); overflow: hidden; cursor: zoom-in; box-shadow: var(--sombra); }
  .articulo__ampliar img { width: 100%; transition: transform 1.2s var(--ease), filter var(--medio); filter: saturate(.85); }
  .articulo__ampliar:hover img { transform: scale(1.03); filter: none; }
  .articulo__cuerpo > .articulo__destacado { margin: 3rem 0; padding: .4rem 0 .4rem 1.6rem; border-left: 2px solid var(--acrecion); font: 400 clamp(1.7rem, 1.2rem + 1.8vw, 2.6rem)/1.2 var(--serif); color: var(--tiza); }
  .articulo__destacado em { color: var(--acrecion); }
  .articulo__cita { margin: 2.5rem 0; padding: 2.2rem 0; border-block: 1px solid var(--linea); text-align: center; }
  .articulo__cita p { font: italic 400 clamp(1.6rem, 1.2rem + 1.6vw, 2.4rem)/1.3 var(--serif); color: var(--tiza); text-wrap: balance; }
  .articulo__cuerpo > .articulo__firma { margin-top: 3rem; font-size: 1.6rem; color: var(--tiza); }
  .articulo__firma em { display: block; font-family: var(--serif); }
  .articulo__firma span { display: block; font-size: .82rem; color: var(--tiza-3); }
  @media (max-width: 1099px) {
    .articulo__rejilla { grid-template-columns: minmax(0, 1fr); max-width: 46rem; margin-inline: auto; }
    .articulo__margen { display: none; }
    .articulo__figura--lateral { margin-right: 0; }
    .articulo__figura--ancha { margin-inline: 0; }
  }
  @media (max-width: 560px) { .articulo__figura--lateral { float: none; width: 100%; margin: 2rem 0; } }

  .galeria__cabecera { max-width: 52rem; }
  .galeria__cabecera .chips { margin-top: var(--e-6); }
  .album { margin-top: clamp(4rem, 8vw, 7rem); scroll-margin-top: calc(var(--alto-cabecera) + 1rem); }
  .album__cabecera { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr) auto; gap: 1rem 2.5rem; align-items: end; padding-bottom: 1.2rem; margin-bottom: 1.6rem; border-bottom: 1px solid var(--linea); }
  .album__cabecera p { color: var(--tiza-2); max-width: 46ch; }
  .album__cuenta { font-size: .72rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--acrecion); white-space: nowrap; }
  @media (max-width: 760px) { .album__cabecera { grid-template-columns: 1fr; } }
  .album__mosaico { columns: 3 17rem; column-gap: 1rem; }
  .album__pieza { break-inside: avoid; margin-bottom: 1rem; }
  .album__boton { display: block; width: 100%; padding: 0; border: 0; background: var(--noche-2); border-radius: 6px; overflow: hidden; cursor: zoom-in; position: relative; }
  .album__boton img { width: 100%; filter: saturate(.8) brightness(.92); transition: transform 1s var(--ease), filter .6s var(--ease); }
  .album__boton::after { content: ""; position: absolute; inset: 0; border-radius: inherit; box-shadow: inset 0 0 0 1px rgb(255 255 255 / .06); transition: box-shadow var(--medio); }
  .album__boton:hover img, .album__boton:focus-visible img { transform: scale(1.045); filter: none; }
  .album__boton:hover::after { box-shadow: inset 0 0 0 1px rgb(244 187 143 / .55), 0 0 40px -6px rgb(255 140 66 / .35); }

  .historia-cierre { position: relative; isolation: isolate; display: grid; place-items: center; min-height: 80svh; padding-block: var(--seccion); overflow: hidden; text-align: center; }
  .historia-cierre__fondo { position: absolute; inset: 0; z-index: -1; }
  .historia-cierre__fondo img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.7) brightness(.5); }
  .historia-cierre::after { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(70% 70% at 50% 50%, #070b18aa, #070b18f0), linear-gradient(var(--noche), transparent 25%, transparent 75%, var(--noche)); }
  .historia-cierre__cita { max-width: 22ch; margin-inline: auto; font: 400 clamp(2.2rem, 1.4rem + 3.4vw, 4.8rem)/1.08 var(--serif); letter-spacing: -.02em; text-wrap: balance; }
  .historia-cierre__cita em { color: var(--acrecion); }
  .historia-cierre__autor { margin-top: var(--e-5); font-size: .8rem; letter-spacing: .16em; text-transform: uppercase; color: var(--tiza-2); }
  .historia-cierre .acciones { justify-content: center; }

  .galeria-visor { width: 100vw; height: 100svh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: rgb(3 5 12 / .96); color: var(--tiza); }
  .galeria-visor::backdrop { background: rgb(3 5 12 / .9); }
  .galeria-visor[open] { display: grid; place-items: center; animation: aparecer var(--medio) var(--ease); }
  .galeria-visor__figura { display: grid; place-items: center; align-content: center; gap: 1rem; width: 100%; height: 100%; padding: 4.5rem clamp(1rem, 6vw, 6rem) 1.5rem; }
  .galeria-visor__imagen img { max-width: 100%; max-height: calc(100svh - 9rem); width: auto; height: auto; border-radius: 4px; box-shadow: 0 30px 80px -20px #000; }
  .galeria-visor__imagen.es-nueva img { animation: visor-entrar .5s var(--ease); }
  .galeria-visor__imagen[data-direccion="1"].es-nueva img { animation-name: visor-derecha; }
  .galeria-visor__imagen[data-direccion="-1"].es-nueva img { animation-name: visor-izquierda; }
  .galeria-visor figcaption { display: flex; gap: 1.2rem; align-items: baseline; font: 400 1.05rem var(--serif); color: var(--tiza-2); }
  .galeria-visor__contador { font: 600 .72rem var(--sans); letter-spacing: .14em; color: var(--tiza-3); font-variant-numeric: tabular-nums; }
  .galeria-visor__nav { position: absolute; top: 50%; translate: 0 -50%; width: 3.4rem; height: 3.4rem; background: rgb(7 11 24 / .6); }
  .galeria-visor__nav--atras { left: clamp(.5rem, 2vw, 1.5rem); }
  .galeria-visor__nav--adelante { right: clamp(.5rem, 2vw, 1.5rem); }
  .galeria-visor__cerrar { position: absolute; top: 1rem; right: 1rem; background: rgb(7 11 24 / .6); }
  @media (max-width: 640px) { .galeria-visor__nav { top: auto; bottom: 1rem; translate: none; } }
  @keyframes visor-entrar { from { opacity: 0; transform: scale(.98); } }
  @keyframes visor-derecha { from { opacity: 0; transform: translateX(28px); } }
  @keyframes visor-izquierda { from { opacity: 0; transform: translateX(-28px); } }

  /* Información legal */
  .legal__version { margin-top: var(--e-4); font-size: .82rem; letter-spacing: .06em; color: var(--tiza-3); }
  .legal__nav { margin-top: var(--e-6); }
  .legal__seccion { padding-top: clamp(2.5rem, 5vw, 4rem); }
  .legal > :first-child { margin-top: 0; }
  .legal h2 { font-size: 1.5rem; }
  .legal ul { padding-left: 1.2rem; margin-top: 1rem; }
  .legal li + li { margin-top: .5rem; }
  .legal li::marker { color: var(--acrecion); }
  .legal code { font-size: .88em; padding: .1em .35em; border-radius: 3px; background: var(--noche-2); color: var(--tiza); }
  .legal a { color: var(--acrecion); }
  .legal__datos { display: grid; gap: 1px; margin: 1.5rem 0 2rem; background: var(--linea); border: 1px solid var(--linea); border-radius: var(--radio); overflow: hidden; }
  .legal__datos div { display: grid; grid-template-columns: 12.5rem minmax(0, 1fr); gap: 1.5rem; padding: 1rem 1.2rem; background: var(--noche); }
  .legal__datos dt { font-size: .72rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--tiza-3); }
  .legal__datos dd { color: var(--tiza); }
  @media (max-width: 700px) { .legal__datos div { grid-template-columns: 1fr; gap: .3rem; } }

  /* Instalar la aplicación */
  .pie__instalar { padding: 0; border: 0; background: none; color: var(--tiza-2); font-size: .92rem; cursor: pointer; }
  .pie__instalar:hover { color: var(--tiza); text-decoration: underline; }
  .hoja__instalar { display: flex; align-items: center; gap: 1rem; width: 100%; min-height: 3.4rem; padding: 0 .3rem; border: 0; border-bottom: 1px solid var(--linea); background: none; font: 400 1.2rem/1.2 var(--serif); color: var(--acrecion); text-align: left; }
  .hoja__instalar .icono { width: 1.3rem; height: 1.3rem; }
  .instalar { width: min(92vw, 26rem); padding: 1.8rem; border: 1px solid var(--linea-2); border-radius: var(--radio-2); background: var(--noche-1); color: var(--tiza-2); text-align: center; }
  .instalar::backdrop { background: rgb(3 5 12 / .75); }
  .instalar[open] { animation: escalar var(--medio) var(--ease); }
  .instalar img { margin: 0 auto 1rem; border-radius: 18px; }
  .instalar h2 { color: var(--tiza); margin-bottom: 1rem; }
  .instalar ol { text-align: left; padding-left: 1.2rem; margin: .8rem 0; }
  .instalar li + li { margin-top: .4rem; }
  .instalar strong { color: var(--tiza); }
  .instalar__nota { margin: 1rem 0 1.4rem; font-size: .8rem; color: var(--tiza-3); }

  /* Aviso de cookies (informativo) */
  .aviso-cookies {
    position: fixed; left: var(--margen); bottom: calc(var(--alto-nav-inferior) + 1rem); z-index: 50; display: grid; gap: .9rem; width: min(26rem, calc(100% - 2 * var(--margen)));
    padding: 1.1rem 1.2rem; border: 1px solid var(--linea-2); border-radius: var(--radio-2); background: rgb(11 17 34 / .94); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
    box-shadow: var(--sombra); font-size: .88rem; color: var(--tiza-2); opacity: 0; transform: translateY(12px); transition: opacity .4s var(--ease), transform .5s var(--ease);
  }
  .aviso-cookies.es-visible { opacity: 1; transform: none; }
  .aviso-cookies strong { color: var(--tiza); font-family: var(--serif); font-weight: 400; font-size: 1.05rem; margin-right: .3rem; }
  .aviso-cookies__acciones { display: flex; align-items: center; justify-content: flex-end; gap: 1rem; }
  .aviso-cookies__acciones a { font-size: .82rem; color: var(--tiza-2); }

  /* Pie */
  .pie { margin-top: var(--seccion); padding-block: clamp(3rem, 6vw, 5rem) 2rem; border-top: 1px solid var(--linea); background: linear-gradient(var(--noche), #05070f); }
  .pie__rejilla { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 2.5rem; }
  .pie__marca p { margin-top: 1rem; max-width: 34ch; color: var(--tiza-3); font-size: .9rem; }
  .pie__nav h2 { margin-bottom: 1rem; }
  .pie__nav li + li { margin-top: .55rem; }
  .pie__nav a { color: var(--tiza-2); text-decoration: none; font-size: .92rem; }
  .pie__nav a:hover { color: var(--tiza); }
  .pie__instituciones { margin-top: 3.5rem; padding-top: 2.2rem; border-top: 1px solid var(--linea); }
  .pie__instituciones img { width: min(100%, 560px); opacity: .9; }
  .pie__legal { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .8rem 2rem; margin-top: 1.5rem; font-size: .78rem; color: var(--tiza-3); }
  .pie__legal nav { display: flex; gap: 1.4rem; }
  .pie__legal a { color: var(--tiza-2); text-decoration: none; }
  .pie__legal a:hover { color: var(--tiza); text-decoration: underline; }
  @media (max-width: 899px) { .pie__rejilla { grid-template-columns: 1fr 1fr; } .pie__marca { grid-column: 1 / -1; } }
}

/* ── Utilidades y movimiento ───────────────────────────────────────────── */
@layer utilidades {
  .oculto { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .con-js .aparece { opacity: 0; transform: translateY(22px); transition: opacity .9s var(--ease), transform 1.1s var(--ease); }
  .con-js .aparece.es-visible { opacity: 1; transform: none; }
  @keyframes aparecer { from { opacity: 0; } }
  @keyframes subir { from { transform: translateY(100%); } }
  @keyframes escalar { from { opacity: 0; transform: scale(.97); } }
  @keyframes girar { to { transform: rotate(1turn); } }
  @keyframes latir { 50% { transform: scale(1.06); box-shadow: 0 0 90px rgb(255 140 66 / .6); } }
  ::view-transition-old(root), ::view-transition-new(root) { animation-duration: .32s; animation-timing-function: var(--ease); }
  @media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
    .con-js .aparece, .con-js .hero__texto > * { opacity: 1; transform: none; }
    .hero__arte { transform: none; }
    @view-transition { navigation: none; }
  }
  .movimiento-reducido .hero__arte { transform: none; }
  .movimiento-reducido .con-js .aparece { opacity: 1; transform: none; }
  @media (forced-colors: active) { .boton, .chip, .boton-icono { border: 1px solid ButtonText; } }
  @media print { .cabecera, .nav-inferior, .hero__video, .pie { display: none; } body { background: #fff; color: #000; } }
}
