<!-- SOLID CITY · part 2589 -->
.max(run.hi, segHi) - Math.min(run.lo, segLo) > 0.8)) flush();
              if (!run) run = { x0: ca[0], z0: ca[2], x1: cb[0], z1: cb[2], y0: y0, y1: y1, hi: segHi, lo: segLo };
              else { run.x1 = cb[0]; run.z1 = cb[2]; if (y0 < run.y0) run.y0 = y0; if (y1 > run.y1) run.y1 = y1; if (segHi > run.hi) run.hi = segHi; if (segLo < run.lo) run.lo = segLo; }
            }
          }
          /* THE CLIFF'S BODY (the same sitting): where the cut is
           * deep — the far land still 2.5 m up at five metres out,
           * the smith's own cliff measure — a plumb body stands
           * behind the wall's face: centred 1.5 m out, from just
           * under the road to just under the land the wall meets.
           * One plumb wall, like its face; nothing stepped, nothing
           * crazy. The shoulder keeps its air: the body's inboard
           * face stands a full metre out from the edge line. */
          var cxp = mx + sd * rx * 1.5, czp = mz + sd * rz * 1.5;
          var cskip = (groundAt(mx + sd * rx * 5, mz + sd * rz * 5) - edgeY) <= 2.5;
          if (!cskip) for (var j2 = 0; j2 < JX.length && !cskip; j2++) if (Math.hypot(cxp - JX[j2][0], czp - JX[j2][1]) < 11) cskip = true;
          if (!cskip) for (var k2 = 0; k2 < driveMouths.length && !cskip; k2++) if (Math.hypot(cxp - driveMouths[k2][0], czp - driveMouths[k2][1]) < 4.5) cskip = true;
          if (!cskip && !foreignClear(cxp, czp, nm, i)) cskip = true;
          if (cskip) { cflush(); continue; }
          var cy1 = edgeY + Math.min(groundAt(cxp, czp) - edgeY, 7) - 0.3, cy0 = edgeY - 0.6;
          if (cy1 - cy0 < 1.2) { cflush(); continue; }
          if (crun) {
            var cadx = cxp - crun.x1, cadz = czp - crun.z1, crdx = crun.x1 - crun.x0, crdz = crun.z1 - crun.z0;
            var cturn = Math.abs(Math.atan2(-cadz, cadx) - Math.atan2(-crdz, crdx));
            var cchx = cxp - crun.x0, cchz = czp - crun.z0, cchl = Math.hypot(cchx, cchz) || 1;
            var cdev = Math.abs((crun.x1 - crun.x0) * cchz - (crun.z1 - crun.z0) * cchx) / cchl;
            if (cturn > 0.06 || Math.hypot(crun.x1 - crun.x0, crun.z1 - crun.z0) > 4 || cdev > 0.25) cflush();
          }
          var csegHi = Math.max(ca[1], cb[1]), csegLo = Math.min(ca[1], cb[1]);
          if (crun && (Math.max(crun.hi, csegHi) - Math.min(crun.lo, csegLo) > 0.8)) cflush();
          if (!crun) crun = { x0: cxp, z0: czp, x1: cxp, z1: czp, y0: cy0, y1: cy1, hi: csegHi, lo: csegLo };
          else { crun.x1 = cxp; crun.z1 = czp; if (cy0 < crun.y0) crun.y0 = cy0; if (cy1 > crun.y1) crun.y1 = cy1; if (csegHi > crun.hi) crun.hi = csegHi; if (csegLo < crun.lo) crun.lo = csegLo; }
        }
        flush(); cflush();
      });
    });
  }
  /* THE SOLID BRIDGE (the King's design, 2026-10-13 ~23:53, from
   * the slab render's evidence): at the B2 hairpin the bend's inner
   * bank chords over the descending road — grass covering the top
   * of the pavement. His word: "make a tiny bridge and have a
   * plaque on the side of it that says SOLID." So the crossing is
   * formalized, not erased: a turf bridge where the slope already
   * flows — a stone deck slab with grass crown and stone edge
   * beams, two stone abutments (a low face on the knob side, a
   * sturdy pier on the falling side), grass ramps so a walker
   * crosses over the traffic, 3.1 m of air over the carriageway,
   * and a plaque on each traffic face: SOLID. */
  function buildSolidBridge() {
    var sts = smithRoads.B2.stations, bi = -1, bd = 1e12;
    sts.forEach(function (s2, i2) { var d = (s2.x - 1023) * (s2.x - 1023) + (s2.z + 1637) * (s2.z + 1637); if (d < bd) { bd = d; bi = i2; } });
    if (bi < 0 || bd > 900) return;
    var s = sts[bi], ry = Math.atan2(s.fx, s.fz);
    /* the deck rides its station (3.64 above the road's heart:
     * 3.09 of air under the slab) — if the profile is ever re-cut,
     * the bridge climbs with its road */
    var TOP = Math.round((s.y + 3.64) * 10) / 10, SLAB = 0.55, W = 7.0, cx = s.x, cz = s.z;
    var eA = [cx - s.rx * 5.65, cz - s.rz * 5.65], eB = [cx + s.rx * 5.65, cz + s.rz * 5.65];
    var gA = groundAt(eA[0], eA[1]) - 0.3, gB = groundAt(eB[0], eB[1]) - 0.3;
    var hA = (TOP - SLAB) - gA, hB = (TOP - SLAB) - gB;
    BASE = M4(cx, TOP, cz, ry, 0, 0);
    box(solid, 13.6, SLAB, W, 0, -SLAB / 2, 0, C.stone);
    box(solid, 13.2, 0.16, 6.6, 0, 0.08, 0, C.lawn);
    box(solid, 13.6, 0.8, 0.5, 0, -0.55, 3.25, C.stone);
    box(solid, 13.6, 0.8, 0.5, 0, -0.55, -3.25, C.stone);
    box(solid, 2.3, hA, 6.4, -5.65, -SLAB - hA / 2, 0, C.stone);
    box(solid, 2.3, hB, 6.4, 5.65, -SLAB - hB / 2, 0, C.stone);
    BASE = new T.Matrix4();
    standQuad(cx, TOP + 0.16, cz, ry, 0, 13.2, 6.6, 0.05);
    function grassRamp(x0, z0, y0, x1, z1, y1) {
      var len = Math.hypot(x1 - x0, z1 - z0), n = Math.max(1, Math.round(len / 1.6)), ang = Math.atan2(x1 - x0, z1 - z0), run = len / n;
      for (var j = 0; j < n; j++) {
        var ga = y0 + 