```python
def tag_count(line: str) -> int:
    if not line:
        return 0
    
    count = 0
    stack = []
    
    for char in line:
        if char == '<':
            stack.append('<')
        elif char == '>':
            if not stack:
                raise ValueError("Unmatched closing bracket")
            stack.pop()
            if stack and stack[-1] == '<':
                count += 1
    
    if stack:
        raise ValueError("Unmatched opening brackets")
    
    return count
```