        /* ── the long session: what the app is still HOLDING ─────────────
           Minutes is all a walk has ever been. These are the numbers that
           decide what hours look like: the thumbnail map and its side
           tables (from the store itself — they are module-private, so
           artTally is the only way to see them), the catalog's ten
           session maps, the queue, the transfer list, the DOM, and the
           live listeners and timers.

           The listener and timer counts come from a registry that a step
           installs IN THE PAGE, not from here: they are -1 until it is
           installed, which means every step before the session block, every
           step after it puts itself away again, and the whole phone walk,
           where it is never installed at all. They count what was
           registered AFTER the install and is still ATTACHED — window,
           document, or an element that is connected — so the absolute
           number is small and depends on how much of the walk ran first;
           it is the DELTA across the laps that means anything. Attached
           rather than add-minus-remove because that counter is a liar in
           this app: {#key nav.seq} replaces the .screen element on every
           navigation, so each new screen gets its own scroll handler and
           the old element is simply dropped.

           grew* is the same number against whatever the block latched into
           window.__ssBase, and -1 when nothing has. Every backslash here is
           doubled and there is not one backtick, comment included — this
           block lives inside a template literal. */
        tallyArt: (function () {
            /* one census per probe, kept in __ssLast for the fields below:
               a field of an object literal cannot see its siblings, and
               this insert is the only part of the probe this round owns.
               All of it is a read; nothing here fetches or evicts. */
            window.__ssCensus = function () {
                var out = { art: 0, chars: 0, accents: 0, pending: 0, cat: 0, queue: 0, xfer: 0, nodes: 0, ears: -1, timers: -1, ticks: -1 };
                try { var a = __ss.artTally(); out.art = a.art; out.chars = a.chars; out.accents = a.accents; out.pending = a.pending; /* waiting is a SUBSET of pending, never a second queue */ } catch (e) {}
                try {
                    var c = __ss.catalog;
                    var ks = ['artists', 'albums', 'extras', 'profiles', 'seeds', 'albumInfo', 'popular', 'heroSeeds', 'overviews', 'listeners'];
                    for (var i = 0; i < ks.length; i++) out.cat += Object.keys(c[ks[i]] || {}).length;
                } catch (e) {}
                try { out.queue = __ss.player.queue.length; } catch (e) {}
                try { out.xfer = Object.keys(__ss.transfers.items).length; } catch (e) {}
                try { out.nodes = document.getElementsByTagName('*').length; } catch (e) {}
                try { var k = window.__ssCount(); out.ears = k.listeners; out.timers = k.timeouts; out.ticks = k.intervals; } catch (e) {}
                return out;
            };
            window.__ssLast = window.__ssCensus();
            return window.__ssLast.art;
        })(),
        tallyChars: (function () { try { return window.__ssLast.chars; } catch (e) { return 0; } })(),
        tallyAcc: (function () { try { return window.__ssLast.accents; } catch (e) { return 0; } })(),
        tallyPend: (function () { try { return window.__ssLast.pending; } catch (e) { return 0; } })(),
        tallyCat: (function () { try { return window.__ssLast.cat; } catch (e) { return 0; } })(),
        tallyQueue: (function () { try { return window.__ssLast.queue; } catch (e) { return 0; } })(),
        tallyXfer: (function () { try { return window.__ssLast.xfer; } catch (e) { return 0; } })(),
        tallyNodes: (function () { try { return window.__ssLast.nodes; } catch (e) { return 0; } })(),
        tallyEars: (function () { try { return window.__ssLast.ears; } catch (e) { return -1; } })(),
        tallyTimers: (function () { try { return window.__ssLast.timers; } catch (e) { return -1; } })(),
        tallyTicks: (function () { try { return window.__ssLast.ticks; } catch (e) { return -1; } })(),
        grewArt: (function () { try { return window.__ssLast.art - window.__ssBase.art; } catch (e) { return -1; } })(),
        grewCat: (function () { try { return window.__ssLast.cat - window.__ssBase.cat; } catch (e) { return -1; } })(),
        grewEars: (function () { try { return window.__ssLast.ears - window.__ssBase.ears; } catch (e) { return -1; } })(),
        grewTimers: (function () { try { return window.__ssLast.timers - window.__ssBase.timers; } catch (e) { return -1; } })(),
        grewTicks: (function () { try { return window.__ssLast.ticks - window.__ssBase.ticks; } catch (e) { return -1; } })(),
        grewNodes: (function () { try { return window.__ssLast.nodes - window.__ssBase.nodes; } catch (e) { return -1; } })(),
