/* george.css — Authentic Press "George magazine" design system.
   JFK Jr / George (1995-2001): high-contrast serif masthead, ivory paper,
   editorial rules, one decisive red accent. Used by askapai.com content
   pages and the rendered X / Truth post cards. All classes prefixed .geo- */

@import url('https://cdn.jsdelivr.net/npm/@fontsource/playfair-display@5.1.0/700.css');
@import url('https://cdn.jsdelivr.net/npm/@fontsource/playfair-display@5.1.0/800.css');
@import url('https://cdn.jsdelivr.net/npm/@fontsource/playfair-display@5.1.0/900.css');
@import url('https://cdn.jsdelivr.net/npm/@fontsource/playfair-display@5.1.0/700-italic.css');
@import url('https://cdn.jsdelivr.net/npm/@fontsource/newsreader@5.1.0/400.css');
@import url('https://cdn.jsdelivr.net/npm/@fontsource/newsreader@5.1.0/500.css');
@import url('https://cdn.jsdelivr.net/npm/@fontsource/newsreader@5.1.0/400-italic.css');

/* Authentic Press reskin — display-serif weights for nameplate (500) + headlines (600) */
@import url('https://cdn.jsdelivr.net/npm/@fontsource/playfair-display@5.1.0/400.css');
@import url('https://cdn.jsdelivr.net/npm/@fontsource/playfair-display@5.1.0/500.css');
@import url('https://cdn.jsdelivr.net/npm/@fontsource/playfair-display@5.1.0/600.css');
@import url('https://cdn.jsdelivr.net/npm/@fontsource/playfair-display@5.1.0/600-italic.css');
/* Geist Sans (UI/body) + Geist Mono (eyebrows/labels) — loaded here so the
   three Authentic Press fonts are guaranteed site-wide via george.css */
@import url('https://cdn.jsdelivr.net/npm/@fontsource/geist-sans@5.0.1/400.css');
@import url('https://cdn.jsdelivr.net/npm/@fontsource/geist-sans@5.0.1/500.css');
@import url('https://cdn.jsdelivr.net/npm/@fontsource/geist-sans@5.0.1/600.css');
@import url('https://cdn.jsdelivr.net/npm/@fontsource/geist-sans@5.0.1/700.css');
@import url('https://cdn.jsdelivr.net/npm/@fontsource/geist-mono@5.0.1/400.css');
@import url('https://cdn.jsdelivr.net/npm/@fontsource/geist-mono@5.0.1/500.css');
@import url('https://cdn.jsdelivr.net/npm/@fontsource/geist-mono@5.0.1/600.css');

:root {
  /* Paper + ink */
  --geo-paper:    #f4f0e6;
  --geo-paper-2:  #ece6d7;
  --geo-card:     #fbf9f3;
  --geo-ink:      #17150f;
  --geo-ink-soft: #46423a;
  --geo-ink-mute: #7c766a;
  /* One decisive accent + a single metal */
  --geo-red:      #b01228;
  --geo-red-deep: #8a0d1f;
  --geo-gold:     #9c7c2a;
  --geo-rule:     #d7cfbd;
  --geo-rule-strong: #bcb29a;
  /* Type */
  --geo-display:  'Playfair Display', 'Didot', 'Bodoni MT', Georgia, serif;
  --geo-text:     'Newsreader', Georgia, 'Times New Roman', serif;
  --geo-label:    'Geist Mono', ui-monospace, SFMono-Regular, monospace;
  /* Reading measure */
  --geo-measure:  40rem;

  /* ─────────────────────────────────────────────────────────────
     Authentic Press reskin — Evergreen theme (the canonical brand
     look for the askapai.com dashboard + front door). Square corners,
     hairline borders, teal accent, paper/ink newsprint surfaces.
     These are shared defaults; each reskinned page may reference them
     directly. Pages that define their own same-named tokens win, so
     adding these here does not alter the frozen content pages.
     ───────────────────────────────────────────────────────────── */
  --paper:        #FAF9F6;  /* page background           */
  --panel:        #EEF3F2;  /* cards / panels            */
  --panel2:       #DDE8E6;  /* insets / hover surfaces   */
  --ink:          #15160F;  /* primary text              */
  --muted:        #5B5C52;  /* secondary text            */
  --faint:        #8A8D83;  /* tertiary text             */
  --line:         rgba(6,75,84,0.14);  /* hairline borders  */
  --line-strong:  rgba(6,75,84,0.26);  /* stronger rules    */
  --accent:       #064B54;  /* deep teal (≈ live --teal) */
  --accent-bright:#00b5b9;  /* bright teal highlight     */
  --accent-ink:   #FFFFFF;  /* text on accent            */
  --gold:         #E8C45A;  /* metal accent              */
  --band:         #0E1311;  /* dark sidebar / topbar     */

  /* Authentic Press type stacks (the 1:1 prototype font swap) */
  --ap-serif: 'Playfair Display', 'Didot', 'Bodoni MT', Georgia, serif;
  --ap-sans:  'Geist Sans', system-ui, -apple-system, Segoe UI, sans-serif;
  --ap-mono:  'Geist Mono', ui-monospace, SFMono-Regular, monospace;
}

/* Alternate Authentic Press skins — opt-in via [data-ap-theme] on a
   wrapper (Evergreen above is the default). Kept as a theme switch per
   the design spec; scoped so they never touch pages that don't opt in. */
[data-ap-theme="obsidian"] {
  --paper:#0A0A0B; --panel:#141417; --panel2:#1C1C20; --ink:#ECEAE3;
  --muted:#8E8E88; --faint:#5C5C58; --line:rgba(255,255,255,0.10);
  --line-strong:rgba(255,255,255,0.20); --accent:#E0A93C;
  --accent-bright:#E8C45A; --accent-ink:#0A0A0B; --band:#0A0A0B;
}
[data-ap-theme="daylight"] {
  --paper:#F1EEE7; --panel:#FBFAF6; --panel2:#ECE7DD; --ink:#15130E;
  --muted:#6A665C; --faint:#9A958A; --line:rgba(0,0,0,0.12);
  --line-strong:rgba(0,0,0,0.22); --accent:#B23A2C;
  --accent-bright:#d4513f; --accent-ink:#FBFAF6; --band:#1a1714;
}
[data-ap-theme="slate"] {
  --paper:#0B0E13; --panel:#141921; --panel2:#1B212B; --ink:#E7ECF2;
  --muted:#8794A4; --faint:#59626F; --line:rgba(255,255,255,0.09);
  --line-strong:rgba(255,255,255,0.18); --accent:#56A6FF;
  --accent-bright:#7cbcff; --accent-ink:#07090D; --band:#0B0E13;
}

/* Page surface */
.geo-paper { background: var(--geo-paper); color: var(--geo-ink); font-family: var(--geo-text); }

/* Masthead */
.geo-masthead {
  font-family: var(--geo-display);
  font-weight: 900; letter-spacing: -0.02em; line-height: 0.92;
  color: var(--geo-ink);
}
.geo-masthead-rule { border: 0; border-top: 2px solid var(--geo-ink); border-bottom: 1px solid var(--geo-ink); height: 3px; margin: 0; }

/* Kicker — tracked caps, the red label above a headline */
.geo-kicker {
  font-family: var(--geo-label);
  font-size: 0.72rem; font-weight: 500; letter-spacing: 0.22em;
  text-transform: uppercase; color: var(--geo-red);
}

/* Headline + dek */
.geo-headline {
  font-family: var(--geo-display);
  font-weight: 800; font-size: clamp(2rem, 4.4vw, 3.4rem);
  line-height: 1.02; letter-spacing: -0.015em;
  color: var(--geo-ink); margin: 0.35em 0 0;
}
.geo-dek {
  font-family: var(--geo-text);
  font-weight: 400; font-style: italic;
  font-size: clamp(1.05rem, 1.7vw, 1.3rem); line-height: 1.5;
  color: var(--geo-ink-soft); max-width: var(--geo-measure); margin: 0.6em 0 0;
}
.geo-byline {
  font-family: var(--geo-label);
  font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--geo-ink-mute);
}
.geo-byline b { color: var(--geo-ink); font-weight: 500; }

/* Article body, with optional drop cap */
.geo-body {
  font-family: var(--geo-text);
  font-size: 1.18rem; line-height: 1.72; color: var(--geo-ink);
  max-width: var(--geo-measure);
}
.geo-body p { margin: 0 0 1.1em; }
.geo-body.drop p:first-of-type::first-letter {
  font-family: var(--geo-display); font-weight: 800;
  float: left; font-size: 3.4em; line-height: 0.74;
  padding: 0.06em 0.09em 0 0; color: var(--geo-red);
}

/* Rules + pull quote */
.geo-rule { border: 0; border-top: 1px solid var(--geo-rule); margin: 1.75rem 0; }
.geo-rule-strong { border-top: 1px solid var(--geo-rule-strong); }
.geo-pullquote {
  font-family: var(--geo-display);
  font-weight: 700; font-style: italic;
  font-size: clamp(1.4rem, 2.6vw, 2rem); line-height: 1.22; color: var(--geo-ink);
  border-top: 2px solid var(--geo-red); border-bottom: 1px solid var(--geo-rule);
  padding: 0.7em 0; margin: 1.4em 0;
}

/* Charity tag chip — the matched cause on each story */
.geo-charity {
  display: inline-flex; align-items: center; gap: 0.5ch;
  font-family: var(--geo-label);
  font-size: 0.74rem; font-weight: 500; letter-spacing: 0.04em;
  color: var(--geo-red-deep);
  background: rgba(176,18,40,0.07);
  border: 1px solid rgba(176,18,40,0.28);
  border-radius: 999px; padding: 0.34em 0.85em;
}
.geo-charity::before { content: '\2665'; font-size: 0.9em; }

/* Buttons */
.geo-btn {
  display: inline-block; font-family: var(--geo-label);
  font-size: 0.8rem; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--geo-paper); background: var(--geo-ink); border: 1px solid var(--geo-ink);
  padding: 0.7em 1.4em; border-radius: 2px; text-decoration: none; cursor: pointer;
  transition: background 0.18s, color 0.18s;
}
.geo-btn:hover { background: var(--geo-red); border-color: var(--geo-red); color: #fff; }
.geo-btn.outline { background: transparent; color: var(--geo-ink); }
.geo-btn.outline:hover { background: var(--geo-ink); color: var(--geo-paper); }

/* Dark cover — pairs a cosmic cover with the paper interior */
.geo-cover { background: #06141a; color: #fff; }
.geo-cover .geo-headline, .geo-cover .geo-masthead { color: #fff; }
.geo-cover .geo-dek { color: rgba(255,255,255,0.74); }
.geo-cover .geo-kicker { color: #E8C45A; }

/* Helper to swap an existing wordmark to the display serif */
.geo-serif { font-family: var(--geo-display) !important; }
