@import url('https://fonts.googleapis.com/css2?family=Noto+Sans:wght@100;300;500;700&display=swap');

body {
  margin: 0;
  padding: 0;
  font-family: 'Noto Sans', sans-serif;
  background-color: #000000;
  overflow-x: hidden;

  -webkit-user-select: none; /* Safari */
  -ms-user-select: none;     /* IE 10 and Edge */
  user-select: none;         /* Modern browsers */
}

/* Main Layout Container */
.container {
  position: relative;
  height: 100vh;
  width: 100vw;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* Top Layout (Heading) */
.top-content {
  position: absolute;
  top: 25%;
  transform: translateY(-50%); /* Keeps it perfectly centered on the 25% line */
  z-index: 10;
  text-align: center;
}

h1 {
  color: #ffffff;
  font-size: 80px; 
  font-weight: 500;
  letter-spacing: 2px;
  margin: 0;
  text-shadow: 0 4px 15px rgba(65, 56, 255, 0.5); /* Ties into the wave color */
}

/* Bottom Layout (Button) */
.bottom-content {
  position: absolute;
  top: 75%;
  transform: translateY(-50%); /* Keeps it perfectly centered on the 75% line */
  z-index: 10;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.btn-link {
  text-decoration: none;
}

button {
  background: #4138ff;
  border-radius: 1000px;
  box-shadow: #4138ff 0 10px 20px -10px;
  color: #FFFFFF;
  cursor: pointer;
  font-family: 'Noto Sans', sans-serif;
  font-size: 25px;
  font-weight: 700;
  padding: 16px 36px;
  border: 0;
  transition: 0.75s ease-out;
  user-select: none;
  -webkit-user-select: none;
  touch-action: manipulation;
}

button:hover {
  background: #ffffff; 
  color: #000000;
  box-shadow: #ffffff 0 10px 20px -10px;
}

/* Copy Notification Styling */
#copy-notification {
  margin-top: 15px;
  color: #ffffff;
  font-size: 16px;
  font-weight: 300;
  letter-spacing: 1px;
  opacity: 0; /* Hidden by default */
  transition: opacity 0.3s ease-in-out;
  pointer-events: none; /* Ensures the text doesn't accidentally block clicks */
}

#copy-notification.show {
  opacity: 1; /* Fades in when the class is added via JavaScript */
}

/* Symmetrical Waveform Layout */
.audio-wave-container {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 100%;
  display: flex;
  flex-direction: column;
}

/* Base wave sizing */
.waves {
  width: 100%;
  height: 20vh; 
  min-height: 125px;
  max-height: 250px;
  display: block; 
}

/* Flips the bottom SVG upside down */
.bottom-waves {
  transform: scaleY(-1);
  margin-top: -1px; 
}

/* Wave Animations (Fully Prefixed for Cross-Browser Consistency) */
.parallax > use {
  -webkit-animation: move-forever 25s cubic-bezier(.50,.5,.45,.5) infinite;
  animation: move-forever 25s cubic-bezier(.50,.5,.45,.5) infinite;
}
.parallax > use:nth-child(1) {
  -webkit-animation-delay: -2s;
  animation-delay: -2s;
  -webkit-animation-duration: 7s;
  animation-duration: 7s;
}
.parallax > use:nth-child(2) {
  -webkit-animation-delay: -3s;
  animation-delay: -3s;
  -webkit-animation-duration: 10s;
  animation-duration: 10s;
}
.parallax > use:nth-child(3) {
  -webkit-animation-delay: -4s;
  animation-delay: -4s;
  -webkit-animation-duration: 13s;
  animation-duration: 13s;
}
.parallax > use:nth-child(4) {
  -webkit-animation-delay: -5s;
  animation-delay: -5s;
  -webkit-animation-duration: 20s;
  animation-duration: 20s;
}

@-webkit-keyframes move-forever {
  0% {
   -webkit-transform: translate(-90px, 0);
   transform: translate(-90px, 0);
  }
  100% {
    -webkit-transform: translate(85px, 0);
    transform: translate(85px, 0);
  }
}

@keyframes move-forever {
  0% {
   -webkit-transform: translate(-90px, 0);
   transform: translate(-90px, 0);
  }
  100% {
    -webkit-transform: translate(85px, 0);
    transform: translate(85px, 0);
  }
}

/* Responsive Scaling for Touch Devices */
@media (any-pointer: coarse) {
  button {
    font-size: 30px;
    padding: 24px 48px;
  }
}

/* Responsive Scaling for Smaller Screens */
@media screen and (max-width: 768px) {
  h1 {
    font-size: 40px;
  }
}
