Accessibility
Portal from @prepared911/ui/portal.
Portal does not assign roles or labels; the portaled subtree keeps the semantics its children define.
Direction for portaled content follows the owner document shell. When the mount node is outside the anchor's dir subtree, the display: contents wrapper forwards documentElement.dir so logical layout matches the shell.
Popup-surface recipes keep a CanvasText border under forced colors and honor prefers-reduced-motion through Chroma motion tokens.