diff --git a/server.js b/server.js
index 1fdc76b..3de5244 100644
--- a/server.js
+++ b/server.js
@@ -347,8 +347,8 @@ export function createServer(customSiteDir, customPostsDir, customAssetsDir) {
const ext = path.extname(targetFile).toLowerCase();
const contentType = MIME_TYPES[ext] || "application/octet-stream";
- // Cache control: assets get long-term caching, html gets short
- if (decodedPath.startsWith("/assets/")) {
+ // Cache control: static media and webfonts get long-term caching; CSS, JS, and HTML get short revalidation
+ if (decodedPath.startsWith("/assets/") && !decodedPath.endsWith(".css") && !decodedPath.endsWith(".js")) {
res.setHeader("Cache-Control", "public, max-age=2592000, immutable");
} else {
res.setHeader("Cache-Control", "public, max-age=0, must-revalidate");
diff --git a/src/_includes/layouts/base.njk b/src/_includes/layouts/base.njk
index 2fff564..65a0a92 100644
--- a/src/_includes/layouts/base.njk
+++ b/src/_includes/layouts/base.njk
@@ -12,7 +12,7 @@
-
+
{% block head %}{% endblock %}
diff --git a/src/assets/css/components/article.css b/src/assets/css/components/article.css
index 87cf0cb..3e40cfb 100644
--- a/src/assets/css/components/article.css
+++ b/src/assets/css/components/article.css
@@ -2,13 +2,32 @@
Article Workspace & Markdown Prose (components/article.css)
========================================================================== */
-/* Left Sticky Sidebar */
+/* Left Sticky Sidebar (Sticky on multi-column desktop, natural flow on mobile/single-column) */
.article-sidebar {
display: flex;
flex-direction: column;
gap: var(--tile-gap);
- position: sticky;
- top: 16px;
+ position: static;
+}
+
+@media (min-width: 961px) {
+ .article-sidebar {
+ position: sticky;
+ top: 16px;
+ max-height: calc(100vh - 32px);
+ overflow-y: auto;
+ scrollbar-width: thin;
+ scrollbar-color: var(--border-color) transparent;
+ }
+}
+
+@media (max-width: 960px) {
+ .article-sidebar {
+ position: static !important;
+ top: auto !important;
+ max-height: none !important;
+ overflow: visible !important;
+ }
}
.sidebar-tile {