/* BioChem Phase 1. Breakpoints: compact 480px, phone 760px, navigation 1100px.
   CSS custom properties cannot be used in native media-query conditions. */
:root {
  --color-brand: #541d2d;
  --color-brand-deep: #35131f;
  --color-page: #f7f3ec;
  --color-surface: #fffcf7;
  --color-surface-muted: #efe8dd;
  --color-text: #17181b;
  --color-text-secondary: #59534d;
  --color-on-brand: #fff9f1;
  --color-accent: #c5a77b;
  --color-border: #d9cebf;
  --color-control-border: #968a7c;
  --color-focus: #825022;
  --color-error: #8a2237;
  --color-success: #285743;
  --color-info: #414f60;
  --font-body: 'DM Sans', Arial, sans-serif;
  --font-display: 'Libre Caslon Display', Georgia, serif;
  --text-caption: 0.75rem;
  --text-label: 0.8125rem;
  --text-small: 0.875rem;
  --text-body: clamp(1rem, 0.95rem + 0.15vw, 1.125rem);
  --text-product: clamp(1.25rem, 1.1rem + 0.4vw, 1.625rem);
  --text-section: clamp(2.125rem, 1.4rem + 3vw, 3.75rem);
  --text-hero: clamp(3.375rem, 2rem + 5vw, 6.5rem);
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;
  --leading-body: 1.65;
  --leading-heading: 1.08;
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 3rem;
  --space-section: clamp(3.25rem, 5.5vw, 6rem);
  --content-max: 90rem;
  /* Center readable content while section backgrounds fill wide viewports. */
  --page-gutter: max(clamp(1rem, 4.5vw, 5rem), calc((100vw - var(--content-max)) / 2 + 4rem));
  --radius-control: 0.375rem;
  --radius-card: 0.875rem;
  --radius-panel: 1.125rem;
  --shadow-card: 0 4px 18px #35131f06;
  --shadow-raised: 0 12px 30px #35131f12;
  --control-min: 2.75rem;
  --control-height: 3.25rem;
  --motion-quick: 180ms;
  --motion-standard: 300ms;
  --motion-reveal: 550ms;
  --ease-standard: cubic-bezier(0.2, 0.7, 0.2, 1);
  --ease-enter: cubic-bezier(0.16, 1, 0.3, 1);
  /* Aliases preserve existing page components. */
  --paper: var(--color-page);
  --ink: var(--color-text);
  --wine: var(--color-brand);
  --wine-dark: var(--color-brand-deep);
  --muted: var(--color-text-secondary);
  --line: var(--color-border);
  --wash: var(--color-surface-muted);
  --serif: var(--font-display);
  --sans: var(--font-body);
}
@media (prefers-reduced-motion: reduce) {
  :root {
    --motion-quick: 0ms;
    --motion-standard: 0ms;
    --motion-reveal: 0ms;
  }
}
