/* The normal footer layout remains the fallback, including the mobile grid. */
.footer-reveal > .site-footer > .footer-content { display:contents; }

/* The preceding page is the cover, just as on the reference. The browser moves
   that cover during scrolling, without waiting for a JS clipping update. */
body > #main { position:relative; z-index:1; background:#fff; }
/* Preserve the normal document height while the browser anchors the surface. */
.footer-reveal.is-footer-reveal-active { height:var(--footer-reveal-height); }
.footer-reveal.is-footer-reveal-active > .site-footer {
  position:fixed;
  z-index:0;
  left:0;
  right:0;
  bottom:0;
  width:100%;
}
.footer-reveal.is-footer-reveal-active > .site-footer > .footer-content {
  position:relative;
  display:block;
  height:100%;
  filter:none;
  transform:translateY(var(--footer-content-shift,0px));
  transform-origin:center center;
}

@media(max-width:1023px),(prefers-reduced-motion:reduce) {
  .footer-reveal.is-footer-reveal-active { height:auto; }
  .footer-reveal.is-footer-reveal-active > .site-footer {
    position:relative;
    z-index:auto;
    inset:auto;
    width:auto;
  }
  .footer-reveal.is-footer-reveal-active > .site-footer > .footer-content {
    display:contents;
    filter:none;
    transform:none;
  }
}
