(key: string, def: T)
| 383 | // ─── Persisted physics / layout / 3D settings ────────────────────────── |
| 384 | const stored = useMemo(readPersistedSettings, []); |
| 385 | const ps = <T>(key: string, def: T): T => (stored[key] as T) ?? def; |
| 386 | |
| 387 | const D = GRAPH_SETTING_DEFAULTS; |
| 388 |