/**
 * Bond Priori — Newspaper Edition · Design tokens
 * Source of truth: the Design canvas "Bond Priori — Newspaper Edition" (Broadsheet typeset).
 *
 * Load order:  reset.css → newspaper-tokens.css → newspaper.css → page css
 * Theme:       <html data-theme="day"> (default) | <html data-theme="night">
 *              newspaper.js sets it from localStorage('bp_edition') and the Day/Night toggle.
 *
 * Existing variables.css values are reused wherever the newspaper needs them
 * (cream, graphite, copper, ash, fog, gold, error). Two tokens are new:
 * --bp-copper-ink and --bp-paper-tint — see HANDOFF.md § Tokens.
 */

/* Fonts (Google Fonts; self-host later if you prefer):
   <link href="https://fonts.googleapis.com/css2?family=UnifrakturMaguntia&family=Playfair+Display:ital,wght@0,400..900;1,400..900&family=Libre+Caslon+Text:ital,wght@0,400;0,700;1,400&family=Libre+Franklin:wght@400;500;600;700;800&display=swap" rel="stylesheet">
*/

:root {
  /* ---- Day edition (default) ---- */
  --bp-paper:        #F5EBE6;   /* = --color-cream        page ground */
  --bp-paper-tint:   #EDE0D8;   /* NEW                    shaded boxes, table heads, hover */
  --bp-highlight:    #E6C7BA;   /* = --color-gold         current row, "now" tag, ticker band */
  --bp-ink:          #1F1210;   /* = --color-graphite     all text, nameplate, heavy rules */
  --bp-ink-muted:    #6B4A44;   /* = --color-ash          datelines, captions, table heads  (6.7:1 on paper) */
  --bp-rule:         #C4A59E;   /* = --color-fog          hairline rules */
  --bp-rule-strong:  #1F1210;   /* = ink                  2px/4px rules */
  --bp-copper:       #DE5C5A;   /* = --color-copper       FILLS ONLY: primary button, live dot, active mark, bars */
  --bp-copper-ink:   #9A4A3E;   /* NEW                    copper as TEXT: kickers, links, active nav (5.2:1 on paper) */
  --bp-on-copper:    #1F1210;   /* text on copper fills (5.0:1) — never white (3.6:1) */
  --bp-alert:        #D61E2E;   /* = --color-error        alert flag fill, error borders */
  --bp-on-alert:     #FFFFFF;   /* text on alert fills (5.1:1) */
  --bp-go:           #7A9A6A;   /* = --color-success      go flag outline + dot, never text */
  --bp-ticker:       #E6C7BA;   /* ticker band */
  --bp-ticker-label: #1F1210;   /* ticker "LATEST" block */
  --bp-ticker-label-ink: #E6C7BA;

  /* ---- Type (Broadsheet typeset) ---- */
  --bp-font-nameplate: 'UnifrakturMaguntia', serif;
  --bp-nameplate-weight: 400;
  --bp-nameplate-tracking: 0;
  --bp-font-display:   'Playfair Display', Georgia, serif;   /* headlines, figures, mood tiles */
  --bp-headline-weight: 900;
  --bp-font-text:      'Libre Caslon Text', Georgia, serif;  /* story text, decks, inputs */
  --bp-font-label:     'Libre Franklin', system-ui, sans-serif; /* labels, tables, buttons, nav */

  /* ---- Type scale (px) ---- */
  --bp-t-nameplate:   84px / 84px;     /* 44/44 on phones */
  --bp-t-headline-xl: 52px / 54px;     /* lead story, one per page, tracking -.035em */
  --bp-t-headline-lg: 36px / 39px;     /* section lead, running-head title, tracking -.03em */
  --bp-t-headline-md: 25px / 28px;     /* standard story, ears, correspondent */
  --bp-t-headline-sm: 19px / 23px;     /* briefs, mood tiles, colophon */
  --bp-t-figure:      44px / 44px;     /* by-the-numbers, current mood, tracking -.03em */
  --bp-t-deck:        20px / 27px;
  --bp-t-body:        17px / 26px;
  --bp-t-body-sm:     15px / 22px;
  --bp-t-quote:       27px / 33px;     /* italic, weight 500 */
  --bp-t-section:     15px / 20px;     /* 800, caps, +.12em */
  --bp-t-kicker:      12px / 16px;     /* 800, caps, +.14em */
  --bp-t-label:       11px / 14px;     /* 700, caps, +.12em */
  --bp-t-byline:      13px / 18px;     /* 700 */
  --bp-t-caption:     13px / 18px;     /* 400 */
  --bp-t-data:        15px / 20px;     /* 500, tabular-nums */
  --bp-t-ui:          15px / 20px;     /* 700, buttons */

  /* ---- Spacing (4px base; reuse --space-* from variables.css) ---- */
  --bp-space-1: 4px;  --bp-space-2: 8px;  --bp-space-3: 12px; --bp-space-4: 16px;
  --bp-space-5: 20px; --bp-space-6: 24px; --bp-space-8: 32px; --bp-space-12: 48px; --bp-space-16: 64px;

  /* ---- Rules & radii ---- */
  --bp-stroke-hair: 1px;    /* colour: --bp-rule */
  --bp-stroke-mid: 2px;     /* colour: --bp-rule-strong */
  --bp-stroke-heavy: 4px;   /* colour: --bp-rule-strong */
  --bp-radius-none: 0;      /* boxes, tables, photos, ticker, notices */
  --bp-radius-pill: 999px;  /* flags, buttons, toggle, avatar, "now" tag */

  /* ---- Layout ---- */
  --bp-page-max: 1360px;
  --bp-gutter: 32px;        /* 16px on phones */
  --bp-column-gap: 32px;
  --bp-sidebar-w: 232px;
  --bp-sidebar-w-collapsed: 64px;
  --bp-bp-phone: 720px;     /* single breakpoint: ≤720px is the phone layout */

  /* ---- Motion ---- */
  --bp-sidebar-ease: .25s ease;
  --bp-ticker-loop: 40s;
  --bp-pulse: 2s;
}

/* ---- Night edition ---- */
:root[data-theme="night"] {
  --bp-paper:        #1F1210;   /* = --color-graphite */
  --bp-paper-tint:   #2D1B18;   /* = --color-deep-walnut */
  --bp-highlight:    #4A2F2A;   /* = --color-slate */
  --bp-ink:          #F5EBE6;   /* = --color-cream */
  --bp-ink-muted:    #B08A82;   /* = --color-warm-grey (5.9:1 on night paper) */
  --bp-rule:         #4A2F2A;
  --bp-rule-strong:  #F5EBE6;
  --bp-copper-ink:   #DE5C5A;   /* copper itself passes on dark paper (5.0:1) */
  --bp-ticker:       #4A2F2A;
  --bp-ticker-label: #E6C7BA;
  --bp-ticker-label-ink: #1F1210;
}

/* Mood colours (unchanged, from js/config.js) — used only as the dot beside the word, never alone */
:root {
  --bp-mood-happy: #E6C7BA; --bp-mood-sad: #6B4A44; --bp-mood-angry: #D61E2E; --bp-mood-anxious: #970E0D;
  --bp-mood-tired: #8A6B64; --bp-mood-loving: #DE5C5A; --bp-mood-neutral: #B67D6B; --bp-mood-unwell: #DCB7A8;
  --bp-mood-excited: #A75649; --bp-mood-down: #4A2F2A;
}
