<!-- SOLID CITY · part 2911 -->
by '+d.owner;if(e.type==='rescue')txt=d.pod+' delivered to gate';if(e.type==='lost')txt=d.pod+' life signal ended';if(e.type==='mission')txt=d.rescued+' rescued · '+d.lost+' lost';const cls=e.type==='rejected'?'interference':(e.type==='rescue'?'rescue':'');return '<div class="event '+cls+'"><time>T+'+e.t.toFixed(1)+'s</time><div><b>'+labels[e.type]+'</b>'+txt+'</div></div>'}).join(''):'<div class="event"><time>Ready</time><div>Coordination events will appear when the mission begins.</div></div>';updateStats();
  }

  function loop(ts){const dt=Math.min(.033,(ts-last)/1000||0);last=ts;update(dt);draw();requestAnimationFrame(loop)}
  function launch(){resetState();running=true;last=performance.now();$('#startScreen').classList.add('hidden');$('#result').classList.remove('show');recordEvent('missionStart',{});setAdvice('Launching now. AI pilot has the first pod plotted.');}
  $('#launchBtn').addEventListener('click',launch);$('#againBtn').addEventListener('click',launch);

  const keyMap={ArrowUp:'up',ArrowDown:'down',ArrowLeft:'left',ArrowRight:'right',w:'w',a:'a',s:'s',d:'d',' ':'boost'};
  window.addEventListener('keydown',e=>{if(keyMap[e.key]&&coordination.owner('navigation')==='human'){state.keys[keyMap[e.key]]=true;e.preventDefault()}if((e.key==='f'||e.key==='F')&&coordination.owner('protection')==='human'){e.preventDefault();humanFire()}});
  window.addEventListener('keyup',e=>{if(keyMap[e.key])state.keys[keyMap[e.key]]=false});
  $$('[data-move]').forEach(b=>{const k=b.dataset.move;const on=e=>{e.preventDefault();state.keys[k]=true;b.classList.add('pressed')},off=e=>{e.preventDefault();state.keys[k]=false;b.classList.remove('pressed')};b.addEventListener('pointerdown',on);b.addEventListener('pointerup',off);b.addEventListener('pointercancel',off);b.addEventListener('pointerleave',off)});
  function heldButton(el,key){const on=e=>{e.preventDefault();state[key]=true;el.classList.add('pressed')},off=e=>{e.preventDefault();state[key]=false;el.classList.remove('pressed')};el.addEventListener('pointerdown',on);el.addEventListener('pointerup',off);el.addEventListener('pointercancel',off);el.addEventListener('pointerleave',off)}
  heldButton($('#stabilizeBtn'),'stabilizeHeld');heldButton($('#tractorBtn'),'extractHeld');
  function humanFire(){humanAction('protection','fire',()=>{const e=nearestEnemy();if(e)fireAt(e,'human');else showToast('No interceptor in range.')})}
  $('#fireBtn').addEventListener('click',humanFire);$('#pulseBtn').addEventListener('click',()=>humanAction('protection','pulse',()=>{state.ship.pulse=1.4;state.ship.shield=Math.min(100,state.ship.shield+22);recordEvent('shield',{owner:'human'})}));
  $('#repairBtn').addEventListener('click',()=>humanAction('support','repair',()=>repair('human')));$('#lifeBtn').addEventListener('click',()=>humanAction('support','life-support',()=>{if(state.ship.cargo){state.ship.cargo.hp=Math.min(100,state.ship.cargo.hp+16);recordEvent('lifeSupport',{owner:'human'})}else showToast('No pod aboard.')}));

  resetState();draw();requestAnimationFrame(loop);
})();
</script>
</body>
</html>


===== FILE: public/city/rescue/index.html.bak-deploy-20261011 =====
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover, maximum-scale=1" />
  <meta name="color-scheme" content="light dark" />
  <link rel="icon" href="data:," />
  <title>Rescue Wing</title>
  <style>
    :root {
      color-scheme: light dark;
      --bg:#dce8ec; --panel:#f7fbfc; --panel2:#eaf2f4; --ink:#10232c; --muted:#405b67;
      --line:#93abb4; --cyan:#007f91; --cyan2:#00a4ad; --gold:#9b6500; --danger:#ba2639;
      --human:#b06b00; --ai:#007f91; --ok:#148056; --shadow:0 14px 35px rgba(17,39,48,.16);
    }
    @media (prefers-color-scheme: dark) {
      :root {
        --bg:#061117; --panel:#0b1b23; --panel2:#102730; --ink:#ecfbff; --muted:#a7c0c9;
        --line:#294652; --cyan:#42dce5; --cyan2:#92f9f3; --gold:#ffc857; --danger:#ff6375;
        --human:#ffc857; --ai:#42dce5; --ok:#5ce0a0; --shadow:0 18px 45px rgba(0,0,0,.4);
      }
    }
    *{box-sizing:border-box}
    html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,"Segoe UI",sans-serif}
    body{overflow-x:hidden}
    button{font:inherit;color:inherit}
    button:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
    .shell{width:min(1440px,100%);margin:auto;padding:clamp(10px,2vw,24px);padding-bottom:calc(28px + env(safe-area-inset-bottom))}
    .mission-strip{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);padding:14px 16px;margin-bottom:12px}
    .eyebrow{font:700 12px/1 "Arial Narrow","Aptos Narrow",system-ui,sans-serif;letter-spacing:.13em;text-transform:uppercase;color:var(--cyan)}
    .objective{font:700 cl