<!-- SOLID CITY · part 2868 -->
AT_URL).then(function (j) { D.feat = j; return j; });
  if (which === 'cur') return D.cur ? Promise.resolve(D.cur) : getJSON(CUR_URL).then(function (j) { D.cur = j; return j; });
  return getJSON('/api/beauty?brief=1', true).then(function (j) { D.beauty = j; return j; });
}
function fail(e) { body.innerHTML = '<p class="pd-meta">Could not load this list. Try again in a moment.</p>'; }
function features() {
  load('feat').then(function (F) {
    body.innerHTML = '<p class="pd-meta">' + esc(F.note || '') + '</p>' + F.groups.map(function (g) {
      return '<div class="pd-g"><h4>' + esc(g.title) + '</h4>' + g.items.map(function (it, i) {
        var go = it.city ? '<button type="button" class="pd-go gold" data-a="' + esc(it.city) + '">' + (/^tab:/.test(it.city) ? 'Open' : 'Go') + '</button>' : '';
        var link = it.href && (!it.city || !/^\/city\//.test(it.href)) ? '<a class="pd-go" href="' + esc(it.href) + '"' + (/^\/city\//.test(it.href) ? '' : ' target="_blank" rel="noopener"') + '>' + (it.city ? 'Page' : 'Open') + '</a>' : '';
        return '<div class="pd-i"><div><b>' + esc(it.name) + '</b><small>' + esc(fill(it.line)) + '</small></div>' + go + link + '</div>';
      }).join('') + '</div>';
    }).join('') + '<p class="pd-meta">Updated ' + esc(F.updated || '') + ' \u00b7 also on <a href="/learn" target="_blank" rel="noopener" style="color:#f6dc8e">/learn</a></p>';
    body.querySelectorAll('[data-a]').forEach(function (b) { b.addEventListener('click', function () { act(b.getAttribute('data-a')); }); });
  }).catch(fail);
}
function courses() {
  load('cur').then(function (C) {
    var n = C.campuses.reduce(function (a, c) { return a + c.courses.length; }, 0);
    body.innerHTML = '<p>The University Course Catalog: <b>' + C.campuses.length + ' campuses</b>, <b>' + n + ' courses</b>. Tap a course to open it, or go to its campus.</p>' +
      C.campuses.map(function (c) {
        return '<div class="pd-c"><b>' + esc(c.name) + '</b><div class="pd-row"><button type="button" class="pd-go gold" data-go="' + esc(c.id) + '">\uD83E\uDDED Go there</button><button type="button" class="pd-go" data-cat="' + esc(c.id) + '">\uD83D\uDCDA Catalog</button><a class="pd-go" href="/learn?campus=' + encodeURIComponent(c.id) + '#library" target="_blank" rel="noopener">Library</a></div>' +
          c.courses.map(function (k) { return '<button type="button" class="pd-k" data-c="' + esc(c.id) + '" data-k="' + esc(k.id) + '"><b style="color:#ffd27a">' + esc(k.title) + '</b><br><span class="pd-meta">' + k.lessons.length + ' lessons</span></button>'; }).join('') + '</div>';
      }).join('');
    var U = window.CityCampus;
    body.querySelectorAll('[data-go]').forEach(function (b) { b.addEventListener('click', function () { close(); if (U && U.go) U.go(b.getAttribute('data-go')); }); });
    body.querySelectorAll('[data-cat]').forEach(function (b) { b.addEventListener('click', function () { close(); if (U) U.open(b.getAttribute('data-cat')); }); });
    body.querySelectorAll('[data-k]').forEach(function (b) { b.addEventListener('click', function () { close(); if (U && U.course) U.course(b.getAttribute('data-c'), b.getAttribute('data-k')); }); });
  }).catch(fail);
}
function beauty() {
  load('beauty').then(function (B) {
    var c = B.counts || {}, rows = B.entries || [];
    body.innerHTML = '<p class="pd-q">\u201c' + esc(B.question) + '\u201d</p><p class="pd-meta">' + (c.total || 0) + ' entries \u00b7 ' + (c.open || 0) + ' open \u00b7 ' + (c.ready || 0) + ' ready to implement \u00b7 ' + (c.doing || 0) + ' doing \u00b7 ' + (c.done || 0) + ' done</p>' +
      '<div class="pd-row"><a class="pd-go gold" href="/beauty" target="_blank" rel="noopener">Open the Beauty Log</a><a class="pd-go" href="/beauty#new" target="_blank" rel="noopener">Add an entry</a></div>' +
      (rows.length ? rows.map(function (e) { return '<a class="pd-k" style="text-decoration:none" href="/beauty/' + (+e.id) + '" target="_blank" rel="noopener"><b style="color:#ffd27a">B-' + (+e.id) + ' \u00b7 ' + esc(e.title) + '</b><br>' +
        (e.ready ? '<span class="pd-tag ready">ready</span>' : '') + '<span class="pd-tag">' + esc(e.status) + '</span><span class="pd-tag">effort ' + esc(e.effort) + '</span><span class="pd-meta">' + esc(e.area) + '</span></a>'; }).join('') : '<p class="pd-meta">No open entries right now.</p>');
  }).catch(fail);
}
window.CityPodium = { update: update, radar: radar, actHere: actHere, open: open, close: close, tab: function (t) { open(t); }, POS: POS, READ: READ, state: function () { return { state: D.state, open: !!(P && !P.hidden), tab: D.tab }; } };
})();


===== FILE: public/city/podium.js.bak-batten-20261014 =====
/* SOLID CITY: the speaker's podium "ALL THAT WE CAN DO!" (2026-10-10, the King: "Write on a podium All that we can do!").
   WHERE: the Forum Plaza, 14 m from the King's Book of Law and 12 m left of the arrival point, clear of every citizen walking
   line (>= 8.9 m), the arrival-to-Bo