/* ============================================================================
   THE LAND REGISTER — Infinite Properties identity tokens
   ----------------------------------------------------------------------------
   Vendored copy of ui/design/land-register.css for the site-facts pilot —
   edit the original and re-copy, so the two never drift.
   Derived from the printed artefacts of Queensland land administration:
   cadastral survey sheets, Torrens certificates of title, contour plans.

   Token NAMES match the page-level tokens the dark pages declare inline
   (--surface-card / --text-primary / --accent), not design/zephia-dark.css
   (--bg / --ink / --acc). A later <style> :root wins over this file, so
   delete inline colour literals when swapping the <link> — see ui/dossier.html.

   Two rules that carry the whole system:
     1. ONE accent. --accent (Register Red) appears once per screen.
     2. NO depth. No shadows, no glow, no radius above 2px. Rules, not boxes.
   ========================================================================== */

:root {
  /* ── Ground ──────────────────────────────────────────────────────────
     Drafting linen: cool green-grey. Deliberately NOT cream (#F4F1EA) —
     cream + serif + terracotta is now its own machine-made house style. */
  --linen-100:#F0F1EB; --linen-200:#E7E8E0; --linen-300:#DCDDD3;
  --linen-400:#D2D4C8; --linen-500:#C9CBC1;

  /* ── Ink ramp — carbon, cool-biased, as survey linework prints ────── */
  --ink-900:#16181A; --ink-800:#25282C; --ink-700:#3A3E43;
  --ink-600:#4C5055; --ink-500:#5E636A; --ink-400:#7C8188;
  --ink-300:#9BA0A5; --ink-200:#B9BCB1;

  /* ── The one accent ──────────────────────────────────────────────────
     Register Red: the subject-parcel wash on a survey plan and the stamp
     on a title certificate. Used ONCE per screen. Never as a fill. */
  --red-700:#6E2019; --red-600:#8C2A22; --red-500:#A63A30;
  --red-tint:rgba(140,42,34,.10);

  /* ── Cartographic semantics — printed-ink conventions, not UI colours */
  --sepia-700:#5C4524; --sepia-600:#75592F; --sepia-line:#8A6A45;
  --blue-700:#2C445A;  --blue-600:#3C5A72;  --blue-line:#4E7191;
  --green-700:#234531; --green-600:#2F5A3F; --green-line:#417653;

  /* ── Semantic surfaces ─────────────────────────────────────────────── */
  --surface-page:var(--linen-200);
  --surface-card:var(--linen-100);
  --surface-sunken:var(--linen-300);
  --surface-hover:var(--linen-300);
  --surface-active:var(--linen-400);

  --text-primary:var(--ink-900);      /* 14.5:1 on page */
  --text-secondary:var(--ink-600);    /*  6.7:1 */
  --text-tertiary:var(--ink-500);     /*  4.7:1 — AA floor, do not lighten */
  --text-muted:var(--ink-500);
  --text-accent:var(--red-600);       /*  8.0:1 */

  --accent:var(--red-600);
  --accent-subtle:var(--red-tint);

  --border-default:var(--ink-200);
  --border-subtle:var(--linen-500);
  --border-heavy:var(--ink-900);      /* the 2px rule under table headers */

  /* ── Verdicts — earth pigments, never traffic lights ───────────────── */
  --verdict-subdividable:var(--green-600);
  --verdict-checking:var(--sepia-600);
  --verdict-constrained:var(--red-600);

  --positive-700:var(--green-600); --positive-500:var(--green-700); --positive-100:rgba(47,90,63,.10);
  --warning-700:var(--sepia-600);  --warning-500:var(--sepia-700);  --warning-100:rgba(117,89,47,.10);
  --critical-700:var(--red-600);   --critical-500:var(--red-700);   --critical-100:var(--red-tint);

  /* ── Overlay hazards — retuned for a light ground ──────────────────── */
  --ov-flood:#3C5A72; --ov-bushfire:#8A5A22; --ov-koala:#3F6B57;
  --ov-veg:#4E6B3E;   --ov-waterway:#2F6E8C; --ov-heritage:#6B4F7A;
  --ov-zoning:#6E7269; --ov-contour:#8A6A45;

  /* ── Type ────────────────────────────────────────────────────────────
     Newsreader over Playfair/Lora — same authority, none of the AI
     association. Plex Sans over Inter for the same reason. */
  --font-display:'Newsreader',Georgia,'Times New Roman',serif;
  --font-serif:'Newsreader',Georgia,serif;
  --font-sans:'IBM Plex Sans',-apple-system,'Segoe UI',sans-serif;
  --font-mono:'IBM Plex Mono','SFMono-Regular',Menlo,monospace;

  --display-lg:400 clamp(40px,6.4vw,78px)/1.0 var(--font-display);
  --display-sm:400 1.75rem/1.14 var(--font-display);
  --heading-sm:600 1.0625rem/1.3 var(--font-sans);
  --heading-xs:600 0.9375rem/1.3 var(--font-sans);
  --body-md:400 0.9375rem/1.55 var(--font-sans);
  --body-sm:400 0.875rem/1.5 var(--font-sans);
  --body-xs:400 0.8125rem/1.45 var(--font-sans);
  --prose:400 1.0625rem/1.62 var(--font-serif);
  --mono-sm:500 0.75rem/1.5 var(--font-mono);
  --label-sm:600 0.65625rem/1.3 var(--font-mono);

  --tracking-snug:-0.015em;
  --tracking-label:0.17em;      /* uppercase mono labels */
  --tracking-wordmark:0.30em;   /* the firm name, set as a firm name */

  /* Old-style figures in prose; tabular lining figures in data columns. */
  --figures-prose:oldstyle-nums proportional-nums;
  --figures-data:lining-nums tabular-nums;

  /* ── Form — a survey sheet has no rounded corners and casts no shadow */
  --radius-sm:0; --radius-md:0; --radius-lg:0; --radius-xl:2px;
  --radius-full:999px;          /* status dots only */

  --shadow-xs:none; --shadow-sm:none; --shadow-md:none; --shadow-xl:none;

  --rule:1px solid var(--border-default);
  --rule-soft:1px solid var(--border-subtle);
  --rule-heavy:2px solid var(--border-heavy);

  /* ── Motion — fades only. No scan-lines, no pulses, no blinking. ───── */
  --ease-out:cubic-bezier(0.16,1,0.3,1);
  --dur-fast:100ms; --dur-base:160ms;
}

/* Prose vs data figures — the distinction is free and it is a hallmark. */
.prose, p, .lead { font-variant-numeric:var(--figures-prose); }
table, .data, .mono, .lbl, .tabular { font-variant-numeric:var(--figures-data); }

/* Uppercase mono label — the system's only decorative-looking device, and it
   earns it by always carrying a real field name. */
.lbl {
  font:var(--label-sm);
  letter-spacing:var(--tracking-label);
  text-transform:uppercase;
  color:var(--text-tertiary);
}

/* The wordmark. Small caps, wide tracking, engraved monogram — a surname,
   not a claim. Never set in a sans, never given a glow. */
.wordmark {
  font-family:var(--font-display);
  font-weight:400;
  letter-spacing:var(--tracking-wordmark);
  text-transform:uppercase;
  color:var(--text-primary);
}
.wordmark .monogram { color:var(--accent); }

@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation:none !important; transition:none !important; }
}
