/* Design Tokens */
:root {
  /* Colors */
  --color-midnight-blue: #2C3E50;
  --color-noodles: #F9E3B4;
  --color-light-steel-blue: #C9D6EA;
  --color-rosewood: #7F515F;

  /* Semantic color aliases */
  --color-bg: var(--color-midnight-blue);
  --color-bg-card: #34495E;
  --color-bg-card-hover: #3D566E;
  --color-bg-footer: rgba(0, 0, 0, 0.2);
  --color-title: var(--color-noodles);
  --color-text: var(--color-light-steel-blue);
  --color-link: #DBA8B0;
  --color-link-hover: var(--color-noodles);
  --color-rosewood-light: #9A6776;
  --color-border: rgba(201, 214, 234, 0.15);
  --color-overlay: rgba(44, 62, 80, 0.85);
  --color-nav-hover-bg: rgba(249, 227, 180, 0.08);
  --color-input-bg: rgba(255, 255, 255, 0.08);
  --color-input-placeholder: rgba(201, 214, 234, 0.4);
  --color-focus-ring: rgba(249, 227, 180, 0.15);
  --color-success: #2ecc71;
  --color-success-text: #A8E6CF;
  --color-error: #e74c3c;
  --color-error-text: #F5A9A0;

  /* Fonts */
  --font-brand: 'Abril Fatface', serif;
  --font-tagline: 'Lucida Calligraphy', 'Palatino Linotype', cursive;
  --font-body: 'Source Sans 3', 'Source Sans Pro', sans-serif;
  --font-accent: 'Poppins', sans-serif;

  /* Font weights */
  --font-weight-medium: 500;
  --font-weight-semibold: 600;

  /* Font sizes — fluid scale */
  --text-xs: 0.75rem;
  --text-sm: 0.875rem;
  --text-base: 1rem;
  --text-lg: 1.125rem;
  --text-xl: 1.25rem;
  --text-2xl: 1.5rem;
  --text-3xl: 1.875rem;
  --text-4xl: 2.25rem;
  --text-5xl: clamp(2.5rem, 5vw, 3.5rem);
  --text-6xl: clamp(3rem, 6vw, 4.5rem);

  /* Spacing */
  --space-xs: 0.25rem;
  --space-sm: 0.5rem;
  --space-md: 1rem;
  --space-lg: 1.5rem;
  --space-xl: 2rem;
  --space-2xl: 3rem;
  --space-3xl: 4rem;
  --space-4xl: 6rem;

  /* Line heights */
  --line-height-relaxed: 1.7;

  /* Layout */
  --container-max: 1200px;
  --container-narrow: 800px;
  --container-text: 600px;
  --container-padding: var(--space-md);
  --header-height: 64px;

  /* Border radius */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-full: 9999px;

  /* Shadows */
  --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.2);
  --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.3);
  --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.4);

  /* Touch target minimum */
  --tap-min: 44px;

  /* Transitions */
  --transition-fast: 150ms ease;
  --transition-base: 250ms ease;
  --transition-slow: 400ms ease;
}

/* Tablet and up: increase container padding and header height */
@media (min-width: 768px) {
  :root {
    --container-padding: var(--space-lg);
    --header-height: 80px;
  }
}
