<!-- RUBY-BACKUP · part 299 -->
THREE.Mesh(new THREE.TorusGeometry(80, 8, 12, 48), bldMat);
        station.position.set(0, 400, 0);
        station.rotation.x = Math.PI/2.5;
        station.name = 'orbital-station';
        g.add(station);
        // station lights
        for(var s=0; s<12; s++){
          var ang = s/12 * Math.PI*2;
          var sl = new THREE.Mesh(new THREE.SphereGeometry(1.5, 8, 8), glassMat);
          sl.position.set(Math.cos(ang)*80, 400 + Math.sin(ang)*80*Math.sin(Math.PI/2.5), Math.sin(ang)*80*Math.cos(Math.PI/2.5));
          sl.name = 'station-light';
          g.add(sl);
        }
      }catch(e){}
    })();
    /* DOWNTOWN — dense towers around the golden plaza */
    (function(){
      try{
        var dtMat = new THREE.MeshStandardMaterial({color:0x2a2a3a, metalness:0.7, roughness:0.4});
        var dtWin = new THREE.MeshStandardMaterial({color:0x00ccff, emissive:0x00ccff, emissiveIntensity:0.1});
        // ring of towers around plaza (radius 60-150)
        for(var i=0; i<40; i++){
          var ang = (i/40)*Math.PI*2;
          var rad = 60 + Math.random()*90;
          var dx = Math.cos(ang)*rad, dz = Math.sin(ang)*rad;
          if(typeof isOnHighway==='function' && isOnHighway(dx, dz)) continue;
          var dy = fortifiedGroundY(dx, dz);
          var h = 30 + Math.random()*80;
          var w = 10 + Math.random()*8;
          var tower = new THREE.Mesh(new THREE.BoxGeometry(w, h, w), dtMat);
          tower.position.set(dx, dy+h/2, dz);
          tower.name = 'downtown-'+i;
          g.add(tower);
          try{ if(typeof window._cityDots==='undefined') window._cityDots=[]; window._cityDots.push([dx,dz]); }catch(e){}
          // glowing windows
          var win = new THREE.Mesh(new THREE.BoxGeometry(w*1.15, h*0.8, w*1.15), dtWin);
          win.position.set(dx, dy+h/2, dz);
          win.name = 'downtown-win';
          g.add(win);
        }
      }catch(e){}
    })();
    /* WATER — river winding through the city */
    (function(){
      try{
        var riverPts = [
          [-800, -600], [-500, -400], [-300, -100], [-100, 200],
          [100, 400], [300, 300], [500, 100], [700, -200], [900, -400]
        ];
        var rcurve = new THREE.CatmullRomCurve3(riverPts.map(function(p){
          var _h = 0;
          try{ if(typeof fortifiedGroundY==='function') _h = fortifiedGroundY(p[0], p[1]); }catch(e){}
          return new THREE.Vector3(p[0], _h + 0.5, p[1]);
        }));
        var rgeo = new THREE.TubeGeometry(rcurve, 64, 15, 8, false);
        rgeo.scale(1, 0.15, 1);
        var waterMat = new THREE.MeshStandardMaterial({
          color: 0x2288cc, transparent: true, opacity: 0.75,
          metalness: 0.8, roughness: 0.2
        });
        var river = new THREE.Mesh(rgeo, waterMat);
        river.name = 'city-river';
        g.add(river);
        /* gentle wave animation */
        var wtime = 0;
        setInterval(function(){
          try{
            wtime += 0.05;
            waterMat.opacity = 0.7 + Math.sin(wtime)*0.08;
          }catch(e){}
        }, 100);
      }catch(e){}
    })();
    /* INTAGLIO AUTO — ultra-dense linework applied on load */
    setTimeout(function(){
      try{
        var density = 40;
        var goldMat = new THREE.MeshBasicMaterial({color:0xffd700});
        var count = 0;
        if(typeof scene!=='undefined'){
          scene.traverse(function(o){
            if(o.name && (o.name.indexOf('city-bld')===0 || o.name.indexOf('downtown')===0) && count < 15){
              var pos = o.position;
              var size = 8;
              try{ if(o.geometry && o.geometry.parameters) size = o.geometry.parameters.width || 8; }catch(e){}
              for(var li=0; li<density; li++){
                var t = li/density;
                var lg = new THREE.TubeGeometry(
                  new THREE.CatmullRomCurve3([
                    new THREE.Vector3(pos.x - size/2 + t*size, pos.y - size/2, pos.z + size/2 + 0.1),
                    new THREE.Vector3(pos.x - size/2 + t*size + size*0.3, pos.y + size/2, pos.z + size/2 + 0.1)
                  ]), 4, 0.03, 4, false
                );
                var lm = new THREE.Mesh(lg, goldMat);
                lm.name = 'intaglio-auto';
                scene.add(lm);
              }
              count++;
            }
          });
        }
      }catch(e){}
    }, 8000);
    /* BANKNOTE CITY — engraving everywhere */
    setTimeout(function(){
      try{
        var goldMat = new THREE.MeshBasicMaterial({color:0xffd700});
        /* 1. PLAZA GUILLOCHE — interlaced gold curves on the ground */
        for(var gi=0; gi<8; gi++){
          var gang = (gi/8)*Math.PI*2;
          var gpts = [];
          for(var gs=0; gs<=40; gs++){
            var gt = gs/40;
            var gr = 5 + gt*20;
            var ga = gang + gt*Math.PI*2;
            gpts.push(new THREE.Vector3(Math.cos(ga)*gr, 10.3, Math.sin(ga)*gr));
          }
          var ggeo = new THREE.TubeGeometry(new THREE.CatmullRo