<!-- SOLID CITY · part 2923 -->
f" hidden>
        <div class="modal">
          <div class="eyebrow" id="debriefEyebrow">ROUTE COMPLETE</div>
          <h2 id="debriefTitle">Aster Gate reached.</h2>
          <div class="scoreline"><div><b id="scoreHull">—</b><span>HULL</span></div><div><b id="scoreHandoffs">—</b><span>HANDOFFS</span></div><div><b id="scoreTime">—</b><span>FLIGHT TIME</span></div></div>
          <button id="againBtn">FLY THE ROUTE AGAIN</button>
          <div class="sub">Flight telemetry resets with each run.</div>
        </div>
      </div>
      <div class="pause-overlay" id="pauseOverlay" role="dialog" aria-modal="true" aria-label="Game paused" hidden>
        <div class="pause-actions">
          <button id="resumeBtn" type="button">RESUME</button>
          <a href="/city/?back=strike">QUIT TO CITY</a>
        </div>
      </div>
    </section>

    <aside class="side">
      <section class="panel">
        <h2 class="panel-title">TASK CONTROLS <span>TOUCH = OWNERSHIP</span></h2>
        <div class="controls">
          <div class="control-block"><label>MOVEMENT</label><div class="pad" id="movePad" aria-label="Movement control"><span class="nub" id="moveNub"></span></div><div class="control-hint">drag to steer<br><span class="kbd">WASD</span></div></div>
          <div class="control-block"><label>AIM + FIRE</label><div class="pad weapon" id="weaponPad" aria-label="Weapons control"><span class="nub" id="weaponNub"></span></div><div class="control-hint">drag toward target<br><span class="kbd">ARROWS</span> + <span class="kbd">SPACE</span></div></div>
        </div>
      </section>
      <section class="panel">
        <h2 class="panel-title">LIVE TELEMETRY <span>THIS RUN</span></h2>
        <div class="telemetry"><div><b id="handoffCount">0</b><span>HANDOFFS</span></div><div><b id="conflictCount">0</b><span>CONFLICTS</span></div><div><b id="warningCount">0</b><span>WARNINGS</span></div></div>
      </section>
      <section class="panel log">
        <h2 class="panel-title">OWNERSHIP LOG <span>NEWEST FIRST</span></h2>
        <ol class="log-list" id="logList" aria-live="polite"></ol>
      </section>
    </aside>
  </div>

  <section class="architecture" aria-labelledby="archTitle">
    <div class="architecture-head"><div><h2 id="archTitle">Flight guide</h2><p>Rider splits flight and weapons into two roles. Choose a configuration, then take either task at any moment by touching its control.</p></div><p><b>Handoff:</b> touch for immediate control → release for a guarded coast → flight intelligence resumes smoothly. Hazard warnings advise you without taking command.</p></div>
    <div class="arch-grid">
      <article class="arch-node"><h3>1 · FLY THE ROUTE</h3><p>Steer through the debris field, dodge incoming fire, and keep making progress toward Aster Gate.</p><p class="rule">Survival and reaching the gate come first.</p></article>
      <div class="arch-arrow" aria-hidden="true">→</div>
      <article class="arch-node"><h3>2 · SWITCH ROLES</h3><p>Use Rider for movement, Archer for weapons, or Full Manual for both. Touching a control claims only that role.</p><p class="rule">Your other task stays with its current pilot.</p></article>
      <div class="arch-arrow" aria-hidden="true">→</div>
      <article class="arch-node"><h3>3 · TRUST YOUR WING</h3><p>Teal Wing holds formation and calls out threats while you focus on the task you choose.</p><p class="rule">Warnings guide you; they never override you.</p></article>
    </div>
    <div class="research-strip">
      <div><b>RIDER</b><span>Fly while the AI tracks and fires.</span></div>
      <div><b>ARCHER</b><span>Aim and fire while the AI navigates.</span></div>
      <div><b>FULL MANUAL</b><span>Command movement and weapons together.</span></div>
      <div><b>DODGE + FIRE</b><span>Both controls remain active at the same time.</span></div>
      <div><b>RELEASE</b><span>Lift off a control to return it to the AI.</span></div>
    </div>
  </section>
</main>
<script>
(function(){
  'use strict';
  var canvas=document.getElementById('game'),ctx=canvas.getContext('2d');
  var els={
    moveOwner:document.getElementById('moveOwner'),weaponOwner:document.getElementById('weaponOwner'),moveLatency:document.getElementById('moveLatency'),weaponLatency:document.getElementById('weaponLatency'),
    hullBar:document.getElementById('hullBar'),hullText:document.getElementById('hullText'),distanceText:document.getElementById('distanceText'),killsText:document.getElementById('killsText'),warning:document.getElementById('warning'),
    mirrorWrap:document.getElementById('mirrorWrap'),mirrorBar:document.getElementById('mirrorBar'),mirrorText:document.getElementById('mirrorText'),
    handoffCount:document.getElementById('handoffCount'),conflictCount:document.getElementById('conflictCount'),warningCount:document.getElementById('warningCount'),logList:document.getElementById('logList'),
    startCard:document.getElementById('startCard'),debrief:docum