/* Generated from the design system tokens — do not edit by hand. */
:root, [data-theme="light"] {
  --warm-black: #231212; /* Core. Primary dark field: hero panels, image overlays and immersive moments, and the favicon mark's ink. Text colour on `gallery-ground` (15.5:1), `white` (18:1), `mist-plum` (12.2:1), `soft-plum` (7.3:1) and `highlight-green` (11.4:1). */
  --plum-lead: #6b5e8e; /* Lead brand colour: links, active states, navigation cues and key graphic forms. As text it reads 5.0:1 on `gallery-ground` and 5.8:1 on `white`, but only 3.9:1 on `mist-plum` (large text only there). `white` or `gallery-ground` text on a `plum-lead` fill: 5.8:1 / 5.0:1. */
  --highlight-green: #81e471; /* Accent: selected labels, moments of emphasis, focus and compact calls to action. Punctuation, not atmosphere. Always set `warm-black` text on it (11.4:1). As an edge on light grounds it reads only 1.4:1 on `gallery-ground` and 1.6:1 on `white` — below the 3:1 a focus indicator needs; the hex is under review. */
  --soft-plum: #a8a1b8; /* Hover states, charts and secondary brand surfaces. Not a text colour on light grounds (2.1:1 on `gallery-ground`). */
  --mist-plum: #d8d2e1; /* Quiet tint: dividers, selected backgrounds and soft information panels. Can group information without flattening the hierarchy. */
  --gallery-ground: #edeef0; /* Lightest background: the default canvas and generous editorial whitespace. Keep it visible in generous fields. */
  --deep-grey: #4a454f; /* Text anchor: headlines, body copy, rules and high-contrast controls. Reads 8.0:1 on `gallery-ground`, 9.3:1 on `white`, 6.3:1 on `mist-plum`. */
  --white: #ffffff; /* Control and card surfaces: inputs, textareas, selects, cards, chips and icon buttons sitting on `gallery-ground`. The system has no cream. */
  --disabled-grey: #dad9dd; /* Fill of disabled controls (inputs, checkboxes, toggles, chips, icon buttons). */
  --disabled-ink: #86818c; /* Text, icons and outlines inside disabled controls, on `disabled-grey` (2.7:1). Disabled content is exempt from WCAG contrast minimums; pair it with the disabled cursor and never use it for anything a person must read to act. */
  --error-red: #b3261e; /* Error outlines, error labels and validation messages. Reads 6.5:1 on `white`, 5.6:1 on `gallery-ground`, 4.4:1 on `mist-plum` (large text only there). Always pair it with a written message, never colour alone. */
  --shadow-hard: -3px 3px 0 0 #231212; /* Hover: the control lifts up and right — `transform: translate(3px, -3px)` — and this crisp `warm-black` shadow is left behind, down and to the left. No blur, ever. */
}
:root {
  --baseline: 8px; /* The 8px baseline unit every spacing and line-height decision is built on. */
  --radius-control: 8px; /* Inputs, textareas, selects, buttons, cards and icon buttons. */
  --radius-pill: 9999px; /* Chips, tags, state badges and toggles. */
  --outline-default: 1px; /* Resting outline on controls, cards and chips. */
  --outline-strong: 2px; /* Focus edge and emphasised outlines. */
  --font-display: "Line", "Instrument Sans", "Helvetica Neue", Arial, sans-serif;
  --font-sans: "Instrument Sans", "Helvetica Neue", Arial, sans-serif; /* Instrument Sans (SIL OFL, free): Regular 400 + Medium 500 */
  --font-mono: ui-monospace, "SF Mono", Menlo, monospace;
  --text-type\.display: 500 127px/120px var(--font-display); /* Line 20. Once per page, 1–2 lines maximum. Scale step 8 (17 × 1.286⁸). Desktop end (1440px) of a fluid `clamp()`; the small end is `type.display.mobile`. */
  --text-type\.heading\.01: 500 77px/80px var(--font-sans); /* H1. Instrument Sans Medium, sentence case. Step 7. Desktop end (1440px) of a fluid `clamp()`; the small end is `type.heading.01.mobile`. */
  --text-type\.heading\.02: 500 60px/64px var(--font-sans); /* H2. Instrument Sans Medium, sentence case. Step 6. Desktop end (1440px) of a fluid `clamp()`; the small end is `type.heading.02.mobile`. */
  --text-type\.heading\.03: 500 46px/48px var(--font-sans); /* H3. Instrument Sans Medium, sentence case. Step 5. Desktop end (1440px) of a fluid `clamp()`; the small end is `type.heading.03.mobile`. */
  --text-type\.heading\.04: 500 22px/24px var(--font-sans); /* H4: card, panel and component titles. Instrument Sans Medium. Step 1. Same at every breakpoint. */
  --text-type\.body\.lead: 400 22px/32px var(--font-sans); /* Intro and lead paragraphs under a heading. Instrument Sans Regular. Step 1. Same at every breakpoint. */
  --text-type\.body\.default: 400 17px/28px var(--font-sans); /* Paragraph. Instrument Sans Regular. The scale's base (step 0). Keep measures near 65 characters. Same at every breakpoint. */
  --text-type\.body\.small: 400 13px/16px var(--font-sans); /* Supporting text, captions, helper and error messages, metadata. Instrument Sans Regular. Step −1. Keep to one or two lines. Same at every breakpoint. */
  --text-type\.label: 500 13px/16px var(--font-sans); /* Form labels, buttons, navigation, chips and text links. Instrument Sans Medium. Step −1. */
  --text-type\.eyebrow: 700 13px/16px var(--font-sans); /* Section kickers and page headers. Instrument Sans Medium (two weights only), set in UPPERCASE. Step −1. */
  --text-type\.badge: 700 10px/16px var(--font-sans); /* State badges and tiny tags. Instrument Sans Medium (two weights only), set in UPPERCASE. Step −2 — the smallest size in the system. */
  --text-type\.display\.mobile: 500 60px/64px var(--font-display); /* `type.display` at 375px — the small end of its fluid `clamp()` range. Line 20. Step 6. */
  --text-type\.heading\.01\.mobile: 500 46px/48px var(--font-sans); /* `type.heading.01` at 375px — the small end of its fluid `clamp()` range. Step 5. */
  --text-type\.heading\.02\.mobile: 500 36px/40px var(--font-sans); /* `type.heading.02` at 375px — the small end of its fluid `clamp()` range. Step 4. */
  --text-type\.heading\.03\.mobile: 500 28px/32px var(--font-sans); /* `type.heading.03` at 375px — the small end of its fluid `clamp()` range. Step 3. */
}
/* Webfonts: Copyright © Letters From Sweden. All rights reserved. To obtain a license, please see: http://lettersfromsweden.se */
@font-face {
  font-family: "Line";
  src: url("../fonts/LineWeb-16.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

/* Instrument Sans — self-hosted, SIL Open Font License */
@font-face {
  font-family: "Instrument Sans";
  src: url("../fonts/InstrumentSans-Regular.woff") format("woff");
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Instrument Sans";
  src: url("../fonts/InstrumentSans-Medium.woff") format("woff");
  font-weight: 500; font-style: normal; font-display: swap;
}
