/* Portada nueva (elegida por Laura el 22/10/2026, diseño B): fondo crema limpio con algo de confeti,
   Luxi grande saludando y una tarjeta con «¡Hola, nombre!» y «¡A jugar!». Va la última para mandar sobre premium.css y plano.css. */

:root { --crema: #FFF6E8; --naranja-lumi: #F08A2C; --naranja-osc: #C9601A; --azul-lumi: #2F6FD6; --azul-osc: #1F4E9C; }

/* Fondo de la portada y de las pantallas de cuenta (entrar, registro, alta…) */
.pantalla.portada, #app.con-fondo-portada, body.dibujos-3d #app.con-fondo-portada { background: var(--crema); }
.portada-fondo, .portada-fondo svg.confeti { position: absolute; inset: 0; width: 100%; height: 100%; animation: none; background: none; }
#app.con-fondo-portada .tarjeta { background: #fff; backdrop-filter: none; box-shadow: 0 18px 40px rgba(138, 90, 43, .16); border-radius: 28px; }

/* Luxi grande, saludando, sobre un círculo melocotón */
.portada-lumi-zona { position: absolute; left: 2%; bottom: 0; width: min(46vw, 560px); aspect-ratio: 1; }
.portada-lumi-zona::before { content: ''; position: absolute; inset: 8% 0 -14% 0; border-radius: 50%; background: #FFD9A8; }
.portada-lumi-zona img { position: absolute; left: 50%; bottom: 4%; height: 92%; transform: translateX(-50%); filter: drop-shadow(0 14px 18px rgba(0, 0, 0, .16)); animation: flotar 3s ease-in-out infinite; }

/* Nombre de la app: «Luxi» en naranja y el resto en azul */
.portada .portada-titulo { position: absolute; top: max(4%, env(safe-area-inset-top)); left: 3%; right: auto; width: min(48vw, 600px); text-align: center;
  font-size: clamp(40px, 6.4vw, 82px); color: var(--azul-lumi); text-shadow: 0 5px 0 var(--azul-osc); letter-spacing: 0; line-height: 1.05; }
.portada-titulo .t1 { color: var(--naranja-lumi); text-shadow: 0 5px 0 var(--naranja-osc); }
.portada-lema { position: absolute; top: calc(max(4%, env(safe-area-inset-top)) + clamp(48px, 7.4vw, 96px)); left: 3%; width: min(48vw, 600px); margin: 0;
  text-align: center; font-weight: 800; font-size: clamp(15px, 1.8vw, 22px); color: #8A5A2B; }

/* Tarjeta a la derecha */
.portada .portada-contenido { position: absolute; z-index: 2; inset: 0; background: none; padding: 0; display: block; }
.portada-tarjeta { position: absolute; right: 6%; top: 50%; transform: translateY(-50%); width: min(430px, 42vw); background: #fff; border-radius: 30px;
  padding: 28px 30px 24px; text-align: center; box-shadow: 0 18px 40px rgba(138, 90, 43, .16); display: flex; flex-direction: column; gap: 12px; align-items: center; }
.portada-saludo { margin: 0; font-family: var(--letra-titulo); font-size: clamp(32px, 4vw, 48px); color: #2B2B2B; line-height: 1.1; }
.portada .portada-hola { color: #6B5A48; text-shadow: none; font-size: 18px; font-weight: 700; }
.portada .btn-jugar { width: 100%; background: #3BB273; box-shadow: 0 7px 0 #24834F, 0 12px 22px rgba(36, 131, 79, .25); border-radius: 999px; }
.portada .portada-botones { width: 100%; justify-content: space-between; gap: 8px; margin-top: 4px; }
.portada .btn-redondo { flex: 1; min-width: 0; background: var(--crema); box-shadow: none; border-radius: 18px; color: #8A5A2B; font-size: 13px; padding: 8px 4px 6px; }
.portada .btn-redondo:active { transform: translateY(2px); }
.icono-portada { width: 40px; height: 40px; display: block; }

/* «▶ Ver la historia de Luxi»: miniatura del vídeo de presentación */
.portada-video { display: flex; align-items: center; gap: 10px; width: 100%; border: 0; border-radius: 16px; background: var(--crema); padding: 6px 10px 6px 6px;
  font: 800 15px var(--letra); color: #8A5A2B; cursor: pointer; }
.portada-video img { width: 72px; height: 40px; object-fit: cover; border-radius: 10px; }
/* Reproductor a pantalla completa, con «Saltar» */
.video-lumi { position: fixed; inset: 0; z-index: 50; background: #000; display: flex; align-items: center; justify-content: center; }
.video-lumi video { width: 100%; height: 100%; object-fit: contain; }
.video-lumi .video-saltar { position: absolute; top: max(14px, env(safe-area-inset-top)); right: 14px; width: auto; min-height: 44px; padding: 6px 16px; opacity: .85; }

/* Móvil o tablet en vertical: nombre arriba, Luxi en medio y la tarjeta abajo */
@media (orientation: portrait), (max-width: 760px) {
  .portada .portada-titulo { left: 0; right: 0; width: 100%; font-size: clamp(34px, 10vw, 72px); }
  .portada-lema { left: 0; width: 100%; top: calc(max(4%, env(safe-area-inset-top)) + clamp(48px, 13vw, 84px)); }
  .portada-lumi-zona { left: 50%; transform: translateX(-50%); bottom: auto; top: 16%; width: min(70vw, 420px); }
  .portada-tarjeta { left: 16px; right: 16px; top: auto; bottom: max(16px, env(safe-area-inset-bottom)); transform: none; width: auto; max-width: 430px; margin: 0 auto; padding: 20px 18px 16px; }
  .portada-lumi-zona { left: 0; right: 0; margin: 0 auto; transform: none; }
}
@media (orientation: landscape) and (max-height: 520px) { .portada-lumi-zona { width: 34vw; } .portada-lema { display: none; } }

/* Entrar (padres): Luxi saludando a la izquierda en pantallas anchas */
[data-p="entrar"] .lumi-portada { width: 150px; margin: -90px auto 0; }
@media (min-width: 900px) and (orientation: landscape) {
  /* Luxi y su círculo van de fondo de la pantalla (la tarjeta tiene animación y no deja sacar la imagen fuera) */
  [data-p="entrar"] { justify-content: flex-end; padding-right: 7%;
    background: url('../img/estilos/3d/lumi-saluda.png') left 10% bottom 3vh / auto 70vh no-repeat,
                radial-gradient(circle at 24% 92%, #FFD9A8 0 23vw, transparent calc(23vw + 1px)); }
  [data-p="entrar"] .lumi-portada { display: none; }
}
.portada-tarjeta, .portada-tarjeta * { box-sizing: border-box; }

/* Tarjetas más altas que la pantalla (bienvenida, alta…): que empiecen arriba y se pueda bajar, sin cortar a Luxi */
.pantalla:not(.portada) { align-items: safe center; }
[data-p="bienvenida"] { padding-top: 100px; }

/* Respuestas: el texto siempre dentro de la casilla (si una palabra no cabe, la letra baja y, como último recurso, se parte) */
.av-opcion { min-width: 0; overflow-wrap: break-word; hyphens: auto; }

/* Bloques de base 10 con centenas (sumas de 3 cifras): más pequeños y 5 placas por fila, para que quepan en el recuadro del dibujo */
.av-dibujo .b10:has(.b10-c) { --u: clamp(4px, .75vh, 7px); }
.av-dibujo .b10:has(.b10-c) .b10-g { max-width: calc(var(--u) * 56); }

/* Aviso breve encima de cualquier pantalla (avisoBreve en app.js) */
.aviso-breve { position: fixed; z-index: 60; left: 50%; top: max(16px, env(safe-area-inset-top)); transform: translateX(-50%); width: min(560px, calc(100% - 32px));
  background: #fff; color: #4A3B2C; border-radius: 18px; padding: 14px 18px; font-weight: 700; box-shadow: 0 12px 30px rgba(0, 0, 0, .18); cursor: pointer; }

/* Darse de baja (zona de padres) */
.suscripcion-caja { display: grid; gap: 10px; margin-bottom: 18px; }
.suscripcion-caja .btn { width: 100%; }
.baja-enlace {display: block; margin: 18px auto 4px; color: #8A7A6A; font-size: 14px; text-decoration: underline; background: none; border: 0; cursor: pointer; }
.baja-caja { text-align: center; }
.baja-lumi { width: 110px; height: auto; display: block; margin: 0 auto 4px; filter: grayscale(.15) drop-shadow(0 8px 10px rgba(0,0,0,.12)); }
.baja-titulo { margin: 4px 0 6px; font-size: clamp(22px, 3vw, 28px); }
.baja-texto { margin: 0 0 14px; color: #6B5A48; font-weight: 600; }
.baja-opciones { display: grid; gap: 8px; text-align: left; max-width: 560px; margin: 0 auto 12px; }
.baja-opciones label { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-radius: 14px; background: var(--crema); font-weight: 700; cursor: pointer; }
.baja-opciones input { width: 22px; height: 22px; flex: none; accent-color: var(--naranja-lumi); }
.baja-opciones label:has(input:checked) { background: #FFE2BF; }
.baja-comentario { display: block; width: 100%; max-width: 560px; margin: 0 auto 14px; box-sizing: border-box; resize: vertical; }
.baja-botones { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; margin-bottom: 8px; }
