:root {
  --bg: #fafaf8;
  --ink: #0a0a0a;
  --accent: #2b3cff;
}

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

html, body {
  height: 100%;
}

body {
  background-color: var(--bg);
  background-image: radial-gradient(rgba(10, 10, 10, 0.14) 1px, transparent 1px);
  background-size: 28px 28px;
  color: var(--ink);
  font-family: "Space Grotesk", "Helvetica Neue", Arial, sans-serif;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  text-align: center;
}

main {
  padding: 0 24px;
}

h1 {
  font-size: clamp(3.5rem, 15vw, 11rem);
  font-weight: 700;
  line-height: 0.9;
  letter-spacing: -0.045em;
  opacity: 0;
  transform: translateY(16px);
  animation: rise 1s cubic-bezier(0.2, 0.7, 0.2, 1) 0.3s forwards;
}

h1 span {
  color: var(--accent);
}

h1 span::after {
  content: "";
  display: inline-block;
  width: 0.09em;
  height: 0.75em;
  margin-left: 0.08em;
  background: var(--accent);
  animation: blink 1.1s steps(1) infinite;
}

@keyframes rise {
  to { opacity: 1; transform: none; }
}

@keyframes blink {
  50% { opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
  * { animation-duration: 0.01s !important; animation-delay: 0s !important; }
}
