/* ---------- background gallery (fixed, behind everything) ----------
   Shared by every page that uses the scrolling photo marquee background
   (index.html, games.html, 404.html) -- kept in one file instead of
   copy-pasted per page so a fix here doesn't need to be repeated 3x. */
.gallery-bg{
  position:fixed;
  inset:0;
  z-index:0;
  overflow:hidden;
  width:100vw;
  height:100vh; /* fallback for browsers without dvh support */
  height:100dvh; /* iOS Safari: 100vh is the toolbar-hidden height, so a
    fixed element sized to it extends past the actually-visible viewport
    whenever the toolbar is shown -- dvh tracks the real visible area */
  -webkit-transform:translateZ(0); /* forces its own compositor layer -- prevents iOS Safari scroll jank */
  transform:translateZ(0);
}
.gallery-track{
  position:relative;
  height:100%;
  width:100%;
}
.gallery-track .slide{
  position:absolute;
  top:0;
  left:0;
  height:100%;
  width:38vw; /* fallback; JS sets the authoritative px width per node to match its position math */
  will-change:transform;
}
.gallery-track .slide img{
  width:100%;
  height:100%;
  object-fit:cover; /* preserve aspect ratio, crop to fill the box edge to edge, no gaps */
  display:block;
  filter:grayscale(100%) contrast(1.1);
}
