<!-- SOLID CITY · part 3742 -->
">Aft arc · escort suppression</div>
        <button class="reclaim ai-control" type="button">RECLAIM BATTERY B</button>
        <div class="controls human-controls">
          <button class="ctrl" data-action="cycle" type="button">TARGET</button><button class="ctrl primary" data-action="fire" type="button">SALVO</button><button class="ctrl release" data-action="release" type="button">AI</button>
        </div>
      </section>
      <section class="station" data-station="defense" data-owner="ai">
        <div class="station-head"><span class="station-name">SHIELDS / DEFENSE</span><span class="owner">AI CREW</span></div>
        <div class="station-status" id="defenseStatus">Facing FRONT · rated 80% front / 20% sides · charge 100%</div>
        <button class="reclaim ai-control" type="button">RECLAIM DEFENSE</button>
        <div class="controls four human-controls">
          <button class="ctrl" data-action="shieldLeft" type="button">L</button><button class="ctrl" data-action="shieldFront" type="button">F</button><button class="ctrl" data-action="shieldRight" type="button">R</button><button class="ctrl release" data-action="release" type="button">AI</button>
        </div>
      </section>
    </aside>
  </main>

  <footer class="console">
    <div class="crewline"><strong id="ownershipSummary">YOU 0 · AI 4</strong><span id="handoffText">All stations crewed. Independent control channels nominal.</span></div>
    <div class="console-actions"><button class="flat" id="eventBtn" type="button">EVENTS</button><button class="flat" id="statsBtn" type="button">STATS</button></div>
  </footer>
</div>

<div class="overlay" id="briefing">
  <div class="card">
    <p style="margin:0 0 8px;font:800 11px ui-monospace,monospace;color:var(--cyan)">MERIDIAN RUN · COMMAND BRIEFING</p>
    <h1>Break the blockade.<br>Bring the ship home.</h1>
    <p>Your AI crew already holds every station. Take only what you want: the helm, either four-gun battery, or defense. The crew continues fighting everywhere else.</p>
    <div class="brief-grid">
      <div class="brief"><b>One touch takes command</b><span>Ownership changes instantly. Other AI stations continue uninterrupted.</span></div>
      <div class="brief"><b>Two independent batteries</b><span>Battery A and B select and fire on different threats.</span></div>
      <div class="brief"><b>Arrival wins the mission</b><span>Keep moving toward Meridian Gate through four hostile waves.</span></div>
      <div class="brief"><b>Advice never overrides</b><span>AI warnings are visible, but your active station remains yours.</span></div>
    </div>
    <button class="deploy" id="deployBtn" type="button">DEPLOY WARSHIP</button>
  </div>
</div>

<div class="overlay" id="pauseOverlay" hidden>
  <div class="card pause-card" role="dialog" aria-modal="true" aria-labelledby="pauseTitle">
    <h2 id="pauseTitle">Game paused.</h2>
    <div class="pause-actions">
      <button class="pause-action" id="resumeBtn" type="button">RESUME</button>
      <a class="pause-action" href="/city/?back=strike">QUIT TO CITY</a>
    </div>
  </div>
</div>

<div class="modal" id="statsModal" hidden>
  <div class="modal-panel">
    <div class="modal-head"><h2>Event-derived combat STATS</h2><button class="close" data-close="statsModal" type="button" aria-label="Close">×</button></div>
    <div class="stats-grid" id="statsGrid"></div>
    <div class="tables"><section><h3>BATTERY PERFORMANCE</h3><div id="batteryStats"></div><h3>METHOD</h3><p class="evidence">Every value is reduced from the in-session event ledger below. Shots are recorded per shell (four per salvo); hits only when a shell intersects a live threat; handoff latency is measured with <code>performance.now()</code>. No displayed number is simulated narration.</p></section><section><h3>RECENT EVIDENCE</h3><div class="log" id="statsLog"></div></section></div>
  </div>
</div>
<div class="modal" id="eventsModal" hidden>
  <div class="modal-panel"><div class="modal-head"><h2>Coordination & interference log</h2><button class="close" data-close="eventsModal" type="button" aria-label="Close">×</button></div><p class="evidence">Accepted ownership changes, safe handoffs, and any rejected stale, duplicated, delayed, disconnected, or overloaded commands appear here. AI advisories use a separate channel and cannot actuate human-held stations.</p><div class="log" id="coordLog"></div></div>
</div>
<div class="overlay" id="debrief" hidden><div class="card"><p style="margin:0 0 8px;font:800 11px ui-monospace,monospace;color:var(--cyan)" id="resultKicker">MISSION COMPLETE</p><h2 id="resultTitle">Meridian Gate reached.</h2><p id="resultText"></p><div class="stats-grid" id="resultStats"></div><button class="deploy" id="againBtn" type="button">FLY AGAIN</button></div></div>

<script>
(function(){
'use strict';
/* Reuse seam: ControlCoordination knows nothing about ships. Swarm can register
   unit tasks, Rescue can register protection/extraction