body.public {
  display: block;
  background-color: var(--color-bg);
}

.landing-page {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  /* min-height: 100vh; */
  text-align: center;
  padding: var(--panel-padding);
}

.landing-page .panel {
  background: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  padding: 4em;
}

.landing-page .logo {
  min-width: 50vw;
  min-height: 40ch;
  background-color: var(--primary-color);
  mask-image: url("/assets/rack_attack-d7a51141.svg");
  mask-position: center;
  mask-repeat: no-repeat;
  mask-size: contain;
  margin-bottom: 2em;
}

.neon-banner {
  --neon-color: #ff1493;
  width: 100%;
  overflow: hidden;
  padding: 0.75em 0;
}

.neon-banner-track {
  display: inline-block;
  white-space: nowrap;
  animation: neon-banner-scroll 18s linear infinite;
}

.neon-banner-text {
  font-size: 3.2em;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--neon-color);
  text-shadow:
    0 0 4px color-mix(in srgb, var(--neon-color) 50%, transparent),
    0 0 8px color-mix(in srgb, var(--neon-color) 40%, transparent),
    0 0 16px color-mix(in srgb, var(--neon-color) 30%, transparent),
    0 0 24px color-mix(in srgb, var(--neon-color) 20%, transparent);
}

@keyframes neon-banner-scroll {
  from {
    transform: translateX(100vw);
  }

  to {
    transform: translateX(-100%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .neon-banner-track {
    animation: none;
  }
}
