Author in the web app and preview how the fixed 320x240 viewport is typeset.
Hard limits: 280 chars and a single 320x240 frame. Overflow is rejected (no next page).
Markdown: headings, quotes, lists, tasks, links, code, fences, rules, table lines, strikethrough. Typst-style control directives are non-printing: #font(...), #place(...), #qr(...), #event(...), #contact(...).
Font is message-defined. Short IDs: nsm, ns, ser, atk, ibm. Example: #font("nsm").
Placement accepts Typst-style locations. Default is right float. Example: #place(bottom + right)[#qr("https://bbb.io/badge")].
More examples: #qr("https://beagleboard.org"), #event("2026-03-01 18:30", "Title", "Location"), #contact("Name", "+1-555-0100", "name@example.com", "https://example.com").
Message viewport is fixed at 320x240. Trust stays in chrome metadata only.