/* ============ Design tokens ============ */
:root {
  --bg: #06080d;
  --text: #e7ecf3;
  --accent: #00e5b5;
  --accent-2: #4fa3ff;
  --mono: "Consolas", "SFMono-Regular", Menlo, Monaco, monospace;
}

* { box-sizing: border-box; }

html, body {
  margin: 0;
  height: 100%;
}

body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--mono);
  overflow: hidden;
}

::selection {
  background: var(--accent);
  color: #04120e;
}

/* ============ Background canvas ============ */
#bg-canvas {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  background: radial-gradient(ellipse at 50% 45%, #0b111b 0%, var(--bg) 68%);
}

/* ============ Stage ============ */
.stage {
  position: relative;
  z-index: 2;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}

/* ============ Wordmark ============ */
.wordmark {
  margin: 0;
  font-weight: 700;
  font-size: clamp(2.8rem, 13vw, 9rem);
  letter-spacing: -0.02em;
  /* room for descenders (g, p) so background-clip:text doesn't crop them */
  line-height: 1.25;
  padding-bottom: 0.12em;
  display: inline-flex;
  align-items: baseline;
  user-select: none;
  animation: wm-in 1s cubic-bezier(0.2, 0.8, 0.2, 1) both;
}

.wm-part {
  background: linear-gradient(120deg, #f4f7fb 0%, #cfe9e2 55%, var(--accent) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.wm-dot { color: var(--accent-2); }

.wm-tld { color: var(--accent); }

@keyframes wm-in {
  0%   { opacity: 0; transform: translateY(14px); filter: blur(6px); }
  100% { opacity: 1; transform: translateY(0);    filter: blur(0); }
}

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