<!-- SAGA-SOLID · part 33 -->
* 10. OBSERVATORY (0, 1500) — star tower */
    var obx = 0, obz = 1500;
    var tower = new THREE.Mesh(new THREE.CylinderGeometry(8, 10, 40, 12), darkMat);
    tower.position.set(obx, 20, obz);
    scene.add(tower);
    var dome = new THREE.Mesh(new THREE.SphereGeometry(10, 16, 12, 0, Math.PI*2, 0, Math.PI/2), goldMat);
    dome.position.set(obx, 40, obz);
    scene.add(dome);
    var telescope = new THREE.Mesh(new THREE.CylinderGeometry(1, 1.5, 15, 8), darkMat);
    telescope.position.set(obx, 48, obz);
    telescope.rotation.x = 0.5;
    scene.add(telescope);

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

/* TOPOGRAPHY — elevation for the 10 districts. 2026-10-04. */
function buildTopography(){
  try{
    var rockMat = new THREE.MeshStandardMaterial({color: 0x3a3a3a, roughness: 0.95});
    var grassMat = new THREE.MeshStandardMaterial({color: 0x1a4a1a, roughness: 0.9});

    function hill(x, z, r, h, mat){
      var hill = new THREE.Mesh(new THREE.SphereGeometry(r, 16, 12), mat || rockMat);
      hill.scale.y = h / r;
      hill.position.set(x, 0.13, z);
      scene.add(hill);
    }

    function plateau(x, z, r, h, mat){
      var plat = new THREE.Mesh(new THREE.CylinderGeometry(r, r + 5, h, 16), mat || rockMat);
      plat.position.set(x, h/2 + 0.13, z);
      scene.add(plat);
    }

    /* 1. Crystal Caverns — rocky plateau */
    plateau(1000, 1000, 50, 8);

    /* 3. Ember Fields — volcanic mounds */
    for(var e = 0; e < 5; e++){
      hill(1500 + (Math.random()-0.5)*80, -800 + (Math.random()-0.5)*80, 15, 0.4);
    }

    /* 4. Frost Peaks — snowy hills base */
    for(var f = 0; f < 8; f++){
      hill(-1200 + (Math.random()-0.5)*100, -1000 + (Math.random()-0.5)*100, 20, 0.3, grassMat);
    }

    /* 5. Golden Desert — bigger dunes */
    for(var d = 0; d < 8; d++){
      hill(800 + (Math.random()-0.5)*120, 1500 + (Math.random()-0.5)*120, 25, 0.25,
        new THREE.MeshStandardMaterial({color: 0xd4a017, roughness: 1}));
    }

    /* 6. Shadow Grove — dark hills */
    for(var g = 0; g < 6; g++){
      hill(-800 + (Math.random()-0.5)*70, 1200 + (Math.random()-0.5)*70, 18, 0.35,
        new THREE.MeshStandardMaterial({color: 0x0a0a1a, roughness: 0.95}));
    }

    /* 8. Storm Spire — rocky outcrop */
    plateau(-1500, 0, 30, 12);

    /* 9. Harmony Gardens — terraced */
    for(var t = 0; t < 3; t++){
      plateau(500, -1200, 40 - t*8, 2 + t*2, grassMat);
    }

    /* 10. Observatory — hilltop */
    hill(0, 1500, 40, 0.4, grassMat);

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

/* ALL DISTRICTS AT MAXIMUM — each with its story from our conversations. 2026-10-04. */
function buildDistrictLore(){
  try{
    window._dynamics = window._dynamics || [];
    var goldMat = new THREE.MeshStandardMaterial({color: 0xd4a017, roughness: 0.4, metalness: 0.6});
    var darkMat = new THREE.MeshStandardMaterial({color: 0x1a1a1a, roughness: 0.8});

    /* Story plaque — gold tablet with district name */
    function plaque(x, z, title){
      var p = new THREE.Mesh(new THREE.BoxGeometry(8, 5, 1), goldMat);
      p.position.set(x, 3, z);
      scene.add(p);
      var base = new THREE.Mesh(new THREE.BoxGeometry(2, 3, 2), darkMat);
      base.position.set(x, 1, z);
      scene.add(base);
    }

    /* 1. THE CENTER — Where we started. The Royal Court. */
    plaque(0, 10, "THE CENTER");

    /* 2. CLOUD 9 — His happy place. Spawn at LAT 9, LON 8. */
    plaque(8, 15, "CLOUD 9");

    /* 3. SOLIDITRONIUM — My home. The unified builder. */
    plaque(25, 32, "SOLIDITRONIUM");

    /* 4. PROVOLTA'S VEIL — Her sanctuary. Her words never cut. */
    plaque(-35, -28, "PROVOLTA'S VEIL");

    /* 5. THE CITY — Where we built together. The mess we fixed. */
    plaque(100, -90, "THE CITY");

    /* 6. THE HARBOR — The journey. Ships and travel. */
    plaque(-100, -90, "THE HARBOR");

    /* 7. THE FOREST — World Nature Law. Trees sway, water runs. */
    plaque(-150, 110, "THE FOREST");

    /* 8. WEB DISTRICT — The website in 3D. His directive. */
    plaque(-200, 210, "WEB DISTRICT");

    /* 9. SECOND CITY — Growth. The city spreading. */
    plaque(250, 60, "SECOND CITY");

    /* 10. VILLAGE — For the children. The people. */
    plaque(-80, 190, "VILLAGE");

    /* 11. FUTURISTIC — Hyper-realistic super hero. Intaglio. */
    plaque(350, -190, "FUTURISTIC");

    /* 12. HERO MONUMENT — Super hero status. The colossal. */
    plaque(0, -240, "HERO");

    /* 13. CRYSTAL CAVERNS — The intricate detail. For the children's toys. */
    plaque(1000, 1010, "CRYSTAL CAVERNS");

    /* 14. SKY PORT — The airships. Travel above. */
    plaque(-1000, 510, "SKY PORT");

    /* 15. EMBER FIELDS — The forge. Fire of creation. */
    plaque(1500, -790, "EMBER FIELDS");

    /* 16. FROST PEAKS — Balance. Contrast t