diff --git a/TODO.md b/TODO.md
index f8a6275..e9f1867 100644
--- a/TODO.md
+++ b/TODO.md
@@ -1,6 +1,7 @@
# TODO
## Fixes
+- [x] Typography: switch `--font-display` / title font from Combined to Ductus (`DuctusRegular.otf`)
- [x] Replace `mb_strlen`/`mb_substr` with `strlen`/`substr` in TfeController, SearchController, Parsedown — mbstring extension not available on production server
- [x] system.css: retheme to site light palette — remove all `--sys-bg/border/text` dark tokens from variables.css; replace with standard `--bg-*`, `--border-*`, `--text-*` tokens; remap `--sys-syntax-*` to light-appropriate colours; remove dark terminal aesthetic
- [x] SystemController: PHP-FPM status check — dynamically probe `phpX.Y-fpm` unit derived from running PHP version before static fallback list; add `php8.4-fpm` to cover current production PHP 8.4
diff --git a/public/assets/css/common.css b/public/assets/css/common.css
index 2605a99..589a531 100644
--- a/public/assets/css/common.css
+++ b/public/assets/css/common.css
@@ -1,8 +1,8 @@
@import url("./variables.css");
@font-face {
- font-family: "Combined";
- src: url("../fonts/Combinedd.otf") format("opentype");
+ font-family: "Ductus";
+ src: url("../fonts/DuctusRegular.otf") format("opentype");
font-style: normal;
font-weight: 400;
font-display: swap;
diff --git a/public/assets/css/variables.css b/public/assets/css/variables.css
index f07fe94..d86d317 100644
--- a/public/assets/css/variables.css
+++ b/public/assets/css/variables.css
@@ -43,7 +43,7 @@
:root {
/* Fonts */
--font-body: "BBBDMSans", sans-serif;
- --font-display: "Combined", sans-serif;
+ --font-display: "Ductus", sans-serif;
/* Backgrounds */
--bg-primary: #ffffff;
diff --git a/public/assets/favicon.svg b/public/assets/favicon.svg
new file mode 100644
index 0000000..bd9f45c
--- /dev/null
+++ b/public/assets/favicon.svg
@@ -0,0 +1,27 @@
+
+
\ No newline at end of file
diff --git a/public/assets/favicon/android-chrome-192x192.png b/public/assets/favicon/android-chrome-192x192.png
index 0c80f7f..110aaed 100644
Binary files a/public/assets/favicon/android-chrome-192x192.png and b/public/assets/favicon/android-chrome-192x192.png differ
diff --git a/public/assets/favicon/android-chrome-512x512.png b/public/assets/favicon/android-chrome-512x512.png
index 5c2e8b2..f684c3d 100644
Binary files a/public/assets/favicon/android-chrome-512x512.png and b/public/assets/favicon/android-chrome-512x512.png differ
diff --git a/public/assets/favicon/apple-touch-icon-152x152.png b/public/assets/favicon/apple-touch-icon-152x152.png
index fcbf01b..ba6c03b 100644
Binary files a/public/assets/favicon/apple-touch-icon-152x152.png and b/public/assets/favicon/apple-touch-icon-152x152.png differ
diff --git a/public/assets/favicon/apple-touch-icon-167x167.png b/public/assets/favicon/apple-touch-icon-167x167.png
index 97a65d1..e37a147 100644
Binary files a/public/assets/favicon/apple-touch-icon-167x167.png and b/public/assets/favicon/apple-touch-icon-167x167.png differ
diff --git a/public/assets/favicon/apple-touch-icon-180x180.png b/public/assets/favicon/apple-touch-icon-180x180.png
index c105ed7..845a944 100644
Binary files a/public/assets/favicon/apple-touch-icon-180x180.png and b/public/assets/favicon/apple-touch-icon-180x180.png differ
diff --git a/public/assets/favicon/favicon-128x128.png b/public/assets/favicon/favicon-128x128.png
index 2e13e12..05440ee 100644
Binary files a/public/assets/favicon/favicon-128x128.png and b/public/assets/favicon/favicon-128x128.png differ
diff --git a/public/assets/favicon/favicon-16x16.png b/public/assets/favicon/favicon-16x16.png
index 4273f24..7c84f36 100644
Binary files a/public/assets/favicon/favicon-16x16.png and b/public/assets/favicon/favicon-16x16.png differ
diff --git a/public/assets/favicon/favicon-32x32.png b/public/assets/favicon/favicon-32x32.png
index eb54eaf..8008024 100644
Binary files a/public/assets/favicon/favicon-32x32.png and b/public/assets/favicon/favicon-32x32.png differ
diff --git a/public/assets/favicon/favicon-48x48.png b/public/assets/favicon/favicon-48x48.png
index ff2ba61..9298d49 100644
Binary files a/public/assets/favicon/favicon-48x48.png and b/public/assets/favicon/favicon-48x48.png differ
diff --git a/public/assets/favicon/favicon-64x64.png b/public/assets/favicon/favicon-64x64.png
index 5fe6dce..de07b9c 100644
Binary files a/public/assets/favicon/favicon-64x64.png and b/public/assets/favicon/favicon-64x64.png differ
diff --git a/public/assets/favicon/favicon-96x96.png b/public/assets/favicon/favicon-96x96.png
index e297917..82a9b0e 100644
Binary files a/public/assets/favicon/favicon-96x96.png and b/public/assets/favicon/favicon-96x96.png differ
diff --git a/public/assets/favicon/favicon.ico b/public/assets/favicon/favicon.ico
index 5314244..00a9578 100644
Binary files a/public/assets/favicon/favicon.ico and b/public/assets/favicon/favicon.ico differ
diff --git a/public/assets/favicon/favicon_html.txt b/public/assets/favicon/favicon_html.txt
index bf62596..da91b22 100644
--- a/public/assets/favicon/favicon_html.txt
+++ b/public/assets/favicon/favicon_html.txt
@@ -1,10 +1,10 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/public/assets/favicon/site.webmanifest b/public/assets/favicon/site.webmanifest
index ace3be7..df4e87d 100644
--- a/public/assets/favicon/site.webmanifest
+++ b/public/assets/favicon/site.webmanifest
@@ -3,12 +3,12 @@
"short_name": "",
"icons": [
{
- "src": "/favicons/android-chrome-192x192.png",
+ "src": "/favicon/android-chrome-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
- "src": "/favicons/android-chrome-512x512.png",
+ "src": "/favicon/android-chrome-512x512.png",
"sizes": "512x512",
"type": "image/png"
}