# ── Rust ──────────────────────────────────────────────
/target/
Cargo.lock
**/*.rs.bk
*.rlib

# ── Python ────────────────────────────────────────────
__pycache__/
*.py[cod]
*$py.class
*.so
*.pyd
*.egg-info/
*.egg
dist/
build/
.eggs/
*.whl
sdist/
wheels/
pip-wheel-metadata/
*.manifest
*.spec
MANIFEST

# Virtual environments
.venv/
venv/
env/
ENV/

# Python tools
.pytest_cache/
.hypothesis/
.mypy_cache/
.pytype/
.ruff_cache/
.tox/
.nox/
htmlcov/
.coverage
.coverage.*
coverage.xml
*.cover
*.lcov
nosetests.xml

# Jupyter / IPython
.ipynb_checkpoints/
profile_default/
ipython_config.py

# ── macOS ─────────────────────────────────────────────
.DS_Store
.AppleDouble
.LSOverride
Icon?
._*
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk

# ── Windows ───────────────────────────────────────────
Thumbs.db
Thumbs.db:encryptable
ehthumbs.db
ehthumbs_vista.db
*.stackdump
[Dd]esktop.ini
$RECYCLE.BIN/
*.cab
*.msi
*.msix
*.msm
*.msp
*.lnk

# ── Linux ─────────────────────────────────────────────
*~
.fuse_hidden*
.directory
.Trash-*
.nfs*

# ── IDE / Editors ─────────────────────────────────────
.idea/
.vscode/
*.swp
*.swo
*.sublime-workspace
*.sublime-project
.project
.classpath
.settings/
*.code-workspace

# ── Binaries ──────────────────────────────────────────
*.exe
*.dll
*.dylib
*.bin
*.obj
*.o
*.a
*.lib
*.out

# ── Secrets & credentials ────────────────────────────
.env
.env.*
!.env.example
*.pem
*.key
*.crt
*.p12
*.pfx
*.jks
*.keystore
credentials.json
secrets.json
service-account*.json
*.secret
token.json

# ── MkDocs build output ──────────────────────────────
site/

# ── Maturin / PyO3 ───────────────────────────────────
*.d

# ── macOS debug symbols (dSYM bundles) ───────────────
*.dSYM/

CLAUDE.md
.claude/

# ── Plans (local working notes) ──────────────────────
docs/plans/