This did not resolve the issue. My Hype-based site has too much content to include in a single Hype document, I need to be able to jump to a page and then return to the same spot. A standard #anchor works great in Firefox but not in Safari. I thought I had found a fix by using /# and it worked briefly, then because of some change I can’t figure out, it stopped working.
I am guessing it may be a timing-based behavior difference. Hype dynamically creates its HTML, and Safari may be trying to go to the anchor before it exists (without trying again when it is shortly thereafter made).
This involves knowing the top value of the target element, and there are pitfalls with this method too, but this allows me to scroll to element locations without having to add anchor links. There's also the… behavior: "smooth" …which is a nicer effect, when it works.
(I'm looking at you Safari, but not directly, because those tabs in version 15 are glaring.)
Hype has a feature to insulate itself from outside styles, so that a page's CSS does not "leak" into content unexpectedly. Beyond your solution of shrinking the text or otherwise hiding the text somehow, there are a few solutions, ranked in order of suggested guidance:
add an inline style, like <a name="shop" style="text-decoration:none">&nsbp;</a>
Uncheck the Protect from External Styles option in the Document Inspector
Use the !important directive on the CSS, like text-decoration: none !important;