/* Design tokens for every page: the public site, sign-in and the app. The values come from the
   approved homepage (heist variant A, docs/overhaul-2026-10/heist/REPORT-MOBBIN.html). site.css,
   main.css and the app templates read them here and never restate a value.
   Text sizes: body text, descriptions, notes and table cells never go below --text-body; only labels,
   buttons, tabs and badges use --text-label. scripts/readability.mjs checks the rendered result. */
:root {
    --ink: #010002;
    --ink-2: rgba(1, 0, 2, 0.72);
    --ground: #f9f9fa;
    --panel: #f2f3f5;
    --band: #eff1f3;
    --paper: #ffffff;
    --rule: rgba(1, 0, 2, 0.14);
    --rule-strong: rgba(1, 0, 2, 0.3);
    --dot: #e5e7eb;
    --accent: #5046e5;
    --accent-deep: #3d35b0;
    --accent-soft: #6c63ff;
    --tint: #a5a0ff;
    --wash: rgba(80, 70, 229, 0.07);
    --on-dark: #e5e7eb;
    /* the language loop's focus gradient; every stop keeps 4.3:1 or more on --ground */
    --rainbow: linear-gradient(90deg, #e0245e, #c2410c 18%, #a16207 34%, #15803d 50%, #0369a1 66%, #5046e5 82%, #a21caf);
    --rainbow-flow: linear-gradient(90deg, #e0245e, #c2410c 12%, #a16207 24%, #15803d 36%, #0369a1 48%, #5046e5 60%, #a21caf 72%, #e0245e 86%, #c2410c);
    /* one colour per topic folder; each label keeps 5.4:1 or more on its folder */
    --folder-rose: #be185d;
    --folder-amber: #f5b83d;
    --folder-teal: #0f766e;
    --folder-indigo: #4f46e5;
    /* status text, never a tinted box: each keeps 4.5:1 or more on --paper and --ground */
    --danger: #b91c1c;
    --success: #047857;
    --warning: #92400e;

    --display: 'Space Grotesk', 'Inter', system-ui, sans-serif;
    --body: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --text-label: 0.875rem;
    --text-body: 1rem;
    --text-copy: 1.0625rem;
    --text-lead: clamp(1.125rem, 1.5vw, 1.3125rem);
    --leading: 1.6;
    --type-hero: clamp(2.5rem, 4.6vw, 4.125rem);
    --type-page: clamp(2.25rem, 4.2vw, 3.5rem);
    --type-section: clamp(1.75rem, 3vw, 2.5rem);
    --type-title: clamp(1.5rem, 2vw, 2.0625rem);
    --track-display: -0.04em;
    --track-title: -0.03em;

    --wrap: 1158px;
    --gutter: 16px;
    --section-y: clamp(72px, 8vw, 110px);
    --radius-sm: 7px;
    --radius: 12px;
    --radius-lg: 18px;
    --shadow-sm: 0 1px 2px rgba(1, 0, 2, 0.1);
    --shadow-md: 0 2px 10px rgba(80, 70, 229, 0.08);
    --shadow-lg: 0 8px 24px rgba(1, 0, 2, 0.1);

    /* The light bloom behind a hero: a white core, a violet bloom and an indigo falloff at the right
       edge, from the dark variant's light cone re-tuned as tints for the off-white ground. */
    --bloom:
        radial-gradient(10% 34% at 100% 46%, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0.85) 40%, rgba(255, 255, 255, 0) 100%),
        radial-gradient(30% 50% at 100% 46%, rgba(150, 142, 255, 0.95) 0%, rgba(140, 132, 255, 0.7) 35%, rgba(130, 122, 255, 0.25) 70%, rgba(130, 122, 255, 0) 100%),
        radial-gradient(62% 72% at 100% 46%, rgba(92, 82, 240, 0.55) 0%, rgba(80, 70, 229, 0.3) 40%, rgba(80, 70, 229, 0.08) 75%, rgba(80, 70, 229, 0) 100%),
        radial-gradient(110% 90% at 100% 46%, rgba(80, 70, 229, 0.14) 0%, rgba(80, 70, 229, 0) 100%),
        var(--ground);
    --bloom-narrow:
        radial-gradient(14% 28% at 100% 40%, rgba(255, 255, 255, 0.95) 0%, rgba(255, 255, 255, 0.5) 40%, rgba(255, 255, 255, 0) 100%),
        radial-gradient(70% 36% at 100% 40%, rgba(165, 160, 255, 0.5) 0%, rgba(165, 160, 255, 0.24) 45%, rgba(165, 160, 255, 0) 100%),
        radial-gradient(150% 52% at 100% 40%, rgba(108, 99, 255, 0.13) 0%, rgba(80, 70, 229, 0.05) 55%, rgba(80, 70, 229, 0) 100%),
        var(--ground);
}
