:root {
  /* Core colour: material, architectural, and deliberately low-saturation. */
  --mariani-ivory: #f2eee6;
  --mariani-porcelain: #faf8f3;
  --mariani-chalk: #fffdf8;
  --mariani-ink: #241f1a;
  --mariani-ink-soft: #52534d;
  --mariani-bottle: #26352d;
  --mariani-bottle-deep: #183027;
  --mariani-leaf: #596354;
  --mariani-timber: #33271f;
  --mariani-oxblood: #985844;
  --mariani-brass: #9a7a4f;
  --mariani-stone: #b8b0a3;
  --mariani-sand: #c9beab;
  --mariani-copper: #d8a48c;

  /* Semantic aliases used by the website and future Mariani surfaces. */
  --ivory: var(--mariani-ivory);
  --paper: var(--mariani-porcelain);
  --porcelain: var(--mariani-porcelain);
  --chalk: var(--mariani-chalk);
  --ink: var(--mariani-ink);
  --ink-soft: var(--mariani-ink-soft);
  --green: var(--mariani-bottle);
  --green-deep: var(--mariani-bottle-deep);
  --deep: var(--mariani-bottle-deep);
  --leaf: var(--mariani-leaf);
  --timber: var(--mariani-timber);
  --oxblood: var(--mariani-oxblood);
  --brass: var(--mariani-brass);
  --stone: var(--mariani-stone);
  --sand: var(--mariani-sand);
  --copper: var(--mariani-copper);
  --media-placeholder: #d8d3c9;
  --focus: #7a3b2d;
  --error: #8a2f28;
  --error-soft: #f1ddd8;
  --success-soft: #e2e8de;
  --line: rgba(31, 33, 29, .15);
  --line-light: rgba(255, 253, 248, .20);

  /* Type roles. Do not introduce a third family. */
  --font-display: "Newsreader", Georgia, serif;
  --font-text: "Plus Jakarta Sans", "Avenir Next", sans-serif;
  --serif: var(--font-display);
  --sans: var(--font-text);
  --text-micro: .8125rem;
  --text-small: .9375rem;
  --text-body: 1.0625rem;
  --text-lead: 1.125rem;

  /* One measured 8px rhythm, from annotation to full section. */
  --space-1: .25rem;
  --space-2: .5rem;
  --space-3: .75rem;
  --space-4: 1rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-24: 6rem;
  --space-32: 8rem;

  /* Shared composition. */
  --gutter: clamp(1.25rem, 4.2vw, 3.75rem);
  --content: 82.5rem;
  --shell: min(calc(100vw - (2 * var(--gutter))), var(--content));
  --section: clamp(5rem, 7.5vw, 7rem);
  --grid-gap: clamp(1rem, 1.7vw, 1.5rem);
  --measure-copy: 42rem;
  --measure-narrow: 34rem;

  /* Architectural geometry and restrained depth. */
  --radius-control: 0;
  --radius-image: 0;
  --radius-panel: .25rem;
  --shadow-panel: 0 1.7rem 4rem rgba(36, 31, 26, .11);
  --ease: cubic-bezier(.22, .61, .36, 1);
  --duration-fast: 220ms;
  --duration-standard: 650ms;
}
