/* ============ RESET & BASE ============ */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html, body { height: 100%; }
body {
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
img, picture, video, canvas, svg { display: block; max-width: 100%; }
input, button, textarea, select { font: inherit; color: inherit; }
p, h1, h2, h3, h4, h5, h6 { overflow-wrap: break-word; }
a { color: inherit; }
button { background: none; border: 0; cursor: pointer; padding: 0; }

/* ============ DESIGN TOKENS ============ */
:root {
  /* Type scale — modest, restrained */
  --text-xs:   0.75rem;
  --text-sm:   0.875rem;
  --text-base: 1rem;
  --text-lg:   1.125rem;
  --text-xl:   1.25rem;
  --text-2xl:  1.5rem;
  --text-3xl:  clamp(1.75rem, 1.2rem + 2.4vw, 2.5rem);
  --text-4xl:  clamp(2.25rem, 1.4rem + 3.5vw, 3.25rem);
  --text-hero: clamp(2.75rem, 1.6rem + 4.5vw, 4.25rem);

  /* Weight */
  --w-regular: 400;
  --w-medium: 500;
  --w-semibold: 600;
  --w-bold: 700;
  --w-black: 800;

  /* Spacing — 4px baseline */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-20: 5rem;
  --space-24: 6rem;
  --space-32: 8rem;

  /* Radii */
  --r-sm: 6px;
  --r-md: 10px;
  --r-lg: 16px;
  --r-full: 999px;

  /* Palette — light industrial */
  --ink:        #0f1620;   /* near-black, cool */
  --ink-2:      #1f2937;   /* charcoal secondary */
  --ink-3:      #4b5563;   /* body text */
  --ink-4:      #6b7280;   /* muted */
  --line:       #e5e7eb;   /* hairlines */
  --line-2:     #d1d5db;   /* stronger borders */
  --bg:         #ffffff;   /* page */
  --bg-2:       #f7f8fa;   /* section alt */
  --bg-3:       #f1f3f6;   /* card */
  --paper:      #fafbfc;   /* subtle warmth */

  --red:        #c8102e;   /* RRS red, deep + confident */
  --red-hover:  #a30d25;
  --red-tint:   #fdecef;   /* red wash */

  /* Motion */
  --t-fast: 180ms cubic-bezier(.2,.6,.2,1);
  --t-med:  320ms cubic-bezier(.2,.6,.2,1);
  --t-slow: 640ms cubic-bezier(.2,.6,.2,1);

  /* Shadows */
  --shadow-sm: 0 1px 2px rgba(15,22,32,.06), 0 1px 1px rgba(15,22,32,.04);
  --shadow-md: 0 6px 16px rgba(15,22,32,.06), 0 2px 4px rgba(15,22,32,.04);
  --shadow-lg: 0 24px 48px rgba(15,22,32,.10), 0 6px 12px rgba(15,22,32,.06);

  /* Layout */
  --wrap: 1240px;
  --gutter: clamp(1.25rem, 4vw, 2.5rem);
}

html { scroll-behavior: smooth; }
body {
  font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-size: var(--text-base);
  font-weight: var(--w-regular);
  color: var(--ink-3);
  background: var(--bg);
}
::selection { background: var(--red); color: #fff; }
