<!-- RUBY-BACKUP · part 524 -->
 new THREE.MeshStandardMaterial({color:0x4a2c0a, roughness:0.6});
        var marbleMat = new THREE.MeshStandardMaterial({color:0xf5f5f0, roughness:0.3});
        var holoMat = new THREE.MeshBasicMaterial({color:0x00ffff, transparent:true, opacity:0.4});
        var glowMat = new THREE.MeshBasicMaterial({color:0xfff8dc});
        var ppy = 10;
        try{ if(typeof fortifiedGroundY==='function') ppy = fortifiedGroundY(-200, -100); }catch(e){}
        var PX = -200, PZ = -100;
        /* PALACE BASE — raised foundation */
        var pbase = new THREE.Mesh(new THREE.BoxGeometry(60, 6, 44), marbleMat);
        pbase.position.set(PX, ppy+3, PZ); pbase.name='palace-base'; scene.add(pbase);
        /* MAIN HALL — two stories */
        var hall1 = new THREE.Mesh(new THREE.BoxGeometry(50, 10, 36), goldMat);
        hall1.position.set(PX, ppy+11, PZ); hall1.name='palace-hall1'; scene.add(hall1);
        var hall2 = new THREE.Mesh(new THREE.BoxGeometry(46, 10, 32), goldLeaf);
        hall2.position.set(PX, ppy+21, PZ); hall2.name='palace-hall2'; scene.add(hall2);
        /* FOUR CORNER TOWERS — 60ft style */
        [[-25,-18],[25,-18],[-25,18],[25,18]].forEach(function(cn){
          var tower = new THREE.Mesh(new THREE.BoxGeometry(10, 32, 10), goldMat);
          tower.position.set(PX+cn[0], ppy+16, PZ+cn[1]); tower.name='palace-tower'; scene.add(tower);
          var troof = new THREE.Mesh(new THREE.ConeGeometry(8, 10, 4), goldLeaf);
          troof.position.set(PX+cn[0], ppy+37, PZ+cn[1]); troof.rotation.y = Math.PI/4;
          troof.name='palace-tower-roof'; scene.add(troof);
        });
        /* TWO CENTER TOWERS — taller, front and rear */
        [[0,-22],[0,22]].forEach(function(cn){
          var ctower = new THREE.Mesh(new THREE.BoxGeometry(8, 42, 8), goldLeaf);
          ctower.position.set(PX+cn[0], ppy+21, PZ+cn[1]); ctower.name='palace-ctower'; scene.add(ctower);
          var croof = new THREE.Mesh(new THREE.SphereGeometry(6, 12, 8, 0, Math.PI*2, 0, Math.PI/2), goldMat);
          croof.position.set(PX+cn[0], ppy+42, PZ+cn[1]); croof.name='palace-cdome'; scene.add(croof);
        });
        /* WRAPAROUND LANAI — columns on both stories, all four sides */
        for(var side=0; side<4; side++){
          for(var col=0; col<8; col++){
            var ang = side*Math.PI/2;
            var lx = PX + Math.cos(ang)*(col<4?28:-28) + (side%2? (col-3.5)*6 : 0);
            var lz = PZ + Math.sin(ang)*(col<4?22:-22) + (side%2? 0 : (col-3.5)*6);
            /* simplify: columns around perimeter */
          }
        }
        /* columns — 24 around the palace */
        for(var ci=0; ci<24; ci++){
          var cang = (ci/24)*Math.PI*2;
          var cx = PX + Math.cos(cang)*30, cz = PZ + Math.sin(cang)*22;
          var column = new THREE.Mesh(new THREE.CylinderGeometry(1, 1.2, 20, 8), marbleMat);
          column.position.set(cx, ppy+16, cz); column.name='palace-column'; scene.add(column);
          var cap = new THREE.Mesh(new THREE.BoxGeometry(3, 1, 3), goldLeaf);
          cap.position.set(cx, ppy+26.5, cz); cap.name='palace-cap'; scene.add(cap);
        }
        /* GRAND KOA STAIRCASE — front entrance */
        for(var st=0; st<6; st++){
          var step = new THREE.Mesh(new THREE.BoxGeometry(16-st*2, 1, 4), koaMat);
          step.position.set(PX, ppy+0.5+st, PZ-26-st*2); step.name='palace-step'; scene.add(step);
        }
        /* PULOU'LOU — kapu sticks, gold orbs on staffs at entrances */
        [[PX-10,PZ-30],[PX+10,PZ-30],[PX-10,PZ+30],[PX+10,PZ+30]].forEach(function(pp){
          var staff = new THREE.Mesh(new THREE.CylinderGeometry(0.3, 0.3, 12, 6), koaMat);
          staff.position.set(pp[0], ppy+6, pp[1]); staff.name='pulo-staff'; scene.add(staff);
          var orb = new THREE.Mesh(new THREE.SphereGeometry(1.5, 12, 10), goldLeaf);
          orb.position.set(pp[0], ppy+13, pp[1]); orb.name='pulo-orb'; scene.add(orb);
          var halo = new THREE.Mesh(new THREE.TorusGeometry(2.2, 0.2, 6, 16), holoMat);
          halo.position.set(pp[0], ppy+13, pp[1]); halo.name='pulo-halo'; scene.add(halo);
        });
        /* BEACON TOWER — our Aloha Tower, extra fancy */
        var bpy = 10;
        try{ if(typeof fortifiedGroundY==='function') bpy = fortifiedGroundY(200, -200); }catch(e){}
        var bbase = new THREE.Mesh(new THREE.CylinderGeometry(8, 10, 6, 8), marbleMat);
        bbase.position.set(200, bpy+3, -200); bbase.name='beacon-base'; scene.add(bbase);
        var bshaft = new THREE.Mesh(new THREE.BoxGeometry(10, 50, 10), goldMat);
        bshaft.position.set(200, bpy+31, -200); bshaft.name='beacon-shaft'; scene.add(bshaft);
        /* clock faces — four sides */
        for(var cf=0; cf<4; cf++){
          var cfang = cf*Math.PI/2;
          var clock = new THREE.Mesh(new THREE.CircleGeometry(3, 16), glowMat);
          clock.position.set(200+Math.sin(cfang)*5.1, bpy+50, -200+Math.cos(cfang)*5.1);
          clock.rotation.y = cfang; clock.na