/* Прелоадер */

.preloader {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(var(--ids__background-RGB), 1);
  transition: opacity 0.4s ease;
}

.preloader[data-preloader="off"] {
  display: none;
}

.preloader.is-hidden {
  opacity: 0;
  pointer-events: none;
}

.preloader__logo {
  width: 12em;
  height: auto;
}

/* Заголовки страницы */

h1, h2, h3 {
  font-family: "Drond Narrow", "Rooftop", sans-serif;
  font-weight: 600;
}

/* Слой с камнем и буквами */

.hero__space {
  height: 5vw;
}

.hero__space-bottom {
  height: 10vw;
}

@media (width < 768px) {
  .hero__space {
    height: -10vw;
  }

  .hero__space-bottom {
    height: 120vw;
  }
}

.site-rock-layer {
  position: absolute;
  z-index: 0;
  pointer-events: none;
}

/* Лёгкий параллакс при скролле — сдвиг задаётся отдельным свойством
   translate (не transform), чтобы не конфликтовать с поворотами/scale
   ниже. Значение --parallax-y выставляет JS (см. скрипт у разметки
   .site-rock-layer). */
.site-rock-layer__rock,
.site-rock-layer__letter {
  translate: 0 var(--parallax-y, 0px);
}

.site-rock-layer__rock {
  display: block;
  position: absolute;
  left: -63vw;
  top: 16vw;
  width: 125vw;
  transform: rotateZ(24deg);
}

.site-rock-layer__letter {
  position: absolute;
  width: 20vw;
  filter: drop-shadow(0 0.5em 1em rgba(0, 0, 0, 0.0));
}

.site-rock-layer__letter.d1 {
  left: 0;
  top: 10vw;
  transform: rotate(-16deg);
  z-index: 2;
}

.site-rock-layer__letter.o1 {
  left: 7vw;
  top: 7vw;
  transform: rotate(-1deg) scale(-1, 1);
  z-index: -1;
}

.site-rock-layer__letter.d2 {
  left: 15vw;
  top: 9vw;
  transform: rotate(2deg);
  z-index: 2;
}

.site-rock-layer__letter.o2 {
  left: 23vw;
  top: 7vw;
  transform: rotateZ(0deg) scale(-1, 1);
  z-index: 1;
}

header,
main,
footer {
  position: relative;
  z-index: 1;
}

header {
  z-index: 5;
}

/* Хедер с логотипом и таймлайном лет */

.page-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: calc(var(--ids__density) * 1em);
}

.page-header__logo {
  display: flex;
  align-items: center;
  gap: 0.5em;
  font-weight: 700;
  font-size: 0.9em;
  letter-spacing: 0.02em;
}

.page-header__logo svg {
  width: 1.8em;
  height: 1.8em;
}

.years-nav {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.7em;
  flex-wrap: wrap;
}

.years-nav__list {
  display: contents;
}

.years-nav a {
  font-size: 0.75em;
  color: rgba(var(--ids__text-RGB), 1);
  text-decoration: none;
}

.years-nav a:hover {
  color: rgba(var(--ids__text-RGB), 1);
  text-decoration: underline;
  text-decoration-color: currentColor;
}

.years-nav .current {
  background: rgba(var(--ids__text-RGB), 1);
  color: rgba(var(--ids__background-RGB), 1);
  border: none;
  border-radius: 2em;
  padding: 0.35em 0.9em;
  font-size: 0.65em;
  font-family: inherit;
  line-height: inherit;
  cursor: pointer;
}

@media (width < 768px) {
  .years-nav__list {
    display: none;
    position: absolute;
    top: calc(100% + 0.5em);
    right: 0;
    z-index: 20;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.1em;
    max-height: 60vh;
    overflow-y: auto;
    padding: 0.7em 1em;
    background: rgba(var(--ids__background-RGB), 1);
    border: 1px solid rgba(var(--ids__text-RGB), 0.12);
    border-radius: var(--ids__radius);
    box-shadow: 0 0.6em 1.6em rgba(0, 0, 0, 0.14);
  }

  .years-nav.open .years-nav__list {
    display: flex;
  }

  .years-nav__list a {
    font-size: 1em;
    padding: 0.25em 0;
  }

  .years-nav .current::after {
    content: "▾";
    margin-left: 0.35em;
    font-size: 0.85em;
    display: inline-block;
  }

  .years-nav.open .current::after {
    transform: rotate(180deg);
  }
}

/* Hero-блок */

.hero {
  position: relative;
  padding-top: calc(var(--ids__density) * 1.5em);
}

.hero-top {
  position: relative;
}

/* Заголовочная колонка — 2/3 ширины, пустая слева — 1/3. Только десктоп,
   на мобилке порядок --columns из .ids__sequence.XL не трогаем (колонки
   и так стоят в столбик). */
   
@media (width >= 768px) {
  .hero__title-row .ids__sequence-item:nth-child(1) {
    width: calc((100% - var(--gap)) / 3);
  }

  .hero__title-row .ids__sequence-item:nth-child(2) {
    width: calc((100% - var(--gap)) * 2 / 3);
  }
}

/* min-width:0 — иначе flex-элемент не сжимается уже своего контента, и
   крупный h1 может раздвинуть колонку шире 2/3 и вытолкнуть страницу
   вбок (горизонтальный скролл / белая полоса справа). */
.hero__title-row .ids__sequence-item {
  min-width: 0;
}

.hero__title h1 {
  overflow-wrap: break-word;
}


.hero__text {
  position: relative;
  padding-top: calc(var(--ids__density) * 1em);
  margin-left: 46%;
  display: flex;
  flex-direction: column;
  gap: calc(var(--ids__density) * 0.8em);

  @media (width < 768px) {
    margin-left: 0;
  }
}

.hero__title {
  display: flex;
  align-items: flex-start;
  gap: 1em;
  flex-wrap: wrap;
}

.hero__title h1 {
  margin: 0;
  font-size: 8em!important;
  line-height: 0.9;
}

.hero__badge {
  display: inline;
  align-items: center;
  margin-top: 0.3em;
}

.hero__badge img, .expedition-logo {
  width: 16vw;
  padding-left: 1.3vw;
  display: inline;
}

.date-pill {
  position: relative;
  display: flex;
  width: fit-content;
  margin-left: auto;
  margin-bottom: -4vw;
  color: rgba(var(--ids__background-RGB), 1);
  border-radius: 2em;
  padding: 0.5em 0.5em;
  font-family: "Drond Narrow";
  font-weight: 600;
  font-size: 2.5em;
}

.date-pill-badge {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}

.date-pill__text {
  position: relative;
  z-index: 1;
  bottom: 0.8vw;
  left: 0;
}

/* Мобильная версия хиро */
@media (width < 768px) {

  .site-rock-layer__rock {
    left: -92vw;
    top: 105vw;
    width: 180vw;
    transform: rotateZ(15deg);
  }

  .site-rock-layer__letter.d1 {
    left: -2vw;
    top: 100vw;
    width: 55vw;
  }

  .site-rock-layer__letter.o1 {
    left: 20vw;
    top: 100vw;
    width: 55vw;
    transform: rotateZ(-20deg) scale(-1,1);
  }

  .site-rock-layer__letter.d2 {
    left: 20vw;
    top: 140vw;
    width: 55vw;
  }

  .site-rock-layer__letter.o2 {
    left: 45vw;
    top: 140vw;
    width: 55vw;
    transform: rotateZ(2deg) scale(-1,1);
  }

  .expedition-logo {
    width: 20vw;
    margin-bottom: 2vw;
  }

  .date-pill {
  margin-bottom: -7vw;
  padding: 0.5em 0.5em;
  font-size: 1.5em;
}

  .date-pill__text {
    bottom: 1.6vw;
  }

  .hero__title h1 {
    font-size: 3.8em;
  }

  .hero > .ids__wrapper.L {
    --hero-inset: 5vw;
    padding-left: var(--hero-inset);
    padding-right: var(--hero-inset);
  }

}

/* Карточки */

.cards-row {
  display: flex;
  gap: calc(var(--ids__density) * 1em);
  align-items: flex-start;
  margin-top: calc(var(--ids__density) * 1.5em);

  @media (width < 768px) {
    flex-direction: column;
  }
}

.card {
  flex: 1;
  background: rgba(var(--ids__surface-RGB), 1);
  border-radius: var(--ids__radius);
  corner-shape: squircle;
  padding: calc(var(--ids__density) * 1.4em);
}

.card p {
  font-size: 1em;
}

/* Карточка "15 лет в пути" под шапкой */

.expedition-card {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: calc(var(--ids__density) * 1em);
  padding: calc(var(--ids__density) * 1.6em);
  padding-right: 16vw;
  border-radius: calc(var(--ids__radius) * 1.5);
}

.expedition-card__heading {
  flex: 0 0 40%;
  margin: 0;
  font-size: 3em!important;
  line-height: 0.9!important;
}

.expedition-card__text {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: calc(var(--ids__density) * 0.8em);
  margin-top: 1vw;
}

.expedition-card__badge {
  position: absolute;
  top: 0;
  right: calc(var(--ids__density) * 2em);
  width: 6em;
  height: auto;
}

@media (width < 768px) {
  .expedition-card {
    flex-direction: column;
    padding-right: calc(var(--ids__density) * 1.4em);
    padding: calc(var(--ids__density) * 1em);
  }

  .expedition-card__heading {
    flex: none;
    font-size: 3em!important;
    max-width: 50vw;
    margin-bottom: 0!important;
  }

  .expedition-card__badge {
    top: 0;
    right: calc(var(--ids__density) * 1.4em);
    width: 5em;
  }

  .expedition-card__text {
    margin-top: 0;
  }
}

.takeaway {
  flex: 0.75;
  padding-top: calc(var(--ids__density) * 0.6em);
}

.takeaway p {
  font-family: "Drond Narrow";
  font-weight: 600;
  font-size: 1.8em;
  line-height: 1.1;
}

/* Промо-баннер */

.promo-banner {
  position: relative;
  background: rgba(var(--ids__surface-RGB), 1);
  border-radius: var(--ids__radius);
  corner-shape: squircle;
  overflow: hidden;
  margin-top: calc(var(--ids__density) * 1.5em);
  display: flex;
  align-items: center;
  gap: calc(var(--ids__density) * 1.6em);
  padding: calc(var(--ids__density) * 1.6em) calc(var(--ids__density) * 2em);

  @media (width < 768px) {
    flex-direction: column;
    align-items: flex-start;
    padding: calc(var(--ids__density) * 1.2em);
  }
}

.promo-banner__body {
  position: relative;
  z-index: 1;
  flex: 1;
}

.promo-banner__body h2 {
  margin: 0 0 0.3em 0;
  font-size: 2.2em;
}

.promo-banner__body p {
  font-size: 1.1em;
  margin-bottom: 1em;
}

.promo-banner .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(var(--ids__accent-RGB), 1);
  color: rgba(var(--ids__background-RGB), 1) !important;
  border-radius: 2em;
  padding: 0.7em 1.8em;
  font-family: "Rooftop";
  font-weight: 500;
  font-size: 1.2em;
  text-decoration: none !important;
}

.promo-banner__arrow {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 30vw;
  opacity: 1;
  z-index: 0;
  pointer-events: none;
}

/* Табы дней */

.schedule__tabs {
  display: flex;
  gap: 1em;
  align-items: flex-start;
}

.schedule__tab {
  flex: 1;
  border-radius: var(--ids__radius);
  padding: 1.4em 1.6em;
  height: 17vw;
  cursor: pointer;
  position: relative;
  z-index: 1;
  background: rgba(var(--ids__accent-RGB), 1);
  color: #fff;
  transition: padding-bottom 0.35s ease, border-radius 0.35s ease, transform 0.3s ease;
}

.schedule__tab:not(.active):hover {
  transform: translateY(-2vw);
  padding-bottom: calc(1.4em + 2vw);
}

.schedule__tab h2 {
  margin: 0 0 0.2em;
  font-size: 2.2em;
  line-height: 1;
}

.schedule__tab p {
  margin: 0;
  opacity: 0.85;
}

.schedule__tab.active {
  background: rgba(var(--ids__surface-RGB), 1);
  color: rgba(var(--ids__text-RGB), 1);
  padding-bottom: calc(1.4em + var(--ids__radius));
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  position: relative;
  z-index: 2;
  cursor: default;
}

.schedule__tab.active p {
  opacity: 0.6;
}

/* Момент переключения: только что активированный таб ещё "поднят" —
   с предыдущего hover, пока курсор с него не ушёл (см. JS, класс
   .schedule__tab--settling). Как только курсор уходит, класс снимается,
   и таб с компенирующим смещением after плавно садится на место. */
.schedule__tab.active.schedule__tab--settling {
  transform: translateY(-2vw);
}

/* Стыковка табов */

.schedule[data-active-day="1"] .schedule__tab.active::after {
  --tab-overlap: calc(var(--ids__radius) * 2.42);
  content: "";
  position: absolute;
  right: calc(-1 * var(--ids__radius));
  bottom: calc(1.6em + var(--tab-overlap));
  width: var(--ids__radius);
  height: var(--ids__radius);
  background: radial-gradient(
    circle at top left,
    transparent var(--ids__radius),
    rgba(var(--ids__surface-RGB), 1) calc(var(--ids__radius) + 0.5px)
  );
  pointer-events: none;
  transform: rotateZ(90deg);
  transition: transform 0.3s ease;
}

.schedule[data-active-day="1"] .schedule__tab.active.schedule__tab--settling::after {
  transform: translateY(2vw) rotateZ(90deg);
}

.schedule[data-active-day="2"] .schedule__tab.active::after {
  --tab-overlap: calc(var(--ids__radius) * 2.42);
  content: "";
  position: absolute;
  left: calc(-1 * var(--ids__radius));
  bottom: calc(1.6em + var(--tab-overlap));
  width: var(--ids__radius);
  height: var(--ids__radius);
  background: radial-gradient(
    circle at top right,
    transparent var(--ids__radius),
    rgba(var(--ids__surface-RGB), 1) calc(var(--ids__radius) + 0.5px)
  );
  pointer-events: none;
  transform: rotateZ(-90deg);
  transition: transform 0.3s ease;
}

.schedule[data-active-day="2"] .schedule__tab.active.schedule__tab--settling::after {
  transform: translateY(2vw) rotateZ(-90deg);
}

/* При переключении таба его ::after создаётся заново (у прежнего активного
   таба класс .active снимается — псевдоэлемент исчезает целиком, у нового
   появляется). Без @starting-style новый ::after анимированно "выкручивается"
   из transform:none в rotateZ(90/-90deg) — этого быть не должно, стыковка
   должна появляться сразу в конечном положении. @starting-style задаёт
   стартовое значение, равное конечному, поэтому transition не запускается. */
@starting-style {
  .schedule[data-active-day="1"] .schedule__tab.active::after {
    transform: rotateZ(90deg);
  }

  .schedule[data-active-day="2"] .schedule__tab.active::after {
    transform: rotateZ(-90deg);
  }
}

/* Контент дней */
.schedule__day {
  display: none;
  --day-pad: 1.6rem;
  padding: var(--day-pad);
  padding-bottom: 19vw;
  --tab-overlap: calc(var(--ids__radius) * 3.5);
  margin-top: calc(-1 * var(--tab-overlap));
  border-radius: 0 0 var(--ids__radius) var(--ids__radius);
  position: relative;
  z-index: 3;
  transition: border-radius 0.35s ease;
}

.schedule__day.active {
  display: block;
  background: rgba(var(--ids__surface-RGB), 1);
}

.schedule[data-active-day="1"] .schedule__day.active {
  border-top-left-radius: 0;
  border-top-right-radius: var(--ids__radius);
}

.schedule[data-active-day="2"] .schedule__day.active {
  border-top-left-radius: var(--ids__radius);
  border-top-right-radius: 0;
}

/* Мобильная версия расписания */
@media (width < 768px) {

  .schedule__tab {
    height: 50vw;
    padding-bottom: 50vw;
    padding: 1em 1.2em;
  }

  .schedule__tab h2 {
    font-size: 1.6em;
  }

  .schedule__tab p {
    font-size: .85em;
  }

  .schedule__day {
    --day-pad: 0.5rem;
    margin-bottom: 20vw;
  }
}

/* Расписание */

.slot {
  background: rgba(var(--ids__background-RGB), 1);
  border: 1.5px solid rgba(var(--ids__text-RGB), 0.1);
  border-radius: var(--ids__radius);
  overflow: hidden;
  margin-bottom: 0.5em;
  transition: border-color 0.2s;
}

.slot--accent {
  border-color: rgba(var(--ids__accent-RGB), 1);
}

.slot__header {
  display: flex;
  align-items: baseline;
  gap: 1.5em;
  padding: 1.2em 1.6em;
  list-style: none;
}

.slot__header::-webkit-details-marker {
  display: none;
}

.slot__time {
  font-weight: 700;
  white-space: nowrap;
  flex-shrink: 0;
  min-width: 7em;
}

.slot__title {
  flex: 1;
}

.slot__hall {
  color: rgba(var(--ids__accent-RGB), 1);
  font-size: 0.9em;
  white-space: nowrap;
  flex-shrink: 0;
}

.slot__body {
  padding: 0 1.6em 1.6em calc(1.6em + 7em + 1.5em);
}

.slot__body .ids__sequence-item {
  --columns: 3;
}

@media (width < 768px) {
  .slot__header {
    flex-wrap: wrap;
    align-items: baseline;
    row-gap: 0.3em;
  }

  .slot__time {
    order: 1;
  }

  .slot__hall {
    order: 2;
    margin-left: auto;
  }

  .slot__title {
    order: 3;
    flex-basis: 100%;
  }

  .slot__body {
    padding-left: 1.6em;
  }
}

/* Спикер */

figure.speaker__photo.XS {
  width: auto;
}

.speaker__photo {
  margin: 0 0 0.6em;
}

.speaker__photo img {
  width: 4em;
  height: 4em;
  border-radius: 50%;
  object-fit: cover;
  display: block;
}

.speaker__name {
  margin: 0 0 0.2em;
}

.speaker__role {
  font-size: 0.85em;
  color: rgba(var(--ids__text-RGB), 0.6);
  margin: 0 0 0.3em;
}

.speaker__topic {
  font-size: 0.85em;
  margin: 0;
}

/* Смотреть трансляцию */

.watch-stream {
  display: flex;
  align-items: center;
  gap: 0.8em;
  margin-bottom: 1.4em;
}

.watch-stream__icon {
  display: block;
  width: 2.6em;
  height: 2.6em;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  text-decoration: none;
}

.watch-stream .watch-stream__icon {
  color: rgba(var(--ids__accent-RGB), 1);
  transition: color 0.2s;
}

.watch-stream .watch-stream__icon:hover {
  color: #000;
}

.watch-stream__icon svg {
  width: 100%;
  height: 100%;
  display: block;
}

.watch-stream span {
  font-size: 1.1em;
}

/* Трансляция ещё не началась: иконки VK/YouTube залиты серым и некликабельны,
   текст приглушён — так видно, что ссылки появятся позже. Чтобы включить
   трансляцию, уберите класс watch-stream--disabled у контейнера в разметке. */
.watch-stream--disabled .watch-stream__icon,
.watch-stream--disabled .watch-stream__icon:hover {
  color: rgba(var(--ids__text-RGB), 0.3);
  pointer-events: none;
  cursor: default;
}

.watch-stream--disabled span {
  color: rgba(var(--ids__text-RGB), 0.65);
}

/* Заметка внутри слота */

.slot__note {
  display: block;
  font-size: 0.7em;
  opacity: 0.6;
  margin-top: 0.3em;
  font-weight: 400;
}

/* Сетка треков (день 2) */

.track-grid {
  --time-col-w: 7.5em;
  --row-fill: rgba(var(--ids__background-RGB), 0);
  --row-gap: 0.5em;
  --head-gap: 1.1em;
  font-size: 0.8em;
}

.track-grid__head-row,
.track-grid__body {
  display: grid;
  grid-template-columns: var(--time-col-w) repeat(4, minmax(11em, 1fr));
  gap: var(--row-gap);
}

.track-grid__head-row {
  position: sticky;
  top: 0;
  z-index: 4;
  background: rgba(var(--ids__surface-RGB), 1);
  margin-left: calc(-1 * var(--day-pad));
  margin-right: calc(-1 * var(--day-pad));
  padding: var(--head-gap) var(--day-pad);
  margin-bottom: var(--head-gap);
  overflow-x: hidden;
  border-bottom: 1px solid rgba(var(--ids__text-RGB), 0.18);
}

.track-grid__body {
  grid-template-rows: repeat(10, auto);
  overflow-x: auto;
  border-radius: var(--ids__radius);
}

.track-grid__row-bg {
  grid-column: 1 / -1;
  background: var(--row-fill);
  border-radius: var(--ids__radius);
  padding: var(--head-pad-v) var(--day-pad);
  z-index: 0;
}

.track-grid__time-rail {
  grid-column: 1;
  position: sticky;
  left: 0;
  z-index: 2;
  background: rgba(var(--ids__surface-RGB), 1);
}

.track-grid__time {
  grid-column: 1;
  position: sticky;
  left: 0;
  z-index: 3;
  display: flex;
  align-items: flex-start;
  padding: 1em;
  font-weight: 400;
  font-size: 0.9em;
  white-space: nowrap;
  background: rgba(var(--ids__background-RGB), 1);
  border: 1.5px solid rgba(var(--ids__text-RGB), 0.1);
  border-radius: var(--ids__radius);
}

.track-grid__corner {
  grid-column: 1;
  position: sticky;
  left: 0;
  z-index: 3;
  background: rgba(var(--ids__surface-RGB), 1);
}

.track-grid__head {
  position: relative;
  z-index: 1;
  padding: 0.8em 1em;
  text-align: center;
  font-weight: 700;
  background: rgba(var(--ids__background-RGB), 1);
  border: 1.5px solid rgba(var(--ids__text-RGB), 0.1);
  border-radius: var(--ids__radius);
}

.track-grid__cell {
  z-index: 1;
  padding: 1em 1.2em;
  background: rgba(var(--ids__background-RGB), 1);
  border: 1.5px solid rgba(var(--ids__text-RGB), 0.1);
  border-radius: var(--ids__radius);
}

.track-grid__break {
  grid-column: 2 / -1;
  z-index: 1;
  display: flex;
  align-items: center;
  padding: 1em 1.2em;
  background: rgba(var(--ids__background-RGB), 1);
  border-radius: var(--ids__radius);
  font-weight: 600;
}

/* Стили текста в расписании (день 2) */

.track-grid__title {
  margin: 0 0 0.5em;
  font-weight: 700;
  line-height: 1.35;
}

/* Для длинных заголовков, где часть текста нужно сделать обычным
   начертанием — оберните этот кусок в <span class="track-grid__title-regular">
   внутри .track-grid__title или .track-grid__topic-title. */
.track-grid__title-regular {
  font-weight: 400;
}

.track-grid__label {
  margin: 0 0 0.5em;
  font-weight: 400;
  line-height: 1.35;
}

.track-grid__name {
  margin: 0 0 0.1em!important;
  font-weight: 400;
  line-height: 1.3;
}

.track-grid__cell > .track-grid__name:first-child,
.track-grid__cell > .track-grid__label:first-child {
  margin-top: 0;
}

.track-grid__role {
  margin: 0 0 0.4em;
  font-size: 0.85em;
  line-height: 1.35;
  opacity: 0.6;
}

ol.track-grid__topics {
  margin: 0.6em 0 0;
  padding: 0;
  counter-reset: track-topic;

  & li {
    list-style: none;
    margin-bottom: 0.6em;
  }
}

.track-grid__topic-title {
  margin: 0 0 0.2em;
  font-weight: 700;
}

ol.track-grid__topics:not(.track-grid__topics--flat) .track-grid__topic-title {
  counter-increment: track-topic;

  &::before {
    content: counter(track-topic) ". ";
  }
}

.track-grid__topics--flat .track-grid__topic-title {
  margin-bottom: 0.4em;
}

/* Пальчик-подсказка (скролл) */

.track-grid__hand {
  display: none;
}

/* Мобильная сетка треков */
@media (width < 768px) {
  .track-grid__head-row,
  .track-grid__body {
    grid-template-columns: var(--time-col-w) repeat(4, calc(100% - var(--time-col-w)));
  }

  .track-grid__head-row {
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
  }

  .track-grid__body {
    scroll-snap-type: x mandatory;
    scroll-padding-left: var(--time-col-w);
  }

  .track-grid__head,
  .track-grid__cell {
    scroll-snap-align: start;
  }

  .track-grid__corner {
    display: flex;
    align-items: center;
    justify-content: center;
    padding-right: 0.4em;
  }

  .track-grid__hand {
    display: block;
    color: rgba(var(--ids__accent-RGB), 1);
    animation: track-hand-swipe 1.8s ease-in-out infinite;
    transition: opacity 0.8s ease;
  }

  .track-grid__hand.is-hidden {
    opacity: 0;
    pointer-events: none;
  }

  .track-grid__time {
    font-size: 0.9em;
  }

  .track-grid__time-rail {
    margin-right: 0;
  }
}

@keyframes track-hand-swipe {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(5px); }
}

@media (prefers-reduced-motion: reduce) {
  .track-grid__hand {
    animation: none;
  }
}

@media (width < 768px) {

  .track-grid__break {
    grid-column: 2 / span 1;
    position: sticky;
    left: var(--time-col-w);
  }
}

/* Спикеры на мобильном */
@media (width < 768px) {
  .slot__body .ids__sequence-item {
    --columns: 1;
  }

  .speaker {
    display: flex;
    align-items: flex-start;
    gap: 0.7em;
  }

  .speaker__photo {
    margin: 0;
    flex-shrink: 0;
  }

  .speaker__photo img {
    width: 2.6em;
    height: 2.6em;
  }

  .speaker__info {
    min-width: 0;
  }

  .speaker__name {
    font-size: 0.95em;
    margin: 0 0 0.1em;
  }

  .speaker__role,
  .speaker__topic {
    margin: 0;
  }

  .slot__body .ids__sequence {
    --gap: 0.9em;
  }
}

/* Секция-разделитель (горы и буквы) */

.divider-rock {
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  margin-top:-120vw;
  width: 100vw;
  height: 160vw;
  overflow: hidden;
}

.divider-rock__mountain {
  position: absolute;
  left: 0;
  width: 100%;
  display: block;
  pointer-events: none;
  margin: 0 auto;
}

.divider-rock__mountain.m3 {
  bottom: 6vw;
  opacity: 1;
}

.divider-rock__mountain.m2 {
  bottom: 13vw;
  opacity: 1;
  z-index: 8;
}

.divider-rock__mountain.m1 {
  bottom: -2vw;
  z-index: 10;
}

.divider-rock__letter {
  position: absolute;
  width: 20%;
  filter: drop-shadow(0 0.5em 1em rgba(0, 0, 0, 0));
  /* Лёгкий параллакс (см. скрипт у разметки .site-rock-layer) — сдвиг
     через translate, не transform, чтобы не конфликтовать с поворотами
     ниже. Горы (.divider-rock__mountain) параллакс не трогает. */
  translate: 0 var(--parallax-y, 0px);
}

.divider-rock__letter.s {
  left: 12vw;
  bottom: 10vw;
  width: 24vw;
  transform: rotate(2deg);
  z-index: 12;
}

.divider-rock__letter.hard-sign {
  left: 20vw;
  bottom: 22vw;
  width: 29vw;
  transform: rotate(1deg);
  z-index: 11;
}

.divider-rock__letter.e {
  left: 39vw;
  bottom: 16vw;
  width: 18vw;
  transform: rotate(-1deg);
  z-index: 12;
}

.divider-rock__letter.z {
  left: 40vw;
  bottom: 20vw;
  width: 36vw;
  transform: rotate(2deg);
  z-index: 9;
}

.divider-rock__letter.d {
  left: 63vw;
  bottom: 10vw;
  width: 25vw;
  transform: rotate(1deg);
  z-index: 12;
}

/* Вопросы и ответы */

.faq__list {
  display: flex;
  flex-direction: column;
  gap: 0.6em;
}

.faq__list .card {
  padding: 1em 1.4em;
}

.card__q {
  font-family: "Rooftop";
  font-weight: 700;
  font-size: 1.2em;
  margin: 0 0 0.6em;
}

.card__a {
  margin: 0;
  font-size: 0.95em;
  line-height: 1.35;
}

.card__a a {
  color: rgba(var(--ids__accent-RGB), 1);
}

/* Заметное кольцо фокуса для навигации с клавиатуры (мышиный клик остаётся без
   кольца — в reset.css погашен через :focus:not(:focus-visible)). */
:focus-visible {
  outline: 3px solid rgba(var(--ids__link-RGB), 1);
  outline-offset: 2px;
  border-radius: 3px;
}

/* Уважаем «уменьшить движение»: гасим единственную крупную анимацию, оставшуюся
   без защиты, — «подъём» табов дней и исчезновение прелоадера. Остальное уже
   под prefers-reduced-motion (плавный скролл, параллакс, свайп-подсказка). */
@media (prefers-reduced-motion: reduce) {
  .schedule__tab,
  .schedule__tab.active::after { transition: none; }
  .schedule__tab:not(.active):hover { transform: none; }
  .schedule__tab.active.schedule__tab--settling { transform: none; }
  .preloader { transition: none; }
}

.card--dark {
  background: #000;
  color: rgba(var(--ids__background-RGB), 1);
}

.card__list {
  margin: 1em 0 0;
  padding-left: 1.3em;
}

.card__list li {
  margin-bottom: 0.6em;
  font-size: 0.95em;
  line-height: 1.35;
}

/* Футер */

.page-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1em;
  padding: calc(var(--ids__density) * 1.5em) 0;

  @media (width < 768px) {
    flex-direction: row;
    align-items: flex-end;
  }
}

.page-footer p {
  text-align: right;

  @media (width < 768px) {
    text-align: right;
    width: 45vw;
    font-size: 0.8em;
  
  }
}

.page-footer__logo {
  height: 2.4em;
  width: auto;
  flex-shrink: 0;
}
