```python
def cross_up(readings: list, level: int) -> int:
    """
    Count the number of times a run of readings crosses a level going upward.
    
    A crossing is defined as a reading that reaches the level when the reading
    immediately before it stood below.
    
    Parameters:
    readings (list): A list of integers representing the readings.
    level (int): The level to check for crossings.
    
    Returns:
    int: The number of crossings.
    """
    if not readings:
        return 0
    
    crossings = 0
    previous_reading = readings[0]
    
    for reading in readings[1:]:
        if previous_reading < level <= reading:
            crossings += 1
        previous_reading = reading
    
    return crossings
```