/* Design tokens. The single place where raw colour, font and shadow values may appear. See DESIGN.md. */

:root {
  /* Colour */
  --color-blush-50: #fff7f8;
  --color-blush-100: #fdecef;
  --color-blush-200: #f9dde3;
  --color-blush-300: #f3c2ce;
  --color-coral-500: #f05540;
  --color-coral-600: #ce3d29;
  --color-coral-700: #a82e1d;
  --color-ink-900: #2b1216;
  --color-ink-600: #6a4a50;
  --color-ink-400: #9c7f85;
  --color-denim-500: #5b84b1;
  --color-denim-700: #3b618c;
  --color-butter-200: #ffedb5;
  --color-white: #ffffff;
  --color-success-600: #2f7d5b;
  --color-danger-600: #b3261e;
  --color-scrim: rgb(43 18 22 / 0.48);

  /* Semantic colour */
  --surface-page: var(--color-blush-50);
  --surface-card: var(--color-white);
  --surface-quiet: var(--color-blush-100);
  --surface-brand: var(--color-blush-200);
  --text-primary: var(--color-ink-900);
  --text-secondary: var(--color-ink-600);
  --text-muted: var(--color-ink-400);
  --text-brand: var(--color-coral-500);
  --text-link: var(--color-coral-600);
  --border-subtle: rgb(43 18 22 / 0.1);
  --border-strong: rgb(43 18 22 / 0.24);
  --border-brand: var(--color-blush-300);
  --focus-ring: var(--color-denim-500);

  /* Typography */
  --font-display: "Yeseva One", "Georgia", serif;
  --font-body: "Jost", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-hand: "Caveat", "Segoe Script", cursive;

  --text-display: clamp(2.5rem, 1.6rem + 4.4vw, 4.5rem);
  --text-h1: clamp(2rem, 1.55rem + 2.2vw, 3rem);
  --text-h2: clamp(1.625rem, 1.35rem + 1.4vw, 2.25rem);
  --text-h3: clamp(1.25rem, 1.15rem + 0.5vw, 1.5rem);
  --text-lg: 1.125rem;
  --text-base: 1rem;
  --text-sm: 0.875rem;
  --text-xs: 0.75rem;

  --leading-display: 1.02;
  --leading-heading: 1.12;
  --leading-body: 1.55;

  /* Space */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-7: 2rem;
  --space-8: 2.5rem;
  --space-9: 3.5rem;
  --space-10: 4.5rem;
  --space-11: 6rem;

  --gutter: var(--space-4);
  --section-gap: var(--space-9);
  --content-max: 76rem;
  --measure: 34rem;

  /* Shape */
  --radius-sm: 10px;
  --radius-md: 18px;
  --radius-lg: 28px;
  --radius-pill: 999px;

  /* Elevation: warm shadows tinted with ink */
  --shadow-sm: 0 1px 2px rgb(43 18 22 / 0.08), 0 2px 6px rgb(43 18 22 / 0.06);
  --shadow-md: 0 6px 18px rgb(43 18 22 / 0.1), 0 2px 4px rgb(43 18 22 / 0.06);
  --shadow-lg: 0 18px 48px rgb(43 18 22 / 0.18), 0 4px 10px rgb(43 18 22 / 0.08);

  /* Motion */
  --ease-out: cubic-bezier(0.2, 0.8, 0.2, 1);
  --duration-fast: 200ms;
  --duration-base: 280ms;
  --duration-slow: 600ms;

  /* Layout metrics used by sticky and fixed elements */
  --header-height: 3.75rem;
  --buybar-height: 4.5rem;
  --tap-min: 2.75rem;

  /* Layers */
  --layer-header: 20;
  --layer-buybar: 30;
  --layer-scrim: 40;
  --layer-drawer: 50;
  --layer-dialog: 60;
  --layer-toast: 70;
}

@media (min-width: 48rem) {
  :root {
    --gutter: var(--space-6);
    --header-height: 4.5rem;
  }
}

@media (min-width: 64rem) {
  :root {
    --gutter: var(--space-8);
    --section-gap: var(--space-11);
  }
}
