<!-- SOLID CITY · part 2657 -->
ath.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 + (y1 - y0) * (j / n), gb = y0 + (y1 - y0) * ((j + 1) / n);
        var px = x0 + (x1 - x0) * ((j + 0.5) / n), pz = z0 + (z1 - z0) * ((j + 0.5) / n);
        var prx = -Math.atan2(gb - ga, run);
        BASE = M4(px, (ga + gb) / 2 - 0.02, pz, ang, prx, 0);
        box(solid, 5.2, 0.3, run + 0.5, 0, 0, 0, C.lawn);
        standQuad(px, (ga + gb) / 2 - 0.02, pz, ang, prx, 5.2, run + 0.5, 0.17);
        BASE = new T.Matrix4();
      }
    }
    var rA0 = [cx - s.rx * 10.5, cz - s.rz * 10.5], rA1 = [cx - s.rx * 6.55, cz - s.rz * 6.55];
    grassRamp(rA0[0], rA0[1], groundAt(rA0[0], rA0[1]) + 0.1, rA1[0], rA1[1], TOP + 0.16);
    var rB0 = [cx + s.rx * 6.55, cz + s.rz * 6.55], rB1 = [cx + s.rx * 12.5, cz + s.rz * 12.5];
    grassRamp(rB0[0], rB0[1], TOP + 0.16, rB1[0], rB1[1], groundAt(rB1[0], rB1[1]) + 0.1);
    foot.push([eA[0], eA[1], 2.3, 6.4, gA, TOP - SLAB, ry]);
    foot.push([eB[0], eB[1], 2.3, 6.4, gB, TOP - SLAB, ry]);
    /* the deck's body rides in two halves at the grass width: a
     * single 13.6 m entry's bounding corners fattened in the
     * placer's split until one grazed the descending road beside
     * the bridge (0.78 m, measured) — the road there runs level
     * with the deck, and only the true rectangle may speak */
    foot.push([cx - s.rx * 3.4, cz - s.rz * 3.4, 6.8, 6.6, TOP - 0.95, TOP + 0.16, ry]);
    foot.push([cx + s.rx * 3.4, cz + s.rz * 3.4, 6.8, 6.6, TOP - 0.95, TOP + 0.16, ry]);
    if (typeof document === 'undefined' || !document.createElement) return;
    try {
      var cv = document.createElement('canvas'); cv.width = 1024; cv.height = 224;
      var c2 = cv.getContext('2d');
      c2.fillStyle = '#23272e'; c2.fillRect(0, 0, 1024, 224);
      c2.strokeStyle = '#c9a44a'; c2.lineWidth = 6; c2.strokeRect(12, 12, 1000, 200);
      c2.fillStyle = '#e8c86a