/* Палитра: бумага/чернила/индиго/терракота/золото */
:root {
  --paper: #f7f2e6; --ink: #26221c; --indigo: #2b3a67; --terra: #a34a2e;
  --gold: #b08d3f; --muted: #6d6152;
}
@font-face { font-family: "Old Standard TT"; src: url(/static/fonts/old-standard-tt-v22-cyrillic_latin-regular.woff2) format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Old Standard TT"; src: url(/static/fonts/old-standard-tt-v22-cyrillic_latin-700.woff2) format("woff2"); font-weight: 700; font-display: swap; }
@font-face { font-family: "Old Standard TT"; src: url(/static/fonts/old-standard-tt-v22-cyrillic_latin-italic.woff2) format("woff2"); font-style: italic; font-display: swap; }
@font-face { font-family: "Literata"; src: url(/static/fonts/literata-v40-cyrillic_latin-regular.woff2) format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Literata"; src: url(/static/fonts/literata-v40-cyrillic_latin-700.woff2) format("woff2"); font-weight: 700; font-display: swap; }
@font-face { font-family: "Literata"; src: url(/static/fonts/literata-v40-cyrillic_latin-italic.woff2) format("woff2"); font-style: italic; font-display: swap; }

html { background: var(--paper); color: var(--ink); }
body {
  margin: 0 auto; padding: 2.5rem 1.25rem 4rem; max-width: 42rem;
  font: 400 1.125rem/1.65 "Literata", "PT Serif", Georgia, serif;
  hyphens: auto; font-feature-settings: "onum" 1;
}
h1, h2, h3 { font-family: "Old Standard TT", Georgia, serif; line-height: 1.2; font-weight: 700; }
h1 { font-size: 2.1rem; margin: 0.4em 0; }
a { color: var(--indigo); text-decoration-color: rgba(176, 141, 63, 0.6); text-underline-offset: 3px; }
a:hover { color: var(--terra); }
.kicker, .site-nav a { font-family: "Old Standard TT", serif;
  font-variant-caps: all-small-caps; letter-spacing: 0.08em; }
.kicker { color: var(--terra); margin: 0; }

.site-header { display: flex; justify-content: space-between; align-items: center; gap: 1rem;
  border-bottom: 1px solid var(--gold); padding-bottom: 0.75rem; margin-bottom: 2.5rem; }
.logo-book { width: 4.5rem; height: auto; display: block; }
.site-nav a { text-decoration: none; color: var(--ink); }
.site-nav a.current, .site-nav a:hover { color: var(--terra); }

.page-header { margin-bottom: 1.5rem; }

/* Оглавление сезона и библиотека */
.toc-month { font-family: "Old Standard TT", serif; font-variant-caps: all-small-caps;
  letter-spacing: 0.12em; text-align: center; color: var(--terra);
  font-size: 1.05rem; font-weight: 400; margin: 1.6em 0 0.5em; }
.toc-month::before, .toc-month::after { content: " ·· "; color: var(--gold); }
.toc-year { font-family: "Old Standard TT", serif; text-align: center;
  font-size: 1.5rem; margin: 1.4em 0 0.2em; }
.toc-row { display: flex; align-items: baseline; margin: 0.6em 0 0; }
.toc-book { font-family: "Old Standard TT", serif; font-weight: 700; }
.toc-author { font-style: italic; color: var(--muted); }
.toc-dots { flex: 1; border-bottom: 2px dotted rgba(176, 141, 63, 0.7);
  margin: 0 0.4em 0.3em; min-width: 1.5rem; }
.toc-date { color: var(--indigo); font-variant-caps: all-small-caps; white-space: nowrap; }
.toc-club { font-size: 0.8em; color: var(--muted); margin: 0.1em 0 0.4em; }
.toc-club a { color: var(--muted); }
.toc-club-right { white-space: nowrap; font-size: 0.9em; }
/* Узкие экраны: без отточия, дата продолжает строку после автора через тире */
@media (max-width: 40rem) {
  .toc-row { display: block; }
  .toc-item { display: inline; }
  .toc-dots { display: none; }
  .toc-date::before, .toc-club-right::before { content: " — "; }
}
.fleuron { text-align: center; color: var(--gold); margin: 2em 0 0; }
hr { border: 0; text-align: center; margin: 2.5em 0; }
hr::after { content: "❦"; color: var(--gold); font-size: 1.1em; }
blockquote { margin: 1.5em 0; padding-left: 1.25em; border-left: 2px solid var(--gold);
  font-style: italic; color: var(--muted); }

/* Каталог клубов */
.club { border-top: 1px solid rgba(176, 141, 63, 0.45); padding: 0.8em 0 0.6em; }
.club h3 { margin: 0; }
.club p { margin: 0.2em 0; }
.club .contact { font-size: 0.85em; }

.site-footer { margin-top: 4rem; border-top: 1px solid var(--gold); padding-top: 1rem;
  color: var(--muted); font-size: 0.9em; }

/* Главная-заглушка */
.home-main { min-height: 70vh; display: flex; flex-direction: column;
  align-items: center; justify-content: center; text-align: center; }
.home-main .logo-book { width: 6rem; }
.home-phrase { font-family: "Old Standard TT", serif; font-size: 1.6rem;
  line-height: 1.35; max-width: 26rem; margin: 1.2em 0 0; }
.home-orn { color: var(--gold); margin-top: 1.2em; font-size: 1.1em; }

/* «Прочитано»: витрина */
.lib-counter { color: var(--muted); font-size: 0.9em; }
.shelf-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr));
  gap: 1.4rem 1rem; margin: 1rem 0 2rem; }
.shelf-cell { display: block; text-decoration: none; color: inherit; }
.cover-img { width: 100%; aspect-ratio: 2/3; object-fit: cover;
  border-radius: 2px 5px 5px 2px;
  box-shadow: inset 6px 0 8px -6px rgba(0,0,0,.45), 2px 3px 6px rgba(43,33,24,.25); }
.cover-ph { width: 100%; aspect-ratio: 2/3; border-radius: 2px 5px 5px 2px;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; padding: 8% 9%; box-sizing: border-box; position: relative;
  box-shadow: inset 6px 0 8px -6px rgba(0,0,0,.45), 2px 3px 6px rgba(43,33,24,.25); }
.cover-ph::before { content: ""; position: absolute; inset: 5% 6%;
  border: 1px solid rgba(176,141,63,.75); pointer-events: none; }
.ph-plum { background: linear-gradient(105deg, #4a2b4d, #3a2140); }
.ph-indigo { background: linear-gradient(105deg, #2b3a67, #1f2b50); }
.ph-terra { background: linear-gradient(105deg, #a34a2e, #7c3722); }
.ph-green { background: linear-gradient(105deg, #1f4a38, #143327); }
.ph-ink { background: linear-gradient(105deg, #4d3b28, #362818); }
.cover-ph .ph-t { font-family: "Old Standard TT", serif; font-weight: 700;
  font-size: 0.85rem; line-height: 1.25; color: #f0e6c8; }
.cover-ph .ph-a { font-family: "Old Standard TT", serif; font-style: italic;
  font-size: 0.7rem; color: rgba(240,230,200,.75); margin-top: 0.4em; }
.cover-ph .ph-orn { color: var(--gold); font-size: 0.8rem; margin-top: 0.5em; }
.cell-title { display: block; font-family: "Old Standard TT", serif; font-weight: 700;
  font-size: 0.85rem; line-height: 1.2; margin-top: 0.5em; }
.cell-club { display: block; font-size: 0.75rem; color: var(--muted); font-style: italic; }

/* «Прочитано»: страница книги */
.book-author { font-family: "Old Standard TT", serif; font-style: italic;
  color: var(--muted); font-size: 1.15rem; margin: 0.2em 0 0; }
.spread { display: flex; gap: 1.5rem; margin-top: 1.2rem; }
.spread-cover { width: 30%; flex-shrink: 0; }
.spread-body { flex: 1; min-width: 0; }
.sect { font-variant-caps: all-small-caps; letter-spacing: 0.12em; color: var(--terra);
  font-size: 1rem; font-weight: 400; margin: 1.2em 0 0.4em; }
.spread-body .sect:first-child { margin-top: 0; }
.about > p:first-of-type::first-letter { font-family: "Old Standard TT", serif;
  font-size: 2.6em; float: left; line-height: 0.85; padding: 0.05em 0.1em 0 0;
  color: var(--indigo); }
.disc { border-top: 1px solid rgba(176,141,63,.45); padding: 0.6em 0 0.4em; }
.disc-head { margin: 0; }
.disc-date { color: var(--indigo); font-variant-caps: all-small-caps; }
.disc-head a { color: var(--muted); }
.disc-summary { margin: 0.3em 0; }
.disc-review { margin: 0.2em 0; font-size: 0.9em; }
@media (max-width: 40rem) {
  .spread { flex-direction: column; }
  .spread-cover { width: 60%; margin: 0 auto; }
}
