
:root {
  --raw-color-ivory-50: #f6f3ee;       /* frame fill */
  --raw-color-ivory-100: #ece6dc;      /* backdrop contour lines */
  --raw-color-ivory-200: #e0d8cb;      /* hairlines & dividers */
  --raw-color-stone-400: #b9b0a3;      /* muted copy on dark */
  --raw-color-ink-950: #0d0c0a;        /* all body copy */
  --raw-color-ink-900: #14120f;        /* CTA slab fill */
  --raw-color-ink-800: #1f1c18;
  --raw-color-ink-700: #2e2a24;
  --raw-color-ink-alpha-40: rgb(13 12 10 / 0.4);
  --raw-color-taupe-500: #7d766c;      /* map: the halftone */
  --raw-color-taupe-600: #4f4a43;      /* map: grid lines, inner ring */
  --raw-color-taupe-900: #201d19;      /* map: outer rings */
  --raw-color-gold-400: #c9a96e;       /* accent */
  --raw-color-gold-200: #e6d3ad;       /* accent, lifted — route heads, lit tiles */
  --raw-color-gold-alpha-25: rgb(201 169 110 / 0.25);
  --raw-color-bronze-600: #5a5248;     /* timeline: plate outline */
  --raw-color-white-alpha-10: rgb(255 255 255 / 0.1);
  --raw-color-white-alpha-20: rgb(255 255 255 / 0.2);
  --raw-color-ink-alpha-08: rgb(13 12 10 / 0.08);
  --raw-color-white-alpha-40: rgb(255 255 255 / 0.4);
  --raw-color-white: #ffffff;
  --raw-color-alert-500: #b4462e;      /* form errors only — never decorative */

  --raw-font-size-96: 6rem; --raw-font-size-70: 4.375rem; --raw-font-size-55: 3.4375rem;
  --raw-font-size-52: 3.25rem; --raw-font-size-38: 2.375rem; --raw-font-size-36: 2.25rem;
  --raw-font-size-20: 1.25rem; --raw-font-size-18: 1.125rem; --raw-font-size-16: 1rem;
  --raw-font-size-14: 0.875rem; --raw-font-size-12: 0.75rem;

  /* Tier 2 — roles */
  --background: var(--raw-color-ivory-50);
  --foreground: var(--raw-color-ink-950);
  --foreground-muted: var(--raw-color-ink-alpha-40);
  --surface-dark: var(--raw-color-ink-900);
  --surface-black: var(--raw-color-ink-950);
  --surface-muted: var(--raw-color-ivory-100);
  --surface-soft: var(--raw-color-ivory-200);
  --foreground-on-dark: var(--raw-color-white);
  --foreground-on-dark-muted: var(--raw-color-stone-400);
  --foreground-on-dark-faint: var(--raw-color-white-alpha-40);
  --border-muted: var(--raw-color-ivory-200);
  --border-on-dark: var(--raw-color-ink-700);
  --map-dot: var(--raw-color-taupe-500);
  --map-grid: var(--raw-color-taupe-600);
  --map-grid-ghost: var(--raw-color-taupe-900);
  --map-mark: var(--raw-color-ivory-50);
  --timeline-outline: var(--raw-color-bronze-600);
  --timeline-fill: var(--raw-color-white-alpha-10);
  --timeline-rail: var(--raw-color-white-alpha-20);
  --residence-contour: var(--raw-color-ink-alpha-08);
  --footer-contour: var(--raw-color-white-alpha-10);
  --accent: var(--raw-color-gold-400);
  --accent-bright: var(--raw-color-gold-200);
  --accent-muted: var(--raw-color-gold-alpha-25);

  --type-impact: var(--raw-font-size-96); --type-display-lg: var(--raw-font-size-70);
  --type-display: var(--raw-font-size-52); --type-display-sm: var(--raw-font-size-55);
  --type-heading: var(--raw-font-size-38); --type-year: var(--raw-font-size-36);
  --type-title: var(--raw-font-size-20); --type-lead: var(--raw-font-size-18);
  --type-label: var(--raw-font-size-16); --type-body: var(--raw-font-size-14);
  --type-eyebrow: var(--raw-font-size-12);

  --leading-headline: 0.95; --leading-flat: 0.9; --leading-cap: 0.72; --leading-copy: 1.35;
  --tracking-label: 0.08em;    /* Manrope uppercase labels: open, not tight */
  --tracking-eyebrow: 0.14em;
  --tracking-display: 0.01em;  /* Cormorant uppercase */
  --tracking-figure: -0.02em;

  --duration-fast: 150ms; --duration-normal: 250ms; --duration-plate: 700ms;
  --ease-entrance: cubic-bezier(0.2, 0, 0, 1);
  --ease-plate: cubic-bezier(0.33, 0, 0, 1);
  --font-sans: "Manrope", system-ui, sans-serif;
  --font-display: "Cormorant Garamond", "Times New Roman", serif;
}
html[lang="bn"] {
  --font-sans: "Hind Siliguri", "Manrope", sans-serif;
  --font-display: "Noto Serif Bengali", "Cormorant Garamond", serif;
  --tracking-label: 0; --tracking-eyebrow: 0; --tracking-display: 0;
}
html[lang="bn"] * { text-transform: none !important; }   /* Bangla has no case */
body { background: var(--background); color: var(--foreground); font-family: var(--font-sans); min-height: 100lvh; margin: 0; }
