/* Follow the Influence — editorial research site */
:root {
  --ink: #123b57;
  --ink-deep: #0d2f46;
  --ink-soft: #4b5d69;
  --paper: #fbf7ee;
  --paper-card: #fffdf7;
  --paper-warm: #efe3d2;
  --line: #d7c7af;
  --accent: #9d1c2d;
  --accent-dark: #7f1323;
  --accent-soft: #f4e1e4;
  --blue: #426d8c;
  --blue-soft: #dfeaf3;
  --gold: #b38620;
  --gold-soft: #f4ead1;
  --green: #4f715d;
  --green-soft: #e3ece5;
  --max: 1180px;
  --radius: 16px;
  --shadow: 0 14px 36px rgba(18,59,87,.10);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--paper); }
body { margin:0; color:var(--ink-deep); background:var(--paper); font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; line-height:1.6; }
a { color:var(--blue); text-underline-offset:3px; }
a:hover { color:var(--accent); }
img { max-width:100%; }
button,input,textarea,select { font:inherit; }
.skip-link { position:absolute; left:-9999px; top:0; background:var(--ink); color:white; padding:.7rem 1rem; z-index:1000; }
.skip-link:focus { left:1rem; top:1rem; }
.container { width:min(calc(100% - 2rem),var(--max)); margin-inline:auto; }
.narrow { width:min(calc(100% - 2rem),820px); margin-inline:auto; }
.election-banner { background:var(--accent); color:white; font-size:.94rem; }
.election-banner[hidden]{display:none}.election-banner .container{min-height:44px;display:flex;align-items:center;justify-content:center;gap:.7rem;text-align:center}.election-banner a{color:white;font-weight:800}
.site-header { position:sticky; top:0; z-index:100; background:rgba(251,247,238,.96); backdrop-filter:blur(12px); border-bottom:1px solid var(--line); }
.header-inner { min-height:74px; display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.brand { display:inline-flex; align-items:center; gap:.7rem; color:var(--ink-deep); text-decoration:none; font-weight:900; letter-spacing:-.02em; }
.brand-mark { width:34px; height:34px; }
.site-nav{display:flex;align-items:center;gap:1.15rem}.site-nav a{color:var(--ink-soft);text-decoration:none;font-weight:750;font-size:.95rem}.site-nav a[aria-current="page"],.site-nav a:hover{color:var(--accent)}
.nav-toggle{display:none;border:1px solid var(--line);background:var(--paper-card);border-radius:10px;padding:.55rem .75rem;color:var(--ink);font-weight:800}
.hero { padding:clamp(3.8rem,7vw,6.5rem) 0 3.2rem; background:linear-gradient(180deg,#f7eddf 0%,var(--paper) 100%); border-bottom:1px solid var(--line); }
.hero-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:clamp(2rem,5vw,5rem);align-items:center}
.eyebrow{margin:0 0 .8rem;color:var(--accent);font-size:.79rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}
h1,h2,h3{line-height:1.08;letter-spacing:-.035em}h1{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:clamp(3.1rem,7vw,6.5rem);max-width:11ch}h2{margin:0 0 1rem;font-family:Georgia,"Times New Roman",serif;font-size:clamp(2rem,4vw,3.5rem)}h3{margin:0 0 .65rem;font-size:1.35rem}
.lead{max-width:68ch;color:var(--ink-soft);font-size:clamp(1.08rem,2vw,1.28rem)}.hero-actions{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1.6rem}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:.75rem 1rem;border-radius:999px;border:1px solid var(--ink);color:white;background:var(--ink);text-decoration:none;font-weight:850}.button:hover{color:white;background:var(--accent);border-color:var(--accent)}.button.secondary{color:var(--ink);background:var(--paper-card);border-color:var(--line)}.button.secondary:hover{color:var(--accent);background:white;border-color:var(--accent)}
.hero-note,.card,.panel{background:var(--paper-card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.hero-note{padding:1.5rem;border-top:5px solid var(--accent)}.hero-note strong{display:block;margin-bottom:.55rem}.hero-note p{margin:0;color:var(--ink-soft)}
.map-section{padding:2.4rem 0 3.2rem;background:var(--paper)}.map-intro{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:1rem}.map-intro h2{font-size:clamp(1.9rem,3vw,2.8rem);margin-bottom:.35rem}.map-intro p{margin:0;color:var(--ink-soft);max-width:70ch}.map-scroll{overflow-x:auto;overscroll-behavior-inline:contain;border:1px solid var(--line);border-radius:18px;background:#fffdf7;box-shadow:var(--shadow)}.map-scroll img{display:block;width:100%;min-width:1050px;height:auto}.map-caption{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-top:.8rem;color:var(--ink-soft);font-size:.9rem}.map-caption a{font-weight:800;white-space:nowrap}.map-mini{padding:1rem;border-radius:14px;background:var(--paper-card);border:1px solid var(--line)}
.section{padding:clamp(4rem,7vw,7rem) 0}.section.alt{background:var(--paper-warm)}.section-header{max-width:780px;margin-bottom:2rem}.section-header p{color:var(--ink-soft);font-size:1.08rem}.grid{display:grid;gap:1rem}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.card{padding:1.35rem;box-shadow:none}.card p{color:var(--ink-soft);margin-bottom:0}.card .kicker{color:var(--accent);font-size:.76rem;font-weight:900;text-transform:uppercase;letter-spacing:.1em}.card-link{text-decoration:none;color:inherit}.card-link:hover .card{border-color:var(--accent);transform:translateY(-2px);transition:.2s ease}
.callout{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1.5rem;padding:clamp(1.4rem,4vw,2.5rem);border-radius:var(--radius);background:var(--ink);color:white}.callout p{margin:.4rem 0 0;color:#dbe5eb}.callout .button{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.status-row{display:flex;flex-wrap:wrap;gap:.55rem;margin:1rem 0}.status{display:inline-flex;align-items:center;gap:.4rem;padding:.38rem .65rem;border-radius:999px;font-size:.8rem;font-weight:850}.status.documented{background:var(--green-soft);color:var(--green)}.status.inference{background:var(--gold-soft);color:#76580f}.status.open{background:var(--blue-soft);color:var(--blue)}.status.disputed{background:var(--accent-soft);color:var(--accent-dark)}
.node-list{display:grid;gap:1rem}.node{position:relative;padding:1.25rem 1.25rem 1.25rem 2rem;border-left:4px solid var(--accent);background:var(--paper-card);border-radius:0 var(--radius) var(--radius) 0;border-top:1px solid var(--line);border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.node:nth-child(even){border-left-color:var(--blue)}.node p{color:var(--ink-soft);margin-bottom:0}
.source-list{list-style:none;padding:0;margin:0;display:grid;gap:.8rem}.source-list li{padding:1rem 0;border-bottom:1px solid var(--line)}.source-list strong{display:block}.source-list span{color:var(--ink-soft)}
.steps{counter-reset:steps;display:grid;gap:.85rem}.step{counter-increment:steps;display:grid;grid-template-columns:44px 1fr;gap:1rem;align-items:start;padding:1.1rem 0;border-bottom:1px solid var(--line)}.step::before{content:counter(steps);width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:var(--accent);color:white;font-weight:900}.step p{margin:.2rem 0 0;color:var(--ink-soft)}
.resource{padding:1.2rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-card)}.resource h3{font-size:1.15rem}.resource p{color:var(--ink-soft)}.resource a{font-weight:800}
.prose{font-size:1.05rem}.prose p,.prose li{color:var(--ink-soft)}.prose strong{color:var(--ink-deep)}.prose blockquote{margin:1.4rem 0;padding:1rem 1.25rem;border-left:4px solid var(--accent);background:var(--paper-warm);color:var(--ink-deep)}
.page-hero{padding:4.2rem 0 2.8rem;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#f7eddf 0%,var(--paper) 100%)}.page-hero h1{max-width:14ch;font-size:clamp(2.8rem,6vw,5.3rem)}.page-hero .lead{margin-bottom:0}.meta{color:var(--ink-soft);font-size:.9rem}hr{border:0;border-top:1px solid var(--line);margin:2rem 0}
.site-footer{border-top:1px solid var(--line);background:#e9dcc8;padding:2.5rem 0}.footer-grid{display:grid;grid-template-columns:1.4fr .6fr;gap:2rem}.footer-grid p{color:var(--ink-soft);max-width:62ch}.footer-links{display:flex;flex-wrap:wrap;gap:.8rem 1rem;align-content:start}.footer-links a{text-decoration:none;font-weight:750}.small{font-size:.88rem;color:var(--ink-soft)}
.notice{border:1px solid #dfb8ae;background:#fbebe7;border-radius:var(--radius);padding:1rem 1.15rem}.notice strong{color:var(--accent-dark)}
@media(max-width:900px){.hero-grid,.grid-3,.grid-4,.footer-grid{grid-template-columns:1fr}.grid-2{grid-template-columns:1fr}h1{max-width:12ch}.callout{grid-template-columns:1fr}.nav-toggle{display:inline-flex}.site-nav{display:none;position:absolute;top:74px;left:1rem;right:1rem;padding:1rem;flex-direction:column;align-items:stretch;background:var(--paper-card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.site-nav.open{display:flex}.map-intro,.map-caption{display:block}.map-caption a{display:inline-block;margin-top:.5rem}}
@media(max-width:600px){.container,.narrow{width:min(calc(100% - 1.2rem),var(--max))}.hero{padding-top:3.2rem}.hero-actions .button{width:100%}.election-banner .container{padding:.55rem 0;align-items:flex-start}.map-scroll img{min-width:920px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
