Safeguarding
Map visibility is per act, not a global switch
Every act carries its own map-visibility level — exact, approximate, town-level (the recommended default), or hidden — reusing the same status-colour language as the rest of the product (danger / warning / success / neutral), and always paired with a label, never colour alone.
Story audience is per story
Just me, your circle, or public — chosen per story, with member-protective defaults.
Defaults protect the most vulnerable member
No member's real-world location is exposed by default. Location and map-visibility controls are treated as an accessibility-of-safety concern, not an afterthought.
Accessibility, not just compliance
WCAG 2.1 AA contrast across light and dark, for text and meaningful UI.
prefers-reduced-motion is honoured — delight degrades gracefully, with no infinite decorative loops.
Focus-trap modals, a skip link, and aria-labels are preserved; every overlay is keyboard-operable.
Colour is never the only signal — category and map-visibility colours are always paired with a label or icon.
Have safeguarding requirements to talk through?
