/* ============================================
   МАОУ СОШ № 70 — СТИЛИ v2.0
   Единый стиль · Адаптив · Газетный заголовок
============================================ */

/* ═══════════════════════════════════════
   ПЕРЕМЕННЫЕ
═══════════════════════════════════════ */
:root {
    /* Цвета */
    --red:        #cc0000;
    --red-dark:   #990000;
    --red-light:  #e63333;
    --gold:       #c8a84b;
    --gold-light: #e8c86a;
    --gold-dark:  #a07030;

    --dark:       #0d1117;
    --dark-2:     #111820;
    --dark-3:     #1a2332;
    --blue:       #0d1f3c;
    --blue-mid:   #1a3a6b;
    --blue-light: #2a5298;

    --cream:      #f4ede0;
    --cream-2:    #ece5d5;
    --cream-3:    #e4dcc8;

    --white:      #ffffff;

    /* Текст — единая система */
    --t-dark:     #1c1c1c;   /* заголовки на светлом */
    --t-body:     #3a3530;   /* основной текст на светлом */
    --t-muted:    #7a7060;   /* второстепенный на светлом */
    --t-light:    rgba(255,255,255,0.90); /* основной на тёмном */
    --t-light-2:  rgba(255,255,255,0.65); /* второстепенный на тёмном */
    --t-light-3:  rgba(255,255,255,0.38); /* совсем тихий на тёмном */

    /* Границы */
    --border-g:   rgba(200,168,75,0.28);
    --border-w:   rgba(255,255,255,0.07);
    --border-d:   rgba(0,0,0,0.10);

    /* Шрифты */
    --ff-serif:   'Playfair Display', Georgia, 'Times New Roman', serif;
    --ff-sans:    'Roboto', 'Helvetica Neue', Arial, sans-serif;
    --ff-title:   'Oswald', 'Arial Narrow', Arial, sans-serif;

    /* Типографика — единая шкала */
    --fs-xs:   11px;
    --fs-sm:   13px;
    --fs-base: 15px;
    --fs-md:   17px;
    --fs-lg:   20px;
    --fs-xl:   24px;
    --fs-2xl:  30px;
    --fs-3xl:  38px;
    --fs-4xl:  48px;

    /* Прочее */
    --radius:    8px;
    --radius-lg: 16px;
    --tr:        0.3s ease;
    --shadow:    0 4px 24px rgba(0,0,0,0.18);
    --shadow-g:  0 8px 32px rgba(200,168,75,0.22);
    --shadow-r:  0 8px 32px rgba(204,0,0,0.25);

    /* Секции */
    --section-pad: 96px;
}

/* ═══════════════════════════════════════
   RESET
═══════════════════════════════════════ */
*, *::before, *::after {
    margin: 0; padding: 0;
    box-sizing: border-box;
}
html { scroll-behavior: smooth; font-size: 16px; }
body {
    font-family: var(--ff-sans);
    font-size: var(--fs-base);
    line-height: 1.65;
    background: var(--dark);
    color: var(--t-light);
    overflow-x: hidden;
}
a    { text-decoration: none; color: inherit; transition: color var(--tr); }
img  { max-width: 100%; height: auto; display: block; }
ul   { list-style: none; }

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

/* ═══════════════════════════════════════
   SCROLLBAR
═══════════════════════════════════════ */
::-webkit-scrollbar       { width: 6px; }
::-webkit-scrollbar-track { background: var(--dark); }
::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, var(--red), var(--gold));
    border-radius: 3px;
}

/* ═══════════════════════════════════════
   PRELOADER
═══════════════════════════════════════ */
#preloader {
    position: fixed; inset: 0; z-index: 9999;
    background: linear-gradient(135deg, var(--dark) 0%, var(--blue) 100%);
    display: flex; align-items: center; justify-content: center;
    transition: opacity 0.7s ease, visibility 0.7s ease;
}
#preloader.hidden { opacity: 0; visibility: hidden; pointer-events: none; }

.preloader-inner { text-align: center; }
.preloader-plane {
    font-size: 60px; color: var(--gold);
    display: block; margin-bottom: 20px;
    animation: pl-fly 1.8s ease-in-out infinite;
}
@keyframes pl-fly {
    0%,100% { transform: translateX(-14px) rotate(-5deg); }
    50%     { transform: translateX(14px)  rotate(5deg); }
}
.preloader-title {
    font-family: var(--ff-title);
    font-size: 26px; letter-spacing: 5px;
    color: var(--gold); text-transform: uppercase;
    margin-bottom: 6px;
}
.preloader-subtitle {
    font-size: var(--fs-xs); letter-spacing: 4px;
    color: var(--t-light-3); text-transform: uppercase;
    margin-bottom: 28px;
}
.preloader-bar {
    width: 260px; height: 3px;
    background: rgba(255,255,255,0.07);
    border-radius: 2px; overflow: hidden; margin: 0 auto;
}
.preloader-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--red), var(--gold));
    animation: pl-fill 2.2s ease forwards;
}
@keyframes pl-fill { from { width: 0; } to { width: 100%; } }

/* ═══════════════════════════════════════
   NAVBAR
═══════════════════════════════════════ */
#navbar {
    position: fixed; inset: 0 0 auto 0;
    z-index: 1000; padding: 14px 0;
    transition: background var(--tr), padding var(--tr), box-shadow var(--tr);
}
#navbar.scrolled {
    background: rgba(10,14,20,0.97);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    padding: 9px 0;
    box-shadow: 0 2px 20px rgba(0,0,0,0.5);
    border-bottom: 1px solid var(--border-g);
}
.nav-container {
    max-width: 1300px; margin: 0 auto; padding: 0 20px;
    display: flex; align-items: center;
    justify-content: space-between; gap: 16px;
}
.nav-logo {
    display: flex; align-items: center; gap: 10px; flex-shrink: 0;
}
.nav-logo-star {
    font-size: 24px; color: var(--red);
    text-shadow: 0 0 10px rgba(204,0,0,0.5);
    animation: star-pulse 2.5s ease-in-out infinite;
}
@keyframes star-pulse {
    0%,100% { transform: scale(1); }
    50%     { transform: scale(1.12); }
}
.nav-logo-text { display: flex; flex-direction: column; line-height: 1.2; }
.nav-logo-title {
    font-family: var(--ff-title);
    font-size: 16px; font-weight: 600;
    letter-spacing: 2px; color: var(--gold);
}
.nav-logo-sub {
    font-size: 10px; letter-spacing: 2px;
    color: var(--t-light-3); text-transform: uppercase;
}
.nav-menu {
    display: flex; gap: 0; flex-wrap: nowrap;
}
.nav-link {
    font-family: var(--ff-title);
    font-size: 11px; letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--t-light-2);
    padding: 6px 9px; border-radius: 4px;
    position: relative; white-space: nowrap;
    transition: color var(--tr);
}
.nav-link::after {
    content: ''; position: absolute;
    bottom: 1px; left: 50%;
    transform: translateX(-50%);
    width: 0; height: 2px;
    background: var(--gold); border-radius: 1px;
    transition: width var(--tr);
}
.nav-link:hover,
.nav-link.active         { color: var(--gold); }
.nav-link:hover::after,
.nav-link.active::after  { width: 60%; }

.nav-burger {
    display: none; flex-direction: column;
    gap: 5px; padding: 5px; flex-shrink: 0;
    cursor: pointer; background: none; border: none;
}
.nav-burger span {
    display: block; width: 23px; height: 2px;
    background: var(--gold); border-radius: 1px;
    transition: all var(--tr);
}
.nav-burger.open span:nth-child(1) { transform: rotate(45deg) translate(5px,5px); }
.nav-burger.open span:nth-child(2) { opacity: 0; }
.nav-burger.open span:nth-child(3) { transform: rotate(-45deg) translate(5px,-5px); }

/* ═══════════════════════════════════════
   КНОПКИ
═══════════════════════════════════════ */
.btn {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 12px 28px;
    font-family: var(--ff-title);
    font-size: var(--fs-xs); letter-spacing: 2px;
    text-transform: uppercase; font-weight: 500;
    border-radius: var(--radius);
    border: 2px solid transparent;
    cursor: pointer; transition: all var(--tr);
    white-space: nowrap;
}
.btn-red {
    background: linear-gradient(135deg, var(--red), var(--red-dark));
    color: var(--white); border-color: var(--red);
    box-shadow: var(--shadow-r);
}
.btn-red:hover {
    background: linear-gradient(135deg, var(--red-light), var(--red));
    transform: translateY(-2px);
    box-shadow: 0 10px 28px rgba(204,0,0,0.45);
    color: var(--white);
}
.btn-ghost {
    background: transparent;
    color: var(--gold); border-color: var(--gold);
}
.btn-ghost:hover {
    background: var(--gold); color: var(--dark);
    transform: translateY(-2px);
}
.btn-outline-dark {
    background: transparent;
    color: var(--red); border-color: var(--red);
    padding: 10px 24px; font-size: var(--fs-xs);
}
.btn-outline-dark:hover {
    background: var(--red); color: var(--white);
    transform: translateY(-2px);
}
.btn-ghost-dark {
    background: transparent;
    color: var(--t-body); border-color: var(--border-d);
    padding: 12px 24px;
}
.btn-ghost-dark:hover {
    border-color: var(--red); color: var(--red);
    transform: translateY(-2px);
}

/* ═══════════════════════════════════════
   СЕКЦИИ — СИСТЕМА
═══════════════════════════════════════ */

/* Тёмные секции */
.section-dark {
    position: relative;
    padding: var(--section-pad) 0;
    background: linear-gradient(160deg, var(--dark) 0%, var(--dark-2) 50%, var(--blue) 100%);
    overflow: hidden;
}

/* Диагональные полоски на тёмных секциях */
.section-dark::before {
    content: '';
    position: absolute; inset: 0;
    background-image: repeating-linear-gradient(
        -45deg,
        transparent,
        transparent 30px,
        rgba(255,255,255,0.012) 30px,
        rgba(255,255,255,0.012) 60px
    );
    pointer-events: none; z-index: 0;
}
.section-dark .container { position: relative; z-index: 1; }

/* Светлые секции */
.section-light {
    position: relative;
    padding: var(--section-pad) 0;
    background: var(--cream);
    overflow: hidden;
}
/* Лёгкий узор на светлых */
.section-light::before {
    content: '';
    position: absolute; inset: 0;
    background-image: repeating-linear-gradient(
        -45deg,
        transparent,
        transparent 40px,
        rgba(0,0,0,0.012) 40px,
        rgba(0,0,0,0.012) 80px
    );
    pointer-events: none; z-index: 0;
}
.section-light .container { position: relative; z-index: 1; }

/* Источники */
.section-sources {
    position: relative;
    padding: 72px 0;
    background: var(--cream-2);
    overflow: hidden;
}
.section-sources::before {
    content: '';
    position: absolute; inset: 0;
    background-image: repeating-linear-gradient(
        90deg,
        transparent 0px,
        transparent 49px,
        rgba(0,0,0,0.015) 50px
    ),
    repeating-linear-gradient(
        0deg,
        transparent 0px,
        transparent 49px,
        rgba(0,0,0,0.015) 50px
    );
    pointer-events: none; z-index: 0;
}
.section-sources .container { position: relative; z-index: 1; }

/* ═══════════════════════════════════════
   ШКОЛА — PARALLAX BG
═══════════════════════════════════════ */
#school {
    background:
        linear-gradient(
            135deg,
            rgba(244,237,224,0.91) 0%,
            rgba(236,229,213,0.87) 100%
        ),
        url('img/sch.png') center center / cover fixed;
}
/* Убираем общий ::before у .section-light для #school,
   добавляем свой радиальный */
#school::before {
    background:
        radial-gradient(ellipse at 15% 55%, rgba(204,0,0,0.04) 0%, transparent 55%),
        radial-gradient(ellipse at 85% 20%, rgba(200,168,75,0.04) 0%, transparent 50%);
}

/* iOS / мобильные — fixed не работает */
@supports (-webkit-touch-callout: none) {
    #school { background-attachment: scroll; }
}
@media (max-width: 768px) {
    #school {
        background-attachment: scroll;
        background:
            linear-gradient(135deg, rgba(244,237,224,0.94) 0%, rgba(236,229,213,0.91) 100%),
            url('assets/school-bg.jpg') center center / cover no-repeat;
    }
}

/* ═══════════════════════════════════════
   ЗАГОЛОВКИ СЕКЦИЙ — ЕДИНЫЙ СТИЛЬ
   «Газетный» serif + единый размер
═══════════════════════════════════════ */
.section-head { text-align: center; margin-bottom: 56px; }

.section-tag {
    display: inline-block;
    font-family: var(--ff-title);
    font-size: var(--fs-xs); letter-spacing: 5px;
    text-transform: uppercase;
    color: var(--red);
    border: 1px solid rgba(204,0,0,0.3);
    padding: 4px 16px; border-radius: 2px;
    margin-bottom: 12px;
}
.section-head.light .section-tag {
    color: var(--gold); border-color: var(--border-g);
}

/* Главный заголовок — газетный шрифт */
.section-title {
    font-family: var(--ff-serif);
    font-size: clamp(28px, 4vw, var(--fs-4xl));
    font-weight: 700;
    line-height: 1.18;
    color: var(--t-dark);          /* на светлом */
    letter-spacing: -0.5px;
    margin-bottom: 12px;
}
.section-head.light .section-title { color: var(--white); } /* на тёмном */

/* Декоративная линия */
.section-rule {
    display: flex; align-items: center;
    justify-content: center; gap: 12px;
    margin: 12px 0;
}
.section-rule::before,
.section-rule::after {
    content: ''; display: block;
    width: 52px; height: 1px;
    background: var(--gold);
}
.section-rule span { color: var(--gold); font-size: 16px; }

/* Подзаголовок секции */
.section-sub {
    font-family: var(--ff-sans);
    font-size: var(--fs-base);
    color: var(--t-muted);
    line-height: 1.7;
    max-width: 580px; margin: 0 auto;
}
.section-head.light .section-sub { color: var(--t-light-2); }

/* ═══════════════════════════════════════
   REVEAL АНИМАЦИЯ
═══════════════════════════════════════ */
[data-reveal] {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.55s ease, transform 0.55s ease;
}
[data-reveal].revealed { opacity: 1; transform: translateY(0); }

/* ═══════════════════════════════════════
   HERO
═══════════════════════════════════════ */
.hero-section {
    min-height: 100vh;
    position: relative;
    display: flex; align-items: center; justify-content: center;
    background: linear-gradient(160deg,
        #060c18 0%, #0d1f3c 35%, #180808 68%, #060c18 100%);
    overflow: hidden;
    padding: 100px 20px 80px;
}
/* Полоски поверх */
.hero-section::after {
    content: '';
    position: absolute; inset: 0;
    background-image: repeating-linear-gradient(
        -45deg,
        transparent, transparent 30px,
        rgba(255,255,255,0.008) 30px,
        rgba(255,255,255,0.008) 60px
    );
    pointer-events: none; z-index: 1;
}

.hero-overlay {
    position: absolute; inset: 0;
    background:
        radial-gradient(ellipse at 15% 50%, rgba(204,0,0,0.07) 0%, transparent 55%),
        radial-gradient(ellipse at 85% 25%, rgba(200,168,75,0.06) 0%, transparent 50%),
        radial-gradient(ellipse at 50% 90%, rgba(26,58,107,0.10) 0%, transparent 55%);
    pointer-events: none;
}

.hero-particles { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.hp { position: absolute; color: rgba(200,168,75,0.10); animation: hp-float linear infinite; }
.hp-1 { top: 10%; font-size: 14px; animation-duration: 18s; }
.hp-2 { top: 33%; font-size: 24px; animation-duration: 24s; animation-delay: -6s; color: rgba(200,168,75,0.07); }
.hp-3 { top: 60%; font-size: 12px; animation-duration: 14s; animation-delay: -3s; }
.hp-4 { top: 78%; font-size: 20px; animation-duration: 20s; animation-delay: -9s; color: rgba(200,168,75,0.08); }
.hp-5 { top: 46%; font-size: 10px; animation-duration: 16s; animation-delay: -5s; }
@keyframes hp-float {
    from { left: -60px; opacity: 0; }
    8%   { opacity: 1; }
    92%  { opacity: 1; }
    to   { left: 110%; opacity: 0; }
}

.hero-content {
    position: relative; z-index: 2;
    text-align: center; max-width: 920px; width: 100%;
}
.hero-eyebrow {
    font-family: var(--ff-title);
    font-size: var(--fs-xs); letter-spacing: 4px;
    color: var(--t-light-3); text-transform: uppercase;
    margin-bottom: 18px;
}
.hero-school {
    display: flex; flex-direction: column; align-items: center;
    margin-bottom: 22px;
}
.hero-school-num {
    font-family: var(--ff-title);
    font-size: clamp(52px, 10vw, 100px);
    font-weight: 700; letter-spacing: 8px;
    color: var(--gold);
    text-shadow: 0 2px 28px rgba(200,168,75,0.32);
    line-height: 1;
}
.hero-school-city {
    font-family: var(--ff-sans); font-weight: 300;
    font-size: clamp(12px, 1.6vw, 16px);
    letter-spacing: 6px; text-transform: uppercase;
    color: var(--t-light-3); margin-top: 6px;
}

.hero-divider {
    display: flex; align-items: center;
    justify-content: center; gap: 16px; margin: 20px 0;
}
.hd-line {
    display: block; width: 72px; height: 1px;
    background: linear-gradient(90deg, transparent, var(--gold), transparent);
}
.hd-star {
    color: var(--red); font-size: 16px;
    text-shadow: 0 0 14px rgba(204,0,0,0.6);
    animation: hero-star 3s ease-in-out infinite;
}
@keyframes hero-star {
    0%,100% { text-shadow: 0 0 14px rgba(204,0,0,0.6); transform: scale(1); }
    50%     { text-shadow: 0 0 28px rgba(204,0,0,1);   transform: scale(1.08); }
}

.hero-named-wrap { margin-bottom: 18px; }
.hero-named {
    font-family: var(--ff-serif); font-style: italic; font-weight: 400;
    font-size: clamp(14px, 1.8vw, 19px);
    color: var(--t-light-2); margin-bottom: 8px;
}
.hero-name {
    font-family: var(--ff-serif); font-weight: 700;
    font-size: clamp(20px, 3.2vw, 38px);
    color: var(--white); line-height: 1.25;
    text-shadow: 0 2px 12px rgba(0,0,0,0.5);
}

.hero-meta {
    display: flex; align-items: center;
    justify-content: center; flex-wrap: wrap;
    gap: 8px; margin-bottom: 32px;
    font-size: var(--fs-xs); letter-spacing: 2px;
    text-transform: uppercase; color: var(--t-light-3);
}
.hm-sep { color: var(--gold); opacity: 0.4; }

.hero-stats {
    display: flex; align-items: stretch;
    justify-content: center; max-width: 460px;
    margin: 0 auto 40px;
    background: rgba(255,255,255,0.04);
    border: 1px solid var(--border-g);
    border-radius: var(--radius);
    backdrop-filter: blur(6px);
    overflow: hidden;
}
.hs-item {
    flex: 1; padding: 18px 12px;
    display: flex; flex-direction: column;
    align-items: center; gap: 4px;
}
.hs-item + .hs-item { border-left: 1px solid var(--border-g); }
.hs-num {
    font-family: var(--ff-title);
    font-size: 26px; font-weight: 700;
    color: var(--gold); line-height: 1;
}
.hs-label {
    font-size: 10px; letter-spacing: 1px;
    text-transform: uppercase; color: var(--t-light-3);
}
.hs-sep { display: none; }

.hero-actions { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }

.hero-scroll-hint {
    position: absolute; bottom: 24px; left: 50%;
    transform: translateX(-50%);
    display: flex; flex-direction: column; align-items: center; gap: 7px;
    color: var(--t-light-3);
    font-size: 10px; letter-spacing: 3px; text-transform: uppercase;
    z-index: 2;
}
.hero-scroll-hint i {
    color: var(--gold); font-size: 15px;
    animation: bounce-down 2s ease-in-out infinite;
}
@keyframes bounce-down {
    0%,100% { transform: translateY(0); }
    50%     { transform: translateY(8px); }
}

/* ═══════════════════════════════════════
   TICKER
═══════════════════════════════════════ */
.ticker-wrap {
    background: linear-gradient(90deg, var(--red-dark), var(--red), var(--red-dark));
    padding: 11px 0; overflow: hidden;
    border-top:    1px solid rgba(255,255,255,0.12);
    border-bottom: 1px solid rgba(255,255,255,0.12);
}
.ticker-track {
    display: flex; gap: 52px;
    animation: ticker-run 40s linear infinite;
    white-space: nowrap;
}
.ticker-track span {
    font-family: var(--ff-title);
    font-size: 12px; letter-spacing: 3px;
    text-transform: uppercase;
    color: rgba(255,255,255,0.88);
    flex-shrink: 0;
}
@keyframes ticker-run {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}

/* ═══════════════════════════════════════
   О ШКОЛЕ
═══════════════════════════════════════ */
.school-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px; margin-bottom: 64px;
}
.school-feat-card {
    background: rgba(255,255,255,0.82);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(255,255,255,0.55);
    border-top: 4px solid var(--red);
    border-radius: var(--radius-lg);
    padding: 32px 20px; text-align: center;
    box-shadow: 0 4px 20px rgba(0,0,0,0.08);
    transition: all var(--tr);
    position: relative; overflow: hidden;
}
.school-feat-card::after {
    content: ''; position: absolute;
    bottom: 0; left: 0; right: 0; height: 3px;
    background: linear-gradient(90deg, var(--red), var(--gold));
    transform: scaleX(0); transform-origin: left;
    transition: transform 0.4s ease;
}
.school-feat-card:hover::after { transform: scaleX(1); }
.school-feat-card:hover {
    transform: translateY(-7px);
    box-shadow: 0 14px 40px rgba(0,0,0,0.13);
    background: rgba(255,255,255,0.96);
}
.sfc-icon { font-size: 40px; margin-bottom: 10px; }
.sfc-num {
    font-family: var(--ff-title);
    font-size: 38px; font-weight: 700;
    color: var(--red); line-height: 1;
    margin-bottom: 4px;
}
.sfc-label {
    font-size: var(--fs-xs); letter-spacing: 2px;
    text-transform: uppercase; color: var(--t-muted);
    margin-bottom: 12px;
}
.school-feat-card p {
    font-size: var(--fs-sm); color: var(--t-body); line-height: 1.6;
}

/* О школе — информационный блок */
.school-about {
    display: grid;
    grid-template-columns: 1fr 340px;
    gap: 56px; align-items: center;
    background: rgba(255,255,255,0.78);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border: 1px solid rgba(255,255,255,0.5);
    border-radius: var(--radius-lg);
    padding: 48px; box-shadow: var(--shadow);
}
.school-about-text h3 {
    font-family: var(--ff-serif);
    font-size: var(--fs-2xl); font-weight: 700;
    color: var(--t-dark); margin-bottom: 16px;
    letter-spacing: -0.3px;
}
.school-about-text p {
    font-size: var(--fs-base); color: var(--t-body);
    line-height: 1.8; margin-bottom: 14px;
}
.school-about-text p strong { color: var(--red-dark); }
.school-about-text .btn { margin-top: 8px; }

.school-about-visual {
    display: flex; flex-direction: column;
    align-items: center; gap: 20px;
}
.school-emblem {
    position: relative;
    width: 200px; height: 200px;
    display: flex; align-items: center; justify-content: center;
}
.se-outer {
    width: 168px; height: 168px; border-radius: 50%;
    background: linear-gradient(135deg, var(--blue), var(--blue-mid));
    display: flex; align-items: center; justify-content: center;
    border: 3px solid var(--gold); position: relative; z-index: 2;
    box-shadow: 0 0 0 6px rgba(200,168,75,0.15), var(--shadow-g);
}
.se-inner { text-align: center; }
.se-star { font-size: 34px; color: var(--gold); line-height: 1; margin-bottom: 2px; }
.se-num  {
    font-family: var(--ff-title); font-size: 48px;
    font-weight: 700; color: var(--white); line-height: 1;
}
.se-text {
    font-family: var(--ff-title); font-size: 13px;
    letter-spacing: 4px; color: var(--gold); text-transform: uppercase;
}
.se-ring {
    position: absolute; border-radius: 50%;
    border: 1px solid var(--border-g);
    animation: ring-spin linear infinite;
}
.se-ring-1 { width: 188px; height: 188px; animation-duration: 12s; }
.se-ring-2 { width: 200px; height: 200px; animation-duration: 20s; animation-direction: reverse; }
@keyframes ring-spin { to { transform: rotate(360deg); } }

.school-address-card {
    display: flex; align-items: center; gap: 12px;
    background: rgba(255,255,255,0.88);
    border: 1px solid rgba(200,168,75,0.2);
    border-radius: var(--radius);
    padding: 12px 16px; width: 100%;
    box-shadow: 0 2px 10px rgba(0,0,0,0.07);
}
.school-address-card i { color: var(--red); font-size: 18px; flex-shrink: 0; }
.school-address-card strong { display: block; font-size: var(--fs-sm); color: var(--t-dark); }
.school-address-card span  { font-size: 12px; color: var(--t-muted); }

/* ═══════════════════════════════════════
   ИСТОРИЯ
═══════════════════════════════════════ */
/* Тёмный фон + горизонтальная сетка */
#history {
    background: linear-gradient(160deg,
        #050a14 0%, #0d1f3c 50%, #080f1e 100%);
}
#history::before {
    background-image:
        repeating-linear-gradient(
            90deg,
            transparent 0px, transparent 49px,
            rgba(255,255,255,0.018) 50px
        ),
        repeating-linear-gradient(
            0deg,
            transparent 0px, transparent 49px,
            rgba(255,255,255,0.018) 50px
        );
}

.timeline { position: relative; max-width: 840px; margin: 0 auto; }
.timeline::before {
    content: ''; position: absolute;
    left: 50%; top: 0; bottom: 0; width: 2px;
    background: linear-gradient(180deg,
        transparent, var(--gold) 8%, var(--gold) 92%, transparent);
    transform: translateX(-50%);
}

.tl-item {
    display: flex; margin-bottom: 52px; position: relative;
}
.tl-left  { justify-content: flex-end;  padding-right: calc(50% + 48px); }
.tl-right { justify-content: flex-start; padding-left:  calc(50% + 48px); }

.tl-dot {
    position: absolute; left: 50%; top: 0;
    transform: translateX(-50%);
    width: 70px; height: 70px; border-radius: 50%;
    background: linear-gradient(135deg, var(--red), var(--red-dark));
    border: 3px solid var(--gold);
    display: flex; align-items: center; justify-content: center;
    z-index: 2; box-shadow: var(--shadow-r);
}
.tl-dot span {
    font-family: var(--ff-title);
    font-size: 12px; font-weight: 700;
    color: var(--white); letter-spacing: 0.5px; text-align: center;
}

.tl-card {
    background: rgba(255,255,255,0.04);
    border: 1px solid var(--border-g);
    border-radius: var(--radius-lg);
    padding: 26px; max-width: 320px;
    backdrop-filter: blur(4px);
    transition: all var(--tr);
}
.tl-card:hover {
    background: rgba(255,255,255,0.07);
    border-color: rgba(200,168,75,0.55);
    transform: translateY(-3px);
}
.tl-card-gold {
    border-color: var(--gold);
    background: rgba(200,168,75,0.055);
}
.tl-year {
    font-family: var(--ff-title); font-size: var(--fs-xs);
    letter-spacing: 3px; color: var(--gold);
    text-transform: uppercase; margin-bottom: 7px;
}
.tl-card h3 {
    font-family: var(--ff-serif);
    font-size: var(--fs-lg); font-weight: 700;
    color: var(--white); margin-bottom: 8px;
    letter-spacing: -0.2px;
}
.tl-card p {
    font-size: var(--fs-sm); color: var(--t-light-2); line-height: 1.7;
}

/* ═══════════════════════════════════════
   ГЕРОЙ
═══════════════════════════════════════ */
.pilot-layout {
    display: grid;
    grid-template-columns: 340px 1fr;
    gap: 56px; align-items: start;
}

.pilot-photo-wrap {
    position: relative;
    background: linear-gradient(135deg, var(--blue), var(--blue-mid));
    border: 3px solid var(--gold);
    border-radius: var(--radius);
    overflow: hidden; margin-bottom: 20px;
    box-shadow: var(--shadow-g);
}
.pilot-photo {
    width: 100%; height: 400px; object-fit: cover; display: block;
}
.pilot-photo-fb {
    width: 100%; height: 400px;
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    gap: 10px;
    background: linear-gradient(135deg, var(--blue), var(--blue-mid));
}
.pilot-photo-fb span { font-size: 64px; color: var(--gold); opacity: 0.45; }
.pilot-photo-fb p { font-family: var(--ff-serif); font-size: var(--fs-lg); color: var(--white); text-align: center; line-height: 1.4; }
.pilot-photo-fb small { color: var(--gold); font-size: var(--fs-sm); letter-spacing: 3px; }

.pilot-photo-badge {
    position: absolute; bottom: 0; left: 0; right: 0;
    background: linear-gradient(0deg, rgba(0,0,0,0.82), transparent);
    padding: 18px 14px 12px;
    display: flex; align-items: center; gap: 8px;
}
.ppb-star { font-size: 22px; color: var(--gold); }
.ppb-text { font-family: var(--ff-title); font-size: var(--fs-sm); letter-spacing: 2px; color: var(--white); flex: 1; }
.ppb-num  { font-family: var(--ff-title); font-size: 12px; color: var(--gold); letter-spacing: 2px; }

.pilot-stats-grid {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 10px; margin-bottom: 14px;
}
.psg-item {
    background: linear-gradient(135deg, var(--blue), var(--blue-mid));
    padding: 16px 10px; border-radius: var(--radius);
    text-align: center; border-left: 3px solid var(--red);
}
.psg-num {
    display: block; font-family: var(--ff-title);
    font-size: 28px; font-weight: 700;
    color: var(--gold); line-height: 1; margin-bottom: 4px;
}
.psg-label {
    font-size: 10px; letter-spacing: 1.5px;
    text-transform: uppercase; color: var(--t-light-2);
}

.pilot-honors { display: flex; flex-direction: column; gap: 7px; }
.ph-item {
    display: flex; align-items: center; gap: 9px;
    font-size: var(--fs-sm); color: var(--t-light-2);
    background: rgba(200,168,75,0.07);
    border: 1px solid var(--border-g);
    border-radius: var(--radius); padding: 9px 12px;
}
.ph-item i { color: var(--gold); font-size: 14px; flex-shrink: 0; }

/* Правая колонка */
.pilot-quote {
    background: linear-gradient(135deg, var(--blue), var(--dark-3));
    border-left: 4px solid var(--gold);
    border-radius: 0 var(--radius) var(--radius) 0;
    padding: 22px 26px; margin-bottom: 24px;
    font-family: var(--ff-serif);
    font-size: var(--fs-md); font-style: italic;
    color: var(--t-light-2); line-height: 1.8;
}

.bio-list { display: flex; flex-direction: column; gap: 12px; }
.bio-item {
    display: flex; gap: 12px;
    background: var(--white);
    border-radius: var(--radius);
    padding: 16px 18px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.06);
    border-left: 4px solid var(--gold);
    transition: all var(--tr);
}
.bio-item:hover {
    transform: translateX(4px);
    border-left-color: var(--red);
    box-shadow: 0 4px 18px rgba(0,0,0,0.09);
}
.bio-item-gold { border-left-color: var(--gold); background: #fffcf4; }
.bio-item-icon { font-size: 20px; flex-shrink: 0; margin-top: 2px; width: 26px; text-align: center; }
.bio-item-body strong {
    display: block;
    font-family: var(--ff-title);
    font-size: var(--fs-xs); letter-spacing: 2px;
    text-transform: uppercase; color: var(--red-dark);
    margin-bottom: 5px;
}
.bio-item-body p {
    font-size: var(--fs-sm); color: var(--t-body); line-height: 1.7;
}
/* inline strong/em внутри p */
.bio-item-body p strong {
    font-family: var(--ff-sans); font-size: inherit;
    letter-spacing: 0; text-transform: none;
    color: var(--t-dark); display: inline; margin: 0;
    font-weight: 600;
}
.bio-item-body p em { font-style: italic; color: var(--t-body); }

/* ═══════════════════════════════════════
   БОЕВОЙ ПУТЬ
═══════════════════════════════════════ */
.battles-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px; margin-bottom: 52px;
}
.bc-card {
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(200,168,75,0.17);
    border-radius: var(--radius-lg);
    padding: 28px 22px; position: relative;
    overflow: hidden; transition: all var(--tr);
}
.bc-card::before {
    content: ''; position: absolute;
    top: 0; left: 0; right: 0; height: 3px;
    background: linear-gradient(90deg, var(--red), var(--gold));
    transform: scaleX(0); transform-origin: left;
    transition: transform 0.4s ease;
}
.bc-card:hover::before { transform: scaleX(1); }
.bc-card:hover {
    background: rgba(255,255,255,0.056);
    border-color: rgba(200,168,75,0.42);
    transform: translateY(-4px);
}
.bc-featured { background: rgba(204,0,0,0.055); border-color: rgba(204,0,0,0.28); }
.bc-featured::before { transform: scaleX(1); }
.bc-gold     { background: rgba(200,168,75,0.055); border-color: rgba(200,168,75,0.38); }
.bc-gold::before { background: linear-gradient(90deg, var(--gold), var(--gold-light)); transform: scaleX(1); }
.bc-victory  { background: rgba(204,0,0,0.09); border-color: var(--gold); }
.bc-victory::before { transform: scaleX(1); }

.bc-year {
    font-family: var(--ff-title); font-size: var(--fs-xs);
    letter-spacing: 3px; color: var(--gold);
    text-transform: uppercase; margin-bottom: 7px;
}
.bc-icon { font-size: 30px; margin-bottom: 10px; display: block; }
.bc-card h3 {
    font-family: var(--ff-serif);
    font-size: var(--fs-md); font-weight: 700;
    color: var(--white); margin-bottom: 10px; line-height: 1.3;
}
.bc-card p {
    font-size: var(--fs-sm); color: var(--t-light-2); line-height: 1.7; margin-bottom: 12px;
}
.bc-card p strong { color: var(--gold); }
.bc-tag {
    display: inline-block; font-size: 10px;
    letter-spacing: 1px; text-transform: uppercase;
    background: rgba(200,168,75,0.11);
    border: 1px solid rgba(200,168,75,0.24);
    color: var(--gold); padding: 3px 9px; border-radius: 3px;
}

/* ── Карта маршрута ── */
.route-map {
    background: rgba(255,255,255,0.025);
    border: 1px solid var(--border-g);
    border-radius: var(--radius-lg);
    padding: 40px 32px;
}
.rm-header { text-align: center; margin-bottom: 36px; }
.rm-header h3 {
    font-family: var(--ff-serif);
    font-size: var(--fs-xl); color: var(--white);
    margin-bottom: 5px; letter-spacing: -0.2px;
}
.rm-header p { font-size: var(--fs-sm); color: var(--t-light-3); letter-spacing: 1px; }

.rm-track-wrap {
    position: relative; height: 110px;
    overflow-x: auto; margin-bottom: 36px;
    min-width: 0;
}
.rm-track-wrap::-webkit-scrollbar { height: 4px; }
.rm-track-inner {
    position: relative; height: 110px; min-width: 600px;
}
.rm-svg {
    position: absolute; top: 50%; left: 0;
    width: 100%; height: 60px; transform: translateY(-50%);
}
.rm-points {
    position: absolute; inset: 0;
    display: flex; align-items: center;
}
.rm-point {
    position: absolute; transform: translateX(-50%);
    display: flex; flex-direction: column;
    align-items: center; gap: 7px;
    cursor: pointer; z-index: 5;
}
.rmp-dot {
    width: 40px; height: 40px; border-radius: 50%;
    background: rgba(255,255,255,0.04);
    border: 2px solid rgba(200,168,75,0.32);
    display: flex; align-items: center; justify-content: center;
    font-size: 13px; font-weight: 700;
    color: var(--t-light-2); position: relative; z-index: 2;
    transition: all 0.32s cubic-bezier(0.4,0,0.2,1);
}
.rmp-dot.rmp-start   { background: linear-gradient(135deg,var(--blue-light),var(--blue)); border-color: var(--gold); }
.rmp-dot.rmp-battle  { background: linear-gradient(135deg,#7a0000,var(--red)); border-color: var(--gold); font-size: 15px; }
.rmp-dot.rmp-hero    { background: linear-gradient(135deg,var(--gold),var(--gold-dark)); border-color: var(--white); color: var(--dark); font-size: 15px; box-shadow: 0 0 18px rgba(200,168,75,0.5); }
.rmp-dot.rmp-victory { background: linear-gradient(135deg,var(--red),#7a0000); border-color: var(--gold); font-size: 17px; animation: victory-pulse 2s ease-in-out infinite; }
@keyframes victory-pulse {
    0%,100% { box-shadow: 0 0 12px rgba(204,0,0,0.6); }
    50%     { box-shadow: 0 0 26px rgba(204,0,0,1), 0 0 48px rgba(200,168,75,0.4); }
}
.rm-point:hover .rmp-dot,
.rm-point.active .rmp-dot {
    transform: scale(1.16);
    background: linear-gradient(135deg,var(--red),var(--red-dark));
    border-color: var(--gold); color: var(--white);
    box-shadow: 0 0 0 4px rgba(200,168,75,0.18), var(--shadow-r);
}
.rmp-label {
    display: flex; flex-direction: column;
    align-items: center; gap: 2px; white-space: nowrap;
}
.rmp-city {
    font-family: var(--ff-title); font-size: 10px;
    letter-spacing: 0.5px; color: var(--t-light);
    text-transform: uppercase;
}
.rmp-year { font-size: 10px; color: var(--gold); letter-spacing: 1px; }

/* Панели */
.rm-panels { margin-bottom: 24px; }
.rm-panel { display: none; animation: panel-in 0.38s ease; }
.rm-panel.active { display: block; }
@keyframes panel-in {
    from { opacity: 0; transform: translateY(12px); }
    to   { opacity: 1; transform: translateY(0); }
}
.rmp-inner {
    display: grid; grid-template-columns: 1fr 260px; gap: 32px;
    background: rgba(255,255,255,0.035);
    border: 1px solid var(--border-g);
    border-radius: var(--radius-lg); padding: 32px;
}
.rmp-tag {
    display: inline-block;
    font-family: var(--ff-title); font-size: 10px;
    letter-spacing: 3px; text-transform: uppercase;
    color: var(--gold); border: 1px solid var(--border-g);
    padding: 4px 12px; border-radius: 2px; margin-bottom: 11px;
}
.rmp-tag-red    { color: var(--red-light); border-color: rgba(204,0,0,0.35); background: rgba(204,0,0,0.055); }
.rmp-tag-gold   { color: var(--gold-light); border-color: var(--gold); background: rgba(200,168,75,0.07); font-size: 12px; }
.rmp-tag-victory{ color: #ff8080; border-color: rgba(255,128,128,0.35); background: rgba(204,0,0,0.07); font-size: 12px; }

.rmp-left h4 {
    font-family: var(--ff-serif);
    font-size: clamp(18px, 2.2vw, 22px);
    font-weight: 700; color: var(--white);
    margin-bottom: 13px; line-height: 1.3; letter-spacing: -0.2px;
}
.rmp-left p {
    font-size: var(--fs-sm); color: var(--t-light-2);
    line-height: 1.8; margin-bottom: 11px;
}
.rmp-left p:last-of-type { margin-bottom: 0; }
.rmp-left p strong { color: var(--gold); font-weight: 600; }
.rmp-left p em    { font-style: italic; color: var(--t-light); }

.rmp-fact {
    display: flex; gap: 10px; align-items: flex-start;
    background: rgba(200,168,75,0.055);
    border: 1px solid rgba(200,168,75,0.17);
    border-left: 3px solid var(--gold);
    border-radius: 6px; padding: 13px;
    margin-top: 16px; font-size: var(--fs-sm);
    color: var(--t-light-2); line-height: 1.6;
}
.rmp-fact i { color: var(--gold); flex-shrink: 0; margin-top: 2px; }
.rmp-fact strong { color: var(--t-light); }

.rmp-stats {
    display: grid; grid-template-columns: 1fr 1fr; gap: 8px;
}
.rs-item {
    background: rgba(255,255,255,0.04);
    border: 1px solid var(--border-w);
    border-radius: var(--radius);
    padding: 11px 8px; text-align: center; transition: all var(--tr);
}
.rs-item:hover { background: rgba(255,255,255,0.07); border-color: var(--border-g); }
.rs-item.rs-red     { background: rgba(204,0,0,0.07); border-color: rgba(204,0,0,0.22); }
.rs-item.rs-victory { background: rgba(204,0,0,0.09); border-color: rgba(204,0,0,0.38); }
.rs-val {
    display: block; font-family: var(--ff-title);
    font-size: var(--fs-lg); font-weight: 700;
    color: var(--gold); line-height: 1; margin-bottom: 4px;
}
.rs-item.rs-red .rs-val     { color: #ff8888; }
.rs-item.rs-victory .rs-val { color: #ff6060; }
.rs-key {
    font-size: 10px; color: var(--t-light-3);
    text-transform: uppercase; letter-spacing: 0.5px; line-height: 1.3;
}

.hero-star-display {
    text-align: center;
    background: rgba(200,168,75,0.07);
    border: 1px solid rgba(200,168,75,0.28);
    border-radius: var(--radius-lg); padding: 24px 14px;
}
.hsd-star {
    font-size: 60px; color: var(--gold); line-height: 1;
    margin-bottom: 10px; display: block;
    text-shadow: 0 0 28px rgba(200,168,75,0.55);
    animation: hsd-glow 3s ease-in-out infinite;
}
@keyframes hsd-glow {
    0%,100% { text-shadow: 0 0 18px rgba(200,168,75,0.5); transform: scale(1); }
    50%     { text-shadow: 0 0 36px rgba(200,168,75,0.88); transform: scale(1.05); }
}
.hsd-title { font-family: var(--ff-serif); font-size: var(--fs-base); color: var(--gold); margin-bottom: 5px; }
.hsd-num   { font-family: var(--ff-title); font-size: var(--fs-xl); font-weight: 700; color: var(--white); margin-bottom: 5px; }
.hsd-date  { font-size: 12px; color: var(--t-light-3); letter-spacing: 1px; }

/* Навигация карты */
.rm-nav { display: flex; align-items: center; justify-content: center; gap: 20px; }
.rm-nav-btn {
    font-family: var(--ff-title); font-size: 11px;
    letter-spacing: 2px; text-transform: uppercase;
    color: var(--gold); background: transparent;
    border: 1px solid var(--border-g);
    padding: 8px 20px; border-radius: 4px;
    cursor: pointer; transition: all var(--tr);
    display: flex; align-items: center; gap: 7px;
}
.rm-nav-btn:hover:not(:disabled) {
    background: rgba(200,168,75,0.09);
    border-color: var(--gold); transform: translateY(-2px);
}
.rm-nav-btn:disabled { opacity: 0.28; cursor: not-allowed; }

.rm-dots { display: flex; gap: 7px; align-items: center; }
.rm-dot {
    width: 8px; height: 8px; border-radius: 50%;
    background: rgba(255,255,255,0.14);
    cursor: pointer; border: 1px solid rgba(200,168,75,0.18);
    transition: all var(--tr);
}
.rm-dot:hover { background: rgba(200,168,75,0.38); border-color: var(--gold); }
.rm-dot.active {
    background: var(--gold); border-color: var(--gold);
    width: 12px; height: 12px;
    box-shadow: 0 0 7px rgba(200,168,75,0.6);
}

/* ═══════════════════════════════════════
   НАГРАДЫ
═══════════════════════════════════════ */
.award-hero-block {
    display: flex; align-items: center; gap: 40px;
    background: linear-gradient(135deg, #fffcf5, var(--white));
    border: 1px solid rgba(200,168,75,0.28);
    border-radius: var(--radius-lg);
    padding: 36px 44px; margin-bottom: 48px;
    box-shadow: var(--shadow-g); position: relative; overflow: hidden;
}
.award-hero-block::before {
    content: ''; position: absolute;
    top: 0; left: 0; bottom: 0; width: 5px;
    background: linear-gradient(180deg, var(--gold), var(--gold-dark));
}
.ahb-star-wrap {
    position: relative; flex-shrink: 0;
    width: 110px; height: 110px;
    display: flex; align-items: center; justify-content: center;
}
.ahb-star {
    font-size: 72px; color: var(--gold); line-height: 1;
    text-shadow: 0 0 26px rgba(200,168,75,0.48);
    animation: ahb-glow 3s ease-in-out infinite; z-index: 2;
    position: relative;
}
@keyframes ahb-glow {
    0%,100% { text-shadow: 0 0 18px rgba(200,168,75,0.4); transform: scale(1); }
    50%     { text-shadow: 0 0 36px rgba(200,168,75,0.8); transform: scale(1.06); }
}
.ahb-rays {
    position: absolute; inset: 0; border-radius: 50%;
    background: radial-gradient(circle, rgba(200,168,75,0.13) 0%, transparent 70%);
    animation: ring-spin 8s linear infinite;
}
.ahb-tag {
    font-family: var(--ff-title); font-size: var(--fs-xs);
    letter-spacing: 3px; text-transform: uppercase;
    color: var(--red); margin-bottom: 8px;
}
.ahb-info h3 {
    font-family: var(--ff-serif); font-size: var(--fs-2xl);
    color: var(--t-dark); margin-bottom: 10px; letter-spacing: -0.3px;
}
.ahb-info p { font-size: var(--fs-base); color: var(--t-body); line-height: 1.7; }
.ahb-info p strong { color: var(--t-dark); }

.awards-list {
    display: grid; grid-template-columns: repeat(2, 1fr);
    gap: 14px; margin-bottom: 48px;
}
.award-row {
    display: flex; gap: 14px; align-items: flex-start;
    background: var(--white); border-radius: var(--radius);
    padding: 18px; box-shadow: 0 2px 10px rgba(0,0,0,0.06);
    border-left: 4px solid var(--gold); transition: all var(--tr);
}
.award-row:hover { transform: translateY(-3px); box-shadow: 0 7px 24px rgba(0,0,0,0.09); border-left-color: var(--red); }
.ar-icon {
    width: 46px; height: 46px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 19px; color: var(--white); flex-shrink: 0;
    box-shadow: 0 3px 8px rgba(0,0,0,0.2);
}
.ar-body { flex: 1; }
.ar-name { font-family: var(--ff-serif); font-size: var(--fs-base); font-weight: 700; color: var(--t-dark); margin-bottom: 2px; }
.ar-date { font-family: var(--ff-title); font-size: 10px; letter-spacing: 2px; color: var(--red-dark); text-transform: uppercase; margin-bottom: 5px; }
.ar-body p { font-size: var(--fs-sm); color: var(--t-body); line-height: 1.6; }

.ranks-block {
    background: linear-gradient(135deg, var(--blue), var(--blue-mid));
    border-radius: var(--radius-lg); padding: 32px 36px; margin-bottom: 48px;
}
.ranks-title {
    font-family: var(--ff-serif); font-size: var(--fs-xl);
    color: var(--gold); text-align: center; margin-bottom: 24px; letter-spacing: -0.2px;
}
.ranks-track {
    display: flex; align-items: center;
    justify-content: center; flex-wrap: wrap; gap: 8px;
}
.rank-node { display: flex; flex-direction: column; align-items: center; gap: 7px; min-width: 100px; }
.rank-node-final .rn-rank { color: var(--gold); font-weight: 700; }
.rank-line { flex: 1; height: 2px; min-width: 24px; background: linear-gradient(90deg, var(--gold), rgba(200,168,75,0.25)); margin-bottom: 20px; }
.rn-dot { width: 13px; height: 13px; border-radius: 50%; background: rgba(200,168,75,0.32); border: 2px solid var(--gold); }
.rn-dot-gold { background: var(--gold); box-shadow: 0 0 10px rgba(200,168,75,0.65); width: 18px; height: 18px; }
.rn-rank { font-family: var(--ff-title); font-size: var(--fs-sm); color: var(--white); text-align: center; letter-spacing: 1px; }
.rn-year { font-size: 11px; color: var(--gold); letter-spacing: 2px; }

.postwar-block { margin-top: 4px; }
.postwar-title {
    font-family: var(--ff-serif); font-size: var(--fs-2xl);
    color: var(--t-dark); margin-bottom: 24px;
    display: flex; align-items: center; gap: 10px; letter-spacing: -0.3px;
}
.postwar-title span { font-size: 24px; }
.postwar-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.pw-card {
    background: linear-gradient(135deg, var(--blue), var(--blue-mid));
    border-radius: var(--radius); padding: 24px 20px;
    border-left: 4px solid var(--gold); transition: all var(--tr);
}
.pw-card:hover { transform: translateY(-3px); border-left-color: var(--red); }
.pw-period { font-family: var(--ff-title); font-size: var(--fs-xs); letter-spacing: 3px; color: var(--gold); text-transform: uppercase; margin-bottom: 7px; }
.pw-card h4 { font-family: var(--ff-serif); font-size: var(--fs-md); color: var(--white); margin-bottom: 8px; }
.pw-card p  { font-size: var(--fs-sm); color: var(--t-light-2); line-height: 1.7; }
.pw-card p strong { color: var(--gold); }

/* ═══════════════════════════════════════
   САМОЛЁТЫ
═══════════════════════════════════════ */
.aircraft-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.ac-card {
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(200,168,75,0.18);
    border-radius: var(--radius-lg); padding: 32px 24px;
    position: relative; overflow: hidden; transition: all var(--tr);
}
.ac-card:hover { background: rgba(255,255,255,0.055); border-color: rgba(200,168,75,0.46); transform: translateY(-4px); }
.ac-featured { background: rgba(204,0,0,0.045); border-color: rgba(200,168,75,0.42); box-shadow: var(--shadow-g); }
.ac-badge {
    position: absolute; top: 0; right: 0;
    font-family: var(--ff-title); font-size: 10px;
    letter-spacing: 1.5px; text-transform: uppercase;
    background: linear-gradient(135deg, var(--red), var(--red-dark));
    color: var(--white); padding: 5px 12px;
    border-radius: 0 var(--radius-lg) 0 var(--radius);
}
.ac-badge-blue { background: linear-gradient(135deg, var(--blue-light), var(--blue-mid)); }

.ac-svg-wrap {
    margin-bottom: 20px; display: flex; justify-content: center;
    filter: drop-shadow(0 4px 10px rgba(200,168,75,0.13));
}
.ac-svg { width: 100%; max-width: 240px; height: auto; transition: transform var(--tr); }
.ac-card:hover .ac-svg { transform: translateX(7px); }

.ac-info h3 { font-family: var(--ff-title); font-size: 32px; letter-spacing: 3px; color: var(--gold); margin-bottom: 3px; }
.ac-role { font-size: 12px; color: var(--t-light-3); letter-spacing: 1px; margin-bottom: 16px; }
.ac-specs { margin-bottom: 14px; display: flex; flex-direction: column; gap: 7px; }
.acs-row {
    display: flex; justify-content: space-between; align-items: center;
    background: rgba(255,255,255,0.04);
    border-left: 2px solid var(--red);
    border-radius: 0 4px 4px 0; padding: 7px 11px;
}
.acs-row span   { font-size: 10px; color: var(--t-light-3); text-transform: uppercase; letter-spacing: 1px; }
.acs-row strong { font-size: var(--fs-sm); color: var(--gold); }
.ac-desc { font-size: var(--fs-sm); color: var(--t-light-2); line-height: 1.7; }

/* ═══════════════════════════════════════
   ГАЛЕРЕЯ
═══════════════════════════════════════ */
.gallery-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-auto-rows: 210px; gap: 10px;
}
.gg-item {
    border-radius: var(--radius); overflow: hidden;
    position: relative; cursor: pointer;
    background: linear-gradient(135deg, var(--blue), var(--dark-3));
}
.gg-tall { grid-row: span 2; }
.gg-wide { grid-column: span 2; }

.gg-item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.5s ease; }
.gg-item:hover img { transform: scale(1.05); }

.gg-placeholder {
    width: 100%; height: 100%;
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    gap: 10px; transition: filter var(--tr);
}
.gg-placeholder-dark { background: linear-gradient(135deg, #08080f, var(--dark-2)); }
.gg-placeholder-gold { background: linear-gradient(135deg, #141008, #201808); }
.gg-placeholder-red  { background: linear-gradient(135deg, #140404, #220808); }
.gg-placeholder-blue { background: linear-gradient(135deg, #060c14, #0d1828); }
.gg-item:hover .gg-placeholder { filter: brightness(1.18); }

.gg-placeholder i    { font-size: 36px; color: rgba(200,168,75,0.32); }
.gg-placeholder span { font-size: var(--fs-sm); color: var(--t-light-3); letter-spacing: 1px; text-align: center; padding: 0 10px; }
.gg-plane-svg        { width: 75%; max-width: 170px; height: auto; opacity: 0.55; transition: opacity var(--tr); }
.gg-item:hover .gg-plane-svg { opacity: 0.85; }
.gg-star-display {
    font-size: 60px; color: var(--gold); line-height: 1;
    text-shadow: 0 0 26px rgba(200,168,75,0.5);
    animation: ahb-glow 3s ease-in-out infinite;
}

.gg-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to top,
        rgba(6,12,24,0.9) 0%, rgba(6,12,24,0.28) 50%, transparent 100%);
    display: flex; flex-direction: column;
    justify-content: flex-end; padding: 16px;
    opacity: 0; transition: opacity var(--tr);
}
.gg-item:hover .gg-overlay { opacity: 1; }
.gg-icon {
    position: absolute; top: 50%; left: 50%;
    transform: translate(-50%, -60%);
    width: 44px; height: 44px; border-radius: 50%;
    background: rgba(200,168,75,0.13);
    border: 2px solid var(--gold);
    display: flex; align-items: center; justify-content: center;
    color: var(--gold); font-size: 16px;
}
.gg-cap  { font-size: var(--fs-sm); color: var(--white); font-weight: 500; line-height: 1.4; margin-bottom: 3px; }
.gg-year { font-family: var(--ff-title); font-size: 10px; letter-spacing: 2px; color: var(--gold); }

/* Лайтбокс */
.lightbox {
    position: fixed; inset: 0; z-index: 3000;
    display: flex; align-items: center; justify-content: center;
    opacity: 0; visibility: hidden;
    transition: opacity var(--tr), visibility var(--tr);
}
.lightbox.open { opacity: 1; visibility: visible; }
.lb-bg { position: absolute; inset: 0; background: rgba(4,8,16,0.96); backdrop-filter: blur(10px); }
.lb-content {
    position: relative; z-index: 1;
    display: flex; flex-direction: column; align-items: center;
    max-width: 86vw; max-height: 86vh;
}
.lb-content img { max-width: 100%; max-height: 76vh; object-fit: contain; border-radius: 4px; box-shadow: 0 20px 60px rgba(0,0,0,0.8); }
.lb-info { text-align: center; margin-top: 12px; }
#lbCap   { font-size: var(--fs-base); color: var(--t-light); margin-bottom: 3px; }
#lbYear  { font-family: var(--ff-title); font-size: 11px; letter-spacing: 3px; color: var(--gold); margin-bottom: 4px; }
#lbCount { font-size: 11px; color: var(--t-light-3); letter-spacing: 2px; }

.lb-close {
    position: fixed; top: 16px; right: 16px;
    width: 40px; height: 40px; border-radius: 50%;
    background: rgba(255,255,255,0.07); border: 1px solid rgba(255,255,255,0.13);
    color: var(--white); font-size: 15px; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    transition: all var(--tr); z-index: 10;
}
.lb-close:hover { background: var(--red); border-color: var(--red); }
.lb-prev, .lb-next {
    position: fixed; top: 50%; transform: translateY(-50%);
    width: 46px; height: 46px; border-radius: 50%;
    background: rgba(255,255,255,0.07); border: 1px solid rgba(255,255,255,0.13);
    color: var(--white); font-size: 20px; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    transition: all var(--tr); z-index: 10;
}
.lb-prev { left: 14px; }
.lb-next { right: 14px; }
.lb-prev:hover, .lb-next:hover { background: rgba(200,168,75,0.22); border-color: var(--gold); }

/* ═══════════════════════════════════════
   ДОКУМЕНТЫ
═══════════════════════════════════════ */
.docs-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.doc-card {
    background: rgba(255,255,255,0.038);
    border: 1px solid rgba(200,168,75,0.14);
    border-radius: var(--radius-lg); overflow: hidden;
    cursor: pointer; transition: all var(--tr);
}
.doc-card:hover { border-color: rgba(200,168,75,0.46); transform: translateY(-4px); box-shadow: var(--shadow); }

.doc-preview { position: relative; height: 170px; overflow: hidden; }
.dp-placeholder {
    width: 100%; height: 100%;
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    gap: 9px; transition: filter var(--tr);
}
.dp-decree  { background: linear-gradient(135deg, #0c1520, #182840); }
.dp-award   { background: linear-gradient(135deg, #181208, #28200f); }
.dp-cert    { background: linear-gradient(135deg, #0a1320, #142035); }
.dp-order   { background: linear-gradient(135deg, #180808, #280f0f); }
.dp-ow      { background: linear-gradient(135deg, #0c1008, #182018); }
.dp-record  { background: linear-gradient(135deg, #0e0c18, #18152a); }
.dp-korea   { background: linear-gradient(135deg, #071018, #102030); }
.dp-icon    { font-size: 44px; line-height: 1; display: block; }
.dp-hint    { font-size: var(--fs-xs); letter-spacing: 1px; color: var(--t-light-3); text-transform: uppercase; }

.dp-overlay {
    position: absolute; inset: 0;
    background: rgba(200,168,75,0.13);
    display: flex; align-items: center; justify-content: center;
    opacity: 0; transition: opacity var(--tr);
}
.dp-overlay span {
    font-family: var(--ff-title); font-size: 12px;
    letter-spacing: 3px; text-transform: uppercase;
    color: var(--gold); border: 1px solid var(--gold);
    padding: 5px 14px; border-radius: 3px;
}
.doc-card:hover .dp-overlay { opacity: 1; }
.doc-card:hover .dp-placeholder { filter: brightness(1.2); }

.doc-info { padding: 14px 16px; }
.di-type {
    font-family: var(--ff-title); font-size: 10px;
    letter-spacing: 1.5px; text-transform: uppercase;
    background: rgba(204,0,0,0.65); color: var(--white);
    padding: 2px 7px; border-radius: 3px;
    display: inline-block; margin-bottom: 7px;
}
.di-title { font-family: var(--ff-title); font-size: var(--fs-sm); letter-spacing: 0.5px; color: var(--white); line-height: 1.35; margin-bottom: 3px; }
.di-date  { font-size: 11px; color: var(--gold); letter-spacing: 1px; }

/* Просмотр документа */
.doc-viewer {
    position: fixed; inset: 0; z-index: 3000;
    display: flex; align-items: center; justify-content: center;
    opacity: 0; visibility: hidden;
    transition: opacity var(--tr), visibility var(--tr);
}
.doc-viewer.open { opacity: 1; visibility: visible; }
.dv-bg { position: absolute; inset: 0; background: rgba(4,8,16,0.94); backdrop-filter: blur(10px); }
.dv-modal {
    position: relative; z-index: 1;
    background: #0c1420; border: 1px solid var(--border-g);
    border-radius: var(--radius-lg); overflow: hidden;
    width: 90vw; max-width: 960px; max-height: 90vh;
    display: grid; grid-template-columns: 1fr 300px;
    box-shadow: 0 28px 70px rgba(0,0,0,0.7);
}
.dv-close {
    position: absolute; top: 10px; right: 10px;
    width: 32px; height: 32px; border-radius: 50%;
    background: rgba(255,255,255,0.07); border: 1px solid rgba(255,255,255,0.11);
    color: var(--white); font-size: 14px; cursor: pointer; z-index: 10;
    display: flex; align-items: center; justify-content: center; transition: all var(--tr);
}
.dv-close:hover { background: var(--red); border-color: var(--red); }

.dv-img-side { background: #060810; display: flex; flex-direction: column; }
.dv-img-wrap {
    flex: 1; display: flex; align-items: center; justify-content: center;
    padding: 20px; position: relative; min-height: 320px; overflow: hidden;
}
.dv-img-wrap img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 4px; transition: transform 0.3s ease, opacity 0.3s; }
.dv-img-empty {
    display: none; flex-direction: column; align-items: center;
    justify-content: center; gap: 9px; color: var(--t-light-3); text-align: center;
}
.dv-img-empty span  { font-size: 60px; display: block; }
.dv-img-empty p     { font-size: var(--fs-sm); }
.dv-img-empty small { font-size: 12px; }

.dv-zoom-bar {
    display: flex; gap: 5px; padding: 9px 14px;
    border-top: 1px solid var(--border-w); background: rgba(0,0,0,0.28);
}
.dv-zoom-bar button {
    width: 32px; height: 32px; border-radius: 4px;
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.09);
    color: var(--t-light-2); font-size: 13px;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer; transition: all var(--tr);
}
.dv-zoom-bar button:hover { color: var(--gold); border-color: var(--border-g); background: rgba(200,168,75,0.07); }

.dv-info-side {
    padding: 26px 20px; border-left: 1px solid var(--border-w);
    overflow-y: auto; display: flex; flex-direction: column; gap: 11px;
}
.dv-type-tag {
    display: inline-block; width: fit-content;
    font-family: var(--ff-title); font-size: 10px;
    letter-spacing: 2px; text-transform: uppercase;
    background: rgba(204,0,0,0.18); border: 1px solid rgba(204,0,0,0.28);
    color: #ff9090; padding: 3px 9px; border-radius: 3px;
}
.dv-info-side h3 {
    font-family: var(--ff-serif); font-size: var(--fs-lg);
    color: var(--white); line-height: 1.35; letter-spacing: -0.2px;
}
.dv-date { font-family: var(--ff-title); font-size: 10px; letter-spacing: 2px; color: var(--gold); text-transform: uppercase; }
.dv-desc { font-size: var(--fs-sm); color: var(--t-light-2); line-height: 1.7; }
.dv-meta-grid {
    background: rgba(255,255,255,0.035); border: 1px solid var(--border-g);
    border-radius: var(--radius); padding: 13px;
    display: flex; flex-direction: column; gap: 7px; margin-top: auto;
}
.dvmg-item { display: flex; justify-content: space-between; font-size: var(--fs-sm); }
.dvmg-item span  { color: var(--t-light-3); }
.dvmg-item strong{ color: var(--white); }

/* ═══════════════════════════════════════
   ВИДЕО
═══════════════════════════════════════ */
.video-layout { display: grid; grid-template-columns: 1fr 340px; gap: 44px; align-items: start; }
.video-frame-wrap { position: relative; }
.video-frame {
    position: relative; aspect-ratio: 16/9;
    background: var(--dark); border-radius: var(--radius); overflow: hidden;
    box-shadow: var(--shadow);
}
.video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; }
.vf-corner { position: absolute; width: 20px; height: 20px; border-color: var(--gold); border-style: solid; z-index: 2; }
.vf-tl { top:5px; left:5px;   border-width:2px 0 0 2px; }
.vf-tr { top:5px; right:5px;  border-width:2px 2px 0 0; }
.vf-bl { bottom:5px; left:5px;  border-width:0 0 2px 2px; }
.vf-br { bottom:5px; right:5px; border-width:0 2px 2px 0; }

.video-info {
    background: linear-gradient(135deg, var(--blue), var(--blue-mid));
    border-radius: var(--radius-lg); padding: 32px 26px;
    border-left: 4px solid var(--gold); position: sticky; top: 88px;
}
.vi-tag {
    font-family: var(--ff-title); font-size: 10px;
    letter-spacing: 3px; text-transform: uppercase;
    color: var(--gold); border: 1px solid var(--border-g);
    padding: 4px 11px; border-radius: 2px;
    display: inline-block; margin-bottom: 12px;
}
.video-info h3 { font-family: var(--ff-serif); font-size: var(--fs-xl); color: var(--gold); margin-bottom: 12px; line-height: 1.3; }
.video-info p  { font-size: var(--fs-sm); color: var(--t-light-2); line-height: 1.7; margin-bottom: 18px; }
.vi-details { display: flex; flex-direction: column; gap: 7px; margin-bottom: 20px; }
.vid-item   { font-size: var(--fs-sm); color: var(--t-light-2); display: flex; align-items: center; gap: 7px; }
.vid-item i { color: var(--gold); width: 13px; text-align: center; flex-shrink: 0; }
.vi-links   { display: flex; flex-direction: column; gap: 8px; }
.vi-links .btn { justify-content: center; }

/* ═══════════════════════════════════════
   ИСТОЧНИКИ
═══════════════════════════════════════ */
.sources-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.src-card {
    background: var(--white); border-radius: var(--radius-lg);
    padding: 26px 18px; text-align: center;
    border-bottom: 3px solid var(--red);
    box-shadow: 0 3px 14px rgba(0,0,0,0.07);
    transition: all var(--tr); display: block; color: var(--t-dark);
}
.src-card:hover { transform: translateY(-5px); box-shadow: 0 10px 28px rgba(0,0,0,0.11); border-bottom-color: var(--gold); color: var(--t-dark); }
.src-icon  { font-size: 34px; margin-bottom: 9px; display: block; }
.src-card h4 { font-family: var(--ff-serif); font-size: var(--fs-base); color: var(--t-dark); margin-bottom: 5px; }
.src-card span { font-size: 12px; color: var(--red); }

/* ═══════════════════════════════════════
   КОНТАКТЫ
═══════════════════════════════════════ */
.contacts-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: start; }
.contacts-info { display: flex; flex-direction: column; gap: 18px; }
.ci-item {
    display: flex; gap: 14px; align-items: flex-start;
    background: rgba(255,255,255,0.04); border: 1px solid var(--border-g);
    border-radius: var(--radius); padding: 18px; border-left: 3px solid var(--gold);
}
.ci-icon {
    width: 40px; height: 40px; background: rgba(200,168,75,0.09);
    border-radius: 50%; display: flex; align-items: center; justify-content: center;
    color: var(--gold); font-size: 16px; flex-shrink: 0;
}
.ci-body h4 { font-family: var(--ff-title); font-size: var(--fs-xs); letter-spacing: 2px; text-transform: uppercase; color: var(--gold); margin-bottom: 4px; }
.ci-body p  { font-size: var(--fs-sm); color: var(--t-light-2); line-height: 1.6; }
.ci-body a  { font-size: var(--fs-sm); color: var(--gold); }
.ci-body a:hover { color: var(--gold-light); text-decoration: underline; }

.contacts-map { border-radius: var(--radius-lg); overflow: hidden; border: 2px solid var(--border-g); box-shadow: var(--shadow); }
.contacts-map iframe { display: block; }

/* ═══════════════════════════════════════
   FOOTER
═══════════════════════════════════════ */
.footer { background: #080d14; border-top: 1px solid var(--border-g); }
.footer-main { padding: 60px 0; }
.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1.4fr; gap: 44px; }

.fg-star { font-size: 34px; color: var(--red); margin-bottom: 7px; display: block; }
.fg-brand h3 { font-family: var(--ff-title); font-size: 18px; letter-spacing: 3px; color: var(--gold); margin-bottom: 7px; }
.fg-brand p  { font-size: var(--fs-sm); color: var(--t-light-2); line-height: 1.6; margin-bottom: 5px; }
.fg-city     { font-size: 12px; color: var(--t-light-3); }

.fg-nav h4, .fg-links h4 {
    font-family: var(--ff-title); font-size: 11px;
    letter-spacing: 3px; text-transform: uppercase;
    color: var(--gold); margin-bottom: 14px; padding-bottom: 9px;
    border-bottom: 1px solid var(--border-g);
}
.fg-nav nav, .fg-links nav { display: flex; flex-direction: column; gap: 9px; }
.fg-nav nav a, .fg-links nav a { font-size: var(--fs-sm); color: var(--t-light-2); transition: all var(--tr); }
.fg-nav nav a:hover, .fg-links nav a:hover { color: var(--gold); padding-left: 5px; }

.fg-quote { text-align: center; }
.fgq-stars { color: var(--gold); font-size: 17px; letter-spacing: 9px; margin-bottom: 12px; }
.fg-quote blockquote {
    font-family: var(--ff-serif); font-size: var(--fs-base); font-style: italic;
    color: var(--t-light-2); line-height: 1.7;
    border-left: 2px solid var(--gold); padding-left: 13px;
    text-align: left; margin-bottom: 12px;
}
.fg-quote p { font-size: var(--fs-sm); color: var(--t-light-3); line-height: 1.7; }
.fg-quote strong { color: var(--gold); }

.footer-bottom { border-top: 1px solid rgba(255,255,255,0.04); padding: 16px 0; }
.footer-bottom .container {
    display: flex; justify-content: space-between;
    align-items: center; flex-wrap: wrap; gap: 8px;
}
.footer-bottom p { font-size: 12px; color: var(--t-light-3); }
.footer-bottom p:last-child { color: rgba(200,168,75,0.55); }

/* ═══════════════════════════════════════
   BACK TO TOP
═══════════════════════════════════════ */
.back-to-top {
    position: fixed; bottom: 26px; right: 26px;
    width: 46px; height: 46px; border-radius: 50%;
    background: linear-gradient(135deg, var(--red), var(--red-dark));
    color: var(--white); border: none; font-size: 15px;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer; opacity: 0; visibility: hidden;
    transition: all var(--tr); z-index: 999;
    box-shadow: var(--shadow-r);
}
.back-to-top.visible { opacity: 1; visibility: visible; }
.back-to-top:hover { background: linear-gradient(135deg, var(--gold), var(--gold-dark)); transform: translateY(-3px); box-shadow: var(--shadow-g); }

/* ═══════════════════════════════════════
   АДАПТИВ
═══════════════════════════════════════ */
@media (max-width: 1100px) {
    :root { --section-pad: 80px; }
    .school-grid   { grid-template-columns: repeat(2, 1fr); }
    .aircraft-grid { grid-template-columns: repeat(2, 1fr); }
    .docs-grid     { grid-template-columns: repeat(3, 1fr); }
    .gallery-grid  { grid-template-columns: repeat(3, 1fr); }
    .footer-grid   { grid-template-columns: 1fr 1fr; gap: 28px; }
    .postwar-grid  { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 900px) {
    .school-about  { grid-template-columns: 1fr; padding: 32px; gap: 32px; }
    .school-about-visual { flex-direction: row; justify-content: center; flex-wrap: wrap; gap: 16px; }
    .pilot-layout  { grid-template-columns: 1fr; }
    .pilot-left    { max-width: 380px; margin: 0 auto; }
    .battles-cards { grid-template-columns: repeat(2, 1fr); }
    .rmp-inner     { grid-template-columns: 1fr; }
    .awards-list   { grid-template-columns: 1fr; }
    .video-layout  { grid-template-columns: 1fr; }
    .contacts-layout { grid-template-columns: 1fr; }
    .sources-grid  { grid-template-columns: repeat(2, 1fr); }
    .aircraft-grid { grid-template-columns: 1fr; }
}

@media (max-width: 768px) {
    :root { --section-pad: 64px; }

    /* Мобильное меню */
    .nav-menu {
        position: fixed; top: 0; right: -100%;
        width: 270px; height: 100vh;
        background: linear-gradient(180deg, var(--blue) 0%, var(--dark) 100%);
        flex-direction: column; padding: 76px 24px 24px;
        gap: 0; border-left: 1px solid var(--border-g);
        z-index: 999; overflow-y: auto;
        transition: right 0.38s ease;
    }
    .nav-menu.open { right: 0; }
    .nav-link { font-size: var(--fs-base); padding: 11px 0; border-bottom: 1px solid rgba(255,255,255,0.05); }
    .nav-link::after { display: none; }
    .nav-burger { display: flex; z-index: 1000; }

    /* Timeline мобиль */
    .timeline::before { left: 24px; }
    .tl-item.tl-left, .tl-item.tl-right { padding-left: 76px; padding-right: 0; justify-content: flex-start; }
    .tl-dot { left: 24px; width: 56px; height: 56px; }
    .tl-card { max-width: 100%; }
    .tl-card h3 { font-size: var(--fs-base); }

    .battles-cards { grid-template-columns: 1fr; }
    .docs-grid     { grid-template-columns: repeat(2, 1fr); }
    .gallery-grid  { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 170px; }
    .gg-wide  { grid-column: span 2; }
    .gg-tall  { grid-row: span 2; }

    .dv-modal { grid-template-columns: 1fr; grid-template-rows: 48vh auto; max-height: 95vh; overflow-y: auto; }
    .dv-info-side { border-left: none; border-top: 1px solid var(--border-w); }

    .footer-grid { grid-template-columns: 1fr; gap: 24px; }
    .footer-bottom .container { flex-direction: column; text-align: center; }

    .award-hero-block { flex-direction: column; text-align: center; padding: 26px 20px; }
    .award-hero-block::before { width: 100%; height: 4px; bottom: auto; top: 0; left: 0; right: 0; }
    .ahb-star-wrap { margin: 0 auto; }

    .ranks-track { flex-direction: column; gap: 16px; align-items: flex-start; padding-left: 10px; }
    .rank-line   { display: none; }
    .postwar-grid { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
    :root { --section-pad: 52px; }

    .hero-school-num { font-size: 48px; }
    .hero-stats { flex-direction: column; max-width: 240px; }
    .hs-item + .hs-item { border-left: none; border-top: 1px solid var(--border-g); }

    .school-grid { grid-template-columns: 1fr; }
    .pilot-stats-grid { grid-template-columns: 1fr 1fr; }
    .sources-grid { grid-template-columns: 1fr; }

    .gallery-grid { grid-template-columns: 1fr 1fr; grid-auto-rows: 140px; }
    .gg-tall { grid-row: span 1; }
    .gg-wide { grid-column: span 2; }

    .docs-grid { grid-template-columns: 1fr; }

    .rmp-inner { padding: 18px; }
    .route-map { padding: 24px 14px; }
    .rm-track-wrap { overflow-x: scroll; }
    .rm-track-inner { min-width: 560px; }

    .section-title { font-size: 26px; }
    .tl-card h3 { font-size: var(--fs-base); }
    .bc-card h3 { font-size: var(--fs-base); }
}