/* HDQ brand tokens + self-hosted fonts for the explainer compositions.
   Mirrors src/assets/css/tailwind.css @theme so the videos match the site.
   Served from the site, so font paths are absolute (/assets/fonts). */

@font-face {
  font-family: "Space Grotesk";
  font-weight: 600;
  font-display: block;
  src: url("/assets/fonts/space-grotesk-600.woff2") format("woff2");
}
@font-face {
  font-family: "Space Grotesk";
  font-weight: 700;
  font-display: block;
  src: url("/assets/fonts/space-grotesk-700.woff2") format("woff2");
}
@font-face {
  font-family: "Inter";
  font-weight: 400;
  font-display: block;
  src: url("/assets/fonts/inter-400.woff2") format("woff2");
}
@font-face {
  font-family: "Inter";
  font-weight: 500;
  font-display: block;
  src: url("/assets/fonts/inter-500.woff2") format("woff2");
}
@font-face {
  font-family: "JetBrains Mono";
  font-weight: 500;
  font-display: block;
  src: url("/assets/fonts/jetbrains-mono-500.woff2") format("woff2");
}

:root {
  --ink: #0b0f14;
  --slate: #141a22;
  --cyan: #22d3ee;
  --brand: #1e40af;
  --fg: #e6edf3;
  --muted: #8b97a3;
  --line: #233040;
  --font-display: "Space Grotesk", system-ui, sans-serif;
  --font-body: "Inter", system-ui, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, monospace;
}

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

html, body { width: 100%; height: 100%; overflow: hidden; background: var(--ink); }

/* The stage is authored at 1920x1080 and scaled to fit whatever box it sits in
   (the site's 16:9 slot, or a full render frame). */
#stage {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1920px;
  height: 1080px;
  transform: translate(-50%, -50%) scale(var(--fit, 1));
  transform-origin: center center;
  overflow: hidden;
  background: var(--ink);
  color: var(--fg);
  font-family: var(--font-body);
  -webkit-font-smoothing: antialiased;
}

#stage .ambient {
  position: absolute;
  inset: 0;
  background: radial-gradient(60% 55% at 50% 42%, color-mix(in oklab, var(--brand) 55%, transparent), transparent 70%);
  opacity: 0.35;
  pointer-events: none;
}

#stage .scene {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 0 160px;
  opacity: 0;
}

#stage .eyebrow {
  font-family: var(--font-mono);
  font-weight: 500;
  font-size: 26px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--cyan);
}

#stage .display {
  font-family: var(--font-display);
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.05;
  font-size: 92px;
  max-width: 1500px;
}

#stage .sub {
  font-family: var(--font-display);
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1.1;
  font-size: 60px;
  color: var(--muted);
  max-width: 1400px;
}

#stage .hairline {
  position: absolute;
  left: 50%;
  height: 2px;
  width: 0;
  background: var(--cyan);
  transform: translateX(-50%);
  box-shadow: 0 0 24px color-mix(in oklab, var(--cyan) 60%, transparent);
}
