清晨六點十二分,林書豪被鬧鐘叫醒。
不對。他根本沒有設鬧鐘。叫醒他的是隔壁那戶每天早上六點準時吵架的夫妻。女的罵男的襪子又丟在馬桶蓋上,男的說那是你自己的襪子。每天都是這段。比鬧鐘還準。
他躺在租屋處的單人床墊上,天花板有一塊水漬,形狀像台灣島。他盯著那塊水漬看了半分鐘,確認它還是台灣島的形狀,沒有變成別的什麼東西。
好。世界還是正常的。
他坐起來。身體痠得像被卡車輾過去再倒回來。昨天凌晨的事情在腦子裡還是很清楚——辛亥隧道、第五道門、白光、黃衣女人、空洞眼眶的老太太。他本來以為睡一覺起來會覺得那些都是幻覺,太累了、壓力太大了、精神恍惚了。
但他的悠遊卡就放在床頭的小鐵櫃上面。霧面黑色。暗紅色的數字。
31,516。
他拿起卡,翻面,又翻回來。布丁狗沒有回來。
手機的守夜 App 還在。他嘗試長按刪除,圖示抖了一下,但沒有出現叉叉。他去設定裡面找,App 列表裡根本沒有「守夜」這個名字。它存在於他的手機上,但不存在於系統裡。
他把手機放下,走去浴室洗臉。
水龍頭打開的時候,他抬頭看了鏡子。
臉色很差。眼袋比平常更深,嘴唇沒什麼血色。但五官是正常的。眼睛是正常的。他仔細看了一下自己的瞳孔——黑色的,圓的,沒有什麼奇怪的光或裂痕。
他鬆了一口氣。
然後他注意到鏡子裡自己身後的浴室牆壁。
磁磚上有裂痕。那些裂痕一直都在,房東懶得修。但現在他看到的不只是裂痕。他看到裂痕底下的管線走向——水管在牆壁裡面是怎麼彎的、哪裡有接頭、哪裡有一段銅綠生鏽的部分。他透過磁磚和水泥,看到了牆壁內部的結構。
不是X光那種看法。更像是他的視覺突然多了一層,原本只看到表面的東西,現在連底下的紋理都疊上來了。像手機拍照開了HDR,所有細節都被過度增強。
他用力眨了幾下眼。那層多出來的視覺沒有消失。
他走到窗邊,拉開窗簾。
早晨的陽光灑進來。對面公寓的陽台上,有人在晾衣服。一個穿著粉紅色睡衣的中年女人,夾子一個一個扣。再遠一點,巷口的早餐店已經開了,鐵門拉起來,裡面的蒸氣冒出來,油條和蛋餅的味道飄過整條巷子。
很正常。台北最普通的早晨。
但林書豪的目光停在巷口那棵榕樹上面。
榕樹底下坐著一個男人。穿著灰色的汗衫,黑色西裝褲,腳上是藍白拖。頭低著,像在打瞌睡。
他旁邊的機車停車格裡面停了四台機車。每一台的後照鏡都映著早晨的光線。
但那個男人沒有出現在任何一面後照鏡裡。
林書豪把臉湊近窗戶,眼睛瞇起來。四面後照鏡的角度不同,有幾面照到的範圍涵蓋了那個男人坐的位置。但鏡子裡就是沒有他。只有空的人行道、榕樹根、和半個紅色消防栓。
他的胃收縮了一下。
那個男人抬起頭。
不是朝他的方向。是朝著巷口走過來的一個上班族。那個上班族穿著襯衫、背著公事包,腳步很快,低頭看手機。他走過那棵榕樹的時候,直接穿過了灰色汗衫男人坐的位置。
不是繞過。是穿過。像那裡什麼都沒有。
上班族繼續走他的路,連頭都沒抬。
灰色汗衫男人還坐在那裡。頭又低下去了。
林書豪退離窗戶一步。他的後背撞到床沿,他就這樣坐了下來。
「幹。」
他的聲音在空蕩蕩的套房裡面顯得很薄。
他還是出門了。
不出門就沒有收入。沒有收入就還不了最低應繳。邏輯鏈不會因為超自然現象而斷掉。信用卡公司不會因為你看得到鬼就免你的債。
白天的外送單沒有深夜那麼多,但午餐高峰期可以跑。他換了衣服,背上外送箱,牽出那台 YAMAHA Force。
騎出巷口的時候,榕樹下的灰色汗衫男人還在。他經過的時候刻意不看。眼角餘光裡,那個男人的輪廓模模糊糊的,像一張曝光過度的照片。
他轉上木柵路。
白天的台北跟晚上完全不一樣。車很多、人很多、喇叭聲很多、太陽很大。所有東西都是亮的、吵的、活的。他騎在車流裡面,被左邊的公車擠,被右邊的計程車切,熟悉的焦躁感讓他的心跳恢復正常。
這才是台北。這才是他的生活。
然後他在景美女中前面等紅燈的時候,看到了。
斑馬線上走著一群過馬路的人。學生、上班族、推著菜籃車的阿婆。很正常的畫面。
但其中有三個人不對。
一個穿著藍色運動服的年輕男生,走在人群中間。他的臉很白,嘴唇是灰色的。腳步跟其他人的節奏不太一樣——慢了半拍,像影片被微微拉慢。而且他沒有踩在地上。他的腳和斑馬線之間有大約兩公分的間距。他飄在地面上。
另一個是穿著碎花洋裝的女人,四十幾歲的樣子。她的身體是完整的,表情也正常,甚至像在微笑。但她的整個人是半透明的。陽光穿過她的身體,在地面上只留下非常淡、非常淡的影子,像墨水被水稀釋到快看不見。
第三個——
第三個讓林書豪的手指在煞車上收緊。
一個老伯,穿著白色內衣和卡其色短褲。他走在人群最外側,靠近他這邊。他的身體是正常的,不透明,有影子。但他的頭頂上方大約三十公分的位置,有一團黑色的東西。不是煙、不是霧。是一團沒有形狀的黑色存在,像被捏碎的墨汁凝固在空中。那團東西跟著老伯移動,像一頂看不見的帽子。
沒有其他人看到這些。
斑馬線上的人來來去去,活人和那三個不太對的存在混在一起走,彼此互不干擾。像是兩個頻率不同的廣播電台疊在同一條路上播。
綠燈了。後面的車按喇叭。
林書豪催了油門,騎過斑馬線。他的前輪經過那個半透明女人旁邊的時候,空氣冷了一瞬——就一瞬,像打開冰箱門的那種涼。然後就過去了。
他的手在抖。不是因為冷。是因為他意識到一件事。
這些東西不是只有晚上才出現。白天也在。一直都在。只是以前他看不到。
中午他送了六單。
每一單都像在跑障礙賽。不是外送本身的問題,是他的眼睛。他沒辦法關掉那層多出來的視覺。走進餐廳取餐,他看得到廚房牆壁裡面的蟑螂窩。騎車等紅燈,他看得到旁邊轎車裡的人後座坐著一個不該在那裡的東西——一個蜷縮著的小小身影,半透明,抱著自己的膝蓋。他不知道那是什麼。他不想知道。
他在送完第六單之後,把車停在景美的一間 7-11 門口,買了一瓶礦泉水。坐在店門口的塑膠椅上,把水倒在手上搓了搓臉。
他掏出手機,打開守夜 App。
App 的介面還是那個黑底白字的極簡風格。首頁分成三個區塊:地圖、規則、紀錄。
地圖他昨天看過了。紅點、黃色路線、那個萬華的黑色標記「墨氏樓」。今天白天再看,紅點的數量少了一些——不是消失了,是變淡了,像夜光貼紙在白天褪色。但它們還在。位置沒有變。
他點進「規則」。
昨天只顯示了六條,第六條還沒顯示完。現在頁面展開了,六條規則完整列出:
規則一:不要在無人的巷弄中停車超過三十秒。
規則二:遇見沒有影子的存在,不要注視超過五秒。
規則三:不要回應任何形式的問路、問時間、問名字。
規則四:如聽見自己的名字被叫,確認來源前不要回頭。
規則五:捷運末班車後,不要進入任何地下空間。
規則六:不要嘗試與其他觀視者交換資訊。違者雙方扣除等量壽命。
第六條。他讀了兩遍。
不要與其他觀視者交換資訊。
所以有其他觀視者。他不是唯一一個。但他不能跟他們說話。
他往下滑。規則底下還有一行灰色小字,字體很小,他差點沒看到:
「規則僅適用於第一至第四級觀視者。第五級以上不受此限。」
這什麼意思?等級高了就不用遵守規則?還是等級高了,規則本身就傷不了你?
他點進「紀錄」。
頁面上只有一筆:
2026-03-28 02:17
事件類型:觀視違規(規則二)
扣除壽命:12 小時
目前餘額:31,516 小時
備註:首次違規,從寬處理。
從寬處理。
十二個小時叫從寬。
他把手機收起來,喝了一口水。礦泉水是溫的,塑膠瓶在陽光下被曬得發燙。他的手指碰到瓶身的時候,忽然發現自己的手很冰。三月底、正中午、太陽底下,他的手指頭是冰的。
體溫下降。
他想到了什麼——但那個念頭還沒成形,手機就震了。
Uber Eats 派單。信義區,一份酸辣粉加滷豆干。備註:門口有警衛,跟他說502就好。
他深吸一口氣,戴上安全帽,發動機車。
生活還是要過的。
信義區的那一單讓他跑到基隆路和松仁路的交叉口。台北101就在不遠處,灰藍色的輪廓切在午後的天空上。
他以前騎經過這裡無數次,從來沒有多看101一眼。大樓就是大樓。玻璃帷幕、鋼骨結構、觀景台上永遠有一堆觀光客。
但今天他多看了一眼。
然後他煞車了。
101的大樓本體沒有問題。但他的眼睛看到的不只是大樓。在101的輪廓上面——不,是「裡面」——有另一層影像疊著。像投影片重疊,下面那張是101的實體建築,上面那張是一個完全不同的東西。
他看到的是線。
無數條藍灰色的線,從101的地基往下延伸,穿過柏油路面,穿過地層,往地底深處去。那些線不是直的,是彎曲的、脈動的,像血管,像根系。它們從101的底部散開,朝四面八方蔓延,覆蓋了他視野範圍內的整個地面。
某種巨大的網路。以101為中心,朝整座城市的地下擴散。
他只看了三秒就移開視線。規則二說五秒。他不確定這個算不算,但他不敢冒險。
手機沒有震動。沒有扣壽命。
他把外送送到了客人的大樓,在門口跟警衛說了502,警衛按了電梯。他在等電梯的時候,又忍不住回頭看了一眼窗外的101。
那些線還在。
他走進電梯,門關上。
傍晚六點,他收工了。今天跑了十二單,扣掉油錢和手機月租費的零頭,大概賺了七百多塊。
他把機車停在租屋處巷口,拿下安全帽。黃昏的光線把整條巷子染成橘紅色。他聞到隔壁棟飄出來的麻油雞的味道,聽到樓上有人在看新聞,主播的聲音從開著的窗戶流出來。
他站在巷口,忽然覺得很累。
不是身體的累。是一種認知上的疲勞。整天都要分辨什麼是真的、什麼是假的、什麼能看、什麼不能看。活人跟死人混在一起走在斑馬線上,他必須在零點幾秒內判斷出來然後移開目光。這比外送本身還要消耗精力。
他往巷子裡面走。
走到一半的時候,他停下來了。
巷子的中段有一盞路燈,在白天是暗的。路燈底下有一面大樓外牆,上面貼滿了那種小廣告——通水管、搬家、貸款、徵信社。那面牆他每天都經過,沒什麼特別的。
但現在,他看到那面牆上有字。
不是廣告上的字。是牆壁本身的材質裡面——磁磚跟磁磚之間的縫隙、水泥的紋路、雨水沖刷出來的痕跡——這些東西組合在一起,形成了字。
不是他的幻覺。他用力眨了幾下眼,字還在。
很模糊,但他認得出來。
「不要去墨氏樓。」
五個字。寫在牆壁的肌理裡面。
他的心跳快了一拍。他拿起手機,打開相機,對準那面牆拍了一張。
照片裡什麼都沒有。正常的牆壁,正常的小廣告。字不見了。
但他肉眼看過去,字還是在那裡。
他伸手碰了一下那面牆。指尖觸到磁磚的瞬間,一陣冷意從指尖蔓延到手腕。牆壁的溫度比周圍低很多。他把手收回來,指尖發白。
守夜 App 震了一下。
他打開來看。不是違規通知。是一條新的訊息,出現在一個他之前沒注意到的區塊——「系統公告」。
「偵測到觀視者 KP-2091 接觸未登記訊息源。」
「警告:台北市存在大量未經登記的觀視殘留。這些殘留可能來自已終止的觀視者。請勿依據殘留訊息行動。」
已終止的觀視者。
終止。
這個詞用得很乾淨。不是「死亡」,不是「退出」,是「終止」。像在講一個程式被關掉了。
林書豪盯著那行字看了很久。
有人在他之前也看到了這些東西。然後那個人被「終止」了。但那個人留下了訊息。寫在牆壁裡面。用一種只有觀視者才看得到的方式。
不要去墨氏樓。
是警告。是遺言。
他回到房間,煮了一碗泡麵。統一肉燥麵,加一顆蛋。吃的時候沒什麼味覺。不是泡麵的問題,是他整個人都處在一種恍惚的狀態裡。
他邊吃邊滑守夜 App。
在地圖頁面上,他用兩指放大了萬華那個區域。紅點密密麻麻,像長了疹子的皮膚。而「墨氏樓」那個黑色標記,放大之後旁邊多了一行小字:
「第零號觀測點。觀視者禁入。」
禁入。但那個被終止的觀視者留下的訊息也是「不要去」。一個是系統的禁令,一個是死人的警告。指向同一個地方。
他又點回紀錄頁面,想看看有沒有更多資訊。紀錄還是只有那一筆。但頁面底部多了一個新的按鈕,灰色的,上面寫著「附近的觀視者」。
他點了一下。
頁面跳出一行紅字:「規則六:不要嘗試與其他觀視者交換資訊。違者雙方扣除等量壽命。」
然後,在紅字底下,出現了一張縮小版的地圖。他的位置是一個白點。
在他方圓兩公里以內,還有另一個白點。
那個白點在移動。沿著木柵路,慢慢往北移。速度不快,像是在走路。
距離他大約一點三公里。
他盯著那個移動中的白點。那是另一個觀視者。另一個跟他一樣的人。一個也許正在經歷同樣的恐懼、同樣的困惑、同樣被扣了壽命的倒楣鬼。
但他不能接觸。接觸就扣壽命。雙方都扣。
他的拇指懸在螢幕上面。地圖上的兩個白點,一個靜止,一個移動。像兩顆星星,各自在自己的軌道上轉,彼此看得到,但永遠不會碰在一起。
然後那個移動的白點停了。
停在木柵路和某條巷子的交叉口。停了大約十秒。然後——
白點消失了。
不是移出了他的偵測範圍。是直接從地圖上消失了。那個位置變成空的。
守夜 App 跳出了一條系統公告:
「觀視者 KP-2089 已終止。」
「原因:壽命歸零。」
「請周圍觀視者注意安全。」
林書豪把手機放在桌上。
泡麵已經涼了。他看著那碗涼掉的湯麵,裡面的蛋黃已經凝固。窗外天色全暗了。路燈亮了。
KP-2089。他是 KP-2091。中間只差了兩個號碼。
那個人剛才還在移動。還在走路。可能也是下班回家的路上。可能也在想今天發生的事情到底是不是真的。可能也在計算自己還剩多少小時。
然後就沒有了。
壽命歸零。
他低頭看了一眼那張黑色悠遊卡。暗紅色的數字在昏暗的房間裡微微發光。
31,516。
三年七個月。
隔壁的夫妻開始看八點檔了。電視的笑聲穿過薄薄的牆壁傳過來,罐頭笑聲,一波一波的。外面巷子裡有人在遛狗,狗的指甲敲在柏油路上的聲音清清脆脆。
全世界都很正常。只有他不正常。
他看著手機上守夜 App 的地圖,那個 KP-2089 消失的位置。
木柵路。離他不到兩公里。
有人剛剛死了。
而他連那個人的名字都不知道。