/* ===========================================================================
   E404 — стили сайта

   Источник правды — UI-kit: UI-kit/DESIGN.md, UI-kit/tokens.css и прототип
   UI-kit/E404 Prototype.dc.html. Числа ниже сняты с прототипа; меняя их,
   меняйте и UI-kit.

   Стили темы Knife на сайт не подключаются (e404-design.php), поэтому здесь
   всё: от сброса до текста записи.

    1. Шрифты
    2. Токены
    3. Основа
    4. Типографика и мелкие компоненты
    5. Кнопки и капсулы
    6. Шапка и меню
    7. Подвал
    8. Заголовок ленты и фильтр
    9. Лента и карточки
   10. Главная: блок команды, ближайшее событие
   11. Запись
   12. Текст записи
   13. Страница, поиск, 404
   14. О команде
   15. Форма «Обсудить задачу»
   16. Уведомление о cookies
   =========================================================================== */

/* ---------------------------------------------------------------------------
   1. ШРИФТЫ — локально, лицензия OFL (fonts/OFL-*.txt). Латиница и кириллица
   отдельными файлами: браузер качает только нужное.
   --------------------------------------------------------------------------- */
@font-face {
    font-family: "Onest";
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url(fonts/onest-cyrillic-wght-normal.woff2) format("woff2");
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
    font-family: "Onest";
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url(fonts/onest-latin-wght-normal.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;
}

@font-face {
    font-family: "PT Serif";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(fonts/pt-serif-cyrillic-400-normal.woff2) format("woff2");
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
    font-family: "PT Serif";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(fonts/pt-serif-latin-400-normal.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;
}

@font-face {
    font-family: "PT Serif";
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url(fonts/pt-serif-cyrillic-400-italic.woff2) format("woff2");
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
    font-family: "PT Serif";
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url(fonts/pt-serif-latin-400-italic.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;
}

@font-face {
    font-family: "PT Serif";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url(fonts/pt-serif-cyrillic-700-normal.woff2) format("woff2");
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
    font-family: "PT Serif";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url(fonts/pt-serif-latin-700-normal.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;
}

@font-face {
    font-family: "JetBrains Mono";
    font-style: normal;
    font-weight: 100 800;
    font-display: swap;
    src: url(fonts/jetbrains-mono-cyrillic-wght-normal.woff2) format("woff2");
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
    font-family: "JetBrains Mono";
    font-style: normal;
    font-weight: 100 800;
    font-display: swap;
    src: url(fonts/jetbrains-mono-latin-wght-normal.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;
}

/* Только логотип «E404» — латиница. */
@font-face {
    font-family: "Press Start 2P";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(fonts/press-start-2p-latin-400-normal.woff2) format("woff2");
}

/* ---------------------------------------------------------------------------
   2. ТОКЕНЫ — из UI-kit/tokens.css: тёмный холст, красный акцент.

   color-scheme: only light — сайт выглядит одинаково и при тёмной теме
   системы. Иначе браузеры, которые сами затемняют страницы (Яндекс Браузер,
   Chrome с затемнением сайтов), перекрашивали белые карточки в чёрные.
   Решено 02.10.2026: «всё должно остаться как есть, если зайти с тёмной
   темы»; полностью тёмную палитру пробовали — «сильно тёмная».
   --------------------------------------------------------------------------- */
:root {
    color-scheme: only light;

    /* Холст: фон страницы, шапка, подвал */
    --canvas:            #14161b;
    --on-canvas:         #ffffff;
    --on-canvas-2:       rgba(255, 255, 255, 0.72);
    --on-canvas-meta:    rgba(255, 255, 255, 0.6);
    --canvas-fill:       rgba(255, 255, 255, 0.08);
    --canvas-fill-hover: rgba(255, 255, 255, 0.16);
    --canvas-line:       rgba(255, 255, 255, 0.12);
    --canvas-btn-line:   rgba(255, 255, 255, 0.35);
    --canvas-btn-hover:  rgba(255, 255, 255, 0.1);
    --card-border:       transparent;
    --pill-on-bg:        #ffffff;
    --pill-on-ink:       var(--accent);

    /* Поверхности */
    --surface:           #ffffff;
    --surface-quiet:     #f3f4f6;
    --surface-cream:     #faf8f3;
    --surface-code:      #f5f6f8;
    --surface-note:      #f3ecd6;
    --surface-warn:      #fff3d6;
    --surface-inverse:   #14161b;

    /* Текст на поверхностях */
    --ink:               #14161b;
    --ink-2:             #3b4049;
    --ink-meta:          #5c626d;
    --ink-inverse-2:     rgba(255, 255, 255, 0.72);
    --ink-inverse-meta:  rgba(255, 255, 255, 0.6);

    /* Линии */
    --line:              #e3e5e9;
    --line-field:        #8d939c;
    --mark:              #fff1a6;

    /* Акцент */
    --accent:            #c62828;
    --accent-hover:      #a31f1f;
    --accent-wash:       #fdecea;

    --error:             #b3261e;
    --error-wash:        #fdecea;

    /* Шрифты */
    --font-ui:   "Onest", system-ui, sans-serif;
    --font-read: "PT Serif", Georgia, serif;
    --font-mono: "JetBrains Mono", ui-monospace, monospace;
    --font-logo: "Press Start 2P", monospace;

    --r-card:    14px;
    --r-control: 10px;
    --r-small:   8px;
    --r-chip:    6px;
    --r-pill:    999px;

    --ease: cubic-bezier(0.2, 0, 0.2, 1);
    --dur:  140ms;

    /* Высота шапки: под неё отступают якоря и липкая колонка записи. */
    --header-h: 56px;
}

@media (min-width: 900px) {
    :root {
        --header-h: 64px;
    }
}

@media (prefers-reduced-motion: reduce) {
    :root {
        --dur: 0ms;
    }

    html {
        scroll-behavior: auto !important;
    }
}

/* ---------------------------------------------------------------------------
   3. ОСНОВА
   --------------------------------------------------------------------------- */
*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    scroll-padding-top: calc(var(--header-h) + 24px);
}

body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    margin: 0;

    font-family: var(--font-ui);
    font-size: 16px;
    line-height: 1.5;
    color: var(--on-canvas);
    background: var(--canvas);

    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

img,
svg,
video,
iframe {
    max-width: 100%;
}

img {
    height: auto;
}

a {
    color: inherit;
}

button,
input,
select,
textarea {
    font: inherit;
    color: inherit;
}

button {
    cursor: pointer;
}

[hidden] {
    display: none !important;
}

:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

::selection {
    background: var(--mark);
    color: var(--ink);
}

.screen-reader-text {
    position: absolute !important;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

/* Ссылка «к содержанию» для клавиатуры: видна только в фокусе. */
.e-skip {
    position: absolute;
    top: 8px;
    left: 8px;
    z-index: 100;
    padding: 10px 16px;

    font-weight: 500;
    color: var(--ink);
    background: var(--surface);
    border-radius: var(--r-control);
    transform: translateY(-200%);
}

.e-skip:focus {
    transform: none;
}

/* Контейнер: min(100% − 2rem, 78rem). */
.e-wrap {
    width: min(100% - 2rem, 78rem);
    margin-inline: auto;
}

.e-main {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 24px;
    padding-top: 24px;
}

.e-main:focus {
    outline: none;
}

@media (min-width: 600px) {
    .e-main {
        padding-top: 32px;
    }
}

/* ---------------------------------------------------------------------------
   4. ТИПОГРАФИКА И МЕЛКИЕ КОМПОНЕНТЫ
   --------------------------------------------------------------------------- */

/* Подпись капителью: «ПАСПОРТ ПРОЕКТА», «РАЗДЕЛЫ». */
.e-label {
    margin: 0;

    font-family: var(--font-mono);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ink-meta);
}

/* Кикер «ТИП · тема»: тип акцентом, остальное тише (UI-kit, «Кикер»). */
.e-kicker {
    margin: 0;

    font-family: var(--font-mono);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.e-kicker__type {
    color: var(--accent);
}

.e-kicker__rest {
    color: var(--ink-meta);
}

.e-kicker--past .e-kicker__type {
    color: var(--ink-meta);
}

.e-kicker--note .e-kicker__type {
    color: var(--ink);
}

/* Заголовок секции на холсте. */
.e-h2 {
    margin: 0;

    font-size: 26px;
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -0.02em;
    text-wrap: balance;
}

@media (min-width: 900px) {
    .e-h2 {
        font-size: 34px;
    }
}

.e-count {
    font-family: var(--font-mono);
    font-size: 13px;
    color: var(--on-canvas-meta);
}

/* Второй голос заголовка: PT Serif, тише. */
.e-title__tail {
    font-family: var(--font-read);
    font-weight: 400;
    letter-spacing: -0.01em;
    color: var(--ink-2);
}

/* Ссылка в тексте интерфейса: подчёркивание акцентом. */
.e-link {
    font-size: 15px;
    color: var(--ink);
    text-decoration: underline;
    text-decoration-color: var(--accent);
    text-underline-offset: 3px;
    transition: color var(--dur) var(--ease);
}

.e-link:hover {
    color: var(--accent);
}

/* Факты: «Когда — 16 октября», «Отрасль — СМИ». */
.e-facts {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin: 0;
}

.e-facts__row {
    display: flex;
    flex-direction: column;
    gap: 2px;

    font-size: 15px;
    line-height: 1.4;
}

.e-facts dt {
    font-family: var(--font-mono);
    font-size: 13px;
    color: var(--ink-meta);
}

.e-facts dd {
    margin: 0;
}

.e-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.e-chip {
    padding: 4px 8px;

    font-family: var(--font-mono);
    font-size: 12px;
    color: var(--ink-2);

    background: var(--surface-quiet);
    border-radius: var(--r-chip);
}

/* ---------------------------------------------------------------------------
   5. КНОПКИ И КАПСУЛЫ (UI-kit, «Кнопки»)
   --------------------------------------------------------------------------- */
.e-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 46px;
    padding: 0 22px;

    font-family: var(--font-ui);
    font-size: 16px;
    font-weight: 500;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;

    background: transparent;
    border: 1px solid transparent;
    border-radius: var(--r-control);

    transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease);
}

.e-btn--primary {
    color: #fff;
    background: var(--accent);
}

.e-btn--primary:hover {
    color: #fff;
    background: var(--accent-hover);
}

.e-btn--secondary {
    color: var(--ink);
    border-color: var(--line-field);
}

.e-btn--secondary:hover {
    color: var(--ink);
    border-color: var(--ink);
}

/* На холсте: «Все записи», «Показать ещё». */
.e-btn--canvas {
    color: var(--on-canvas);
    border-color: var(--canvas-btn-line);
}

.e-btn--canvas:hover {
    color: var(--on-canvas);
    background: var(--canvas-btn-hover);
    border-color: var(--on-canvas);
}

.e-btn--sm {
    height: 38px;
    padding: 0 16px;
    font-size: 15px;
}

.e-btn--lg {
    height: 52px;
}

/* CTA-капсула: шапка, подвал, CTA-блок. Кружок со стрелкой справа. */
.e-capsule {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    height: 44px;
    padding: 0 6px 0 20px;

    font-size: 15px;
    font-weight: 500;
    line-height: 1;
    color: #fff;
    text-decoration: none;
    white-space: nowrap;

    background: var(--accent);
    border-radius: var(--r-pill);

    transition: background-color var(--dur) var(--ease);
}

.e-capsule:hover {
    color: #fff;
    background: var(--accent-hover);
}

.e-capsule__arrow {
    display: flex;
    flex: none;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;

    background: rgba(255, 255, 255, 0.18);
    border-radius: 50%;
}

/* Белая капсула в подвале: кружок красный. */
.e-capsule--light {
    color: var(--ink);
    background: #fff;
}

.e-capsule--light:hover {
    color: var(--ink);
    background: var(--surface-quiet);
}

.e-capsule--light .e-capsule__arrow {
    color: #fff;
    background: var(--accent);
}

.e-capsule--lg {
    gap: 14px;
    height: 52px;
    padding: 0 6px 0 22px;
    font-size: 16px;
}

.e-capsule--lg .e-capsule__arrow {
    width: 40px;
    height: 40px;
}

/* Кнопка-значок: поиск, бургер. Зона нажатия 44 × 44. */
.e-icon-btn {
    display: inline-flex;
    flex: none;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;

    color: var(--on-canvas);
    text-decoration: none;

    background: transparent;
    border: 0;
    border-radius: var(--r-control);

    transition: background-color var(--dur) var(--ease);
}

.e-icon-btn:hover {
    color: var(--on-canvas);
    background: var(--canvas-fill);
}

/* ---------------------------------------------------------------------------
   6. ШАПКА И МЕНЮ
   --------------------------------------------------------------------------- */
.e-header {
    position: sticky;
    top: 0;
    z-index: 20;

    background: var(--canvas);
    border-bottom: 1px solid var(--canvas-line);
}

/* Под панелью администратора: она закреплена сверху от 783 px. */
.admin-bar .e-header {
    top: 32px;
}

@media (max-width: 782px) {
    .admin-bar .e-header {
        top: 46px;
    }
}

@media (max-width: 600px) {
    .admin-bar .e-header {
        top: 0;
    }
}

.e-header__inner {
    display: flex;
    align-items: center;
    gap: 32px;
    height: var(--header-h);
}

.e-logo {
    font-family: var(--font-logo);
    font-size: 18px;
    line-height: 1;
    color: var(--on-canvas);
    text-decoration: none;
}

.e-logo:hover {
    color: var(--on-canvas);
}

/* Меню-капсула. Уже 900 px — за бургером. */
.e-nav {
    display: none;
    gap: 2px;
    padding: 4px;

    background: var(--canvas-fill);
    border-radius: var(--r-pill);
}

.e-nav__link {
    display: flex;
    align-items: center;
    gap: 8px;
    height: 36px;
    padding: 0 16px;

    font-size: 15px;
    font-weight: 500;
    color: var(--on-canvas-2);
    text-decoration: none;
    white-space: nowrap;

    border-radius: var(--r-pill);

    transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease);
}

.e-nav__link:hover {
    color: var(--on-canvas);
}

/* Текущий раздел: подложка и красный квадрат 6 × 6 перед названием. */
.e-nav__link[aria-current="page"] {
    color: var(--on-canvas);
    background: var(--canvas-fill-hover);
}

.e-nav__link[aria-current="page"]::before {
    content: "";
    width: 6px;
    height: 6px;
    background: var(--accent);
}

.e-header__tools {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}

.e-header__cta {
    display: none;
}

@media (min-width: 900px) {
    .e-nav {
        display: flex;
    }

    .e-header__cta {
        display: inline-flex;
    }

    .e-burger {
        display: none;
    }
}

/* Меню на весь экран (уже 900 px). */
.e-menu {
    position: fixed;
    inset: 0;
    z-index: 50;

    display: flex;
    flex-direction: column;

    background: var(--canvas);
}

.admin-bar .e-menu {
    top: var(--wp-admin--admin-bar--height, 0px);
}

.e-menu__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 56px;

    border-bottom: 1px solid var(--canvas-line);
}

.e-menu__nav {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 20px;
    padding: 32px 0;
    overflow-y: auto;
}

.e-menu__link {
    font-size: 28px;
    font-weight: 700;
    line-height: 1.2;
    color: var(--on-canvas-2);
    text-decoration: none;
}

.e-menu__link[aria-current="page"],
.e-menu__link:hover {
    color: var(--on-canvas);
}

.e-menu__cta {
    width: 100%;
    margin-top: 16px;
}

.e-menu__tg {
    margin-top: auto;
    font-size: 15px;
    color: var(--on-canvas-2);
}

/* Пока меню открыто, страница под ним не прокручивается (site.js). */
.e-menu-open {
    overflow: hidden;
}

/* ---------------------------------------------------------------------------
   7. ПОДВАЛ
   --------------------------------------------------------------------------- */
.e-footer {
    margin-top: 80px;
    border-top: 1px solid var(--canvas-line);
}

.e-footer__inner {
    display: flex;
    flex-direction: column;
    gap: 40px;
    padding: 48px 0 32px;
}

.e-footer__cols {
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px;
}

@media (min-width: 600px) {
    .e-footer__cols {
        grid-template-columns: 1fr 1fr;
    }
}

@media (min-width: 900px) {
    .e-footer__cols {
        grid-template-columns: 2fr 1fr 1fr;
    }
}

.e-footer__brand {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    max-width: 360px;
}

.e-footer__desc {
    margin: 0;
    font-size: 15px;
    line-height: 1.5;
    color: var(--on-canvas-2);
}

.e-footer__social {
    display: flex;
    gap: 8px;
}

/* Плашка соцсети: TG, VK, MAX. */
.e-chip-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;

    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 700;
    color: var(--on-canvas);
    text-decoration: none;

    background: var(--canvas-fill);
    border-radius: var(--r-control);

    transition: background-color var(--dur) var(--ease);
}

.e-chip-link:hover {
    color: var(--on-canvas);
    background: var(--canvas-fill-hover);
}

.e-footer .e-label {
    margin-bottom: 4px;
    color: var(--on-canvas-meta);
}

.e-footer__nav {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
}

.e-footer__nav a {
    font-size: 15px;
    color: var(--on-canvas-2);
    text-decoration: none;
}

.e-footer__nav a:hover,
.e-footer__nav a[aria-current="page"] {
    color: var(--on-canvas);
}

.e-footer__contact {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
}

.e-footer__note {
    margin: 0;
    font-size: 15px;
    color: var(--on-canvas-2);
}

.e-footer__tg {
    font-size: 15px;
    color: var(--on-canvas);
    text-underline-offset: 3px;
}

.e-footer__bottom {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 20px;
    padding-top: 20px;

    font-family: var(--font-mono);
    font-size: 13px;
    color: var(--on-canvas-meta);

    border-top: 1px solid var(--canvas-line);
}

.e-footer__bottom a {
    color: var(--on-canvas-meta);
}

.e-footer__bottom a:hover {
    color: var(--on-canvas);
}

.e-footer__hint {
    color: #ffd27a;
}

.e-footer__ok {
    margin-left: auto;
    text-decoration: none;
}

/* ---------------------------------------------------------------------------
   8. ЗАГОЛОВОК ЛЕНТЫ И ФИЛЬТР
   --------------------------------------------------------------------------- */
.e-page-head {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.e-page-head__row,
.e-section-head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
}

.e-section-head--feed {
    margin-top: 24px;
}

.e-page-head__desc {
    max-width: 680px;
    margin: 0;

    font-size: 16px;
    line-height: 1.5;
    color: var(--on-canvas-2);
    text-wrap: pretty;
}

/* Фильтр: ряды «Тип» и «Тема» — подпись слева, пилюли справа. */
.e-filter {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 8px 0;
}

.e-filter__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    gap: 8px 12px;
}

@media (min-width: 600px) {
    .e-filter__row {
        grid-template-columns: 96px minmax(0, 1fr);
    }

    .e-filter__label {
        padding-top: 9px;
    }
}

.e-filter__label {
    font-family: var(--font-mono);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--on-canvas-meta);
}

.e-filter__pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.e-pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 32px;
    padding: 0 14px;

    font-size: 15px;
    font-weight: 500;
    color: var(--on-canvas);
    text-decoration: none;

    background: var(--canvas-fill);
    border-radius: var(--r-pill);

    transition: background-color var(--dur) var(--ease);
}

.e-pill:hover {
    color: var(--on-canvas);
    background: var(--canvas-fill-hover);
}

.e-pill__count {
    font-family: var(--font-mono);
    font-size: 13px;
    color: var(--on-canvas-meta);
}

/* Выбранная: белая с красным текстом. */
.e-pill--on,
.e-pill--on:hover {
    color: var(--pill-on-ink);
    background: var(--pill-on-bg);
}

/* Счётчик — цветом подписи, без приглушения: с прозрачностью 0.8 красный
   на белом давал 4.1:1, меньше AA для 13 px (аудит 02.10.2026). */
.e-pill--on .e-pill__count {
    color: inherit;
}

.e-filter__reset {
    justify-self: start;

    font-size: 15px;
    color: var(--on-canvas-2);
    text-underline-offset: 3px;
}

.e-filter__reset:hover {
    color: var(--on-canvas);
}

/* ---------------------------------------------------------------------------
   9. ЛЕНТА И КАРТОЧКИ (UI-kit, «Карточки записей», «Ритм ленты»)

   Сетка: одна колонка до 600 px, две до 900, шесть шире. Ширину карточки
   на широком экране задаёт класс e-span-*, на планшете во всю ширину —
   первая и нечётная последняя (e-card--wide-tablet).
   --------------------------------------------------------------------------- */
.e-feed {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
}

@media (min-width: 600px) and (max-width: 899px) {
    .e-feed {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .e-card--wide-tablet {
        grid-column: span 2;
    }
}

@media (min-width: 900px) {
    .e-feed {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }

    .e-span-6 {
        grid-column: span 6;
    }

    .e-span-3 {
        grid-column: span 3;
    }

    .e-span-2 {
        grid-column: span 2;
    }
}

.e-card {
    position: relative;

    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;

    color: var(--ink);
    background: var(--surface);
    border: 1px solid var(--card-border);
    border-radius: var(--r-card);
}

.e-card__media {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: var(--surface-quiet);
}

.e-card__cover {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Пиксели обложки — чёткими, без размытия при увеличении. */
.e-card__cover--pixel,
.e-record__cover-img--pixel {
    image-rendering: pixelated;
}

.e-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 12px;
    min-width: 0;
    padding: 20px;
}

.e-card__title {
    margin: 0;

    font-size: 20px;
    font-weight: 700;
    line-height: 1.25;
    text-wrap: balance;
}

.e-card__title .e-title__tail {
    font-family: var(--font-ui);
    letter-spacing: 0;
}

.e-card__link {
    color: var(--ink);
    text-decoration: none;
    transition: color var(--dur) var(--ease);
}

/* Карточка нажимается целиком: ссылка заголовка растянута на неё. */
.e-card__link::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: var(--r-card);
}

.e-card__link:focus-visible {
    outline: none;
}

/* Рамка фокуса — у всей карточки. У растянутой ссылки она шла по краю
   карточки снаружи и обрезалась (у карточки overflow: hidden): с клавиатуры
   фокус на карточках был не виден (аудит 02.10.2026). */
.e-card:has(.e-card__link:focus-visible) {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

/* Браузеры без :has() — рамка внутри карточки. */
@supports not selector(:has(*)) {
    .e-card__link:focus-visible::after {
        outline: 2px solid var(--accent);
        outline-offset: -3px;
    }
}

.e-card:hover .e-card__link {
    color: var(--accent);
}

.e-card__excerpt {
    margin: 0;

    font-family: var(--font-read);
    font-size: 17px;
    line-height: 1.55;
    color: var(--ink-2);
    text-wrap: pretty;

    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    overflow: hidden;
}

/* На телефоне анонс — только у первой карточки ленты. */
@media (max-width: 599px) {
    .e-card:not(.e-card--first) .e-card__excerpt {
        display: none;
    }
}

.e-card__foot {
    margin: auto 0 0;
    padding-top: 4px;

    font-family: var(--font-mono);
    font-size: 13px;
    line-height: 1.4;
    color: var(--ink-meta);
}

/* Цифры кейса в карточке. */
.e-results {
    display: flex;
    flex-wrap: wrap;
    gap: 16px 28px;
}

.e-results__item {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.e-results__value {
    font-family: var(--font-mono);
    font-size: 22px;
    font-weight: 700;
    line-height: 1;
}

.e-results__label {
    font-family: var(--font-mono);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ink-meta);
}

@media (min-width: 600px) {
    .e-results--card .e-results__value {
        font-size: 26px;
    }
}

/* Плитка даты события вместо обложки. */
.e-card__media--tile {
    display: flex;
}

.e-tile {
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 24px;

    font-family: var(--font-mono);
    color: var(--ink);
    text-align: center;
}

.e-tile__day {
    font-size: 32px;
    font-weight: 700;
    line-height: 1;
    color: var(--accent);
}

.e-tile--past .e-tile__day {
    color: var(--ink);
}

.e-tile__mon {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.e-tile__meta {
    font-size: 13px;
    color: var(--ink-meta);
}

/* Заметка: кремовая, без картинки, не нажимается (UI-kit). */
.e-card--note {
    background: var(--surface-note);
    border-color: var(--surface-note);
}

.e-card__note {
    font-family: var(--font-read);
    font-size: 18px;
    line-height: 1.55;
    color: var(--ink-2);
    text-wrap: pretty;
}

.e-card__note p {
    margin: 0 0 0.6em;
}

.e-card__note p:last-child {
    margin-bottom: 0;
}

.e-card__note a {
    position: relative;
    z-index: 1;
    color: var(--ink);
    text-decoration-color: var(--accent);
    text-underline-offset: 3px;
}

/* Планшет: первая карточка ленты — крупная, остальные средние. */
@media (min-width: 600px) {
    .e-card__excerpt {
        display: -webkit-box;
    }

    .e-card__body {
        padding: 24px;
    }

    .e-card__title {
        font-size: 22px;
    }

    .e-card--first .e-card__body {
        padding: 44px;
    }

    .e-card--first .e-card__title {
        font-size: 28px;
    }

    .e-tile__day {
        font-size: 44px;
    }
}

@media (max-width: 599px) {
    .e-card--first .e-card__title {
        font-size: 22px;
    }
}

/* Широкий экран: размер карточки — по месту в ритме. */
@media (min-width: 900px) {
    .e-card--lead .e-card__body {
        padding: 44px;
    }

    .e-card--lead .e-card__title {
        font-size: 28px;
    }

    .e-card--mid .e-card__body,
    .e-card--small .e-card__body {
        padding: 24px;
    }

    .e-card--mid .e-card__title {
        font-size: 22px;
    }

    .e-card--small .e-card__title {
        font-size: 19px;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 4;
        overflow: hidden;
    }

    /* Малая карточка: без анонса, одна цифра, день помельче. */
    .e-card--small .e-card__excerpt {
        display: none;
    }

    .e-card--small .e-results__item:nth-child(n + 2) {
        display: none;
    }

    .e-card--small .e-tile__day {
        font-size: 40px;
    }

    .e-card--small.e-card--note .e-card__note {
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 6;
        overflow: hidden;
    }

    /* Крупная горизонтальная: картинка слева, текст справа. */
    .e-card--row {
        flex-direction: row;
        min-height: 340px;
    }

    .e-card--row .e-card__media {
        flex: 0 0 min(520px, 46%);
        aspect-ratio: auto;
    }

    .e-card--row .e-tile {
        align-items: flex-start;
        padding: 44px;
        text-align: left;
    }

    .e-card--row .e-card__body {
        justify-content: center;
    }
}

/* «Показать ещё», «Все записи», «Это все записи». */
.e-more {
    display: flex;
    justify-content: center;
    padding-top: 16px;
}

.e-more__button {
    width: 220px;
}

.e-more__button[aria-busy="true"] {
    cursor: progress;
    opacity: 0.7;
}

.e-more__end {
    margin: 0;

    font-family: var(--font-mono);
    font-size: 13px;
    color: var(--on-canvas-meta);
    text-align: center;
}

/* Пустое состояние. */
.e-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 56px 24px;

    color: var(--ink);
    text-align: center;

    background: var(--surface);
    border: 1px solid var(--card-border);
    border-radius: var(--r-card);
}

.e-empty__title {
    max-width: 520px;
    margin: 0;

    font-size: 22px;
    font-weight: 700;
    line-height: 1.25;
    text-wrap: balance;
}

.e-empty__text {
    margin: 0;
    font-family: var(--font-read);
    font-size: 17px;
    color: var(--ink-2);
}

.e-empty .e-btn {
    margin-top: 8px;
}

/* ---------------------------------------------------------------------------
   10. ГЛАВНАЯ: БЛОК КОМАНДЫ, БЛИЖАЙШЕЕ СОБЫТИЕ
   --------------------------------------------------------------------------- */
.e-team {
    display: flex;
    flex-direction: column;
    gap: 28px;
    padding: 20px;

    color: var(--ink);
    background: var(--surface);
    border: 1px solid var(--card-border);
    border-radius: var(--r-card);
}

@media (min-width: 600px) {
    .e-team {
        padding: 30px 44px;
    }
}

.e-team__top {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.e-team__who {
    display: flex;
    align-items: center;
    gap: 14px;
}

.e-team__faces {
    display: flex;
}

/* Аватары внахлёст: 40 px, −10 px. */
.e-team__face {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    object-fit: cover;

    font-size: 13px;
    font-weight: 700;
    color: var(--ink-2);

    background: var(--surface-quiet);
    border: 3px solid var(--surface);
    border-radius: 50%;
}

.e-team__face + .e-team__face {
    margin-left: -10px;
}

.e-team__about {
    font-weight: 500;
    text-underline-offset: 4px;
}

.e-team__hero {
    max-width: 1000px;
    margin: 0;

    font-size: 32px;
    font-weight: 700;
    line-height: 1.04;
    letter-spacing: -0.035em;
    text-wrap: balance;
}

.e-team__hero .e-title__tail {
    letter-spacing: -0.02em;
}

@media (min-width: 600px) {
    .e-team__hero {
        font-size: 40px;
    }
}

@media (min-width: 900px) {
    .e-team__hero {
        font-size: 56px;
    }
}

.e-team__bottom {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: end;
    gap: 32px;
    padding-top: 28px;

    border-top: 1px solid var(--line);
}

@media (min-width: 900px) {
    .e-team__bottom {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    }
}

.e-team__intro {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.e-team__lead {
    max-width: 520px;
    margin: 0;

    font-family: var(--font-read);
    font-size: 19px;
    line-height: 1.55;
    color: var(--ink-2);
    text-wrap: pretty;
}

.e-team__actions {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

@media (min-width: 600px) {
    .e-team__actions {
        flex-direction: row;
    }
}

/* Плитки-счётчики по типам: две в ряд, от 1200 — все в один ряд. */
.e-team__facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

@media (min-width: 1200px) {
    .e-team__facts {
        grid-template-columns: repeat(var(--e-facts, 4), minmax(0, 1fr));
    }
}

.e-fact {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 16px;

    color: var(--ink);
    text-decoration: none;

    background: var(--surface-quiet);
    border-radius: var(--r-control);

    transition: background-color var(--dur) var(--ease);
}

.e-fact:hover {
    color: var(--ink);
    background: var(--line);
}

.e-fact__count {
    font-family: var(--font-mono);
    font-size: 32px;
    font-weight: 700;
    line-height: 1;
}

/* Полоса «Ближайшее событие». */
.e-upcoming {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 20px;
    padding: 20px 24px;

    color: var(--ink);
    background: var(--surface);
    border: 1px solid var(--card-border);
    border-radius: var(--r-card);
}

.e-upcoming__date {
    display: flex;
    flex: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    width: 64px;
    height: 64px;

    font-family: var(--font-mono);
    font-weight: 700;

    background: var(--surface-quiet);
    border-radius: var(--r-control);
}

.e-upcoming__day {
    font-size: 24px;
    line-height: 1;
    color: var(--accent);
}

.e-upcoming__mon {
    font-size: 11px;
    letter-spacing: 0.08em;
}

.e-upcoming__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 6px;
    min-width: 220px;
}

.e-upcoming__title {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.25;
    color: var(--ink);
    text-decoration: none;
    transition: color var(--dur) var(--ease);
}

.e-upcoming__title:hover {
    color: var(--accent);
}

.e-upcoming__meta {
    margin: 0;
    font-family: var(--font-mono);
    font-size: 13px;
    color: var(--ink-meta);
}

/* ---------------------------------------------------------------------------
   11. ЗАПИСЬ (UI-kit, «Запись», «Конец записи»)

   Колонка записи 812 + колонка справа 316 от 1200 px. Уже — колонки нет,
   паспорт кейса и карточка события стоят в самой записи.
   --------------------------------------------------------------------------- */
.e-record-layout {
    display: grid;
    grid-template-columns: minmax(0, 812px);
    align-items: start;
    justify-content: center;
    gap: 24px;
}

.e-record__side {
    display: none;
}

@media (min-width: 1200px) {
    .e-record-layout--side {
        grid-template-columns: minmax(0, 812px) 316px;
    }

    .e-record-layout--side .e-record__side {
        position: sticky;
        top: calc(var(--header-h) + 24px);

        display: flex;
        flex-direction: column;
        gap: 24px;

        color: var(--ink);
    }

    .e-record-layout--side .e-passport--inline,
    .e-record-layout--side .e-event--inline {
        display: none;
    }
}

.admin-bar .e-record__side {
    top: calc(var(--header-h) + 56px);
}

.e-record {
    display: flex;
    flex-direction: column;
    gap: 20px;
    min-width: 0;
    padding: 20px;

    color: var(--ink);
    background: var(--surface);
    border: 1px solid var(--card-border);
    border-radius: var(--r-card);
}

@media (min-width: 600px) {
    .e-record {
        padding: 44px;
    }
}

.e-crumbs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;

    font-family: var(--font-mono);
    font-size: 13px;
    color: var(--ink-meta);
}

.e-crumbs a {
    color: var(--ink-meta);
    text-decoration: none;
}

.e-crumbs a:hover {
    color: var(--accent);
}

.e-record__head {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.e-record__title {
    margin: 0;

    font-size: 30px;
    font-weight: 700;
    line-height: 1.12;
    letter-spacing: -0.025em;
    text-wrap: balance;
}

@media (min-width: 900px) {
    .e-record__title {
        font-size: 46px;
    }
}

.e-record__lead {
    max-width: 680px;

    font-family: var(--font-read);
    font-size: 19px;
    line-height: 1.5;
    color: var(--ink-2);
    text-wrap: pretty;
}

.e-record__lead p {
    margin: 0 0 0.6em;
}

.e-record__lead p:last-child {
    margin-bottom: 0;
}

@media (min-width: 900px) {
    .e-record__lead {
        font-size: 23px;
    }
}

/* Авторы и мета. */
.e-byline {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
}

.e-byline__faces {
    display: flex;
}

.e-byline__face {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    object-fit: cover;

    font-size: 9px;
    font-weight: 700;
    color: var(--ink-2);

    background: var(--surface-quiet);
    border: 2px solid var(--surface);
    border-radius: 50%;
}

.e-byline__face + .e-byline__face {
    margin-left: -6px;
}

.e-byline__meta {
    font-family: var(--font-mono);
    font-size: 13px;
    line-height: 1.4;
    color: var(--ink-meta);
}

/* Цифры кейса под лидом. */
.e-results--page {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    padding-top: 20px;
    border-top: 1px solid var(--line);
}

.e-results--page .e-results__item {
    gap: 8px;
}

.e-results--page .e-results__value {
    font-size: 32px;
}

@media (min-width: 600px) {
    .e-results--page {
        grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    }
}

@media (min-width: 900px) {
    .e-results--page .e-results__value {
        font-size: 44px;
    }
}

/* Паспорт проекта и карточка события: в колонке справа — белые карточки,
   в записи — рамка. */
.e-passport,
.e-event,
.e-side-card {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.e-passport--side,
.e-event--side,
.e-side-card {
    padding: 24px;
    background: var(--surface);
    border: 1px solid var(--card-border);
    border-radius: var(--r-card);
}

.e-passport--inline,
.e-event--inline {
    padding: 20px;
    border: 1px solid var(--line);
    border-radius: var(--r-control);
}

.e-event {
    gap: 16px;
}

.e-passport--side .e-facts__row {
    padding-bottom: 10px;
    border-bottom: 1px solid var(--line);
}

/* В записи факты — строкой: подпись слева, значение справа. */
.e-passport--inline .e-facts__row {
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr);
    gap: 12px;
}

.e-event--inline .e-facts__row {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 12px;
}

.e-passport__stack-label {
    margin: 0;
    font-family: var(--font-mono);
    font-size: 13px;
    color: var(--ink-meta);
}

.e-passport__link {
    align-self: flex-start;
    margin-top: 4px;
}

/* Дата в карточке события. */
.e-evdate {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 20px;

    font-family: var(--font-mono);

    background: var(--surface-quiet);
    border-radius: var(--r-control);
}

.e-evdate__day {
    font-size: 32px;
    font-weight: 700;
    line-height: 1;
    color: var(--accent);
}

.e-evdate--past .e-evdate__day {
    color: var(--ink);
}

.e-evdate__mon {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.e-evdate__meta {
    font-size: 13px;
    color: var(--ink-meta);
}

.e-event--side .e-evdate__day {
    font-size: 44px;
}

@media (min-width: 900px) {
    .e-evdate__day {
        font-size: 44px;
    }
}

.e-event__actions {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.e-event__actions:empty {
    display: none;
}

.e-event__note {
    font-family: var(--font-mono);
    font-size: 13px;
    color: var(--ink-meta);
}

/* Обложка записи 16:9. */
.e-record__cover {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 0;
}

.e-record__cover-img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: cover;

    background: var(--surface-quiet);
    border-radius: var(--r-control);
}

.e-record__cover figcaption {
    font-family: var(--font-mono);
    font-size: 13px;
    line-height: 1.4;
    color: var(--ink-meta);
}

/* Конец записи: темы, «Поделиться», CTA-блок. */
.e-record__footer {
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding-top: 24px;
    border-top: 1px solid var(--line);
}

.e-topics {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.e-topic {
    display: inline-flex;
    align-items: center;
    height: 32px;
    padding: 0 14px;

    font-size: 15px;
    font-weight: 500;
    color: var(--ink);
    text-decoration: none;

    background: var(--surface-quiet);
    border-radius: var(--r-pill);

    transition: color var(--dur) var(--ease);
}

.e-topic:hover {
    color: var(--accent);
}

/* «Поделиться записью» — капсула: подпись слева, кнопки справа. */
.e-share {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px 20px;
    padding: 12px 12px 12px 20px;

    background: var(--surface-quiet);
    border-radius: var(--r-card);
}

@media (min-width: 600px) {
    .e-share {
        border-radius: var(--r-pill);
    }
}

.e-share__buttons {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
}

.e-share__round,
.e-share__copy {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 44px;

    color: var(--ink);
    text-decoration: none;

    background: var(--surface);
    border: 0;

    transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease);
}

.e-share__round {
    width: 44px;

    font-family: var(--font-mono);
    font-size: 12px;
    font-weight: 700;

    border-radius: 50%;
}

.e-share__copy {
    gap: 8px;
    min-width: 200px;
    padding: 0 18px;

    font-size: 15px;
    font-weight: 500;

    border-radius: var(--r-pill);
}

.e-share__round:hover,
.e-share__copy:hover {
    color: #fff;
    background: var(--ink);
}

/* CTA-блок «Следующий шаг»: тёмный, заголовок в два голоса. */
.e-cta {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: end;
    gap: 24px 32px;
    padding: 24px 20px;

    color: #fff;
    background: var(--surface-inverse);
    border-radius: var(--r-card);
}

@media (min-width: 600px) {
    .e-cta {
        padding: 36px;
    }
}

@media (min-width: 760px) {
    .e-cta {
        grid-template-columns: minmax(0, 1fr) auto;
    }
}

.e-cta__text {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.e-cta .e-label,
.e-cta__terms {
    color: var(--ink-inverse-meta);
}

.e-cta__title {
    margin: 0;

    font-size: 22px;
    font-weight: 700;
    line-height: 1.12;
    letter-spacing: -0.02em;
    text-wrap: balance;
}

.e-cta__title .e-title__tail {
    color: var(--ink-inverse-2);
}

@media (min-width: 600px) {
    .e-cta__title {
        font-size: 26px;
    }
}

.e-cta__terms {
    margin: 0;
    font-family: var(--font-mono);
    font-size: 13px;
}

.e-cta__actions {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
}

.e-cta__tg {
    font-size: 15px;
    color: var(--ink-inverse-2);
    text-underline-offset: 3px;
}

.e-cta__tg:hover {
    color: #fff;
}

/* Колонка справа: содержание и мини-CTA статьи. */
.e-toc {
    gap: 4px;
}

.e-toc .e-label {
    margin-bottom: 8px;
}

.e-toc a {
    padding: 6px 0 6px 12px;

    font-size: 15px;
    line-height: 1.35;
    color: var(--ink-2);
    text-decoration: none;

    border-left: 2px solid var(--line);

    transition: color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}

.e-toc a:hover {
    color: var(--accent);
}

.e-toc a[aria-current="true"] {
    color: var(--ink);
    border-left-color: var(--accent);
}

.e-side-cta {
    align-items: flex-start;
    gap: 10px;
}

.e-side-cta__title {
    margin: 0;
    font-size: 19px;
    font-weight: 700;
    line-height: 1.3;
}

.e-side-cta__text {
    margin: 0;
    font-family: var(--font-read);
    font-size: 16px;
    line-height: 1.5;
    color: var(--ink-2);
}

.e-side-cta .e-btn {
    margin-top: 4px;
}

/* «Похожие записи». */
.e-related {
    display: flex;
    flex-direction: column;
    gap: 24px;
    margin-top: 16px;
}

/* ---------------------------------------------------------------------------
   12. ТЕКСТ ЗАПИСИ (UI-kit, «Элементы текста»)

   Разметка — из классического редактора и его кнопок темы Knife:
   цитата — figure.figure--quote, «На полях» — figure.figure--remark,
   картинка — figure.figure > img.figure__image + figcaption, выделение —
   <mark>, кнопка — a.button. «Важно» — формат div.e-warn (e404-design,
   редактор).
   --------------------------------------------------------------------------- */
.e-prose {
    max-width: 680px;

    font-family: var(--font-read);
    font-size: 18px;
    line-height: 1.6;
    color: var(--ink);
}

@media (min-width: 900px) {
    .e-prose {
        font-size: 20px;
    }
}

.e-prose > :first-child {
    margin-top: 0;
}

.e-prose > :last-child {
    margin-bottom: 0;
}

.e-prose p {
    margin: 0 0 0.9em;
    text-wrap: pretty;
}

.e-prose a:not(.button):not(.e-btn) {
    color: var(--ink);
    text-decoration: underline;
    text-decoration-color: var(--accent);
    text-underline-offset: 3px;
}

.e-prose a:not(.button):not(.e-btn):hover {
    color: var(--accent);
}

.e-prose mark {
    color: inherit;
    background: var(--mark);
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
}

.e-prose h2,
.e-prose h3,
.e-prose h4 {
    font-family: var(--font-ui);
    text-wrap: balance;
    scroll-margin-top: calc(var(--header-h) + 24px);
}

.e-prose h2 {
    margin: 1.8em 0 0.6em;
    font-size: 23px;
    font-weight: 700;
    line-height: 1.25;
}

.e-prose h3 {
    margin: 1.4em 0 0.5em;
    font-size: 19px;
    font-weight: 600;
    line-height: 1.3;
}

.e-prose h4 {
    margin: 1.2em 0 0.4em;
    font-size: 17px;
    font-weight: 600;
    line-height: 1.35;
}

@media (min-width: 900px) {
    .e-prose h2 {
        font-size: 28px;
    }

    .e-prose h3 {
        font-size: 22px;
    }
}

/* Списки: моно-маркеры «—» и «01». */
.e-prose ul,
.e-prose ol {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 0 0 0.9em;
    padding: 0;
    list-style: none;
}

.e-prose ol {
    counter-reset: e-list;
}

/*
 * Маркер — в отступе слева, а не колонкой сетки: в сетке каждый узел
 * пункта становится своей ячейкой, и в «<strong>Срок:</strong> год…»
 * текст после выделения уезжал в узкую колонку маркера, по слову в строке.
 */
.e-prose li {
    position: relative;
    padding-left: 36px;
    text-wrap: pretty;
}

.e-prose li::before {
    position: absolute;
    top: 0;
    left: 0;
    padding-top: 0.2em;

    font-family: var(--font-mono);
    font-size: 0.8em;
    color: var(--ink-meta);
}

.e-prose ul > li::before {
    content: "—";
}

.e-prose ol > li::before {
    counter-increment: e-list;
    content: counter(e-list, decimal-leading-zero);
}

.e-prose li > ul,
.e-prose li > ol {
    margin: 8px 0 0;
}

/* Цитата: линия 3 px, курсив 24. */
.e-prose blockquote,
.e-prose .figure--quote {
    margin: 1.4em 0;
}

.e-prose blockquote {
    padding-left: 24px;

    font-size: 20px;
    font-style: italic;
    line-height: 1.45;

    border-left: 3px solid var(--ink);
}

@media (min-width: 900px) {
    .e-prose blockquote {
        font-size: 24px;
    }
}

.e-prose .figure--quote blockquote {
    margin: 0;
}

.e-prose blockquote p {
    margin: 0 0 0.5em;
}

.e-prose blockquote p:last-child {
    margin-bottom: 0;
}

.e-prose blockquote cite,
.e-prose .figure--quote figcaption {
    display: block;
    margin-top: 12px;

    font-family: var(--font-mono);
    font-size: 13px;
    font-style: normal;
    color: var(--ink-meta);
}

/* «На полях» (кнопка темы «Ремарка») и «Важно». */
.e-prose .figure--remark,
.e-prose .e-warn {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 1.4em 0;
    padding: 20px 24px;

    font-family: var(--font-ui);
    font-size: 16px;
    line-height: 1.5;

    background: var(--surface-cream);
    border-radius: var(--r-control);
}

.e-prose .e-warn {
    background: var(--surface-warn);
}

.e-prose .figure--remark::before,
.e-prose .e-warn::before {
    font-family: var(--font-mono);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ink-meta);
}

.e-prose .figure--remark::before {
    content: "На полях";
}

.e-prose .e-warn::before {
    content: "Важно";
}

.e-prose .figure--remark blockquote {
    margin: 0;
    padding: 0;
    font-size: inherit;
    font-style: normal;
    border: 0;
}

.e-prose .figure--remark p,
.e-prose .e-warn p {
    margin: 0 0 0.5em;
}

.e-prose .figure--remark p:last-child,
.e-prose .e-warn p:last-child {
    margin-bottom: 0;
}

/* Картинки. */
.e-prose figure {
    margin: 1.4em 0;
}

.e-prose img {
    display: block;
    max-width: 100%;
    height: auto;
    border-radius: var(--r-control);
}

.e-prose figcaption,
.e-prose .figure__caption {
    margin-top: 8px;

    font-family: var(--font-mono);
    font-size: 13px;
    line-height: 1.4;
    color: var(--ink-meta);
}

.e-prose .figure--embed iframe,
.e-prose .figure--embed video {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    height: auto;
    border: 0;
    border-radius: var(--r-control);
}

/* Код: блок с подписью и «Копировать» (обёртку добавляет site.js). */
.e-prose code {
    padding: 0.1em 0.35em;

    font-family: var(--font-mono);
    font-size: 0.85em;

    background: var(--surface-code);
    border-radius: 4px;
}

.e-prose pre {
    margin: 1.4em 0;
    padding: 16px;
    overflow-x: auto;

    font-family: var(--font-mono);
    font-size: 14px;
    line-height: 1.6;

    background: var(--surface-code);
    border-radius: var(--r-control);
}

.e-prose pre code {
    padding: 0;
    font-size: inherit;
    background: none;
}

.e-code {
    margin: 1.4em 0;
    overflow: hidden;
    background: var(--surface-code);
    border-radius: var(--r-control);
}

.e-code__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 8px 0 16px;
}

.e-code__copy {
    height: 32px;
    padding: 0 10px;

    font-family: var(--font-ui);
    font-size: 13px;
    font-weight: 500;
    color: var(--ink-2);

    background: transparent;
    border: 0;
    border-radius: var(--r-chip);
}

.e-code__copy:hover {
    background: var(--line);
}

.e-code pre {
    margin: 0;
    padding: 8px 16px 16px;
    background: none;
    border-radius: 0;
}

@media (min-width: 900px) {
    .e-prose pre {
        font-size: 15px;
    }
}

/* Таблица: числа моно и вправо. */
/* Обёртку с прокруткой на узком экране добавляет site.js. */
.e-table {
    margin: 1.4em 0;
    overflow-x: auto;
}

.e-prose table {
    width: 100%;
    min-width: 420px;
    margin: 1.4em 0;

    font-family: var(--font-ui);
    font-size: 15px;

    border-collapse: collapse;
}

.e-table table {
    margin: 0;
}

.e-prose th,
.e-prose td {
    padding: 10px 8px;
    text-align: left;
    border-bottom: 1px solid var(--line);
}

.e-prose th {
    font-weight: 600;
    color: var(--ink-meta);
}

.e-prose th:not(:first-child),
.e-prose td:not(:first-child) {
    font-family: var(--font-mono);
    text-align: right;
}

.e-prose th:not(:first-child) {
    font-family: var(--font-ui);
}

/* Разделитель — три квадрата 4 × 4. */
.e-prose hr {
    width: 36px;
    height: 4px;
    margin: 2em auto;

    background:
        linear-gradient(var(--ink), var(--ink)) left / 4px 4px no-repeat,
        linear-gradient(var(--ink), var(--ink)) center / 4px 4px no-repeat,
        linear-gradient(var(--ink), var(--ink)) right / 4px 4px no-repeat;
    border: 0;
}

/* Кнопка в тексте (кнопка темы «Кнопка»). */
.e-prose a.button {
    display: inline-flex;
    align-items: center;
    height: 46px;
    padding: 0 22px;

    font-family: var(--font-ui);
    font-size: 16px;
    font-weight: 500;
    color: #fff;
    text-decoration: none;

    background: var(--accent);
    border-radius: var(--r-control);

    transition: background-color var(--dur) var(--ease);
}

.e-prose a.button:hover {
    color: #fff;
    background: var(--accent-hover);
}

/* Событие внутри записи (mu-plugins/e404-offer.php). */
.e-prose .e-offer {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 20px;
    margin: 1.4em 0;
    padding: 20px;

    font-family: var(--font-ui);
    font-size: 16px;
    line-height: 1.5;

    border: 1px solid var(--line);
    border-radius: var(--r-control);
}

.e-offer__media {
    flex: 0 0 160px;
    overflow: hidden;
    border-radius: var(--r-control);
}

.e-prose .e-offer__media img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: 0;
}

.e-offer__date {
    display: flex;
    flex: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    width: 64px;
    height: 64px;

    font-family: var(--font-mono);
    font-weight: 700;

    background: var(--surface-quiet);
    border-radius: var(--r-control);
}

.e-offer__day {
    font-size: 24px;
    line-height: 1;
    color: var(--accent);
}

.e-offer--past .e-offer__day {
    color: var(--ink);
}

.e-offer__month {
    font-size: 11px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.e-offer__body {
    display: flex;
    flex: 1 1 240px;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    min-width: 0;
}

.e-prose .e-offer p {
    margin: 0;
}

.e-offer__kicker {
    font-family: var(--font-mono);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--accent);
}

.e-offer--past .e-offer__kicker {
    color: var(--ink-meta);
}

.e-offer__title {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.25;
}

.e-prose .e-offer__title a {
    color: var(--ink);
    text-decoration: none;
}

.e-prose .e-offer__title a:hover {
    color: var(--accent);
}

.e-offer__text {
    font-family: var(--font-read);
    font-size: 16px;
    color: var(--ink-2);
}

.e-offer__button {
    margin-top: 6px;
}

/* ---------------------------------------------------------------------------
   13. СТРАНИЦА, ПОИСК, 404
   --------------------------------------------------------------------------- */
.e-page,
.e-404 {
    display: flex;
    flex-direction: column;
    gap: 20px;
    width: 100%;
    max-width: 812px;
    margin: 0 auto;
    padding: 20px;

    color: var(--ink);
    background: var(--surface);
    border: 1px solid var(--card-border);
    border-radius: var(--r-card);
}

@media (min-width: 600px) {
    .e-page,
    .e-404 {
        padding: 44px;
    }
}

/*
 * Карточка под формой «Обсудить задачу» — той же ширины, что форма. Текст
 * в ней без предела 680 px: длину строки держат колонки .e-faq.
 */
.e-page--wide,
.e-page--wide .e-prose {
    max-width: none;
}

/*
 * Частые вопросы под формой: слева заголовок, справа вопросы строками,
 * как «Как работаем» на «О команде» — моноширинный номер, вопрос, кнопка.
 * Ответ раскрывается: <details> работает без скриптов и с клавиатуры.
 * Номера ставит счётчик — в тексте страницы их вести не нужно.
 */
.e-faq {
    display: grid;
    gap: 24px 64px;
    counter-reset: e-faq;
}

@media (min-width: 900px) {
    .e-faq {
        grid-template-columns: minmax(0, 280px) minmax(0, 1fr);
        align-items: start;
    }

    /* Заголовок не уезжает, пока листают вопросы. */
    .e-faq__head {
        position: sticky;
        top: calc(var(--header-h) + 24px);
    }
}

.e-prose .e-faq__head h2 {
    margin: 0 0 12px;
}

.e-prose .e-faq__head p {
    margin: 0;

    font-family: var(--font-ui);
    font-size: 16px;
    line-height: 1.5;
    color: var(--ink-meta);
}

.e-faq__list {
    border-top: 1px solid var(--line);
}

.e-faq__item {
    border-bottom: 1px solid var(--line);
}

.e-prose .e-faq__item summary {
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr) 32px;
    align-items: center;
    gap: 12px;
    padding: 18px 0;

    font-family: var(--font-ui);
    font-size: 17px;
    font-weight: 600;
    line-height: 1.3;
    color: var(--ink);

    list-style: none;
    cursor: pointer;
}

.e-prose .e-faq__item summary::-webkit-details-marker {
    display: none;
}

.e-prose .e-faq__item summary::before {
    counter-increment: e-faq;
    content: counter(e-faq, decimal-leading-zero);

    font-family: var(--font-mono);
    font-size: 14px;
    font-weight: 700;
    color: var(--ink-meta);
}

/* Кнопка: «+», у открытого — красная и повёрнута в «×». */
.e-prose .e-faq__item summary::after {
    content: "+";

    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;

    font-size: 24px;
    font-weight: 300;
    line-height: 1;
    color: var(--ink);

    background: var(--surface-quiet);
    border-radius: 50%;

    transition: transform var(--dur) var(--ease), background-color var(--dur) var(--ease), color var(--dur) var(--ease);
}

.e-prose .e-faq__item summary:hover::after {
    background: var(--line);
}

.e-prose .e-faq__item[open] summary::after {
    color: #fff;
    background: var(--accent);
    transform: rotate(45deg);
}

.e-prose .e-faq__item summary:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 4px;
    border-radius: var(--r-small);
}

.e-prose .e-faq__item > p {
    margin: 0;
    padding: 0 44px 22px;

    font-size: 17px;
    color: var(--ink-2);

    animation: e-faq-open var(--dur) var(--ease);
}

@keyframes e-faq-open {
    from {
        opacity: 0;
        transform: translateY(-4px);
    }
}

@media (prefers-reduced-motion: reduce) {
    .e-prose .e-faq__item > p {
        animation: none;
    }
}

@media (min-width: 900px) {
    .e-prose .e-faq__item summary {
        grid-template-columns: 44px minmax(0, 1fr) 36px;
        gap: 16px;
        padding: 22px 0;
        font-size: 19px;
    }

    .e-prose .e-faq__item summary::after {
        width: 36px;
        height: 36px;
    }

    .e-prose .e-faq__item > p {
        padding: 0 52px 26px 60px;
    }
}

.e-page__title {
    margin: 0;

    font-size: 30px;
    font-weight: 700;
    line-height: 1.12;
    letter-spacing: -0.025em;
    text-wrap: balance;
}

@media (min-width: 900px) {
    .e-page__title {
        font-size: 46px;
    }
}

/* Поиск: поле и кнопка в ряд. */
.e-search {
    display: flex;
    gap: 12px;
}

.e-field {
    height: 50px;
    padding: 0 14px;

    font-size: 16px;
    color: var(--ink);

    background: var(--surface);
    border: 1px solid var(--line-field);
    border-radius: var(--r-control);
}

.e-field:focus {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

.e-search__field {
    flex: 1;
    min-width: 0;
    padding: 0 16px;
}

.e-search__submit {
    height: 50px;
}

.e-search__line {
    margin: 0;
    font-size: 16px;
    color: var(--on-canvas-2);
}

/* 404: карточка 680 и игра под ней. */
.e-404 {
    gap: 16px;
    max-width: 680px;
    margin-top: 24px;
}

.e-404__text {
    margin: 0;

    font-family: var(--font-read);
    font-size: 19px;
    line-height: 1.5;
    color: var(--ink-2);
}

@media (min-width: 900px) {
    .e-404__text {
        font-size: 23px;
    }
}

.e-404__exits {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 8px;
}

.e-game {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    width: 100%;
    max-width: 680px;
    margin: 0 auto;
}

.e-game__frame {
    display: block;
    width: 100%;
    height: 280px;

    background: var(--surface);
    border: 0;
    border-radius: var(--r-card);
}

.e-game__hint {
    margin: 0;
    font-family: var(--font-mono);
    font-size: 13px;
    color: var(--on-canvas-meta);
}

/* ---------------------------------------------------------------------------
   14. О КОМАНДЕ (plugin/e404-about): представление — белая карточка,
   дальше разделы — заголовок на холсте и белая карточка под ним.
   --------------------------------------------------------------------------- */
.e-about-intro {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 20px;

    color: var(--ink);
    background: var(--surface);
    border: 1px solid var(--card-border);
    border-radius: var(--r-card);
}

@media (min-width: 600px) {
    .e-about-intro {
        padding: 44px;
    }
}

.e-about-intro__text {
    max-width: 680px;

    font-family: var(--font-read);
    font-size: 18px;
    line-height: 1.6;
}

.e-about-intro__text p {
    margin: 0 0 0.9em;
    text-wrap: pretty;
}

.e-about-intro__text p:last-child {
    margin-bottom: 0;
}

@media (min-width: 900px) {
    .e-about-intro__text {
        font-size: 20px;
    }
}

.e-about__h2 {
    margin-top: 24px;
}

/* Кто мы: карточки участников — по три, на планшете по две. */
.e-members {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
}

@media (min-width: 600px) {
    .e-members {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 900px) {
    .e-members {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.e-member {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 24px;

    color: var(--ink);
    background: var(--surface);
    border: 1px solid var(--card-border);
    border-radius: var(--r-card);
}

.e-member__face {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 96px;
    height: 96px;
    margin-bottom: 8px;
    object-fit: cover;

    font-size: 32px;
    font-weight: 700;
    color: var(--ink-2);

    background: var(--surface-quiet);
    border-radius: var(--r-control);
}

.e-member__name {
    margin: 0;
    font-size: 19px;
    font-weight: 700;
    line-height: 1.3;
}

.e-member__role {
    margin: 0;
    font-family: var(--font-mono);
    font-size: 13px;
    color: var(--ink-meta);
}

.e-member__bio {
    margin: 0;
    font-family: var(--font-read);
    font-size: 16px;
    line-height: 1.5;
    color: var(--ink-2);
}

.e-member__links {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 8px 16px;
    margin: auto 0 0;
    padding-top: 8px;
}

.e-member__posts {
    margin-left: auto;

    font-family: var(--font-mono);
    font-size: 13px;
    color: var(--ink-meta);
    text-decoration: none;
}

.e-member__posts:hover {
    color: var(--accent);
}

/* Строки в карточке: направления, шаги, события. */
.e-rows {
    padding: 8px 20px;

    color: var(--ink);
    background: var(--surface);
    border: 1px solid var(--card-border);
    border-radius: var(--r-card);
}

@media (min-width: 600px) {
    .e-rows {
        padding: 8px 32px;
    }
}

.e-row {
    padding: 20px 0;
    border-bottom: 1px solid var(--line);
}

.e-row:last-child {
    border-bottom: 0;
}

.e-row__title {
    margin: 0;
    font-size: 19px;
    font-weight: 700;
    line-height: 1.25;
}

.e-row__text {
    margin: 0;

    font-family: var(--font-read);
    font-size: 17px;
    line-height: 1.55;
    color: var(--ink-2);
    text-wrap: pretty;
}

.e-row--topic {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: baseline;
    gap: 8px 24px;
}

.e-row--topic .e-row__title {
    font-size: 20px;
}

/* Нет записей по теме — нет и ссылки; пустая ячейка не должна давать отступ. */
.e-row--topic > span:empty {
    display: none;
}

@media (min-width: 900px) {
    /* Колонка ссылки — постоянной ширины: у каждой строки своя сетка,
       и без ссылки описание сдвигалось бы относительно соседних строк. */
    .e-row--topic {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr) 170px;
    }

    .e-row--topic .e-row__link {
        justify-self: end;
    }

    .e-row--topic .e-row__title {
        font-size: 22px;
    }
}

.e-row__link {
    font-family: var(--font-mono);
    font-size: 13px;
    white-space: nowrap;
}

.e-row--step {
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr);
    gap: 4px 16px;
}

.e-row__num {
    padding-top: 3px;

    font-family: var(--font-mono);
    font-size: 15px;
    font-weight: 700;
    color: var(--ink-meta);
}

.e-row__body {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.e-row--event {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px 0;

    color: var(--ink);
    text-decoration: none;

    transition: color var(--dur) var(--ease);
}

.e-row--event:hover {
    color: var(--accent);
}

.e-row__date {
    display: flex;
    flex: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    width: 56px;
    height: 56px;

    font-family: var(--font-mono);
    font-weight: 700;
    color: var(--ink);

    background: var(--surface-quiet);
    border-radius: var(--r-control);
}

.e-row__date span:first-child {
    font-size: 19px;
    line-height: 1;
}

.e-row__date span:last-child {
    font-size: 10px;
    letter-spacing: 0.08em;
}

.e-row--event .e-row__title {
    font-size: 17px;
    line-height: 1.3;
}

.e-row__meta {
    font-family: var(--font-mono);
    font-size: 13px;
    color: var(--ink-meta);
}

.e-requisites {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 24px 20px;

    font-family: var(--font-mono);
    font-size: 13px;
    line-height: 1.5;
    color: var(--ink);

    background: var(--surface);
    border: 1px solid var(--card-border);
    border-radius: var(--r-card);
}

@media (min-width: 600px) {
    .e-requisites {
        padding: 24px 32px;
    }
}

.e-requisites__meta {
    color: var(--ink-meta);
}

.e-requisites .e-link {
    align-self: flex-start;
    margin-top: 4px;
    font-family: var(--font-ui);
}

/* Подсказка редактору на месте незаполненного: видна только вошедшим. */
.e-hint {
    margin: 0;
    padding: 16px 20px;

    font-family: var(--font-mono);
    font-size: 13px;
    line-height: 1.5;
    color: var(--on-canvas-2);

    border: 1.5px dashed var(--canvas-btn-line);
    border-radius: var(--r-control);
}

/* ---------------------------------------------------------------------------
   15. ФОРМА «ОБСУДИТЬ ЗАДАЧУ» (plugin/e404-forms)
   --------------------------------------------------------------------------- */
/*
 * Во всю ширину контейнера, как разделы «О команде»: при 812 px страница
 * на широком экране выглядела узкой рядом с шапкой (02.10.2026). Форма —
 * широкой колонкой, «Что будет дальше» — справа.
 */
.e404-form-card {
    display: flex;
    flex-direction: column;
    gap: 24px;
    width: 100%;
    margin: 0 auto;
    padding: 20px;

    color: var(--ink);
    background: var(--surface);
    border: 1px solid var(--card-border);
    border-radius: var(--r-card);
}

@media (min-width: 600px) {
    .e404-form-card {
        padding: 44px;
    }
}

/*
 * На широком экране — больше воздуха по краям, а поля не шире 620 px:
 * во всю колонку они читались как полосы через полстраницы (02.10.2026).
 */
@media (min-width: 1200px) {
    .e404-form-card,
    .e-page--wide {
        padding: 64px;
    }
}

.e404-form__head {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.e404-form__title,
.e404-form__done-title {
    margin: 0;

    font-size: 30px;
    font-weight: 700;
    line-height: 1.12;
    letter-spacing: -0.025em;
    text-wrap: balance;
}

.e404-form__intro,
.e404-form__done-text {
    margin: 0;

    font-family: var(--font-read);
    font-size: 19px;
    line-height: 1.5;
    color: var(--ink-2);
}

@media (min-width: 900px) {
    .e404-form__title,
    .e404-form__done-title {
        font-size: 46px;
    }

    .e404-form__intro,
    .e404-form__done-text {
        font-size: 23px;
    }
}

.e404-form__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    gap: 44px;
}

@media (min-width: 900px) {
    .e404-form__grid {
        grid-template-columns: minmax(0, 620px) minmax(0, 360px);
        justify-content: space-between;
    }
}

.e404-form {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.e404-form__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 20px 16px;
}

@media (min-width: 600px) {
    .e404-form__row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.e404-form__field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.e404-form__label {
    font-size: 15px;
    font-weight: 500;
}

.e404-form__suffix {
    font-weight: 400;
    color: var(--ink-meta);
}

.e404-form .e-field {
    width: 100%;
}

.e404-form textarea.e-field {
    display: block;
    height: auto;
    min-height: 160px;
    padding: 12px 14px 28px;
    line-height: 1.5;
    resize: vertical;
}

.e404-form .e-field::placeholder {
    color: var(--ink-meta);
    opacity: 1;
}

.e404-form .e-field:focus {
    box-shadow: 0 0 0 2px #fff;
}

.e404-form__area {
    position: relative;
}

.e404-form__counter {
    position: absolute;
    right: 12px;
    bottom: 8px;

    font-family: var(--font-mono);
    font-size: 13px;
    color: var(--ink-meta);
    pointer-events: none;
}

.e404-form__field--invalid .e-field {
    border-color: var(--error);
}

.e404-form__counter.is-over {
    color: var(--error);
}

/* Файл: зона «Перетащите файл или выберите на компьютере» (UI-kit, «Файл»). */
.e404-form__file {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
}

.e404-drop {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 18px 20px;

    cursor: pointer;

    background: var(--surface-quiet);
    border: 1.5px dashed var(--line-field);
    border-radius: var(--r-control);

    transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}

.e404-drop:hover {
    border-color: var(--ink);
}

/* Фокус на скрытом поле — рамка на зоне, как у обычного поля. */
.e404-form__file:focus-visible + .e404-drop {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

.e404-drop.is-drag {
    background: var(--accent-wash);
    border-color: var(--accent);
}

.e404-drop__icon {
    display: flex;
    flex: none;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;

    color: var(--ink);

    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 50%;
}

.e404-drop__text {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.e404-drop__title {
    font-size: 15px;
    font-weight: 500;
    color: var(--ink);
}

.e404-drop__pick {
    text-decoration: underline;
    text-decoration-color: var(--accent);
    text-underline-offset: 3px;
}

.e404-drop__hint {
    font-family: var(--font-mono);
    font-size: 12px;
    line-height: 1.5;
    color: var(--ink-meta);
}

/* Выбранный файл: бейдж расширения, имя, размер, «Заменить», «Убрать». */
.e404-file {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 12px 12px 14px;

    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--r-control);
}

.e404-file__badge {
    display: flex;
    flex: none;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;

    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--accent);

    background: var(--accent-wash);
    border-radius: var(--r-small);
}

.e404-file__info {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}

.e404-file__name {
    overflow: hidden;

    font-size: 15px;
    font-weight: 500;
    color: var(--ink);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.e404-file__size {
    font-family: var(--font-mono);
    font-size: 12px;
    color: var(--ink-meta);
}

.e404-file__replace,
.e404-file__remove {
    display: flex;
    align-items: center;
    height: 36px;

    font-size: 14px;
    font-weight: 500;
    color: var(--ink-2);

    background: transparent;
    border: 0;
    border-radius: var(--r-small);
    cursor: pointer;
}

.e404-file__replace {
    padding: 0 12px;
}

.e404-file__remove {
    justify-content: center;
    width: 36px;
    padding: 0;
}

.e404-file__replace:hover,
.e404-file__remove:hover {
    color: var(--ink);
    background: var(--surface-quiet);
}

/* Ошибка типа или размера — бейдж и рамка красные. */
.e404-form__field--invalid .e404-file {
    border-color: var(--error);
}

.e404-form__field--invalid .e404-file__badge {
    color: var(--error);
    background: var(--error-wash);
}

/* Согласие: флажок и текст со ссылкой. */
.e404-consent {
    display: flex;
    align-items: flex-start;
    gap: 12px;

    font-size: 15px;
    line-height: 1.45;
    cursor: pointer;
}

.e404-consent input {
    flex: none;
    width: 20px;
    height: 20px;
    margin: 1px 0 0;
    accent-color: var(--accent);
}

.e404-consent a {
    color: var(--ink);
    text-decoration-color: var(--accent);
    text-underline-offset: 3px;
}

.e404-form__error {
    font-size: 14px;
    color: var(--error);
}

.e404-form__actions {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
}

.e404-form__submit {
    width: 100%;
    height: 52px;
    padding: 0 28px;
}

@media (min-width: 600px) {
    .e404-form__submit {
        width: 200px;
    }
}

.e404-form__submit:disabled {
    cursor: progress;
    opacity: 0.8;
}

.e404-form__policy {
    margin: 0;
    font-size: 14px;
    line-height: 1.45;
    color: var(--ink-meta);
}

.e404-form__policy a {
    color: var(--ink);
    text-decoration-color: var(--accent);
    text-underline-offset: 3px;
}

/* Ловушка для ботов: человеку не видна, читалке тоже. Скрыта совсем, а не
   сдвинута за край: сдвинутое поле браузер может заполнить сам — Safari
   и Chrome подставляют «Организацию» из профиля в поле company, — и заявку
   человека сервер отклонил бы как бота (аудит 02.10.2026). Боты читают
   разметку, им поле видно и так. */
.e404-form__trap {
    display: none;
}

/* «Что будет дальше». */
.e404-form__next {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.e404-form__next-title {
    margin: 0;
    font-size: 19px;
    font-weight: 700;
}

.e404-form__steps {
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: e-steps;
}

.e404-form__steps li {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr);
    gap: 12px;

    font-family: var(--font-read);
    font-size: 17px;
    line-height: 1.5;
}

.e404-form__steps li::before {
    counter-increment: e-steps;
    content: counter(e-steps, decimal-leading-zero);

    font-family: var(--font-mono);
    font-size: 15px;
    font-weight: 700;
    color: var(--ink-meta);
}

.e404-form__fast {
    margin: 0;
    padding-top: 16px;
    font-size: 15px;
    color: var(--ink-2);
    border-top: 1px solid var(--line);
}

/* Ошибка отправки — полосой над формой; успех — карточкой на её месте. */
.e404-form__status.is-err a {
    font-weight: 600;
    color: var(--error);
}

.e404-form__done-notice {
    margin: 0;
    font-size: 15px;
    color: var(--error);
}

.e404-form__status.is-err {
    padding: 14px 16px;

    font-size: 15px;
    line-height: 1.45;
    color: var(--error);

    background: var(--error-wash);
    border-radius: var(--r-control);
}

.e404-form__status.is-done {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    padding: 24px 0;
}

.e404-form__done-title:focus {
    outline: none;
}

/* ---------------------------------------------------------------------------
   16. УВЕДОМЛЕНИЕ О COOKIES (mu-plugins/e404-metrika.php). В UI-kit его нет —
   собрано из карточки (радиус 14) и вторичной кнопки. Ниже меню на весь
   экран (z-index 50), чтобы не перекрывать его.
   --------------------------------------------------------------------------- */
.e-cookies {
    position: fixed;
    right: 16px;
    bottom: 16px;
    left: 16px;
    z-index: 40;

    display: flex;
    align-items: center;
    gap: 16px;
    max-width: 520px;
    padding: 16px 16px 16px 20px;

    color: var(--ink-2);
    background: var(--surface);
    border-radius: var(--r-card);
    box-shadow: 0 12px 40px rgba(0, 0, 0, .35);
}

.e-cookies__text {
    margin: 0;
    font-size: 14px;
    line-height: 1.45;
}

.e-cookies__text a {
    color: var(--ink);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.e-cookies__ok {
    flex: none;
}

/* На телефоне — текст над кнопкой, кнопка во всю ширину. */
@media (max-width: 599px) {
    .e-cookies {
        flex-direction: column;
        align-items: stretch;
    }
}

/* ---------------------------------------------------------------------------
   17. КОММЕНТАРИИ (Cloud Comments — plugin/comments, не правим;
       выводит mu-plugins/e404-comments.php). В UI-kit их нет — по токенам.
   --------------------------------------------------------------------------- */

/*
 * Плагин рисуется переменными темы irk.today (--color-primary, --color-dark,
 * --color-summary…) с запасными значениями — привязываем их к токенам.
 * Окно входа и подсказки плагин кладёт прямо в <body>, поэтому переменные —
 * и на них.
 */
.cloud-comments,
.cc-auth-popup,
.cc-toasts {
    --cc-primary: var(--accent);
    --color-primary: var(--accent);
    --color-dark: var(--ink);
    --color-light: var(--surface);
    --color-summary: var(--surface-quiet);
    --color-muted: var(--line);
    --color-warning: var(--error);
    --radius-frame: var(--r-control);
    --tag-text: var(--accent);
    --tag-bg: var(--accent-wash);
    --text: var(--ink);
    --bg-card-2: var(--surface-quiet);

    font-family: var(--font-ui);
}

.e-comments {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.e-comments__title {
    margin: 0;

    font-size: 23px;
    font-weight: 700;
    line-height: 1.25;
}

@media (min-width: 900px) {
    .e-comments__title {
        font-size: 28px;
    }
}

.e-comments__note {
    margin: 0;

    font-size: 15px;
    line-height: 1.5;
    color: var(--ink-meta);
}

.e-comments__note a {
    color: inherit;
}

/* По ширине колонки записи: у плагина своя ширина 46rem и центровка. */
.e-comments .cloud-comments {
    max-width: none;
    margin: 0;
    padding: 0;
}

/*
 * Фокус — на всём поле-капсуле, а не прямоугольником на textarea внутри:
 * общее правило :focus-visible рисовало рамку поверх скругления.
 */
.cloud-comments .cc-form__textarea:focus-visible {
    outline: none;
}

.cloud-comments .cc-form__input-wrap:focus-within {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

.cc-auth-popup__box {
    border-radius: var(--r-card);
}

/* Вкладки сортировки и счётчики — в одну строку, а на 360 px счётчики
   не помещались и растягивали страницу вбок: переносим. */
.cloud-comments .cc-sort {
    flex-wrap: wrap;
    row-gap: 8px;
}

/* Серый текст плагина — #808080, на белом 3.9:1, мало для AA: время,
   счётчики, «изменено», кнопки отмены и удаления (аудит 02.10.2026).
   У кнопок — только вне наведения: цвет при наведении остаётся плагина. */
.cloud-comments .cc-reactions__total,
.cloud-comments .cc-reactions__count,
.cloud-comments .cc-form__textarea::placeholder,
.cloud-comments .cc-form__attachment-loading,
.cloud-comments .cc-attachment__size,
.cloud-comments .cc-stats__item,
.cloud-comments .cc-empty,
.cloud-comments .cc-comment__actions-time,
.cloud-comments .cc-comment__deleted,
.cloud-comments .cc-vote--readonly-score,
.cloud-comments .cc-comment__edited,
.cloud-comments .cc-userbar__logout:not(:hover),
.cloud-comments .cc-form__cancel:not(:hover),
.cloud-comments .cc-form__attach:not(:hover),
.cloud-comments .cc-form__attachment-remove:not(:hover),
.cloud-comments .cc-action--edit:not(:hover),
.cloud-comments .cc-action--delete:not(:hover),
.cloud-comments .cc-edit-cancel:not(:hover),
.cc-auth-popup__close:not(:hover) {
    color: var(--ink-meta);
}

/*
 * Только чтение (e404_comments_readonly): гость, а вход не настроен. Форма,
 * «Ответить», голоса и реакции потребовали бы входа, которого пока нет, —
 * их не показываем. Комментарии и счёт голосов видны.
 */
.e-comments--readonly .cc-form,
.e-comments--readonly .cc-reply-form,
.e-comments--readonly .cc-action,
.e-comments--readonly .cc-vote,
.e-comments--readonly .cc-reactions-container {
    display: none;
}
