:root {
  /* Fonts */
  --fm-font-body: "Open Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --fm-font-heading: "Montserrat", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --fm-font-ui: "Montserrat", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --fm-font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;

  /* Core colours */
  --fm-bg: #061224;
  --fm-bg-soft: #0b1525;
  --fm-panel: #0d192d;
  --fm-panel-soft: #101f36;
  --fm-panel-elevated: #12223a;

  --fm-text: #F4F7FB;
  --fm-text-strong: #FFFFFF;
  --fm-muted: rgba(244,247,251,0.72);
  --fm-muted-soft: rgba(244,247,251,0.52);

  --fm-border: rgba(90,104,130,0.34);
  --fm-border-strong: rgba(90,104,130,0.52);

  /* Accents */
  --fm-accent: #5A6882;
  --fm-accent-soft: rgba(90,104,130,0.18);
  --fm-accent-strong: #A9B6CB;

  --fm-green: #34d399;
  --fm-green-soft: rgba(52,211,153,0.14);
  --fm-red: #fb7185;
  --fm-red-soft: rgba(251,113,133,0.14);
  --fm-orange: #fbbf24;
  --fm-orange-soft: rgba(251,191,36,0.14);

  /* Layout */
  --fm-container: 1200px;
  --fm-container-wide: 1480px;
  --fm-page-padding-x: 24px;
  --fm-section-gap: 28px;
  --fm-card-gap: 18px;

  /* Header */
  --fm-header-height: 72px;
  --fm-header-bg: rgba(6,18,36,0.92);
  --fm-header-border: rgba(255,255,255,0.08);

  /* Radius */
  --fm-radius-sm: 2px;
  --fm-radius-md: 2px;
  --fm-radius-lg: 3px;
  --fm-radius-card: 2.5px;
  --fm-radius-panel: 3px;
  --fm-radius-pill: 2px;

  /* Shadows */
  --fm-shadow-soft: 0 18px 44px rgba(0,0,0,0.30);
  --fm-shadow-strong: 0 24px 52px rgba(0,0,0,0.36);

  /* Motion */
  --fm-transition-fast: 150ms ease;
  --fm-transition-med: 240ms ease;
}

html[data-theme="light"] {
  --fm-bg: #f5f7fb;
  --fm-bg-soft: #eef2f8;
  --fm-panel: #ffffff;
  --fm-panel-soft: #f7f9fc;
  --fm-panel-elevated: #ffffff;

  --fm-text: #172033;
  --fm-text-strong: #0b1220;
  --fm-muted: #5d6b7d;
  --fm-muted-soft: #7a8798;

  --fm-border: rgba(15,23,42,0.11);
  --fm-border-strong: rgba(15,23,42,0.18);

  --fm-header-bg: rgba(255,255,255,0.88);
  --fm-header-border: var(--fm-border);

  --fm-shadow-soft: 0 14px 36px rgba(15,23,42,0.10);
  --fm-shadow-strong: 0 24px 70px rgba(15,23,42,0.16);
}
