html,
body {
  height: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background: #181828;
}

body {
  position: relative;
  width: 100vw;
  height: 100vh;
  font-family: Arial, sans-serif;
  min-height: 100vh;
  min-width: 100vw;
  display: flex;
  align-items: center;
  justify-content: center;
}

.id-container {
  position: absolute;
  top: 20px;

  z-index: 10;
  color: #f3f3f3;
  text-shadow: 0 2px 8px #000a;
  background: rgba(24, 24, 40, 0.65);
  padding: 0.7em 1.2em;
  border-radius: 1.2em;
  box-shadow: 0 2px 16px #0006;
  pointer-events: auto;
}

.header-section {
  transition: max-width 0.4s cubic-bezier(.4, 1.4, .6, 1), padding 0.4s, font-size 0.4s;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  text-align: center;
  color: #f3f3f3;
  text-shadow: 4px 2px 8px #000a;

  padding: 1.5em 2em;
  background: rgba(24, 24, 40, 0.55);
  border-radius: 1.5em;
  box-shadow: 0 2px 16px #0004;
}

.header-section h1 {
  font-size: 2.5em;
  margin: 0;
  font-family: 'Montserrat', Arial, sans-serif;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-shadow: 0 4px 24px #000a, 0 1px 0 #fff8;
}

h1 {
  font-size: 3.5em;
  margin: 0;
  font-family: 'Montserrat', Arial, sans-serif;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-shadow: 0 4px 24px #000a, 0 1px 0 #fff8;
}

p {
  font-size: 1.2em;
  margin: 24px 0 0;
  color: #f3f3f3;
  text-shadow: 0 2px 8px #000a;
}

.rainbow-bg {
  
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 0;
  pointer-events: none;
  filter: blur(40px) brightness(1.2);
  transition: filter 0.3s;
  /* Initial background, will be animated by JS */
  background: radial-gradient(circle at 50% 50%, #ff0000 0%, #ff9900 20%, #ffff00 40%, #00ff00 60%, #0099ff 80%, #9900ff 100%);
  filter: blur(60px) brightness(1.25) saturate(1.2);
  transition: filter 0.3s;
  background: conic-gradient(from 0deg at 50% 50%, #ff0000, #ff9900, #ffff00, #00ff00, #0099ff, #9900ff, #ff0000 100%);
  animation: rainbow-spin 12s linear infinite;
}

@keyframes rainbow-spin {
  0% {
    filter: blur(60px) brightness(1.25) saturate(1.2);
    transform: scale(1) rotate(0deg);
  }

  50% {
    filter: blur(80px) brightness(1.35) saturate(1.4);
    transform: scale(1.05) rotate(180deg);
  }

  100% {
    filter: blur(60px) brightness(1.25) saturate(1.2);
    transform: scale(1) rotate(360deg);
  }
}


.content {
  margin: 25px;
  transition: max-width 0.4s cubic-bezier(.4, 1.4, .6, 1), padding 2.4s, font-size 0.4s;
  position: relative;
  z-index: 1;
  text-align: center;
  /* Remove margin-top for vertical centering */
  color: white;
  border-radius: 2em;
  background: rgba(255, 255, 255, 0.10);
  box-shadow: 0 8px 48px 0 #0008, 0 1.5px 0 #fff2 inset;
  backdrop-filter: blur(18px) saturate(1.5);
  border: 1.5px solid rgba(255, 255, 255, 0.18);
  text-shadow: 4px 4px 24px #000a, 2px 1px 2px #fff8;
  transition: transform 0.7s cubic-bezier(.23, 1.02, .64, 1), box-shadow 0.7s;
  animation: content-pop 8s cubic-bezier(.23, 1.02, .64, 1) infinite alternate, content-float 16s ease-in-out infinite;
}

@keyframes content-pop {
  0% {
    transform: scale(1);
    box-shadow: 0 8px 48px 0 #0008, 0 1.5px 0 #fff2 inset;
  }

  100% {
    transform: scale(1.025);
    box-shadow: 0 16px 64px 0 #000a, 0 2px 0 #fff4 inset;
  }
}

@keyframes content-float {
  0% {
    transform: translateY(30vh);
  }

  20% {
    transform: translateY(0vh);
  }

  80% {
    transform: translateY(25vh);
  }

  100% {
    transform: translateY(30vh);
  }
}

/* Responsive Design: Mobile to Tablet to Desktop */
@media (max-width: 600px) {
  .header-section {
    max-width: 98vw;
    padding: 0.7em 0.5em;
    font-size: 0.95em;
  }

  .header-section h1 {
    font-size: 1.5em;
  }

  .header-section h2,
  .header-section h3 {
    font-size: 1em;
  }

  .content {
    padding: 1.2em 0.5em;
    font-size: 0.95em;
    border-radius: 1em;
    max-width: 99vw;
  }

  h1 {
    font-size: 2em;
  }

  p {
    font-size: 1em;
  }
    @keyframes content-float {
      0% {
        transform: translateY(15vh);
      }
  
      50% {
        transform: translateY(-13vh);
      }
  
  
      100% {
        transform: translateY(15vh);
      }
    }
}

@media (min-width: 601px) and (max-width: 900px) {
  .header-section {
    max-width: 340px;
    padding: 1em 1.2em;
    font-size: 1em;
  }

  .header-section h1 {
    font-size: 2em;
  }

  .header-section h2,
  .header-section h3 {
    font-size: 1.1em;
  }

  .content {
    padding: 2em 1.2em;
    font-size: 1.05em;
    border-radius: 1.2em;
    max-width: 92vw;
  }

  h1 {
    font-size: 2.5em;
  }

  p {
    font-size: 1.1em;
  }
}

@media (min-width: 901px) {
  .header-section {
    max-width: 420px;
    padding: 1.5em 2em;
    font-size: 1.1em;
  }

  .header-section h1 {
    font-size: 2.5em;
  }

  .header-section h2,
  .header-section h3 {
    font-size: 1.2em;
  }

  .content {
    padding: 3em 2.5em;
    font-size: 1.15em;
    border-radius: 2em;
    max-width: 600px;
  }

  h1 {
    font-size: 3.5em;
  }

  p {
    font-size: 1.2em;
  }
    @keyframes content-float {
      0% {
        transform: translateY(25vh);
      }
  
      50% {
        transform: translateY(12vh);
      }
  
      100% {
        transform: translateY(25vh);
      }
    }
}