```python
def ring_slot(capacity: int, writes: int, k: int) -> int:
    """
    Returns the number of the slot now holding the k-th oldest survivor.
    """
    if not isinstance(capacity, int) or capacity <= 0:
        raise ValueError("Capacity must be a positive whole number.")
    if not isinstance(writes, int) or writes < 0:
        raise ValueError("Writes must be a non-negative whole number.")
    if not isinstance(k, int) or k < 0:
        raise ValueError("k must be a non-negative whole number.")
    if k >= writes:
        raise ValueError("k cannot be at or past the survivor count.")

    # Calculate the number of survivors
    survivors = min(writes, capacity)

    
    # If k is greater than or equal to the number of survivors, return the last survivor's slot
    if k >= survivors:
        return (writes - 1) % capacity
    
    # Otherwise, calculate the slot of the k-th oldest survivor
    return (writes - survivors + k) % capacity
```