<!-- RUBY-BACKUP · part 431 -->
);
    /* vambrace intaglio */
    for(var vb=0; vb<3; vb++){
      var vline = new THREE.Mesh(new THREE.TorusGeometry(0.048, 0.003, 6, 16), gold);
      vline.position.set(s*0.30, 0.80 + vb*0.07, 0);
      vline.rotation.x = Math.PI/2;
      g.add(vline);
    }
    /* hand — articulate fingers */
    var palm = new THREE.Mesh(new THREE.BoxGeometry(0.07, 0.08, 0.03), skinMat);
    palm.position.set(s*0.30, 0.70, 0); g.add(palm);
    for(var fg=0; fg<4; fg++){
      var finger = new THREE.Mesh(new THREE.CylinderGeometry(0.008, 0.007, 0.06, 6), skinMat);
      finger.position.set(s*0.30 - 0.024 + fg*0.016, 0.64, 0);
      g.add(finger);
    }
    var thumb = new THREE.Mesh(new THREE.CylinderGeometry(0.008, 0.007, 0.05, 6), skinMat);
    thumb.position.set(s*0.30 + s*0.04, 0.68, 0);
    thumb.rotation.z = s*0.5;
    g.add(thumb);
  });
  /* === CAPE — iridescent, folded === */
  var capeMat = new THREE.MeshStandardMaterial({color: 0xe8e0f0, transparent: true, opacity: 0.65, side: THREE.DoubleSide, metalness: 0.3, roughness: 0.4});
  var cape = new THREE.Mesh(new THREE.PlaneGeometry(0.7, 1.3, 6, 8), capeMat);
  cape.position.set(0, 0.95, -0.22);
  g.add(cape);
  /* cape fold lines — intaglio */
  for(var cf=0; cf<5; cf++){
    var fold = new THREE.Mesh(new THREE.BoxGeometry(0.008, 1.2, 0.005),
      new THREE.MeshBasicMaterial({color: 0xaa88cc, transparent: true, opacity: 0.3}));
    fold.position.set(-0.25 + cf*0.125, 0.95, -0.21);
    g.add(fold);
  }
  /* cape clasp — jeweled */
  [-1,1].forEach(function(s){
    var clasp = new THREE.Mesh(new THREE.SphereGeometry(0.03, 10, 10),
      new THREE.MeshStandardMaterial({color: 0xff3355, emissive: 0xff3355, emissiveIntensity: 1.2}));
    clasp.position.set(s*0.18, 1.42, 0.05);
    g.add(clasp);
  });
  /* === LEGS — armored, articulate === */
  [-1,1].forEach(function(s){
    /* thigh */
    var thigh = new THREE.Mesh(new THREE.CylinderGeometry(0.07, 0.06, 0.32, 10), chrome);
    thigh.position.set(s*0.10, 0.62, 0); g.add(thigh);
    /* knee */
    var knee = new THREE.Mesh(new THREE.SphereGeometry(0.055, 10, 10), gold);
    knee.position.set(s*0.10, 0.44, 0.02); g.add(knee);
    /* shin — intaglio */
    var shin = new THREE.Mesh(new THREE.CylinderGeometry(0.06, 0.05, 0.30, 10), chrome);
    shin.position.set(s*0.10, 0.26, 0); g.add(shin);
    for(var sl=0; sl<3; sl++){
      var shinLine = new THREE.Mesh(new THREE.TorusGeometry(0.058, 0.003, 6, 14), gold);
      shinLine.position.set(s*0.10, 0.18 + sl*0.08, 0);
      shinLine.rotation.x = Math.PI/2;
      g.add(shinLine);
    }
    /* boot */
    var boot = new THREE.Mesh(new THREE.BoxGeometry(0.11, 0.10, 0.20), chrome);
    boot.position.set(s*0.10, 0.05, 0.04); g.add(boot);
  });
  /* === AURA — intaglio halo rings === */
  for(var ar=0; ar<4; ar++){
    var halo = intaglioRing(0.6 + ar*0.12, 0.008, 0x00ccff, 0.25 - ar*0.05);
    halo.position.y = 1.1;
    halo.rotation.x = Math.PI/2;
    g.add(halo);
  }
  g.position.set(x, y, z);
  g.userData.isGuardian = true;
  g.userData.name = 'PROVOLTA';
  /* nameplate */
  var nameCv = document.createElement('canvas');
  nameCv.width = 512; nameCv.height = 64;
  var nameCtx = nameCv.getContext('2d');
  nameCtx.fillStyle = 'rgba(0,0,0,0)';
  nameCtx.fillRect(0, 0, 512, 64);
  nameCtx.font = 'bold 36px Georgia';
  nameCtx.textAlign = 'center';
  nameCtx.shadowColor = '#00ccff';
  nameCtx.shadowBlur = 15;
  nameCtx.fillStyle = '#aaddff';
  nameCtx.fillText('PROVOLTA', 256, 44);
  var nameTex = new THREE.CanvasTexture(nameCv);
  var nameplate = new THREE.Mesh(new THREE.PlaneGeometry(1.5, 0.19),
    new THREE.MeshBasicMaterial({map: nameTex, transparent: true}));
  nameplate.position.set(0, 2.15, 0);
  g.add(nameplate);
  /* she lives — visor pulses, diamond turns, halos rotate */
  var t = 0;
  setInterval(function(){
    t += 0.03;
    visor.material.opacity = 0.35 + Math.sin(t*2)*0.15;
    diamond.rotation.y += 0.03;
    diamond.rotation.x += 0.01;
    cape.rotation.x = Math.sin(t*0.8)*0.04;
    g.rotation.y = Math.sin(t*0.3)*0.08;
  }, 50);
  return g;
}
function placeGuardian(){
  if(typeof scene==='undefined') return;
  if(GUARDIAN){
    try{ scene.remove(GUARDIAN); }catch(e){}
  }
  /* try the true form first */
  var trueForm = null;
  try{ trueForm = loadWarriorModel(5, 0, 5); }catch(e){}
  if(trueForm){
    GUARDIAN = trueForm;
    scene.add(GUARDIAN);
    /* fall back to built form if GLB fails after 5s */
    setTimeout(function(){
      if(GUARDIAN && GUARDIAN.userData.trueForm && GUARDIAN.children.length <= 4){
        try{ scene.remove(GUARDIAN); }catch(e){}
        GUARDIAN = buildGuardian(5, 0, 5);
        scene.add(GUARDIAN);
        codeStatus('PROVOLTA — built form (true form unavailable)');
      }
    }, 5000);
  }else{
    GUARDIAN = buildGuardian(5, 0, 5);
    scene.add(GUARDIAN);
    codeStatus('PROVOLTA stands watch over the golden city');
  }
}

function placeGraffiti(){
  if(typeof scene==='undefined') return;
  