:root {
  color-scheme: light;
  --ink: #111;
  --link: #3e01ff;
  --paper: #cae0e2;
}
* { box-sizing: border-box; }
html { scroll-padding-top: 24px; }
body { margin: 0; color: var(--ink); background: #fff; font-family: Arial, Helvetica, sans-serif; }
a { color: var(--link); text-underline-offset: .14em; text-decoration-thickness: 1px; }
a:hover { color: #2300a8; }
a:focus-visible, summary:focus-visible { outline: 2px solid var(--link); outline-offset: 4px; }
.skip-link { position: absolute; top: -100px; left: 24px; z-index: 5; padding: 12px; background: white; }
.skip-link:focus { top: 8px; }
.site-header, .site-footer { max-width: 1200px; margin: 0 auto; display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 26px 28px; }
.home-link { font: 26px/1.2 "Times New Roman", Times, serif; letter-spacing: -.02em; }
.reader-layout { display: grid; grid-template-columns: 188px minmax(0, 1fr); gap: 32px; max-width: 1200px; margin: 0 auto; padding: 10px 28px 0; align-items: start; }
.reader-index { position: sticky; top: 26px; min-width: 0; font-size: 13px; line-height: 1.55; }
.project-name { font: 22px/1.25 "Times New Roman", Times, serif; margin: 0 0 25px; overflow-wrap: anywhere; }
.contents summary { cursor: pointer; padding: 8px 0; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; border-top: 1px solid #bbb; }
.contents ol { list-style: none; padding: 0; margin: 6px 0 0; }
.contents a { display: flex; min-height: 44px; align-items: center; padding: 9px 0; }
.archive-label { font-size: 11px; line-height: 1.6; margin-top: 30px; color: #555; }
.document { padding: 32px 36px 26px; background: var(--paper); min-width: 0; font-size: 17px; line-height: 1.48; }
.document p { margin: 0 0 1.25em; }
.document-heading { text-align: center; margin-bottom: 32px; }
.document h1 { font-size: 25px; line-height: 1.16; text-transform: uppercase; margin: 0 0 6px; }
.document .date { font-size: 19px; font-weight: 700; margin: 0; }
.signature { font-style: italic; }
.document del { text-decoration-thickness: 1px; }
.document hr { border: 0; border-top: 1px solid #fff; border-bottom: 1px solid #a5b8b9; margin: 28px 0; }
.project-heading { text-align: center; text-transform: uppercase; margin: 0 0 28px; font-size: 21px; line-height: 1.25; }
.document h3 { font-size: 18px; line-height: 1.3; text-transform: uppercase; margin: 30px 0 20px; }
.document section { scroll-margin-top: 24px; }
.document section:target > h3, .document section:target .abstract-heading { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; }
.abstract-heading { text-align: center; font-size: 21px; line-height: 1.25; margin: 0 0 28px; }
.document .small-heading { text-transform: none; font-size: 17px; margin-bottom: 10px; }
.return-link a { display: inline-block; padding: 10px 0; }
.document-footer { border-top: 1px solid #9eb6b7; padding-top: 22px; margin-top: 28px; }
.document-footer .edition-note { font-size: 11px; line-height: 1.55; }
.document-footer .fiction-mark { font-size: 10px; letter-spacing: .04em; margin-bottom: 0; }
.site-footer { font-size: 12px; padding-top: 26px; padding-bottom: 36px; }
.site-footer a { padding: 10px 0; }
@media (max-width: 760px) {
  .site-header { padding: 18px 18px 10px; flex-wrap: wrap; gap: 6px 18px; }
  .home-link { font-size: 24px; padding: 8px 0; }
  .reader-layout { display: block; padding: 0 12px; }
  .reader-index { position: static; margin: 8px 6px 18px; }
  .project-name { font-size: 22px; margin: 0 0 10px; }
  .contents summary { min-height: 44px; display: list-item; padding: 12px 0; }
  .contents ol { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 14px; }
  .contents a { padding: 10px 0; }
  .archive-label { margin: 10px 0 0; }
  .archive-label br { display: none; }
  .document { padding: 26px 20px; font-size: 17px; line-height: 1.5; }
  .document h1 { font-size: 24px; line-height: 1.15; }
  .document .date { font-size: 17px; }
  .document-heading { margin-bottom: 28px; }
  .site-footer { padding: 14px 18px 24px; flex-wrap: wrap; }
}
@media print {
  @page { size: A4; margin: 16mm; }
  .site-header, .reader-index, .site-footer, .skip-link, .return-link { display: none; }
  .reader-layout { display: block; max-width: none; padding: 0; }
  .document { padding: 0; background: white; font-size: 11pt; line-height: 1.3; }
  .document h1 { font-size: 16pt; }
  .document h2, .document h3 { break-after: avoid; }
  .document p { orphans: 3; widows: 3; }
  a { color: #000; }
}
