/* Шрифты лежат рядом с сайтом (OFL, см. fonts/) — без запросов к сторонним серверам. */
/* cyrillic */
@font-face {
  font-family: 'Lora';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/lora-italic-cyrillic-e49ac4.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* latin */
@font-face {
  font-family: 'Lora';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/lora-italic-latin-50c0af.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic */
@font-face {
  font-family: 'Lora';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/lora-normal-cyrillic-2b455d.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* latin */
@font-face {
  font-family: 'Lora';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/lora-normal-latin-1ace0d.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic */
@font-face {
  font-family: 'Lora';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/lora-normal-cyrillic-2b455d.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* latin */
@font-face {
  font-family: 'Lora';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/lora-normal-latin-1ace0d.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic */
@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/playfair-display-italic-cyrillic-d612c6.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* latin */
@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/playfair-display-italic-latin-d4885b.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/playfair-display-normal-cyrillic-638ff0.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* latin */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/playfair-display-normal-latin-61a963.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/fonts/playfair-display-normal-cyrillic-638ff0.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* latin */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/fonts/playfair-display-normal-latin-61a963.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --paper: #f6efe2;
  --paper-2: #efe5d2;
  --ink: #2b2420;
  --ink-soft: #6b5d52;
  --rule: #d9cbb3;
  --accent: #b4532a;
  --accent-ink: #fff8ef;
  --serif-display: "Playfair Display", Georgia, "Times New Roman", serif;
  --serif-text: "Lora", Georgia, "Times New Roman", serif;
  --measure: 40rem;
}
@media (prefers-color-scheme: dark) {
  :root {
    --paper: #1f1a16;
    --paper-2: #2a231d;
    --ink: #efe6d8;
    --ink-soft: #b3a493;
    --rule: #4a3f35;
    --accent: #e08a5c;
    --accent-ink: #1f1a16;
  }
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font: 1.125rem/1.75 var(--serif-text);
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
main { flex: 1; width: 100%; max-width: 46rem; margin: 0 auto; padding: 0 1.25rem 4rem; }
a { color: var(--accent); text-underline-offset: .2em; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }

/* Шапка */
.masthead {
  max-width: 46rem; width: 100%; margin: 0 auto;
  padding: 1.75rem 1.25rem 1.25rem;
  display: flex; flex-wrap: wrap; gap: .75rem 1.5rem;
  align-items: baseline; justify-content: space-between;
  border-bottom: 3px double var(--rule);
}
.logo {
  font: italic 600 1.6rem/1 var(--serif-display);
  color: var(--ink); text-decoration: none;
}
.masthead nav { display: flex; gap: 1.25rem; font-size: .95rem; }
.masthead nav a { color: var(--ink-soft); text-decoration: none; letter-spacing: .02em; }
.masthead nav a:hover, .masthead nav a[aria-current] { color: var(--accent); }
.masthead nav a[aria-current] { border-bottom: 1px solid currentColor; }

/* Типографика */
h1, h2 { font-family: var(--serif-display); line-height: 1.15; font-weight: 800; margin: 0 0 1rem; }
h1 { font-size: clamp(2.2rem, 6vw, 3.4rem); letter-spacing: -.01em; }
h2 { font-size: 1.6rem; margin-top: 2.5rem; }
h1 em { font-style: italic; font-weight: 600; color: var(--accent); }
.kicker {
  font-size: .8rem; text-transform: uppercase; letter-spacing: .14em;
  color: var(--ink-soft); margin: 0 0 .75rem;
}
.lede { font-size: 1.3rem; line-height: 1.55; color: var(--ink-soft); font-style: italic; margin: 0 0 2rem; }
p { margin: 0 0 1.25rem; }
blockquote {
  margin: 2.25rem 0; padding: .25rem 0 .25rem 1.5rem;
  border-left: 3px solid var(--accent);
  font: italic 600 1.45rem/1.4 var(--serif-display);
}

/* Главная */
.hero { padding: 3.5rem 0 2.5rem; }
.featured {
  display: block; text-decoration: none; color: inherit;
  background: var(--paper-2); border: 1px solid var(--rule);
  padding: 2rem; border-radius: 4px; margin-bottom: 3rem;
  transition: transform .2s ease, box-shadow .2s ease;
}
.featured:hover { transform: translateY(-2px); box-shadow: 0 10px 30px -18px rgba(0,0,0,.4); }
.featured h2 { margin: 0 0 .5rem; font-size: 2rem; }
.featured p:not(.kicker) { color: var(--ink-soft); }
.more { color: var(--accent); font-weight: 600; }
.section-title {
  font-size: .85rem; font-family: var(--serif-text); font-weight: 600;
  text-transform: uppercase; letter-spacing: .14em; color: var(--ink-soft);
  border-bottom: 1px solid var(--rule); padding-bottom: .5rem;
}
.archive { list-style: none; margin: 0; padding: 0; }
.archive li { border-bottom: 1px solid var(--rule); }
.archive a {
  display: flex; gap: 1.25rem; padding: 1.25rem 0;
  color: inherit; text-decoration: none;
}
.archive .num { font: italic 600 1.8rem/1 var(--serif-display); color: var(--accent); min-width: 2.5rem; }
.archive .entry { display: flex; flex-direction: column; gap: .15rem; }
.archive time { font-size: .8rem; text-transform: uppercase; letter-spacing: .1em; color: var(--ink-soft); }
.archive strong { font: 600 1.3rem/1.3 var(--serif-display); }
.archive em { color: var(--ink-soft); font-size: 1rem; line-height: 1.5; }
.archive a:hover strong { color: var(--accent); }

/* Заметка */
.note { padding-top: 3rem; }
.note > p:first-of-type + h1 + .lede + p::first-letter {
  float: left; font: 800 3.6rem/.8 var(--serif-display);
  color: var(--accent); padding: .35rem .5rem 0 0;
}
.back { margin-top: 3rem; font-size: .95rem; }
.pager {
  display: grid; grid-template-columns: 1fr 1fr; gap: 1rem;
  border-top: 3px double var(--rule); margin-top: 2rem; padding-top: 1.5rem;
}
.pager a { text-decoration: none; color: var(--ink); font: 600 1.05rem/1.3 var(--serif-display); }
.pager a span { display: block; font: .75rem var(--serif-text); text-transform: uppercase; letter-spacing: .12em; color: var(--ink-soft); margin-bottom: .25rem; }
.pager a:hover { color: var(--accent); }
.pager .newer { text-align: right; }

/* 404 */
.notfound { text-align: center; padding: 4rem 0; }
.notfound .big { font: italic 800 clamp(6rem, 22vw, 10rem)/1 var(--serif-display); color: var(--accent); margin: 0; }
.button {
  display: inline-block; background: var(--accent); color: var(--accent-ink);
  padding: .75rem 1.5rem; border-radius: 999px; text-decoration: none; font-weight: 600;
}

/* Подвал */
.colophon {
  max-width: 46rem; width: 100%; margin: 0 auto; padding: 1.5rem 1.25rem 2.5rem;
  border-top: 1px solid var(--rule); color: var(--ink-soft); font-size: .85rem; text-align: center;
}
.colophon p { margin: 0; }

@media (max-width: 520px) {
  body { font-size: 1.05rem; }
  .featured { padding: 1.5rem; }
  .pager { grid-template-columns: 1fr; }
  .pager .newer { text-align: left; }
}
