/* =========================================================
   Hero Frequencies – iOS viewport containment

   Linked only from pages that must not drift outside the
   visible screen on iPhone/iPad, so the html/body rules below
   are intentionally unscoped. Do not add this to the global
   includes: overflow-x on the root propagates to the viewport
   and any content wider than the screen becomes unreachable
   rather than horizontally scrollable.
   ========================================================= */

/* Stop sideways dragging into blank space. Safari ignores
   overflow-x:hidden on the root often enough that clip is the
   only reliable choice; unlike hidden it also leaves the
   sticky navbar working, because clip creates no scrollport. */
html,
body {
  max-width: 100%;
  overflow-x: clip;
}

/* Kill the rubber-band bounce past the top and bottom edges. */
html,
body {
  overscroll-behavior: none;
}

/* For shells that pin themselves to the visible screen.
   100vh on iOS is the LARGE viewport, measured with the URL
   bar retracted, so a 100vh shell is taller than what you can
   see and Safari scrolls you by the toolbar height. The
   declarations cascade: older iOS lands on -webkit-fill-
   available, iOS 15.4+ on dvh. */
.ios-vh-shell {
  height: 100vh;
  height: -webkit-fill-available;
  height: 100dvh;
  max-height: 100vh;
  max-height: -webkit-fill-available;
  max-height: 100dvh;
}
