body {
  overflow: hidden;
  height: 100vh;
  width: 100vw;
}

/* Main container */
.container {
  position: relative;
  z-index: 10;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100vh;
  pointer-events: none;
}

/* Logo size & stronger glow for splash */
.logo {
  font-size: clamp(3rem, 10vw, 8rem);
  text-align: center;
  filter: drop-shadow(0 0 20px currentColor) drop-shadow(0 0 60px currentColor);
}

/* Subtitle / enter link text */
.subtitle {
  margin-top: 1.5rem;
  font-size: clamp(1rem, 3vw, 1.8rem);
  color: #fff;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  animation: blink 1.4s step-end infinite, fadeIn 2s ease forwards;
  opacity: 0;
}

.enter-link {
  pointer-events: auto;
  cursor: pointer;
  text-decoration: none;
  padding: 0.45em 1.4em;
  border: 2px solid currentColor;
  border-radius: 6px;
  transition: background 0.25s;
}

.enter-link:hover {
  background: rgba(255, 255, 255, 0.12);
}

@keyframes fadeIn {
  to { opacity: 1; }
}

@keyframes blink {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0.3; }
}

.subtitle.author {
  animation: colorCycle2 4s linear infinite, blink 1.4s step-end infinite, fadeIn 2s ease forwards;
  filter: drop-shadow(0 0 8px currentColor);
}

/* Ring sizes for splash page */
.ring-wrap {
  width: clamp(320px, 60vw, 700px);
  height: clamp(320px, 60vw, 700px);
}

.ring-wrap-rev {
  width: clamp(380px, 70vw, 820px);
  height: clamp(380px, 70vw, 820px);
}

/* Flash-style burst behind the logo */
.burst {
  position: absolute;
  width: clamp(260px, 50vw, 580px);
  height: clamp(260px, 50vw, 580px);
  animation: burstPulse 2s ease-in-out infinite;
}

@keyframes burstPulse {
  0%, 100% { transform: scale(0.95) rotate(0deg);   opacity: 0.6; }
  50%       { transform: scale(1.08) rotate(15deg);  opacity: 1;   }
}

/* Domain badge colour override */
.domain {
  color: rgba(255, 255, 255, 0.55);
}
