body.is-loading {
  overflow: hidden;
}

#loader {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background-color: #143020;
  color: #F5F1E8;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 9999;
  opacity: 1;
  visibility: visible;
  transition: opacity 0.6s cubic-bezier(0.7, 0, 0.84, 0),
              visibility 0.6s cubic-bezier(0.7, 0, 0.84, 0);
}

#loader.is-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.text-container {
  font-family: 'Inter', -apple-system, sans-serif;
  font-size: clamp(2rem, 5vw, 3rem);
  font-weight: 700;
  letter-spacing: 2px;
  display: flex;
  align-items: center;
  gap: 0;
  opacity: 1;
  color: #F5F1E8;
  transition: opacity 0.4s ease-out, gap 0.8s cubic-bezier(0.25, 1, 0.5, 1);
  position: absolute;
}

#loader:not(.loader--page) .text-container {
  gap: clamp(14px, 2.5vw, 32px);
}

#loader:not(.loader--page).collapsed .text-container {
  gap: 0;
}

.loader-word {
  display: inline-flex;
  white-space: nowrap;
}

.fade {
  display: inline-block;
  max-width: 200px;
  opacity: 1;
  color: #F5F1E8;
  transition: all 0.8s cubic-bezier(0.25, 1, 0.5, 1);
  white-space: nowrap;
}

.keep {
  text-transform: uppercase;
  color: #F5F1E8;
}

#loader.collapsed .fade {
  opacity: 0;
  max-width: 0;
  margin-right: 0;
}


#loader.text-gone .text-container {
  opacity: 0;
}

#loader.fade-out {
  opacity: 0;
  visibility: hidden;
}

#loader.loader--fast .fade {
  transition-duration: 0.35s;
}

#loader.loader--fast .text-container {
  transition-duration: 0.2s;
}

#loader.loader--fast.fade-out {
  transition-duration: 0.35s;
}

@media (prefers-reduced-motion: reduce) {
  #loader {
    display: none !important;
  }
}
