/* Шрифт Golos Text: те же локальные файлы, что и у главной (assets/), новый шрифтовой сервис не нужен. */
@font-face{font-family:'Golos Text';font-style:normal;font-weight:400;font-display:swap; src:url('../assets/golos-text-cyrillic-400-normal-C7us6pn1.woff2') format('woff2'); unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116;}
@font-face{font-family:'Golos Text';font-style:normal;font-weight:400;font-display:swap; src:url('../assets/golos-text-latin-400-normal-Coi1FYaD.woff2') format('woff2');}
@font-face{font-family:'Golos Text';font-style:normal;font-weight:600;font-display:swap; src:url('../assets/golos-text-cyrillic-600-normal-lpQ9rVRR.woff2') format('woff2'); unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116;}
@font-face{font-family:'Golos Text';font-style:normal;font-weight:600;font-display:swap; src:url('../assets/golos-text-latin-600-normal-Bhk8uV1U.woff2') format('woff2');}
@font-face{font-family:'Golos Text';font-style:normal;font-weight:700;font-display:swap; src:url('../assets/golos-text-cyrillic-700-normal-BKmY45Ip.woff2') format('woff2'); unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116;}
@font-face{font-family:'Golos Text';font-style:normal;font-weight:700;font-display:swap; src:url('../assets/golos-text-latin-700-normal-CxmN_Nfd.woff2') format('woff2');}
@font-face{font-family:'Stolzl';font-style:normal;font-weight:400;font-display:swap;src:url('../assets/stolzl-regular.otf') format('opentype');}
@font-face{font-family:'Stolzl';font-style:normal;font-weight:500;font-display:swap;src:url('../assets/stolzl-medium.otf') format('opentype');}
@font-face{font-family:'Stolzl';font-style:normal;font-weight:700;font-display:swap;src:url('../assets/stolzl-bold.otf') format('opentype');}
@font-face{font-family:'Princess Diana';font-style:normal;font-weight:400;font-display:swap;src:url('../assets/princess-diana.ttf') format('truetype');}

/* «Память о подольских курсантах». Все правила ограничены префиксом .cadets- или контейнером .cadets-page. */

.cadets-page {
  --c-bg: #15120f;
  --c-bg2: #201b17;
  --c-text: #efe6d5;
  --c-muted: #bcb09b;
  --c-paper: #e2d6bf;
  --c-ink: #1d1812;
  --c-ink-soft: #4b3f33;
  --c-bronze: #c99d66;
  --c-bronze-ink: #7a5226;
  --c-line: rgba(239, 230, 213, 0.16);
  --focus: #f3d9a8;
    --accent-display: "Stolzl", "Golos Text", system-ui, sans-serif;
  --accent-hand: "Princess Diana", "Stolzl", "Golos Text", sans-serif;
  --sans: "Golos Text", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --pad-x: clamp(16px, 4.2vw, 64px);

  margin: 0;
  background: var(--c-bg);
  color: var(--c-text);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.5;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
html.cadets-ready { scroll-behavior: auto; scrollbar-gutter: stable; }
html.cadets-lock { overflow: hidden; }
.cadets-page *, .cadets-page *::before, .cadets-page *::after { box-sizing: border-box; }
.cadets-page [hidden] { display: none !important; }
.cadets-page a { color: inherit; }
.cadets-page :focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; border-radius: 2px; }
.cadets-sheet :focus-visible, .cadets-reader :focus-visible { outline-color: var(--c-ink); }

.cadets-sr {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.cadets-skip {
  position: fixed; left: 12px; top: -64px; z-index: 100; padding: 12px 16px;
  background: var(--c-paper); color: var(--c-ink); font-weight: 600; text-decoration: none; border-radius: 3px;
}
.cadets-skip:focus { top: 12px; }

/* ───────────── трек и сцена ───────────── */
.cadets-track { position: relative; }
.cadets-stage {
  position: sticky; top: 0;
  height: 100vh; height: 100svh;
  overflow: hidden; isolation: isolate;
  background: var(--c-bg);
  touch-action: pan-y pinch-zoom;
}
.cadets-bg {
  position: absolute; inset: 0; z-index: 0;
  background: var(--c-bg) url("media/images/stage-background.webp") center bottom / cover no-repeat;
  filter: brightness(0.78) saturate(0.92);
}
.cadets-bg::after { content: ""; position: absolute; inset: 0; background: rgba(21, 18, 15, 0.3); }

.cadets-figures { position: absolute; inset: 0; z-index: 2; overflow: hidden; pointer-events: none; }
.cadets-fig { position: absolute; left: 0; top: 0; will-change: transform, opacity; }
.cadets-fig__img {
  display: block; width: 100%; height: 100%; object-fit: contain;
  opacity: 0; transition: opacity 0.35s ease-out;
  -webkit-user-drag: none; user-select: none;
}
.cadets-fig.is-ready .cadets-fig__img { opacity: 1; }
.cadets-fig.is-failed .cadets-fig__img { display: none; }
.cadets-fig__shadow {
  position: absolute; transform: translate(-50%, -50%); pointer-events: none;
  background: radial-gradient(ellipse at center, rgba(0, 0, 0, 0.55) 0%, rgba(0, 0, 0, 0) 68%);
}
.cadets-fig__silhouette { inset: 3% 8% 1% !important; border-radius: 0 !important; background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 300' preserveAspectRatio='xMidYMax meet'><g fill='%23efe6d5'><path d='M41 12c4-6 14-6 18 1 3 5 2 12-1 16l-1 8c4 2 9 4 12 9 4 7 4 18 2 30l-3 34-4 32 1 54-3 62 6 12H36l4-12-2-60 1-52-5-30c-3-14-4-26 1-34 3-5 8-8 13-10l-1-8c-3-3-5-8-2-13z'/></g></svg>") center bottom / contain no-repeat !important; opacity: 0.13; }

.cadets-shade {
  position: absolute; inset: 0; z-index: 3; pointer-events: none;
  background:
    linear-gradient(90deg, rgba(21, 18, 15, 0.94) 0%, rgba(21, 18, 15, 0.78) 30%, rgba(21, 18, 15, 0.28) 52%, rgba(21, 18, 15, 0) 66%),
    linear-gradient(180deg, rgba(21, 18, 15, 0.7) 0%, rgba(21, 18, 15, 0) 24%),
    linear-gradient(0deg, rgba(21, 18, 15, 0.82) 0%, rgba(21, 18, 15, 0) 26%);
}

/* ───────────── верхняя строка ───────────── */
.cadets-topbar {
  position: absolute; top: 0; left: 0; right: 0; z-index: 30;
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: max(16px, env(safe-area-inset-top)) var(--pad-x) 0;
}
.cadets-topbar__right { display: flex; align-items: center; gap: 22px; }
.cadets-back, .cadets-toplink {
  display: inline-flex; align-items: center; gap: 10px; min-height: 44px;
  color: var(--c-text); text-decoration: none; font-family: var(--sans); font-size: 16px;
}
.cadets-back:hover span, .cadets-toplink:hover span { text-decoration: underline; text-underline-offset: 4px; }
.cadets-back > span:first-child { color: var(--c-bronze); font-family: var(--sans); }
.cadets-toplink { font-size: 16px; }
.cadets-toplink span { border-bottom: 1px solid var(--c-bronze); padding-bottom: 2px; }
.cadets-toplink svg { width: 24px; height: 24px; color: var(--c-bronze); }
.cadets-toggle {
  min-height: 44px; padding: 0 14px; background: rgba(21, 18, 15, 0.55); color: var(--c-text);
  border: 1px solid var(--c-line); border-radius: 2px; font: 500 14px/1 var(--sans); cursor: pointer;
}
.cadets-toggle:hover:not(:disabled) { border-color: var(--c-bronze); }
.cadets-toggle:disabled { opacity: 0.6; cursor: default; }
.cadets-toggle[aria-pressed="true"] { border-color: var(--c-bronze); color: var(--c-bronze); }

/* ───────────── левая колонка ───────────── */
.cadets-ui {
  position: absolute; inset: 0 auto 0 0; z-index: 20;
  width: min(58vw, 760px);
  padding: clamp(60px, 8.6vh, 96px) 0 0 var(--pad-x);
  display: flex; flex-direction: column;
  pointer-events: none;
}
.cadets-ui > * { pointer-events: auto; }
.cadets-intro { max-width: 720px; }
.cadets-h1 {
  margin: 0; font-family: var(--accent-display); font-weight: 500; letter-spacing: -0.015em;
  font-size: clamp(38px, min(5vw, 8.4vh), 74px); line-height: 1.03; letter-spacing: -0.012em;
  text-wrap: balance; color: #f6eedd;
}
.cadets-subtitle {
  margin: 0.7em 0 0; font-size: clamp(14px, 1.25vw, 19px); font-weight: 300; letter-spacing: 0.13em; color: var(--c-text);
}
.cadets-lead { margin: 1em 0 0; max-width: 46ch; color: var(--c-muted); font-size: clamp(14px, 1.1vw, 16.5px); line-height: 1.55; }

.cadets-caption { margin-top: clamp(12px, 2.6vh, 30px); }
.cadets-caption > * { margin: 0; transition: opacity 0.28s ease-out, transform 0.28s ease-out; }
.cadets-caption[data-swap="out"] > * { opacity: 0; transform: translateY(-4px); transition-duration: 0.14s; }
.cadets-caption__index { color: var(--c-bronze); font-size: 14px; letter-spacing: 0.14em; font-variant-numeric: tabular-nums; }
.cadets-caption__name {
  margin-top: 4px !important; font-family: var(--accent-display); font-weight: 500; letter-spacing: -0.015em; font-size: clamp(22px, min(2.2vw, 3.8vh), 32px); line-height: 1.12; color: #f6eedd; text-wrap: balance; outline-offset: 6px;
}
.cadets-caption__role { margin-top: 4px !important; color: var(--c-muted); font-size: 16px; }

/* ───────────── лист с началом текста ───────────── */
.cadets-sheet {
  margin-top: clamp(10px, 1.8vh, 18px); width: min(100%, 560px);
  padding: 20px 26px 16px;
  color: var(--c-ink);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.2), rgba(120, 90, 50, 0.06)),
    var(--c-paper);
  border-radius: 3px;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.35) inset, 0 16px 34px -18px rgba(0, 0, 0, 0.7);
  transition: opacity 0.42s ease-out, transform 0.42s ease-out;
}
.cadets-sheet[data-state="hidden"] { opacity: 0; transform: translateY(10px); pointer-events: none; }
.cadets-sheet__kind { margin: 0; color: var(--c-bronze-ink); font-size: 14px; font-weight: 500; letter-spacing: 0.04em; }
.cadets-sheet__text {
  margin: 8px 0 4px; font-family: var(--sans); font-size: clamp(16px, 1.2vw, 18px); line-height: 1.55;
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 5; line-clamp: 5; overflow: hidden;
}
.cadets-sheet__text p { margin: 0; }
.cadets-sheet__loading { color: var(--c-ink-soft); font-family: var(--sans); font-size: 15px; }
.cadets-sheet__draft { margin: 0 0 6px; font-size: 13px; color: var(--c-ink-soft); }
.cadets-sheet__actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 18px; margin-top: 10px; }

.cadets-btn {
  min-height: 44px; padding: 0 20px; border-radius: 2px; cursor: pointer;
  font: 500 15px/1 var(--sans); border: 1px solid transparent;
}
.cadets-btn--primary { background: var(--c-ink); color: var(--c-paper); }
.cadets-btn--primary:hover { background: #2c241b; }
.cadets-btn--quiet { background: none; color: var(--c-ink); text-decoration: underline; text-underline-offset: 4px; padding: 0 4px; }

/* ───────────── навигация ───────────── */
.cadets-controls {
  margin-top: auto; width: min(100%, 560px);
  padding-bottom: max(18px, env(safe-area-inset-bottom));
  display: flex; flex-direction: column; align-items: center; gap: 4px;
}
.cadets-nav { display: flex; align-items: center; gap: 4px; }
.cadets-nav__arrow {
  width: 44px; height: 44px; background: none; border: 0; color: var(--c-text); font-size: 24px; cursor: pointer; font-family: var(--sans);
}
.cadets-nav__arrow:disabled { opacity: 0.3; cursor: default; }
.cadets-nav__dots { display: flex; margin: 0; padding: 0; list-style: none; }
.cadets-nav__dot {
  width: 44px; height: 52px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px;
  background: none; border: 0; color: var(--c-muted); cursor: pointer; font-family: var(--sans);
}
.cadets-nav__mark {
  width: 11px; height: 11px; border-radius: 50%; border: 1.5px solid var(--c-muted); transition: all 0.25s ease-out;
}
.cadets-nav__num { font-size: 13px; font-variant-numeric: tabular-nums; }
.cadets-nav__dot:hover .cadets-nav__mark { border-color: var(--c-bronze); }
.cadets-nav__dot[aria-current="step"] { color: var(--c-bronze); }
.cadets-nav__dot[aria-current="step"] .cadets-nav__mark {
  width: 15px; height: 15px; background: var(--c-bronze); border-color: var(--c-bronze); box-shadow: 0 0 0 4px rgba(201, 157, 102, 0.22);
}
.cadets-nav__count { display: none; margin: 0; min-width: 76px; text-align: center; color: var(--c-bronze); letter-spacing: 0.12em; font-variant-numeric: tabular-nums; }
.cadets-hint { margin: 0; color: var(--c-muted); font-size: 14px; letter-spacing: 0.1em; }

.cadets-art-slot { position: absolute; right: var(--pad-x); bottom: clamp(24px, 6vh, 56px); z-index: 25; max-width: 40vw; text-align: right; pointer-events: none; }
.cadets-art { margin: 0; color: var(--c-muted); font-size: 14px; }
.cadets-art::before { content: ""; display: inline-block; width: 22px; height: 1px; margin-right: 10px; vertical-align: middle; background: var(--c-muted); }

.cadets-status {
  position: absolute; left: 50%; top: 50%; z-index: 40; transform: translate(-50%, -50%);
  margin: 0; padding: 14px 20px; background: rgba(21, 18, 15, 0.86); border: 1px solid var(--c-line); border-radius: 3px; color: var(--c-text);
}
.cadets-status .cadets-btn { margin-left: 8px; }

/* ───────────── плеер ───────────── */
.cadets-player { color: var(--c-ink); }
.cadets-player__row { display: flex; align-items: center; gap: 14px; }
.cadets-player__btn {
  flex: none; width: 48px; height: 48px; display: grid; place-items: center; padding: 0; cursor: pointer;
  border-radius: 50%; border: 1.5px solid var(--c-ink); background: none; color: var(--c-ink); transition: background 0.2s;
}
.cadets-player__btn svg { width: 24px; height: 24px; }
.cadets-player__btn:hover:not(:disabled) { background: rgba(29, 24, 18, 0.08); }
.cadets-player__btn:disabled { opacity: 0.4; cursor: default; }
.cadets-player.is-waiting .cadets-player__btn { animation: cadets-pulse 1.1s ease-in-out infinite; }
@keyframes cadets-pulse { 50% { box-shadow: 0 0 0 5px rgba(29, 24, 18, 0.12); } }
.cadets-player__main { flex: 1 1 auto; min-width: 0; }
.cadets-player__track { position: relative; height: 44px; display: flex; align-items: center; }
.cadets-player__span {
  position: absolute; top: 50%; height: 12px; transform: translateY(-50%);
  background: rgba(122, 82, 38, 0.28); border-radius: 3px; pointer-events: none;
}
.cadets-player__range {
  position: relative; width: 100%; height: 44px; margin: 0; padding: 0; background: transparent; cursor: pointer; --p: 0%;
  -webkit-appearance: none; appearance: none;
}
.cadets-player__range:disabled { cursor: default; opacity: 0.5; }
.cadets-player__range::-webkit-slider-runnable-track {
  height: 4px; border-radius: 2px; background: linear-gradient(90deg, var(--c-bronze-ink) var(--p), rgba(29, 24, 18, 0.26) var(--p));
}
.cadets-player__range::-webkit-slider-thumb {
  -webkit-appearance: none; width: 16px; height: 16px; margin-top: -6px; border-radius: 50%;
  background: var(--c-ink); border: 2px solid var(--c-paper); box-shadow: 0 0 0 1px var(--c-ink);
}
.cadets-player__range::-moz-range-track { height: 4px; border-radius: 2px; background: rgba(29, 24, 18, 0.26); }
.cadets-player__range::-moz-range-progress { height: 4px; border-radius: 2px; background: var(--c-bronze-ink); }
.cadets-player__range::-moz-range-thumb { width: 12px; height: 12px; border-radius: 50%; background: var(--c-ink); border: 2px solid var(--c-paper); }
.cadets-player__meta { display: flex; justify-content: space-between; gap: 12px; margin-top: -6px; font-size: 14px; color: var(--c-ink-soft); }
.cadets-player__time { font-variant-numeric: tabular-nums; }
.cadets-player__extras { display: flex; align-items: center; gap: 6px; flex: none; }
.cadets-player__aux {
  min-width: 44px; height: 44px; display: grid; place-items: center; padding: 0 6px; background: none; border: 0; cursor: pointer;
  color: var(--c-ink); font: 500 15px/1 var(--sans);
}
.cadets-player__aux svg { width: 22px; height: 22px; }
.cadets-player__aux:disabled { opacity: 0.4; cursor: default; }
.cadets-player__statusrow { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 14px; margin-top: 4px; }
.cadets-player__status { margin: 0; font-size: 14px; color: var(--c-ink-soft); }
.cadets-player__retry {
  min-height: 44px; padding: 0 12px; background: none; border: 1px solid var(--c-ink); border-radius: 2px; color: var(--c-ink); font: 500 14px/1 var(--sans); cursor: pointer;
}
.cadets-player.is-compact .cadets-player__btn { width: 44px; height: 44px; }

/* ───────────── панель чтения (dialog) ───────────── */
.cadets-reader {
  position: fixed; inset: 16px auto 16px 16px; margin: 0; padding: 0; border: 0; background: transparent; color: var(--c-ink);
  width: min(660px, calc(100vw - 32px)); max-width: none; height: calc(100svh - 32px); max-height: none; overflow: visible;
}
.cadets-reader[open] { animation: cadets-reader-in 0.42s ease-out; }
.cadets-reader::backdrop { background: linear-gradient(90deg, rgba(10, 8, 6, 0.74), rgba(10, 8, 6, 0.4) 55%, rgba(10, 8, 6, 0.2)); }
@keyframes cadets-reader-in { from { opacity: 0; transform: translateX(-14px); } to { opacity: 1; transform: none; } }
.cadets-reader__paper {
  height: 100%; display: flex; flex-direction: column; overflow: hidden; border-radius: 4px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.2), rgba(120, 90, 50, 0.06)), var(--c-paper);
  box-shadow: 0 24px 60px -24px rgba(0, 0, 0, 0.8);
}
.cadets-reader__head { padding: 18px 28px 6px; }
.cadets-reader__topline { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.cadets-reader__kind { margin: 6px 0 0; color: var(--c-bronze-ink); font-size: 14px; font-weight: 500; letter-spacing: 0.04em; }
.cadets-reader__close {
  flex: none; min-height: 44px; padding: 0 14px; background: none; border: 1px solid var(--c-ink); border-radius: 2px;
  color: var(--c-ink); font: 500 14px/1 var(--sans); cursor: pointer;
}
.cadets-reader__close:hover { background: rgba(29, 24, 18, 0.08); }
.cadets-reader__title { margin: 6px 0 0; font-family: var(--accent-display); font-weight: 500; letter-spacing: -0.015em; font-size: clamp(24px, 2.2vw, 31px); line-height: 1.12; text-wrap: balance; outline: none; }
.cadets-reader__role { margin: 4px 0 0; color: var(--c-ink-soft); font-size: 15px; }
.cadets-reader__tabs { display: flex; flex-wrap: wrap; gap: 4px 6px; margin-top: 12px; }
.cadets-reader__tab {
  min-width: 44px; min-height: 44px; max-width: 100%; padding: 6px 14px; text-align: left; line-height: 1.25; overflow-wrap: anywhere; background: none; border: 0; border-bottom: 2px solid transparent; color: var(--c-ink-soft); font: 500 15px/1 var(--sans); cursor: pointer;
}
.cadets-reader__tab[aria-selected="true"] { color: var(--c-ink); border-bottom-color: var(--c-bronze-ink); }
.cadets-reader__meta { margin: 8px 0 0; font-size: 14px; color: var(--c-ink-soft); line-height: 1.45; }
.cadets-reader__date { font-weight: 600; color: var(--c-ink); }
.cadets-reader__notice { padding: 6px 28px 10px; font-size: 14px; line-height: 1.45; color: var(--c-ink-soft); border-bottom: 1px solid rgba(29, 24, 18, 0.14); }
.cadets-reader__notice p { margin: 0; }

.cadets-reader__body {
  flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 18px 28px 22px;
  font-family: var(--sans); font-size: clamp(18px, 1.35vw, 20px); line-height: 1.7;
}
.cadets-reader__body > * { max-width: 62ch; }
.cadets-reader__p { margin: 0 0 1em; }
.cadets-reader__frame { margin: 0 0 1.2em; font: 14px/1.4 var(--sans); letter-spacing: 0.1em; color: var(--c-ink-soft); }
.cadets-reader__flagged {
  margin: 0 0 1em; padding: 10px 14px 2px 16px; border-left: 3px solid var(--c-bronze-ink); background: rgba(122, 82, 38, 0.09);
}
.cadets-reader__gap { color: var(--c-ink-soft); font-style: italic; }
.cadets-reader__flagged.is-check { border-left-color: rgba(122, 82, 38, 0.55); background: rgba(122, 82, 38, 0.06); }
.cadets-reader__flagnote { margin: 0 0 0.6em; font: 14px/1.45 var(--sans); color: var(--c-ink-soft); }
.cadets-reader__flagnote a { color: var(--c-ink); }
.cadets-reader__extended { margin-top: 1.4em; padding-top: 0.8em; border-top: 1px solid rgba(29, 24, 18, 0.18); }
.cadets-reader__extended summary { cursor: pointer; font: 500 15px/1.4 var(--sans); min-height: 44px; display: flex; align-items: center; }
.cadets-reader__loading { font: 15px/1.5 var(--sans); color: var(--c-ink-soft); }
.cadets-reader__retry { min-height: 44px; padding: 0 14px; border: 1px solid var(--c-ink); border-radius: 2px; background: none; font: 500 14px/1 var(--sans); cursor: pointer; }

.cadets-reader__foot { flex: none; padding: 8px 24px 12px; border-top: 1px solid rgba(29, 24, 18, 0.18); }
.cadets-reader__fragment { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 14px; margin-bottom: 4px; }
.cadets-reader__fragment-btn { min-height: 44px; padding: 0 16px; background: var(--c-ink); color: var(--c-paper); border: 0; border-radius: 2px; font: 500 14px/1 var(--sans); cursor: pointer; }
.cadets-reader__fragment-note { margin: 0; flex: 1 1 220px; font-size: 13.5px; line-height: 1.4; color: var(--c-ink-soft); }
.cadets-reader__sources { margin-top: 2px; font-size: 14.5px; line-height: 1.5; }
.cadets-reader__sources summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; font-weight: 500; }
.cadets-reader__sources-body { padding-bottom: 6px; max-height: 28vh; overflow-y: auto; overscroll-behavior: contain; }
.cadets-reader__srcnote { margin: 0 0 8px; color: var(--c-ink-soft); }
.cadets-reader__srchead { margin: 10px 0 4px; font-weight: 600; }
.cadets-reader__srclist { margin: 0 0 8px; padding-left: 18px; }
.cadets-reader__srclist li { margin-bottom: 6px; }
.cadets-reader__srclist a { color: var(--c-ink); }
.cadets-reader__srcrole { color: var(--c-ink-soft); }

/* ───────────── Все истории ───────────── */
.cadets-all { padding: clamp(40px, 7vw, 96px) var(--pad-x) clamp(36px, 6vw, 80px); background: var(--c-bg2); }
.cadets-all__title, .cadets-sources__title { margin: 0; font-family: var(--accent-display); font-weight: 500; letter-spacing: -0.015em; font-size: clamp(28px, 3.2vw, 44px); line-height: 1.1; color: #f6eedd; }
.cadets-all__note { margin: 10px 0 28px; color: var(--c-muted); }
.cadets-noscript ol { padding-left: 20px; }
.cadets-noscript li { margin-bottom: 18px; }
.cadets-noscript audio { width: 100%; max-width: 480px; }
.cadets-noscript a { color: var(--c-bronze); }

/* ───────────── Образы и источники ───────────── */
.cadets-sources { padding: clamp(40px, 6vw, 88px) var(--pad-x); }

/* ───────────── создатель проекта ───────────── */
.cadets-creator { padding: clamp(72px, 9vw, 128px) var(--pad-x); background: var(--c-paper); color: var(--c-ink); }
.cadets-creator__inner { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: minmax(220px, 360px) minmax(0, 1fr); align-items: center; gap: clamp(36px, 7vw, 110px); }
.cadets-creator__portrait-wrap { align-self: end; min-height: 300px; display: flex; align-items: end; justify-content: center; }
.cadets-creator__portrait { display: block; width: min(100%, 360px); height: auto; filter: drop-shadow(14px 18px 0 rgba(124, 82, 54, .14)); }
.cadets-creator__copy { max-width: 720px; }
.cadets-creator__title { margin: 10px 0 10px; font-family: var(--accent-display); font-size: clamp(32px, 4.2vw, 62px); line-height: .98; font-weight: 500; letter-spacing: -.025em; color: var(--c-ink); }
.cadets-creator__role { margin: 0; font-family: var(--sans); font-size: clamp(17px, 1.7vw, 22px); color: #7b4f36; font-weight: 600; }
.cadets-creator__quote { margin: 32px 0 0; padding: 24px 0 0 26px; border-left: 2px solid #a85739; font-family: var(--sans); font-size: clamp(18px, 1.7vw, 24px); line-height: 1.55; color: #3e332b; max-width: 62ch; }
@media (max-width: 760px) { .cadets-creator__inner { grid-template-columns: 1fr; gap: 24px; } .cadets-creator__portrait-wrap { min-height: 0; justify-content: flex-start; } .cadets-creator__portrait { width: min(72vw, 300px); } .cadets-creator__quote { margin-top: 24px; padding-left: 18px; font-size: 21px; } }
.cadets-sources > * { max-width: 78ch; }
.cadets-sources__global { margin: 18px 0 0; font-family: var(--sans); font-size: 18px; line-height: 1.6; color: #f6eedd; }
.cadets-sources__primary { margin: 16px 0 0; max-width: 74ch; color: var(--c-paper); font-family: var(--accent-display); font-size: .96rem; line-height: 1.55; }
.cadets-sources__primary strong { color: var(--c-bronze); font-weight: 500; }
.cadets-sources__lead { margin: 12px 0 0; color: var(--c-muted); font-size: 17px; line-height: 1.6; }
.cadets-sources__legend { margin: 24px 0 0; padding: 0; display: grid; gap: 4px; }
.cadets-sources__legend dt { margin-top: 12px; font-weight: 600; color: var(--c-bronze); }
.cadets-sources__legend dd { margin: 0; color: var(--c-text); line-height: 1.55; }
.cadets-sources__sub { margin: 36px 0 8px; font-family: var(--accent-display); font-weight: 500; letter-spacing: -0.015em; font-size: 21px; }
.cadets-sources__people { margin: 0; padding: 0; list-style: none; }
.cadets-sources__people > li { border-top: 1px solid var(--c-line); }
.cadets-sources__people summary { min-height: 52px; display: flex; align-items: center; cursor: pointer; font-family: var(--accent-display); font-weight: 500; letter-spacing: -0.015em; font-size: 17px; }
.cadets-sources__people details > :not(summary) { margin: 0 0 10px; line-height: 1.55; font-size: 16px; }
.cadets-sources__list { padding-left: 20px; }
.cadets-sources__list li { margin-bottom: 6px; }
.cadets-sources__list a { color: var(--c-bronze); }
.cadets-sources__role { color: var(--c-muted); }
.cadets-sources__head { font-weight: 600; margin-top: 12px !important; }
.cadets-sources__foot { margin-top: 28px; color: var(--c-muted); line-height: 1.55; font-size: 15px; }
.cadets-footer { padding: 8px var(--pad-x) max(48px, env(safe-area-inset-bottom)); }

/* ───────────── режим «Без анимации»: обычный вертикальный список ───────────── */
body[data-mode="list"] .cadets-stage { position: relative; height: auto; overflow: visible; padding-bottom: 36px; touch-action: auto; }
body[data-mode="list"] .cadets-figures,
body[data-mode="list"] .cadets-shade,
body[data-mode="list"] .cadets-caption,
body[data-mode="list"] .cadets-sheet,
body[data-mode="list"] .cadets-controls,
body[data-mode="list"] .cadets-art-slot { display: none; }
body[data-mode="list"] .cadets-bg { filter: brightness(0.5) saturate(0.85); }
body[data-mode="list"] .cadets-topbar { position: relative; }
body[data-mode="list"] .cadets-ui { position: relative; inset: auto; width: auto; padding: 36px var(--pad-x) 0; }
body[data-mode="list"] *, body[data-mode="list"] *::before, body[data-mode="list"] *::after { animation: none !important; transition: none !important; }

@media (prefers-reduced-motion: reduce) {
  .cadets-page *, .cadets-page *::before, .cadets-page *::after { animation: none !important; transition: none !important; }
}

/* ───────────── невысокие окна ───────────── */
@media (max-height: 980px) and (min-width: 821px) {
  .cadets-lead { display: none; }
}
@media (max-height: 860px) and (min-width: 821px) {
  .cadets-sheet__text { -webkit-line-clamp: 4; line-clamp: 4; }
  .cadets-sheet { padding: 16px 24px 12px; }
}
@media (max-height: 740px) and (min-width: 821px) {
  .cadets-subtitle { display: none; }
  .cadets-sheet__text { -webkit-line-clamp: 3; line-clamp: 3; }
  .cadets-sheet__draft { display: none; }
  .cadets-caption__role { display: none; }
}

/* ───────────── телефон и малый landscape ───────────── */
@media (max-width: 820px), (max-height: 520px) {
  .cadets-ui { width: 100%; padding: calc(max(16px, env(safe-area-inset-top)) + 54px) var(--pad-x) 0; }
  .cadets-h1 { font-size: clamp(28px, 8.6vw, 42px); }
  .cadets-subtitle { font-size: 14px; letter-spacing: 0.1em; margin-top: 0.5em; }
  .cadets-lead { display: none; }
  .cadets-caption { margin-top: 12px; }
  .cadets-caption__name { font-size: clamp(22px, 6.2vw, 30px); max-width: 80%; }
  .cadets-caption__role { font-size: 15px; max-width: 70%; }
  .cadets-back { font-size: 15px; gap: 6px; }
  .cadets-topbar__right { gap: 8px; }
  .cadets-toggle { padding: 0 10px; font-size: 13px; }
  .cadets-toplink span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
  .cadets-toplink { min-width: 44px; justify-content: center; }
  .cadets-shade {
    background:
      linear-gradient(180deg, rgba(21, 18, 15, 0.86) 0%, rgba(21, 18, 15, 0.45) 34%, rgba(21, 18, 15, 0) 52%),
      linear-gradient(0deg, rgba(21, 18, 15, 0.9) 0%, rgba(21, 18, 15, 0) 30%);
  }
  /* на телефоне лист сводится к одной заметной кнопке; текст открывается в нижней панели */
  .cadets-sheet { margin-top: auto; width: 100%; padding: 0; background: none; box-shadow: none; }
  .cadets-sheet__kind, .cadets-sheet__text, .cadets-sheet__draft, .cadets-sheet__player, .cadets-sheet .cadets-btn--quiet { display: none; }
  .cadets-sheet__actions { margin: 0; }
  .cadets-sheet .cadets-btn--primary { width: 100%; background: var(--c-paper); color: var(--c-ink); min-height: 50px; font-size: 16px; }
  .cadets-sheet :focus-visible { outline-color: var(--focus); }
  .cadets-controls { margin-top: 10px; width: 100%; }
  .cadets-nav__dots { display: none; }
  .cadets-nav__count { display: block; }
  .cadets-nav__arrow { width: 52px; height: 48px; }
  .cadets-hint { font-size: 13px; }
  .cadets-art-slot { right: var(--pad-x); bottom: auto; top: 60%; max-width: 46vw; }
  .cadets-art { font-size: 13px; }

  .cadets-back, .cadets-toggle { white-space: nowrap; }
  .cadets-back__more { display: none; }
  .cadets-back--foot { white-space: normal; }
  .cadets-back--foot .cadets-back__more { display: inline; }
  .cadets-reader { inset: auto 0 0 0; width: 100%; height: calc(100vh - 10px - env(safe-area-inset-top)); height: calc(100svh - 10px - env(safe-area-inset-top)); border-radius: 14px 14px 0 0; }
  .cadets-reader__kind { font-size: 13px; margin-top: 2px; }
  .cadets-reader__close { padding: 0 10px; font-size: 13px; }
  .cadets-reader__tab { padding: 6px 10px; font-size: 14px; }
  .cadets-reader__tabs { margin-top: 6px; }
  .cadets-reader__meta, .cadets-reader__notice { font-size: 13px; }
  .cadets-reader__title { margin-top: 2px; }
  .cadets-player__meta { flex-wrap: nowrap; white-space: nowrap; font-size: 13px; }
  .cadets-reader__fragment-note { display: none; }
  .cadets-reader__tabs { flex-wrap: wrap; }
  .cadets-reader__role { font-size: 14px; }
  .cadets-reader[open] { animation-name: cadets-reader-up; }
  .cadets-reader__paper { border-radius: 14px 14px 0 0; }
  .cadets-reader__head { padding: 14px 18px 4px; }
  .cadets-reader__notice { padding: 6px 18px 8px; }
  .cadets-reader__body { padding: 14px 18px 18px; font-size: 19px; }
  .cadets-reader__foot { padding: 6px 14px calc(8px + env(safe-area-inset-bottom)); }
  .cadets-reader__title { font-size: 25px; }
  .cadets-player__extras { gap: 0; }
}
@keyframes cadets-reader-up { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }

/* малый landscape: две колонки, сцена справа */
@media (max-height: 520px) and (min-width: 821px) {
  .cadets-ui { width: 48vw; padding-top: calc(max(12px, env(safe-area-inset-top)) + 46px); }
  .cadets-h1 { font-size: clamp(22px, 5.4vh, 30px); }
  .cadets-subtitle { display: none; }
  .cadets-caption__name { font-size: 22px; max-width: 100%; }
  .cadets-art-slot { top: auto; bottom: 14px; }
  .cadets-controls { padding-bottom: 8px; }
  .cadets-sheet .cadets-btn--primary { min-height: 46px; width: auto; }
  .cadets-reader { inset: 8px 0 8px 8px; width: min(560px, 62vw); height: calc(100svh - 16px); border-radius: 4px; }
  .cadets-reader[open] { animation-name: cadets-reader-in; }
  .cadets-reader__paper { border-radius: 4px; }
}

/* ───────────── режим для слабовидящих сайта (html.a11y-mode) ─────────────
   Тот же контракт, что у главной: крупнее текст, спокойнее межстрочный, заметный фокус, цели не меньше 44px.
   Движение отключается отдельно (js/main.js: настройка сайта = reduced motion). */


/* ═══════════════ Исторический контекст: «Ильинский рубеж», хронология, словарь, люди ═══════════════
   Музейный тон: тёмная карта, тёплая бумага, приглушённая бронза. Переходы — длинные градиенты
   между реальными цветами соседних блоков, без волн и полос. */

.cadets-kicker { margin: 0 0 14px; font: 600 0.85rem/1.2 var(--sans); letter-spacing: 0.16em; text-transform: uppercase; color: var(--c-bronze); }
.cadets-kicker--paper { color: var(--c-bronze-ink); }

/* нижний край сцены уходит в цвет следующего блока */
.cadets-stage::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; z-index: 4; pointer-events: none;
  height: clamp(90px, 14vh, 150px); background: linear-gradient(180deg, rgba(21, 18, 15, 0), #15120f);
}

/* ───────────── швы между блоками ───────────── */
.cadets-seam { position: relative; z-index: 3; pointer-events: none; height: var(--seam-h); margin: calc(var(--seam-h) / -2) 0; }
.cadets-seam--to-paper {
  --seam-h: clamp(120px, 18vh, 200px);
  background: linear-gradient(180deg, #201b17 0%, #2d2620 14%, #5a5044 34%, #968a77 54%, #c9bda5 76%, #e2d6bf 100%);
}
.cadets-seam--to-dark {
  --seam-h: clamp(110px, 16vh, 180px);
  background: linear-gradient(180deg, #e2d6bf 0%, #c9bda5 24%, #968a77 46%, #5a5044 66%, #2d2620 86%, #201b17 100%);
}
.cadets-all { padding-top: clamp(112px, 14vw, 150px); }

/* ───────────── тёмный раздел «Ильинский рубеж» ───────────── */
.cadets-context {
  position: relative; isolation: isolate; overflow: hidden; background: var(--c-bg); color: var(--c-text);
  padding: clamp(104px, 15vh, 168px) var(--pad-x) clamp(130px, 17vh, 200px);
}
.cadets-context__bg, .cadets-rubezh__bg {
  position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: center;
  pointer-events: none; user-select: none; -webkit-user-drag: none;
}
.cadets-context__bg, .cadets-context__veil, .cadets-rubezh__bg, .cadets-rubezh__veil {
  -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 18%, #000 82%, transparent 100%);
  mask-image: linear-gradient(180deg, transparent 0, #000 18%, #000 82%, transparent 100%);
}
.cadets-context__veil, .cadets-rubezh__veil { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.cadets-context__veil {
  background: linear-gradient(90deg, rgba(12, 10, 8, 0.96) 0%, rgba(12, 10, 8, 0.86) 42%, rgba(12, 10, 8, 0.52) 100%);
}
.cadets-context__inner { max-width: 1240px; margin: 0 auto; }
.cadets-context__title, .cadets-timeline__title, .cadets-rubezh__title {
  margin: 0; font-family: var(--accent-display); font-weight: 500; letter-spacing: -0.015em; font-size: clamp(2.2rem, 4.4vw, 3.8rem); line-height: 1.05; letter-spacing: -0.01em; text-wrap: balance;
}
.cadets-context__title { color: #f6eedd; }
.cadets-context__lead { max-width: 60ch; margin: 22px 0 0; font-size: clamp(1.05rem, 1.5vw, 1.25rem); line-height: 1.65; color: var(--c-text); }

.cadets-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 clamp(32px, 5vw, 72px); max-width: 960px; margin-top: clamp(40px, 6vw, 72px); }
.cadets-fact { padding: 20px 0 26px; border-top: 1px solid rgba(239, 230, 213, 0.22); }
.cadets-fact h3 { margin: 0 0 10px; font: 600 1.05rem/1.3 var(--sans); letter-spacing: 0.04em; color: var(--c-bronze); }
.cadets-fact p { margin: 0; font-size: 1.0625rem; line-height: 1.65; color: var(--c-text); }
.cadets-fact__abbr { display: grid; gap: 4px; margin-top: 14px !important; font-size: 0.9375rem !important; color: var(--c-muted) !important; }
.cadets-fact__abbr b { color: var(--c-text); letter-spacing: 0.06em; }

/* схема направления: HTML и CSS, на телефоне превращается в вертикальный маршрут */
.cadets-route { max-width: 1180px; margin: clamp(48px, 7vw, 88px) 0 0; padding-top: 24px; border-top: 1px solid rgba(239, 230, 213, 0.22); }
.cadets-route__title { font: 600 0.85rem/1.2 var(--sans); letter-spacing: 0.14em; text-transform: uppercase; color: var(--c-bronze); }
.cadets-route__list { position: relative; list-style: none; margin: 56px 0 0; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); }
.cadets-route__stop { position: relative; padding: 32px 8px 0; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 4px; }
.cadets-route__stop::after {
  content: ""; position: absolute; top: 0; left: 50%; z-index: 1; width: 14px; height: 14px; margin-left: -7px;
  border-radius: 50%; background: #15120f; border: 2px solid var(--c-bronze);
}
.cadets-route__stop.is-focus::after { width: 22px; height: 22px; margin-left: -11px; top: -4px; background: var(--c-bronze); box-shadow: 0 0 0 6px rgba(201, 157, 102, 0.2); }
.cadets-route__stop:not(:last-child)::before { content: ""; position: absolute; top: 6px; left: 50%; width: 100%; border-top: 2px solid var(--c-bronze); }
.cadets-route__stop:nth-child(1)::before { border-top: 1px solid rgba(239, 230, 213, 0.42); }
.cadets-route__stop:nth-child(2)::before { border-top: 2px dashed rgba(239, 230, 213, 0.6); }
.cadets-route__via { position: absolute; top: -34px; left: 0; width: 150px; transform: translateX(-50%); text-align: center; font-size: 0.8125rem; line-height: 1.2; color: var(--c-muted); }
.cadets-route__name { font-family: var(--accent-display); font-weight: 500; letter-spacing: -0.015em; font-size: 1.15rem; line-height: 1.25; color: #f6eedd; }
.cadets-route__stop.is-focus .cadets-route__name { color: var(--c-bronze); font-weight: 700; }
.cadets-route__note { font-size: 0.9375rem; line-height: 1.45; color: var(--c-muted); max-width: 18ch; }
.cadets-route__dir { display: flex; align-items: center; gap: 12px; margin: 34px 0 0; font-size: 0.9375rem; line-height: 1.5; color: var(--c-muted); }
.cadets-route__dir svg { flex: none; color: var(--c-bronze); }
.cadets-route__note-main { margin: 10px 0 0; font-size: 0.9375rem; font-style: italic; color: var(--c-muted); }

/* ───────────── хронология ───────────── */
.cadets-timeline {
  position: relative; isolation: isolate; color: var(--c-text);
  background:
    repeating-linear-gradient(180deg, rgba(239, 230, 213, 0.022) 0 1px, transparent 1px 36px),
    linear-gradient(180deg, #15120f 0, #201b17 240px, #201b17 100%);
  padding: clamp(104px, 14vh, 156px) var(--pad-x) clamp(130px, 17vh, 200px);
}
.cadets-timeline__inner { max-width: 1240px; margin: 0 auto; }
.cadets-timeline__title { color: #f6eedd; }
.cadets-tl__list { list-style: none; margin: clamp(40px, 6vw, 64px) 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 52px 36px; }
.cadets-tl__item { position: relative; padding-top: 30px; }
.cadets-tl__item::before { content: ""; position: absolute; top: 6px; left: 0; right: -36px; height: 1px; background: rgba(239, 230, 213, 0.3); transform-origin: left center; }
.cadets-tl__item:nth-child(4n)::before { right: 0; }
.cadets-tl__item::after { content: ""; position: absolute; top: 0; left: 0; width: 13px; height: 13px; border-radius: 50%; background: #201b17; border: 2px solid var(--c-bronze); }
.cadets-tl__date { margin: 0 0 8px; font: 700 1.05rem/1.3 var(--sans); letter-spacing: 0.02em; color: var(--c-bronze); }
.cadets-tl__text { margin: 0; font-size: 1.0625rem; line-height: 1.6; color: var(--c-text); }
.cadets-timeline__after { max-width: 70ch; margin: clamp(48px, 6vw, 72px) 0 0; padding-top: 22px; border-top: 1px solid rgba(239, 230, 213, 0.22); font-size: 1.0625rem; line-height: 1.65; color: var(--c-muted); }

/* ───────────── светлый раздел «Как был устроен рубеж» ───────────── */
.cadets-rubezh {
  position: relative; isolation: isolate; overflow: hidden; background: var(--c-paper); color: var(--c-ink);
  padding: clamp(120px, 15vh, 170px) var(--pad-x) clamp(56px, 8vh, 96px);
}
.cadets-rubezh__veil { background: linear-gradient(90deg, rgba(226, 214, 191, 0.95) 0%, rgba(226, 214, 191, 0.84) 55%, rgba(226, 214, 191, 0.62) 100%); }
.cadets-rubezh__inner { max-width: 1240px; margin: 0 auto; }
.cadets-rubezh__title { color: var(--c-ink); }
.cadets-rubezh__lead { max-width: 58ch; margin: 20px 0 0; font-size: clamp(1.05rem, 1.4vw, 1.2rem); line-height: 1.65; color: #2c241b; }
.cadets-gloss { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 clamp(32px, 5vw, 72px); max-width: 1000px; margin: clamp(36px, 5vw, 60px) 0 0; }
.cadets-gloss__item { padding: 18px 0 22px; border-top: 1px solid rgba(29, 24, 18, 0.24); }
.cadets-gloss dt { margin: 0 0 6px; font-family: var(--accent-display); font-weight: 500; letter-spacing: -0.015em; font-size: 1.25rem; line-height: 1.25; color: var(--c-ink); }
.cadets-gloss dd { margin: 0; font-size: 1.0625rem; line-height: 1.6; color: #2c241b; }

/* ───────────── люди (второстепенный блок) ───────────── */
.cadets-people { position: relative; background: var(--c-paper); color: var(--c-ink); padding: clamp(40px, 6vh, 72px) var(--pad-x) clamp(130px, 17vh, 200px); }
.cadets-people__inner { max-width: 1240px; margin: 0 auto; }
.cadets-people__title { margin: 0; font-family: var(--accent-display); font-weight: 500; letter-spacing: -0.015em; font-size: clamp(1.6rem, 2.6vw, 2.1rem); line-height: 1.15; }
.cadets-people__lead { max-width: 62ch; margin: 12px 0 0; font-size: 1.0625rem; line-height: 1.6; color: #2c241b; }
.cadets-people__list { list-style: none; margin: 32px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 clamp(28px, 4vw, 56px); }
.cadets-people__item { padding: 18px 0 8px; border-top: 1px solid rgba(29, 24, 18, 0.28); }
.cadets-people__name { margin: 0 0 6px; font-family: var(--accent-display); font-weight: 500; letter-spacing: -0.015em; font-size: 1.15rem; line-height: 1.2; }
.cadets-people__rank { margin: 0 0 8px; font-size: 1rem; font-weight: 600; line-height: 1.45; color: var(--c-bronze-ink); }
.cadets-people__role { margin: 0; font-size: 1.0625rem; line-height: 1.6; color: #2c241b; }
.cadets-srcpanel { margin-top: 44px; max-width: 78ch; border-top: 1px solid rgba(29, 24, 18, 0.28); }
.cadets-srcpanel summary { display: flex; align-items: center; min-height: 52px; cursor: pointer; font-weight: 600; font-size: 1rem; color: var(--c-ink); text-decoration: underline; text-underline-offset: 4px; }
.cadets-srcpanel__body { padding: 4px 0 8px; font-size: 1rem; line-height: 1.6; color: #2c241b; }
.cadets-srcpanel__list { margin: 12px 0 0; padding-left: 20px; }
.cadets-srcpanel__list li { margin-bottom: 8px; }
.cadets-srcpanel__list a { color: var(--c-ink); text-underline-offset: 3px; }
.cadets-srcpanel__by { color: #4b3f33; }
.cadets-rubezh :focus-visible, .cadets-people :focus-visible { outline-color: var(--c-ink); }

/* ───────────── проявление: небольшое смещение и прозрачность (включается только скриптом) ───────────── */
html.cadets-reveal-ready [data-reveal]:not(.cadets-tl__list):not(.cadets-gloss):not(.cadets-people__list) {
  opacity: 0; transform: translateY(12px);
  transition: opacity 0.6s ease-out calc(var(--i, 0) * 70ms), transform 0.6s ease-out calc(var(--i, 0) * 70ms);
}
html.cadets-reveal-ready [data-reveal].is-visible:not(.cadets-tl__list):not(.cadets-gloss):not(.cadets-people__list) { opacity: 1; transform: none; }
html.cadets-reveal-ready .cadets-tl__item, html.cadets-reveal-ready .cadets-gloss__item, html.cadets-reveal-ready .cadets-people__item {
  opacity: 0; transform: translateY(10px);
  transition: opacity 0.5s ease-out calc(var(--i, 0) * 70ms), transform 0.5s ease-out calc(var(--i, 0) * 70ms);
}
html.cadets-reveal-ready .is-visible > .cadets-tl__item, html.cadets-reveal-ready .is-visible > .cadets-gloss__item, html.cadets-reveal-ready .is-visible > .cadets-people__item { opacity: 1; transform: none; }
html.cadets-reveal-ready .cadets-tl__item::before { transform: scaleX(0); transition: transform 0.7s ease-out calc(var(--i, 0) * 70ms); }
html.cadets-reveal-ready .is-visible > .cadets-tl__item::before { transform: scaleX(1); }

@media (prefers-reduced-motion: reduce) {
  [data-reveal], .cadets-tl__item, .cadets-gloss__item, .cadets-people__item, .cadets-tl__item::before { opacity: 1 !important; transform: none !important; transition: none !important; }
}
body[data-mode="list"] [data-reveal], body[data-mode="list"] .cadets-tl__item, body[data-mode="list"] .cadets-gloss__item, body[data-mode="list"] .cadets-people__item, body[data-mode="list"] .cadets-tl__item::before { opacity: 1 !important; transform: none !important; transition: none !important; }

/* ───────────── планшет и телефон ───────────── */
@media (max-width: 1100px) {
  .cadets-tl__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cadets-tl__item:nth-child(4n)::before { right: -36px; }
  .cadets-tl__item:nth-child(2n)::before { right: 0; }
  .cadets-people__list { grid-template-columns: 1fr; }
  .cadets-people__item { padding-bottom: 16px; }
}
@media (max-width: 760px) {
  .cadets-seam--to-paper, .cadets-seam--to-dark { --seam-h: clamp(96px, 14vh, 128px); }
  .cadets-context { padding: 88px var(--pad-x) 120px; }
  .cadets-context__bg { bottom: auto; height: 600px; object-position: 70% 40%;
    -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 14%, #000 70%, transparent 100%); mask-image: linear-gradient(180deg, transparent 0, #000 14%, #000 70%, transparent 100%); }
  .cadets-context__veil { bottom: auto; height: 600px; background: linear-gradient(180deg, rgba(12, 10, 8, 0.9) 0, rgba(12, 10, 8, 0.8) 60%, rgba(12, 10, 8, 0.7) 100%);
    -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 14%, #000 70%, transparent 100%); mask-image: linear-gradient(180deg, transparent 0, #000 14%, #000 70%, transparent 100%); }
  .cadets-facts { grid-template-columns: 1fr; }
  .cadets-route__list { grid-template-columns: 1fr; margin-top: 28px; }
  .cadets-route__stop { align-items: flex-start; text-align: left; padding: 0 0 28px 40px; min-height: 44px; }
  .cadets-route__stop::after { top: 3px; left: 0; margin-left: 0; }
  .cadets-route__stop.is-focus::after { top: -1px; margin-left: -4px; }
  .cadets-route__stop:not(:last-child)::before { top: 18px; left: 6px; bottom: -3px; width: 0; border-top: 0 !important; border-left: 2px solid var(--c-bronze); }
  .cadets-route__stop:nth-child(1)::before { border-left: 2px solid rgba(239, 230, 213, 0.5) !important; }
  .cadets-route__stop:nth-child(2)::before { border-left: 2px dashed rgba(239, 230, 213, 0.6) !important; }
  .cadets-route__via { position: static; width: auto; transform: none; text-align: left; font-size: 0.875rem; }
  .cadets-route__note { max-width: none; }
  .cadets-timeline { padding: 88px var(--pad-x) 120px; }
  .cadets-tl__list { grid-template-columns: 1fr; gap: 0; position: relative; }
  .cadets-tl__list::before { content: ""; position: absolute; left: 6px; top: 8px; bottom: 8px; width: 1px; background: rgba(239, 230, 213, 0.3); }
  .cadets-tl__item { padding: 0 0 30px 38px; }
  .cadets-tl__item::before { display: none; }
  .cadets-tl__item::after { top: 3px; }
  .cadets-gloss { grid-template-columns: 1fr; }
  .cadets-rubezh { padding: 112px var(--pad-x) 48px; }
  .cadets-rubezh__bg { bottom: auto; height: 620px; object-position: 72% 50%; }
  .cadets-rubezh__veil { background: linear-gradient(180deg, rgba(226, 214, 191, 0.9) 0, rgba(226, 214, 191, 0.86) 100%); }
  .cadets-people { padding-bottom: 120px; }
}

/* ───────────── режим для слабовидящих ───────────── */

/* картинка бумаги проявляется только ПОСЛЕ шва (его нижняя половина заходит в раздел), поэтому линии нет */
.cadets-rubezh__bg, .cadets-rubezh__veil {
  -webkit-mask-image: linear-gradient(180deg, transparent 0, transparent 120px, #000 360px, #000 calc(100% - 180px), transparent 100%);
  mask-image: linear-gradient(180deg, transparent 0, transparent 120px, #000 360px, #000 calc(100% - 180px), transparent 100%);
}
@media (max-width: 760px) {
  .cadets-fact__abbr, .cadets-route__note, .cadets-route__dir, .cadets-route__note-main { font-size: 1rem !important; }
  .cadets-route__via { font-size: 0.9375rem; }
}

/* Высота трека шеренги задаётся заранее (до запуска скрипта), поэтому тексты и фоны ниже сцены
   находятся далеко от экрана и браузер действительно откладывает их загрузку (loading="lazy").
   Скрипт затем выставляет точное значение; без скрипта класс не ставится и пустого трека нет. */
html.cadets-js body[data-mode="cinematic"] .cadets-track { height: calc(100vh * 5.05); height: calc(100svh * 5.05); }
@media (max-width: 820px), (max-height: 520px) {
  html.cadets-js body[data-mode="cinematic"] .cadets-track { height: calc(100vh * 4.6); height: calc(100svh * 4.6); }
}


/* ═══════════════ второй редакционный проход ═══════════════ */
.cadets-subbar { position: absolute; z-index: 30; top: calc(var(--sh-h, 64px) + 10px); right: var(--pad-x); display: flex; align-items: center; gap: 18px; }
.cadets-ui { padding-top: calc(var(--sh-h, 64px) + clamp(10px, 3vh, 36px)); }
@media (max-width: 820px), (max-height: 520px) {
  .cadets-ui { padding-top: calc(var(--sh-h, 64px) + 52px); }
  .cadets-subbar { top: calc(var(--sh-h, 64px) + 4px); right: 14px; left: 14px; justify-content: space-between; }
}
.cadets-h1 { font-family: var(--accent-display); font-weight: 500; letter-spacing: -.035em; }
.cadets-kicker { font-family: var(--accent-display); font-weight: 500; letter-spacing: .16em; text-transform: uppercase; }
.cadets-caption__index { font-family: var(--accent-display); font-weight: 500; }
.cadets-subtitle { font-family: var(--accent-hand); font-size: clamp(1.35rem, 2.2vw, 2.1rem); letter-spacing: 0; }

/* факты: у каждого свой ритм появления */
html.cadets-reveal-ready .cadets-fact[data-reveal]:nth-child(1) { transform: translateX(-18px); transition-duration: 0.7s; }
html.cadets-reveal-ready .cadets-fact[data-reveal]:nth-child(2) { transform: translateY(22px); transition-duration: 0.55s; transition-delay: 0.12s; }
html.cadets-reveal-ready .cadets-fact[data-reveal]:nth-child(3) { transform: translateY(14px); transition-duration: 0.8s; transition-delay: 0.05s; }
html.cadets-reveal-ready .cadets-fact[data-reveal]:nth-child(4) { transform: translateX(18px); transition-duration: 0.6s; transition-delay: 0.22s; }
html.cadets-reveal-ready .cadets-fact[data-reveal].is-visible { transform: none; }
.cadets-fact:nth-child(even) { margin-top: clamp(0px, 3vw, 34px); }

/* хронология: активная дата выделяется */
.cadets-tl__item { transition: opacity 0.35s ease; }
.cadets-tl__list.has-active .cadets-tl__item:not(.is-active) { opacity: 0.62; }
.cadets-tl__item.is-active .cadets-tl__date { color: #f6eedd; letter-spacing: 0.06em; }
.cadets-tl__item.is-active::after { background: var(--c-bronze); box-shadow: 0 0 0 5px rgba(201, 157, 102, 0.22); }
.cadets-tl__item.is-active::before { background: rgba(201, 157, 102, 0.7); }

/* словарь: на десктопе заголовок закреплён слева, термины прокручиваются справа */
.cadets-rubezh__bg { will-change: transform; }
.cadets-context__bg { will-change: transform; }

body[data-mode="list"] .cadets-ui { padding-top: calc(var(--sh-h, 64px) + 40px); }
body[data-mode="list"] .cadets-subbar { position: relative; top: auto; right: auto; left: auto; margin: calc(var(--sh-h, 64px) + 8px) var(--pad-x) 0; justify-content: flex-start; }
body[data-mode="list"] .cadets-ui { padding-top: 24px; }


/* ═══════════════ вторая шеренга: вырезанные силуэты школьников, озвучивших истории ═══════════════ */
.cadets-nar { position: absolute; left: 0; top: 0; will-change: transform, opacity; pointer-events: none; }
.cadets-nar__img { display: block; width: 100%; height: 100%; object-fit: contain; opacity: 0; transition: opacity 0.45s ease-out; -webkit-user-drag: none; user-select: none; }
.cadets-nar.is-ready .cadets-nar__img { opacity: 1; }
.cadets-nar__shadow { position: absolute; transform: translate(-50%, -50%); pointer-events: none; background: radial-gradient(ellipse at center, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0) 68%); }
.cadets-nar__voice {
  position: absolute; left: -20%; right: -20%; bottom: -26px; text-align: center; font: 600 0.62rem/1 var(--sans);
  letter-spacing: 0.22em; text-transform: uppercase; color: var(--c-muted); opacity: 0; transition: opacity 0.35s ease;
}
.cadets-nar.is-active .cadets-nar__voice { opacity: 0.8; }
/* Имя чтеца уже напечатано в подписи слева. Мелкая надпись у ног создавала шум и терялась в перспективе. */
.cadets-nar__voice { display: none; }
.cadets-caption__voice { margin: 8px 0 0 !important; font-size: 0.98rem; line-height: 1.4; color: var(--c-bronze); letter-spacing: 0.01em; }
.cadets-caption__voice[hidden] { display: none; }
.cadets-reader__voice { margin: 6px 0 0; font-size: 0.98rem; font-weight: 600; line-height: 1.4; color: var(--c-bronze-ink); }
.cadets-reader__empty { font-size: 1.05rem; line-height: 1.6; color: var(--c-ink-soft); }
.cadets-sources__nar { margin: 14px 0; max-width: 62ch; }
.cadets-sources__nar p { margin: 0 0 6px; }
.cadets-sources__photo summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; font-size: 0.98rem; text-decoration: underline; text-underline-offset: 3px; }
.cadets-sources__photo figure { display: flex; gap: 16px; align-items: flex-start; margin: 8px 0 0; }
.cadets-sources__photo img { flex: none; width: 96px; height: auto; border-radius: 2px; }
.cadets-sources__photo figcaption { font-size: 0.95rem; line-height: 1.5; color: var(--c-muted); }
@media (max-width: 820px), (max-height: 520px) {
  .cadets-nar__voice { font-size: 0.56rem; bottom: -20px; }
  .cadets-caption__voice { font-size: 0.95rem; max-width: 84%; }
}
@media (prefers-reduced-motion: reduce) { .cadets-nar__img, .cadets-nar__voice { transition: none; } }

/* спокойная заглушка, когда образ курсанта не предоставлен: нейтральный силуэт без лица */
.cadets-fig__silhouette { inset: 3% 8% 1% !important; border-radius: 0 !important; background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 300' preserveAspectRatio='xMidYMax meet'><g fill='%23efe6d5'><ellipse cx='47' cy='22' rx='12' ry='15'/><path d='M36 42h24l8 14 2 52-6 44H34l-6-44 2-52z'/><path d='M34 152h26l-3 118H46zM46 270h14l6 14H40z'/></g></svg>") center bottom / contain no-repeat !important; opacity: 0.2; }
@media (max-height: 860px) and (min-width: 821px) { .cadets-caption__voice { font-size: 0.92rem; margin-top: 4px !important; } }
@media (max-height: 640px) { .cadets-caption__voice { font-size: 0.85rem; margin-top: 2px !important; } }

/* невысокие окна: подпись чтеца не должна выдавливать навигацию; лист с текстом чуть компактнее */
@media (max-height: 960px) and (min-width: 821px) {
  .cadets-sheet__text { -webkit-line-clamp: 4; line-clamp: 4; }
  .cadets-sheet__draft { display: none; }
  .cadets-sheet { padding: 16px 22px 12px; }
}
@media (max-height: 800px) and (min-width: 821px) {
  .cadets-sheet__text { -webkit-line-clamp: 3; line-clamp: 3; }
  .cadets-caption { margin-top: 8px; }
}
@media (max-height: 600px) { .cadets-hint { display: none; } }
@media (max-height: 600px) {
  .cadets-caption__voice { font-size: 0.8rem; margin-top: 0 !important; line-height: 1.25; }
  .cadets-caption__name { font-size: clamp(1.15rem, 5.4vw, 1.4rem); }
  .cadets-caption { margin-top: 6px; }
}

/* ───────────── v14: телефон — подписи не заходят на фигуры ───────────── */
@media (max-width: 820px) and (orientation: portrait) {
  .cadets-h1 { font-size: clamp(26px, 7.4vw, 38px); }
  .cadets-subtitle { font-size: 13px; }
  .cadets-caption { margin-top: 10px; }
  .cadets-caption__name { max-width: 100%; font-size: clamp(20px, 5.6vw, 27px); }
  .cadets-caption__role { max-width: 100%; font-size: 14px; }
  .cadets-caption__voice { max-width: 100%; font-size: 0.8rem; line-height: 1.3; margin-top: 4px !important; }
  .cadets-art-slot { top: auto; bottom: calc(var(--art-bottom, 150px)); left: var(--pad-x); right: var(--pad-x); max-width: none; text-align: left; }
  .cadets-art { font-size: 12px; }
  .cadets-art::before { width: 14px; margin-right: 8px; }
}
@media (max-width: 820px) and (orientation: portrait) and (max-height: 760px) { .cadets-subtitle { display: none; } }

/* v14: самые узкие и низкие телефоны (320×568) — подписи не доходят до голов шеренги */
@media (max-width: 340px) and (max-height: 600px) {
  .cadets-h1 { font-size: 22px !important; line-height: 1.08 !important; }
  .cadets-caption__name { font-size: 19px !important; }
  .cadets-caption__role { font-size: 13px !important; line-height: 1.3 !important; }
  .cadets-caption__voice { font-size: 0.72rem !important; line-height: 1.25 !important; }
}

/* v15: короткое законченное превью без обрезания посреди предложения. */
.cadets-sheet__text { -webkit-line-clamp: unset; line-clamp: unset; overflow: visible; }


/* ═════════ R18: Princess Diana — точечные рукописные акценты ═════════ */
.cadets-h1__hand { font-family: var(--accent-hand); font-weight: 400; font-size: 1.28em; line-height: .9; letter-spacing: 0; color: var(--c-bronze); }
.cadets-reader__kind.is-letter { font-family: var(--accent-hand); font-size: 1.35em; letter-spacing: 0; text-transform: none; line-height: 1.2; }

/* ═════════ R22: словарь — разворот с карандашными зарисовками ═════════ */
.cadets-rubezh__head { max-width: 760px; }
.cadets-rubezh__lead { max-width: 58ch; }
.kd { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: clamp(20px, 3vw, 48px); row-gap: clamp(8px, 2vw, 24px); margin: clamp(28px, 4vw, 56px) 0 clamp(44px, 6vw, 88px); }
.kd-item { display: contents; }
.kd-fig { position: relative; margin: 0; }
.kd-fig img { display: block; width: 100%; height: auto; mix-blend-mode: multiply; pointer-events: none; user-select: none; }
.kd-text { align-self: center; max-width: 36ch; }
.kd-term { margin: 0; font-family: var(--accent-display); font-weight: 700; font-size: clamp(2rem, 3.4vw, 3.1rem); line-height: 1.02; letter-spacing: -.02em; color: var(--c-ink); }
.kd-short { margin: .7rem 0 0; font-family: var(--sans); font-weight: 600; font-size: 1.125rem; line-height: 1.4; color: #2c241b; }
.kd-long { margin: .6rem 0 0; font-size: 1.0625rem; line-height: 1.6; color: #3a3027; }
.kd-note { position: absolute; margin: 0; font-family: var(--accent-hand); font-size: clamp(1.7rem, 2.6vw, 2.4rem); line-height: 1; color: #8f3f26; transform: rotate(-4deg); white-space: nowrap; }
/* ДОТ: крупный рисунок слева, подпись справа и ниже */
.kd-item--dot .kd-fig { grid-column: 1 / span 7; grid-row: 1; }
.kd-item--dot .kd-text { grid-column: 8 / span 5; grid-row: 1; align-self: end; padding-bottom: 6%; }
.kd-item--dot .kd-note { right: 4%; top: 2%; }
/* ДЗОТ: текст слева, рисунок смещён вправо и чуть вверх */
.kd-item--dzot .kd-text { grid-column: 2 / span 4; grid-row: 2; align-self: start; padding-top: 14%; }
.kd-item--dzot .kd-fig { grid-column: 6 / span 7; grid-row: 2; margin-top: -4%; }
/* Траншея: самый широкий рисунок */
.kd-item--trench .kd-fig { grid-column: 1 / span 8; grid-row: 3; }
.kd-item--trench .kd-text { grid-column: 9 / span 4; grid-row: 3; align-self: center; }
/* Ход сообщения: рисунок правее, подпись слева внизу */
.kd-item--link .kd-text { grid-column: 1 / span 4; grid-row: 4; align-self: end; padding-bottom: 8%; }
.kd-item--link .kd-fig { grid-column: 5 / span 7; grid-row: 4; margin-top: -6%; }
.kd-item--link .kd-note { left: -2%; bottom: 6%; }
@media (max-width: 860px) {
  .kd { display: block; margin-top: 24px; }
  .kd-item { display: block; margin: 0 0 clamp(36px, 9vw, 56px); }
  .kd-item .kd-fig, .kd-item .kd-text { margin: 0; padding: 0; max-width: none; }
  .kd-item--dzot .kd-fig, .kd-item--link .kd-fig { margin-left: 6%; }
  .kd-item--dot .kd-fig, .kd-item--trench .kd-fig { margin-right: 4%; }
  .kd-text { margin-top: 4px !important; }
  .kd-term { font-size: clamp(1.9rem, 8vw, 2.4rem); }
  .kd-short, .kd-long { font-size: 1rem; }
  .kd-note { font-size: 1.6rem; }
  .kd-item--dot .kd-note { right: 2%; top: 0; }
  .kd-item--link .kd-note { left: 2%; bottom: 2%; }
}
/* остальные термины: спокойный текст на той же поверхности */
.cadets-gloss { max-width: 980px; margin-top: 0; padding-top: 12px; border-top: 1px solid rgba(29, 24, 18, .22); grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 clamp(28px, 5vw, 72px); }
.cadets-gloss__item { padding: 16px 0 18px; border-top: 0; }
.cadets-gloss dt { font-family: var(--accent-display); font-weight: 500; font-style: normal; font-size: 1.25rem; line-height: 1.25; margin: 0 0 4px; }
.cadets-gloss dd { font-size: 1.0625rem; line-height: 1.6; max-width: 52ch; }
@media (max-width: 760px) { .cadets-gloss { grid-template-columns: 1fr; } }


/* ═════════ R22: архив героев — крупные лица ═════════ */
.cadets-all__hand { margin: 0 0 -6px; font-family: var(--accent-hand); font-size: clamp(1.9rem, 3vw, 2.8rem); line-height: 1; color: var(--c-bronze); }
.cadets-all__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(28px, 3.4vw, 48px) clamp(20px, 2.6vw, 36px); margin: 0; padding: 0; list-style: none; max-width: 1280px; }
.cadets-all__item { position: relative; }
.cadets-all__link { display: block; position: relative; text-decoration: none; color: var(--c-ink); }
.cadets-all__tab { display: inline-block; margin-left: 18px; padding: 6px 16px 5px; background: #cdbb97; border-radius: 6px 6px 0 0; font-family: var(--accent-display); font-weight: 500; font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; color: #4a3520; }
.cadets-all__sheet { display: block; background: #e9dfc8; border-radius: 0 6px 6px 6px; overflow: hidden; border-top: 3px solid #a3482c; transition: transform .25s ease; }
.cadets-all__photo { position: relative; display: block; aspect-ratio: 4 / 4.4; overflow: hidden; background: linear-gradient(180deg, #d9cba9 0%, #c9b890 100%); }
.cadets-all__photo img { position: absolute; left: 50%; top: -1%; width: 168%; max-width: none; height: auto; transform: translateX(-50%); filter: sepia(.1) saturate(.95); }
.cadets-all__body { display: grid; gap: 4px; padding: 16px 20px 20px; }
.cadets-all__name { font-family: var(--accent-display); font-weight: 500; letter-spacing: -.015em; font-size: clamp(1.25rem, 1.7vw, 1.55rem); line-height: 1.18; color: var(--c-ink); text-wrap: balance; }
.cadets-all__role { font-size: 1rem; line-height: 1.45; color: #3a3027; }
.cadets-all__voice { font-size: .92rem; line-height: 1.4; color: #6b4a28; }
.cadets-all__go { margin-top: 10px; font-weight: 600; font-size: .98rem; color: #8f3f26; border-bottom: 1px solid transparent; justify-self: start; }
.cadets-all__link:hover .cadets-all__go, .cadets-all__link:focus-visible .cadets-all__go { border-bottom-color: currentColor; }
.cadets-all__link:hover .cadets-all__sheet, .cadets-all__link:focus-visible .cadets-all__sheet { transform: translateY(-3px); }
.cadets-all__item.is-active .cadets-all__tab { background: var(--c-bronze); color: #1d1812; }
@media (max-width: 1000px) { .cadets-all__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .cadets-all__list { grid-template-columns: 1fr; } .cadets-all__photo { aspect-ratio: 4 / 3.8; } .cadets-all__photo img { width: 150%; } }
@media (prefers-reduced-motion: reduce) { .cadets-all__sheet { transition: none; } .cadets-all__link:hover .cadets-all__sheet { transform: none; } }

.cadets-all__hand { margin: 0 0 4px; }
.cadets-all__item { display: flex; }
.cadets-all__link { flex: 1; display: flex; flex-direction: column; }
.cadets-all__tab { align-self: flex-start; }
.cadets-all__sheet { flex: 1; }

/* ═════════ R22: командиры — типографический разворот ═════════ */
.cadets-people__title { font-size: clamp(2rem, 4vw, 3.4rem); line-height: 1.05; letter-spacing: -.02em; }
.cadets-people__lead { max-width: 58ch; font-size: 1.125rem; }
.cadets-people__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 clamp(24px, 4vw, 64px); margin-top: clamp(32px, 5vw, 64px); align-items: start; }
.cadets-people__item { border-top: 2px solid #1d1812; padding-top: 18px; }
.cadets-people__item:nth-child(2) { margin-top: clamp(0px, 4vw, 56px); }
.cadets-people__item:nth-child(3) { margin-top: clamp(0px, 8vw, 112px); }
.cadets-people__name { margin: 0 0 12px; font-weight: 500; line-height: 1.05; }
.cadets-people__first { display: block; font-family: var(--sans); font-weight: 500; font-size: 1.05rem; color: #5a4d3e; letter-spacing: 0; margin-bottom: 4px; }
.cadets-people__sur { display: block; font-family: var(--accent-display); font-weight: 700; font-size: clamp(1.9rem, 3.2vw, 3rem); letter-spacing: -.02em; overflow-wrap: anywhere; hyphens: auto; color: var(--c-ink); }
.cadets-people__rank { font-weight: 600; color: #7a3d22; }
@media (max-width: 860px) { .cadets-people__list { grid-template-columns: 1fr; gap: 28px; } .cadets-people__item:nth-child(n) { margin-top: 0; } }
