```python
def move_stock(opening: int, moves: list) -> int:
    """
    Apply each stock movement in order, adding or removing as its sign says.
    Stock never falls below zero, so a removal larger than what is held empties it instead.
    Return the closing quantity.
    """
    current_quantity = opening
    for move in moves:
        if move > 0:
            current_quantity += move
            if current_quantity < 0:
                current_quantity = 0
        elif move < 0:
            current_quantity -= move
            if current_quantity < 0:
                current_quantity = 0
    return current_quantity
```