diff --git a/book.toml b/book.toml index d61789e..be82188 100644 --- a/book.toml +++ b/book.toml @@ -12,7 +12,6 @@ smart-punctuation = true git-repository-url = "https://forgejo.binning.net/matthew.binning/www" edit-url-template = "https://forgejo.binning.net/matthew.binning/www/src/branch/main/{path}" additional-css = ["theme/sepia.css"] -additional-js = ["theme/navbar.js"] no-section-label = true fold.enable = true fold.level = 0 diff --git a/common.nginx.nix b/common.nginx.nix deleted file mode 100644 index 02a5c24..0000000 --- a/common.nginx.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ config, pkgs, lib, ... }: - -{ - # Common configuration shared between staging and prod - - # This file contains nginx settings that are identical across environments - # Import this in both staging.nginx.nix and prod.nginx.nix - - services.nginx = { - # Recommended settings - recommendedGzipSettings = true; - recommendedOptimisation = true; - recommendedProxySettings = true; - }; - - # Common location configurations that can be reused - # These are defined as library functions - lib.nginxLocations = { - # Standard root location with SSI support - rootLocation = { - index = "index.html"; - tryFiles = "$uri $uri/ =404"; - extraConfig = '' - # Enable Server Side Includes for navbar/footer includes - ssi on; - ''; - }; - - # Private blog articles location with HTTP basic authentication - privateLocation = { - extraConfig = '' - auth_basic "Private Articles"; - auth_basic_user_file /srv/nginx/.htpasswd; - - # Enable Server Side Includes - ssi on; - ''; - }; - - # Common extraConfig for custom 404 - custom404 = '' - error_page 404 /404.html; - ''; - }; -} diff --git a/deploy.sh b/deploy.sh index 153fb13..afc1ca8 100755 --- a/deploy.sh +++ b/deploy.sh @@ -15,6 +15,10 @@ fi CMD=$1 case $CMD in + sync) + rsync -avz src/ /var/lib/www/ + ;; + build) printf "Building blog with mdbook...\n" [ -s src ] || ln -s /var/lib/www src @@ -30,8 +34,7 @@ case $CMD in sudo mkdir -p ${STAGING_PATH} printf "Deploying website files...\n" - sudo rsync -av --delete main/* ${STAGING_PATH}/ - sudo rsync -av --delete blog ${STAGING_PATH}/ + sudo rsync -av --delete blog/ ${STAGING_PATH}/ sudo chown -R nginx:nginx ${STAGING_PATH}/ @@ -50,9 +53,9 @@ case $CMD in fi printf "Deploying website files...\n" - ssh ${REMOTE_USER}@${REMOTE_HOST} "mkdir -p /tmp/${REMOTE_PATH}" - rsync -avz --delete main/ blog ${REMOTE_USER}@${REMOTE_HOST}:/tmp/${REMOTE_PATH}/ - ssh ${REMOTE_USER}@${REMOTE_HOST} "sudo rsync -avz --delete /tmp/${REMOTE_PATH}/ ${REMOTE_PATH}/ && \ + ssh ${REMOTE_USER}@${REMOTE_HOST} "mkdir -p /tmp/blog-deploy" + rsync -avz --delete blog/ ${REMOTE_USER}@${REMOTE_HOST}:/tmp/blog-deploy/ + ssh ${REMOTE_USER}@${REMOTE_HOST} "sudo rsync -avz --delete /tmp/blog-deploy/ ${REMOTE_PATH}/ && \ sudo chown -R nginx:nginx ${REMOTE_PATH}/ && \ printf 'Content deployed.\n'" @@ -65,7 +68,7 @@ case $CMD in LOCAL_PATH="/srv/www/binning.net" printf "Deploying website files...\n" - rsync -av --delete main/ blog ${LOCAL_PATH}/ + rsync -av --delete blog/ ${LOCAL_PATH}/ printf "✓ Local deployment complete!\n Files deployed to: %s\n" "${LOCAL_PATH}" ;; diff --git a/main/404.html b/main/404.html deleted file mode 100644 index 33c62f8..0000000 --- a/main/404.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - 404 - Page Not Found - - - - - -
-
-

404 - Page Not Found

-

The page you're looking for doesn't exist.

-
- -
-

What happened?

-

The page you requested could not be found. It may have been moved, deleted, or never existed.

-

← Go back to homepage

-
-
- - - - diff --git a/main/blog.html b/main/blog.html deleted file mode 100644 index 2c99c60..0000000 --- a/main/blog.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - Blog - WWW - - - - - -
-
-

Blog

-

Stories, adventures, and reflections from life's journey

-
- - -
-

The Copper Chronicle

-

Adventures and travels with Copper, exploring the beautiful outdoors.

-
-
-

Big Sur Adventure

-

April 2024

-

Exploring the stunning coastline and trails of Big Sur with Copper.

-
-
-

Dove Hunting

-

September 2024

-

A day in the field with friends, shotguns, and good company.

-
-
-

Shasta & Dunsmuir

-

September 2024

-

Mountain adventures in Northern California.

-
-
-
- - -
-

Life & Reflections

-

Personal thoughts and journeys on health, faith, and life.

-
-
-

Health Journey

-

Private Article

-

Reflections on physical and mental wellness.

- 🔒 Private -
-
-

Faith Journey

-

Private Article

-

Personal spiritual reflections and growth.

- 🔒 Private -
-
-
- - -
-

Events & Experiences

-

Special moments and memorable experiences.

-
-
-

DefCon

-

Private Article

-

Notes and reflections from DefCon.

- 🔒 Private -
-
-

Oktoberfest

-

Private Article

-

Celebrating traditions and community.

- 🔒 Private -
- -
-
- - -
-

Recipes

-

Family recipes and culinary experiments.

-
-
-

St. Patrick's Day

-

Holiday

-

Traditional Irish recipes - corned beef, lamb stew, soda bread, and more.

-
-
-

Christmas

-

Holiday

-

Holiday favorites including eggnog, gingerbread fruitcake, and meatloaf.

-
-
-

Earth Day

-

Special Event

-

Lamb stir fry and berry compote from April 2024.

-
- -
-

Miscellaneous

-

Various

-

Drinks, snacks, sides, and external recipe links.

-
- -
-
-
- - - - diff --git a/main/cover.jpg b/main/cover.jpg deleted file mode 100644 index 02fb43b..0000000 Binary files a/main/cover.jpg and /dev/null differ diff --git a/main/includes/footer.html b/main/includes/footer.html deleted file mode 100644 index d78ea74..0000000 --- a/main/includes/footer.html +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/main/includes/navbar.html b/main/includes/navbar.html deleted file mode 100644 index 1f78d54..0000000 --- a/main/includes/navbar.html +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/main/index.html b/main/index.html deleted file mode 100644 index 0acba06..0000000 --- a/main/index.html +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - WWW - Personal Website - - - - - -
-
-

Welcome

-

Welcome to Matt's personal website, blog, and landing page for other self-hosted software.

- cover photo -
- -
-

About & Contact

-
-

Email: matthew@binning.net

-

Hi, my name is Matt. I am a software engineer living in the West. My interests include software, defense, EW, drones, and data security and privacy.

-

Other personal interests of mine include linguistics, philosophy, and theology, to name a few.

-

This website serves as a space to share musings, stories, and chronicles, about all of those things.

-

The Copper Chronicle contains stories and memories from various trips and experiences. More to come as this site develops.

-
-
- -
-

Genealogy

-
-

The title of this website you may recognize as a surname. I am also interested in family history and genealogy. If you have some relation or interest to this surname, please feel free to reach out. I am planning a genealogical project.

-
-
-
- - - - diff --git a/main/menu.html b/main/menu.html deleted file mode 100644 index 619a90f..0000000 --- a/main/menu.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - Menu - WWW - - - - - -
-
-

Menu

-

A curated selection from our recipe collection.

-
- -
-

☕ Beverages

- -

Pour-Over Black Coffee

-

Freshly brewed artisan coffee using the pour-over method for a clean, flavorful cup.

-

Coffee beans, hot water

- -

London Fog

-

A cozy Earl Grey tea latte sweetened with raw honey.

-

Earl Grey tea, manuka honey, steamed milk

- -

French Press Black Coffee

-

Rich, full-bodied coffee brewed with a French press.

-

Coarse ground coffee, hot water

- -

Milkshake

-

Creamy, protein-packed shake with berries and natural sweetness.

-

Heavy cream, milk, blackberries, Medjool dates, vanilla whey protein, vanilla extract, manuka honey, peanut butter

-
- -
-

🥖 Appetizers

- -

Artichoke Spinach Dip

-

Creamy, dairy-free dip perfect with crackers or vegetables.

-

Artichoke hearts, fresh spinach, cashew cream, nutritional yeast, garlic, lemon juice, salt, pepper

- -

Bacon Wrapped Dates

-

Sweet and savory bites with bacon-wrapped goat cheese stuffed dates.

-

Medjool dates, goat cheese, bacon strips, optional honey, optional almonds

-
- -
-

🍞 Baked Goods

- -

Banana Chocolate Chip Bread

-

Moist, sweet bread loaded with chocolate chips.

-

Ripe bananas, flour, sugar or sweetener, eggs, butter or oil, chocolate chips, baking soda, vanilla extract, salt

-
- -
-

🍳 Breakfast

- -

Egg Scramble

-

Hearty breakfast scramble with sweet potato, black beans, and ground beef in green enchilada sauce.

-

Eggs, ground beef, sweet potato, black beans, green enchilada sauce, onions, cumin, chili powder

- -

Proplto Pancakes

-

Protein-packed purple potato pancakes with a unique color and flavor.

-

Purple potatoes, eggs, protein powder, oat flour, baking powder, cinnamon, salt, milk

-
- -
-

🎄 Seasonal Favorites

- -

Eggnog

-

Rich, creamy holiday classic with raw cultured cream and peppermint.

-

Raw cultured cream, raw eggs, vanilla extract, nutmeg, raw honey, peppermint tea, cacao nibs

- -

Gingerbread Fruitcake Muffins

-

Spiced muffins packed with dried fruits and nuts.

-

Pastry flour, baking soda, buttermilk, butter, allulose, eggs, molasses, dried fruits, chopped nuts, cinnamon, cloves, ginger, salt, vanilla extract

-
- -
-

🍨 Desserts

- -

Roasted Peaches

-

Warm roasted peaches with honey, mint, and vanilla ice cream.

-

Fresh peaches, honey, fresh mint leaves, vanilla ice cream, butter, optional cinnamon

-
- -
-

🍽️ Main Dishes

- -

Pistachio Liver Burgers

-

Unique burgers with liver, lion's mane mushrooms, and pistachio crust.

-

Beef liver, lion's mane mushrooms, ground beef, crushed pistachios, seasonings

- -

Salmon Bowl

-

Fresh salmon served over coconut rice with cabbage slaw and mango.

-

Salmon fillet, coconut rice, cabbage slaw, fresh mango, sesame seeds

- -

Steak & Air-Fried Broccoli

-

Simple, satisfying steak paired with crispy broccoli.

-

Steak, fresh broccoli florets, olive oil, salt, pepper, garlic powder

-
- -
-

🥗 Sides

- -

Roasted Vegetables

-

Colorful medley of seasonal vegetables roasted to perfection.

-

Mixed vegetables (Brussels sprouts, carrots, bell peppers, zucchini), olive oil, salt, pepper, herbs (rosemary, thyme), garlic

- -

Cabbage Steaks

-

Thick-cut roasted cabbage with optional balsamic glaze.

-

Cabbage, olive oil, salt, pepper, garlic powder, optional balsamic glaze

-
-
- - - - diff --git a/main/resume.html b/main/resume.html deleted file mode 100644 index cc726f1..0000000 --- a/main/resume.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - Resume - WWW - - - - - -
-
-

Resume

-

Professional Experience & Skills

-
- -
-

Summary

-

Experienced software engineer with expertise in systems engineering, cloud infrastructure, and full-stack development. Passionate about building reliable, scalable solutions using modern technologies.

-
- -
-

Technical Skills

-
-
-

Languages

-
    -
  • Rust
  • -
  • Python
  • -
  • Go
  • -
  • JavaScript/TypeScript
  • -
  • HTML/CSS
  • -
-
-
-

Systems & Infrastructure

-
    -
  • Linux/NixOS
  • -
  • Docker
  • -
  • Nginx
  • -
  • Git
  • -
  • CI/CD
  • -
-
-
-

Frameworks & Tools

-
    -
  • Rocket (Rust)
  • -
  • React
  • -
  • Node.js
  • -
  • PostgreSQL
  • -
  • RESTful APIs
  • -
-
-
-
- -
-

Professional Experience

- -
-

Software Engineer

-

Example Company • 2020 - Present

-
    -
  • Designed and implemented scalable backend services using Rust and Python
  • -
  • Managed infrastructure using NixOS and containerization technologies
  • -
  • Built and maintained CI/CD pipelines for automated testing and deployment
  • -
  • Collaborated with cross-functional teams to deliver high-quality software solutions
  • -
-
- -
-

Systems Administrator

-

Previous Company • 2018 - 2020

-
    -
  • Maintained Linux-based server infrastructure and monitoring systems
  • -
  • Automated routine tasks using shell scripting and Python
  • -
  • Implemented security best practices and access control policies
  • -
  • Provided technical support and documentation for development teams
  • -
-
-
- -
-

Education

-
-

Bachelor of Science in Computer Science

-

University Name • 2014 - 2018

-

Focus on software engineering, algorithms, and systems programming.

-
-
- -
-

Projects

-
-

Self-Hosted Infrastructure

-

Designed and deployed a complete self-hosted solution including:

-
    -
  • Git hosting with Forgejo
  • -
  • Web server with Nginx and SSL/TLS
  • -
  • Calendar and contacts sync with Radicale
  • -
  • Declarative configuration management with NixOS
  • -
-
- -
-

Personal Website & Blog

-

Built a simple, reliable website using primitive technologies (HTML/CSS) focused on performance and maintainability.

-
-
- -
-

Contact

-

Email: example@example.com

-

GitHub: forgejo.binning.net

-
-
- - - - diff --git a/main/style.css b/main/style.css deleted file mode 100644 index 88d591d..0000000 --- a/main/style.css +++ /dev/null @@ -1,340 +0,0 @@ -/* CSS Reset and Base Styles */ -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - font-family: 'Courier New', 'Courier', 'Monaco', 'Lucida Console', monospace; - line-height: 1.7; - color: #3e2723; - background-color: #f4ecd8; -} - -/* Navbar Styles */ -.navbar { - background-color: #5d4037; - box-shadow: 0 2px 4px rgba(62, 39, 35, 0.3); - position: sticky; - top: 0; - z-index: 1000; - border-bottom: 2px solid #4e342e; -} - -.nav-container { - max-width: 1200px; - margin: 0 auto; - padding: 1rem 2rem; - display: flex; - justify-content: space-between; - align-items: center; -} - -.nav-brand { - color: #f4ecd8; - text-decoration: none; - font-size: 1.5rem; - font-weight: bold; -} - -.nav-brand:hover { - color: #d7ccc8; -} - -.nav-menu { - list-style: none; - display: flex; - gap: 2rem; -} - -.nav-menu a { - color: #f4ecd8; - text-decoration: none; - font-size: 1rem; - transition: color 0.3s ease; -} - -.nav-menu a:hover { - color: #d7ccc8; -} - -/* Main Container */ -.container { - max-width: 1200px; - margin: 0 auto; - padding: 2rem; -} - -/* Hero Section */ -.hero { - background-color: #efebe9; - padding: 3rem 2rem; - border-radius: 4px; - box-shadow: 0 2px 8px rgba(62, 39, 35, 0.2); - margin-bottom: 2rem; - text-align: center; - border: 1px solid #d7ccc8; -} - -.hero h1 { - font-size: 2.5rem; - color: #4e342e; - margin-bottom: 1rem; -} - -.hero p { - font-size: 1.2rem; - color: #6d4c41; -} - -.hero img { - max-width: 100%; - height: auto; - margin-top: 1.5rem; - border-radius: 4px; - box-shadow: 0 2px 8px rgba(62, 39, 35, 0.3); - border: 2px solid #d7ccc8; -} - -/* Content Section */ -.content-section { - background-color: #efebe9; - padding: 2rem; - margin-bottom: 2rem; - border-radius: 4px; - box-shadow: 0 2px 8px rgba(62, 39, 35, 0.2); - border: 1px solid #d7ccc8; -} - -.content-section h2 { - color: #4e342e; - font-size: 2rem; - margin-bottom: 1.5rem; - border-bottom: 3px solid #8d6e63; - padding-bottom: 0.5rem; -} - -.contact-info p, -.genealogy-blurb p { - margin-bottom: 1rem; - line-height: 1.8; - color: #5d4037; -} - -.contact-info strong { - color: #4e342e; -} - -/* Footer */ -.footer { - background-color: #5d4037; - color: #f4ecd8; - text-align: center; - padding: 2rem; - margin-top: 3rem; - border-top: 2px solid #4e342e; -} - -.footer p { - font-size: 0.9rem; -} - -/* Blog Styles */ -.section-description { - color: #6d4c41; - font-style: italic; - margin-bottom: 1.5rem; -} - -.blog-grid { - display: grid; - grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); - gap: 1.5rem; - margin-top: 1.5rem; -} - -.blog-card { - background-color: #faf8f3; - border: 1px solid #d7ccc8; - border-radius: 4px; - padding: 1.5rem; - transition: transform 0.2s ease, box-shadow 0.2s ease; - position: relative; -} - -.blog-card:hover { - transform: translateY(-2px); - box-shadow: 0 4px 12px rgba(62, 39, 35, 0.25); -} - -.blog-card h3 { - color: #4e342e; - margin-bottom: 0.5rem; - font-size: 1.3rem; -} - -.blog-card h3 a { - color: #4e342e; - text-decoration: none; - transition: color 0.3s ease; -} - -.blog-card h3 a:hover { - color: #6d4c41; -} - -.blog-meta { - color: #8d6e63; - font-size: 0.9rem; - margin-bottom: 0.75rem; -} - -.blog-card p { - color: #5d4037; - line-height: 1.6; -} - -.blog-card.private { - border-color: #a1887f; - background-color: #f5f5f0; -} - -.private-badge { - display: inline-block; - background-color: #8d6e63; - color: #f4ecd8; - padding: 0.25rem 0.75rem; - border-radius: 4px; - font-size: 0.85rem; - margin-top: 0.5rem; -} - -/* Resume Styles */ -.skills-grid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); - gap: 2rem; - margin-top: 1.5rem; -} - -.skill-category h3 { - color: #4e342e; - margin-bottom: 1rem; - font-size: 1.2rem; - border-bottom: 2px solid #8d6e63; - padding-bottom: 0.5rem; -} - -.skill-category ul { - list-style: none; - padding-left: 0; -} - -.skill-category li { - padding: 0.5rem 0; - color: #5d4037; - position: relative; - padding-left: 1.5rem; -} - -.skill-category li:before { - content: "▸"; - position: absolute; - left: 0; - color: #8d6e63; - font-weight: bold; -} - -.experience-item { - margin-bottom: 2rem; -} - -.experience-item:last-child { - margin-bottom: 0; -} - -.experience-item h3 { - color: #4e342e; - font-size: 1.4rem; - margin-bottom: 0.5rem; -} - -.job-meta { - color: #8d6e63; - font-size: 0.95rem; - margin-bottom: 1rem; - font-style: italic; -} - -.experience-item ul { - margin-top: 1rem; - padding-left: 1.5rem; -} - -.experience-item li { - color: #5d4037; - margin-bottom: 0.5rem; - line-height: 1.7; -} - -.experience-item p { - color: #5d4037; - line-height: 1.7; -} - -/* Recipe Page Styles */ -.recipe-card { - background-color: #faf8f3; - border: 1px solid #d7ccc8; - border-radius: 4px; - padding: 1.5rem; - margin-bottom: 1.5rem; -} - -.recipe-card h3 { - color: #4e342e; - border-bottom: 2px solid #8d6e63; - padding-bottom: 0.5rem; - margin-bottom: 1rem; -} - -.recipe-year { - color: #8d6e63; - font-style: italic; - font-size: 0.9rem; -} - -/* Responsive Design */ -@media (max-width: 768px) { - .nav-container { - flex-direction: column; - gap: 1rem; - } - - .nav-menu { - flex-direction: column; - gap: 1rem; - text-align: center; - } - - .container { - padding: 1rem; - } - - .hero h1 { - font-size: 2rem; - } - - .content-section h2 { - font-size: 1.5rem; - } - - .blog-grid { - grid-template-columns: 1fr; - } - - .skills-grid { - grid-template-columns: 1fr; - } -} diff --git a/staging.nginx.nix b/staging.nginx.nix deleted file mode 100644 index 06cc821..0000000 --- a/staging.nginx.nix +++ /dev/null @@ -1,64 +0,0 @@ -{ config, pkgs, lib, ... }: - -{ - services.nginx = { - enable = true; - - # Recommended settings - recommendedGzipSettings = true; - recommendedOptimisation = true; - recommendedProxySettings = true; - - # Virtual hosts configuration for local staging - virtualHosts = { - - # Main website - Static HTML/CSS - # Access via http://localhost or http://localhost:80 - "localhost" = { - # No SSL for local development - listen = [ - { addr = "127.0.0.1"; port = 80; } - { addr = "0.0.0.0"; port = 80; } - ]; - - root = "/srv/www/stage.binning.net"; - - locations."/" = { - index = "index.html"; - tryFiles = "$uri $uri/ =404"; - extraConfig = '' - # Enable Server Side Includes for navbar/footer includes - ssi on; - ''; - }; - - # Blog (mdbook generated) - Enable SSI - locations."/blog/" = { - extraConfig = '' - # Enable Server Side Includes - ssi on; - ''; - }; - - # Private blog articles with HTTP basic authentication - locations."/blog/private/" = { - extraConfig = '' - auth_basic "Private Articles"; - auth_basic_user_file /srv/nginx/.htpasswd; - - # Enable Server Side Includes - ssi on; - ''; - }; - - # Custom 404 page - extraConfig = '' - error_page 404 /404.html; - ''; - }; - }; - }; - - # Firewall - allow local HTTP access - networking.firewall.allowedTCPPorts = [ 80 ]; -} diff --git a/theme/navbar.js b/theme/navbar.js deleted file mode 100644 index 41f5d28..0000000 --- a/theme/navbar.js +++ /dev/null @@ -1,9 +0,0 @@ -document.addEventListener('DOMContentLoaded', function () { - fetch('/includes/navbar.html') - .then(function (res) { return res.text(); }) - .then(function (html) { - var wrapper = document.createElement('div'); - wrapper.innerHTML = html.trim(); - document.body.insertBefore(wrapper.firstChild, document.body.firstChild); - }); -}); diff --git a/theme/sepia.css b/theme/sepia.css index 3a0585a..cead278 100644 --- a/theme/sepia.css +++ b/theme/sepia.css @@ -1,75 +1,4 @@ /* Sepia theme override for mdbook */ -/* This makes the mdbook-generated blog match the rest of the site */ - -/* Navbar overrides - ensure navbar looks identical to main site */ -.navbar { - background-color: #5d4037 !important; - box-shadow: 0 2px 4px rgba(62, 39, 35, 0.3) !important; - position: fixed !important; - top: 0 !important; - left: 0 !important; - right: 0 !important; - z-index: 200 !important; - border-bottom: 2px solid #4e342e !important; - margin: 0 !important; - padding: 0 !important; -} - -/* Push mdbook chrome below the fixed navbar */ -.sidebar { - top: 3.5rem !important; -} - -.page-wrapper { - padding-top: 3.5rem !important; -} - -.nav-container { - max-width: 1200px !important; - margin: 0 auto !important; - padding: 1rem 2rem !important; - display: flex !important; - justify-content: space-between !important; - align-items: center !important; -} - -.nav-brand { - color: #f4ecd8 !important; - text-decoration: none !important; - font-size: 1.5rem !important; - font-weight: bold !important; -} - -.nav-brand:hover { - color: #d7ccc8 !important; -} - -.nav-menu { - list-style: none !important; - display: flex !important; - gap: 2rem !important; - margin: 0 !important; - padding: 0 !important; -} - -.nav-menu li { - margin: 0 !important; - padding: 0 !important; - line-height: 1.5 !important; -} - -.nav-menu a { - color: #f4ecd8 !important; - text-decoration: none !important; - font-size: 1rem !important; - line-height: 1.5 !important; - transition: color 0.3s ease !important; - display: inline-block !important; -} - -.nav-menu a:hover { - color: #d7ccc8 !important; -} :root { --bg: #f4ecd8;