/* OpenEconometrics "Night Lab" design tokens.
   One source of truth for every page of the site. */

@font-face { font-family: Barlow; src: url('../assets/Barlow.woff2') format('woff2'); font-weight: 100 900; font-style: normal; font-display: swap; }
@font-face { font-family: 'JetBrains Mono'; src: url('../assets/JetBrainsMono.woff2') format('woff2'); font-weight: 100 800; font-style: normal; font-display: swap; }

:root {
  /* Environment: the night the product is lit against */
  --oe-night: #050a12;
  --oe-deep: #0a1424;
  --oe-panel: #0e1b2e;
  --oe-line: rgba(143, 179, 255, .16);
  --oe-line-strong: rgba(143, 179, 255, .34);

  /* Brand light */
  --oe-signal: #2263ed;      /* the OE mark, primary actions */
  --oe-signal-deep: #1747b8;
  --oe-beam: #6ea0ff;        /* accents, links and focus on night */
  --oe-glow: #8fb3ff;        /* code identifiers, secondary accents */

  /* Lit documents: product surfaces are paper on the night */
  --oe-paper: #ffffff;
  --oe-paper-2: #f6f8fb;
  --oe-paper-line: #e2e5e1;
  --oe-ink: #162633;
  --oe-ink-muted: #62717c;
  --oe-navy: #182b3b;

  /* Text on night */
  --oe-text-strong: #f2f6fb;
  --oe-text: #b8c7da;
  --oe-text-muted: #7f93ad;

  /* State (never decoration) */
  --oe-ok: #59d39a;
  --oe-attention: #ffc861;
  --oe-alert: #ff4d5e;

  /* Data series, in order; only inside charts */
  --oe-data-1: #6ea0ff;
  --oe-data-2: #3dd6f5;
  --oe-data-3: #b59cff;
  --oe-data-4: #ffc861;
  --oe-data-5: #5ee0a0;

  /* Type */
  --oe-font: Barlow, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --oe-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  --oe-serif: Georgia, 'Times New Roman', serif; /* only for typeset (LaTeX) output */
  --oe-type-display: clamp(3.2rem, 7vw, 7.5rem);
  --oe-type-h2: clamp(2.4rem, 5vw, 4.6rem);
  --oe-type-h3: clamp(1.45rem, 2vw, 1.85rem);
  --oe-type-lead: clamp(1.15rem, 1.45vw, 1.35rem);
  --oe-type-body: 1.0625rem;
  --oe-type-small: .875rem;
  --oe-type-code: .9375rem;
  --oe-track-display: -.045em;
  --oe-track-heading: -.032em;

  /* Space (4-based) */
  --oe-space-1: 4px;  --oe-space-2: 8px;  --oe-space-3: 12px; --oe-space-4: 16px; --oe-space-5: 24px;
  --oe-space-6: 32px; --oe-space-7: 48px; --oe-space-8: 64px; --oe-space-9: 96px; --oe-space-10: 144px;
  --oe-max: 1240px;
  --oe-gutter: clamp(20px, 4vw, 56px);
  --oe-section: clamp(96px, 13vw, 176px);

  /* Shape follows hierarchy */
  --oe-r-window: 16px;
  --oe-r-card: 14px;
  --oe-r-control: 10px;
  --oe-r-pill: 999px;
  --oe-r-paper: 4px;

  /* Depth and light */
  --oe-shadow-window: 0 60px 140px rgba(0, 0, 0, .55), 0 0 0 1px rgba(255, 255, 255, .04);
  --oe-shadow-float: 0 24px 60px rgba(0, 0, 0, .45);
  --oe-glow-signal: 0 0 80px rgba(34, 99, 237, .45);
  --oe-halo: radial-gradient(closest-side, rgba(34, 99, 237, .32), rgba(34, 99, 237, .1) 55%, transparent);

  /* Motion */
  --oe-ease-out: cubic-bezier(.16, 1, .3, 1);
  --oe-ease-in-out: cubic-bezier(.65, 0, .35, 1);
  --oe-dur-fast: 160ms;
  --oe-dur-base: 320ms;
  --oe-dur-slow: 900ms;
}

@media (prefers-reduced-motion: reduce) {
  :root { --oe-dur-fast: 0ms; --oe-dur-base: 0ms; --oe-dur-slow: 0ms; }
}
