/* tokens.css: Bentley Studios
   direction: swiss (Swiss Poster) | palette: Existing brand palette (from existing-tokens.css) | seed: 12410
   fonts: Bricolage Grotesque / Public Sans | dials: variance 4, motion 3, density 6
   Generated by `studio.py direct`. Same inputs + seed = same file. Hex values carry an oklch() comment. */

@property --p { syntax: "<number>"; inherits: true; initial-value: 0; }

/* Bricolage Grotesque is 78.3% of the width of its system stand-in: this local face is scaled to match, so the swap
   to the web font barely moves the layout (font-swap CLS). */
@font-face { font-family: "Bricolage Grotesque fallback"; src: local("Arial"), local("ArialMT"), local("Liberation Sans"), local("Arimo"), local("Helvetica"); font-weight: 100 549; size-adjust: 78.3%; font-display: swap; }
@font-face { font-family: "Bricolage Grotesque fallback"; src: local("Arial Bold"), local("Arial-BoldMT"), local("Liberation Sans Bold"), local("Arimo Bold"), local("Helvetica Bold"); font-weight: 550 1000; size-adjust: 78.3%; font-display: swap; }

:root {
  color-scheme: dark;

  /* typefaces */
  --font-display: 'Bricolage Grotesque', 'Bricolage Grotesque fallback', 'Helvetica Neue', 'Arial Nova', 'Nimbus Sans', 'Segoe UI', sans-serif;
  --font-body: 'Public Sans', 'Helvetica Neue', 'Arial Nova', 'Nimbus Sans', 'Segoe UI', sans-serif;
  --font-mono: ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas, 'DejaVu Sans Mono', monospace;
  --font-label: var(--font-body);
  --display-weight: 800;
  --heading-weight: 700;
  --body-weight: 400;
  --strong-weight: 600;
  --display-stretch: 90%;
  --display-case: none;
  --display-tracking: -0.035em;
  --heading-tracking: -0.02em;
  --leading-display: 0.95;
  --leading-tight: 1.1;
  --leading-body: 1.56;
  --body-tracking: 0.01em;
  --label-case: none;
  --tracking-caps: 0.06em;
  --label-tracking: 0;

  /* fluid type scale 360-1440px (Utopia-style; max capped at 2.5x min for 200% zoom) */
  --step--2: clamp(0.5278rem, 0.75rem - 0.2469vw, 0.6944rem);
  --step--1: clamp(0.7917rem, 0.8472rem - 0.0617vw, 0.8333rem);
  --step-0: clamp(1rem, 0.9375rem + 0.2778vw, 1.1875rem);
  --step-1: clamp(1.2rem, 1.0062rem + 0.8611vw, 1.7812rem);
  --step-2: clamp(1.44rem, 1.0294rem + 1.825vw, 2.6719rem);
  --step-3: clamp(1.728rem, 0.9681rem + 3.3775vw, 4.0078rem);
  --step-4: clamp(2.0736rem, 1.0714rem + 4.4544vw, 5.0803rem);
  --step-5: clamp(2.4883rem, 1.2856rem + 5.3453vw, 6.0964rem);
  --step-6: clamp(2.986rem, 1.5428rem + 6.4143vw, 7.3157rem);
  --step-7: clamp(3.5832rem, 1.8513rem + 7.6972vw, 8.7788rem);

  /* fluid space scale (density 6) */
  --space-3xs: clamp(0.25rem, 0.2344rem + 0.0694vw, 0.2969rem);
  --space-2xs: clamp(0.5rem, 0.4688rem + 0.1389vw, 0.5938rem);
  --space-xs: clamp(0.75rem, 0.7031rem + 0.2083vw, 0.8906rem);
  --space-s: clamp(1rem, 0.9375rem + 0.2778vw, 1.1875rem);
  --space-m: clamp(1.5rem, 1.4062rem + 0.4167vw, 1.7812rem);
  --space-l: clamp(2rem, 1.875rem + 0.5556vw, 2.375rem);
  --space-xl: clamp(3rem, 2.8125rem + 0.8333vw, 3.5625rem);
  --space-2xl: clamp(4rem, 3.75rem + 1.1111vw, 4.75rem);
  --space-3xl: clamp(6rem, 5.625rem + 1.6667vw, 7.125rem);
  --space-4xl: clamp(8rem, 7.5rem + 2.2222vw, 9.5rem);
  --space-3xs-2xs: clamp(0.25rem, 0.1354rem + 0.5093vw, 0.5938rem);
  --space-2xs-xs: clamp(0.5rem, 0.3698rem + 0.5787vw, 0.8906rem);
  --space-xs-s: clamp(0.75rem, 0.6042rem + 0.6481vw, 1.1875rem);
  --space-s-m: clamp(1rem, 0.7396rem + 1.1574vw, 1.7812rem);
  --space-m-l: clamp(1.5rem, 1.2083rem + 1.2963vw, 2.375rem);
  --space-l-xl: clamp(2rem, 1.4792rem + 2.3148vw, 3.5625rem);
  --space-xl-2xl: clamp(3rem, 2.4167rem + 2.5926vw, 4.75rem);
  --space-2xl-3xl: clamp(4rem, 2.9583rem + 4.6296vw, 7.125rem);
  --space-3xl-4xl: clamp(6rem, 4.8333rem + 5.1852vw, 9.5rem);
  --space-s-l: clamp(1rem, 0.5417rem + 2.037vw, 2.375rem);
  --space-m-xl: clamp(1.5rem, 0.8125rem + 3.0556vw, 3.5625rem);
  --space-l-2xl: clamp(2rem, 1.0833rem + 4.0741vw, 4.75rem);
  --space-xl-3xl: clamp(3rem, 1.625rem + 6.1111vw, 7.125rem);
  --space-2xl-4xl: clamp(4rem, 2.1667rem + 8.1481vw, 9.5rem);
  --section-space: clamp(3rem, 1.724rem + 5.6713vw, 6.8281rem);
  --gutter: var(--space-s-l);
  --container: 1320px;
  --measure: 66ch;

  /* colour (60 / 30 / 10: bg / surface / accent) */
  --c-bg: #0c1828; /* oklch(20.7% 0.036 256.0) */
  --c-surface: #13253b; /* oklch(26.1% 0.048 254.3) */
  --c-ink: #eee9df; /* oklch(93.5% 0.014 84.6) */
  --c-muted: #9fb0c3; /* oklch(75.0% 0.033 251.2) */
  --c-line: #253e5c; /* oklch(35.8% 0.061 253.8) */
  --c-accent: #f2a541; /* oklch(78.0% 0.144 69.4) */
  --c-accent-2: #355dc6; /* oklch(51.0% 0.170 265.1) */
  --c-accent-ink: #0c1828; /* oklch(20.7% 0.036 256.0) */
  --c-accent-raw: #f2a541; /* oklch(78.0% 0.144 69.4) */
  --c-accent-raw-ink: #0c1828; /* oklch(20.7% 0.036 256.0) */
  --c-accent-2-raw: #1d3fa6; /* oklch(41.4% 0.170 265.3) */
  --c-selection: color-mix(in oklab, var(--c-accent) 28%, var(--c-bg));
  --c-focus: var(--c-accent);

  /* shape */
  --radius-s: 0px;
  --radius-m: 0px;
  --radius-l: 0px;
  --radius-btn: 0px;
  --border: 2px solid var(--c-ink);
  --shadow-1: none;
  --shadow-2: none;

  /* motion */
  --ease-out: cubic-bezier(0.25, 1, 0.5, 1);
  --ease-in-out: cubic-bezier(0.76, 0, 0.24, 1);
  --ease-spring: cubic-bezier(0.25, 1, 0.5, 1);
  --dur-1: 114ms;
  --dur-2: 266ms;
  --dur-3: 532ms;
  --dur-ui: 160ms; /* hovers and toggles stay under 300ms */
  --dur-press: 120ms;
  --reveal-distance: 10px;
  --reveal-blur: 0px;
  --stagger: 60ms;

  /* layout dials (variance 4) */
  --split: 7fr 5fr;
  --offset-cols: 0;
  --tilt: 0deg;
}

@media (prefers-reduced-motion: reduce) {
  :root { --dur-1: 0ms; --dur-2: 0ms; --dur-3: 0ms; --dur-ui: 0ms; --dur-press: 0ms; --reveal-distance: 0px; --reveal-blur: 0px; --stagger: 0ms; --tilt: 0deg; }
}
