@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, button:focus-visible, input:focus-visible {
  outline: 2px solid var(--porphyry); outline-offset: 3px;
}

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

.top {
  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; }

.hero { padding: var(--s12) 0 var(--s8); }
.hero h1, .gate 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); }

.gate {
  max-width: 520px; margin: 0 auto; padding: var(--s12) var(--s4);
  min-height: 100vh; display: flex; flex-direction: column; justify-content: center;
}
.gate .mark { margin-bottom: var(--s6); }
.gate h1 { font-size: var(--f-l); margin-bottom: var(--s6); }
.gate form { display: grid; gap: var(--s2); }
.gate label { font-size: var(--f-xs); color: var(--grey); letter-spacing: .04em; }
.gate input {
  font: 400 var(--f-m)/1.4 var(--body); letter-spacing: .12em; text-transform: uppercase; outline: none;
  background: transparent; color: var(--ink);
  border: 0; border-bottom: 1px solid var(--ink); padding: var(--s1) 0; border-radius: 0;
}
.gate input:focus-visible { border-bottom: 2px solid var(--porphyry); outline: none; }
.gate button {
  justify-self: start; margin-top: var(--s2);
  font: 400 var(--f-xs)/1 var(--display); letter-spacing: .14em;
  background: var(--ink); color: var(--stone); border: 0; border-radius: 0;
  padding: var(--s2) var(--s4); cursor: pointer;
}
.gate button:hover { background: var(--porphyry); }
.err { color: var(--porphyry); font-size: var(--f-xs); }

@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; } }
