/* scene.css — стиль page-classic (№ 16 «Классика», префикс u16-). Только раскладка и хореография: цвета, шрифты,
   рамки, тени, кривые и длительности — из site_kit/scenes/_kit/tokens.css и components.css. Данные сцены (камера, время, снимки) —
   переменные корня (root_style из style.py) и style у элементов. */
.nx-scene--page-classic .u16-win { left: 2.6cqw; top: 3.2cqw; width: 63.4cqw; height: 56.1cqw; }
/* вид окна: мир — снятая страница в «пикселях страницы» (1440 по ширине окна), камера набора */
.nx-scene--page-classic .u16-cam { --nxs-unit: calc(63.4cqw / 1440); --nxs-vx: 31.7; --nxs-vy: 25.75;
  --nxs-cx: var(--u16-cx); --nxs-cy: var(--u16-cy); --nxs-cz: var(--u16-cz);
  width: calc(1440 * var(--nxs-unit)); height: calc(var(--u16-doc) * var(--nxs-unit)); }
.nx-scene--page-classic .u16-img, .nx-scene--page-classic .u16-mk { position: absolute; left: calc(var(--x) * var(--nxs-unit)); top: calc(var(--y) * var(--nxs-unit));
  width: calc(var(--w) * var(--nxs-unit)); height: calc(var(--h) * var(--nxs-unit)); }
/* маркер: вырезка снимка, закрашенная news_scene.py цветом --nxs-marker; протяжка — .nxs-mark-band набора */
.nx-scene--page-classic .u16-mk { background-repeat: no-repeat;
  background-size: calc(var(--mw) * var(--nxs-unit)) calc(var(--mh) * var(--nxs-unit));
  background-position: calc((var(--mx) - var(--x)) * var(--nxs-unit)) calc((var(--my) - var(--y)) * var(--nxs-unit)); }
.nx-scene--page-classic .u16-ann { position: absolute; inset: 0; pointer-events: none; }
.nx-scene--page-classic .u16-badge { position: absolute; margin: -1.15cqw 0 0 -1.15cqw; box-shadow: 0 0 0 .3cqw var(--nxs-surface), var(--nxs-shadow-sm); }
.nx-scene--page-classic .u16-side { position: absolute; left: 67.4cqw; right: 2.4cqw; top: 0; bottom: 0; display: flex; align-items: center; }
.nx-scene--page-classic .u16-card { width: 100%; }
.nx-scene--page-classic .u16-card .nxs-card__head { margin-bottom: var(--nxs-sp-4); }

/* ── хореография: прокрутка 0,5–3,2 с → наезд 3,2–4,5 с → окно влево 3,5–4,6 с → карточка 3,9 с;
   маркер, номера, слова перевода и счётчик — по --at из style.py ── */
.nx-scene--page-classic:is(.is-armed, .is-playing) .u16-cam {
  animation: u16-scroll 2.7s var(--nxs-ease-io) .5s both, u16-zoom 1.3s var(--nxs-ease-io) 3.2s forwards; }
.nx-scene--page-classic:is(.is-armed, .is-playing) .u16-win { animation: u16-win 1.1s var(--nxs-ease-io) 3.5s both; }
.nx-scene--page-classic:is(.is-armed, .is-playing) .u16-side { animation: u16-card var(--nxs-t-in) var(--nxs-ease) 3.9s both; }
@keyframes u16-scroll {
  from { --nxs-cx: var(--u16-cx0); --nxs-cy: var(--u16-cy0); --nxs-cz: 1; }
  to { --nxs-cx: var(--u16-cx1); --nxs-cy: var(--u16-cy1); --nxs-cz: 1; } }
/* «to» явно: неявный конец взял бы значение прокрутки (её заливка ниже в стеке анимаций) */
@keyframes u16-zoom {
  from { --nxs-cx: var(--u16-cx1); --nxs-cy: var(--u16-cy1); --nxs-cz: 1; }
  to { --nxs-cx: var(--u16-cx); --nxs-cy: var(--u16-cy); --nxs-cz: var(--u16-cz); } }
@keyframes u16-win { from { transform: translateX(15.7cqw); } }
@keyframes u16-card { from { opacity: 0; transform: translateX(4cqw); } }
