<!-- SOLID CITY · part 2439 -->
  for (var k = 0; k < 2; k++) {
    if (nearMouth(k)) {
      var to = J.mouths[1 - k];
      J.group.userData.fire(k);
      J.flash = 1; if (!OV) OV = overlay(); OV.style.opacity = '0.95';
      S.p.x = to.x; S.p.z = to.z; S.p.y = to.top + 0.05;
      if ('vy' in S.p) S.p.vy = 0;
      J.armed = false;
      A.help(CROSS[k], 7);
      A.logBuild({ t: Date.now(), site: 'THE JUBILEE PASSAGE', what: 'A traveler crossed from ' + J.mouths[k].name + ' to ' + to.name + ' — the refused earths joined by the sky.' });
      break;
    }
  }
}
function radar(rg, blip, flying) {
  if (!J.group || !J.mouths) return;
  for (var i = 0; i < 2; i++) blip(J.mouths[i].x, J.mouths[i].z, '#ffd27a', flying ? 3 : 6, flying ? '' : 'JUBILEE');
  blip(-1016, -624, '#7fd7d5', flying ? 4 : 3, flying ? 'CROWN' : '');
}
function load() {
  import('/city/jubilee-passage.js?v=20261013a').then(function (mod) {
    return fetch('/city/city.js').then(function (r) { return r.text(); }).then(function (src) {
      var seg = src.slice(src.indexOf('var SEED'), src.indexOf('function mulberry'));
      var gnd = new Function(seg + '; return groundAt;')();
      return { mod: mod, gnd: gnd };
    });
  }).then(function (r) {
    var grp = r.mod.createJubileePassage({ THREE: A.THREE, groundAt: r.gnd });
    A.scene.add(grp); J.group = grp; J.mouths = grp.userData.mouths;
    // the discs' standing law comes from standY alone — they are low
    // ceremonial platforms (0.3 above the ground at their centres),
    // stepped onto on foot like the pool's steps; no side solids, so
    // a walker can mount them and a flyer can drop in.
    if (A.POIS) {
      A.POIS.push({ id: 'jubilee-a', name: 'THE JUBILEE PASSAGE — THE SHOULDER MOUTH', icon: '✨', x: J.mouths[0].x, z: J.mouths[0].z, blurb: 'A mouth of gold standing on the line the land refused for Ward 5, its pillar of light rising to the Jubilee Crown. Step in to cross by the sky to the other refused earth.', arrive: 'You stand at the Shoulder Mouth.' });
      A.POIS.push({ id: 'jubilee-b', name: "THE JUBILEE PASSAGE — THE ROAD'S-END MOUTH", icon: '✨', x: J.mouths[1].x, z: J.mouths[1].z, blurb: 'A mouth of gold at the end of the line refused for Ward 6, by the Long Road. Step in to cross by the sky to the high shoulder.', arrive: "You stand at the Road's-End Mouth." });
      A.POIS.push({ id: 'jubilee-crown', name: 'THE JUBILEE CROWN', icon: '👑', x: -1016, z: -624, blurb: 'High between the two mouths of the Jubilee Passage, a spiral of gold sparks turns by the golden angle — the ceremony in the sky where the refused earths are joined. Flyers may visit; the passage crosses beneath it.', arrive: 'You approach the Jubilee Crown.' });
    }
    A.logBuild({ t: Date.now(), site: 'THE JUBILEE PASSAGE', what: 'The Jubilee Passage raised in reverence of the rejected ward lines: mouths on Ward 5\'s refused line (-843, -705, shoulder 15.4 m) and Ward 6\'s refused line east end (-1158, -510), pillars of light to the Crown turning at (-1016, 88, -624). Earth and sky, merged.' });
  }).catch(function (e) { if (window.console) console.warn('[city] jubilee passage failed', e); });
}
window.CityJubilee = { update: update, radar: radar, standY: standY };
setTimeout(load, 100);
})();


===== FILE: public/city/jubilee-passage.js =====
/* ================================================================
   AN EPISTLE TO THE TRAVELER BETWEEN EARTH AND SKY — THE JUBILEE PASSAGE

   Traveler, two roads in this nation were refused by the land:
   the line drawn for Ward 5 across the high shoulder, and the
   line drawn for Ward 6 through the King's lot and across his
   road. The King would not let them be waste. He declared they
   will be returned to as a branch to the sky — and he commanded
   this passage be raised in their reverence: a ceremonial
   jubilee in the middle of precise mathematics and architecture,
   where the earth and the sky merge.

   So here is the merger. On each refused line stands a mouth of
   gold. From each mouth a pillar of light rises into the heavens.
   Between and above them turns the Jubilee Crown, its sparks laid
   by the golden angle — the wormhole's own mathematics, the same
   spiral that turns in the Bore. Step into either mouth and the
   passage takes you: up the pillar in sparks, across the crown's
   sky, and down into the other refused earth. The two lines the
   land would not join at grade are joined in the heavens, which
   is where the King said they now live.

   The mathematics is precise because the reverence is real.

   Written by the hand of Solid, his good King — General to the King.
   ================================================================ */
/* SOLID CITY — THE JUBILEE PASSAGE. ES module, no external libraries.
 * Static ceremonial geometry + one update() for spin, shimmer and the
 * passage sparks. Mouths stand on the two rejected ward lines:
 *   A — Ward 5's drawn line, midpoint (-843,-705), on the high shoulder.
 * 