[{"id":"after_hours","title":"After Hours","subtitle":"The mall is closed. One store is still lit.","coverImage":"after_hours_01_hold.webp","number":"01","startNodeId":"AH01","intro":"The shutters are coming down.\nFind your way out.","transitionSfx":["footsteps_a.m4a","footsteps_b.m4a"],"packProductIds":[],"isFree":true,"productId":"hf.episode.after_hours","nodes":[{"id":"AH01","text":"The shutters are coming down.","type":"choice","holdImage":"after_hours_01_motion_20261005_hold.webp","video":"after_hours_01_motion_20261005.mp4","sfx":"after_hours_01_sfx.m4a","choices":[{"id":"atrium","label":"Enter atrium","nextNodeId":"AH02","isFail":false},{"id":"staff","label":"Take staff door","nextNodeId":"AH03","isFail":false}],"puzzle":null,"ambientLoop":"mall_hum.wav","atmosphere":["dust","flicker"]},{"id":"AH02","text":"One store is still lit.","type":"choice","holdImage":"ah02_motion_20261005_hold.webp","video":"ah02_motion_20261005.mp4","choices":[{"id":"store","label":"Walk to the lit store","nextNodeId":"AH04","isFail":false},{"id":"directory","label":"Check directory","nextNodeId":"AH05","isFail":false}],"puzzle":null,"ambientLoop":"mall_hum.wav","ambientDetail":"fountain_loop.wav","atmosphere":["dust"]},{"id":"AH03","text":"One keypad is unlocked.","type":"puzzle","holdImage":"after_hours_03_hold.webp","video":null,"choices":null,"puzzle":{"type":"hotspot","nextNodeId":"AH11","hint":"Look for the open lock.","correctId":"unlocked","rects":[{"id":"locked","label":"LOCKED","symbol":"lock.fill","x":0.2,"y":0.43,"width":0.22,"height":0.12},{"id":"unlocked","label":"UNLOCKED","symbol":"lock.open","x":0.8,"y":0.43,"width":0.22,"height":0.12,"highlighted":true}],"failNodeId":"AH03F","solveSfx":"keypad_accept.m4a","failSfx":"keypad_denied.m4a"},"ambientLoop":"mall_hum.wav","ambientDetail":"neon_buzz_loop.wav","atmosphere":["flicker"]},{"id":"AH03F","text":"Storage. No way through.","type":"retry","holdImage":"after_hours_03f_hold.webp","video":null,"sfx":"door_slam_behind.m4a","choices":null,"puzzle":null,"ambientLoop":"mall_hum.wav","ambientDetail":"neon_buzz_loop.wav","atmosphere":["flicker","dust"],"returnNodeId":"AH01","holdDuration":1.2},{"id":"AH04","text":"Match the receipt to the shutter.","type":"puzzle","holdImage":"after_hours_04_hold.webp","video":null,"choices":null,"puzzle":{"type":"drag","nextNodeId":"AH12","hint":"The receipt says 04. Drag it to shutter 04.","correctId":"04","rects":[{"id":"02","label":"02","symbol":"rectangle.split.3x1","x":0.3,"y":0.36,"width":0.26,"height":0.13},{"id":"04","label":"04","symbol":"rectangle.split.3x1","x":0.67,"y":0.36,"width":0.26,"height":0.13}],"item":"SHUTTER 04","itemSfx":"receipt_pickup.m4a","solveSfx":"shutter_open.m4a"},"ambientLoop":"mall_hum.wav","atmosphere":["dust"]},{"id":"AH05","text":"The directory is wrong.","type":"puzzle","holdImage":"after_hours_05_hold.webp","video":null,"choices":null,"puzzle":{"type":"spotError","nextNodeId":"AH06","hint":"Compare the arrow. It used to point up.","correctId":"arrow","rects":[{"id":"parking","label":"Parking symbol","symbol":"parkingsign","x":0.27,"y":0.4,"width":0.2,"height":0.16,"beforeSymbol":"parkingsign"},{"id":"arrow","label":"Changed direction arrow","symbol":"arrow.right","x":0.5,"y":0.4,"width":0.2,"height":0.16,"beforeSymbol":"arrow.up"},{"id":"exit","label":"Exit symbol","symbol":"door.left.hand.open","x":0.73,"y":0.4,"width":0.2,"height":0.16,"beforeSymbol":"door.left.hand.open"}],"solveSfx":"beep_confirm.m4a","panelTitle":"DIRECTORY","comparisonCaption":"Which direction changed?"},"ambientLoop":"mall_hum.wav","atmosphere":["flicker"]},{"id":"AH06","text":"Someone left in a hurry.","type":"choice","holdImage":"after_hours_06_hold.webp","video":null,"choices":[{"id":"kitchen","label":"Kitchen","nextNodeId":"AH07","isFail":false},{"id":"escalator","label":"Escalator","nextNodeId":"AH08","isFail":false}],"puzzle":null,"ambientLoop":"mall_hum.wav","ambientDetail":"fridge_loop.wav","atmosphere":["dust"],"note":"A red keycard lies beside a tray. Someone wrote P2 on it. You take it.","noteTitle":"KEYCARD · P2"},{"id":"AH07","text":"Find the camera that is dark.","type":"puzzle","holdImage":"after_hours_07_hold.webp","video":null,"choices":null,"puzzle":{"type":"hotspot","nextNodeId":"AH16","hint":"The dark camera has no recording light.","correctId":"dark","rects":[{"id":"live","label":"● REC","symbol":"video.fill","x":0.27,"y":0.3,"width":0.22,"height":0.12},{"id":"dark","label":"○","symbol":"video.slash","x":0.72,"y":0.3,"width":0.22,"height":0.12}],"solveSfx":"beep_confirm.m4a"},"ambientLoop":"mall_hum.wav","ambientDetail":"fridge_loop.wav","atmosphere":["flicker"]},{"id":"AH08","text":"The escalator has stopped.","type":"choice","holdImage":"after_hours_08_hold.webp","video":null,"choices":[{"id":"up","label":"Up to the cinema level","nextNodeId":"AH15","isFail":false},{"id":"back","label":"Back","nextNodeId":"AH06","isFail":false}],"puzzle":null,"ambientLoop":"mall_hum.wav","atmosphere":["dust"]},{"id":"AH09","text":"A door. A red card reader.","type":"choice","holdImage":"after_hours_09_hold.webp","video":null,"choices":[{"id":"push","label":"Push the door","nextNodeId":"AH10A","isFail":false,"sfx":"door_push.m4a"},{"id":"card","label":"Use the red keycard on the slot","nextNodeId":"AH10B","isFail":false,"sfx":"card_accept.m4a"}],"puzzle":null,"ambientLoop":"parking_loop.wav","atmosphere":["flicker"]},{"id":"AH11","text":"Eight screens. One store is still lit.","type":"puzzle","holdImage":"after_hours_11_hold.webp","video":null,"choices":null,"puzzle":{"type":"hotspot","nextNodeId":"AH04","hint":"The lit store is behind shutter 04.","correctId":"cam04","rects":[{"id":"cam02","label":"CAM 02","symbol":"video","x":0.22,"y":0.5,"width":0.24,"height":0.11,"detail":"Shutter closed"},{"id":"cam04","label":"CAM 04","symbol":"video","x":0.5,"y":0.5,"width":0.24,"height":0.11,"detail":"Warm light"},{"id":"cam07","label":"CAM 07","symbol":"video","x":0.78,"y":0.5,"width":0.24,"height":0.11,"detail":"Shutter closed"}],"failNodeId":null,"item":null,"solveSfx":"beep_confirm.m4a"},"ambientLoop":"mall_hum.wav","ambientDetail":"neon_buzz_loop.wav","atmosphere":["flicker"],"returnNodeId":null,"note":"One monitor shows warm light spilling under shutter 04."},{"id":"AH12","text":"Behind shutter 04. Someone packed in a hurry.","type":"choice","holdImage":"after_hours_12_hold.webp","video":null,"choices":[{"id":"corridor","label":"Take the back corridor","nextNodeId":"AH13","isFail":false},{"id":"receipt","label":"Read the back of the receipt","nextNodeId":"AH18","isFail":false,"excludesFlags":["receipt_investigated"]},{"id":"wait","label":"Wait here for morning","nextNodeId":"AH17","isFail":false}],"puzzle":null,"ambientLoop":"mall_hum.wav","atmosphere":["dust"],"returnNodeId":null,"note":"A staff coat hangs by the door. Waiting means trusting whoever returns for it."},{"id":"AH13","text":"The service corridor. One tube still works.","type":"choice","holdImage":"ah13_motion_20261005_hold.webp","video":"ah13_motion_20261005.mp4","choices":[{"id":"dock","label":"Loading dock","nextNodeId":"AH14","isFail":false},{"id":"foodcourt","label":"Food court door","nextNodeId":"AH06","isFail":false,"sfx":"door_push.m4a"}],"puzzle":null,"ambientLoop":"mall_hum.wav","ambientDetail":"neon_buzz_loop.wav","atmosphere":["flicker","dust"],"returnNodeId":null},{"id":"AH14","text":"The loading dock. The big door will not move.","type":"retry","holdImage":"after_hours_14_hold.webp","video":null,"sfx":"shutter_rattle_locked.m4a","choices":null,"puzzle":null,"ambientLoop":"parking_loop.wav","atmosphere":["dust"],"returnNodeId":"AH13","holdDuration":1.2},{"id":"AH15","text":"The cinema level. A film is still running somewhere.","type":"choice","holdImage":"ah15_motion_20261005_hold.webp","video":"ah15_motion_20261005.mp4","choices":[{"id":"lift","label":"Take the lift","nextNodeId":"AH16","isFail":false},{"id":"stairs","label":"Fire stairs down to parking","nextNodeId":"AH09","isFail":false,"sfx":"door_push.m4a"}],"puzzle":null,"ambientLoop":"mall_hum.wav","ambientDetail":"cinema_muffled_loop.wav","atmosphere":["dust"],"returnNodeId":null,"note":"The film is the same empty food court you just crossed. The tray is still there."},{"id":"AH16","text":"The lift is waiting. Which floor?","type":"puzzle","holdImage":"after_hours_16_hold.webp","video":null,"choices":null,"puzzle":{"type":"hotspot","nextNodeId":"AH09","hint":"The keycard said P2.","correctId":"p2","rects":[{"id":"g","label":"G","symbol":"circle","x":0.5,"y":0.34,"width":0.2,"height":0.09},{"id":"p1","label":"P1","symbol":"circle","x":0.5,"y":0.45,"width":0.2,"height":0.09},{"id":"p2","label":"P2","symbol":"circle","x":0.5,"y":0.56,"width":0.2,"height":0.09}],"failNodeId":null,"item":null,"solveSfx":"lift_ding.m4a","failSfx":"keypad_denied.m4a"},"ambientLoop":"mall_hum.wav","atmosphere":["flicker"],"returnNodeId":null},{"id":"AH17","text":"Dawn. A cleaner lifts the shutter. The staff coat is gone.","type":"end","holdImage":"ah17_motion_20261005_hold.webp","video":"ah17_motion_20261005.mp4","sfx":"shutter_open.m4a","choices":null,"puzzle":null,"ambientLoop":"mall_hum.wav","atmosphere":["dust"],"returnNodeId":null,"endingTitle":"ENDING C · THE MORNING SHIFT","note":"You leave with the morning shift. The cleaner slips on the staff coat. Behind her, the receipt printer starts again. The store light has not gone out."},{"id":"AH10A","text":"Outside. The last bus is gone.","type":"end","holdImage":"after_hours_10a_hold.webp","video":null,"sfx":"car_away.m4a","choices":null,"puzzle":null,"ambientLoop":"rain_night_loop.wav","atmosphere":["rain"],"endingTitle":"ENDING A · THE LAST BUS"},{"id":"AH10B","text":"Across the street, the lights are still on.","type":"end","holdImage":"after_hours_10b_hold.webp","video":null,"choices":null,"puzzle":null,"ambientLoop":"rain_night_loop.wav","ambientDetail":"street_night_loop.wav","atmosphere":["rain"],"endingTitle":"ENDING B · ACROSS THE STREET","note":"Your red card opens the door from this side too. In the reflection, shutter 04 is rising. You have a way back, but not yet an explanation."},{"id":"AH18","text":"The receipt is printed over a staff time sheet. The initials E.V. appear beside four closing shifts, all on the same date.","type":"choice","holdImage":"ah_receipt_20260930_hold.webp","ambientLoop":"mall_hum.wav","atmosphere":["dust"],"note":"On the reverse: “If the printer starts before the cleaner arrives, do not leave her alone in the shop.”","choices":[{"id":"compare","label":"Compare the entries","nextNodeId":"AH19","isFail":false}],"holdDuration":3,"noteTitle":"RECEIPT · REVERSE"},{"id":"AH19","text":"The receipt and time sheet share a date. Compare all three surviving entries. Which one puts someone in the shop after closing?","type":"puzzle","holdImage":"ah_receipt_20260930_hold.webp","ambientLoop":"mall_hum.wav","atmosphere":["dust"],"note":"The shutter log records closing at 22:00. The next cleaner is due at 06:00.","choices":null,"puzzle":{"type":"hotspot","panelTitle":"RECEIPT","nextNodeId":"AH20","hint":"Compare the closing time with each entry. A sale amount is different from hours worked.","correctId":"shift","solveSfx":"beep_confirm.m4a","rects":[{"id":"sale","label":"ENTRY A","symbol":"bag","detail":"18:40","x":0.22,"y":0.4,"width":0.24,"height":0.16,"inspection":"18:40 · TILL 04\nItem: £12.00\nPaid: £12.00\nChange: £0.00\n\nThe sale is stamped COMPLETE. No staff initials appear.","rejection":"This is an ordinary purchase made before the shutters closed."},{"id":"shift","label":"ENTRY B","symbol":"clock","detail":"23:14","x":0.5,"y":0.4,"width":0.24,"height":0.16,"inspection":"23:14 · E.V.\nHours carried forward: 04:00\nRelief signature: —\nAmount: —\n\nThe same closing date is impressed through four layers of paper."},{"id":"refund","label":"ENTRY C","symbol":"arrow.uturn.backward","detail":"19:02","x":0.78,"y":0.4,"width":0.24,"height":0.16,"inspection":"19:02 · TILL 04\nReturned: £12.00\nOriginal sale: 18:40\nBalance: £0.00\n\nThe refund reverses entry A. Both happened before closing.","rejection":"This cancels the earlier purchase. It does not explain the activity at 23:14."}],"investigationPrompt":"Follow the entry that explains why someone was still here when the shutters were down."},"holdDuration":3,"noteTitle":"STAFF TIME SHEET"},{"id":"AH20","text":"On the security feed, the staff coat moves from its hook to the cleaner’s trolley. The time stamp is tomorrow morning.","type":"choice","holdImage":"ah20_motion_20261005_hold.webp","ambientLoop":"mall_hum.wav","ambientDetail":"neon_buzz_loop.wav","atmosphere":["flicker"],"note":"The receipt printer starts. The trolley stops. Then the feed returns to the coat on the hook. The shop is passing its closing shift to whoever comes next.","choices":[{"id":"warning","label":"Decide what to leave for the cleaner","nextNodeId":"AH21","isFail":false}],"setFlags":["knows_shift_cycle"],"holdDuration":3,"video":"ah20_motion_20261005.mp4"},{"id":"AH21","text":"There is a pencil in the coat pocket. The back of the receipt has room for one clear warning.","type":"choice","holdImage":"ah_warning_20260930_hold.webp","ambientLoop":"mall_hum.wav","atmosphere":["dust"],"note":"You can leave the warning where the cleaner will find it, or keep the receipt as proof and get yourself out.","choices":[{"id":"warn","label":"Write the warning and leave it in the coat","nextNodeId":"AH22","isFail":false,"setFlags":["warned_shift"],"clearFlags":["pocketed_receipt"],"note":"I warned the cleaner: keep the staff door open and switch off the printer before entering."},{"id":"keep_proof","label":"Keep the receipt and leave no warning","nextNodeId":"AH22","isFail":false,"setFlags":["pocketed_receipt"],"clearFlags":["warned_shift"],"note":"I kept the receipt as proof. I left no warning for the cleaner."}],"holdDuration":3,"noteTitle":"A WARNING FOR MORNING"},{"id":"AH22","text":"The printer falls quiet. A service trolley rattles somewhere beyond the shutters.","type":"choice","holdImage":"ah_warning_20260930_hold.webp","ambientLoop":"mall_hum.wav","atmosphere":["dust"],"note":"You have made your choice about the next shift. Now you must decide whether to be here when it arrives.","choices":[{"id":"wait","label":"Stay until the cleaner arrives","nextNodeId":"AH17","isFail":false,"routes":[{"requiresFlags":["warned_shift"],"nextNodeId":"AH23"}]},{"id":"corridor","label":"Take the service corridor out","nextNodeId":"AH13","isFail":false}],"setFlags":["receipt_investigated"],"holdDuration":3},{"id":"AH23","text":"At dawn, the cleaner holds your warning up to the glass. She has wedged the staff door open. The printer begins to chatter.","type":"choice","holdImage":"after_hours_17_hold.webp","ambientLoop":"mall_hum.wav","atmosphere":["dust"],"note":"She points to the shutter release on your side. Helping her means staying long enough to stop the shop handing its shift to another person.","choices":[{"id":"help","label":"Hold the shutter while she cuts the power","nextNodeId":"AH24","isFail":false,"setFlags":["helped_cleaner"],"note":"I stayed to hold the shutter. The cleaner switched off the printer before entering."},{"id":"leave","label":"Leave through the open staff door","nextNodeId":"AH17","isFail":false}],"holdDuration":3},{"id":"AH24","text":"The printer stops halfway through a receipt. For once, no name is printed beneath E.V.’s.","type":"end","holdImage":"ah_shutter_20260930_hold.webp","ambientLoop":"mall_hum.wav","atmosphere":["dust"],"note":"You and the cleaner leave together. She pins the unfinished receipt outside shutter 04. At opening time, the store is still dark.","choices":[],"endingTitle":"ENDING D · EARLY RELIEF","holdDuration":3}]},{"id":"night_desk","title":"Night Desk","subtitle":"2:14 a.m. A guest wants a key that is not on the board.","coverImage":"night_desk_hold.webp","number":"02","startNodeId":"ND01","intro":"2:14 a.m. You are on the night desk.\nSomeone wants a key that is not on the board.","transitionSfx":["footsteps_a.m4a","footsteps_b.m4a"],"packProductIds":["hf.pack.volume1"],"isFree":false,"productId":"hf.episode.night_desk","nodes":[{"id":"ND01","text":"2:14 a.m. The bell rings. A note on the counter says Room 14.","type":"choice","holdImage":"nd01_motion_20261005_hold.webp","video":"nd01_motion_20261005.mp4","sfx":"desk_bell.m4a","ambientDetail":"clock_tick_loop.wav","atmosphere":["dust"],"note":"The handwriting on the note is yours.","choices":[{"id":"board","label":"Check the key board","nextNodeId":"ND02","isFail":false},{"id":"register","label":"Read the guest register","nextNodeId":"ND03","isFail":false}],"puzzle":null,"ambientLoop":"mall_hum.wav","returnNodeId":null},{"id":"ND02","text":"Every key is on its hook but one.","type":"puzzle","holdImage":"night_desk_02_hold.webp","video":null,"ambientDetail":"clock_tick_loop.wav","atmosphere":["dust"],"puzzle":{"type":"hotspot","nextNodeId":"ND04","hint":"Hook 14 is the empty one.","correctId":"hook14","rects":[{"id":"hook12","label":"HOOK 12","symbol":"key.fill","x":0.22,"y":0.42,"width":0.24,"height":0.1,"detail":"Key present"},{"id":"hook14","label":"HOOK 14","symbol":"circle.dotted","x":0.5,"y":0.42,"width":0.24,"height":0.1,"detail":"Empty hook"},{"id":"hook15","label":"HOOK 15","symbol":"key.fill","x":0.78,"y":0.42,"width":0.24,"height":0.1,"detail":"Key present"}],"failNodeId":null,"item":null,"solveSfx":"keys_pickup.m4a"},"choices":null,"ambientLoop":"mall_hum.wav","returnNodeId":null},{"id":"ND03","text":"The register. One guest never checked out.","type":"puzzle","holdImage":"night_desk_03_hold.webp","video":null,"ambientDetail":"clock_tick_loop.wav","atmosphere":["dust"],"puzzle":{"type":"hotspot","nextNodeId":"ND04","hint":"Room 14 has no check-out time.","correctId":"room14","rects":[{"id":"room11","label":"ROOM 11","symbol":"book","x":0.22,"y":0.5,"width":0.24,"height":0.1,"detail":"Out · 00:42"},{"id":"room14","label":"ROOM 14","symbol":"book","x":0.5,"y":0.5,"width":0.24,"height":0.1,"detail":"Out · —"},{"id":"room16","label":"ROOM 16","symbol":"book","x":0.78,"y":0.5,"width":0.24,"height":0.1,"detail":"Out · 01:18"}],"failNodeId":null,"item":null},"choices":null,"ambientLoop":"mall_hum.wav","returnNodeId":null},{"id":"ND04","text":"The monitor clock is two minutes behind the desk clock.","type":"choice","holdImage":"night_desk_04_hold.webp","video":null,"ambientDetail":"neon_buzz_loop.wav","atmosphere":["flicker"],"choices":[{"id":"masterkey","label":"Take the master key","nextNodeId":"ND05","isFail":false,"sfx":"keys_pickup.m4a"},{"id":"call","label":"Call the manager","nextNodeId":"ND04F","isFail":false},{"id":"shift_log","label":"Open the previous shift log","nextNodeId":"ND14","isFail":false,"excludesFlags":["log_finished"]}],"puzzle":null,"ambientLoop":"mall_hum.wav","returnNodeId":null,"note":"At 2:12, the lobby camera shows your hand leaving the note. It is 2:14 now."},{"id":"ND04F","text":"The line is dead. Something is breathing on it.","type":"retry","holdImage":"night_desk_04_hold.webp","video":null,"sfx":"phone_dead.m4a","ambientDetail":"neon_buzz_loop.wav","atmosphere":["flicker"],"returnNodeId":"ND04","choices":null,"puzzle":null,"ambientLoop":"mall_hum.wav","holdDuration":1.2},{"id":"ND05","text":"The stairs. The emergency light is the only colour.","type":"choice","holdImage":"night_desk_05_hold.webp","video":null,"atmosphere":["dust"],"choices":[{"id":"up","label":"Up to the second floor","nextNodeId":"ND06","isFail":false},{"id":"back","label":"Back to the desk","nextNodeId":"ND01","isFail":false}],"puzzle":null,"ambientLoop":"mall_hum.wav","returnNodeId":null,"note":"The master key is warm. Its tag says STAFF ONLY."},{"id":"ND06","text":"The second floor. One door has no number.","type":"choice","holdImage":"nd06_motion_20261005_hold.webp","video":"nd06_motion_20261005.mp4","ambientDetail":"fridge_loop.wav","atmosphere":["dust"],"choices":[{"id":"knock","label":"Knock on the door","nextNodeId":"ND06F","isFail":false},{"id":"ice","label":"Check the ice machine","nextNodeId":"ND07","isFail":false}],"puzzle":null,"ambientLoop":"mall_hum.wav","returnNodeId":null},{"id":"ND06F","text":"No answer. Then something knocks back.","type":"retry","holdImage":"night_desk_08_hold.webp","video":null,"sfx":"knock_back.m4a","returnNodeId":"ND06","choices":null,"puzzle":null,"ambientLoop":"mall_hum.wav","holdDuration":1.2},{"id":"ND07","text":"Something is buried in the ice.","type":"puzzle","holdImage":"nd_ice_20260930_hold.webp","video":null,"ambientDetail":"fridge_loop.wav","atmosphere":["flicker"],"puzzle":{"type":"hotspot","nextNodeId":"ND08","hint":"Look for the brass.","correctId":"key","rects":[{"id":"scoop","label":"SCOOP","symbol":"hand.raised","x":0.22,"y":0.55,"width":0.24,"height":0.1},{"id":"key","label":"KEY","symbol":"key.fill","x":0.5,"y":0.55,"width":0.24,"height":0.1},{"id":"coin","label":"COIN","symbol":"circle","x":0.78,"y":0.55,"width":0.24,"height":0.1}],"failNodeId":null,"item":null,"solveSfx":"ice_key_pickup.m4a"},"choices":null,"ambientLoop":"mall_hum.wav","returnNodeId":null,"note":"The brass key is cold. Its tag matches the missing hook: 14."},{"id":"ND08","text":"Room 14. The number has been taken off.","type":"puzzle","holdImage":"nd08_motion_20261005_hold.webp","video":"nd08_motion_20261005.mp4","atmosphere":["dust"],"puzzle":{"type":"drag","nextNodeId":"ND19","hint":"The key goes in the lock, not the peephole.","correctId":"lock","rects":[{"id":"peephole","label":"PEEPHOLE","symbol":"eye","x":0.72,"y":0.34,"width":0.26,"height":0.12},{"id":"lock","label":"LOCK","symbol":"lock","x":0.28,"y":0.46,"width":0.26,"height":0.12}],"failNodeId":null,"item":"KEY 14","itemSymbol":"key.fill","solveSfx":"key_unlock.m4a"},"choices":null,"ambientLoop":"mall_hum.wav","returnNodeId":null},{"id":"ND09","text":"Room 14. Someone has only just left.","type":"choice","holdImage":"nd09_motion_20261005_hold.webp","video":"nd09_motion_20261005.mp4","ambientLoop":"rain_night_loop.wav","ambientDetail":"tv_static_loop.wav","atmosphere":["dust"],"choices":[{"id":"wardrobe","label":"Open the wardrobe","nextNodeId":"ND10","isFail":false},{"id":"window","label":"Look out of the window","nextNodeId":"ND11","isFail":false},{"id":"bed","label":"Lie down","nextNodeId":"ND13","isFail":false}],"puzzle":null,"returnNodeId":null},{"id":"ND10","text":"A photograph of the lobby. The desk is empty in it too.","type":"choice","holdImage":"night_desk_10_hold.webp","video":null,"ambientLoop":"rain_night_loop.wav","ambientDetail":"tv_static_loop.wav","atmosphere":["dust"],"choices":[{"id":"take","label":"Take it back to the desk","nextNodeId":"ND21","isFail":false},{"id":"leave","label":"Put it back","nextNodeId":"ND09","isFail":false}],"puzzle":null,"returnNodeId":null,"note":"On the back: “Mara. Last shift.” The photograph is dated tomorrow. Your note waits on the counter in the picture.","noteTitle":"PHOTOGRAPH · REVERSE"},{"id":"ND11","text":"A taxi pulls away. In its rear window: your empty night-desk jacket.","type":"end","holdImage":"night_desk_11_hold.webp","video":null,"sfx":"car_away.m4a","ambientLoop":"rain_night_loop.wav","ambientDetail":"street_night_loop.wav","atmosphere":["rain"],"endingTitle":"ENDING B · CHECK-OUT","choices":null,"puzzle":null,"returnNodeId":null,"note":"You return downstairs. Key 14 is back on its hook."},{"id":"ND12","text":"Dawn. You leave the photograph under the bell. A shift remains open in the register.","type":"end","holdImage":"night_desk_12_hold.webp","video":null,"sfx":"desk_bell.m4a","ambientDetail":"clock_tick_loop.wav","atmosphere":["dust"],"endingTitle":"ENDING A · THE LAST GUEST","choices":null,"puzzle":null,"ambientLoop":"mall_hum.wav","returnNodeId":null,"note":"You get out, but the bell calls for someone else. Whoever answers next will inherit the unfinished line."},{"id":"ND13","text":"The bed is warm. Room 14 has a guest again.","type":"end","holdImage":"night_desk_13_hold.webp","video":null,"ambientLoop":"rain_night_loop.wav","ambientDetail":"tv_static_loop.wav","endingTitle":"ENDING C · ROOM 14","choices":null,"puzzle":null,"returnNodeId":null,"note":"The door card turns over: NIGHT RELIEF. Downstairs, the bell calls for the next clerk. You have taken the place that was kept warm for you."},{"id":"ND14","text":"Three records are tucked into the shift log. The clock stopped at 2:12. Who was still responsible for the desk?","type":"puzzle","holdImage":"nd_ledger_20260930_hold.webp","ambientDetail":"clock_tick_loop.wav","atmosphere":["dust"],"ambientLoop":"mall_hum.wav","note":"The relief rule: a clerk remains on duty until a second member of staff countersigns the handover.","choices":null,"puzzle":{"type":"hotspot","panelTitle":"SHIFT LOG","nextNodeId":"ND15","hint":"A blank departure on a guest slip is not a missing staff handover. Compare the staff signatures.","correctId":"clerk","solveSfx":"beep_confirm.m4a","rects":[{"id":"guest","label":"ROOM 14","symbol":"bed.double","detail":"Arrival slip","x":0.22,"y":0.4,"width":0.24,"height":0.16,"inspection":"ARRIVAL 01:46\nRoom: 14\nDeparture: —\n\nThe paper is headed GUEST REGISTER. A clerk has initialled the arrival; there is no staff handover box.","rejection":"An open stay tells you a guest has not checked out. It does not identify who still holds the desk."},{"id":"porter","label":"PORTER","symbol":"cart","detail":"Key return","x":0.5,"y":0.4,"width":0.24,"height":0.16,"inspection":"PORTER’S RETURN\nMaster keys returned: 02:06\nShift ended: 02:08\nCountersigned: M.\n\nThe ink and carbon impression agree.","rejection":"The porter returned the keys and received a countersignature. This shift has already ended."},{"id":"clerk","label":"MARA","symbol":"person.crop.rectangle","detail":"Handover","x":0.78,"y":0.4,"width":0.24,"height":0.16,"inspection":"NIGHT DESK · MARA\nStarted: 22:00\nRelief due: 02:12\nRelief signature: —\n\nUnder the blank line, a hard pen indentation: “Still waiting.”"}],"investigationPrompt":"Compare the arrival slip, the porter’s return and the handover. Whose shift is unfinished?"},"holdDuration":3,"noteTitle":"PREVIOUS SHIFT LOG"},{"id":"ND15","text":"Mara’s last entry: “Room 14 is not a room we rent. It is where the night clerk goes when a replacement arrives.”","type":"choice","holdImage":"nd_ledger_20260930_hold.webp","ambientDetail":"clock_tick_loop.wav","atmosphere":["dust"],"ambientLoop":"mall_hum.wav","note":"Below it, the same sentence has been copied in your handwriting. Your first shift is dated tomorrow.","choices":[{"id":"recording","label":"Play the message she left","nextNodeId":"ND16","isFail":false},{"id":"leave_log","label":"Close the book and go upstairs","nextNodeId":"ND05","isFail":false,"note":"I left the shift log unfinished. Mara was a clerk, not a guest."}],"setFlags":["read_ledger"],"holdDuration":3,"noteTitle":"MARA’S LAST ENTRY"},{"id":"ND16","text":"The monitor plays a saved message. “If they tell you I checked out, ask them to show you my signature. Don’t let the bell speak for me.”","type":"choice","holdImage":"nd16_motion_20261005_hold.webp","ambientDetail":"neon_buzz_loop.wav","atmosphere":["flicker"],"ambientLoop":"mall_hum.wav","note":"A carbon sheet lies beside the bell in the empty picture. The image cuts before Mara can say where she left the original.","choices":[{"id":"carbon","label":"Look beneath the last page","nextNodeId":"ND17","isFail":false}],"setFlags":["heard_mara"],"holdDuration":3,"noteTitle":"SAVED MESSAGE","video":"nd16_motion_20261005.mp4"},{"id":"ND17","text":"The carbon sheet is still beneath the log. It carries Mara’s name and the hours the register has erased.","type":"choice","holdImage":"nd_carbon_20260930_hold.webp","ambientDetail":"clock_tick_loop.wav","atmosphere":["dust"],"ambientLoop":"mall_hum.wav","note":"It is the only copy. Keeping it may let you prove she worked here. Destroying it might stop the instructions being passed to anyone else.","choices":[{"id":"preserve","label":"Fold the carbon sheet into your pocket","nextNodeId":"ND18","isFail":false,"setFlags":["kept_record"],"clearFlags":["destroyed_record"],"note":"I kept Mara’s carbon sheet: proof of her missing shift."},{"id":"destroy","label":"Tear the carbon sheet beyond repair","nextNodeId":"ND18","isFail":false,"setFlags":["destroyed_record"],"clearFlags":["kept_record"],"note":"I destroyed the only carbon sheet. Mara’s missing shift can no longer be proved."}],"holdDuration":3,"noteTitle":"THE CARBON COPY"},{"id":"ND18","text":"The desk clock ticks once, then settles back at 2:14. The recorded voice is still speaking after the picture has stopped.","type":"choice","holdImage":"nd_recording_20260930_hold.webp","ambientDetail":"neon_buzz_loop.wav","atmosphere":["flicker"],"ambientLoop":"mall_hum.wav","note":"“A name in the guest book keeps a room occupied. A name in the shift log keeps a person responsible. Make sure they put mine in the right book.”","choices":[{"id":"upstairs","label":"Take the master key upstairs","nextNodeId":"ND05","isFail":false}],"setFlags":["log_finished"],"holdDuration":3,"noteTitle":"MESSAGE TRANSCRIPT"},{"id":"ND19","text":"The key fits. On the inside of the door, a card reads NIGHT RELIEF. The number 14 was covering it.","type":"choice","holdImage":"nd_door_card_20260930_hold.webp","atmosphere":["dust"],"ambientLoop":"mall_hum.wav","note":"You have not found a guest’s room. Someone has been preparing a place for the person behind the desk.","choices":[{"id":"terms","label":"Read the card’s small print","nextNodeId":"ND20","isFail":false},{"id":"enter","label":"Step into the room","nextNodeId":"ND09","isFail":false}],"holdDuration":3,"noteTitle":"ROOM 14 · DOOR CARD"},{"id":"ND20","text":"“Taking rest constitutes acceptance of relief accommodation. The outgoing clerk remains responsible until a signed correction is entered.”","type":"choice","holdImage":"nd_door_card_20260930_hold.webp","atmosphere":["dust"],"ambientLoop":"mall_hum.wav","note":"There is no departure time. A bed can transfer the shift; the register can end it. The bell only calls another person to take over.","choices":[{"id":"inside","label":"Look for a way to correct the record","nextNodeId":"ND09","isFail":false}],"setFlags":["read_contract"],"holdDuration":3,"noteTitle":"RELIEF ACCOMMODATION"},{"id":"ND21","text":"You lay the photograph beside the register. An empty line waits beneath the words OUTGOING NIGHT CLERK.","type":"choice","holdImage":"nd_correction_20260930_hold.webp","ambientDetail":"clock_tick_loop.wav","atmosphere":["dust"],"ambientLoop":"mall_hum.wav","note":"A photograph shows someone was here. It cannot prove whose shift it was. The book needs a name and the hours to go with it.","choices":[{"id":"correct","label":"Use Mara’s carbon sheet to correct the log","nextNodeId":"ND22","isFail":false,"requiresFlags":["kept_record","heard_mara"]},{"id":"unsigned","label":"Leave the photograph and walk away","nextNodeId":"ND12","isFail":false},{"id":"back_room","label":"Take the photograph back upstairs","nextNodeId":"ND09","isFail":false}],"holdDuration":3,"noteTitle":"OUTGOING NIGHT CLERK"},{"id":"ND22","text":"The carbon sheet fits the missing line exactly. You enter Mara’s hours. For the first time, the clock reaches 2:15.","type":"choice","holdImage":"nd_correction_20260930_hold.webp","ambientDetail":"clock_tick_loop.wav","atmosphere":["dust"],"ambientLoop":"mall_hum.wav","note":"There is room beside her signature for yours. The correction can release both clerks. Ringing the bell would instead ask for another replacement.","choices":[{"id":"sign_out","label":"Sign out both names without ringing","nextNodeId":"ND23","isFail":false,"setFlags":["released_mara"],"note":"I corrected Mara’s shift and signed us both out."},{"id":"ring","label":"Ring for someone else to take over","nextNodeId":"ND12","isFail":false,"sfx":"desk_bell.m4a","setFlags":["called_replacement"],"note":"I rang for another replacement instead of ending the shift."}],"holdDuration":3,"noteTitle":"CORRECTION TO THE LOG"},{"id":"ND23","text":"At 2:16, a resignation envelope slides out of the register. Inside are two names: Mara’s and yours.","type":"end","holdImage":"nd23_motion_20261005_hold.webp","ambientDetail":"clock_tick_loop.wav","atmosphere":["dust"],"ambientLoop":"mall_hum.wav","note":"Room 14’s key has no hook now. Outside, a taxi waits with both rear doors open. You leave the bell untouched.","choices":[],"endingTitle":"ENDING D · BOTH NAMES","holdDuration":3,"video":"nd23_motion_20261005.mp4"}]},{"id":"briefing","title":"The Briefing That Wasn’t","subtitle":"Your seat is reserved. Nobody admits arranging the meeting.","coverImage":"briefing_hold.webp","number":"03","packProductIds":["hf.pack.volume1"],"isFree":false,"productId":"hf.episode.briefing","nodes":[{"id":"BF01","text":"The garage is empty. A visitor badge waits on the handle.","type":"choice","holdImage":"bf01_motion_20261005_hold.webp","video":"bf01_motion_20261005.mp4","choices":[{"id":"kiosk","label":"Check the security kiosk","nextNodeId":"BF02","isFail":false,"sfx":null},{"id":"tunnel","label":"Follow the service tunnel","nextNodeId":"BF03","isFail":false,"sfx":null}],"puzzle":null,"ambientLoop":"mall_hum.wav","ambientDetail":"parking_loop.wav","atmosphere":["dust"],"note":"The badge carries a triangle. No name, no company."},{"id":"BF02","text":"One scanner accepts a visitor badge. The others are for staff.","type":"puzzle","holdImage":"briefing_02_hold.webp","video":null,"choices":null,"puzzle":{"type":"hotspot","nextNodeId":"BF03","correctId":"visitor","rects":[{"id":"staff","label":"STAFF","symbol":"lock","x":0.23,"y":0.35,"width":0.25,"height":0.15,"detail":"Employees only"},{"id":"visitor","label":"VISITOR","symbol":"person.crop.rectangle","x":0.5,"y":0.35,"width":0.25,"height":0.15,"detail":"Badge access"},{"id":"delivery","label":"DELIVERY","symbol":"shippingbox","x":0.77,"y":0.35,"width":0.25,"height":0.15,"detail":"Vehicle pass"}],"hint":"Your badge is a visitor pass.","solveSfx":"beep_confirm.m4a","failSfx":"keypad_denied.m4a","failNodeId":"BF02F"},"ambientLoop":"mall_hum.wav","ambientDetail":"parking_loop.wav","atmosphere":["dust"]},{"id":"BF02F","text":"The scanner clicks shut. The visitor lane stays open.","type":"retry","holdImage":"briefing_02_hold.webp","video":null,"choices":null,"puzzle":null,"ambientLoop":"mall_hum.wav","ambientDetail":"parking_loop.wav","atmosphere":["dust"],"returnNodeId":"BF02","sfx":"keypad_denied.m4a","holdDuration":1.2},{"id":"BF03","text":"A warm line under a door. A coatroom before it.","type":"choice","holdImage":"bf03_motion_20261005_hold.webp","video":"bf03_motion_20261005.mp4","choices":[{"id":"coatroom","label":"Inspect the coatroom","nextNodeId":"BF04","isFail":false,"sfx":null},{"id":"seats","label":"Find your seat","nextNodeId":"BF05","isFail":false,"sfx":null}],"puzzle":null,"ambientLoop":"mall_hum.wav","ambientDetail":"parking_loop.wav","atmosphere":["dust"],"note":"Three knocks come through the wall. Then the ventilation starts.","sfx":"knock_back.m4a"},{"id":"BF04","text":"No coats. A second badge has the same triangle.","type":"choice","holdImage":"bf_badges_20260930_hold.webp","video":null,"choices":[{"id":"take_spare","label":"Take the spare badge","nextNodeId":"BF05","isFail":false,"setFlags":["spare_badge"],"note":"I took the spare triangle badge. It carries the same seat number as mine."},{"id":"leave_spare","label":"Leave the spare badge on its hook","nextNodeId":"BF05","isFail":false,"clearFlags":["spare_badge"],"note":"I left the spare badge behind."}],"puzzle":null,"ambientLoop":"mall_hum.wav","ambientDetail":"parking_loop.wav","atmosphere":["dust"],"note":"The spare badge is worn smooth. Someone has made this visit before.","noteTitle":"THE SPARE BADGE"},{"id":"BF05","text":"Match your badge to the seating plan.","type":"puzzle","holdImage":"briefing_05_hold.webp","video":null,"choices":null,"puzzle":{"type":"drag","nextNodeId":"BF06","correctId":"triangle","rects":[{"id":"circle","label":"SEAT 1","symbol":"circle","x":0.22,"y":0.35,"width":0.25,"height":0.15},{"id":"triangle","label":"SEAT 3","symbol":"triangle","x":0.5,"y":0.35,"width":0.25,"height":0.15},{"id":"square","label":"SEAT 5","symbol":"square","x":0.78,"y":0.35,"width":0.25,"height":0.15}],"hint":"Your badge carries a triangle. Match its shape.","solveSfx":"beep_confirm.m4a","failSfx":"keypad_denied.m4a","item":"VISITOR · △","itemSymbol":"triangle","itemSfx":"receipt_pickup.m4a"},"ambientLoop":"mall_hum.wav","ambientDetail":"parking_loop.wav","atmosphere":["dust"]},{"id":"BF06","text":"Seat 3. An earpiece waits on the cushion.","type":"choice","holdImage":"bf06_motion_20261005_hold.webp","video":"bf06_motion_20261005.mp4","choices":[{"id":"listen","label":"Put on the earpiece","nextNodeId":"BF07","isFail":false,"sfx":null},{"id":"archive","label":"Inspect the open archive","nextNodeId":"BF08","isFail":false,"sfx":null}],"puzzle":null,"ambientLoop":"mall_hum.wav","ambientDetail":"parking_loop.wav","atmosphere":["dust"],"note":"All the other chairs face yours."},{"id":"BF07","text":"The console claims the room is live. Something changed while your back was turned.","type":"puzzle","holdImage":"briefing_07_hold.webp","video":null,"choices":null,"puzzle":{"type":"spotError","nextNodeId":"BF09","correctId":"record","rects":[{"id":"power","label":"Power indicator","symbol":"power","x":0.23,"y":0.34,"width":0.25,"height":0.15,"beforeSymbol":"power"},{"id":"record","label":"Recording indicator","symbol":"record.circle","x":0.5,"y":0.34,"width":0.25,"height":0.15,"beforeSymbol":"pause.circle"},{"id":"speaker","label":"Speaker indicator","symbol":"speaker.wave.2","x":0.77,"y":0.34,"width":0.25,"height":0.15,"beforeSymbol":"speaker.wave.2"}],"hint":"Compare the center indicator. Playback has become recording.","solveSfx":"beep_confirm.m4a","failSfx":"keypad_denied.m4a","panelTitle":"AUDIO CONSOLE","comparisonCaption":"Which indicator changed?"},"ambientLoop":"mall_hum.wav","ambientDetail":"tv_static_loop.wav","atmosphere":["dust"],"note":"The earpiece repeats your chair moving—before you move it."},{"id":"BF08","text":"Three dated cases sit beside the player. Inspect the archive and find the place where your answer has not already been recorded.","type":"puzzle","holdImage":"bf_archive_20260930_hold.webp","video":null,"choices":null,"puzzle":{"type":"hotspot","nextNodeId":"BF16","correctId":"blank","rects":[{"id":"yesterday","label":"YESTERDAY","symbol":"waveform","x":0.23,"y":0.35,"width":0.25,"height":0.15,"detail":"Case A","inspection":"CASE A · YESTERDAY\nA wound cassette. Its protection tabs have been snapped off.\n\nPlayback: three knocks, a chair scraping, then your own voice: “Yes.”\n\nYou have never entered this room before.","rejection":"The broken tabs protect an answer already recorded. This is evidence of the loop, not an opening in it."},{"id":"today","label":"TODAY","symbol":"waveform","x":0.5,"y":0.35,"width":0.25,"height":0.15,"detail":"Case B","inspection":"CASE B · TODAY\nA second cassette. The reels have reached the end.\n\nPlayback: three knocks. A badge touches the table twice. The same “Yes” returns, with exactly the same breath.","rejection":"Today repeats the earlier answer. Its finished recording cannot be the undecided meeting."},{"id":"blank","label":"TOMORROW","symbol":"circle.dotted","x":0.77,"y":0.35,"width":0.25,"height":0.15,"detail":"Case C","inspection":"CASE C · TOMORROW\nThe case is empty. There is no tape to rewind and no voice to play.\n\nA loose recording tab sits in the hinge, unused. This slot is waiting for an answer."}],"hint":"The future date matters only because its case has no tape. The other two answers are already fixed.","solveSfx":"beep_confirm.m4a","failSfx":"keypad_denied.m4a","investigationPrompt":"Which recording can still contain a different decision?","panelTitle":"ARCHIVE"},"ambientLoop":"mall_hum.wav","ambientDetail":"tv_static_loop.wav","atmosphere":["dust"],"note":"A case can be labelled for a meeting that has not happened. Check what is actually inside."},{"id":"BF09","text":"The projector shows this room. Your chair is still empty.","type":"choice","holdImage":"bf09_motion_20261005_hold.webp","video":"bf09_motion_20261005.mp4","choices":[{"id":"leave","label":"Leave through the service lift","nextNodeId":"BF10","isFail":false,"sfx":null},{"id":"relay","label":"Trace the broadcast upstairs","nextNodeId":"BF12","isFail":false,"sfx":null},{"id":"sit","label":"Sit down and answer","nextNodeId":"BF14","isFail":false,"sfx":null}],"puzzle":null,"ambientLoop":"mall_hum.wav","ambientDetail":"tv_static_loop.wav","atmosphere":["dust"],"note":"The meeting is waiting for a response, not an audience."},{"id":"BF10","text":"The lift offers a loading bay and a return to the meeting.","type":"choice","holdImage":"briefing_10_hold.webp","video":null,"choices":[{"id":"bay","label":"Loading bay","nextNodeId":"BF11","isFail":false,"sfx":null},{"id":"return","label":"Return to the conference room","nextNodeId":"BF06","isFail":false,"sfx":null}],"puzzle":null,"ambientLoop":"mall_hum.wav","ambientDetail":"parking_loop.wav","atmosphere":["dust"],"sfx":"lift_ding.m4a"},{"id":"BF11","text":"The badge opens the exit. An empty return slot waits beside it.","type":"choice","holdImage":"briefing_11_hold.webp","video":null,"choices":[{"id":"return","label":"Leave the badge and walk out","nextNodeId":"BF13","isFail":false,"sfx":null},{"id":"keep","label":"Keep the badge and leave","nextNodeId":"BF15","isFail":false,"sfx":null}],"puzzle":null,"ambientLoop":"mall_hum.wav","ambientDetail":"rain_night_loop.wav","atmosphere":["rain"],"note":"Nothing stops you leaving. Only the badge asks to stay."},{"id":"BF12","text":"The relay has one live channel. It is listening to seat 3.","type":"puzzle","holdImage":"briefing_12_hold.webp","video":null,"choices":null,"puzzle":{"type":"hotspot","nextNodeId":"BF19","correctId":"three","rects":[{"id":"one","label":"SEAT 1","symbol":"speaker.slash","x":0.23,"y":0.35,"width":0.25,"height":0.15,"detail":"Silent"},{"id":"three","label":"SEAT 3","symbol":"waveform","x":0.5,"y":0.35,"width":0.25,"height":0.15,"detail":"Live"},{"id":"five","label":"SEAT 5","symbol":"speaker.slash","x":0.77,"y":0.35,"width":0.25,"height":0.15,"detail":"Silent"}],"hint":"Disconnect the only live channel.","solveSfx":"beep_confirm.m4a","failSfx":"keypad_denied.m4a"},"ambientLoop":"mall_hum.wav","ambientDetail":"rain_night_loop.wav","atmosphere":["rain"],"note":"You can end the transmission without taking the seat."},{"id":"BF13","text":"Morning. The room behind you goes quiet.","type":"end","holdImage":"briefing_13_hold.webp","video":null,"choices":null,"puzzle":null,"ambientLoop":"mall_hum.wav","ambientDetail":"rain_night_loop.wav","atmosphere":["rain"],"endingTitle":"ENDING A · NO RESPONSE","note":"The invitation expires unanswered. Nobody follows you."},{"id":"BF14","text":"You say hello. Every empty chair answers with your voice.","type":"end","holdImage":"briefing_hold.webp","video":null,"choices":null,"puzzle":null,"ambientLoop":"mall_hum.wav","ambientDetail":"parking_loop.wav","atmosphere":["dust"],"endingTitle":"ENDING B · IN ATTENDANCE","note":"The recorder advances to tomorrow. Seat 3 is no longer vacant."},{"id":"BF15","text":"Outside, the badge vibrates once. A new room is reserved.","type":"end","holdImage":"briefing_13_hold.webp","video":null,"choices":null,"puzzle":null,"ambientLoop":"mall_hum.wav","ambientDetail":"rain_night_loop.wav","atmosphere":["rain"],"endingTitle":"ENDING C · FORWARDING ADDRESS","note":"The badge has carried your attendance outside. Somewhere, another visitor is about to hear your footsteps before you take them."},{"id":"BF16","text":"Yesterday’s recording begins with three knocks. A visitor asks who else is attending. The reply comes in the visitor’s own voice: “Enough of us.”","type":"choice","holdImage":"bf_archive_20260930_hold.webp","ambientLoop":"mall_hum.wav","ambientDetail":"tv_static_loop.wav","atmosphere":["dust"],"note":"A second badge clicks against the table. The recorder counts two participants, although only one person has spoken.","choices":[{"id":"reverse","label":"Listen to the reverse side","nextNodeId":"BF22","isFail":false},{"id":"response","label":"Prepare your own response","nextNodeId":"BF17","isFail":false}],"setFlags":["heard_previous"],"holdDuration":3,"noteTitle":"ARCHIVE RECORDING"},{"id":"BF22","text":"The reverse side is almost silent. “It counts badges, not people. If both badges answer the same way, the meeting records a decision.”","type":"choice","holdImage":"bf_archive_20260930_hold.webp","ambientLoop":"mall_hum.wav","ambientDetail":"tv_static_loop.wav","atmosphere":["dust"],"note":"Then: “I tried saying yes so it would let me leave.” The three knocks start again, closer to the microphone.","choices":[{"id":"prepare","label":"Choose what the recorder will hear","nextNodeId":"BF17","isFail":false}],"setFlags":["heard_warning"],"holdDuration":3,"noteTitle":"RECORDING · REVERSE"},{"id":"BF17","text":"An unused channel is armed. You can record a refusal before the meeting asks its question—or leave the channel silent.","type":"choice","holdImage":"bf_recorder_20260930_hold.webp","ambientLoop":"mall_hum.wav","ambientDetail":"tv_static_loop.wav","atmosphere":["dust"],"note":"The recorder treats silence as an absent vote. A spoken response can be repeated wherever a matching badge is connected.","choices":[{"id":"refuse","label":"Record: “I do not consent to attend”","nextNodeId":"BF18","isFail":false,"setFlags":["recorded_refusal"],"clearFlags":["recorded_silence"],"note":"I recorded an explicit refusal. The recorder can repeat it for a matching badge."},{"id":"silence","label":"Let the recorder capture only silence","nextNodeId":"BF18","isFail":false,"setFlags":["recorded_silence"],"clearFlags":["recorded_refusal"],"note":"I recorded silence. The meeting counts it as an absent vote."}],"holdDuration":3,"noteTitle":"YOUR RESPONSE"},{"id":"BF18","text":"The new recording joins the others. A second socket lights up beside your own.","type":"choice","holdImage":"bf_recorder_20260930_hold.webp","ambientLoop":"mall_hum.wav","ambientDetail":"tv_static_loop.wav","atmosphere":["dust"],"note":"Nothing asks who made the recording. The console is waiting for the badge that will be allowed to speak it.","choices":[{"id":"projector","label":"Return to the projector","nextNodeId":"BF09","isFail":false}],"holdDuration":3,"noteTitle":"RECORDING LOG"},{"id":"BF19","text":"Seat 3’s cable ends in two sockets. One carries the room. The other is empty.","type":"choice","holdImage":"bf_relay_20260930_hold.webp","ambientLoop":"mall_hum.wav","ambientDetail":"rain_night_loop.wav","atmosphere":["rain"],"note":"Cutting the live cable will silence this meeting. The empty socket could give a second badge the same response as the first.","choices":[{"id":"second_vote","label":"Connect the spare badge to your refusal","nextNodeId":"BF20","isFail":false,"requiresFlags":["spare_badge","recorded_refusal"]},{"id":"disconnect","label":"Disconnect the live channel","nextNodeId":"BF13","isFail":false},{"id":"return","label":"Return to the room","nextNodeId":"BF06","isFail":false}],"holdDuration":3},{"id":"BF20","text":"Both sockets now carry your refusal. The recorder pauses between the first voice and its exact repeat.","type":"choice","holdImage":"bf_relay_20260930_hold.webp","ambientLoop":"mall_hum.wav","ambientDetail":"rain_night_loop.wav","atmosphere":["rain"],"note":"You can submit the two refusals as the meeting’s decision. Removing the cable now would only cancel the transmission.","choices":[{"id":"submit","label":"Submit both refusals","nextNodeId":"BF21","isFail":false,"setFlags":["refused_quorum"],"note":"Both matching badges submitted the refusal. I ended the invitation, not just its transmission."},{"id":"cut","label":"Remove the cable and leave","nextNodeId":"BF13","isFail":false}],"holdDuration":3},{"id":"BF21","text":"Two voices decline. The recorder marks the meeting concluded. Tomorrow’s case is empty for a different reason now.","type":"end","holdImage":"bf21_motion_20261005_hold.webp","ambientLoop":"mall_hum.wav","ambientDetail":"rain_night_loop.wav","atmosphere":["rain"],"note":"At the tram shelter, both badges are blank. No room is reserved. From inside the building comes one knock, unanswered.","choices":[],"endingTitle":"ENDING D · NO QUORUM","holdDuration":3,"video":"bf21_motion_20261005.mp4"}],"startNodeId":"BF01","intro":"The invitation has no name.\nYour badge already has a seat.","transitionSfx":["footsteps_a.m4a","footsteps_b.m4a"]}]