:root {
  --color-primary: #1e4667;
  --color-secondary: #6fa9b9;
}

html, body {
  min-height: 100vh;
}

body {
  font-family: 'Montserrat';
  font-weight: 400;
  font-size: clamp(12px, 4vw, 20px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  margin: 0;
  overflow: hidden;
  background-color: #000;
}

body >* {
  display: block;
}

[class*=sound-] {
  display: none;
}

.image {
  width: 100vw;
  height: auto;
}

#image-1 {
  position: relative;
  z-index: 1;
}

#image-2 {
  position: absolute;
  z-index: 2;
  opacity: 0;
  animation: imagefade 3s linear infinite alternate;
}

#start {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  position: fixed;
  inset: -10px;
  background-color: #000;
  z-index: 10;
  transition: all 0.5s ease-in-out 1s;
}

#start::before {
  content: 'lading...';
  color: #fff;
  position: relative;
  z-index: 2;
}


#button {
  color: #000;
  font-size: clamp(24px, 3vw, 80px);
  font-weight: 900;
  text-align: center;
  text-decoration: none;
  position: absolute;
  left: 50%;
  top: 50%;
  translate: -50% -50%;
  z-index: 3;
}

#button span {
  display: block;
}
#button span.big {
  font-size: 2em;
}

#button .button-inner {
  padding: 1.5em;
  width: 70vw;
  height: 70vw;
  max-width: 300px;
  max-height: 300px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background-color: #fff;
  border-radius: 9999px;
  transition: all .3s ease-in-out 0s;
  scale: 0;
}

#loader {
  position: absolute;
  left: 50%;
  top: 50%;
  translate: -50% -50%;
  width: 70vw;
  height: 70vw;
  max-width: 300px;
  max-height: 300px;
  border-radius: 50%;
  background-color: inherit;
  background-image: conic-gradient(#3dffc9, #f7c723, #eb0ea5, #3dffc9);
  animation: spin 1.4s linear infinite;
  box-shadow:  0px 0px 150px -75px black;
  transition: all 0.3s ease-in 0s;
  z-index: 1;
  /* border: 4px solid white; */
}
#loader::before {
  content: "";
  background-color: inherit;
  position: absolute;
  width: 80%;
  height: 80%;
  border-radius: 50%;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  box-shadow: inset 0px 0px 110px -70px black;
  /* border: 4px solid white; */
}

.confetti {
  position: fixed;
  inset: 0;
  display: block;
  margin: 0 auto;
  border: none;
  user-select: none;
  z-index: -1;
}

body.loaded #loader {
  opacity: 0;
  scale: 0;
}
body.loaded #button {
  animation: pulse 3s linear infinite;
}
body.loaded #button .button-inner {
  scale: 1;
}
body.loaded #button .button-inner:hover {
  scale: 1.4;
  rotate: -10deg;
}
body.loaded #start::before {
  display: none;
}


body.party {
  overflow: initial;
}
body.party .confetti {
  z-index: 20;
}
body.party #start {
  opacity: 0;
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

@keyframes pulse {
  0% {
    scale: 1;
  }
  2% {
    scale: 1.1;
  }
  5% {
    scale: 1;
  }
  7% {
    scale: 1.4;
  }
  20% {
    scale: 1;
  }
}

@keyframes imagefade {
  0% {
    opacity: 0;
  }
  30% {
    opacity: 0;
  }
  31% {
    opacity: 1;
  }
  32% {
    opacity: 0;
  }
  33% {
    opacity: 1;
  }
  34% {
    opacity: 0;
  }
  35% {
    opacity: 1;
  }
  36% {
    opacity: 0;
  }
  50% {
    opacity: 0;
  }
  51% {
    opacity: 1;
  }
  52% {
    opacity: 0;
  }
  53% {
    opacity: 1;
  }
  54% {
    opacity: 0;
  }
  60% {
    opacity: 0;
  }
  61% {
    opacity: 1;
  }
  62% {
    opacity: 0;
  }
  63% {
    opacity: 1;
  }
  64% {
    opacity: 0;
  }
  65% {
    opacity: 1;
  }
  66% {
    opacity: 0;
  }
  70% {
    opacity: 1;
  }
  100% {
    opacity: 1;
  }
}
