# Normalize all text files to LF on commit and checkout.
# Prevents CRLF drift when contributors work on Windows with core.autocrlf=true.
* text=auto eol=lf

# Python and shell — LF everywhere, shebangs require it on Unix.
*.py   text eol=lf
*.sh   text eol=lf

# Web / config — LF.
*.ts    text eol=lf
*.tsx   text eol=lf
*.js    text eol=lf
*.jsx   text eol=lf
*.mjs   text eol=lf
*.cjs   text eol=lf
*.json  text eol=lf
*.yml   text eol=lf
*.yaml  text eol=lf
*.toml  text eol=lf
*.md    text eol=lf
*.html  text eol=lf
*.css   text eol=lf

# KiCad project files are text (S-expressions / JSON) — LF.
*.kicad_sch  text eol=lf
*.kicad_pcb  text eol=lf
*.kicad_pro  text eol=lf
*.kicad_sym  text eol=lf
*.kicad_mod  text eol=lf
*.kicad_dru  text eol=lf
*.kicad_wks  text eol=lf
*.net        text eol=lf

# Windows-native scripts — must stay CRLF.
*.bat text eol=crlf
*.cmd text eol=crlf
*.ps1 text eol=crlf

# Binary assets — never touch.
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.ico binary
*.pdf binary
*.zip binary
*.gz  binary
*.woff  binary
*.woff2 binary
*.ttf   binary
*.otf   binary
