body.noscroll {
  overflow: hidden !important;
  height: 100vh;
  position: fixed;
  width: 100%;
}

.intro-screen {
  position: fixed;
  z-index: 2000;
  inset: 0;
  background: #000000;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.8s cubic-bezier(.4, 0, .2, 1);
  cursor: pointer;
  opacity: 1;
  will-change: opacity;
}

.intro-screen.fade-out {
  opacity: 0;
  pointer-events: none;
  will-change: auto;
}

.intro-message {
  color: rgb(255, 255, 255);
  font-size: 2.7rem;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.04em;
  text-shadow: 1px 0px 3px #ffffff;
  user-select: none;
  font-family: 'Outfit', sans-serif;
  position: relative;
  z-index: 3;
}

.intro-right,
.intro-left {
  position: fixed;
  bottom: 0;
  display: flex;
  align-items: flex-end;
  height: auto;
  max-height: 100vw;
  z-index: 2;
  object-fit: contain;
  pointer-events: none;
  user-select: none;
  transition: bottom 0.65s cubic-bezier(.4, 0, .2, 1);
}

.intro-right {
  right: 0;
}

.intro-left {
  left: 0;
}

.hidden-on-entry {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.7s cubic-bezier(.4, 0, .2, 1);
}

.fade-in {
  opacity: 1;
  pointer-events: auto;
}

.cursor {
  color: #ffffff;
  animation: fadeCur 1s infinite ease-in-out;
}

@keyframes fadeCur {
  0%   { opacity: 0; }
  50%  { opacity: 1; }
  100% { opacity: 0; }
}

@media (max-width: 1400px) {
  .intro-right,
  .intro-left {
    height: 35vw;
    bottom: 0;
    z-index: 2;
    object-fit: contain;
    pointer-events: none;
    user-select: none;
    transition: bottom 0.65s cubic-bezier(.4, 0, .2, 1);
  }
}