/* ============================================================
   Страница архивного сезона: сетка, финал, вехи, состав, боковая колонка.
   Блоки сил, команд, миров и правок — season-archive-blocks.css. Только токены tokens.css.
   ============================================================ */
.arc {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    grid-template-areas: "focal aside" "rest aside";
    grid-template-rows: auto 1fr;
    column-gap: var(--space-8);
    align-items: start;
}
.arc__rest { grid-area: rest; min-width: 0; display: flex; flex-direction: column; gap: var(--space-8); }
.arc__focal { grid-area: focal; min-width: 0; margin-bottom: var(--space-8); }
.arc__aside { grid-area: aside; display: flex; flex-direction: column; gap: var(--space-5); }
.arc__lead, .arc__saves, .arc__links { display: flex; flex-direction: column; gap: var(--space-4); }
.arc__lead { grid-area: lead; }
.arc__facts { grid-area: facts; }
.arc__saves { grid-area: saves; }
.arc__links { grid-area: links; }
.arc__premise { font-size: var(--fs-md); line-height: var(--lh-snug); color: var(--text); }
.arc-side-title { font-size: var(--fs-md); font-weight: 700; }
.arc-muted { font-size: var(--fs-sm); color: var(--text-muted); }

/* Страницы без «Состав»/«Вехи» в шапке теряют вкладки: отступ шапки остаётся как у хаба */
.season-head--archive { padding-bottom: var(--space-2); }

/* ---------- Финал: главный момент тома ---------- */
.arc-finale__title {
    font-family: var(--font-display);
    font-size: var(--fs-3xl);
    font-weight: 800;
    line-height: var(--lh-tight);
    text-transform: uppercase;
    letter-spacing: 0.02em;
    text-wrap: balance;
}
.arc-finale__date { margin-top: var(--space-3); font-size: var(--fs-sm); font-weight: 700; color: var(--accent); font-variant-numeric: tabular-nums; }
.arc-finale__text { margin-top: var(--space-4); max-width: 62ch; font-size: var(--fs-lg); line-height: var(--lh-snug); color: var(--text); }
.arc-lede { max-width: 62ch; font-size: var(--fs-lg); line-height: var(--lh-snug); color: var(--text); }
.arc-lede + .arc-prose { margin-top: var(--space-5); }
.arc-prose { max-width: 70ch; }
/* Заголовки внутри прозы ниже заголовка секции: уровень «title», не второй h2 */
.prose.arc-prose h2, .prose.arc-prose h3 { font-family: var(--font-ui); font-size: var(--fs-md); font-weight: 600; color: var(--text); margin: var(--space-5) 0 var(--space-2); }
.prose.arc-prose > :first-child { margin-top: 0; }

/* ---------- Вехи: линия полностью горит, сезон завершён ---------- */
.arc-miles { list-style: none; position: relative; }
.arc-miles::before {
    content: "";
    position: absolute;
    left: var(--spine-x);
    top: 10px;
    bottom: 10px;
    width: 2px;
    margin-left: -1px;
    background: var(--accent);
    border-radius: var(--r-full);
}
.arc-miles__item {
    position: relative;
    display: grid;
    grid-template-columns: 9rem minmax(0, 1fr);
    gap: var(--space-1) var(--space-5);
    padding: 0 0 var(--space-5) var(--space-6);
    max-width: none;
}
.arc-miles__item:last-child { padding-bottom: 0; }
.arc-miles__dot {
    position: absolute;
    left: calc(var(--spine-x) - 6px);
    top: 6px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--accent);
    border: 2px solid var(--bg);
    box-sizing: content-box;
    margin: -2px;
}
.arc-miles__date { padding-top: 2px; font-size: var(--fs-sm); font-weight: 700; color: var(--text); font-variant-numeric: tabular-nums; }
.arc-miles__title { font-size: var(--fs-md); font-weight: 700; line-height: var(--lh-snug); }
.arc-miles__text { margin-top: var(--space-1); max-width: 62ch; font-size: var(--fs-base); line-height: 1.6; color: var(--text-muted); }

/* ---------- Участники ---------- */
.arc-face { display: inline-flex; align-items: center; gap: var(--space-3); min-height: var(--tap-min); color: var(--text); }
a.arc-face:hover .arc-face__name { color: var(--accent); }
.arc-face .av { width: 40px; height: 40px; }
.arc-face--sm .av { width: 28px; height: 28px; }
.arc-face__text { display: flex; flex-direction: column; min-width: 0; }
.arc-face__name { font-size: var(--fs-base); font-weight: 600; transition: color var(--dur-fast); overflow-wrap: anywhere; }
.arc-face__note { font-size: var(--fs-xs); line-height: var(--lh-snug); color: var(--text-muted); }
.arc-mono { display: inline-flex; align-items: center; justify-content: center; background: var(--surface-3); color: var(--text-muted); font-family: var(--font-display); font-size: var(--fs-md); font-weight: 700; line-height: 1; }
.arc-face--sm .arc-mono { font-size: var(--fs-xs); }
.arc-face--former .av { filter: grayscale(0.7); }
.arc-face--plain { min-height: 0; }
.arc-faces { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr)); gap: var(--space-1) var(--space-4); }
.arc-faces li { max-width: none; }
.arc-plain { margin-top: var(--space-4); max-width: 62ch; font-size: var(--fs-sm); line-height: 1.7; color: var(--text-muted); }
.arc-plain small { font-size: var(--fs-xs); color: var(--text-faint); }
.arc-faces + .arc-plain { padding-top: var(--space-4); border-top: 1px solid var(--border-soft); }

/* ---------- Адаптив ---------- */
@media (max-width: 1100px) { .arc { grid-template-columns: minmax(0, 1fr) 300px; column-gap: var(--space-6); } }
@media (max-width: 860px) {
    /* Телефон: шапка → обложка → главный блок → сохранения → паспорт → остальное */
    .arc {
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: none;
        grid-template-areas: "lead" "focal" "saves" "facts" "links" "rest";
        row-gap: var(--space-7);
    }
    .arc__aside { display: contents; }
    .arc__focal { margin-bottom: 0; }
    .arc__lead .cover { aspect-ratio: 16 / 9; }
    .arc-finale__title { font-size: var(--fs-2xl); }
    .arc-finale__text, .arc-lede { font-size: var(--fs-md); }
    /* Переключатель «Сезоны» остаётся в шапке: строки вкладок на этих страницах нет */
    .season-head--archive > .switcher { display: block; align-self: flex-start; }
    .season-head--archive .switcher__panel { left: 0; right: auto; transform-origin: top left; }
}
@media (max-width: 768px) {
    .arc__rest { gap: var(--space-7); }
    .arc-miles__item { grid-template-columns: minmax(0, 1fr); }
    /* Состав в две колонки: аватар 32px, имя в одну строку, заметка переносится под ним */
    .arc-faces { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--space-3); }
    .arc-faces .arc-face { display: flex; gap: var(--space-2); min-height: var(--tap-min); }
    .arc-faces .av { width: 32px; height: 32px; }
    .arc-faces .arc-mono { font-size: var(--fs-sm); }
    .arc-faces .arc-face__text { min-width: 0; }
    .arc-faces .arc-face__name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}
