/* Purified HVAC · design tokens (v2 redesign).
   Palette: paper + deep cool ink + single warm brick accent. OKLCH only.
   Tinted neutrals (chroma 0.004 to 0.012). No #000, no #fff.
   Strategy: Restrained. Photography carries visual weight, not gradients. */
:root {
  /* Surfaces (cool-tinted near-white paper) */
  --paper:          oklch(0.985 0.004 220);
  --surface:        oklch(0.998 0.002 220);
  --surface-tinted: oklch(0.965 0.006 220);
  --surface-warm:   oklch(0.962 0.012 60);
  --hairline:       oklch(0.910 0.006 220);
  --hairline-soft:  oklch(0.945 0.005 220);

  /* Ink ramp (also doubles as primary brand color) */
  --ink-900:        oklch(0.205 0.012 220);
  --ink-800:        oklch(0.275 0.012 220);
  --ink-700:        oklch(0.345 0.012 220);
  --ink-500:        oklch(0.520 0.010 220);
  --ink-400:        oklch(0.640 0.010 220);
  --ink-300:        oklch(0.760 0.008 220);
  --ink-100:        oklch(0.910 0.006 220);

  /* Brick: single warm accent, reserved for CTAs and earned moments */
  --brick-800:      oklch(0.380 0.105 38);
  --brick-700:      oklch(0.455 0.115 38);
  --brick-600:      oklch(0.555 0.135 40);
  --brick-500:      oklch(0.640 0.120 42);
  --brick-100:      oklch(0.945 0.030 40);

  /* Semantic aliases */
  --bg:             var(--paper);
  --ink:            var(--ink-900);
  --ink-soft:       var(--ink-700);
  --ink-mute:       var(--ink-500);
  --line:           var(--ink-100);
  --line-soft:      var(--hairline-soft);
  --primary:        var(--ink-900);
  --primary-ink:    var(--paper);
  --primary-hover:  var(--ink-800);
  --accent:         var(--brick-600);
  --accent-hover:   var(--brick-700);
  --accent-ink:     oklch(0.985 0.004 60);
  --focus:          var(--brick-600);
  --success:        oklch(0.555 0.090 155);

  /* Type stack: Geist for everything. Weight contrast carries hierarchy. */
  --font-display:   "Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-sans:      "Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-mono:      "Geist Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

  /* Fluid type scale: pulled back so H1 isn't oversized. Hierarchy via weight + tracking. */
  --step--1: clamp(0.84rem, 0.81rem + 0.13vw, 0.92rem);
  --step-0:  clamp(1.00rem, 0.97rem + 0.16vw, 1.06rem);
  --step-1:  clamp(1.18rem, 1.13rem + 0.24vw, 1.30rem);
  --step-2:  clamp(1.38rem, 1.30rem + 0.40vw, 1.58rem);
  --step-3:  clamp(1.62rem, 1.49rem + 0.65vw, 1.95rem);
  --step-4:  clamp(1.92rem, 1.71rem + 1.05vw, 2.45rem);
  --step-5:  clamp(2.28rem, 1.94rem + 1.70vw, 3.15rem);

  /* Spacing: 4px base, varied rhythm */
  --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;

  /* Radii: smaller, more architectural */
  --r-xs: 4px;
  --r-sm: 8px;
  --r-md: 12px;
  --r-lg: 18px;
  --r-xl: 24px;
  --r-pill: 999px;

  /* Shadow: a single, restrained, cool-tinted shadow. No glow. */
  --shadow-1: 0 1px 2px oklch(0.20 0.012 220 / 0.04);
  --shadow-2: 0 4px 14px oklch(0.20 0.012 220 / 0.06);
  --shadow-3: 0 18px 36px oklch(0.20 0.012 220 / 0.08);

  /* Motion: Emil's strong custom curves. No CSS-default eases. */
  --ease-out:    cubic-bezier(0.23, 1, 0.32, 1);     /* strong ease-out */
  --ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);    /* strong ease-in-out */
  --ease-drawer: cubic-bezier(0.32, 0.72, 0, 1);     /* iOS-like */
  --dur-1: 140ms;   /* button press feedback */
  --dur-2: 200ms;   /* tooltips, small popovers, hovers */
  --dur-3: 260ms;   /* dropdowns, selects */
  --dur-4: 520ms;   /* scroll-reveal, modals */

  /* Layout */
  --container: 1180px;
  --measure: 66ch;
  --header-h: 72px;
}

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