.loading-screen {
  position: fixed;
  inset: 0;
  background-color: var(--marino);
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.6s ease-out, visibility 0.6s ease-out;
}

.loading-screen.is-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.loading-logo {
  position: relative;
  width: min(520px, 64vw);
  aspect-ratio: 1200 / 933;
}

@media (max-width: 480px) {
  .loading-logo {
    width: min(520px, 78vw);
  }
  .loading-bar {
    width: min(420px, 72vw);
  }
}

.loading-logo__half {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  opacity: 0;
  will-change: transform, opacity;
}

.loading-logo__half--left {
  transform: translate(-110vw, -110vh) rotate(-12deg);
  transition:
    transform 1.6s cubic-bezier(0.22, 1, 0.36, 1),
    opacity 0.4s ease-out 0.1s;
}

.loading-logo__half--right {
  transform: translate(110vw, -110vh) rotate(12deg);
  transition:
    transform 1.6s cubic-bezier(0.22, 1, 0.36, 1),
    opacity 0.4s ease-out 0.1s;
}

.loading-screen.is-animating .loading-logo__half {
  opacity: 1;
  transform: translate(0, 0) rotate(0);
}

.loading-bar {
  position: absolute;
  bottom: 12%;
  left: 50%;
  transform: translateX(-50%);
  width: min(420px, 60vw);
  height: 6px;
  background-color: rgba(240, 250, 250, 0.12);
  border-radius: 999px;
  overflow: hidden;
}

.loading-bar__fill {
  height: 100%;
  width: 0%;
  background: linear-gradient(
    90deg,
    var(--celeste-teal),
    var(--azul-medio),
    var(--blanco-glaciar)
  );
  border-radius: 999px;
  transition: width 2.2s ease-out;
}

.loading-screen.is-animating .loading-bar__fill {
  width: 100%;
}

.loading-label {
  position: absolute;
  bottom: calc(12% - 28px);
  left: 50%;
  transform: translateX(-50%);
  font-size: 0.78rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: rgba(240, 250, 250, 0.55);
}
