/* team.blue — base styles. Tokens come from tokens.css (generated from tokens.json);
   this sheet holds what tokens.json cannot: the dark mesh gradient, motion, and the
   semantic type and emphasis rules. Load it after tokens.css. */

:root {
  --grad-mesh-dark: radial-gradient(80% 60% at 20% 30%, rgba(53,43,255,0.55) 0%, transparent 60%),
                    radial-gradient(60% 80% at 80% 70%, rgba(20,71,220,0.45) 0%, transparent 60%),
                    radial-gradient(50% 50% at 60% 20%, rgba(18,198,255,0.30) 0%, transparent 60%),
                    #181431;

  /* ---- MOTION (see the Motion section) ---- */
  --ease-out:    cubic-bezier(.2,.8,.2,1);
  --ease-spring: cubic-bezier(.2,1.2,.2,1);
  --dur-fast:    140ms;
  --dur-mid:     220ms;
  --dur-slow:    420ms;
}

/* ---------- SEMANTIC TYPE -------------------------------- */

html, body {
  font-family: var(--font-text);
  color: var(--fg);
  background: var(--bg);
  font-size: 16px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.h-display, h1.h-display {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(var(--fs-48), 6vw, var(--fs-96));
  line-height: 1.02;
  letter-spacing: -0.02em;
}

h1, .h1 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-56);
  line-height: 1.05;
  letter-spacing: -0.02em;
  margin: 0 0 var(--sp-4) 0;
}
h2, .h2 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-40);
  line-height: 1.1;
  letter-spacing: -0.015em;
  margin: 0 0 var(--sp-3) 0;
}
h3, .h3 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-28);
  line-height: 1.2;
  letter-spacing: -0.01em;
  margin: 0 0 var(--sp-3) 0;
}
h4, .h4 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-20);
  line-height: 1.3;
  margin: 0 0 var(--sp-2) 0;
}

p, .p {
  font-size: var(--fs-16);
  line-height: 1.55;
  color: var(--fg-muted);
  margin: 0 0 var(--sp-3) 0;
  text-wrap: pretty;
}
.lede {
  font-size: var(--fs-20);
  line-height: 1.45;
  color: var(--fg);
  text-wrap: balance;
}
.eyebrow {
  font-size: var(--fs-12);
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent);
}
.flat-text {
  font-size: var(--fs-14);
  line-height: 1.5;
  color: var(--fg-muted);
}
small, .small {
  font-size: var(--fs-14);
  color: var(--fg-muted);
}
code, .mono {
  font-family: var(--font-mono);
  font-size: 0.92em;
  background: var(--bg-muted);
  padding: 0.1em 0.35em;
  border-radius: 6px;
}
a {
  color: var(--link);
  text-decoration: none;
  transition: color var(--dur-fast) var(--ease-out);
}
a:hover { color: var(--accent-hover); }

/* ---------- GRADIENT TEXT (signature treatment) ----------
   In the brand book, certain words are highlighted with a
   purple→pink → cyan gradient, OR a soft pink chip. */

.text-gradient {
  background: var(--grad-violet-cyan);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
}
.text-gradient-pink {
  background: var(--grad-violet-pink);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
}
.text-highlight-pink {
  background: linear-gradient(180deg, transparent 55%, #F4D2FF 55%);
  padding: 0 0.15em;
  border-radius: 4px;
}
.text-highlight-grad {
  background: var(--grad-button);
  color: white;
  padding: 0.05em 0.45em;
  border-radius: var(--r-pill);
  font-weight: 700;
}
