/* Без синей подсветки при касании на телефоне (владелец 09.09) */
* { -webkit-tap-highlight-color: transparent; }
html { overflow-x: clip; }   /* внутренние страницы: псевдоэлементы-подсветки сцен вылезали за экран на телефоне (аудит 09.09) */
button, a, label, summary { -webkit-tap-highlight-color: transparent; }

/* Главная, секции 2–4 после героя (07.09.2026): «Олимпиадная экономика», «Подход ювелирной мастерской»,
   «Кому подходит обучение». Без стеклянных карточек и градиентных полос: леджеры, тонкие линии, мономаркеры,
   живые объекты (ступени, баланс, рост). Дизайн-система и тексты сайта сохранены. */

/* ── общие детали ── */
/* свечение объектов выходит за секции: страница не должна получать горизонтальную прокрутку (clip не ломает sticky) */
body { overflow-x: clip; }
.fd-s4, .fd-s6, .fd-s13 { overflow-x: clip; }
.fd-object {
  position: relative;
  aspect-ratio: var(--ar, 1);
}
/* свет сцены: объект слегка «подсвечен» (рендеры тёмные), сзади — мягкий источник света на фоне */
.fd-object img,
.fd-object canvas {
  filter: brightness(1.06) contrast(1.03) saturate(0.95) drop-shadow(0 26px 56px rgba(8, 12, 22, 0.6));   /* сцены пересвечены Codex до L≈0.44 — сильная подсветка больше не нужна */
}
.fd-object::before {
  content: "";
  position: absolute;
  inset: -18% -22% -10% -22%;
  z-index: -1;
  pointer-events: none;
  background: radial-gradient(52% 48% at 50% 42%, rgba(200, 214, 240, 0.16) 0%, rgba(200, 214, 240, 0.05) 45%, transparent 72%);
}
.fd-object img,
.fd-object canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
}
.fd-object canvas { opacity: 0; transition: opacity 0.35s ease; }
.fd-object.is-playing canvas { opacity: 1; }
.fd-object.is-playing img { opacity: 0; transition: opacity 0.35s ease; }

.fd-eyebrow {
  font-family: 'FD-JB', monospace;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: var(--color-grey);
}
.fd-rule { border: 0; border-top: 1px solid var(--color-border); margin: 0; }

/* появление при входе в экран */
.fd-reveal { opacity: 0; transform: translateY(16px); transition: opacity 0.7s ease, transform 0.7s ease; transition-delay: var(--d, 0s); }
.fd-reveal.is-in { opacity: 1; transform: none; }

/* ── секция 2: Олимпиадная экономика (ступени) ── */
.fd-s2 {
  position: relative;
  background-color: var(--color-black);
  padding-block: 104px 96px;
  overflow: hidden;
}
.fd-s2__top {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(320px, 5fr);
  gap: 32px 64px;
  align-items: center;
}
.fd-s2__top h2 { max-width: 760px; }
.fd-s2__top p { margin-top: 20px; max-width: 700px; }
.fd-s2__object { --ar: 2160 / 1584; width: min(100%, 620px); justify-self: end; margin-bottom: -24px; }

.fd-s2__ledger {
  margin-top: 64px;
  border-top: 1px solid var(--color-border);
}
.fd-s2__ledger-title { display: block; padding: 22px 0 18px; }
.fd-s2__cols {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--color-border);
}
.fd-s2__col {
  padding: 26px 32px 30px 0;
  border-right: 1px solid var(--color-border);
}
.fd-s2__col + .fd-s2__col { padding-left: 32px; }
.fd-s2__col:last-child { border-right: 0; padding-right: 0; }
.fd-s2__num {
  display: block;
  font-family: 'FD-JB', monospace;
  font-size: 13px;
  font-weight: 500;
  color: var(--color-accent);
  letter-spacing: 0.06em;
}
.fd-s2__col .fs-title { display: block; margin-top: 14px; }
.fd-s2__col p { max-width: 320px; }

.fd-s2__math {
  margin-top: 72px;
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(320px, 5fr);
  gap: 32px 64px;
  align-items: start;
}
.fd-s2__math .fs-title-lg { display: block; }
.fd-s2__math p { max-width: 640px; }
.fd-s2__quote {
  margin-left: 20px;
  max-width: 460px;
  align-self: end;
}

/* ── секция 3: Подход ювелирной мастерской (баланс) ── */
.fd-s3 {
  position: relative;
  background-color: var(--color-dark);
  background-image: none;   /* старая градиентная полоса убрана */
  padding-block: 88px 96px;
  overflow: hidden;
  border-top: 1px solid rgba(250, 251, 254, 0.06);
}
.fd-s3__grid {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(320px, 5fr);
  gap: 40px 64px;
  align-items: start;
}
.fd-s3__title { max-width: 760px; }
.fd-s3__object { --ar: 2160 / 1802; width: min(100%, 560px); justify-self: end; margin-top: -24px; }
.fd-s3__object.is-landed { animation: fdBreath 8s ease-in-out infinite; }
@keyframes fdBreath { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }

.fd-s3__conv { margin-top: 28px; }
.fd-s3__conv .fs-body-md { display: block; }
.fd-s3__belt {
  margin-top: 16px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 0;
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
  padding: 12px 0;
}
.fd-s3__belt .fs-label {
  position: relative;
  padding: 0 28px 0 0;
  margin-right: 12px;
  color: var(--color-light);
  white-space: nowrap;
}
.fd-s3__belt .fs-label:not(:last-child)::after {
  content: "";
  position: absolute;
  right: 4px;
  top: 50%;
  width: 8px;
  height: 8px;
  border-top: 1.5px solid var(--color-grey);
  border-right: 1.5px solid var(--color-grey);
  transform: translateY(-50%) rotate(45deg);
}
.fd-s3__belt .fs-label:last-child { padding-right: 0; margin-right: 0; }
.fd-s3__conv .mf-text-white { margin-top: 16px; max-width: 600px; }
.fd-s3__other { margin-top: 40px; }
.fd-s3__other .fs-body-md { display: block; color: var(--color-white); }
.fd-s3__other p { margin-top: 14px; max-width: 640px; }

.fd-s3__diff { margin-top: 72px; }
.fd-s3__diff-title { display: block; }
.fd-s3__table {
  margin-top: 18px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-top: 1px solid var(--color-border);
}
.fd-s3__side + .fd-s3__side { padding-left: 32px; border-left: 1px solid var(--color-border); }
.fd-s3__th {
  display: block;
  padding: 18px 24px 14px 0;
  border-bottom: 1px solid var(--color-border);
  font-family: 'FD-JB', monospace;
  font-size: 13px;
  letter-spacing: 0.06em;
  color: var(--color-grey);
}
.fd-s3__th--yes { color: var(--color-accent); }
.fd-s3__table ul {
  list-style: none;
  margin: 0;
  padding: 10px 24px 10px 0;
}
.fd-s3__table li {
  position: relative;
  padding: 12px 0 12px 28px;
  border-bottom: 1px solid rgba(64, 74, 94, 0.5);
  line-height: 1.35;
}
.fd-s3__table li:last-child { border-bottom: 0; }
.fd-s3__table li::before {
  position: absolute;
  left: 0;
  top: 12px;
  font-family: 'FD-JB', monospace;
  font-size: 14px;
}
.fd-s3__table .fd-s3__no li { color: var(--color-grey); }
.fd-s3__table .fd-s3__no li::before { content: "×"; color: var(--color-grey); }
.fd-s3__table .fd-s3__yes li { color: var(--color-white); }
.fd-s3__table .fd-s3__yes li::before { content: "✓"; color: var(--color-accent); }
.fd-s3__table .fd-s3__yes li:hover { background: rgba(245, 192, 74, 0.05); }

/* ── секция 4: Кому подходит (рост) ── */
.fd-s4 {
  position: relative;
  background-color: var(--color-black);
  background-image: none;   /* фоновая скала старой версии убрана */
  padding-block: 88px 96px;
  border-top: 1px solid rgba(250, 251, 254, 0.06);
}
.fd-s4__grid {
  display: grid;
  grid-template-columns: minmax(300px, 5fr) minmax(0, 7fr);
  gap: 40px 64px;
  align-items: start;
}
.fd-s4__aside { position: sticky; top: 140px; }
.fd-s4__aside h2 { max-width: 460px; }
.fd-s4__object { --ar: 2160 / 1392; width: min(100%, 520px); margin-top: 28px; }
.fd-s4__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--color-border); }
.fd-s4__item {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  gap: 8px 32px;
  padding: 30px 0 32px;
  border-bottom: 1px solid var(--color-border);
  transition: opacity 0.35s ease;
}
.fd-s4__item .fs-label {
  padding-top: 5px;
  font-family: 'FD-JB', monospace;
  font-size: 12px;
  letter-spacing: 0.06em;
  color: var(--color-grey);
  transition: color 0.35s ease;
}
.fd-s4__item .fs-label::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  margin-right: 10px;
  border-radius: 50%;
  background: var(--color-border);
  vertical-align: 2px;
  transition: background 0.35s ease, box-shadow 0.35s ease;
}
.fd-s4__item .fs-title { display: block; }
.fd-s4__item .fd-s4__body { grid-column: 2; max-width: 620px; }
.fd-s4__item .fd-s4__body p + p { margin-top: 8px; }
.fd-s4__list.has-active .fd-s4__item { opacity: 0.55; }
.fd-s4__list.has-active .fd-s4__item.is-active { opacity: 1; }
.fd-s4__item.is-active .fs-label { color: var(--color-accent); }
.fd-s4__item.is-active .fs-label::before { background: var(--color-accent); box-shadow: 0 0 0 4px rgba(245, 192, 74, 0.18); }

/* ── штриховая заглушка сцены (изометрия), пока 3D-рендер не готов: рисуется линией при появлении ── */
.fd-object svg { position: absolute; inset: 0; width: 100%; height: 100%; display: block; overflow: visible; }
.fd-lineart polygon,
.fd-lineart polyline {
  stroke: rgba(250, 251, 254, 0.5);
  stroke-width: 1.1;
  stroke-linejoin: round;
  stroke-linecap: round;
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
  fill-opacity: 0;
  transition: stroke-dashoffset 0.9s ease calc(var(--i) * 45ms), fill-opacity 0.7s ease calc(var(--i) * 45ms + 0.45s);
}
.fd-lineart .f-top { fill: #2d3755; }
.fd-lineart .f-left { fill: #212b47; }
.fd-lineart .f-right { fill: #182036; }
.fd-lineart .f-mark { fill: none; stroke: var(--color-accent); stroke-width: 1.6; }
.fd-lineart .f-path { fill: none; stroke: rgba(245, 192, 74, 0.6); stroke-width: 1.4; }
.fd-lineart .f-line { fill: none; stroke: rgba(250, 251, 254, 0.38); }
.fd-lineart .f-accent { fill: var(--color-accent); stroke: var(--color-accent); }
.fd-lineart.is-in polygon,
.fd-lineart.is-in polyline { stroke-dashoffset: 0; fill-opacity: 1; }

/* ── секция 5: Готовим к олимпиадам (пьедестал) ── */
.fd-s5 {
  position: relative;
  background-color: var(--color-dark);
  padding-block: 96px;
  border-top: 1px solid rgba(250, 251, 254, 0.06);
  overflow: hidden;
}
.fd-s5__top {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(300px, 5fr);
  gap: 32px 64px;
  align-items: end;
}
.fd-s5__text h2 { max-width: 760px; }
.fd-s5__text .fs-title { display: block; margin-top: 28px; max-width: 640px; }
.fd-s5__text p + p { margin-top: 20px; max-width: 640px; }
.fd-s5__object { --ar: 2160 / 1600; width: min(100%, 500px); justify-self: end; margin-bottom: -6px; }

.fd-s5__list {
  margin-top: 56px;
  padding: 0;
  list-style: none;
  counter-reset: oly;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: repeat(4, auto);
  grid-auto-flow: column;
  column-gap: 64px;
  border-top: 1px solid var(--color-border);
}
.fd-s5__item {
  counter-increment: oly;
  border-bottom: 1px solid var(--color-border);
  transition: background 0.3s ease;
}
.fd-s5__link {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr) 24px;
  align-items: center;
  gap: 0 12px;
  padding: 20px 0;
  color: var(--color-white);
  transition: color 0.3s ease, padding-left 0.3s ease;
}
.fd-s5__link::before {
  content: counter(oly, decimal-leading-zero);
  font-family: 'FD-JB', monospace;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: var(--color-grey);
  transition: color 0.3s ease;
}
.fd-s5__link::after {
  content: "↗";
  justify-self: end;
  font-family: 'FD-JB', monospace;
  font-size: 16px;
  line-height: 1;
  color: var(--color-grey);
  transition: transform 0.3s ease, color 0.3s ease;
}
.fd-s5__item:hover { background: linear-gradient(90deg, rgba(245, 192, 74, 0.07), transparent 65%); }
.fd-s5__item:hover .fd-s5__link { color: var(--color-accent); padding-left: 8px; }
.fd-s5__item:hover .fd-s5__link::before,
.fd-s5__item:hover .fd-s5__link::after { color: var(--color-accent); }
.fd-s5__item:hover .fd-s5__link::after { transform: translate(3px, -3px); }

/* ── секция 6: Траектория поступления БВИ (маршрут) ── */
.fd-s6 {
  position: relative;
  background-color: var(--color-black);
  background-image: none;   /* старая градиентная заливка убрана */
  padding-block: 96px 104px;
  border-top: 1px solid rgba(250, 251, 254, 0.06);
}
.fd-s6__grid {
  display: grid;
  grid-template-columns: minmax(300px, 5fr) minmax(0, 7fr);
  gap: 40px 64px;
  align-items: start;
}
.fd-s6__aside { position: sticky; top: 140px; }
.fd-s6__aside h2 { max-width: 520px; }
.fd-s6__aside .fs-title { display: block; margin-top: 16px; max-width: 520px; }
.fd-s6__aside p + p { margin-top: 12px; max-width: 520px; }
.fd-s6__object { --ar: 2160 / 1400; width: min(100%, 480px); margin-top: 32px; }

.fd-s6__steps {
  position: relative;
  list-style: none;
  margin: 0;
  padding: 0 0 0 76px;
  counter-reset: step;
}
.fd-s6__steps::before {
  content: "";
  position: absolute;
  left: 21px;
  top: 0;
  bottom: 0;
  width: 1px;
  background: var(--color-border);
}
.fd-s6__steps::after {
  content: "";
  position: absolute;
  left: 21px;
  top: 0;
  width: 1px;
  height: var(--p, 0px);
  background: var(--color-accent);
  box-shadow: 0 0 12px rgba(245, 192, 74, 0.35);
  transition: height 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}
.fd-s6__step {
  position: relative;
  padding: 0 0 44px;
  max-width: 640px;
  transition: opacity 0.35s ease;
}
.fd-s6__step:last-child { padding-bottom: 0; }
.fd-s6__step::before {
  content: counter(step, decimal-leading-zero);
  counter-increment: step;
  position: absolute;
  left: -76px;
  top: -6px;
  z-index: 1;
  width: 42px;
  height: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--color-border);
  border-radius: 50%;
  background: var(--color-black);
  font-family: 'FD-JB', monospace;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: var(--color-grey);
  transition: border-color 0.35s ease, color 0.35s ease, box-shadow 0.35s ease;
}
.fd-s6__step .fs-title { display: block; }
.fd-s6__step p { max-width: 600px; }
.fd-s6__steps.has-active .fd-s6__step { opacity: 0.5; }
.fd-s6__steps.has-active .fd-s6__step.is-passed,
.fd-s6__steps.has-active .fd-s6__step.is-active { opacity: 1; }
.fd-s6__step.is-passed::before { border-color: rgba(245, 192, 74, 0.55); color: var(--color-accent); }
.fd-s6__step.is-active::before { border-color: var(--color-accent); color: var(--color-accent); box-shadow: 0 0 0 5px rgba(245, 192, 74, 0.16); }
.fd-s6__step.is-final::before { background: var(--color-accent); border-color: var(--color-accent); color: var(--color-black); }

/* ── адаптив ── */
@media (max-width: 1100px) {
  .fd-s5, .fd-s6 { padding-block: 64px 56px; }
  .fd-s5__top, .fd-s6__grid { grid-template-columns: 1fr; gap: 28px; }
  .fd-s5__object { justify-self: center; margin: 0; width: min(100%, 460px); }
  .fd-s5__list { grid-template-columns: 1fr; grid-template-rows: none; grid-auto-flow: row; margin-top: 40px; }
  .fd-s6__aside { position: static; }
  .fd-s6__object { margin: 20px auto 0; }
}
@media (max-width: 700px) {
  .fd-s5__object, .fd-s6__object { width: 100%; }
  .fd-s5__link { grid-template-columns: 32px minmax(0, 1fr) 20px; padding: 16px 0; }
  .fd-s6__steps { padding-left: 58px; }
  .fd-s6__steps::before, .fd-s6__steps::after { left: 18px; }
  .fd-s6__step { padding-bottom: 32px; }
  .fd-s6__step::before { left: -58px; top: -4px; width: 36px; height: 36px; font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) {
  .fd-lineart polygon, .fd-lineart polyline { transition: none; stroke-dashoffset: 0; fill-opacity: 1; }
  .fd-s6__steps::after { transition: none; }
}

@media (max-width: 1100px) {
  .fd-s2, .fd-s3, .fd-s4 { padding-block: 64px 56px; }
  .fd-s2__top, .fd-s2__math, .fd-s3__grid, .fd-s4__grid { grid-template-columns: 1fr; gap: 28px; }
  .fd-s2__object, .fd-s3__object, .fd-s4__object { justify-self: center; margin: 0; width: min(100%, 520px); }
  .fd-s2__cols { grid-template-columns: 1fr; }
  .fd-s2__col { padding: 18px 0; border-right: 0; border-bottom: 1px solid var(--color-border); }
  .fd-s2__col + .fd-s2__col { padding-left: 0; }
  .fd-s2__col:last-child { border-bottom: 0; }
  .fd-s2__quote { margin-left: 20px; }
  .fd-s3__table { grid-template-columns: 1fr; }
  .fd-s3__side + .fd-s3__side { padding-left: 0; border-left: 0; margin-top: 8px; }
  .fd-s3__table ul { padding-right: 0; }
  .fd-s4__aside { position: static; }
  .fd-s4__object { margin: 16px auto 0; }
  .fd-s4__item { grid-template-columns: 1fr; gap: 6px; padding: 22px 0 24px; }
  .fd-s4__item .fd-s4__body { grid-column: 1; }
}
@media (max-width: 700px) {
  .fd-s2__object, .fd-s3__object, .fd-s4__object { width: 112%; max-width: none; margin-left: -6%; }
  .fd-s3__belt .fs-label { white-space: normal; padding-right: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .fd-reveal { opacity: 1; transform: none; transition: none; }
  .fd-object canvas { display: none; }
}

/* «Подход» без камня-балансира (владелец 09.09): одна колонка, ширина текста ограничена */
.fd-s3__grid--solo { grid-template-columns: minmax(0, 1fr); }
.fd-s3__grid--solo > div { max-width: 820px; }

/* Телефоны и планшеты: CSS-фильтры (drop-shadow/brightness) на больших <img>/<canvas> в мобильном Safari и части Android
   рисуют пустой белый прямоугольник вместо сцены (владелец 09.09: «белый квадрат»). На сенсорных экранах фильтры отключены. */
@media (hover: none), (max-width: 900px) {
  .fd-object img, .fd-object canvas,
  .fd-s8__stage .fd-object.fd-s8__stack img, .fd-s8__stage .fd-object.fd-s8__stack canvas,
  .fd-fmt__stage .fd-object img, .fd-fmt__stage .fd-object canvas { filter: none !important; }
}
