Sidebar starts collapsed to save screen space on mobile. A "☰ Conditions"
button in the header opens it; a × button inside closes it. On mobile it
overlays with a dark backdrop instead of pushing content aside.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Third tab lets users step through detection state changes by choosing
Hide, Sneak, or Seek actions and selecting roll outcomes to see how
the Observed/Hidden/Undetected/Unnoticed state evolves, with a
history trail and start-as state picker.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Each starting detection state now has its own SEEK box with distinct
outcome paths: Hidden->Seek can reach Observed or stay Hidden;
Undetected->Seek goes to Hidden on success or stays Undetected on failure.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace diamond {nodes} with rectangles to avoid Mermaid v10 parse
errors, and switch from startOnLoad to explicit mermaid.render() calls
with error display for easier debugging.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The detector is off-guard to hidden/undetected creatures (−2 to their
own AC), not the other way around. The hidden creature does not have
−2 AC against the detector's attacks.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
HIDE only rolls against creatures currently observing you; if already
hidden or undetected, you retain that condition. Remove the erroneous
UNDETECTED → HIDE → HIDDEN transition and update the rules note.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>