:root {
  --ink: #1a2e35;
  --muted: #5a727a;
  --paper: #f3f8f6;
  --card: #ffffff;
  --sea: #0d8a7f;
  --sea-deep: #0a635c;
  --sea-soft: rgba(13, 138, 127, 0.4);
  --sun: #f9a61a;
  --sun-deep: #e08900;
  --brand-ll: #0c3c36;
  --brand-spark: #f9a61a;
  /* Reader / miniprogram home parity */
  --reader-page-bg: #fffaf0;
  --reader-ink: #173f42;
  --reader-muted: #4c6264;
  --reader-spark-brown: #8f5d00;
  --reader-tagline: #9f3c30;
  --reader-hero-start: #dff5ef;
  --reader-hero-end: #bfece4;
  --reader-hero-accent: #87d9ee;
  --reader-cta: #ffd66b;
  --reader-cta-shadow: #e4aa2e;
  --reader-card: #ffffff;
  --reader-line: rgba(10, 99, 92, 0.08);
  --brand-font: var(--font-kid);
  --coral: #e85d4c;
  --sky: #7ed8ff;
  --mint: #d4f0eb;
  --sand: #f7f1e6;
  --line: rgba(26, 46, 53, 0.1);
  --shadow: 0 16px 36px rgba(20, 90, 100, 0.16);
  --shadow-soft: 0 8px 20px rgba(20, 90, 100, 0.1);
  --shadow-chunky: 0 6px 0 #0a635c;
  --radius: 22px;
  --radius-sm: 14px;
  --font-display: "Fraunces", Georgia, serif;
  --font-kid: "Fredoka", "Nunito", system-ui, sans-serif;
  --font-body: "Nunito", system-ui, sans-serif;
  --space-1: clamp(0.35rem, 0.8vw, 0.5rem);
  --space-2: clamp(0.6rem, 1.2vw, 0.85rem);
  --space-3: clamp(0.9rem, 1.8vw, 1.25rem);
  --space-4: clamp(1.25rem, 2.5vw, 2rem);
  --space-5: clamp(1.75rem, 4vw, 3rem);
  --space-6: clamp(2.5rem, 6vw, 4.5rem);
  --text-xs: clamp(0.72rem, 0.9vw, 0.8rem);
  --text-sm: clamp(0.85rem, 1.1vw, 0.95rem);
  --text-md: clamp(1rem, 1.3vw, 1.1rem);
  --text-lg: clamp(1.15rem, 1.8vw, 1.35rem);
  --text-xl: clamp(1.5rem, 3vw, 2.2rem);
  --text-hero: clamp(2.4rem, 6.5vw, 4.5rem);
  --content: min(1120px, 100% - 2 * var(--space-4));
  --touch: 44px;
  --bp-sm: 640px;
  --bp-md: 960px;
  --bp-lg: 1200px;
}
