.stage {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.stage__layer {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 2vmin;
  will-change: transform, opacity;
}

/* Старый слой уезжает влево */
@keyframes slide-out-left {
  from { transform: translateX(0);    opacity: 1; }
  to   { transform: translateX(-40%); opacity: 0; }
}

/* Новый приезжает справа */
@keyframes slide-in-right {
  from { transform: translateX(40%);  opacity: 0; }
  to   { transform: translateX(0);    opacity: 1; }
}

/* Старый уезжает вправо */
@keyframes slide-out-right {
  from { transform: translateX(0);   opacity: 1; }
  to   { transform: translateX(40%); opacity: 0; }
}

/* Новый приезжает слева */
@keyframes slide-in-left {
  from { transform: translateX(-40%); opacity: 0; }
  to   { transform: translateX(0);    opacity: 1; }
}

.stage__layer.anim-out-left  { animation: slide-out-left  500ms var(--ease) forwards; }
.stage__layer.anim-out-right { animation: slide-out-right 500ms var(--ease) forwards; }
.stage__layer.anim-in-right  { animation: slide-in-right  500ms var(--ease) forwards; }
.stage__layer.anim-in-left   { animation: slide-in-left   500ms var(--ease) forwards; }

/* Виджет — без подписи */
[data-mode~="embed"] .brand { display: none; }

/* Киоск — без курсора */
[data-mode~="kiosk"] body { cursor: none; }