<!-- SOLID CITY · part 2867 -->
px}.pd-i small{color:#cbb9b9;font-size:13px}' +
    '.pd-go{min-width:52px;min-height:44px;padding:0 10px;border-radius:12px;border:1px solid #e8c36a;background:#140c10;color:#f6dc8e;font:700 13px system-ui;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.pd-go.gold{background:#e8c36a;color:#140c10}' +
    '.pd-row{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.pd-meta{color:#b9a3a3;font-size:12px}.pd-tag{font:700 10px system-ui;letter-spacing:.08em;padding:3px 6px;border-radius:8px;border:1px solid #6b5220;color:#e8c36a;margin-right:4px;text-transform:uppercase}.pd-tag.ready{background:#ff2a40;border-color:#ff2a40;color:#fff}' +
    '.pd-c{border:1px solid rgba(107,82,32,.8);border-radius:14px;padding:8px 10px;margin:8px 0;background:rgba(12,8,10,.8)}.pd-c > b{color:#ffd27a;font:700 15px Georgia,serif}.pd-k{display:block;width:100%;text-align:left;min-height:44px;margin:5px 0;padding:8px 10px;border-radius:10px;border:1px solid #3a2228;background:#120a0d;color:#f6e9c4;font:13px/1.35 system-ui;cursor:pointer}' +
    '.pd-q{font:italic 15px/1.4 Georgia,serif;color:#ffe3a0;border-left:3px solid #ff2a40;padding-left:10px;margin:6px 0 10px}' +
    '@media (max-width:600px){#pd-panel{left:0;right:0;margin:0 auto;width:min(calc(100vw - 16px),560px);top:auto;bottom:0;height:78vh;height:78dvh;max-height:calc(100% - 96px - env(safe-area-inset-top));border-radius:18px 18px 0 0;border-bottom:0;padding-bottom:env(safe-area-inset-bottom)}}' +
    '@media (max-height:500px) and (min-width:601px){#pd-panel{top:calc(8px + env(safe-area-inset-top));bottom:calc(8px + env(safe-area-inset-bottom))}}';
  document.head.appendChild(st);
}
function panel() {
  if (P) return P; css();
  P = document.createElement('section'); P.id = 'pd-panel'; P.hidden = true; P.setAttribute('aria-label', 'All that we can do');
  P.innerHTML = '<div class="pd-hd"><b>\u2756 ALL THAT WE CAN DO!</b><button type="button" class="pd-x" id="pd-x" aria-label="Close">\u2715</button></div>' +
    '<div class="pd-tabs" role="tablist"><button type="button" data-t="features">\u2728 Features</button><button type="button" data-t="courses">\uD83C\uDF93 Courses</button><button type="button" data-t="beauty">\uD83C\uDF39 Beauty Log</button></div><div class="pd-bd" id="pd-body"></div>';
  ($('sc-hud') || document.body).appendChild(P); body = $('pd-body');
  ['pointerdown', 'wheel', 'touchstart'].forEach(function (ev) { P.addEventListener(ev, function (e) { e.stopPropagation(); }, { passive: true }); });
  ['keydown', 'keyup'].forEach(function (ev) { P.addEventListener(ev, function (e) { if (e.key === 'Escape') { close(); return; } e.stopPropagation(); }); });
  $('pd-x').addEventListener('click', close);
  P.querySelectorAll('[data-t]').forEach(function (b) { b.addEventListener('click', function () { tab(b.getAttribute('data-t')); }); });
  return P;
}
function close() { if (P) P.hidden = true; }
function open(t) { panel(); P.hidden = false; tab(t || D.tab || 'features'); }
function tab(t) {
  D.tab = t; P.querySelectorAll('[data-t]').forEach(function (b) { b.classList.toggle('on', b.getAttribute('data-t') === t); b.setAttribute('aria-selected', b.getAttribute('data-t') === t ? 'true' : 'false'); });
  body.scrollTop = 0; body.innerHTML = '<p class="pd-meta">Loading\u2026</p>';
  var f = t === 'courses' ? courses : t === 'beauty' ? beauty : features; f();
}
function fill(s) {
  var n = { citizens: window.CityCitizens && CityCitizens.roster ? CityCitizens.roster.length : '', songs: '' };
  try { var ps = window.CityPlayer && CityPlayer.state(); if (ps && ps.songs) n.songs = ps.songs; } catch (e) {}
  return String(s).replace(/\{(citizens|songs)\}\s*/g, function (m, k) { return n[k] ? n[k] + ' ' : ''; }).replace(/^./, function (c) { return c.toUpperCase(); });
}
function act(k) {   // in-city actions for the feature list; every one maps to a live module API
  var H = window.CityHyper;
  if (k === 'close') return close();
  if (/^tab:/.test(k)) return tab(k.slice(4));
  close();
  if (k === 'hyper') { if (window.CityHyperFold) CityHyperFold.set(false); return; }
  if (k === 'watch' && window.CityWatch) return CityWatch.open();
  if (k === 'radar' && window.CityCitizens) return CityCitizens.list();
  if (k === 'sable') return A.openTalk();
  if (k === 'soul') return A.openSoul();
  if (/^citizen:/.test(k) && window.CityCitizens) return CityCitizens.open(k.slice(8));
  if (k === 'forge' && window.CityForge) return CityForge.open();
  if (k === 'music' && window.CityPlayer) return CityPlayer.open(true);
  if (k === 'book' && window.CityBook) return CityBook.open(0);
  if (k === 'library' && window.CityCampus) return CityCampus.directory();
  if (/^hyper:/.test(k) && H) { var p = H.pois.filter(function (q) { return q.id === k.slice(6); })[0]; if (p) H.driveTo(p, 'AI DRIVE'); }
}
function load(which) {
  if (which === 'feat') return D.feat ? Promise.resolve(D.feat) : getJSON(FE