/* Modern Pulse Media — design tokens. GENERATED by scripts/build_design_guide.py
   from design-system/brand.md. Do not hand-edit: index.html is generated from
   the same source, and editing one of them is how a guide and a build drift apart.

   Motion level: standard (MOTION 4).
   Every designed page imports this file rather than restating values. */

/* Contrast, computed at generate time. AA needs 4.5 for body, 3.0 for large text
   and UI edges. scripts/check_accessibility.py is the gate; this is the record. */
/*   body text on cards         #2A2542 on #FFFFFF  14.57:1 AA */
/*   body text on the page      #2A2542 on #F5F4F8   13.3:1 AA */
/*   muted text on cards        #6C6683 on #FFFFFF   5.43:1 AA */
/*   muted text on the page     #6C6683 on #F5F4F8   4.96:1 AA */
/*   deep brand on cards        #B33160 on #FFFFFF   5.96:1 AA */
/*   text on the brand fill     #FFFFFF on #D53964   4.57:1 AA */
/*   success message            #1E6B32 on #FFFFFF   6.55:1 AA */
/*   error message              #A32718 on #FFFFFF   7.34:1 AA */
/*   warning message            #8A5A08 on #FFFFFF   5.92:1 AA */
/*   info message               #1F4E79 on #FFFFFF   8.66:1 AA */
/*   brand #D53964 carries text on white at 4.57:1 — usable as a heading colour as well as a fill. */

/* Fluid type resolved at both ends, for Elementor entry at development. */
/*   --fs-h1   41.6px at 375    68.0px at 1440 */
/*   --fs-h2   29.6px at 375    44.0px at 1440 */
/*   --fs-h3   22.4px at 375    28.8px at 1440 */

/* Self-hosted, from design-system/fonts/. Paths resolve relative to this
   file, so anything importing it gets the fonts too. */
@font-face{font-family:'Space Grotesk';src:url('fonts/space-grotesk-var-latin.woff2') format('woff2');
  font-weight:300 700;font-display:swap}
@font-face{font-family:'IBM Plex Sans';src:url('fonts/ibm-plex-sans-var-latin.woff2') format('woff2');
  font-weight:100 700;font-display:swap}


:root{
  --brand:#D53964; --brand-press:#BD365F; --brand-ink:#B33160;
  --ink:#2A2542; --muted:#6C6683; --ground:#F5F4F8; --surface:#FFFFFF; --line:#E4E1EA;
  /* the rest of this brand's colours */
  --brand-gradient:linear-gradient(90deg, #D53964, #D63E3C); --lilac:#9B96AB;

  --display:'Space Grotesk',system-ui,-apple-system,sans-serif;
  --body:'IBM Plex Sans',system-ui,-apple-system,sans-serif;

  /* heading band — adjacent steps ~1.25×+ apart. H1 carries the homepage hero and
     every page title; there is no separate display style. */
  --fs-h1:clamp(2.6rem,5.2vw,4.25rem);
  --fs-h2:clamp(1.85rem,3.2vw,2.75rem);
  --fs-h3:clamp(1.4rem,2.1vw,1.8rem);
  --fs-h4:1.35rem; --fs-h5:1.1rem; --fs-h6:.95rem;
  /* utility band — four fixed tokens, never more */
  --fs-xs:.78rem; --fs-sm:.875rem; --fs-md:1rem; --fs-lg:1.15rem;

  --s1:4px; --s2:8px; --s3:16px; --s4:24px; --s5:32px; --s6:48px; --s7:64px; --s8:96px;
  --container:1180px;

  /* Status colours are house values, not brand decisions -- see HOUSE_STATUS. */
  --success:#1E6B32; --warning:#8A5A08; --error:#A32718; --info:#1F4E79;

  --on-brand:#FFFFFF;   /* 4.57:1 on --brand */
  --on-brand-press:#FFFFFF;   /* 5.45:1 on --brand-press */
  --brand-on-ink:#E17190;   /* 4.83:1 on --ink */

  --r:8px; --r-sm:4px;
  --shadow-1:0 1px 2px rgba(42,37,66,.06);
  --shadow-2:0 2px 4px rgba(42,37,66,.05), 0 14px 32px -16px rgba(42,37,66,.3);

  --ease:cubic-bezier(.16,1,.3,1); --fast:180ms; --base:320ms;
}
