<!-- SAGA-SOLID · part 27 -->
0a, roughness: 0.9});
    for(var t2 = 0; t2 < 60; t2++){
      var fx2 = -250 + Math.random() * 200;
      var fz2 = 100 + Math.random() * 150;
      var trunk2 = new THREE.Mesh(new THREE.CylinderGeometry(0.5, 0.7, 4, 6), trunkMat);
      trunk2.position.set(fx2, 2, fz2);
      scene.add(trunk2);
      var leaves2 = new THREE.Mesh(new THREE.ConeGeometry(2 + Math.random() * 2, 5 + Math.random() * 3, 7), treeMat);
      leaves2.position.set(fx2, 6, fz2);
      scene.add(leaves2);
      window._trees.push(leaves2);
    }

    /* PASS: Rocks scattered */
    var rockMat = new THREE.MeshStandardMaterial({color: 0x444444, roughness: 0.95});
    for(var r = 0; r < 50; r++){
      var rx = (Math.random() - 0.5) * 500;
      var rz = (Math.random() - 0.5) * 500;
      if(Math.abs(rx) < 40 && Math.abs(rz) < 40) continue;
      var rock = new THREE.Mesh(new THREE.DodecahedronGeometry(1 + Math.random() * 2, 0), rockMat);
      rock.position.set(rx, 0.5, rz);
      rock.rotation.set(Math.random() * 3, Math.random() * 3, Math.random() * 3);
      scene.add(rock);
    }

    /* PASS: Floating crystals that bob and spin */
    for(var cr = 0; cr < 20; cr++){
      (function(){
        var cx = (Math.random() - 0.5) * 300;
        var cz = (Math.random() - 0.5) * 300;
        var cy = 10 + Math.random() * 20;
        var crystal = new THREE.Mesh(new THREE.OctahedronGeometry(1 + Math.random(), 0),
          new THREE.MeshStandardMaterial({color: 0x00ffff, emissive: 0x00aaaa, emissiveIntensity: 1, transparent: true, opacity: 0.8}));
        crystal.position.set(cx, cy, cz);
        scene.add(crystal);
        var ph2 = Math.random() * 10;
        window._dynamics.push(function(t){
          crystal.position.y = cy + Math.sin(t * 1.5 + ph2) * 2;
          crystal.rotation.y += 0.02;
          crystal.rotation.x += 0.01;
        });
      })();
    }

    /* PASS: Roads connecting districts */
    var roadMat = new THREE.MeshStandardMaterial({color: 0x8a6a1c, roughness: 0.7});
    var connections = [
      [0, 0, 8, 9], [8, 9, 25, 25], [25, 25, 100, -100],
      [0, 0, -35, -35], [-35, -35, -100, -100], [100, -100, -100, -100]
    ];
    for(var rd = 0; rd < connections.length && !window._skyOnly; rd++){
      var x1 = connections[rd][0], z1 = connections[rd][1];
      var x2 = connections[rd][2], z2 = connections[rd][3];
      var len = Math.sqrt((x2-x1)*(x2-x1) + (z2-z1)*(z2-z1));
      var road = new THREE.Mesh(new THREE.BoxGeometry(4, 0.15, len), roadMat);
      road.position.set((x1+x2)/2, 0.2, (z1+z2)/2);
      road.rotation.y = Math.atan2(x2-x1, z2-z1);
      scene.add(road);
    }

    /* Global dynamics loop */
    if(!window._hundredAnim){
      window._hundredAnim = true;
      var _tick = function(){
        try{
          var t = Date.now() * 0.001;
          for(var i = 0; i < window._dynamics.length; i++){
            window._dynamics[i](t);
          }
        }catch(e){ console.error(e); }
        requestAnimationFrame(_tick);
      };
      _tick();
    }

  }catch(e){ console.error(e); }
}
if(typeof buildHundredPasses === 'function'){ try{ buildHundredPasses(); }catch(e){ console.error(e); } }

/* 1000 PASSES — the world, overwhelming. 2026-10-04. */
function buildThousandPasses(){
  try{
    var goldMat = new THREE.MeshStandardMaterial({color: 0xd4a017, roughness: 0.4, metalness: 0.6});
    var darkMat = new THREE.MeshStandardMaterial({color: 0x1a1a1a, roughness: 0.8});
    window._dynamics = window._dynamics || [];

    /* AURORA — ribbons in the sky (from our story) */
    var auroraColors = [0x00ffaa, 0xaa00ff, 0x00aaff];
    for(var a = 0; a < 3; a++){
      (function(){
        var geo = new THREE.PlaneGeometry(400, 20, 40, 1);
        var pos = geo.attributes.position;
        for(var i = 0; i < pos.count; i++){
          pos.setZ(i, Math.sin(pos.getX(i) * 0.05) * 10);
        }
        geo.computeVertexNormals();
        var mat = new THREE.MeshBasicMaterial({color: auroraColors[a], transparent: true, opacity: 0.25, side: THREE.DoubleSide});
        var aurora = new THREE.Mesh(geo, mat);
        aurora.position.set((Math.random()-0.5)*300, 150 + a * 20, -200);
        aurora.rotation.x = -0.3;
        scene.add(aurora);
        var ph = Math.random() * 10;
        window._dynamics.push(function(t){
          aurora.material.opacity = 0.2 + Math.sin(t * 0.8 + ph) * 0.1;
          aurora.position.x += Math.sin(t * 0.2 + ph) * 0.3;
        });
      })();
    }

    /* SECOND CITY — east */
    var cx2 = 250, cz2 = 50;
    for(var b2 = 0; b2 < 20; b2++){
      var bx2 = cx2 + (Math.random() - 0.5) * 100;
      var bz2 = cz2 + (Math.random() - 0.5) * 100;
      var h2 = 8 + Math.random() * 20;
      var bld = new THREE.Mesh(new THREE.BoxGeometry(6 + Math.random()*4, h2, 6 + Math.random()*4), darkMat);
      bld.position.set(bx2, h2/2 + 0.13, bz2);
      scene.add(bld);
      var roof2 = new THREE.Mesh(new THREE.BoxGeometry(7 + Math.random()*4, 1, 7 + Math.random()*4), gol