/* ============================================================
   stressed.in — theme.css · site-wide contrast & richness layer
   Load LAST in <head> (just before </head>) on every page:
     <link rel="stylesheet" href="/theme.css?v=1">
   Because it comes after each page's inline <style>, its :root
   tokens win the cascade — one file now controls the palette.
   ============================================================ */

/* ---------- 1 · TOKENS: deeper warm inks, stronger lines ---------- */
:root{
  --ink:#141310;
  --ink2:#34312a;
  --navy:#2A271F;                 /* dark sections a touch deeper      */
  --muted:#565040;                /* was #6c665a · 5.0:1 → 7.0:1       */
  --text:#141310;
  --text2:#565040;
  --text3:#6b6455;                /* was #7d7668 · 3.9:1 → 5.1:1       */
  --accent:#B8471F;               /* was #C8512A · richer terracotta,
                                     4.6:1 on cream, 5.3:1 under white */
  --accent-dk:#A03A16;
  --line:#d2cab7;                 /* borders that actually draw cards  */
  --border:#d2cab7;
  --border2:#d2cab7;
  --muted-d:rgba(255,255,255,.80);/* dark-section body text .55 → .80  */
  --line-d:rgba(255,255,255,.16);
}

/* ---------- 2 · TEXT: weight floor + known-light classes ---------- */
body{ -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }

/* Hanken 300 reads anemic on cream — 400 is the floor for body copy */
.hero-sub, .page-sub, .section-sub, .sec-sub, .card-sub, .tier-for,
.explorer-sub, .lc-sub, .feat-p, .vcard p, .gcard p, .stat-sub,
.founder-note p, .cta-banner-p { font-weight:400; }

/* Section/page sub-headers: step up from muted to near-ink */
.page-sub, .hero-sub, .section-sub, .sec-sub, .card-sub,
.explorer-sub, .cta-banner-p { color:#3f3a30; }

/* Body copy inside cards and features */
.vcard p, .gcard p, .feat p, .tier-feats li, .choice .tx span,
.founder-note p, .exp-empty, .gate p { color:#46412f; color:#4a4437; }

/* Small meta / tertiary — keep quiet but legible */
.stat-sub, .src-note, .exp-note, .exp-cin, .cin, .info-note,
.tier-annual-note, .result-count, .card .hint, .crit
  { color:var(--text3); }

/* Labels & eyebrows: darker accent + a touch more weight */
.page-eyebrow, .card-label, .sec-label, .tier-name, .stat-label,
.gate-eyebrow, .feat-eyebrow
  { color:var(--accent-dk); font-weight:600; }

/* Tables: headers stop whispering, rows read as data */
table thead th{ color:#3f3a30; font-weight:600;
  border-bottom:2px solid #c6bda6; }
table tbody td{ color:#26231c; }
table tbody tr:hover{ background:rgba(184,71,31,.045); }

/* ---------- 3 · DEPTH: cards lift off the cream ---------- */
.stat, .vcard, .tier, .gcard, .card, .table-wrap, .explorer,
.gate, .cta-banner, .choice, .me
  { box-shadow:0 1px 2px rgba(21,20,15,.05),
               0 18px 34px -26px rgba(21,20,15,.28); }

.stat, .vcard, .tier, .gcard, .card { background:#FDFCF9; }

/* Featured pricing tier keeps its stronger presence */
.tier.feat{ box-shadow:0 2px 4px rgba(21,20,15,.06),
            0 26px 48px -28px rgba(21,20,15,.38); }

/* ---------- 4 · DARK SECTIONS & FOOTER: raise the whisper ---------- */
footer p, .foot-bot, .sitefoot p { color:rgba(255,255,255,.66) !important; }
.foot-col a, .sitefoot a { color:rgba(255,255,255,.85); }
.foot-col h4 { color:rgba(255,255,255,.55); }

/* ---------- 5 · AFFORDANCE: links, focus, badges ---------- */
a:focus-visible, button:focus-visible
  { outline:2px solid var(--accent); outline-offset:2px; border-radius:4px; }

.eoi-badge{ font-weight:600; }
.norp{ color:#8a8272; }

/* Gate chips & badges: slightly firmer */
.gate-chip, .bdg { color:#4a4437; border-color:#c6bda6; }