/* ===========================================================================
   Bimini — Site Theme
   Shared across EVERY page so colours + typography stay consistent site-wide.
   The page LAYOUT is unchanged from the prior site (still built with Tailwind
   utilities); this file + js/theme.js only re-skin it to the Daily Intelligence
   Brief look: cream paper, burgundy ink, Source Serif / Inter / JetBrains Mono.
   Palette source of truth lives in :root below; js/theme.js mirrors it into the
   Tailwind colour tokens used in the markup.
   =========================================================================== */

:root{
  --cream:#f6f4ee; --paper:#ffffff; --panel:#e7e5e0; --ink:#2d2b28;
  --burgundy:#771e2c; --burgundy-bright:#963042; --burgundy-tint:#f0e6e8;
  --text:#2d2b28; --text-dim:#5a5651; --text-faint:#8a857f;
  --border:#b1afab; --border-soft:#dddcd6;
  --tailwind:#2d6a4f; --headwind:#b8430a; --crosswind:#d97706;
  --correlation:#6b21a8; --gold:#9f7b00;
}

/* ---- Typography (replaces the old DM Sans / Playfair / DM Mono) ---- */
html, body{ font-family:"Inter", system-ui, sans-serif; }
body{ background:var(--cream); color:var(--text); -webkit-font-smoothing:antialiased; }
.font-display{ font-family:"Source Serif 4", Georgia, serif; }
.font-mono{ font-family:"JetBrains Mono", ui-monospace, monospace; }
html{ scroll-behavior:smooth; }

/* In-page section sub-nav: lives in the page flow below the hero, scrolls up
   with the page, then sticks flush under the fixed header. --nav-h and
   --subnav-h are MEASURED at runtime by js/theme.js (no guessed offsets). */
.subnav{ position: sticky; top: var(--nav-h, 98px); z-index: 40; }

/* Anchor landings: sections carry 64px top padding (py-16) before their small
   kicker header, so the offset is the fixed stack MINUS that padding plus a
   16px breathing gap — the jump lands with the kicker just below the navs. */
[id]{ scroll-margin-top: calc(var(--nav-h, 98px) - 48px); }
body.has-subnav [id]{ scroll-margin-top: calc(var(--nav-h, 98px) + var(--subnav-h, 41px) - 48px); }

/* ---- Brand wordmark (replaces the white-on-dark logo image on light pages) ---- */
.wordmark{ font-family:"Source Serif 4", Georgia, serif; font-weight:700; line-height:1;
  letter-spacing:-.01em; color:var(--ink); }
.wordmark .s{ font-weight:400; color:var(--burgundy-bright); }

/* ---- Article pages (shared by every file in articles/) ---- */
.article-body p{ margin-bottom: 1.25rem; }
.article-body h3{ margin-top: 2.5rem; margin-bottom: 1rem; }
.article-body blockquote{ border-left: 3px solid var(--burgundy); padding-left: 1.5rem; margin: 1.5rem 0; }
.article-body hr{ margin-top: 2.5rem; margin-bottom: 2.5rem; border-color: var(--border-soft); }
.article-body a{ color: var(--burgundy-bright); text-decoration: underline; }
.article-body a:hover{ color: var(--burgundy); }

/* ---- Small shared bits carried over from the old inline styles ---- */
::-webkit-scrollbar{ width:8px; }
::-webkit-scrollbar-track{ background:var(--panel); }
::-webkit-scrollbar-thumb{ background:var(--burgundy); border-radius:4px; }
.card-hover{ transition:all .3s ease; }
.card-hover:hover{ transform:translateY(-4px); }
@keyframes float{ 0%,100%{ transform:translateY(0);} 50%{ transform:translateY(-10px);} }
.animate-float{ animation:float 3s ease-in-out infinite; }
