html, body { min-height: 100%; margin: 0; }

body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: var(--fondo-bienvenida, #000);
  color: var(--texto-bienvenida, #fff);
}

.bienvenida-principal {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 32px;
}

.identidad-bienvenida {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  text-decoration: none;
  color: var(--texto-bienvenida, #fff);
}

.identidad-bienvenida[hidden] { display: none; }

.identidad-bienvenida img {
  display: block;
  width: min(320px, 80vw);
  height: min(153px, 38.25vw);
  object-fit: contain;
  box-shadow: none;
  filter: none;
}
.nombre-grande { font-size: clamp(28px, 5vw, 42px); font-weight: 700; }

.boton-entrar {
  margin-top: 20px;
  width: 260px;
  height: 42px;
  box-sizing: border-box;
  padding: 0 24px;
  border: 1px solid #111;
  border-radius: 999px;
  color: #111;
  background: #fff;
  text-decoration: none;
  font-weight: 700;
  line-height: 42px;
  box-shadow: none;
  transition: transform 120ms ease, box-shadow 120ms ease, background-color 120ms ease, color 120ms ease;
}

.boton-entrar:hover { background: #111; color: #fff; border-color: #111; }
.boton-entrar:active { transform: translateY(4px); box-shadow: none; }

.pie-bienvenida {
  margin-bottom: 24px;
  padding: 18px 24px;
  text-align: center;
  font-size: 13px;
  color: var(--texto-bienvenida, #fff);
}

.pie-bienvenida a {
  color: inherit;
  position: relative;
  top: -2px;
}

@media (max-width: 600px) {
  .pie-bienvenida {
    margin-bottom: calc(56px + env(safe-area-inset-bottom));
  }
}
