/* Back-to-top: erscheint nach ~1,5 Viewporthöhen Scrolltiefe.
   Sanftes Scrollen kommt aus dem CSS (scroll-behavior + reduced-motion-Kill-Switch);
   JS übernimmt Sichtbarkeit und Fokus-Management. Ohne JS bleibt der Button hidden. */
(function () {
    'use strict';

    var button = document.querySelector('.back-to-top');
    var main = document.getElementById('main');
    if (!button || !main) {
        return;
    }

    button.hidden = false;

    var ticking = false;

    function update() {
        button.classList.toggle('is-visible', window.scrollY > window.innerHeight * 1.5);
        ticking = false;
    }

    window.addEventListener('scroll', function () {
        if (!ticking) {
            ticking = true;
            window.requestAnimationFrame(update);
        }
    }, { passive: true });

    update();
    // Deep-Link-Einstiege (#anker): Sprung passiert teils vor dem Listener-Setup.
    window.addEventListener('load', update);

    button.addEventListener('click', function (event) {
        event.preventDefault();
        var reduced = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
        window.scrollTo({ top: 0, behavior: reduced ? 'auto' : 'smooth' });
        // Fokus an den Seitenanfang mitnehmen (Tastatur/Screenreader).
        main.focus({ preventScroll: true });
    });
})();
