/* Bienvenida: cargada antes que todo, así no hay "pantalla en blanco" */
#bienvenida {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: none;
  place-items: center;
  background: #fbf5ee;
  color: #3b2420;
  border-radius: 0 0 50% 50% / 0 0 0 0;
}
.bienvenida #bienvenida,
.bienvenida-sale #bienvenida {
  display: grid;
}
.bienvenida-sale #bienvenida {
  animation: bv-telon 1.05s cubic-bezier(0.76, 0, 0.24, 1) forwards;
}
.bv-contenido {
  display: grid;
  justify-items: center;
  gap: 1.1rem;
}
.bv-contenido img {
  width: 6.5rem;
  height: 6.5rem;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 18px 40px -20px rgb(59 36 32 / 45%);
  animation: bv-logo 1s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.bv-linea {
  width: 7rem;
  height: 1px;
  background: #c4466f;
  transform: scaleX(0);
  animation: bv-linea 0.9s 0.45s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
.bv-frase {
  margin: 0;
  font:
    italic 1.05rem/1.2 Georgia,
    "Times New Roman",
    serif;
  letter-spacing: 0.02em;
  opacity: 0;
  animation: bv-frase 0.8s 0.75s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
.bienvenida-sale .bv-contenido {
  animation: bv-contenido-sale 0.6s cubic-bezier(0.76, 0, 0.24, 1) forwards;
}
@keyframes bv-logo {
  from {
    opacity: 0;
    transform: scale(0.7) rotate(-8deg);
  }
}
@keyframes bv-linea {
  to {
    transform: scaleX(1);
  }
}
@keyframes bv-frase {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes bv-contenido-sale {
  to {
    opacity: 0;
    transform: translateY(-24px);
  }
}
/* el telón sube con el borde inferior curvo */
@keyframes bv-telon {
  0% {
    transform: translateY(0);
    border-radius: 0 0 50% 50% / 0 0 0 0;
  }
  100% {
    transform: translateY(-110%);
    border-radius: 0 0 50% 50% / 0 0 18vh 18vh;
  }
}
/* mientras está la bienvenida, la portada espera para animarse */
.bienvenida .hero,
.bienvenida .hero * {
  animation-play-state: paused !important;
}
