/* Linfield Studio design tokens — source of truth for all values.
   Carried over from the design-system handoff; do not invent values outside this file. */

:root {
  /* — Base neutrals: warm paper → ink ————————————————— */
  --paper: #FBFAF8;
  --paper-2: #F5F3EF;
  --paper-3: #EDEAE4;
  --stone-100: #E4E0D9;
  --stone-200: #D2CDC4;
  --stone-300: #B4AEA3;
  --stone-400: #8C867B;
  --stone-500: #6B665D;
  --stone-600: #4A463F;
  --ink-800: #2A2825;
  --ink-900: #171614;
  --ink: #0E0D0C;
  --white: #FFFFFF;

  /* — Brand accent: Linfield Green (British Racing green lineage) ——— */
  --jade-50: #E8F0EA;
  --jade-100: #C7DCCF;
  --jade-200: #8CB89C;
  --jade-300: #3B8058;
  --jade-400: #0C5A3C;
  --jade-500: #07452E;
  --jade-600: #043020;

  /* — Secondary: Sand (quiet warm highlight) ——————————— */
  --sand-50: #F7F1E6;
  --sand-100: #EFE2CB;
  --sand-200: #DCC49A;
  --sand-300: #A98A55;

  /* — Semantic hues ——————————————————————————————— */
  --green-500: #1C7A4D;
  --green-50: #E7F3EC;
  --amber-500: #A96A0B;
  --amber-50: #FAF0DE;
  --red-500: #B3392C;
  --red-50: #F8EAE8;
  --blue-500: #2A5BB8;
  --blue-50: #E9EFFA;

  /* — Semantic aliases ————————————————————————————— */
  --surface-page: var(--paper);
  --surface-card: var(--white);
  --surface-sunken: var(--paper-2);
  --surface-inverse: var(--ink);
  --surface-accent: var(--jade-50);
  --surface-hover: rgba(14, 13, 12, .035);
  --surface-active: rgba(14, 13, 12, .06);

  --text-strong: var(--ink);
  --text-body: var(--ink-800);
  --text-muted: var(--stone-500);
  --text-subtle: var(--stone-400);
  --text-inverse: var(--paper);
  --text-accent: var(--jade-400);
  --text-link: var(--jade-400);
  --text-link-hover: var(--jade-500);

  --border-hairline: rgba(14, 13, 12, .08);
  --border-soft: var(--stone-100);
  --border-strong: var(--stone-200);
  --border-focus: var(--jade-400);
  --border-inverse: rgba(255, 255, 255, .16);

  --accent: var(--jade-400);
  --accent-hover: var(--jade-500);
  --accent-press: var(--jade-600);
  --accent-quiet: var(--jade-50);

  --status-success: var(--green-500);
  --status-success-bg: var(--green-50);
  --status-warning: var(--amber-500);
  --status-warning-bg: var(--amber-50);
  --status-danger: var(--red-500);
  --status-danger-bg: var(--red-50);
  --status-info: var(--blue-500);
  --status-info-bg: var(--blue-50);

  --focus-ring: 0 0 0 3px rgba(12, 90, 60, .22);

  /* — Typography ——————————————————————————————— */
  --font-sans: "Schibsted Grotesk", "Helvetica Neue", Helvetica, sans-serif;
  --font-serif-display: "EB Garamond", "Times New Roman", serif;
  --font-wordmark: "EB Garamond", "Times New Roman", serif;
  --font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, monospace;

  --text-display-1: clamp(3.25rem, 6.5vw, 5.5rem);
  --text-display-2: clamp(2.5rem, 4.5vw, 3.75rem);
  --text-h1: 2.5rem;
  --text-h2: 1.875rem;
  --text-h3: 1.375rem;
  --text-h4: 1.125rem;
  --text-lead: 1.1875rem;
  --text-body: 1rem;
  --text-sm: 0.875rem;
  --text-xs: 0.8125rem;
  --text-micro: 0.6875rem;

  --leading-tight: 1.04;
  --leading-snug: 1.2;
  --leading-normal: 1.5;
  --leading-relaxed: 1.65;

  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;

  --tracking-display: -0.015em;
  --tracking-tight: -0.018em;
  --tracking-normal: 0em;
  --tracking-wide: 0.06em;
  --tracking-label: 0.14em;

  --type-eyebrow-size: var(--text-micro);
  --type-eyebrow-tracking: var(--tracking-label);
  --type-code-size: var(--text-sm);

  /* — Spacing & layout ————————————————————————————— */
  --space-0: 0;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;
  --space-9: 96px;
  --space-10: 128px;
  --space-11: 180px;

  --gutter: 24px;
  --page-max: 1240px;
  --prose-max: 68ch;
  --section-y: var(--space-10);
  --card-pad: 28px;
  --control-pad-x: 18px;
  --control-h-sm: 32px;
  --control-h-md: 40px;
  --control-h-lg: 48px;

  /* — Radius ——————————————————————————————————— */
  --radius-0: 0;
  --radius-xs: 3px;
  --radius-sm: 5px;
  --radius-md: 8px;
  --radius-lg: 14px;
  --radius-xl: 22px;
  --radius-pill: 999px;
  --radius-control: var(--radius-sm);
  --radius-card: var(--radius-lg);
  --radius-surface: var(--radius-xl);

  /* — Elevation ————————————————————————————————— */
  /* Shadows are near-invisible by design: light, warm-neutral, wide. */
  --shadow-0: none;
  --shadow-1: 0 1px 2px rgba(14, 13, 12, .04);
  --shadow-2: 0 2px 6px rgba(14, 13, 12, .05), 0 1px 1px rgba(14, 13, 12, .03);
  --shadow-3: 0 12px 32px -12px rgba(14, 13, 12, .14), 0 2px 6px rgba(14, 13, 12, .04);
  --shadow-4: 0 32px 64px -24px rgba(14, 13, 12, .20), 0 4px 12px rgba(14, 13, 12, .05);
  --shadow-inset-hairline: inset 0 0 0 1px var(--border-hairline);
  --blur-veil: saturate(140%) blur(14px);
  --veil: rgba(251, 250, 248, .72);
  --scrim: rgba(14, 13, 12, .42);

  /* — Motion ——————————————————————————————————— */
  --ease-standard: cubic-bezier(.2, 0, 0, 1);
  --ease-entrance: cubic-bezier(.16, 1, .3, 1);
  --ease-exit: cubic-bezier(.4, 0, 1, 1);
  --dur-1: 90ms;
  --dur-2: 160ms;
  --dur-3: 240ms;
  --dur-4: 420ms;
  --dur-5: 700ms;
  --transition-control:
    color var(--dur-2) var(--ease-standard),
    background-color var(--dur-2) var(--ease-standard),
    border-color var(--dur-2) var(--ease-standard),
    box-shadow var(--dur-2) var(--ease-standard),
    transform var(--dur-1) var(--ease-standard);
  --lift-hover: translateY(-1px);
  --press-scale: scale(.985);
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --dur-1: 0ms;
    --dur-2: 0ms;
    --dur-3: 0ms;
    --dur-4: 0ms;
    --dur-5: 0ms;
  }
}
