<!-- SAGA-STAGING · part 48 -->
x = 500, cz = 500; // near spawn, for Solid
  var goldMat = new THREE.MeshStandardMaterial({
    color:0xd4a017, roughness:0.25, metalness:0.85,
    emissive:0x664400, emissiveIntensity:0.3
  });
  var octaG = new THREE.Group();
  octaG.position.set(cx, 60, cz);
  // Golden octahedron
  var octa = new THREE.Mesh(new THREE.OctahedronGeometry(12, 0), goldMat);
  octa.castShadow = true;
  octaG.add(octa);
  // Cyan intaglio linework (edges)
  var edges = new THREE.EdgesGeometry(new THREE.OctahedronGeometry(12.1, 0));
  var lineMat = new THREE.LineBasicMaterial({color:0x00ccff, transparent:true, opacity:0.9});
  var lines = new THREE.LineSegments(edges, lineMat);
  octaG.add(lines);
  // Inner glow lines (denser intaglio)
  var edges2 = new THREE.EdgesGeometry(new THREE.OctahedronGeometry(12, 1));
  var lines2 = new THREE.LineSegments(edges2, new THREE.LineBasicMaterial({color:0x00aacc, transparent:true, opacity:0.5}));
  octaG.add(lines2);
  // Radiant light
  var glow = new THREE.PointLight(0xffd700, 2.0, 100);
  glow.position.set(0, 0, 0);
  octaG.add(glow);
  var cyanGlow = new THREE.PointLight(0x00ccff, 1.0, 60);
  cyanGlow.position.set(8, 4, 8);
  octaG.add(cyanGlow);
  scene.add(octaG);
  window._solidOcta = octaG;
  // Float and rotate (like the image — serene, radiant)
  function animateOcta(){
    try{
      octaG.rotation.y += 0.005;
      octaG.position.y = 60 + Math.sin(Date.now()*0.001)*3;
      var pulse = 1 + Math.sin(Date.now()*0.003)*0.05;
      lines.material.opacity = 0.7 + Math.sin(Date.now()*0.004)*0.3;
      octaG.scale.set(pulse, pulse, pulse);
    }catch(e){ console.error(e); }
    requestAnimationFrame(animateOcta);
  }
  animateOcta();
  if(typeof trackNewThing === 'function') trackNewThing('solid-octa', "Solid's octahedron — gold with cyan intaglio");
})();


/* ALL OF PLAYA EXPOSED — every block and tool on the surface around LAT 60.0, LON 0.0 */
(function(){
  var cx = 0, cz = 3333.6;
  var goldMat = new THREE.MeshStandardMaterial({color:0xd4a017, roughness:0.4, metalness:0.6});
  var marbleMat = new THREE.MeshStandardMaterial({color:0xf5f5f5, roughness:0.3});
  var cyanMat = new THREE.MeshStandardMaterial({color:0x00ccff, roughness:0.3, metalness:0.5, emissive:0x0088aa, emissiveIntensity:0.4});
  var darkMat = new THREE.MeshStandardMaterial({color:0x1a1a2e, roughness:0.7});
  // Surface plaza (large, exposes everything)
  var plaza = new THREE.Mesh(new THREE.CylinderGeometry(150, 150, 3, 48), darkMat);
  plaza.position.set(cx, 1.5, cz);
  plaza.receiveShadow = true;
  scene.add(plaza);
  var plazaTrim = new THREE.Mesh(new THREE.TorusGeometry(150, 1.5, 12, 72), goldMat);
  plazaTrim.rotation.x = Math.PI/2;
  plazaTrim.position.set(cx, 3, cz);
  scene.add(plazaTrim);
  // ALL BLOCKS — laid out in a row on the surface (0 to 60)
  var blocks = [
    {type:'cube', name:'Cube'},
    {type:'hourglass', name:'V-Core'},
    {type:'pylon', name:'Pylon'},
    {type:'tetra', name:'Tetra'},
    {type:'pyramid', name:'Pyramid'}
  ];
  blocks.forEach(function(b, i){
    var x = (i / (blocks.length - 1)) * 60 - 30 + cx; // 0-60 spread, centered
    var g = new THREE.Group();
    // Pedestal
    var ped = new THREE.Mesh(new THREE.CylinderGeometry(4, 5, 2, 16), marbleMat);
    ped.position.y = 4; g.add(ped);
    // Block
    var block;
    if(b.type === 'cube'){
      block = new THREE.Mesh(new THREE.BoxGeometry(5,5,5), goldMat.clone());
    } else if(b.type === 'hourglass'){
      block = new THREE.Group();
      var t = new THREE.Mesh(new THREE.ConeGeometry(2.5,3.5,4), goldMat.clone()); t.rotation.x = Math.PI; t.position.y = 1.75; block.add(t);
      var bo = new THREE.Mesh(new THREE.ConeGeometry(2.5,3.5,4), goldMat.clone()); bo.position.y = -1.75; block.add(bo);
    } else if(b.type === 'pylon'){
      block = new THREE.Mesh(new THREE.CylinderGeometry(1.2,1.8,10,8), marbleMat.clone());
    } else if(b.type === 'tetra'){
      block = new THREE.Mesh(new THREE.TetrahedronGeometry(3.5), cyanMat.clone());
    } else if(b.type === 'pyramid'){
      block = new THREE.Group();
      var p1 = new THREE.Mesh(new THREE.ConeGeometry(3.5,2.5,4), goldMat.clone()); p1.position.y = 1.25; block.add(p1);
      var p2 = new THREE.Mesh(new THREE.ConeGeometry(2.2,2,4), marbleMat.clone()); p2.position.y = 3.5; block.add(p2);
    }
    block.position.y = 10;
    block.traverse(function(o){ if(o.isMesh) o.castShadow = true; });
    g.add(block);
    // Label (gold ring)
    var ring = new THREE.Mesh(new THREE.TorusGeometry(6, 0.3, 8, 24), goldMat);
    ring.rotation.x = Math.PI/2;
    ring.position.y = 3.2;
    g.add(ring);
    g.position.set(x, 0, cz + 40);
    g.userData.playaBlock = true;
    g.userData.blockType = b.type;
    scene.add(g);
  });
  // ALL TOOLS — as physical toggle switches on the surface (second row)
  var tools = ['Select','Move','Rotate','Scale','Duplicate','Color','Align','Delete','Undo'];
  tools.forEach(function(tool, i){
    var x = (i / (tools.length - 1))