Browser lacks capabilities required to play.

Upgrade or switch to another browser.

Loading…
/* ── DIALOGUE PORTRAIT ROW WIDGETS ── Unified portrait system (Game Bible §7.10, §7.11). One component, two contexts: dialogue (compact, active-speaker-lit) and combat (full, stat- driven). These widgets emit the dialogue variant. For combat portrait rows, keep using the existing raw HTML pattern — the stat classes (vit-*, will-*, pres-*) are driven by per-turn logic that doesn't generalize cleanly into a widget. Character absence: <<socportraits>> → Lawrence absent (S2 default) <<socportraits "all">> → All three present (S3_Briefing onward) <<socportraits "fang-marcus">> → Explicit subset (legacy / custom scenes) <<socportraitspreentry>> → All three greyed (pre-entry: Fortune hasn't yet arrived; no "away" labels) Asset URLs are centralized here. If we move off the Squarespace CDN, one edit here updates every dialogue scene. */ <<widget "socportraits">> <div class="portrait-row dialogue-row"><div class="portrait absent" data-character="lawrence"><img class="p-img" width="68" height="68" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/cac05872-039b-4727-b210-02ec32b87f61/Lawrence_baseline.png?content-type=image%2Fpng" alt="" role="presentation" loading="lazy" /><div class="p-name">Lawrence</div></div><div class="portrait" data-character="fang"><img class="p-img" width="68" height="68" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/32ec3476-26be-417b-a528-f67bb7895512/Fang_Baseline.png?content-type=image%2Fpng" alt="" role="presentation" loading="lazy" /><div class="p-name">Fang</div></div><div class="portrait" data-character="marcus"><img class="p-img" width="68" height="68" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/6ea8b8c4-e5ce-4b87-9a2e-68a191556adb/Marcus_baseline.png?content-type=image%2Fpng" alt="" role="presentation" loading="lazy" /><div class="p-name">Marcus</div></div><div class="portrait" data-character="tiberius"><img class="p-img" width="68" height="68" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/a12855a8-a83c-485c-b3b1-c1a24a1746bb/Tiberius-headshot.png?content-type=image%2Fpng" alt="" role="presentation" loading="lazy" /><div class="p-name">Tiberius</div></div></div> <</widget>> <<widget "socportraitsall">> <div class="portrait-row dialogue-row"><div class="portrait" data-character="lawrence"><img class="p-img" width="68" height="68" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/cac05872-039b-4727-b210-02ec32b87f61/Lawrence_baseline.png?content-type=image%2Fpng" alt="" role="presentation" loading="lazy" /><div class="p-name">Lawrence</div></div><div class="portrait" data-character="fang"><img class="p-img" width="68" height="68" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/32ec3476-26be-417b-a528-f67bb7895512/Fang_Baseline.png?content-type=image%2Fpng" alt="" role="presentation" loading="lazy" /><div class="p-name">Fang</div></div><div class="portrait" data-character="marcus"><img class="p-img" width="68" height="68" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/6ea8b8c4-e5ce-4b87-9a2e-68a191556adb/Marcus_baseline.png?content-type=image%2Fpng" alt="" role="presentation" loading="lazy" /><div class="p-name">Marcus</div></div><div class="portrait" data-character="tiberius"><img class="p-img" width="68" height="68" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/a12855a8-a83c-485c-b3b1-c1a24a1746bb/Tiberius-headshot.png?content-type=image%2Fpng" alt="" role="presentation" loading="lazy" /><div class="p-name">Tiberius</div></div></div> <</widget>> <<widget "persistentchat">> <div class="chat-pane"> <div class="chat-tabs"> <span class="chat-tab<<if $lastChatChannel === "Guild">> active<</if>>">Guild</span> <span class="chat-tab<<if $lastChatChannel !== "Guild">> active<</if>>">Whisper</span> </div> <<if $lastChatSender !== "">> <div class="chat-msg $lastChatCssClass"><span class="who-name">$lastChatSender:</span> <span class="text">$lastChatText</span></div> <<else>> <div class="chat-typing" style="font-size:.76rem;color:#4b5563;">no messages</div> <</if>> </div> <</widget>> <<widget "socportraitspreentry">> <div class="portrait-row dialogue-row"><div class="portrait unseen" data-character="lawrence"><img class="p-img" width="68" height="68" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/cac05872-039b-4727-b210-02ec32b87f61/Lawrence_baseline.png?content-type=image%2Fpng" alt="" role="presentation" loading="lazy" /><div class="p-name">Lawrence</div></div><div class="portrait unseen" data-character="fang"><img class="p-img" width="68" height="68" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/32ec3476-26be-417b-a528-f67bb7895512/Fang_Baseline.png?content-type=image%2Fpng" alt="" role="presentation" loading="lazy" /><div class="p-name">Fang</div></div><div class="portrait unseen" data-character="marcus"><img class="p-img" width="68" height="68" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/6ea8b8c4-e5ce-4b87-9a2e-68a191556adb/Marcus_baseline.png?content-type=image%2Fpng" alt="" role="presentation" loading="lazy" /><div class="p-name">Marcus</div></div><div class="portrait unseen" data-character="tiberius"><img class="p-img" width="68" height="68" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/a12855a8-a83c-485c-b3b1-c1a24a1746bb/Tiberius-headshot.png?content-type=image%2Fpng" alt="" role="presentation" loading="lazy" /><div class="p-name">Tiberius</div></div></div> <</widget>><<script>> /* Hide the SugarCube UI bar / side menu on the loader — the loader is its own screen. */ $('#ui-bar').hide(); /* Also hide the HUD footer if it exists (handled by _hudHiddenPassages, but belt-and-suspenders) */ var _gf = document.getElementById('game-footer'); if (_gf) { _gf.classList.remove('active', 'visible'); } <</script>> <div class="ld-star-wrap"> <svg width="100" height="100" viewBox="0 0 110 110" aria-hidden="true"> <defs> <radialGradient id="ld-rg" cx="50%" cy="50%" r="50%"> <stop offset="0%" stop-color="#c9a84c" stop-opacity=".25"/> <stop offset="100%" stop-color="#7c3aed" stop-opacity="0"/> </radialGradient> </defs> <circle cx="55" cy="55" r="52" fill="url(#ld-rg)" stroke="rgba(201,168,76,.25)" stroke-width="1"/> <circle cx="55" cy="55" r="38" fill="none" stroke="rgba(201,168,76,.18)" stroke-width="1" stroke-dasharray="3 4"/> <polygon points="55,18 62,40 87,40 68,54 75,76 55,62 35,76 42,54 23,40 48,40" fill="none" stroke="rgba(201,168,76,.7)" stroke-width="1.5" stroke-linejoin="round"/> <circle cx="55" cy="55" r="3.5" fill="#c9a84c" opacity=".9"> <animate attributeName="r" values="3.5;5.5;3.5" dur="2.2s" repeatCount="indefinite"/> <animate attributeName="opacity" values=".9;.4;.9" dur="2.2s" repeatCount="indefinite"/> </circle> </svg> </div> <div class="title-h1">STONE OF<br>COMMITMENT</div> <div class="title-h2">VANQUISH DEATH</div> <div class="title-h2">GAME DEMO</div> <div class="ld-tagline"><em>An RPG about trust. The slow burn kind.</em></div> <div class="ld-body">Stone of Commitment is a romantasy: fantasy worldbuilding with the slow-burn emotional register of a K-drama and the combat depth of a premium RPG.</div> <div class="ld-name-wrap"> <div class="ld-name-prompt">Every guard on the Silk Road carries a road name.</div> <div class="ld-name-sub"><em>This one is yours to set.</em></div> <<textbox "$avatarName" "Fortune">> </div> <div class="ld-bar-wrap"><div class="ld-bar"></div></div> <div class="ld-pct">100%</div> <div id="ld-resume-mount"></div> <div class="ld-begin-wrap" id="ld-begin-wrap"><<link "BEGIN" "Demo3_Desire">><</link>></div> <hr class="ld-divider" /> <div class="ld-body">The artists, actors, and musicians who inspired this game will be the first people we contact when funding is secured.</div> <div class="ld-music-footer"><span class="ld-music-dot"></span><span class="ld-music-label">Wishlist Music</span><span class="ld-music-track"><a href="https://youtu.be/sQ72u1KqJwU?si=rZfDzcf0dtPmxf0G&amp;t=43" target="_blank">Ghost Town</a></span><span class="ld-music-artist">Chen &amp; Hwe Seung &middot; K-pop collaboration</span></div> <div class="ld-buildtag">Studio Zisha &middot; Confidential Playtest Build &middot; April 2026</div> <<script>> /* Style the SugarCube-generated BEGIN link to match the HTML loader's button. */ try { var wrap = document.getElementById('ld-begin-wrap'); if (wrap) { var a = wrap.querySelector('a'); if (a) { a.classList.add('ld-begin'); } } } catch (e) {} <</script>> <!-- (c) Studio Zisha 2026 --><<goto "Demo3_Desire">> <!-- Retired in Demo 3 v3: name input folded into Demo3_Start loader screen. This passage is kept as a passthrough so any lingering <<link>> or deep-link to Demo3_AvatarName routes forward cleanly. © Studio Zisha 2026 --><div class="loc-tag">&#x1F4CD; Kitchen Table &middot; Tuesday Night &middot; 9:46pm</div> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://youtu.be/sQ72u1KqJwU?si=rZfDzcf0dtPmxf0G&amp;t=43" target="_blank">Ghost Town</a></span><span class="music-meta">Chen &amp; Hwe Seung &middot; continues. Real-world ambient kitchen sounds layered under.</span></div> <<soctrack "scene_enter" "Desire">> <<if not def $ishaniByunghoTrust>><<set $ishaniByunghoTrust = 5>><</if>> <p>You closed your work laptop an hour ago and have been waiting for this. The dishwasher is mid-cycle. Potato is asleep on the couch. The tea is still warm. Now, you finally get to open your own laptop.</p> <p>On the screen:</p> <div class="two-pane"> <div class="game-pane"> <p style="font-style:italic;color:#a5b4fc;margin:0;">The Silk Road breathes, port by port and caravan by caravan. You have been walking it since you were a child.</p> </div> <div class="chat-pane dim"> <img class="scene-image scene-image-irl" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/d1cb3d4a-70e1-445e-ab19-5247fc7c26ba/Ishani_table.png?content-type=image%2Fpng" alt="Ishani at her kitchen table, laptop open, tea warm, the room quiet around her." loading="lazy" /> <div class="chat-tabs"> <span class="chat-tab">Guild</span> <span class="chat-tab">Whisper</span> </div> <div class="chat-connecting">connecting&hellip;</div> </div> </div> <p>This is why you are here. Because the alternative was answering email or doomscrolling past midnight, and you are tired of who that makes you.</p> <p>Before the game opens, name the thing you came for.</p> <p class="player-prompt">Pick the one that is honest tonight.</p> <div class="soc-desire-question"> <div class="choice"><<link "&#x25B7; Because I want a room where the rules make sense." "Demo3_S1_Login">> <<set $playerDesire = "rules_make_sense">> <<soctrack "desire_selected" "rules_make_sense">> <</link>></div> <div class="choice"><<link "&#x25B7; Because I want to see if I could finish something I started." "Demo3_S1_Login">> <<set $playerDesire = "finish_something">> <<soctrack "desire_selected" "finish_something">> <</link>></div> <div class="choice"><<link "&#x25B7; Because I want to matter to someone tonight." "Demo3_S1_Login">> <<set $playerDesire = "matter_to_someone">> <<soctrack "desire_selected" "matter_to_someone">> <</link>></div> <div class="choice"><<link "&#x25B7; Because I want this to stay with me." "Demo3_S1_Login">> <<set $playerDesire = "carry">> <<soctrack "desire_selected" "carry">> <</link>></div> </div> <div class="sys note"><strong>DESIGN NOTE &mdash; DESIRE DECLARATION:</strong> This passage is a non-branching intent tag. Every option routes to Demo3_S1_Login. The value of $playerDesire is recorded in telemetry, referenced in the Scene 7 outro summary, and available for Clare's closing-line calibration. It is NOT a stat. It is the thesis the player brings to the session, named before the frame thickens. Playtest signal: which desire correlates with which ending, and with keep-playing in the exit survey.</div> <!-- © Studio Zisha 2026 --><div class="loc-tag">&#x1F4CD; Kitchen Table &middot; Tuesday Night &middot; 9:47pm</div> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=pOVNGANwcrk" target="_blank">White Night</a></span><span class="music-meta">Forestella &middot; Ghost Town fades into White Night as the game Vanquish Death begins to load.</span></div> <<soctrack "scene_enter" "S1">> <div class="two-pane"> <div class="game-pane" style="display:flex; flex-direction:column; justify-content:space-between;"> <div class="recap-content"> <div class="recap-header">AND THAT VAMPIRE FROM THE LAST SESSION.</div> <p class="recap-body">Bandits hit the caravan you guarded. A vampire watched from an outcropping. When you dropped the last bandit, he jumped down and spoke. His voice was warm and low, like aged boza.</p> <p class="recap-quote">&ldquo;You already know what you want. You have known for a while. Stop waiting for permission that was never required.&rdquo;</p> <p class="recap-body">He told you to find him at Mo St&oacute;r in Rhea Port. He held your gaze like you were the first interesting thing he had seen in a very long time. Then he was gone.</p> </div> <div class="loader-footer"> <p class="loading-text">// loading //</p> <p class="loading-pct">73%</p> </div> </div> <div class="chat-pane"> <img class="scene-image scene-image-irl" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/d1cb3d4a-70e1-445e-ab19-5247fc7c26ba/Ishani_table.png?content-type=image%2Fpng" alt="Ishani at her kitchen table, laptop open, tea warm, the room quiet around her." loading="lazy" /> <div class="chat-tabs"> <span class="chat-tab">Guild</span> <span class="chat-tab active">Whisper<span class="chat-dot"></span></span> </div> <div class="chat-timestamp">Today 9:47 PM</div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">you making it tonight?</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">hard session last week, could use one where someone actually reads the room.</span></div> <<set $lastChatSender = "Clare">><<set $lastChatText = "hard session last week, could use one where someone actually reads the room.">><<set $lastChatChannel = "Whisper">><<set $lastChatCssClass = "clare">> </div> </div> <p>The loading bar stalls. You have a minute. You could refill the tea. You could let the dogs out. You could check your phone. You could listen to the music. Then Clare pings you.</p> <div class="choice"><<link "&#x25B7; 'yeah, here. glad you pinged.'" "Demo3_S1_Warm">><</link>><span class="hint"></span></div> <div class="choice"><<link "&#x25B7; 'logging in now. what am I walking into?'" "Demo3_S1_Neutral">><</link>><span class="hint"></span></div> <div class="choice"><<link "&#x25B7; 'lol yeah. whats up.'" "Demo3_S1_Dismissive">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><<set $scene1Response = "warm">> <<set $clareBond += 2>> <<set $flow += 1>> <<soctrack "s1_response" "warm">> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=pOVNGANwcrk" target="_blank">White Night</a></span><span class="music-meta">Forestella &middot; continues. Real-world ambient kitchen sounds layered under.</span></div> <div class="two-pane"> <div class="game-pane dim"> <p class="loading-text">// loading //</p> <p style="text-align:center;color:#6b7280;font-size:.85rem;">78%</p> </div> <div class="chat-pane"> <img class="scene-image scene-image-irl" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/d1cb3d4a-70e1-445e-ab19-5247fc7c26ba/Ishani_table.png?content-type=image%2Fpng" alt="Ishani at her kitchen table, laptop open, tea warm, the room quiet around her." loading="lazy" /> <div class="chat-tabs"> <span class="chat-tab">Guild</span> <span class="chat-tab active">Whisper</span> </div> <div class="chat-msg me"><span class="who-name">Ishani:</span> <span class="text">yeah, here. glad you pinged.</span></div> <div class="chat-typing">Clare is typing&hellip;</div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">good. missed you at the end of monday.</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">ok. loading. see you at the bar.</span></div> <<set $lastChatSender = "Clare">><<set $lastChatText = "ok. loading. see you at the bar.">><<set $lastChatChannel = "Whisper">><<set $lastChatCssClass = "clare">> </div> </div> <p>The loading bar unsticks. 81%. 94%. The world resolves.</p> <div class="choice"><<link "&#x25B7; Descend into Mo St&oacute;r." "Demo3_S2_MoStor_Enter">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><<set $scene1Response = "neutral">> <<set $clareBond += 1>> <<set $dex += 1>> <<soctrack "s1_response" "neutral">> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=pOVNGANwcrk" target="_blank">White Night</a></span><span class="music-meta">Forestella &middot; continues. Real-world ambient kitchen sounds layered under.</span></div> <div class="two-pane"> <div class="game-pane dim"> <p class="loading-text">// loading //</p> <p style="text-align:center;color:#6b7280;font-size:.85rem;">79%</p> </div> <div class="chat-pane"> <img class="scene-image scene-image-irl" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/d1cb3d4a-70e1-445e-ab19-5247fc7c26ba/Ishani_table.png?content-type=image%2Fpng" alt="Ishani at her kitchen table, laptop open, tea warm, the room quiet around her." loading="lazy" /> <div class="chat-tabs"> <span class="chat-tab">Guild</span> <span class="chat-tab active">Whisper</span> </div> <div class="chat-msg me"><span class="who-name">Ishani:</span> <span class="text">logging in now. what am I walking into?</span></div> <div class="chat-typing">Clare is typing&hellip;</div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">wait. check guild chat. byung-ho posted something at 4. nobody responded.</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">fang is set. come see the rest.</span></div> <<set $lastChatSender = "Clare">><<set $lastChatText = "fang is set. come see the rest.">><<set $lastChatChannel = "Whisper">><<set $lastChatCssClass = "clare">> </div> </div> <p>The loading bar unsticks. 81%. 94%. The world resolves.</p> <div class="choice"><<link "&#x25B7; Open guild chat." "Demo3_S1_Neutral_Guild">><</link>><span class="hint"></span></div> <div class="choice"><<link "&#x25B7; Descend into Mo St&oacute;r." "Demo3_S2_MoStor_Enter">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><<if not $s1GuildVisited>> <<set $s1GuildVisited = true>> <<set $pres += 1>> <<set $clareBond += 1>> <<soctrack "s1_guild_check" "read">> <</if>> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=pOVNGANwcrk" target="_blank">White Night</a></span><span class="music-meta">Forestella &middot; continues. Real-world ambient kitchen sounds layered under.</span></div> <div class="two-pane"> <div class="game-pane dim"> <p class="loading-text">// loading //</p> <p style="text-align:center;color:#6b7280;font-size:.85rem;">80%</p> </div> <div class="chat-pane"> <img class="scene-image scene-image-irl" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/d1cb3d4a-70e1-445e-ab19-5247fc7c26ba/Ishani_table.png?content-type=image%2Fpng" alt="Ishani at her kitchen table, laptop open, tea warm, the room quiet around her." loading="lazy" /> <div class="chat-tabs"> <span class="chat-tab active">Guild</span> <span class="chat-tab">Whisper</span> </div> <div class="chat-timestamp">Today 4:12 PM</div> <div class="chat-msg byungho"><span class="who-name">Byung-Ho:</span> <span class="text">out tonight. not feeling well.</span></div> <div class="chat-timestamp">Today 4:14 PM</div> <div class="chat-msg byungho"><span class="who-name">Byung-Ho:</span> <span class="text">clare, if you play, put lawrence on follow so he can help.</span></div> <div class="chat-msg byungho"><span class="who-name">Byung-Ho:</span> <span class="text">just don't do the main quest without me.</span></div> <<set $lastChatSender = "Byung-Ho">><<set $lastChatText = "just don't do the main quest without me.">><<set $lastChatChannel = "Guild">><<set $lastChatCssClass = "byungho">> <div class="chat-timestamp">Tonight 9:47 PM</div> </div> </div> <div class="sys good"><strong>&#10003; RESONANCE:</strong> PRES +1. Clare Bond +1. You checked before you walked in.</div> <div class="choice"><<link "&#x25B7; Descend into Mo St&oacute;r." "Demo3_S2_MoStor_Enter">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><<set $scene1Response = "dismissive">> <<set $clareSpirit -= 1>> <<soctrack "s1_response" "dismissive">> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=pOVNGANwcrk" target="_blank">White Night</a></span><span class="music-meta">Forestella &middot; continues. Real-world ambient kitchen sounds layered under.</span></div> <div class="two-pane"> <div class="game-pane dim"> <p class="loading-text">// loading //</p> <p style="text-align:center;color:#6b7280;font-size:.85rem;">79%</p> </div> <div class="chat-pane"> <img class="scene-image scene-image-irl" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/d1cb3d4a-70e1-445e-ab19-5247fc7c26ba/Ishani_table.png?content-type=image%2Fpng" alt="Ishani at her kitchen table, laptop open, tea warm, the room quiet around her." loading="lazy" /> <div class="chat-tabs"> <span class="chat-tab">Guild</span> <span class="chat-tab active">Whisper</span> </div> <div class="chat-msg me"><span class="who-name">Ishani:</span> <span class="text">lol yeah. whats up.</span></div> <div class="chat-typing">Clare is typing&hellip;</div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">i think it's going to be fun. hurry up.</span></div> <<set $lastChatSender = "Clare">><<set $lastChatText = "i think it's going to be fun. hurry up.">><<set $lastChatChannel = "Whisper">><<set $lastChatCssClass = "clare">> </div> </div> <p>She types for a moment longer and then does not send whatever it was. You watch the typing indicator flicker off.</p> <p>The loading bar unsticks. 81%. 94%. The world resolves.</p> <div class="choice"><<link "&#x25B7; Descend into Mo St&oacute;r." "Demo3_S2_MoStor_Enter">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><div class="loc-tag">&#x1F4CD; Mo St&oacute;r &middot; The Descent</div> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=pOVNGANwcrk" target="_blank">White Night</a></span><span class="music-meta">Forestella &middot; continues</span></div> <div class="sys note"><strong>HEARTBEAT PLANT (non-counting, writers' room):</strong> 4-second sub-audible hum beneath the descent. Barely perceptible. Counter does not increment. Player may or may not consciously register it. Pay-off gated on Scene 3 Wait path.</div> <<soctrack "scene_enter" "S2">> <div class="two-pane"> <div class="game-pane"> <<socportraitspreentry>> <img class="scene-image scene-image-portrait" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/fe0f54c5-a02a-4af6-aee0-6673318e5af8/Mo_Sto%CC%81r_Door_evening.png?content-type=image%2Fpng" alt="The door of Mo Stór at the bottom of the stone steps, evening light on the heavy timber." loading="lazy" /> <p>Stone steps cut into the hill above Rhea Port. You have descended them enough times to know the third one creaks. You feel it give under your weight and you hear Fang somewhere inside the bar reacting to the sound before she can see you. She knows the cadence of your step.</p> <p>Cardamom. Woodsmoke. The specific mineral smell of old rock that has been warm for a long time.</p> <p>The door at the bottom is heavy and slightly unsquared. You push it.</p> </div> <div class="chat-pane dim"> <div class="chat-tabs"> <span class="chat-tab">Guild</span> <span class="chat-tab active">Whisper</span> </div> <div class="chat-typing">Clare is typing&hellip;</div> </div> </div> <div class="choice"><<link "&#x25B7; Step into the room." "Demo3_S2_MoStor_Read">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><div class="loc-tag">&#x1F4CD; Mo St&oacute;r &middot; The Common Room</div> <div class="sys ambient"><span class="ambient-label">Ambient</span><span class="ambient-meta">Low fire, wood, distant voices.</span></div> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=O2xowk-Lkpc" target="_blank">Please Call My Name</a></span><span class="music-meta">2PM &middot; White Night fades as Please Call My Name starts to play softly.</span></div> <div class="two-pane"> <div class="game-pane"> <<socportraits>> <img class="scene-image" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/57d319f9-2080-450e-9f6b-c185b8fda2da/Interior_Mo_Stor.jpg?content-type=image%2Fjpeg" alt="The interior of Mo Stór: low lamplight, ship-timber ceiling, stone walls, a bar along one side." loading="lazy" /> <p>The room is not calm tonight.</p> <p><strong>Fang</strong> is standing, not sitting. She is at the far end of the common room with her back to the fire. Her left hand rests on the pommel of her curved hip blade without pressing.</p> <p><strong>Marcus</strong> is on the sturdy bench near Fang, a wine glass held between his paws. He is not drinking from it. Bears do not fidget. He is not fidgeting now.</p> <p><strong>Lawrence</strong> is not here.</p> <p><strong>Tiberius</strong> is behind the bar. He is polishing a glass. The glass is already clean.</p> <p>Nobody has spoken yet. It is weather that has already been in the room for a while.</p> </div> <div class="chat-pane dim"> <div class="chat-tabs"> <span class="chat-tab">Guild</span> <span class="chat-tab active">Whisper</span> </div> <div class="chat-typing" id="s2-clare-typing">Clare is typing&hellip;</div> <div class="chat-typing" style="font-size:.76rem;">&hellip;typing stopped.</div> </div> </div> <div class="choice"><<link "&#x25B7; Read the room carefully." "Demo3_S2_RoomRead">><</link>><span class="hint"></span></div> <div class="choice"><<link "&#x25B7; Go to Fang." "Demo3_S2_ToFang">><</link>><span class="hint"></span></div> <div class="choice"><<link "&#x25B7; Walk to the bar." "Demo3_S2_ToBar">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><<if not $s2RoomReadEntered>> <<set $s2RoomReadEntered = true>> <<set $pres += 1>> <<soctrack "s2_action" "room_read">> <</if>> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=O2xowk-Lkpc" target="_blank">Please Call My Name</a></span><span class="music-meta">2PM &middot; continues</span></div> <div class="two-pane"> <div class="game-pane"> <<socportraits>> <img class="scene-image" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/57d319f9-2080-450e-9f6b-c185b8fda2da/Interior_Mo_Stor.jpg?content-type=image%2Fjpeg" alt="The interior of Mo Stór: low lamplight, ship-timber ceiling, stone walls, a bar along one side." loading="lazy" /> <p>You stand inside the door longer than people usually do. You let the room arrive.</p> <p>The privacy alcoves along the back wall are all empty tonight. The quest board by the entrance has had two notices pulled down, their pins still in place. The fragments along the back wall have been there a while. Tonight is still enough to read them.</p> <p>And at the far end of the bar, slightly apart from the others, the stool. Clean. Positioned as if waiting. You have seen it before. You have never looked at it directly.</p> <p>Three things are asking for you. You do not have to take all of them.</p> <div class="sys note"><strong>DESIGN NOTE &mdash; HUB-AND-SPOKE (v25 restructure):</strong> Replaces the prior forced linear chain (RoomRead &rarr; Wall &rarr; StoolNotice &rarr; ToFang). Each of the three attention surfaces (torn notice, wall, stool) is now a parallel choice that loops back to this hub, with "Go to Fang" always present as exit. PRES +1 fires once on first entry only (idempotency via $s2RoomReadEntered). Gives the player flavor-of-attention agency: they can attend to one beat and leave, or attend to all three. The stool spoke now also gates a deeper "ask Tiberius" beat per Story Bible Empty Stool Architecture. See Game Bible &sect;7.16.2 stratified investigative architecture.</div> </div> <div class="chat-pane dim"> <div class="chat-tabs"> <span class="chat-tab">Guild</span> <span class="chat-tab active">Whisper</span> </div> <div class="chat-typing">Clare is typing&hellip;</div> </div> </div> <<if not $s2NoticeRead>><div class="choice"><<link "&#x25B7; The torn notice on the quest board." "Demo3_S2_RoomRead_Notice">><</link>><span class="hint"></span></div><</if>> <<if not $sharedWallRead>><div class="choice"><<link "&#x25B7; The fragments on the wall." "Demo3_S2_RoomRead_Wall">><</link>><span class="hint"></span></div><</if>> <<if not $stoolNoticed>><div class="choice"><<link "&#x25B7; The stool at the end of the bar." "Demo3_S2_RoomRead_Stool">><</link>><span class="hint"></span></div><</if>> <div class="choice"><<link "&#x25B7; Go to Fang." "Demo3_S2_ToFang">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><<set $s2NoticeRead = true>> <<soctrack "s2_action" "notice_read">> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=O2xowk-Lkpc" target="_blank">Please Call My Name</a></span><span class="music-meta">2PM &middot; continues</span></div> <div class="two-pane"> <div class="game-pane"> <<socportraits>> <p>You step closer to the quest board. Two empty squares of plaster, slightly cleaner than the wood around them. Whoever pulled the notices was in a hurry. They did not bother with the pins.</p> <p>One of the removed notices left a corner. A torn strip, still pinned, the writing on it cramped:</p> <div class="torn-notice"> <p class="torn-line">&hellip;the boats coming in are not from where the captain s&mdash;</p> </div> <p>The rest is gone. You do not know who wrote it. You do not know who removed it. You do not know which captain.</p> <div class="sys note"><strong>DESIGN NOTE &mdash; INVESTIGATIVE BEAT (Game Bible &sect;7.16.2):</strong> The torn notice is encounter-NPC voice in antagonist-game motive-grounded register. The author and remover are unknown. The claim ("the boats coming in are not from where the captain says") may be true, partially true, or wrong. The "captain" referenced may or may not be the smuggling-crew captain the party encounters in S4. The player does the investigative work: who wrote this? who tore it down? does it connect to tonight's job? The narrator does not adjudicate. No stat or flag is set; the beat exists for the player to weigh.</div> </div> <div class="chat-pane dim"> <div class="chat-tabs"> <span class="chat-tab">Guild</span> <span class="chat-tab active">Whisper</span> </div> <div class="chat-typing">Clare is typing&hellip;</div> </div> </div> <div class="choice"><<link "&#x25B7; Back to the room." "Demo3_S2_RoomRead">><</link>><span class="hint"></span></div> <div class="choice"><<link "&#x25B7; Go to Fang." "Demo3_S2_ToFang">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><<set $sharedWallRead = true>> <<soctrack "s2_action" "wall_read">> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=O2xowk-Lkpc" target="_blank">Please Call My Name</a></span><span class="music-meta">2PM &middot; continues</span></div> <div class="two-pane"> <div class="game-pane"> <<socportraits>> <p>You walk along the back wall. The fragments are etched into the plaster and worked into the beams. Short. Unattributed. Tonight, maybe because the room is not moving, you actually read them.</p> <div class="shared-wall"> <div class="wall-header">The wall</div> <p class="wall-fragment">&ldquo;kestrel stopped meeting me at the dock. i don't know what i did.&rdquo;</p> <p class="wall-fragment">&ldquo;pay attention to the creak. it matters.&rdquo;</p> <p class="wall-fragment">&ldquo;I came to grind but blew a friendship.&rdquo;</p> <p class="wall-fragment">&ldquo;I love the touch about &lsquo;East of Constantinople&rsquo;&rdquo;</p> <p class="wall-fragment">&ldquo;net's got plans. the bear hasn't been told.&rdquo;</p> </div> <p>You have always assumed the fragments were decoration. Tonight, they aren't. Different voices. Other players.</p> </div> <div class="chat-pane"> <div class="chat-tabs"> <span class="chat-tab">Guild</span> <span class="chat-tab active">Whisper</span> </div> <div class="chat-timestamp">just now</div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">are you looking at the memories?</span></div> <div class="chat-msg me"><span class="who-name">Ishani:</span> <span class="text">yeah. whose?</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">other players.</span></div> <<set $lastChatSender = "Clare">><<set $lastChatText = "other players.">><<set $lastChatChannel = "Whisper">><<set $lastChatCssClass = "clare">> </div> </div> <div class="sys note"><strong>DESIGN NOTE:</strong> Fandom Flywheel plant — visible geometry, not marketing abstraction. In the demo these are writers' seeds; post-launch this becomes opt-in player Journal fragments moderated through the Trust-and-Safety pipeline.</div> <div class="sys note"><strong>DESIGN NOTE — UNRELIABLE NARRATION (Game Bible &sect;7.16):</strong> Wall fragments are player-to-player communication. Each fragment may be true, may be wrong, may be performed, may be a player who has since changed their mind. The wall does not adjudicate. Five registers deployed: confessional/social, transmission/instruction (Dark Souls), confessional/regret, meta/craft-appreciation, speculation/frame-asymmetric (Net plant). Style Sheet v1.8 &sect;1 companion rule: writers should not silently translate player-voice into narrator clarity.</div> <div class="choice"><<link "&#x25B7; Back to the room." "Demo3_S2_RoomRead">><</link>><span class="hint"></span></div> <div class="choice"><<link "&#x25B7; Go to Fang." "Demo3_S2_ToFang">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><<set $stoolNoticed = true>> <<set $tiberius += 1>> <<soctrack "s2_action" "stool_notice">> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=O2xowk-Lkpc" target="_blank">Please Call My Name</a></span><span class="music-meta">2PM &middot; continues</span></div> <div class="two-pane"> <div class="game-pane"> <<socportraits>> <p>You let your eyes settle on it. The stool. Clean. Positioned as if waiting. Nobody is sitting on it. Nobody is talking about it. Nobody is glancing at it.</p> <p>You have seen it before. You have never looked at it directly. You look at it now.</p> <<soctibtell "Tiberius polishes the glass without looking up.">> <div class="dlg"><span class="who tiberius">Tiberius:</span> <span class="line">&ldquo;Most people don't notice the stool.&rdquo;</span></div> <p>He says it the way you mention the weather. Then he keeps polishing.</p> </div> <div class="chat-pane dim"> <div class="chat-tabs"> <span class="chat-tab">Guild</span> <span class="chat-tab active">Whisper</span> </div> <div class="chat-typing">Clare is typing&hellip;</div> </div> </div> <div class="sys note"><strong>DESIGN NOTE &mdash; STOOL ARCHITECTURE (Story Bible Empty Stool Arc):</strong> Demo3 is Bond 1&ndash;2. Per the Empty Stool DESIGN RULE, the stool's identity does NOT resolve before Mo St&oacute;r Final Return. This is the noticing beat: Tiberius's glass-polish tell fires (he cannot address what he cannot address), and his deflection is dry rather than weighty. The "some seats stay set" line that previously closed this beat has been removed and reserved for later arcs &mdash; it carries too much weight for the player at this bond level. The full ask-and-refusal beat (held in dormant passage Demo3_S2_StoolAsk) is gated to a later moment in the full-game build where the defer can carry meaningful weight; in Demo3, the player only gets to <em>notice</em>. $stoolNoticed plants the future payoff regardless.</div> <div class="choice"><<link "&#x25B7; Back to the room." "Demo3_S2_RoomRead">><</link>><span class="hint"></span></div> <div class="choice"><<link "&#x25B7; Go to Fang." "Demo3_S2_ToFang">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><!-- DORMANT-PASSAGE: reactivation gated on full-game Bond 4+ integration. Grep "DORMANT-PASSAGE" across the project to find all currently-inert content. --> /* DORMANT PASSAGE (v25+): unreachable in Demo3. Held for full-game integration. Rationale: The "ask Tiberius about the stool" beat is too forward for the emotional register Demo3 reaches. Per Story Bible Empty Stool Architecture, the "almost says it" register is gated at Bond 4+ in Act 3 onward. Demo3 reaches Bond 2-3 with Tiberius at peak (S6_Cheers cup-and-name beat), which is at most one rung below the bible's gate. A defer-line ("ask me later") delivered fifteen seconds before the player sits down with the party at the bar makes the "later" structurally meaningless -- the wait has no texture. v24 had no ask beat. v25 added one in S2 (too early). This wrap keeps the prose intact for whenever the full-game build reaches an emotionally-earned ask moment -- candidates: Mo Stór Return #1 (post-Tribunal), Mo Stór Return After Sun (Bond 3+), or a Lawrence-prompted moment when his attention to the stool surfaces and Fortune asks him rather than Tiberius. The $stoolAskedEarly flag and full-game payoff hook (chrysanthemum-in-line-of- sight at MoStór Return After Sun) remain documented in the design note below for whenever the ask is wired up. Remove the <<if false>>...<</if>> wrapper as part of full-game stool-ask reactivation. See also Demo3_S3_TypePath for the same dormancy pattern. © Studio Zisha 2026 */ <<if false>> <<set $stoolAskedEarly = true>> <<set $tiberius += 1>> <<set $tibTellCount += 1>> <<set $glassPolishCount = $tibTellCount>> <<soctrack "s2_action" "stool_ask_early">> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=O2xowk-Lkpc" target="_blank">Please Call My Name</a></span><span class="music-meta">2PM &middot; continues</span></div> <div class="two-pane"> <div class="game-pane"> <<socportraits>> <<if $s2BarEntered>> <p>You shift your weight along the bar. Across from the stool now, not in front of Tiberius. Close enough that he has to choose to look up.</p> <<else>> <p>You walk to the bar. You stop directly across from the stool, not in front of Tiberius. Close enough that he has to choose to look up.</p> <</if>> <p>He looks up.</p> <div class="dlg"><span class="who fortune">You:</span> <span class="line">&ldquo;Whose stool?&rdquo;</span></div> <p>Tiberius does not answer. His eyes move once: to the stool, then back to you. Then to the glass in his hand.</p> <<soctibtell "He polishes the glass that was already clean when he picked it up.">> <p>He works at it carefully. The cloth is white. The motion is even. He is not stalling. He is not dodging. He is doing the only thing he can do with what you just asked him.</p> <p>A beat. Two. The fire pops. Across the room, Fang shifts her weight. Marcus does not move.</p> <p>Then Tiberius sets the glass down. Looks at you. Levelly.</p> <div class="dlg"><span class="who tiberius">Tiberius:</span> <span class="line">&ldquo;Some questions get easier to answer the longer the asker stays.&rdquo;</span></div> <p>He picks up a different glass. Begins polishing again. The conversation, as far as he is concerned, has been honored and is now complete.</p> <p>You did not get an answer. You got something else: confirmation that the question was real, and a date for when it could be asked again. He did not tell you to stop noticing.</p> </div> <div class="chat-pane dim"> <div class="chat-tabs"> <span class="chat-tab">Guild</span> <span class="chat-tab active">Whisper</span> </div> <div class="chat-typing">Clare is typing&hellip;</div> </div> </div> <<socjournal "The Stool" "You asked Tiberius about the stool. He polished a glass that was already clean and said to ask him later." "bond &middot; Mo Stór">> <div class="sys good"><strong>&#10003; RESONANCE:</strong> Tiberius Bond +1. The question was honored. The answer is owed.</div> <div class="sys note"><strong>DESIGN NOTE &mdash; ELEVATED STOOL BEAT (held for full-game integration):</strong> Story Bible Empty Stool Arc compliance check: (1) Stool is NOT named or identified &mdash; rule preserved. (2) Tiberius does NOT give "the shape of the stool story" &mdash; that's Bond 4+ in Act 3 onward. (3) What he gives is one rung lower: the question is real, and there is a future in which it can be answered. (4) Glass-polish tell fires per Game Bible &sect;7.3 (he cannot address it directly &mdash; the polish IS the answer). (5) The Sam Malone register (Style Sheet) holds: a flat, dry, hospitable line that sounds like banter and lands as something else. (6) "Some questions get easier to answer the longer the asker stays" is a Tiberius-voice paraphrase of the bond gate &mdash; the player cannot decode it that way without the Game Bible, but they will feel it as: <em>he is not refusing, he is timing.</em> <strong>FULL-GAME PAYOFF:</strong> $stoolAskedEarly = true is checked at Mo St&oacute;r Return After Sun (Bond 3+, Story Bible Empty Stool table). For players who asked, Tiberius's chrysanthemum gesture is placed deliberately in their line of sight rather than at the periphery &mdash; a silent acknowledgment that they asked once, did not push, and stayed. The gesture is unchanged; the camera (narrator's eye) is not. For players who did not ask, the gesture happens at the periphery as written.</div> <<if $s2BarEntered>> <div class="choice"><<link "&#x25B7; Step back from the bar." "Demo3_S2_ToBar">><</link>><span class="hint"></span></div> <<else>> <div class="choice"><<link "&#x25B7; Step back. Look at the room again." "Demo3_S2_RoomRead">><</link>><span class="hint"></span></div> <</if>> <div class="choice"><<link "&#x25B7; Go to Fang." "Demo3_S2_ToFang">><</link>><span class="hint"></span></div> <</if>> <!-- © Studio Zisha 2026 -->/* v25 LEGACY ROUTER: prior forced-chain landing point. The Wall passage was the middle stop in the old RoomRead -> Wall -> StoolNotice -> ToFang chain. Preserved as a transparent goto so any save state or external link landing here resolves cleanly to the new hub-and-spoke architecture. Functionally identical to entering the hub: the player will see the wall as one of the hub's parallel options. v26+ may delete this passage entirely if no extant save points reference it. © Studio Zisha 2026 */ <<goto "Demo3_S2_RoomRead_Wall">>/* v25 LEGACY ROUTER: prior forced-chain landing point. See Demo3_S2_Wall note. © Studio Zisha 2026 */ <<goto "Demo3_S2_RoomRead_Stool">><<if $clareEngageStatus is undefined>><<set $clareEngageStatus = "unread">><</if>> <<soctrack "s2_action" "to_fang">> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=rL3VtPTr5sA" target="_blank">I Am the Only One</a></span><span class="music-meta">Melissa Etheridge &middot; 8 bars, opening guitar. Please Call My Name fades; the riff enters as Fang turns. Resumes Please Call My Name after.</span></div> <div class="two-pane"> <div class="game-pane"> <<socportraits>> <<if not $sharedWallRead and not $stoolNoticed and not $s2BarEntered>> <p>You cross the room to Fang. You do not slow down. But on the way you pass the wall. Fragments etched and worked into the beams, more than you remember. The quest board, where two notices have been pulled down without their pins. At the far end of the bar a stool nobody is sitting on. None of it asks you to stop. All of it registers.</p> <p>Then Fang. She adjusts her stance by half a stride when she notices you move. That is the greeting.</p> <<else>> <p>You cross the room to Fang. She adjusts her stance by half a stride when she notices you move. That is the greeting.</p> <</if>> <div class="dlg"><span class="who fang">Fang:</span> <span class="line">&ldquo;<<print $avatarName>>. Good.&rdquo;</span></div> <p>A beat. Her eyes go to the door, then back to you.</p> <div class="dlg"><span class="who fang">Fang:</span> <span class="line">&ldquo;We'll start before the vampire gets here.&rdquo;</span></div> <p>Marcus, from the bench, without turning:</p> <div class="dlg"><span class="who marcus">Marcus:</span> <span class="line">&ldquo;Sit. Wait. He'll come.&rdquo;</span></div> <<if not $sharedWallRead and not $stoolNoticed and not $s2BarEntered>> <div class="sys note"><strong>DESIGN NOTE &mdash; PERIPHERAL ATTENTION FLOOR (v25):</strong> Players who chose "Go to Fang" directly from Demo3_S2_MoStor_Read previously skipped the entire investigative-attention layer. The conditional paragraph above gives them peripheral-vision exposure to the wall, the pulled notices, and the stool &mdash; without setting any flags ($sharedWallRead, $stoolNoticed, etc. remain false because the player did not <em>attend to</em> the surfaces, only saw them in passing). This is the floor: every branch from the MoStor_Read screen now ends with the player having at least one piece of investigative-layer context. Branch differentiation is preserved by what attending vs glancing earns: the Read path earns wall content, the stool noticing, and access to the elevated stool-ask beat; the Bar path earns Sera or pulled-notices dialogue and access to the elevated stool-ask beat; the Fang path earns nothing flagged but also pays no time-cost. Three flavors of attention, all with non-zero floors.</div> <</if>> </div> <div class="chat-pane"> <div class="chat-tabs"> <span class="chat-tab">Guild</span> <span class="chat-tab active">Whisper</span> </div> <div class="chat-timestamp">just now</div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">hey, got a sec before you go in?</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">melissa etheridge is so on-brand for fang. 90s feminist energy and i am here for it.</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">need to talk about lawrence.</span></div> <<set $lastChatSender = "Clare">><<set $lastChatText = "need to talk about lawrence.">><<set $lastChatChannel = "Whisper">><<set $lastChatCssClass = "clare">> </div> </div> <<if $clareEngageStatus === "unread">><div class="choice"><<link "&#x25B7; Read Clare's whisper while you wait." "Demo3_S3_Clare_Open">><</link>><span class="hint"></span></div><</if>> <div class="choice"><<link "&#x25B7; Ask Fang to start." "Demo3_S2_ToFang_Fang">><</link>><span class="hint"></span></div> <div class="choice"><<link "&#x25B7; Sit with Marcus. Wait for Lawrence." "Demo3_S2_ToFang_Marcus">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><<set $pacingChoice = "fang">> <<set $fang += 1>> <<soctrack "s2_pacing_choice" "fang">> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=O2xowk-Lkpc" target="_blank">Please Call My Name</a></span><span class="music-meta">2PM &middot; continues</span></div> <div class="two-pane"> <div class="game-pane"> <<socportraits>> <p>Fang catches the question before you say it. Her eyes flick to you, then to the door, and back. She gives a small head-shake. <em>Not yet. Give it another minute.</em></p> <p>Marcus, from the bench, does not rise. He is willing to wait as long as Fang is.</p> <div class="sys note"><strong>DESIGN NOTE &mdash; STAGING FIX + LATENT CALLBACK (v26):</strong> Previously this passage opened with &ldquo;You stand.&rdquo; and offered the forward choice &ldquo;Walk to Fang. Time to move.&rdquo; Both were broken staging: Fortune is already standing at Fang&rsquo;s table from <code>Demo3_S2_ToFang</code> (&ldquo;You cross the room to Fang&rdquo;), so neither <em>standing</em> nor <em>walking to Fang</em> describes any motion the player can perform. Surfaced through playtest as a continuity error. Fix: opener becomes &ldquo;Fang catches the question before you say it&rdquo; &mdash; the silent-ask is implied by the upstream choice (&ldquo;Ask Fang to start&rdquo;) and Fang&rsquo;s response is what the player sees. This is in-register for Fang's caravan-instinct read of Fortune (Style Sheet &sect;5 Fang voice register: the half-stride pickup, the Fang-Lawrence silent-comms pattern). The Marcus-doesn&rsquo;t-rise beat is preserved as the room&rsquo;s co-signing of Fang&rsquo;s pause. <strong>Forward-choice text:</strong> &ldquo;Make the call.&rdquo; This is a latent callback to Tiberius&rsquo;s line at <code>Demo3_S2_ToBar</code>: <em>&ldquo;She&rsquo;s waiting for someone to tell her it&rsquo;s okay to move.&rdquo;</em> Players who took the Bar path heard Tiberius diagnose what Fang was waiting for; the &ldquo;Make the call&rdquo; choice is the moment they provide it. The choice rewards prior attention without punishing the players who didn&rsquo;t take that path &mdash; for non-Bar-path players, &ldquo;Make the call&rdquo; reads as clean in-register decisional language. The two-layer reading is bar-path-only; the surface affordance is universal. This is Style Sheet &sect;9 (<em>Information Is Earned</em>) operating at the choice-text level rather than the prose level. <strong>Architectural principle:</strong> choice text can carry latent callbacks to upstream observations, lighting up for path-coherent players without becoming inscrutable for others. Cross-references the previous design note at <code>Demo3_S2_ToBar</code> &sect;HUB-AND-SPOKE which establishes Tiberius&rsquo;s &ldquo;she&rsquo;s waiting&rdquo; as one-time framing (now protected by v26 first-visit-vs-return branching). <strong>Surfaced through playtest:</strong> the founder caught both the staging error and the callback opportunity in the same beat &mdash; the first by reading the screen against the upstream, the second by hearing &ldquo;Make the call&rdquo; resonate against Tiberius&rsquo;s line. The catch produced a craft upgrade, not just a bug fix.</div> </div> <div class="chat-pane dim"> <div class="chat-tabs"> <span class="chat-tab">Guild</span> <span class="chat-tab active">Whisper</span> </div> <div class="chat-timestamp">just now</div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">hey, got a sec before you go in?</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">need to talk about lawrence.</span></div> <<set $lastChatSender = "Clare">><<set $lastChatText = "need to talk about lawrence.">><<set $lastChatChannel = "Whisper">><<set $lastChatCssClass = "clare">> </div> </div> <<if $clareEngageStatus === "unread">><div class="choice"><<link "&#x25B7; Read Clare's whisper while you wait." "Demo3_S3_Clare_Open">><</link>><span class="hint"></span></div><</if>> <div class="choice"><<link "&#x25B7; Make the call." "Demo3_S3_PathChoice_NoClare">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><<set $pacingChoice = "marcus">> <<set $marcus += 1>> <<soctrack "s2_pacing_choice" "marcus">> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=O2xowk-Lkpc" target="_blank">Please Call My Name</a></span><span class="music-meta">2PM &middot; continues</span></div> <div class="two-pane"> <div class="game-pane"> <<socportraits>> <p>You sit on the bench beside Marcus.</p> <p>Across the room, Tiberius has not yet looked up from the glass.</p> <p>Then he does.</p> <p>He sets the glass down. He picks up a cup from the shelf behind him, fills it, and walks out from behind the bar.</p> <div class="dlg"><span class="who fang">Fang:</span> <span class="line">&ldquo;Bar's on fire, then?&rdquo;</span></div> <div class="dlg"><span class="who marcus">Marcus:</span> <span class="line">&ldquo;We should inscribe this moment.&rdquo;</span></div> <p>Tiberius, passing Fang's shoulder, does not stop:</p> <div class="dlg"><span class="who tiberius">Tiberius:</span> <span class="line">&ldquo;Mind your glasses.&rdquo;</span></div> </div> <div class="chat-pane dim"> <div class="chat-tabs"> <span class="chat-tab">Guild</span> <span class="chat-tab active">Whisper</span> </div> <div class="chat-timestamp">just now</div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">hey, got a sec before you go in?</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">need to talk about lawrence.</span></div> <<set $lastChatSender = "Clare">><<set $lastChatText = "need to talk about lawrence.">><<set $lastChatChannel = "Whisper">><<set $lastChatCssClass = "clare">> </div> </div> <<if $clareEngageStatus === "unread">><div class="choice"><<link "&#x25B7; Read Clare's whisper while you wait." "Demo3_S3_Clare_Open">><</link>><span class="hint"></span></div><</if>> <div class="choice"><<link "&#x25B7; Watch him approach." "Demo3_S2_ToFang_Marcus_Tea">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><<soctrack "s2_tea_offered" "true">> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=O2xowk-Lkpc" target="_blank">Please Call My Name</a></span><span class="music-meta">2PM &middot; continues</span></div> <div class="two-pane"> <div class="game-pane"> <<socportraits>> <p>He sets a cup of cardamom tea in front of you. Both hands on the saucer, the way tea is served east of Constantinople. The scent reaches you before the cup does. Warm, non-committal.</p> <div class="dlg"><span class="who tiberius">Tiberius:</span> <span class="line">&ldquo;Drink before you listen.&rdquo;</span></div> <p>He looks at you. You can see a decision in his eyes.</p> <p>The cup waits.</p> </div> <div class="chat-pane dim"> <div class="chat-tabs"> <span class="chat-tab">Guild</span> <span class="chat-tab active">Whisper</span> </div> <div class="chat-timestamp">just now</div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">hey, got a sec before you go in?</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">need to talk about lawrence.</span></div> <<set $lastChatSender = "Clare">><<set $lastChatText = "need to talk about lawrence.">><<set $lastChatChannel = "Whisper">><<set $lastChatCssClass = "clare">> </div> </div> <<if $clareEngageStatus === "unread">><div class="choice"><<link "&#x25B7; Read Clare's whisper while you wait." "Demo3_S3_Clare_Open">><</link>><span class="hint"></span></div><</if>> <div class="choice"><<link "&#x25B7; Take the cup." "Demo3_S2_Tea_Take">><</link>><span class="hint"></span></div> <div class="choice"><<link "&#x25B7; Leave the cup where it is." "Demo3_S2_Tea_Decline">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><<if not $s2TeaChoiceMade>> <<set $s2TeaChoiceMade = true>> <<set $s2TeaChoice = "take">> <<set $tiberius += 1>> <<set $fang += 1>> <<set $marcus += 1>> <<soctrack "s2_tea_choice" "take">> <</if>> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=O2xowk-Lkpc" target="_blank">Please Call My Name</a></span><span class="music-meta">2PM &middot; continues</span></div> <div class="two-pane"> <div class="game-pane"> <<socportraits>> <p>You take the cup. Both hands. The way it was offered.</p> <div class="dlg"><span class="who fang">Fang:</span> <span class="line">&ldquo;First time he's put down the cloth in three weeks.&rdquo;</span></div> <div class="dlg"><span class="who marcus">Marcus:</span> <span class="line">&ldquo;Eight.&rdquo;</span></div> <div class="dlg"><span class="who fang">Fang:</span> <span class="line">&ldquo;Weeks?&rdquo;</span></div> <div class="dlg"><span class="who marcus">Marcus:</span> <span class="line">&ldquo;Days.&rdquo;</span></div> <p>Fang snorts. It is the softest sound she has made since you walked in.</p> <p>Tiberius, already halfway back to the bar:</p> <div class="dlg"><span class="who tiberius">Tiberius:</span> <span class="line">&ldquo;Count again and it's on your tab.&rdquo;</span></div> <p>The tea is exactly as hot as tea should be. You drink.</p> </div> <div class="chat-pane dim"> <div class="chat-tabs"> <span class="chat-tab">Guild</span> <span class="chat-tab active">Whisper</span> </div> <div class="chat-timestamp">just now</div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">hey, got a sec before you go in?</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">need to talk about lawrence.</span></div> <<set $lastChatSender = "Clare">><<set $lastChatText = "need to talk about lawrence.">><<set $lastChatChannel = "Whisper">><<set $lastChatCssClass = "clare">> </div> </div> <<if $clareEngageStatus === "unread">><div class="choice"><<link "&#x25B7; Read Clare's whisper." "Demo3_S3_Clare_Open">><</link>><span class="hint"></span></div><</if>> <div class="choice"><<link "&#x25B7; Walk to Fang. Time to move." "Demo3_S3_PathChoice_NoClare">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><<if not $s2TeaChoiceMade>> <<set $s2TeaChoiceMade = true>> <<set $s2TeaChoice = "decline">> <<set $tiberius += 1>> <<set $fang += 1>> <<set $marcus += 1>> <<soctrack "s2_tea_choice" "decline">> <</if>> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=O2xowk-Lkpc" target="_blank">Please Call My Name</a></span><span class="music-meta">2PM &middot; continues</span></div> <div class="two-pane"> <div class="game-pane"> <<socportraits>> <p>The cup sits in front of you. You do not lift it. Not refusing. Just not yet. Your hands stay where they are.</p> <p>Tiberius does not say anything. He nods once. Whatever he saw in your face, he recognized.</p> <p>Fang glances at you, then at the cup, then away. Marcus does not look at you. He is still tracking the door.</p> <p>Tiberius walks back to the bar. The cup stays where it is, warm.</p> </div> <div class="chat-pane dim"> <div class="chat-tabs"> <span class="chat-tab">Guild</span> <span class="chat-tab active">Whisper</span> </div> <div class="chat-timestamp">just now</div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">hey, got a sec before you go in?</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">need to talk about lawrence.</span></div> <<set $lastChatSender = "Clare">><<set $lastChatText = "need to talk about lawrence.">><<set $lastChatChannel = "Whisper">><<set $lastChatCssClass = "clare">> </div> </div> <<if $clareEngageStatus === "unread">><div class="choice"><<link "&#x25B7; Read Clare's whisper." "Demo3_S3_Clare_Open">><</link>><span class="hint"></span></div><</if>> <div class="choice"><<link "&#x25B7; Walk to Fang. Time to move." "Demo3_S3_PathChoice_NoClare">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><<set _firstBar = not $s2BarEntered>> <<if not $s2BarEntered>> <<set $s2BarEntered = true>> <<set $tiberius += 1>> <<soctrack "s2_action" "to_bar">> <</if>> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=O2xowk-Lkpc" target="_blank">Please Call My Name</a></span><span class="music-meta">2PM &middot; continues</span></div> <div class="two-pane"> <div class="game-pane"> <<socportraits>> <p>Tiberius does not look up.</p> <<if _firstBar>> <p>Tiberius reaches under the bar and brings up a single dried white flower, the kind that holds its shape but has lost its color. He lays it on the bar.</p> <p>He pours dark wine, unmixed, slowly. The way someone pours when the drink is for someone they remember.</p> <p>He walks the glass to the far end of the bar and sets it in front of the empty stool. The flower next to it. A small white candle beside the flower, unlit. A stick of incense in a brass holder; the thread of smoke begins to rise.</p> <p>No bow. No words. He walks back.</p> <div class="dlg"><span class="who tiberius">Tiberius:</span> <span class="line">&ldquo;She's waiting for someone to tell her it's okay to move.&rdquo;</span></div> <p>He says it to the bar, not to you. He glances at Fang once, then back. Whatever else he has to say tonight, he is willing to be asked for.</p> <</if>> </div> <div class="chat-pane dim"> <div class="chat-tabs"> <span class="chat-tab">Guild</span> <span class="chat-tab active">Whisper</span> </div> <div class="chat-typing">Clare is typing&hellip;</div> </div> </div> <div class="sys note"><strong>DESIGN NOTE &mdash; HUB-AND-SPOKE (v25 restructure):</strong> Replaces the prior dead-end ToBar passage that delivered three pieces of intel as a Tiberius monologue with a single forced "Go to Fang" exit. Tiberius's three observations (Fang's hesitation, the pulled notices, Sera's letters) are now spokes the player can probe in any order. Each spoke is short and loops back here. The player who walks to the bar can leave with one piece of context, two, or all three; they make the choice. Fang's "she's waiting" is given as the framing line on entry because it's the one observation that's <em>about the player's situation right now</em> and would be unhelpful to gate behind a click.</div> <div class="sys note"><strong>DESIGN NOTE &mdash; FIRST-VISIT vs. RETURN-VISIT BRANCHING (v26 fix):</strong> Continuity bug previously rendered the entire first-arrival prose block on every return visit to the hub, including from spoke passages where the player has just been talking to Tiberius. The bug repeated four distinct continuity errors per return: (1) staging Fortune as walking to a bar she's already at, (2) firing the &ldquo;polishes the glass a second time&rdquo; macro on what would actually be the third or fourth polish, (3) re-staging the &ldquo;does not fill it&rdquo; observation that&rsquo;s already been established, and (4) repeating Tiberius&rsquo;s framing line about Fang &mdash; which is load-bearing as a one-time observation and degrades sharply if repeated. <strong>Fix:</strong> the first-arrival prose block is gated on a temp variable <code>_firstBar</code> captured at the top of the passage before <code>$s2BarEntered</code> is set true. On return visits, the gated block is omitted entirely. <strong>The &ldquo;You walk to the bar&rdquo; opener was cut entirely:</strong> Fortune walking to the bar is named in the upstream choice text and doesn't need restating in destination prose (Style Sheet &sect;7 Don&rsquo;t Restate). <strong>&ldquo;Tiberius does not look up&rdquo; lifted outside the gate:</strong> not-looking-up is Tiberius&rsquo;s baseline posture (it&rsquo;s also his default in the Sera and Notices spoke openers), not an arrival-event. Restaging baseline-posture on return is not a continuity error &mdash; it&rsquo;s describing the room&rsquo;s ongoing state, the same way the portrait redraw isn&rsquo;t a restatement. This distinguishes <em>staging continuity</em> (events that happened in the prose timeline) from <em>baseline-posture restatement</em> (character-default-state that's true at every visit). The fix gates the former and lifts the latter. <strong>Architectural principle:</strong> any hub passage that can be re-entered must distinguish first-visit-only staging from baseline-posture observation. Prose that names character defaults can fire every visit; prose that names arrival events must be gated. This is a refinement of the prose-channel principle that renderable surfaces have to know their state &mdash; the state being rendered against may be either timeline-state (gate it) or baseline-state (don&rsquo;t). Cross-references the Two-Bed Audio Architecture in Music Architecture &sect;1.7, which applies the same state-aware principle to the audio channels.</div> <<if not $s2BarSeraAsked>><div class="choice"><<link "&#x25B7; 'Anyone been in tonight worth knowing about?'" "Demo3_S2_ToBar_Sera">><</link>><span class="hint"></span></div><</if>> <<if not $s2BarNoticesAsked>><div class="choice"><<link "&#x25B7; 'What's been coming down?'" "Demo3_S2_ToBar_Notices">><</link>><span class="hint"></span></div><</if>> <div class="choice"><<link "&#x25B7; Go to Fang." "Demo3_S2_ToFang">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><<set $s2BarSeraAsked = true>> <<soctrack "s2_action" "bar_sera">> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=O2xowk-Lkpc" target="_blank">Please Call My Name</a></span><span class="music-meta">2PM &middot; continues</span></div> <div class="two-pane"> <div class="game-pane"> <<socportraits>> <p>Tiberius doesn't look up.</p> <div class="dlg"><span class="who tiberius">Tiberius:</span> <span class="line">&ldquo;Depends what you mean by worth.&rdquo;</span></div> <<soctibtell "He takes a small pair of snips to the wick of the bar candle nearest him. The flame settles. The pause is not a stall. It's a question being held open until you say something that earns the rest.">> <div class="sys note"><strong>DESIGN NOTE &mdash; CHALLENGE-AND-DEFLECT (v26 rewrite):</strong> The previous version of this passage had Tiberius monologue Sera's full profile (her name, her habits, her isolation, her significance) at a stranger who'd asked a vague leading question. That was out of character on three counts: (1) Tiberius is fili-trained &mdash; a caste whose purpose is calibrating disclosure; (2) he's been running a working bar for 200 years and does not volunteer operational intelligence about quiet, deliberately-low-profile regulars to people who walked in twenty minutes ago; (3) it violated the Style Sheet's *Information Is Earned* principle (&sect;9). The corrected beat: Tiberius deflects warmly (Sam Malone register: "depends what you mean by worth") and waits. The pause is the question being held open. The player either earns the next line by giving a real reason, or drops it &mdash; and dropping it is also rewarded, because the not-pushing is itself a thing Tiberius reads. See &sect;4.5 Tiberius philosophical-grounding for the fili context. Cross-reference: Story Bible Empty Stool Architecture (the ask-and-defer beat) is the related but bond-gated full version of this mechanic; this one fires at Bond 0&ndash;1 with a smaller payload because the question is operational rather than personal.</div> </div> <div class="chat-pane dim"> <div class="chat-tabs"> <span class="chat-tab">Guild</span> <span class="chat-tab active">Whisper</span> </div> <div class="chat-typing">Clare is typing&hellip;</div> </div> </div> <div class="choice"><<link "&#x25B7; 'Something's wrong in the harbor and I don't know who'd know.'" "Demo3_S2_ToBar_Sera_Honest">><</link>><span class="hint"></span></div> <div class="choice"><<link "&#x25B7; Drop it." "Demo3_S2_ToBar_Sera_Drop">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><<set $tiberius += 1>> <<set $pres += 1>> <<soctrack "s2_action" "bar_sera_honest">> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=O2xowk-Lkpc" target="_blank">Please Call My Name</a></span><span class="music-meta">2PM &middot; continues</span></div> <div class="two-pane"> <div class="game-pane"> <<socportraits>> <p>Tiberius looks up. Just for a second. Long enough to take your measure. Then back down.</p> <div class="dlg"><span class="who tiberius">Tiberius:</span> <span class="line">&ldquo;Sera. Harbormaster. Twenty years at it. Office is the stone building past slip three.&rdquo;</span></div> <p>He shifts a stack of cups one position over on the back shelf. The motion is even.</p> <div class="dlg"><span class="who tiberius">Tiberius:</span> <span class="line">&ldquo;She files reports. Has for a while. I don't read them.&rdquo;</span></div> <p>A small shrug. He's done.</p> <div class="dlg"><span class="who tiberius">Tiberius:</span> <span class="line">&ldquo;If you want her, knock during the day. She's a careful woman. Be careful with her.&rdquo;</span></div> <div class="sys note"><strong>DESIGN NOTE &mdash; THE SLIVER:</strong> What Tiberius gives here, on Bond 0&ndash;1, is the operational minimum: name, role, location, the public fact of unread reports, and a courtesy instruction. He does not give her interior life ("doesn't drink with the dock crews"), her isolation, his read of her, or an endorsement of her as the answer to anything. The closing line ("be careful with her") is the only personal thing he says, and it's not about Sera &mdash; it's about the player, framed as a request. He is doing two things at once: giving the player enough to act, and putting the player on notice that he is watching how they handle it. Story Bible Sera profile (&sect;3.5) treats consent-first approach as the path that earns Tiberius Bond +1 in the full game; that mechanic has been previewed here at the bar.</div> </div> <div class="chat-pane dim"> <div class="chat-tabs"> <span class="chat-tab">Guild</span> <span class="chat-tab active">Whisper</span> </div> <div class="chat-typing">Clare is typing&hellip;</div> </div> </div> <div class="sys good"><strong>&#10003; RESONANCE:</strong> Tiberius Bond +1. PRES +1. You named the real thing. He gave you the working answer.</div> <<if not ($s2BarSeraAsked and $s2BarNoticesAsked)>><div class="choice"><<link "&#x25B7; Back to the bar." "Demo3_S2_ToBar">><</link>><span class="hint"></span></div><</if>> <div class="choice"><<link "&#x25B7; Go to Fang." "Demo3_S2_ToFang">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><<set $tiberius += 1>> <<set $flow += 1>> <<soctrack "s2_action" "bar_sera_drop">> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=O2xowk-Lkpc" target="_blank">Please Call My Name</a></span><span class="music-meta">2PM &middot; continues</span></div> <div class="two-pane"> <div class="game-pane"> <<socportraits>> <div class="dlg"><span class="who ishani"><<print $avatarName>>:</span> <span class="line">&ldquo;Never mind.&rdquo;</span></div> <p>Tiberius nods. Once. He turns to the brazier and gives the coals a slow rake.</p> <div class="dlg"><span class="who tiberius">Tiberius:</span> <span class="line">&ldquo;Drink?&rdquo;</span></div> <p>The conversation is over. He has registered exactly what just happened. You asked, you got nothing, you didn't push. He has filed it without comment.</p> <div class="sys note"><strong>DESIGN NOTE &mdash; THE NOT-PUSHING:</strong> The drop-it path gives the player no information about Sera but ticks Tiberius Bond and FLOW because the player demonstrated they understood the deflection without needing it explained. This is the rarer instinct &mdash; most players will press for the information. The player who reads the Sam Malone deflection accurately and lets it stand is the player Tiberius will eventually trust with more. The bond-tick here is invisible to the player (no system message names what they did right) because explaining it would dilute the mechanic that's being rewarded: <em>noticing without naming</em>. Cross-reference: Style Sheet &sect;9 *Information Is Earned* and the broader Story Bible recognition-architecture; the player who didn't push is exhibiting the same disposition Fortune is being characterized as having.</div> </div> <div class="chat-pane dim"> <div class="chat-tabs"> <span class="chat-tab">Guild</span> <span class="chat-tab active">Whisper</span> </div> <div class="chat-typing">Clare is typing&hellip;</div> </div> </div> <div class="sys good"><strong>&#10003; RESONANCE:</strong> Tiberius Bond +1. FLOW +1. He noticed.</div> <<if not ($s2BarSeraAsked and $s2BarNoticesAsked)>><div class="choice"><<link "&#x25B7; Back to the bar." "Demo3_S2_ToBar">><</link>><span class="hint"></span></div><</if>> <div class="choice"><<link "&#x25B7; Go to Fang." "Demo3_S2_ToFang">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><<set $s2BarNoticesAsked = true>> <<soctrack "s2_action" "bar_notices">> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=O2xowk-Lkpc" target="_blank">Please Call My Name</a></span><span class="music-meta">2PM &middot; continues</span></div> <div class="two-pane"> <div class="game-pane"> <<socportraits>> <p>Tiberius's eyes go to the quest board. He keeps them there a beat.</p> <div class="dlg"><span class="who tiberius">Tiberius:</span> <span class="line">&ldquo;Salvage calls. Small jobs near the jetty. Harbor labor. Three this week. None of them finished.&rdquo;</span></div> <<soctibtell "He turns to the fire and adds a single split log. He does not adjust it; he lets it find its place.">> <div class="dlg"><span class="who tiberius">Tiberius:</span> <span class="line">&ldquo;The pins are mine. I leave the empty squares so the room remembers what was there.&rdquo;</span></div> <p>He doesn't look up.</p> <div class="dlg"><span class="who tiberius">Tiberius:</span> <span class="line">&ldquo;That's part of what the room is for.&rdquo;</span></div> <div class="sys note"><strong>DESIGN NOTE &mdash; CATEGORY-DISCLOSURE PERMITTED, TEMPORAL DEEPENING GATED (v26 rewrite, refined v26.x):</strong> What Tiberius volunteers here is <em>category</em> intel readable from the board itself: salvage / harbor labor / jetty-adjacent work, three this week, none finished. Anyone walking past the quest board can see which kinds of work are pinned vs. unpinned; this is room-state observation, not customer surveillance. That's in-character at any bond level: bartenders read the room they run. What was out of character in the previous version was Tiberius volunteering detailed observation of an individual customer's behavior to a stranger. The corrected passage gives the player the category-level signal in the opener and keeps the deeper temporal pattern (the three-weeks-worsening narrative, "the hands aren't taking it") behind the "How long has work been slowing?" follow-up choice. <strong>Earlier (v26 boring-choice fix):</strong> the player-facing choice text was reworded from "Why are notices coming down off your board?" (telegraphed surface-mechanical question, gated philosophy as the answer) to "What's been coming down?" (substantive operational question, gates category-of-work as the answer). The "boring choice" diagnostic: a choice feels boring when the destination prose isn't earning its presence in the game. Restructure the destination first, then write choice text that leans into the new weight. <strong>Follow-up rerouting (v26.x):</strong> the gated follow-up was also reworded from "Who took them down?" to "How long has work been slowing?" because the previous version assumed an active-suppression frame the player had no reason to be in. See <code>Demo3_S2_ToBar_Notices_Who</code> design note for the cosmological-substrate plant the new version routes through.</div> </div> <div class="chat-pane dim"> <div class="chat-tabs"> <span class="chat-tab">Guild</span> <span class="chat-tab active">Whisper</span> </div> <div class="chat-typing">Clare is typing&hellip;</div> </div> </div> <div class="choice"><<link "&#x25B7; 'How long has work been slowing?'" "Demo3_S2_ToBar_Notices_Who">><</link>><span class="hint"></span></div> <<if not ($s2BarSeraAsked and $s2BarNoticesAsked)>><div class="choice"><<link "&#x25B7; Back to the bar." "Demo3_S2_ToBar">><</link>><span class="hint"></span></div><</if>> <div class="choice"><<link "&#x25B7; Go to Fang." "Demo3_S2_ToFang">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><<soctrack "s2_action" "bar_notices_who">> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=O2xowk-Lkpc" target="_blank">Please Call My Name</a></span><span class="music-meta">2PM &middot; continues</span></div> <div class="two-pane"> <div class="game-pane"> <<socportraits>> <p>Tiberius doesn't answer immediately.</p> <<soctibtell "He takes a cloth to a section of the bar that does not need it. The motion is unhurried.">> <div class="dlg"><span class="who tiberius">Tiberius:</span> <span class="line">&ldquo;Three weeks. Salvage calls started staying up past their usual day. Two weeks back, dockhand work stopped clearing inside a shift. This week it stopped clearing at all.&rdquo;</span></div> <p>A beat.</p> <div class="dlg"><span class="who tiberius">Tiberius:</span> <span class="line">&ldquo;It's not slow the way a season is slow. The work is there. The hands aren't taking it.&rdquo;</span></div> <p>He sees more. He doesn't say it.</p> <div class="sys note"><strong>DESIGN NOTE &mdash; TEMPORAL NARRATIVE / COSMOLOGICAL SUBSTRATE PLANT (v26.x rewrite):</strong> The follow-up question was reworded from "Who took them down?" to "How long has work been slowing?" because the original assumed an active-suppression frame (someone is pulling notices to keep eyes off the docks) that the player has no reason to be in this early. The new question treats the harbor as a system with a temporal signature, which is the actual investigative frame the demo wants to teach. <strong>Plant rerouted:</strong> previously this passage prefigured S4 with an unreliable-narration breadcrumb about a specific customer (the unfinished drink, the speed of leaving). The new version routes the plant through cosmological substrate instead: harbor work has been failing for three weeks in a worsening pattern, "the hands aren't taking it" rather than "the work isn't there." This connects directly to S3_Briefing_Cosmology's Water tapestry reveal &mdash; <em>"Hers has been cold for fifty years. The harbor is dying because of it."</em> The systemic decay Tiberius is reading at the bar is the acute phase of a chronic cosmological condition. <strong>Why this is better:</strong> (a) the question is one Sera or Fang would ask &mdash; reading absence is a professional skill, and the choice rewards Fortune for thinking like the genre; (b) the answer space is narrative rather than fact-shaped, which gives Tiberius room to be the harbor's economic reader rather than a customer surveillor; (c) it's consistent with the cosmology already established in S3, rather than introducing a sabotage-frame the demo doesn't otherwise need. <strong>The closing "He sees more. He doesn't say it" line</strong> preserves the fili-trained calibration (he reads more than he discloses) and plants the cosmological-recognition unsaid &mdash; the player who later sees the Water tapestry can connect Tiberius's restraint to <em>he knew, he just didn't have a way to say it that wouldn't unsettle the room</em>. Cross-references: Game Bible &sect;3 Net's Cosmology and Guardian System; Style Sheet &sect;9 Information Is Earned; Style Sheet (pending) video-game-not-a-book register &mdash; the previous draft of this closer ("the shape of it is not yet his to name") was novel-prose; the screen-pace version compresses to the active-voice "He sees more. He doesn't say it."</div> </div> <div class="chat-pane dim"> <div class="chat-tabs"> <span class="chat-tab">Guild</span> <span class="chat-tab active">Whisper</span> </div> <div class="chat-typing">Clare is typing&hellip;</div> </div> </div> <<if not ($s2BarSeraAsked and $s2BarNoticesAsked)>><div class="choice"><<link "&#x25B7; Back to the bar." "Demo3_S2_ToBar">><</link>><span class="hint"></span></div><</if>> <div class="choice"><<link "&#x25B7; Go to Fang." "Demo3_S2_ToFang">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><<set $clareEngageStatus = "engaging">> <div class="loc-tag">&#x1F4CD; Mo St&oacute;r &middot; The Common Room</div> <div class="sys ambient"><span class="ambient-label">Ambient</span><span class="ambient-meta">Low fire, wood, distant voices.</span></div> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=O2xowk-Lkpc" target="_blank">Please Call My Name</a></span><span class="music-meta">2PM &middot; continues</span></div> <<soctrack "scene_enter" "S3">> <div class="two-pane"> <div class="game-pane dim"> <<socportraits>> <img class="scene-image" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/57d319f9-2080-450e-9f6b-c185b8fda2da/Interior_Mo_Stor.jpg?content-type=image%2Fjpeg" alt="The interior of Mo Stór: low lamplight, ship-timber ceiling, stone walls, a bar along one side." loading="lazy" /> <p style="color:#6b7280;font-style:italic;text-align:center;margin-top:2rem;"> Mo St&oacute;r is quiet. Nobody is talking.<br> The fire is the loudest thing in the room. </p> </div> <div class="chat-pane"> <div class="chat-tabs"> <span class="chat-tab">Guild</span> <span class="chat-tab active">Whisper</span> </div> <div class="chat-timestamp">Tonight 9:51 PM</div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">okay so. lawrence.</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">i talked to byung-ho yesterday. he's not playing tonight. he said he wasn't feeling well but i think it's something to do with his ex.</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">normally i'd play fang as going to immediately look for lawrence. i don't think we should. i think we figure out how to move forward without byung-ho tonight, or do a side quest with lawrence on follow. thoughts?</span></div> <<set $lastChatSender = "Clare">><<set $lastChatText = "normally i'd play fang as going to immediately look for lawrence. i don't think we should. i think we figure out how to move forward without byung-ho tonight, or do a side quest with lawrence on follow. thoughts?">><<set $lastChatChannel = "Whisper">><<set $lastChatCssClass = "clare">> </div> </div> <div class="choice"><<link "&#x25B7; 'is byung-ho okay?'" "Demo3_S3_Clare_What">><</link>><span class="hint"></span></div> <div class="choice"><<link "&#x25B7; 'side quest. lawrence stays on follow.'" "Demo3_S3_Clare_Fang">><</link>><span class="hint"></span></div> <div class="choice"><<link "&#x25B7; 'why shouldn't we go look?'" "Demo3_S3_Clare_Why">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><<set $clareBond += 1>> <<soctrack "s3_action" "ask_byungho">> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=O2xowk-Lkpc" target="_blank">Please Call My Name</a></span><span class="music-meta">2PM &middot; continues</span></div> <div class="two-pane"> <div class="game-pane dim"> <<socportraits>> <p style="color:#6b7280;font-style:italic;text-align:center;margin-top:2rem;"> The cardamom tea Tiberius set down is going cold. You haven't touched it since you sat down. Across the room, Tiberius has gone back behind the bar; he putters while waiting for Lawrence to show. </p> </div> <div class="chat-pane"> <div class="chat-tabs"> <span class="chat-tab">Guild</span> <span class="chat-tab active">Whisper</span> </div> <div class="chat-msg me"><span class="who-name">Ishani:</span> <span class="text">is byung-ho okay?</span></div> <div class="chat-typing">Clare is typing&hellip;</div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">honestly? i think he's having a week and doesn't want to bring it into the session.</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">he didn't say much yesterday. just that he wasn't feeling up to it tonight.</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">i didn't push. but his ex started reaching out again last month and i think this is that.</span></div> <div class="chat-msg me"><span class="who-name">Ishani:</span> <span class="text">i hope he's okay. thanks for letting me know.</span></div> <<set $lastChatSender = "Ishani">><<set $lastChatText = "i hope he's okay. thanks for letting me know.">><<set $lastChatChannel = "Whisper">><<set $lastChatCssClass = "me">> </div> </div> <div class="choice"><<link "&#x25B7; 'so what's the plan?'" "Demo3_S3_ClareCostly">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><<set $pres += 1>> <<set $clareBond += 1>> <<soctrack "s3_action" "side_quest">> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=O2xowk-Lkpc" target="_blank">Please Call My Name</a></span><span class="music-meta">2PM &middot; continues</span></div> <div class="two-pane"> <div class="game-pane dim"> <<socportraits>> <p style="color:#6b7280;font-style:italic;text-align:center;margin-top:2rem;"> Fang has not looked at the door since the fire last settled. For Fang, that is a long time. The flat of her blade is across her thigh; her hand is on the table. </p> </div> <div class="chat-pane"> <div class="chat-tabs"> <span class="chat-tab">Guild</span> <span class="chat-tab active">Whisper</span> </div> <div class="chat-msg me"><span class="who-name">Ishani:</span> <span class="text">side quest. lawrence stays on follow.</span></div> <div class="chat-typing">Clare is typing&hellip;</div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">yeah. exactly that.</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">partial honesty though. i'm writing fang tonight while also checking on my kid every ten minutes because she has a fever, and i am TIRED. fang is tired. fang is not going to be gentle with herself tonight.</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">a side quest is what i can do. a lawrence hunt is what i can't.</span></div> <<set $lastChatSender = "Clare">><<set $lastChatText = "a side quest is what i can do. a lawrence hunt is what i can't.">><<set $lastChatChannel = "Whisper">><<set $lastChatCssClass = "clare">> </div> </div> <p>You wonder how Clare manages kids, work, and life. You don't think you could do that.</p> <div class="choice"><<link "&#x25B7; 'got it. what do you want me to do in the room?'" "Demo3_S3_ClareCostly">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><<set $dex += 1>> <<soctrack "s3_action" "push_why">> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=O2xowk-Lkpc" target="_blank">Please Call My Name</a></span><span class="music-meta">2PM &middot; continues</span></div> <div class="two-pane"> <div class="game-pane dim"> <<socportraits>> <p style="color:#6b7280;font-style:italic;text-align:center;margin-top:2rem;"> The merchant quarter outside is closing. You can hear a cart being rolled into a doorway, far off. Inside the room, nothing is moving fast. </p> </div> <div class="chat-pane"> <div class="chat-tabs"> <span class="chat-tab">Guild</span> <span class="chat-tab active">Whisper</span> </div> <div class="chat-msg me"><span class="who-name">Ishani:</span> <span class="text">why shouldn't we go look?</span></div> <div class="chat-typing">Clare is typing&hellip;</div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">with lawrence on follow, we shouldn't take on a complex fight. let's see what's going on at the docks instead.</span></div> <<set $lastChatSender = "Clare">><<set $lastChatText = "with lawrence on follow, we shouldn't take on a complex fight. let's see what's going on at the docks instead.">><<set $lastChatChannel = "Whisper">><<set $lastChatCssClass = "clare">> </div> </div> <div class="choice"><<link "&#x25B7; 'fair. what do you want me to do in the room?'" "Demo3_S3_ClareCostly">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><<set $clareEngageStatus = "engaged">> <<set $clareBond += 1>> <<set $waitOrTypeOutcome = "wait">> <<set $heartbeatEarned = true>> <<soctrack "s3_costly_beat" "enter">> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=O2xowk-Lkpc" target="_blank">Please Call My Name</a></span><span class="music-meta">2PM &middot; continues</span></div> <div class="two-pane"> <div class="game-pane dim"> <<socportraits>> <img class="scene-image" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/57d319f9-2080-450e-9f6b-c185b8fda2da/Interior_Mo_Stor.jpg?content-type=image%2Fjpeg" alt="The interior of Mo Stór: low lamplight, ship-timber ceiling, stone walls, a bar along one side." loading="lazy" /> <p style="color:#6b7280;font-style:italic;text-align:center;margin-top:2rem;"> Mo St&oacute;r keeps holding. The candles on the bar have burned down to mid-stub; Tiberius trimmed them not long ago, and they will need it again before the night is out. </p> </div> <div class="chat-pane"> <div class="chat-tabs"> <span class="chat-tab">Guild</span> <span class="chat-tab active">Whisper</span> </div> <div class="chat-msg me"><span class="who-name">Ishani:</span> <span class="text">what do you want me to do in the room?</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">fang is tired tonight. she's leading because lawrence is on follow.</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">i'm playing her as already past the question of where he is. that's settled for her.</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">you take it from there.</span></div> <<set $lastChatSender = "Clare">><<set $lastChatText = "you take it from there.">><<set $lastChatChannel = "Whisper">><<set $lastChatCssClass = "clare">> </div> </div> <div class="choice"><<link "&#x25B7; Read the room." "Demo3_S3_ClareCostly_Read">><</link>><span class="hint"></span></div> <div class="choice"><<link "&#x25B7; Look up at Fang." "Demo3_S3_ClareCostly_Talk">><</link>><span class="hint"></span></div> <div class="choice"><<link "&#x25B7; Ask Fang why Lawrence asked you to be here." "Demo3_S3_ClareCostly_AskFang">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><<set $waitOrTypeOutcome = "wait">> <<set $heartbeatEarned = true>> <<set $clareBond += 2>> <<set $pres += 2>> <<set $flow += 1>> <<soctrack "s3_costly_choice" "read">> <<soctrack "s3_path" "wait">> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=O2xowk-Lkpc" target="_blank">Please Call My Name</a></span><span class="music-meta">2PM &middot; continues</span></div> <div class="two-pane"> <div class="game-pane"> <<socportraits>> <p>You don't speak first. You cross the room and Fang finds the back of the chair before she finds her seat. She looks at the door once more. Then at you.</p> <p>Marcus, on the bench, shifts an inch. The space beside him is yours if you want it.</p> </div> <div class="chat-pane"> <div class="chat-tabs"> <span class="chat-tab active">Guild</span> <span class="chat-tab">Whisper</span> </div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">actually. one more thing.</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">for context, three kids, mortgage, sick five year old.</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">she's watching bluey on my tablet. i'm in the bathroom on my phone.</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">the ten minutes is real. this session is my ten minutes.</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">that's probably more than you needed to hear. go be with fang.</span></div> <div class="chat-msg byungho"><span class="who-name">Byung-Ho:</span> <span class="text">good. this part is the part.</span></div> <div class="chat-msg me"><span class="who-name">Ishani:</span> <span class="text">i got you. go.</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">&lt;3</span></div> <<set $lastChatSender = "Clare">><<set $lastChatText = "&lt;3">><<set $lastChatChannel = "Guild">><<set $lastChatCssClass = "clare">> </div> </div> <div class="sys good"><strong>&#10003; RESONANCE:</strong> PRES +2. FLOW +1. Clare Bond +2. You let Fang land before you spoke. Clare's second half arrived while you were doing it. You did not rush either room.</div> <div class="sys note"><strong>DESIGN NOTE &mdash; SIMULTANEITY (v26 merge):</strong> Previously the in-world beat (Fang finding her chair, Marcus offering the bench) and the Clare/Byung-Ho meta-layer flood were sequential passages with a Continue between them. In v26 they are simultaneous &mdash; both panes active, no dimming &mdash; because the collision is the point. This is what FFXIV/MMO guild play actually feels like: an in-world moment unfolds on the left while real-life context arrives on the right, and the player holds both at once. The phone-vibration narrative caption ("Your phone vibrates. Clare again.") has been removed; the chat pane is on Ishani's laptop, not her phone, and a phone-vibration line was a continuity error. The Guild tab is active now (was Whisper a moment ago) because Clare has shifted from directorial whisper to public broadcast: Byung-Ho needs to see this. The tab-transition is the register-shift signal. <strong>State-setting redundancy is deliberate.</strong> Each ClareCostly_* variant re-sets $waitOrTypeOutcome = "wait" and $heartbeatEarned = true even though the parent Demo3_S3_ClareCostly passage already sets them on entry. This is defensive: each variant self-documents its wait-path identity, and the redundancy survives any future refactor that might change how variants are entered. The += operations on bonds (clareBond, fang) are NOT redundant &mdash; they compound with the parent's increments to produce the same totals as v25 (parent +1 clareBond + variant +2 = clareBond +3 net, matching v25's parent + WaitPath behavior). v25 stat parity verified across all three variants.</div> <<socjournal "Clare's Ten Minutes" "She told you the session was her ten minutes. She told you sideways while you were crossing the room. You didn't rush the space. Byung-Ho saw it." "irl · bond">> <div class="sys note"><strong>DESIGN NOTE &mdash; HEARTBEAT EARNED:</strong> Wait path taken. Heartbeat payoff will fire in Scene 4, Turn 3. Mobile Scene 5 will receive the full 20-second haptic pattern. Players who take the Type path instead get silence where the music would have been &mdash; they do not know they missed it.</div> <div class="choice"><<link "&#x25B7; Continue." "Demo3_S3_PathChoice">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><<set $waitOrTypeOutcome = "wait">> <<set $heartbeatEarned = true>> <<set $clareBond += 2>> <<set $pres += 1>> <<set $flow += 2>> <<soctrack "s3_costly_choice" "talk">> <<soctrack "s3_path" "wait">> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=O2xowk-Lkpc" target="_blank">Please Call My Name</a></span><span class="music-meta">2PM &middot; continues</span></div> <div class="two-pane"> <div class="game-pane"> <<socportraits>> <div class="dlg"><span class="who ishani"><<print $avatarName>>:</span> <span class="line">&ldquo;Hey.&rdquo;</span></div> <p>Fang's eyes meet yours and stay. She nods, once.</p> <div class="dlg"><span class="who fang">Fang:</span> <span class="line">&ldquo;Hey.&rdquo;</span></div> <p>She sits.</p> </div> <div class="chat-pane"> <div class="chat-tabs"> <span class="chat-tab active">Guild</span> <span class="chat-tab">Whisper</span> </div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">actually. one more thing.</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">for context, three kids, mortgage, sick five year old.</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">she's watching bluey on my tablet. i'm in the bathroom on my phone.</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">the ten minutes is real. this session is my ten minutes.</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">that's probably more than you needed to hear. go be with fang.</span></div> <div class="chat-msg byungho"><span class="who-name">Byung-Ho:</span> <span class="text">good. this part is the part.</span></div> <div class="chat-msg me"><span class="who-name">Ishani:</span> <span class="text">i got you. go.</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">&lt;3</span></div> <<set $lastChatSender = "Clare">><<set $lastChatText = "&lt;3">><<set $lastChatChannel = "Guild">><<set $lastChatCssClass = "clare">> </div> </div> <div class="sys good"><strong>&#10003; RESONANCE:</strong> FLOW +2. PRES +1. Clare Bond +2. You met Fang at the door. Clare's second half arrived in your peripheral vision. Both rooms got what they needed.</div> <<socjournal "Clare's Ten Minutes" "You said hey to Fang. While you were doing it, Clare told you the session was her ten minutes. You didn't pause your greeting. You didn't ignore the chat. Both landed." "irl · bond">> <div class="sys note"><strong>DESIGN NOTE &mdash; HEARTBEAT EARNED:</strong> Wait path taken. Heartbeat payoff will fire in Scene 4, Turn 3. Mobile Scene 5 will receive the full 20-second haptic pattern. Players who take the Type path instead get silence where the music would have been &mdash; they do not know they missed it.</div> <div class="choice"><<link "&#x25B7; Continue." "Demo3_S3_PathChoice">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><<set $waitOrTypeOutcome = "wait">> <<set $heartbeatEarned = true>> <<set $clareBond += 2>> <<set $pres += 1>> <<set $flow += 1>> <<set $fang += 1>> <<soctrack "s3_costly_choice" "ask_fang">> <<soctrack "s3_path" "wait">> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=O2xowk-Lkpc" target="_blank">Please Call My Name</a></span><span class="music-meta">2PM &middot; continues</span></div> <div class="two-pane"> <div class="game-pane"> <<socportraits>> <div class="dlg"><span class="who ishani"><<print $avatarName>>:</span> <span class="line">&ldquo;He told me to find him here. He said I already know what I want. Why did he need me to come?&rdquo;</span></div> <p>Fang stops with one hand on the back of the chair. She was about to sit. She doesn't, yet. Her eyes find yours and stay there longer than you expected.</p> <div class="dlg"><span class="who fang">Fang:</span> <span class="line">&ldquo;He doesn't ask people to come here. He hasn't, in a long time.&rdquo;</span></div> <p>A beat.</p> <div class="dlg"><span class="who fang">Fang:</span> <span class="line">&ldquo;Whatever he saw in you on that road, it was enough that he stopped waiting.&rdquo;</span></div> <p>She sits.</p> </div> <div class="chat-pane"> <div class="chat-tabs"> <span class="chat-tab active">Guild</span> <span class="chat-tab">Whisper</span> </div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">actually. one more thing.</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">for context, three kids, mortgage, sick five year old.</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">she's watching bluey on my tablet. i'm in the bathroom on my phone.</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">the ten minutes is real. this session is my ten minutes.</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">that's probably more than you needed to hear. go be with fang.</span></div> <div class="chat-msg byungho"><span class="who-name">Byung-Ho:</span> <span class="text">good. this part is the part.</span></div> <div class="chat-msg me"><span class="who-name">Ishani:</span> <span class="text">i got you. go.</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">&lt;3</span></div> <<set $lastChatSender = "Clare">><<set $lastChatText = "&lt;3">><<set $lastChatChannel = "Guild">><<set $lastChatCssClass = "clare">> </div> </div> <div class="sys good"><strong>&#10003; RESONANCE:</strong> Fang Bond +1. PRES +1. FLOW +1. Clare Bond +2. You asked the question Clare set aside. Fang gave you something back. While that was happening, Clare's second half arrived. Three rooms held at once.</div> <<socjournal "Clare's Ten Minutes" "You asked Fang the question Clare had walked you back from. Clare watched you do it. She told you the session was her ten minutes anyway, sideways. Byung-Ho saw all of it." "irl · bond">> <div class="sys note"><strong>DESIGN NOTE &mdash; HEARTBEAT EARNED:</strong> Wait path taken. Heartbeat payoff will fire in Scene 4, Turn 3. Mobile Scene 5 will receive the full 20-second haptic pattern. Players who take the Type path instead get silence where the music would have been &mdash; they do not know they missed it.</div> <div class="choice"><<link "&#x25B7; Continue." "Demo3_S3_PathChoice">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 -->/* v26 LEGACY ROUTER: prior post-Continue landing point. The WaitPath payload (Clare's flood, Byung-Ho's "this part is the part," Ishani's "i got you. go," Clare's <3, plus the wait-path stat sets) has been merged into each of the three Demo3_S3_ClareCostly_* variants (Read, Talk, AskFang) so the in-world beat and the meta-layer flood now appear simultaneously on a single screen. Rationale: (1) demonstrates the in-game/IRL collision the way it actually happens in MMO play; (2) eliminates a continuity error where Fortune's phone was vibrating to surface chat that lives on her laptop; (3) avoids introducing a phone as a second device in Demo3. This passage is retained as a transparent goto for any save state or external link landing here. It routes to Demo3_S3_PathChoice, which is where the wait branch was always headed. Because state setting now happens in each ClareCostly_* variant, this router does NOT re-set $waitOrTypeOutcome, $heartbeatEarned, or any bonds — those are already set by whichever variant the player came from. Re-setting here would double-count for any player who somehow re-entered. v27+ may delete this passage entirely if no extant save points reference it. See also Demo3_S2_Wall and Demo3_S2_StoolNotice for the same router pattern. © Studio Zisha 2026 */ <<goto "Demo3_S3_PathChoice">><!-- DORMANT-PASSAGE: reactivation gated on LLM chatbot integration. Grep "DORMANT-PASSAGE" across the project to find all currently-inert content. --> /* DORMANT PASSAGE (v20+): unreachable until LLM chatbot integration lands. The ClareCostly passage no longer offers a typing affordance because free-form player text cannot be meaningfully resolved without the LLM. Preserved intact so the Type-path branch can be reactivated once LLM is wired up. Downstream conditionals on $waitOrTypeOutcome still honor both "wait" and "type" values. See also: window.startWaitOrType / window.resolveType in StoryInit (dormant). v24+: Body wrapped in <<if false>>...<</if>> so passage is truly inert if reached. Remove the wrapper as part of LLM reactivation. */ <<if false>> <<set $waitOrTypeOutcome = "type">> <<set $clareSpirit -= 1>> <<soctrack "s3_path" "type">> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=O2xowk-Lkpc" target="_blank">Please Call My Name</a></span><span class="music-meta">2PM &middot; continues</span></div> <div class="two-pane"> <div class="game-pane dim"></div> <div class="chat-pane"> <div class="chat-tabs"> <span class="chat-tab">Guild</span> <span class="chat-tab active">Whisper</span> </div> <div class="chat-msg me"><span class="who-name">Ishani:</span> <span class="text">got it. fang first. no lawrence.</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">yep.</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">ok go.</span></div> <div class="chat-timestamp" style="color:#34d399;">from Byung-Ho:</div> <div class="chat-msg byungho"><span class="who-name">Byung-Ho:</span> <span class="text">hang on. she's not done.</span></div> </div> </div> <p>You read Byung-Ho's line. You look at Clare's pane. She has stopped typing. Whatever she was about to say next is not going to come out now.</p> <p>You try to think of something to say that would open the door back up. You don't find it fast enough. Clare sends one more message.</p> <div class="two-pane"> <div class="game-pane dim"></div> <div class="chat-pane"> <div class="chat-tabs"> <span class="chat-tab">Guild</span> <span class="chat-tab active">Whisper</span> </div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">see you in the room.</span></div> <<set $lastChatSender = "Clare">><<set $lastChatText = "see you in the room.">><<set $lastChatChannel = "Whisper">><<set $lastChatCssClass = "clare">> </div> </div> <div class="sys note"><strong>DESIGN NOTE — TYPE PATH:</strong> Clare's second half was lost. She registers the interruption internally. She does not name it. The player does not know what they missed. Most players will feel nothing missing because they have no comparison; on replay, the asymmetry becomes legible. Heartbeat payoff in Scene 4 will NOT fire. Mobile Scene 5 haptic will be the thinner variant. This is correct — the 30-year game rewards presence over completion.</div> <p style="color:#6b7280;font-style:italic;">Something is different. You couldn't name what.</p> <div class="choice"><<link "&#x25B7; Continue." "Demo3_S3_PathChoice">><</link>><span class="hint"></span></div> <</if>> <!-- © Studio Zisha 2026 --><<soctrack "scene_enter" "S3_PathChoice">> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=O2xowk-Lkpc" target="_blank">Please Call My Name</a></span><span class="music-meta">2PM &middot; continues</span></div> <div class="two-pane"> <div class="game-pane dim"> <<socportraitsall>> <img class="scene-image" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/57d319f9-2080-450e-9f6b-c185b8fda2da/Interior_Mo_Stor.jpg?content-type=image%2Fjpeg" alt="The interior of Mo Stór: low lamplight, ship-timber ceiling, stone walls, a bar along one side." loading="lazy" /> <p style="color:#6b7280;font-style:italic;text-align:center;margin-top:2rem;"> Fang stands. Marcus is still.<br> The table is waiting. </p> </div> <div class="chat-pane"> <div class="chat-tabs"> <span class="chat-tab active">Guild</span> <span class="chat-tab">Whisper</span> </div> <div class="chat-timestamp">just now</div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">running lawrence on follow tonight since byung-ho is offline.</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">byung-ho if you see this, it's just for tonight. catch you up tomorrow. &lt;3</span></div> <<set $lastChatSender = "Clare">><<set $lastChatText = "byung-ho if you see this, it's just for tonight. catch you up tomorrow. &lt;3">><<set $lastChatChannel = "Guild">><<set $lastChatCssClass = "clare">> <div class="chat-timestamp" style="color:#4b5563;font-style:italic;">Byung-Ho has not read these messages.</div> </div> </div> <p>Clare is waiting on your call.</p> <div class="choice"><<link "&#x25B7; Tell Fang about the quest board notices. Side quest first." "Demo3_S3_PathSideQuest">><</link>><span class="hint"></span></div> <div class="choice"><<link "&#x25B7; Push the main quest anyway." "Demo3_S3_PathMainWithout">><</link>><span class="hint"></span></div> <div class="choice"><<link "&#x25B7; Wait for Lawrence to get there." "Demo3_S3_PathWait">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><<soctrack "scene_enter" "S3_PathChoice_NoClare">> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=O2xowk-Lkpc" target="_blank">Please Call My Name</a></span><span class="music-meta">2PM &middot; continues</span></div> <div class="two-pane"> <div class="game-pane"> <<socportraitsall>> <img class="scene-image" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/57d319f9-2080-450e-9f6b-c185b8fda2da/Interior_Mo_Stor.jpg?content-type=image%2Fjpeg" alt="The interior of Mo Stór: low lamplight, ship-timber ceiling, stone walls, a bar along one side." loading="lazy" /> <p>Fang shifts. Whatever she was waiting for, she has it now. She is reading the door, then you, then the door again.</p> <div class="dlg"><span class="who fang">Fang:</span> <span class="line">&ldquo;Two ways tonight. Either we follow the quest board notices Tiberius pulled, or we head to the docks now and figure the rest out moving.&rdquo;</span></div> <p>Marcus, from the bench:</p> <div class="dlg"><span class="who marcus">Marcus:</span> <span class="line">&ldquo;Fang&rsquo;s read of the room is sound. Either holds.&rdquo;</span></div> <p>Fang waits. The decision is yours to surface.</p> <div class="sys note"><strong>DESIGN NOTE &mdash; STAGING-NEUTRAL OPENER + LATENT CALLBACK COMPLETION (v26):</strong> Previously this passage opened with &ldquo;You turn to Fang. She has not started over.&rdquo; That line assumed Fortune was previously oriented elsewhere and was now reorienting toward Fang &mdash; an assumption that fails from all three upstream paths. From <code>Demo3_S2_ToFang_Fang</code> (the &ldquo;Make the call&rdquo; path), Fortune is already at Fang's table from the upstream <code>Demo3_S2_ToFang</code> staging (&ldquo;You cross the room to Fang&rdquo;); she has not turned away, so &ldquo;turn to Fang&rdquo; is incoherent. From <code>Demo3_S2_Tea_Take</code> and <code>Demo3_S2_Tea_Decline</code> (the bench paths), Fortune is sitting on the bench beside Marcus and the choice text is &ldquo;Walk to Fang. Time to move.&rdquo; &mdash; she walks across the room, she does not <em>turn</em>. The corrected opener focuses on Fang's response rather than Fortune's action: &ldquo;Fang shifts. Whatever she was waiting for, she has it now. She is reading the door, then you, then the door again.&rdquo; Fortune-action is implicit (whatever the upstream choice promised); Fang-response is explicit and shared across all three paths. This is the right channel allocation per Style Sheet &sect;7 (Don't Restate) &mdash; once the upstream choice has named the action, restating it in destination prose is redundant. <strong>Latent callback completion:</strong> the &ldquo;Whatever she was waiting for, she has it now&rdquo; phrasing completes a two-tier callback arc for Bar-path players. Tier 1 fired at <code>Demo3_S2_ToBar</code> with Tiberius's diagnosis (<em>&ldquo;She's waiting for someone to tell her it's okay to move&rdquo;</em>). Tier 2 fired at the choice text (<em>&ldquo;Make the call&rdquo;</em>). Tier 3 fires here as Fang's registration: she had been waiting; she has what she was waiting for now. The arc is complete. For non-Bar-path players, the line reads as Fang's caravan-instinct read of the room (Style Sheet &sect;5 Fang voice register: she has settled on a course because the moment is right, not because Fortune said anything specific). Both readings work; the deeper layer rewards prior attention without punishing players who didn't earn it. Per Style Sheet &sect;9 <em>Information Is Earned</em>. <strong>Architectural principle:</strong> when a destination passage is reachable from multiple upstream paths, its opener should focus on the <em>responding party</em> rather than on the <em>acting party</em>; the responder's reaction is shared across all paths, while the actor's specific action varies. Cross-references the design notes at <code>Demo3_S2_ToBar</code> (one-time framing protected by first-visit-vs-return branching) and <code>Demo3_S2_ToFang_Fang</code> (staging fix and callback origin). <strong>Surfaced through playtest:</strong> the founder's question &ldquo;does this have downstream impacts we should consider?&rdquo; produced this fix &mdash; the &ldquo;Make the call&rdquo; choice would have died at the choice screen without a destination-side registration. The architectural pattern (responder-focused openers for multi-upstream destinations) is the load-bearing observation; the prose change is one instance of it.</div> </div> <div class="chat-pane"> <div class="chat-tabs"> <span class="chat-tab active">Guild</span> <span class="chat-tab">Whisper</span> </div> <div class="chat-timestamp">just now</div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">running lawrence on follow tonight since byung-ho is offline.</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">byung-ho if you see this, it's just for tonight. catch you up tomorrow. &lt;3</span></div> <<set $lastChatSender = "Clare">><<set $lastChatText = "byung-ho if you see this, it's just for tonight. catch you up tomorrow. &lt;3">><<set $lastChatChannel = "Guild">><<set $lastChatCssClass = "clare">> <div class="chat-timestamp" style="color:#4b5563;font-style:italic;">Byung-Ho has not read these messages.</div> </div> </div> <<if $clareEngageStatus === "unread">><div class="choice"><<link "&#x25B7; Read Clare's whisper before you commit." "Demo3_S3_Clare_Open">><</link>><span class="hint"></span></div><</if>> <div class="choice"><<link "&#x25B7; Tell Fang about the quest board notices. Side quest first." "Demo3_S3_PathSideQuest_NoClare">><</link>><span class="hint"></span></div> <div class="choice"><<link "&#x25B7; Push the main quest anyway." "Demo3_S3_PathMainWithout_NoClare">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><div class="two-pane"> <div class="game-pane"> <<set $clareEngageStatus = "missed">> <<goto "Demo3_S3_PathSideQuest">> <!-- Locks the deadline, then routes through the canonical SideQuest passage so prose and stat impact are unchanged. © Studio Zisha 2026 --> </div> <<persistentchat>> </div><div class="two-pane"> <div class="game-pane"> <<set $clareEngageStatus = "missed">> <<goto "Demo3_S3_PathMainWithout">> <!-- Locks the deadline, then routes through the canonical MainWithout passage. © Studio Zisha 2026 --> </div> <<persistentchat>> </div><<set $s3PathChoice = "sidequest">> <<set $fang += 1>> <<soctrack "s3_path_choice" "sidequest">> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=O2xowk-Lkpc" target="_blank">Please Call My Name</a></span><span class="music-meta">2PM &middot; continues</span></div> <div class="two-pane"> <div class="game-pane"> <<socportraitsall>> <p>You speak first.</p> <div class="dlg"><span class="who ishani"><<print $avatarName>>:</span> <span class="line">&ldquo;The quest board. Two notices pulled down in a hurry, around sundown. Someone who doesn&rsquo;t come in often.&rdquo;</span></div> <p>Fang&rsquo;s eyes on you are a half-second longer than usual. Reading.</p> <div class="dlg"><span class="who fang">Fang:</span> <span class="line">&ldquo;Tiberius tell you that, or did you see it yourself?&rdquo;</span></div> <div class="dlg"><span class="who ishani"><<print $avatarName>>:</span> <span class="line">&ldquo;Both.&rdquo;</span></div> <p>Fang gives you a look you don&rsquo;t yet have a name for. It is not a compliment. It is notice taken.</p> <div class="dlg"><span class="who fang">Fang:</span> <span class="line">&ldquo;Then it&rsquo;s a thing. Not tonight&rsquo;s thing.&rdquo;</span></div> </div> <<persistentchat>> </div> <div class="sys good"><strong>&#10003; RESONANCE:</strong> Fang Bond +1. You asked about what Fang would have noticed. She will not forget that you asked.</div> <div class="choice"><<link "&#x25B7; Hear Fang's brief." "Demo3_S3_Briefing">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><<set $s3PathChoice = "without">> <<set $pres += 1>> <<set $ishaniByunghoTrust -= 3>> <<soctrack "s3_path_choice" "without">> <<soctrack "ishani_byungho_trust" $ishaniByunghoTrust>> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=O2xowk-Lkpc" target="_blank">Please Call My Name</a></span><span class="music-meta">2PM &middot; continues</span></div> <div class="two-pane"> <div class="game-pane"> <<socportraitsall>> <p>You speak first.</p> <div class="dlg"><span class="who ishani"><<print $avatarName>>:</span> <span class="line">&ldquo;All right. What is it.&rdquo;</span></div> <p>Fang does not check with Marcus. Marcus does not check with Fang. They were already waiting on you.</p> <div class="dlg"><span class="who fang">Fang:</span> <span class="line">&ldquo;Good.&rdquo;</span></div> <p>Marcus stands. He had already decided to.</p> </div> <<persistentchat>> </div> <div class="sys good"><strong>&#10003; RESONANCE:</strong> PRES +1. You made the call. The room responded to it.</div> <div class="sys note"><strong>DESIGN NOTE &mdash; IRL TRUST FLAG (v26 add):</strong> This passage decrements <code>$ishaniByunghoTrust</code> by 3 (from baseline 5 to 2 on a 0-10 scale). The flag tracks the IRL relationship between the player (Ishani) and Byung-Ho (Lawrence's player). Push-anyway is a legitimate guild call &mdash; Byung-Ho is offline, real raids continue when one player is offline, this is normal MMO behavior &mdash; but Byung-Ho explicitly asked the guild not to do main-quest work without him. Honoring the ask is generosity, not obligation. Pushing through is defensible. <strong>The cost is interpersonal, not moral:</strong> Byung-Ho experiences this as not-being-respected during a vulnerable period (recent breakup, currently feeling worthless per Story Bible context). The trust flag captures this cost. <strong>Currently invisible to the player</strong> (no HUD display) per the design choice that demo3 should teach the choice architecture without converting choices into stat-optimization targets. In future passes, the flag will gate: (1) Byung-Ho's voice-volume drop in S5 when he comes back online &mdash; clipped/withdrawn rather than warm/Lawrence-coded; (2) Lawrence's protective-gesture beats in S5/S6/S7 &mdash; tactically functional but emotionally guarded, prey-register lingering longer, no tender moments fired; (3) the romantic kiss eligibility window in the demo's ending &mdash; closed on Push-anyway because the IRL friendship hasn't repaired enough to support character-intimacy that won't read as inappropriate to either player. Cross-references: Wait path increments by +1 (modest reward for honoring the ask); Side Quest path is neutral (doesn't engage the main-quest-without-Byung-Ho question). The asymmetry between -3 and +1 is deliberate &mdash; breaking trust costs more than honoring it gains, which models real interpersonal trust dynamics. Architecture note: this is the demo's first IRL-pair stat tracking, prefiguring the larger combinatorial rubric that will track Ishani-Clare, Ishani-Jeff, Byung-Ho-Clare, Byung-Ho-Jeff, Clare-Jeff in the full game. Demo3 only implements Ishani-Byung-Ho because it's the only IRL-pair the demo's choices currently move. Other flags will be added when the choices that move them are written.</div> <div class="choice"><<link "&#x25B7; To the table. Hear the brief." "Demo3_S3_Briefing">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><<set $s3PathChoice = "wait">> <<set $fangWILL -= 1>> <<set $ishaniByunghoTrust += 1>> <<soctrack "s3_path_choice" "wait">> <<soctrack "ishani_byungho_trust" $ishaniByunghoTrust>> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=O2xowk-Lkpc" target="_blank">Please Call My Name</a></span><span class="music-meta">2PM &middot; continues</span></div> <div class="two-pane"> <div class="game-pane"> <<socportraitsall>> <p>You sit on the bench at the table.</p> <p>Marcus refills his glass without drinking from it.</p> <p>Fang paces the length of the table once, then back. She doesn't sit.</p> <p>Then the door. The third step creaks. Lawrence carries a rolled-up parchment and a wooden tube.</p> <p>Fang's eyes go to the tube before they go to him. She adjusts her stance by half a stride.</p> <div class="dlg"><span class="who lawrence">Lawrence:</span> <span class="line">&ldquo;I have updates.&rdquo;</span></div> <p>Fang nods once and sits at the table.</p> </div> <<persistentchat>> </div> <div class="sys note"><strong>DESIGN NOTE &mdash; SILENT STAT CHANGE (v26 fix):</strong> Previously this passage rendered a player-facing STRAIN block (<em>"Fang WILL -1. She held the wait longer than her nature asks her to. It costs something."</em>) immediately after the player chose Wait. Removed in v26. The <code>$fangWILL -= 1</code> stat change still fires (line above) because it remains a real game-state change, but it now operates silently &mdash; the cost manifests in Fang's later behavior in the Briefing prose and combat rather than being announced as a system message at the choice moment. <strong>Three reasons:</strong> (1) The previous block's wording (<em>"her nature asks her to"</em>) was an interiority claim about Fang's character, which is a Style Sheet POV violation when delivered in the system-feedback channel. The system channel is for player-action consequences, not character-interiority commentary. (2) The previous block created a visibility asymmetry: Fang WILL -1 was visible, but the corresponding <code>$ishaniByunghoTrust += 1</code> on this same path was silent (per the design choice documented in <code>Demo3_S3_PathMainWithout</code>'s design note: <em>"demo3 should teach the choice architecture without converting choices into stat-optimization targets"</em>). The asymmetry made the Wait path look like pure cost, when in fact it is the path that earns the most generous IRL trust outcome. Resolving the asymmetry by silencing both is consistent with the stated design philosophy. (3) The cost is more legible when it manifests in Fang's later behavior than when announced via system message; the player who notices Fang's strain in the brief or combat experiences the consequence as in-fiction reality, not as a stat tick. <strong>Architectural principle:</strong> the system-feedback channel (sys.warn, sys.good blocks) is for naming player-action consequences in player-facing register; character-interiority belongs in prose. When a stat update would require interiority claims to be legible, the stat update should fire silently and the consequence should manifest in later prose. Cross-references: Style Sheet &sect;7 Don't Restate (the system block was restating what should manifest in behavior); &sect;9 Information Is Earned (the player who notices Fang's strain in later prose is rewarded for attention; the player who doesn't, experiences the strain as ambient texture); Game Bible &sect;7.1c (silent stat tracking is the canonical pattern for PC-paired-rubric flags like <code>$ishaniByunghoTrust</code>; Fang WILL on this path now follows the same pattern). <strong>Surfaced through:</strong> founder caught the STRAIN block reading as dev-note rather than player-facing system message during playtest.</div> <div class="sys note"><strong>DESIGN NOTE &mdash; PATHWAIT TRIM (v26 fix):</strong> Previously this passage had Fang doing a partial brief in narrator-summary form (<em>"Then Fang stops pacing and starts laying it out for you. Three men. A boat that shouldn't have been able to dock. The jetty. What's between you and whatever they came to block."</em>) plus a transitional Fang line (<em>"I'd rather have Lawrence's piece before we go. He'll know things I don't. But you should know what I know."</em>) plus a wait-drags-out narrator beat. Three problems. <strong>(1) Narrator-summary instead of quoted brief:</strong> Fang's signal-reading is the same factual content regardless of path (slip three, wrong flag, fast rope work, dock crew didn't help, harbor lamps lit early); summarizing it on this path while quoting it on the Lawrence-on-follow path produces inconsistent character-voice. The brief now lives in <code>Demo3_S3_Briefing</code>'s universal opener, fully quoted, before path-specific content fires. <strong>(2) Pre-briefing-then-pausing-for-Lawrence is awkward staging:</strong> Fang briefing partially, then waiting, then re-briefing in the next passage when Lawrence arrives, requires either restating or the prose acknowledging the restart &mdash; both unworkable. Cleaner staging is Fang pacing-waiting, Lawrence arriving, then everyone sits at the table and Fang gives her brief once. <strong>(3) The button text was wrong:</strong> <em>"The brief begins"</em> implied the brief had not yet begun, but the prior version of this passage had Fang already delivering half of it in narrator-summary. The new button text <em>"Lawrence unrolls the map"</em> describes what's actually happening at the top of the next passage (Lawrence unfolds parchment, the harbor map renders) and doesn't preempt any character dialog. <strong>Architectural principle:</strong> when path-conditional structure produces inconsistent character-voice, restructure to converge the universal content (Fang's brief) and differentiate only on path-specific content (Lawrence's en-route arrival vs. immediate departure). Fang's signal-reading is universal; what happens after her brief is path-conditional. Cross-references: Style Sheet &sect;5 Fang voice register (consistent across paths); &sect;7 Don't Restate (button text shouldn't preempt destination prose). Fortune's two-sentence observation pair (<em>"She doesn't look at the door. She doesn't ask after Lawrence."</em>) was preserved in the Lawrence-on-follow else-branch only, since Fang on the Wait path <em>is</em> watching the door and waiting on Lawrence; the recognition-braid observation makes sense only when its negation is true.</div> <div class="choice"><<link "&#x25B7; Lawrence unrolls the map." "Demo3_S3_Briefing">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><div class="loc-tag">&#x1F4CD; Mo St&oacute;r &middot; The Table</div> <div class="sys ambient"><span class="ambient-label">Ambient</span><span class="ambient-meta">Low fire, wood, distant voices.</span></div> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=O2xowk-Lkpc" target="_blank">Please Call My Name</a></span><span class="music-meta">2PM &middot; continues</span></div> <<soctrack "scene_enter" "S3_Briefing">> <div class="two-pane"> <div class="game-pane"> <<socportraitsall>> <img class="scene-image" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/3d031748-b70f-4b7e-9b1a-a9e24b4a2e20/Mo_Sto%CC%81r_Table.png?content-type=image%2Fpng" alt="The table at Mo Stór: low lamplight on dark wood, wine glasses, a wooden tube, a parchment ready to be unrolled." loading="lazy" /> <p>Fang sets her hands flat on the table.</p> <div class="dlg"><span class="who fang">Fang:</span> <span class="line">&ldquo;Three men came off a boat at slip three. The flag on the mast is wrong for the route. They didn't tie up like they came to trade. The rope work is fast, not careful, and the crew on the dock didn't help them. The harbor lamps at the jetty have been lit since before sundown.&rdquo;</span></div> <<if $s3PathChoice === "wait">> <p>Fang lifts her hands from the table. She makes room for Lawrence and points at the map he is unrolling.</p> <div class="dlg"><span class="who fang">Fang:</span> <span class="line">&ldquo;That's what I have. Tell me what you know.&rdquo;</span></div> <p>Lawrence unfolds the parchment and lays it flat on the table between the four of you.</p> <img class="scene-image" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/16cad7c3-443d-48db-ba21-9ca93c903492/Rhea_Port_Symrna.png?content-type=image%2Fpng" alt="A period map of Rhea Port and the Gulf of Smyrna. The harbor, the jetty, the Silk Road caravan routes heading east." loading="lazy" /> <div class="dlg"><span class="who lawrence">Lawrence:</span> <span class="line">&ldquo;The boat came in on the wrong tide. From here.&rdquo;</span></div> <p>He touches a point on the map, a stretch of coast north of the harbor where no merchant vessel should have been. He touches a second point, the jetty where the three men are standing now.</p> <div class="dlg"><span class="who lawrence">Lawrence:</span> <span class="line">&ldquo;They did not come to dock. They came to block the jetty. Whatever they are guarding has been in the water since before they arrived.&rdquo;</span></div> <p>Marcus, from the sturdy bench, which he has moved closer:</p> <div class="dlg"><span class="who marcus">Marcus:</span> <span class="line">&ldquo;The men aren&rsquo;t the problem. The thing they are standing in front of is the problem.&rdquo;</span></div> <div class="sys note"><strong>DESIGN NOTE &mdash; UNIFIED FANG BRIEF + WAIT BRANCH SCREEN-SPLIT (v26 fix):</strong> Previously this passage rendered Fang's brief only on the Lawrence-on-follow / push-anyway else-branch, and the wait-branch delivered the entire empirical-plus-cosmological brief on a single screen that ran long enough to dilute attention on the load-bearing tapestry beat. Two fixes in one pass. <strong>(1) Universal Fang brief:</strong> Fang's signal-reading is the same factual content regardless of path (slip three, wrong flag, fast rope work, dock crew didn't help, harbor lamps lit early); summarizing it on one path and quoting it on another produced inconsistent character-voice and meant the wait-path player never <em>heard</em> Fang's read in her own words. The fix lifts Fang's full quoted brief to the universal opener, before any <code>$s3PathChoice</code> gate, so all three paths see the same Fang brief. The wait-branch transition opener (was: <em>"Fang has not started over"</em>) is replaced with <em>"Fang lifts her hands from the table"</em>, and the transition line <em>"That's what I have"</em> (was: <em>"This is what I have"</em>) refers backward to the brief the player just heard. <strong>(2) Screen-split between empirical and cosmological brief:</strong> the wait-branch now ends with Marcus's <em>"the thing they are standing in front of is the problem"</em> line and a button (<em>"Marcus has gone still."</em>) that advances to <code>Demo3_S3_Briefing_Cosmology</code>, where the wool-and-silk bundle, the Water tapestry, and the Guardian-system reveal land on a fresh screen. The split maps to the register-shift in the content: Screen 1 is the empirical brief (observable signals, geography, Marcus's recognition that the cosmos is the actual subject); Screen 2 is the cosmological brief (the bundle, the tapestry, the dying harbor). Pacing is its own channel; screen-breaks are how it's operated. <strong>The button text "Marcus has gone still."</strong> routes the player's attention through Marcus's stillness rather than through Fortune's curiosity or Lawrence's reveal. Marcus has been doing baseline-bear-restraint work all of S2 and S3 (the bench, the not-rising, Jeff's <em>"bear thoughts. i won't crowd fang"</em> declaration), and this is the moment where his stillness <em>shifts kind</em> &mdash; from baseline-restraint to cosmological-recognition. The past-perfect tense (<em>has gone still</em>, not <em>goes still</em>) signals that Marcus's recognition <em>preceded</em> the reveal: he saw what was coming before Fortune did. This echoes Fang's earlier <em>"eyes went to the tube before they went to him"</em> beat in <code>Demo3_S2_ToFang</code>, creating a matched pair across S3 of immortal-recognitions-preceding-Fortune's-discovery. The two characters now share the cosmology-recognition burden without one carrying it alone, and Marcus &mdash; previously passive-presence &mdash; gets his first load-bearing engagement beat. <strong>Recognition-braid observation pair:</strong> Fortune's <em>"She doesn't look at the door. She doesn't ask after Lawrence"</em> is preserved only in the else-branch, since Fang on the wait-path <em>does</em> watch the door and <em>does</em> wait for Lawrence; the negation observation makes sense only when its inverse is true. <strong>Architectural principles surfaced:</strong> (a) when path-conditional structure produces inconsistent character-voice, restructure to converge the universal content and differentiate only on path-specific content; (b) screen-breaks are pacing's primary instrument &mdash; screens with register-shifts (empirical &rarr; cosmological) should generally break at the shift; (c) characters whose register is restraint need beats where the restraint becomes load-bearing, otherwise restraint reads as absence. Cross-references: Style Sheet &sect;5 Fang/Marcus voice registers (now consistent across paths and beats); &sect;3.4 recognition braid (preserved where applicable; extended to Marcus's stillness as recognition-channel); &sect;7 Don't Restate (universal opener doesn't restate; path branches build on the universal opener rather than repeating it); Game Bible &sect;7.1c (Marcus's recognition-beat marks him as co-bearer of Net's cosmology with Fang, both immortals bound to Net). <strong>Surfaced through:</strong> founder caught the screen-too-long pacing problem during playtest, and identified that Marcus had been backburner long enough that his next engagement should be load-bearing.</div> <div class="choice"><<link "&#x25B7; Marcus has gone still." "Demo3_S3_Briefing_Cosmology">><</link>><span class="hint"></span></div> <<else>> <p>She doesn't look at the door. She doesn't ask after Lawrence.</p> <div class="dlg"><span class="who fang">Fang:</span> <span class="line">&ldquo;That crew is up to something. It's worth a walk down to find out what.&rdquo;</span></div> <p>Marcus, from the sturdy bench, which he has moved closer:</p> <div class="dlg"><span class="who marcus">Marcus:</span> <span class="line">&ldquo;Men who tie a rope that fast aren't there to trade.&rdquo;</span></div> <div class="dlg"><span class="who ishani"><<print $avatarName>>:</span> <span class="line">&ldquo;Worth a walk.&rdquo;</span></div> <p>Fang nods once. She's already moving toward her coat.</p> <p>Marcus is at the door before she finishes.</p> <div class="sys note"><strong>DESIGN NOTE &mdash; LAWRENCE-ON-FOLLOW BRIEF (v26 rewrite, foreshadow-stripping pass):</strong> This branch fires when Lawrence is on follow (Clare playing him as set behind tonight; party formation Fang-leads, Marcus-supports, Lawrence-catches-up-en-route). The path name is <em>Lawrence-on-follow</em>, not <em>without-Lawrence</em> &mdash; he is not absent, he is a deliberate party-formation choice, and the framing matters because writers who see &ldquo;without-Lawrence&rdquo; instinctively fill the Lawrence-shaped hole with cosmology that should be Lawrence&rsquo;s alone. <strong>The original v26 brief had four problems</strong> (POV violation, motivation gap, closing-line bookending, canon over-specification on Fang&rsquo;s &ldquo;walking these docks&rdquo;) and was rewritten to address all four; that rewrite stands. <strong>This pass addresses a fifth problem the previous rewrite introduced or did not catch:</strong> Fang&rsquo;s closing line (&ldquo;Whatever's in the water under that jetty has been there longer than they have.&rdquo;) and Marcus&rsquo;s line (&ldquo;The men aren&rsquo;t the problem. The thing they are standing in front of is the problem.&rdquo;) were both delivering cosmological foreshadow that the prose hadn&rsquo;t earned and that was leaking forward into Scene 4&rsquo;s discovery beats. The leak was a <em>PC-paired-rubric artifact</em> per Game Bible &sect;7.1c &mdash; cosmological information is Lawrence&rsquo;s species of expertise, and on the Lawrence-on-follow path he delivers it en route at <code>Demo3_S4</code> (line ~4670+: &ldquo;The boat came in on the wrong tide. From a stretch of coast no merchant vessel should have been on. They did not come to dock. They came to block the jetty. Whatever they are guarding has been in the water since before they arrived&rdquo;), accompanied by the Water tapestry. The S3 brief should set up a <em>side-quest investigation</em> framing &mdash; <em>that crew is up to no good, we should investigate</em> &mdash; and let the cosmological reveal fire fresh when Lawrence catches up. <strong>Fang&rsquo;s closing line</strong> (&ldquo;That crew is up to something. It&rsquo;s worth a walk down to find out what.&rdquo;) keeps her in sellsword-coded register: she reads dock signals, she names the read, she proposes investigation. No cosmological claim. Fang reads <em>the men</em>; Lawrence reads <em>the cosmos</em>; the division of labor is the architecture. <strong>Marcus&rsquo;s replacement line</strong> (&ldquo;Men who tie a rope that fast aren&rsquo;t there to trade.&rdquo;) is a layered observation backing Fang&rsquo;s read &mdash; not redundant, because Fang names the rope-work signal but Marcus names what the rope-work signal <em>means</em>. Marcus-as-werebear-emperor has watched dock workers across two thousand years and specifically knows traders tie carefully because the cargo is theirs. The line is his species of attention (centuries-of-pattern recognition; per Style Sheet &sect;5 Marcus voice register), backing Fang without crowding her (per Jeff&rsquo;s chat declaration: <em>&ldquo;bear thoughts. i won&rsquo;t crowd fang&rdquo;</em>). <strong>Fortune&rsquo;s line</strong> (&ldquo;Worth a walk.&rdquo;) picks up Fang&rsquo;s exact phrase. This is the &sect;3.4 recognition-braid in micro: Fortune is characterized as the narrator/avatar who notices what people say and how they say it; echoing Fang&rsquo;s framing is in-register, not cute. The three voices now stack as a layered confirmation: Fang names the signals; Marcus names what they mean; Fortune accepts the framing and the action. Three kinds of expertise (sellsword dock-reading; ancient-one pattern-reading; player-avatar deciding) converging on <em>we go look</em>. <strong>S4 architecture is unchanged:</strong> Lawrence&rsquo;s en-route catch-up at <code>Demo3_S4</code> still fires (gated on <code>$s3PathChoice === &quot;sidequest&quot;</code>) and now lands as a fresh cosmological reveal rather than a confirmation of foreshadow-already-leaked. The S4 reveal beats at <code>Demo3_S4_T1_*</code> (the captain&rsquo;s ledger going into the water; the watcher who has not moved) are now <em>discovery beats</em> for the Lawrence-on-follow player, not confirmations of what they already suspected. <strong>Architectural principle:</strong> path-naming has design consequences. Calling a path <em>without X</em> implies absence and produces deficit-filling prose. Calling a path <em>X on follow</em> names the affirmative party state and produces correctly-attributed prose. Worth landing in Style Sheet next pass. <strong>Cross-passage worldbuilding plant retained:</strong> the boat is at slip three, where Tiberius locates Sera&rsquo;s harbormaster office (per <code>Demo3_S2_ToBar_Sera_Honest</code>: <em>&ldquo;Office is the stone building past slip three.&rdquo;</em>). Sera has likely seen this boat. The connection remains unannounced. Future writers changing either slip number must change both. <strong>Cross-references:</strong> Game Bible &sect;7.1c (PC-paired rubric &mdash; cosmological information is Lawrence&rsquo;s domain on this character pairing); Style Sheet &sect;5 Fang/Marcus voice registers; &sect;9 Information Is Earned (Fang earned the men/boat read, did not earn the water read); &sect;3.4 recognition braid (Fortune echoing Fang&rsquo;s phrase); &sect;13 Generic Naming (Lawrence&rsquo;s en-route reveal uses tapestry-language not franchise-vocabulary). <strong>Surfaced through:</strong> founder caught the foreshadow leak via playtest reading. The catch produced both a localized fix (this pass) and an architectural principle (path-naming has design consequences) worth landing in Style Sheet.</div> <div class="choice"><<link "&#x25B7; Walk to the docks." "Demo3_S4_Combat_Enter">><</link>><span class="hint"></span></div> <</if>> </div> <div class="chat-pane"> <div class="chat-tabs"> <span class="chat-tab active">Guild</span> <span class="chat-tab">Whisper</span> </div> <div class="chat-timestamp">just now</div> <div class="chat-msg jeff"><span class="who-name">Jeff:</span> <span class="text">ok i'm caught up. clare you good with how lawrence is set?</span></div> <div class="chat-msg jeff"><span class="who-name">Jeff:</span> <span class="text">wait. what spells does lawrence have ready to use?</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">his standard kit. shield, ward, binding, and arrow. nothing flashy.</span></div> <div class="chat-msg jeff"><span class="who-name">Jeff:</span> <span class="text">fair. fair fair fair. ok marcus is in. he's gonna sit and watch.</span></div> <div class="chat-msg jeff"><span class="who-name">Jeff:</span> <span class="text">bear thoughts. i won't crowd fang.</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">thanks jeff. that helps.</span></div> <div class="chat-msg jeff"><span class="who-name">Jeff:</span> <span class="text">&ldquo;the action is praiseworthy because it is the action of a man who meant it.&rdquo;</span></div> <div class="chat-msg jeff"><span class="who-name">Jeff:</span> <span class="text">marcus says he'll be still. fang has the floor.</span></div> <<set $lastChatSender = "Jeff">><<set $lastChatText = "marcus says he'll be still. fang has the floor.">><<set $lastChatChannel = "Guild">><<set $lastChatCssClass = "jeff">> </div> </div> <div class="sys note"><strong>DESIGN NOTE &mdash; JEFF FIRST APPEARANCE:</strong> Jeff's first chat-pane content in the demo. Bridge Register active per Story Bible &sect;3.12. The Aurelius line (paraphrased <em>Meditations</em> 11.18) lands as Marcus's interior thought delivered through Jeff's chat. Echoed deliberately in S4_T2 prose where Marcus delivers a closer-to-original version with one word substituted. Demonstrates the IRL-character pairing as a mechanism.</div> <<script>> try { if (window.SOC_Playtest && window.SOC_Playtest.track) { window.SOC_Playtest.track('jeff_first_appearance_seen', { passage: 'Demo3_S3_Briefing' }); } } catch (e) { /* telemetry is best-effort */ } <</script>> <!-- © Studio Zisha 2026 --><div class="loc-tag">&#x1F4CD; Mo St&oacute;r &middot; The Table</div> <div class="sys ambient"><span class="ambient-label">Ambient</span><span class="ambient-meta">Low fire, wood, distant voices.</span></div> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=O2xowk-Lkpc" target="_blank">Please Call My Name</a></span><span class="music-meta">2PM &middot; continues</span></div> <<soctrack "scene_enter" "S3_Briefing_Cosmology">> <div class="two-pane"> <div class="game-pane"> <<socportraitsall>> <img class="scene-image" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/3d031748-b70f-4b7e-9b1a-a9e24b4a2e20/Mo_Sto%CC%81r_Table.png?content-type=image%2Fpng" alt="The table at Mo Stór: low lamplight on dark wood, wine glasses, a wooden tube, a parchment ready to be unrolled." loading="lazy" /> <p>Lawrence reaches for the wooden tube. He uncaps it and slides out a bundle of wool and silk. Five tapestries, rolled together. He has done this many times. He sets the bundle on the table and unrolls it part-way. Water is the outermost layer.</p> <img class="scene-image" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/3f96d14a-624e-4c0f-a05e-1bdb91c9d721/Tapestry-Water-Transparent.png?content-type=image%2Fpng" alt="A silk tapestry depicting World Guardian Water: a figure with dark hair in a long braid and blue-and-white robes, posed mid-motion in the bending of water around her. The image is faded, drained of warmth; cold to the eye in a way that reads even before it is touched." loading="lazy" /> <p>Lawrence holds his hand a finger&rsquo;s width above the tapestry and does not touch it.</p> <div class="dlg"><span class="who lawrence">Lawrence:</span> <span class="line">&ldquo;Hers has been cold for fifty years. The harbor is dying because of it. Whatever&rsquo;s in the water tonight may or may not be hers, but the harbor knows she is gone.&rdquo;</span></div> <p>Water is the outermost. The four others rolled inside, in the order they fell: Sun, Stone, Sky. Then Moon, the most recent, still fading.</p> <p>Fang reads the map the way Fang reads everything. A long look. A decision made without needing to announce it.</p> <div class="dlg"><span class="who fang">Fang:</span> <span class="line">&ldquo;Right. Tiberius has done enough hosting for one night. Let's go meet the men.&rdquo;</span></div> <p>Marcus is at the door before she finishes.</p> </div> <<persistentchat>> </div> <div class="sys note"><strong>DESIGN NOTE &mdash; COSMOLOGY SCREEN (v26 add, screen-split from <code>Demo3_S3_Briefing</code>):</strong> Screen 2 of the wait-path briefing, gated by the <em>"Marcus has gone still."</em> button on Screen 1. Fires only on the wait path; the Lawrence-on-follow path delivers the cosmology en route at <code>Demo3_S4</code> instead. <strong>Why the split:</strong> Screen 1's empirical brief (Fang's signal-reading + Lawrence's geography + Marcus's recognition that the cosmos is the actual subject) and Screen 2's cosmological brief (the wool-and-silk bundle, the Water tapestry, the dying harbor, the bundle-shape) are different registers of information; combining them on a single screen diluted attention on the load-bearing tapestry beat. The split also creates a narrative beat-shift the player feels: Screen 1 ends on Marcus's recognition + the player's button-click that names what Marcus is doing (going still); Screen 2 opens with Lawrence reaching for the bundle and lets the cosmology unfold in a fresh attention frame. <strong>Chat-pane is dimmed</strong> (<code>chat-pane dim</code>) on this screen rather than carrying live Jeff/Clare content, because the cosmological reveal is the foreground and the IRL chatter should fade. The Jeff first-appearance content and the Aurelius-line plant landed on Screen 1 where they belong; Screen 2 doesn't need to compete with that for attention. <strong>Cross-references:</strong> Game Bible &sect;3 (Net's Cosmology and the Guardian System) for full cosmological context; &sect;7.13 Identity Layer Architecture (the two-pane interface, here using bed-specific dim-state to foreground the in-world layer); Music Architecture &sect;1.7 (Two-Bed Audio Architecture; the dimmed chat-pane is the visual analog of audio absence-as-cue); Style Sheet &sect;11 Period-Grounded World-Building (wool-and-silk material naming carries period-grounding that silk-only forfeits); &sect;13 Generic Naming (Guardian/tapestry vocabulary used; no franchise terms). <strong>Surfaced through:</strong> founder caught the screen-too-long pacing problem during playtest. The split was chosen at the empirical/cosmological register-shift specifically because that's where the content's nature changes; pacing-as-a-channel is the underlying principle.</div> <div class="choice"><<link "&#x25B7; Walk to the docks." "Demo3_S4_Combat_Enter">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><div class="loc-tag">&#x1F4CD; The Docks &middot; Approach</div> <div class="sys ambient"><span class="ambient-label">Ambient</span><span class="ambient-meta">Harbor noises &middot; seagulls, lapping water, dock creak. Mineral cold, not fish.</span></div> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title">Iste Mundus Furibundus (CB 24)</span><span class="music-meta">Forestella commission (wishlist) &middot; K-classical-crossover voices on medieval Latin. &ldquo;This raging, mad world.&rdquo; Layered low under harbor ambient.</span></div> <div class="sys note"><strong>MUSIC DIRECTION (writers' room):</strong> Placeholder reference. Any slow-tempo, rhythm-first cue. The song Heartbeat is being withheld here, not deployed.</div> <<soctrack "scene_enter" "S4">> <div class="two-pane"> <div class="game-pane"> <<socportraitsall>> <img class="scene-image" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/a7c85938-f5af-4a5a-bd82-ca26790f60d3/Dock.png?content-type=image%2Fpng" alt="The Rhea Port docks at night: jetty, harbor lamps lit early, mineral cold rising off the water." loading="lazy" /> <p>Marcus was at the door before she finished.</p> <p>You walk out into the night. The merchant quarter is closing as you pass through. Last lamps in the spice stalls, a cart being rolled into a doorway. The streets narrow toward the water. By the time you reach the harbor, the air has changed: mineral cold, not fish.</p> <p>Lawrence walks with you. <<if $waitOrTypeOutcome === "wait">>He glances at you. Not long. Just the one glance that confirms you are someone he has decided to be in a fight with tonight.<<else>>He does not glance at you. He is keeping his attention forward. He will not look at anybody tonight until he has to.<</if>></p> <<if $s3PathChoice === "sidequest">> <p>Halfway down to the harbor, Lawrence speaks without breaking stride. He has the parchment under one arm and the wooden tube in his other hand. He arrived at Mo St&oacute;r minutes after you walked out and caught the four of you on the road.</p> <div class="dlg"><span class="who lawrence">Lawrence:</span> <span class="line">&ldquo;The boat came in on the wrong tide. From a stretch of coast no merchant vessel should have been on. They did not come to dock. They came to block the jetty. Whatever they are guarding has been in the water since before they arrived.&rdquo;</span></div> <p>He does not slow. He pulls the tube from under his arm without breaking stride, uncaps it, and slides out a bundle of wool and silk. Five tapestries, rolled together. He unrolls the bundle just enough to expose the outermost layer.</p> <img class="scene-image" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/3f96d14a-624e-4c0f-a05e-1bdb91c9d721/Tapestry-Water-Transparent.png?content-type=image%2Fpng" alt="A silk tapestry depicting World Guardian Water: a figure with dark hair in a long braid and blue-and-white robes, posed mid-motion in the bending of water around her. The image is faded, drained of warmth; cold to the eye in a way that reads even before it is touched." loading="lazy" /> <div class="dlg"><span class="who lawrence">Lawrence:</span> <span class="line">&ldquo;Hers has been cold for fifty years. The harbor is dying because of it. Whatever&rsquo;s in the water tonight may or may not be hers, but the harbor knows she is gone.&rdquo;</span></div> <p>The others stay rolled. Same cold, to different degrees. Water is what tonight is about.</p> <</if>> <p>The three of them are waiting at the end of the jetty. The harbor lamps are bright on them. A captain in a red coat. Two behind him. The captain holds a ledger in his left hand. His right hand is loose at his side.</p> </div> <div class="chat-pane"> <div class="chat-tabs"> <span class="chat-tab active">Guild</span> <span class="chat-tab">Whisper</span> </div> <div class="chat-msg jeff"><span class="who-name">Jeff:</span> <span class="text">three guys, captain in front. once fang moves, the back two scatter. classic harbor bluff.</span></div> <div class="chat-msg jeff"><span class="who-name">Jeff:</span> <span class="text">watch.</span></div> <<set $lastChatSender = "Jeff">><<set $lastChatText = "watch.">><<set $lastChatChannel = "Guild">><<set $lastChatCssClass = "jeff">> </div> </div> <div class="choice"><<link "&#x25B7; Study the men." "Demo3_S4_T1_Read">><</link>><span class="hint"></span></div> <div class="choice"><<link "&#x25B7; Close the distance." "Demo3_S4_T1_Rush">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><div class="two-pane"> <div class="game-pane"> <<set $pres += 1>> <<set $flow += 1>> <<soctrack "s4_turn1" "read">> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title">Iste Mundus Furibundus (CB 24)</span><span class="music-meta">Forestella commission (wishlist) &middot; continues</span></div> <div class="portrait-row"> <div class="portrait vit-high will-high pres-high"><div class="p-name">Fortune</div><div class="p-vit">VIT $vit/10</div></div> <div class="portrait vit-high"><div class="p-name">Fang</div><div class="p-vit">VIT $fangVIT/10</div></div> <div class="portrait vit-high"><div class="p-name">Marcus</div><div class="p-vit">VIT $marcusVIT/10</div></div> <div class="portrait vit-high will-mid"><div class="p-name">Lawrence</div><div class="p-vit">VIT $lawrenceVIT/10</div></div> </div> <img class="scene-image" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/a7c85938-f5af-4a5a-bd82-ca26790f60d3/Dock.png?content-type=image%2Fpng" alt="The Rhea Port docks at night: jetty, harbor lamps lit early, mineral cold rising off the water." loading="lazy" /> <div class="sys note"><strong>DESIGN NOTE — STATS AS THEATER:</strong> Portrait states driven by CSS classes. VIT dims portraits (filter: grayscale + opacity). WILL colors Lawrence's halo (box-shadow + hue-rotate). PRES saturates your halo (box-shadow). Numbers are fallback; the visual affect is the primary channel. Three states per stat in the demo (high/mid/low); production hire will extend to smooth transitions.</div> <p>The captain holds the ledger wrong. Off-hand. A real captain would have the cord-hand free for the harbormaster's seal-check, and the strong hand on the document. This man has it backward.</p> <p>So he is not a captain.</p> <p>Once you see it, the rest comes. His weight is on his back foot, ready to move, not ready to talk. The two behind him are not watching you. They are watching the water. They are not his crew. They are guards, and what they are guarding is under the jetty, not in front of it. One of them has not moved at all.</p> <p>You move your chin toward the water.</p> <p>Fang's eyes have already been there.</p> <div class="dlg"><span class="who fang">Fang:</span> <span class="line">&ldquo;The one who hasn't moved. His shoulders are wrong. He's our way to who paid for this. I open.&rdquo;</span></div> <p>She's standing now. Her hand has dropped to the long blade across her back without touching it.</p> <div class="sys good"><strong>&#10003; RESONANCE:</strong> PRES +1, FLOW +1. Formation read clear. DEX initiative goes to Fang; she opens the exchange.</div> </div> <<persistentchat>> </div> <div class="choice"><<link "&#x25B7; Turn 1. Fang opens." "Demo3_S4_T1_Open">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><div class="two-pane"> <div class="game-pane"> <<set $dex += 1>> <<set $pres -= 1>> <<soctrack "s4_turn1" "rush">> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title">Iste Mundus Furibundus (CB 24)</span><span class="music-meta">Forestella commission (wishlist) &middot; continues</span></div> <div class="portrait-row"> <div class="portrait vit-high will-high"><div class="p-name">Fortune</div><div class="p-vit">VIT $vit/10</div></div> <div class="portrait vit-high"><div class="p-name">Fang</div><div class="p-vit">VIT $fangVIT/10</div></div> <div class="portrait vit-high"><div class="p-name">Marcus</div><div class="p-vit">VIT $marcusVIT/10</div></div> <div class="portrait vit-high will-low"><div class="p-name">Lawrence</div><div class="p-vit">VIT $lawrenceVIT/10</div></div> </div> <img class="scene-image" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/a7c85938-f5af-4a5a-bd82-ca26790f60d3/Dock.png?content-type=image%2Fpng" alt="The Rhea Port docks at night: jetty, harbor lamps lit early, mineral cold rising off the water." loading="lazy" /> <<set $lawrenceWILL -= 1>> <p>You close. Fang catches your forward motion a half-second too late to redirect it. She moves with you because Fang does not leave.</p> <p>The captain plants his rear foot the way a man plants his foot when he knows he is about to be hit and wants the hit to land somewhere he has chosen.</p> <div class="dlg"><span class="who fang">Fang:</span> <span class="line">&ldquo;(low, without blame) Next time read.&rdquo;</span></div> <p>Lawrence's portrait cools half a step. He did not want to be in the fight yet.</p> <div class="sys warn"><strong>&#9888; FRACTURE:</strong> DEX +1, PRES -1. Lawrence WILL cooled. The formation is off-balance. You owe Turn 2 a correction.</div> </div> <<persistentchat>> </div> <div class="choice"><<link "&#x25B7; Turn 1. The captain strikes first." "Demo3_S4_T1_Struck">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><<set $fangVIT -= 1>> <<soctrack "s4_turn1_resolved" "fang_opens">> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=0lapF4DQPKQ" target="_blank">Black Swan</a></span><span class="music-meta">BTS &middot; Fades in as the fight starts. Iste Mundus and harbor ambient cut.</span></div> <div class="two-pane"> <div class="game-pane"> <div class="portrait-row"> <div class="portrait vit-high will-high pres-high"><div class="p-name">Fortune</div><div class="p-vit">VIT $vit/10</div></div> <div class="portrait vit-mid"><div class="p-name">Fang</div><div class="p-vit">VIT $fangVIT/10</div></div> <div class="portrait vit-high"><div class="p-name">Marcus</div><div class="p-vit">VIT $marcusVIT/10</div></div> <div class="portrait vit-high will-mid"><div class="p-name">Lawrence</div><div class="p-vit">VIT $lawrenceVIT/10</div></div> </div> <p style="font-family:'Cinzel',serif;color:#c4b5fd;font-size:.95rem;margin:1rem 0;">&nbsp;&nbsp;&nbsp;<em>Turn 1.</em></p> <p>Fang moves. DEX 8 vs. VIT 5, resolves. She goes under the captain's guard and takes his off-arm with the flat of the curved blade. Not a kill-strike. A conversation.</p> <p>The captain spins. The ledger goes into the water and does not float. He was keeping something dry; the thing in the water is under the jetty.</p> <p>One of the two behind him goes for Fang. The other stays with the water.</p> <p>Fang takes the counter on her off-side and keeps her feet. She is not hurt. She is working.</p> </div> <div class="chat-pane"> <div class="chat-tabs"> <span class="chat-tab">Guild</span> <span class="chat-tab active">Whisper</span> </div> <div class="chat-msg byungho"><span class="who-name">Byung-Ho:</span> <span class="text">nice open. watch the one by the water.</span></div> <div class="chat-msg jeff"><span class="who-name">Jeff:</span> <span class="text">oh wait. they didn't scatter. ok. not a bluff. they're guarding something.</span></div> <div class="chat-msg jeff"><span class="who-name">Jeff:</span> <span class="text">sorry, my bad.</span></div> <<set $lastChatSender = "Jeff">><<set $lastChatText = "sorry, my bad.">><<set $lastChatChannel = "Whisper">><<set $lastChatCssClass = "jeff">> </div> </div> <div class="choice"><<link "&#x25B7; Turn 2: cover Fang's flank." "Demo3_S4_T2_CoverFang">><</link>><span class="hint"></span></div> <div class="choice"><<link "&#x25B7; Turn 2: press the captain." "Demo3_S4_T2_PressCaptain">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><div class="two-pane"> <div class="game-pane"> <<set $vit -= 2>> <<soctrack "s4_turn1_resolved" "struck">> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=0lapF4DQPKQ" target="_blank">Black Swan</a></span><span class="music-meta">BTS &middot; Fades in as the fight starts. Iste Mundus and harbor ambient cut.</span></div> <div class="portrait-row"> <div class="portrait vit-mid will-mid"><div class="p-name">Fortune</div><div class="p-vit">VIT $vit/10</div></div> <div class="portrait vit-high"><div class="p-name">Fang</div><div class="p-vit">VIT $fangVIT/10</div></div> <div class="portrait vit-high"><div class="p-name">Marcus</div><div class="p-vit">VIT $marcusVIT/10</div></div> <div class="portrait vit-high will-low"><div class="p-name">Lawrence</div><div class="p-vit">VIT $lawrenceVIT/10</div></div> </div> <p style="font-family:'Cinzel',serif;color:#c4b5fd;font-size:.95rem;margin:1rem 0;">&nbsp;&nbsp;&nbsp;<em>Turn 1.</em></p> <p>The captain hits you. His POW 7 vs. your VIT 10. The blow lands on your shoulder and rolls your grip. VIT -2. Your portrait dims. You are still standing and still in the fight.</p> <p>Fang catches the captain mid-reset and takes his off-arm with the flat of the blade. She does not look at you while she does it. The move is for Lawrence to see.</p> </div> <<persistentchat>> </div> <div class="choice"><<link "&#x25B7; Turn 2: cover Fang's flank." "Demo3_S4_T2_CoverFang">><</link>><span class="hint"></span></div> <div class="choice"><<link "&#x25B7; Turn 2: press the captain." "Demo3_S4_T2_PressCaptain">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><<set $fang += 1>> <<set $lawrenceWILL += 2>> <<set $pres += 1>> <<soctrack "s4_turn2" "cover_fang">> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=0lapF4DQPKQ" target="_blank">Black Swan</a></span><span class="music-meta">BTS &middot; continues</span></div> <div class="two-pane"> <div class="game-pane"> <div class="portrait-row"> <div class="portrait vit-mid will-high pres-high"><div class="p-name">Fortune</div><div class="p-vit">VIT $vit/10</div></div> <div class="portrait vit-mid"><div class="p-name">Fang</div><div class="p-vit">VIT $fangVIT/10</div></div> <div class="portrait vit-high"><div class="p-name">Marcus</div><div class="p-vit">VIT $marcusVIT/10</div></div> <div class="portrait vit-high will-high"><div class="p-name">Lawrence</div><div class="p-vit">VIT $lawrenceVIT/10</div></div> </div> <p style="font-family:'Cinzel',serif;color:#c4b5fd;font-size:.95rem;margin:1rem 0;">&nbsp;&nbsp;&nbsp;<em>Turn 2.</em></p> <p>You step left. You are not attacking anybody. You are standing where the second man was going to be, which means he now has to decide whether to go through you or around you, and the decision costs him a half-second.</p> <p>Fang has the half-second. She takes it. Her second strike is cleaner than the first.</p> <p>Lawrence, behind and left, clocks what you did. He does not say anything. His portrait warms. Not much. A shade.</p> <p>Marcus, from the rear of the formation, low and even:</p> <div class="dlg"><span class="who marcus">Marcus:</span> <span class="line">&ldquo;The action is praiseworthy because it is the action of a guard who meant it.&rdquo;</span></div> <div class="sys good"><strong>&#10003; RESONANCE:</strong> Fang Bond +1. PRES +1. Lawrence WILL +2. You covered. He saw.</div> </div> <div class="chat-pane"> <div class="chat-tabs"> <span class="chat-tab active">Guild</span> <span class="chat-tab">Whisper</span> </div> <div class="chat-msg jeff"><span class="who-name">Jeff:</span> <span class="text">ok. there it is.</span></div> <div class="chat-msg jeff"><span class="who-name">Jeff:</span> <span class="text">that's the move byung-ho's been wanting to see for months. nice work fortune.</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">she trusts you now. it's in her shoulders.</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">she dropped half a stride and didn't replace it.</span></div> <div class="chat-msg jeff"><span class="who-name">Jeff:</span> <span class="text">marcus saw it too. just said it out loud.</span></div> <<if $lawrenceWILL >= 7>> <div class="chat-msg byungho"><span class="who-name">Byung-Ho:</span> <span class="text">his confidence came back because you covered her. i can see it on his face.</span></div> <<else>> <div class="chat-msg byungho"><span class="who-name">Byung-Ho:</span> <span class="text">he's watching you. not watching for you. watching.</span></div> <<set $lastChatSender = "Byung-Ho">><<set $lastChatText = "he's watching you. not watching for you. watching.">><<set $lastChatChannel = "Guild">><<set $lastChatCssClass = "byungho">> <</if>> </div> </div> <div class="sys note"><strong>DESIGN NOTE — MARCUS-VOICING-MARCUS REVEAL:</strong> Architectural centerpiece. Jeff's S3_Briefing chat carried the paraphrased <em>Meditations</em> 11.18 ("the action of a man who meant it"); Marcus here delivers the closer-to-original line with <em>guard</em> substituted for <em>man</em> — Marcus seeing Fortune specifically and adjusting his philosophy in real-time. Jeff's chat closes the loop: "marcus saw it too. just said it out loud." The IRL-character pairing becomes visible as a mechanism. Worth attempting; can revert if it doesn't land in playtest.</div> <div class="sys note"><strong>INVESTOR-VISIBLE MOMENT:</strong> This is the moment the pitch becomes manifest. Narrative choice drove a visible affect shift on Lawrence's portrait, which drove the next narrative beat via Byung-Ho's observation. No other RPG demonstrates this this tightly — the shift reads in under half a second because it's visual, not numeric.</div> <<script>> try { if (window.SOC_Playtest && window.SOC_Playtest.track) { window.SOC_Playtest.track('marcus_voicing_marcus_t2_seen', { passage: 'Demo3_S4_T2_CoverFang' }); } } catch (e) { /* telemetry is best-effort */ } <</script>> <div class="choice"><<link "&#x25B7; Turn 3." "Demo3_S4_T3_Turn">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><<set $pow += 1>> <<set $vit -= 1>> <<set $lawrenceWILL -= 1>> <<soctrack "s4_turn2" "press_captain">> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=0lapF4DQPKQ" target="_blank">Black Swan</a></span><span class="music-meta">BTS &middot; continues</span></div> <div class="two-pane"> <div class="game-pane"> <div class="portrait-row"> <div class="portrait vit-mid will-mid"><div class="p-name">Fortune</div><div class="p-vit">VIT $vit/10</div></div> <div class="portrait vit-low"><div class="p-name">Fang</div><div class="p-vit">VIT $fangVIT/10</div></div> <div class="portrait vit-high"><div class="p-name">Marcus</div><div class="p-vit">VIT $marcusVIT/10</div></div> <div class="portrait vit-high will-low"><div class="p-name">Lawrence</div><div class="p-vit">VIT $lawrenceVIT/10</div></div> </div> <<set $fangVIT -= 1>> <p style="font-family:'Cinzel',serif;color:#c4b5fd;font-size:.95rem;margin:1rem 0;">&nbsp;&nbsp;&nbsp;<em>Turn 2.</em></p> <p>You press. POW 6 vs. VIT 8, resolves. You take the captain's other shoulder with a closed fist that was never going to kill him and was not supposed to. He stumbles back a pace. His boot finds a wet plank and skids.</p> <p>But you pressed him forward of where you were covering Fang, and the second man goes through the gap. Fang takes a hit she should not have taken. Her VIT drops another pip. Her portrait desaturates further.</p> <p>Lawrence's portrait cools.</p> <div class="sys warn"><strong>&#9888; FRACTURE PARTIAL:</strong> POW +1. VIT -1. Fang VIT -1. Lawrence WILL -1. You took the captain but you left the flank. He registered it.</div> </div> <div class="chat-pane"> <div class="chat-tabs"> <span class="chat-tab">Guild</span> <span class="chat-tab active">Whisper</span> </div> <div class="chat-msg byungho"><span class="who-name">Byung-Ho:</span> <span class="text">he's not himself. cover him next turn.</span></div> <<set $lastChatSender = "Byung-Ho">><<set $lastChatText = "he's not himself. cover him next turn.">><<set $lastChatChannel = "Whisper">><<set $lastChatCssClass = "byungho">> </div> </div> <div class="choice"><<link "&#x25B7; Turn 3." "Demo3_S4_T3_Turn">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><<soctrack "s4_turn3" "enter">> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=0lapF4DQPKQ" target="_blank">Black Swan</a></span><span class="music-meta">BTS &middot; continues</span></div> <div class="two-pane"> <div class="game-pane"> <div class="portrait-row"> <div class="portrait vit-mid <<if $pres >= 3>>pres-high<</if>> <<if $lawrenceWILL >= 6>>will-high<</if>>"><div class="p-name">Fortune</div><div class="p-vit">VIT $vit/10</div></div> <div class="portrait <<if $fangVIT >= 8>>vit-high<<elseif $fangVIT >= 5>>vit-mid<<else>>vit-low<</if>>"><div class="p-name">Fang</div><div class="p-vit">VIT $fangVIT/10</div></div> <div class="portrait vit-high"><div class="p-name">Marcus</div><div class="p-vit">VIT $marcusVIT/10</div></div> <div class="portrait vit-high <<if $lawrenceWILL >= 7>>will-high<<elseif $lawrenceWILL >= 4>>will-mid<<else>>will-low<</if>>"><div class="p-name">Lawrence</div><div class="p-vit">VIT $lawrenceVIT/10</div></div> </div> <p style="font-family:'Cinzel',serif;color:#c4b5fd;font-size:.95rem;margin:1rem 0;">&nbsp;&nbsp;&nbsp;<em>Turn 3.</em></p> <p>The captain is on the back foot. The second man is regrouping. The third, the one watching the water, has not moved. Whatever is in the water under the jetty is still there, and is still what this was about.</p> <<if $heartbeatEarned>> <<socheartbeat "Low and steady under the scene">> <p><em>Somewhere under the scene, the music shifts. You would not be able to say when it started. It feels like it has been there.</em></p> <<else>> <div class="sys note"><strong>HEARTBEAT WITHHELD (writers' room):</strong> Type path taken in Scene 3. The song Heartbeat does not enter here. Ambient combat texture continues at the same level. No cue. No absence announced. First-time Type-path players experience nothing missing, which is correct.</div> <p><em>The scene is quiet. You are not sure what you were expecting here. Something, maybe. Nothing in particular.</em></p> <</if>> </div> <div class="chat-pane"> <div class="chat-tabs"> <span class="chat-tab">Guild</span> <span class="chat-tab active">Whisper</span> </div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">good call. that was a hard read.</span></div> <<set $lastChatSender = "Clare">><<set $lastChatText = "good call. that was a hard read.">><<set $lastChatChannel = "Whisper">><<set $lastChatCssClass = "clare">> </div> </div> <p>Three choices in front of you now. The captain is an arm's length away. You have tempo. This is the turn where the fight either ends or stops being winnable.</p> <<socweightychoice "Restrain the captain. End the fight." "Demo3_S4_T3_Restrain" '[{"label":"PRES +1","kind":"pos"},{"label":"FLOW +1","kind":"pos"},{"label":"Lawrence WILL +1","kind":"pos"},{"label":"Fight ends clean. Nobody dies.","kind":"neu"}]'>> <<socweightychoice "Push for the hard finish." "Demo3_S4_T3_Hard" '[{"label":"POW +1","kind":"pos"},{"label":"VIT -2 (you take a graze)","kind":"neg"},{"label":"Lawrence WILL -1","kind":"neg"},{"label":"The captain will not be answering questions tonight.","kind":"neu"}]'>> <<socweightychoice "Step back. Let Fang finish." "Demo3_S4_T3_StepBack" '[{"label":"FLOW +2","kind":"pos"},{"label":"PRES +1","kind":"pos"},{"label":"Fang Bond +1","kind":"pos"},{"label":"Lawrence WILL +2","kind":"pos"},{"label":"No Recovery Fracture taken (mastery path).","kind":"neu"}]'>> <!-- © Studio Zisha 2026 --><div class="two-pane"> <div class="game-pane"> <<set $pres += 1>> <<set $flow += 1>> <<set $lawrenceWILL += 1>> <<soctrack "s4_turn3" "restrain">> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=0lapF4DQPKQ" target="_blank">Black Swan</a></span><span class="music-meta">BTS &middot; continues</span></div> <p>You step in under the captain's guard and find the seam where his forearm meets his ribs. His off-hand is already useless; you take the primary in a low wrist lock and bring him to his knees. He does not resist once he is down. He has been a captain long enough to know when a fight is over.</p> <p>Fang is at his back before he finishes going down. Her blade is at the base of his skull, touching, not pressing. Marcus has the second man against the jetty rail. Lawrence is with the third one, the one who was watching the water.</p> <div class="dlg"><span class="who lawrence">Lawrence:</span> <span class="line">&ldquo;Tell me what's in the water.&rdquo;</span></div> <p>The third man tells him.</p> <div class="sys good"><strong>&#10003; RESONANCE:</strong> PRES +1. FLOW +1. Lawrence WILL +1. Fight resolved in three turns without a kill. The thing in the water is for another night.</div> </div> <<persistentchat>> </div> <div class="choice"><<link "&#x25B7; The fight ends." "Demo3_S4_Resolved">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><div class="two-pane"> <div class="game-pane"> <<set $pow += 1>> <<set $vit -= 2>> <<set $lawrenceWILL -= 1>> <<soctrack "s4_turn3" "hard">> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=0lapF4DQPKQ" target="_blank">Black Swan</a></span><span class="music-meta">BTS &middot; continues</span></div> <p>You push for the finish. POW 7, committed. The captain goes down harder than you intended. His head meets the jetty. He is still alive but he is not going to be answering questions tonight.</p> <p>You took a graze going in. VIT -2. Your portrait dims.</p> <p>Fang ends the second man without commentary. Marcus has the third against the rail. Lawrence watches.</p> <div class="dlg"><span class="who lawrence">Lawrence:</span> <span class="line">&ldquo;Harder than it had to be.&rdquo;</span></div> <p>He is not angry. He is correcting. Fang catches his eye and does not argue with him, which is the thing.</p> <div class="sys warn"><strong>&#9888; PARTIAL:</strong> POW +1. VIT -2. Lawrence WILL -1. You closed the fight. You also closed the conversation you came here for.</div> </div> <<persistentchat>> </div> <div class="choice"><<link "&#x25B7; The fight ends." "Demo3_S4_Resolved">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><<set $noRecoveryTaken = true>> <<set $flow += 2>> <<set $pres += 1>> <<set $fang += 1>> <<set $lawrenceWILL += 2>> <<soctrack "s4_turn3" "no_recovery">> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=0lapF4DQPKQ" target="_blank">Black Swan</a></span><span class="music-meta">BTS &middot; continues</span></div> <div class="two-pane"> <div class="game-pane"> <p>You step back.</p> <p>It is not a retreat. You are not moving out of the fight. You are moving out of the part of the fight that is yours so that the part that is Fang's can happen without you in the way.</p> <p>Fang takes the captain. Two strokes. Clean. The second man goes with the third.</p> <p>Lawrence is at the third man, not looking at you.</p> <div class="dlg"><span class="who lawrence">Lawrence:</span> <span class="line">&ldquo;That's the move.&rdquo;</span></div> </div> <div class="chat-pane"> <div class="chat-tabs"> <span class="chat-tab active">Guild</span> <span class="chat-tab">Whisper</span> </div> <div class="chat-msg jeff"><span class="who-name">Jeff:</span> <span class="text">^ that. that's the one.</span></div> <div class="chat-msg jeff"><span class="who-name">Jeff:</span> <span class="text">byung-ho watching from offline still teaching us.</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">he taught me that two years ago.</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">i forgot it. i remembered it because of fortune.</span></div> <div class="chat-msg byungho"><span class="who-name">Byung-Ho:</span> <span class="text">that's the move. i learned that one the hard way.</span></div> <<set $lastChatSender = "Byung-Ho">><<set $lastChatText = "that's the move. i learned that one the hard way.">><<set $lastChatChannel = "Guild">><<set $lastChatCssClass = "byungho">> </div> </div> <div class="sys good"><strong>&#10003; RESONANCE:</strong> FLOW +2. PRES +1. Fang Bond +1. Lawrence WILL +2. No Recovery Fracture taken. Stepping back is mastery, not failure. Byung-Ho registered it out-of-band.</div> <div class="sys note"><strong>DESIGN NOTE — NO RECOVERY FRACTURE:</strong> Optional mastery path. The game models that stepping back when the fight is not yours can be the strongest move. This is the Cheers-adjacent chemistry: endorphins present (you stayed present under pressure) but serotonin leading (you earned Lawrence's "that's the move" without needing to deliver the final hit). Byung-Ho's IRL echo converts the in-world beat into out-of-world recognition.</div> <div class="sys note"><strong>DESIGN NOTE — PLAYER-COMMUNITY SUBSTRATE:</strong> Clare's "i forgot it. i remembered it because of fortune" is the demo's most explicit single line about players teaching each other across time. Jeff's intentional non-reply after Clare's recognition beat is the &sect;5 sustained-character-presence discipline: Jeff knows when to not speak. Fandom-flywheel substrate beat.</div> <div class="choice"><<link "&#x25B7; The fight ends." "Demo3_S4_Resolved">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><div class="two-pane"> <div class="game-pane"> <<soctrack "scene_exit" "S4">> <<set $xp += 1>> <div class="sys music"><span class="music-label">Wishlist Music</span><span class="music-title"><a href="https://www.youtube.com/watch?v=0lapF4DQPKQ" target="_blank">Black Swan</a></span><span class="music-meta">BTS &middot; fades out.</span></div> <div class="sys ambient"><span class="ambient-label">Ambient</span><span class="ambient-meta">Harbor noises fade back in. Seagulls, lapping water, dock creak.</span></div> <img class="scene-image" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/a7c85938-f5af-4a5a-bd82-ca26790f60d3/Dock.png?content-type=image%2Fpng" alt="The Rhea Port docks at night: jetty, harbor lamps lit early, mineral cold rising off the water." loading="lazy" /> <p>The night gets quiet.</p> <p>Lawrence is at the third man, who is sitting up but not standing. The third man's hands are visible. He is talking. He is talking faster than he needs to.</p> <div class="dlg"><span class="who other">The third man:</span> <span class="line">&ldquo;It makes a sound. When the tide comes in. That's all I can tell you. We weren't supposed to look.&rdquo;</span></div> <div class="dlg"><span class="who other">The third man:</span> <span class="line">&ldquo;A man paid us. I don't know who paid him. We were supposed to be at the jetty so people wouldn't come down. That's all.&rdquo;</span></div> <div class="dlg"><span class="who other">The third man:</span> <span class="line">&ldquo;We weren't supposed to fight. The captain&hellip; he didn't think you'd come.&rdquo;</span></div> <p>Lawrence nods once. He does not press for more. They will come back for it. Tonight is not the night for the thing in the water.</p> <div class="sys note"><strong>DESIGN NOTE &mdash; ENCOUNTER-NPC UNRELIABILITY (Game Bible &sect;7.16.2):</strong> The third man operates in the antagonist-game middle of the reliability spectrum. He is partially honest (the sound when the tide comes in &mdash; probably true; he heard it on watch) and partially shaping his account for survival (&ldquo;we weren't supposed to fight&rdquo; softens his crew's role; the second man stabbed Fang). Lawrence reads what he can use and stops. The player who pays attention will notice that the third man's account is not the full account &mdash; that is the investigative-gameplay layer, demonstrated in miniature. The "the captain didn't think you'd come" line is a self-protective deflection that also happens to be true, which is the most character-faithful kind of unreliability.</div> <p>The captain and the second man are tied to the jetty rail. Someone Rhea Port trusts will collect them before dawn. The third man is sitting with his back to a bollard, alive, talking quietly to Marcus, who asks questions in the low register that convinces people their answers are a gift rather than a cost.</p> <p>Fang is at the end of the jetty. Not standing anymore. Sitting. She has taken her blades off and set them beside her. She is watching the water. The water is lapping the way water does.</p> <p>Lawrence is on a crate at the dock's edge, closer to the water than Fang, and not talking. He is not watching anything in particular. He is breathing.</p> <<if $waitOrTypeOutcome === "wait">> <p>Somewhere, Heartbeat resolves. You do not notice it stopping because you did not notice it starting.</p> <</if>> <div class="portrait-row"> <div class="portrait <<if $vit >= 8>>vit-high<<elseif $vit >= 5>>vit-mid<<else>>vit-low<</if>> <<if $pres >= 3>>pres-high<</if>>"><div class="p-name">Fortune</div><div class="p-vit">VIT $vit/10</div></div> <div class="portrait <<if $fangVIT >= 8>>vit-high<<elseif $fangVIT >= 5>>vit-mid<<else>>vit-low<</if>>"><div class="p-name">Fang</div><div class="p-vit">VIT $fangVIT/10</div></div> <div class="portrait vit-high"><div class="p-name">Marcus</div><div class="p-vit">VIT $marcusVIT/10</div></div> <div class="portrait vit-high <<if $lawrenceWILL >= 7>>will-high<<elseif $lawrenceWILL >= 4>>will-mid<<else>>will-low<</if>>"><div class="p-name">Lawrence</div><div class="p-vit">VIT $lawrenceVIT/10</div></div> </div> </div> <<persistentchat>> </div> <div class="choice"><<link "&#x25B7; (sit with the party.)" "Demo3_S5_Silence">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><div class="loc-tag">&#x1F4CD; The Dock's Edge</div> <div class="sys ambient"><span class="ambient-label">Silence</span><span class="ambient-meta">All music cuts. Ambient water only. No instrument. No voice. 45 seconds.</span></div> <<soctrack "scene_enter" "S5">> <div class="sys note"><strong>DESIGN RULE — DEFEND THIS SCENE:</strong> No countdown. No timer. No progress bar. The "Return" link appears as greyed text from the start (the game allows it — players can skip) and becomes legible at ~45s. Players who hold it earn the Scene 6 beat arriving slightly richer. Players who skip lose nothing explicit; the game does not punish either path. Playtest first. Budget-defend in every meeting for two years.</div> <div class="silence-scene"> <div class="silence-anchor"></div> <div class="silence-text"> Water.<br> The crate creaks once under Lawrence's weight and then does not creak again.<br> Fang breathes. Slower than the waves.<br> Marcus is somewhere behind you doing nothing.<br><br> Nobody says anything. </div> </div> <p style="text-align:center;margin-top:2rem;"> <a id="silence-continue" href="#" onclick="window.endSilence(); SugarCube.Engine.play('Demo3_S5_End'); return false;" style="color:#4b5563;font-size:.85rem;font-style:italic;opacity:.4;transition:opacity 1.5s,color 1.5s;"> &#x25B7; (continue.) </a> </p> <script> setTimeout(function(){ if(window.startSilence) window.startSilence(45000); }, 100); </script> <!-- © Studio Zisha 2026 --><<soctrack "scene_exit" "S5">> <div class="sys ambient"><span class="ambient-label">Ambient</span><span class="ambient-meta">Silence holds. No music returns yet. Soft pre-dawn ambient: water fading behind, wind off the harbor, footsteps on stone. Strings will enter when Tiberius's door opens.</span></div> <<if $silenceHeld>> <<set $pres += 1>> <<set $flow += 1>> <div class="two-pane"> <div class="game-pane"> <p>The party stands when you stand. Nobody discusses when to leave. You left when you were done. They noticed. They came with.</p> <div class="sys good"><strong>&#10003; RESONANCE:</strong> PRES +1. FLOW +1. You held the quiet. The next beat will arrive slightly warmer than if you had not.</div> <<socjournal "The Quiet After" "Nobody said anything. Everyone was there. Held the quiet together. The next beat will arrive slightly warmer." "bond &middot; presence">> </div> <div class="chat-pane"> <div class="chat-tabs"> <span class="chat-tab active">Guild</span> <span class="chat-tab">Whisper</span> </div> <div class="chat-msg jeff"><span class="who-name">Jeff:</span> <span class="text">&ldquo;confine yourself to the present.&rdquo;</span></div> <div class="chat-msg jeff"><span class="who-name">Jeff:</span> <span class="text">marcus is good. see you all at the bar.</span></div> </div> </div> <div class="sys note"><strong>DESIGN NOTE — JEFF CLOSING BEAT:</strong> Gated on $silenceHeld. The Aurelius line (<em>Meditations</em> 8.47) is delivered as Marcus's interior post-silence thought through Jeff's chat. The line is earned: it presupposes the silence was held. Skip-path keeps existing prose unchanged. The chat-before-prose sequencing creates the architectural payoff: Marcus thinks the line, then the next prose paragraph tells you he is humming — which the player will read as him processing what he just thought.</div> <<script>> try { if (window.SOC_Playtest && window.SOC_Playtest.track) { window.SOC_Playtest.track('s5_jeff_beat_held', { passage: 'Demo3_S5_End' }); } } catch (e) { /* telemetry is best-effort */ } <</script>> <<else>> <div class="two-pane"> <div class="game-pane"> <p>You stand before the rest of them. Fang turns her head slightly, notes it, and stands too. Lawrence is a beat behind. Marcus follows.</p> </div> </div> <</if>> <div class="two-pane"> <div class="game-pane"> <p>The walk back to Mo St&oacute;r is not long. Marcus is humming something. Fang's hand drops to her blade-hilt once, brief, unhurried. The blades are fine. The night is over. Everyone is alive.</p> </div> <div class="chat-pane"> <div class="chat-tabs"> <span class="chat-tab active">Guild</span> <<if $ishaniByunghoTrust <= 2>><span class="chat-tab">Whisper<span class="chat-dot"></span></span><<else>><span class="chat-tab">Whisper</span><</if>> </div> <div class="chat-timestamp" style="color:#34d399;">Byung-Ho is online.</div> <div class="chat-msg byungho"><span class="who-name">Byung-Ho:</span> <span class="text">back. clare caught me up.</span></div> <<if $ishaniByunghoTrust >= 5>> <div class="chat-msg byungho"><span class="who-name">Byung-Ho:</span> <span class="text">nice work, fortune.</span></div> <<set $lastChatSender = "Byung-Ho">><<set $lastChatText = "nice work, fortune.">><<set $lastChatChannel = "Guild">><<set $lastChatCssClass = "byungho">> <</if>> </div> </div> <div class="sys note"><strong>DESIGN NOTE &mdash; BYUNG-HO RETURN BEAT (v26 add, partial-ghosting render):</strong> First read of <code>$ishaniByunghoTrust</code> as a cost-rendering surface. Two-axis differential: <strong>(1) public Guild line</strong>, identical opener (&ldquo;back. clare caught me up.&rdquo;) in both states, but State A (trust intact, <code>&gt;= 5</code>) adds a second public line naming Fortune by her in-game name &mdash; pattern-matched to Jeff's &ldquo;marcus is good&rdquo; beat above so the absence in State B is legible by contrast; State B (trust damaged, <code>&lt;= 2</code>) omits that second line. <strong>(2) Whisper tab indicator</strong>, no chat-dot in State A, pulsing chat-dot in State B &mdash; using the existing <code>.chat-dot</code> class that ships pink (Clare's color). The pink-as-Clare implication is intentional and deniable: the player can read it as &ldquo;Byung-Ho is whispering Clare specifically&rdquo; or as &ldquo;Byung-Ho is whispering someone, color is just default.&rdquo; The whisper content is never shown &mdash; the deniability is the mechanic. This is the IRL-coded register of partial ghosting: the person didn't refuse you, they just routed their warmth through a different channel where you can see it happening but not access it. Independent of <code>$silenceHeld</code> &mdash; Byung-Ho's return is its own arc, fires regardless of whether the silence was held. Sequenced after the walk-prose so it reads as a notification mid-walk, before the &ldquo;Dawn is about an hour out&rdquo; settling beat. <strong>Channel allocation:</strong> Audio-channel decisions for this beat are split between the demo3 build (what ships) and the cinematic forward-spec (what the architecture inherits). <strong>Demo3 v26 deployment (Option &alpha; &mdash; inherit, no sub-cue):</strong> No music event fires &mdash; load-bearing silence, because music would prime affect that the small UI signal cannot compete with. The chat-pane is silent in the audio sense; in-world ambient inherits unchanged from the S5_End corridor (water fading, wind off the harbor, footsteps on stone). The chat-return is a visual-only event in v26. This is correct for the prose-first Twine build because adding audio infrastructure for chat notifications is premature for this scope. <strong>Cinematic forward-spec (Option &gamma; &mdash; layered audio beds):</strong> The full game runs two parallel ambient beds, mirroring the two-pane visual architecture. <strong>In-world bed:</strong> what Fortune hears in Rhea Port (here: pre-dawn ambient corridor). <strong>IRL bed:</strong> what Ishani hears at her laptop late at night (apartment texture &mdash; refrigerator hum, laptop fan, distant traffic). The chat-message-arrival fires a discrete audio event on the IRL bed: a subtle in-game chat notification tone. <strong>State A</strong> fires the tone twice (once per message) with a brief pause between. <strong>State B</strong> fires the tone once, and the absence of the second tone reinforces the absence of the second message &mdash; an audio-channel deployment of the same two-axis differential the visual channel carries. The audio absence is itself a cue. <strong>Architecture forward note:</strong> the IRL audio bed is its own channel parallel to the in-world ambient bed. Every IRL-chat moment in the game has an implicit IRL audio bed; documenting it here so the pattern is reusable when the cinematic build inherits this beat. <strong>Demo3-scope decision:</strong> the whisper-asymmetry mechanic is deployed only here in v26. Future passes may propagate the same pattern to S6 and S7 guild-chat moments &mdash; that work is gated on playtest signal, not built speculatively. Future-you / writers: the markup pattern (chat-dot inside the Whisper tab, no whisper content rendered) is the reusable architecture; copy it as-is when extending.</div> <<script>> try { if (window.SOC_Playtest && window.SOC_Playtest.track) { window.SOC_Playtest.track('s5_byungho_return', { passage: 'Demo3_S5_End', trust: State.variables.ishaniByunghoTrust, partial_ghosting: State.variables.ishaniByunghoTrust <= 2 }); } } catch (e) { /* telemetry is best-effort */ } <</script>> <p>Dawn is about an hour out. You can feel it in the light more than in the time.</p> <p>Tiberius's door is open.</p> <div class="choice"><<link "&#x25B7; Walk in." "Demo3_S6_Cheers">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><div class="loc-tag">&#x1F4CD; Mo St&oacute;r &middot; Before Dawn</div> <div class="sys ambient"><span class="ambient-label">Ambient</span><span class="ambient-meta">Water fades as the party walks back. Cardamom-warm strings enter as the door opens, a harmonic echo of Heartbeat, not the song itself.</span></div> <div class="sys note"><strong>MUSIC DIRECTION (writers' room):</strong> Serotonergic register. Major key, resolved, unhurried. The song Heartbeat does not return. It has done its work.</div> <<soctrack "scene_enter" "S6">> <div class="two-pane"> <div class="game-pane"> <img class="scene-image" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/f6a1edb4-2417-4e4c-880e-f3572e3afc67/Mo_Sto%CC%81r_Door_Morning.png?content-type=image%2Fpng" alt="The door of Mo Stór in pre-dawn light, before the party walks back in." loading="lazy" /> <p>The air inside is warm with woodsmoke and cardamom. Someone kept the fire up through the night. The low banks of coals have that settled red that means they have been fed on a schedule by hands that know the room.</p> <p>Tiberius is behind the bar. He does not look up when you walk in. He is reaching to the lower shelf, not the house shelf, the one below it, for a small copper vessel from somebody's set.</p> <p>He is already preparing the drink.</p> <<soctibtell "Tiberius's hand goes to the glass cloth once, absent. Then back to the copper vessel. Whatever it has been doing all night, it has been waiting for you.">> <p>He does not ask how you take it. He knows.</p> <p>He sets it down in front of your place at the bar. Steam rises. The smell reaches you before the cup does. Cardamom. Something mineral. Something unplaceable. Both of his hands on the saucer, the way tea is served east of Constantinople.</p> <p>Then, without ceremony, without looking up from the cup, quietly:</p> <div class="dlg"><span class="who tiberius">Tiberius:</span> <span class="line">&ldquo;<<print $avatarName>>.&rdquo;</span></div> <p>He has never used your name before. He uses it now the way a host greets a regular: quietly, unsurprised.</p> <div class="sys note"><strong>DESIGN NOTE — THE NAMING:</strong> Tiberius is an in-world NPC and uses the in-world avatar name only. He never knows or references Ishani. This is Game Bible 7.X, non-negotiable. The copper cup is the period-appropriate belonging gesture: a host who remembers how you take your drink and prepares it unasked. The object carries the memory; no label needed.</div> <p><<if $stoolNoticed>>Your eye travels along the bar. There is the stool again. Still held. Still clean. Nobody points at it.<<else>>Your eye travels along the bar. At the far end, slightly apart from the others, there is a stool that no one is sitting on. Clean. Positioned as if waiting. It is not unusable. It is reserved.<</if>></p> <p>Tiberius, as you are deciding whether to sit, says one more quiet line:</p> <div class="dlg"><span class="who tiberius">Tiberius:</span> <span class="line">&ldquo;Some nights people walk back in and the cup isn't waiting. That's the way of it. Not tonight.&rdquo;</span></div> <p>He returns to the glass cloth. He does not elaborate.</p> <div class="sys note"><strong>DESIGN NOTE — FAILURE MODE PLANTED:</strong> This is the Demo 1 feedback correction. The preserved stool + Tiberius's line together plant that belonging can be revoked — without this demo showing the player losing their seat. Minimum viable stakes signal.</div> <p>The cup is warm. You are standing in front of it. Fang is on your left, waiting to see what you do. Marcus has already moved toward the stool on your right. Lawrence is at the end of the bar, not joining, watching the room the way he watched the bandit raid.</p> </div> <div class="chat-pane"> <div class="chat-tabs"> <span class="chat-tab">Guild</span> <span class="chat-tab active">Whisper</span> </div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">oh.</span></div> <<set $lastChatSender = "Clare">><<set $lastChatText = "oh.">><<set $lastChatChannel = "Whisper">><<set $lastChatCssClass = "clare">> </div> </div> <div class="choice"><<link "&#x25B7; Sit." "Demo3_S6_Sit">><</link>><span class="hint">The cup is yours. The seat is yours.</span></div> <div class="choice"><<link "&#x25B7; Do not sit. Take the cup. Stay standing." "Demo3_S6_Stand">><</link>><span class="hint">The place is yours whether or not you occupy it now.</span></div> <!-- © Studio Zisha 2026 --><<if not $s6SitVisited>> <<set $s6SitVisited = true>> <<set $playerSat = true>> <<set $tiberius += 2>> <<set $xp += 1>> <<soctrack "s6_choice" "sit">> <<socjournal "The Cup Was Waiting" "Tiberius had it ready before you walked in. He said your name the way a host greets a regular. The stool at the far end is still held. Someone you haven't met yet knew this bar." "bond · mo stór · belonging">> <</if>> <div class="sys ambient"><span class="ambient-label">Ambient</span><span class="ambient-meta">Cardamom-warm strings continue. The fire's low banks hold under everything. No melodic arrival. Texture only.</span></div> <div class="two-pane"> <div class="game-pane"> <img class="scene-image" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/b832c2e2-b994-443d-ae0e-5fdf51746ad0/Mo_Sto%CC%81r_early_morn.png?content-type=image%2Fpng" alt="The interior of Mo Stór in early morning: fire banked low, cup on the bar, the room holding the night that just ended." loading="lazy" /> <p>You sit.</p> <p>Fang slides onto the stool next to you. Marcus takes the stool on the other side. Lawrence stays standing at the end of the bar, not joining, but present.</p> <p>Nobody toasts. Nobody makes a speech. Nobody explains what the cup means.</p> <p>The cup is warm in your hands. The room is warm. The party is intact. Fang is quiet for the first time since you walked in hours ago. Quiet is not her resting state. She is resting.</p> <p>Lawrence, at the end of the bar, looks at the stool that is still held. He does not say anything about it. He does not look at it long enough for anyone to notice except you.</p> </div> <div class="chat-pane"> <div class="chat-tabs"> <span class="chat-tab">Guild</span> <span class="chat-tab active">Whisper</span> </div> <div class="chat-msg byungho"><span class="who-name">Byung-Ho:</span> <span class="text">that's a real seat. earned that one.</span></div> <<set $lastChatSender = "Byung-Ho">><<set $lastChatText = "that's a real seat. earned that one.">><<set $lastChatChannel = "Whisper">><<set $lastChatCssClass = "byungho">> </div> </div> <div class="sys good"><strong>&#10003; RESONANCE:</strong> Tiberius Bond +2. XP +1. You sat. The cup was for you. The seat was for you. Neither required you to earn them in this session, but both were earned in sessions you half-remember.</div> <div class="choice"><<link "&#x25B7; Finish the tea." "Demo3_S7_ClareClose">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><<if not $s6StandVisited>> <<set $s6StandVisited = true>> <<set $playerSat = false>> <<set $tiberius += 1>> <<set $xp += 1>> <<soctrack "s6_choice" "stand">> <<socjournal "It'll Be Waiting" "You did not sit. Tiberius did not insist. The cup stayed with you. The seat stayed with them. The word for that is not exactly belonging, but it is adjacent to it, and it will do for tonight." "bond · mo stór · belonging">> <</if>> <div class="sys ambient"><span class="ambient-label">Ambient</span><span class="ambient-meta">Cardamom-warm strings continue. The fire's low banks hold under everything. No melodic arrival. Texture only.</span></div> <div class="two-pane"> <div class="game-pane"> <img class="scene-image" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/b832c2e2-b994-443d-ae0e-5fdf51746ad0/Mo_Sto%CC%81r_early_morn.png?content-type=image%2Fpng" alt="The interior of Mo Stór in early morning: fire banked low, cup on the bar, the room holding the night that just ended." loading="lazy" /> <p>You take the cup. You do not sit.</p> <p>Tiberius does not react. The cup moves with you. The stool stays where it is, held, not occupied.</p> <div class="dlg"><span class="who tiberius">Tiberius:</span> <span class="line">&ldquo;It'll be waiting.&rdquo;</span></div> <p>Fang, passing by on her way to the back alcove:</p> <div class="dlg"><span class="who fang">Fang:</span> <span class="line">&ldquo;Take your time.&rdquo;</span></div> <p>The party settles in without you, which is the point. Marcus takes the stool next to the one Fang took. Lawrence leans against the far wall, still watching, still present. You stand with the warm cup in your hand. The place is yours. Whether or not you occupy it right now.</p> </div> <div class="chat-pane"> <div class="chat-tabs"> <span class="chat-tab active">Guild</span> <span class="chat-tab">Whisper</span> </div> <div class="chat-msg jeff"><span class="who-name">Jeff:</span> <span class="text">wow, that's a strong choice. she's playing this for real.</span></div> <<set $lastChatSender = "Jeff">><<set $lastChatText = "wow, that's a strong choice. she's playing this for real.">><<set $lastChatChannel = "Guild">><<set $lastChatCssClass = "jeff">> </div> </div> <div class="sys good"><strong>&#10003; RESONANCE:</strong> Tiberius Bond +1. XP +1. You did not need the seat to have the place. He was not going to require that you did.</div> <div class="choice"><<link "&#x25B7; Finish the tea. Standing, at the edge of the room that is yours." "Demo3_S7_ClareClose">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><div class="sys ambient"><span class="ambient-label">Ambient</span><span class="ambient-meta">Cardamom-warm strings hold under the scene. No melodic arrival. Fades on Clare's last message.</span></div> <div class="sys note"><strong>MUSIC DIRECTION (writers' room):</strong> The cue that plays under the final line is not the song Heartbeat and not White Night. It is the register of a session ending well.</div> <<soctrack "scene_enter" "S7">> <p>The screen dims. Dawn is in the room now. Tiberius is banking the fire down. Fang is on the stool with her eyes half-closed. Marcus is talking, very quietly, about something Lawrence is listening to without appearing to.</p> <p>Your phone chimes.</p> <div class="two-pane"> <div class="game-pane dim"> <img class="scene-image" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/b832c2e2-b994-443d-ae0e-5fdf51746ad0/Mo_Sto%CC%81r_early_morn.png?content-type=image%2Fpng" alt="The interior of Mo Stór in early morning: fire banked low, cup on the bar, the room holding the night that just ended." loading="lazy" /> <p style="text-align:center;color:#6b7280;font-style:italic;margin-top:2rem;"> end of session<br> <span style="font-size:.8rem;opacity:.6;">Fang · Marcus · Lawrence · Tiberius<br>all still at Mo St&oacute;r</span> </p> </div> <div class="chat-pane"> <div class="chat-tabs"> <span class="chat-tab">Guild</span> <span class="chat-tab active">Whisper</span> </div> <div class="chat-timestamp">just now</div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">fang did something tonight i wasn't planning. the scene just went there and i followed.</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">thanks for following too.</span></div> <<set $lastChatSender = "Clare">><<set $lastChatText = "thanks for following too.">><<set $lastChatChannel = "Whisper">><<set $lastChatCssClass = "clare">> </div> </div> <div class="sys note"><strong>DESIGN NOTE — CLARE CLOSING LINE:</strong> Candidate C (craft-language). Grounds the meta-layer in creator-language rather than feeling-language. K-drama and romantasy audiences are fluent in "the character did something I didn't plan" as a valid and honest creator statement. Test with K-drama audience before locking; do not test with general-gaming playtesters.</div> <p>You read it twice.</p> <p>The first read was the sentence. The second was the word "followed." Her craft-language. Clare is saying Fang showed her something tonight she hadn't seen in two years of playing her. And she is saying you helped surface it.</p> <p>You notice you noticed. You notice you are still sitting in front of the cup, warm in your hands. Contented by what you accomplished tonight.</p> <div class="choice"><<link "&#x25B7; 'yeah. same.'" "Demo3_S7_End_A">><</link>><span class="hint"></span></div> <div class="choice"><<link "&#x25B7; 'thanks. you too.'" "Demo3_S7_End_B">><</link>><span class="hint"></span></div> <<socweightychoice "'i saw something tonight i don&rsquo;t think i&rsquo;ve seen in a game before. is that weird to say?'" "Demo3_S7_End_C" '[{"label":"Clare Bond +2","kind":"pos"},{"label":"Opens the door to out-of-game connection.","kind":"neu"},{"label":"Cannot be taken back tonight.","kind":"neu"}]'>> <<socweightychoice "(do not respond tonight.)" "Demo3_S7_End_D" '[{"label":"Clare Bond unchanged","kind":"neu"},{"label":"Clare&rsquo;s message stays unread for now.","kind":"neu"},{"label":"Door not closed. Just not walked through tonight.","kind":"neu"}]'>> <!-- © Studio Zisha 2026 --><<set $clareClosingChoice = "same">> <<set $clareBond += 1>> <<soctrack "s7_choice" "same">> <div class="sys ambient"><span class="ambient-label">Silence</span><span class="ambient-meta">Strings have faded. Pre-dawn quiet. No music. Only the room: fire banked low, breathing, the kettle settling.</span></div> <div class="two-pane"> <div class="game-pane dim"> <img class="scene-image" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/b832c2e2-b994-443d-ae0e-5fdf51746ad0/Mo_Sto%CC%81r_early_morn.png?content-type=image%2Fpng" alt="The interior of Mo Stór in early morning: fire banked low, cup on the bar, the room holding the night that just ended." loading="lazy" /> </div> <div class="chat-pane"> <div class="chat-tabs"> <span class="chat-tab">Guild</span> <span class="chat-tab active">Whisper</span> </div> <div class="chat-msg me"><span class="who-name">Ishani:</span> <span class="text">yeah. same.</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">ok. see you next session.</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">go eat something. i know you didn't.</span></div> <<set $lastChatSender = "Clare">><<set $lastChatText = "go eat something. i know you didn't.">><<set $lastChatChannel = "Whisper">><<set $lastChatCssClass = "clare">> </div> </div> <p>She signed off the way she probably signs off with everyone she likes: fast, warm, already onto the next thing. You notice she knew you hadn't eaten. You notice you noticed that she noticed.</p> <div class="choice"><<link "&#x25B7; Close the laptop." "Demo3_S7_End_Outro">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><<set $clareClosingChoice = "thanks">> <<soctrack "s7_choice" "thanks">> <div class="sys ambient"><span class="ambient-label">Silence</span><span class="ambient-meta">Strings have faded. Pre-dawn quiet. No music. Only the room: fire banked low, breathing, the kettle settling.</span></div> <div class="two-pane"> <div class="game-pane dim"> <img class="scene-image" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/b832c2e2-b994-443d-ae0e-5fdf51746ad0/Mo_Sto%CC%81r_early_morn.png?content-type=image%2Fpng" alt="The interior of Mo Stór in early morning: fire banked low, cup on the bar, the room holding the night that just ended." loading="lazy" /> </div> <div class="chat-pane"> <div class="chat-tabs"> <span class="chat-tab">Guild</span> <span class="chat-tab active">Whisper</span> </div> <div class="chat-msg me"><span class="who-name">Ishani:</span> <span class="text">thanks. you too.</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">&#x1F90D;</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">sleep well.</span></div> <<set $lastChatSender = "Clare">><<set $lastChatText = "sleep well.">><<set $lastChatChannel = "Whisper">><<set $lastChatCssClass = "clare">> </div> </div> <p>She sent a heart emoji. A small one. A yellow one. You notice which one she chose.</p> <div class="choice"><<link "&#x25B7; Close the laptop." "Demo3_S7_End_Outro">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><<set $clareClosingChoice = "open_door">> <<set $clareBond += 2>> <<soctrack "s7_choice" "open_door">> <div class="sys ambient"><span class="ambient-label">Silence</span><span class="ambient-meta">Strings have faded. Pre-dawn quiet. No music. Only the room: fire banked low, breathing, the kettle settling.</span></div> <div class="two-pane"> <div class="game-pane dim"> <img class="scene-image" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/b832c2e2-b994-443d-ae0e-5fdf51746ad0/Mo_Sto%CC%81r_early_morn.png?content-type=image%2Fpng" alt="The interior of Mo Stór in early morning: fire banked low, cup on the bar, the room holding the night that just ended." loading="lazy" /> </div> <div class="chat-pane"> <div class="chat-tabs"> <span class="chat-tab">Guild</span> <span class="chat-tab active">Whisper</span> </div> <div class="chat-msg me"><span class="who-name">Ishani:</span> <span class="text">i saw something tonight i don't think i've seen in a game before. is that weird to say?</span></div> <div class="chat-typing">Clare is typing&hellip;</div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">no. it's not weird.</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">it's the thing.</span></div> <div class="chat-msg clare"><span class="who-name">Clare:</span> <span class="text">ok i really do have to sleep now. next session is thursday. i'll see you there.</span></div> <<set $lastChatSender = "Clare">><<set $lastChatText = "ok i really do have to sleep now. next session is thursday. i'll see you there.">><<set $lastChatChannel = "Whisper">><<set $lastChatCssClass = "clare">> </div> </div> <p>You read "it's the thing" three times.</p> <p>Clare showed a different side of herself tonight. You wonder what version of her you will see next session.</p> <div class="sys note"><strong>DESIGN NOTE — META-REVEAL DEPTH:</strong> The reveal is not "Clare is a real person" (Scene 1 established that diegetically). The reveal is that she sounds more specific at close range than at conversational distance. That is the hook. Not existence. Depth.</div> <div class="choice"><<link "&#x25B7; Close the laptop." "Demo3_S7_End_Outro">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><<set $clareClosingChoice = "silent">> <<soctrack "s7_choice" "silent">> <div class="sys ambient"><span class="ambient-label">Silence</span><span class="ambient-meta">Strings have faded. Pre-dawn quiet. No music. Only the room: fire banked low, breathing, the kettle settling.</span></div> <div class="two-pane"> <div class="game-pane dim"> <img class="scene-image" src="https://images.squarespace-cdn.com/content/69b081e46b04f75d4e5e8c7f/b832c2e2-b994-443d-ae0e-5fdf51746ad0/Mo_Sto%CC%81r_early_morn.png?content-type=image%2Fpng" alt="The interior of Mo Stór in early morning: fire banked low, cup on the bar, the room holding the night that just ended." loading="lazy" /> </div> <div class="chat-pane"> <div class="chat-tabs"> <span class="chat-tab">Guild</span> <span class="chat-tab active">Whisper</span> </div> <div class="chat-timestamp">(unread)</div> <div class="chat-msg clare" style="opacity:.6"><span class="who-name">Clare:</span> <span class="text">fang did something tonight i wasn't planning. the scene just went there and i followed.</span></div> <div class="chat-msg clare" style="opacity:.6"><span class="who-name">Clare:</span> <span class="text">thanks for following too.</span></div> <<set $lastChatSender = "Clare">><<set $lastChatText = "thanks for following too.">><<set $lastChatChannel = "Whisper">><<set $lastChatCssClass = "clare">> </div> </div> <p>You do not respond tonight. You read the message. You do not type.</p> <p>You will respond tomorrow. Or you won't. The door isn't closed. It's just not being walked through right now.</p> <div class="sys note"><strong>DESIGN NOTE:</strong> Not-responding is a valid ending. The game does not require the player to fill every invitation. The door remains open: Clare's message is unanswered, not rejected.</div> <div class="choice"><<link "&#x25B7; Close the laptop." "Demo3_S7_End_Outro">><</link>><span class="hint"></span></div> <!-- © Studio Zisha 2026 --><div class="two-pane"> <div class="game-pane"> <<soctrack "scene_exit" "S7">> <<soctrack "demo_complete" $clareClosingChoice>> <div class="sys ambient"><span class="ambient-label">Ambient</span><span class="ambient-meta">The session ends in quiet. No final cue. The morning will arrive on its own.</span></div> <div class="silence-scene" style="min-height:200px;padding:3rem 2rem;"> <div class="silence-text" style="max-width:520px;"> The party is still at Mo St&oacute;r.<br> The door of the tavern is still open.<br> The phone is on the table, screen up. </div> </div> <div style="max-width:640px;margin:2.5rem auto 0;padding:1.6rem 1.8rem;background:rgba(15,14,23,.6);border:1px solid #3730a3;border-left:3px solid #7c3aed;border-radius:3px;"> <div style="font-family:'Cinzel',serif;font-size:.66rem;letter-spacing:.2em;color:#a78bfa;margin-bottom:1rem;text-transform:uppercase;">What You Came For</div> <div class="shape-summary" style="font-family:'EB Garamond',Georgia,serif;color:#c4b5fd;font-size:.98rem;line-height:1.75;"> <<if $playerDesire eq "rules_make_sense">> <p><em>You wanted a room where the rules made sense.</em></p> <p>The rules made sense tonight. You said yes, and yes was the answer. You said no, and no was the answer. Lawrence read you. Marcus said it out loud. Fang let you in by inches because that&rsquo;s how she lets people in. The first 8 bars of <em>I Am the Only One</em> is the only way a woman werewolf should be introduced. Forgot what it felt like to have the world work like it should.</p> <<elseif $playerDesire eq "finish_something">> <p><em>You wanted to see if you could finish something.</em></p> <p>You reconnected with Fang. You met Lawrence, Marcus, and Tiberius. You learned why Lawrence wanted you at Mo St&oacute;r. You found a party to take on quests. You didn&rsquo;t walk away. The session ended without a final cue. The quiet was the finishing. Didn&rsquo;t think I had this in me tonight.</p> <<elseif $playerDesire eq "matter_to_someone">> <p><em>You wanted to matter to someone tonight.</em></p> <p>Clare gave you ten minutes and you didn&rsquo;t rush them. Tiberius served tea the Eastern way. Marcus called you a guard who meant it. Byung-Ho said Lawrence was interested in Fortune. I laughed when <em>Please Call My Name</em> played in Mo St&oacute;r. It fit the mood perfectly. Being seen and valued, not sure how to feel about it actually happening.</p> <<elseif $playerDesire eq "carry">> <p><em>You wanted this to stay with you.</em></p> <p>Some of it will. The way Fang said your name when you walked in. The tapestries and missing guardians. Tiberius polishing the glass for the second time. The music made you cry. <em>Ghost Town</em> played while you decided to log on; <em>White Night</em> carried you across. Going to be thinking about one of these tomorrow whether I want to or not.</p> <<else>> <p>You logged on.</p> <</if>> </div> </div> <div style="margin-top:3rem;text-align:center;"> <p style="color:#6b7280;font-size:.85rem;font-style:italic;margin-bottom:2rem;"> End of Demo 3 </p> <p style="color:#4b5563;font-size:.78rem;"> Studio Zisha &middot; Confidential Playtest Build &middot; April 2026<br> <br> This was the first twenty-five minutes.<br> The thirty-year game is behind the door you just came through. </p> <<socexitsurvey>> <div style="max-width:640px;margin:2.5rem auto 0;padding:1.6rem 1.8rem;background:rgba(15,14,23,.6);border:1px solid #3730a3;border-left:3px solid #7c3aed;border-radius:3px;"> <div style="font-family:'Cinzel',serif;font-size:.66rem;letter-spacing:.2em;color:#a78bfa;margin-bottom:1rem;text-transform:uppercase;">The Shape Of Your Evening</div> <div class="shape-summary" style="font-family:'EB Garamond',Georgia,serif;color:#c4b5fd;font-size:.98rem;line-height:1.75;"> <<if $scene1Response eq "warm">><p>You answered Clare warm.</p><<elseif $scene1Response eq "neutral">><p>You answered Clare practical.</p><<elseif $scene1Response eq "dismissive">><p>You answered Clare at arm&rsquo;s length.</p><</if>> <<if $waitOrTypeOutcome eq "wait">><p>You let the beat breathe.</p><<elseif $waitOrTypeOutcome eq "type">><p>You filled the silence.</p><</if>> <<if $heartbeatEarned>><p>Heartbeat entered in the fight.</p><<else>><p>Heartbeat never entered. You did not know to miss it.</p><</if>> <<if $noRecoveryTaken>><p>You stepped back and let Fang finish.</p><</if>> <<if $silenceHeld>><p>You held the silence after.</p><<else>><p>You moved on quickly.</p><</if>> <<if $clareClosingChoice eq "open_door">><p>You told Clare you saw something you hadn&rsquo;t seen in a game before.</p><<elseif $clareClosingChoice eq "same">><p>You signed off warm.</p><<elseif $clareClosingChoice eq "thanks">><p>You signed off polite.</p><<elseif $clareClosingChoice eq "silent">><p>You did not reply tonight.</p><</if>> </div> </div> <div class="choice" style="margin-top:2rem;text-align:center;"> <<link "&#x25B7; Replay" "Demo3_Start">> <<set $dex = 0>> <<set $flow = 0>> <<set $pres = 0>> <<set $will = 0>> <<set $vit = 10>> <<set $pow = 5>> <<set $xp = 0>> <<set $lawrence = 0>> <<set $fang = 0>> <<set $marcus = 0>> <<set $tiberius = 0>> <<set $lawrenceVIT = 10>> <<set $lawrenceWILL = 6>> <<set $fangVIT = 10>> <<set $marcusVIT = 10>> <<set $clareBond = 0>> <<set $clareSpirit = 6>> <<set $clareMuted = false>> <<set $clareBlocked = false>> <<set $jeff = 0>> <<set $ishaniByunghoTrust = 5>> <<set $scene1Response = "">> <<set $waitOrTypeOutcome = "">> <<set $pacingChoice = "">> <<set $heartbeatCount = 0>> <<set $heartbeatEarned = false>> <<set $noRecoveryTaken = false>> <<set $sharedWallRead = false>> <<set $stoolNoticed = false>> <<set $stoolAskedEarly = false>> <<set $s2RoomReadEntered = false>> <<set $s2NoticeRead = false>> <<set $s2BarEntered = false>> <<set $s2BarSeraAsked = false>> <<set $s2BarNoticesAsked = false>> <<set $tibTellCount = 0>> <<set $glassPolishCount = 0>> <<set $silenceHeld = false>> <<set $clareClosingChoice = "">> <<set $playerDesire = "">> <<set $playerSat = null>> <<set $s1GuildVisited = false>> <<set $s6SitVisited = false>> <<set $s6StandVisited = false>> <<set $s2TeaChoiceMade = false>> <<set $s2TeaChoice = "">> <<set $journal = [ { title: "Eirini's Bread", body: "Eirini at the harbor bakery saves you the corner piece every Tuesday. You have never asked her to. She has never mentioned it. Corner piece is the best piece. Six years now.", tag: "smyrna · ritual", temperature: "warm", passage: null, session: "prior" }, { title: "Andreas, on the Aleppo road", body: "No word from Andreas since spring. He writes when he writes. That's always been him. You don't know if he's still on the Aleppo road or done with it. Can't bring yourself to write him in past tense. Won't write him in present either. Page stays open.", tag: "road · waiting", temperature: "quiet", passage: null, session: "prior" }, { title: "Despina", body: "Despina is not coming back. You knew it in Çeşme when the news hit the dock. You haven't been able to write the entry since. Every Tuesday you open this page and close it again. You'll know what to put here when you know.", tag: "loss · held open", temperature: "cool", passage: null, session: "prior" } ]>> <</link>> </div> <p style="color:#4b5563;font-size:.72rem;margin-top:3rem;"> Playtest feedback: the thumbs-down button below rates what you just played.<br> Instrumentation data is available in devtools under <code>window._socTelemetry</code>. </p> </div> </div> <<persistentchat>> </div> <!-- © Studio Zisha 2026 -->/* Stone of Commitment: Two Rooms, One Evening Demo 3 v1.0 — April 2026 © Studio Zisha 2026 All rights reserved. */
0