/* Shared typography, page width, links, and navigation. No publication layout. */
:root {
      --text: #181818;
      --muted: #616161;
      --line: #e2e2e2;
      --soft: #f7f7f7;
      --badge: #f0f2f5;
      --link: #214c8a;
      --max: 1040px;
      --radius: 0.9rem;
    }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
      margin: 0;
      color: var(--text);
      background: white;
      font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      font-size: 17px;
      line-height: 1.55;
    }
a { color: var(--link); }
a:hover { text-decoration-thickness: 2px; }
.skip-link {
      position: absolute;
      left: -999px;
      top: 0;
      background: white;
      padding: .6rem .8rem;
      z-index: 10;
    }
.skip-link:focus { left: .75rem; top: .75rem; }
.page {
      max-width: var(--max);
      margin: 0 auto;
      padding: 32px 22px 80px;
    }
h1 {
      margin: 0 0 .55rem;
      font-size: clamp(2.35rem, 6vw, 4rem);
      line-height: .98;
      letter-spacing: -.035em;
    }
.top-nav {
      display: flex;
      flex-wrap: wrap;
      gap: .75rem;
      margin: 1.45rem 0 0;
      font-size: 1.2rem;
      font-weight: 800;
    }
.top-nav a {
      display: inline-flex;
      align-items: center;
      border: 2px solid var(--text);
      border-radius: 999px;
      background: var(--text);
      color: white;
      padding: .62rem 1.18rem;
      text-decoration: none;
      letter-spacing: .01em;
      box-shadow: 0 2px 0 rgba(0, 0, 0, .14);
    }
.top-nav a:hover,
    .top-nav a:focus {
      background: var(--link);
      border-color: var(--link);
      text-decoration: none;
    }
h2 {
      font-size: clamp(2.05rem, 4.5vw, 2.75rem);
      line-height: 1.08;
      margin: 3.1rem 0 .9rem;
      letter-spacing: -.025em;
    }
.section-intro {
      max-width: 880px;
      margin: .25rem 0 1rem;
    }
.badge,
    .tag {
      display: inline-block;
      background: var(--badge);
      border: 1px solid var(--line);
      border-radius: .4rem;
      line-height: 1.35;
    }
.tag {
      padding: .14rem .45rem;
      font-size: .85rem;
    }
.tag { background: white; color: var(--muted); }
.site-footer {
      margin-top: 3rem;
      padding-top: 1.2rem;
      border-top: 1px solid var(--line);
      color: var(--muted);
      font-size: .94rem;
    }
@media (max-width:900px) { .page { padding-top:22px; } }
@media (max-width:620px) { body { font-size:16px; } }
