/* «Сессии» (MS-00…MS-07, SES-ON-01/02) — только то, чего нет в components.css. Только токены.
   Первый экран (сцена + карточка) — как утверждён 17.10; лента-лендинг ниже — классы .ms-* (волна правок 20.10, P1; v2 21.10, P5 разд. 6);
   подсказки о сессии — .ses-* (v2 21.10, P5 разд. 5). Финальные правки v3 23.10: карусели СМИ и персон, триггеры полного формата,
   сценка и бегущий Джой в записи, реплики Джой (.ms-say), Джой и пузырь в небе SES-ON.
   Дизайн-проход 22.10: секции ленты — тона ядра (h.section({tone}), h.band); своих отступов между секциями нет — стык тонов и отступы даёт ядро. */
.session__note { margin: var(--s-3) var(--s-1) 0; font-size: var(--fs-2); line-height: var(--lh-2); color: var(--ink-2); }
.session__keep { margin-top: var(--s-3); padding: var(--s-3) var(--s-4); border-radius: var(--r-1); background: var(--field);
  display: flex; flex-direction: column; gap: var(--s-3); }
.session__keep-row { display: flex; flex-direction: column; gap: 2px; }
.session__keep-k { font-size: var(--fs-1); line-height: var(--lh-1); font-weight: var(--fw-semibold); letter-spacing: .06em; text-transform: uppercase; color: var(--accent-ink); }
.session__keep-v { font-size: var(--fs-3); line-height: 22px; font-weight: var(--fw-medium); color: var(--ink); }
.session__actions { margin-top: var(--s-4); display: flex; flex-direction: column; gap: var(--s-2); }
.ms-choose__lead { margin-bottom: var(--s-3); }
.ms-choose .session__over { margin: 0 var(--s-1); }
.ms-choose .session__title { margin-top: var(--s-1); }

/* ───────── общее ───────── */
.ms-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ms-note { margin: var(--s-3) var(--s-1) 0; font-size: var(--fs-2); line-height: var(--lh-2); color: var(--ink-2); }
.ms-ph { color: var(--ink-3); font-size: var(--fs-1); }
/* плашки ленты (22.10): заголовок плашки чуть мельче — колонка рядом с персонажем узкая */
.ms-feed .ld-band__title { font-size: var(--fs-l); line-height: var(--lh-l); }

/* ───────── 2. «Нет 10 минут?» ───────── */
.ms-soft__list { display: flex; flex-direction: column; gap: var(--s-3); }
.ms-soft__item { padding: var(--s-4); }
.ms-soft__row { display: flex; align-items: center; gap: var(--s-4); }
.ms-soft__body { min-width: 0; flex: 1; display: flex; flex-direction: column; align-items: flex-start; gap: 2px; }
.ms-soft__over { font-size: var(--fs-1); line-height: var(--lh-1); font-weight: var(--fw-semibold); letter-spacing: .06em; text-transform: uppercase; color: var(--accent-ink); }
.ms-soft__title { font-size: var(--fs-3); line-height: 22px; font-weight: var(--fw-semibold); color: var(--ink); }
.ms-soft__btn { margin-top: var(--s-2); min-height: 40px; padding: 0 18px; }
.ms-soft__ic { flex: none; width: 72px; height: 72px; border-radius: var(--r-1); display: grid; place-items: center; background: var(--sun); color: var(--on-sun); }
.ms-soft__more { display: none; margin: var(--s-3) 0 0; padding: var(--s-3) var(--s-4); border-radius: calc(var(--r-1) - 6px); background: var(--field);
  font-size: var(--fs-2); line-height: var(--lh-2); color: var(--ink-2); }
.ms-soft__item.is-open .ms-soft__more { display: block; animation: joy-drop .3s ease; }
.ms-soft__all { margin: var(--s-2) 0 0 auto; display: flex; gap: 2px; color: var(--accent-ink); font-weight: var(--fw-semibold); }
/* кружок Марии — круглое «видео» с кольцом, как кружок в Telegram */
.ms-circle { flex: none; position: relative; width: 72px; height: 72px; border-radius: 50%; padding: 3px;
  background: conic-gradient(var(--accent), var(--sky-3), var(--sky-2), var(--accent)); }
.ms-circle img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; display: block; box-shadow: 0 0 0 2px var(--surface); }
.ms-circle__t { position: absolute; left: 50%; bottom: -6px; transform: translateX(-50%); padding: 1px 7px; border-radius: var(--r-pill);
  background: var(--ink); color: var(--bg); font-size: 11px; line-height: 16px; font-weight: var(--fw-semibold); white-space: nowrap; }
/* плашка «Нет 10 минут?»: карточки белые на персике, иконка статьи — солнечная */
.ms-soft .ms-soft__item { border-color: transparent; }
/* MS-04, MS-06: мягкий вход — главный блок: карточки с акцентной обводкой */
.ms-soft--main .ms-soft__item { box-shadow: 0 0 0 2px var(--acc), var(--sh-1); }

/* ───────── 3. Как проходит сессия ───────── */
.ms-how__foot { margin-top: var(--s-4); padding: var(--s-3) var(--s-3) var(--s-3) var(--s-4); border-radius: var(--r-1); background: var(--surface);
  border: 1px solid var(--card-border); box-shadow: var(--sh-1); display: flex; align-items: center; gap: var(--s-2); }
.ms-how__rule { flex: 1; min-width: 0; margin: 0; display: flex; gap: var(--s-2); font-size: var(--fs-2); line-height: var(--lh-2); color: var(--ink-2); }
.ms-how__rule .ic { flex: none; margin-top: 1px; color: var(--accent); }
.ms-how__up { flex: none; color: var(--accent-ink); font-weight: var(--fw-semibold); }
.ms-how--first .ld-step:first-child .ld-step__n { box-shadow: 0 0 0 5px var(--primary-soft); }
.ms-how--first .ld-step:first-child .ld-step__body { margin: -4px 0 0 -6px; padding: 12px 12px 10px; border-radius: calc(var(--r-1) - 6px); background: var(--primary-soft); }
.ms-how--folded .ld-faq__q { font-weight: var(--fw-semibold); }
/* солнышко «следите глазами»: один проход влево-вправо, когда блок доехал до экрана */
.ms-follow { position: relative; display: block; height: 48px; margin-top: var(--s-2); border-radius: var(--r-pill); background: var(--field); }
.ms-follow__dot { position: absolute; top: 4px; left: calc(50% - 20px); }
.ms-how.is-in .ms-follow__dot { animation: ms-follow 4.4s ease-in-out .5s 1 both; }
@keyframes ms-follow { 0%, 100% { left: calc(50% - 20px); } 25% { left: 4px; } 75% { left: calc(100% - 44px); } }

/* ───────── 4. С чем приходят — цветные карточки (22.10): персик / солнце / мята на лавандовой полосе ───────── */
.ms-topics__list { display: flex; flex-direction: column; gap: var(--s-3); }
.ms-topic { position: relative; overflow: hidden; padding: var(--s-4); border-radius: var(--r-1); background: var(--surface);
  border: 1px solid transparent; }
.ms-topic::before { content: ""; position: absolute; right: -36px; top: -36px; width: 112px; height: 112px; border-radius: 50%; opacity: .16; background: var(--t-ic); }
.ms-topic--rel  { --t-ic: var(--card-peach-ic); --t-ic-on: var(--card-peach-ic-on); background: var(--card-peach); }
.ms-topic--act  { --t-ic: var(--card-sun-ic);   --t-ic-on: var(--card-sun-ic-on);   background: var(--card-sun); }
.ms-topic--calm { --t-ic: var(--card-mint-ic);  --t-ic-on: var(--card-mint-ic-on);  background: var(--card-mint); }
.ms-topic__top { position: relative; display: flex; align-items: center; gap: var(--s-2); }
.ms-topic__ic { flex: none; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--t-ic); color: var(--t-ic-on);
  box-shadow: 0 8px 16px -8px var(--t-ic); }
.ms-topic__tag { display: inline-flex; align-items: center; gap: 4px; min-width: 0; padding: 3px 10px; border-radius: var(--r-pill); background: var(--surface);
  font-size: var(--fs-1); line-height: var(--lh-1); font-weight: var(--fw-medium); color: var(--ink-2); }
.ms-topic__tag .ic { flex: none; }
.ms-topic__tag--mine { border-radius: 14px; }
.ms-topic__tag--mine { background: var(--success-soft); color: var(--success); font-weight: var(--fw-semibold); }
.ms-topic__chev { margin-left: auto; color: var(--ink-3); }
.ms-topic__title { position: relative; margin-top: var(--s-3); font-size: var(--fs-4); line-height: 26px; font-weight: var(--fw-semibold); color: var(--ink); }
.ms-topic__quotes { position: relative; margin-top: var(--s-3); display: flex; flex-wrap: wrap; gap: var(--s-2); }
.ms-topic__q { padding: 6px 12px; border-radius: 16px 16px 16px 4px; background: var(--surface);
  font-size: var(--fs-2); line-height: var(--lh-2); font-style: italic; color: var(--ink); }
.ms-topic__line { position: relative; margin: var(--s-2) 0 0; font-size: var(--fs-2); line-height: var(--lh-2); color: var(--ink-2); }
.ms-topic__lock { position: relative; margin: var(--s-3) 0 0; padding-top: var(--s-3); border-top: 1px solid var(--line); display: flex; align-items: center; gap: 6px;
  font-size: var(--fs-1); line-height: var(--lh-1); font-weight: var(--fw-medium); color: var(--ink-3); }
.ms-topic__lock .ic { flex: none; }
.ms-topic.is-mine { border-color: transparent; outline: 2px solid var(--accent); outline-offset: -1px; }
.ms-topic:not(.is-link) .ms-topic__title { color: var(--ink-2); }
.ms-topic__hit { position: absolute; inset: 0; z-index: 2; width: 100%; height: 100%; min-height: 0; padding: 0; border-radius: inherit; background: transparent; }

/* ───────── источник со ссылкой (пруфы метода, СМИ) ───────── */
.ms-src { display: inline-flex; align-items: center; gap: 3px; font-size: var(--fs-1); line-height: var(--lh-1); font-weight: var(--fw-medium);
  color: var(--ink-3); text-decoration: underline; text-decoration-color: var(--line); text-underline-offset: 3px; }
.ms-src .ic { flex: none; }

/* ───────── Кто такая Мария ───────── */
.ms-who__card { overflow: hidden; }
.ms-who__photo { position: relative; margin: 0; aspect-ratio: 16 / 11; overflow: hidden; background: linear-gradient(160deg, var(--sky-2), var(--sky-3)); }
.ms-who__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 22%; display: block; }
.ms-who__photo::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 40%; background: linear-gradient(180deg, transparent, var(--surface)); }
.ms-who__in { position: relative; padding: 0 var(--s-4) var(--s-4); margin-top: calc(-1 * var(--s-5)); }
.ms-who__lead { margin: 0; font-size: var(--fs-3); line-height: var(--lh-3); font-weight: var(--fw-medium); color: var(--ink); }
.ms-who__facts { margin: var(--s-4) 0 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: var(--s-2); }
.ms-who__facts li { display: flex; align-items: flex-start; gap: var(--s-3); font-size: var(--fs-2); line-height: var(--lh-2); color: var(--ink); }
.ms-who__fic { flex: none; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: var(--primary-soft); color: var(--on-primary-soft); }
.ms-who__facts li > span:last-child { padding-top: 6px; }
.ms-who__accent { margin: var(--s-4) 0; padding: var(--s-3) var(--s-4); border-radius: calc(var(--r-1) - 6px); border-left: 4px solid var(--accent);
  background: var(--field); font-size: var(--fs-3); line-height: var(--lh-3); font-weight: var(--fw-medium); color: var(--ink); }

/* ───────── Что за метод — небо с облаками (22.10): «Что это» — солнечная карточка, «Зачем вам» — мятная ───────── */
.ms-method__what p, .ms-method__why p { margin: var(--s-1) 0 0; font-size: var(--fs-3); line-height: var(--lh-3); color: var(--ink); }
.ms-method__k { font-size: var(--fs-1); line-height: var(--lh-1); font-weight: var(--fw-semibold); letter-spacing: .06em; text-transform: uppercase; color: var(--accent-ink); }
.ms-method__why p.ms-method__honest { margin-top: var(--s-3); font-size: var(--fs-2); line-height: var(--lh-2); color: var(--ink-2); }
.ms-method__sub { margin: var(--s-5) var(--s-1) var(--s-3); font-size: var(--fs-4); line-height: 26px; font-weight: var(--fw-semibold); color: var(--ink); }
.ms-method .ld-carousel + .card { margin-top: var(--s-3); }
.ms-proof { height: 100%; display: flex; flex-direction: column; align-items: flex-start; gap: var(--s-2); padding: var(--s-4); border-radius: var(--r-1);
  background: var(--surface); border: 1px solid var(--card-border); box-shadow: var(--sh-1); }
.ms-proof__org { display: inline-flex; align-items: center; gap: 6px; min-height: 28px; padding: 3px 12px 3px 8px; border-radius: var(--r-pill);
  background: var(--success-soft); color: var(--success); font-size: var(--fs-2); line-height: var(--lh-2); font-weight: var(--fw-semibold); }
.ms-proof__org .ic { flex: none; }
.ms-proof__text { flex: 1; margin: 0; font-size: var(--fs-3); line-height: var(--lh-3); color: var(--ink); }
/* v3: подзаголовок под «Что пишут о методе» и «Публично рассказывали» */
.ms-method__lead { margin: calc(-1 * var(--s-2)) var(--s-1) var(--s-3); font-size: var(--fs-2); line-height: var(--lh-2); color: var(--ink-2); }
.ms-method .ld-carousel + .ms-method__sub { margin-top: var(--s-5); }
/* карусель СМИ: вся карточка нажимается — растянутая ссылка «Читать в источнике» (P6 7.2: «нажмите на карточку») */
.ms-media .media-card { position: relative; }
.ms-media .media-card__btn::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.ms-media .media-card__foot { flex-wrap: wrap; }
/* карусель персон: источник — издание и дата жирнее */
.ms-people .person-card__src b { display: block; margin-top: 2px; font-weight: var(--fw-semibold); color: var(--ink); }
.ms-method__more { margin-top: var(--s-4); }

/* ───────── Как проходит сессия: полный формат (P5 6.3) ───────── */
.ms-full { margin-top: var(--s-3); }
.ms-full__over { font-size: var(--fs-1); line-height: var(--lh-1); font-weight: var(--fw-semibold); letter-spacing: .06em; text-transform: uppercase; color: var(--accent-ink); }
.ms-full__title { margin-top: var(--s-1); font-size: var(--fs-4); line-height: 26px; font-weight: var(--fw-bold); color: var(--ink); }
.ms-full__text { margin: var(--s-1) 0 0; font-size: var(--fs-3); line-height: var(--lh-3); color: var(--ink-2); }
/* v3 (P6 7.1): три триггера полного формата */
.ms-full__points { margin: var(--s-3) 0 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: var(--s-2); }
.ms-full__points li { display: flex; align-items: center; gap: var(--s-3); padding: var(--s-2) var(--s-3); border-radius: calc(var(--r-1) - 6px); background: var(--surface);
  font-size: var(--fs-2); line-height: var(--lh-2); font-weight: var(--fw-semibold); color: var(--ink); }
.ms-full__pic { flex: none; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: var(--primary-soft); color: var(--on-primary-soft); }
.ms-full__media { margin-top: var(--s-3); display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-2); }
.ms-full__media .ld-gallery { grid-template-columns: 1fr; opacity: 1; transform: none; }
.ms-full__media .video__play { width: 52px; height: 52px; }
.ms-full__media .video__label { right: var(--s-3); }
.ms-full__btn { margin-top: var(--s-4); }

/* ───────── Отзывы: живые → «почему бесплатная» → после бесплатной ───────── */
.ms-live__all { margin: var(--s-3) auto 0; display: flex; color: var(--accent-ink); font-weight: var(--fw-semibold); }
.ms-live .ld-quote__meta, .ms-free .ld-quote__meta { display: block; font-size: var(--fs-1); line-height: var(--lh-1); color: var(--ink-3); }
/* «Почему бесплатная сессия» — плашка sunset (22.10): подпись Марии рядом с персонажем, цитата — стеклом во всю ширину */
.ms-why .ld-band__lead { margin-top: var(--s-3); }
.ms-why__card { margin: 0; padding: var(--s-5) var(--s-4); }
.ms-why__text { margin: 0; font-size: var(--fs-4); line-height: 28px; font-weight: var(--fw-medium); color: var(--ink); text-wrap: pretty; }
.ms-why__text::before { content: "«"; } .ms-why__text::after { content: "»"; }
.ms-why__who { display: flex; align-items: center; gap: var(--s-3); }
.ms-why__ava { flex: none; width: 44px; height: 44px; }
.ms-why__who > span { display: flex; flex-direction: column; font-size: var(--fs-2); line-height: var(--lh-2); color: var(--ink-2); }
.ms-why__who b { font-size: var(--fs-3); line-height: 22px; font-weight: var(--fw-semibold); color: var(--ink); }
.ms-free .ld-section__head { margin-bottom: var(--s-2); }
.ms-free__draft { display: block; margin: 0 var(--s-1) var(--s-3); }
.ms-free__all { margin-top: var(--s-3); }

/* ───────── 7. Запись «Действие вместо лет разговоров» — тон night (22.10), персонаж справа в шапке секции ───────── */
.ms-lead:not(.ms-lead--scene) .ld-section__head { padding-right: 84px; }
/* v3 (P6 7.4): сценка «говорить → встать → сделать шаг» и Джой, который вбегает в блок (один проход, потом исчезает) */
.ms-lead__scene { margin: 0 0 var(--s-4); }
.ms-lead__runner { position: absolute; top: -30px; right: 0; z-index: 2; opacity: 0; pointer-events: none; }
.ms-lead.is-in .ms-lead__runner { animation: ms-run 2.8s cubic-bezier(.45, .05, .55, .95) .2s 1 both; }
html:is(.is-shot, .is-full) .ms-lead__runner { display: none; }   /* в снимках — без промежуточного кадра пробежки */
@keyframes ms-run { 0% { opacity: 0; transform: translateX(90px); } 10% { opacity: 1; } 82% { opacity: 1; } 100% { opacity: 0; transform: translateX(-340px); } }
.ms-lead__sunny { position: absolute; top: -4px; right: 0; z-index: 2; }
.ms-lead__line { margin: 0; font-size: var(--fs-3); line-height: var(--lh-3); font-weight: var(--fw-semibold); color: var(--ink); }
.ms-lead__points { margin-top: var(--s-4); }
.ms-lead__points .card__text { margin: 0; font-size: var(--fs-2); line-height: var(--lh-2); color: var(--ink); }
.ms-lead__foot { margin: var(--s-4) 0 0; font-size: var(--fs-2); line-height: var(--lh-2); color: var(--ink-2); }
.ms-lead__dm.btn--line { margin-top: var(--s-3); }

/* ───────── 8. Канал + чек-лист ───────── */
.ms-social .ld-social { margin-top: 0; }

/* ───────── v3: реплики Джой (P6) — пузырь у персонажа: в плашке — первой строкой колонки текста, хвостик к Джой слева ───────── */
.ms-say { position: relative; display: inline-grid; max-width: 100%; margin: 0 0 var(--s-2); padding: 8px 14px; border-radius: 16px 16px 16px 6px;
  background: var(--surface); color: var(--ink); box-shadow: var(--sh-1); font-size: var(--fs-2); line-height: var(--lh-2); font-weight: var(--fw-semibold); text-align: left; }
.ms-say::before { content: ""; position: absolute; left: -5px; bottom: 8px; width: 12px; height: 12px; background: inherit; border-radius: 2px; transform: rotate(45deg); }
.ms-say > span { position: relative; grid-area: 1 / 1; }
/* канал: две реплики по очереди в такт жесту gift (3,6 с): «жму» → коробка вылетает → «есть!» */
.ms-say--swap .ms-say__a { animation: ms-say-a 3.6s ease infinite paused; }
.ms-say--swap .ms-say__b { opacity: 0; animation: ms-say-b 3.6s ease infinite paused; }
.ms-social:has(.sunny-in.is-in) .ms-say--swap > span, .ms-social:not(:has(.sunny-in)) .ms-say--swap > span { animation-play-state: running; }
@keyframes ms-say-a { 0%, 28% { opacity: 1; transform: none; } 34%, 97% { opacity: 0; transform: translateY(-4px); } 100% { opacity: 1; transform: none; } }
@keyframes ms-say-b { 0%, 31% { opacity: 0; transform: translateY(4px); } 37%, 94% { opacity: 1; transform: none; } 100% { opacity: 0; } }
/* MS-04: кнопка продления — над кружком и статьёй */
.ms-soft__extend { margin-bottom: var(--s-3); }
.ms-social .ld-social__bonus { box-shadow: var(--sh-1); }
.ms-claim { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-2); margin-top: var(--s-2); }
.ms-claim__ok { display: inline-flex; align-items: center; gap: 4px; font-size: var(--fs-2); line-height: var(--lh-2); font-weight: var(--fw-semibold); }
.ms-claim__btn { min-height: 40px; padding: 0 16px; font-size: var(--fs-2); }

/* модальный блок чек-листа (поверх телефона) */
.ms-modal { position: absolute; inset: 0; z-index: 30; display: flex; align-items: flex-end; }
.ms-modal__back { position: absolute; inset: 0; background: var(--scrim); animation: ms-fade .25s ease both; }
.ms-modal__sheet { position: relative; width: 100%; padding: var(--s-5) var(--gutter) calc(var(--s-5) + 12px); border-radius: var(--r-2) var(--r-2) 0 0;
  background: var(--bg); box-shadow: var(--sh-2); display: flex; flex-direction: column; align-items: center; gap: var(--s-2); text-align: center; animation: ms-up .35s cubic-bezier(.2, .7, .2, 1) both; }
.ms-modal__art { position: relative; padding: var(--s-2) var(--s-6); }
.ms-modal__over { display: inline-flex; align-items: center; gap: 4px; font-size: var(--fs-1); line-height: var(--lh-1); font-weight: var(--fw-semibold); letter-spacing: .06em; text-transform: uppercase; color: var(--accent-ink); }
.ms-modal__title { font-size: var(--fs-4); line-height: 26px; font-weight: var(--fw-bold); color: var(--ink); }
.ms-modal__doc { width: 100%; margin: var(--s-2) 0 var(--s-3); padding: var(--s-6) var(--s-4); border-radius: var(--r-1); border: 2px dashed var(--line);
  background: var(--surface); font-size: var(--fs-2); line-height: var(--lh-2); font-weight: var(--fw-semibold); color: var(--ink-3); }
@keyframes ms-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes ms-up { from { transform: translateY(40px); opacity: 0; } to { transform: none; opacity: 1; } }

/* ───────── 9. Что дальше ───────── */
.ms-next { margin-top: var(--s-5); display: flex; align-items: center; gap: var(--s-3); padding: var(--s-3) var(--s-3) var(--s-3) var(--s-4);
  border-radius: var(--r-1); border: 1px dashed var(--line); }
.ms-next__ic { flex: none; color: var(--accent); }
.ms-next__text { flex: 1; min-width: 0; margin: 0; font-size: var(--fs-2); line-height: var(--lh-2); color: var(--ink-2); }
.ms-next__btn { flex: none; min-height: 40px; padding: 0 14px; font-size: var(--fs-2); }

/* док «Записаться к Марии» прячется, пока виден блок записи */
.lead-dock.ms-dock-off { opacity: 0; transform: translateY(12px); transition: opacity .25s, transform .25s; }
.lead-dock.ms-dock-off .btn { pointer-events: none; }

/* ═════════ SES-ON-01, SES-ON-02 — подсказки о сессии при первом входе (P5 разд. 5) ═════════ */
.sheet.ses { display: flex; flex-direction: column; }
.ses .ses-actions { margin-top: auto; padding-top: var(--s-5); }
.ses-skip.btn { min-height: var(--tap); padding: 0 var(--s-3); border-radius: var(--r-pill); background: var(--scrim); color: var(--on-scene);
  font-size: var(--fs-2); font-weight: var(--fw-semibold); }
.ses-hero .ld-hero__in { padding-bottom: 52px; }
.ses-hero .ld-hero__title { max-width: 300px; }
/* v3 (P6 блок 6): Джой и его реплика в одну строку над заголовком */
.ses-hero .ld-hero__in { display: grid; grid-template-columns: auto minmax(0, 220px); justify-content: center; align-items: center; column-gap: var(--s-3); }
.ses-hero .ld-hero__in > * { grid-column: 1 / -1; justify-self: center; }
.ses-hero .ld-hero__in > .ld-hero__sunny { grid-column: 1; grid-row: 1; }
.ses-hero .ld-hero__in > .ses-say { grid-column: 2; grid-row: 1; justify-self: start; margin: 0; }
.ses-card { padding: var(--s-4); }
/* 22.10: под небом — цветная полоса (лаванда / персик) с волной; тянется до низа экрана, кнопка — на ней */
.ses .ses-tone { flex: 1; display: flex; flex-direction: column; padding-top: var(--s-4); padding-bottom: calc(var(--s-5) + 10px); }
.ses .ses-tone.has-wave { margin-top: calc(var(--s-3) + var(--wave-h)); }
.ses .ses-tone > .ld-section__body { flex: 1; display: flex; flex-direction: column; }
.ses .ses-tone .ses-card { border-color: transparent; }
.ses .ses-tone + .sheet__end { display: none; }   /* дока нет — полоса доходит до низа экрана */
.ses .ses-tone .ses-rows { gap: var(--s-3); }
.ses .ses-tone .ses-dots i:not(.on) { background: var(--ink-3); opacity: .35; }
.ses-card__text { margin: 0; font-size: var(--fs-3); line-height: var(--lh-3); color: var(--ink); }
.ses-card__text + .ses-rows { margin-top: var(--s-4); padding-top: var(--s-4); border-top: 1px solid var(--line); }
.ses-rows { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--s-4); }
.ses-row { display: flex; gap: var(--s-3); align-items: flex-start; }
.ses-row__ic { flex: none; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--primary-soft); color: var(--on-primary-soft); }
.ses-row__ic:has(.ses-sud) { background: var(--success-soft); color: var(--success); }
.ses-nw { white-space: nowrap; }
.ses-sud { font-size: 11px; line-height: 1; font-weight: var(--fw-bold); letter-spacing: -.02em; }
.ses-row__t { min-width: 0; display: flex; flex-direction: column; gap: 2px; padding-top: 1px; }
.ses-row__t b { font-size: var(--fs-3); line-height: 22px; font-weight: var(--fw-semibold); color: var(--ink); }
.ses-row__t > span { font-size: var(--fs-2); line-height: var(--lh-2); color: var(--ink-2); }
.ses-note { margin: var(--s-3) var(--s-1) 0; display: flex; align-items: center; gap: var(--s-2); font-size: var(--fs-2); line-height: var(--lh-2); color: var(--ink-2); }
.ses-note .ic { flex: none; color: var(--accent); }
.ses-dots { display: flex; justify-content: center; gap: 8px; margin-bottom: var(--s-4); }
.ses-dots i { width: 8px; height: 8px; border-radius: var(--r-pill); background: var(--track); transition: width .3s, background .3s; }
.ses-dots i.on { width: 24px; background: var(--accent); }

@media (prefers-reduced-motion: reduce) {
  .ms-lead__runner { display: none; }
  .ms-say--swap .ms-say__a { animation: none; opacity: 0; }
  .ms-say--swap .ms-say__b { animation: none; opacity: 1; }
  .ms-how.is-in .ms-follow__dot, .ms-modal__back, .ms-modal__sheet, .ms-soft__item.is-open .ms-soft__more { animation: none; }
  .lead-dock.ms-dock-off { transition: none; }
}
