:root {
  /* Colour system */
  --tb-colour-bg: #f5f3ee;
  --tb-colour-surface: #ffffff;
  --tb-colour-surface-alt: #ece9e2;
  --tb-colour-text: #121820;
  --tb-colour-text-muted: #6b7280;
  --tb-colour-border: rgba(18,24,32,.12);
  --tb-colour-dark: #0c151e;
  --tb-colour-dark-alt: #132331;
  --tb-colour-primary: #b98a42;
  --tb-colour-primary-contrast: #0c151e;
  --tb-colour-success: #23883a;
  --tb-colour-warning: #d69a11;
  --tb-colour-danger: #c71f28;
  --tb-colour-white: #ffffff;

  /* Typography */
  --tb-font-body: Inter, system-ui, -apple-system, "Segoe UI", sans-serif;
  --tb-font-heading: Georgia, "Times New Roman", serif;

  --tb-font-weight-regular: 400;
  --tb-font-weight-medium: 500;
  --tb-font-weight-semibold: 600;
  --tb-font-weight-bold: 700;

  --tb-font-size-xs: .75rem;
  --tb-font-size-sm: .875rem;
  --tb-font-size-md: 1rem;
  --tb-font-size-lg: 1.125rem;
  --tb-font-size-xl: 1.375rem;
  --tb-font-size-2xl: clamp(1.75rem, 3vw, 2.6rem);
  --tb-font-size-hero: clamp(2.5rem, 5vw, 5rem);

  /* Spacing */
  --tb-space-1: .5rem;
  --tb-space-2: .75rem;
  --tb-space-3: 1rem;
  --tb-space-4: 1.5rem;
  --tb-space-5: 2rem;
  --tb-space-6: 3rem;
  --tb-space-7: 4.5rem;
  --tb-space-8: 6rem;

  /* Layout */
  --tb-container-width: 1240px;
  --tb-page-gutter: clamp(1rem, 3vw, 2rem);
  --tb-section-space: clamp(4rem, 8vw, 7rem);

  /* Shape */
  --tb-radius-sm: 6px;
  --tb-radius-md: 12px;
  --tb-radius-lg: 20px;
  --tb-radius-pill: 999px;

  /* Shadows */
  --tb-shadow-sm: 0 8px 24px rgba(5,12,20,.08);
  --tb-shadow-md: 0 18px 50px rgba(5,12,20,.14);
  --tb-shadow-lg: 0 35px 90px rgba(5,12,20,.25);

  /* Motion */
  --tb-motion-fast: 180ms;
  --tb-motion-normal: 420ms;
  --tb-motion-slow: 750ms;
  --tb-ease-standard: cubic-bezier(.2,.75,.2,1);
  --tb-reveal-distance: 28px;
  --tb-hover-scale: 1.035;


  /* Theme-level visual controls */
  --tb-theme-heading-weight: var(--tb-font-weight-regular);
  --tb-theme-heading-tracking: 0;
  --tb-theme-heading-transform: none;
  --tb-theme-body-size: var(--tb-font-size-md);
  --tb-theme-content-width: var(--tb-container-width);
  --tb-theme-section-space: var(--tb-section-space);
  --tb-theme-section-edge: 0;
  --tb-theme-card-radius: var(--tb-radius-md);
  --tb-theme-button-radius: var(--tb-radius-sm);
  --tb-theme-image-radius: var(--tb-radius-md);
  --tb-theme-card-border: 1px solid var(--tb-colour-border);
  --tb-theme-card-shadow: var(--tb-shadow-sm);
  --tb-theme-card-bg: var(--tb-colour-surface);
  --tb-theme-nav-height: 72px;
  --tb-theme-nav-transform: none;
  --tb-theme-nav-tracking: 0;
  --tb-theme-hero-min-height: 650px;
  --tb-theme-hero-copy-width: 760px;
  --tb-theme-hero-align: left;
  --tb-theme-grid-gap: var(--tb-space-4);
  --tb-theme-icon-size: 46px;
  --tb-theme-icon-radius: 50%;
  --tb-theme-cta-min-height: 46px;
  --tb-theme-divider: 1px solid var(--tb-colour-border);
  --tb-theme-image-filter: none;
  --tb-theme-overlay-strength: .58;
  --tb-theme-motion-distance: var(--tb-reveal-distance);

  /* Legacy aliases: temporary compatibility */
  --tb-bg: var(--tb-colour-bg);
  --tb-surface: var(--tb-colour-surface);
  --tb-ink: var(--tb-colour-text);
  --tb-muted: var(--tb-colour-text-muted);
  --tb-dark: var(--tb-colour-dark);
  --tb-dark2: var(--tb-colour-dark-alt);
  --tb-accent: var(--tb-colour-primary);
  --tb-line: var(--tb-colour-border);
  --tb-white: var(--tb-colour-white);

  --tb-font-display: var(--tb-font-heading);

  --tb-w-regular: var(--tb-font-weight-regular);
  --tb-w-medium: var(--tb-font-weight-medium);
  --tb-w-semibold: var(--tb-font-weight-semibold);
  --tb-w-bold: var(--tb-font-weight-bold);

  --tb-r-sm: var(--tb-radius-sm);
  --tb-r-md: var(--tb-radius-md);
  --tb-r-lg: var(--tb-radius-lg);
  --tb-r-pill: var(--tb-radius-pill);

  --tb-s1: var(--tb-space-1);
  --tb-s2: var(--tb-space-2);
  --tb-s3: var(--tb-space-3);
  --tb-s4: var(--tb-space-4);
  --tb-s5: var(--tb-space-5);
  --tb-s6: var(--tb-space-6);
  --tb-s7: var(--tb-space-7);
  --tb-s8: var(--tb-space-8);

  --tb-container: var(--tb-container-width);
  --tb-gutter: var(--tb-page-gutter);
  --tb-section: var(--tb-section-space);

  --tb-shadow: var(--tb-shadow-md);

  --tb-fast: var(--tb-motion-fast);
  --tb-speed: var(--tb-motion-normal);
  --tb-slow: var(--tb-motion-slow);
  --tb-ease: var(--tb-ease-standard);
  --tb-reveal: var(--tb-reveal-distance);
}
