:root {
  --bg: #0b0c0e;
  --fg: #e8eaed;
  --muted: #8b919a;
  --accent: #5c8f9a;
  --accent-soft: rgba(92, 143, 154, 0.22);
  --font: "DM Sans", system-ui, -apple-system, sans-serif;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  height: 100%;
}

body {
  margin: 0;
  min-height: 100%;
  font-family: var(--font);
  font-optical-sizing: auto;
  color: var(--fg);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
}

.bg {
  position: fixed;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse 80% 55% at 50% -10%, var(--accent-soft), transparent 55%),
    radial-gradient(ellipse 60% 40% at 100% 100%, rgba(92, 143, 154, 0.08), transparent 50%),
    linear-gradient(180deg, #0b0c0e 0%, #07080a 100%);
}

.shell {
  position: relative;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: clamp(1.5rem, 5vw, 3rem);
}

.logo {
  margin: 0;
  font-size: clamp(2.75rem, 10vw, 4.25rem);
  font-weight: 500;
  letter-spacing: -0.04em;
  line-height: 1;
}

.tagline {
  margin: 1.25rem 0 0;
  max-width: 22rem;
  font-size: clamp(1rem, 2.8vw, 1.125rem);
  font-weight: 400;
  line-height: 1.55;
  color: var(--muted);
}

.soon {
  margin: 2.5rem 0 0;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--accent);
}

.soon__dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--accent);
  animation: pulse 2.4s ease-in-out infinite;
}

@keyframes pulse {
  0%,
  100% {
    opacity: 0.35;
    transform: scale(0.9);
  }
  50% {
    opacity: 1;
    transform: scale(1);
  }
}

@media (prefers-reduced-motion: reduce) {
  .soon__dot {
    animation: none;
    opacity: 1;
  }
}
