<!-- SOLID CITY · part 3444 -->
ory{font-size:.65rem}}
    .order-btn.lattice{grid-column:1/-1;border-color:var(--gold);color:var(--gold);font-size:.8rem;min-height:56px;background:color-mix(in srgb,var(--gold) 14%,var(--panel2))}
    .order-btn.lattice small{color:var(--gold)}
    .order-btn:disabled{opacity:.35;cursor:default}
    .order-btn:disabled:hover{background:var(--panel2);border-color:var(--line);color:inherit}
    .summit-choice{position:absolute;left:0;right:0;bottom:64px;z-index:6;display:grid;place-items:center;padding:0 16px;pointer-events:none}
    .summit-choice[hidden]{display:none}
    .summit-choice-card{pointer-events:auto;background:rgba(4,12,15,.94);border:1px solid rgba(255,195,77,.5);padding:16px 18px;max-width:560px;width:100%;text-align:center;box-shadow:0 18px 60px rgba(0,0,0,.5)}
    .summit-choice-title{font:800 .95rem ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.14em;color:#ffc34d;margin-bottom:6px}
    .summit-choice-sub{font-size:.75rem;color:#b9c8c9;margin-bottom:12px}
    .summit-choice-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
    .summit-btn{min-height:64px;cursor:pointer;font-weight:900;letter-spacing:.06em;font-size:.78rem;border:1px solid var(--teal);background:transparent;color:var(--teal);padding:8px}
    .summit-btn small{display:block;font-weight:600;font-size:.6rem;margin-top:5px;color:var(--muted);letter-spacing:0}
    .summit-btn.danger{border-color:#ffc34d;color:#171207;background:#ffc34d}
    .summit-btn.danger small{color:#5a3d00}
    .debt{display:block;margin-top:10px;color:#8fa3a5;font-size:.78rem;font-style:italic}
    @media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
  </style>
</head>
<body>
<main class="app">
  <section class="mission-bar" aria-label="Mission status">
    <div class="objective"><h1>Clear the convoy lane</h1><p>12 drones · 3 AI sub-commanders · escalating debris</p></div>
    <div class="progress-wrap"><div class="progress-label"><span id="phaseText">WAVE 1 · APPROACH</span><span id="progressText">0% TO EXIT VECTOR</span></div><div class="progress-track"><div class="progress-fill" id="progressFill"></div></div></div>
    <div class="integrity"><strong id="integrityValue">100%</strong><span>Swarm<br>integrity</span></div>
    <button class="pause-btn" id="pauseBtn" aria-label="Pause mission" hidden>Ⅱ</button>
  </section>

  <div class="layout">
    <section class="field-shell" aria-label="Tactical field">
      <canvas id="field" aria-label="Tactical view of drones clearing hazardous debris from the convoy lane"></canvas>
      <div class="hud-top"><div class="hud-chip">ORDER <b id="activeOrder">FORM UP</b></div><div class="hud-chip">HUMAN <b id="humanCount">0</b> · AI <b id="aiCount">12</b></div></div>
      <div class="summit-choice" id="summitChoice" hidden><div class="summit-choice-card"><div class="summit-choice-title">THE LATTICE IS CHARGED</div><div class="summit-choice-sub">Collapse takes all twelve — including yours.</div><div class="summit-choice-row"><button class="summit-btn danger" id="collapseBtn">COLLAPSE AS ONE<small>twelve become one · the core breaks</small></button><button class="summit-btn" id="cageBtn">HOLD THE CAGE<small>keep the twelve · the core remains</small></button></div></div></div>
      <div class="advisory" id="advisory" aria-live="polite">Sub-commanders aligned. Tap any drone to take it from AI control.</div>
      <div class="start-screen" id="startScreen">
        <div class="start-content">
          <div class="mark">CONVOY LANE K-9 // HAZARD RESPONSE</div>
          <h2>Swarm<em>Command.</em></h2>
          <p>Debris is closing around a civilian convoy. Command the swarm as a formation, or tap any drone and fly it yourself. AI yields only the drone you claim.</p>
          <div class="brief"><div><b>GROUP ORDERS</b><span>Shape the AI swarm without overriding human-held drones.</span></div><div><b>DIRECT CONTROL</b><span>Tap a drone, steer, and pulse nearby debris.</span></div><div><b>COORDINATE</b><span>Losses hurt. Regrouping recovers disabled units.</span></div></div>
          <button class="launch" id="launchBtn">LAUNCH SWARM</button>
          <a class="city-back" href="/city/">← back to Solid City</a>
        </div>
      </div>
      <div class="debrief" id="debrief" hidden><div class="debrief-card"><h2 id="debriefTitle">Lane secured.</h2><p id="debriefCopy">The convoy reached the exit vector under swarm protection.</p><div class="debrief-grid"><div><b id="finalTime">00:00</b><span>mission time</span></div><div><b id="finalClear">0</b><span>debris cleared</span></div><div><b id="finalLost">0</b><span>drones lost</span></div></div><button class="launch" id="restartBtn">FLY AGAIN</button></div></div>
    </section>

    <aside class="rail">
      <section class="panel">
        <div class="panel-head"><h2>Group orders</h2><span class="signal"><i></i><span id="queueHealth">LOCAL · 0 QUEUED</span></span></div>
      