dist-newstyle/
_site/
_cache/
.DS_Store
.env

# Editor backup/swap files
*~
*.swp
*.swo

# Python bytecode caches
**/__pycache__/
*.pyc
*.pyo

# LaTeX build artifacts (sitewide — covers paper/, any future TeX sources)
*.aux
*.bbl
*.blg
*.brf
*.fdb_latexmk
*.fls
*.glo
*.gls
*.idx
*.ilg
*.ind
*.lof
*.lot
*.nav
*.out
*.snm
*.synctex.gz
*.toc
*.vrb
# PGF/TikZ scratch outputs
pgftest*.pdf
pgftest*.log
pgftest*.aux
# LaTeX run logs (scoped to paper/ — bare *.log would be too broad sitewide)
paper/*.log

# Data files that are generated at build time (not version-controlled)
data/embeddings.json
data/similar-links.json
data/backlinks.json
data/build-stats.json
data/build-start.txt
data/last-build-seconds.txt
data/semantic-index.bin
data/semantic-meta.json

# IGNORE.txt is for the local build and need not be synced.
IGNORE.txt

# Model files for client-side semantic search (~22 MB binary artifacts).
# Download with: make download-model
static/models/

# Vendored Leaflet + leaflet.markercluster (~150 KB total, pinned in
# tools/download-leaflet.sh). Used by the /photography/map/ page only.
# Downloaded by `make build` when content/photography/ exists.
static/leaflet/

# Generated WebP companions (produced by tools/convert-images.sh at build time).
# To intentionally commit a WebP, use: git add -f path/to/file.webp
static/**/*.webp
content/**/*.webp

# Photography sidecars (produced by tools/extract-exif.py and
# tools/extract-palette.py at build time; consumed by Hakyll). Recreated
# from the photo file on every `make build`, so they don't belong in
# version control — committing them would just produce churn.
content/photography/**/*.exif.yaml
content/photography/**/*.palette.yaml

# Image-dimension sidecars (produced by tools/extract-dimensions.py at
# build time; consumed by build/Filters/Images.hs to emit width / height
# attrs on every <img> for CLS prevention). Same churn-avoidance reasons
# as the photography sidecars above; recreated on every `make build`.
**/*.dims.yaml

# Photography: defense-in-depth — refuse to commit RAW or oversize
# originals. Per the photography section's design, only ≤2400px
# web-optimized JPEGs are committed; originals stay outside the repo.
# To intentionally commit one of these formats (rare), use
# `git add -f path/to/file`.
content/photography/**/*.cr2
content/photography/**/*.cr3
content/photography/**/*.nef
content/photography/**/*.arw
content/photography/**/*.dng
content/photography/**/*.raf
content/photography/**/*.orf
content/photography/**/*.tif
content/photography/**/*.tiff
content/photography/**/*.psd