@import url('https://fonts.googleapis.com/css2?family=Figtree:wght@400;500;600;700;800&family=Fredoka:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&family=Instrument+Serif:ital@0;1&display=swap');

:root {
  --terracotta-50:#FCF1EA;
  --terracotta-100:#F9DFCE;
  --terracotta-200:#F1BB9A;
  --terracotta-300:#E89563;
  --terracotta-400:#DD7640;
  --terracotta-500:#C85A2E;
  --terracotta-600:#A8451F;
  --terracotta-700:#83341A;
  --terracotta-800:#5F2515;
  --terracotta-900:#3D180E;

  --mustard-50:#FBF2DF;
  --mustard-100:#F5E1B3;
  --mustard-200:#EBC97C;
  --mustard-300:#DFAE4D;
  --mustard-400:#CE9530;
  --mustard-500:#B27B22;
  --mustard-600:#8F621B;
  --mustard-700:#6C4A15;
  --mustard-800:#4A330F;
  --mustard-900:#2D1F09;

  --sage-50:#EFF5F1;
  --sage-100:#DCEAE0;
  --sage-200:#BAD5C3;
  --sage-300:#97BFA7;
  --sage-400:#78A78B;
  --sage-500:#5C8C6F;
  --sage-600:#486F58;
  --sage-700:#375544;
  --sage-800:#263C30;
  --sage-900:#17251D;

  --neutral-0:#FFFFFF;
  --neutral-25:#FEFDFB;
  --neutral-50:#FAF6EE;
  --neutral-100:#F3EBDB;
  --neutral-200:#E6D9C1;
  --neutral-300:#D3C0A0;
  --neutral-400:#B5A07C;
  --neutral-500:#93805F;
  --neutral-600:#715F45;
  --neutral-700:#564736;
  --neutral-800:#392E23;
  --neutral-900:#241C15;
  --neutral-950:#17110C;

  --danger-50:#FCEEEB;
  --danger-100:#F8D5CC;
  --danger-300:#EB9280;
  --danger-500:#D14B33;
  --danger-600:#AD3924;
  --danger-700:#8F2A1B;
  --info-50:#EEF3F6;
  --info-100:#D6E4EB;
  --info-300:#9DBECE;
  --info-500:#56839C;
  --info-700:#35586A;

  --accent-blush:#E8B7AE;
  --accent-sky:#AFC8D6;
  --accent-butter:#F0D48A;
  --accent-clay:#B9714A;

  --color-primary:var(--terracotta-600);
  --color-primary-hover:var(--terracotta-700);
  --color-primary-active:var(--terracotta-800);
  --color-primary-subtle:var(--terracotta-50);
  --color-primary-decorative:var(--terracotta-500);
  --color-secondary:var(--mustard-700);
  --color-secondary-hover:var(--mustard-800);
  --color-secondary-subtle:var(--mustard-50);
  --color-secondary-decorative:var(--mustard-400);
  --color-success:var(--sage-600);
  --color-success-subtle:var(--sage-50);
  --color-success-decorative:var(--sage-400);
  --color-warning:var(--mustard-600);
  --color-warning-subtle:var(--mustard-50);
  --color-danger:var(--danger-600);
  --color-danger-hover:var(--danger-700);
  --color-danger-subtle:var(--danger-50);
  --color-danger-decorative:var(--danger-500);
  --color-info:var(--info-500);
  --color-info-subtle:var(--info-50);

  --text-primary:var(--neutral-900);
  --text-secondary:var(--neutral-600);
  --text-tertiary:var(--neutral-500);
  --text-disabled:var(--neutral-400);
  --text-inverse:var(--neutral-25);
  --text-link:var(--terracotta-600);
  --text-link-hover:var(--terracotta-700);
  --surface-page:var(--neutral-50);
  --surface-card:var(--neutral-0);
  --surface-sunken:var(--neutral-100);
  --surface-inverse:var(--neutral-900);
  --surface-overlay:rgba(36,28,21,.5);
  --surface-disabled:var(--neutral-100);
  --border-subtle:var(--neutral-200);
  --border-default:var(--neutral-300);
  --border-strong:var(--neutral-400);
  --border-inverse:rgba(255,255,255,.16);
  --focus-ring:var(--terracotta-400);

  --font-display:'Fredoka',ui-rounded,'SF Pro Rounded',sans-serif;
  --font-accent:'Instrument Serif',Georgia,serif;
  --font-body:'Figtree',ui-sans-serif,system-ui,-apple-system,sans-serif;
  --font-mono:'IBM Plex Mono',ui-monospace,'SF Mono',monospace;
  --fs-display-2xl:4.5rem;
  --fs-display-xl:3.5rem;
  --fs-display-lg:2.75rem;
  --fs-display-md:2.125rem;
  --fs-heading-lg:1.75rem;
  --fs-heading-md:1.375rem;
  --fs-heading-sm:1.125rem;
  --fs-body-lg:1.125rem;
  --fs-body-md:1rem;
  --fs-body-sm:.875rem;
  --fs-label:.8125rem;
  --fs-caption:.75rem;
  --lh-tight:1.1;
  --lh-snug:1.25;
  --lh-normal:1.5;
  --lh-relaxed:1.6;
  --fw-regular:400;
  --fw-medium:500;
  --fw-semibold:600;
  --fw-bold:700;
  --tracking-tight:-.02em;
  --tracking-normal:0;
  --tracking-wide:.04em;
  --tracking-wider:.08em;
  --type-display-2xl:var(--fw-semibold) var(--fs-display-2xl)/var(--lh-tight) var(--font-display);
  --type-display-xl:var(--fw-semibold) var(--fs-display-xl)/var(--lh-tight) var(--font-display);
  --type-display-lg:var(--fw-medium) var(--fs-display-lg)/1.15 var(--font-display);
  --type-display-md:var(--fw-medium) var(--fs-display-md)/1.2 var(--font-display);
  --type-heading-lg:var(--fw-semibold) var(--fs-heading-lg)/var(--lh-snug) var(--font-body);
  --type-heading-md:var(--fw-semibold) var(--fs-heading-md)/var(--lh-snug) var(--font-body);
  --type-heading-sm:var(--fw-semibold) var(--fs-heading-sm)/var(--lh-snug) var(--font-body);
  --type-body-lg:var(--fw-regular) var(--fs-body-lg)/var(--lh-relaxed) var(--font-body);
  --type-body-md:var(--fw-regular) var(--fs-body-md)/var(--lh-relaxed) var(--font-body);
  --type-body-sm:var(--fw-regular) var(--fs-body-sm)/var(--lh-normal) var(--font-body);
  --type-label:var(--fw-semibold) var(--fs-label)/var(--lh-normal) var(--font-body);
  --type-caption:var(--fw-medium) var(--fs-caption)/var(--lh-normal) var(--font-body);
  --type-mono:var(--fw-regular) var(--fs-body-sm)/var(--lh-normal) var(--font-mono);

  --space-0:0;
  --space-1:.25rem;
  --space-2:.5rem;
  --space-3:.75rem;
  --space-4:1rem;
  --space-5:1.25rem;
  --space-6:1.5rem;
  --space-7:2rem;
  --space-8:2.5rem;
  --space-9:3rem;
  --space-10:4rem;
  --space-11:5rem;
  --space-12:6rem;
  --space-13:8rem;
  --container-max:1200px;
  --container-padding:clamp(1.25rem,4vw,4rem);

  --radius-xs:6px;
  --radius-sm:10px;
  --radius-md:14px;
  --radius-lg:20px;
  --radius-xl:28px;
  --radius-2xl:36px;
  --radius-pill:999px;
  --radius-blob:63% 37% 54% 46%/55% 48% 52% 45%;
  --shadow-xs:0 1px 2px rgba(36,28,21,.05);
  --shadow-sm:0 2px 6px rgba(36,28,21,.07);
  --shadow-md:0 6px 16px rgba(36,28,21,.09);
  --shadow-lg:0 16px 40px rgba(36,28,21,.14);
  --shadow-card:0 1px 2px rgba(36,28,21,.04),0 8px 24px rgba(36,28,21,.06);
  --shadow-inset:inset 0 1px 2px rgba(36,28,21,.06);
  --shadow-focus:0 0 0 4px rgba(221,118,64,.28);
  --ease-standard:cubic-bezier(.4,0,.2,1);
  --ease-out:cubic-bezier(0,0,.2,1);
  --ease-in:cubic-bezier(.4,0,1,1);
  --ease-bounce:cubic-bezier(.34,1.56,.64,1);
  --duration-fast:120ms;
  --duration-base:200ms;
  --duration-slow:360ms;

  /* Backward-compatible theme aliases. */
  --k-primary:var(--color-primary);
  --k-primary-hover:var(--color-primary-hover);
  --k-decor:var(--color-primary-decorative);
  --k-page:var(--surface-page);
  --k-card:var(--surface-card);
  --k-ink:var(--text-primary);
  --k-muted:var(--text-secondary);
  --k-soft:var(--text-tertiary);
  --k-border:var(--border-subtle);
  --k-border-strong:var(--border-default);
  --k-success:var(--color-success);
  --k-success-bg:var(--color-success-subtle);
  --k-danger:var(--color-danger);
  --k-display:var(--font-display);
  --k-body:var(--font-body);
  --k-accent:var(--font-accent);
  --k-mono:var(--font-mono);
  --k-wrap:var(--container-max);
  --k-shadow:var(--shadow-card);
}
