/* IBM Plex Sans + Mono, latin subset, self-hosted (SIL Open Font License 1.1). V1.2.0 */
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 400; font-display: swap;
  src: url(/assets/fonts/plex-mono-400.woff2?v=1.2.0) 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-style: normal; font-weight: 500; font-display: swap;
  src: url(/assets/fonts/plex-mono-500.woff2?v=1.2.0) 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-style: normal; font-weight: 600; font-display: swap;
  src: url(/assets/fonts/plex-mono-600.woff2?v=1.2.0) 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 Sans'; font-style: normal; font-weight: 400; font-display: swap;
  src: url(/assets/fonts/plex-sans.woff2?v=1.2.0) 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 Sans'; font-style: normal; font-weight: 500; font-display: swap;
  src: url(/assets/fonts/plex-sans.woff2?v=1.2.0) 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 Sans'; font-style: normal; font-weight: 600; font-display: swap;
  src: url(/assets/fonts/plex-sans.woff2?v=1.2.0) 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; }

/* rlc.pt design tokens, V1.2.0
   Dark is the default theme. Light overrides on [data-theme="light"]. */

:root {
  /* Type */
  --font-sans: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;

  --fs-xs: 0.8125rem;   /* 13 hints, tape notes */
  --fs-sm: 0.875rem;    /* 14 labels, small UI */
  --fs-md: 1rem;        /* 16 body, inputs */
  --fs-lg: 1.125rem;    /* 18 lede, legends */
  --fs-xl: 1.375rem;    /* 22 section headings */
  --fs-2xl: 1.75rem;    /* 28 hub card titles, embed h1 */
  --fs-3xl: clamp(2rem, 1.35rem + 2.6vw, 3rem);      /* 32 to 48 page headline */
  --fs-result: clamp(2.75rem, 2.1rem + 2.6vw, 4rem); /* 44 to 64 result number */

  --lh-tight: 1.1;
  --lh-snug: 1.3;
  --lh-body: 1.55;

  /* Spacing, 4 px base */
  --s-1: 4px;
  --s-2: 8px;
  --s-3: 12px;
  --s-4: 16px;
  --s-5: 24px;
  --s-6: 32px;
  --s-7: 48px;
  --s-8: 64px;
  --s-9: 96px;

  /* Radii */
  --r-sm: 6px;   /* inputs, buttons */
  --r-md: 10px;  /* choices, notes */
  --r-lg: 16px;  /* form groups, result card */
  --r-pill: 999px;

  /* Layout */
  --page-max: 1200px;
  --aside-w: 440px;
  --control-h: 48px;
  --hit: 44px;

  /* Motion */
  --ease: cubic-bezier(.2, .7, .2, 1);
  --dur-fast: 120ms;
  --dur: 220ms;

  /* Colour: dark (default) */
  --bg: #0c1522;
  --surface: #121d2d;
  --surface-2: #19263a;
  --field: #0e1826;
  --line: #22324a;
  --line-strong: #33455f;
  --text: #e9edf3;
  --muted: #9dabbe;
  --faint: #5f6d82;

  --accent: #f0913a;          /* RogerLe orange, tuned for dark */
  --accent-text: #f4a45a;     /* orange used as text */
  --accent-soft: rgba(240, 145, 58, .10);
  --on-accent: #1b1107;
  --link: #f4a45a;
  --link-hover: #ffc185;

  --positive: #5fd3a0;
  --positive-soft: rgba(95, 211, 160, .08);
  --positive-line: rgba(95, 211, 160, .35);
  --danger: #ff9486;
  --danger-soft: rgba(255, 148, 134, .10);
  --warn-soft: rgba(240, 145, 58, .10);
  --warn-line: rgba(240, 145, 58, .35);

  --focus: #8fc3ff;
  --focus-ring: rgba(143, 195, 255, .28);

  /* The tape stays paper in both themes, dimmed in dark to avoid glare */
  --paper: #e8e3d6;
  --paper-ink: #1d2129;
  --paper-muted: #5f594c;
  --paper-rule: #b9b2a2;
  --paper-flash: #f6d7a8;
  --paper-shadow: rgba(0, 0, 0, .45);

  --bar-bg: rgba(12, 21, 34, .92);
  --shadow-card: none;

  /* Wordmark */
  --wm-ink: #f1ede4;
  --wm-paper: #f1ede4;
  --wm-line: #0f1b2d;
  --wm-dot: #f0913a;
}

[data-theme="light"] {
  --bg: #f5f3ee;
  --surface: #ffffff;
  --surface-2: #eeebe4;
  --field: #ffffff;
  --line: #e0dbd0;
  --line-strong: #c9c2b4;
  --text: #13202f;
  --muted: #56606f;
  --faint: #9aa1ab;

  --accent: #b85a10;
  --accent-text: #a4500d;
  --accent-soft: rgba(184, 90, 16, .07);
  --on-accent: #ffffff;
  --link: #a4500d;
  --link-hover: #7a3b08;

  --positive: #16734a;
  --positive-soft: rgba(22, 115, 74, .06);
  --positive-line: rgba(22, 115, 74, .30);
  --danger: #b3261e;
  --danger-soft: rgba(179, 38, 30, .06);
  --warn-soft: rgba(184, 90, 16, .07);
  --warn-line: rgba(184, 90, 16, .30);

  --focus: #1f5fbf;
  --focus-ring: rgba(31, 95, 191, .20);

  --paper: #fffdf7;
  --paper-ink: #1d2129;
  --paper-muted: #5f594c;
  --paper-rule: #c9c2b2;
  --paper-flash: #fbe3bd;
  --paper-shadow: rgba(40, 30, 10, .16);

  --bar-bg: rgba(255, 255, 255, .94);
  --shadow-card: 0 1px 2px rgba(20, 30, 45, .04);

  --wm-ink: #0f1b2d;
  --wm-paper: #0f1b2d;
  --wm-line: #f1ede4;
  --wm-dot: #d9731b;
}
