@import url("/fonts/fonts.css");

/* Шкала: кегль 18 × 1.333 → 13.5 · 18 · 24 · 32 · 42; отступы кратны 8. */
:root {
  --stone: #F2F2EF;
  --ink: #17233A;
  --porphyry: #6B2337;
  --grey: #737783;
  --rule: #D3D4D6;
  --f-xs: 0.75rem;
  --f-s: 1rem;
  --f-m: 1.333rem;
  --f-l: 1.777rem;
  --f-xl: 2.369rem;
  --s1: 8px; --s2: 16px; --s3: 24px; --s4: 32px; --s6: 48px; --s8: 64px; --s12: 96px;
  --label: 200px;
  --display: "GFS Didot", "Noto Serif", Georgia, serif;
  --body: "Noto Serif", Georgia, serif;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 18px; }
body {
  background: var(--stone); color: var(--ink);
  font: 400 var(--f-s)/1.55 var(--body);
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
}
a { color: inherit; text-decoration: none; }
a:focus-visible {
  outline: 2px solid var(--porphyry); outline-offset: 3px;
}

.wrap { max-width: 1040px; margin: 0 auto; padding: 0 var(--s4); }

.top {
  flex-wrap: wrap; row-gap: var(--s1); column-gap: var(--s3);
  display: flex; justify-content: space-between; align-items: baseline;
  padding-top: var(--s4); padding-bottom: var(--s2);
  border-bottom: 1px solid var(--rule);
}
.top nav { display: flex; gap: var(--s2); font-size: var(--f-xs); letter-spacing: .02em; }
.top nav span { color: var(--grey); }
.top nav a:hover, .index a:hover .t { color: var(--porphyry); }
.mark { font-size: var(--f-xs); letter-spacing: .04em; }
.mark .lat { color: var(--grey); white-space: nowrap; }

.hero { padding: var(--s12) 0 var(--s8); }
.hero h1 {
  font: 400 var(--f-xl)/1.15 var(--display);
  letter-spacing: .14em;
}
.hero p { margin-top: var(--s2); font-size: var(--f-m); }

.index section {
  display: grid; grid-template-columns: var(--label) 1fr;
  padding-bottom: var(--s6);
}
.index h2 {
  font: 400 var(--f-xs)/2.4 var(--display); color: var(--porphyry);
  letter-spacing: .14em;
}
.index ol { list-style: none; }
.index li {
  display: grid; grid-template-columns: 1fr auto; gap: var(--s3);
  padding: var(--s2) 0 var(--s3); border-bottom: 1px solid var(--rule);
}
.index li:first-child { padding-top: 0; }
.index a { display: block; }
.index .t { display: block; font-size: var(--f-m); line-height: 1.35; transition: color .15s; }
.index .m { display: block; margin-top: var(--s1); font-size: var(--f-xs); color: var(--grey); }
.index time { font-size: var(--f-xs); white-space: nowrap; padding-top: var(--s1); }
.empty { color: var(--grey); padding: var(--s4) 0 var(--s12); }


@media (max-width: 720px) {
  html { font-size: 16px; }
  .wrap { padding: 0 var(--s3); }
  .hero { padding: var(--s8) 0 var(--s6); }
  .hero h1 { font-size: var(--f-l); letter-spacing: .1em; }
  .index section { grid-template-columns: 1fr; }
  .index h2 { margin-bottom: var(--s2); }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }

.view { padding-bottom: var(--s12); }
.view .back { display: inline-block; margin-top: var(--s4); font-size: var(--f-xs); color: var(--grey); }
.view .back:hover { color: var(--porphyry); }
.view h1 { font: 400 var(--f-l)/1.25 var(--display); margin-top: var(--s4); }
.view .m { margin-top: var(--s1); font-size: var(--f-xs); color: var(--grey); }
.pages { margin-top: var(--s6); display: grid; gap: var(--s3); justify-items: center; }
.pages img {
  width: 100%; max-width: 760px; height: auto; display: block; background: #fff;
  box-shadow: 0 0 0 1px var(--rule); user-select: none; -webkit-user-select: none; -webkit-touch-callout: none;
  pointer-events: none;
}
@media print { body { display: none; } }

.kind { padding-bottom: var(--s6); }
.kind h3 {
  font: 400 var(--f-m)/1.3 var(--display); letter-spacing: .14em;
  padding-bottom: var(--s2); margin-bottom: var(--s4); border-bottom: 1px solid var(--ink);
}
.kind .empty { padding: 0 0 var(--s4); }
.langs { display: flex; gap: var(--s2); font-size: var(--f-xs); letter-spacing: .06em; }
.langs a { color: var(--grey); }
.langs a[aria-current] { color: var(--ink); border-bottom: 1px solid var(--porphyry); }
.langs a:hover { color: var(--porphyry); }

/* Первая страница: приветствие (msg 310-311). */
.welcome .hero { padding-bottom: var(--s6); max-width: 720px; }
.welcome .over { margin: 0 0 var(--s3); font-size: var(--f-xs); letter-spacing: .14em; color: var(--porphyry); }
.welcome .intro { font-size: var(--f-m); line-height: 1.5; margin-top: var(--s3); }
.welcome .intro + .intro { margin-top: var(--s2); color: var(--grey); font-style: italic; }
.meander {
  height: 12px; margin: 0 0 var(--s6); opacity: .55;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='12' viewBox='0 0 16 12'%3E%3Cpath d='M0 11.5H16M12.5 11.5V.5H2.5V8.5H9.5V3.5H5.5V5.5' fill='none' stroke='%236B2337' stroke-width='1'/%3E%3C/svg%3E") repeat-x;
}
.doors { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s3); }
.door {
  display: grid; grid-template-columns: auto 1fr auto; align-items: baseline; gap: var(--s3);
  padding: var(--s4); background: #fff; box-shadow: 0 0 0 1px var(--rule);
  transition: box-shadow .15s, color .15s;
}
.door:hover { box-shadow: 0 0 0 1px var(--porphyry); color: var(--porphyry); }
.door .n { font: 400 var(--f-xl)/1 var(--display); color: var(--porphyry); }
.door .d { font: 400 var(--f-m)/1.3 var(--display); letter-spacing: .14em; }
.door .arr { color: var(--grey); }
.all { margin-top: var(--s3); font-size: var(--f-xs); letter-spacing: .04em; }
.all a { color: var(--grey); }
.all a:hover { color: var(--porphyry); }
.epi { margin: var(--s12) 0 var(--s12); padding-left: var(--s3); border-left: 2px solid var(--porphyry); max-width: 640px; }
.epi blockquote { font: italic 400 var(--f-m)/1.5 var(--body); }
.epi figcaption { margin-top: var(--s1); font-size: var(--f-xs); color: var(--grey); letter-spacing: .04em; }
@media (max-width: 720px) {
  .doors { grid-template-columns: 1fr; }
  .door { padding: var(--s3); }
  .epi { margin: var(--s8) 0; }
}
