Two sibling tab strips share layoutId="underline". Each strip lives in its own <LayoutGroup id> so the underline animation stays scoped — clicking a tab in one strip never pulls the underline from the other.
layoutId="underline" appears in both tab strips.
Without scoping, the underline would jump between strips because motion looks up layoutId on a single global registry.<LayoutGroup id="strip-a"> / id="strip-b" prefixes the registry key — strip-a::underline vs strip-b::underline — so the two animations
never see each other.<LayoutGroup> wrappers locally and the underline will
jump across the page on every click.