/* Demostración del hero · pantalla de cierre: marca, eslogan y llamada a la acción.
   Cada elemento (.ot-N) tiene su propio @keyframes otN generado en src/ShowcaseTimeline.php.
   Las unidades cqw se miden contra el ancho de la pantalla (.frame). */
.scene--outro { animation-name: sceneOutro; }

.outro {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  text-align: center;
  padding: 4cqw;
  overflow: hidden;
  pointer-events: none;
  background: radial-gradient(120% 140% at 85% 0%, #1f3f8f 0%, #0e1634 46%, #08111f 100%);
}
.outro::before {
  content: "";
  position: absolute;
  inset: -20%;
  background:
    radial-gradient(closest-side, rgba(60, 207, 189, 0.34), transparent 70%) 92% 8% / 50% 50% no-repeat,
    radial-gradient(closest-side, rgba(111, 149, 255, 0.36), transparent 70%) 6% 100% / 55% 55% no-repeat;
}
.outro::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255, 255, 255, 0.08) 1px, transparent 1.5px);
  background-size: 2.2cqw 2.2cqw;
}
.outro-inner { position: relative; z-index: 1; display: grid; justify-items: center; gap: 1.7cqw; max-width: 82%; }

.outro-logo { height: 13cqw; width: auto; }

.outro-title { margin: 0; color: #fff; font-weight: 800; line-height: 1.12; letter-spacing: -0.02em; font-size: 4.4cqw; }
/* Resaltador, igual que el del título del hero */
.outro-title mark {
  color: #0f172a;
  background-color: transparent;
  background-image: linear-gradient(103deg, rgba(255, 224, 70, 0) 0%, rgba(255, 224, 70, 0.96) 3%, rgba(255, 207, 40, 0.92) 48%, rgba(255, 224, 70, 0.96) 97%, rgba(255, 224, 70, 0) 100%);
  background-repeat: no-repeat;
  background-position: 0 90%;
  background-size: 100% 82%;
  padding: 0 0.16em;
  border-radius: 0.3em 0.5em 0.35em 0.55em / 0.6em 0.4em 0.55em 0.4em;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}
.outro-sub { margin: 0; color: #c3d0ee; font-weight: 600; font-size: 2.3cqw; }

/* Significado de las siglas, pequeño y pegado al logo, con cada inicial resaltada */
.outro-slogan {
  margin: -0.9cqw 0 0;
  color: #9db0d6;
  font-weight: 600;
  font-size: 1.45cqw;
  letter-spacing: 0.02em;
}
.outro-slogan mark { background: none; border-radius: 0; padding: 0; color: #3ccfbd; font-weight: 800; }

/* Botón: único elemento clicable de la escena (el resto ignora el cursor) */
.outro-cta {
  position: relative;
  pointer-events: auto;
  display: inline-flex;
  align-items: center;
  gap: 1cqw;
  margin-top: 0.8cqw;
  padding: 1.35cqw 3.4cqw;
  border-radius: 999px;
  background: linear-gradient(135deg, #2557d6, #3ccfbd);
  color: #fff;
  font-size: 2.5cqw;
  font-weight: 800;
  text-decoration: none;
  box-shadow: 0 1.4cqw 3.4cqw rgba(37, 87, 214, 0.55);
  transition: transform 0.15s;
}
.outro-cta span { display: inline-block; transition: transform 0.15s; }
.outro-cta:hover { transform: translateY(-0.3cqw); }
.outro-cta:hover span { transform: translateX(0.5cqw); }
.outro-cta:focus-visible { outline: 3px solid #fff; outline-offset: 4px; }
/* Anillo que late alrededor del botón, para llamar la atención */
.outro-cta::after {
  content: "";
  position: absolute;
  inset: -0.7cqw;
  border-radius: inherit;
  border: 2px solid rgba(60, 207, 189, 0.75);
  animation: outro-ring 2.2s ease-out infinite;
}
@keyframes outro-ring { 0% { transform: scale(0.96); opacity: 0.9; } 100% { transform: scale(1.12); opacity: 0; } }

.ot { opacity: 0; animation-duration: var(--loop); animation-iteration-count: infinite; animation-timing-function: cubic-bezier(0.2, 0.8, 0.2, 1); }
.ot-0 { animation-name: ot0; } .ot-1 { animation-name: ot1; } .ot-2 { animation-name: ot2; } .ot-3 { animation-name: ot3; } .ot-4 { animation-name: ot4; }
/* El botón solo se puede pulsar (y enfocar con teclado) cuando ya se ve */
.outro-cta.ot-4 { animation-name: ot4, outroLink; }

/* Elementos que, aunque estén transparentes, interceptarían el clic del botón: no reciben cursor */
.casecard, .switch, .intro, .step, .popup { pointer-events: none; }

@media (prefers-reduced-motion: reduce) {
  .scene--outro { display: none; }
}
