.splash-screen {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #ffffff;
  z-index: 999999;
  pointer-events: none;
  opacity: 1;
  visibility: visible;

  background-repeat: no-repeat;
  background-position: center;
  background-size: 70px;

  .spinner {
    width: 150px;
    height: 150px;
    display: grid;
    border: 5px solid #0000;
    border-radius: 50%;
    border-right-color: #185696;
    animation: spinner-frame 1s infinite linear;
  }

  .spinner::before,
  .spinner::after {
    content: "";
    grid-area: 1/1;
    margin: 2.5px;
    border: inherit;
    border-radius: 50%;
    border-right-color: #3c82cc;
    animation: spinner-frame 2s infinite;
  }

  .spinner::after {
    margin: 10px;
    animation-duration: 3s;
    border-right-color: #9db7e1;
  }

  @keyframes spinner-frame {
    100% {
      transform: rotate(1turn);
    }
  }

  #text-loader {
    margin-top: 5px;
    display: inline-block;
    font-size: 16px;
    color: #1e4c67;
  }
}

body:not(.splash-screen-hidden) {
  overflow: hidden;
  font-size: 18px;
}

body.splash-screen-hidden .splash-screen {
  visibility: hidden;
  opacity: 0;
}
