:root{
/* ── Base palette (exact values from the brand deck, spec page "Paleta") ── */
--cream:#F3ECDC;
--olive:#525223;
--olive-variant:#747531;
--clay:#2B1812;
--terracotta:#DB6F27;
--brown:#733916;
--sage:#CBD5BD;

/* Tints derived from the base palette only — no new hues */
--cream-deep:#EAE1CB;
--cream-tint:#F8F4EA;
--olive-wash:#E4E4D3;
--sage-deep:#B7C4A5;
--clay-70:rgba(43,24,18,.70);
--clay-45:rgba(43,24,18,.45);
--clay-18:rgba(43,24,18,.18);
--clay-10:rgba(43,24,18,.10);
--cream-60:rgba(243,236,220,.60);
--cream-25:rgba(243,236,220,.25);

/* ── Semantic surfaces ── */
--surface:var(--cream);              /* default page background — never black */
--surface-raised:var(--cream-tint);
--surface-sunken:var(--cream-deep);
--surface-card:var(--cream-tint);
--surface-inverse:var(--olive);      /* large olive blocks */
--surface-inverse-alt:var(--clay);   /* brown blocks, editorial panels */
--surface-soft:var(--sage);          /* calm secondary surface */

/* ── Semantic text ── */
--text-body:var(--clay);
--text-heading:var(--clay);
--text-muted:var(--clay-70);
--text-faint:var(--clay-45);
--text-accent:var(--terracotta);
--text-secondary:var(--brown);
--text-on-inverse:var(--cream);
--text-on-inverse-muted:var(--cream-60);

/* ── Lines ── */
--line-hairline:var(--clay-18);      /* the wordmark rule, dividers */
--line-strong:var(--clay);
--line-on-inverse:var(--cream-25);

/* ── Interactive ── */
--action:var(--olive);
--action-hover:var(--olive-variant);
--action-press:#3F3F1A;
--action-text:var(--cream);
--action-quiet-border:var(--clay);
--action-quiet-hover-surface:var(--clay);
--action-quiet-hover-text:var(--cream);
--accent:var(--terracotta);
--accent-hover:#C55F1C;
--focus-ring:var(--terracotta);

/* ── Status (drawn from the earth palette, never traffic-light colours) ── */
--status-positive:var(--olive-variant);
--status-attention:var(--terracotta);
--status-quiet:var(--brown);
}
