The site spent a day in quirks mode
Not a training note, but it cost a day, so it is written down. This page and the two
beside it were drafted inside a preview that supplies its own document wrapper. Published
to a plain host, the wrapper was gone and so was the doctype — and a document with no
doctype is in quirks mode, where document.scrollingElement is
<body> rather than <html>. The smooth-scroll library
went on writing to documentElement.scrollTop, which in that mode scrolls
nothing at all. The page rendered perfectly and would not move.
The second half of the same afternoon: body{overflow-x:hidden} promotes
<body> to the scroll container by itself, with the same consequence.
overflow-x:clip trims the overflow without creating a scroller.
Both pages now start with a doctype and clip rather than hide. If a page renders and refuses to scroll, check which element is the scroller before checking anything else.