/* The Whole Board — design tokens per Design System.md (post-riot, July 2026)
   Laws: blue backgrounds only; coral in small doses; 16px text minimum;
   colored shadows allowed; motion respects prefers-reduced-motion. */

:root{
  --glass:#4FC3C8;
  --harbor:#16414F;
  --lake:#E7F1F4;
  --lake-deep:#CDE4E9;
  --coral:#E8896B;
  --terracotta:#C0623B;
  --ochre:#D9A441;
  --sage:#8FA678;
  --slate:#5B7A99;
  --pink:#F2C4C4;
  --ink-soft:rgba(22,65,79,.75);
  --serif:Georgia,'Times New Roman',serif;
  --sans:-apple-system,'Segoe UI',Helvetica,Arial,sans-serif;
}

*{margin:0;box-sizing:border-box}
body{
  background:linear-gradient(180deg,var(--lake-deep) 0%,var(--lake) 380px,var(--lake) 100%);
  color:var(--harbor);
  font-family:var(--serif);
  line-height:1.7;
  font-size:16px;
  min-height:100vh;
}

/* ---------- nav ---------- */
.nav{display:flex;justify-content:space-between;align-items:center;padding:22px 48px;flex-wrap:wrap;gap:12px}
.nav .brand{font-size:22px;letter-spacing:.4px;color:var(--harbor);text-decoration:none}
.nav .links{font-family:var(--sans);font-size:15.5px}
.nav .links a{color:var(--harbor);text-decoration:none;margin-left:26px}
.nav .links a:hover,.nav .links a:focus{color:var(--glass)}
.nav .links a[aria-current="page"]{border-bottom:2px solid var(--glass)}

/* ---------- typography helpers ---------- */
.kicker{font-family:var(--sans);font-size:13.5px;letter-spacing:3px;text-transform:uppercase;color:var(--coral)}
h1{font-weight:normal;line-height:1.32}
.page-title{max-width:820px;margin:36px auto 6px;padding:0 24px;font-size:34px;text-align:center}
.page-job{max-width:640px;margin:0 auto 34px;padding:0 24px;text-align:center;font-size:18px;color:var(--ink-soft)}

/* ---------- source chips: every number is a door ---------- */
.chip{
  display:inline-block;background:rgba(79,195,200,.14);border:1px solid rgba(79,195,200,.5);
  border-radius:20px;padding:0 10px;font-size:13px;font-family:var(--sans);
  cursor:pointer;vertical-align:2px;white-space:nowrap;color:var(--harbor);
}
.chip:hover,.chip:focus{background:rgba(79,195,200,.3)}
.chip-pop{
  position:absolute;z-index:50;max-width:340px;background:#fff;border-radius:12px;
  padding:14px 16px;font-family:var(--sans);font-size:14px;line-height:1.5;
  box-shadow:0 6px 24px rgba(22,65,79,.22);
}
.chip-pop a{color:var(--glass)}
.chip-pop .conf{font-size:12.5px;color:var(--ink-soft)}

/* ---------- cards ---------- */
.grid{max-width:960px;margin:0 auto;padding:0 24px 60px;display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:700px){.grid{grid-template-columns:1fr}.nav{padding:18px 20px}}
.card{background:#fff;border-radius:14px;padding:26px 28px;box-shadow:0 4px 16px rgba(91,122,153,.18)}
.card .meet{font-family:var(--sans);font-size:12.5px;letter-spacing:1.5px;text-transform:uppercase;color:var(--coral);margin-bottom:10px}
.card h3{font-size:20px;font-weight:normal;line-height:1.4}
.card .body{font-size:15.5px;color:var(--ink-soft);font-family:var(--sans);margin-top:10px}
.shadow-sage{box-shadow:0 4px 16px rgba(143,166,120,.35)}
.shadow-ochre{box-shadow:0 4px 16px rgba(217,164,65,.32)}
.shadow-slate{box-shadow:0 4px 16px rgba(91,122,153,.32)}
.shadow-coral{box-shadow:0 4px 16px rgba(232,137,107,.32)}

/* ---------- pebbles + ripples (Shay's funsies, accessibility-lawful) ---------- */
.dot{display:inline-block;width:11px;height:11px;border-radius:50%;margin-right:7px}
.pebble{position:relative;cursor:pointer}
.pebble::after{
  content:"";position:absolute;inset:-4px;border-radius:50%;
  border:2px solid currentColor;opacity:0;pointer-events:none;
}
.pebble:hover::after,.pebble:focus::after{animation:ripple 1s ease-out}
@keyframes ripple{
  0%{opacity:.7;transform:scale(.6)}
  100%{opacity:0;transform:scale(2.4)}
}
@media (prefers-reduced-motion: reduce){
  .pebble:hover::after,.pebble:focus::after{animation:none;opacity:.55;transform:scale(1.4)}
  *{transition:none !important}
}

/* ---------- buttons ---------- */
.doors{display:flex;justify-content:center;gap:14px;margin:48px auto 70px;font-family:var(--sans);flex-wrap:wrap}
.btn{text-decoration:none;color:#fff;background:var(--harbor);padding:13px 26px;border-radius:28px;font-size:16px}
.btn.alt{background:transparent;color:var(--harbor);border:1.5px solid var(--harbor)}
.btn:hover,.btn:focus{background:var(--glass);border-color:var(--glass);color:#fff}

/* ---------- filters (map page) ---------- */
.filters{max-width:960px;margin:0 auto 18px;padding:0 24px;display:flex;gap:10px;flex-wrap:wrap;font-family:var(--sans)}
.filters select,.filters input{font-size:16px;padding:9px 12px;border-radius:10px;border:1px solid rgba(22,65,79,.25);background:#fff;color:var(--harbor)}
#map{max-width:960px;height:440px;margin:0 auto 26px;border-radius:14px}
.org-list{max-width:960px;margin:0 auto;padding:0 24px 60px;display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:700px){.org-list{grid-template-columns:1fr}}

/* ---------- prose pages (report/methodology) ---------- */
.prose{max-width:680px;margin:0 auto;padding:10px 28px 80px}
.prose p{font-size:18px;margin-bottom:24px}
.prose h2{font-weight:normal;font-size:26px;margin:40px 0 14px}

footer{text-align:center;padding:26px;font-size:14px;color:rgba(22,65,79,.55);font-family:var(--sans);border-top:1px solid rgba(22,65,79,.1)}
