/* Stardust Engine · the door of the digital edition (/edicion/). */
.entrada-pagina { min-height: 100svh; display: flex; flex-direction: column; }
.entrada-pagina main { flex: 1; display: flex; }
.entrada-pagina .pie { padding: 22px 0 calc(22px + env(safe-area-inset-bottom, 0px)); }
.entrada-pagina .pie-final { margin-top: 0; padding-top: 0; border-top: 0; }

.puerta { position: relative; flex: 1; display: flex; align-items: center; overflow: hidden; isolation: isolate; padding-block: clamp(40px, 7vw, 90px); }
.puerta-fondo { position: absolute; inset: 0; z-index: -3; }
.puerta-fondo img { width: 100%; height: 100%; object-fit: cover; filter: brightness(.32) saturate(.8) blur(2px); transform: scale(1.06); }
.puerta::before { content: ""; position: absolute; inset: 0; z-index: -2; background:
  radial-gradient(ellipse 55% 65% at 72% 50%, rgba(214, 178, 110, .1), transparent 70%),
  linear-gradient(90deg, rgba(5, 5, 6, .92) 0%, rgba(5, 5, 6, .55) 55%, rgba(5, 5, 6, .8) 100%); }
.puerta-anillo { position: absolute; z-index: -1; right: -12vw; top: 50%; width: min(72vw, 900px); aspect-ratio: 1; translate: 0 -50%; opacity: .16; pointer-events: none; }
.puerta-anillo img { width: 100%; height: 100%; animation: gira 300s linear infinite; }

.puerta-grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(36px, 7vw, 100px); align-items: center; }
.puerta h1 { font-size: clamp(2.6rem, 6.6vw, 5.8rem); font-weight: 200; letter-spacing: .12em; text-transform: uppercase; line-height: 1;
  background: linear-gradient(180deg, #fff6e4 0%, var(--oro-claro) 45%, var(--oro) 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.puerta-lema { margin: 22px 0 0; font: 300 clamp(1.1rem, 1.8vw, 1.3rem)/1.55 var(--serif); color: var(--tinta); max-width: 46ch; }
.incluye { list-style: none; margin: 34px 0 0; padding: 0; display: grid; gap: 0; border-top: 1px solid var(--linea); max-width: 520px; }
.incluye li { display: grid; grid-template-columns: 4.2em minmax(0, 1fr); gap: 14px; align-items: baseline; padding: 13px 0; border-bottom: 1px solid var(--linea); color: var(--tinta-2); font-size: 1rem; }
.incluye b { font: 400 .78rem/1 var(--mono); letter-spacing: .12em; color: var(--cian); }

.puerta-caja { position: relative; }
.canje { background: rgba(12, 12, 15, .82); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border: 1px solid var(--linea); padding: clamp(24px, 4vw, 42px); display: flex; flex-direction: column; gap: 14px;
  box-shadow: 0 40px 100px -30px rgba(0, 0, 0, .9); position: relative; }
.canje::before { content: ""; position: absolute; left: -1px; right: -1px; top: -1px; height: 2px; background: linear-gradient(90deg, transparent, var(--oro), var(--cian), transparent); }
.canje label { font-size: .7rem; letter-spacing: .26em; text-transform: uppercase; color: var(--oro); }
.canje input { width: 100%; min-height: 62px; padding: 0 18px; background: var(--negro); border: 1px solid rgba(233, 228, 216, .25); color: var(--tinta);
  font: 400 clamp(1.05rem, 3.6vw, 1.45rem)/1 var(--mono); letter-spacing: .14em; text-transform: uppercase; caret-color: var(--cian); transition: border-color .25s, box-shadow .25s; }
.canje input::placeholder { color: var(--tinta-3); opacity: .7; }
.canje input:focus { outline: none; border-color: var(--cian); box-shadow: 0 0 0 3px rgba(127, 227, 234, .15); }
.canje input[aria-invalid="true"] { border-color: #d98a7a; }
.canje .ayuda { margin: 0; font-size: .92rem; color: var(--tinta-3); }
.canje .boton { justify-content: center; margin-top: 6px; width: 100%; }
.canje .boton[disabled] { opacity: .6; cursor: progress; }
.canje.cargando .boton::after { content: ""; width: 14px; height: 14px; border: 1px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: gira .8s linear infinite; }
.mensaje { margin: 0; min-height: 1.4em; font-size: .98rem; color: #e8a596; }
.mensaje.bien { color: var(--cian); }
.aviso-entrar { margin: 0 0 4px; padding: 12px 14px; border-left: 2px solid var(--cian); background: rgba(127, 227, 234, .06); font-size: .95rem; color: var(--tinta); }
.ya { margin: 2px 0 0; font-size: .9rem; }
.ya a, .sin-codigo a { color: var(--tinta-2); text-decoration: none; border-bottom: 1px solid var(--linea); padding-bottom: 2px; }
.ya a:hover, .sin-codigo a:hover { color: var(--oro); border-color: var(--oro); }
.sin-codigo { margin-top: 22px; padding: 0 4px; color: var(--tinta-2); font-size: .95rem; }
.sin-codigo p { margin: 0 0 8px; }
.sin-codigo a { font: 400 .7rem/1 var(--mono); letter-spacing: .18em; text-transform: uppercase; color: var(--oro); }
.galleta { margin: 18px 4px 0; line-height: 1.6; }
.canje.abierto { border-color: rgba(127, 227, 234, .5); }
.canje.abierto::before { background: var(--cian); }
.agita { animation: agita .4s; }
@keyframes agita { 20%, 60% { transform: translateX(-6px); } 40%, 80% { transform: translateX(6px); } }

@media (max-width: 860px) {
  .puerta-grid { grid-template-columns: minmax(0, 1fr); }
  .puerta-grid { gap: 0; }
  .puerta-texto { display: contents; }
  .puerta-texto .etiqueta { order: 0; }
  .puerta h1 { order: 1; }
  .puerta-lema { order: 2; margin-bottom: 28px; font-size: 1.05rem; }
  .puerta-caja { order: 3; }
  .incluye { order: 4; margin-top: 40px; }
  .puerta-anillo { right: -40vw; top: 18%; width: 120vw; }
  .puerta { align-items: flex-start; }
}
@media (max-width: 560px) {
  .puerta h1 { font-size: 10.6vw; letter-spacing: .07em; }
  .puerta-texto .etiqueta { margin-top: 10px; }
}
@media (prefers-reduced-motion: reduce) { .agita { animation: none; } }
