@@ -471,13 +471,30 @@ summary,
471471 text-align : center;
472472}
473473
474+ /* ── Prose long-string wrapping (WCAG 1.4.10 Reflow) ──
475+ Defense-in-depth so a long unbroken token in BODY prose (a bare URL, a long path) wraps instead
476+ of running off the right edge / pushing the page sideways on a ~360px phone. `break-word` (NOT
477+ `anywhere`) breaks ONLY a token that would otherwise overflow — it doesn't hyphenate and leaves
478+ normal text untouched, and (unlike `anywhere`) it's ignored for min-content sizing so it can't
479+ surprise the layout. Specificity (0,1,0) beats typography's :where()-wrapped rules without
480+ !important. (Reader notes / FAQs render outside .prose and carry their own overflow-wrap.) */
481+ .prose {
482+ overflow-wrap : break-word;
483+ }
484+
474485/* ── Inline code (`var` / `CONNECTED_APP_CLIENT_ID`) ──
475486 @tailwindcss/typography styles inline `code` by ADDING literal backtick characters via
476487 `code::before/::after { content: "`" }` and gives it no background — so an inline var read
477488 as `` `var` `` with stray backticks and no visual chip. Render it as a proper bordered chip
478489 using the semantic tokens (flips per theme). Scoped to EXCLUDE `pre code` so Shiki code
479490 BLOCKS are untouched (they own their own frame). The typography rules are :where()-wrapped
480- (zero specificity), so these single-class rules win without !important. */
491+ (zero specificity), so these single-class rules win without !important.
492+ overflow-wrap:break-word (NOT white-space:nowrap) so a pathologically long chip — e.g. the
493+ `mule.home ++ "/apps/" ++ app.name ++ "/llm-config.json"` formula in a table cell — wraps
494+ instead of forcing horizontal overflow; short chips (`MAC_Config`, `llama3`) still stay on one
495+ line since break-word only acts when a token would otherwise overflow. box-decoration-break:clone
496+ makes each wrapped fragment a clean chip (border/bg/padding per line) instead of an open-ended
497+ slice — same treatment as `.reader-note code`. */
481498.prose : where (code ): not (pre code ) {
482499 background-color : var (--code-bg );
483500 border : 1px solid var (--code-border );
@@ -486,7 +503,9 @@ summary,
486503 padding : 0.125em 0.375em ;
487504 font-size : 0.875em ;
488505 font-weight : 500 ;
489- white-space : nowrap;
506+ overflow-wrap : break-word;
507+ -webkit-box-decoration-break : clone;
508+ box-decoration-break : clone;
490509}
491510.prose : where (code ): not (pre code )::before ,
492511.prose : where (code ): not (pre code )::after {
0 commit comments