# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg

# Virtual environments
.venv/
venv/
ENV/

# Testing
.pytest_cache/
.coverage
htmlcov/
.tox/
.nox/

# IDEs
.idea/
.vscode/
*.swp
*.swo
*~

# OS
.DS_Store
Thumbs.db

# Environment variables (contains API keys)
.env

# Scratch captures written by `capture record` at the repository root
# (large data files). Anchored with a leading slash on purpose: an unanchored
# `demo_*/` also matches examples/captures/demo_new/, which silently excluded
# the committed demo fixtures.
/demo_*/
/turn-off-nightshift/

# Never-publish workspace material (strategy, prospect research, counsel packs,
# personal contact details). Created ad hoc; must never reach a remote.
.private/

# Cover every .env variant, not one at a time. A .env.bak holding live
# API keys sat in a stash for six weeks and was one `git add -A` from being
# committed; .env.backup had already been added by hand after an earlier
# near-miss. Negate the committed template so it stays tracked.
.env.*
!.env.example
