/* Healthed Sept 26 summary — navy + gold */
:root {
  --navy: #0b1f3a;
  --navy-2: #143056;
  --gold: #c9a227;
  --gold-soft: #e8d48b;
  --cream: #f7f4ec;
  --ink: #1a2332;
  --muted: #5a6577;
  --card: #ffffff;
  --line: #d9d2c3;
  --shadow: 0 10px 30px rgba(11, 31, 58, 0.08);
  --radius: 14px;
  --max: 52rem;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: "Source Sans 3", system-ui, sans-serif;
  color: var(--ink);
  background:
    radial-gradient(1200px 500px at 10% -10%, rgba(201,162,39,0.18), transparent 60%),
    radial-gradient(900px 400px at 100% 0%, rgba(20,48,86,0.12), transparent 55%),
    var(--cream);
  line-height: 1.65;
}
.skip { position: absolute; left: -999px; top: 0; background: var(--gold); color: var(--navy); padding: .5rem 1rem; z-index: 10; }
.skip:focus { left: 1rem; top: 1rem; }
.wrap { width: min(var(--max), calc(100% - 2rem)); margin-inline: auto; }
.hero {
  background: linear-gradient(145deg, var(--navy) 0%, var(--navy-2) 55%, #1c4a7a 100%);
  color: #f8f5ee;
  padding: 3.2rem 0 2.6rem;
  border-bottom: 4px solid var(--gold);
}
.eyebrow {
  display: inline-block; margin: 0 0 .75rem; padding: .25rem .7rem;
  border: 1px solid rgba(232,212,139,.45); border-radius: 999px;
  font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; color: var(--gold-soft);
}
.hero h1 {
  font-family: Fraunces, Georgia, serif; font-weight: 700;
  font-size: clamp(1.7rem, 3.5vw, 2.45rem); line-height: 1.2; margin: 0 0 1rem; max-width: 18ch;
}
.lede { margin: 0 0 1rem; max-width: 60ch; color: rgba(248,245,238,.9); font-size: 1.05rem; }
.meta-line { margin: 0; color: var(--gold-soft); font-size: .92rem; }
.toc {
  margin: 1.5rem auto 2rem; background: var(--card); border: 1px solid var(--line);
  border-radius: var(--radius); padding: 1.25rem 1.4rem 1.4rem; box-shadow: var(--shadow);
}
.toc h2 { font-family: Fraunces, Georgia, serif; font-size: 1.15rem; margin: 0 0 .6rem; color: var(--navy); }
.toc ol { margin: 0; padding-left: 1.2rem; columns: 2; column-gap: 2rem; }
.toc li { break-inside: avoid; margin: .25rem 0; }
.toc a { color: var(--navy-2); text-decoration: none; border-bottom: 1px solid transparent; }
.toc a:hover, .toc a.active { border-bottom-color: var(--gold); color: var(--navy); }
@media (max-width: 700px) { .toc ol { columns: 1; } }
.card, .talk {
  background: var(--card); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 1.4rem 1.5rem 1.55rem; margin: 0 0 1.25rem; box-shadow: var(--shadow);
}
.intro h2, .themes h2, .disclaimer h2, .talk h2 {
  font-family: Fraunces, Georgia, serif; color: var(--navy); margin: 0 0 .75rem; line-height: 1.25;
}
.talk { border-left: 4px solid var(--gold); scroll-margin-top: 1rem; }
.talk .num { margin: 0; font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: var(--gold); font-weight: 700; }
.talk .speaker { margin: -.35rem 0 1rem; color: var(--muted); font-size: .95rem; }
.talk h3 { margin: 1.1rem 0 .45rem; font-size: 1rem; color: var(--navy-2); }
.talk ul { margin: .2rem 0 1rem; padding-left: 1.15rem; }
.talk li { margin: .35rem 0; }
.full { margin: 0; }
.full a {
  display: inline-block; color: var(--navy); font-weight: 600; text-decoration: none;
  border-bottom: 2px solid var(--gold); padding-bottom: 1px;
}
.full a:hover { color: #000; }
.link-grid {
  list-style: none; padding: 0; margin: 1rem 0 0;
  display: grid; grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr)); gap: .55rem;
}
.link-grid a {
  display: block; padding: .55rem .7rem; background: #f0ebe0; border-radius: 8px;
  color: var(--navy); text-decoration: none; font-size: .9rem; font-weight: 600; border: 1px solid transparent;
}
.link-grid a:hover { border-color: var(--gold); background: #fff; }
.theme-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: 1rem; }
.theme-grid h3 { margin: 0 0 .35rem; font-size: .95rem; color: var(--navy); }
.theme-grid p { margin: 0; font-size: .92rem; color: var(--muted); }
.disclaimer { background: #f3efe4; border-color: #cfc5ae; }
.fine { font-size: .85rem; color: var(--muted); }
.site-foot { padding: 2rem 0 3rem; color: var(--muted); font-size: .9rem; }
.site-foot a { color: var(--navy-2); }
