```python
def drift_check(readings: list, step: int) -> int:
    """Return the position of the first reading that differs from its immediate predecessor by more than step. Return -1 if all differences are within step."""
    for i in range(1, len(readings)):
        if abs(readings[i] - readings[i - 1]) > step:
            return i
    return -1
```