:root {
  --verde-noche: #0d3025;
  --verde-profundo: #173f31;
  --verde-cesped: #397f4c;
  --verde-cesped-claro: #458e58;
  --crema: #fff8ec;
  --papel: #ffefce;
  --rosa: #e99aa9;
  --rosa-claro: #ffd8df;
  --rojo-romantico: #b94f58;
  --dorado: #e6b94d;
  --texto-oscuro: #263c31;
  --sombra: 0 24px 70px rgba(5, 25, 18, 0.24);
  --serif: Georgia, "Times New Roman", serif;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --mono: "Courier New", ui-monospace, monospace;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  overflow-x: hidden;
}

body {
  margin: 0;
  color: var(--texto-oscuro);
  background: var(--verde-noche);
  font-family: var(--sans);
  line-height: 1.6;
  overflow-x: hidden;
}

body.modal-abierto {
  overflow: hidden;
}

body.en-portada {
  height: 100svh;
  overflow: hidden;
}

body.en-portada .skip-link {
  display: none;
}

[hidden] {
  display: none !important;
}

button,
input {
  font: inherit;
}

button {
  min-height: 44px;
}

button,
a,
input {
  -webkit-tap-highlight-color: transparent;
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid var(--dorado);
  outline-offset: 4px;
}

.skip-link {
  position: fixed;
  z-index: 1000;
  top: 12px;
  left: 12px;
  padding: 10px 16px;
  color: var(--verde-noche);
  background: var(--crema);
  border-radius: 999px;
  transform: translateY(-160%);
  transition: transform 180ms ease;
}

.skip-link:focus {
  transform: translateY(0);
}

.contenedor {
  width: min(1180px, calc(100% - 40px));
  margin-inline: auto;
}

.eyebrow {
  margin: 0 0 16px;
  color: var(--rojo-romantico);
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.eyebrow--dorado {
  color: var(--dorado);
}

h1,
h2,
h3,
p {
  margin-top: 0;
}

h1,
h2,
h3 {
  font-family: var(--serif);
  line-height: 1.04;
}

h2 {
  font-size: clamp(2.3rem, 5vw, 5.1rem);
}

.boton {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: 13px 24px;
  border: 1px solid transparent;
  border-radius: 999px;
  cursor: pointer;
  font-weight: 800;
  letter-spacing: 0.01em;
  transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease;
}

.boton::after {
  content: "";
  position: absolute;
  inset: 5px;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: inherit;
  pointer-events: none;
}

.boton:hover:not(:disabled) {
  transform: translateY(-3px);
  box-shadow: 0 13px 34px rgba(0, 0, 0, 0.22);
}

.boton:active:not(:disabled) {
  transform: translateY(0) scale(0.98);
}

.boton:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}

.boton--dorado {
  color: #33280e;
  background: linear-gradient(145deg, #f4d77a, var(--dorado));
  box-shadow: 0 9px 30px rgba(230, 185, 77, 0.24);
}

.boton--rosa {
  color: #4e1720;
  background: linear-gradient(145deg, var(--rosa-claro), var(--rosa));
}

.boton--verde {
  color: var(--crema);
  background: var(--verde-profundo);
}

.boton--secundario {
  color: var(--crema);
  background: transparent;
  border-color: rgba(255, 248, 236, 0.42);
}

.boton-enlace {
  padding: 8px 10px;
  color: rgba(255, 248, 236, 0.72);
  background: transparent;
  border: 0;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.boton-enlace--claro {
  color: var(--crema);
}

/* Portada */
.portada {
  position: relative;
  isolation: isolate;
  display: grid;
  min-height: 100svh;
  height: 100svh;
  align-items: safe center;
  justify-items: center;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  padding: 60px 20px;
  color: var(--crema);
  background:
    radial-gradient(circle at 50% 85%, rgba(57, 127, 76, 0.3), transparent 34%),
    linear-gradient(150deg, #071d16, var(--verde-noche) 48%, #071d16);
}

.portada::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  opacity: 0.12;
  background-image: repeating-linear-gradient(90deg, transparent 0 64px, rgba(255, 255, 255, 0.2) 65px 66px);
}

.portada__contenido {
  position: relative;
  z-index: 2;
  width: min(880px, 100%);
  margin-block: auto;
  text-align: center;
  animation: aparecer 900ms both;
  transition: opacity 420ms ease, transform 420ms ease;
}

.portada h1 {
  margin: 0;
  color: var(--crema);
  font-size: clamp(4rem, 12vw, 9.5rem);
  font-weight: 500;
  letter-spacing: -0.065em;
  text-wrap: balance;
  text-shadow: 0 15px 55px rgba(0, 0, 0, 0.34);
}

.portada__frase {
  width: min(660px, 100%);
  margin: 24px auto 34px;
  color: rgba(255, 248, 236, 0.78);
  font-family: var(--serif);
  font-size: clamp(1.05rem, 2.2vw, 1.45rem);
  font-style: italic;
}

.versus {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: clamp(12px, 4vw, 42px);
  align-items: center;
  width: min(720px, 100%);
  margin: 0 auto 14px;
  padding: 18px 26px;
  border-block: 1px solid rgba(230, 185, 77, 0.45);
  font-size: clamp(0.78rem, 2vw, 1rem);
  letter-spacing: 0.1em;
}

.versus span {
  display: grid;
  width: 42px;
  height: 42px;
  color: #30240a;
  background: var(--dorado);
  border-radius: 50%;
  font-family: var(--serif);
  font-weight: 800;
  place-items: center;
}

.fecha-portada {
  margin: 18px 0 28px;
  color: rgba(255, 248, 236, 0.56);
  font-family: var(--mono);
  letter-spacing: 0.16em;
}

.portada__acciones {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
}

.portada__acceso-prensa {
  min-height: 52px;
  padding: 12px 22px;
  color: rgba(255, 248, 236, 0.9);
  background: rgba(255, 255, 255, 0.055);
  border: 1px solid rgba(255, 248, 236, 0.28);
  border-radius: 999px;
  cursor: pointer;
  font-family: var(--sans);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.075em;
  text-transform: uppercase;
  transition: background 180ms ease, border-color 180ms ease, transform 180ms ease;
}

.portada__acceso-prensa:hover,
.portada__acceso-prensa:focus-visible {
  color: #fff;
  background: rgba(255, 255, 255, 0.12);
  border-color: var(--dorado);
  transform: translateY(-2px);
}

@media (max-width: 560px) {
  .portada__acciones {
    display: grid;
    width: min(290px, 100%);
    margin-inline: auto;
  }

  .portada__acciones > * {
    width: 100%;
  }
}

.portada__foco {
  position: absolute;
  z-index: -1;
  top: -20%;
  width: 42vw;
  height: 105vh;
  opacity: 0.16;
  filter: blur(18px);
  background: linear-gradient(to bottom, rgba(255, 245, 198, 0.7), transparent 78%);
  clip-path: polygon(44% 0, 56% 0, 100% 100%, 0 100%);
  transition: opacity 600ms ease;
}

.portada__foco--izq {
  left: -12%;
  transform: rotate(-18deg);
}

.portada__foco--der {
  right: -12%;
  transform: rotate(18deg);
}

.portada.saliendo .portada__foco {
  opacity: 0.65;
}

.portada.saliendo {
  pointer-events: none;
}

.portada.saliendo .portada__contenido,
.portada.saliendo .balon-decorativo {
  opacity: 0;
  transform: translateY(-14px) scale(0.97);
}

.particula {
  position: absolute;
  width: 3px;
  height: 3px;
  background: rgba(255, 239, 206, 0.55);
  border-radius: 50%;
  animation: flotar var(--duracion, 9s) ease-in-out infinite var(--retraso, 0s);
}

.balon-decorativo {
  position: absolute;
  right: 7vw;
  bottom: 6vh;
  opacity: 0.13;
  font-size: clamp(5rem, 13vw, 11rem);
  filter: grayscale(1);
  animation: rodarSuave 18s ease-in-out infinite;
}

/* Estadio */
.estadio {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-rows: auto 132px minmax(0, 1fr);
  height: 100svh;
  min-height: 0;
  overflow: hidden;
  overscroll-behavior: contain;
  padding: clamp(16px, 2.5vh, 28px) 0 16px;
  color: var(--crema);
  background:
    radial-gradient(ellipse at 50% 38%, rgba(226, 196, 112, 0.12), transparent 43%),
    radial-gradient(circle at 50% 3%, rgba(255, 243, 195, 0.08), transparent 31%),
    linear-gradient(#09271c, var(--verde-noche));
  box-shadow: inset 0 36px 100px rgba(0, 0, 0, 0.34), inset 0 -70px 110px rgba(0, 0, 0, 0.24);
}

.estadio::before,
.estadio::after {
  content: "";
  position: absolute;
  z-index: 0;
  pointer-events: none;
}

.estadio::before {
  inset: 0;
  opacity: 0.6;
  background: radial-gradient(ellipse at 50% 62%, rgba(218, 235, 204, 0.07), transparent 42%);
}

.estadio::after {
  right: 8%;
  bottom: 20%;
  left: 8%;
  height: 26%;
  opacity: 0.14;
  filter: blur(28px);
  background: linear-gradient(90deg, transparent, rgba(239, 245, 220, 0.35), transparent);
}

.estadio.entrando {
  animation: aparecer 650ms ease both;
}

.cabecera-estadio {
  position: relative;
  z-index: 3;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(340px, 460px) minmax(0, 0.82fr);
  grid-template-areas: "intro marcador contador";
  column-gap: clamp(20px, 3.2vw, 48px);
  align-items: center;
  padding-bottom: clamp(10px, 1.6vh, 18px);
  text-align: left;
}

.cabecera-estadio__intro {
  grid-area: intro;
  min-width: 0;
}

.cabecera-estadio__intro .eyebrow {
  margin-bottom: 5px;
  font-size: 0.66rem;
}

.cabecera-estadio__intro h2 {
  margin: 0;
  font-size: clamp(2.2rem, 3.35vw, 3.65rem);
  font-weight: 500;
  line-height: 0.98;
}

.cabecera-estadio__intro > p:not(.eyebrow) {
  max-width: 330px;
  margin: 8px 0 0;
  color: rgba(255, 248, 236, 0.66);
  font-size: 0.8rem;
  line-height: 1.35;
}

.contador-cabecera {
  grid-area: contador;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
  justify-self: end;
  width: min(100%, 290px);
  margin: 0;
  color: rgba(255, 248, 236, 0.74);
  font-family: var(--mono);
  font-size: 0.7rem;
  letter-spacing: 0.035em;
  text-align: right;
}

.contador-cabecera__desde {
  color: rgba(255, 248, 236, 0.76);
  font-size: 0.63rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.35;
  text-transform: uppercase;
}

.contador-cabecera__principal,
.contador-cabecera__detalle {
  display: block;
  line-height: 1.45;
}

.contador-cabecera__principal {
  color: rgba(255, 252, 243, 0.98);
  font-size: clamp(0.84rem, 1.18vw, 1.02rem);
  font-weight: 650;
}

.contador-cabecera__detalle {
  color: rgba(255, 248, 236, 0.82);
  font-size: clamp(0.69rem, 0.94vw, 0.82rem);
}

.contador-cabecera b {
  color: #f0c961;
  font-size: 1.22em;
  font-weight: 800;
  text-shadow: 0 0 13px rgba(229, 184, 76, 0.32);
}

.marcador {
  position: relative;
  isolation: isolate;
  grid-area: marcador;
  width: 100%;
  padding: 13px 22px 11px;
  overflow: hidden;
  color: #f1f7e9;
  background:
    repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.018) 0 2px, transparent 2px 4px),
    radial-gradient(ellipse at 50% 12%, rgba(135, 255, 190, 0.08), transparent 58%),
    #070e0b;
  border: 5px solid #424c46;
  border-bottom-color: #252c28;
  border-radius: 12px;
  box-shadow:
    inset 0 0 0 2px #111814,
    inset 0 0 42px rgba(0, 0, 0, 0.92),
    inset 0 10px 24px rgba(153, 255, 202, 0.025),
    0 18px 34px rgba(0, 0, 0, 0.42),
    0 0 0 2px #101512;
  cursor: pointer;
  font-family: var(--mono);
  transition: filter 250ms ease, box-shadow 250ms ease, transform 250ms ease;
}

.marcador::before,
.marcador::after {
  content: "";
  position: absolute;
  pointer-events: none;
}

.marcador::before {
  z-index: 1;
  inset: 4px;
  border: 1px solid rgba(169, 255, 205, 0.07);
  border-radius: 5px;
  box-shadow: inset 0 0 18px rgba(98, 255, 164, 0.035);
}

.marcador::after {
  z-index: 3;
  top: -50%;
  right: -10%;
  width: 55%;
  height: 160%;
  opacity: 0.13;
  background: linear-gradient(105deg, transparent 25%, rgba(255, 255, 255, 0.24), transparent 58%);
  transform: rotate(7deg);
}

.marcador__titulo,
.marcador__estado {
  position: relative;
  z-index: 2;
  display: block;
  color: #c1d2c8;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.14em;
}

.marcador__estado {
  color: rgba(210, 229, 216, 0.82);
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.08em;
}

.marcador__corazones {
  display: flex;
  gap: 7px;
  align-items: center;
  justify-content: flex-end;
  min-width: 74px;
  color: rgba(255, 248, 236, 0.56);
  font-family: var(--sans);
  font-size: 1.08rem;
  letter-spacing: 0;
  line-height: 1;
}

.marcador__corazon {
  display: inline-grid;
  width: 18px;
  place-items: center;
  transform-origin: center;
}

.marcador__corazon.completo {
  color: var(--rosa-claro);
  text-shadow: 0 0 8px rgba(235, 143, 163, 0.72), 0 0 18px rgba(229, 184, 76, 0.28);
  animation: llenarCorazon 620ms cubic-bezier(0.18, 1.45, 0.35, 1) both;
}

.marcador__equipos {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  margin: 4px 0 2px;
}

.marcador__equipos > span {
  display: grid;
  grid-template-columns: 1fr;
}

.marcador__equipos small {
  color: #d0ddd5;
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.marcador__equipos b {
  color: #e9ffc7;
  font-size: clamp(2.2rem, 4.7vh, 3.6rem);
  font-weight: 400;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  text-shadow: 0 0 8px rgba(207, 255, 152, 0.66), 0 0 23px rgba(158, 255, 133, 0.3);
}

.marcador__equipos b.cambio {
  animation: numeroGol 550ms ease;
}

.marcador__equipos em {
  color: #66746b;
  font-size: 2rem;
  font-style: normal;
}

.marcador--completo {
  box-shadow:
    inset 0 0 0 2px #161e19,
    inset 0 0 48px rgba(139, 255, 164, 0.12),
    0 18px 38px rgba(0, 0, 0, 0.48),
    0 0 26px rgba(229, 184, 76, 0.18);
  animation: marcadorVictoria 900ms ease both;
}

.progreso-amor {
  position: absolute;
  z-index: 14;
  right: clamp(18px, 3vw, 56px);
  bottom: clamp(18px, 2.6vh, 30px);
  display: grid;
  gap: 6px;
  justify-items: end;
  width: min(285px, calc(100% - 36px));
  padding: 0;
  color: var(--crema);
  background: transparent;
  border: 0;
  box-shadow: none;
  pointer-events: none;
  text-align: right;
}

.progreso-amor .marcador__corazones {
  gap: 10px;
  min-width: 0;
  color: #4f9fd5;
  font-size: 1.55rem;
  text-shadow: 0 1px 0 rgba(222, 241, 255, 0.4), 0 0 10px rgba(74, 169, 231, 0.72), 0 0 20px rgba(52, 132, 187, 0.42), 0 3px 10px rgba(0, 0, 0, 0.36);
}

.progreso-amor .marcador__corazon {
  width: 24px;
}

.progreso-amor .marcador__corazon.completo {
  color: #65bdf2;
  text-shadow: 0 1px 0 rgba(236, 248, 255, 0.56), 0 0 10px rgba(84, 188, 255, 0.95), 0 0 24px rgba(54, 151, 214, 0.72);
}

.progreso-amor strong {
  color: rgba(255, 248, 236, 0.92);
  font-family: var(--sans);
  font-size: 0.66rem;
  letter-spacing: 0.045em;
  line-height: 1.35;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.55);
}

.focos-estadio {
  position: absolute;
  z-index: 2;
  inset: 0 0 auto;
  display: flex;
  justify-content: space-around;
  pointer-events: none;
}

.focos-estadio i {
  width: 24vw;
  height: 420px;
  opacity: 0.045;
  filter: blur(3px);
  background: linear-gradient(to bottom, rgba(255, 247, 210, 0.72), transparent 82%);
  clip-path: polygon(46% 0, 54% 0, 100% 100%, 0 100%);
  transition: opacity 700ms ease, filter 700ms ease;
}

.estadio.encendido .focos-estadio i {
  opacity: 0.13;
}

.estadio.intensidad-dos .focos-estadio i {
  opacity: 0.2;
}

.estadio.hat-trick-activo .focos-estadio i {
  opacity: 0.38;
  filter: blur(1px);
  animation: focosVictoria 800ms ease-in-out infinite alternate;
}

.grada {
  position: relative;
  z-index: 4;
  height: auto;
  margin: 15px 0 17px;
  overflow: hidden;
  border-block: 1px solid rgba(255, 255, 255, 0.1);
  background:
    repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.035) 0 18px, transparent 19px 38px),
    #101b17;
  box-shadow: inset 0 -24px 38px rgba(0, 0, 0, 0.48), inset 0 16px 24px rgba(255, 255, 255, 0.018), 0 9px 22px rgba(0, 0, 0, 0.28);
  transform: perspective(700px) rotateX(-3deg);
}

.publico {
  position: absolute;
  z-index: 1;
  inset: 4px 0 34px;
  display: flex;
  flex-direction: column;
  gap: 0;
  justify-content: flex-start;
  overflow: hidden;
}

.publico__fila {
  display: flex;
  gap: clamp(5px, 0.62vw, 10px);
  align-items: flex-end;
  justify-content: center;
  min-height: 24px;
  transform: translateX(var(--desfase-fila, 0));
}

.publico__fila:nth-child(1) { z-index: 1; filter: blur(0.35px); }
.publico__fila:nth-child(2) { z-index: 2; margin-top: -7px; }
.publico__fila:nth-child(3) { z-index: 3; margin-top: -7px; }

.publico__fila i {
  position: relative;
  width: 9px;
  height: 17px;
  opacity: var(--opacidad-publico, 0.75);
  background: var(--color-publico, #686c60);
  border-radius: 50% 50% 4px 4px;
  transform-origin: bottom;
  transform: scale(var(--escala-publico, 1));
}

.publico__fila i::before {
  content: "";
  position: absolute;
  top: -6px;
  left: 1px;
  width: 7px;
  height: 7px;
  background: inherit;
  border-radius: 50%;
}

.publico.celebrando i {
  animation: saltarPublico 430ms ease-in-out infinite alternate var(--delay, 0ms);
}

.pancartas {
  position: absolute;
  z-index: 5;
  right: 0;
  bottom: 6px;
  left: 0;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 7px;
  margin-inline: auto;
  pointer-events: auto;
}

.pancartas::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: -6px;
  right: 1%;
  left: 1%;
  height: 2px;
  background: rgba(225, 209, 169, 0.58);
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.45);
}

.pancartas button {
  --giro-inicio: -0.8deg;
  --giro-final: 0.5deg;
  position: relative;
  display: grid;
  height: 50px;
  min-height: 50px;
  padding: 8px 7px 7px;
  overflow: visible;
  color: var(--verde-noche);
  background:
    linear-gradient(90deg, rgba(95, 69, 38, 0.12), transparent 15%, rgba(255, 255, 255, 0.3) 48%, transparent 80%, rgba(95, 69, 38, 0.12)),
    repeating-linear-gradient(0deg, transparent 0 7px, rgba(91, 67, 41, 0.035) 8px 9px),
    var(--papel);
  border: 1px solid rgba(73, 54, 30, 0.55);
  border-radius: 2px;
  box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.22), 0 8px 13px rgba(0, 0, 0, 0.38);
  clip-path: polygon(1% 2%, 99% 1%, 98% 98%, 2% 99%);
  cursor: pointer;
  font-family: var(--sans);
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.045em;
  line-height: 1.12;
  place-items: center;
  text-align: center;
  text-transform: uppercase;
  transform-origin: 50% 0;
  animation: pancartaOndea 3.6s ease-in-out infinite alternate;
  animation-delay: var(--retraso-pancarta, 0s);
}

.pancartas button::before {
  content: "";
  position: absolute;
  top: -1px;
  right: 12%;
  left: 12%;
  height: 9px;
  background:
    radial-gradient(circle at 5px 7px, #302a22 0 2px, #d8c69e 2.5px 4px, transparent 4.5px),
    radial-gradient(circle at calc(100% - 5px) 7px, #302a22 0 2px, #d8c69e 2.5px 4px, transparent 4.5px);
  pointer-events: none;
}

.pancartas button::after {
  content: "";
  position: absolute;
  inset: 4px 8px;
  opacity: 0.35;
  background: linear-gradient(105deg, transparent 35%, rgba(255, 255, 255, 0.55) 49%, transparent 62%);
  pointer-events: none;
}

.pancartas button:nth-child(even) {
  background:
    linear-gradient(90deg, rgba(102, 47, 61, 0.12), transparent 15%, rgba(255, 255, 255, 0.3) 48%, transparent 80%, rgba(102, 47, 61, 0.12)),
    repeating-linear-gradient(0deg, transparent 0 7px, rgba(102, 47, 61, 0.035) 8px 9px),
    var(--rosa-claro);
}

.pancartas button:nth-child(3n) {
  background:
    linear-gradient(90deg, rgba(83, 61, 25, 0.13), transparent 15%, rgba(255, 255, 255, 0.28) 48%, transparent 80%, rgba(83, 61, 25, 0.13)),
    repeating-linear-gradient(0deg, transparent 0 7px, rgba(91, 67, 41, 0.035) 8px 9px),
    #ead18c;
}

.pancartas button:nth-child(2) { --giro-inicio: 0.6deg; --giro-final: -0.4deg; --retraso-pancarta: -1.1s; }
.pancartas button:nth-child(3) { --giro-inicio: -0.3deg; --giro-final: 0.8deg; --retraso-pancarta: -2.2s; }
.pancartas button:nth-child(4) { --giro-inicio: 0.8deg; --giro-final: -0.6deg; --retraso-pancarta: -0.7s; }
.pancartas button:nth-child(5) { --giro-inicio: -0.7deg; --giro-final: 0.3deg; --retraso-pancarta: -1.8s; }
.pancartas button:nth-child(6) { --giro-inicio: 0.4deg; --giro-final: -0.8deg; --retraso-pancarta: -2.7s; }

.pancartas button:hover {
  z-index: 2;
  animation-play-state: paused;
  filter: brightness(1.08);
  transform: translateY(-3px) rotate(0);
}

.zona-juego {
  position: relative;
  z-index: 4;
  width: min(1040px, calc(100% - 140px));
  align-self: start;
  margin-top: 4px;
}

.campo {
  position: relative;
  isolation: isolate;
  width: 100%;
  aspect-ratio: 16 / 8.8;
  max-height: 690px;
  overflow: visible;
  touch-action: none;
  background:
    radial-gradient(ellipse at 50% 44%, rgba(244, 244, 185, 0.075), transparent 54%),
    repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.026) 0 12.5%, rgba(0, 0, 0, 0.022) 12.5% 25%),
    linear-gradient(90deg, #25613a, #39774a 50%, #28643c);
  border: 4px solid rgba(255, 248, 236, 0.82);
  box-shadow: inset 0 0 118px rgba(2, 22, 11, 0.44), inset 0 -28px 50px rgba(1, 23, 10, 0.2), var(--sombra);
}

.campo__textura {
  position: absolute;
  z-index: -1;
  inset: 0;
  opacity: 0.065;
  pointer-events: none;
  background-image:
    repeating-radial-gradient(circle at 30% 60%, transparent 0 4px, rgba(255, 255, 255, 0.1) 5px 6px),
    radial-gradient(circle at 50% 46%, rgba(255, 255, 218, 0.22), transparent 52%);
}

.linea,
.circulo-central,
.punto-central,
.area {
  position: absolute;
  pointer-events: none;
}

.linea--mitad {
  top: 0;
  bottom: 0;
  left: 50%;
  width: 3px;
  background: rgba(255, 255, 255, 0.68);
  transform: translateX(-50%);
}

.circulo-central {
  top: 50%;
  left: 50%;
  width: 18%;
  aspect-ratio: 1;
  border: 3px solid rgba(255, 255, 255, 0.68);
  border-radius: 50%;
  transform: translate(-50%, -50%);
}

.punto-central {
  top: 50%;
  left: 50%;
  width: 8px;
  height: 8px;
  background: rgba(255, 255, 255, 0.8);
  border-radius: 50%;
  transform: translate(-50%, -50%);
}

.area {
  top: 22%;
  width: 16%;
  height: 56%;
  border: 3px solid rgba(255, 255, 255, 0.68);
}

.area i {
  position: absolute;
  top: 22%;
  width: 42%;
  height: 56%;
  border: 3px solid rgba(255, 255, 255, 0.68);
}

.area--izq {
  left: -3px;
  border-left: 0;
}

.area--izq i {
  left: 0;
  border-left: 0;
}

.area--der {
  right: -3px;
  border-right: 0;
}

.area--der i {
  right: 0;
  border-right: 0;
}

.porteria {
  position: absolute;
  z-index: 3;
  top: 31%;
  width: 6.5%;
  height: 38%;
  pointer-events: none;
  border: 4px solid rgba(242, 240, 222, 0.88);
  box-shadow: 0 13px 18px rgba(0, 0, 0, 0.36), inset 0 0 14px rgba(255, 255, 255, 0.09);
  background:
    repeating-linear-gradient(0deg, transparent 0 10px, rgba(245, 247, 237, 0.25) 11px 12px),
    repeating-linear-gradient(90deg, transparent 0 10px, rgba(245, 247, 237, 0.25) 11px 12px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.035), rgba(0, 0, 0, 0.07));
  filter: drop-shadow(0 12px 10px rgba(0, 0, 0, 0.2));
  transform: perspective(110px) rotateY(var(--giro-red)) translateZ(4px);
  transform-origin: var(--origen-red);
}

.porteria::after {
  content: "";
  position: absolute;
  right: -9px;
  bottom: -20px;
  left: -9px;
  height: 17px;
  opacity: 0.48;
  filter: blur(6px);
  background: radial-gradient(ellipse, rgba(0, 0, 0, 0.65), transparent 70%);
  transform: perspective(80px) rotateX(62deg);
}

.porteria--izq {
  left: -6.5%;
  --giro-red: 13deg;
  --origen-red: right;
}

.porteria--der {
  right: -6.5%;
  --giro-red: -13deg;
  --origen-red: left;
}

.porteria.gol {
  animation: redGol 470ms ease-in-out 3;
}

.porteria.gol--decisivo {
  animation: redGolFinal 560ms cubic-bezier(0.2, 0.85, 0.3, 1) 5;
}

.balon-sombra {
  position: absolute;
  z-index: 8;
  width: clamp(40px, 4.5vw, 58px);
  height: 15px;
  opacity: 0.38;
  filter: blur(5px);
  pointer-events: none;
  background: radial-gradient(ellipse, rgba(0, 0, 0, 0.68), rgba(0, 0, 0, 0.08) 68%, transparent 72%);
  border-radius: 50%;
  transform-origin: center;
  will-change: left, top, opacity, transform;
}

.balon {
  position: absolute;
  z-index: 10;
  top: 50%;
  left: 50%;
  display: grid;
  width: clamp(44px, 4.7vw, 60px);
  min-height: 0;
  aspect-ratio: 1;
  padding: 0;
  border: 0;
  border-radius: 50%;
  cursor: grab;
  user-select: none;
  place-items: center;
  font-size: clamp(37px, 4.45vw, 54px);
  line-height: 1;
  filter: drop-shadow(1px 3px 2px rgba(0, 0, 0, 0.22));
  transform: translate(-50%, -50%);
  transform-origin: center;
  will-change: left, top, transform;
}

.balon::after {
  content: "";
  position: absolute;
  top: 13%;
  left: 19%;
  width: 22%;
  aspect-ratio: 1;
  opacity: 0.48;
  pointer-events: none;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.92), transparent 68%);
  border-radius: 50%;
}

.balon:active,
.balon.arrastrando {
  cursor: grabbing;
  filter: drop-shadow(1px 2px 2px rgba(0, 0, 0, 0.32));
}

.balon.disparado {
  filter: drop-shadow(0 0 7px rgba(255, 247, 208, 0.34));
}

.balon.balon--desinflandose {
  animation: desinflarBalon 820ms cubic-bezier(0.3, 0.02, 0.36, 1) both;
}

.balon.balon--desinflado {
  filter: grayscale(0.32) drop-shadow(1px 2px 2px rgba(0, 0, 0, 0.3));
  transform: translate(-50%, -50%) rotate(-8deg) scaleX(1.08) scaleY(0.48) !important;
}

.balon.balon--reparado {
  filter:
    drop-shadow(0 0 5px rgba(229, 184, 76, 0.62))
    drop-shadow(1px 3px 2px rgba(0, 0, 0, 0.22));
}

.balon.balon--reparado::before {
  content: "♥";
  position: absolute;
  z-index: 2;
  right: -5%;
  bottom: 2%;
  display: grid;
  width: 34%;
  aspect-ratio: 1;
  color: #fff7e9;
  background: linear-gradient(145deg, #c75d70, #913a4a);
  border: 1px solid rgba(255, 239, 213, 0.85);
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(229, 184, 76, 0.78);
  place-items: center;
  font-size: 0.22em;
  line-height: 1;
  transform: rotate(8deg);
  animation: brilloParche 2.8s ease-in-out infinite;
}

.linea-tiro {
  position: absolute;
  z-index: 7;
  display: none;
  height: 3px;
  border-radius: 4px;
  pointer-events: none;
  background: repeating-linear-gradient(90deg, var(--dorado) 0 9px, transparent 9px 16px);
  transform-origin: left center;
}

.linea-tiro.visible {
  display: block;
}

.estela {
  position: absolute;
  z-index: 6;
  width: 44px;
  height: 12px;
  opacity: 0;
  border-radius: 50%;
  pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.35));
  transform-origin: right center;
}

.estela.visible {
  opacity: 0.7;
}

.instrucciones {
  position: absolute;
  z-index: 9;
  left: 50%;
  bottom: 5%;
  display: grid;
  gap: 4px;
  width: min(330px, 78%);
  padding: 14px 18px;
  color: var(--texto-oscuro);
  background: rgba(255, 248, 236, 0.94);
  border: 1px solid rgba(255, 255, 255, 0.75);
  border-radius: 12px;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.2);
  text-align: center;
  transform: translateX(-50%);
  transition: opacity 250ms ease, transform 250ms ease;
}

.instrucciones strong {
  font-family: var(--serif);
  font-size: 1.05rem;
}

.instrucciones span,
.instrucciones small {
  font-size: 0.77rem;
  line-height: 1.35;
}

.instrucciones.ocultas {
  opacity: 0;
  transform: translate(-50%, 12px);
  pointer-events: none;
}

.celebracion {
  position: absolute;
  z-index: 30;
  inset: 0;
  display: grid;
  place-content: center;
  padding: 30px;
  color: var(--crema);
  background: radial-gradient(circle, rgba(13, 48, 37, 0.58), rgba(4, 16, 12, 0.78));
  text-align: center;
  animation: aparecer 250ms ease;
}

.celebracion--hat-trick {
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 46%, rgba(229, 184, 76, 0.25), transparent 28%),
    radial-gradient(circle, rgba(13, 48, 37, 0.66), rgba(3, 13, 9, 0.9));
}

.celebracion--hat-trick::before {
  content: "";
  position: absolute;
  inset: -45%;
  opacity: 0.28;
  pointer-events: none;
  background: repeating-conic-gradient(from 0deg, rgba(255, 243, 190, 0.2) 0 7deg, transparent 7deg 22deg);
  animation: rayosVictoria 8s linear infinite;
}

.celebracion--hat-trick > * {
  position: relative;
  z-index: 1;
}

.celebracion--hat-trick .celebracion__titulo {
  font-size: clamp(4rem, 13vw, 10rem);
  animation: hatTrickTexto 900ms cubic-bezier(0.16, 1.4, 0.3, 1) both;
}

.celebracion__titulo {
  margin: 0;
  color: var(--dorado);
  font-family: var(--serif);
  font-size: clamp(3.4rem, 12vw, 9rem);
  font-weight: 800;
  letter-spacing: -0.05em;
  line-height: 0.9;
  text-shadow: 0 7px 0 var(--rojo-romantico), 0 18px 35px rgba(0, 0, 0, 0.38);
  animation: golTexto 650ms cubic-bezier(0.2, 1.6, 0.4, 1);
}

.celebracion > strong {
  margin-top: 20px;
  color: var(--rosa-claro);
  font-size: clamp(1rem, 2vw, 1.3rem);
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.celebracion > p:not(.celebracion__titulo) {
  width: min(540px, 100%);
  margin: 9px auto 26px;
  font-family: var(--serif);
  font-size: clamp(1rem, 2vw, 1.35rem);
}

/* Primer premio después del primer gol */
.primer-premio {
  position: fixed;
  z-index: 108;
  inset: 0;
  display: grid;
  overflow: auto;
  padding: clamp(14px, 3vw, 34px);
  color: var(--texto-oscuro);
  background:
    radial-gradient(circle at 50% 42%, rgba(229, 184, 76, 0.2), transparent 32%),
    rgba(2, 18, 12, 0.92);
  backdrop-filter: blur(7px);
  place-items: center;
  animation: aparecer 360ms ease both;
}

.primer-premio__panel {
  position: relative;
  width: min(700px, 100%);
  max-height: calc(100svh - 28px);
  overflow: auto;
  padding: clamp(28px, 4.5vw, 48px);
  background:
    linear-gradient(rgba(255, 255, 255, 0.14), rgba(255, 255, 255, 0.14)),
    #fff5e3;
  border: 1px solid rgba(229, 184, 76, 0.58);
  border-radius: 14px;
  box-shadow: 0 32px 85px rgba(0, 0, 0, 0.5), inset 0 0 0 5px rgba(255, 255, 255, 0.28);
  text-align: center;
  scrollbar-width: thin;
}

.primer-premio__panel::before,
.primer-premio__panel::after {
  content: "";
  position: absolute;
  width: 52px;
  height: 52px;
  pointer-events: none;
  border-color: var(--dorado);
  opacity: 0.58;
}

.primer-premio__panel::before {
  top: 13px;
  left: 13px;
  border-top: 2px solid;
  border-left: 2px solid;
}

.primer-premio__panel::after {
  right: 13px;
  bottom: 13px;
  border-right: 2px solid;
  border-bottom: 2px solid;
}

.primer-premio__intro,
.primer-premio__contenido {
  position: relative;
  z-index: 1;
  display: grid;
  justify-items: center;
}

.primer-premio .eyebrow {
  margin: 0 0 10px;
  color: #9a6d16;
  font-size: 0.72rem;
  letter-spacing: 0.22em;
}

.primer-premio h3 {
  margin: 0;
  color: var(--verde-noche);
  font-family: var(--serif);
  font-size: clamp(2.5rem, 7vw, 4.8rem);
  letter-spacing: -0.045em;
  line-height: 0.92;
  text-wrap: balance;
}

.primer-premio__intro > p:not(.eyebrow) {
  width: min(520px, 100%);
  margin: 18px auto 22px;
  color: #64523f;
  font-family: var(--serif);
  font-size: clamp(1rem, 2vw, 1.24rem);
  line-height: 1.45;
}

.sobre-premio {
  position: relative;
  width: min(350px, 78vw);
  aspect-ratio: 1.62;
  padding: 0;
  background: transparent;
  border: 0;
  cursor: pointer;
  filter: drop-shadow(0 22px 20px rgba(58, 41, 24, 0.3));
  perspective: 1000px;
  animation: sobreFlota 3.6s ease-in-out infinite;
}

.sobre-premio:focus-visible {
  outline: 3px solid var(--dorado);
  outline-offset: 7px;
  border-radius: 8px;
}

.sobre-premio__cuerpo {
  position: absolute;
  z-index: 3;
  inset: 0;
  overflow: hidden;
  background: #f1d49d;
  border: 1px solid #d3aa62;
  border-radius: 5px;
  clip-path: polygon(0 0, 50% 54%, 100% 0, 100% 100%, 0 100%);
}

.sobre-premio__cuerpo::before,
.sobre-premio__cuerpo::after {
  content: "";
  position: absolute;
  bottom: 0;
  width: 65%;
  height: 100%;
  background: #f8e5bd;
}

.sobre-premio__cuerpo::before {
  left: 0;
  clip-path: polygon(0 0, 100% 100%, 0 100%);
}

.sobre-premio__cuerpo::after {
  right: 0;
  clip-path: polygon(100% 0, 100% 100%, 0 100%);
}

.sobre-premio__solapa {
  position: absolute;
  z-index: 4;
  inset: 0 0 auto;
  height: 58%;
  background: linear-gradient(155deg, #fff0cf, #eac98c);
  border: 1px solid #d3aa62;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  transform-origin: top;
  transition: transform 760ms ease, z-index 0s 360ms;
}

.sobre-premio__carta {
  position: absolute;
  z-index: 2;
  top: 12%;
  left: 8%;
  display: grid;
  width: 84%;
  height: 80%;
  align-content: center;
  color: var(--verde-noche);
  background: #fffaf0;
  border: 1px solid rgba(99, 67, 31, 0.18);
  border-radius: 3px;
  box-shadow: 0 4px 12px rgba(62, 42, 20, 0.16);
  transition: transform 900ms 300ms cubic-bezier(0.2, 0.9, 0.3, 1);
}

.sobre-premio__carta b {
  color: var(--rojo-romantico);
  font-size: clamp(1.2rem, 4vw, 1.8rem);
  letter-spacing: 0.12em;
}

.sobre-premio__carta small {
  margin-top: 8px;
  font-family: var(--serif);
  font-size: 1rem;
  font-style: italic;
}

.sobre-premio__sello {
  position: absolute;
  z-index: 5;
  top: 48%;
  left: 50%;
  display: grid;
  width: 58px;
  aspect-ratio: 1;
  color: #fff5e3;
  background: radial-gradient(circle at 34% 28%, #e88fa0, #b94557 70%);
  border: 4px double rgba(255, 244, 225, 0.55);
  border-radius: 50%;
  box-shadow: 0 7px 16px rgba(96, 32, 43, 0.32);
  place-items: center;
  font-size: 1.45rem;
  transform: translate(-50%, -50%);
  transition: opacity 260ms ease, transform 260ms ease;
}

.sobre-premio:not(.abierto):hover .sobre-premio__sello {
  transform: translate(-50%, -50%) scale(1.1);
}

.sobre-premio.abierto {
  animation-play-state: paused;
}

.sobre-premio.abierto .sobre-premio__solapa {
  z-index: 1;
  transform: rotateX(180deg);
}

.sobre-premio.abierto .sobre-premio__carta {
  z-index: 5;
  transform: translateY(-52%);
}

.sobre-premio.abierto .sobre-premio__sello {
  opacity: 0;
  transform: translate(-50%, -50%) scale(0.5);
}

.primer-premio__ayuda {
  margin-top: 8px;
  color: #7b6a55;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.primer-premio__contenido {
  animation: cartaSale 480ms ease both;
}

.primer-premio__contenido h3 {
  font-size: clamp(2.15rem, 6vw, 3.8rem);
}

.primer-premio__video-marco {
  display: grid;
  width: min(520px, 100%);
  aspect-ratio: 16 / 9;
  margin: 22px 0;
  overflow: hidden;
  color: var(--crema);
  background:
    radial-gradient(circle at 50% 40%, rgba(229, 184, 76, 0.2), transparent 34%),
    linear-gradient(145deg, #153d30, #061b13);
  border: 2px solid rgba(229, 184, 76, 0.72);
  border-radius: 8px;
  box-shadow: 0 17px 36px rgba(0, 0, 0, 0.27);
  place-items: center;
}

.primer-premio__video-marco--vertical {
  width: auto;
  height: min(60vh, 550px);
  max-width: 100%;
}

.primer-premio__video {
  display: block;
  width: 100%;
  height: 100%;
  background: #020a07;
  object-fit: contain;
}

.primer-premio__video-espera {
  display: grid;
  gap: 5px;
  justify-items: center;
}

.primer-premio__video-espera > span {
  display: grid;
  width: 58px;
  aspect-ratio: 1;
  margin-bottom: 8px;
  padding-left: 4px;
  color: var(--verde-noche);
  background: var(--dorado);
  border-radius: 50%;
  box-shadow: 0 0 24px rgba(229, 184, 76, 0.28);
  place-items: center;
}

.primer-premio__video-espera strong {
  font-family: var(--serif);
  font-size: clamp(1.05rem, 2.5vw, 1.4rem);
}

.primer-premio__video-espera small {
  color: rgba(255, 247, 233, 0.7);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

/* Parada técnica después del segundo gol */
.parada-tecnica {
  position: fixed;
  z-index: 110;
  inset: 0;
  display: grid;
  overflow: auto;
  padding: clamp(16px, 3vw, 38px);
  color: var(--texto-oscuro);
  background:
    radial-gradient(circle at 50% 44%, rgba(229, 184, 76, 0.18), transparent 34%),
    rgba(2, 18, 12, 0.91);
  backdrop-filter: blur(7px);
  place-items: center;
  touch-action: auto;
  animation: aparecer 360ms ease both;
}

.parada-tecnica__panel {
  position: relative;
  width: min(720px, 100%);
  min-height: min(600px, calc(100svh - 48px));
  max-height: calc(100svh - 32px);
  overflow: auto;
  padding: clamp(26px, 4.6vw, 50px);
  background:
    linear-gradient(rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.18)),
    #fff5e3;
  border: 1px solid rgba(229, 184, 76, 0.5);
  border-radius: 14px;
  box-shadow: 0 32px 85px rgba(0, 0, 0, 0.48), inset 0 0 0 5px rgba(255, 255, 255, 0.26);
  scrollbar-width: thin;
}

.parada-tecnica__panel::before,
.parada-tecnica__panel::after {
  content: "";
  position: absolute;
  width: 56px;
  height: 56px;
  pointer-events: none;
  border-color: var(--dorado);
  opacity: 0.56;
}

.parada-tecnica__panel::before {
  top: 14px;
  left: 14px;
  border-top: 2px solid;
  border-left: 2px solid;
}

.parada-tecnica__panel::after {
  right: 14px;
  bottom: 14px;
  border-right: 2px solid;
  border-bottom: 2px solid;
}

.parada-tecnica__intro {
  display: grid;
  min-height: min(500px, calc(100svh - 150px));
  align-content: center;
  justify-items: center;
  text-align: center;
}

.parada-tecnica__icono {
  display: grid;
  width: 70px;
  aspect-ratio: 1;
  margin-bottom: 24px;
  color: #173c2e;
  background: var(--dorado);
  border: 5px solid rgba(23, 60, 46, 0.15);
  border-radius: 50%;
  box-shadow: 0 12px 28px rgba(77, 54, 18, 0.22);
  place-items: center;
  font-family: var(--sans);
  font-size: 2rem;
  font-weight: 900;
  animation: avisoTecnico 1.5s ease-in-out infinite;
}

.parada-tecnica .eyebrow {
  margin: 0 0 12px;
  color: #9a6d16;
  font-size: 0.7rem;
  letter-spacing: 0.2em;
}

.parada-tecnica h3 {
  margin: 0;
  color: var(--verde-noche);
  font-family: var(--serif);
  font-size: clamp(2.25rem, 6.8vw, 4.6rem);
  font-weight: 700;
  letter-spacing: -0.045em;
  line-height: 0.92;
  text-wrap: balance;
}

.parada-tecnica__intro > p:not(.eyebrow) {
  width: min(510px, 100%);
  margin: 22px auto 28px;
  color: #5f503d;
  font-family: var(--serif);
  font-size: clamp(1.08rem, 2vw, 1.35rem);
  line-height: 1.45;
}

.taller-reparacion {
  animation: tallerEntra 420ms cubic-bezier(0.2, 0.82, 0.26, 1) both;
}

.taller-reparacion__cabecera {
  text-align: center;
}

.taller-reparacion__cabecera h3 {
  font-size: clamp(1.8rem, 4.5vw, 3.15rem);
}

.taller-reparacion__cabecera > p:last-child {
  margin: 12px 0 10px;
  color: #665844;
  line-height: 1.45;
}

.mesa-reparacion {
  position: relative;
  width: min(520px, 100%);
  height: 188px;
  margin: 14px auto 5px;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px) 0 0 / 32px 32px,
    linear-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1px) 0 0 / 32px 32px,
    linear-gradient(145deg, #153e30, #08271d);
  border: 1px solid rgba(229, 184, 76, 0.45);
  border-radius: 13px;
  box-shadow: inset 0 12px 30px rgba(0, 0, 0, 0.22);
  touch-action: none;
}

.balon-taller {
  position: absolute;
  top: 50%;
  left: 64%;
  display: grid;
  width: 138px;
  aspect-ratio: 1;
  place-items: center;
  transform: translate(-50%, -50%) rotate(-7deg) scaleY(0.79);
}

.balon-taller__icono {
  filter: grayscale(0.18) drop-shadow(0 10px 11px rgba(0, 0, 0, 0.34));
  font-size: 126px;
  line-height: 1;
}

.zona-pinchazo {
  position: absolute;
  z-index: 2;
  top: 43%;
  left: 61%;
  width: 38px;
  aspect-ratio: 1;
  border: 2px dashed var(--dorado);
  border-radius: 50%;
  box-shadow: 0 0 0 6px rgba(229, 184, 76, 0.15), 0 0 16px rgba(229, 184, 76, 0.75);
  transform: translate(-50%, -50%);
  animation: zonaPinchazo 1.4s ease-in-out infinite;
}

.zona-pinchazo.completada {
  border-style: solid;
  animation: none;
}

.parche-corazon {
  position: absolute;
  z-index: 4;
  top: 50%;
  left: 15%;
  display: grid;
  width: 58px;
  min-height: 58px;
  padding: 0;
  color: #fff9ed;
  background: linear-gradient(145deg, #d66f82, #a03f52);
  border: 2px solid rgba(255, 239, 213, 0.9);
  border-radius: 50%;
  box-shadow: 0 9px 18px rgba(0, 0, 0, 0.33), inset 0 1px 6px rgba(255, 255, 255, 0.28);
  cursor: grab;
  place-items: center;
  font-size: 1.55rem;
  line-height: 1;
  transform: translate(-50%, -50%);
  transition: box-shadow 180ms ease, filter 180ms ease;
  touch-action: none;
}

.parche-corazon:hover,
.parche-corazon:focus-visible {
  box-shadow: 0 0 0 4px rgba(229, 184, 76, 0.35), 0 10px 20px rgba(0, 0, 0, 0.36);
}

.parche-corazon.arrastrando {
  cursor: grabbing;
  filter: brightness(1.08);
  transition: none;
}

.parche-corazon.colocado {
  cursor: default;
  box-shadow: 0 0 18px rgba(229, 184, 76, 0.85), 0 8px 14px rgba(0, 0, 0, 0.3);
  animation: parcheColocado 520ms cubic-bezier(0.2, 1.4, 0.4, 1) both;
}

.parche-corazon:disabled {
  opacity: 1;
}

.parche-corazon.rebota {
  animation: parcheRebota 360ms ease;
}

.ayuda-reparacion {
  margin: 5px 0 14px;
  color: #756650;
  font-size: 0.78rem;
  text-align: center;
}

.inflado-balon {
  display: grid;
  animation: tallerEntra 330ms ease both;
}

.presion-cabecera {
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: var(--verde-noche);
  font-family: var(--mono);
  font-size: 0.75rem;
  letter-spacing: 0.08em;
}

.presion-cabecera output {
  color: #a24656;
  font-family: var(--sans);
  font-size: 1.35rem;
  font-weight: 900;
  letter-spacing: -0.04em;
}

.barra-presion {
  height: 13px;
  margin: 7px 0 8px;
  overflow: hidden;
  background: #d9cfbd;
  border: 1px solid rgba(44, 65, 54, 0.2);
  border-radius: 999px;
  box-shadow: inset 0 2px 5px rgba(0, 0, 0, 0.16);
}

.barra-presion span {
  display: block;
  width: 0;
  height: 100%;
  background: linear-gradient(90deg, #bb5265, var(--dorado) 54%, #4c9a61);
  border-radius: inherit;
  box-shadow: 0 0 12px rgba(229, 184, 76, 0.58);
  transition: width 90ms linear;
}

.estado-presion {
  min-height: 1.25em;
  margin: 0 0 10px;
  color: #5c4e3b;
  font-size: 0.82rem;
  font-weight: 700;
  text-align: center;
}

.boton-inflar {
  width: min(300px, 100%);
  margin: 0 auto;
  user-select: none;
  touch-action: none;
}

.boton-inflar.inflando {
  box-shadow: 0 0 0 5px rgba(229, 184, 76, 0.24), 0 10px 24px rgba(82, 57, 15, 0.2);
  transform: translateY(2px) scale(0.985);
}

.inflado-balon > small {
  margin-top: 6px;
  color: #786a55;
  text-align: center;
}

.hitos-presion {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 6px;
  margin: 13px 0 0;
  padding: 0;
  list-style: none;
}

.hitos-presion li {
  display: grid;
  gap: 3px;
  padding-top: 8px;
  color: #897b66;
  border-top: 2px solid #d5c9b5;
  font-size: 0.64rem;
  line-height: 1.2;
  transition: color 180ms ease, border-color 180ms ease;
}

.hitos-presion li b {
  color: inherit;
  font-family: var(--mono);
}

.hitos-presion li.alcanzado {
  color: #1d6043;
  border-color: #4e9b64;
}

.revision-tecnica {
  display: grid;
  min-height: min(500px, calc(100svh - 150px));
  align-content: center;
  justify-items: center;
  text-align: center;
  animation: revisionAprobada 650ms cubic-bezier(0.18, 0.9, 0.24, 1) both;
}

.revision-tecnica__sello {
  display: grid;
  width: 62px;
  aspect-ratio: 1;
  margin-bottom: 18px;
  color: #fff8e9;
  background: #397f4c;
  border: 5px solid rgba(255, 255, 255, 0.44);
  border-radius: 50%;
  box-shadow: 0 0 0 4px #397f4c, 0 13px 24px rgba(40, 92, 58, 0.25);
  place-items: center;
  font-size: 2rem;
  font-weight: 900;
}

.revision-tecnica h3 {
  font-size: clamp(2rem, 5vw, 3.8rem);
}

.revision-tecnica dl {
  display: grid;
  width: min(490px, 100%);
  margin: 22px auto 18px;
  border-top: 1px solid rgba(47, 63, 53, 0.18);
}

.revision-tecnica dl div {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
  padding: 8px 6px;
  border-bottom: 1px solid rgba(47, 63, 53, 0.13);
}

.revision-tecnica dt {
  color: #73634d;
  text-align: right;
}

.revision-tecnica dd {
  margin: 0;
  color: var(--verde-noche);
  font-weight: 900;
  text-align: left;
}

.revision-tecnica__frase {
  width: min(510px, 100%);
  margin: 0 auto 15px;
  color: #6d4d27;
  font-family: var(--serif);
  font-size: clamp(1rem, 2.4vw, 1.25rem);
  font-style: italic;
}

.potencia-especial {
  color: #a24656;
  font-size: 0.84rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.revision-tecnica .boton {
  margin-top: 22px;
}

.fuegos i {
  position: absolute;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  box-shadow: 0 -42px var(--dorado), 30px -30px var(--rosa), 42px 0 var(--dorado), 30px 30px var(--rosa), 0 42px var(--dorado), -30px 30px var(--rosa), -42px 0 var(--dorado), -30px -30px var(--rosa);
  animation: fuego 1.1s ease-out infinite;
}

.fuegos i:nth-child(1) { top: 27%; left: 20%; }
.fuegos i:nth-child(2) { top: 20%; right: 18%; animation-delay: 300ms; }
.fuegos i:nth-child(3) { right: 30%; bottom: 21%; animation-delay: 600ms; }

.capa-partido-completo {
  position: absolute;
  z-index: 35;
  inset: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
  align-items: center;
  justify-content: center;
  padding: 24px;
  color: var(--crema);
  background: rgba(4, 19, 13, 0.8);
  backdrop-filter: blur(3px);
  text-align: center;
  animation: aparecer 550ms ease;
}

.capa-partido-completo .copa {
  font-size: clamp(3.2rem, 9vw, 6.5rem);
  filter: drop-shadow(0 13px 25px rgba(0, 0, 0, 0.32));
}

.capa-partido-completo strong {
  margin-bottom: 8px;
  font-family: var(--serif);
  font-size: clamp(1.3rem, 3vw, 2.1rem);
}

.estadio.sacudida {
  animation: sacudir 380ms ease;
}

.estadio.sacudida-final {
  animation: sacudirFinal 780ms ease;
}

/* Premio y carta */
.contenido-bloqueado.desbloqueado {
  animation: aparecer 900ms ease both;
}

.premio {
  position: relative;
  padding: 120px 20px 130px;
  background: var(--papel);
}

.destello-fondo {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(circle at 50% 25%, rgba(233, 154, 169, 0.36), transparent 31%);
}

.premio__cabecera {
  position: relative;
  text-align: center;
}

.premio__cabecera h2 {
  margin: 0 0 60px;
  color: var(--verde-noche);
  font-size: clamp(3rem, 9vw, 7.6rem);
  font-weight: 500;
  letter-spacing: -0.05em;
}

.premio__cabecera em {
  color: var(--rojo-romantico);
  font-weight: 400;
}

.polaroids {
  position: relative;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 370px;
  margin-bottom: 30px;
}

.polaroid {
  width: min(260px, 30vw);
  padding: 12px 12px 36px;
  color: var(--texto-oscuro);
  background: #fffdfa;
  border: 0;
  box-shadow: 0 23px 55px rgba(71, 50, 38, 0.25);
  cursor: pointer;
  transform: rotate(var(--giro, 0deg)) translateY(var(--y, 0));
  transition: transform 250ms ease, z-index 0s;
  animation: polaroidEntra 650ms ease both var(--delay, 0ms);
}

.polaroid:nth-child(1) { --giro: -8deg; margin-right: -50px; --y: 18px; }
.polaroid:nth-child(2) { z-index: 2; width: min(310px, 34vw); }
.polaroid:nth-child(3) { --giro: 7deg; margin-left: -50px; --y: 22px; }

.polaroid:hover {
  z-index: 5;
  transform: rotate(0) translateY(-12px) scale(1.04);
}

.marco-foto {
  position: relative;
  display: grid;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  color: rgba(255, 248, 236, 0.84);
  background: linear-gradient(135deg, var(--verde-profundo), var(--rosa));
  place-items: center;
}

.marco-foto img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.marco-video-polaroid video {
  width: 100%;
  height: 100%;
  background: #071b14;
  object-fit: cover;
}

.marco-video-polaroid__play {
  position: absolute;
  z-index: 2;
  display: grid;
  width: 54px;
  aspect-ratio: 1;
  padding: 0 0 0 4px !important;
  color: #fff8ec;
  background: rgba(167, 55, 74, 0.9);
  border: 3px solid rgba(255, 248, 236, 0.82);
  border-radius: 50%;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.32);
  place-items: center;
  font-family: var(--sans) !important;
  font-size: 1.2rem !important;
}

.marco-foto span {
  padding: 20px;
  font-family: var(--serif);
  font-size: 0.86rem;
  text-align: center;
}

.polaroid > span {
  display: block;
  margin-top: 14px;
  font-family: var(--serif);
  font-size: 0.9rem;
  text-align: center;
}

.polaroid small {
  display: block;
  color: #7a8078;
  font-family: var(--sans);
  font-size: 0.62rem;
  text-align: center;
}

.sobre-zona {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 360px;
}

.sobre {
  position: relative;
  width: min(440px, 82vw);
  aspect-ratio: 1.65;
  margin-bottom: 0;
  filter: drop-shadow(0 24px 24px rgba(70, 49, 30, 0.24));
  animation: sobreFlota 4s ease-in-out infinite;
  perspective: 1000px;
}

.sobre__papel {
  position: absolute;
  z-index: 2;
  inset: 0;
  overflow: hidden;
  background: #f4dcae;
  border: 1px solid #d4b986;
  clip-path: polygon(0 0, 50% 54%, 100% 0, 100% 100%, 0 100%);
}

.sobre__papel::before,
.sobre__papel::after {
  content: "";
  position: absolute;
  bottom: 0;
  width: 72%;
  height: 100%;
  background: #f9e7c3;
}

.sobre__papel::before { left: 0; clip-path: polygon(0 0, 100% 100%, 0 100%); }
.sobre__papel::after { right: 0; clip-path: polygon(100% 0, 100% 100%, 0 100%); }

.sobre__solapa {
  position: absolute;
  z-index: 4;
  inset: 0 0 auto;
  height: 58%;
  background: #ffedc9;
  border-top: 1px solid #d4b986;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  transform-origin: top;
  transition: transform 750ms ease, z-index 0s 300ms;
}

.sobre__carta-mini {
  position: absolute;
  z-index: 1;
  top: 12%;
  left: 9%;
  width: 82%;
  height: 82%;
  background: var(--crema);
  border: 1px solid #e2ceb0;
  transition: transform 900ms 450ms cubic-bezier(0.2, 0.9, 0.3, 1);
}

.sobre__sello {
  position: absolute;
  z-index: 5;
  top: 45%;
  left: 50%;
  display: grid;
  width: 54px;
  min-height: 54px;
  height: 54px;
  padding: 0;
  color: var(--rosa-claro);
  background: var(--rojo-romantico);
  border: 4px double #92353e;
  border-radius: 50%;
  box-shadow: 0 8px 18px rgba(95, 30, 40, 0.3), inset 0 0 10px rgba(255, 255, 255, 0.1);
  cursor: pointer;
  font-family: var(--serif);
  font-size: 1rem;
  place-items: center;
  transform: translate(-50%, -50%);
  transition: opacity 300ms ease, transform 300ms ease;
}

.sobre:not(.abierto) .sobre__sello:hover {
  transform: translate(-50%, -50%) scale(1.1);
}

.sobre__sello:focus-visible {
  outline: 3px solid var(--dorado);
  outline-offset: 4px;
}

.sobre.abierto .sobre__solapa {
  z-index: 0;
  transform: rotateX(180deg);
}

.sobre.abierto .sobre__carta-mini {
  transform: translateY(-62%);
}

.sobre.abierto .sobre__sello {
  opacity: 0;
  transform: translate(-50%, -50%) scale(0.5);
}

.carta {
  position: relative;
  width: min(680px, calc(100% - 40px));
  margin: 55px auto 0;
  padding: clamp(38px, 7vw, 76px);
  color: #344338;
  background:
    repeating-linear-gradient(0deg, transparent 0 27px, rgba(75, 83, 64, 0.035) 28px 29px),
    var(--crema);
  border: 1px solid #e5d6b9;
  box-shadow: 0 32px 80px rgba(61, 43, 31, 0.22);
  animation: cartaSale 850ms ease both;
}

.carta::after {
  content: "";
  position: absolute;
  inset: 8px;
  border: 1px solid rgba(185, 79, 88, 0.16);
  pointer-events: none;
}

.cinta {
  position: absolute;
  top: -14px;
  left: 50%;
  width: 110px;
  height: 34px;
  opacity: 0.8;
  background: var(--rosa-claro);
  transform: translateX(-50%) rotate(-2deg);
}

.sello-carta {
  position: absolute;
  top: 30px;
  right: 32px;
  display: grid;
  width: 40px;
  height: 40px;
  color: var(--rosa-claro);
  background: var(--rojo-romantico);
  border-radius: 50%;
  place-items: center;
}

.carta h3 {
  margin: 0 0 30px;
  font-size: clamp(1.7rem, 5vw, 2.6rem);
}

.carta p {
  margin-bottom: 22px;
  font-family: var(--serif);
  font-size: clamp(1rem, 2vw, 1.14rem);
  line-height: 1.85;
}

.carta blockquote {
  margin: 36px 0;
  color: var(--rojo-romantico);
  font-family: var(--serif);
  font-size: clamp(1.45rem, 4vw, 2.1rem);
  font-style: italic;
  line-height: 1.3;
  text-align: center;
}

.carta > strong {
  display: block;
  margin-top: -10px;
  color: var(--rojo-romantico);
  font-family: var(--serif);
  font-size: 1.2rem;
}

.carta > strong:empty {
  display: none;
}

.carta footer {
  margin-top: 42px;
  padding-top: 20px;
  color: #778078;
  border-top: 1px solid #ded2bb;
  font-size: 0.72rem;
  text-align: center;
}

/* Secciones posteriores */
.seccion-clara {
  color: var(--texto-oscuro);
  background: var(--crema);
}

.galeria,
.temporada,
.contador-grande,
.ruleta-seccion,
.proxima {
  padding: 120px 0;
}

.galeria h2,
.temporada h2,
.ruleta-seccion h2,
.proxima h2 {
  margin-bottom: 14px;
}

.intro-seccion {
  max-width: 600px;
  margin-bottom: 50px;
  color: #68756c;
}

.cromos {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 26px;
}

.cromo {
  position: relative;
  overflow: hidden;
  padding: 10px;
  background: #fff;
  border: 1px solid #ded5c4;
  border-radius: 16px;
  box-shadow: 0 18px 45px rgba(23, 63, 49, 0.11);
  transition: transform 250ms ease, box-shadow 250ms ease;
}

.cromo:hover {
  transform: translateY(-7px) rotate(-0.5deg);
  box-shadow: 0 25px 60px rgba(23, 63, 49, 0.18);
}

.cromo__foto {
  border-radius: 10px 10px 3px 3px;
}

.cromo__info {
  padding: 18px 10px 10px;
}

.cromo__info small {
  color: var(--rojo-romantico);
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.cromo__info h3 {
  margin: 7px 0 8px;
  font-size: 1.45rem;
}

.cromo__info p {
  color: #68756c;
  font-size: 0.88rem;
}

.stats {
  display: grid;
  gap: 3px;
  margin-top: 16px;
  padding-top: 12px;
  border-top: 1px dashed #d4d7d0;
  font-family: var(--mono);
  font-size: 0.7rem;
}

.cromo__boton {
  position: absolute;
  inset: 0;
  width: 100%;
  min-height: 100%;
  opacity: 0;
  cursor: zoom-in;
}

.temporada {
  color: var(--crema);
  background:
    radial-gradient(circle at 50% 40%, rgba(57, 127, 76, 0.35), transparent 40%),
    var(--verde-profundo);
}

.temporada h2 {
  color: var(--crema);
}

.linea-tiempo {
  position: relative;
  margin-top: 70px;
}

.linea-tiempo::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 2px;
  background: linear-gradient(var(--dorado), var(--rosa));
  transform: translateX(-50%);
}

.momento {
  position: relative;
  width: 50%;
  padding: 0 55px 70px 0;
}

.momento:nth-child(even) {
  margin-left: 50%;
  padding: 0 0 70px 55px;
}

.momento::after {
  content: "";
  position: absolute;
  top: 18px;
  right: -9px;
  width: 18px;
  height: 18px;
  background: var(--dorado);
  border: 5px solid var(--verde-profundo);
  border-radius: 50%;
  box-shadow: 0 0 0 2px var(--dorado);
}

.momento:nth-child(even)::after {
  right: auto;
  left: -9px;
}

.momento__tarjeta {
  padding: 26px;
  color: var(--texto-oscuro);
  background: var(--crema);
  border-radius: 4px;
  box-shadow: 0 20px 44px rgba(0, 0, 0, 0.2);
}

.momento__tarjeta small {
  color: var(--rojo-romantico);
  font-weight: 800;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.momento__tarjeta h3 {
  margin: 8px 0 10px;
  font-size: 1.55rem;
}

.momento__tarjeta p {
  margin-bottom: 0;
  color: #68756c;
  font-size: 0.9rem;
}

.momento__foto {
  margin-top: 18px;
  border-radius: 3px;
}

.temporada__final {
  margin: 10px 0 0;
  color: var(--rosa-claro);
  font-family: var(--serif);
  font-size: clamp(1.25rem, 3vw, 2rem);
  font-style: italic;
  text-align: center;
}

.contador-grande {
  background:
    linear-gradient(135deg, rgba(233, 154, 169, 0.13), transparent 45%),
    var(--crema);
}

.tarjeta-contador {
  padding: clamp(32px, 6vw, 68px);
  background: var(--papel);
  border: 1px solid #ead8b8;
  border-radius: 22px;
  box-shadow: var(--sombra);
  text-align: center;
}

.tarjeta-contador h2 {
  margin: 0 0 42px;
}

.tiempo-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 28px;
}

.tiempo-grid div {
  display: grid;
  min-height: 130px;
  align-content: center;
  color: var(--crema);
  background: var(--verde-profundo);
  border-radius: 12px;
  box-shadow: inset 0 0 25px rgba(0, 0, 0, 0.25);
}

.tiempo-grid strong {
  font-family: var(--mono);
  font-size: clamp(1.8rem, 5vw, 4rem);
  line-height: 1;
}

.tiempo-grid small {
  margin-top: 8px;
  color: var(--dorado);
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.ruleta-seccion {
  color: var(--crema);
  background: #102e24;
}

.ruleta-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(330px, 1.1fr);
  gap: clamp(45px, 8vw, 110px);
  align-items: center;
}

.ruleta-copy > p:not(.eyebrow) {
  color: rgba(255, 248, 236, 0.67);
}

.plan-ganador {
  display: grid;
  gap: 4px;
  margin: 30px 0 22px;
  padding: 20px 22px;
  color: var(--texto-oscuro);
  background: var(--crema);
  border-left: 5px solid var(--dorado);
  border-radius: 4px;
}

.plan-ganador small {
  color: var(--rojo-romantico);
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.plan-ganador strong {
  font-family: var(--serif);
  font-size: 1.25rem;
}

.acciones-ruleta {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.ruleta-wrap {
  position: relative;
  display: grid;
  place-items: center;
  width: min(540px, 100%);
  margin-inline: auto;
  aspect-ratio: 1;
}

.ruleta {
  position: relative;
  width: 92%;
  aspect-ratio: 1;
  background: conic-gradient(
    var(--rosa) 0deg 60deg,
    var(--dorado) 60deg 120deg,
    var(--crema) 120deg 180deg,
    #77a982 180deg 240deg,
    var(--rosa-claro) 240deg 300deg,
    #d8b36b 300deg 360deg
  );
  border: clamp(9px, 2vw, 16px) solid var(--crema);
  border-radius: 50%;
  box-shadow: 0 0 0 7px #7c5e2a, 0 30px 65px rgba(0, 0, 0, 0.35);
  transition: transform 5.4s cubic-bezier(0.12, 0.68, 0.08, 1);
}

.ruleta::after {
  content: "";
  position: absolute;
  inset: 9%;
  pointer-events: none;
  background: repeating-conic-gradient(from 0deg, transparent 0deg 59deg, rgba(23, 63, 49, 0.55) 59deg 60deg);
  border-radius: 50%;
}

.ruleta__etiqueta {
  position: absolute;
  z-index: 2;
  top: 50%;
  left: 50%;
  width: 30%;
  color: var(--verde-noche);
  font-size: clamp(0.48rem, 1.35vw, 0.78rem);
  font-weight: 900;
  line-height: 1.08;
  text-align: center;
  text-transform: uppercase;
  transform: translate(-50%, -50%) rotate(var(--angulo)) translateY(clamp(-190px, -12vw, -105px)) rotate(var(--angulo-inverso));
  transform-origin: center;
}

.ruleta__centro {
  position: absolute;
  display: grid;
  width: 18%;
  aspect-ratio: 1;
  color: var(--rosa-claro);
  background: var(--rojo-romantico);
  border: 6px solid var(--crema);
  border-radius: 50%;
  box-shadow: 0 5px 18px rgba(0, 0, 0, 0.35);
  font-size: clamp(1.2rem, 3vw, 2.4rem);
  place-items: center;
}

.indicador-ruleta {
  position: absolute;
  z-index: 5;
  top: -1%;
  width: 10%;
  height: 15%;
  background: var(--rojo-romantico);
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  filter: drop-shadow(0 5px 4px rgba(0, 0, 0, 0.35));
}

.guardados {
  margin-top: 80px;
  padding-top: 34px;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
}

.guardados h3 {
  font-size: 1.45rem;
}

.guardados ul {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  padding: 0;
  list-style: none;
}

.guardados li {
  display: flex;
  gap: 10px;
  align-items: center;
  padding: 9px 10px 9px 15px;
  color: var(--texto-oscuro);
  background: var(--crema);
  border-radius: 999px;
  font-size: 0.82rem;
}

.guardados li button,
.lista-plan button {
  display: grid;
  width: 30px;
  min-height: 30px;
  padding: 0;
  color: var(--rojo-romantico);
  background: var(--rosa-claro);
  border: 0;
  border-radius: 50%;
  cursor: pointer;
  place-items: center;
}

.proxima {
  background:
    repeating-linear-gradient(90deg, transparent 0 79px, rgba(13, 48, 37, 0.03) 80px),
    var(--crema);
}

.bloc {
  position: relative;
  width: min(790px, 100%);
  margin: auto;
  padding: clamp(35px, 7vw, 74px);
  background:
    repeating-linear-gradient(0deg, transparent 0 43px, rgba(92, 126, 105, 0.12) 44px 45px),
    #fffdf5;
  border: 1px solid #e1d9c9;
  box-shadow: var(--sombra);
  transform: rotate(-0.4deg);
}

.bloc::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 38px;
  width: 2px;
  background: rgba(185, 79, 88, 0.2);
}

.bloc__cinta {
  position: absolute;
  top: -14px;
  left: 50%;
  width: 120px;
  height: 32px;
  opacity: 0.78;
  background: var(--rosa-claro);
  transform: translateX(-50%) rotate(2deg);
}

.bloc h2 {
  font-size: clamp(2.3rem, 6vw, 4.3rem);
}

.bloc ul {
  display: grid;
  gap: 7px;
  padding: 0;
  list-style: none;
}

.lista-plan {
  display: flex;
  gap: 12px;
  align-items: center;
  min-height: 44px;
}

.lista-plan label {
  display: flex;
  gap: 12px;
  align-items: center;
  flex: 1;
  cursor: pointer;
  font-family: var(--serif);
  font-size: 1.05rem;
}

.lista-plan input {
  width: 19px;
  height: 19px;
  accent-color: var(--rojo-romantico);
}

.lista-plan input:checked + span {
  color: #7a827b;
  text-decoration: line-through;
}

.form-plan {
  margin-top: 34px;
  padding-top: 26px;
  border-top: 1px dashed #c8c9bf;
}

.form-plan > label {
  display: block;
  margin-bottom: 8px;
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
}

.form-plan > div {
  display: flex;
  gap: 10px;
}

.form-plan input {
  flex: 1;
  min-width: 0;
  min-height: 50px;
  padding: 10px 15px;
  color: var(--texto-oscuro);
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid #bdc7be;
  border-radius: 8px;
}

.final {
  position: relative;
  isolation: isolate;
  display: grid;
  min-height: 100svh;
  overflow: hidden;
  padding: 100px 20px;
  color: var(--crema);
  background:
    radial-gradient(circle at 50% 40%, rgba(57, 127, 76, 0.4), transparent 40%),
    linear-gradient(145deg, #071d16, var(--verde-noche));
  place-items: center;
  text-align: center;
}

.final__contenido {
  position: relative;
  z-index: 2;
  width: min(870px, 100%);
}

.final h2 {
  margin-bottom: 20px;
  font-size: clamp(3.1rem, 9vw, 8rem);
  font-weight: 500;
  letter-spacing: -0.05em;
}

.final__contenido > p:not(.eyebrow, .firma-final, .respuesta-mensaje) {
  color: rgba(255, 248, 236, 0.74);
  font-family: var(--serif);
  font-size: clamp(1.2rem, 3vw, 1.8rem);
  font-style: italic;
}

.final__botones {
  display: flex;
  gap: 12px;
  justify-content: center;
  margin: 38px 0 20px;
  flex-wrap: wrap;
}

.respuesta-mensaje {
  min-height: 32px;
  color: var(--rosa-claro);
  font-family: var(--serif);
  font-size: 1.35rem;
  font-style: italic;
}

.firma-final {
  margin: 36px 0 20px;
  font-family: var(--serif);
}

/* Mensajes, modal y utilidades */
.toast {
  position: fixed;
  z-index: 200;
  right: 20px;
  bottom: 20px;
  width: min(390px, calc(100% - 40px));
  padding: 16px 20px;
  color: var(--texto-oscuro);
  background: var(--crema);
  border-left: 5px solid var(--dorado);
  border-radius: 8px;
  box-shadow: 0 18px 50px rgba(0, 0, 0, 0.35);
  font-family: var(--serif);
  animation: toastEntra 300ms ease;
}

.modal {
  position: fixed;
  z-index: 300;
  inset: 0;
  display: grid;
  padding: 24px;
  place-items: center;
}

.modal__fondo {
  position: absolute;
  inset: 0;
  background: rgba(3, 12, 9, 0.88);
  backdrop-filter: blur(5px);
}

.modal__contenido {
  position: relative;
  z-index: 2;
  width: min(820px, 100%);
  max-height: 90vh;
  overflow: auto;
  padding: 18px 18px 25px;
  color: var(--texto-oscuro);
  background: var(--crema);
  border-radius: 10px;
  box-shadow: 0 35px 100px rgba(0, 0, 0, 0.5);
  animation: modalEntra 250ms ease;
}

.modal__contenido--collage {
  width: min(1180px, 100%);
  overflow: hidden;
}

.modal__contenido--vertical {
  width: min(520px, 100%);
}

.modal__cerrar {
  position: absolute;
  z-index: 3;
  top: 10px;
  right: 10px;
  display: grid;
  width: 44px;
  padding: 0;
  color: var(--crema);
  background: rgba(13, 48, 37, 0.9);
  border: 0;
  border-radius: 50%;
  cursor: pointer;
  font-size: 1.7rem;
  place-items: center;
}

.modal__imagen-wrap {
  min-height: 260px;
}

.modal__imagen-wrap .marco-foto {
  max-height: 62vh;
}

.modal__imagen-wrap img {
  width: 100%;
  max-height: 62vh;
  object-fit: contain;
  background: var(--verde-profundo);
}

.modal__contenido--collage .modal__imagen-wrap {
  display: grid;
  min-height: 0;
  place-items: center;
}

.modal__imagen-wrap .modal__collage {
  display: block;
  max-height: 70vh;
  background: #0a120f;
  border: 2px solid rgba(230, 185, 77, 0.72);
  border-radius: 7px;
  box-shadow: 0 18px 38px rgba(0, 0, 0, 0.28);
}

.modal__contenido--collage h2 {
  margin-top: 16px;
}

.modal__contenido--vertical .modal__imagen-wrap {
  min-height: 0;
}

.modal__contenido--vertical .marco-foto {
  width: min(100%, 54vh);
  max-height: none;
  aspect-ratio: 1122 / 1402;
  margin-inline: auto;
  background: transparent;
}

.modal__contenido--vertical .modal__imagen-wrap img {
  max-height: none;
  object-fit: cover;
  background: transparent;
}

.modal__video {
  display: block;
  width: 100%;
  max-height: 68vh;
  background: #020a07;
  border: 2px solid rgba(230, 185, 77, 0.72);
  border-radius: 7px;
  box-shadow: 0 18px 38px rgba(0, 0, 0, 0.34);
  object-fit: contain;
}

.modal__contenido--vertical .modal__video {
  width: auto;
  height: min(68vh, 680px);
  max-width: 100%;
  margin-inline: auto;
  aspect-ratio: 3 / 4;
}

.modal h2 {
  margin: 24px 10px 8px;
  font-size: clamp(1.7rem, 4vw, 2.7rem);
}

.modal p {
  margin: 0 10px;
  color: #657068;
}

.lluvia {
  position: fixed;
  z-index: 250;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

.confeti {
  position: absolute;
  top: -30px;
  width: 9px;
  height: 15px;
  background: var(--color);
  animation: caer var(--duracion) cubic-bezier(0.25, 0.8, 0.45, 1) forwards;
}

.confeti.corazon {
  width: auto;
  height: auto;
  color: var(--color);
  background: none;
  font-size: 18px;
}

.cesped-particula {
  position: absolute;
  z-index: 12;
  width: 3px;
  height: 9px;
  background: #b8dd71;
  pointer-events: none;
  animation: cesped 650ms ease-out forwards;
}

.revelar {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 700ms ease, transform 700ms ease;
}

.revelar.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Primera pantalla del premio: completa en una sola vista */
@media (min-width: 900px) {
  .premio {
    display: grid;
    grid-template-columns: minmax(0, 1.18fr) minmax(300px, 0.82fr);
    grid-template-rows: auto minmax(0, 1fr) auto;
    grid-template-areas:
      "cabecera cabecera"
      "fotos sobre"
      "carta carta";
    column-gap: clamp(38px, 5vw, 82px);
    row-gap: clamp(18px, 2.5vh, 30px);
    min-height: 100svh;
    padding: clamp(24px, 4vh, 46px) clamp(28px, 4vw, 72px);
    align-items: center;
  }

  .premio__cabecera {
    grid-area: cabecera;
    width: min(1180px, 100%);
    margin-inline: auto;
    padding-top: clamp(10px, 1.5vh, 18px);
  }

  .premio__cabecera .eyebrow {
    margin-bottom: 8px;
  }

  .premio__cabecera h2 {
    margin: 0;
    font-size: clamp(4rem, 8.8vh, 6.8rem);
    line-height: 0.92;
  }

  .polaroids {
    grid-area: fotos;
    width: 100%;
    min-height: 0;
    margin: 0;
  }

  .polaroid {
    width: min(255px, 22.5vw);
    padding: 10px 10px 30px;
  }

  .polaroid:nth-child(1) {
    margin-right: -62px;
  }

  .polaroid:nth-child(2) {
    width: min(300px, 26vw);
  }

  .polaroid:nth-child(3) {
    margin-left: -62px;
  }

  .sobre-zona {
    grid-area: sobre;
    width: 100%;
    min-height: 0;
  }

  .sobre {
    width: min(440px, 33vw);
  }

  .premio > .carta {
    grid-area: carta;
    align-self: start;
    margin-top: 35px;
  }
}

@media (min-width: 900px) and (max-height: 760px) {
  .premio {
    row-gap: 12px;
    padding-block: 16px;
  }

  .premio__cabecera h2 {
    font-size: clamp(3.4rem, 7.8vh, 4.9rem);
  }

  .polaroid {
    width: min(220px, 20vw);
    padding-bottom: 24px;
  }

  .polaroid:nth-child(2) {
    width: min(255px, 23vw);
  }

  .sobre {
    width: min(365px, 30vw);
  }
}

@media (max-width: 620px) {
  .parada-tecnica {
    padding: 8px;
  }

  .parada-tecnica__panel {
    min-height: calc(100svh - 16px);
    max-height: calc(100svh - 16px);
    padding: 24px 18px;
  }

  .parada-tecnica__intro,
  .revision-tecnica {
    min-height: calc(100svh - 66px);
  }

  .parada-tecnica__icono {
    width: 58px;
    margin-bottom: 18px;
  }

  .mesa-reparacion {
    height: 178px;
  }

  .balon-taller {
    left: 66%;
    width: 124px;
  }

  .balon-taller__icono {
    font-size: 113px;
  }

  .parche-corazon {
    left: 14%;
    width: 52px;
    min-height: 52px;
  }

  .hitos-presion {
    grid-template-columns: repeat(2, 1fr);
  }

  .revision-tecnica dl {
    margin-block: 16px 14px;
  }
}

@media (max-height: 720px) and (min-width: 621px) {
  .parada-tecnica__panel {
    min-height: 0;
    padding-block: 24px;
  }

  .parada-tecnica__intro,
  .revision-tecnica {
    min-height: calc(100svh - 100px);
  }

  .parada-tecnica__icono,
  .revision-tecnica__sello {
    width: 52px;
    margin-bottom: 14px;
  }

  .mesa-reparacion {
    height: 155px;
    margin-block: 8px 3px;
  }

  .balon-taller {
    width: 112px;
  }

  .balon-taller__icono {
    font-size: 104px;
  }

  .parche-corazon {
    width: 50px;
    min-height: 50px;
  }

  .hitos-presion {
    margin-top: 8px;
  }
}

/* Animaciones */
@keyframes aparecer { from { opacity: 0; } to { opacity: 1; } }
@keyframes desinflarBalon {
  0% { transform: translate(-50%, -50%) rotate(0) scale(1); }
  28% { transform: translate(-50%, -50%) rotate(5deg) scaleX(1.08) scaleY(0.9); }
  58% { transform: translate(-50%, -50%) rotate(-5deg) scaleX(1.03) scaleY(0.68); }
  100% { transform: translate(-50%, -50%) rotate(-8deg) scaleX(1.08) scaleY(0.48); }
}
@keyframes brilloParche {
  0%, 100% { box-shadow: 0 0 5px rgba(229, 184, 76, 0.55); transform: rotate(8deg) scale(1); }
  50% { box-shadow: 0 0 13px rgba(229, 184, 76, 0.95); transform: rotate(8deg) scale(1.1); }
}
@keyframes avisoTecnico {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.06); }
}
@keyframes tallerEntra {
  from { opacity: 0; transform: translateY(18px); }
  to { opacity: 1; transform: none; }
}
@keyframes zonaPinchazo {
  0%, 100% { box-shadow: 0 0 0 4px rgba(229, 184, 76, 0.12), 0 0 12px rgba(229, 184, 76, 0.55); }
  50% { box-shadow: 0 0 0 9px rgba(229, 184, 76, 0.2), 0 0 22px rgba(229, 184, 76, 0.92); }
}
@keyframes parcheColocado {
  0% { transform: translate(-50%, -50%) scale(0.72) rotate(-14deg); }
  70% { transform: translate(-50%, -50%) scale(1.14) rotate(7deg); }
  100% { transform: translate(-50%, -50%) scale(1); }
}
@keyframes parcheRebota {
  0%, 100% { transform: translate(-50%, -50%); }
  35% { transform: translate(calc(-50% - 8px), -50%) rotate(-8deg); }
  70% { transform: translate(calc(-50% + 7px), -50%) rotate(7deg); }
}
@keyframes revisionAprobada {
  from { opacity: 0; transform: scale(0.94) translateY(12px); }
  to { opacity: 1; transform: none; }
}
@keyframes flotar { 0%, 100% { transform: translateY(0); opacity: 0.2; } 50% { transform: translateY(-40px); opacity: 0.8; } }
@keyframes rodarSuave { 0%, 100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-40px) rotate(-80deg); } }
@keyframes numeroGol {
  0% { opacity: 0.45; filter: blur(1px); transform: scale(0.72) translateY(4px); }
  48% { color: var(--dorado); filter: blur(0); transform: scale(1.6) translateY(-2px); }
  100% { opacity: 1; transform: scale(1); }
}
@keyframes marcadorVictoria {
  0% { filter: brightness(1); transform: scale(1); }
  38% { filter: brightness(1.42); transform: scale(1.035); }
  100% { filter: brightness(1.08); transform: scale(1); }
}
@keyframes llenarCorazon {
  0% { opacity: 0.35; filter: blur(2px); transform: scale(0.35) rotate(-12deg); }
  58% { opacity: 1; filter: blur(0); transform: scale(1.45) rotate(5deg); }
  100% { transform: scale(1) rotate(0); }
}
@keyframes saltarPublico {
  to { transform: translateY(-8px) rotate(3deg) scale(var(--escala-publico, 1)); }
}
@keyframes pancartaOndea {
  from { transform: translateY(0) rotate(var(--giro-inicio)) skewX(-0.15deg); }
  to { transform: translateY(-2px) rotate(var(--giro-final)) skewX(0.25deg); }
}
@keyframes redGol {
  0%, 100% { transform: perspective(110px) rotateY(var(--giro-red)) translateZ(4px); }
  45% { transform: perspective(110px) rotateY(var(--giro-red)) translateZ(-8px) scaleY(0.88) scaleX(1.09); }
}
@keyframes redGolFinal {
  0%, 100% { transform: perspective(110px) rotateY(var(--giro-red)) translateZ(4px); }
  35% { transform: perspective(110px) rotateY(var(--giro-red)) translateZ(-15px) scaleY(0.82) scaleX(1.16); }
  70% { transform: perspective(110px) rotateY(var(--giro-red)) translateZ(8px) scaleY(1.04) scaleX(0.95); }
}
@keyframes golTexto { from { opacity: 0; transform: scale(0.4) rotate(-4deg); } to { opacity: 1; transform: scale(1); } }
@keyframes hatTrickTexto {
  0% { opacity: 0; filter: blur(8px); transform: scale(0.3) rotate(-5deg); }
  58% { opacity: 1; filter: blur(0); transform: scale(1.12) rotate(1deg); }
  100% { transform: scale(1); }
}
@keyframes rayosVictoria { to { transform: rotate(1turn); } }
@keyframes focosVictoria { to { opacity: 0.48; transform: scaleX(1.08); } }
@keyframes fuego { from { opacity: 1; transform: scale(0.25); } to { opacity: 0; transform: scale(1.35); } }
@keyframes sacudir { 20% { transform: translateX(-5px); } 40% { transform: translateX(5px); } 60% { transform: translateX(-3px); } 80% { transform: translateX(3px); } }
@keyframes sacudirFinal {
  0%, 100% { transform: translate(0); }
  15% { transform: translate(-6px, 2px); }
  30% { transform: translate(6px, -2px); }
  45% { transform: translate(-4px, -1px); }
  60% { transform: translate(4px, 2px); }
  78% { transform: translate(-2px, 0); }
}
@keyframes polaroidEntra { from { opacity: 0; transform: translateY(60px) rotate(0) scale(0.88); } }
@keyframes sobreFlota { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-9px); } }
@keyframes cartaSale { from { opacity: 0; transform: translateY(70px) scale(0.94); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes toastEntra { from { opacity: 0; transform: translateY(20px); } }
@keyframes modalEntra { from { opacity: 0; transform: scale(0.94); } }
@keyframes caer { to { transform: translate3d(var(--deriva), 110vh, 0) rotate(var(--giro)); opacity: 0.15; } }
@keyframes cesped { to { transform: translate(var(--x), var(--y)) rotate(180deg); opacity: 0; } }

/* Responsive */
@media (max-width: 1000px) {
  .ruleta-layout {
    grid-template-columns: 1fr 1fr;
    gap: 40px;
  }
}

@media (max-height: 900px) and (min-width: 769px) {
  .portada {
    padding-block: 24px;
  }

  .portada h1 {
    font-size: clamp(4rem, min(9vw, 14svh), 8rem);
  }

  .portada__frase {
    margin-block: 14px 20px;
  }

  .versus {
    padding-block: 12px;
  }

  .fecha-portada {
    margin-block: 12px 17px;
  }

  .balon-decorativo {
    bottom: 2vh;
    font-size: clamp(4.5rem, 11vw, 9rem);
  }
}

@media (max-height: 840px) and (min-width: 769px) {
  .estadio {
    grid-template-rows: auto 96px minmax(0, 1fr);
    padding-block: 8px;
  }

  .cabecera-estadio__intro h2 {
    font-size: clamp(2rem, 5.3vh, 2.75rem);
  }

  .cabecera-estadio__intro > p:not(.eyebrow) {
    display: none;
  }

  .contador-cabecera {
    gap: 3px;
    margin-top: 0;
    font-size: 0.62rem;
  }

  .contador-cabecera__principal {
    font-size: 0.76rem;
  }

  .contador-cabecera__detalle,
  .contador-cabecera__desde {
    font-size: 0.57rem;
  }

  .marcador {
    padding: 5px 12px 4px;
    border-width: 4px;
  }

  .marcador__equipos b {
    font-size: clamp(1.6rem, 4.8vh, 2.25rem);
  }

  .grada {
    height: auto;
    margin-block: 4px 6px;
  }

  .publico {
    inset-block: 2px 30px;
  }

  .pancartas {
    bottom: 4px;
    gap: 5px;
  }

  .pancartas button {
    height: 40px;
    min-height: 40px;
    padding: 7px 5px 5px;
    font-size: 0.52rem;
  }

  .zona-juego {
    width: min(830px, calc(100% - 100px));
  }
}

@media (max-width: 768px) {
  .contenedor {
    width: min(100% - 28px, 680px);
  }

  .portada {
    padding-inline: 16px;
  }

  .versus {
    padding-inline: 10px;
    letter-spacing: 0.04em;
  }

  .estadio {
    display: block;
    height: 100svh;
    padding: 38px 0 28px;
  }

  .cabecera-estadio {
    display: block;
    padding-bottom: 0;
    text-align: center;
  }

  .cabecera-estadio__intro .eyebrow {
    margin-bottom: 8px;
  }

  .cabecera-estadio__intro h2 {
    font-size: 2.6rem;
  }

  .cabecera-estadio__intro > p:not(.eyebrow) {
    max-width: 520px;
    margin-top: 7px;
    margin-inline: auto;
  }

  .contador-cabecera {
    align-items: center;
    width: min(100%, 360px);
    margin: 16px 0 14px;
    margin-inline: auto;
    text-align: center;
  }

  .marcador {
    width: min(570px, 100%);
    margin-inline: auto;
    padding: 10px 12px 8px;
    border-width: 6px;
  }

  .grada {
    height: 156px;
    margin: 24px 0 12px;
    transform: none;
  }

  .pancartas {
    bottom: 6px;
    width: min(100% - 16px, 680px);
    grid-template-columns: repeat(3, 1fr);
    gap: 5px;
  }

  .pancartas button {
    height: 44px;
    min-height: 44px;
    padding: 7px 5px 5px;
    font-size: 0.56rem;
  }

  .zona-juego {
    width: min(100% - 28px, 680px);
  }

  .campo {
    aspect-ratio: 16 / 10.8;
  }

  .instrucciones {
    bottom: 3%;
    padding: 9px 12px;
  }

  .instrucciones strong,
  .instrucciones small {
    display: none;
  }

  .celebracion {
    padding: 16px;
  }

  .celebracion > p:not(.celebracion__titulo) {
    margin-bottom: 12px;
    font-size: 0.9rem;
  }

  .premio {
    padding: 90px 14px 100px;
  }

  .polaroids {
    min-height: 280px;
  }

  .polaroid {
    width: 35vw;
    padding: 8px 8px 28px;
  }

  .polaroid:nth-child(1) { margin-right: -35px; }
  .polaroid:nth-child(2) { width: 41vw; }
  .polaroid:nth-child(3) { margin-left: -35px; }

  .cromos {
    grid-template-columns: repeat(2, 1fr);
  }

  .linea-tiempo::before {
    left: 12px;
  }

  .momento,
  .momento:nth-child(even) {
    width: 100%;
    margin-left: 0;
    padding: 0 0 42px 42px;
  }

  .momento::after,
  .momento:nth-child(even)::after {
    right: auto;
    left: 3px;
  }

  .ruleta-layout {
    grid-template-columns: 1fr;
  }

  .ruleta-wrap {
    width: min(480px, 88vw);
  }

  .ruleta__etiqueta {
    transform: translate(-50%, -50%) rotate(var(--angulo)) translateY(clamp(-165px, -18vw, -110px)) rotate(var(--angulo-inverso));
  }
}

@media (max-width: 520px) {
  .portada h1 {
    font-size: clamp(3.5rem, 18vw, 5.5rem);
  }

  .versus {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .versus span {
    width: 32px;
    height: 32px;
    margin: auto;
  }

  .cabecera-estadio__intro h2 {
    font-size: 2.6rem;
  }

  .marcador {
    padding-inline: 12px;
  }

  .marcador__equipos small {
    font-size: 0.62rem;
  }

  .campo {
    min-height: 265px;
    aspect-ratio: auto;
  }

  .porteria {
    top: 29%;
    height: 42%;
  }

  .polaroids {
    min-height: 230px;
  }

  .polaroid {
    width: 39vw;
  }

  .polaroid:nth-child(2) { width: 46vw; }

  .carta {
    width: calc(100% - 8px);
    padding: 42px 24px;
  }

  .sello-carta {
    top: 18px;
    right: 18px;
  }

  .galeria,
  .temporada,
  .contador-grande,
  .ruleta-seccion,
  .proxima {
    padding: 85px 0;
  }

  .cromos {
    grid-template-columns: 1fr;
  }

  .tiempo-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .tiempo-grid div {
    min-height: 100px;
  }

  .acciones-ruleta,
  .acciones-ruleta .boton {
    width: 100%;
  }

  .ruleta__etiqueta {
    font-size: 0.48rem;
    transform: translate(-50%, -50%) rotate(var(--angulo)) translateY(-31vw) rotate(var(--angulo-inverso));
  }

  .bloc {
    padding: 44px 23px 38px 48px;
  }

  .bloc::before {
    left: 27px;
  }

  .form-plan > div {
    flex-direction: column;
  }

  .final__botones,
  .final__botones .boton {
    width: 100%;
  }

  .toast {
    right: 12px;
    bottom: 12px;
    width: calc(100% - 24px);
  }

  .modal {
    padding: 10px;
  }
}

@media (max-width: 350px) {
  .contenedor {
    width: calc(100% - 20px);
  }

  .pancartas button {
    font-size: 0.5rem;
  }

  .campo {
    min-height: 240px;
  }

  .instrucciones {
    font-size: 0.7rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }

  .revelar {
    opacity: 1;
    transform: none;
  }
}

/* ==================================================
   EXPERIENCIA EDITORIAL POSTPARTIDO
   ================================================== */

.solo-lectores {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.etapa-entrando {
  animation: etapaEditorialEntra 700ms cubic-bezier(0.22, 0.8, 0.24, 1) both;
}

.sorpresa-corazon {
  min-height: 100svh;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 18%, rgba(255, 216, 223, 0.76), transparent 32%),
    linear-gradient(150deg, #fff8ec 0%, #fff0df 52%, #f9d8df 100%);
}

.sorpresa-corazon .premio__cabecera h2 {
  font-size: clamp(3rem, 8vw, 7.2rem);
  line-height: 0.92;
  text-wrap: balance;
}

.premio__continuacion {
  position: relative;
  z-index: 4;
  width: min(720px, calc(100% - 28px));
  margin: 16px auto 0;
  text-align: center;
}

.premio__continuacion p {
  margin: 0 0 20px;
  color: var(--verde-profundo);
  font-family: var(--serif);
  font-size: clamp(1.08rem, 2.4vw, 1.55rem);
  font-style: italic;
  line-height: 1.45;
}

/* Sala de prensa */
.rueda-prensa {
  position: relative;
  display: grid;
  min-height: 100svh;
  overflow: hidden;
  color: var(--crema);
  background:
    radial-gradient(circle at 50% 0%, rgba(230, 185, 77, 0.12), transparent 28%),
    linear-gradient(145deg, #061b15 0%, #0d3025 48%, #142b24 100%);
  align-items: center;
}

.rueda-prensa__luces,
.portada-revista__ambiente {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.rueda-prensa__luces i {
  position: absolute;
  top: -20%;
  width: 24%;
  height: 78%;
  opacity: 0.18;
  background: linear-gradient(to bottom, rgba(255, 244, 205, 0.62), transparent 75%);
  clip-path: polygon(44% 0, 56% 0, 100% 100%, 0 100%);
  filter: blur(4px);
}

.rueda-prensa__luces i:nth-child(1) { left: 4%; transform: rotate(12deg); }
.rueda-prensa__luces i:nth-child(2) { left: 38%; }
.rueda-prensa__luces i:nth-child(3) { right: 3%; transform: rotate(-12deg); }

.rueda-prensa__contenido {
  position: relative;
  z-index: 2;
  display: grid;
  width: min(92vw, 1380px);
  margin: 0 auto;
  padding-block: clamp(70px, 9vh, 110px) 62px;
  grid-template-columns: minmax(330px, 0.75fr) minmax(560px, 1.35fr);
  gap: clamp(40px, 6vw, 100px);
  align-items: end;
}

.rueda-prensa__escena {
  position: relative;
  display: flex;
  min-height: 570px;
  padding-top: 220px;
  align-items: flex-end;
  justify-content: center;
}

.acreditacion {
  position: absolute;
  z-index: 4;
  top: 14px;
  left: 50%;
  width: 235px;
  padding: 28px 24px;
  color: var(--texto-oscuro);
  background: #fff6e4;
  border-top: 8px solid #dc8798;
  box-shadow: 0 18px 35px rgba(0, 0, 0, 0.25);
  transform: translateX(-50%) rotate(-3deg);
}

.acreditacion::before {
  content: "";
  position: absolute;
  top: -60px;
  left: 50%;
  width: 5px;
  height: 56px;
  background: var(--dorado);
  transform: translateX(-50%);
}

.acreditacion small,
.acreditacion span,
.acreditacion strong,
.acreditacion em,
.acreditacion b {
  display: block;
}

.acreditacion small,
.acreditacion span,
.acreditacion b {
  font-family: var(--mono);
  font-size: 0.62rem;
  letter-spacing: 0.08em;
}

.acreditacion .acreditacion-nombre {
  margin: 18px 0 8px;
  color: #ba4f5c;
  font-family: var(--serif);
  font-size: 2rem;
  line-height: 0.95;
}

.acreditacion em {
  margin: 9px 0 18px;
  color: #826f5c;
  font-family: var(--serif);
  font-size: 0.88rem;
}

.acreditacion b {
  padding-top: 12px;
  color: var(--verde-profundo);
  border-top: 1px solid rgba(93, 65, 37, 0.18);
  font-weight: 800;
}

.atril {
  position: relative;
  z-index: 2;
  display: grid;
  width: min(100%, 360px);
  min-height: 300px;
  margin-inline: auto;
  border-top: 10px solid #6a4932;
  background: linear-gradient(150deg, #5b3b27, #382418);
  box-shadow: 0 28px 45px rgba(0, 0, 0, 0.35);
  clip-path: polygon(7% 0, 93% 0, 82% 100%, 18% 100%);
  place-items: center;
}

.logo-atril {
  display: grid;
  width: 76px;
  height: 76px;
  color: var(--dorado);
  background: rgba(13, 48, 37, 0.75);
  border: 1px solid var(--dorado);
  border-radius: 50%;
  box-shadow: 0 0 0 5px rgba(232, 185, 79, 0.08), inset 0 0 15px rgba(0, 0, 0, 0.25);
  font-family: var(--serif);
  font-size: 1.8rem;
  place-items: center;
}

.microfonos {
  position: absolute;
  z-index: 3;
  bottom: 274px;
  left: 50%;
  display: flex;
  width: 150px;
  height: 82px;
  justify-content: center;
  gap: 42px;
  transform: translateX(-50%);
}

.microfonos i {
  position: relative;
  width: 8px;
  height: 82px;
  background: #171b19;
  border-radius: 8px;
  transform-origin: bottom;
  animation: microfonoVive 4.8s ease-in-out infinite;
}

.microfonos i::before {
  content: "";
  position: absolute;
  top: -8px;
  left: 50%;
  width: 30px;
  height: 20px;
  background: #252b28;
  border: 4px solid #090d0b;
  border-radius: 50%;
  transform: translateX(-50%) rotate(-10deg);
}

.microfonos i:nth-child(2) { height: 66px; animation-delay: -1.3s; }

.periodistas {
  position: absolute;
  right: -12%;
  bottom: -28px;
  left: -12%;
  display: flex;
  justify-content: space-between;
}

.periodistas i {
  width: 58px;
  height: 80px;
  opacity: 0.72;
  background: #040a08;
  border-radius: 50% 50% 20% 20%;
}

.periodistas.tomando-notas i {
  animation: periodistasNotas 520ms ease-in-out 3 alternate;
}

.rueda-prensa__panel .titulo-prensa {
  max-width: 820px;
  margin: 0;
  color: #fff7e9;
  font-size: clamp(3.6rem, 6.4vw, 7rem);
  font-weight: 500;
  line-height: 0.88;
  letter-spacing: -0.045em;
  text-wrap: balance;
}

.rueda-prensa__subtitulo.subtitulo-prensa {
  max-width: 620px;
  margin: 18px 0 30px;
  color: #f1dcb8;
  font-family: var(--serif);
  font-size: clamp(1.1rem, 1.8vw, 1.7rem);
  font-style: italic;
}

.etiqueta-prensa {
  margin-bottom: 12px;
  color: #e8b94f;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.24em;
}

.tarjeta-pregunta,
.fin-declaraciones {
  position: relative;
  padding: clamp(24px, 4vw, 42px);
  overflow: hidden;
  color: var(--texto-oscuro);
  background: rgba(255, 248, 236, 0.97);
  border: 1px solid rgba(230, 185, 77, 0.36);
  border-radius: 4px;
  box-shadow: 0 30px 70px rgba(0, 0, 0, 0.32);
}

.pregunta-cambiando {
  animation: preguntaCambia 420ms ease both;
}

.pregunta-meta {
  display: flex;
  margin-bottom: 10px;
  color: #68746d;
  font-family: var(--mono);
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  justify-content: space-between;
  gap: 12px;
}

.progreso-preguntas {
  height: 5px;
  overflow: hidden;
  background: #e7decd;
  border-radius: 99px;
}

.progreso-preguntas i {
  display: block;
  width: 20%;
  height: 100%;
  background: linear-gradient(90deg, var(--rosa), var(--rojo-romantico));
  border-radius: inherit;
  transition: width 360ms ease;
}

.tarjeta-pregunta h3 {
  margin: 24px 0 20px;
  color: var(--verde-noche);
  font-size: clamp(1.55rem, 3.2vw, 2.6rem);
  font-weight: 500;
  line-height: 1.12;
  text-wrap: balance;
}

.campo-pregunta input,
.campo-pregunta textarea {
  width: 100%;
  min-height: 52px;
  padding: 15px 16px;
  color: var(--texto-oscuro);
  background: #fffdf8;
  border: 1px solid #c8c0af;
  border-radius: 3px;
  font: 1rem/1.5 var(--sans);
  resize: vertical;
}

.campo-pregunta textarea { min-height: 126px; }

.campo-pregunta input:focus,
.campo-pregunta textarea:focus {
  outline: 3px solid rgba(230, 185, 77, 0.5);
  border-color: var(--verde-profundo);
}

.opciones-prensa {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.opcion-prensa {
  min-height: 50px;
  padding: 12px 14px;
  color: var(--verde-noche);
  background: #fffdf8;
  border: 1px solid #c9c0af;
  border-radius: 3px;
  cursor: pointer;
  font: 700 0.83rem/1.3 var(--sans);
  text-align: left;
  transition: color 180ms ease, background 180ms ease, border-color 180ms ease, transform 180ms ease;
}

.opcion-prensa:hover { transform: translateY(-2px); }
.opcion-prensa.seleccionada {
  color: var(--crema);
  background: var(--verde-profundo);
  border-color: var(--verde-profundo);
}

.mensaje-pregunta {
  min-height: 23px;
  margin: 10px 0 0;
  color: var(--rojo-romantico);
  font-family: var(--serif);
  font-size: 0.95rem;
  font-style: italic;
}

.pregunta-acciones {
  display: grid;
  margin-top: 12px;
  grid-template-columns: auto minmax(120px, 1fr) auto;
  gap: 12px;
  align-items: center;
}

.pregunta-acciones .boton-enlace { justify-self: center; }

.fin-declaraciones.cierre-prensa {
  width: 100%;
  max-width: 760px;
  min-height: 0;
  padding: clamp(38px, 5vw, 64px);
  background: linear-gradient(rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.18)), #fff5e3;
  border: 1px solid rgba(93, 65, 37, 0.12);
  border-radius: 8px;
  box-shadow: 0 25px 55px rgba(0, 0, 0, 0.24);
  text-align: center;
}

.fin-declaraciones.cierre-prensa h3 {
  margin: 24px 0 16px;
  color: var(--verde-noche);
  font-size: clamp(1.65rem, 3vw, 2.65rem);
  font-weight: 500;
  line-height: 1.08;
}

.fin-declaraciones.cierre-prensa h3 em {
  color: var(--rojo-romantico);
  font-weight: 400;
}

.fin-declaraciones.cierre-prensa p:not(.eyebrow) {
  margin: 0 auto 26px;
  color: #59655d;
  font-family: var(--serif);
  font-size: 1.05rem;
  line-height: 1.55;
}

.flash-camara {
  position: absolute;
  z-index: 5;
  inset: 0;
  display: block;
  opacity: 0;
  pointer-events: none;
  background: #fff;
}

.flash-camara.activo { animation: flashCamara 780ms ease-out both; }

.fin-declaraciones {
  transition: filter 520ms ease, transform 520ms ease, opacity 520ms ease;
}

.rueda-prensa.publicando .fin-declaraciones {
  opacity: 0.46;
  filter: brightness(0.24) saturate(0.55);
  transform: scale(0.985);
}

.transicion-publicacion {
  position: absolute;
  z-index: 30;
  inset: 0;
  display: grid;
  padding: 24px;
  overflow: hidden;
  color: var(--crema);
  background: rgba(3, 15, 11, 0.7);
  place-content: center;
  place-items: center;
  text-align: center;
}

.transicion-publicacion__flash {
  position: absolute;
  z-index: 4;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  background: #fffdf5;
}

.transicion-publicacion__portada {
  position: relative;
  z-index: 2;
  display: grid;
  width: clamp(190px, 28vw, 330px);
  aspect-ratio: 3 / 4;
  padding: clamp(20px, 3vw, 36px);
  opacity: 0;
  overflow: hidden;
  color: var(--crema);
  background:
    radial-gradient(circle at 70% 28%, rgba(233, 154, 169, 0.48), transparent 30%),
    linear-gradient(145deg, #174d3b, #0d3025 62%, #8e5660);
  border: 6px solid #f8efde;
  box-shadow: 0 34px 90px rgba(0, 0, 0, 0.56), 12px 10px 0 rgba(230, 185, 77, 0.16);
  align-content: space-between;
  transform: translateY(65vh) rotate(2deg);
}

.transicion-publicacion__portada::after {
  content: "PUBLICADA";
  position: absolute;
  right: 18px;
  bottom: 22px;
  padding: 6px 9px;
  color: var(--dorado);
  border: 1px solid currentColor;
  font: 0.58rem/1 var(--mono);
  letter-spacing: 0.12em;
  transform: rotate(-5deg);
}

.transicion-publicacion__portada small {
  font-family: var(--mono);
  font-size: clamp(0.5rem, 1vw, 0.66rem);
  letter-spacing: 0.14em;
}

.transicion-publicacion__portada strong {
  align-self: center;
  font-family: var(--serif);
  font-size: clamp(2.15rem, 5.3vw, 4rem);
  font-weight: 500;
  line-height: 0.88;
  letter-spacing: -0.05em;
}

.transicion-publicacion__portada em {
  padding-bottom: 34px;
  color: var(--rosa-claro);
  font-family: var(--serif);
  font-size: clamp(1.15rem, 2.4vw, 1.75rem);
}

.transicion-publicacion > p {
  position: relative;
  z-index: 3;
  margin: 24px 0 0;
  opacity: 0;
  color: var(--dorado);
  font-family: var(--mono);
  font-size: clamp(0.85rem, 2vw, 1.15rem);
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.transicion-publicacion.activa .transicion-publicacion__flash {
  animation: flashPublicacion 650ms ease-out both;
}

.transicion-publicacion.activa .transicion-publicacion__portada {
  animation: portadaPublicadaSube 900ms 260ms cubic-bezier(0.16, 0.86, 0.23, 1) both;
}

.transicion-publicacion.activa > p {
  animation: textoPublicadoEntra 480ms 1.06s ease both;
}

/* Portada */
.portada-revista {
  position: relative;
  display: grid;
  min-height: 100svh;
  padding: clamp(24px, 4vh, 52px) 18px;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 42%, rgba(233, 154, 169, 0.2), transparent 34%),
    linear-gradient(150deg, #071e17, #143c2f 58%, #091d16);
  place-items: center;
}

.portada-revista__ambiente {
  opacity: 0.44;
  background:
    linear-gradient(110deg, transparent 10%, rgba(255, 248, 236, 0.13) 11%, transparent 27%),
    linear-gradient(-110deg, transparent 12%, rgba(230, 185, 77, 0.09) 13%, transparent 31%);
}

.portada-revista__marco {
  position: relative;
  z-index: 2;
  display: grid;
  width: min(1100px, 100%);
  grid-template-columns: minmax(280px, 560px) auto;
  gap: clamp(28px, 6vw, 80px);
  align-items: center;
  justify-content: center;
}

.cubierta {
  position: relative;
  width: min(52vh, 520px, 88vw);
  aspect-ratio: 3 / 4;
  overflow: hidden;
  color: #fffdf4;
  background: linear-gradient(145deg, var(--verde-profundo), #8f5660);
  border: 8px solid #f7f0e2;
  box-shadow: 0 40px 100px rgba(0, 0, 0, 0.52), 18px 14px 0 rgba(230, 185, 77, 0.15);
}

.cubierta__foto,
.cubierta__foto img,
.cubierta__velo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.cubierta__foto {
  display: grid;
  color: rgba(255, 248, 236, 0.85);
  background: linear-gradient(145deg, #174d3b, #cb7d8c);
  font-family: var(--serif);
  font-size: clamp(1rem, 2.5vw, 1.45rem);
  font-style: italic;
  place-items: center;
  text-align: center;
}

.cubierta__foto span { width: 70%; }
.cubierta__foto img { object-fit: cover; }
.cubierta__velo {
  background:
    linear-gradient(to bottom, rgba(4, 18, 13, 0.4), transparent 28%, rgba(4, 18, 13, 0.18) 55%, rgba(4, 18, 13, 0.82)),
    linear-gradient(to right, rgba(4, 18, 13, 0.25), transparent 60%);
}

.cubierta__cabecera,
.cubierta__titular,
.cubierta__sumario,
.cubierta__autor {
  position: absolute;
  z-index: 2;
}

.cubierta__cabecera { top: 4%; right: 5%; left: 5%; text-align: center; }
.cubierta__cabecera span {
  font-family: var(--mono);
  font-size: clamp(0.48rem, 1vw, 0.64rem);
  letter-spacing: 0.12em;
}

.cubierta__cabecera h2 {
  margin: 4px 0 0;
  color: #fff8ec;
  font-size: clamp(2.3rem, 6.7vw, 4.6rem);
  font-weight: 500;
  line-height: 0.88;
  letter-spacing: -0.06em;
  text-shadow: 0 3px 16px rgba(0, 0, 0, 0.32);
}

.cubierta__titular { right: 6%; bottom: 23%; left: 6%; }
.cubierta__titular p {
  margin: 0;
  color: var(--dorado);
  font-family: var(--mono);
  font-size: clamp(0.6rem, 1.2vw, 0.78rem);
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.cubierta__titular strong {
  display: block;
  margin: 4px 0;
  font-family: var(--serif);
  font-size: clamp(2.2rem, 6vw, 4.2rem);
  font-style: italic;
  font-weight: 500;
  line-height: 0.9;
  text-shadow: 0 3px 12px rgba(0, 0, 0, 0.34);
}

.cubierta__titular span {
  display: block;
  max-width: 90%;
  font-family: var(--serif);
  font-size: clamp(0.72rem, 1.4vw, 0.92rem);
  line-height: 1.3;
}

.cubierta__sumario {
  bottom: 5%;
  left: 6%;
  display: grid;
  width: 65%;
  margin: 0;
  padding: 0;
  list-style: none;
  gap: 2px;
}

.cubierta__sumario li {
  font-family: var(--sans);
  font-size: clamp(0.48rem, 1vw, 0.62rem);
  font-weight: 800;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.cubierta__autor {
  right: 5%;
  bottom: 5%;
  margin: 0;
  font-family: var(--mono);
  font-size: 0.54rem;
  writing-mode: vertical-rl;
}

.portada-revista__acciones {
  display: grid;
  max-width: 310px;
  gap: 18px;
  justify-items: center;
}

/* Revista digital */
.revista-digital {
  min-height: 100svh;
  padding: 30px 0 92px;
  color: var(--texto-oscuro);
  background:
    linear-gradient(rgba(55, 69, 58, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(55, 69, 58, 0.025) 1px, transparent 1px),
    #efe6d4;
  background-size: 28px 28px;
}

.revista-digital__cabecera {
  display: flex;
  width: min(1180px, calc(100% - 36px));
  margin-bottom: 18px;
  justify-content: space-between;
  gap: 28px;
  align-items: end;
}

.revista-digital__cabecera h2 {
  margin: 0;
  color: var(--verde-noche);
  font-size: clamp(2.2rem, 5vw, 4rem);
}

.revista-digital__enlaces { display: flex; gap: 18px; flex-wrap: wrap; justify-content: flex-end; }

.revista-indice {
  display: flex;
  width: min(1180px, calc(100% - 36px));
  margin-bottom: 16px;
  justify-content: space-between;
  gap: 20px;
  align-items: center;
}

.revista-indice details {
  position: relative;
  z-index: 12;
}

.revista-indice summary {
  min-height: 44px;
  padding: 12px 16px;
  color: var(--crema);
  background: var(--verde-noche);
  cursor: pointer;
  font-family: var(--mono);
  font-size: 0.7rem;
  letter-spacing: 0.07em;
  list-style-position: inside;
  text-transform: uppercase;
}

#indice-revista {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  display: grid;
  width: min(320px, 84vw);
  padding: 8px;
  background: #fffaf0;
  border: 1px solid #d2c5ac;
  box-shadow: 0 20px 50px rgba(42, 51, 44, 0.22);
}

#indice-revista button {
  min-height: 42px;
  padding: 8px 12px;
  color: var(--texto-oscuro);
  background: transparent;
  border: 0;
  cursor: pointer;
  font-family: var(--sans);
  text-align: left;
}

#indice-revista button:hover,
#indice-revista button[aria-current="page"] { background: #f4e4d0; }
#indice-revista button.visitada::after { content: " · leída"; color: var(--rojo-romantico); font-size: 0.7rem; }

.paginas-visitadas { display: flex; gap: 8px; }
.paginas-visitadas span {
  width: 10px;
  height: 10px;
  background: transparent;
  border: 1px solid #7f887f;
  border-radius: 50%;
}
.paginas-visitadas span.visitada { background: var(--rosa); border-color: var(--rosa); }
.paginas-visitadas span.actual { outline: 2px solid var(--verde-noche); outline-offset: 3px; }

.revista-lienzo {
  position: relative;
  width: min(1180px, calc(100% - 36px));
  perspective: 1800px;
  touch-action: pan-y;
}

.pagina-revista {
  position: relative;
  min-height: min(72svh, 760px);
  overflow: hidden auto;
  background:
    linear-gradient(90deg, rgba(45, 38, 29, 0.1), transparent 3%, transparent 97%, rgba(45, 38, 29, 0.08)),
    #fffaf0;
  border: 1px solid #d5c8b0;
  box-shadow: inset 22px 0 35px -32px rgba(34, 30, 24, 0.7), 0 30px 70px rgba(55, 46, 34, 0.22);
  outline: none;
}

.pagina-revista::after {
  content: "";
  position: absolute;
  inset: 10px;
  border: 1px solid rgba(185, 79, 88, 0.11);
  pointer-events: none;
}

.pagina-entrando { animation: paginaPasa 520ms cubic-bezier(0.2, 0.8, 0.25, 1) both; }

.pagina-revista__contenido {
  position: relative;
  z-index: 2;
  min-height: inherit;
  padding: clamp(32px, 5.5vw, 78px);
}

.cabecera-pagina { margin-bottom: clamp(24px, 4vw, 50px); }
.cabecera-pagina > span,
.etiqueta-editorial {
  color: var(--rojo-romantico);
  font-family: var(--mono);
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.cabecera-pagina h3 {
  margin: 8px 0;
  color: var(--verde-noche);
  font-size: clamp(2.2rem, 5vw, 5rem);
  font-weight: 500;
  line-height: 0.98;
  text-wrap: balance;
}

.cabecera-pagina p {
  max-width: 720px;
  margin: 0;
  color: #69736c;
  font-family: var(--serif);
  font-size: 1.05rem;
  font-style: italic;
}

.pagina-revista--portadilla {
  color: var(--crema);
  background:
    radial-gradient(circle at 78% 28%, rgba(233, 154, 169, 0.42), transparent 28%),
    linear-gradient(145deg, #0d3025, #1c503e 58%, #8e5660);
}

.portadilla-editorial {
  display: grid;
  align-content: center;
  justify-items: center;
  text-align: center;
}

.portadilla-editorial h3 {
  max-width: 900px;
  margin: 16px 0 8px;
  font-size: clamp(4rem, 10vw, 9.5rem);
  font-weight: 500;
  line-height: 0.84;
  letter-spacing: -0.06em;
}

.portadilla-editorial > strong {
  color: var(--rosa-claro);
  font-family: var(--serif);
  font-size: clamp(1.8rem, 4vw, 3.8rem);
  font-style: italic;
  font-weight: 400;
}

.portadilla-editorial time {
  margin: 22px 0 42px;
  font-family: var(--mono);
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.portadilla-editorial blockquote {
  max-width: 650px;
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(1.1rem, 2.5vw, 1.7rem);
  font-style: italic;
  line-height: 1.45;
}

.entrevista-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(220px, 0.65fr);
  gap: clamp(28px, 5vw, 70px);
  align-items: start;
}

.entrevista-respuestas { display: grid; gap: 24px; }
.entrevista-respuestas article { padding-left: 22px; border-left: 3px solid var(--rosa); }
.entrevista-respuestas h4 {
  margin: 0 0 8px;
  color: var(--rojo-romantico);
  font-family: var(--sans);
  font-size: 0.76rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.entrevista-respuestas blockquote {
  margin: 0;
  color: var(--verde-noche);
  font-family: var(--serif);
  font-size: clamp(1rem, 1.8vw, 1.3rem);
  line-height: 1.45;
}

.foto-editorial {
  position: relative;
  display: grid;
  width: 100%;
  min-height: 360px;
  padding: 0;
  overflow: hidden;
  color: var(--crema);
  background: linear-gradient(145deg, var(--verde-profundo), var(--rosa));
  border: 10px solid #fff;
  box-shadow: 0 20px 45px rgba(54, 44, 32, 0.2);
  cursor: pointer;
  font-family: var(--serif);
  place-items: center;
}

.foto-editorial--pequena { min-height: 330px; transform: rotate(2deg); }
.foto-editorial img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.foto-editorial span { width: 75%; }

.perfil-revista {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(230px, 0.55fr);
  gap: clamp(32px, 6vw, 82px);
}

.perfil-revista > div { display: grid; grid-template-columns: minmax(200px, 0.7fr) minmax(260px, 1.3fr); gap: 30px; }
.perfil-parrafos p { margin-top: 0; font-family: var(--serif); font-size: 1.06rem; line-height: 1.7; }

.ficha-mvp {
  padding: 28px;
  color: var(--crema);
  background: var(--verde-noche);
  border-top: 8px solid var(--dorado);
  align-self: start;
}

.ficha-mvp > span { font-family: var(--mono); font-size: 0.68rem; letter-spacing: 0.08em; }
.ficha-mvp dl { display: grid; margin: 24px 0 0; grid-template-columns: 1fr auto; gap: 12px; }
.ficha-mvp dt { color: rgba(255, 248, 236, 0.62); font-size: 0.78rem; }
.ficha-mvp dd { margin: 0; color: var(--dorado); font-family: var(--serif); font-weight: 700; text-align: right; }

.articulos-revista { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.articulo-revista {
  position: relative;
  min-height: 330px;
  padding: clamp(26px, 4vw, 46px);
  background: #f8ecda;
  border: 1px solid #dac9ad;
}
.articulo-revista > span { position: absolute; top: 20px; right: 24px; color: rgba(185, 79, 88, 0.25); font: 4rem/1 var(--serif); }
.articulo-revista small { color: var(--rojo-romantico); font: 700 0.7rem/1 var(--mono); letter-spacing: 0.1em; text-transform: uppercase; }
.articulo-revista h4 { max-width: 85%; margin: 24px 0 14px; color: var(--verde-noche); font-size: clamp(1.6rem, 3vw, 2.6rem); }
.articulo-revista p { margin-bottom: 28px; font-family: var(--serif); line-height: 1.6; }
.articulo-revista .boton { display: inline-flex; text-decoration: none; }

.momentos-portada { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; align-items: start; }
.momento-portada {
  padding: 9px 9px 20px;
  color: var(--texto-oscuro);
  background: #fff;
  border: 0;
  box-shadow: 0 18px 36px rgba(55, 44, 33, 0.18);
  cursor: pointer;
  text-align: left;
  transform: rotate(calc((var(--indice) - 1.5) * 1.4deg));
}
.momento-portada:nth-child(even) { margin-top: 28px; }
.momento-portada > span { display: block; padding: 14px 6px 0; }
.momento-portada strong,
.momento-portada small { display: block; }
.momento-portada strong { font-family: var(--serif); font-size: 1.02rem; }
.momento-portada small { margin: 5px 0 8px; color: var(--rojo-romantico); font: 0.61rem/1.2 var(--mono); }
.momento-portada p { margin: 0; color: #697169; font: 0.76rem/1.45 var(--sans); }

.timeline-revista { position: relative; display: grid; max-width: 920px; margin: 0 auto; gap: 18px; }
.timeline-revista::before { content: ""; position: absolute; top: 12px; bottom: 12px; left: 32px; width: 1px; background: #c6b594; }
.timeline-revista__item { position: relative; display: grid; grid-template-columns: 65px 1fr; gap: 22px; align-items: start; }
.timeline-revista__item > span { z-index: 2; display: grid; width: 65px; height: 65px; color: var(--crema); background: var(--verde-noche); border: 5px solid #fffaf0; border-radius: 50%; font: 0.74rem/1 var(--mono); place-items: center; }
.timeline-revista__item > div { padding: 10px 18px 16px; border-bottom: 1px solid #ded2bd; }
.timeline-revista__item small { color: var(--rojo-romantico); font: 0.65rem/1 var(--mono); text-transform: uppercase; }
.timeline-revista__item h4 { margin: 6px 0; color: var(--verde-noche); font-size: 1.35rem; }
.timeline-revista__item p { margin: 0; font-family: var(--serif); line-height: 1.5; }
.cierre-pagina { margin: 34px 0 0; color: var(--rojo-romantico); font: italic clamp(1.2rem, 2.5vw, 1.7rem)/1.4 var(--serif); text-align: center; }

.pagina-revista--cronica .pagina-revista__contenido { max-width: 980px; margin: 0 auto; }
.cronica-texto { column-count: 2; column-gap: clamp(30px, 6vw, 70px); column-rule: 1px solid #ddcfb8; }
.cronica-texto p { margin-top: 0; font-family: var(--serif); font-size: 1.04rem; line-height: 1.75; }
.cronica-texto p:first-child::first-letter { float: left; margin: 4px 9px 0 0; color: var(--rojo-romantico); font: 4.4rem/0.7 var(--serif); }
.cronica-texto blockquote { column-span: all; margin: 32px 0; color: var(--rojo-romantico); font: italic clamp(1.4rem, 3vw, 2.1rem)/1.35 var(--serif); text-align: center; }
.firma-cronica { margin-top: 30px; padding-top: 20px; border-top: 1px solid #d8c9b0; font-family: var(--serif); font-style: italic; text-align: right; }
.firma-cronica span { color: var(--rojo-romantico); }
.cronica-acciones { display: flex; margin-top: 28px; justify-content: center; gap: 14px; flex-wrap: wrap; }

.navegacion-revista {
  position: sticky;
  z-index: 15;
  bottom: 14px;
  display: grid;
  width: min(780px, calc(100% - 28px));
  margin: 20px auto 0;
  padding: 10px;
  background: rgba(255, 250, 240, 0.94);
  border: 1px solid #cfc1a9;
  box-shadow: 0 14px 40px rgba(47, 42, 33, 0.2);
  backdrop-filter: blur(10px);
  grid-template-columns: auto 1fr auto;
  gap: 18px;
  align-items: center;
}

.navegacion-revista__estado { text-align: center; }
.navegacion-revista__estado span { display: block; margin-bottom: 7px; font: 0.66rem/1 var(--mono); text-transform: uppercase; }
.navegacion-revista__estado i { display: block; height: 4px; overflow: hidden; background: #ded3c0; border-radius: 99px; }
.navegacion-revista__estado b { display: block; width: 14.28%; height: 100%; background: var(--rojo-romantico); transition: width 320ms ease; }

/* Despedida y archivo conservado */
.despedida-final {
  position: relative;
  display: grid;
  height: 100svh;
  min-height: 100svh;
  padding: clamp(18px, 3vh, 34px) 20px;
  overflow: hidden;
  color: var(--crema);
  background:
    radial-gradient(circle at 50% 38%, rgba(233, 154, 169, 0.2), transparent 30%),
    linear-gradient(145deg, #071e17, var(--verde-noche) 58%, #122d23);
  place-items: center;
  text-align: center;
}

.despedida-final__contenido {
  position: relative;
  z-index: 2;
  display: flex;
  width: min(900px, 100%);
  max-height: 100%;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.despedida-final h2 { margin: 8px auto clamp(12px, 2vh, 20px); font-size: clamp(2.6rem, min(7vw, 10svh), 6.4rem); font-weight: 500; line-height: 0.92; text-wrap: balance; }
.despedida-pregunta { margin: 0 auto clamp(10px, 1.7vh, 16px); color: var(--dorado); font: 700 clamp(0.95rem, 1.7vw, 1.2rem)/1.25 var(--serif); }
.despedida-final__botones { display: flex; justify-content: center; gap: 14px; flex-wrap: wrap; }
.despedida-final .respuesta-mensaje { min-height: 24px; margin: clamp(10px, 1.8vh, 18px) 0; color: var(--dorado); font-family: var(--serif); font-size: clamp(1rem, 1.8vw, 1.2rem); }
.frase-despedida { margin: clamp(8px, 1.4vh, 14px) auto clamp(10px, 1.8vh, 18px); color: rgba(255, 248, 236, 0.82); font: italic clamp(1rem, 2vw, 1.4rem)/1.35 var(--serif); }
.despedida-final .firma-final { margin: clamp(10px, 1.7vh, 18px) 0 clamp(8px, 1.2vh, 14px); }
.despedida-final__enlaces { display: flex; margin-top: clamp(8px, 1.4vh, 14px); justify-content: center; gap: 22px; flex-wrap: wrap; }

.archivo-original__cabecera { padding: 84px 20px 42px; text-align: center; }
.archivo-original__cabecera h2 { margin: 8px 0 0; font-size: clamp(2.4rem, 6vw, 5rem); }

.boton-desarrollo {
  position: fixed;
  z-index: 1000;
  right: 12px;
  bottom: 12px;
  min-height: 38px;
  padding: 8px 12px;
  color: #fff;
  background: #152c24;
  border: 1px solid var(--dorado);
  border-radius: 3px;
  cursor: pointer;
  font: 0.68rem/1 var(--mono);
}

@keyframes etapaEditorialEntra {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes preguntaCambia {
  from { opacity: 0.35; transform: translateX(14px); }
  to { opacity: 1; transform: translateX(0); }
}

@keyframes microfonoVive {
  0%, 100% { transform: rotate(-3deg); }
  50% { transform: rotate(3deg); }
}

@keyframes periodistasNotas {
  from { transform: translateY(0) rotate(-1deg); }
  to { transform: translateY(-8px) rotate(2deg); }
}

@keyframes flashCamara {
  0% { opacity: 0; }
  12% { opacity: 0.92; }
  35% { opacity: 0; }
  48% { opacity: 0.54; }
  100% { opacity: 0; }
}

@keyframes flashPublicacion {
  0% { opacity: 0; }
  8% { opacity: 0.98; }
  25% { opacity: 0.16; }
  38% { opacity: 0.62; }
  100% { opacity: 0; }
}

@keyframes portadaPublicadaSube {
  0% { opacity: 0; transform: translateY(65vh) rotate(2deg) scale(0.9); }
  72% { opacity: 1; transform: translateY(-10px) rotate(-1deg) scale(1.01); }
  100% { opacity: 1; transform: translateY(0) rotate(0) scale(1); }
}

@keyframes textoPublicadoEntra {
  from { opacity: 0; transform: translateY(10px); letter-spacing: 0.28em; }
  to { opacity: 1; transform: translateY(0); letter-spacing: 0.16em; }
}

@keyframes paginaPasa {
  from { opacity: 0; transform: rotateY(-4deg) translateX(20px); }
  to { opacity: 1; transform: rotateY(0) translateX(0); }
}

@media (min-width: 900px) {
  .sorpresa-corazon {
    grid-template-columns: minmax(0, 1.18fr) minmax(300px, 0.82fr);
    grid-template-rows: auto minmax(0, 1fr) auto auto;
    grid-template-areas:
      "cabecera cabecera"
      "fotos sobre"
      "continuacion sobre"
      "carta carta";
  }

  .sorpresa-corazon .premio__continuacion { grid-area: continuacion; }
}

@media (max-width: 1024px) {
  .rueda-prensa__contenido { grid-template-columns: minmax(260px, 0.72fr) minmax(380px, 1.28fr); gap: 38px; }
  .rueda-prensa__escena { min-height: 540px; }
  .momentos-portada { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .perfil-revista { grid-template-columns: 1fr; }
  .perfil-revista > div { grid-template-columns: minmax(210px, 0.65fr) 1fr; }
  .ficha-mvp { width: min(520px, 100%); }
}

@media (max-width: 768px) {
  .sorpresa-corazon { padding: 72px 14px 82px; overflow: visible; }
  .sorpresa-corazon .premio__cabecera h2 { margin-bottom: 28px; }
  .sorpresa-corazon .polaroids { min-height: 300px; }
  .sorpresa-corazon .polaroid { width: min(44vw, 190px); }
  .sorpresa-corazon .polaroid:nth-child(2) { width: min(50vw, 215px); }
  .sobre-zona { min-height: 300px; }
  .rueda-prensa { overflow: visible; }
  .rueda-prensa__contenido { width: min(100% - 28px, 680px); padding: 64px 0 70px; grid-template-columns: 1fr; }
  .rueda-prensa__escena { min-height: 520px; padding-top: 215px; order: 2; }
  .rueda-prensa__panel { order: 1; }
  .acreditacion { top: 8px; left: 50%; width: 220px; }
  .atril { width: min(100%, 320px); min-height: 270px; height: auto; }
  .microfonos { bottom: 244px; }
  .periodistas { display: none; }
  .opciones-prensa { grid-template-columns: 1fr; }
  .pregunta-acciones { grid-template-columns: 1fr 1fr; }
  .pregunta-acciones .boton-enlace { grid-column: 1 / -1; grid-row: 2; min-height: 44px; }
  .pregunta-acciones .boton { width: 100%; }

  .portada-revista { padding-block: 24px; }
  .portada-revista__marco { grid-template-columns: 1fr; gap: 20px; justify-items: center; }
  .cubierta { width: min(44vh, 86vw); }
  .portada-revista__acciones { gap: 10px; }

  .revista-digital { padding-top: 22px; }
  .revista-digital__cabecera { display: block; }
  .revista-digital__enlaces { margin-top: 12px; justify-content: flex-start; }
  .revista-indice { align-items: flex-start; }
  .pagina-revista { min-height: 68svh; }
  .pagina-revista__contenido { padding: 30px 24px 48px; }
  .entrevista-layout,
  .perfil-revista > div { grid-template-columns: 1fr; }
  .foto-editorial--pequena { width: min(320px, 92%); min-height: 280px; margin: 0 auto; }
  .foto-editorial { min-height: 300px; }
  .articulos-revista { grid-template-columns: 1fr; }
  .momento-portada:nth-child(even) { margin-top: 14px; }
  .cronica-texto { column-count: 1; }
  .navegacion-revista { bottom: 8px; grid-template-columns: 1fr 1fr; gap: 8px; }
  .navegacion-revista__estado { grid-column: 1 / -1; grid-row: 1; }
  .navegacion-revista .boton { width: 100%; min-height: 44px; }
  .despedida-final { padding: 18px 16px; }
}

@media (max-width: 520px) {
  .sorpresa-corazon .premio__cabecera h2 { font-size: clamp(2.75rem, 15vw, 4.2rem); }
  .sorpresa-corazon .polaroids { min-height: 255px; transform: scale(0.92); }
  .premio__continuacion { margin-top: 0; }
  .premio__continuacion .boton { width: 100%; }
  .sobre { width: min(360px, 90vw); }
  .rueda-prensa__contenido { padding-top: 62px; }
  .rueda-prensa__panel .titulo-prensa { font-size: clamp(2.8rem, 13vw, 4.35rem); }
  .tarjeta-pregunta,
  .fin-declaraciones { padding: 22px 18px; }
  .pregunta-meta { display: grid; }
  .pregunta-acciones { gap: 8px; }
  .pregunta-acciones .boton { padding-inline: 10px; font-size: 0.75rem; }
  .rueda-prensa__escena { min-height: 480px; padding-top: 205px; }
  .acreditacion { width: 210px; padding: 22px 20px; }
  .atril { min-height: 245px; }
  .microfonos { bottom: 220px; }
  .cubierta { width: min(49vh, 88vw); border-width: 5px; }
  .cubierta__titular { bottom: 24%; }
  .cubierta__sumario { width: 78%; }
  .cubierta__sumario li:nth-child(n + 4) { display: none; }
  .revista-digital__cabecera,
  .revista-indice,
  .revista-lienzo { width: calc(100% - 20px); }
  .revista-digital__enlaces { gap: 9px; }
  .revista-indice { display: grid; }
  .paginas-visitadas { justify-self: center; }
  .pagina-revista { min-height: 72svh; }
  .pagina-revista__contenido { padding: 26px 18px 42px; }
  .cabecera-pagina h3 { font-size: clamp(2rem, 11vw, 3.2rem); }
  .portadilla-editorial h3 { font-size: clamp(3.3rem, 18vw, 5.4rem); }
  .momentos-portada { gap: 10px; }
  .momento-portada { padding: 6px 6px 14px; transform: none; }
  .momento-portada > span { padding: 10px 3px 0; }
  .momento-portada p { display: none; }
  .timeline-revista__item { grid-template-columns: 48px 1fr; gap: 10px; }
  .timeline-revista::before { left: 24px; }
  .timeline-revista__item > span { width: 48px; height: 48px; }
  .timeline-revista__item > div { padding: 5px 5px 12px; }
  .timeline-revista__item h4 { font-size: 1.08rem; }
  .navegacion-revista { width: calc(100% - 16px); margin-top: 10px; }
  .despedida-final h2 { font-size: clamp(2.8rem, 15vw, 4.5rem); }
  .despedida-final__botones .boton { width: 100%; }
}

@media (max-width: 350px) {
  .sorpresa-corazon { padding-inline: 8px; }
  .sorpresa-corazon .polaroids { margin-inline: -12px; transform: scale(0.86); }
  .rueda-prensa__contenido { width: calc(100% - 18px); }
  .pregunta-acciones { grid-template-columns: 1fr; }
  .pregunta-acciones .boton-enlace { grid-column: 1; grid-row: 3; }
  .cubierta { width: 92vw; }
  .cubierta__titular span { display: none; }
  .momentos-portada { grid-template-columns: 1fr; }
  .momento-portada:nth-child(even) { margin-top: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .etapa-entrando,
  .pregunta-cambiando,
  .pagina-entrando,
  .flash-camara.activo,
  .microfonos i,
  .periodistas.tomando-notas i {
    animation: none !important;
  }

  .transicion-publicacion.activa .transicion-publicacion__portada {
    opacity: 1;
    animation: none !important;
    transform: none;
  }

  .transicion-publicacion.activa > p {
    opacity: 1;
    animation: none !important;
  }

  .transicion-publicacion.activa .transicion-publicacion__flash {
    animation: flashPublicacion 220ms ease-out both !important;
  }

  .progreso-preguntas i,
  .navegacion-revista__estado b,
  .opcion-prensa {
    transition: none !important;
  }
}

/* Visor de revista inspirado en una publicación editorial impresa */
.portada-revista {
  background: #303030;
}

.portada-revista__ambiente {
  opacity: 0.18;
  background: radial-gradient(circle at 50% 45%, rgba(233, 154, 169, 0.42), transparent 38%);
}

.portada-revista__marco {
  grid-template-columns: 1fr;
  gap: 22px;
  justify-items: center;
}

.cubierta {
  width: min(60vh, 610px, 86vw);
  border: 0;
  box-shadow: 0 32px 90px rgba(0, 0, 0, 0.58);
}

.cubierta--imagen-final {
  aspect-ratio: 1103 / 1426;
  background: #245888;
}

.cubierta--imagen-final .cubierta__foto img {
  object-fit: cover;
  object-position: center;
}

.cubierta--imagen-final .cubierta__velo,
.cubierta--imagen-final .cubierta__cabecera,
.cubierta--imagen-final .cubierta__titular,
.cubierta--imagen-final .cubierta__sumario,
.cubierta--imagen-final .cubierta__autor {
  opacity: 0;
  pointer-events: none;
}

.cubierta__cabecera {
  top: 3%;
  right: 4%;
  left: 4%;
}

.cubierta__cabecera h2 {
  font-size: clamp(3.2rem, 8.2vw, 6.5rem);
  line-height: 0.8;
  letter-spacing: -0.075em;
}

.portada-revista__acciones {
  max-width: 520px;
  grid-template-columns: auto auto;
  align-items: center;
}

.revista-digital {
  position: relative;
  min-height: 100svh;
  padding: 18px 0 30px;
  overflow: hidden;
  color: #fffaf0;
  background: #303030;
}

.revista-digital__cabecera {
  width: min(1380px, calc(100% - 120px));
  margin-bottom: 8px;
  color: #fff;
}

.revista-digital__cabecera .eyebrow {
  margin-bottom: 4px;
  color: #e8b94f;
  font-size: 0.62rem;
}

.revista-digital__cabecera h2 {
  color: #fff;
  font-size: clamp(1.6rem, 3vw, 2.7rem);
}

.revista-digital__enlaces .boton-enlace {
  color: rgba(255, 250, 240, 0.76);
}

.revista-indice {
  z-index: 40;
  width: min(1380px, calc(100% - 120px));
  margin-bottom: 10px;
}

.revista-indice summary {
  color: #fff;
  background: #191919;
  border: 1px solid rgba(255, 255, 255, 0.14);
}

.paginas-visitadas span {
  border-color: rgba(255, 255, 255, 0.54);
}

.paginas-visitadas span.actual {
  outline-color: #fff;
}

.revista-visor {
  position: relative;
  display: grid;
  width: 100%;
  min-height: min(78svh, 820px);
  place-items: center;
}

.revista-lienzo {
  display: grid;
  width: min(calc(100vw - 190px), 1320px);
  min-height: 0;
  margin: 0 auto;
  perspective: 1800px;
  place-items: center;
  touch-action: pan-y;
}

.pagina-revista {
  width: 100%;
  height: min(76svh, 790px);
  min-height: 0;
  aspect-ratio: 1.58 / 1;
  overflow: hidden auto;
  color: #191919;
  background: #fff;
  border: 0;
  box-shadow: 0 28px 75px rgba(0, 0, 0, 0.5);
  scrollbar-color: #b6a995 #f1eadf;
  scrollbar-width: thin;
}

.pagina-revista::after {
  z-index: 8;
  inset: 0;
  background: linear-gradient(90deg, transparent 48%, rgba(0, 0, 0, 0.07) 50%, transparent 52%);
  border: 0;
}

.pagina-revista__contenido {
  min-height: 100%;
  padding: clamp(28px, 4vw, 58px);
}

.pagina-revista--portadilla {
  width: min(58vh, 600px, 82vw);
  height: min(78svh, 800px);
  aspect-ratio: 3 / 4;
  overflow: hidden;
  color: #fff;
  background: linear-gradient(150deg, #d8689b, #8f435f);
}

.pagina-revista--portadilla::after {
  display: none;
}

.portadilla-editorial {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  overflow: hidden;
  text-align: left;
}

.portadilla-editorial__foto,
.portadilla-editorial__foto img,
.portadilla-editorial__velo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.portadilla-editorial__foto {
  display: grid;
  color: rgba(255, 255, 255, 0.88);
  background: linear-gradient(150deg, #d96a9f, #174d3b 75%);
  font-family: var(--serif);
  font-size: 1.1rem;
  font-style: italic;
  place-items: center;
  text-align: center;
}

.portadilla-editorial__foto span {
  width: 65%;
}

.portadilla-editorial__foto img {
  object-fit: cover;
}

.portadilla-editorial__velo {
  z-index: 1;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.1), transparent 35%, rgba(0, 0, 0, 0.74));
}

.portadilla-editorial__cabecera,
.portadilla-editorial__titular {
  position: absolute;
  z-index: 2;
  right: 5.5%;
  left: 5.5%;
}

.portadilla-editorial__cabecera {
  top: 3%;
}

.portadilla-editorial__cabecera h3 {
  margin: 0;
  color: #fff;
  font-size: clamp(3.2rem, 7.7vw, 7rem);
  font-weight: 500;
  line-height: 0.8;
  letter-spacing: -0.075em;
  text-align: center;
  text-shadow: 0 2px 16px rgba(0, 0, 0, 0.22);
  text-transform: uppercase;
  white-space: nowrap;
}

.portadilla-editorial__cabecera > div {
  display: grid;
  margin-top: 10px;
  font-family: var(--sans);
  font-size: clamp(0.52rem, 1vw, 0.7rem);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.portadilla-editorial__cabecera time {
  margin-top: 3px;
}

.portadilla-editorial__titular {
  bottom: 5%;
  text-align: center;
}

.portadilla-editorial__titular > p {
  margin: 0 0 2px;
  font-family: var(--sans);
  font-size: clamp(1.25rem, 3.7vw, 2.7rem);
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.035em;
  text-shadow: 0 3px 8px rgba(0, 0, 0, 0.52);
  text-transform: lowercase;
}

.portadilla-editorial__titular > strong {
  display: block;
  margin: 5px 0 7px;
  color: #fff;
  font-family: var(--serif);
  font-size: clamp(1.35rem, 3.1vw, 2.2rem);
  font-style: italic;
  font-weight: 500;
}

.portadilla-editorial__titular > span {
  display: block;
  max-width: 90%;
  margin: 0 auto 10px;
  font-family: var(--sans);
  font-size: clamp(0.52rem, 1.05vw, 0.72rem);
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.portadilla-editorial__titular blockquote {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(0.64rem, 1.2vw, 0.86rem);
  font-style: italic;
}

.flecha-revista {
  position: absolute;
  z-index: 25;
  top: 50%;
  display: grid;
  width: 66px;
  height: 88px;
  padding: 0;
  color: #fff;
  background: transparent;
  border: 0;
  cursor: pointer;
  place-items: center;
  transform: translateY(-50%);
  transition: color 180ms ease, opacity 180ms ease, transform 180ms ease;
}

.flecha-revista span {
  font: 300 5.4rem/0.65 var(--serif);
}

.flecha-revista--anterior { left: clamp(10px, 2.8vw, 46px); }
.flecha-revista--siguiente { right: clamp(10px, 2.8vw, 46px); }
.flecha-revista:hover:not(:disabled) { color: var(--rosa-claro); transform: translateY(-50%) scale(1.1); }
.flecha-revista:disabled { opacity: 0.18; cursor: default; }

.revista-pie {
  display: grid;
  width: min(480px, calc(100% - 40px));
  margin: 12px auto 0;
  color: rgba(255, 255, 255, 0.72);
  justify-items: center;
  gap: 8px;
}

.revista-pie .navegacion-revista__estado {
  width: min(240px, 70vw);
}

.revista-pie .navegacion-revista__estado i {
  background: rgba(255, 255, 255, 0.22);
}

.revista-pie .navegacion-revista__estado b {
  background: var(--rosa);
}

.revista-pie small {
  font-family: var(--mono);
  font-size: 0.58rem;
  letter-spacing: 0.05em;
  text-align: center;
  text-transform: uppercase;
}

.cabecera-pagina {
  margin-bottom: clamp(18px, 2.5vw, 36px);
}

.cabecera-pagina h3 {
  font-size: clamp(2.4rem, 4.8vw, 5rem);
  line-height: 0.86;
  letter-spacing: -0.045em;
}

.entrevista-respuestas {
  gap: 16px;
}

.entrevista-respuestas article {
  padding-left: 16px;
}

.entrevista-respuestas h4 {
  font-size: 0.65rem;
}

.entrevista-respuestas blockquote,
.perfil-parrafos p,
.cronica-texto p {
  font-size: clamp(0.84rem, 1.15vw, 1rem);
}

@media (max-width: 768px) {
  .portada-revista__acciones {
    grid-template-columns: 1fr;
  }

  .cubierta {
    width: min(66vh, 88vw);
  }

  .revista-digital {
    padding-top: 14px;
    overflow: hidden;
  }

  .revista-digital__cabecera,
  .revista-indice {
    width: calc(100% - 24px);
  }

  .revista-digital__cabecera h2 {
    font-size: 1.75rem;
  }

  .revista-visor {
    min-height: 0;
    padding-bottom: 64px;
  }

  .revista-lienzo {
    width: calc(100% - 18px);
  }

  .pagina-revista {
    width: 100%;
    height: 70svh;
    min-height: 520px;
    aspect-ratio: auto;
  }

  .pagina-revista--portadilla {
    width: min(88vw, 460px);
    height: min(70svh, 650px);
    min-height: 480px;
    aspect-ratio: 3 / 4;
  }

  .portadilla-editorial__cabecera h3 {
    font-size: clamp(2.8rem, 15vw, 5.2rem);
  }

  .flecha-revista {
    top: auto;
    bottom: 0;
    width: 54px;
    height: 54px;
    background: rgba(20, 20, 20, 0.92);
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 50%;
    transform: none;
  }

  .flecha-revista span {
    font-size: 3.8rem;
  }

  .flecha-revista--anterior { left: calc(50% - 76px); }
  .flecha-revista--siguiente { right: calc(50% - 76px); }
  .flecha-revista:hover:not(:disabled) { transform: scale(1.06); }

  .revista-pie {
    margin-top: 0;
  }

  .pagina-revista__contenido {
    padding: 28px 22px 44px;
  }
}

@media (max-width: 520px) {
  .revista-digital__cabecera {
    display: grid;
  }

  .revista-digital__enlaces {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .revista-digital__enlaces .boton-enlace {
    min-height: 42px;
    font-size: 0.68rem;
  }

  .pagina-revista {
    min-height: 500px;
  }

  .pagina-revista--portadilla {
    width: min(92vw, 410px);
    min-height: 460px;
  }

  .portadilla-editorial__titular > span {
    max-width: 100%;
  }

  .pagina-revista__contenido {
    padding: 24px 18px 40px;
  }
}

/* Cada página ocupa exactamente el espacio visible del visor */
.revista-digital {
  display: grid;
  height: 100svh;
  min-height: 0;
  grid-template-rows: auto auto minmax(0, 1fr) auto auto;
}

.revista-digital__cabecera,
.revista-indice,
.revista-pie {
  flex-shrink: 0;
}

.revista-visor {
  width: 100%;
  height: 100%;
  min-height: 0;
  overflow: hidden;
}

.revista-lienzo {
  width: min(calc(100vw - 190px), 1320px);
  height: 100%;
  min-height: 0;
}

.pagina-revista {
  width: 100%;
  height: 100%;
  min-height: 0;
  max-height: 100%;
  overflow: hidden;
}

.pagina-revista--portadilla {
  width: auto;
  height: 100%;
  min-height: 0;
  max-width: min(82vw, 600px);
}

.pagina-revista__contenido {
  overflow: visible;
  transform-origin: top left;
  will-change: transform;
}

.entrevista-respuestas blockquote {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

@media (max-width: 768px) {
  .revista-digital {
    padding-bottom: 10px;
  }

  .revista-visor {
    padding-bottom: 58px;
  }

  .revista-lienzo {
    width: calc(100% - 18px);
    height: 100%;
  }

  .pagina-revista,
  .pagina-revista--portadilla {
    width: 100%;
    height: 100%;
    min-height: 0;
    max-height: 100%;
  }

  .pagina-revista--portadilla {
    width: auto;
    max-width: min(88vw, 460px);
  }

  .entrevista-respuestas blockquote {
    -webkit-line-clamp: 2;
  }
}

@media (max-width: 520px) {
  .revista-digital {
    padding-top: 8px;
  }

  .revista-digital__cabecera {
    margin-bottom: 3px;
  }

  .revista-digital__cabecera .eyebrow,
  .revista-pie small,
  .paginas-visitadas {
    display: none;
  }

  .revista-digital__cabecera h2 {
    font-size: 1.35rem;
  }

  .revista-digital__enlaces {
    margin-top: 4px;
  }

  .revista-indice {
    display: block;
    margin-bottom: 5px;
  }

  .revista-indice summary {
    min-height: 38px;
    padding: 9px 12px;
  }

  .revista-pie {
    margin-top: 4px;
  }

  .revista-visor {
    padding-bottom: 52px;
  }

  .pagina-revista--portadilla {
    max-width: 92vw;
  }

  .pagina-revista__contenido {
    padding: 20px 16px 28px;
  }
}

/* La primera página del visor replica la portada publicada */
.pagina-revista--portada-final {
  aspect-ratio: 1103 / 1426;
  background: #245888;
}

.pagina-revista--portada-final .portadilla-editorial__foto img {
  object-fit: contain;
  object-position: center;
}

.pagina-revista--portada-final .portadilla-editorial__velo,
.pagina-revista--portada-final .portadilla-editorial__cabecera,
.pagina-revista--portada-final .portadilla-editorial__titular {
  opacity: 0;
  pointer-events: none;
}

/* Proporción de doble página editorial para las páginas interiores */
@media (min-width: 769px) {
  .pagina-revista:not(.pagina-revista--portadilla) {
    width: auto;
    height: 100%;
    max-width: min(calc(100vw - 190px), 1180px);
    aspect-ratio: 1.54 / 1;
    margin-inline: auto;
  }
}

/* Tifos fotográficos laterales */
.tifo-estadio {
  position: absolute;
  z-index: 14;
  top: 50%;
  width: clamp(100px, calc(50vw - 630px), 360px);
  aspect-ratio: 3 / 4;
  margin: 0;
  pointer-events: none;
  perspective: 620px;
  filter: drop-shadow(0 17px 17px rgba(0, 0, 0, 0.42));
  transform-style: preserve-3d;
}

.tifo-estadio--izquierda {
  left: calc(50% - 50vw + clamp(14px, 1vw, 20px));
  transform: translateY(-50%) rotate(-2deg);
}

.tifo-estadio--derecha {
  right: calc(50% - 50vw + clamp(14px, 1vw, 20px));
  transform: translateY(-50%) rotate(2deg);
}

.tifo-estadio__mastil {
  position: absolute;
  z-index: 3;
  top: -16px;
  bottom: -24px;
  width: 5px;
  background: linear-gradient(90deg, #5f4a28, #e5c873 42%, #84672f 72%, #42331e);
  border-radius: 999px;
  box-shadow: 2px 4px 7px rgba(0, 0, 0, 0.48);
}

.tifo-estadio__mastil::before {
  content: "";
  position: absolute;
  top: -8px;
  left: 50%;
  width: 11px;
  aspect-ratio: 1;
  background: var(--dorado);
  border: 1px solid #6f5423;
  border-radius: 50%;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.35);
  transform: translateX(-50%);
}

.tifo-estadio--izquierda .tifo-estadio__mastil { left: -5px; }
.tifo-estadio--derecha .tifo-estadio__mastil { right: -5px; }

.tifo-estadio__tela {
  position: absolute;
  z-index: 2;
  inset: 0;
  display: block;
  overflow: hidden;
  padding: 0;
  background: #d8c995;
  border: 3px solid #dcb85d;
  border-radius: 2px 11px 10px 2px;
  box-shadow:
    inset 0 0 0 2px rgba(255, 247, 218, 0.44),
    inset -13px 0 22px rgba(6, 20, 14, 0.22),
    0 13px 24px rgba(0, 0, 0, 0.38);
  clip-path: polygon(0 0, 96% 1%, 100% 9%, 97% 20%, 100% 34%, 96.5% 49%, 100% 64%, 97% 79%, 100% 91%, 96% 99%, 0 100%);
  backface-visibility: visible;
  transform-origin: left 12%;
  animation: ondearTifoIzquierda 3.1s cubic-bezier(0.42, 0.05, 0.37, 0.98) infinite alternate;
  will-change: transform, filter, clip-path;
}

.tifo-estadio--derecha .tifo-estadio__tela {
  padding: 0;
  border-radius: 11px 2px 2px 10px;
  clip-path: polygon(4% 1%, 100% 0, 100% 100%, 4% 99%, 0 91%, 3% 79%, 0 64%, 3.5% 49%, 0 34%, 3% 20%, 0 9%);
  transform-origin: right 12%;
  animation-name: ondearTifoDerecha;
  animation-delay: -1.35s;
}

.tifo-estadio__tela::after {
  content: "";
  position: absolute;
  z-index: 2;
  inset: 0;
  opacity: 0.42;
  pointer-events: none;
  background:
    linear-gradient(90deg,
      rgba(255, 255, 255, 0.34) 0%,
      transparent 10%,
      rgba(0, 0, 0, 0.3) 23%,
      rgba(255, 255, 255, 0.27) 39%,
      transparent 53%,
      rgba(0, 0, 0, 0.27) 69%,
      rgba(255, 255, 255, 0.24) 84%,
      rgba(0, 0, 0, 0.18) 100%);
  background-size: 205% 100%;
  mix-blend-mode: soft-light;
  animation: plieguesTifo 2.45s ease-in-out infinite alternate;
}

.tifo-estadio__tela img {
  position: absolute;
  z-index: 0;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  user-select: none;
  object-fit: fill;
  object-position: center;
  filter: saturate(0.94) contrast(1.04) brightness(0.96);
  transform: none;
}

.tifo-estadio--derecha .tifo-estadio__tela img {
  object-position: center;
}

.tifo-estadio__brillo {
  position: absolute;
  z-index: 3;
  top: -10%;
  bottom: -10%;
  left: -55%;
  width: 35%;
  opacity: 0.32;
  pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(255, 249, 220, 0.52), transparent);
  filter: blur(3px);
  transform: skewX(-12deg);
  animation: brilloTifo 6.5s ease-in-out infinite;
}

.estadio.sacudida .tifo-estadio__tela,
.estadio.sacudida-final .tifo-estadio__tela,
.estadio.hat-trick-activo .tifo-estadio__tela {
  filter: brightness(1.12) saturate(1.08);
  animation-duration: 780ms;
}

@keyframes ondearTifoIzquierda {
  0% {
    clip-path: polygon(0 0, 95% 1%, 100% 8%, 96% 20%, 100% 34%, 96% 48%, 100% 63%, 97% 78%, 100% 91%, 95% 99%, 0 100%);
    transform: rotateY(-13deg) rotateZ(-1.1deg) skewY(0.8deg) scaleX(0.975);
  }
  32% {
    clip-path: polygon(0 0, 98% 2%, 96% 11%, 100% 23%, 97% 37%, 100% 52%, 96% 66%, 100% 81%, 97% 92%, 99% 99%, 0 100%);
    transform: rotateY(8deg) rotateZ(0.75deg) skewY(-0.75deg) scaleX(0.945);
  }
  67% {
    clip-path: polygon(0 0, 96% 1%, 100% 12%, 97% 25%, 100% 39%, 96% 54%, 100% 69%, 97% 82%, 100% 94%, 96% 99%, 0 100%);
    transform: rotateY(-6deg) rotateZ(1.15deg) skewY(1deg) scaleX(1);
  }
  100% {
    clip-path: polygon(0 0, 99% 2%, 96% 14%, 100% 28%, 97% 43%, 100% 57%, 96% 72%, 100% 86%, 96% 95%, 98% 100%, 0 100%);
    transform: rotateY(15deg) rotateZ(-0.55deg) skewY(-1.05deg) scaleX(0.94);
  }
}

@keyframes ondearTifoDerecha {
  0% {
    clip-path: polygon(5% 1%, 100% 0, 100% 100%, 5% 99%, 0 91%, 4% 78%, 0 63%, 4% 48%, 0 34%, 4% 20%, 0 8%);
    transform: rotateY(13deg) rotateZ(1.05deg) skewY(-0.75deg) scaleX(0.975);
  }
  34% {
    clip-path: polygon(2% 2%, 100% 0, 100% 100%, 1% 99%, 3% 92%, 0 81%, 4% 66%, 0 52%, 3% 37%, 0 23%, 4% 11%);
    transform: rotateY(-8deg) rotateZ(-0.8deg) skewY(0.8deg) scaleX(0.945);
  }
  70% {
    clip-path: polygon(4% 1%, 100% 0, 100% 100%, 4% 99%, 0 94%, 3% 82%, 0 69%, 4% 54%, 0 39%, 3% 25%, 0 12%);
    transform: rotateY(6deg) rotateZ(-1.1deg) skewY(-1deg) scaleX(1);
  }
  100% {
    clip-path: polygon(1% 2%, 100% 0, 100% 100%, 2% 100%, 4% 95%, 0 86%, 4% 72%, 0 57%, 3% 43%, 0 28%, 4% 14%);
    transform: rotateY(-15deg) rotateZ(0.6deg) skewY(1.05deg) scaleX(0.94);
  }
}

@keyframes plieguesTifo {
  from { background-position: 0 0; }
  to { background-position: 100% 0; }
}

@keyframes brilloTifo {
  0%, 22% { left: -55%; opacity: 0; }
  42% { opacity: 0.3; }
  68%, 100% { left: 125%; opacity: 0; }
}

@media (max-width: 1450px) {
  .tifo-estadio {
    display: none;
  }
}

/* Dobles páginas editoriales: entrevista, perfil, temporada y crónica */
.cabecera-pagina--editorial {
  position: relative;
  margin-bottom: clamp(14px, 1.8vw, 25px);
  padding-bottom: clamp(10px, 1.25vw, 17px);
  border-bottom: 1px solid #d9cdbb;
}

.cabecera-pagina--editorial::after {
  content: "";
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 76px;
  height: 3px;
  background: var(--rojo-romantico);
}

.cabecera-pagina--editorial h3 {
  max-width: 920px;
  margin-top: 7px;
  font-size: clamp(2.6rem, 4.7vw, 4.9rem);
}

.cabecera-pagina--editorial > p:not(.cronica-kicker) {
  max-width: 720px;
  margin-top: 9px;
  font-size: clamp(0.76rem, 1vw, 0.94rem);
}

/* 02–03 · Entrevista exclusiva */
.entrevista-editorial {
  display: grid;
  min-height: 0;
  grid-template-columns: minmax(0, 1.12fr) minmax(260px, 0.88fr);
  gap: clamp(24px, 3.8vw, 52px);
}

.pagina-revista--entrevista .entrevista-respuestas {
  display: grid;
  align-content: start;
  gap: clamp(10px, 1.25vw, 16px);
  counter-reset: pregunta;
}

.pagina-revista--entrevista .entrevista-respuestas article {
  position: relative;
  padding: 0 0 clamp(9px, 1.1vw, 14px) 34px;
  border: 0;
  border-bottom: 1px solid #e1d7c8;
  counter-increment: pregunta;
}

.pagina-revista--entrevista .entrevista-respuestas article::before {
  content: "0" counter(pregunta);
  position: absolute;
  top: 1px;
  left: 0;
  color: var(--rojo-romantico);
  font: 700 0.62rem/1 var(--mono);
  letter-spacing: 0.08em;
}

.pagina-revista--entrevista .entrevista-respuestas article:first-child {
  padding-top: 10px;
  padding-bottom: 15px;
  background: linear-gradient(90deg, rgba(220, 135, 152, 0.12), transparent 78%);
}

.pagina-revista--entrevista .entrevista-respuestas article:first-child::before {
  top: 12px;
}

.pagina-revista--entrevista .entrevista-respuestas h4 {
  margin-bottom: 5px;
  color: #1d4739;
  font-size: clamp(0.57rem, 0.78vw, 0.7rem);
  line-height: 1.35;
}

.pagina-revista--entrevista .entrevista-respuestas blockquote {
  display: block;
  margin: 0;
  overflow: visible;
  color: #292522;
  font-size: clamp(0.77rem, 1.02vw, 0.94rem);
  line-height: 1.35;
  -webkit-line-clamp: unset;
}

.entrevista-editorial__lateral {
  display: grid;
  min-width: 0;
  align-content: start;
  grid-template-columns: minmax(0, 1fr) minmax(120px, 0.72fr);
  gap: 14px;
}

.foto-editorial--entrevista {
  grid-column: 1 / -1;
  min-height: clamp(210px, 29vh, 320px);
  border: 0;
  box-shadow: 0 15px 30px rgba(42, 32, 25, 0.24);
}

.foto-editorial--entrevista::after {
  content: "THE LOVE CUP · EXCLUSIVE";
  position: absolute;
  z-index: 2;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 22px 14px 10px;
  color: #fff;
  background: linear-gradient(transparent, rgba(8, 24, 19, 0.82));
  font: 700 0.56rem/1 var(--mono);
  letter-spacing: 0.12em;
  text-align: left;
}

.cita-entrevista {
  margin: 0;
  padding: 17px 16px;
  color: #fff8ea;
  background: var(--rojo-romantico);
  font: italic clamp(0.9rem, 1.35vw, 1.25rem)/1.22 var(--serif);
}

.ficha-entrevista {
  padding: 15px;
  color: #fff8ea;
  background: var(--verde-noche);
}

.ficha-entrevista > span,
.ficha-mvp > span {
  color: var(--dorado);
  font: 800 0.55rem/1 var(--mono);
  letter-spacing: 0.13em;
}

.ficha-entrevista dl {
  display: grid;
  margin: 11px 0 0;
  gap: 7px;
}

.ficha-entrevista dl div {
  display: flex;
  padding-bottom: 5px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  justify-content: space-between;
  gap: 8px;
}

.ficha-entrevista dt,
.ficha-entrevista dd {
  margin: 0;
  font-size: clamp(0.53rem, 0.7vw, 0.65rem);
}

.ficha-entrevista dt { color: rgba(255, 248, 234, 0.62); }
.ficha-entrevista dd { color: var(--dorado); text-align: right; }

/* 04–05 · Perfil / reportaje */
.perfil-editorial {
  display: grid;
  min-height: 0;
  grid-template-columns: minmax(250px, 0.72fr) minmax(0, 1.28fr);
  gap: clamp(24px, 4vw, 54px);
}

.perfil-editorial__visual {
  display: grid;
  align-content: start;
  gap: 12px;
}

.foto-editorial--perfil {
  min-height: clamp(225px, 31vh, 350px);
  border: 0;
  box-shadow: 0 16px 34px rgba(45, 32, 23, 0.22);
}

.foto-editorial--perfil img {
  object-position: center 30%;
}

.pagina-revista--perfil .ficha-mvp {
  padding: clamp(16px, 2vw, 22px);
  border-top-width: 5px;
}

.pagina-revista--perfil .ficha-mvp dl {
  margin-top: 13px;
  grid-template-columns: minmax(80px, 0.65fr) minmax(0, 1.35fr);
  gap: 7px 12px;
}

.pagina-revista--perfil .ficha-mvp dt,
.pagina-revista--perfil .ficha-mvp dd {
  font-size: clamp(0.55rem, 0.78vw, 0.7rem);
  line-height: 1.25;
}

.pagina-revista--perfil .perfil-parrafos {
  column-count: 2;
  column-gap: clamp(22px, 3vw, 42px);
  column-rule: 1px solid #ded3c2;
}

.pagina-revista--perfil .perfil-parrafos p {
  margin: 0 0 1.05em;
  color: #2f2b27;
  font-size: clamp(0.82rem, 1.1vw, 1rem);
  line-height: 1.62;
  break-inside: avoid;
}

.pagina-revista--perfil .perfil-parrafos p:first-child::first-letter {
  float: left;
  margin: 5px 8px 0 0;
  color: var(--rojo-romantico);
  font: 5rem/0.68 var(--serif);
}

.pagina-revista--perfil .perfil-parrafos p:first-child {
  font-size: clamp(0.93rem, 1.22vw, 1.1rem);
  font-weight: 600;
}

/* 06–07 · Timeline horizontal */
.pagina-revista--timeline .cabecera-pagina {
  margin-bottom: clamp(17px, 2.3vw, 29px);
}

.pagina-revista--timeline .timeline-revista {
  position: relative;
  display: grid;
  width: 100%;
  max-width: none;
  margin: 0;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(12px, 1.8vw, 25px);
}

.pagina-revista--timeline .timeline-revista::before {
  top: clamp(132px, 18vh, 178px);
  right: 6%;
  bottom: auto;
  left: 6%;
  width: auto;
  height: 2px;
  background: linear-gradient(90deg, var(--rojo-romantico), var(--dorado), var(--verde-noche));
}

.pagina-revista--timeline .timeline-revista__item {
  display: grid;
  min-width: 0;
  grid-template-columns: 1fr;
  grid-template-rows: clamp(112px, 15vh, 150px) 40px auto;
  gap: 0;
  text-align: center;
}

.timeline-revista__foto {
  position: relative;
  height: 100%;
  margin: 0;
  overflow: hidden;
  background: #eadfcd;
  box-shadow: 0 11px 22px rgba(45, 34, 24, 0.2);
}

.timeline-revista__foto::after {
  content: "";
  position: absolute;
  inset: 0;
  border: 1px solid rgba(255, 255, 255, 0.6);
  box-shadow: inset 0 0 0 5px rgba(255, 255, 255, 0.15);
}

.timeline-revista__foto img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.timeline-revista__item:nth-child(even) .timeline-revista__foto { transform: translateY(8px); }
.timeline-revista__item:first-child .timeline-revista__foto img { object-position: center 25%; }

.pagina-revista--timeline .timeline-revista__item > span {
  z-index: 2;
  align-self: center;
  justify-self: center;
  width: 32px;
  height: 32px;
  color: #fff8ea;
  background: var(--verde-noche);
  border: 4px solid #fff;
  border-radius: 50%;
  box-shadow: 0 0 0 1px var(--dorado);
  font: 700 0.55rem/1 var(--mono);
}

.pagina-revista--timeline .timeline-revista__item > div {
  padding: 7px 5px 0;
  border: 0;
}

.pagina-revista--timeline .timeline-revista__item small {
  display: block;
  min-height: 1.2em;
  color: var(--rojo-romantico);
  font-size: clamp(0.48rem, 0.65vw, 0.6rem);
  letter-spacing: 0.08em;
}

.pagina-revista--timeline .timeline-revista__item h4 {
  margin: 6px 0 5px;
  font-size: clamp(0.93rem, 1.45vw, 1.3rem);
  line-height: 1.03;
}

.pagina-revista--timeline .timeline-revista__item p {
  font-size: clamp(0.66rem, 0.85vw, 0.78rem);
  line-height: 1.35;
}

.pagina-revista--timeline .cierre-pagina {
  margin-top: clamp(14px, 2vw, 24px);
  font-size: clamp(0.92rem, 1.55vw, 1.3rem);
}

/* 12–13 · Crónica final */
.pagina-revista--cronica .pagina-revista__contenido {
  max-width: none;
}

.pagina-revista--cronica .cabecera-pagina {
  margin-bottom: clamp(15px, 2vw, 25px);
}

.pagina-revista--cronica .cabecera-pagina h3 {
  max-width: 990px;
  font-size: clamp(2.8rem, 5.2vw, 5.5rem);
}

.cronica-kicker {
  margin: 7px 0 2px;
  color: var(--rojo-romantico) !important;
  font: 800 0.58rem/1 var(--mono) !important;
  letter-spacing: 0.18em !important;
}

.cronica-editorial {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(170px, 0.26fr);
  gap: clamp(24px, 3.5vw, 50px);
  align-items: start;
}

.pagina-revista--cronica .cronica-texto {
  column-count: 2;
  column-gap: clamp(24px, 3.2vw, 44px);
  column-rule: 1px solid #ddcfb8;
}

.pagina-revista--cronica .cronica-texto p {
  margin: 0 0 0.95em;
  color: #2d2925;
  font-size: clamp(0.74rem, 0.92vw, 0.88rem);
  line-height: 1.55;
  break-inside: avoid;
}

.pagina-revista--cronica .cronica-texto p:first-child::first-letter {
  margin: 5px 9px 0 0;
  font-size: 5.2rem;
}

.cronica-cita-margen {
  position: relative;
  margin: 0;
  padding: 22px 0;
  color: var(--rojo-romantico);
  border-top: 5px solid var(--dorado);
  border-bottom: 1px solid #cfc1ab;
  font: italic clamp(1rem, 1.5vw, 1.42rem)/1.28 var(--serif);
}

.cronica-cita-margen::before {
  content: "“";
  position: absolute;
  top: 8px;
  left: -8px;
  color: rgba(185, 79, 88, 0.15);
  font: 6rem/1 var(--serif);
}

.pagina-revista--cronica .firma-cronica {
  margin-top: clamp(13px, 1.8vw, 23px);
  padding-top: 12px;
  font-size: clamp(0.72rem, 0.95vw, 0.88rem);
}

.pagina-revista--cronica .cronica-acciones {
  margin-top: clamp(11px, 1.5vw, 19px);
}

@media (max-width: 768px) {
  .cabecera-pagina--editorial h3 {
    font-size: clamp(2.05rem, 9vw, 3.2rem);
  }

  .entrevista-editorial,
  .perfil-editorial {
    grid-template-columns: 1fr;
    gap: 13px;
  }

  .pagina-revista--entrevista .entrevista-respuestas {
    grid-template-columns: 1fr 1fr;
    gap: 8px 12px;
  }

  .pagina-revista--entrevista .entrevista-respuestas article {
    padding-left: 26px;
  }

  .entrevista-editorial__lateral,
  .perfil-editorial__visual {
    grid-template-columns: minmax(0, 1fr) minmax(130px, 0.78fr);
  }

  .foto-editorial--entrevista,
  .foto-editorial--perfil {
    grid-column: auto;
    min-height: 150px;
  }

  .cita-entrevista {
    align-self: stretch;
  }

  .ficha-entrevista {
    grid-column: 1 / -1;
  }

  .perfil-editorial__visual .ficha-mvp {
    min-height: 150px;
  }

  .pagina-revista--perfil .perfil-parrafos {
    column-count: 2;
    column-gap: 18px;
  }

  .pagina-revista--timeline .timeline-revista {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 13px;
  }

  .pagina-revista--timeline .timeline-revista::before {
    display: none;
  }

  .pagina-revista--timeline .timeline-revista__item {
    grid-template-columns: 90px 28px 1fr;
    grid-template-rows: 90px;
    align-items: center;
    text-align: left;
  }

  .pagina-revista--timeline .timeline-revista__item > span {
    width: 26px;
    height: 26px;
  }

  .pagina-revista--timeline .timeline-revista__item > div {
    padding: 0 0 0 8px;
  }

  .cronica-editorial {
    grid-template-columns: minmax(0, 1fr) minmax(120px, 0.28fr);
    gap: 17px;
  }

  .pagina-revista--cronica .cronica-texto {
    column-gap: 18px;
  }
}

@media (max-width: 520px) {
  .cabecera-pagina--editorial {
    margin-bottom: 10px;
    padding-bottom: 8px;
  }

  .pagina-revista--entrevista .entrevista-respuestas blockquote,
  .pagina-revista--perfil .perfil-parrafos p,
  .pagina-revista--cronica .cronica-texto p {
    font-size: 0.68rem;
  }

  .entrevista-editorial__lateral {
    grid-template-columns: 1fr 1fr;
  }

  .foto-editorial--entrevista {
    min-height: 120px;
  }

  .perfil-editorial__visual {
    grid-template-columns: 0.8fr 1.2fr;
  }

  .foto-editorial--perfil,
  .perfil-editorial__visual .ficha-mvp {
    min-height: 135px;
  }

  .pagina-revista--perfil .perfil-parrafos {
    column-gap: 12px;
  }

  .pagina-revista--timeline .timeline-revista__item {
    grid-template-columns: 66px 24px 1fr;
    grid-template-rows: 68px;
  }

  .pagina-revista--timeline .timeline-revista__item h4 {
    font-size: 0.8rem;
  }

  .pagina-revista--timeline .timeline-revista__item p {
    font-size: 0.58rem;
  }

  .cronica-editorial {
    grid-template-columns: minmax(0, 1fr) 100px;
    gap: 12px;
  }

  .cronica-cita-margen {
    padding: 14px 0;
    font-size: 0.8rem;
  }
}

/* 08–09 · Love Across Borders */
.pagina-revista--distancia {
  background-color: #f8f1e3;
  background-image:
    linear-gradient(rgba(91, 157, 188, 0.14) 1px, transparent 1px),
    linear-gradient(90deg, rgba(91, 157, 188, 0.14) 1px, transparent 1px);
  background-size: 20px 20px;
  background-position: 0 0;
}

.pagina-revista--distancia::after {
  content: none;
}

.distancia-editorial {
  position: relative;
  display: block;
  height: 100%;
  isolation: isolate;
  padding: clamp(24px, 3.2vw, 44px);
  overflow: hidden;
  background-color: #f8f1e3;
  background-image:
    linear-gradient(rgba(91, 157, 188, 0.14) 1px, transparent 1px),
    linear-gradient(90deg, rgba(91, 157, 188, 0.14) 1px, transparent 1px);
  background-size: 20px 20px;
  background-position: 0 0;
}

.distancia-editorial__cuadricula {
  display: none;
}

.distancia-editorial__izquierda {
  position: relative;
  z-index: 5;
  display: flex;
  width: 46%;
  height: 100%;
  flex-direction: column;
  justify-content: flex-start;
}

.distancia-titular {
  position: relative;
  padding-top: clamp(28px, 5vh, 48px);
  text-align: center;
}

.distancia-titular > span {
  display: flex;
  color: #d7232e;
  font: 300 clamp(1.2rem, 2.05vw, 1.9rem)/1 "Times New Roman", Times, serif;
  letter-spacing: 0.015em;
  align-items: center;
  gap: 12px;
}

.distancia-titular > span::before,
.distancia-titular > span::after {
  content: "";
  height: 1px;
  background: #d7232e;
  flex: 1;
}

.distancia-titular h3 {
  width: 100%;
  max-width: 100%;
  margin: clamp(10px, 1.3vw, 16px) 0 clamp(12px, 1.6vw, 20px);
  color: #d7232e;
  font-family: "Times New Roman", Times, serif;
  font-size: clamp(3rem, 5.25vw, 5.35rem);
  font-weight: 300;
  line-height: 0.88;
  letter-spacing: -0.02em;
  text-align: left;
}

.distancia-titular h3 b {
  display: block;
  font-weight: inherit;
}

.distancia-titular > small {
  display: flex;
  margin-top: 0;
  color: #d7232e;
  font: 500 clamp(0.46rem, 0.65vw, 0.6rem)/1.2 Arial, Helvetica, sans-serif;
  letter-spacing: 0.08em;
  align-items: center;
  justify-content: center;
  gap: 10px;
  white-space: nowrap;
  transform: translateY(-9px);
}

.distancia-titular > small::before,
.distancia-titular > small::after {
  content: "";
  min-width: 28px;
  height: 1px;
  background: #d7232e;
  flex: 1;
}

.distancia-texto--izquierda {
  display: grid;
  margin-top: clamp(10px, 1.6vh, 16px);
  margin-bottom: 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(14px, 1.8vw, 24px);
}

.distancia-texto--izquierda p {
  break-inside: avoid-column;
  page-break-inside: avoid;
}

.distancia-texto--izquierda p:first-child {
  padding-right: clamp(7px, 0.8vw, 12px);
  border-right: 1px solid rgba(73, 106, 117, 0.2);
}

.distancia-texto p,
.distancia-editorial__derecha > p:first-child {
  margin: 0 0 0.8em;
  color: #222625;
  font-family: "Times New Roman", Times, serif;
  font-size: clamp(0.61rem, 0.78vw, 0.73rem);
  line-height: 1.43;
  text-align: justify;
}

.pagina-revista--distancia .distancia-texto p {
  font-size: clamp(0.5rem, 0.67vw, 0.62rem);
  line-height: 1.32;
}

.distancia-texto p:first-child::first-letter {
  float: left;
  margin: 4px 5px 0 0;
  color: #151818;
  font: 3.1rem/0.65 "Bodoni MT", "Bodoni 72", Didot, "Times New Roman", serif;
}

.distancia-mapas {
  position: absolute;
  z-index: 2;
  inset: 0;
  pointer-events: none;
}

.mapas-corazon-editorial {
  position: absolute;
  z-index: 3;
  top: 1.5%;
  right: 0.8%;
  bottom: 1.5%;
  left: 49%;
  margin: 0;
  overflow: visible;
  background: transparent;
}

.mapas-corazon-editorial > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: right center;
  mix-blend-mode: multiply;
  filter: saturate(0.96) contrast(1.01);
}

.mapa-corazon-recorte {
  position: absolute;
  overflow: hidden;
  background: transparent;
  filter: drop-shadow(0 10px 8px rgba(47, 45, 39, 0.24));
}

.mapa-corazon-recorte--burlington {
  top: 0;
  left: 4%;
  height: 58%;
  aspect-ratio: 534 / 750;
  clip-path: polygon(4% 12%, 14% 4%, 20% 15%, 29% 0, 36% 10%, 44% 4%, 52% 15%, 64% 11%, 72% 18%, 85% 13%, 98% 25%, 94% 39%, 97% 51%, 88% 64%, 82% 75%, 69% 84%, 58% 93%, 48% 100%, 34% 96%, 23% 84%, 13% 71%, 4% 56%, 0 37%);
}

.mapa-corazon-recorte--madrid {
  right: 0;
  bottom: 0;
  height: 62%;
  aspect-ratio: 518 / 812;
  clip-path: polygon(9% 12%, 17% 1%, 25% 9%, 35% 0, 43% 10%, 54% 3%, 63% 11%, 73% 8%, 83% 15%, 97% 18%, 100% 33%, 93% 43%, 97% 54%, 89% 65%, 85% 79%, 74% 90%, 59% 100%, 43% 97%, 29% 88%, 20% 73%, 14% 58%, 5% 44%, 0 29%);
}

.mapa-corazon-recorte img {
  position: absolute;
  display: block;
  height: auto;
  max-width: none;
  filter: saturate(0.94) contrast(1.02);
  mix-blend-mode: multiply;
}

.mapa-corazon-recorte--burlington img {
  top: -3.1%;
  left: -7%;
  width: 210%;
}

.mapa-corazon-recorte--madrid img {
  top: -72.7%;
  left: -116.6%;
  width: 216.6%;
}

.hilos-corazon {
  position: absolute;
  z-index: 5;
  inset: 0;
  pointer-events: none;
}

.hilo-red {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 0;
  height: 1.4px;
  opacity: 0.75;
  background: #c9252d;
  border-radius: 999px;
  transform-origin: left center;
}

.punto-hilo {
  position: absolute;
  z-index: 3;
  top: var(--y);
  left: var(--x);
  display: block;
  width: 4px;
  height: 4px;
  opacity: 0.86;
  background: #c9252d;
  border: 0;
  border-radius: 50%;
  box-shadow: none;
  transform: translate(-50%, -50%);
}

.punto-hilo--nudo {
  z-index: 4;
  width: 3px;
  height: 3px;
  opacity: 0.72;
}

.mapa-editorial {
  position: absolute;
  margin: 0;
  filter: drop-shadow(0 10px 10px rgba(44, 39, 31, 0.24));
}

.mapa-editorial--burlington {
  top: 2.5%;
  left: 45.5%;
  width: 27%;
  aspect-ratio: 1.2 / 1;
  transform: rotate(-3deg);
}

.mapa-editorial--madrid {
  right: 1.5%;
  bottom: 4.5%;
  width: 25.5%;
  aspect-ratio: 0.8 / 1;
  transform: rotate(3deg);
}

.mapa-editorial__recorte {
  position: absolute;
  inset: 0;
  overflow: hidden;
  background: #ddd0b6;
}

.mapa-editorial--burlington .mapa-editorial__recorte {
  clip-path: polygon(2% 31%, 12% 20%, 31% 23%, 45% 12%, 64% 18%, 82% 13%, 96% 23%, 100% 49%, 89% 60%, 73% 55%, 61% 70%, 45% 61%, 29% 75%, 13% 63%, 0 57%);
}

.mapa-editorial--madrid .mapa-editorial__recorte {
  clip-path: polygon(29% 2%, 55% 0, 72% 11%, 91% 16%, 94% 34%, 100% 54%, 87% 67%, 82% 87%, 61% 98%, 42% 91%, 22% 96%, 11% 78%, 1% 61%, 8% 42%, 4% 23%, 19% 13%);
}

.mapa-editorial iframe {
  position: absolute;
  top: -14%;
  left: -14%;
  width: 128%;
  height: 128%;
  border: 0;
  filter: saturate(0.72) sepia(0.12) contrast(1.06) brightness(1.05);
  pointer-events: none;
}

.mapa-editorial__recorte::after {
  content: "";
  position: absolute;
  z-index: 2;
  inset: 0;
  opacity: 0.32;
  pointer-events: none;
  background: repeating-linear-gradient(107deg, transparent 0 8px, rgba(255, 249, 230, 0.32) 9px, transparent 10px 17px);
  mix-blend-mode: soft-light;
}

.mapa-editorial figcaption {
  position: absolute;
  z-index: 4;
  display: grid;
  padding: 7px 10px;
  color: #fff;
  background: #d7232e;
  box-shadow: 0 4px 10px rgba(74, 35, 33, 0.24);
  font-family: var(--sans);
  text-transform: uppercase;
}

.mapa-editorial--burlington figcaption {
  right: 2%;
  bottom: 12%;
}

.mapa-editorial--madrid figcaption {
  top: 27%;
  left: -5%;
}

.mapa-editorial figcaption strong {
  font-size: clamp(0.54rem, 0.78vw, 0.7rem);
  letter-spacing: 0.12em;
}

.mapa-editorial figcaption span {
  margin-top: 2px;
  font-size: clamp(0.39rem, 0.51vw, 0.48rem);
  letter-spacing: 0.08em;
}

.mapa-editorial__punto {
  position: absolute;
  z-index: 5;
  display: block;
  width: 12px;
  height: 12px;
  background: #d7232e;
  border: 3px solid #fff;
  border-radius: 50%;
  box-shadow: 0 0 0 1px #d7232e, 0 0 0 6px rgba(215, 35, 46, 0.12);
}

.mapa-editorial--burlington .mapa-editorial__punto {
  top: 50%;
  left: 49%;
}

.mapa-editorial--madrid .mapa-editorial__punto {
  top: 48%;
  left: 49%;
}

.hilos-destino {
  position: absolute;
  z-index: 6;
  top: 36%;
  left: 59%;
  width: 22%;
  height: 27%;
  transform: rotate(2deg);
}

.hilos-destino i {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 122%;
  height: 1.5px;
  background: #df2632;
  box-shadow: 0 0 0.5px #df2632;
  transform-origin: left center;
}

.hilos-destino i:nth-child(1) { transform: rotate(34deg); }
.hilos-destino i:nth-child(2) { width: 117%; transform: rotate(38deg); }
.hilos-destino i:nth-child(3) { width: 112%; transform: rotate(42deg); }
.hilos-destino i:nth-child(4) { width: 108%; transform: rotate(46deg); }
.hilos-destino i:nth-child(5) { width: 102%; transform: rotate(50deg); }

.distancia-editorial__derecha {
  position: absolute;
  z-index: 7;
  inset: 0;
  pointer-events: none;
}

.distancia-editorial__derecha > p:first-child {
  position: absolute;
  top: 7%;
  right: 2.5%;
  width: 21.5%;
  font-family: "Times New Roman", Times, serif;
  font-size: clamp(0.48rem, 0.61vw, 0.56rem);
  line-height: 1.34;
}

.distancia-editorial__derecha blockquote {
  position: absolute;
  right: 24%;
  bottom: 10%;
  width: 25%;
  margin: 0;
  color: #d7232e;
  font: italic clamp(0.9rem, 1.45vw, 1.3rem)/1.3 "Times New Roman", Times, serif;
  text-align: center;
}

.distancia-nota {
  position: absolute;
  top: 43%;
  right: 4%;
  margin: 0;
  color: #303536;
  font: 800 clamp(0.46rem, 0.63vw, 0.58rem)/1.45 var(--sans);
  letter-spacing: 0.12em;
  text-align: right;
  text-transform: uppercase;
}

.distancia-creditos {
  position: absolute;
  z-index: 10;
  right: 4.5%;
  bottom: 1.5%;
  color: rgba(35, 44, 43, 0.55);
  font: 0.38rem/1 var(--sans);
  text-decoration: none;
}

.distancia-pagina {
  position: absolute;
  z-index: 10;
  bottom: 1.4%;
  color: #252928;
  font: 700 clamp(0.48rem, 0.62vw, 0.58rem)/1 var(--serif);
}

.distancia-pagina--izquierda { left: 2.8%; }
.distancia-pagina--derecha { right: 2.8%; }

@media (max-width: 768px) {
  .distancia-editorial {
    padding: 18px;
    background-size: 18px 18px;
  }

  .distancia-editorial__izquierda {
    width: 47%;
  }

  .distancia-titular h3 {
    margin-block: 8px;
    font-size: clamp(1.9rem, 8.5vw, 3.65rem);
  }

  .distancia-titular > p,
  .distancia-titular > small {
    font-size: 0.42rem;
  }

  .distancia-texto--izquierda {
    column-gap: 10px;
  }

  .distancia-texto p,
  .distancia-editorial__derecha > p:first-child {
    font-size: 0.5rem;
    line-height: 1.32;
  }

  .mapa-editorial--burlington {
    top: 8%;
    left: 47%;
    width: 29%;
  }

  .mapa-editorial--madrid {
    right: 0;
    width: 27%;
  }

  .mapas-corazon-editorial {
    top: 5%;
    right: -1%;
    bottom: 2%;
    left: 48.5%;
  }

  .distancia-editorial__derecha blockquote {
    right: 23%;
    width: 27%;
    font-size: 0.67rem;
  }

  .distancia-nota {
    font-size: 0.37rem;
  }

  .mapa-editorial figcaption {
    padding: 4px 6px;
  }

  .mapa-editorial figcaption strong { font-size: 0.43rem; }
  .mapa-editorial figcaption span { font-size: 0.32rem; }
}

@media (max-width: 520px) {
  .distancia-editorial {
    padding: 14px;
  }

  .distancia-titular > span {
    font-size: 0.95rem;
  }

  .distancia-titular h3 {
    font-size: clamp(1.75rem, 10.5vw, 2.8rem);
  }

  .distancia-texto--izquierda {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .distancia-editorial__derecha > p:first-child {
    font-size: 0.42rem;
  }

  .distancia-editorial__derecha blockquote {
    bottom: 13%;
    font-size: 0.55rem;
  }

  .mapas-corazon-editorial {
    top: 8%;
    right: -3%;
    left: 48%;
  }

  .hilos-destino i {
    height: 1px;
  }
}

/* 02–03 · Entrevista a doble página: texto a la izquierda, fotografía a la derecha */
.pagina-revista--entrevista {
  background: #fffaf0;
}

.pagina-revista--entrevista::after {
  content: none;
}

.pagina-revista--entrevista .entrevista-doble-pagina {
  display: grid;
  width: 100%;
  min-height: inherit;
  padding: 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-auto-rows: minmax(min(72svh, 760px), auto);
}

.entrevista-doble-pagina__texto {
  position: relative;
  z-index: 2;
  display: grid;
  min-width: 0;
  padding: clamp(28px, 3.6vw, 52px) clamp(26px, 3.25vw, 48px);
  align-content: start;
  background: #fffaf0;
  grid-column: 1;
  grid-row: 1;
}

.entrevista-doble-pagina__visual {
  display: grid;
  min-width: 0;
  min-height: min(72svh, 760px);
  margin: 0;
  padding: clamp(16px, 2vw, 28px) clamp(16px, 2vw, 28px) clamp(13px, 1.6vw, 22px);
  overflow: hidden;
  background: #f2eadc;
  grid-column: 2;
  grid-row: 1;
  grid-template-rows: minmax(0, 1fr) auto;
  gap: 10px;
}

.entrevista-doble-pagina__visual figcaption {
  margin: 0;
  color: #5e5348;
  font: italic clamp(0.68rem, 0.88vw, 0.84rem)/1.25 var(--serif);
  letter-spacing: 0.025em;
  text-align: left;
}

.pagina-revista--entrevista .cabecera-pagina--editorial {
  margin-bottom: clamp(15px, 1.6vw, 22px);
  padding-bottom: clamp(10px, 1.15vw, 15px);
}

.pagina-revista--entrevista .cabecera-pagina--editorial h3 {
  max-width: 100%;
  font-size: clamp(2.5rem, 4.15vw, 4.25rem);
  line-height: 0.92;
}

.pagina-revista--entrevista .cabecera-pagina--editorial > p {
  max-width: 94%;
  font-size: clamp(0.7rem, 0.86vw, 0.84rem);
  line-height: 1.42;
}

.pagina-revista--entrevista .entrevista-respuestas {
  gap: clamp(9px, 1vw, 13px);
}

.pagina-revista--entrevista .entrevista-respuestas article {
  padding: 0 0 clamp(8px, 0.9vw, 12px) 30px;
}

.pagina-revista--entrevista .entrevista-respuestas h4 {
  font-size: clamp(0.55rem, 0.67vw, 0.65rem);
}

.pagina-revista--entrevista .entrevista-respuestas blockquote {
  font-size: clamp(0.73rem, 0.9vw, 0.88rem);
  line-height: 1.32;
}

.pagina-revista--entrevista .entrevista-doble-pagina__foto {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  padding: 0;
  align-self: stretch;
  background: #2e201b;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  grid-column: 1;
  grid-row: 1;
}

.entrevista-doble-pagina__visual--editorial {
  color: #f8eed8;
  background:
    radial-gradient(circle at 75% 16%, rgba(220, 185, 94, 0.18), transparent 25%),
    repeating-linear-gradient(135deg, transparent 0 18px, rgba(255, 255, 255, 0.018) 19px 20px),
    #173c35;
}

.entrevista-editorial-poster {
  position: relative;
  display: grid;
  min-height: 0;
  padding: clamp(28px, 4vw, 58px);
  overflow: hidden;
  border: 1px solid rgba(222, 187, 96, 0.45);
  align-content: center;
  background:
    linear-gradient(145deg, transparent 0 68%, rgba(161, 43, 52, 0.28) 68.2%),
    radial-gradient(circle at center, rgba(255, 255, 255, 0.04), transparent 52%);
  gap: clamp(16px, 2.2vw, 30px);
}

.entrevista-editorial-poster::before,
.entrevista-editorial-poster::after {
  content: "";
  position: absolute;
  border: 1px solid rgba(221, 185, 92, 0.22);
  border-radius: 50%;
}

.entrevista-editorial-poster::before { width: 310px; height: 310px; top: -155px; right: -105px; }
.entrevista-editorial-poster::after { width: 190px; height: 190px; top: -95px; right: -45px; }

.entrevista-editorial-poster__seccion {
  color: #deb95b;
  font: 800 clamp(0.5rem, 0.72vw, 0.68rem)/1 var(--mono);
  letter-spacing: 0.2em;
}

.entrevista-editorial-poster__emblema {
  color: #deb95b;
  font-size: clamp(2rem, 4.5vw, 4.5rem);
  line-height: 0.7;
}

.entrevista-editorial-poster h4 {
  max-width: 520px;
  margin: 0;
  color: #fff4df;
  font: 400 clamp(3rem, 6.8vw, 6.8rem)/0.77 var(--serif);
  letter-spacing: -0.055em;
}

.entrevista-editorial-poster blockquote {
  max-width: 430px;
  margin: 0;
  color: #ead5ae;
  font: italic clamp(0.95rem, 1.5vw, 1.4rem)/1.35 var(--serif);
}

.entrevista-editorial-poster__ficha {
  display: grid;
  padding-top: 14px;
  border-top: 1px solid rgba(222, 185, 91, 0.35);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.entrevista-editorial-poster__ficha span { display: grid; gap: 5px; }
.entrevista-editorial-poster__ficha small {
  color: rgba(242, 222, 177, 0.56);
  font: 700 clamp(0.38rem, 0.5vw, 0.48rem)/1 var(--mono);
  letter-spacing: 0.14em;
}
.entrevista-editorial-poster__ficha b {
  color: #deb95b;
  font: 800 clamp(0.52rem, 0.72vw, 0.7rem)/1.15 var(--sans);
}

.pagina-revista--entrevista .entrevista-doble-pagina__foto::after {
  content: none;
}

.pagina-revista--entrevista .entrevista-doble-pagina__foto img {
  position: absolute;
  z-index: 2;
  display: block;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 1;
  object-fit: cover;
  object-position: center top;
}

.pagina-revista--entrevista .entrevista-doble-pagina__foto > span {
  display: none;
}

@media (max-width: 768px) {
  .entrevista-doble-pagina__texto {
    padding: 22px 18px 26px;
  }

  .entrevista-doble-pagina__visual {
    min-height: min(72svh, 760px);
    padding: 10px 10px 9px;
    gap: 6px;
  }

  .pagina-revista--entrevista .cabecera-pagina--editorial h3 {
    font-size: clamp(1.75rem, 6vw, 2.45rem);
  }

  .pagina-revista--entrevista .cabecera-pagina--editorial > p {
    font-size: 0.58rem;
  }

  .pagina-revista--entrevista .entrevista-respuestas {
    display: grid;
    grid-template-columns: 1fr;
  }

  .pagina-revista--entrevista .entrevista-respuestas h4 {
    font-size: 0.5rem;
  }

  .pagina-revista--entrevista .entrevista-respuestas blockquote {
    font-size: 0.64rem;
  }

  .pagina-revista--entrevista .entrevista-doble-pagina__foto {
    min-height: 0;
    grid-column: 1;
    grid-row: 1;
  }
}

/* 04–05 · Season file / pasaporte editorial */
.pagina-revista--perfil {
  background: #efe2c8;
}

.pagina-revista--perfil::after {
  opacity: 0;
}

.season-file-spread {
  position: relative;
  isolation: isolate;
  display: grid;
  width: 100%;
  height: 100%;
  min-height: 0;
  max-height: 100%;
  padding: 0 !important;
  overflow: hidden;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr);
  color: #251f1a;
  background:
    linear-gradient(100deg, transparent 0 58%, rgba(143, 106, 63, 0.07) 58.2%, transparent 58.6%),
    radial-gradient(circle at 16% 18%, rgba(255, 255, 255, 0.48), transparent 31%),
    radial-gradient(circle at 88% 86%, rgba(102, 71, 38, 0.08), transparent 28%),
    repeating-linear-gradient(0deg, rgba(100, 73, 44, 0.022) 0 1px, transparent 1px 5px),
    #f1e4ca;
}

.season-file-spread::before,
.season-file-spread::after {
  content: none;
}

.season-file__marco-aereo {
  position: absolute;
  z-index: 30;
  inset: 0;
  pointer-events: none;
}

.season-file__marco-lado {
  position: absolute;
  display: block;
}

.season-file__marco-lado--arriba,
.season-file__marco-lado--abajo {
  right: 0;
  left: 0;
  width: 100%;
  height: 8px;
  opacity: 1;
  background: repeating-linear-gradient(135deg, #b9363d 0 18px, #f4e7cf 18px 33px, #254d69 33px 51px, #f4e7cf 51px 66px);
}

.season-file__marco-lado--arriba { top: 0; }
.season-file__marco-lado--abajo { bottom: 0; transform: scaleX(-1); }

.season-file__marco-lado--izquierda,
.season-file__marco-lado--derecha {
  top: 0;
  bottom: 0;
  display: block;
  width: 8px;
  opacity: 1;
  background: repeating-linear-gradient(45deg, #b9363d 0 18px, #f4e7cf 18px 33px, #254d69 33px 51px, #f4e7cf 51px 66px);
}

.season-file__marco-lado--izquierda { left: 0; }
.season-file__marco-lado--derecha { right: 0; transform: scaleY(-1); }

.season-file__mapa {
  position: absolute;
  z-index: -1;
  width: 46%;
  aspect-ratio: 1;
  opacity: 0.075;
  border: 1px solid rgba(46, 79, 74, 0.3);
  border-radius: 44% 56% 61% 39% / 42% 40% 60% 58%;
  background:
    repeating-radial-gradient(circle at 40% 45%, transparent 0 16px, rgba(43, 80, 74, 0.28) 17px 18px, transparent 19px 31px),
    repeating-linear-gradient(18deg, transparent 0 23px, rgba(43, 80, 74, 0.34) 24px 25px, transparent 26px 47px);
  transform: rotate(-13deg);
}

.season-file__mapa--superior { top: -28%; left: 28%; }
.season-file__mapa--inferior { right: -12%; bottom: -43%; transform: rotate(19deg); }

.season-file__perfil,
.season-file__documentos {
  position: relative;
  z-index: 1;
  min-width: 0;
  min-height: 0;
  height: 100%;
  overflow: hidden;
}

.season-file__perfil {
  display: grid;
  padding: clamp(38px, 4.2vw, 60px) clamp(24px, 2.8vw, 40px) clamp(32px, 3.4vw, 48px) clamp(34px, 3.9vw, 56px);
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: clamp(20px, 2.2vw, 31px);
}

.season-file__cabecera {
  position: relative;
  z-index: 3;
  max-width: 100%;
}

.season-file__etiqueta {
  display: flex;
  align-items: center;
  margin-bottom: clamp(8px, 1vw, 13px);
  color: #a72d35;
  font: 800 clamp(0.5rem, 0.66vw, 0.65rem)/1 var(--mono);
  letter-spacing: 0.2em;
  gap: 10px;
}

.season-file__etiqueta::after {
  content: "";
  width: min(130px, 30%);
  height: 1px;
  background: currentColor;
}

.season-file__cabecera h3 {
  max-width: 590px;
  margin: 0;
  color: #173b38;
  font-family: var(--serif);
  font-size: clamp(2.3rem, 4.05vw, 4.05rem);
  font-weight: 400;
  line-height: 0.88;
  letter-spacing: -0.048em;
}

.season-file__cabecera > p {
  max-width: 460px;
  margin: clamp(10px, 1.2vw, 16px) 0 0;
  color: #8f3139;
  font: italic clamp(0.68rem, 0.88vw, 0.84rem)/1.42 var(--serif);
}

.season-file__retrato-wrap {
  position: relative;
  align-self: stretch;
  width: min(84%, 420px);
  min-height: clamp(150px, 23vh, 250px);
  margin-left: 2.5%;
  transform: rotate(-1.3deg);
}

.season-file__retrato {
  width: 100%;
  height: 100%;
  min-height: clamp(150px, 23vh, 250px) !important;
  padding: 7px 7px 25px;
  overflow: hidden;
  border: 1px solid rgba(78, 57, 33, 0.18);
  border-radius: 1px;
  background: #fbf0db;
  box-shadow: 0 15px 28px rgba(75, 52, 29, 0.2);
}

.season-file__retrato::after {
  content: "MVP · SEASON PORTRAIT";
  position: absolute;
  right: 10px;
  bottom: 8px;
  left: 10px;
  color: #183b38;
  font: 800 0.45rem/1 var(--mono);
  letter-spacing: 0.15em;
  text-align: right;
}

.season-file__retrato img {
  inset: 7px 7px 25px;
  width: calc(100% - 14px);
  height: calc(100% - 32px);
  min-height: 0;
  object-fit: cover;
  object-position: center 29% !important;
}

.season-file__cinta {
  position: absolute;
  z-index: 4;
  width: 62px;
  height: 19px;
  background: rgba(216, 192, 146, 0.75);
  box-shadow: 0 1px 2px rgba(69, 48, 28, 0.1);
}

.season-file__cinta--uno { top: -6px; left: -19px; transform: rotate(-12deg); }
.season-file__cinta--dos { right: -17px; bottom: 8px; transform: rotate(-9deg); }

.season-file__sello,
.season-file__visado {
  position: absolute;
  z-index: 5;
  display: grid;
  place-items: center;
  color: rgba(172, 46, 52, 0.78);
  border: 2px solid currentColor;
  border-radius: 50%;
  font: 700 clamp(0.39rem, 0.55vw, 0.53rem)/1.12 var(--mono);
  letter-spacing: 0.08em;
  text-align: center;
  transform: rotate(9deg);
  mix-blend-mode: multiply;
}

.season-file__sello--madrid {
  top: 43%;
  right: 4%;
  width: clamp(66px, 6.5vw, 86px);
  aspect-ratio: 1;
}

.season-file__sello--madrid::before,
.season-file__sello--usa::before,
.season-file__sello--spain::before,
.season-file__visado::before {
  content: "";
  position: absolute;
  inset: 5px;
  border: 1px dashed currentColor;
  border-radius: inherit;
}

.season-file__sello--usa {
  right: 8%;
  bottom: 16%;
  width: clamp(62px, 6vw, 80px);
  aspect-ratio: 1;
  color: rgba(32, 77, 102, 0.75);
  transform: rotate(-13deg);
}

.season-file__sello--spain {
  z-index: 4;
  right: 3.5%;
  bottom: 19%;
  width: clamp(58px, 5.6vw, 74px);
  aspect-ratio: 1;
  color: rgba(171, 47, 54, 0.66);
  transform: rotate(-8deg);
}

.season-file__texto {
  display: grid;
  max-width: 100%;
  column-count: 1 !important;
  column-gap: 0 !important;
  column-rule: 0 !important;
  align-content: start;
  gap: clamp(13px, 1.35vw, 19px);
}

.pagina-revista--perfil .season-file__texto p,
.pagina-revista--perfil .season-file__texto p:first-child {
  margin: 0;
  color: #2e2923;
  font: 400 clamp(0.66rem, 0.82vw, 0.79rem)/1.58 var(--serif);
  break-inside: avoid;
}

.pagina-revista--perfil .season-file__texto p:first-child {
  color: #173b38;
  font-size: clamp(0.73rem, 0.9vw, 0.87rem);
  font-weight: 600;
}

.pagina-revista--perfil .season-file__texto p:first-child::first-letter {
  float: left;
  margin: 4px 5px 0 0;
  color: #ac3038;
  font: 2.75rem/0.72 var(--serif);
}

.season-file__firma {
  align-self: end;
  margin: 0;
  padding-top: 9px;
  color: #173b38;
  border-top: 1px solid rgba(23, 59, 56, 0.35);
  font: 700 clamp(0.42rem, 0.55vw, 0.54rem)/1 var(--mono);
  letter-spacing: 0.12em;
}

.season-file__ruta-resumen {
  display: grid;
  width: min(88%, 450px);
  padding: clamp(9px, 1vw, 13px) clamp(11px, 1.2vw, 16px);
  color: #173b38;
  border: 1px solid rgba(147, 46, 54, 0.25);
  background: rgba(255, 247, 229, 0.54);
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 10px;
}

.season-file__ruta-resumen span { display: grid; gap: 4px; }
.season-file__ruta-resumen small {
  color: #9f3038;
  font: 800 clamp(0.34rem, 0.44vw, 0.43rem)/1 var(--mono);
  letter-spacing: 0.13em;
}
.season-file__ruta-resumen b {
  font: 800 clamp(0.48rem, 0.65vw, 0.63rem)/1.1 var(--sans);
}
.season-file__ruta-resumen i { color: #a52f38; font-style: normal; }

.season-file__documentos {
  display: grid;
  align-content: center;
  padding: clamp(31px, 3.3vw, 48px) clamp(27px, 3.3vw, 48px) clamp(25px, 2.8vw, 39px) clamp(20px, 2.6vw, 38px);
  gap: clamp(10px, 1.25vw, 16px);
}

.season-file__documentos--imagen {
  display: grid;
  min-height: 0;
  width: 100%;
  padding: clamp(16px, 1.8vw, 26px) clamp(24px, 3vw, 46px) clamp(15px, 1.8vw, 26px);
  grid-template-rows: auto minmax(0, 1fr);
  align-items: stretch;
  justify-items: center;
  gap: clamp(7px, 0.85vw, 12px);
}

.season-file__documentos--imagen::before {
  content: none;
}

.season-file__pasaporte-cabecera {
  display: grid;
  width: min(100%, 980px);
  margin: 0;
  justify-items: center;
  gap: clamp(7px, 0.8vw, 11px);
  text-align: center;
}

.season-file__pasaporte-titulo {
  display: flex;
  width: min(100%, 980px);
  margin: 0;
  color: #173b38;
  font: 400 clamp(1.45rem, 2.35vw, 2.3rem)/1 var(--serif);
  letter-spacing: 0.025em;
  text-align: center;
  align-items: center;
  justify-content: center;
  gap: clamp(9px, 1.2vw, 16px);
}

.season-file__pasaporte-titulo::before,
.season-file__pasaporte-titulo::after {
  content: "";
  width: clamp(28px, 5vw, 70px);
  height: 1px;
  background: rgba(157, 47, 56, 0.55);
}

.season-file__pasaporte-cabecera > p {
  max-width: 520px;
  margin: 0;
  color: #963039;
  font: italic clamp(0.72rem, 1vw, 0.96rem)/1.35 var(--serif);
  letter-spacing: 0.015em;
}

.season-file__pasaporte-imagen {
  display: grid;
  width: min(99%, 1100px);
  height: 100%;
  min-height: 0;
  min-width: 0;
  margin: 0;
  place-items: center;
}

.season-file__pasaporte-imagen img {
  display: block;
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  filter: saturate(0.96) contrast(1.015);
  border-radius: clamp(5px, 0.75vw, 10px);
  box-shadow: 0 22px 48px rgba(53, 39, 23, 0.2);
  transform: none;
}

.season-file__sellos-viaje {
  position: absolute;
  z-index: 4;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

.season-file__sello-viaje {
  position: absolute;
  display: grid;
  width: clamp(62px, 6.1vw, 88px);
  aspect-ratio: 1.1;
  padding: clamp(7px, 0.75vw, 10px);
  color: rgba(39, 76, 103, 0.72);
  border: 1.5px solid currentColor;
  border-radius: 50%;
  place-content: center;
  gap: 4px;
  font-family: var(--mono);
  line-height: 1;
  text-align: center;
  text-transform: uppercase;
  background: rgba(241, 228, 202, 0.13);
  box-shadow: inset 0 0 0 3px rgba(241, 228, 202, 0.58), inset 0 0 0 4px currentColor;
  mix-blend-mode: multiply;
  filter: saturate(0.76);
}

.season-file__sello-viaje::before {
  content: "\2605";
  position: absolute;
  top: 8%;
  left: 50%;
  font-size: clamp(0.36rem, 0.48vw, 0.47rem);
  transform: translateX(-50%);
  opacity: 0.76;
}

.season-file__sello-viaje::after {
  content: "PASSPORT";
  position: absolute;
  right: 0;
  bottom: 9%;
  left: 0;
  font: 800 clamp(0.27rem, 0.35vw, 0.34rem)/1 var(--mono);
  letter-spacing: 0.08em;
  opacity: 0.68;
}

.season-file__sello-viaje b {
  max-width: 100%;
  overflow-wrap: anywhere;
  font-size: clamp(0.49rem, 0.68vw, 0.67rem);
  letter-spacing: 0.07em;
}

.season-file__sello-viaje small {
  padding: 3px 0;
  border-top: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  font-size: clamp(0.27rem, 0.36vw, 0.35rem);
  font-weight: 800;
  letter-spacing: 0.06em;
}

.season-file__sello-viaje--viena { top: 25%; left: 1.7%; transform: rotate(-10deg); }
.season-file__sello-viaje--bratislava {
  top: 39%;
  left: 3.3%;
  width: clamp(70px, 7vw, 100px);
  aspect-ratio: 1.45;
  color: rgba(143, 48, 55, 0.7);
  border-radius: 48%;
  transform: rotate(6deg);
}
.season-file__sello-viaje--budapest { top: 53%; left: 1.4%; color: rgba(54, 91, 70, 0.72); transform: rotate(-5deg); }
.season-file__sello-viaje--london {
  top: 67%;
  left: 3.6%;
  aspect-ratio: 1.4;
  color: rgba(143, 48, 55, 0.72);
  border-radius: 5px;
  transform: rotate(8deg);
}
.season-file__sello-viaje--scotland { top: 80%; left: 1.9%; transform: rotate(-8deg); }

.season-file__sello-viaje--krakow { top: 25%; right: 1.8%; color: rgba(143, 48, 55, 0.7); transform: rotate(9deg); }
.season-file__sello-viaje--praga {
  top: 39%;
  right: 3.4%;
  aspect-ratio: 1.42;
  border-radius: 5px;
  transform: rotate(-7deg);
}
.season-file__sello-viaje--zagreb { top: 53%; right: 1.5%; color: rgba(54, 91, 70, 0.72); transform: rotate(6deg); }
.season-file__sello-viaje--berlin {
  top: 67%;
  right: 3.5%;
  width: clamp(70px, 7vw, 100px);
  aspect-ratio: 1.48;
  color: rgba(143, 48, 55, 0.72);
  border-radius: 48%;
  transform: rotate(-9deg);
}
.season-file__sello-viaje--paris { top: 80%; right: 1.8%; transform: rotate(7deg); }

.season-file__documentos::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 8%;
  right: 3%;
  bottom: 7%;
  left: 0;
  border-radius: 54% 46% 49% 51% / 46% 43% 57% 54%;
  background: rgba(178, 155, 111, 0.17);
  transform: rotate(-1.8deg);
}

.season-file__visado {
  top: 3.5%;
  right: 3.2%;
  width: clamp(73px, 7vw, 94px);
  aspect-ratio: 1;
  color: rgba(35, 72, 96, 0.62);
  transform: rotate(12deg);
}

.pasaporte-temporada {
  position: relative;
  overflow: hidden;
  color: #ede4cb;
  border: 1px solid rgba(215, 191, 125, 0.5);
  border-radius: 8px 10px 10px 8px;
  background:
    radial-gradient(circle at 86% 12%, rgba(218, 192, 120, 0.13), transparent 30%),
    repeating-linear-gradient(32deg, transparent 0 12px, rgba(255, 255, 255, 0.018) 13px 14px),
    #173c59;
  box-shadow: 0 20px 37px rgba(40, 31, 21, 0.27), inset 7px 0 0 rgba(8, 25, 38, 0.26);
  transform: rotate(0.6deg);
}

.pasaporte-temporada::before {
  content: "";
  position: absolute;
  width: 240px;
  height: 240px;
  right: -88px;
  bottom: -112px;
  opacity: 0.1;
  border: 2px solid #e5ca7d;
  border-radius: 50%;
  box-shadow: inset 0 0 0 15px transparent, inset 0 0 0 17px #e5ca7d;
}

.pasaporte-temporada__cabecera {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  min-height: clamp(42px, 5.2vw, 62px);
  padding: clamp(9px, 1.1vw, 14px) clamp(15px, 1.7vw, 23px);
  border-bottom: 1px solid rgba(226, 201, 133, 0.33);
  justify-content: space-between;
}

.pasaporte-temporada__cabecera div { display: grid; gap: 3px; }
.pasaporte-temporada__cabecera span {
  color: #d8bd73;
  font: 700 clamp(0.4rem, 0.52vw, 0.5rem)/1 var(--mono);
  letter-spacing: 0.22em;
}
.pasaporte-temporada__cabecera strong {
  font: 500 clamp(0.92rem, 1.45vw, 1.38rem)/1 var(--serif);
  letter-spacing: 0.06em;
}
.pasaporte-temporada__cabecera .pasaporte-temporada__emblema {
  color: #d9bd73;
  font-size: clamp(1.35rem, 2vw, 2rem);
  line-height: 1;
  text-shadow: 0 0 18px rgba(217, 189, 115, 0.24);
}

.pasaporte-temporada__pagina {
  position: relative;
  z-index: 1;
  display: grid;
  min-height: clamp(205px, 27vh, 286px);
  padding: clamp(13px, 1.55vw, 21px);
  grid-template-columns: minmax(105px, 0.64fr) minmax(0, 1.36fr);
  gap: clamp(12px, 1.5vw, 21px);
}

.pasaporte-temporada__identidad {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

.pasaporte-temporada__foto {
  position: relative;
  flex: 1;
  min-height: 120px;
  margin-bottom: 8px;
  overflow: hidden;
  border: 2px solid rgba(229, 205, 139, 0.76);
  background: #d9d0ba;
  filter: sepia(0.16) saturate(0.82);
}

.pasaporte-temporada__foto {
  display: grid;
  place-items: center;
  align-content: center;
  color: #163b59;
  background:
    radial-gradient(circle at center, rgba(22, 59, 89, 0.08) 0 34%, transparent 35%),
    repeating-linear-gradient(0deg, transparent 0 8px, rgba(23, 60, 89, 0.08) 9px 10px),
    #ded4bc;
  gap: 5px;
}

.pasaporte-temporada__foto > span {
  display: grid;
  width: clamp(54px, 6vw, 78px);
  aspect-ratio: 1;
  place-items: center;
  color: #e5cc89;
  border: 1px solid rgba(229, 204, 137, 0.6);
  border-radius: 50%;
  background: #173c59;
  font: 500 clamp(1.4rem, 2.6vw, 2.5rem)/1 var(--serif);
  box-shadow: 0 0 0 5px rgba(23, 60, 89, 0.12);
}

.pasaporte-temporada__foto > small {
  color: #173c59;
  font: 800 clamp(0.34rem, 0.45vw, 0.44rem)/1 var(--mono);
  letter-spacing: 0.16em;
}

.pasaporte-temporada__foto::after {
  content: "";
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(0deg, transparent 0 8px, rgba(23, 60, 89, 0.08) 9px 10px);
  pointer-events: none;
}

.pasaporte-temporada__foto img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 26%;
}

.pasaporte-temporada__identidad > span,
.pasaporte-temporada__fortalezas > span {
  color: rgba(235, 220, 178, 0.62);
  font: 700 clamp(0.36rem, 0.45vw, 0.44rem)/1 var(--mono);
  letter-spacing: 0.15em;
}

.pasaporte-temporada__identidad > strong {
  margin-top: 3px;
  color: #fff4d5;
  font: 500 clamp(0.84rem, 1.25vw, 1.16rem)/1 var(--serif);
}

.pasaporte-temporada__identidad > small {
  margin-top: 5px;
  color: #d5b86d;
  font: 700 clamp(0.31rem, 0.38vw, 0.38rem)/1.2 var(--mono);
  letter-spacing: 0.08em;
}

.pasaporte-temporada__datos {
  min-width: 0;
}

.pasaporte-temporada__datos dl {
  display: grid;
  margin: 0;
  grid-template-columns: minmax(75px, 0.75fr) minmax(0, 1.25fr);
  gap: 0 9px;
}

.pasaporte-temporada__datos dt,
.pasaporte-temporada__datos dd {
  min-width: 0;
  margin: 0;
  padding: clamp(3px, 0.45vw, 5px) 0;
  border-bottom: 1px solid rgba(234, 218, 175, 0.16);
  line-height: 1.12;
}

.pasaporte-temporada__datos dt {
  color: rgba(235, 220, 178, 0.58);
  font: 700 clamp(0.32rem, 0.41vw, 0.4rem)/1.12 var(--mono);
  letter-spacing: 0.09em;
}

.pasaporte-temporada__datos dd {
  overflow-wrap: anywhere;
  color: #fff3d4;
  font: 600 clamp(0.45rem, 0.59vw, 0.58rem)/1.12 var(--sans);
}

.pasaporte-temporada__fortalezas {
  margin-top: clamp(7px, 0.8vw, 10px);
  padding: 8px 10px;
  border: 1px solid rgba(216, 188, 112, 0.25);
  background: rgba(6, 24, 37, 0.17);
}

.pasaporte-temporada__fortalezas p {
  margin: 4px 0 0;
  color: #d9bd73;
  font: 700 clamp(0.38rem, 0.5vw, 0.49rem)/1.35 var(--mono);
  letter-spacing: 0.03em;
}

.pasaporte-temporada__codigo {
  position: relative;
  z-index: 1;
  overflow: hidden;
  padding: 7px 17px 9px;
  color: rgba(231, 213, 164, 0.7);
  border-top: 1px dashed rgba(231, 213, 164, 0.28);
  font: 500 clamp(0.38rem, 0.52vw, 0.51rem)/1 var(--mono);
  letter-spacing: 0.12em;
  white-space: nowrap;
}

.boarding-pass-temporada {
  position: relative;
  display: grid;
  min-height: clamp(76px, 10vh, 104px);
  overflow: hidden;
  border: 1px solid rgba(86, 63, 37, 0.19);
  border-radius: 3px;
  background:
    radial-gradient(circle at 82% 18%, rgba(174, 47, 55, 0.1), transparent 26%),
    #f9edd5;
  box-shadow: 0 10px 21px rgba(65, 45, 26, 0.15);
  grid-template-columns: 56px minmax(0, 1fr);
  transform: rotate(-1deg);
}

.boarding-pass-temporada::after {
  content: "";
  position: absolute;
  top: 0;
  right: 18%;
  bottom: 0;
  border-left: 1px dashed rgba(132, 86, 48, 0.34);
}

.boarding-pass-temporada__lateral {
  display: flex;
  align-items: center;
  padding: 7px;
  color: #f8e9cf;
  background: #a92f38;
  flex-direction: column;
  justify-content: space-between;
}

.boarding-pass-temporada__lateral span {
  font: 800 0.41rem/1 var(--mono);
  letter-spacing: 0.14em;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
}

.boarding-pass-temporada__lateral b { font-size: 0.9rem; }

.boarding-pass-temporada__contenido {
  display: grid;
  align-items: center;
  padding: clamp(9px, 1.15vw, 14px) clamp(11px, 1.35vw, 18px);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px 12px;
}

.boarding-pass-temporada__contenido > span {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.boarding-pass-temporada__contenido small {
  color: #9c343b;
  font: 800 clamp(0.31rem, 0.4vw, 0.4rem)/1 var(--mono);
  letter-spacing: 0.12em;
}

.boarding-pass-temporada__contenido b {
  overflow: hidden;
  color: #173b38;
  font: 700 clamp(0.47rem, 0.65vw, 0.64rem)/1.05 var(--sans);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.boarding-pass-temporada__ruta {
  color: #a92f38;
  font-size: clamp(0.55rem, 0.82vw, 0.8rem);
  letter-spacing: 0.07em;
  text-align: center;
}

.season-file__cierre {
  max-width: 92%;
  margin: 0 auto;
  color: #963039;
  font: italic clamp(0.75rem, 1.08vw, 1.04rem)/1.22 var(--serif);
  text-align: center;
}

@media (max-width: 780px) {
  .season-file-spread {
    grid-template-columns: minmax(0, 1fr);
  }

  .season-file__perfil {
    padding: 24px 14px 20px 18px;
    gap: 10px;
  }

  .season-file__documentos {
    padding: 24px 16px 18px 10px;
    gap: 7px;
  }

  .season-file__documentos--imagen {
    padding: 13px 12px 11px;
    gap: 5px;
  }

  .season-file__pasaporte-titulo { font-size: 0.72rem; }

  .season-file__pasaporte-cabecera { gap: 4px; }
  .season-file__pasaporte-cabecera > p { font-size: 0.46rem; }

  .season-file__sello-viaje {
    width: 43px;
    padding: 5px;
    gap: 2px;
    border-width: 1px;
    box-shadow: inset 0 0 0 2px rgba(241, 228, 202, 0.58), inset 0 0 0 3px currentColor;
  }

  .season-file__sello-viaje b { font-size: 0.31rem; }
  .season-file__sello-viaje small { padding: 2px 0; font-size: 0.18rem; }
  .season-file__sello-viaje::before { font-size: 0.23rem; }
  .season-file__sello-viaje::after { font-size: 0.16rem; }
  .season-file__sello-viaje--bratislava,
  .season-file__sello-viaje--berlin { width: 50px; }

  .season-file__cabecera h3 { font-size: clamp(1.55rem, 5.9vw, 2.65rem); }
  .season-file__cabecera > p { font-size: 0.5rem; }
  .season-file__sello--madrid { top: 45%; right: 3%; }
  .season-file__texto { max-width: 100%; gap: 7px; }
  .pagina-revista--perfil .season-file__texto p,
  .pagina-revista--perfil .season-file__texto p:first-child { font-size: 0.45rem; }
  .pagina-revista--perfil .season-file__texto p:first-child::first-letter { font-size: 2rem; }
  .season-file__ruta-resumen { width: 91%; padding: 6px; gap: 5px; }
  .season-file__ruta-resumen small { font-size: 0.24rem; }
  .season-file__ruta-resumen b { font-size: 0.32rem; }
  .season-file__firma { font-size: 0.31rem; }

  .pasaporte-temporada__pagina {
    min-height: 180px;
    padding: 9px;
    grid-template-columns: minmax(70px, 0.56fr) minmax(0, 1.44fr);
    gap: 8px;
  }

  .pasaporte-temporada__foto { min-height: 92px; }
  .pasaporte-temporada__datos dl { grid-template-columns: 56px minmax(0, 1fr); gap: 0 5px; }
  .pasaporte-temporada__datos dt { font-size: 0.26rem; }
  .pasaporte-temporada__datos dd { font-size: 0.33rem; }
  .pasaporte-temporada__fortalezas { padding: 5px 6px; }
  .pasaporte-temporada__fortalezas p { font-size: 0.29rem; }
  .boarding-pass-temporada { min-height: 66px; grid-template-columns: 39px minmax(0, 1fr); }
  .boarding-pass-temporada__contenido { padding: 7px; gap: 4px 7px; }
  .boarding-pass-temporada__contenido small { font-size: 0.24rem; }
  .boarding-pass-temporada__contenido b { font-size: 0.32rem; }
  .season-file__cierre { font-size: 0.52rem; }
}

/* 06–07 · Nuestra temporada: recorrido editorial en ocho recuerdos */
.pagina-revista--timeline {
  overflow: hidden;
  background:
    radial-gradient(circle at 12% 12%, rgba(195, 79, 89, 0.08), transparent 27%),
    radial-gradient(circle at 88% 88%, rgba(24, 66, 55, 0.08), transparent 30%),
    repeating-linear-gradient(0deg, rgba(99, 75, 45, 0.027) 0 1px, transparent 1px 5px),
    #fff7e9;
}

.pagina-revista--timeline::after {
  inset: 14px;
  border-color: rgba(168, 48, 57, 0.16);
}

.pagina-revista--timeline .pagina-revista__contenido {
  --timeline-gap-x: clamp(13px, 1.7vw, 23px);
  --timeline-gap-y: clamp(14px, 2vh, 22px);
  --timeline-copy-h: clamp(49px, 7.2vh, 64px);
  display: grid;
  width: 100%;
  height: 100%;
  min-height: inherit;
  padding: clamp(25px, 3.7vw, 48px) clamp(28px, 4.5vw, 58px) clamp(20px, 3vw, 38px);
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: clamp(10px, 1.5vh, 16px);
}

.pagina-revista--timeline .cabecera-pagina {
  display: grid;
  margin: 0;
  padding: 0 0 clamp(8px, 1.2vh, 13px);
  border-bottom: 1px solid rgba(156, 48, 57, 0.24);
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  column-gap: 24px;
}

.pagina-revista--timeline .cabecera-pagina > span {
  grid-column: 1;
  color: #a3303a;
  font-size: clamp(0.46rem, 0.6vw, 0.61rem);
  letter-spacing: 0.22em;
}

.pagina-revista--timeline .cabecera-pagina h3 {
  grid-column: 1;
  margin: 3px 0 0;
  color: #153d35;
  font-size: clamp(2rem, 4.1vw, 4rem);
  font-weight: 400;
  line-height: 0.88;
  letter-spacing: -0.035em;
}

.pagina-revista--timeline .cabecera-pagina p {
  grid-column: 2;
  grid-row: 1 / span 2;
  max-width: 360px;
  padding-left: clamp(14px, 2vw, 28px);
  color: #7b6253;
  border-left: 1px solid rgba(163, 48, 58, 0.25);
  font-size: clamp(0.66rem, 0.91vw, 0.88rem);
  line-height: 1.35;
}

.pagina-revista--timeline .timeline-revista {
  position: relative;
  isolation: isolate;
  display: grid;
  width: 100%;
  height: 100%;
  min-height: 0;
  max-width: none;
  margin: 0;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: var(--timeline-gap-y) var(--timeline-gap-x);
}

.pagina-revista--timeline .timeline-revista::before {
  content: none;
}

.pagina-revista--timeline .timeline-revista__item {
  position: relative;
  display: grid;
  min-width: 0;
  min-height: 0;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr) 28px var(--timeline-copy-h);
  gap: 0;
  text-align: center;
}

.pagina-revista--timeline .timeline-revista__item:nth-child(1) { grid-column: 1; grid-row: 1; }
.pagina-revista--timeline .timeline-revista__item:nth-child(2) { grid-column: 2; grid-row: 1; }
.pagina-revista--timeline .timeline-revista__item:nth-child(3) { grid-column: 3; grid-row: 1; }
.pagina-revista--timeline .timeline-revista__item:nth-child(4) { grid-column: 4; grid-row: 1; }
.pagina-revista--timeline .timeline-revista__item:nth-child(5) { grid-column: 4; grid-row: 2; }
.pagina-revista--timeline .timeline-revista__item:nth-child(6) { grid-column: 3; grid-row: 2; }
.pagina-revista--timeline .timeline-revista__item:nth-child(7) { grid-column: 2; grid-row: 2; }
.pagina-revista--timeline .timeline-revista__item:nth-child(8) { grid-column: 1; grid-row: 2; }

.pagina-revista--timeline .timeline-revista__item::before,
.pagina-revista--timeline .timeline-revista__item::after {
  content: "";
  position: absolute;
  z-index: 0;
  background: linear-gradient(90deg, #b73e47, #d0a44e);
  pointer-events: none;
}

.pagina-revista--timeline .timeline-revista__item:nth-child(-n + 3)::before {
  top: calc(100% - var(--timeline-copy-h) - 15px);
  left: 50%;
  width: calc(100% + var(--timeline-gap-x));
  height: 2px;
}

.pagina-revista--timeline .timeline-revista__item:nth-child(n + 5):nth-child(-n + 7)::before {
  top: calc(100% - var(--timeline-copy-h) - 15px);
  right: 50%;
  width: calc(100% + var(--timeline-gap-x));
  height: 2px;
  background: linear-gradient(90deg, #d0a44e, #b73e47);
}

.pagina-revista--timeline .timeline-revista__item:nth-child(4)::before {
  top: calc(100% - var(--timeline-copy-h) - 15px);
  left: 50%;
  width: 2px;
  height: calc(100% + var(--timeline-gap-y));
  background: linear-gradient(#d0a44e, #b73e47);
}

.pagina-revista--timeline .timeline-revista__item::after {
  content: none;
}

.pagina-revista--timeline .timeline-revista__foto {
  position: relative;
  z-index: 2;
  width: calc(100% - 7px);
  height: calc(100% - 7px);
  min-height: 0;
  margin: 3px auto 4px;
  overflow: hidden;
  background: #ded2be;
  border: clamp(3px, 0.45vw, 6px) solid #fffdf7;
  border-radius: 2px;
  box-shadow: 0 9px 18px rgba(57, 42, 28, 0.18);
  transform: rotate(-1.1deg);
}

.pagina-revista--timeline .timeline-revista__item:nth-child(even) .timeline-revista__foto {
  transform: rotate(1deg) translateY(2px);
}

.pagina-revista--timeline .timeline-revista__item:nth-child(3n) .timeline-revista__foto {
  transform: rotate(-0.45deg) translateY(-1px);
}

.pagina-revista--timeline .timeline-revista__foto::after {
  border: 1px solid rgba(255, 255, 255, 0.62);
  box-shadow: inset 0 0 0 3px rgba(255, 255, 255, 0.12);
}

.pagina-revista--timeline .timeline-revista__foto img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.91) contrast(1.02);
}

.pagina-revista--timeline .timeline-revista__item:nth-child(1) .timeline-revista__foto img { object-position: center 68%; }
.pagina-revista--timeline .timeline-revista__item:nth-child(2) .timeline-revista__foto img { object-position: center 43%; }
.pagina-revista--timeline .timeline-revista__item:nth-child(3) .timeline-revista__foto { background: #090909; }
.pagina-revista--timeline .timeline-revista__item:nth-child(3) .timeline-revista__foto img { object-fit: contain; object-position: center; }
.pagina-revista--timeline .timeline-revista__item:nth-child(4) .timeline-revista__foto img { object-position: center 64%; }
.pagina-revista--timeline .timeline-revista__item:nth-child(5) .timeline-revista__foto img { object-position: center 62%; }
.pagina-revista--timeline .timeline-revista__item:nth-child(6) .timeline-revista__foto img { object-position: center 46%; }

.pagina-revista--timeline .timeline-revista__item > span {
  position: relative;
  z-index: 3;
  align-self: center;
  justify-self: center;
  display: grid;
  width: 28px;
  height: 28px;
  color: #fff8ea;
  background: #173f36;
  border: 4px solid #fff7e9;
  border-radius: 50%;
  box-shadow: 0 0 0 1px #c99a43, 0 4px 9px rgba(47, 35, 25, 0.16);
  font: 800 clamp(0.42rem, 0.55vw, 0.54rem)/1 var(--mono);
  place-items: center;
}

.pagina-revista--timeline .timeline-revista__item:nth-child(4) > span,
.pagina-revista--timeline .timeline-revista__item:nth-child(5) > span {
  background: #a93640;
}

.pagina-revista--timeline .timeline-revista__item > div {
  position: relative;
  z-index: 2;
  min-width: 0;
  height: var(--timeline-copy-h);
  padding: 3px 4px 0;
  overflow: hidden;
  border: 0;
}

.pagina-revista--timeline .timeline-revista__item small {
  display: block;
  min-height: 0;
  color: #ad3540;
  font: 800 clamp(0.37rem, 0.48vw, 0.47rem)/1 var(--mono);
  letter-spacing: 0.11em;
}

.pagina-revista--timeline .timeline-revista__item h4 {
  margin: 4px 0 2px;
  overflow: hidden;
  color: #173f36;
  font: 500 clamp(0.72rem, 1vw, 0.97rem)/1.02 var(--serif);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pagina-revista--timeline .timeline-revista__item p {
  display: -webkit-box;
  margin: 0;
  overflow: hidden;
  color: #72665a;
  font: italic clamp(0.42rem, 0.55vw, 0.53rem)/1.2 var(--serif);
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
}

.pagina-revista--timeline .cierre-pagina {
  margin: 0;
  color: #a93640;
  font-size: clamp(0.76rem, 1.17vw, 1.04rem);
  line-height: 1.2;
}

@media (max-width: 780px) {
  .pagina-revista--timeline .pagina-revista__contenido {
    --timeline-gap-x: 7px;
    --timeline-gap-y: 8px;
    --timeline-copy-h: 37px;
    padding: 16px 13px 13px;
    gap: 6px;
  }

  .pagina-revista--timeline .cabecera-pagina {
    padding-bottom: 6px;
    column-gap: 10px;
  }

  .pagina-revista--timeline .cabecera-pagina h3 { font-size: clamp(1.35rem, 7vw, 2.2rem); }
  .pagina-revista--timeline .cabecera-pagina p { max-width: 170px; padding-left: 8px; font-size: 0.43rem; }
  .pagina-revista--timeline .timeline-revista__item { grid-template-rows: minmax(0, 1fr) 20px var(--timeline-copy-h); }
  .pagina-revista--timeline .timeline-revista__item:nth-child(-n + 3)::before,
  .pagina-revista--timeline .timeline-revista__item:nth-child(n + 5):nth-child(-n + 7)::before,
  .pagina-revista--timeline .timeline-revista__item:nth-child(4)::before {
    top: calc(100% - var(--timeline-copy-h) - 11px);
  }

  .pagina-revista--timeline .timeline-revista__item > span {
    width: 20px;
    height: 20px;
    border-width: 3px;
    font-size: 0.31rem;
  }

  .pagina-revista--timeline .timeline-revista__item small { font-size: 0.26rem; }
  .pagina-revista--timeline .timeline-revista__item h4 { margin-block: 2px 1px; font-size: 0.48rem; }
  .pagina-revista--timeline .timeline-revista__item p { font-size: 0.3rem; }
  .pagina-revista--timeline .cierre-pagina { font-size: 0.57rem; }
}

/* Nuestra temporada simplificada: solo título y fotografías */
.pagina-revista--timeline .pagina-revista__contenido {
  display: grid;
  height: 100%;
  min-height: inherit;
  padding: clamp(20px, 2.8vw, 36px) clamp(22px, 3.4vw, 44px) clamp(22px, 3vw, 38px);
  grid-template-rows: auto minmax(0, 1fr);
  gap: clamp(12px, 1.7vh, 18px);
}

.pagina-revista--timeline .cabecera-pagina {
  display: block;
  margin: 0;
  padding: 0;
  border: 0;
  text-align: center;
}

.pagina-revista--timeline .cabecera-pagina h3 {
  margin: 0;
  color: #173f36;
  font: 400 clamp(2.2rem, 5vw, 4.8rem)/0.88 var(--serif);
  letter-spacing: 0.04em;
}

.pagina-revista--timeline .timeline-revista {
  display: grid;
  width: 100%;
  height: 100%;
  min-height: 0;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: clamp(7px, 1vw, 13px);
}

.pagina-revista--timeline .timeline-revista::before,
.pagina-revista--timeline .timeline-revista__item::before,
.pagina-revista--timeline .timeline-revista__item::after {
  content: none !important;
}

.pagina-revista--timeline .timeline-revista__item {
  display: block;
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
}

.pagina-revista--timeline .timeline-revista__item > span,
.pagina-revista--timeline .timeline-revista__item > div {
  display: none;
}

.pagina-revista--timeline .timeline-revista__foto,
.pagina-revista--timeline .timeline-revista__item:nth-child(even) .timeline-revista__foto,
.pagina-revista--timeline .timeline-revista__item:nth-child(3n) .timeline-revista__foto {
  width: 100%;
  height: 100%;
  margin: 0;
  border: clamp(3px, 0.45vw, 6px) solid #fffdf7;
  border-radius: 2px;
  box-shadow: 0 8px 17px rgba(48, 36, 25, 0.2);
  transform: none;
}

.pagina-revista--timeline .timeline-revista__foto img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.pagina-revista--timeline .timeline-revista__item:nth-child(3) .timeline-revista__foto img {
  object-fit: contain;
}

@media (max-width: 780px) {
  .pagina-revista--timeline .pagina-revista__contenido {
    padding: 14px 12px 13px;
    gap: 8px;
  }

  .pagina-revista--timeline .cabecera-pagina h3 {
    font-size: clamp(1.55rem, 8.5vw, 2.7rem);
  }

  .pagina-revista--timeline .timeline-revista {
    gap: 5px;
  }
}

/* 05 · Our Story — mapa editorial de recuerdos */
.pagina-revista--timeline .story-map-spread {
  display: grid;
  height: 100%;
  min-height: inherit;
  padding: clamp(13px, 1.8vw, 24px) clamp(20px, 2.8vw, 36px) clamp(16px, 2.2vw, 28px);
  grid-template-rows: auto minmax(0, 1fr);
  gap: clamp(4px, 0.65vh, 8px);
}

.pagina-revista--timeline .story-map__cabecera {
  position: relative;
  z-index: 5;
  display: flex;
  margin: 0;
  padding: 0 0 clamp(4px, 0.7vh, 7px);
  border: 0;
  border-bottom: 1px solid rgba(159, 49, 59, 0.15);
  align-items: center;
  flex-direction: column;
  justify-content: center;
  text-align: center;
}

.pagina-revista--timeline .story-map__cabecera > span {
  display: block;
  color: #a5323c;
  font: 800 clamp(0.31rem, 0.42vw, 0.42rem)/1 var(--mono);
  letter-spacing: 0.2em;
}

.pagina-revista--timeline .story-map__cabecera h3 {
  margin: 2px 0 1px;
  color: #153d35;
  font: 400 clamp(1.15rem, 2.15vw, 2.05rem)/0.9 var(--serif);
  letter-spacing: 0.045em;
  text-align: center;
}

.pagina-revista--timeline .story-map__cabecera p {
  display: block;
  max-width: none;
  margin: 0;
  padding: 0;
  color: #78695c;
  border: 0;
  font: italic clamp(0.42rem, 0.58vw, 0.57rem)/1.2 var(--serif);
}

.story-map {
  position: relative;
  isolation: isolate;
  width: 100%;
  height: 100%;
  min-height: 0;
  overflow: hidden;
  background:
    radial-gradient(circle at 37% 36%, rgba(198, 159, 91, 0.07), transparent 18%),
    radial-gradient(circle at 68% 72%, rgba(169, 54, 64, 0.055), transparent 22%);
}

.story-map__ruta {
  position: absolute;
  z-index: 1;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.pagina-revista--timeline .story-map .timeline-revista {
  position: absolute;
  z-index: 2;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  margin: 0;
}

.pagina-revista--timeline .story-map .timeline-revista__item {
  position: absolute;
  display: block;
  min-width: 0;
  min-height: 0;
  padding: clamp(3px, 0.38vw, 5px) clamp(3px, 0.38vw, 5px) clamp(23px, 3.4vh, 31px);
  background: #fffdf7;
  border: 1px solid rgba(94, 73, 48, 0.14);
  box-shadow: 0 9px 19px rgba(51, 39, 27, 0.19);
}

.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(1) { top: 1%; left: 1%; width: 24%; height: 38%; }
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(2) { top: 10%; left: 27%; width: 22%; height: 36%; }
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(3) { top: 0; left: 51%; width: 23%; height: 39%; }
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(4) { top: 11%; right: 0.8%; width: 23%; height: 38%; }
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(5) { top: 48%; left: 55%; width: 20%; height: 37%; }
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(6) { top: 62%; left: 31%; width: 21%; height: 37%; }
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(7) { top: 49%; left: 1.5%; width: 24%; height: 38%; }
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(8) { right: 0.5%; bottom: 0; width: 24%; height: 39%; }

.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(1),
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(5) { transform: rotate(-1.2deg); }
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(2),
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(7) { transform: rotate(1.05deg); }
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(4),
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(8) { transform: rotate(0.7deg); }

.pagina-revista--timeline .story-map .timeline-revista__foto,
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(even) .timeline-revista__foto,
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(3n) .timeline-revista__foto {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  margin: 0;
  overflow: hidden;
  background: #ded3c2;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  transform: none !important;
}

.pagina-revista--timeline .story-map .timeline-revista__foto::after {
  border: 1px solid rgba(255, 255, 255, 0.34);
  box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.1);
}

.pagina-revista--timeline .story-map .timeline-revista__foto img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.9) contrast(1.025);
}

.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(1) .timeline-revista__foto img { object-position: center 67%; }
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(2) .timeline-revista__foto img { object-position: center 43%; }
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(3) .timeline-revista__foto { background: #151515; }
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(3) .timeline-revista__foto img { object-fit: contain; object-position: center; }
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(4) .timeline-revista__foto img { object-position: center 64%; }
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(5) .timeline-revista__foto img { object-position: center 62%; }
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(6) .timeline-revista__foto img { object-position: center 46%; }

.pagina-revista--timeline .story-map .timeline-revista__item > div {
  position: absolute;
  z-index: 4;
  right: clamp(4px, 0.48vw, 7px);
  bottom: clamp(4px, 0.48vw, 7px);
  left: clamp(4px, 0.48vw, 7px);
  display: grid;
  height: auto;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  border: 0;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: clamp(4px, 0.55vw, 7px);
}

.pagina-revista--timeline .story-map .timeline-revista__item small {
  display: block;
  min-height: 0;
  color: #a5343e;
  font: 800 clamp(0.27rem, 0.36vw, 0.36rem)/1 var(--mono);
  letter-spacing: 0.07em;
  white-space: nowrap;
}

.pagina-revista--timeline .story-map .timeline-revista__item h4 {
  margin: 0;
  overflow: hidden;
  color: #173f36;
  font: 500 clamp(0.48rem, 0.72vw, 0.7rem)/1 var(--serif);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pagina-revista--timeline .story-map .timeline-revista__item p {
  display: none;
}

.pagina-revista--timeline .story-map .timeline-revista__item > span {
  position: absolute;
  z-index: 6;
  right: -6px;
  bottom: clamp(19px, 3vh, 27px);
  display: block;
  width: clamp(8px, 0.8vw, 11px);
  height: clamp(8px, 0.8vw, 11px);
  overflow: hidden;
  color: transparent;
  background: #fff8e9;
  border: 2px solid #263b35;
  border-radius: 50%;
  box-shadow: 0 0 0 2px rgba(255, 248, 233, 0.86);
  font-size: 0;
}

.story-map__adorno {
  position: absolute;
  z-index: 3;
  display: grid;
  color: rgba(164, 48, 58, 0.7);
  font-family: var(--serif);
  pointer-events: none;
  place-items: center;
}

.story-map__adorno--corazon {
  top: 44%;
  left: 42%;
  font-size: clamp(0.72rem, 1.1vw, 1.05rem);
  transform: rotate(-9deg);
}

.story-map__adorno--estrella {
  right: 25%;
  bottom: 11%;
  color: rgba(187, 144, 65, 0.78);
  font-size: clamp(0.8rem, 1.25vw, 1.2rem);
}

@media (max-width: 780px) {
  .pagina-revista--timeline .story-map-spread {
    padding: 8px 9px 9px;
    gap: 3px;
  }

  .pagina-revista--timeline .story-map__cabecera {
    padding-bottom: 3px;
  }

  .pagina-revista--timeline .story-map__cabecera > span { font-size: 0.2rem; }
  .pagina-revista--timeline .story-map__cabecera h3 { font-size: clamp(0.85rem, 4.5vw, 1.35rem); }
  .pagina-revista--timeline .story-map__cabecera p { font-size: 0.27rem; }

  .pagina-revista--timeline .story-map .timeline-revista__item {
    padding: 3px 3px 17px;
  }

  .pagina-revista--timeline .story-map .timeline-revista__item > div {
    right: 3px;
    bottom: 3px;
    left: 3px;
    gap: 2px;
  }

  .pagina-revista--timeline .story-map .timeline-revista__item small { font-size: 0.18rem; }
  .pagina-revista--timeline .story-map .timeline-revista__item h4 { font-size: 0.32rem; }
  .pagina-revista--timeline .story-map .timeline-revista__item > span { right: -4px; bottom: 13px; width: 7px; height: 7px; border-width: 1px; }
}

/* OUR STORY definitivo: una ruta editorial continua */
.pagina-revista--timeline .story-map-spread {
  display: grid;
  height: 100%;
  min-height: inherit;
  padding: clamp(18px, 2.45vw, 32px) clamp(23px, 3.2vw, 42px) clamp(16px, 2.2vw, 29px);
  grid-template-rows: auto minmax(0, 1fr);
  gap: clamp(8px, 1.15vh, 13px);
}

.pagina-revista--timeline .story-map__cabecera {
  display: grid;
  padding: 0 0 clamp(7px, 1vh, 11px);
  border-bottom: 1px solid rgba(159, 49, 59, 0.16);
  place-items: center;
  text-align: center;
}

.pagina-revista--timeline .story-map__cabecera > span {
  color: #a5323c;
  font: 800 clamp(0.35rem, 0.47vw, 0.47rem)/1 var(--mono);
  letter-spacing: 0.24em;
}

.pagina-revista--timeline .story-map__cabecera h3 {
  margin: clamp(4px, 0.55vh, 7px) 0 3px;
  color: #153d35;
  font: 400 clamp(1.75rem, 3.35vw, 3.25rem)/0.86 var(--serif);
  letter-spacing: -0.025em;
  text-align: center;
}

.pagina-revista--timeline .story-map__cabecera p {
  max-width: none;
  margin: 0;
  padding: 0;
  color: #78695c;
  border: 0;
  font: italic clamp(0.47rem, 0.67vw, 0.66rem)/1.25 var(--serif);
}

.pagina-revista--timeline .story-map {
  position: relative;
  isolation: isolate;
  width: 100%;
  height: 100%;
  min-height: 0;
  overflow: hidden;
  background:
    radial-gradient(circle at 46% 42%, rgba(194, 153, 80, 0.065), transparent 22%),
    radial-gradient(circle at 78% 76%, rgba(162, 50, 60, 0.045), transparent 23%),
    repeating-linear-gradient(0deg, rgba(103, 80, 48, 0.018) 0 1px, transparent 1px 6px);
}

.pagina-revista--timeline .story-map__ruta {
  position: absolute;
  z-index: 1;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
}

.story-map__ruta-trazo {
  fill: none;
  stroke: rgba(28, 57, 48, 0.78);
  stroke-width: 1.65;
  stroke-dasharray: 7 8;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
}

.story-map__ruta-trazo--movil { display: none; }

.pagina-revista--timeline .story-map .timeline-revista {
  position: absolute;
  z-index: 3;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  margin: 0;
}

.pagina-revista--timeline .story-map .timeline-revista__item {
  position: absolute;
  display: block;
  min-width: 0;
  min-height: 0;
  padding: 0;
  overflow: visible;
  background: none;
  border: 0;
  box-shadow: none;
}

.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(1) { top: 5%; left: 2%; width: 23%; height: 31%; }
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(2) { top: 6%; left: 31%; width: 14%; height: 24%; }
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(3) { top: 17%; left: 53%; width: 18%; height: 27%; }
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(4) { top: 3%; right: 2%; width: 19%; height: 28%; }
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(5) { top: 46%; left: 45%; width: 28%; height: 39%; }
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(6) { top: 48%; left: 7%; width: 17%; height: 26%; }
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(7) { top: 72%; left: 29%; width: 14%; height: 23%; }
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(8) { top: 60%; right: 2%; width: 22%; height: 29%; }

.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(1),
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(6) { transform: rotate(-1.35deg); }
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(2),
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(8) { transform: rotate(1.1deg); }
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(4) { transform: rotate(-0.65deg); }
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(7) { transform: rotate(0.8deg); }

.pagina-revista--timeline .story-map .timeline-revista__foto,
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(even) .timeline-revista__foto,
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(3n) .timeline-revista__foto {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  margin: 0;
  overflow: hidden;
  background: #ddd2c0;
  border: clamp(3px, 0.42vw, 5px) solid #fffdf8;
  border-radius: 1px;
  box-shadow: 0 9px 19px rgba(48, 36, 25, 0.19);
  transform: none !important;
}

.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(2) .timeline-revista__foto,
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(7) .timeline-revista__foto {
  border-width: clamp(2px, 0.32vw, 4px);
  box-shadow: 0 6px 13px rgba(48, 36, 25, 0.15);
}

.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(5) .timeline-revista__foto {
  border-width: clamp(4px, 0.55vw, 7px);
  box-shadow: 0 15px 28px rgba(48, 36, 25, 0.24);
}

.pagina-revista--timeline .story-map .timeline-revista__foto img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.92) contrast(1.02);
}

.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(1) .timeline-revista__foto img { object-position: center 67%; }
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(2) .timeline-revista__foto img { object-position: center 43%; }
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(3) .timeline-revista__foto { background: #151515; }
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(3) .timeline-revista__foto img { object-fit: contain; object-position: center; }
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(4) .timeline-revista__foto img { object-position: center 64%; }
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(5) .timeline-revista__foto img { object-position: center 62%; }
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(6) .timeline-revista__foto img { object-position: center 46%; }

.pagina-revista--timeline .story-map .timeline-revista__item > span {
  display: none !important;
}

.pagina-revista--timeline .story-map .timeline-revista__item > div {
  position: absolute;
  z-index: 5;
  top: calc(100% + 5px);
  right: auto;
  bottom: auto;
  left: 0;
  display: grid;
  width: max-content;
  max-width: 145%;
  height: auto;
  min-height: 0;
  padding: clamp(3px, 0.4vw, 5px) clamp(5px, 0.58vw, 8px);
  overflow: visible;
  color: #173f36;
  border: 0;
  border-left: 2px solid #aa3640;
  background: rgba(255, 248, 234, 0.94);
  box-shadow: 0 4px 9px rgba(65, 48, 31, 0.08);
  grid-template-columns: minmax(0, 1fr);
  gap: 2px;
}

.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(2) > div,
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(3) > div,
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(5) > div {
  top: auto;
  right: clamp(4px, 0.45vw, 7px);
  bottom: clamp(4px, 0.45vw, 7px);
  left: clamp(4px, 0.45vw, 7px);
  width: auto;
  max-width: none;
  border-left-width: 1px;
  background: rgba(255, 248, 234, 0.9);
}

.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(6) > div {
  top: 48%;
  right: auto;
  bottom: auto;
  left: calc(100% + 7px);
  width: 112%;
}

.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(7) > div,
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(8) > div {
  top: auto;
  right: auto;
  bottom: calc(100% + 5px);
  left: 0;
}

.pagina-revista--timeline .story-map .timeline-revista__item h4 {
  margin: 0;
  overflow: visible;
  color: #173f36;
  font: 700 clamp(0.38rem, 0.56vw, 0.56rem)/1.15 var(--sans);
  letter-spacing: 0.025em;
  text-overflow: clip;
  text-transform: uppercase;
  white-space: normal;
}

.pagina-revista--timeline .story-map .timeline-revista__item small {
  display: block;
  min-height: 0;
  color: #a5343e;
  font: 700 clamp(0.3rem, 0.4vw, 0.4rem)/1.15 var(--mono);
  letter-spacing: 0.075em;
  white-space: normal;
}

.story-map__cita {
  position: absolute;
  z-index: 4;
  top: 40%;
  left: 27%;
  width: 16%;
  margin: 0;
  color: #98313a;
  font: italic clamp(0.72rem, 1.18vw, 1.14rem)/1.23 var(--serif);
  text-align: right;
}

.story-map__cita::before {
  content: "";
  display: block;
  width: 34px;
  height: 1px;
  margin: 0 0 8px auto;
  background: currentColor;
  opacity: 0.55;
}

.story-map__ano,
.story-map__fecha-clave,
.story-map__continuara {
  position: absolute;
  z-index: 4;
  margin: 0;
  font-family: var(--mono);
  font-weight: 800;
  letter-spacing: 0.13em;
}

.story-map__ano {
  color: rgba(166, 49, 59, 0.78);
  font-size: clamp(0.42rem, 0.58vw, 0.57rem);
}

.story-map__ano--2025 { top: 34%; left: 29%; }
.story-map__ano--2026 { top: 39%; right: 22%; }

.story-map__fecha-clave {
  top: 41%;
  left: 7%;
  color: rgba(160, 49, 59, 0.74);
  font-size: clamp(0.35rem, 0.47vw, 0.47rem);
  transform: rotate(-4deg);
}

.story-map__continuara {
  right: 0.8%;
  bottom: 0.8%;
  color: #173f36;
  font-size: clamp(0.38rem, 0.54vw, 0.53rem);
}

.story-map__adorno--corazon {
  z-index: 4;
  top: 37%;
  left: 47%;
  font-size: clamp(0.6rem, 0.84vw, 0.82rem);
}

.story-map__adorno--estrella {
  z-index: 4;
  right: 27%;
  bottom: 5%;
  font-size: clamp(0.68rem, 0.95vw, 0.92rem);
}

@media (max-width: 780px) {
  .pagina-revista--timeline .story-map-spread {
    padding: 9px 9px 8px;
    gap: 4px;
  }

  .pagina-revista--timeline .story-map__cabecera {
    padding-bottom: 4px;
  }

  .pagina-revista--timeline .story-map__cabecera > span { font-size: 0.2rem; }
  .pagina-revista--timeline .story-map__cabecera h3 { margin-block: 2px 1px; font-size: clamp(0.95rem, 5vw, 1.5rem); }
  .pagina-revista--timeline .story-map__cabecera p { font-size: 0.28rem; }
  .story-map__ruta-trazo--escritorio { display: none; }
  .story-map__ruta-trazo--movil { display: block; }

  .pagina-revista--timeline .story-map .timeline-revista__item {
    width: 42%;
    height: 10.5%;
    transform: none;
  }

  .pagina-revista--timeline .story-map .timeline-revista__item:nth-child(1) { top: 1%; left: 2%; width: 44%; height: 11%; }
  .pagina-revista--timeline .story-map .timeline-revista__item:nth-child(2) { top: 13%; right: 2%; left: auto; }
  .pagina-revista--timeline .story-map .timeline-revista__item:nth-child(3) { top: 25%; left: 2%; }
  .pagina-revista--timeline .story-map .timeline-revista__item:nth-child(4) { top: 37%; right: 2%; left: auto; }
  .pagina-revista--timeline .story-map .timeline-revista__item:nth-child(5) { top: 49%; left: 2%; width: 48%; height: 12%; }
  .pagina-revista--timeline .story-map .timeline-revista__item:nth-child(6) { top: 62%; right: 2%; left: auto; }
  .pagina-revista--timeline .story-map .timeline-revista__item:nth-child(7) { top: 75%; left: 2%; }
  .pagina-revista--timeline .story-map .timeline-revista__item:nth-child(8) { top: 87%; right: 2%; bottom: auto; left: auto; width: 44%; height: 10.5%; }

  .pagina-revista--timeline .story-map .timeline-revista__foto {
    border-width: 2px;
  }

  .pagina-revista--timeline .story-map .timeline-revista__item > div,
  .pagina-revista--timeline .story-map .timeline-revista__item:nth-child(2) > div,
  .pagina-revista--timeline .story-map .timeline-revista__item:nth-child(3) > div,
  .pagina-revista--timeline .story-map .timeline-revista__item:nth-child(5) > div,
  .pagina-revista--timeline .story-map .timeline-revista__item:nth-child(6) > div,
  .pagina-revista--timeline .story-map .timeline-revista__item:nth-child(7) > div,
  .pagina-revista--timeline .story-map .timeline-revista__item:nth-child(8) > div {
    top: auto;
    right: 3px;
    bottom: 3px;
    left: 3px;
    width: auto;
    max-width: none;
    padding: 2px 3px;
    border-left-width: 1px;
    background: rgba(255, 248, 234, 0.88);
    box-shadow: none;
  }

  .pagina-revista--timeline .story-map .timeline-revista__item h4 { font-size: 0.24rem; }
  .pagina-revista--timeline .story-map .timeline-revista__item small { font-size: 0.17rem; }

  .story-map__cita {
    top: 51%;
    left: 53%;
    width: 43%;
    font-size: 0.44rem;
    text-align: left;
  }

  .story-map__cita::before { width: 18px; margin: 0 0 3px; }
  .story-map__ano { font-size: 0.23rem; }
  .story-map__ano--2025 { top: 35%; left: 45%; }
  .story-map__ano--2026 { top: 73%; right: 45%; }
  .story-map__fecha-clave { top: 47%; left: 53%; font-size: 0.19rem; }
  .story-map__continuara { right: 1%; bottom: 0.2%; font-size: 0.22rem; }
  .story-map__adorno--corazon { top: 23%; left: 47%; font-size: 0.43rem; }
  .story-map__adorno--estrella { right: 47%; bottom: 12%; font-size: 0.44rem; }
}

/* Love map limpio: el recorrido y las fotos ocupan toda la doble página */
.pagina-revista--timeline .story-map-spread {
  display: grid;
  height: 100%;
  min-height: inherit;
  padding: clamp(12px, 1.65vw, 22px);
  grid-template-rows: minmax(0, 1fr);
  gap: 0;
}

.pagina-revista--timeline .story-map {
  width: 100%;
  height: 100%;
  background:
    radial-gradient(circle at 47% 45%, rgba(194, 153, 80, 0.07), transparent 27%),
    repeating-linear-gradient(0deg, rgba(103, 80, 48, 0.018) 0 1px, transparent 1px 6px);
}

.pagina-revista--timeline .story-map__ruta {
  inset: 0;
  width: 100%;
  height: 100%;
}

.pagina-revista--timeline .story-map__ruta-trazo {
  stroke: rgba(27, 58, 49, 0.78);
  stroke-width: 1.75;
  stroke-dasharray: 7 8;
}

.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(1) { top: 2%; left: 1%; width: 24%; height: 36%; }
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(2) { top: 5%; left: 28%; width: 20%; height: 32%; }
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(3) { top: 3%; left: 52%; width: 19%; height: 35%; }
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(4) { top: 5%; right: 1%; width: 23%; height: 35%; }
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(5) { top: 50%; left: 54%; width: 22%; height: 40%; }
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(6) { top: 59%; left: 29%; width: 21%; height: 37%; }
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(7) { top: 51%; left: 1%; width: 24%; height: 39%; }
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(8) { right: 1%; bottom: 2%; top: auto; width: 20%; height: 37%; }

.pagina-revista--timeline .story-map .timeline-revista__foto,
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(even) .timeline-revista__foto,
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(3n) .timeline-revista__foto {
  background: #efe7d9;
  border: clamp(3px, 0.38vw, 5px) solid #fffdf8;
  box-shadow: 0 8px 18px rgba(48, 36, 25, 0.17);
}

.pagina-revista--timeline .story-map .timeline-revista__foto img,
.pagina-revista--timeline .story-map .timeline-revista__item:nth-child(n) .timeline-revista__foto img {
  object-fit: contain;
  object-position: center;
  background: #efe7d9;
  filter: none;
}

.pagina-revista--timeline .story-map .timeline-revista__item > span,
.pagina-revista--timeline .story-map .timeline-revista__item > div,
.pagina-revista--timeline .story-map__cita,
.pagina-revista--timeline .story-map__ano,
.pagina-revista--timeline .story-map__fecha-clave,
.pagina-revista--timeline .story-map__adorno,
.pagina-revista--timeline .story-map__continuara {
  display: none !important;
}

@media (max-width: 780px) {
  .pagina-revista--timeline .story-map-spread {
    padding: 7px;
  }

  .pagina-revista--timeline .story-map .timeline-revista__item {
    width: 44%;
    height: 11.4%;
    transform: none;
  }

  .pagina-revista--timeline .story-map .timeline-revista__item:nth-child(1) { top: 1%; left: 2%; width: 44%; height: 11.4%; }
  .pagina-revista--timeline .story-map .timeline-revista__item:nth-child(2) { top: 13.2%; right: 2%; left: auto; width: 44%; height: 11.4%; }
  .pagina-revista--timeline .story-map .timeline-revista__item:nth-child(3) { top: 25.4%; left: 2%; width: 44%; height: 11.4%; }
  .pagina-revista--timeline .story-map .timeline-revista__item:nth-child(4) { top: 37.6%; right: 2%; left: auto; width: 44%; height: 11.4%; }
  .pagina-revista--timeline .story-map .timeline-revista__item:nth-child(5) { top: 49.8%; left: 2%; width: 44%; height: 11.4%; }
  .pagina-revista--timeline .story-map .timeline-revista__item:nth-child(6) { top: 62%; right: 2%; left: auto; width: 44%; height: 11.4%; }
  .pagina-revista--timeline .story-map .timeline-revista__item:nth-child(7) { top: 74.2%; left: 2%; width: 44%; height: 11.4%; }
  .pagina-revista--timeline .story-map .timeline-revista__item:nth-child(8) { top: 86.4%; right: 2%; bottom: auto; left: auto; width: 44%; height: 11.4%; }
}

/* Sala de prensa ajustada a una sola pantalla */
.rueda-prensa {
  width: 100%;
  height: 100svh;
  min-height: 0;
  overflow: hidden;
}

.rueda-prensa__contenido {
  width: min(94vw, 1320px);
  height: 100%;
  min-height: 0;
  padding: clamp(16px, 3.2vh, 34px) 0;
  grid-template-columns: minmax(260px, 0.7fr) minmax(460px, 1.3fr);
  gap: clamp(26px, 4.2vw, 64px);
  align-items: center;
}

.rueda-prensa__escena {
  min-height: min(54svh, 470px);
  height: min(54svh, 470px);
  padding-top: min(18svh, 155px);
}

.acreditacion {
  top: 4px;
  width: min(215px, 78%);
  padding: 20px 19px;
  border-top-width: 6px;
}

.acreditacion::before {
  top: -38px;
  height: 35px;
}

.acreditacion .acreditacion-nombre {
  margin: 11px 0 6px;
  font-size: 1.65rem;
}

.acreditacion em { margin: 6px 0 11px; }
.acreditacion b { padding-top: 8px; }

.atril {
  width: min(100%, 315px);
  min-height: min(29svh, 250px);
}

.logo-atril {
  width: 66px;
  height: 66px;
  font-size: 1.55rem;
}

.microfonos {
  bottom: min(27svh, 226px);
  height: 70px;
}

.microfonos i { height: 70px; }
.microfonos i:nth-child(2) { height: 57px; }

.rueda-prensa__panel {
  display: flex;
  min-width: 0;
  max-height: 100%;
  flex-direction: column;
  justify-content: center;
}

.rueda-prensa__panel .titulo-prensa {
  max-width: 720px;
  font-size: clamp(2.7rem, 5.2vw, 5.5rem);
  line-height: 0.86;
}

.rueda-prensa__subtitulo.subtitulo-prensa {
  margin: 10px 0 clamp(12px, 2vh, 20px);
  font-size: clamp(0.9rem, 1.35vw, 1.3rem);
}

.etiqueta-prensa {
  margin-bottom: 8px;
  font-size: 0.68rem;
}

.tarjeta-pregunta,
.fin-declaraciones {
  padding: clamp(17px, 2.3vw, 28px);
}

.pregunta-meta { margin-bottom: 7px; }

.tarjeta-pregunta h3 {
  margin: clamp(13px, 1.8vh, 18px) 0 clamp(11px, 1.6vh, 16px);
  font-size: clamp(1.25rem, 2.35vw, 2rem);
}

.campo-pregunta input,
.campo-pregunta textarea {
  min-height: 44px;
  padding: 11px 13px;
}

.campo-pregunta textarea { min-height: clamp(64px, 10vh, 90px); }
.opcion-prensa { min-height: 42px; padding: 9px 11px; }
.mensaje-pregunta { min-height: 18px; margin-top: 6px; font-size: 0.82rem; }
.pregunta-acciones { margin-top: 8px; gap: 8px; }

.fin-declaraciones.cierre-prensa {
  padding: clamp(24px, 3.2vw, 40px);
}

.fin-declaraciones.cierre-prensa h3 { margin: 15px 0 11px; }
.fin-declaraciones.cierre-prensa p:not(.eyebrow) { margin-bottom: 18px; }

@media (max-height: 720px) and (min-width: 769px) {
  .rueda-prensa__contenido {
    padding-block: 12px;
    gap: 24px;
  }

  .rueda-prensa__escena {
    min-height: 410px;
    height: 410px;
    padding-top: 138px;
  }

  .acreditacion { width: 195px; padding: 15px 16px; }
  .acreditacion .acreditacion-nombre { font-size: 1.4rem; }
  .acreditacion em { display: none; }
  .atril { min-height: 220px; }
  .microfonos { bottom: 198px; }
  .rueda-prensa__panel .titulo-prensa { font-size: clamp(2.45rem, 4.7vw, 4.4rem); }
  .rueda-prensa__subtitulo.subtitulo-prensa { margin-block: 7px 10px; font-size: 0.9rem; }
  .tarjeta-pregunta h3 { margin-block: 10px; font-size: 1.25rem; }
  .campo-pregunta textarea { min-height: 58px; }
}

@media (max-width: 768px) {
  .rueda-prensa {
    height: 100svh;
    min-height: 0;
    overflow: hidden;
  }

  .rueda-prensa__contenido {
    width: calc(100% - 20px);
    height: 100%;
    padding: 10px 0;
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    align-items: center;
  }

  .rueda-prensa__escena { display: none; }

  .rueda-prensa__panel {
    order: 1;
    max-height: 100%;
  }

  .rueda-prensa__panel .titulo-prensa {
    font-size: clamp(2rem, 10vw, 3.35rem);
    line-height: 0.88;
  }

  .rueda-prensa__subtitulo.subtitulo-prensa {
    margin: 6px 0 10px;
    font-size: clamp(0.72rem, 3.3vw, 0.95rem);
  }

  .etiqueta-prensa { margin-bottom: 5px; font-size: 0.55rem; }
  .tarjeta-pregunta,
  .fin-declaraciones { padding: 14px 13px; }
  .tarjeta-pregunta h3 { margin: 10px 0 8px; font-size: clamp(1.05rem, 5vw, 1.35rem); }
  .campo-pregunta textarea { min-height: 58px; }
  .pregunta-acciones { grid-template-columns: 1fr 1fr; }
  .pregunta-acciones .boton-enlace { grid-column: 1 / -1; grid-row: 2; min-height: 34px; }
}

/* Giro visible de las hojas de la revista */
.revista-lienzo > .pagina-revista {
  grid-area: 1 / 1;
  backface-visibility: hidden;
  transform-style: preserve-3d;
}

.revista-lienzo {
  perspective: 2400px;
  perspective-origin: 50% 48%;
  isolation: isolate;
}

.pagina-giro-sale-adelante,
.pagina-giro-sale-atras,
.pagina-giro-entra-adelante,
.pagina-giro-entra-atras {
  pointer-events: none;
  will-change: transform, filter, box-shadow;
}

.pagina-giro-sale-adelante {
  z-index: 4;
  transform-origin: left center;
  animation: hojaSaleAdelante 820ms cubic-bezier(0.62, 0.02, 0.32, 1) both;
}

.pagina-giro-entra-adelante {
  z-index: 1;
  animation: hojaEntraAdelante 820ms cubic-bezier(0.22, 0.7, 0.22, 1) both;
}

.pagina-giro-sale-atras {
  z-index: 1;
  animation: hojaSaleAtras 820ms cubic-bezier(0.22, 0.7, 0.22, 1) both;
}

.pagina-giro-entra-atras {
  z-index: 4;
  transform-origin: left center;
  animation: hojaEntraAtras 820ms cubic-bezier(0.62, 0.02, 0.32, 1) both;
}

.pagina-giro-sale-adelante::before,
.pagina-giro-entra-atras::before {
  content: "";
  position: absolute;
  z-index: 20;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.04), transparent 54%, rgba(31, 24, 19, 0.34));
  opacity: 0;
  animation: sombraCurvaHoja 820ms ease-in-out both;
}

@keyframes hojaSaleAdelante {
  0% {
    filter: brightness(1);
    box-shadow: 0 24px 58px rgba(43, 32, 25, 0.18);
    transform: rotateY(0deg) translateZ(0);
  }
  38% {
    filter: brightness(0.94);
    box-shadow: 48px 18px 58px rgba(31, 23, 18, 0.34);
    transform: rotateY(-34deg) translateZ(9px);
  }
  72% {
    filter: brightness(0.79);
    box-shadow: 78px 12px 74px rgba(31, 23, 18, 0.42);
    transform: rotateY(-72deg) translateZ(5px);
  }
  100% {
    opacity: 0;
    filter: brightness(0.64);
    box-shadow: 84px 8px 76px rgba(31, 23, 18, 0.38);
    transform: rotateY(-96deg) translateZ(0);
  }
}

@keyframes hojaEntraAdelante {
  0% {
    filter: brightness(0.68);
    transform: scale(0.992);
  }
  52% { filter: brightness(0.78); }
  100% {
    filter: brightness(1);
    transform: scale(1);
  }
}

@keyframes hojaSaleAtras {
  0% {
    filter: brightness(0.68);
    transform: scale(0.992);
  }
  52% { filter: brightness(0.78); }
  100% { filter: brightness(1); transform: scale(1); }
}

@keyframes hojaEntraAtras {
  0% {
    opacity: 0;
    filter: brightness(0.64);
    box-shadow: 84px 8px 76px rgba(31, 23, 18, 0.38);
    transform: rotateY(-96deg) translateZ(0);
  }
  28% {
    opacity: 1;
    filter: brightness(0.79);
    box-shadow: 78px 12px 74px rgba(31, 23, 18, 0.42);
    transform: rotateY(-72deg) translateZ(5px);
  }
  62% {
    filter: brightness(0.94);
    box-shadow: 48px 18px 58px rgba(31, 23, 18, 0.34);
    transform: rotateY(-34deg) translateZ(9px);
  }
  100% {
    opacity: 1;
    filter: brightness(1);
    box-shadow: 0 24px 58px rgba(43, 32, 25, 0.18);
    transform: rotateY(0deg) translateZ(0);
  }
}

@keyframes sombraCurvaHoja {
  0%, 100% { opacity: 0; }
  28% { opacity: 0.32; }
  62% { opacity: 0.74; }
  82% { opacity: 0.38; }
}

@media (prefers-reduced-motion: reduce) {
  .pagina-giro-sale-adelante,
  .pagina-giro-sale-atras,
  .pagina-giro-entra-adelante,
  .pagina-giro-entra-atras {
    animation: none !important;
  }

  .pagina-giro-sale-adelante::before,
  .pagina-giro-entra-atras::before {
    animation: none !important;
  }
}

/* Revista ampliada: más superficie de pantalla sin alterar la maquetación interna */
/* Our Story utiliza el diseño editorial final como doble página completa */
.pagina-revista--timeline {
  background: #f7edc5;
}

.pagina-revista--timeline::after {
  display: none;
}

.pagina-revista--timeline .story-design-spread {
  display: grid;
  width: 100%;
  height: 100%;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  place-items: stretch;
}

.story-design-completo {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  overflow: hidden;
  background: #f7edc5;
}

.story-design-completo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

/* Momentos de portada: crema, polaroids grandes y fotografías completas */
.pagina-revista--momentos {
  background:
    radial-gradient(circle at 12% 16%, rgba(122, 73, 38, 0.13), transparent 19%),
    radial-gradient(circle at 84% 78%, rgba(142, 69, 55, 0.1), transparent 24%),
    repeating-linear-gradient(0deg, rgba(92, 62, 38, 0.025) 0 1px, transparent 1px 5px),
    repeating-linear-gradient(90deg, rgba(92, 62, 38, 0.015) 0 1px, transparent 1px 7px),
    #ead8b7;
}

.pagina-revista--momentos::after {
  display: block;
  inset: clamp(8px, 0.8vw, 12px);
  border: 1px solid rgba(113, 72, 45, 0.19);
  background:
    linear-gradient(90deg, rgba(92, 55, 34, 0.07), transparent 7%, transparent 93%, rgba(92, 55, 34, 0.07));
}

.pagina-revista--momentos .pagina-revista__contenido {
  display: grid;
  width: 100%;
  height: 100%;
  min-height: 0;
  padding: clamp(17px, 2vw, 27px) clamp(18px, 2.35vw, 34px) clamp(15px, 1.8vw, 24px);
  overflow: hidden;
  grid-template-rows: auto minmax(0, 1fr);
  gap: clamp(8px, 1.1vh, 13px);
}

.pagina-revista--momentos .cabecera-pagina {
  margin: 0;
  text-align: center;
}

.pagina-revista--momentos .cabecera-pagina > span {
  font-size: clamp(0.43rem, 0.55vw, 0.58rem);
}

.pagina-revista--momentos .cabecera-pagina h3 {
  margin-top: 3px;
  font-size: clamp(1.75rem, 3vw, 2.9rem);
  line-height: 0.92;
}

.pagina-revista--momentos .momentos-portada {
  display: grid;
  width: 100%;
  height: 100%;
  min-height: 0;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(10px, 1.25vw, 18px);
  align-items: stretch;
}

.pagina-revista--momentos .momento-portada,
.pagina-revista--momentos .momento-portada:nth-child(even) {
  display: grid;
  height: 100%;
  min-height: 0;
  margin-top: 0;
  padding: clamp(5px, 0.5vw, 8px) clamp(5px, 0.5vw, 8px) clamp(8px, 0.8vw, 12px);
  background: #f6ecd9;
  border: 1px solid rgba(108, 72, 45, 0.11);
  box-shadow:
    0 16px 30px rgba(77, 49, 31, 0.2),
    inset 0 0 22px rgba(142, 99, 59, 0.055);
  grid-template-rows: minmax(0, 1fr) auto;
  transform: rotate(calc((var(--indice) - 1.5) * 0.55deg));
}

.pagina-revista--momentos .momento-portada .marco-foto {
  width: 100%;
  height: 100%;
  min-height: 0;
  aspect-ratio: auto;
  isolation: isolate;
  background: #cbb79a;
}

.pagina-revista--momentos .momento-portada .marco-foto::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: -14px;
  background-image:
    linear-gradient(rgba(60, 39, 25, 0.16), rgba(60, 39, 25, 0.16)),
    var(--momento-fondo, none);
  background-position: center;
  background-size: cover;
  filter: blur(10px) saturate(0.82) sepia(0.18);
  opacity: 0.78;
  transform: scale(1.08);
}

.pagina-revista--momentos .momento-portada .marco-foto img,
.pagina-revista--momentos .momento-portada .marco-foto video {
  display: block;
  width: 100%;
  height: 100%;
  z-index: 1;
  background: transparent;
  object-fit: contain;
  object-position: center;
}

.pagina-revista--momentos .momento-portada > span {
  padding: clamp(7px, 0.75vw, 11px) 4px 0;
}

.pagina-revista--momentos .momento-portada strong {
  font-size: clamp(0.78rem, 1.1vw, 1.08rem);
  line-height: 1.05;
}

.pagina-revista--momentos .momento-portada small {
  margin: 4px 0 0;
  font-size: clamp(0.4rem, 0.52vw, 0.55rem);
  line-height: 1.28;
}

.pagina-revista--momentos .momento-portada__frase {
  position: absolute;
  z-index: 4;
  right: clamp(5px, 0.5vw, 8px);
  bottom: clamp(5px, 0.5vw, 8px);
  left: clamp(5px, 0.5vw, 8px);
  margin: 0;
  padding: clamp(6px, 0.65vw, 9px) clamp(7px, 0.8vw, 11px);
  color: #fffdf5;
  background: linear-gradient(90deg, rgba(15, 31, 25, 0.86), rgba(15, 31, 25, 0.68));
  border-radius: 3px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
  font: 600 clamp(0.48rem, 0.67vw, 0.67rem)/1.3 var(--sans);
  text-align: left;
}

/* Contraportada situada en la mitad izquierda del spread final */
.pagina-revista.pagina-revista--contraportada {
  width: 100%;
  height: 100%;
  max-width: min(calc(100vw - 120px), 1460px);
  aspect-ratio: 1.54 / 1;
  margin-inline: auto;
  overflow: hidden;
  background: #303030;
}

.pagina-revista--contraportada::after {
  display: none;
}

.pagina-revista--contraportada .contraportada-editorial {
  display: flex;
  width: 100%;
  height: 100%;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  align-items: stretch;
  justify-content: flex-start;
}

.contraportada-editorial img {
  display: block;
  width: 50%;
  height: 100%;
  max-width: 50%;
  object-fit: cover;
  object-position: left center;
  box-shadow: none;
}

.contraportada-editorial__cierre {
  display: grid;
  min-width: 0;
  height: 100%;
  padding: clamp(18px, 3vw, 48px);
  flex: 1;
  place-items: center;
}

.contraportada-editorial__cierre .boton {
  width: min(100%, 300px);
  min-height: clamp(48px, 6vh, 62px);
  padding-inline: clamp(18px, 2.2vw, 30px);
  color: #fff7e7;
  background: linear-gradient(135deg, #9f6b22, #d0a34d 52%, #8f5e1d);
  border: 1px solid rgba(255, 244, 214, 0.72);
  box-shadow: 0 13px 34px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.24);
}

@media (max-width: 1024px) {
  .pagina-revista--momentos .momentos-portada {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 769px) {
  .portada-revista {
    padding: clamp(14px, 2.2vh, 28px) 14px;
  }

  .portada-revista__marco {
    width: min(1280px, 100%);
    grid-template-columns: minmax(320px, 650px) auto;
    gap: clamp(28px, 5vw, 72px);
  }

  .cubierta {
    width: min(62vh, 650px, 92vw);
  }

  .revista-digital {
    padding: 8px 0 12px;
  }

  .revista-digital__cabecera,
  .revista-indice {
    width: min(1540px, calc(100% - 48px));
  }

  .revista-digital__cabecera {
    margin-bottom: 4px;
  }

  .revista-indice {
    margin-bottom: 5px;
  }

  .revista-lienzo {
    width: min(calc(100vw - 120px), 1540px);
  }

  .pagina-revista:not(.pagina-revista--portadilla) {
    max-width: min(calc(100vw - 120px), 1460px);
  }

  .pagina-revista--portadilla {
    max-width: min(88vw, 720px);
  }

  .pagina-revista.pagina-revista--contraportada {
    width: auto;
    max-width: min(calc(100vw - 120px), 1460px);
    aspect-ratio: 1.54 / 1;
  }

  .flecha-revista--anterior {
    left: clamp(4px, 1.1vw, 20px);
  }

  .flecha-revista--siguiente {
    right: clamp(4px, 1.1vw, 20px);
  }

  .revista-pie {
    margin-top: 4px;
    gap: 3px;
  }
}

@media (max-width: 768px) {
  .portada-revista {
    padding-inline: 8px;
  }

  .cubierta {
    width: min(70vh, 94vw);
  }

  .revista-lienzo {
    width: calc(100% - 8px);
  }

  .pagina-revista.pagina-revista--contraportada {
    width: 100%;
    max-width: 100%;
    aspect-ratio: auto;
  }

  .pagina-revista--contraportada .contraportada-editorial {
    padding: 0;
  }

  .contraportada-editorial img {
    height: 100%;
    width: 50%;
    max-width: 50%;
  }

  .contraportada-editorial__cierre {
    padding: 8px;
  }

  .contraportada-editorial__cierre .boton {
    min-height: 42px;
    padding: 8px 10px;
    font-size: 0.56rem;
  }
}

@media print {
  @page { size: A4; margin: 12mm; }

  body {
    color: #1e3028 !important;
    background: #fff !important;
  }

  body > *:not(main),
  main > *:not(.contenido-bloqueado),
  .contenido-bloqueado > *:not(.revista-digital),
  .revista-digital__cabecera,
  .revista-indice,
  .navegacion-revista,
  .revista-pie,
  .flecha-revista,
  .cronica-acciones,
  .boton,
  .boton-enlace,
  .toast,
  .modal,
  .lluvia {
    display: none !important;
  }

  .contenido-bloqueado,
  .revista-digital {
    display: block !important;
    min-height: 0 !important;
    padding: 0 !important;
    background: #fff !important;
  }

  .revista-lienzo {
    display: block !important;
    width: 100% !important;
  }

  .revista-visor {
    display: block !important;
    min-height: 0 !important;
  }

  .pagina-revista,
  .pagina-revista[hidden] {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    min-height: 260mm !important;
    aspect-ratio: auto !important;
    margin: 0 !important;
    overflow: visible !important;
    border: 0 !important;
    box-shadow: none !important;
    break-after: page;
    page-break-after: always;
  }

  .pagina-revista:last-child {
    break-after: auto;
    page-break-after: auto;
  }

  .pagina-revista__contenido { padding: 14mm !important; }
  .pagina-revista__contenido {
    width: auto !important;
    transform: none !important;
  }
  .foto-editorial,
  .momento-portada { break-inside: avoid; }
  a[href]::after { content: " (" attr(href) ")"; font-size: 8pt; }
}
