:root {
    --editorial-paper: #f7f6f2;
    --editorial-surface: #fffefa;
    --editorial-ink: #292e2a;
    --editorial-muted: #707a72;
    --editorial-line: #dfe2dc;
    --editorial-accent: #597369;
}
html { scroll-behavior: smooth; }
body {
    box-sizing: border-box;
    max-width: none;
    min-width: 280px;
    margin: 0;
    color: var(--editorial-ink);
    background: var(--editorial-paper);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans CJK SC", "Microsoft YaHei", sans-serif;
    line-height: 1.65;
}
body.preview { margin: 1rem; max-width: none; }
body:not(.preview) .site-shell {
    max-width: 1080px;
    min-height: 100vh;
    margin: 0 auto;
    background: var(--editorial-surface);
    border-inline: 1px solid var(--editorial-line);
}
a:link, a:visited, section a:link, section a:visited, p a:link, p a:visited { color: inherit; }
a:hover, a:focus, a:active, section a:hover, section a:focus, p a:hover, p a:focus { color: var(--editorial-accent); }
a:focus-visible { outline: 2px solid var(--editorial-accent); outline-offset: 3px; }
.site-header { border-bottom: 1px solid var(--editorial-line); }
.header-inner {
    max-width: 936px;
    min-height: 88px;
    margin: auto;
    padding: 16px 20px;
    display: flex;
    align-items: center;
    gap: 34px;
}
.site-brand { flex: none; font-size: 18px; font-weight: 650; letter-spacing: .02em; text-decoration: none; }
.site-navigation { display: flex; align-items: center; gap: 25px; margin-left: auto; }
.site-navigation a { font-size: 13px; color: #677269; white-space: nowrap; text-decoration: none; }
.site-navigation a:hover, .site-navigation a:focus { color: var(--editorial-accent); text-decoration: underline; }
.site-search { display: flex; align-items: center; gap: 8px; margin: 0; border-bottom: 1px solid #bfc8bf; }
.site-search label { font-size: 12px; color: var(--editorial-muted); }
.site-search input[type="search"] {
    box-sizing: border-box;
    width: 100px;
    min-height: 28px;
    margin: 0;
    padding: 3px 0;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--editorial-ink);
    font: inherit;
    font-size: 12px;
}
.site-search input[type="search"]:focus { width: 145px; }
.site-search input::placeholder { color: #9aa29b; }
body:not(.preview) div#main { box-sizing: border-box; max-width: 780px; width: auto; margin: 0 auto; padding: 36px 20px 64px; }
.index-heading { padding: 27px 0 38px; border-bottom: 1px solid var(--editorial-line); }
.index-heading h1 { font-family: "Noto Serif CJK SC", "Source Han Serif SC", "Songti SC", serif; font-size: 38px; font-weight: 600; line-height: 1.4; margin: 0 0 10px; }
.index-heading p { margin: 0; color: var(--editorial-muted); font-size: 13px; }
body:not(.route_view) div#main > article.post.text {
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr);
    gap: 12px;
    width: 100%;
    margin: 0;
    padding: 25px 0 27px;
    border: 0;
    border-bottom: 1px solid var(--editorial-line);
    border-radius: 0;
    background: none;
    box-shadow: none;
}
.entry-date { padding-top: 4px; color: #89938a; font-size: 12px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.entry-layout { min-width: 0; }
.entry-layout.has-cover { display: grid; grid-template-columns: minmax(0, 1fr) 205px; gap: 25px; align-items: center; }
.entry-copy { min-width: 0; }
body:not(.route_view) article.post.text h2.post_title { margin: 0 0 8px; font-family: "Noto Serif CJK SC", "Source Han Serif SC", "Songti SC", serif; font-size: 22px; font-weight: 600; letter-spacing: .005em; line-height: 1.5; }
body:not(.route_view) article.post.text h2.post_title a { text-decoration: none; }
body:not(.route_view) article.post.text h2.post_title a:hover { text-decoration: underline; text-underline-offset: .18em; }
.entry-tags { display: flex; flex-wrap: wrap; gap: 5px 12px; color: #6d8474; font-size: 11px; line-height: 1.5; }
.entry-tags a { color: inherit; text-decoration: none; }
.entry-tags a:hover { text-decoration: underline; }
.entry-cover { display: block; width: 205px; height: 132px; overflow: hidden; border-radius: 2px; }
.entry-cover img { display: block; width: 100%; height: 100%; object-fit: cover; }
body.route_view div#main > article.post.text,
body.route_page div#main > article.page,
div.standalone {
    padding: 0;
    margin: 0;
    border: 0;
    border-radius: 0;
    background: none;
    box-shadow: none;
}
body.route_view .post_title, body.route_page article.page h2 { margin: 14px 0 32px; font-family: "Noto Serif CJK SC", "Source Han Serif SC", "Songti SC", serif; font-size: clamp(29px, 4vw, 39px); font-weight: 600; line-height: 1.35; }
body.route_view article.post > section.body { margin: 0; font-size: 16px; line-height: 1.9; overflow-wrap: anywhere; }
body.route_view article.post > section.body h2 { font-size: 1.52em; margin-top: 2.3em; }
body.route_view article.post > section.body h3 { font-size: 1.2em; margin-top: 1.8em; }
body.route_view article.post > section.body img, body.route_page article.page section img { max-width: 100%; height: auto; }
body.route_view article.post > section.body figure { max-width: 100%; margin: 1.7em auto; }
body.route_view article.post > section.body figcaption { color: var(--editorial-muted); text-align: center; }
body.route_view article.post > footer { border-top: 1px solid var(--editorial-line); margin-top: 48px; padding-top: 18px; }
body.route_view div.metadata, body.route_page div.metadata { position: static; width: auto; margin: 10px 0 0; padding: 0; border: 0; border-radius: 0; background: none; text-align: left; color: var(--editorial-muted); }
body.route_view div.tags { margin: 0; color: var(--editorial-muted); }
body.route_view div.tags a { color: var(--editorial-accent); }
.site-footer { max-width: 780px; margin: 36px auto 0; padding: 28px 20px 45px; border-top: 1px solid var(--editorial-line); display: flex; justify-content: space-between; color: #89938a; font-size: 12px; }
.site-footer div { display: flex; gap: 20px; }
.site-footer a { text-decoration: none; }
.site-footer a:hover { text-decoration: underline; }
body:not(.preview) div.ribbon { border-radius: 2px; margin: 0 0 28px; background: #e9efea; color: var(--editorial-ink); text-align: left; font-size: 14px; }
body:not(.preview) div.traversal a { border-radius: 2px; background: var(--editorial-accent); }
body:not(.preview) div.traversal a:hover { background: #405b4d; }
body:not(.preview) div.prev, body:not(.preview) div.next { max-width: 780px; margin: 25px auto; padding: 0 20px; }
@media (max-width: 760px) {
    .header-inner { flex-wrap: wrap; gap: 12px 18px; padding: 18px 20px; }
    .site-brand { width: 100%; }
    .site-navigation { margin-left: 0; gap: 20px; }
    .site-search { margin-left: auto; }
    body:not(.preview) div#main { padding: 24px 22px 48px; }
    .index-heading { padding: 21px 0 28px; }
    .index-heading h1 { font-size: 32px; }
    body:not(.route_view) div#main > article.post.text { grid-template-columns: 1fr; gap: 8px; padding: 21px 0 23px; }
    .entry-date { padding: 0; }
    .entry-layout.has-cover { grid-template-columns: minmax(0, 1fr) 116px; gap: 15px; }
    .entry-cover { width: 116px; height: 92px; }
    body:not(.route_view) article.post.text h2.post_title { font-size: 20px; }
    .site-footer { margin: 12px 22px 0; padding-inline: 0; }
}
@media (max-width: 430px) {
    .site-navigation { gap: 13px; }
    .site-navigation a { font-size: 12px; }
    .site-search { width: 100%; margin-left: 0; }
    .site-search input[type="search"] { flex: 1; width: auto; }
    .entry-layout.has-cover { grid-template-columns: 1fr; }
    .entry-cover { width: 100%; height: 150px; grid-row: 1; }
}
