/* ============================================================
   Foundry Revenue Partners — design tokens
   ------------------------------------------------------------
   SINGLE SOURCE OF TRUTH. Names and values come straight from
   the style reference:
     OS/foundry-revenue/website/design/
     style-reference-broadsheet-green-v1.md

   No file outside this one contains a raw hex, a px font-size,
   or a font name. A rebrand is an edit here, nowhere else.

   PROVISIONAL: the palette is the reference's, not yet chosen
   as Foundry Revenue's brand. Replace values, keep names.
   ============================================================ */

:root {

  /* ---- Colour — reference names, reference values ---- */
  --color-bone-white:        #fafffa;
  --color-press-black:       #121613;
  --color-typesetter-ink:    #000000;
  --color-slate-verdant:     #232924;
  --color-newsprint-gray:    #516254;
  --color-muted-sage:        #c8d2c8;
  --color-highlighter-green: #2bee4b;
  --color-shadow-moss:       #93b799;
  --color-echo-green:        #c4e4c9;

  /* ---- Derived greens ----
     All three are the accent at other lightnesses, used for
     pressed states and for ink that must sit ON the accent.
     If --color-highlighter-green changes, change these too. */
  --color-accent-press:      #25d442;   /* button :hover            */
  --color-accent-edge:       #0f7a1f;   /* link :hover, accent edge */
  --color-accent-ink:        #0b3d12;   /* type on an accent fill   */

  /* ---- Signal ----
     The one colour that is not the brand: a form's "that didn't work"
     line (the chat, the sign-up pop-up, the newsletter's forms). */
  --color-error:             #a12a2a;

  /* ---- Fire ----
     Only for the Phase 03 booster flame on the services page. Real
     flame colours, not brand ones: a green flame reads as a gimmick. */
  --color-fire-core:         #fff4d6;   /* white-hot at the nozzle  */
  --color-fire-mid:          #ff9a2e;   /* the body of the flame    */
  --color-fire-tip:          #e0421b;   /* the outer, cooling edge  */

  /* ---- Surfaces ---- */
  --surface-canvas:       var(--color-bone-white);
  --surface-dark-section: var(--color-press-black);
  --surface-accent-band:  var(--color-highlighter-green);

  /* ---- Shadows — derived from the accent, never grey ----
     If --color-highlighter-green changes, these change with it. */
  --shadow-lg:   rgba(16, 94, 29, 0.45) 1px 8px 20px 0px;
  --shadow-lg-2: rgba(18, 146, 39, 0.25) 1px 8px 20px 0px;

  /* ---- Type families ----
     The reference specifies three commercial faces. Substituted:
       PP Mondwest / Editorial New (display serif) -> Instrument Serif
       TWK Lausanne (grotesque UI)                 -> Outfit
     Gordita replaces Outfit when licensed; August replaces
     Instrument Serif if the web subscription is ever bought.
     Both are one-line changes. */
  --font-display: 'Instrument Serif', 'Times New Roman', Times, serif;
  --font-ui: 'Outfit', ui-sans-serif, system-ui, -apple-system,
             BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --font-times: 'Times New Roman', Times, serif;

  --font-weight-light: 300;
  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-w550: 600;
  --font-weight-bold: 700;

  /* ---- Type scale ----
     Reference px values are the CEILING of each clamp. A literal
     295px would force a horizontal scrollbar on every phone. */
  --text-caption:    0.6875rem;                          /* 11px  */
  --text-body-sm:    0.875rem;                           /* 14px  */
  --text-body:       1.125rem;                           /* 18px  */
  --text-subheading: clamp(1.75rem, 4.5vw, 3.75rem);     /* → 60  */
  --text-heading-sm: clamp(2rem,    5.5vw, 4.5rem);      /* → 72  */
  --text-heading:    clamp(2.25rem, 7vw,   6rem);        /* → 96  */
  --text-heading-lg: clamp(2.75rem, 10.1vw, 9.1rem);     /* → 146 */
  --text-display:    clamp(3.5rem,  20vw, 18.4375rem);   /* → 295 */

  /* Hero: sized so the longest line fits inside the 1400px canvas. */
  --text-hero:       clamp(1.4rem,  7.35vw, 7rem);
  /* Pinned problem statements. */
  --text-quote:      clamp(1.75rem, 4.2vw,  3.5rem);
  /* Research percentages. */
  --text-metric:     clamp(3rem,    7vw,    6rem);
  /* Running totals inside a figure ($5M, 100%). */
  --text-figure:     clamp(2.75rem, 7vw,    5.25rem);
  /* Serif notes under a statistic. */
  --text-note:       clamp(1.25rem, 2vw,    1.75rem);
  /* Figure captions that carry a phrase rather than a label. */
  --text-figure-cap: 0.9375rem;                          /* 15px  */
  --text-figure-lab: 1rem;                               /* 16px  */
  /* The section marker inside the pinned panel. */
  --text-panel-mark: 3.375rem;                           /* 54px  */
  /* The floating title over the approach artwork. */
  --text-approach:   clamp(1.875rem, 4.2vw, 3.375rem);   /* → 54  */
  /* Phase name and description inside the artwork rail. */
  --text-phase:      clamp(1.6rem,   3.1vw, 2.75rem);    /* → 44  */
  --text-phase-desc: clamp(1rem,     1.5vw, 1.35rem);    /* → 21.6 */
  /* The vertical SCROLL cue. */
  --text-cue:        clamp(0.9375rem, 1.7vw, 1.5625rem);

  --leading-caption: 1.1;
  --leading-display: 0.9;
  --leading-flat: 1;
  --leading-prose: 1.55;   /* deviation: the reference sets body
                              leading to 1.0, which is unreadable
                              in running paragraphs. 1.0 is kept
                              for display sizes only. */

  --tracking-caption:    0.01em;
  --tracking-mid:       -0.02em;
  --tracking-display:   -0.04em;
  --tracking-tight:     -0.03em;
  --tracking-figure:    -0.045em;
  --tracking-wide:       0.02em;

  /* ---- Spacing — reference scale ---- */
  --spacing-4: 4px;    --spacing-8: 8px;    --spacing-10: 10px;
  --spacing-15: 15px;  --spacing-20: 20px;  --spacing-25: 25px;
  --spacing-30: 30px;  --spacing-32: 32px;  --spacing-35: 35px;
  --spacing-40: 40px;  --spacing-45: 45px;  --spacing-50: 50px;
  --spacing-55: 55px;  --spacing-60: 60px;  --spacing-120: 120px;
  --spacing-190: 190px;

  /* ---- Layout ---- */
  --page-max-width: 1400px;
  --section-gap: 80px;
  --element-gap: 20px;
  --gutter: clamp(20px, 4vw, 50px);

  /* ---- Radii ---- */
  --radius-buttons: 5px;
  --radius-pills: 10px;
  --radius-images: 14px;
  --radius-round: 9999px;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ============================================================
   The AI Foundry (newsletter): vintage print layer
   ------------------------------------------------------------
   Used only by /the-ai-foundry pages and the email. The paper
   and forest values are sampled from the issue illustrations so
   the page and the artwork read as one printed sheet.
   ============================================================ */
:root {
  --color-paper-cream:   #efe5d2;   /* the sheet                 */
  --color-paper-card:    #f7f0e3;   /* raised card on the sheet  */
  --color-paper-shade:   #e2d6bf;   /* hairlines, halftone dots  */
  --color-foundry-forest:#133a2a;   /* ink blocks, stat bands    */
  --color-forest-deep:   #0c2519;   /* forest pressed / shadow   */
  --color-forest-mute:   #8fa79a;   /* type on forest, secondary */
  --font-body-serif: 'Newsreader', Georgia, 'Times New Roman', Times, serif;
  --text-mast:   clamp(2rem, 9.3vw, 6.1rem);    /* THE AI FOUNDRY  */
  --text-story:  clamp(1.85rem, 4.2vw, 2.9rem); /* story headline  */
  --text-stat:   clamp(3.5rem, 9vw, 7.5rem);    /* big number      */
  --text-lede:   clamp(1.2rem, 1.6vw, 1.45rem); /* body serif      */
}
