assets/css/styles.css
:root {
--bg: #f7f3ea;
--surface: #ffffff;
--ink: #20231f;
--muted: #62685f;
--primary: #1f5a48;
--primary-dark: #173f34;
--bronze: #a86f3d;
--border: #ddd5c7;
--paper: #efe7d8;
--radius: 8px;
--shadow: 0 18px 45px rgba(32, 35, 31, 0.08);
}
body {
margin: 0;
color: var(--ink);
background: var(--bg);
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
line-height: 1.65;
}
.container {
width: min(1120px, calc(100% - 40px));
margin: 0 auto;
}
.site-header {
position: sticky;
top: 0;
z-index: 20;
border-bottom: 1px solid rgba(221, 213, 199, 0.82);
background: rgba(247, 243, 234, 0.94);
backdrop-filter: blur(16px);
}
.nav, .nav-links, .actions, .footer-inner {
display: flex;
align-items: center;
}
.grid-3 {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 20px;
}
.card {
border: 1px solid var(--border);
border-radius: var(--radius);
background: var(--surface);
box-shadow: 0 12px 32px rgba(32, 35, 31, 0.05);
padding: 28px;
}
pre {
overflow-x: auto;
white-space: pre-wrap;
word-break: break-word;
margin: 0;
color: var(--ink);
font: 14px/1.7 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
}
@media (max-width: 860px) {
.nav-links {
display: none;
}
.nav-links.open {
display: flex;
}
.grid-3 {
grid-template-columns: 1fr;
}
}
assets/js/main.js
const toggle = document.querySelector("[data-nav-toggle]");
const links = document.querySelector("[data-nav-links]");
if (toggle && links) {
toggle.addEventListener("click", () => {
const isOpen = links.classList.toggle("open");
toggle.setAttribute("aria-expanded", String(isOpen));
});
}