<!-- SOLID CITY · part 1860 -->
. ONE SHARED FLIGHT.</strong><br>Make both ships solid, master speed, expand the battlefield, bring every earned ability home, then break into depth. Drag YOU with one thumb and hold FIRE with the other.</p>
      <div class="pilot-key"><div class="pk1"><strong>SHIP ONE · GOLD</strong><span>Drag anywhere to steer. Hold FIRE for manual shots.</span></div><div class="pk2"><strong>SHIP TWO · TEAL</strong><span>AI flies and collects power-ups. Drag its view to take over.</span></div></div>
      <button class="launch" id="launch">LAUNCH</button>
    </div>
  </section>

  <section class="level-beat" id="levelBeat" hidden>
    <div class="level-card" id="levelCard">
      <div class="level-no" id="levelNo">LEVEL 1</div>
      <h2 id="levelTitle">Solidivism</h2>
      <p id="levelCopy">The doctrine of solidity: experience makes each fragile ship SOLID — unbreakable and whole — through plating, cannons, thrusters, and biological adaptations.</p>
      <button class="launch" id="continueLevel">BEGIN SOLIDIVISM</button>
    </div>
  </section>

  <section class="level-beat" id="summitChoice" hidden>
    <div class="level-card">
      <div class="level-no">THE HEART IS CRITICAL</div>
      <h2>The shockwave is coming</h2>
      <p>One ship can hold the line so the other returns — or the pair dives together and shares the blast.</p>
      <div class="choice-row">
        <button class="launch" id="choiceTogether">STRIKE TOGETHER</button>
        <button class="launch" id="choiceGold">GOLD HOLDS THE LINE</button>
        <button class="launch" id="choiceTeal">TEAL HOLDS THE LINE</button>
      </div>
    </div>
  </section>

  <section class="debrief" id="debrief" hidden aria-live="polite">
    <div class="debrief-card">
      <div class="scoreboard-head">
        <div><div class="scoreboard-kicker" id="outcome">MISSION COMPLETE</div><h2>Final scoreboard</h2><div class="result" id="result"></div></div>
        <div class="final-score"><span>FINAL SCORE</span><b id="mScore">00000</b><div class="new-best" id="newBest">NEW BEST</div><div class="score-formula">KILLS × 100 · RESCUES × 300<br>REUNIONS × 200 · LEVEL × 1,000</div></div>
      </div>
      <div class="board-title">RUN RECORD</div>
      <div class="metrics primary">
        <div class="metric"><b id="mKills">0</b><span>kills</span></div>
        <div class="metric"><b id="mLevel">1</b><span>level reached</span></div>
        <div class="metric"><b id="mTime">00:00</b><span>time survived</span></div>
        <div class="metric"><b id="mFormation">0s</b><span>formation time</span></div>
        <div class="metric"><b id="mReunions">0</b><span>reunions</span></div>
        <div class="metric"><b id="mRescues">0</b><span>rescues</span></div>
        <div class="metric"><b id="mShield">0</b><span>shield hits absorbed</span></div>
        <div class="metric"><b id="mFriendly">0</b><span>friendly-fire incidents</span></div>
      </div>
      <div class="board-title">BEST THIS SESSION</div>
      <div class="best-strip">
        <div class="best-stat"><b id="bScore">0</b><span>score</span></div>
        <div class="best-stat"><b id="bKills">0</b><span>kills</span></div>
        <div class="best-stat"><b id="bLevel">1</b><span>level</span></div>
        <div class="best-stat"><b id="bTime">00:00</b><span>survival</span></div>
        <div class="best-stat"><b id="bFormation">0s</b><span>formation</span></div>
        <div class="best-stat"><b id="bReunions">0</b><span>reunions</span></div>
        <div class="best-stat"><b id="bRescues">0</b><span>rescues</span></div>
        <div class="best-stat"><b id="bShield">0</b><span>shield saves</span></div>
        <div class="best-stat"><b id="bFriendly">0</b><span>friendly-fire incidents</span></div>
      </div>
      <div class="board-title">FLIGHT TELEMETRY</div>
      <div class="metrics secondary">
        <div class="metric"><b id="mAvoid">0</b><span>collisions avoided</span></div>
        <div class="metric"><b id="mHits">0</b><span>meteor hits taken</span></div>
        <div class="metric"><b id="mSeparations">0</b><span>separations</span></div>
        <div class="metric"><b id="mCoord">0</b><span>coordinated strikes</span></div>
        <div class="metric"><b id="mContinuity">—</b><span>dual-ship continuity</span></div>
      </div>
      <div class="logs"><div><h3>HANDOFF EVENTS</h3><div class="log" id="handoffLog"></div></div><div><h3>ASSISTANCE EVENTS</h3><div class="log" id="assistLog"></div></div></div>
      <div class="twin-law"><div class="doctrine-name">SOLIDIVISM<span>THE FIRST GAME OF SOLIDIVISM</span></div><strong>THE TWIN LIGHTNINGS</strong><span>The gold and teal lightnings fly together, fight together, and never write over each other's codes.</span></div>
      <button class="again" id="again">FLY AGAIN</button>
    </div>
  </section>

<script>
(function(){
  'use strict';
  var WORLD={w:2400,h:1600}, SPEED_TARGET=340;
  var views=[document.querySelector('#view0'),d