<!-- RUBY-BACKUP · part 368 -->
t-weight:bold;cursor:pointer;';
  var _sizeStep = 0.1;
  function adjustPadSize(dir){
    try{
      if(!PAD_SELECTED) return;
      /* SUBTRACTIVE LAW: only take away, never add */
      if(dir > 0){
        try{ codeStatus('only take away — the grid is all there is'); }catch(e){}
        return;
      }
      /* LEVEL LAW: 2-level adjusts like 2-level, not 3 */
      if(typeof levelAllowsAdjust==='function' && !levelAllowsAdjust(PAD_SELECTED, dir)){
        try{ codeStatus('a 2-level block does not adjust like a 3'); }catch(e){}
        return;
      }
      if(typeof canAdjust==='function' && !canAdjust(PAD_SELECTED)) return;
      var s = PAD_SELECTED.scale;
      var ns = {
        x: Math.max(0.1, s.x + dir*_sizeStep),
        y: Math.max(0.1, s.y + dir*_sizeStep),
        z: Math.max(0.1, s.z + dir*_sizeStep)
      };
      /* cannot bring it down a level — no matter the object */
      try{
        var curLvl = (typeof getObjectLevel==='function' ? getObjectLevel(PAD_SELECTED) : 3);
        /* simulate the new size */
        var testObj = { position: PAD_SELECTED.position };
        var origScale = {x: s.x, y: s.y, z: s.z};
        /* temporarily apply to check level */
        PAD_SELECTED.scale.set(ns.x, ns.y, ns.z);
        var newLvl = (typeof getObjectLevel==='function' ? getObjectLevel(PAD_SELECTED) : 3);
        PAD_SELECTED.scale.set(origScale.x, origScale.y, origScale.z);
        if(newLvl < curLvl){
          try{ codeStatus('cannot bring it down a level'); }catch(e){}
          return;
        }
      }catch(e){}
      /* respect her max dims law */
      if(typeof PROVOLTA_MAX_DIMS!=='undefined' && PROVOLTA_MAX_DIMS){
        try{
          var base = PAD_SELECTED.userData.baseSize || {x:1,y:1,z:1};
          ns.x = Math.min(ns.x, base.x * PROVOLTA_MAX_DIMS.x);
          ns.y = Math.min(ns.y, base.y * PROVOLTA_MAX_DIMS.y);
          ns.z = Math.min(ns.z, base.z * PROVOLTA_MAX_DIMS.z);
        }catch(e){}
      }
      s.set(ns.x, ns.y, ns.z);
      /* intaglio follows the grow/shrink */
      if(typeof syncIntaglioToScale==='function') syncIntaglioToScale(PAD_SELECTED);
      if(typeof recordEdit==='function') recordEdit();
    }catch(e){}
  }
  /* hold to keep growing/shrinking */
  var _sizeTimer = null;
  function startSizeHold(dir){
    adjustPadSize(dir);
    _sizeTimer = setInterval(function(){ adjustPadSize(dir); }, 120);
  }
  function stopSizeHold(){
    if(_sizeTimer){ clearInterval(_sizeTimer); _sizeTimer = null; }
  }
  upBtn.addEventListener('touchstart', function(e){ e.preventDefault(); startSizeHold(1); }, {passive:false});
  upBtn.addEventListener('touchend', stopSizeHold);
  upBtn.addEventListener('mousedown', function(){ startSizeHold(1); });
  upBtn.addEventListener('mouseup', stopSizeHold);
  downBtn.addEventListener('touchstart', function(e){ e.preventDefault(); startSizeHold(-1); }, {passive:false});
  downBtn.addEventListener('touchend', stopSizeHold);
  downBtn.addEventListener('mousedown', function(){ startSizeHold(-1); });
  downBtn.addEventListener('mouseup', stopSizeHold);
  sizeRow.appendChild(upBtn);
  sizeRow.appendChild(downBtn);
  _padEl.appendChild(sizeRow);
  /* size readout */
  var sizeVal = document.createElement('div');
  sizeVal.id = 'pad-size-val';
  sizeVal.style.cssText = 'text-align:center;font-size:13px;margin-bottom:10px;color:#ffd700;';
  sizeVal.textContent = '▼ carve away — hold to keep taking. The grid is all there is.';
  _padEl.appendChild(sizeVal);
  /* part picker button */
  var partBtn = document.createElement('button');
  partBtn.textContent = 'Pick a Part';
  partBtn.style.cssText = 'width:100%;padding:10px;margin:8px 0;background:#2a2214;color:#ffd700;border:1px solid #8a6a1c;border-radius:8px;font-size:14px;';
  partBtn.onclick = function(){ showPadPartPicker(); };
  _padEl.appendChild(partBtn);
  /* follow toggle */
  var followRow = document.createElement('div');
  followRow.style.cssText = 'display:flex;align-items:center;justify-content:space-between;margin:12px 0;';
  var followLab = document.createElement('span');
  followLab.textContent = 'Move with me';
  followLab.style.fontSize = '14px';
  followRow.appendChild(followLab);
  var followTog = document.createElement('button');
  followTog.textContent = PAD_FOLLOW ? 'ON' : 'OFF';
  followTog.style.cssText = 'width:60px;padding:8px;background:'+(PAD_FOLLOW?'#d8a920':'#2a2214')+';color:'+(PAD_FOLLOW?'#111':'#ffd700')+';border:1px solid #8a6a1c;border-radius:20px;font-weight:bold;';
  followTog.onclick = function(){
    PAD_FOLLOW = !PAD_FOLLOW;
    followTog.textContent = PAD_FOLLOW ? 'ON' : 'OFF';
    followTog.style.background = PAD_FOLLOW ? '#d8a920' : '#2a2214';
    followTog.style.color = PAD_FOLLOW ? '#111' : '#ffd700';
    codeStatus(PAD_FOLLOW ? 'she moves with you' : 'she stays put');
  };
  followRow.appendChild(followTog);
  _padEl.appendChild(followRow);
  /* distance controls */
  var distGrid = document.createElement('div');
 