/* Upsolut design tokens. Source: BACKEND/branding/design-system/tokens/
   (Claude Design, "Momentum Blocks"). OKLCH values converted to hex so every
   browser and the contrast validator read the same colour.
   This file is the token source for the site: publish_flow.py does not
   regenerate it (theme_source = design-system in the site config). */
:root {
  /* Deep green: the lead brand field */
  --green-950: #0B1A14; --green-900: #10231C; --green-800: #003E2A; --green-700: #0A553D;
  --green-600: #237356; --green-400: #6EA68E; --green-200: #BDDDCE; --green-100: #E4EEE9; --green-50: #F0F5F2;
  /* Amber: action */
  --amber-600: #DA7F00; --amber-500: #FC9F30; --amber-300: #FFC882; --amber-100: #FFEACA; --amber-ink: #7A4702;
  /* Lion coral: warmth and emphasis. Never as text on chalk. */
  --coral-700: #BD3216; --coral-500: #F9543A; --coral-300: #FFB39E; --coral-100: #FFE7DF;
  /* Warm neutrals */
  --white: #FFFFFF; --chalk: #F3F1EC; --chalk-2: #EAE7E0; --stone-300: #D6D2C8; --stone-400: #B9B4A8; --stone-600: #6F7D77; --stone-700: #5E6B65;
  /* Semantic */
  --fg-1: var(--green-900); --fg-2: var(--stone-700); --fg-on-dark: var(--chalk); --fg-on-dark-2: #BFD0C8;
  --bg-page: var(--chalk); --bg-surface: var(--white); --bg-sunken: var(--chalk-2); --bg-brand: var(--green-800); --bg-inverse: var(--green-900);
  --border-1: var(--stone-300); --border-strong: var(--green-900); --border-on-dark: #7FA193;
  --action: var(--amber-500); --action-hover: var(--amber-600); --action-fg: var(--green-900);
  --danger: var(--coral-700); --danger-bg: var(--coral-100);
  --focus-ring: 0 0 0 3px var(--amber-300);

  /* Type */
  --font-display: "Schibsted Grotesk", "Schibsted Fallback", system-ui, sans-serif;
  --font-poster: "Archivo", "Archivo Fallback", sans-serif;
  --font-text: "Figtree", "Figtree Fallback", system-ui, sans-serif;
  --type-display-xl: 900 clamp(40px, 8.5vw, 88px)/0.95 var(--font-display); --track-display-xl: -0.04em;
  --type-display-l: 900 clamp(36px, 7vw, 64px)/0.95 var(--font-display); --track-display-l: -0.04em;
  --type-h1: 800 clamp(30px, 5.5vw, 48px)/1.0 var(--font-display); --track-h1: -0.035em;
  --type-h2: 800 clamp(26px, 4.5vw, 36px)/1.05 var(--font-display); --track-h2: -0.03em;
  --type-h3: 800 clamp(21px, 3.4vw, 26px)/1.1 var(--font-display); --track-h3: -0.025em;
  --type-h4: 700 20px/1.15 var(--font-display); --track-h4: -0.015em;
  --type-poster-l: 900 clamp(40px, 8vw, 72px)/0.9 var(--font-poster);
  --type-poster-m: 900 clamp(30px, 5vw, 40px)/0.92 var(--font-poster);
  --type-body-l: 400 clamp(16px, 2.2vw, 18px)/1.5 var(--font-text);
  --type-body: 400 16px/1.55 var(--font-text);
  --type-small: 400 14px/1.5 var(--font-text);
  --type-label: 600 14px/1.2 var(--font-text);
  --type-eyebrow: 700 12px/1.2 var(--font-text); --track-eyebrow: 0.06em;

  /* Space, radii, motion */
  --gap-blocks: 10px;
  --radius-xs: 6px; --radius-sm: 8px; --radius-md: 12px; --radius-lg: 20px; --radius-xl: 28px;
  --container: 1200px; --container-text: 720px;
  --shadow-overlay: 0 12px 40px rgba(16,35,28,.18), 0 2px 6px rgba(16,35,28,.08);
  --ease-out: cubic-bezier(.2,.8,.2,1);
  --dur-fast: 120ms; --dur-base: 200ms; --dur-slow: 360ms;
  --press-scale: 0.97;
}

/* Size-adjusted fallbacks: the page lays out almost identically before and
   after the web fonts swap in, which keeps CLS under 0.05. Metrics computed
   from the subset files against Arial (see git history for the script). */
@font-face { font-family: "Schibsted Fallback"; src: local("Arial Bold"), local("Arial-BoldMT"), local("Arial"); font-weight: 700 900;
  size-adjust: 110.7%; ascent-override: 88.2%; descent-override: 23.3%; line-gap-override: 0%; }
@font-face { font-family: "Figtree Fallback"; src: local("Arial"); font-weight: 400 700;
  size-adjust: 101.5%; ascent-override: 93.6%; descent-override: 24.6%; line-gap-override: 0%; }
@font-face { font-family: "Archivo Fallback"; src: local("Arial Bold"), local("Arial-BoldMT"), local("Arial"); font-weight: 800 900;
  size-adjust: 70.5%; ascent-override: 124.6%; descent-override: 29.8%; line-gap-override: 0%; }
