
* {
  box-sizing:border-box;
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:24px;
}
body {
  margin:0;
  background:#f5f6f2;
  color:#172b26;
  font:16px/1.85 system-ui,-apple-system,"Segoe UI","Microsoft YaHei",sans-serif;
}
a {
  color:inherit;
  text-decoration:none;
}
a:hover {
  text-decoration:underline;
}
a:focus-visible {
  outline:3px solid #e49b42;
  outline-offset:5px;
}
.wrap {
  max-width:1120px;
  margin:auto;
  padding:0 28px;
}
.top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:24px 0;
  border-bottom:1px solid #d9dfd8;
}
.brand {
  font-weight:800;
  letter-spacing:.06em;
}
.mark {
  display:inline-grid;
  place-items:center;
  background:#214f3e;
  color:#fff;
  width:30px;
  height:30px;
  border-radius:8px;
  margin-right:10px;
}
.top nav {
  display:flex;
  gap:24px;
  font-size:14px;
  color:#53675d;
}
.hero {
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:44px;
  padding:58px 0 42px;
  align-items:center;
}
.eyebrow {
  font-size:12px;
  letter-spacing:.16em;
  color:#627e68;
  font-weight:700;
}
.hero h1 {
  font-size:clamp(34px,4.5vw,52px);
  line-height:1.28;
  margin:16px 0 20px;
  letter-spacing:-.04em;
}
.lead {
  color:#53675d;
  margin:0 0 24px;
}
.pills {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:20px 0;
}
.pill {
  font-size:12px;
  background:#e7ece4;
  padding:4px 12px;
  border-radius:30px;
}
.button {
  display:inline-flex;
  align-items:center;
  gap:18px;
  padding:12px 22px;
  border-radius:8px;
  color:white;
  background:#214f3e;
  font-weight:600;
}
.button:hover {
  background:#173e2e;
  text-decoration:none;
}
figure {
  margin:0;
  background:#fff;
  padding:12px;
  border:1px solid #e0e5dc;
  border-radius:16px;
  box-shadow:0 14px 40px #173e2e0a;
}
img {
  display:block;
  width:100%;
  height:auto;
  border-radius:8px;
}
figcaption {
  font-size:11px;
  color:#7e887d;
  margin:8px 3px 0;
}
.body-grid {
  display:grid;
  grid-template-columns:minmax(0,1fr) 260px;
  gap:36px;
  margin-bottom:40px;
}
.paper {
  padding:36px;
  background:#fff;
  border:1px solid #e0e5dc;
  border-radius:12px;
}
h2 {
  font-size:24px;
  line-height:1.4;
  margin:0 0 18px;
}
h3 {
  font-size:17px;
  margin:0 0 7px;
}
p {
  margin:0 0 16px;
}
.section+.section {
  border-top:1px solid #edf0e9;
  padding-top:28px;
  margin-top:28px;
}
.features {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.feature {
  padding:18px;
  background:#f6f8f3;
  border-radius:9px;
}
.feature p {
  font-size:14px;
  color:#617165;
  margin:0;
}
.num {
  font-size:11px;
  color:#68846c;
  letter-spacing:.08em;
  display:block;
  margin-bottom:7px;
}
.aside {
  font-size:14px;
}
.aside h2 {
  font-size:17px;
}
.aside dl {
  margin:0;
}
.aside dt {
  color:#8a938b;
  font-size:12px;
  margin-top:16px;
}
.aside dd {
  margin:3px 0;
  overflow-wrap:anywhere;
}
.note {
  font-size:13px;
  color:#6b796e;
  background:#eaf0e5;
  padding:18px;
  border-radius:8px;
  margin-top:22px;
}
.sources {
  font-size:13px;
  color:#617165;
}
.sources a {
  color:#295a46;
  text-decoration:underline;
}
.related {
  padding-top:32px;
  border-top:1px solid #d9dfd8;
}
.links {
  padding:0;
  list-style:none;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
.links a {
  font-size:13px;
  padding:12px;
  display:block;
  border:1px solid #dde3d9;
  border-radius:6px;
  overflow-wrap:anywhere;
  background:#fafbf7;
}
.links a:hover {
  background:#eaf0e5;
}
.footer {
  font-size:12px;
  display:flex;
  justify-content:space-between;
  gap:16px;
  color:#7c897f;
  padding:24px 0 35px;
}
.skip {
  position:absolute;
  left:-10000px;
}
.skip:focus {
  left:10px;
  top:10px;
  background:white;
  padding:10px;
  z-index:2;
}
@media(max-width:800px) {
  .hero {
    grid-template-columns:1fr;
    gap:24px;
    padding-top:36px;
  }
  .body-grid {
    grid-template-columns:1fr;
  }
  .aside {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px;
  }
  .links {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .paper {
    padding:24px;
  }
}
@media(max-width:480px) {
  .wrap {
    padding:0 18px;
  }
  .top nav {
    gap:12px;
    font-size:12px;
  }
  .features,.aside {
    grid-template-columns:1fr;
  }
  .footer {
    display:block;
  }
  .hero h1 {
    font-size:35px;
  }
  .paper {
    padding:20px;
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
}
.article-toc {
  background:#eef3e9;
  padding:20px;
  border-radius:10px;
  margin-bottom:30px;
  font-size:13px;
}
.article-toc strong {
  display:block;
  margin-bottom:10px;
}
.article-toc div {
  display:flex;
  gap:8px 18px;
  flex-wrap:wrap;
}
.article-toc a {
  color:#36634a;
}
.reading-steps {
  padding-left:22px;
}
.reading-steps li {
  padding-left:4px;
  margin-bottom:16px;
}
.reading-steps strong {
  color:#294c38;
}
.faq {
  border-bottom:1px solid #e8eee3;
  padding:16px 0;
}
.faq summary {
  font-weight:600;
  cursor:pointer;
  line-height:1.6;
}
.faq p {
  font-size:14px;
  color:#5c6e61;
  margin:12px 0 0;
}
.faq[open] summary {
  color:#285e3e;
}
.image-frame {
  aspect-ratio:3/2;
  overflow:hidden;
  border-radius:8px;
  background:#f5f6f2;
}
.image-frame img {
  height:100%;
  object-fit:contain;
}
.top nav {
  flex-wrap:wrap;
  justify-content:flex-end;
}
.hero>div,.paper,.aside {
  min-width:0;
}
summary:focus-visible {
  outline:3px solid #e49b42;
  outline-offset:4px;
}
h1,h2,h3,p {
  overflow-wrap:anywhere;
}

.muted{font-size:13px;color:#66776b}.paper .section>ul,.paper .section>ol{padding-left:22px}.intro{color:#53675d}.section h2{overflow-wrap:anywhere}

/* Sidebar friend links */
.aside{align-content:start;align-self:start}
.friend-links{grid-column:1/-1;margin-top:24px;padding:20px;background:#fff;border:1px solid #dde3d9;border-radius:10px}
.friend-links h2{font-size:17px;margin:0 0 14px}
.friend-links ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.friend-links a{display:block;padding:9px 10px;background:#f2f5ed;border-radius:6px;font-size:13px;color:#295a46;overflow-wrap:anywhere}
.friend-links a:hover{background:#e4ecdc;text-decoration:underline}
