/* netex — brand tokens (shared) */
@import url("https://fonts.googleapis.com/css2?family=Geist:wght@300;400;500;600;700&family=Geist+Mono:wght@400;500&family=Instrument+Serif:ital@0;1&display=swap");

:root {
  /* surfaces — warm neutrals */
  --cream:        #F2EDE3;
  --cream-2:      #ECE5D6;   /* card / divider */
  --cream-3:      #E2D9C5;   /* deeper warm */
  --ink:          #16140F;   /* foreground */
  --ink-2:        #2B2720;   /* secondary text */
  --ink-mute:     #6E6857;   /* muted text */
  --line:         #D9D0BC;   /* hairlines */

  /* accent — default forest. Overridable per-instance. */
  --accent:       #1E4A2E;
  --accent-ink:   #F2EDE3;   /* on-accent text */
  --accent-soft:  #DCE6DD;   /* tinted surface */

  /* radii */
  --r-xs: 4px;
  --r-sm: 8px;
  --r-md: 14px;
  --r-lg: 22px;
  --r-xl: 32px;
  --r-pill: 999px;

  /* shadows */
  --shadow-sm: 0 1px 0 rgba(22,20,15,0.04), 0 1px 2px rgba(22,20,15,0.06);
  --shadow-md: 0 1px 2px rgba(22,20,15,0.06), 0 8px 24px -8px rgba(22,20,15,0.18);
  --shadow-lg: 0 1px 2px rgba(22,20,15,0.06), 0 24px 56px -16px rgba(22,20,15,0.22);

  /* type */
  --font-sans: "Geist", ui-sans-serif, system-ui, sans-serif;
  --font-mono: "Geist Mono", ui-monospace, monospace;
  --font-serif: "Instrument Serif", "Times New Roman", serif;
}

/* alt accents (the curated palette user can switch between) */
.accent-forest    { --accent:#1E4A2E; --accent-soft:#DCE6DD; --accent-ink:#F2EDE3; }
.accent-terracotta{ --accent:#C25A3A; --accent-soft:#F2DDD2; --accent-ink:#FFF8F2; }
.accent-indigo    { --accent:#2C3FB8; --accent-soft:#DBDFF3; --accent-ink:#F2EDE3; }
.accent-cyan      { --accent:#0F6E80; --accent-soft:#D3E4E8; --accent-ink:#F2EDE3; }
.accent-amber     { --accent:#A8731A; --accent-soft:#EFE2C5; --accent-ink:#15130F; }
.accent-ink-dark  { --accent:#15130F; --accent-soft:#E1DBCB; --accent-ink:#F2EDE3; }

html, body { background: var(--cream); color: var(--ink); font-family: var(--font-sans); }
body { margin: 0; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
* { box-sizing: border-box; }

/* utility shapes shared across brand + landing */
.nx-pill {
  display: inline-flex; align-items: center; gap: 8px;
  height: 28px; padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: var(--r-pill);
  background: transparent;
  font-family: var(--font-mono);
  font-size: 11px; letter-spacing: 0.04em;
  color: var(--ink-2); text-transform: uppercase;
}
.nx-pill .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--accent); }

.nx-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  height: 48px; padding: 0 22px;
  background: var(--accent); color: var(--accent-ink);
  border: 1px solid var(--accent);
  border-radius: var(--r-pill);
  font-family: var(--font-sans); font-weight: 500; font-size: 15px;
  letter-spacing: -0.005em;
  cursor: pointer; text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.nx-btn:hover { transform: translateY(-1px); box-shadow: var(--shadow-md); }
.nx-btn--ghost { background: transparent; color: var(--ink); border-color: var(--ink); }
.nx-btn--lg { height: 56px; padding: 0 28px; font-size: 16px; }
.nx-btn--sm { height: 36px; padding: 0 16px; font-size: 13px; }

.nx-card {
  background: var(--cream);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
}

/* numeric tracking for display headlines */
.nx-display {
  font-family: var(--font-sans);
  font-weight: 500;
  letter-spacing: -0.035em;
  line-height: 0.95;
}
.nx-display em {
  font-family: var(--font-serif);
  font-style: italic;
  font-weight: 400;
  letter-spacing: -0.01em;
}

/* hairline */
.nx-hr { height: 1px; background: var(--line); border: 0; margin: 0; }
