:root {
  --bg: #05070b;
  --text: #e8ebf2;
  --muted: #7d8699;
  --accent: #5eead4;
  --mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --display: "Orbitron", var(--mono);
}

body {
  margin: 0;
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 24px;
  box-sizing: border-box;
  color: var(--text);
  font: 16px/1.6 var(--mono);
  text-align: center;
  /* soft glow behind the title */
  background:
    radial-gradient(circle at 50% 45%, rgba(94, 234, 212, 0.10), transparent 45%),
    var(--bg);
}

/* grid that is clearest in the middle and fades out towards the corners */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(rgba(94, 234, 212, 0.16) 1px, transparent 1px) 0 0 / 40px 40px,
    linear-gradient(90deg, rgba(94, 234, 212, 0.16) 1px, transparent 1px) 0 0 / 40px 40px;
  -webkit-mask-image: radial-gradient(circle at 50% 45%, #000 0, transparent 65vmax);
  mask-image: radial-gradient(circle at 50% 45%, #000 0, transparent 65vmax);
}

main { position: relative; }

h1 {
  margin: 0 0 16px;
  font-family: var(--display);
  font-weight: 700;
  font-size: clamp(2.2rem, 9vw, 4.5rem);
  letter-spacing: 0.04em;
  animation: glow 3s ease-in-out infinite;
}

p { margin: 0; }
a { color: inherit; }

/* keep the tagline on one line: the ~40 mono characters are ~24em wide, so scale to the screen */
.tagline { color: var(--muted); font-size: clamp(0.6rem, calc((100vw - 56px) / 24), 1rem); white-space: nowrap; }
.tagline.typing { max-width: 100%; margin-inline: auto; text-align: left; }
.cursor { color: var(--accent); animation: blink 1s steps(1) infinite; }
/* the cursor holds solid while typing, then blinks once the line is done */
.cursor.solid { animation: none; }

.status {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 40px;
  color: var(--accent);
  font-size: 0.8rem;
  letter-spacing: 0.25em;
  text-transform: uppercase;
}
.dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--accent);
  animation: ping 2s ease-out infinite;
}

.muted { margin-top: 24px; color: var(--muted); font-size: 0.9rem; }

@keyframes glow {
  0%, 100% { text-shadow: 0 0 8px rgba(94, 234, 212, 0.25), 0 0 24px rgba(94, 234, 212, 0.10); }
  50%      { text-shadow: 0 0 14px rgba(94, 234, 212, 0.65), 0 0 48px rgba(94, 234, 212, 0.30); }
}
@keyframes blink { 50% { opacity: 0; } }
@keyframes ping {
  0%   { box-shadow: 0 0 0 0 rgba(94, 234, 212, 0.7); }
  100% { box-shadow: 0 0 0 10px rgba(94, 234, 212, 0); }
}
