/* Receipts First — design tokens (episode system, Phase 2 final)
   Self-host the fonts in /fonts (see @font-face below). */

@font-face{font-family:"Schibsted Grotesk";font-weight:400;font-style:normal;font-display:swap;src:url(/fonts/schibsted-grotesk-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Schibsted Grotesk";font-weight:500;font-style:normal;font-display:swap;src:url(/fonts/schibsted-grotesk-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Schibsted Grotesk";font-weight:800;font-style:normal;font-display:swap;src:url(/fonts/schibsted-grotesk-latin-800-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"IBM Plex Mono";font-weight:400;font-style:normal;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"IBM Plex Mono";font-weight:500;font-style:normal;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* Latin Extended files are in /fonts too; add matching @font-face rules with the latin-ext unicode-range from the live site's index.html. */

:root{
  /* Colour */
  --rf-ballpoint:#22385A;   /* navy: video title card, guest band, thumbnails */
  --rf-thermal:#FAFAF7;     /* paper: page ground and slips */
  --rf-print:#1C1C1A;       /* ink: all primary text */
  --rf-faded:#5C5A55;       /* secondary text on paper (6.7:1) */
  --rf-rule:#8A877F;        /* dashed and dotted rules only, never text */
  --rf-hairline:#E4E1DA;    /* section dividers, slip edge on paper */
  --rf-carbon:#B23A28;      /* genuine losses and negative costs only */
  --rf-on-navy-muted:#C9D2DE; /* secondary text on navy (7.6:1) */
  --rf-navy-rule:#3A5072;   /* divider on navy */
  --rf-mockup:#EEECE6;      /* design-mockup banner only; not used in production */

  /* Type families */
  --rf-display:"Schibsted Grotesk","Helvetica Neue",Arial,sans-serif;
  --rf-mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;

  /* Type scale (desktop / phone) */
  --rf-h1:clamp(48px,6.4vw,92px);   /* episode headline; phone 40px */
  --rf-home-h1:clamp(52px,7.4vw,108px);
  --rf-h2:34px;                      /* section heads; phone 28px */
  --rf-h3:23px;                      /* lesson titles; phone 20px */
  --rf-dek:25px;                     /* phone 21px */
  --rf-body:19px;                    /* phone 17px; line-height 1.65 / 1.6 */
  --rf-quote:clamp(30px,3vw,40px);   /* phone 29px */
  --rf-meta:14px;                    /* mono metadata; phone 13px */
  --rf-min:13px;                     /* floor for any disclosure, label or caption */

  /* Tracking */
  --rf-track-display:-0.035em;  /* h1 */
  --rf-track-head:-0.025em;     /* h2, wordmark */

  /* Spacing */
  --rf-gutter:clamp(20px,5vw,64px);  /* page side padding */
  --rf-section:88px;                 /* phone 48–64px */
  --rf-stack:48px;                   /* between article blocks; phone 40px */
  --rf-slip-pad:28px 24px 22px;

  /* Layout */
  --rf-container:1200px;
  --rf-article:680px;
  --rf-aside:344px;
  --rf-aside-gap:104px;
  --rf-bp-stack:960px;   /* below this the aside stacks and stops being sticky */
  --rf-sticky-top:32px;

  /* Slip */
  --rf-slip-tilt:-1deg;   /* scorecard; landing slip uses -1.5deg */
  --rf-tooth:20px;        /* torn edge tooth width; height is half */
}
