/* Viewport-sized chapter scenery: never stretch art over the entire level list.
   Native sticky positioning, no scroll listener or gameplay changes. */
html body .m3j-page .m3j-chapter {
  position:relative;
  isolation:isolate;
  overflow:clip;
  background:#090e1b!important;
}
html body .m3j-page .m3j-chapter::before { display:none!important; }
.m3j-page .m3j-landscape {
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
}
.m3j-page .m3j-landscape-frame {
  display:block;
  position:sticky;
  top:var(--app-header-height,72px);
  height:calc(100svh - var(--app-header-height,72px));
  max-height:100%;
}
.m3j-page .m3j-chapter.is-locked .m3j-landscape-frame { position:relative;top:0;height:100%; }
.m3j-page .m3j-chapter > :is(header,.m3j-map,.chapter-finale) { position:relative;z-index:2; }
.m3j-page .m3j-node-copy { text-shadow:0 1px 3px #000,0 2px 8px #000; }
.m3j-landscape-frame picture,.m3j-landscape-frame img{display:block;width:100%;height:100%}
.m3j-landscape-frame img{object-fit:cover;object-position:center}
.m3j-landscape-frame::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#060a164d,#060a1666 50%,#060a164d);pointer-events:none}
