diff --git a/TODO.md b/TODO.md
index 7749d62..cc06418 100644
--- a/TODO.md
+++ b/TODO.md
@@ -6,7 +6,7 @@ Dieses Dokument enthΓ€lt den aktuellen Entwicklungsstand und detaillierte Aufgab
## π Γbersicht der Entwicklungsphasen
-- [ ] **Phase 1: UI/UX Rebase & Globales Design-System (Fundament)**
+- [x] **Phase 1: UI/UX Rebase & Globales Design-System (Fundament)**
- Globale CSS-Tokens & Farbpaletten-Setup
- AtmosphΓ€rischer Stein-Hintergrund (`AuraMarbleBackground`)
- Fullscreen Overlay-Navigation (`LiquidOverlayMenu` & `SlideUpTextHover`)
diff --git a/assets/style.css b/assets/style.css
index 0c2797c..29d9dc4 100644
--- a/assets/style.css
+++ b/assets/style.css
@@ -460,23 +460,22 @@ img, picture { display: block; max-width: 100%; height: auto; }
.nav-burger-lines {
width: 22px;
height: 16px;
- position: relative;
- display: block;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+ align-items: center;
}
.nav-line {
- position: absolute;
width: 100%;
height: 2px;
background-color: var(--color-bg-dark);
transition: transform 0.4s var(--ease-fluid-slide),
opacity 0.3s ease,
background-color 0.3s ease;
+ transform-origin: center;
}
[data-theme="dark"] .nav-line { background-color: var(--color-light-gold); }
.nav-trigger.active .nav-line { background-color: var(--color-white); }
-.nav-line--top { top: 0; }
-.nav-line--mid { top: 7px; }
-.nav-line--bot { top: 14px; }
.nav-trigger.active .nav-line--top { transform: translateY(7px) rotate(45deg); }
.nav-trigger.active .nav-line--mid { opacity: 0; transform: scaleX(0); }
.nav-trigger.active .nav-line--bot { transform: translateY(-7px) rotate(-45deg); }
diff --git a/helpers.php b/helpers.php
index c0a3f4d..ab18034 100644
--- a/helpers.php
+++ b/helpers.php
@@ -216,3 +216,16 @@ function lang_url(string $lang): string {
$path = strtok($_SERVER['REQUEST_URI'], '?') ?: '/';
return $path . '?' . http_build_query($params);
}
+
+// Fallback polyfills for environments without mbstring extension
+if (!function_exists('mb_substr')) {
+ function mb_substr(string $string, int $start, ?int $length = null, ?string $encoding = null): string {
+ return substr($string, $start, $length ?? strlen($string));
+ }
+}
+
+if (!function_exists('mb_strlen')) {
+ function mb_strlen(string $string, ?string $encoding = null): int {
+ return strlen($string);
+ }
+}
diff --git a/partials/footer.php b/partials/footer.php
index 870963a..60919ca 100644
--- a/partials/footer.php
+++ b/partials/footer.php
@@ -24,10 +24,7 @@
-
-
+