/* ==========================================================================
   GrowthFrame design tokens — the single source for both sites.
   Copied verbatim into clients/*/site/tokens.css. Change it here, copy it out.
   Loaded as its own <link> before style.css so the two download in parallel;
   an @import would serialise them and cost a round trip.
   ========================================================================== */

@font-face{
  font-family:'Oswald';
  src:url('assets/fonts/oswald-latin-var.woff2') format('woff2-variations');
  font-weight:200 700;
  font-style:normal;
  font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,
                U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

:root{
  /* --- paper and ink ------------------------------------------------- */
  --paper:#F8F6F1;        /* warm off-white, never pure white            */
  --surface:#EFEBE3;      /* one step down, for tinted bands and cards   */
  --line:#DED8CC;
  --ink:#14171A;          /* near-black: text, and the one dark band     */
  --ink-soft:#585650;

  /* --- the single accent. Calls to action, and nothing else. --------- */
  --accent:#0F5132;
  --accent-dark:#0A3B24;

  /* --- the same system, inverted for the one dark band --------------- */
  --on-dark-ink:#F3F1EC;
  --on-dark-soft:#A7A79F;
  --on-dark-line:#2C2F2C;
  --on-dark-accent:#3FCE86;   /* the deep green has no contrast on ink   */

  /* --- semantic, not brand ------------------------------------------- */
  --urgent:#A8321E;
  --ok:#0F5132;

  /* --- type ----------------------------------------------------------- */
  --display:'Oswald',"Haettenschweiler","Arial Narrow",var(--body);
  --body:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;

  /* A real scale, not ad-hoc sizes. Display sizes are deliberately large. */
  --t-display:clamp(2.9rem,8.6vw,6.4rem);
  --t-h1:clamp(2.4rem,6vw,4.4rem);
  --t-h2:clamp(1.85rem,4.2vw,3rem);
  --t-h3:1.18rem;
  --t-lede:clamp(1.02rem,1.6vw,1.16rem);
  --t-body:1rem;
  --t-small:.92rem;
  --t-eyebrow:.72rem;
  --measure:65ch;          /* body copy never runs wider than this        */

  /* --- spacing scale --------------------------------------------------- */
  --s1:.5rem; --s2:1rem; --s3:1.5rem; --s4:2.5rem; --s5:4rem; --s6:6rem; --s7:8rem;

  --radius:2px;            /* near-square: industrial, not friendly-SaaS   */
  --maxw:1080px;

  /* --- motion, tokenised so reduced-motion can zero it in one place ---- */
  --dur:.5s; --dur-fast:.18s;
  --ease:cubic-bezier(.22,.7,.24,1);
  --lift:-2px;
}

@media(prefers-reduced-motion:reduce){
  :root{--dur:0s;--dur-fast:0s;--lift:0px}
}
