diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..3030c1a
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,30 @@
+# Line endings: LF everywhere, on every OS, whatever core.autocrlf says.
+* text=auto eol=lf
+
+# cmd.exe misreads labels and goto in LF batch files, so they stay CRLF.
+*.bat text eol=crlf
+*.cmd text eol=crlf
+
+# Binaries: never converted, never diffed as text.
+*.png binary
+*.jpg binary
+*.jpeg binary
+*.webp binary
+*.svg text
+*.ogg binary
+*.wav binary
+*.mp3 binary
+*.ttf binary
+*.otf binary
+*.woff binary
+*.woff2 binary
+*.dll binary
+*.so binary
+*.dylib binary
+*.pdb binary
+*.exe binary
+*.zip binary
+*.pck binary
+*.moc3 binary
+*.res binary
+*.scn binary
diff --git a/.gitignore b/.gitignore
index bb88804..c301ca8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,37 +1,37 @@
-# Godot 4.x
-.godot/
-.idea/
-sdk/
-bin/
-obj/
-
-#ai
-.omo/
-.opencode/
-
-gen/
-obj/
-bin/
-
-*.tres~
-*.tscn~
-
-# GDScript LSP
-.godot/
-
-# Export
-*.exe
-*.dmg
-*.apk
-*.aab
-*.pck
-*.zip
-*.log
-
-# OS
-.DS_Store
-Thumbs.db
-
-# Editor
-*.import
-*.godot.uid
+# Godot 4.x
+.godot/
+.idea/
+sdk/
+bin/
+obj/
+
+#ai
+.omo/
+.opencode/
+
+gen/
+obj/
+bin/
+
+*.tres~
+*.tscn~
+
+# GDScript LSP
+.godot/
+
+# Export
+*.exe
+*.dmg
+*.apk
+*.aab
+*.pck
+*.zip
+*.log
+
+# OS
+.DS_Store
+Thumbs.db
+
+# Editor
+*.import
+*.godot.uid
diff --git a/src/MainMenu.cs b/src/MainMenu.cs
index daf544a..93c497f 100644
--- a/src/MainMenu.cs
+++ b/src/MainMenu.cs
@@ -1,169 +1,169 @@
-using System.Collections.Generic;
-using Cthangover.Core.Scenes;
-using Cthangover.Core.Settings;
-using Cthangover.Core.UI.Menu;
-using Cthangover.Core.UI.Theming;
-using Cthangover.Core.UI.Tool;
-using Cthangover.Core.Utils;
-using Godot;
-
-using Cthangover.Mods.Interface.Menu;
-namespace Cthangover.BaseMenu
-{
- ///
- /// Title screen main menu, fully driven by . The scene
- /// only defines named section containers (game, mods, exit, tools); every button —
- /// built-in or mod-provided — is created from registry entries, so mods can add,
- /// replace or re-order entries without touching this scene. Below the sections,
- /// every registered tool appends its own launcher button via
- /// , so no tool list is hardcoded here.
- /// If GameLogger reports mod compilation errors, a popup lists them. The
- /// SettingsMenu and SaveLoadMenu panels are instantiated at ready time but stay
- /// hidden; they are registered in as panels "settings"
- /// and "save_load", so other mods can open them by id.
- ///
- public partial class MainMenu : Control
- {
- private SettingsMenu _settingsMenu;
- private SaveLoadMenu _saveLoadMenu;
- private GamePickerPanel _gamePicker;
- private readonly Dictionary