
下午三點十七分,會議室的投影幕上還亮著Q3的產品路線圖,林若晴的手機震了一下。
中央氣象署。豪雨特報。
她瞥了一眼,把手機翻回去。這個月第三次了。七月的台北本來就是這樣,雨下了又停,停了又下,氣象署的警報像公司群組裡的制式公告,看多了就自動略過。上個月那次超大豪雨特報,結果只下了兩個小時就放晴,同事們還在茶水間笑說氣象署應該改叫「狼來了」署。
「明天會不會停班停課啊?」坐她對面的Amy壓低聲音問,視線還黏在手機螢幕上。
若晴搖頭。窗外的天確實暗得不正常,像有人在午後三點就把調光開關往下旋到底。會議室在十二樓,平時能看到遠處台北101的尖頂,現在連隔壁大樓都模糊了,只剩灰濛濛的輪廓。雨打在落地窗上的聲音已經不是滴答,是一整片白噪音,密得連成一塊,像有人拿水管對著玻璃沖。
「繼續。」主管敲了敲桌面。
路線圖繼續報,後端的工程師講到API重構的時程風險,若晴一邊聽一邊在手機備忘錄裡打字。她習慣用清單記錄,一條一條列好,動詞開頭,主詞明確。「Q3目標:DAU提升15%。待確認:後端API重構時程,預計delay兩週。風險項:iOS 18適配未排入sprint,需下週一跟Ethan確認。」
清楚、精確、可追蹤。她做了五年的PM,這套思維已經長進骨頭裡了。任何事情只要能列成清單,就沒有那麼可怕。
三點四十分,窗外一道閃電把整間會議室照成白色,緊接著的雷聲大到桌上的水杯跟著震。Amy「啊」了一聲,旁邊幾個同事也抬起頭。主管看了看窗外,又看了看手機上的天氣App,眉頭皺了幾秒。
「今天提早走吧。注意安全。」
辦公室裡立刻響起收東西的聲響。鍵盤聲、拉鍊聲、椅輪滾過地板。有人已經在叫Uber,但App上顯示附近沒有可用的車輛。Amy把外套罩在頭上說反正她住公司附近,用跑的就到了。
若晴把筆電塞進包裡,拿出折好的透明塑膠傘,確認錢包、手機、悠遊卡都在,在公司LINE群組打了一行字:「今天提前下班,明天線上同步。大家路上小心。」發送。然後把LINE以外的App通知全部關掉。
不是因為省電。是因為她不喜歡在通勤的時候被訊息轟炸。通勤是她的切換時間,從工作腦切回生活腦。柚子應該已經餓了。
電梯到一樓,她推開大樓的玻璃門,雨聲瞬間從遠處跳到面前,巨大到像被一面牆擊中。她往捷運站的方向走,雨傘在風裡左搖右晃,傘骨發出金屬摩擦的嘎嘎聲。路面的水已經沒過了人行道的緣石,分不出哪裡是路、哪裡是排水溝。她踩著水走,鞋子在第三步就徹底濕透了,水涼得讓腳趾縮了一下。
南京復興站的手扶梯把她從地底送上來的時候,若晴首先注意到的是聲音變了。
地下跟地面完全是兩個世界。在月台上,雨是悶的、遠的,像隔了一層棉被。列車進站的風和冷氣蓋過一切,讓人可以假裝外面什麼事都沒發生。但手扶梯一節一節往上爬,聲音也一層一層加上來。先是模糊的沙沙聲,然後是密集的啪啪聲,最後是出口處那種整片的、連續的轟鳴。
她站在出口的雨棚下,眼前的景象比她離開辦公室的時候更嚴重了。
水超過了腳踝。
不是水窪,是一整片流動的水面。渾濁的灰褐色,帶著一股泥土和下水道混合的腥味。路面的標線完全看不見,人行道和馬路之間的邊界消失了。幾個人堵在出口處猶豫,有人已經在脫鞋,把皮鞋塞進公事包裡打赤腳走。一把花傘被風扯得翻了骨架,主人罵了一聲就丟在地上,傘被水流帶走,旋轉著漂向路中間。
若晴撐開自己的透明塑膠傘。踏出去,右腳一沉,水灌進白色帆布鞋,冰涼的觸感從腳底竄上來。她低頭看,水面下十五公分就什麼都看不見了。她踩到什麼硬的東西,可能是路緣石,也可能是被沖過來的什麼碎片。她不知道。也不想在這裡停下來確認。
一輛計程車停在復興北路和南京東路的交叉口,輪胎淹了三分之一,引擎還在轉但哪裡都去不了。駕駛搖下車窗朝外面看了一眼,搖搖頭,把窗戶搖了回去。一個穿西裝的男人涉水經過車頭,公事包頂在頭上當傘,褲腳完全濕透,走路的姿勢因為水的阻力變得很慢、很笨。
若晴沒看他。她低著頭,盯著自己的腳,一步一步往巷子裡走。水在她的小腿之間分開又合攏,發出咕嚕咕嚕的聲響。巷子裡比大路上更深一些,水流也更急,她能感覺到一股橫向的推力在拉她的腿。
南京東路三段到公寓的路程平常走七分鐘。今天走了十五分鐘。
她經過遼寧街口的時候抬頭看了一眼。夜市的鐵皮攤位全拉下了鐵門,鐵門底部已經浸在水裡,表面浮著一層油膩膩的薄膜。只有巷口轉角的一家鹹酥雞還亮著燈,老闆站在墊高了二十公分的木板上炸東西,油鍋噼啪響,跟雨聲攪在一起。玻璃櫃裡的食材只剩底下一層了。老闆看到她經過,喊了一句:「妹仔,要不要帶一包?今天收攤就不來了啦。」
她搖了搖手,繼續走。
後來她會想起這個畫面。鹹酥雞攤的黃色燈泡、油鍋上方的白色蒸氣、老闆的塑膠圍裙。那是她最後一次看到遼寧夜市正常營業的樣子。
公寓一樓大廳的地磚上已經有水了。
不多。從大門底下的縫滲進來的,沿著門檻形成一條細細的水線,慢慢往樓梯方向蔓延。地磚是那種八零年代的米白色方格磚,上面的水把灰塵化開,形成一片一片灰色的水漬。
管理員阿國蹲在門口,正把沙包一袋一袋壘在門檻外側。不是買的那種標準沙包。他用黑色垃圾袋裝了土,再用束線帶紮緊,大小跟枕頭差不多。
「阿國哥。」若晴在門口甩了甩傘上的水。
他抬頭。額頭上全是汗和雨水混在一起的水珠,深色的polo衫濕了大半。五十幾歲的臉,線條很深,顴骨高,下顎寬,像是被什麼鈍器的工具刻過的。「五樓的林小姐。回來啦。」
「需要幫忙嗎?」
「不用,快好了。」他站起來,拍了拍手上的泥,身體挺直的動作帶著一種慣性的俐落,不像這個年紀久坐的人該有的。「妳那個樓層沒事。這個雨再下一天,頂多淹到門口,不會進樓梯間。排水溝的洩水孔我剛檢查過了,還通。」
她看了看他壘沙包的方式。底層錯縫、上層壓實、兩端收窄形成弧度,像一道小型堤防。不是隨便堆的。每一袋之間的接合處都被他用手壓實了,沒有明顯的縫隙。
「你以前做過這個?」她問。
阿國愣了一下,然後咧嘴笑了,露出被菸薰黃的牙齒。「當兵的時候。工兵營,專門蓋這種東西。那時候每年颱風季都要出去支援,河堤、沙包、橋樑搶修,什麼都幹過。」他踢了踢腳邊的沙包,「二十年前的事了。沒想到還用得上。」
「謝謝你,阿國哥。」若晴說。
他擺了擺手。「份內的。妳趕快上去換衣服吧,別感冒了。」
若晴點點頭,走向樓梯間。沒有電梯,這棟四十年的老公寓從來沒裝過。五層樓,她每天爬兩趟,小腿肌肉因此比同齡的辦公室女生結實一些。樓梯間的日光燈管閃了兩下,發出嗡嗡的電流聲。她踩著溼拖鞋往上爬,每一步都在磨石子地板上留下水印。
三樓轉角的時候,她聽到門裡面有電視的聲音。新聞台。主播正在報台北市各區的即時雨量:「信義區時雨量達78毫米,已逼近排水設計上限。北投區山區土石流黃色警戒。」播報災難時特有的、壓低但急促的語調,透過木門悶悶地傳出來。
她沒有停下來聽。三樓住的是方太太,六十八歲,獨居。若晴搬進來三年了,跟她的交集僅限於在樓梯間遇到時互相點頭,偶爾收到她放在門口的自己包的粽子。
鑰匙轉開門鎖的聲音還沒落地,柚子就從鞋櫃後面竄出來了。
三歲的橘貓,胖得像顆小南瓜,鬍鬚往兩邊撐開,琥珀色的眼珠盯著她轉了一圈,然後鼻子湊到她溼透的鞋子上嗅了好幾下,嫌惡地退開,甩了甩頭。
「我也覺得臭。」若晴蹲下來摸了摸牠的頭。柚子用額頭蹭了蹭她的手指,喉嚨裡開始發出呼嚕聲。
她把溼鞋子脫在門口,換上拖鞋,赤腳踩在乾燥的木紋地板上的感覺讓她整個人鬆了一口氣。頂樓加蓋的套房不大,十二坪,一個人住剛好。客廳兼臥室,開放式小廚房,一間浴室。窗戶朝北,平常能看到遠處松山機場的跑道,飛機起降的時候她會放下手上的東西看幾秒。今天窗外什麼都看不見。灰白色的雨幕掛在玻璃外面,像一塊不透明的布。
她先餵柚子。倒了半碗飼料,換了清水。柚子埋頭吃,尾巴翹得老高,完全不在意外面天崩地裂。
然後她去浴室沖了個熱水澡。水壓正常。瓦斯正常。蓮蓬頭噴出來的熱水打在肩膀上,她閉著眼站了兩分鐘,讓身體從溼冷的狀態慢慢回溫。洗完出來,擦乾頭髮,換上乾淨的T恤和短褲。
回到廚房,她打開冰箱門,站在那裡看了看裡面。
半盒昨天剩的滷味,鴨血和豆干。一瓶鮮奶,還有三天過期。四顆雞蛋。半包吐司,邊邊有一點點硬了。一罐泡菜。冷凍庫裡有兩盒微波白飯和一包冷凍水餃。
她關上冰箱門,拿出手機,打開備忘錄,新建了一個清單。標題打了兩個字:「庫存」。
「食物:
- 滷味 × 1(明天前吃完)
- 鮮奶 × 1(三天內)
- 雞蛋 × 4
- 吐司 × 半包
- 微波白飯 × 2
- 冷凍水餃 × 約20顆
- 泡菜 × 1罐
- 柚子飼料 × 大半袋(約兩週份)
飲用水:
- 開過的一箱:16瓶 × 580ml = 9.28L
- 未拆的一箱:24瓶 × 580ml = 13.92L
- 合計:約23公升
電力:
- 手機 63%
- 行動電源 × 1(10000mAh,大約充兩次半)
- 頂加沒有備用發電設備」
她盯著這些數字看了一會兒,在飲用水旁邊備註:「一個人喝,省著用,大約十天。」
她不知道為什麼要算這個。明天超商就補貨了。只是習慣。做PM久了,看到任何資源就會自動估算burn rate。公司的伺服器成本是這樣算的,手機電量是這樣算的,冰箱裡的食物也是這樣算的。把東西變成數字,數字變成時間線,時間線上標出里程碑和風險點。
世界只要能列成清單,就沒有那麼可怕。
晚上九點,她站在頂樓。
嚴格來說是頂樓加蓋鐵皮屋外面的小平台,大概兩坪大,堆了幾盆已經死掉的多肉植物和一把壞掉的折疊椅。鐵皮屋簷伸出來大約一公尺,她站在簷下不會被直接淋到,但風每隔幾秒就把雨斜著吹進來,打在她的手臂上,涼的。小水珠在她的皮膚上滑下來,留下一道道冷的痕跡。
她往下看。
巷子裡的水比她回來的時候又漲了。路燈還亮著,橘黃色的光映在水面上,晃動、碎裂、又聚攏,讓整條巷子看起來像一條泥濘的淺河。水大概到成人膝蓋的高度,比傍晚又深了二十幾公分。對面騎樓裡停著的摩托車,水已經淹過輪框,漫到踏板上方。右邊巷口那輛白色小貨車歪歪地靠在牆上,車門開著,駕駛座空的,水從門檻灌進車裡。
遠處的南京東路方向,車燈的光暈在雨幕裡暈開成一團一團的橘色,分不清是在移動還是停著。偶爾有喇叭聲傳過來,尖銳但短促,像是按了一下就放棄了。
她抬頭。沒有天空。只有一層厚重的、不透光的灰,壓在城市上方,低得像要塌下來。閃電在遠處的雲層裡面跳,不是劈下來的那種,是在雲裡橫向滾動的,把整片天空照成一瞬間的慘白,然後熄滅。雷聲跟在後面,從遠處滾過來,經過頭頂,又滾向另一邊,像巨人在屋頂上拖著家具走。
雨聲是唯一的底色。不是嘩啦嘩啦那種,是一種厚實的、連續的轟鳴,密到聽不出單獨的雨滴聲,只有一整面水牆從天上倒下來的重量。站在這裡久了,耳朵會自動把它過濾成背景,像住在高速公路旁邊的人聽不到車聲一樣。然後你會開始聽到裡面藏著的其他聲音。水流過排水管的咕嚕聲。鐵皮屋頂被風掀起又落下的喀噹聲。遠處不知道哪裡傳來的金屬碰撞聲。
柚子不知道什麼時候跟出來了,趴在鐵皮屋的門檻上,耳朵不停轉動,瞳孔豎起來,盯著黑暗裡的某個方向。牠的鬍鬚在抖。
若晴蹲下來把牠撈起來,抱在懷裡。柚子掙扎了一下就不動了,把臉埋進她的手肘彎。牠的心跳比平常快。
她覺得自己的也是。
只是一場大雨。台北每年都有幾場大雨。2001年納莉颱風的時候她才三歲,在高雄,什麼記憶都沒有。後來看新聞回顧,知道台北捷運板南線整條淹了,地下停車場變成水池,忠孝東路的水深到腰。但那是二十六年前的事。後來台北花了幾百億改善排水系統,加裝抽水站。應該比以前好多了吧。
這次也會是很遠的事。等明天新聞回顧的時候,她會坐在沙發上,柚子趴在腿上,看著螢幕說「好險喔」。頂多後天。
她抱著柚子回到屋裡,關上門,把門縫底下塞了一條舊毛巾防風。柚子從她懷裡跳下去,跑到床上的位置蜷好,舔了舔自己的前掌。
手機螢幕亮了。
22:14。中央氣象署推播通知。紅色警報的那種紅,在暗暗的房間裡格外刺眼。
「超大豪雨特報:台北市、新北市、基隆市。預估未來24小時累積雨量可能超過500毫米。請民眾嚴防坍方、土石流、低窪地區淹水。非必要勿外出。」
五百毫米。她想了一下。台北一整年的降雨量大概兩千多毫米。一天下掉四分之一。
這個數字有點離譜。
她用拇指在通知上停了一秒。然後往左滑。通知消失了。
打開鬧鐘。明天上午八點。看了一眼,改成八點半。反正線上同步,晚一點也沒差。設好了。手機放到枕頭旁邊。充電線插上。電量63%。
她躺下來,關了燈。天花板是黑的,但窗簾邊緣透進來的路燈光勾出一條細線。柚子的呼嚕聲在黑暗中響起來,低沉、規律,像一台小型引擎。窗外的雨聲覆蓋在上面,更大、更密、更重。兩層聲音疊在一起,她分不清哪個是安慰,哪個是警告。
那是她最後一個正常的夜晚。她只是還不知道。
























