/* SolidWaves · design tokens · Hallmark custom (tuned) theme
 * Dark is the canvas. Light is the same system with the lights on.
 * Paper is tinted toward brand navy (hue 285); ink and paper-light toward warm cream (hue 80);
 * the accent is the brand orange (hue 55). The purple bloom borrows the wave purple (hue 325). */

:root {
  color-scheme: dark;

  /* — surfaces — */
  --color-paper:    oklch(13% 0.022 285);
  --color-paper-2:  oklch(17% 0.024 285);
  --color-paper-3:  oklch(21% 0.026 285);

  /* — text — */
  --color-ink:      oklch(94% 0.010 80);
  --color-ink-2:    oklch(86% 0.010 80);
  --color-muted:    oklch(68% 0.014 285);
  --color-neutral:  oklch(56% 0.014 285);

  /* — rules — */
  --color-rule:     oklch(30% 0.022 285);
  --color-rule-2:   oklch(25% 0.022 285);

  /* — accent (brand orange) — */
  --color-accent:     oklch(74% 0.160 55);
  --color-accent-ink: oklch(16% 0.030 285);
  --color-accent-2:   oklch(60% 0.140 325);   /* wave purple — bloom only */
  --color-focus:      oklch(80% 0.190 60);

  /* — CTA fill: orange on dark, navy on light — */
  --color-cta:      var(--color-accent);
  --color-cta-ink:  var(--color-accent-ink);

  --color-shadow:   oklch(10% 0.020 285 / 0.5);

  /* — states — */
  --color-error:    oklch(72% 0.170 25);
  --color-success:  oklch(78% 0.120 150);

  /* — blooms — */
  --bloom-a: oklch(74% 0.160 55 / 0.45);
  --bloom-b: oklch(60% 0.140 325 / 0.40);
  --bloom-opacity: 1;

  /* — type — */
  --font-display: "Bricolage Grotesque", "Avenir Next", ui-sans-serif, system-ui, sans-serif;
  --font-body:    "Geist", "Avenir Next", ui-sans-serif, system-ui, sans-serif;
  --font-mono:    "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;

  --text-xs:   0.8rem;
  --text-sm:   0.875rem;
  --text-base: 1rem;
  --text-md:   1.25rem;
  --text-lg:   1.5625rem;
  --text-xl:   1.9531rem;
  --text-2xl:  2.4414rem;
  --text-3xl:  3.0518rem;
  --text-display-s: clamp(2.25rem, 3.5vw + 1rem, 3.75rem);
  --text-marquee:   clamp(3.25rem, 9.5vw, 9rem);

  /* — space (4 pt) — */
  --space-2xs: 0.25rem;
  --space-xs:  0.5rem;
  --space-sm:  0.75rem;
  --space-md:  1rem;
  --space-lg:  1.5rem;
  --space-xl:  2.5rem;
  --space-2xl: 4rem;
  --space-3xl: 6rem;
  --space-4xl: 9rem;
  --page-gutter: clamp(1rem, 5vw, 4.5rem);

  /* — motion — */
  --ease-out:    cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in:     cubic-bezier(0.7, 0, 0.84, 0);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --dur-micro: 120ms;
  --dur-short: 220ms;
  --dur-long:  420ms;

  /* — misc — */
  --rule-hair: 1px;
  --rule-thick: 3px;
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-pill: 999px;
  --z-base: 1; --z-raised: 10; --z-sticky: 200; --z-toast: 500;
}

/* Light: same hues, lights on. Duplicated once for the no-JS system-preference fallback. */
:root[data-theme="light"] {
  color-scheme: light;
  --color-paper:    oklch(97% 0.010 80);
  --color-paper-2:  oklch(94% 0.012 80);
  --color-paper-3:  oklch(91% 0.014 80);
  --color-ink:      oklch(26% 0.070 285);
  --color-ink-2:    oklch(36% 0.060 285);
  --color-muted:    oklch(46% 0.030 285);
  --color-neutral:  oklch(56% 0.020 285);
  --color-rule:     oklch(84% 0.012 80);
  --color-rule-2:   oklch(89% 0.010 80);
  --color-accent:     oklch(60% 0.190 45);
  --color-accent-ink: oklch(97% 0.010 80);
  --color-accent-2:   oklch(52% 0.130 325);
  --color-focus:      oklch(58% 0.200 40);
  --color-cta:      var(--color-ink);
  --color-cta-ink:  var(--color-paper);
  --color-shadow:   oklch(30% 0.030 285 / 0.18);
  --color-error:    oklch(52% 0.190 25);
  --color-success:  oklch(48% 0.120 150);
  --bloom-a: oklch(72% 0.170 55 / 0.36);
  --bloom-b: oklch(60% 0.140 325 / 0.26);
}
@media (prefers-color-scheme: light) {
  :root:not([data-theme="dark"]) {
    color-scheme: light;
    --color-paper:    oklch(97% 0.010 80);
    --color-paper-2:  oklch(94% 0.012 80);
    --color-paper-3:  oklch(91% 0.014 80);
    --color-ink:      oklch(26% 0.070 285);
    --color-ink-2:    oklch(36% 0.060 285);
    --color-muted:    oklch(46% 0.030 285);
    --color-neutral:  oklch(56% 0.020 285);
    --color-rule:     oklch(84% 0.012 80);
    --color-rule-2:   oklch(89% 0.010 80);
    --color-accent:     oklch(60% 0.190 45);
    --color-accent-ink: oklch(97% 0.010 80);
    --color-accent-2:   oklch(52% 0.130 325);
    --color-focus:      oklch(58% 0.200 40);
    --color-cta:      var(--color-ink);
    --color-cta-ink:  var(--color-paper);
    --color-shadow:   oklch(30% 0.030 285 / 0.18);
    --color-error:    oklch(52% 0.190 25);
    --color-success:  oklch(48% 0.120 150);
    --bloom-a: oklch(72% 0.170 55 / 0.36);
    --bloom-b: oklch(60% 0.140 325 / 0.26);
  }
}
