/* EntropyZero Design System — Colors & Type */

/* ---------- Webfonts ---------- */
@font-face {
  font-family: 'Source Sans 3';
  src: url('fonts/SourceSans3-Light.ttf') format('truetype');
  font-weight: 300; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Source Sans 3';
  src: url('fonts/SourceSans3-Regular.ttf') format('truetype');
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Source Sans 3';
  src: url('fonts/SourceSans3-Italic.ttf') format('truetype');
  font-weight: 400; font-style: italic; font-display: swap;
}
@font-face {
  font-family: 'Source Sans 3';
  src: url('fonts/SourceSans3-Medium.ttf') format('truetype');
  font-weight: 500; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Source Sans 3';
  src: url('fonts/SourceSans3-SemiBold.ttf') format('truetype');
  font-weight: 600; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Source Sans 3';
  src: url('fonts/SourceSans3-Bold.ttf') format('truetype');
  font-weight: 700; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Source Sans 3';
  src: url('fonts/SourceSans3-BoldItalic.ttf') format('truetype');
  font-weight: 700; font-style: italic; font-display: swap;
}
@font-face {
  font-family: 'Source Sans 3';
  src: url('fonts/SourceSans3-Black.ttf') format('truetype');
  font-weight: 900; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Source Serif 4';
  src: url('fonts/SourceSerif4-Regular.ttf') format('truetype');
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Source Serif 4';
  src: url('fonts/SourceSerif4-Italic.ttf') format('truetype');
  font-weight: 400; font-style: italic; font-display: swap;
}
@font-face {
  font-family: 'Source Serif 4';
  src: url('fonts/SourceSerif4-SemiBold.ttf') format('truetype');
  font-weight: 600; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Source Serif 4';
  src: url('fonts/SourceSerif4-Bold.ttf') format('truetype');
  font-weight: 700; font-style: normal; font-display: swap;
}

:root {
  /* ---------- Brand Colors ---------- */
  /* Primary */
  --ez-classic-blue: #0067a2;
  --ez-vibrant-orange: #f47b2e;

  /* Secondary */
  --ez-deep-navy: #003d5c;
  --ez-powder-blue: #5ba3d0;
  --ez-light-orange: #ffad7a;

  /* Neutrals */
  --ez-dim-gray: #686868;
  --ez-platinum: #e8e8e8;
  --ez-pale-blue: #f0f4f8;
  --ez-pale-orange: #fff8f3;
  --ez-black: #111111;
  --ez-white: #ffffff;

  /* Accent */
  --ez-deep-cyan: #1f7f95;

  /* ---------- Semantic Colors ---------- */
  --color-bg: var(--ez-white);
  --color-bg-subtle: var(--ez-pale-blue);
  --color-bg-warm: var(--ez-pale-orange);
  --color-bg-muted: var(--ez-platinum);
  --color-bg-inverse: var(--ez-deep-navy);

  --color-fg: var(--ez-black);
  --color-fg-muted: var(--ez-dim-gray);
  --color-fg-brand: var(--ez-classic-blue);
  --color-fg-brand-strong: var(--ez-deep-navy);
  --color-fg-accent: var(--ez-vibrant-orange);
  --color-fg-inverse: var(--ez-white);

  --color-border: var(--ez-platinum);
  --color-border-strong: #cdd6df;
  --color-divider: var(--ez-classic-blue);

  --color-link: var(--ez-classic-blue);
  --color-link-hover: var(--ez-deep-navy);
  --color-cta: var(--ez-vibrant-orange);
  --color-cta-hover: #db6a1f;

  /* Status (derived to harmonize with palette) */
  --color-success: #2f8a52;
  --color-warning: var(--ez-vibrant-orange);
  --color-danger: #c0382b;
  --color-info: var(--ez-deep-cyan);

  /* ---------- Typography ---------- */
  --font-sans: 'Source Sans 3', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --font-serif: 'Source Serif 4', 'Source Serif Pro', Georgia, 'Times New Roman', serif;
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

  /* Scale (rem; 1rem=16px) — derived from brand guide ranges */
  --fs-display: 4rem;     /* 64 — hero / cover */
  --fs-title: 2.25rem;    /* 36 — slide / page title */
  --fs-subtitle: 1.75rem; /* 28 */
  --fs-h1: 2rem;          /* 32 */
  --fs-h2: 1.5rem;        /* 24 — heading */
  --fs-h3: 1.25rem;       /* 20 — subheading */
  --fs-h4: 1rem;          /* 16 — section header */
  --fs-body: 1rem;        /* 16 */
  --fs-body-sm: 0.9375rem;
  --fs-caption: 0.8125rem;/* 13 */
  --fs-eyebrow: 0.75rem;  /* 12 — uppercase eyebrow */

  /* Weights */
  --fw-light: 300;     /* @kind font */
  --fw-regular: 400;   /* @kind font */
  --fw-medium: 500;    /* @kind font */
  --fw-semibold: 600;  /* @kind font */
  --fw-bold: 700;      /* @kind font */
  --fw-black: 900;     /* @kind font */

  /* Line heights */
  --lh-tight: 1.1;     /* @kind font */
  --lh-snug: 1.25;     /* @kind font */
  --lh-base: 1.55;     /* @kind font */
  --lh-loose: 1.75;    /* @kind font */

  /* Letter spacing */
  --ls-tight: -0.01em; /* @kind font */
  --ls-normal: 0;      /* @kind font */
  --ls-wide: 0.04em;   /* @kind font */
  --ls-wider: 0.12em;  /* @kind font */

  /* ---------- Spacing (4-px base) ---------- */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 3rem;
  --space-8: 4rem;
  --space-9: 6rem;
  --space-10: 8rem;

  /* ---------- Radii ---------- */
  --radius-xs: 2px;
  --radius-sm: 4px;
  --radius-md: 6px;     /* default cards */
  --radius-lg: 12px;
  --radius-pill: 999px;
  --radius-circle: 50%;

  /* ---------- Shadows ---------- */
  --shadow-xs: 0 1px 2px rgba(0, 61, 92, 0.06);
  --shadow-sm: 0 1px 3px rgba(0, 61, 92, 0.08), 0 1px 2px rgba(0, 61, 92, 0.04);
  --shadow-md: 0 4px 12px rgba(0, 61, 92, 0.10), 0 1px 3px rgba(0, 61, 92, 0.06);
  --shadow-lg: 0 12px 32px rgba(0, 61, 92, 0.14), 0 4px 8px rgba(0, 61, 92, 0.06);
  --shadow-focus: 0 0 0 3px rgba(91, 163, 208, 0.45);
  /* Warm / orange-tinted elevation — for CTAs and Pale Orange surfaces */
  --shadow-warm-xs: 0 1px 2px rgba(244, 123, 46, 0.10);
  --shadow-warm-sm: 0 1px 3px rgba(244, 123, 46, 0.14), 0 1px 2px rgba(244, 123, 46, 0.06);
  --shadow-warm-md: 0 4px 12px rgba(244, 123, 46, 0.18), 0 1px 3px rgba(244, 123, 46, 0.08);
  --shadow-warm-lg: 0 12px 32px rgba(244, 123, 46, 0.22), 0 4px 8px rgba(244, 123, 46, 0.10);

  /* ---------- Layout ---------- */
  --container-narrow: 720px;
  --container-base: 1080px;
  --container-wide: 1280px;

  /* ---------- Motion ---------- */
  --ease-out: cubic-bezier(0.2, 0.7, 0.2, 1);   /* @kind other */
  --ease-in-out: cubic-bezier(0.5, 0, 0.2, 1);  /* @kind other */
  --dur-fast: 120ms;   /* @kind other */
  --dur-base: 200ms;   /* @kind other */
  --dur-slow: 360ms;   /* @kind other */
}

/* ---------- Element styles ---------- */
html { font-family: var(--font-sans); color: var(--color-fg); background: var(--color-bg); }
body { font-family: var(--font-sans); font-size: var(--fs-body); line-height: var(--lh-base); color: var(--color-fg); }

.ez-display { font-family: var(--font-sans); font-weight: var(--fw-bold); font-size: var(--fs-display); line-height: var(--lh-tight); letter-spacing: var(--ls-tight); color: var(--color-fg-brand-strong); }
.ez-title    { font-family: var(--font-sans); font-weight: var(--fw-bold); font-size: var(--fs-title); line-height: var(--lh-tight); color: var(--color-fg-brand); }
.ez-subtitle { font-family: var(--font-sans); font-weight: var(--fw-semibold); font-size: var(--fs-subtitle); line-height: var(--lh-snug); color: var(--color-fg-brand); }
.ez-h1       { font-family: var(--font-sans); font-weight: var(--fw-semibold); font-size: var(--fs-h1); line-height: var(--lh-snug); color: var(--color-fg-brand); }
.ez-h2       { font-family: var(--font-sans); font-weight: var(--fw-semibold); font-size: var(--fs-h2); line-height: var(--lh-snug); color: var(--color-fg-brand); }
.ez-h3       { font-family: var(--font-sans); font-weight: var(--fw-semibold); font-size: var(--fs-h3); line-height: var(--lh-snug); color: var(--color-fg-brand); }
.ez-h4       { font-family: var(--font-sans); font-weight: var(--fw-semibold); font-size: var(--fs-h4); line-height: var(--lh-snug); color: var(--color-fg-brand); }
.ez-body     { font-family: var(--font-sans); font-weight: var(--fw-regular); font-size: var(--fs-body); line-height: var(--lh-base); color: var(--color-fg); }
.ez-body-serif { font-family: var(--font-serif); font-weight: var(--fw-regular); font-size: var(--fs-body); line-height: var(--lh-loose); color: var(--color-fg); }
.ez-quote    { font-family: var(--font-serif); font-weight: var(--fw-regular); font-style: italic; font-size: 1.125rem; line-height: var(--lh-loose); color: var(--color-fg-brand-strong); }
.ez-caption  { font-family: var(--font-sans); font-size: var(--fs-caption); color: var(--color-fg-muted); }
.ez-eyebrow  { font-family: var(--font-sans); font-weight: var(--fw-semibold); font-size: var(--fs-eyebrow); letter-spacing: var(--ls-wider); text-transform: uppercase; color: var(--color-fg-accent); }

a { color: var(--color-link); text-decoration: none; }
a:hover { color: var(--color-link-hover); text-decoration: underline; }

::selection { background: var(--ez-light-orange); color: var(--ez-deep-navy); }
