<!-- RUBY-BACKUP · part 542 -->
m', 'skin platinum', 'skin cobalt', 'skin chrome', 'skin rust', 'skin verdigris', 'skin electrum', 'skin mithril', 'skin adamant', 'skin orichalcum', 'skin velvet', 'skin silk', 'skin linen', 'skin cotton', 'skin wool', 'skin denim', 'skin leather', 'skin suede', 'skin satin', 'skin brocade', 'skin damask', 'skin tweed', 'skin canvas', 'skin felt', 'skin corduroy', 'skin chiffon', 'skin organza', 'skin taffeta', 'skin gabardine', 'skin boucle', 'skin grass', 'skin moss', 'skin bark', 'skin leaf', 'skin fern', 'skin pine-needle', 'skin flower', 'skin petal', 'skin thorn', 'skin vine', 'skin root', 'skin sap', 'skin pollen', 'skin spore', 'skin lichen', 'skin algae', 'skin kelp', 'skin coral', 'skin shell', 'skin pearl', 'skin water', 'skin ice', 'skin snow', 'skin fire', 'skin lava', 'skin steam', 'skin smoke', 'skin ember', 'skin frost', 'skin mist', 'skin rain', 'skin cloud', 'skin storm', 'skin lightning', 'skin earth', 'skin mud', 'skin clay', 'skin sand', 'skin dust', 'skin ruby', 'skin sapphire', 'skin emerald', 'skin diamond', 'skin amethyst', 'skin topaz', 'skin opal', 'skin garnet', 'skin peridot', 'skin aquamarine', 'skin citrine', 'skin moonstone', 'skin sunstone', 'skin bloodstone', 'skin tiger-eye', 'skin malachite', 'skin azurite', 'skin carnelian', 'skin chrysoprase', 'skin iolite', 'skin shadow', 'skin light', 'skin void', 'skin aether', 'skin nether', 'skin celestial', 'skin infernal', 'skin divine', 'skin arcane', 'skin primal', 'skin ancient', 'skin forgotten', 'skin eternal', 'skin infinite', 'skin sacred', 'skin cursed', 'skin blessed', 'skin haunted', 'skin dream', 'skin nightmare', 'skin royal-red', 'skin royal-blue', 'skin royal-purple', 'skin royal-gold', 'skin imperial', 'skin crown', 'skin scepter', 'skin throne', 'skin palace', 'skin castle-gray', 'skin banner-red', 'skin banner-blue', 'skin heraldic', 'skin coat-arms', 'skin sigil', 'skin standard', 'skin pennant', 'skin tapestry', 'skin throne-room', 'skin great-hall', 'skin rampart', 'skin battlement', 'skin tower-stone', 'skin keep-wall', 'skin gate-wood', 'skin portcullis', 'skin drawbridge', 'skin moat-water', 'skin curtain-wall', 'skin buttress-stone', 'skin chapel-stone', 'skin hall-wood', 'skin kitchen-stone', 'skin dungeon', 'skin tower-roof', 'skin spire-slate', 'skin courtyard', 'skin stable-wood', 'skin armory', 'skin throne-gold', 'skin kings-gold'
  ];
  var btn = document.createElement('button');
  btn.innerHTML = 'Codes';
  btn.style.cssText = 'position:fixed;top:10px;left:10px;z-index:9999;background:gold;color:#000;padding:8px 12px;border:none;border-radius:6px;font-weight:bold;';
  btn.onclick = function(){
    var p = document.getElementById('codepalette');
    if(p){ p.style.display = p.style.display==='none' ? 'block' : 'none'; return; }
    p = document.createElement('div');
    p.id = 'codepalette';
    p.style.cssText = 'position:fixed;top:50px;left:10px;right:10px;max-height:70vh;overflow-y:auto;z-index:9999;background:#111;color:#fff;border:2px solid gold;border-radius:8px;padding:10px;';
    /* nested scroller: categories within the scroll */
    var cats = [
      {n:'Blocks', m:function(c){ return /^b \d/.test(c); }},
      {n:'Lattice', m:function(c){ return /^[gufw] \d/.test(c); }},
      {n:'Views', m:function(c){ return /^v\d/.test(c) || /^(vfront|vback|vleft|vright|vtop|vclose|vfar|vzoomout|vreset|vme|vtoggle|look|see)/.test(c); }},
      {n:'Shapes', m:function(c){ return /^s\d/.test(c) || /^(connector|iconnector)/.test(c); }},
      {n:'Colors', m:function(c){ return /^color /.test(c); }},
      {n:'Sky', m:function(c){ return /^(day|night|dawn|storm|cosmic|cave|rain|clouds|ember|aurora|whiteout)/.test(c); }},
      {n:'Templates', m:function(c){ return /^(tower|keep|gate|house|hall|bridge|chapel|cathedral|tenshu|fountain|banner|torch|castle|wall |kingdom|dome|arch|sine)/.test(c); }},
      {n:'Nature', m:function(c){ return /^(tree|pine|flower|grove|bush|mushroom|rock|pond)/.test(c); }},
      {n:'Player', m:function(c){ return /^(walk|fly|body|crown|king|nokings|spiral|sgo|attach|wear|b1$|invite|mirror|send|take|portal)/.test(c); }},
      {n:'Castle', m:function(c){ return /^(castle|tower|keep|gate|wall|kingdom|myhome|turret|greattower|curtain|gatehouse2|donjon|battlements|spire |b 20|b 10|b 8|b 6|b 5|b 4|b 3|f 8|f 6|u 8|g 8)/.test(c); }},
      {n:'Architect', m:function(c){ return /^(column|doric|ionic|arcade|colonnade|portico|rotunda|buttress|obelisk|cupola)/.test(c); }},
      {n:'Utils', m:function(c){ return /^(oops|wipe|linework|save|load|go|help|views|updates|did|whoiam|saveme|loadme|lock|unlock|anchors|newmap|solidify|handers|copy|paste|image3d|upload3d|collect)/.test(c); }},
    ];
    function showCodes(list, title){
      p.innerHTML = '';
      var back = document.createElement('button');
      back.innerHTML = '← ' + title;
      back.style.cssText = 'display:block;width:100%;margin:4px 0;padding:10px;background:gold;color:#000;border:none;bor