:root {
  color-scheme: light;
  --ink: #303c45;
  --muted: #6a7680;
  --link: #32758a;
  --line: #e9edef;
  --font: Georgia, "Times New Roman", "PingFang SC", "Microsoft YaHei", serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 36px; }
body { margin: 0; color: var(--ink); background: #fff; font: 18px/1.7 var(--font); font-synthesis: none; }
[hidden] { display: none !important; }
a { color: var(--link); text-decoration: none; text-underline-offset: 4px; }
a:hover { text-decoration: underline; }
a:focus-visible, button:focus-visible { outline: 2px solid var(--link); outline-offset: 5px; border-radius: 2px; }
.skip-link { position: absolute; z-index: 5; left: 20px; top: -80px; padding: 8px 15px; background: #fff; border: 1px solid var(--link); }
.skip-link:focus { top: 10px; }
.masthead { border-bottom: 1px solid var(--line); }
.masthead-inner { max-width: 1200px; min-height: 76px; margin: auto; padding: 0 40px; display: flex; align-items: center; gap: 64px; }
.site-title { color: var(--ink); font-size: 23px; line-height: 1.4; font-weight: 400; white-space: nowrap; letter-spacing: 0; }
.site-title span { margin-left: 12px; font-size: 14px; font-weight: 400; letter-spacing: 2px; color: var(--muted); }
#site-nav { display: flex; gap: 34px; align-items: center; }
#site-nav a { color: #66717a; font-size: 17px; font-weight: 400; padding: 23px 0 21px; border-bottom: 2px solid transparent; }
#site-nav a:hover, #site-nav a[aria-current] { color: var(--ink); border-bottom-color: #82a9b4; text-decoration: none; }
#site-nav a span { font-size: 13px; margin-left: 3px; }
.menu-toggle { display: none; }
.page-layout { width: 100%; display: grid; grid-template-columns: 236px minmax(0, 1fr); gap: 64px; max-width: 1200px; padding: 46px 40px 56px; margin: 0 auto; }
.author { align-self: start; padding-top: 4px; }
.author h2 { font-size: 25px; font-weight: 400; line-height: 1.35; margin: 0 0 8px; letter-spacing: 0; }
.author-name { color: #6b757d; font-size: 14px; letter-spacing: 3px; margin: 0 0 24px; }
.author-bio { font-size: 16px; line-height: 1.7; margin: 0 0 25px; color: var(--muted); }
.author-links { list-style: none; margin: 0; padding: 0; font-size: 15px; line-height: 1.6; }
.author-links li { display: flex; gap: 11px; align-items: flex-start; margin-bottom: 16px; }
.author-links svg { width: 15px; height: 15px; margin-top: 5px; flex: 0 0 15px; fill: none; stroke: #839098; stroke-width: 1.6; stroke-linejoin: round; stroke-linecap: round; }
.author-links .school-icon { fill: currentColor; stroke: none; color: #839098; }
.author-links a { color: var(--ink); }
.handle { color: var(--muted); }
main { max-width: 720px; min-width: 0; }
section + section { margin-top: 38px; }
h1 { font-size: 34px; font-weight: 400; line-height: 1.25; letter-spacing: 0; margin: 0 0 29px; }
p { margin: 0 0 20px; }
main p { color: #48545d; font-size: 20px; line-height: 1.8; }
main p:last-child { margin-bottom: 0; }
main p a { text-decoration: underline; text-decoration-color: #b8d1d8; text-decoration-thickness: 1px; }
section > h2 { font-size: 26px; font-weight: 400; line-height: 1.35; letter-spacing: 0; margin: 0 0 24px; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
section > h2:last-child { margin-bottom: 0; }
main h3 { font-size: 21px; font-weight: 400; }
.site-footer { border-top: 1px solid var(--line); background: #f8f9fa; }
.footer-inner { max-width: 1200px; margin: auto; padding: 27px 40px 28px; color: #77828a; font-size: 13px; line-height: 1.8; }
.footer-credit, .filing { display: flex; flex-wrap: wrap; gap: 6px 22px; }
.footer-credit { margin-bottom: 7px; }
.site-footer a { color: inherit; }
.filing { font-size: 11px; }
.filing a { display: inline-flex; align-items: center; gap: 5px; }
.filing img { object-fit: contain; }
@media (min-width: 1100px) { .author { position: sticky; top: 40px; } }
@media (max-width: 1050px) {
  .masthead-inner { gap: 42px; padding: 0 30px; }
  #site-nav { gap: 25px; }
  .page-layout { grid-template-columns: 215px minmax(0, 1fr); gap: 52px; padding-left: 30px; padding-right: 30px; }
  main p { font-size: 19px; }
}
@media (max-width: 760px) {
  .masthead-inner { min-height: 76px; padding: 18px 24px; flex-wrap: wrap; gap: 10px; justify-content: space-between; }
  .site-title { font-size: 22px; }
  .site-title span { font-size: 13px; margin-left: 8px; }
  .menu-toggle { display: block; font: inherit; font-size: 15px; border: 1px solid #e2e7ea; border-radius: 4px; background: #fff; color: var(--ink); padding: 4px 10px; cursor: pointer; }
  .menu-toggle span { margin-left: 6px; }
  #site-nav { width: 100%; gap: 24px; flex-wrap: wrap; }
  #site-nav a { padding: 10px 0 5px; font-size: 16px; }
  .masthead.menu-ready #site-nav { display: none; }
  .masthead.menu-open #site-nav { display: flex; }
  .page-layout { display: block; padding: 28px 24px 42px; }
  .author { margin-bottom: 30px; padding: 0 0 24px; border-bottom: 1px solid var(--line); }
  .author h2 { font-size: 25px; margin-bottom: 6px; }
  .author-name { margin-bottom: 18px; font-size: 13px; }
  .author-bio { margin-bottom: 19px; font-size: 16px; }
  .author-links { font-size: 15px; }
  .author-links li { margin-bottom: 12px; gap: 10px; }
  .author-links li:last-child { margin-bottom: 0; }
  h1 { font-size: 31px; margin-bottom: 24px; }
  main p { font-size: 19px; line-height: 1.8; }
  section + section { margin-top: 34px; }
  section > h2 { font-size: 25px; padding-bottom: 12px; }
  .footer-inner { padding: 25px 24px; font-size: 12px; }
}
@media (max-width: 380px) {
  .masthead-inner, .page-layout, .footer-inner { padding-left: 20px; padding-right: 20px; }
  .site-title { font-size: 20px; }
  .site-title span { font-size: 12px; margin-left: 6px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
