# Python
__pycache__/
*.py[cod]
.venv/
# Non-dotted layout too: uv puts the project environment in `venv/` under some
# UV_PROJECT_ENVIRONMENT values. `.dockerignore` and the Terraform image-hash
# filter in infra-terraform/modules/backend/runtime.tf both cover `**/venv/`
# already — without this line the same tree is committable.
venv/
*.egg-info/
.uv/

# Node
node_modules/
dist/
.vite/
build/

# CDK
cdk.out*/
infra-cdk/cdk.out*/

# AWS
aws-exports.json
frontend/public/aws-exports.json
*.zip

# Local config (contains personal email/stack name — use config.yaml.example as template)
config.yaml

# Local dev credentials and generated env
docker/.env
# docker/.env holds creds + stack values — never commit it

# Terraform
# Unanchored: `terraform init` writes a provider cache next to EVERY module, not
# just the root, and the nested ones are the large ones — a measured 834MB under
# infra-terraform/modules/backend/. The anchored `infra-terraform/…` forms below
# match only the root copy, so the nested trees stayed committable.
**/.terraform/
**/.terraform.lock.hcl
infra-terraform/*.tfstate
infra-terraform/*.tfstate.backup
infra-terraform/terraform.tfvars
