@@ -53,11 +53,17 @@ <h1>Orbit Courier</h1>
5353 < path class ="scarf " d ="M2 20h27v5H17l-7 5 2-5H2z " />
5454 </ g >
5555 </ g >
56+ < g class ="pause-overlay " aria-hidden ="true ">
57+ < rect width ="640 " height ="360 " />
58+ < text class ="pause-title " x ="320 " y ="170 "> PAUSED</ text >
59+ < text class ="pause-copy " x ="320 " y ="197 "> P resumes from deep history</ text >
60+ </ g >
5661 </ svg >
5762 < div class ="controls " aria-label ="Controls ">
5863 < span > < kbd > A</ kbd > < kbd > D</ kbd > move</ span >
5964 < span > < kbd > W</ kbd > /< kbd > Space</ kbd > jump ×2</ span >
6065 < span > < kbd > S</ kbd > duck / dive</ span >
66+ < span > < kbd > P</ kbd > pause / resume</ span >
6167 < span > < kbd > R</ kbd > reset</ span >
6268 </ div >
6369 </ div >
@@ -72,33 +78,40 @@ <h1>Orbit Courier</h1>
7278 < div class ="regions ">
7379 < section >
7480 < h2 > locomotion</ h2 >
75- < div class ="branch ">
76- < h3 data-node ="Grounded "> Grounded</ h3 >
77- < div class ="state-row ">
78- < span data-node ="Standing "> Standing</ span >
79- < span data-node ="Running "> Running</ span >
80- < span data-node ="Ducking "> Ducking</ span >
81- < span data-node ="Landing "> Landing</ span >
82- </ div >
81+ < div class ="state-row play-state-row ">
82+ < span data-node ="Playing "> Playing</ span >
83+ < span data-node ="Paused "> Paused</ span >
84+ < span class ="history-node "> resume · H*</ span >
8385 </ div >
84- < div class ="branch ">
85- < h3 data-node ="Airborne "> Airborne</ h3 >
86- < div class ="parallel-label "> parallel regions</ div >
87- < div class ="nested-region ">
88- < small > motion</ small >
86+ < div class ="playing-region ">
87+ < div class ="branch ">
88+ < h3 data-node ="Grounded "> Grounded</ h3 >
8989 < div class ="state-row ">
90- < span data-node ="Jumping "> Jumping</ span >
91- < span data-node ="Falling "> Falling</ span >
92- < span data-node ="Diving "> Diving</ span >
90+ < span data-node ="Standing "> Standing</ span >
91+ < span data-node ="Running "> Running</ span >
92+ < span data-node ="Ducking "> Ducking</ span >
93+ < span data-node ="Landing "> Landing</ span >
9394 </ div >
9495 </ div >
95- < div class ="nested-region ">
96- < small > air jump</ small >
97- < div class ="state-row ">
98- < span data-node ="AirJumpGroundLock "> ground lock</ span >
99- < span data-node ="AirJumpWallLock "> wall lock</ span >
100- < span data-node ="AirJumpReady "> ready</ span >
101- < span data-node ="AirJumpSpent "> spent</ span >
96+ < div class ="branch ">
97+ < h3 data-node ="Airborne "> Airborne</ h3 >
98+ < div class ="parallel-label "> parallel regions</ div >
99+ < div class ="nested-region ">
100+ < small > motion</ small >
101+ < div class ="state-row ">
102+ < span data-node ="Jumping "> Jumping</ span >
103+ < span data-node ="Falling "> Falling</ span >
104+ < span data-node ="Diving "> Diving</ span >
105+ </ div >
106+ </ div >
107+ < div class ="nested-region ">
108+ < small > air jump</ small >
109+ < div class ="state-row ">
110+ < span data-node ="AirJumpGroundLock "> ground lock</ span >
111+ < span data-node ="AirJumpWallLock "> wall lock</ span >
112+ < span data-node ="AirJumpReady "> ready</ span >
113+ < span data-node ="AirJumpSpent "> spent</ span >
114+ </ div >
102115 </ div >
103116 </ div >
104117 </ div >
@@ -140,7 +153,8 @@ <h2>wall contact</h2>
140153
141154 < p class ="note ">
142155 A small adapter owns coordinates and gravity. The machine owns legal behavior, and the box simply transforms to
143- show its active state. Wall contact is tracked explicitly, so floor-corner jumps stay ordinary.
156+ show its active state. Pause exits < code > Playing</ code > ; resume targets its deep-history node and restores the
157+ exact grounded or airborne configuration, including state-local values.
144158 </ p >
145159 </ main >
146160 < script type ="module " src ="/src/main.ts "> </ script >
0 commit comments