:root {
  --join-dark: #2A3647;
}

html {
  scrollbar-gutter: stable;
  overflow-y: scroll;
}

html,
body {
  margin: 0;
  padding: 0;
  width: 100%;
  height: 100%;
  background: #ffffff;
}

body {
  overflow: hidden;
}

.splash-fade {
  position: fixed;
  inset: 0;
  background: #ffffff;
  opacity: 1;
  transition: opacity 0.8s ease-in-out;
  z-index: 0;
}

.splash-fade.fade-out {
  opacity: 0;
}

.app-logo {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 220px;
  height: auto;
  z-index: 1;
  opacity: 1;
  transition:
    top 0.8s ease-in-out,
    left 0.8s ease-in-out,
    transform 0.8s ease-in-out,
    width 0.8s ease-in-out;
  user-select: none;
  -webkit-user-drag: none;
}

.app-logo.fade-out {
  opacity: 0;
}

.app-logo.to-login-position {
  top: 100px;
  left: calc((100vw - min(90vw, 1440px)) / 2 + 77px);
  transform: none;
  width: 101px;
}

@media (max-width: 1360px) {
  .app-logo.to-login-position {
    top: 100px;
    left: calc((100vw - min(90vw, 1440px)) / 2 + 150px);
    width: 101px;
  }
}

@media (max-width: 1024px) {
  .app-logo.to-login-position {
    top: 100px;
    left: calc((100vw - min(90vw, 1440px)) / 2 + 50px);
    width: 101px;
  }
}

@media (max-width: 680px) {
  .app-logo.to-login-position {
    top: 52px;
    left: calc((100vw - min(90vw, 1440px)) / 2 + 24px);
    transform: none;
    width: 80px;
  }
}

@media (max-width: 480px) {
  html,
  body {
    background: var(--join-dark);
  }

  .splash-fade {
    background: var(--join-dark);
  }

  .app-logo {
    content: url(assets/icons/join_white.svg);
    width: clamp(140px, 35vw, 240px);
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
  }

  .app-logo.to-login-position {
    top: 52px;
    left: calc((100vw - min(90vw, 1440px)) / 2 + 24px);
    transform: none;
    width: 65px;
  }
}

@media (max-width: 320px) {
  .app-logo.to-login-position {
    top: 40px;
    left: calc((100vw - min(90vw, 1440px)) / 2 + 16px);
    transform: none;
    width: 50px;
  }
}