街の夜は、等速で流れていない。
 表通りの青は少し長く、裏道の青は息継ぎのように短い。バスが近づけば緑の波(グリーンウェーブ)はほんの少し前に倒れ、救急車がサイレンを鳴らせば、交差点は己の呼吸を止めて道を開ける。
 私は、その呼吸を設計する仕事をしている。市の交通管制センター、信号制御の担当。画面の上で、赤と青と黄が周期の列に並び、矢印と数字が踊る。その裏で、膨大なログが秒刻みで残る。歩行者の押しボタン、公共車両優先の要求、夜間弱音の切替、故障の微かな兆候。私はそれを「街の脈拍」と呼んでいる。

 “異常”に最初に気づいたのは、六月の祭りの宵の口だった。
 市内最大の夏祭り「港囃子」。交通規制の図面は私が引いた。中心街を東西に貫く目抜き通りを歩行者天国にし、その両端の大交差点だけを生かす。救急・消防の通行のために二箇所だけ車の流れを残し、公共車両優先(PTPS)は祭りの間は無効化する。——そのはずだった。

 19時台、私の画面に“あり得ない要求”が灯った。
 〈PTPS要求:ID6315(空港連絡バス)〉
 ——港囃子の夜に空港バスは来ない。規制でルートは迂回中。
 要求は一度だけで、信号機はそれを無視した。無効化の設定が効いている。私は「ノイズか」と呟いて、記録にフラグをつけておいた。
 その二十分後、別の赤い点が跳ねた。
 〈歩行者青:音響有効〉
 ——これも有り得ない。夜二十時以降、住宅に面する交差点の音響装置は条例で弱音(オフ)になる。港囃子の夜は例外なし。
 私は装置の番地を確認し、夜間モードのフラグを洗い直し、異常なしと返す。ログには「音響は鳴っていない」と記録されている。
 “鳴ったことになっているのに、鳴っていない”。
 街の脈拍に、薄い嘘が混ざった。

 二十一時十分。電話が鳴った。眠たげな声が、私の耳を引いた。
 「夜分。御子柴だ。港囃子の会場近く、銀杏町の西交差点で、歩行者の死亡事故だ」
 御子柴は所轄の刑事で、中学の同級生だ。事件か事故か曖昧な案件にぶつかると、彼はよく、管制センターの“街の耳”に電話を入れてくる。
 「時間は?」
 「二十時三十七分頃。車が人をはね、逃走。目撃者は『歩行者側の青が鳴ったので渡った』と証言。だが他の証言では『鳴っていなかった』」
 私は、さきほどの赤い点を思い出し、背中に冷たいものが下りた。
 「音響は鳴っていない。ログ上は。……ただ、奇妙な記録がある。二十時十七分、PTPSの要求が一度。祭り中で無効化されてるけど、発信だけは来ている」
 「要求元は」
 「空港連絡バスのID。港囃子の日は迂回。来ないはずの幽霊の手だ」

 御子柴は「今夜は祭りの喧騒で証言が揺れる」とぼやき、「現場に来られるか?」と聞いた。
 私は端末にログ保存のコマンドを打ち、上着をとって走った。

 銀杏町西交差点は、提灯の光でいつもと違う色をしていた。警察の規制線が張られ、道路には白いチョークの印がいくつも散る。歩道の端に、人が集まり、ざわめきが残響のように漂う。
 歩車分離式の交差点。通常は歩行者青のときには全車両が赤になる。事故は、その“はず”の時間に起きたと目撃者は言う。被害者は二十九歳の女性、ヴァイオリニストの甲斐真帆。祭りの特設ステージで演奏を終え、友人と別れ、一人で渡ったという。

 私は信号機の柱に手を置いた。柱の根元は、灯りをじっと飲み込み、冷たい鉄の匂いを返す。
 音響装置——通称「ピヨピヨ」は去年、ここでは撤去され、代わりに最新のメロディ型に更新された。「カッコー」だ。周波数も音色も違う。音を聞き分ける耳には、すぐにわかる。
 祭りの日の二十時以降、条例により音はオフだ。
 ——なのに、「鳴った」と証言する人がいる。
 私は御子柴に言った。
 「『ピヨピヨ』と証言している人がいたら、その証言は録画からだ。ここは去年から『カッコー』。しかも今夜は弱音。生の耳には入らない」
 御子柴がメモに書き、顎で示した。
 「容疑者は三人。甲斐の元恋人・成沢(なりさわ)陸。映像配信者で、今夜は『現場から生配信』をやっていた。事故直前の映像がある。
 屋台組合の親方・堤。交通規制で揉め、甲斐のステージの音量を巡って言い争った。
 信号機のメンテ会社の技術者・加納。入札不正の内部告発を甲斐の友人が準備していて、名前が出るという噂だ。
 三人ともアリバイを主張。成沢は配信、堤は屋台の帳場で金の勘定。加納は別の現場で制御盤の点検。記録はある」
 私は空を見上げ、提灯の灯りの縁に集まる蛾の影を追った。
 「配信映像を見せて」
 御子柴はスマホを差し出した。成沢のチャンネル。「#港囃子ライブ」。二十時二十五分に開始。画面は手持ちでぶれる。人の笑い声、焼きそばの匂いが漂う気配。
 やがて画面は交差点を映し、「今、信号待ち。青になったら一緒に渡ろう」と成沢の弾む声。遠くから「ピヨ、ピヨ」という音——私はそこで再生を止めた。
 「この音は、ここでは鳴らない。しかも『ピヨピヨ』。旧型の音だ」
 御子柴が眉をひそめ、巻き戻す。
 「成沢は『生配信』を謳ってる。だが“予約公開”を使って、事前収録を生風に流すことはできる。チャットの反応は汎用的。『浴衣かわいい』『夜風気持ちいい』——時間に依存しない」
 「決め手は他にもある」私は言った。「成沢の映像の信号機のフードに、去年の交換前の“汚れ”がそのまま映ってる。今夜、清掃されたフードにはない汚れ。——映像は去年の祭りのものだ」
 御子柴は舌打ちした。
 「アリバイが揺れる。だが『誰がどうやって車を動かし、どうやって信号機を騙したか』が必要だ」

 私は交差点北側の島に立ち、制御箱の鍵穴を見た。鍵は二重化され、今夜は封印。封印テープは破られていない。
 「外からの無線は?」
 「救急・消防のみ。今夜は通っていない」
 「公共車両優先のIR(赤外線)ビーコンは?」
 御子柴は手帳をめくり、顔を上げた。
 「さっきおまえが言ってた『幽霊の要求』。あれは何だ」
「PTPSの要求は、バスや緊急車が交差点に近づくと、送信機から出るIDつきの赤外光を路側の検知機が拾う仕組み。——今日の迂回ルートには、この交差点に向かうバスはない。にもかかわらず、二十時十七分、『空港バスID』の要求が一度だけ入った。制御は無効化しているから、信号は普段通りのはずだった」
 「“はずだった”」
 「だけど、もし犯人が“試験用の送信機”を持っていたら? メンテ会社の技術者なら携行できる。あるいは、安物のマイコンで模倣した信号を出せば、検知機は一瞬“バスが来た”と勘違いする」

 御子柴は加納の名前の横に二本線を引いた。
 「加納は『別の現場にいた』。記録は?」
 「メンテ会社の作業日報。——ただ、私たちが共有している“試験送信機”の貸し出しログに、今日の彼の署名はない。にもかかわらず、検知機は“本物らしい波形”を一度だけ拾っている。自作か、別口だ」
 私はふと、路面の白いチョークの上に、タイヤの薄い擦過痕が走っているのに気づいた。
 逃走車は、渡りかけた甲斐を撫でるように斜めに走り、右に抜けている。
 私はしゃがみ込み、擦過痕の始まりに指を当てた。そこには、黒い粒がわずかに密集している。——ブレーキの“鱗粉”。強く踏んで、戻した跡。
 信号は“青”だったはずの歩行者の側と、車側の“黄”が重なる稀な瞬間が、理論上は存在する。——バス優先が“緑の波”を保つために、ごく短く配分をずらす瞬間だ。
 その瞬間を、誰かが狙った。
 私は御子柴に言った。
 「犯人は『歩行者が青になると信じて歩き出すタイミングで、車側に“黄→青”を生ませる』よう、ほんの短い“ずれ”を作った可能性がある。
 やり方は二つ。
 一つはPTPSの偽要求を入れて車側の青を少し延長し、次の歩行者青を遅らせる。
 もう一つは、歩行者押しボタンで『延長モード』を連打して、歩行者側の青を擬似的に“後ろにずらす”。福祉用の長押し機能は、ログに独特のタイミングを残す」
 私はポケットから、小さな紙片を取り出した。制御ログのプリント。
 〈二十時三四分:押しボタン長押し(8.9秒)×3〉
 「——この交差点で、長押しが三回。通常は高齢者がゆっくり押すが、この“8.9秒×3”は教科書通りすぎる。『機能を知っている人間』だ」
 御子柴は吐息を洩らした。
 「成沢も、加納も、堤も、この町の人間だ。押しボタンの“裏”を知っていてもおかしくない。決め手は何だ」
 私は答えず、周囲を見た。
 露店の屋根に吊るされたコードランプ。電源は発電機。長テーブルの上に置かれた会計箱。堤はそこで金を数えていたという。
 堤の帳場に近づくと、平台の上に灰皿代わりの缶。灰はないが、缶の縁に「溶けた跡」があった。
 「これ、熱い何かを置いた?」
 屋台の若い衆が「先輩がライターの火をつけっぱで」と言いかけ、堤に睨まれて口をつぐんだ。
 私は缶の内側の煤の色を見た。青っぽい。
 ——赤外線の小さな発光素子は、燃やせばこの色の煤を出す。
 堤が“送信機”を隠した可能性。
 けれど、堤は町会の顔だ。迂闊に踏み込むと、祭り自体に火がつく。私は視線を御子柴の方の群衆の背に移し、別の糸をたぐることにした。

 管制センターに戻ると、私は事故の三十分前から後の全ログを時系列に並べ直し、音響・押しボタン・PTPS・車両検知の波形を重ねた。
 そこには、ひとつだけ“おかしな呼吸”があった。
 二十時三十六分四十秒。車両検知の波形に、ごく短い“空白”。前後の周期と合わない。
 ——“検知の見落とし”を、誰かが作った?
 制御箱は、光学式の車両検知器の信号を拾っている。走ってくる車が光を遮ると波形が落ちる。遮り方で速度が推定できる。
 この空白は、遮り方が“滑らかすぎる”。本物の車は、輪郭にランダムさがある。
 ——映像を見せてくれる?
 私は交差点の防犯カメラの映像を要求した。事故の瞬間、画面は人で埋まっている。だが、北側から来た車の陰に、珍しい“光の点滅”が映った。
 ヘッドライトの間。ナンバープレートの上。
 そこに、規則正しく点滅する「赤外線発光器」の反射が微かに見える。
 私は呼吸を止めた。
 ——成沢だ。彼の配信の過去動画に、手作りのガジェットが映っていた。赤外線リモコンの拡張器。「信号機の『歩行者ボタン』を非接触で押せたら便利だよね」と笑い、愛想よくデモしてみせる若い男の顔。
 彼なら、PTPSを模倣する“もっと危ないもの”にも手を出す。
 御子柴に電話を入れた。
 「成沢の車、ナンバープレートの上に何か付いていない? 赤外線の発光器。小さなLEDを並べたような」
 「……あった。事故後、車は乗り捨てられて見つかったが、前面のその位置に両面テープの跡。配線の切れ端も。鑑識が拾ってる。ヤバいな」
 「PTPSの模倣器だ。商用のものではなく自作。周波数を少しずらして、検知機の判定を『バスらしい』に寄せていた。二十時十七分の要求がそれ。事故直前は無効化で延長は起きないが、彼は別の手も使った。——押しボタンの『延長』だ」
 「押しボタンは、誰でも押せる」
 「だが、記録の“8.9秒×3”は、人間の癖が出ない。——成沢の過去配信の“ガジェット”に、押しボタン長押し用の吸盤スイッチが出てくるはずだ」
 御子柴が低く笑った。
 「おまえ、いつもながら気持ち悪いほどよく見てるな」
 「気持ち悪いのは、街の呼吸を自分のために曲げる人間だ」

 成沢は、取り調べ室で最初、明るく笑っていた。
 「配信の『ネタ』を撮ってただけです。港囃子は視聴が伸びる。事故の瞬間? 近くにいたけど、何が起きたかよく見てない。音は鳴ってました。青になったから、みんな渡って——」
 私は彼のスマホに映る配信画面の一コマを見せた。
 「あなたの映像に『ピヨピヨ』が入っている。ここは去年から『カッコー』だ。しかも今夜は弱音。鳴らない。——映像は去年の“再放送”にチャットを被せた。生配信のふりの予約公開だ」
 成沢は笑みを固め、「間違えたのかも」とつぶやく。
 「あなたの車の前に赤外線の発光器の跡。PTPSの模倣器を付けた。要求は無効化されたが、検知機の前段は揺れた。
 さらに、押しボタンの『延長』を三度。あなたのガジェット動画、『非接触押しボタン』の吸盤スイッチ。——あれを夜に使った」
 成沢の顔から、少しずつ血の気が引く。
 御子柴が、机に小さな袋を置いた。袋には細い配線と、赤外LEDの破片。
 「車の前から出た。おまえが付けたんだろう?」

 成沢は、最後まで「押してはいない」と言い張った。
 「彼女(甲斐)がDMで『会場で話したい』って言うから行った。歩き出したのは彼女だ。俺は何もしてない。信号は人間のためのものだろ。ちょっと早めたって、事故る方が……」
 「『ちょっと早めた』?」と御子柴。
 「押しボタンを長押しして延長したのは俺だ。でも、通れる時間が長くなるだけだろ。むしろ安全だ」
 「その延長は“次の周期”に効く。歩行者が『今』だと信じて踏み出した瞬間、車側に“黄→青”が早めに来る。——設計を知っていたか?」
 成沢は、目を伏せ、口元を歪めた。
 「知らなかった。そんなの、普通の人は知らない」
 私は、静かに言った。
 「知らなかったでは済まない。知らないから、触れるな。街の呼吸は、おまえの再生回数のためにあるわけじゃない」

 事件は、肩書きの違う三人の利害が交差点で絡み、ほどけた。
 屋台の堤は、成沢に場所を提供しただけだった。缶の煤は関係ない。
 メンテの加納は、成沢の“ガジェット仲間”で、PTPSの仕様の話を酒の席で漏らしていた。入札不正の噂はあったが、今回、加納は現場にはいない。——ただ、彼の「試験用送信機」が一度だけ失踪し、返却される前に中身がコピーされていた。
 成沢は、甲斐に復縁を迫り、断られて逆上した。復縁という言葉はきれいだが、彼のメッセージの文面には、企てが滲んでいた。
 ——「演奏でも配信でも、人は『見せ方』で動く」。
 信号も、見せ方で動く、と彼は勘違いした。
 見せ方で“青”は来ない。
 “青”は、設計された“等速”の上に、必要に応じて公共のためにだけ揺れる。

 甲斐の葬儀の翌週、私は銀杏町西交差点の制御を更新した。
 押しボタンの「長押し延長」は、夜間は無効化。PTPSは要求受信時に「記録音」を覆面で残す。赤外模倣の波形は機械学習のフィルタで弾く。
 ——街を、少し堅くする。
 そうしながら、私は一つだけ迷いを持っていた。
 街は、誰のために揺れるべきか。
 救急車のために揺れるのは、疑いない。
 バスのために揺れるのも、疑いない。
 恋のために揺れてはいけない。
 視聴のために揺れてはいけない。
 “善意”の延長のつもりで押しボタンを長押しする人のために揺れるべきかどうか。
 私は夜の画面に、青と赤と黄の列を見つめ、結局、こう記録した。
 ——街は、知らない手のためには揺れない。

 御子柴から、短いメッセージが届いた。

「おまえの“信号の耳”に助けられた」

 私は返した。

「鳴るべきときに鳴らないものと、鳴らないはずが鳴ったことにされるもの。どちらの嘘も、街は嫌う」

 送信して席を立つと、ガラス越しの夜の交差点で、青が静かに等速を刻んでいた。
 誰か一人のためではない青。
 先頭の車が滑らかに動き、歩行者が波の切れ目に渡り、遠くでバスが減速せずに交差点を抜ける。
 甲斐のヴァイオリンの音色が、祭りの喧噪の向こうにかすかに混ざっていた夜は終わった。
 弓の軌跡のように、青も赤も黄も、空中の見えない五線譜の上で予定の音符を打つ。
 街は音楽に似ていて、間合いがすべてだ。
 一拍を奪われると、曲は崩れる。
 私はデスクに戻り、次の工事の図面を開いた。
 “等速”は、ひとりでに保たれるものではない。
 誰かの見せ方でも、怒りでも、恐れでもない。
 ——それを保つのが、私の仕事だ。

 深夜零時、港囃子の提灯が一斉に消え、街は少し低い呼吸に戻った。
 私は画面の右上の小さなアイコン「夜間弱音」の緑を確かめ、伸びをした。
 交差点の角で、見えない誰かが、足を揃えて青を待っている。
 その無言の待ち時間に、私はいつも、街の正しさを見ている。
 そしてたぶん、これからも。
 街の等速を、人の速度に奪わせないために。