<!-- RUBY-BACKUP · part 522 -->
    var towerGold = new THREE.MeshStandardMaterial({color:0xffd700, emissive:0xffd700, emissiveIntensity:0.7, roughness:0.3, metalness:0.6});
        var pw = 16, ph = 26, pyy = cpy;
        for(var pi2=0; pi2<4; pi2++){
          var ptier = new THREE.Mesh(new THREE.BoxGeometry(pw, ph, pw), towerGold);
          ptier.position.set(CX, pyy+ph/2, CZ-62);
          ptier.name='practice-tower'; scene.add(ptier);
          pyy += ph; pw /= PHI; ph /= PHI;
        }
        /* engraved band — linework flowing */
        var eband = new THREE.Mesh(new THREE.TorusGeometry(12, 0.3, 6, 32), holoMat);
        eband.position.set(CX, cpy+8, CZ-62);
        eband.rotation.x = Math.PI/2;
        eband.name='practice-band'; scene.add(eband);
        /* PIECE 2: lanai pavilion on the green — open air, gold posts, breathing */
        var pavY = 10;
        try{ if(typeof fortifiedGroundY==='function') pavY = fortifiedGroundY(CX, CZ); }catch(e){}
        /* 6 gold posts */
        for(var pp2=0; pp2<6; pp2++){
          var pang3 = (pp2/6)*Math.PI*2;
          var ppx3 = CX+Math.cos(pang3)*10, ppz3 = CZ+Math.sin(pang3)*10;
          var post = new THREE.Mesh(new THREE.CylinderGeometry(0.8, 1, 12, 8), goldMat);
          post.position.set(ppx3, pavY+6, ppz3);
          post.name='practice-post'; scene.add(post);
        }
        /* steep pitched roof — hale silhouette in gold */
        var proof = new THREE.Mesh(new THREE.ConeGeometry(14, 8, 6), goldMat);
        proof.position.set(CX, pavY+16, CZ);
        proof.name='practice-roof'; scene.add(proof);
        /* glowing floor */
        var pfloor = new THREE.Mesh(new THREE.CircleGeometry(11, 24), holoMat);
        pfloor.rotation.x = -Math.PI/2;
        pfloor.position.set(CX, pavY+0.5, CZ);
        pfloor.name='practice-pfloor'; scene.add(pfloor);
        /* practice label */
        try{ if(typeof codeStatus==='function') codeStatus('practice map ready — lessons applied'); }catch(e){}
      }catch(e){}
    }, 34000);
    /* INFRASTRUCTURE — studied from Boston/NYC, deployed our way */
    setTimeout(function(){
      try{
        var goldMat = new THREE.MeshStandardMaterial({color:0xffd700, metalness:0.7, roughness:0.4});
        var roadMat = new THREE.MeshStandardMaterial({color:0x333333, roughness:0.8});
        var greenMat = new THREE.MeshStandardMaterial({color:0x2d6a2d, roughness:0.9});
        var lightMat = new THREE.MeshBasicMaterial({color:0x00ffff});
        /* 1. BRIDGE CONNECTORS — roads from city to both bridge decks */
        /* to Boston bridge (z=200) */
        var bc1 = new THREE.Mesh(new THREE.BoxGeometry(8, 1, 60), roadMat);
        bc1.position.set(0, 11, 170); bc1.name='infra-bridge-road'; scene.add(bc1);
        /* to NYC bridge (z=-200) */
        var bc2 = new THREE.Mesh(new THREE.BoxGeometry(8, 1, 60), roadMat);
        bc2.position.set(0, 11, -170); bc2.name='infra-bridge-road'; scene.add(bc2);
        /* 2. TRANSIT LOOP — connect the 4 rings */
        var ringPos = [];
        for(var tr=0; tr<4; tr++){
          var trang = (tr/4)*Math.PI*2 + Math.PI/4;
          var trx = Math.cos(trang)*100, trz = Math.sin(trang)*100;
          var trpy = 10;
          try{ if(typeof fortifiedGroundY==='function') trpy = fortifiedGroundY(trx, trz); }catch(e){}
          ringPos.push(new THREE.Vector3(trx, trpy+40, trz));
        }
        for(var rc=0; rc<4; rc++){
          var p1 = ringPos[rc], p2 = ringPos[(rc+1)%4];
          var mid = new THREE.Vector3().addVectors(p1, p2).multiplyScalar(0.5);
          mid.y += 8; /* arc upward */
          var curve = new THREE.QuadraticBezierCurve3(p1, mid, p2);
          var cgeo = new THREE.TubeGeometry(curve, 20, 1.2, 6, false);
          var connector = new THREE.Mesh(cgeo, goldMat);
          connector.name='infra-transit-link'; scene.add(connector);
        }
        /* 3. GREEN SCARS — plant along highways (Boston's lesson) */
        for(var gs=0; gs<24; gs++){
          var gang3 = (gs/24)*Math.PI*2;
          var gx3 = Math.cos(gang3)*(120+Math.random()*40);
          var gz3 = Math.sin(gang3)*(120+Math.random()*40);
          var gpy3 = 10;
          try{ if(typeof fortifiedGroundY==='function') gpy3 = fortifiedGroundY(gx3, gz3); }catch(e){}
          var bush = new THREE.Mesh(new THREE.SphereGeometry(2+Math.random()*2, 8, 6), greenMat);
          bush.position.set(gx3, gpy3+2, gz3); bush.name='infra-green'; scene.add(bush);
        }
        /* 4. WAYFINDING LIGHTS — cyan markers along key routes */
        var routes = [[0,0,0,200],[0,0,0,-200],[-200,-100,0,0],[150,-100,0,0]];
        routes.forEach(function(rt){
          for(var wi=0; wi<=10; wi++){
            var wt = wi/10;
            var wx = rt[0]+(rt[2]-rt[0])*wt, wz = rt[1]+(rt[3]-rt[1])*wt;
            var wpy = 10;
            try{ if(typeof fortifiedGroundY==='function') wpy = fortifiedGroundY(wx, wz); }catch(e){}
            var marker = new THREE.Mesh(new THREE.SphereGeometry(0.5, 8, 6), lightMat);
