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

:root {
  --bg: #070809;
  --bracket: #3a4248;
  --zero: #e8edf2;
  --glow: rgba(120, 200, 255, 0.35);
}

html,
body {
  height: 100%;
}

body {
  font-family: "IBM Plex Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
  background-color: var(--bg);
  color: var(--zero);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  background:
    radial-gradient(ellipse 80% 60% at 50% 45%, rgba(255, 255, 255, 0.04), transparent 70%),
    radial-gradient(circle at 50% 50%, rgba(100, 180, 255, 0.03) 0%, transparent 55%);
  pointer-events: none;
}

.hero {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100dvh;
  padding: 2rem;
}

.hero__mark {
  display: flex;
  align-items: baseline;
  font-size: clamp(4.5rem, 18vw, 11rem);
  font-weight: 500;
  letter-spacing: -0.04em;
  line-height: 1;
  animation: fade-in 1.2s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.hero__bracket {
  color: var(--bracket);
  font-weight: 400;
  transition: color 0.4s ease;
}

.hero__zero {
  color: var(--zero);
  text-shadow:
    0 0 40px var(--glow),
    0 0 80px rgba(120, 200, 255, 0.12);
  animation: pulse 4s ease-in-out infinite;
}

.hero__mark:hover .hero__bracket {
  color: #5a6670;
}

@keyframes fade-in {
  from {
    opacity: 0;
    transform: translateY(12px) scale(0.98);
  }

  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes pulse {
  0%,
  100% {
    text-shadow:
      0 0 40px var(--glow),
      0 0 80px rgba(120, 200, 255, 0.12);
  }

  50% {
    text-shadow:
      0 0 55px rgba(120, 200, 255, 0.45),
      0 0 100px rgba(120, 200, 255, 0.18);
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero__mark,
  .hero__zero {
    animation: none;
  }
}
