/* ============================================================
   BASE — resets + helper primitives that consume the tokens.
   Kept minimal; components carry their own styling.
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--canvas);
  color: var(--text-primary);
  font-family: var(--font-sans);
  font-size: var(--body-md);
  line-height: var(--body-md-lh);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

a { color: var(--brand-primary); text-decoration: none; transition: color var(--duration-fast) var(--ease-standard); }
a:hover { color: var(--color-accent-blue); }

::selection { background: rgba(0,194,255,0.28); color: var(--text-primary); }

:focus-visible { outline: none; box-shadow: var(--focus-ring); }

/* Eyebrow / label utility — the small all-caps markers used across the brand */
.nx-eyebrow {
  font-size: var(--label); font-weight: var(--label-w);
  letter-spacing: var(--tracking-wide); text-transform: uppercase;
  color: var(--brand-primary);
}

/* Signature accent line — the recognizable Nexgen marker */
.nx-accent-line {
  display: inline-block; width: 48px; height: 4px;
  background: var(--gradient-accent); border-radius: var(--radius-full);
}
