diff --git a/.htaccess b/.htaccess
index c994a12..5e1400f 100644
--- a/.htaccess
+++ b/.htaccess
@@ -6,3 +6,38 @@
AddHandler application/x-httpd-ea-php82___lsphp .php .php8 .phtml
# php -- END cPanel-generated handler, do not edit
+
+
+# RewriteEngine On
+
+# # Remove .php extension from URLs (e.g., /contactt -> contact.php)
+# RewriteCond %{REQUEST_FILENAME} !-d
+# RewriteCond %{REQUEST_FILENAME}\.php -f
+# RewriteRule ^(.*)$ $1.php [L]
+
+# # Redirect direct access to .php files to clean URLs (optional)
+# RewriteCond %{THE_REQUEST} \s/+(.*?)\.php[\s?] [NC]
+# RewriteRule ^ /%1 [R=301,L,NE]
+
+
+
+
+ RewriteEngine Off
+
+
+
+RewriteEngine On
+DirectoryIndex index.php
+
+# 1. Redirect any index.php request to its directory URL
+RewriteCond %{THE_REQUEST} \s/(.*)index\.php[\s?] [NC]
+RewriteRule ^(.*)index\.php$ /%1 [R=301,L]
+
+# 2. Remove .php extension from URLs (e.g., /contactt -> contact.php)
+RewriteCond %{REQUEST_FILENAME} !-d
+RewriteCond %{REQUEST_FILENAME}\.php -f
+RewriteRule ^(.*)$ $1.php [L]
+
+# 3. Redirect direct access to .php files to clean URLs (optional)
+RewriteCond %{THE_REQUEST} \s/+(.*?)\.php[\s?] [NC]
+RewriteRule ^ /%1 [R=301,L,NE]
diff --git a/bib-toaster/toaster.css b/bib-toaster/toaster.css
new file mode 100644
index 0000000..a726da9
--- /dev/null
+++ b/bib-toaster/toaster.css
@@ -0,0 +1,55 @@
+.flash-toaster {
+ position: fixed;
+ top: 1rem;
+ right: 1rem;
+ z-index: 9999;
+ font-family: sans-serif;
+}
+
+.toast {
+ display: flex;
+ align-items: center;
+ gap: 0.75rem;
+ min-width: 250px;
+ max-width: 320px;
+ padding: 0.75rem 1rem;
+ border-radius: 4px;
+ color: #fff;
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
+ transform: translateX(100%); /* start off-screen */
+ opacity: 0;
+ transition: transform 0.4s ease, opacity 0.4s ease;
+}
+
+.toast.show {
+ transform: translateX(0);
+ opacity: 1;
+}
+
+/* Status colors */
+.toast--success {
+ background: #198754;
+}
+.toast--error {
+ background: #dc3545;
+}
+.toast--warning {
+ background: #ffc107;
+ color: #000;
+}
+
+/* Close button */
+.toast__close {
+ background: none;
+ border: none;
+ color: inherit;
+ font-size: 1.2rem;
+ line-height: 1;
+ cursor: pointer;
+}
+
+/* Hide animation */
+.toast.hide {
+ transform: translateX(100%);
+ opacity: 0;
+}
diff --git a/bib-toaster/toaster.js b/bib-toaster/toaster.js
new file mode 100644
index 0000000..437504d
--- /dev/null
+++ b/bib-toaster/toaster.js
@@ -0,0 +1,27 @@
+
+document.addEventListener('DOMContentLoaded', () => {
+ const toast = document.getElementById('flashToast');
+ if (!toast) return;
+
+ // Show it
+ requestAnimationFrame(() => {
+ toast.classList.add('show');
+ });
+
+ // Close on [×]
+ toast.querySelector('.toast__close').addEventListener('click', () => {
+ hideToast();
+ });
+
+ // Auto-hide after 3s
+ const hideTimeout = setTimeout(hideToast, 3000);
+
+ function hideToast(){
+ clearTimeout(hideTimeout);
+ toast.classList.add('hide');
+ // Remove from DOM after transition
+ toast.addEventListener('transitionend', () => {
+ toast.remove();
+ }, { once: true });
+ }
+});
diff --git a/footer.php b/footer.php
index 6d97948..46ad4c3 100644
--- a/footer.php
+++ b/footer.php
@@ -80,6 +80,7 @@
+