<!-- SOLID CITY · part 3676 -->
pth ? 0 : off);
      var wx = mesh.position.x + lx * c + lz * s, wz = mesh.position.z - lx * s + lz * c;
      A.solids.push({ x0: wx - hx, x1: wx + hx, z0: wz - hz, z1: wz + hz, y0: ly - p.height / 2 - 0.03, y1: ly + p.height / 2 + 0.03, wardHouseWall: true });
    }
  });
}
function raiseHouse(house) {
  A.scene.add(house.mesh);
  var roofTop = null, floorMesh = null, roofMesh = null;
  house.mesh.children.forEach(function (ch) {
    var p = ch.geometry && ch.geometry.parameters;
    if (!p) return;
    if (p.width >= 8.7 && Math.abs(p.height - 0.28) < 0.01) { roofTop = ch.position.y + p.height / 2; roofMesh = ch; }
    if (p.width >= 7.5 && p.height >= 0.2 && p.height <= 0.6 && Math.abs(ch.position.y + p.height / 2 - house.stand.center[1]) < 0.05) floorMesh = ch;
  });
  H.houses.push({ stand: house.stand, roofTop: roofTop, cx: house.plot.cx, cz: house.plot.cz, ward: house.plot.ward });
  var label = (house.id || ('W' + house.plot.ward)) + ' @ (' + Math.round(house.plot.cx) + ', ' + Math.round(house.plot.cz) + ')';
  regAudit('HOUSE FLOOR — ' + label, floorMesh, topAware(house.stand.center[1]), 'slab');
  if (roofMesh && roofTop) regAudit('HOUSE ROOF — ' + label, roofMesh, topAware(roofTop), 'slab');
  wallSolids(house);
  return roofTop;
}
function load() {
  Promise.all([
    import('/city/ward-houses.js?v=20261013a'),
    import('/city/ward-joins.js?v=20261013a'),
    import('/city/wards.js?v=20261013a'),
    fetch('/city/city.js').then(function (r) { return r.text(); })
  ]).then(function (r) {
    var seg = r[3].slice(r[3].indexOf('var SEED'), r[3].indexOf('function mulberry'));
    var gnd = new Function(seg + '; return groundAt;')();
    var isAllowed = r[2].isAllowedSolidCity(gnd);
    // THE MULTIPLICATION — every lawful house the searcher found, raised.
    var table = [], pilot = null, occupied = [];
    [2, 3, 5].forEach(function (ward) {
      var res = r[0].createWardHouses({ THREE: A.THREE, groundAt: gnd, isAllowed: isAllowed, ward: ward });
      res.accepted.forEach(function (house) {
        raiseHouse(house);
        var m = r[0].measureWardHouse(house, gnd);
        table.push('W' + ward + ' @ (' + Math.round(house.plot.cx) + ', ' + Math.round(house.plot.cz) + ') floor ' + m.floorY.toFixed(2)); occupied.push({ cx: house.plot.cx, cz: house.plot.cz });
        if (ward === 2 && !pilot) pilot = house;
      });
    });
    // WARD 4 — the two surveyed gate plots, raised through the surveyed-plot adapter under the shipped law.
    var w4 = r[0].createSurveyedWardHouses({ THREE: A.THREE, groundAt: gnd, isAllowed: isAllowed, occupiedFootprints: occupied, plots: [
      { id: 'W4-A', ward: 4, cx: -924.764172, cz: -790.330013, ux: 0.6919053632, uz: 0.7219882051, vx: 0.7219882051, vz: -0.6919053632, floorY: 11.17 },
      { id: 'W4-B', ward: 4, cx: -941.803093, cz: -774.001046, ux: 0.6919053632, uz: 0.7219882051, vx: -0.7219882051, vz: 0.6919053632, floorY: 11.07 }
    ] });
    w4.accepted.forEach(function (house) { raiseHouse(house); var m = r[0].measureWardHouse(house, gnd); table.push('W4-' + house.id.slice(-1) + ' @ (' + Math.round(house.plot.cx) + ', ' + Math.round(house.plot.cz) + ') floor ' + m.floorY.toFixed(2)); });
    if (!pilot) throw new Error('no pilot house');
    H.housePos = { x: pilot.plot.cx, z: pilot.plot.cz };
    // THE TWO SHORT JOINS — built, and their surfaces connected to movement.
    var joins = r[1].createShortWardJoins({ THREE: A.THREE, groundAt: gnd, isAllowed: isAllowed });
    for (var name in joins) { A.scene.add(joins[name].group); if (joins[name].standSurface && joins[name].standSurface.geometry) { var jt = extractTris(joins[name].standSurface.geometry); H.joins.push(jt); H.joinIx.push(indexTris(jt)); regAudit('JOIN ' + name, new (A.THREE || A.T).Mesh(joins[name].standSurface.geometry), ribbonStand(jt), 'ribbon'); } }
    // THE WARD 6 CONNECTOR — surveyed line to the Long Road corridor's edge.
    var w6 = r[1].createWardConnector({ THREE: A.THREE, groundAt: gnd, isAllowed: isAllowed, name: 'W6-LongRoad', line: [[-1118, -540], [-1135.3, -508.3]] });
    var w6note = 'W6 connector REFUSED: ' + (w6.check && w6.check.reason ? w6.check.reason : 'check');
    if (w6.accepted) { A.scene.add(w6.group); var wt = extractTris(w6.standSurface.geometry); H.joins.push(wt); H.joinIx.push(indexTris(wt)); regAudit('JOIN W6-LongRoad', new (A.THREE || A.T).Mesh(w6.standSurface.geometry), ribbonStand(wt), 'ribbon'); var wm = w6.measure(); w6note = 'W6 connector built to the last lawful station before the Long Road corridor boundary (36.1 m, ending 1.3 m short at the survey boundary per the schematic\'s refusal law — the road-edge apron awaits its own survey; deviation from lift max ' + wm.maxAbsErrorFromLift.toFixed(4) + ' m, ' + wm.upFacingTriangles + ' up / ' + wm.downFacingTriangles + ' down).'; }
    // THE W6 APRON — the last metres onto the Long Road itself (surveyed + built 2026-10-13, the fix commission).
    // The road runs on an e