```python
def score_scale(mark: int, was_out_of: int, now_out_of: int) -> int:
    if mark < 0 or was_out_of <= 0 or now_out_of <= 0:
        raise ValueError("Marks must be non-negative and total marks must be positive.")
    
    if mark > now_out_of:
        return 0
    
    scale_factor = now_out_of / was_out_of
    scaled_mark = int(mark * scale_factor)
    
    return scaled_mark
```