/* ОБОЛОЧКА ПРИЛОЖЕНИЯ: СТРАНИЦА НЕ «ХОДИТ» (26.09.2026, правка Сармата:
   «должно вести себя как нативное, а не как браузерная страница»).
   Одно правило на все страницы. Подробно — docs/ИНТЕРФЕЙС/МЕХАНИКА.md, «Оболочка».
   Пара к нему — app-shell.js (щипок и пружина там, где CSS бессилен).

   ПОДКЛЮЧАЕТСЯ ПЕРВОЙ ТАБЛИЦЕЙ В <head>, ДО style.css — нарочно. Здесь только
   значения ПО УМОЛЧАНИЮ: если страница сама решила про overflow-x (style.css
   ставит hidden, learn/dance/dance-kara и встройка танца на главной — clip ради
   живого position:sticky), её правило идёт позже и побеждает. Страницы без
   своего решения (privacy, support, themes, ab, it-*) получают clip отсюда.

   1. ПРУЖИНА (rubber band). overscroll-behavior:none на html И body: корень
      прокрутки — viewport, и WebKit берёт значение с корневого элемента, а
      Chrome в части случаев с body. Safari 16+ (MDN BCD). Ограничение WebKit
      там же: на контейнере БЕЗ прокручиваемого переполнения свойство не
      действует — короткая страница всё равно пружинит. Это закрывает
      app-shell.js (touchmove на непрокручиваемой странице).
      Свой «потяни — обновить» (pull-refresh.js) от этого не зависит: он и так
      гасит родную прокрутку сам и рисует свою метку.
   2. ВБОК. overflow-x:clip — обрезает вылет, но, в отличие от hidden, НЕ делает
      html/body контейнером прокрутки, и sticky остаётся живым (ловушка описана
      в learn.html). Горизонтальный перелив ищется замером, см. МЕХАНИКА.md.
   3. ДВОЙНОЙ ТАП. touch-action:manipulation на корне: пан и щипок браузеру,
      двойной тап — нет. Действует на всё дерево (браузер пересекает значения
      предков), поэтому полки hm-shelf-r/sp-shelf-r листаются как прежде, а
      обрезка фото с touch-action:none остаётся none. Щипок на iOS гасится в
      app-shell.js — Safari с iOS 10 игнорирует user-scalable=no. */
html{
  overscroll-behavior:none;
  touch-action:manipulation;
  overflow-x:clip;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}
body{
  overscroll-behavior:none;
  overflow-x:clip;
  /* Серая вспышка под пальцем при тапе — самый заметный признак «это сайт». */
  -webkit-tap-highlight-color:transparent;
}

/* ПОЛОСА ЖЕСТА «НАЗАД» (swipe-back.js) — запасной стиль. Родной живёт в
   style.css, но privacy/support/themes/ops/ab его не грузят: там полоса
   вставала обычным div в поток и толкала страницу вниз на время жеста.
   style.css подключён позже и перекрывает цвет на своих страницах.
   Анимируется transform, а не width: width пересчитывает вёрстку на каждом
   кадре жеста, scaleX уходит на композитор. */
.swipe-bar{position:fixed;top:0;left:0;height:3px;width:100%;transform:scaleX(0);transform-origin:left;
  z-index:999;pointer-events:none;background:linear-gradient(90deg,#C79EE8,#E3A492);transition:transform 50ms linear}
