@import url('https://fonts.googleapis.com/css2?family=Source+Serif+4:opsz,wght@8..60,400..700&family=Hanken+Grotesk:wght@300..700&display=swap');

:root {
  --cream: #fbf8f1;
  --paper: #fffdf8;
  --ink: #2b2620;
  --ink-soft: #5c5347;
  --ink-faint: #8d8172;
  --gold: #b8915a;
  --hairline: rgba(43, 38, 32, 0.12);
  color-scheme: light;
}

html { scroll-behavior: smooth; }

body {
  min-height: 100vh;
  background:
    radial-gradient(700px 480px at 88% 0%, rgba(242, 232, 213, 0.9), transparent 68%),
    var(--cream);
  color: var(--ink);
  font-family: 'Hanken Grotesk', -apple-system, 'Helvetica Neue', sans-serif;
  font-size: 16px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

a {
  color: var(--ink);
  text-decoration-color: rgba(184, 145, 90, 0.7);
  text-underline-offset: 3px;
}

a:hover { color: var(--gold); }

.topbar {
  border-bottom: 1px solid var(--hairline);
  background: rgba(251, 248, 241, 0.9);
  font-size: 0.84rem;
}

.topbar .inner {
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
  padding: 18px 24px;
  gap: 24px;
}

.topbar .name {
  display: inline-flex;
  flex: none;
  color: var(--ink);
  text-decoration: none;
}

.topbar .name img {
  width: auto;
  height: 22px;
}

.topbar nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px 20px;
}

.topbar nav a {
  margin-left: 0;
  color: var(--ink-soft);
  text-decoration: none;
}

.container {
  width: 100%;
  max-width: 780px;
  margin: 0 auto;
  padding: clamp(44px, 7vw, 72px) 24px 84px;
}

h1, h2, h3 {
  color: var(--ink);
  font-family: 'Source Serif 4', 'Iowan Old Style', Georgia, serif;
  letter-spacing: -0.015em;
}

h1 {
  margin-bottom: 8px;
  font-size: clamp(2.4rem, 6vw, 3.65rem);
  font-weight: 600;
  line-height: 1.05;
}

h2 {
  margin: 38px 0 10px;
  font-size: 1.5rem;
  font-weight: 600;
  scroll-margin-top: 20px;
}

h3 {
  margin: 22px 0 7px;
  font-size: 1.08rem;
  font-weight: 600;
}

p, ul, ol, address { color: var(--ink-soft); }

.updated {
  margin-bottom: 28px;
  color: var(--gold);
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.04em;
}

.intro {
  max-width: 650px;
  font-size: 1.08rem;
}

.note {
  border: 1px solid rgba(184, 145, 90, 0.28);
  border-radius: 14px;
  background: rgba(255, 253, 248, 0.72);
}

.toc-head {
  color: var(--gold);
  letter-spacing: 0.14em;
}

table {
  overflow: hidden;
  border-color: var(--hairline);
  border-radius: 14px;
  background: rgba(255, 253, 248, 0.58);
}

th, td { border-color: var(--hairline); }
th { color: var(--ink); background: rgba(242, 232, 213, 0.65); }

hr {
  border-top-color: var(--hairline);
  margin-top: 52px;
}

footer {
  color: var(--ink-faint);
  line-height: 1.8;
}

footer a { color: var(--ink-faint); }

@media (max-width: 600px) {
  .topbar .inner {
    align-items: flex-start;
    padding: 16px 20px;
  }

  .topbar .name img { height: 19px; }
  .topbar nav { gap: 7px 14px; }
  .container { padding: 38px 20px 64px; }

  table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}

@media (max-width: 420px) {
  .topbar .inner { flex-direction: column; gap: 12px; }
  .topbar nav { justify-content: flex-start; }
}
