/* Mobile Home — слой до 720px (Design Canvas Mobile Home.dc.html) */

@media (max-width: 720px) {
  :root {
    --mh-gold: #e8c36a;
    --mh-text: #f4f1ea;
    --mh-bg: #1b1e22;
    --mh-esports-accent: var(--mh-gold);
    --font-display: 'IBM Plex Sans Condensed', sans-serif;
    --font-body: Manrope, sans-serif;
  }

  /* --- Mobile topbar & menu --- */
  .mobile-topbar {
    position: sticky;
    top: 0;
    z-index: 80;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    /* На мобиле держим одну ступень стекла — мелкую: блюр здесь дороже всего,
       а разницу между ступенями на такой ширине всё равно не видно. */
    background: rgba(18, 20, 23, 0.72);
    backdrop-filter: blur(var(--glass-blur-soft));
    -webkit-backdrop-filter: blur(var(--glass-blur-soft));
    border-bottom: 1px solid var(--line-soft);
  }

  /* Атрибут hidden стоит в разметке и снимается скриптом. До его запуска
     мобильная шапка отсутствовала, а десктопная .lock-nav-shell ещё не была
     спрятана — на первом кадре мелькала огромная десктопная панель. Ниже 720px
     шапка нужна всегда, поэтому атрибут здесь перебиваем: скрывать её на
     десктопе — дело медиазапроса min-width: 721px в конце файла. */
  .mobile-topbar[hidden] {
    display: flex !important;
  }

  .mobile-topbar__brand {
    display: flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    color: inherit;
    min-width: 0;
  }

  .mobile-topbar__mark {
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    flex-shrink: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .mobile-topbar__mark img {
    width: 28px;
    height: 28px;
    border-radius: var(--radius-xs);
  }

  .mobile-topbar__copy {
    display: flex;
    flex-direction: column;
    line-height: 1;
    min-width: 0;
  }

  .mobile-topbar__copy strong {
    font: 700 12px/1.1 var(--font-display, 'IBM Plex Sans Condensed', sans-serif);
    letter-spacing: -0.01em;
    text-transform: none;
  }

  .mobile-topbar__copy span {
    margin-top: 3px;
    font-size: 10px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: rgba(244, 241, 234, 0.5);
  }

  .mobile-topbar__menu {
    width: 40px;
    height: 40px;
    position: relative;
    display: block;
    border: 1px solid var(--line-strong);
    border-radius: var(--radius-sm);
    background: rgba(255, 255, 255, 0.04);
    cursor: pointer;
    padding: 0;
    transition:
      border-color 180ms ease,
      background-color 180ms ease;
  }

  .mobile-topbar__menu span {
    position: absolute;
    left: 10px;
    top: 50%;
    display: block;
    width: 19px;
    height: 2px;
    background: var(--mh-text);
    border-radius: var(--radius-pill);
    transform-origin: center;
    transition:
      transform 240ms cubic-bezier(0.2, 0.9, 0.2, 1),
      opacity 160ms ease,
      width 180ms ease,
      background-color 180ms ease;
  }

  .mobile-topbar__menu span:nth-child(1) {
    transform: translateY(-7px);
  }

  .mobile-topbar__menu span:nth-child(2) {
    transform: translateY(-1px);
  }

  .mobile-topbar__menu span:nth-child(3) {
    transform: translateY(5px);
  }

  .mobile-topbar__menu[aria-expanded='true'] {
    border-color: var(--line-strong);
    background: rgba(255, 255, 255, 0.06);
  }

  .mobile-topbar__menu[aria-expanded='true'] span {
    background: #f6f2ea;
    width: 21px;
  }

  .mobile-topbar__menu[aria-expanded='true'] span:nth-child(1) {
    transform: translateY(-1px) rotate(45deg);
  }

  .mobile-topbar__menu[aria-expanded='true'] span:nth-child(2) {
    opacity: 0;
    transform: translateY(-1px) scaleX(0.2);
  }

  .mobile-topbar__menu[aria-expanded='true'] span:nth-child(3) {
    transform: translateY(-1px) rotate(-45deg);
  }

  .mobile-menu {
    position: fixed;
    inset: 0;
    z-index: 70;
    display: flex;
    flex-direction: column;
    padding: 88px 16px 0;
    background: #0a0b0d;
    overflow: hidden;
    overscroll-behavior: contain;
    animation: mobile-menu-in 180ms ease both;
  }

  .mobile-menu__bg,
  .mobile-menu__scrim {
    position: fixed;
    inset: 0;
    pointer-events: none;
  }

  .mobile-menu__bg {
    z-index: 0;
    background: url('../images/faq-crowd-marathon-v2-03.webp') center 10% / cover no-repeat;
    filter: grayscale(1) contrast(1.04) brightness(0.92);
  }

  .mobile-menu__scrim {
    z-index: 1;
    background: linear-gradient(
      180deg,
      rgba(6, 7, 9, 0.72) 0%,
      rgba(6, 7, 9, 0.3) 24%,
      rgba(6, 7, 9, 0.28) 60%,
      rgba(6, 7, 9, 0.55) 100%
    );
  }

  .mobile-menu__head,
  .mobile-menu__nav,
  .mobile-menu__cta {
    position: relative;
    z-index: 2;
  }

  .mobile-menu[hidden] {
    display: none !important;
  }

  body.mobile-menu-open .mobile-topbar {
    background: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border-bottom-color: transparent;
  }

  .mobile-menu__head {
    display: none;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
  }

  .mobile-menu__brand {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    color: inherit;
    text-decoration: none;
  }

  .mobile-menu__mark {
    width: 32px;
    height: 32px;
  }

  /* Скролл только у списка ссылок — CTA остаётся внизу экрана */
  .mobile-menu__nav {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    gap: 4px;
    min-height: 0;
    margin-top: 18px;
    padding-bottom: 10px;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  .mobile-menu__link {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 13px 4px 14px;
    border-bottom: 1px solid var(--line-soft);
    text-decoration: none;
    color: var(--mh-text);
    font: 600 27px/1 var(--font-display, 'IBM Plex Sans Condensed', sans-serif);
    text-shadow:
      0 2px 22px rgba(0, 0, 0, 0.72),
      0 1px 2px rgba(0, 0, 0, 0.5);
  }

  .mobile-menu__link:active {
    color: var(--mh-gold);
  }

  .mobile-menu__nav-tag {
    font: 700 10px/1 var(--font-body, Manrope, sans-serif);
    color: var(--mh-gold);
    letter-spacing: 0.18em;
    text-transform: uppercase;
    opacity: 0.82;
  }

  .mobile-menu__tracks {
    padding: 10px 0 11px;
    border-bottom: 1px solid var(--line-strong);
  }

  .mobile-menu__tracks-head {
    display: none;
  }

  .mobile-menu__track-list {
    display: grid;
    gap: 6px;
    padding: 0 0 0 2px;
  }

  .mobile-menu__track-list a {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    min-height: 40px;
    padding: 8px 12px;
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    background: rgba(16, 18, 22, 0.26);
    backdrop-filter: blur(var(--glass-blur-soft)) saturate(var(--glass-sat));
    -webkit-backdrop-filter: blur(var(--glass-blur-soft)) saturate(var(--glass-sat));
    color: rgba(248, 246, 240, 0.94);
    text-decoration: none;
    font: 650 14px/1.18 var(--font-body, Manrope, sans-serif);
    text-shadow: 0 1px 8px rgba(0, 0, 0, 0.55);
  }

  .mobile-menu__track-num {
    color: var(--mh-gold);
    font: 800 11px/1 var(--font-body, Manrope, sans-serif);
    letter-spacing: 0.08em;
  }

  /* Как .lock-cta--ghost на ПК по форме, но заметнее: белый текст, крупнее,
     фон темнее остального меню. */
  .mobile-menu__cta {
    flex: 0 0 auto;
    align-self: stretch;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.7rem;
    height: 3.25rem;
    margin: 10px 0 calc(14px + env(safe-area-inset-bottom, 0px));
    padding: 0 1.15rem;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: var(--radius-sm);
    background: rgba(0, 0, 0, 0.72);
    box-shadow: 0 -16px 28px rgba(6, 7, 9, 0.55);
    color: #fff;
    font-family: var(--font-ui, Manrope, sans-serif);
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: var(--ls-caps, 0.14em);
    text-transform: uppercase;
    white-space: nowrap;
    text-decoration: none;
    text-align: center;
    transition:
      border-color 180ms ease,
      background-color 180ms ease,
      color 180ms ease;
  }

  .mobile-menu__cta::before {
    content: '';
    flex: 0 0 auto;
    width: 1.15rem;
    height: 1.15rem;
    border-radius: 0;
    background-color: currentColor;
    background-image: none;
    opacity: 0.92;
    box-shadow: none;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.417 15.181l-.397 5.584c.568 0 .814-.244 1.109-.537l2.663-2.545 5.518 4.041c1.012.564 1.725.267 1.998-.931L23.93 3.821c.321-1.496-.541-2.081-1.527-1.714L1.114 9.393c-1.472.571-1.45 1.393-.25 1.765l5.435 1.69L19.05 5.13c.598-.396 1.14-.177.693.219z'/%3E%3C/svg%3E")
      center / contain no-repeat;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.417 15.181l-.397 5.584c.568 0 .814-.244 1.109-.537l2.663-2.545 5.518 4.041c1.012.564 1.725.267 1.998-.931L23.93 3.821c.321-1.496-.541-2.081-1.527-1.714L1.114 9.393c-1.472.571-1.45 1.393-.25 1.765l5.435 1.69L19.05 5.13c.598-.396 1.14-.177.693.219z'/%3E%3C/svg%3E")
      center / contain no-repeat;
  }

  .mobile-menu__cta:active {
    border-color: rgba(255, 255, 255, 0.32);
    background: rgba(0, 0, 0, 0.88);
    color: #fff;
  }

  .mobile-menu__cta:active::before {
    opacity: 1;
  }

  body.mobile-menu-open {
    overscroll-behavior: none;
  }

  /* Без привязки к body.mobile-layout: класс вешает скрипт, и пока он не
     отработал, десктопная панель успевала показаться на первом кадре.
     Ниже 720px её не бывает никогда — прячем самим медиазапросом. */
  .lock-nav-shell {
    display: none;
  }

  @keyframes mobile-menu-in {
    from {
      opacity: 0;
    }

    to {
      opacity: 1;
    }
  }

  /* --- Hero --- */
  .lock-hero {
    min-height: 92svh;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
  }

  .lock-hero__image {
    transform: none;
    filter: grayscale(1) contrast(0.95) brightness(1.08);
  }

  .lock-hero__image--architect {
    object-position: center 35%;
  }

  .lock-hero__veil {
    background:
      radial-gradient(circle at 50% 12%, rgba(255, 255, 255, 0.14), transparent 46%),
      linear-gradient(
        180deg,
        rgba(22, 24, 28, 0.18) 0%,
        rgba(22, 24, 28, 0.32) 42%,
        rgba(20, 22, 26, 0.78) 78%,
        #1d2024 100%
      );
  }

  .lock-hero__vignette,
  .lock-hero::after {
    display: none;
  }

  /* Створ: на узком кадре панели уже, иначе титул выходит за них */
  .lock-hero__gate {
    --gate: 5%;
  }

  .lock-shell.lock-hero__shell {
    min-height: 92svh;
    width: 100%;
    padding: 0;
    grid-template-rows: 1fr;
  }

  .lock-hero__content {
    padding: 0 20px 64px;
    transform: translateY(30px);
    text-align: center;
  }

  .lock-title.lock-title--award-name {
    font: 700 clamp(42px, 13vw, 56px) / 0.88 var(--font-ui, Manrope, sans-serif);
    letter-spacing: -0.01em;
    /* Титул центрируется вместе с остальным блоком: на десктопе вариант
       «смыкание в створе» строго по центру кадра, узкий кадр не должен
       разъезжаться с ним по выключке. */
    justify-items: center;
    margin: 0 auto;
    padding: 0;
    gap: 0;
    text-align: center;
  }

  .lock-title.lock-title--award-name::before {
    display: none;
  }

  .lock-title.lock-title--award-name > span:nth-child(1),
  .lock-title.lock-title--award-name > span:nth-child(2) {
    font-size: 1em;
    letter-spacing: -0.01em;
    background: linear-gradient(180deg, #f6e0a0, #bd8c34);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
    text-shadow: none;
  }

  .lock-title.lock-title--award-name > span:nth-child(1)::after,
  .lock-title.lock-title--award-name > span:nth-child(2)::after {
    display: none;
  }

  .lock-title.lock-title--award-name > .lock-title__tagline {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin: 16px 0 18px;
    padding: 0;
    width: 100%;
    font-size: 12px !important;
    letter-spacing: 0.18em;
    background: none;
    -webkit-text-fill-color: var(--mh-gold);
  }

  .lock-title.lock-title--award-name .lock-title__tagline-line {
    width: 34px;
    height: 1px;
    background: rgba(232, 195, 106, 0.7);
    box-shadow: none;
  }

  .lock-title.lock-title--award-name .lock-title__tagline-copy {
    display: block;
    width: auto;
    font: 600 12px/1 var(--font-display, 'IBM Plex Sans Condensed', sans-serif) !important;
    font-size: 12px !important;
    letter-spacing: 0.18em;
    color: var(--mh-gold);
    background: none;
    -webkit-text-fill-color: var(--mh-gold);
    animation: none;
  }

  .hero-desc {
    max-width: 30ch;
    margin: 0 auto 22px;
    font-size: 15px;
    line-height: 1.5;
    color: rgba(244, 241, 234, 0.82);
  }

  /* --- Founder --- */
  #founder.fq2.glassbg {
    padding: 54px 20px 28px;
  }

  #founder .fq2__inner {
    width: 100%;
    padding: 0;
    display: block;
  }

  #founder .vC__rail {
    display: none !important;
  }

  #founder .vC__grid {
    display: flex;
    flex-direction: column;
    gap: 14px;
  }

  #founder .vC__portrait {
    flex-direction: row-reverse;
    justify-content: flex-start;
    align-items: center;
    gap: 12px;
    width: 100%;
    margin: 0;
  }

  #founder .founder-photo {
    width: 96px;
    height: 118px;
    min-height: 118px !important;
    flex: 0 0 auto;
    --p: 1 !important;
  }

  #founder .founder-photo__base,
  #founder .founder-photo__color {
    width: 100%;
    height: 100%;
    min-height: 0 !important;
    object-fit: cover;
    object-position: center 20%;
  }

  #founder .founder-photo__color {
    filter: grayscale(1);
  }

  #founder .founder-photo__line {
    display: none;
  }

  #founder .vC__cap {
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
    text-align: right;
  }

  #founder .vC__cap strong {
    display: block;
    font: 600 18px/1.1 var(--font-display, 'IBM Plex Sans Condensed', sans-serif);
  }

  #founder .vC__cap span {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    font-size: 12px;
    color: var(--mh-gold);
    margin-top: 0;
    margin-bottom: 4px;
  }

  #founder .vC__cap small {
    display: none !important;
  }

  #founder .vC__headline {
    margin: 0 0 18px;
    font: 700 28px/1.05 var(--font-display, 'IBM Plex Sans Condensed', sans-serif);
    letter-spacing: -0.01em;
  }

  #founder .vC__body p {
    margin: 0 0 14px;
    font-size: 14px;
    line-height: 1.6;
    color: rgba(244, 241, 234, 0.8);
  }

  #founder .vC__note {
    display: none;
  }

  #founder .vC__pull {
    margin: 0;
    padding-left: 16px;
    border-left: 2px solid var(--mh-gold);
    font: 700 22px/1.12 var(--font-display, 'IBM Plex Sans Condensed', sans-serif);
    letter-spacing: -0.01em;
    color: #f6f2ea;
    background: none;
  }

  #founder .vC__body {
    margin: 0;
  }

  #founder .vC__body > :last-child {
    margin-bottom: 0;
  }

  /* --- Timeline --- */
  #timeline {
    padding: 52px 20px 56px;
  }

  #timeline .lock-shell {
    width: 100%;
    padding: 0;
  }

  #timeline .lock-section__header {
    margin-bottom: 26px;
  }

  #timeline .lock-kicker {
    display: none !important;
  }

  #timeline-title {
    white-space: normal;
    margin: 0;
    font: 700 34px/1 var(--font-display, 'IBM Plex Sans Condensed', sans-serif);
    letter-spacing: -0.01em;
  }

  #timeline .acts__list {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin: 0;
    padding: 0;
  }

  #timeline .acts__item {
    position: relative;
    opacity: 1 !important;
    min-height: 0 !important;
    padding: 18px !important;
    border: 1px solid var(--line) !important;
    border-radius: var(--radius-md);
    background: rgba(255, 255, 255, 0.03);
    border-left: 1px solid var(--line) !important;
  }

  #timeline .acts__item::before,
  #timeline .acts__item::after,
  #timeline .acts__finale-mark::before,
  #timeline .acts__now-mark::before {
    display: none !important;
  }

  #timeline .acts__item--finale {
    border-color: rgba(232, 195, 106, 0.4) !important;
    background: linear-gradient(180deg, rgba(34, 28, 15, 0.5), rgba(255, 255, 255, 0.02));
  }

  #timeline .acts__finale-mark {
    position: static;
    display: inline-block;
    margin-bottom: 8px;
  }

  #timeline .acts__num {
    display: inline-block;
    width: fit-content;
    font: 700 14px/1 var(--font-display, 'IBM Plex Sans Condensed', sans-serif);
    color: var(--mh-gold);
    -webkit-text-stroke: 0;
    text-stroke: 0;
    letter-spacing: 0;
    background: none;
    -webkit-background-clip: initial;
    background-clip: initial;
    border: 1px solid var(--line-strong);
    border-radius: var(--radius-xs);
    padding: 5px 9px;
    margin-bottom: 10px;
  }

  #timeline .acts__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
    margin-top: 0;
  }

  #timeline .acts__act {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(244, 241, 234, 0.55);
  }

  #timeline .acts__period {
    font-size: 12px;
    font-weight: 600;
    color: rgba(244, 241, 234, 0.6);
  }

  #timeline .acts__item--finale .acts__period {
    color: var(--mh-gold);
  }

  #timeline .acts__title {
    margin: 0 0 6px;
    font: 600 19px/1.15 var(--font-display, 'IBM Plex Sans Condensed', sans-serif);
    min-height: 0;
  }

  #timeline .acts__line {
    margin: 0;
    max-width: none;
    font-size: 14px;
    line-height: 1.6;
    color: rgba(244, 241, 234, 0.8);
  }

  #timeline .acts__rules {
    margin-top: 12px;
    gap: 8px;
  }

  #timeline .acts__rules li {
    max-width: none;
    font-size: 14px;
    line-height: 1.6;
    color: rgba(244, 241, 234, 0.8);
  }

  /* Карточка не тянется по высоте — прижимать формулу к низу нечем */
  #timeline .acts__formula {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--line);
    gap: 10px;
  }

  #timeline .acts__f b {
    font-size: 26px;
  }

  #timeline .acts__now-mark {
    position: static;
    display: inline-block;
    margin-bottom: 8px;
  }

  #timeline .acts__item--now {
    border-color: rgba(232, 195, 106, 0.28) !important;
  }

  /* --- Live tracks --- */
  .prototype-shell {
    /* Верхние 8px достались от .tracks-mobile-intro: там стоял мобильный
       заголовок «Живые секции треков», но весь его текст был выключен, и от
       блока оставался только этот отступ. Разметку и правила снесли, зазор
       перед лентой треков держим здесь. */
    padding: 8px 0 0;
  }

  .track-partials-status {
    padding: 0 20px;
  }

  .live-track {
    min-height: 560px;
    margin-top: 18px;
    scroll-margin-top: 80px;
    border-top: 1px solid var(--line-soft);
    border-radius: 0 !important;
    display: flex;
    flex-direction: column;
  }

  .live-track__inner {
    padding: 26px 20px 34px;
    display: flex;
    flex: 1;
    flex-direction: column;
  }

  .stage-view {
    flex: 0 0 auto !important;
    display: flex;
    flex-direction: column;
  }

  .stage-view[data-stage-view='launch'] {
    flex: 1 1 auto !important;
    min-height: 100%;
  }

  .stage-view > * {
    animation: none !important;
  }

  /* Единый вид фонов на mobile: все треки как киберспорт — фото в полную силу,
     частичный ч/б, лёгкая вуаль. !important перебивает десктопные фильтры
     спорта/фитнеса (специфичность 2 класса) и базовый фильтр. */
  .live-track .live-track__hero img {
    filter: grayscale(0.65) contrast(1.03) brightness(0.74) !important;
  }

  /* Кадр киберспорта 2.67:1. 40%+ уводило пару «влево» (обрезало слева);
     держим ближе к левому краю снимка — оба персонажа и сдвиг «вправо». */
  .live-track--esports .live-track__hero img {
    object-position: 16% center;
  }

  /* Профспорт: атлет справа в широком кадре. На мобиле при десктопных 46%
     фигура уезжает к правому краю — сдвигаем окно к центру фигуры. */
  .live-track--professional .live-track__hero img {
    object-position: 72% 36%;
  }

  /* Фитнес: десктопные 18% держат гирю слева. На высоком мобильном окне
     фигура уезжает вправо — окно сдвигаем к атлету (правее по снимку). */
  .live-track--fitness .live-track__hero img {
    object-position: 72% 30%;
  }

  /* Медицина: учёные слева кадра, справа оборудование. На мобиле при
     дефолтном center пара уезжает влево — держим фигуры по центру. */
  #track-sports-medicine .live-track__hero img {
    object-position: 28% 42%;
  }

  .live-track__veil {
    opacity: 0.03 !important;
    background: linear-gradient(
      180deg,
      rgba(10, 11, 13, 0.74) 0%,
      rgba(10, 11, 13, 0.62) 34%,
      rgba(12, 13, 16, 0.93) 82%,
      #14161a 100%
    ) !important;
  }

  .live-track__hero-shade,
  .live-track__grid,
  .esp-hud {
    display: none;
  }

  .track-stage-devtool {
    order: 2;
    width: 100%;
    margin: 0 0 20px;
  }

  .track-stage-devtool__summary {
    min-height: 32px;
    padding: 0 11px;
    font-size: 9px;
  }

  .track-stage-switcher {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 6px;
    padding: 5px;
    margin: 8px 0 0;
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    background: rgba(10, 11, 13, 0.45);
    backdrop-filter: blur(var(--glass-blur-soft));
    -webkit-backdrop-filter: blur(var(--glass-blur-soft));
  }

  .track-stage-switcher__tab {
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    padding: 9px 2px;
    cursor: pointer;
    font: 600 11px/1.05 var(--font-body, Manrope, sans-serif);
    letter-spacing: 0.01em;
    background: transparent;
    color: rgba(244, 241, 234, 0.6);
    transition: all 0.2s ease;
  }

  .track-stage-switcher__tab[aria-selected='true'] {
    font-weight: 700;
    color: #0b0d10;
    background: var(--mh-gold);
    border-color: var(--mh-gold);
  }

  .live-track--esports .track-stage-switcher__tab[aria-selected='true'] {
    background: var(--mh-gold);
    border-color: var(--mh-gold);
  }

  .launch-head,
  .esp-launch-head,
  .nominees-head,
  .compact-bar {
    order: 1;
    /* Опора для шеврона: он абсолютный и лежит внутри h1, а без позиционированной
       шапки уезжал считаться от всей секции — отсюда прижатие к самому краю
       экрана и наезд на «02» в зеркальных треках. */
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    column-gap: 12px;
    row-gap: 7px;
    align-items: start;
    margin: 0 0 16px !important;
  }

  /* «02» над заголовком, а не слева от него. Рядом с номером заголовку
     оставалось 215px, а «Профессиональный» — 270px одним неразрывным словом:
     хвост уезжал под шеврон. На всю ширину шапки слово встаёт с зазором.
     Стадию жюри (.nominees-head, .compact-bar) не трогаем — там шеврона нет. */
  .launch-head,
  .esp-launch-head {
    grid-template-columns: minmax(0, 1fr);
    row-gap: 4px;
  }

  .launch-head .track-num,
  .esp-launch-head .track-num {
    grid-row: auto;
  }

  /* Заголовок занимает всю ширину шапки — полосу справа под шеврон не режем,
     он ушёл на строку номера. Именно эти 60px и держали кегль на 27px.

     Кегль общий для всех пяти секций, а потолок ему задаёт одно слово:
     «Профессиональный» — 16 букв, переносить негде. В IBM Plex Sans Condensed
     оно занимает 10.17px ширины на каждый 1px кегля, а шапка — это ширина
     экрана минус 46px полей. Отсюда формула; делитель 10.8 вместо 10.17 —
     запас ~6% на случай, когда шрифт не подгрузился и подставился системный.
     На 375px выходит 30.5px, на 320px — 25.4px, потолок 34px берётся с ~413px.
     Фиксированное значение тут ставить нельзя: 31px переживал 375, но на
     320px то же слово вылезало за экран на 36px. */
  .launch-head .track-title,
  .esp-launch-head .track-title {
    grid-column: 1;
    font-size: clamp(24px, calc((100vw - 46px) / 10.8), 34px);
  }

  /* Шеврон перехода на страницу трека. На десктопе он в зеркальных секциях
     уходит влево и смотрит влево — на мобиле раскладка у всех треков одна,
     поэтому и шеврон везде один: справа на строке номера, по её центру.
     Справа от «02» пустует 287px, так что заголовку под ним ничего не мешает.
     Размер задаётся кеглем: внутри всё в em, это единственная ручка. */
  .track-open,
  .live-track--mirror .track-open,
  .live-track--esports .track-open {
    left: auto;
    right: 0;
    /* половина строки номера: у .track-num font 40px/0.8 → 32px */
    top: calc(40px * 0.8 / 2);
    font-size: 36px;
    transform: translateY(-50%);
  }

  /* Рисунок остаётся 52×26 — до пальцевых 44px растягиваем только зону нажатия */
  .track-open::after {
    content: '';
    position: absolute;
    inset: -9px -6px;
  }

  .track-num,
  .esp-jury-bar__num,
  .nominees-head__num {
    font: 700 40px/0.8 var(--font-display, 'IBM Plex Sans Condensed', sans-serif);
    color: var(--mh-gold);
    flex-shrink: 0;
    grid-row: 1 / span 2;
  }

  .live-track--esports .track-num,
  .live-track--esports .esp-jury-bar__num,
  .live-track--esports .nominees-head__num {
    color: var(--mh-gold);
  }

  .track-title,
  .esp-jury-bar__title,
  .nominees-head__title {
    grid-column: 2;
    margin: 0;
    font: 700 27px/0.98 var(--font-display, 'IBM Plex Sans Condensed', sans-serif);
    letter-spacing: -0.01em;
    color: var(--mh-text);
    text-transform: none !important;
    text-shadow: 0 2px 18px rgba(0, 0, 0, 0.52);
  }

  .track-thesis,
  .nominees-head__thesis {
    display: none !important;
  }

  .sport-track-title__line {
    display: inline;
    white-space: normal;
  }

  .sport-track-title,
  .fitness-title {
    max-width: none !important;
    margin: 0 !important;
    font-family: var(--font-display) !important;
    font-weight: 700 !important;
    letter-spacing: -0.01em !important;
    text-transform: none !important;
  }

  .sport-track-thesis,
  .fitness-thesis {
    display: none !important;
  }

  .esp-launch-head {
    margin: 0 0 16px !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    max-width: none !important;
    padding: 0 !important;
    text-align: left !important;
  }

  .esp-launch-head .track-title {
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .esp-launch-thesis {
    display: none !important;
  }

  .esp-launch-bottom {
    position: static !important;
    order: 3;
    right: auto !important;
    bottom: auto !important;
    align-items: stretch !important;
    gap: 12px !important;
    max-width: none !important;
    margin: auto 0 0 !important;
    padding: 0 !important;
  }

  .launch-top {
    order: 4;
    position: static !important;
    inset: auto !important;
    display: flex !important;
    justify-content: flex-start !important;
    align-items: flex-start !important;
    width: 100% !important;
    max-width: none !important;
    margin: 12px 0 0 !important;
    display: none !important;
  }

  .launch-top .track-cta {
    align-self: flex-start;
  }

  .launch-bottom,
  .sport-leader-single,
  .fitness-duo,
  .fitness-council-duo,
  .esp-leaders-duo,
  .sport-council-single {
    order: 3;
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 100%;
    max-width: none !important;
    margin: auto 0 0 !important;
    padding: 0 !important;
  }

  .compact-bar .track-cta {
    display: none;
  }

  .leader-card,
  .sport-leader-card,
  .fitness-leader-card {
    position: relative !important;
    display: flex;
    flex-direction: row !important;
    gap: 14px;
    min-height: 0 !important;
    max-width: none;
    width: 100%;
    grid-template-columns: unset;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    padding: 12px;
    background: rgba(18, 20, 24, 0.5);
    backdrop-filter: blur(var(--glass-blur-soft));
    -webkit-backdrop-filter: blur(var(--glass-blur-soft));
    box-shadow: none;
    clip-path: none !important;
  }

  .live-track--esports .leader-card--esp-duo.leader-card--esp-launch,
  .live-track--esports .leader-card--esp-launch {
    position: relative !important;
    display: flex !important;
    flex-direction: row !important;
    gap: 14px;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-width: none !important;
    padding: 12px;
    border-radius: var(--radius-md);
    clip-path: none !important;
  }

  .leader-card__photo,
  .sport-leader-card__photo,
  .fitness-leader-card__photo {
    position: relative !important;
    inset: auto !important;
    order: 0 !important;
    /* Без !important ширину перебивает правило из live-track-base.css
       (.stage-view[data-stage-view="launch"] .launch-bottom > .leader-card…),
       оно тяжелее по селектору. Тогда при height: 92px коробка выходила
       197×92 — горизонтальная под вертикальный портрет 420×525, и от лица
       оставалась одна макушка. */
    width: 78px !important;
    height: 92px !important;
    min-height: 92px !important;
    flex: 0 0 auto;
    border-radius: var(--radius-sm);
    overflow: hidden;
    background: rgba(255, 255, 255, 0.05);
    border: 0 !important;
  }

  .live-track--esports .leader-card--esp-duo.leader-card--esp-launch .leader-card__photo,
  .live-track--esports .leader-card--esp-launch .leader-card__photo {
    position: relative !important;
    inset: auto !important;
    order: 0 !important;
    width: 78px !important;
    height: 92px !important;
    min-height: 92px !important;
    border-radius: var(--radius-sm)!important;
    border: 0 !important;
  }

  .live-track--esports .leader-card--esp-duo.leader-card--esp-launch .leader-card__photo::before,
  .live-track--esports .leader-card--esp-duo.leader-card--esp-launch .leader-card__photo::after {
    display: none !important;
  }

  .leader-card__photo img,
  .sport-leader-card__photo img,
  .fitness-leader-card__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
  }

  .sport-leader-card__photo::after,
  .fitness-leader-card__photo::after {
    display: none;
  }

  .leader-card__body,
  .sport-leader-card__body,
  .fitness-leader-card__body {
    position: relative !important;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start !important;
    gap: 4px;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: left !important;
  }

  .live-track--esports .leader-card--esp-duo.leader-card--esp-launch .leader-card__body,
  .live-track--esports .leader-card--esp-launch .leader-card__body {
    position: relative !important;
    inset: auto !important;
    order: 0 !important;
    z-index: 1;
    justify-content: center !important;
    min-height: 0 !important;
    padding: 0 !important;
    background: none !important;
  }

  .live-track--esports .leader-card--esp-duo.leader-card--esp-launch .leader-card__name,
  .live-track--esports .leader-card--esp-launch .leader-card__name {
    margin: 0 !important;
    font: 600 18px/1.05 var(--font-display, 'IBM Plex Sans Condensed', sans-serif) !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    text-shadow: none !important;
  }

  .live-track--esports .leader-card--esp-duo.leader-card--esp-launch .leader-card__role,
  .live-track--esports .leader-card--esp-launch .leader-card__role {
    margin: 0 !important;
    max-width: none !important;
    color: rgba(244, 241, 234, 0.62) !important;
    font: 12px/1.35 var(--font-body, Manrope, sans-serif) !important;
    -webkit-line-clamp: unset !important;
    line-clamp: unset !important;
  }

  .live-track--esports .leader-card--esp-duo.leader-card--esp-launch .leader-card__body::before {
    display: none !important;
  }

  .leader-card__eyebrow,
  .sport-leader-card__eyebrow,
  .fitness-leader-card__eyebrow {
    font-size: 10px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--mh-gold);
  }

  .live-track--esports .leader-card__eyebrow {
    color: var(--mh-gold);
  }

  .leader-card__name,
  .sport-leader-card__name,
  .fitness-leader-card__name {
    margin: 0 !important;
    font: 600 18px/1.05 var(--font-display, 'IBM Plex Sans Condensed', sans-serif);
    letter-spacing: 0;
  }

  .leader-card__role,
  .sport-leader-card__role,
  .fitness-leader-card__role {
    margin: 0 !important;
    font-size: 12px;
    line-height: 1.35;
    color: rgba(244, 241, 234, 0.62);
    transition: color 180ms ease;
    /* База зажимает должность в 2 строки; в узкой карточке длинные роли
       («Президент Футбольной Национальной Лиги») резались — даём третью */
    -webkit-line-clamp: 3;
    line-clamp: 3;
    min-height: 0;
  }

  /* Волошин: на мобиле краткая роль, без 7-строчного исключения с десктопа */
  .live-track--amateur .leader-card__role-full {
    display: none;
  }

  .live-track--amateur .leader-card__role-brief {
    display: inline;
  }

  .live-track--amateur .leader-card--reverse .leader-card__role {
    max-width: none;
    -webkit-line-clamp: 3;
    line-clamp: 3;
  }

  .leader-card:is(:hover, :focus-visible) .leader-card__role,
  .sport-leader-card:is(:hover, :focus-visible) .sport-leader-card__role,
  .fitness-leader-card:is(:hover, :focus-visible) .fitness-leader-card__role {
    color: var(--ink, var(--mh-text, #f4f1ea));
  }

  .leader-card__link,
  .sport-leader-card__link,
  .fitness-leader-card__link {
    font-size: 12px;
    color: var(--mh-gold);
    margin-top: 2px !important;
    padding: 0 !important;
    letter-spacing: 0;
    text-transform: none;
  }

  .live-track--esports .leader-card__link {
    color: var(--mh-gold);
  }

  .track-cta {
    display: inline-flex !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    min-width: 0 !important;
    max-width: max-content !important;
    justify-content: center;
    align-items: center;
    gap: 6px;
    align-self: flex-start;
    margin: 0 !important;
    font: 600 12px/1 var(--font-body, Manrope, sans-serif);
    letter-spacing: 0.04em;
    color: var(--mh-text);
    text-decoration: none;
    border: 1px solid rgba(232, 195, 106, 0.4);
    border-radius: var(--radius-sm);
    padding: 11px 16px !important;
    background: rgba(232, 195, 106, 0.06);
    text-transform: none !important;
    box-shadow: none !important;
  }

  .track-cta::before,
  .track-cta::after {
    display: none !important;
  }

  .track-cta__arrow {
    display: inline !important;
    align-self: center !important;
    width: auto !important;
    min-width: 0 !important;
    height: auto !important;
    padding: 0 !important;
    background: none !important;
    transform: none !important;
  }

  .jury-layout,
  .sport-jury-layout,
  .fitness-jury-layout,
  .esp-jury-layout {
    display: flex;
    flex-direction: column;
    gap: 14px;
  }

  .jury-layout > .leader-card--vertical {
    display: flex;
    gap: 12px;
    padding: 10px;
    border-radius: var(--radius-md);
  }

  .jury-layout > .leader-card--vertical .leader-card__photo {
    width: 60px;
    height: 72px;
    border-radius: var(--radius-sm);
  }

  .jury-layout > .leader-card--vertical .leader-card__name {
    font-size: 16px;
  }

  .panel-title {
    font-size: 11px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--mh-gold);
  }

  .live-track--esports .panel-title {
    color: var(--mh-esports-accent);
  }

  .expert-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }

  .expert-card {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 11px;
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    background: rgba(255, 255, 255, 0.03);
  }

  .expert-card__photo {
    width: 38px;
    height: 38px;
    border-radius: var(--radius-sm);
  }

  .expert-card strong {
    font: 600 13px/1.1 var(--font-display, 'IBM Plex Sans Condensed', sans-serif);
  }

  .expert-card__role,
  .expert-card > span:not(.expert-card__photo) {
    font-size: 10.5px;
    line-height: 1.3;
    color: var(--muted, rgba(244, 241, 234, 0.5));
    transition: color 180ms ease;
  }

  .expert-card:hover .expert-card__role,
  .expert-card:hover > span:not(.expert-card__photo) {
    color: var(--ink, var(--mh-text, #f4f1ea));
  }

  .nominees-total--cta {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    gap: 14px;
    width: 100%;
    margin-top: 6px;
    padding: 13px 15px;
    border: 1px solid rgba(232, 195, 106, 0.4);
    border-radius: var(--radius-md);
    background: linear-gradient(135deg, rgba(232, 195, 106, 0.14), rgba(232, 195, 106, 0.04));
    text-decoration: none;
    color: inherit;
  }

  .nominees-total__num {
    font: 700 36px/0.8 var(--font-display, 'IBM Plex Sans Condensed', sans-serif);
    color: var(--mh-gold);
  }

  .live-track--esports .nominees-total__num {
    color: var(--mh-esports-accent);
  }

  .nominee-grid {
    display: flex;
    flex-direction: column;
    gap: 14px;
  }

  .nominee-col {
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    background: rgba(255, 255, 255, 0.035);
    overflow: hidden;
  }

  .nominee-col__head {
    padding: 11px 14px;
    border-bottom: 1px solid var(--line-soft);
  }

  .nominee-col__tag {
    font: 700 11px/1 var(--font-display, 'IBM Plex Sans Condensed', sans-serif);
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #f6e0a0;
    border: 1px solid var(--line-strong);
    border-radius: var(--radius-pill);
    padding: 6px 11px;
    background: rgba(232, 195, 106, 0.1);
  }

  .nominee-rows {
    list-style: none;
    margin: 0;
    padding: 0;
  }

  .nominee-rows li {
    border-top: 1px solid var(--line-soft);
  }

  .nominee-row-btn {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 13px 14px;
    background: transparent;
    border: 0;
    cursor: pointer;
    text-align: left;
    color: var(--mh-text);
    font: 500 14px/1.2 var(--font-body, Manrope, sans-serif);
  }

  .nominee-row-btn__dot {
    width: 7px;
    height: 7px;
    flex: 0 0 auto;
    border-radius: var(--radius-pill);
    background: rgba(232, 195, 106, 0.55);
  }

  .nominee-row-btn[aria-expanded='true'] .nominee-row-btn__dot {
    background: var(--mh-gold);
  }

  .live-track--esports .nominee-row-btn[aria-expanded='true'] .nominee-row-btn__dot {
    background: var(--mh-esports-accent);
  }

  .nominee-row-btn__sign {
    margin-left: auto;
    font-size: 18px;
    line-height: 1;
    color: var(--mh-gold);
  }

  .live-track--esports .nominee-row-btn__sign {
    color: var(--mh-esports-accent);
  }

  .nominee-detail {
    padding: 0 14px 14px 31px;
  }

  .nominee-detail__meta {
    display: block;
    margin-bottom: 7px;
    font-size: 11px;
    letter-spacing: 0.04em;
    color: var(--mh-gold);
  }

  .live-track--esports .nominee-detail__meta {
    color: var(--mh-esports-accent);
  }

  .nominee-detail p {
    margin: 0 0 9px;
    font-size: 13px;
    line-height: 1.5;
    color: rgba(244, 241, 234, 0.75);
  }

  .nominee-detail a {
    font-size: 12px;
    color: var(--mh-text);
    text-decoration: none;
    border-bottom: 1px solid var(--mh-gold);
    padding-bottom: 1px;
  }

  .nominee-col__more {
    display: block;
    padding: 12px 14px;
    border-top: 1px solid var(--line-soft);
    font-size: 12px;
    color: rgba(244, 241, 234, 0.6);
    text-decoration: none;
  }

  .nominees-footer {
    display: none;
  }

  .winner-grid {
    display: flex;
    flex-direction: column;
    gap: 12px;
  }

  .winner-card {
    position: relative;
    display: flex;
    gap: 13px;
    align-items: flex-start;
    border: 1px solid rgba(232, 195, 106, 0.35);
    border-radius: var(--radius-md);
    padding: 16px;
    background: linear-gradient(180deg, rgba(34, 28, 15, 0.5), rgba(12, 11, 9, 0.6));
  }

  .winner-card::before {
    display: none;
  }

  .winner-card__wreath {
    width: 52px;
    height: 52px;
    flex: 0 0 auto;
    display: grid;
    place-items: center;
  }

  .winner-card__wreath svg {
    display: none;
  }

  .winner-card__avatar {
    width: 52px;
    height: 52px;
    border-radius: var(--radius-sm);
    border: 1px solid rgba(232, 195, 106, 0.5);
    background: rgba(232, 195, 106, 0.08);
  }

  .winner-card__tag {
    display: block;
    margin-bottom: 5px;
    font-size: 10.5px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--mh-gold);
  }

  .winner-card__name {
    display: block;
    margin-bottom: 7px;
    font: 600 19px/1.05 var(--font-display, 'IBM Plex Sans Condensed', sans-serif);
  }

  .winner-card__rule {
    display: block;
    width: 26px;
    height: 2px;
    margin-bottom: 9px;
    background: var(--mh-gold);
  }

  .winner-card__desc {
    display: block;
    font-size: 12.5px;
    line-height: 1.5;
    color: rgba(244, 241, 234, 0.72);
  }

  #track-sports-medicine::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    z-index: 2;
    height: 180px;
    pointer-events: none;
    background: linear-gradient(180deg, rgba(20, 22, 26, 0) 0%, rgba(31, 34, 38, 0.62) 72%, rgba(31, 34, 38, 0) 100%);
  }

  /* --- FAQ --- */
  .faq-section {
    position: relative;
    z-index: 4;
    padding: 52px 20px 56px;
    margin-top: -1px;
    border-top: 0;
    background: linear-gradient(
      180deg,
      rgba(31, 34, 38, 0) 0%,
      rgba(31, 34, 38, 0.35) 10%,
      #23272c 22%,
      #2d3339 42%,
      #343a40 64%,
      #373d43 82%,
      #30353b 100%
    );
  }

  .faq-shell {
    display: block;
    width: 100%;
    padding: 0;
  }

  .faq-title {
    margin: 0 0 12px;
    max-width: none;
    font: 700 34px/1 var(--font-display, 'IBM Plex Sans Condensed', sans-serif);
    letter-spacing: -0.01em;
  }

  .faq-intro {
    display: none !important;
  }

  .faq-filters {
    display: none !important;
  }

  .faq-list {
    border-top: 0;
  }

  .faq-card {
    border: 0;
    border-radius: 0;
    background: transparent;
    overflow: visible;
  }

  .faq-card summary {
    padding: 15px 0;
    gap: 11px;
    min-height: 0;
  }

  .faq-num {
    font: 700 12px/1.3 var(--font-body, Manrope, sans-serif);
    color: var(--mh-gold);
  }

  .faq-question {
    font: 600 14px/1.35 var(--font-body, Manrope, sans-serif);
  }

  .faq-answer {
    padding: 0 0 16px 38px;
    font-size: 13px;
    line-height: 1.6;
    color: rgba(244, 241, 234, 0.72);
  }

  /* --- Partners --- */
  /* Кадр тот же, что на десктопе. Раньше здесь оставался дневной снимок волны 03
     (средняя 143) и гасился CSS-фильтром — мобильный подвал из-за этого светил
     ярче десктопного. Новый кадр приходит уже притушенным, фильтр не нужен. */
  .partners-footer-band .partners-footer-band__bg {
    background-image: url('../images/partners-footer-bg-arena-interior.webp');
    background-size: cover;
    background-position: center 42%;
    filter: none;
    -webkit-mask-image: linear-gradient(180deg, transparent 0, rgba(0, 0, 0, 0.2) 72px, #000 190px);
    mask-image: linear-gradient(180deg, transparent 0, rgba(0, 0, 0, 0.2) 72px, #000 190px);
  }

  .partners-footer-band {
    margin-top: -90px !important;
    padding-top: 90px;
    border-top: 0 !important;
    overflow: visible !important;
    z-index: 2;
  }

  .partners-footer-band::before {
    display: block;
    inset: -170px 0 auto;
    height: 420px;
    background: linear-gradient(
      180deg,
      rgba(48, 53, 59, 0) 0%,
      rgba(48, 53, 59, 0.92) 32%,
      rgba(48, 53, 59, 0.78) 58%,
      rgba(48, 53, 59, 0.32) 82%,
      rgba(48, 53, 59, 0) 100%
    );
  }

  .glassbg--partners-footer .partners-footer-band__veil {
    background:
      linear-gradient(180deg, rgba(20, 23, 28, 0.16) 0%, rgba(20, 23, 28, 0.45) 54%, rgba(5, 6, 8, 0.86) 100%),
      radial-gradient(ellipse 90% 70% at 50% 18%, transparent 30%, rgba(5, 6, 8, 0.24) 100%);
  }

  #partners.partners-band {
    scroll-margin-top: 80px;
    padding: 54px 20px 28px;
  }

  #partners .partners-band__intro {
    padding: 0;
  }

  #partners .partners-band__intro-copy h1,
  #partners .partners-band__intro-copy h2 {
    margin: 0 0 24px;
    font: 700 34px/1 var(--font-display, 'IBM Plex Sans Condensed', sans-serif);
    letter-spacing: -0.01em;
  }

  #partners .partners-band__lead {
    display: none;
  }

  #partners .partners-band__roster-wrap {
    padding: 0;
  }

  #partners .partners-roster {
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
    width: 100%;
    min-width: 0;
  }

  #partners .partners-roster__item {
    grid-template-rows: none;
    gap: 12px;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    min-width: 0;
    width: 100%;
  }

  #partners .partners-roster__tier {
    font-size: 10px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--mh-gold);
  }

  #partners .partners-card {
    min-height: 104px;
    padding: 14px 16px;
    border-radius: var(--radius-sm);
    background: rgba(255, 255, 255, 0.06);
  }

  #partners .partners-card__mark--technopark {
    --logo-h: 68px;
  }

  #partners .partners-card__mark--vsporte {
    --logo-h: 44px;
  }

  #partners .partners-card__mark--dnk {
    --logo-h: 76px;
  }

  #partners .partners-card__mark--tbank {
    --logo-h: 54px;
  }

  #partners .partners-roster__item:has(.partners-card__mark--tbank) .partners-card {
    padding-inline: 8px;
  }

  /* Окрашивание живёт в partners-footer.css и на тач-экранах отключено
     (@media hover), но по клавиатурному фокусу цвет приходит и здесь —
     фон карточки перекрыт локальным правилом выше, возвращаем подложку. */
  #partners .partners-card--linked:focus-visible {
    background: rgba(243, 240, 234, 0.94);
  }

  #partners .partners-card--linked:focus-visible .partners-card__logo--mono {
    opacity: 0;
  }

  #partners .partners-card--linked:focus-visible .partners-card__logo--color {
    opacity: 1;
  }

  #partners .partners-roster__name {
    font: 600 15px/1.25 var(--font-display, 'IBM Plex Sans Condensed', sans-serif);
    color: rgba(244, 241, 234, 0.92);
    overflow-wrap: anywhere;
  }

  #partners .partners-roster__desc {
    font-size: 13px;
    line-height: 1.55;
    color: rgba(244, 241, 234, 0.7);
  }

  /* --- Footer «Билет» --- */
  .site-footer {
    --footer-edge: 20px;
    padding: 44px 0 20px;
    background: transparent;
  }

  .site-footer__head {
    margin-bottom: 20px;
  }

  .site-footer__kicker {
    font-size: 12px;
    letter-spacing: 0.12em;
  }

  #partners .partners-band__contact {
    padding: 22px 0 12px;
  }

  .site-footer__contact {
    gap: 12px;
  }

  .site-footer__role {
    font-size: 14px;
    color: rgba(244, 241, 234, 0.62);
  }

  .site-footer__contact-row {
    gap: 10px 18px;
  }

  .site-footer__name {
    font-size: 22px;
  }

  .site-footer__mail,
  .site-footer__tg {
    font-size: 20px;
    letter-spacing: -0.02em;
  }

  .site-footer__track {
    padding-top: 11px;
    padding-bottom: 11px;
  }

  .site-footer__track-name {
    font-size: 16px;
  }

  .site-footer__line {
    font-size: 13px;
    gap: 4px 12px;
  }

  .site-footer__line li + li::before {
    margin-right: 12px;
  }

  .site-footer__org {
    display: none;
  }

  /* Талон в поток: своя ширина, все скругления на месте — встык с краем
     он встаёт только там, где стоит сбоку от строк. */
  .site-footer__ticket {
    padding: 16px 20px 16px 34px;
    border-radius: var(--radius-md);
    justify-items: center;
    text-align: center;
  }

  .site-footer__ticket::before {
    left: 16px;
    top: 14px;
    bottom: 14px;
  }

  .site-footer__date {
    font-size: 34px;
  }

  .site-footer__ticket-note {
    font-size: 12px;
  }

  .site-footer__copy {
    font-size: 11px;
    line-height: 1.6;
    color: rgba(244, 241, 234, 0.4);
  }

  /* --- Dev tools hidden on mobile --- */
  .stage-console,
  .track-tune-panel {
    display: none !important;
  }

  .track-cta,
  .launch-top {
    display: none !important;
  }
}

@media (min-width: 721px) {
  .mobile-topbar,
  .mobile-menu {
    display: none !important;
  }
}
