:root {
  color-scheme: light;
  --ink: #252b2a;
  --muted: #565f5d;
  --link: #245c50;
  --rule: #d7dcda;
  --sidebar: #f5f6f5;
  --sidebar-width: 284px;
}
* { box-sizing: border-box; letter-spacing: 0; }
html { scroll-padding-top: 28px; }
body { margin: 0; color: var(--ink); background: #fff; font: 18px/1.65 Georgia, "Times New Roman", serif; }
a { color: var(--link); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: #143f86; }
:focus-visible { outline: 2px solid #265fac; outline-offset: 4px; }
.skip-link { position: fixed; top: -100px; left: 16px; background: #fff; padding: 8px 16px; z-index: 10; }
.skip-link:focus { top: 12px; }
.sidebar { position: fixed; inset: 0 auto 0 0; width: var(--sidebar-width); overflow-y: auto; padding: 32px 20px 24px; border-right: 1px solid var(--rule); background: var(--sidebar); font: 14px/1.45 Arial, sans-serif; }
.book-name { display: block; padding: 0 10px 22px; font: 23px/1.25 Georgia, serif; text-decoration: none; color: #263f38; }
.contents > summary { display: none; }
.chapters, .section-links { list-style: none; margin: 0; padding: 0; }
.chapters > li { margin: 3px 0; }
.chapter-link { display: block; padding: 8px 10px; text-decoration: none; color: #353e3b; }
.chapter-link[aria-current="page"] { background: #e3ebe7; color: #164c3d; font-weight: bold; border-left: 3px solid #245c50; padding-left: 7px; }
.chapter-link:hover, .section-links a:hover { background: #eaeceb; }
.nav-number { display: inline-block; margin-right: 7px; color: #646d69; font-variant-numeric: tabular-nums; }
.nav-divider { padding: 23px 10px 5px; font-size: 12px; color: var(--muted); text-transform: uppercase; }
.section-links { margin: 6px 0 14px 12px; padding-left: 9px; border-left: 1px solid #cbd4cf; }
.section-links a { display: block; padding: 5px 7px; text-decoration: none; font-size: 13px; color: #48554f; }
.section-links .level-3 { margin-left: 12px; }
.section-links a[aria-current="location"] { color: #164c3d; background: #e3ebe7; }
.pdf-link { display: block; margin: 26px 10px 0; padding-top: 18px; border-top: 1px solid var(--rule); }
main { margin-left: var(--sidebar-width); padding: 48px 54px 40px; max-width: 1230px; }
article > p, article > ul, article > ol, article > h1, article > h2, article > h3, .titlepage { max-width: 760px; }
h1, h2, h3 { font-weight: normal; line-height: 1.25; color: #233b33; overflow-wrap: anywhere; }
h1 { font-size: 38px; margin: 0 0 28px; padding-bottom: 22px; border-bottom: 1px solid var(--rule); }
h2 { font-size: 26px; margin: 46px 0 17px; }
h3 { font-size: 21px; margin: 30px 0 14px; }
h1 .section-number { display: block; font: 14px/1.4 Arial, sans-serif; color: var(--muted); margin-bottom: 9px; }
h2 .section-number, h3 .section-number { color: var(--muted); font-size: 16px; margin-right: 7px; }
p { margin: 0 0 19px; }
ul, ol { padding-left: 26px; }
li { padding-left: 3px; margin: 8px 0; }
code { font: 0.83em/1.5 Consolas, "Liberation Mono", monospace; overflow-wrap: anywhere; color: #313d47; }
pre { white-space: pre-wrap; overflow-wrap: anywhere; border-left: 3px solid #b9c6c1; padding: 18px 22px; background: #f3f5f5; margin: 26px 0; font-size: 16px; }
pre code { font-size: 14px; }
.source-note { font: 13px/1.65 Arial, sans-serif; color: var(--muted); }
.source-note code { font-size: 12px; }
figure { margin: 32px 0 40px; padding: 20px 0 16px; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
figure p { margin: 0; max-width: none; }
.figure-link { display: block; cursor: zoom-in; }
figure img { display: block; width: 100%; height: auto; max-height: 850px; object-fit: contain; }
figcaption { margin-top: 18px; max-width: 850px; font: 14px/1.5 Arial, sans-serif; color: #4d5752; }
figcaption strong { color: #273f35; }
table { width: 100%; border-collapse: collapse; margin: 26px 0 32px; font: 15px/1.55 Arial, sans-serif; table-layout: fixed; }
th, td { padding: 11px 12px; border-bottom: 1px solid #dce1de; vertical-align: top; overflow-wrap: anywhere; }
th { background: #f1f4f2; border-top: 1px solid #bcc9c1; color: #27473a; text-align: left; }
tbody tr:nth-child(even) { background: #fafbfa; }
td p, th p { margin: 0; }
td code { font-size: 13px; }
math[display="block"] { overflow-x: auto; padding: 18px 0; }
.titlepage h1 { font-size: 40px; }
.titlepage h1 strong { font-weight: normal; }
.titlepage h1 br { display: none; }
.titlepage h1 br::after { content: " "; }
.titlepage > p:first-child { font: 12px/1.4 Arial, sans-serif; color: var(--muted); margin-bottom: 16px; }
.titlepage > p:nth-of-type(2) { font-size: 23px; margin-bottom: 20px; }
.titlepage hr { display: none; }
.titlepage > p:nth-last-child(-n+2) { display: inline; font: 13px/1.5 Arial, sans-serif; color: var(--muted); }
.titlepage > p:last-child::before { content: " / "; }
.page-turn { display: flex; justify-content: space-between; gap: 30px; margin-top: 50px; padding-top: 22px; border-top: 1px solid var(--rule); font: 15px/1.5 Arial, sans-serif; }
.page-turn a { max-width: 48%; }
.page-turn a[rel="next"] { margin-left: auto; text-align: right; }
.page-turn span { display: block; color: var(--muted); font-size: 12px; margin-bottom: 5px; }
@media (min-width: 1800px) { main { margin-right: auto; padding-left: 80px; padding-right: 70px; } }
@media (max-width: 1000px) { :root { --sidebar-width: 244px; } main { padding: 36px 30px; } .sidebar { padding: 26px 14px; } }
@media (max-width: 760px) {
  .sidebar { position: static; width: auto; padding: 18px 22px; border-right: 0; border-bottom: 1px solid var(--rule); }
  .book-name { padding: 0; font-size: 23px; }
  .book-name br { display: none; }
  .book-name br::after { content: " "; }
  .contents > summary { display: list-item; cursor: pointer; margin-top: 14px; color: var(--link); }
  .contents nav { padding-top: 12px; }
  .pdf-link { position: static; margin: 12px 0 0; padding: 0; border: 0; font-size: 13px; }
  main { margin-left: 0; padding: 30px 22px; }
  h1, .titlepage h1 { font-size: 32px; }
  h2 { font-size: 24px; }
  body { font-size: 17px; }
  figure { margin: 28px 0; padding-top: 16px; }
  table { font-size: 13px; }
  th, td { padding: 8px 6px; }
  td code { font-size: 12px; }
  pre { padding: 14px; }
}
@media print {
  .sidebar, .page-turn, .skip-link { display: none; }
  main { margin: 0; padding: 0; max-width: none; }
  body { font-size: 11pt; }
  h1 { font-size: 25pt; }
  h2 { break-after: avoid; }
  figure, tr { break-inside: avoid; }
  a { color: inherit; }
}
