:root {
  --paper:#f2ede1; --ink:#243433; --muted:#62675e; --line:#c9c5b7;
  --night:#172b2c; --gold:#ddbc7a; --rust:#97462f;
  --serif:"Songti SC","Noto Serif CJK SC","Source Han Serif SC","SimSun",serif;
  --sans:"Microsoft YaHei","PingFang SC",system-ui,sans-serif;
  color-scheme:light; font-family:var(--sans); font-weight:400;
  color:var(--ink); background:var(--paper); font-synthesis:none;
}
* { box-sizing:border-box; }
body { margin:0; }
a { color:inherit; text-underline-offset:5px; }
button { font:inherit; cursor:pointer; }
a,button { touch-action:manipulation; -webkit-tap-highlight-color:transparent; }
img { display:block; max-width:100%; height:auto; }
p { margin:0 0 16px; text-wrap:pretty; }
h1,h2,h3 { margin:0; font-family:var(--serif); font-weight:600; text-wrap:balance; }
figure { margin:0; }
[hidden] { display:none!important; }
a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible { outline:3px solid var(--rust); outline-offset:5px; }
a:active,button:active { opacity:.8; }
.page-shell { max-width:1280px; margin:auto; padding:0 48px; }
.skip-link { position:fixed; left:16px; top:16px; transform:translateY(-200%); z-index:2000; padding:16px; background:var(--paper); }
.skip-link:focus { transform:none; }
.masthead { min-height:104px; display:flex; align-items:center; justify-content:space-between; gap:24px; border-bottom:1px solid var(--ink); }
.stories-home .masthead { min-height:80px; }
.brand { display:flex; align-items:center; gap:12px; text-decoration:none; font-size:20px; font-weight:600; letter-spacing:2px; }
.brand-seal { display:grid; place-items:center; width:40px; height:48px; border-radius:2px; background:var(--night); color:var(--paper); font:24px var(--serif); }
.brand small { display:block; font-size:10px; letter-spacing:2px; font-weight:400; margin-top:4px; }
.site-nav { display:flex; gap:32px; font-size:14px; }
.site-nav a { text-decoration:none; padding:12px 0; }
.site-nav a[aria-current="page"] { text-decoration:underline; text-decoration-color:var(--rust); text-decoration-thickness:2px; text-underline-offset:10px; }
.site-nav a:hover,.reader-nav a:hover,.directory-map:hover,.reader-end a:hover { color:var(--rust); }
.eyebrow { font:12px/1.8 var(--sans); letter-spacing:2px; }
.archive-id { font:12px/1.7 var(--sans); letter-spacing:1px; font-variant-numeric:tabular-nums; }
.introduction { display:grid; grid-template-columns:.9fr 1.1fr; gap:32px; align-items:center; padding:24px 0; }
.introduction h1 { font-size:48px; line-height:1.2; letter-spacing:4px; margin:0; }
.title-dot { color:var(--rust); }
.column-note { font-size:14px; line-height:1.8; max-width:520px; margin:0; color:var(--muted); }
.section-line { display:flex; justify-content:space-between; gap:16px; align-items:center; border-top:1px solid var(--ink); padding:12px 0; }
.section-line h2 { font:14px var(--sans); letter-spacing:2px; }
.section-line>span { font-size:12px; letter-spacing:1px; color:var(--muted); }
.story-card { display:flex; flex-direction:column; background:var(--night); color:var(--paper); border:1px solid var(--night); border-radius:4px; overflow:hidden; text-decoration:none; transition:transform .5s cubic-bezier(.22,1,.36,1); }
.story-card:hover { transform:translateY(-4px); }
.cover-frame { overflow:hidden; }
.cover-frame img { width:100%; height:clamp(168px,14vw,184px); object-fit:cover; object-position:50% 55%; transition:transform .5s cubic-bezier(.22,1,.36,1); }
.story-card:hover img { transform:scale(1.025); }
.card-copy { padding:20px 24px; display:flex; flex-direction:column; flex:1; align-items:start; }
.card-meta { display:flex; align-items:center; justify-content:space-between; gap:16px; width:100%; margin-bottom:12px; color:#c8cbbd; }
.legend-badge { display:inline-block; padding:4px 8px; border:1px solid currentColor; border-radius:2px; color:var(--gold); font:12px/20px var(--sans); letter-spacing:2px; }
.card-copy h3 { font-size:26px; line-height:1.4; letter-spacing:2px; margin-bottom:8px; color:#fff8e9; }
.card-copy>p { font-size:14px; line-height:1.75; color:#d4d6c9; margin-bottom:0; }
.card-location { font-size:12px; line-height:1.6; color:#bec6bb; margin:8px 0 12px; }
.read-link { display:flex; align-items:center; justify-content:space-between; gap:32px; width:100%; padding-top:8px; border-top:1px solid #62716a; color:var(--gold); font-size:14px; line-height:1.6; margin-top:12px; }
.read-link>span { font-size:20px; }
.featured-card { display:grid; grid-template-columns:.9fr 1.1fr; min-height:280px; }
.featured-card .cover-frame { position:relative; min-height:0; border-right:1px solid #50615a; }
.featured-card .cover-frame img { position:absolute; inset:0; width:100%; height:100%; min-height:0; object-position:50% 68%; }
.featured-card .card-copy { padding:24px 32px; }
.featured-card h3 { font-size:36px; line-height:1.3; letter-spacing:2px; margin:0 0 12px; }
.featured-card h3 span { display:inline; }
.story-selection { margin-bottom:24px; }
.story-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.map-entry { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:20px 0; margin:24px 0; border-block:1px solid var(--line); text-decoration:none; }
.map-entry>span:first-child { font:20px/1.6 var(--serif); }
.map-entry>span:last-child { font-size:14px; color:var(--rust); }
footer { display:flex; justify-content:space-between; gap:16px; padding:24px 0 32px; border-top:1px solid var(--ink); font-size:12px; color:var(--muted); line-height:1.8; }
footer a { text-decoration:none; }
.reader-nav { display:flex; justify-content:space-between; gap:24px; padding:24px 0; font-size:14px; }
.reader-nav a { padding:8px 0; text-decoration:none; }
.reader-layout { display:grid; grid-template-columns:minmax(0,740px) 240px; gap:64px; justify-content:center; margin:24px 0 48px; }
.reader-layout article { min-width:0; }
.article-header { margin-bottom:32px; }
.article-meta { display:flex; align-items:center; gap:16px; color:var(--muted); }
.article-meta .legend-badge { color:var(--rust); }
.article-header h1 { font-size:60px; line-height:1.35; letter-spacing:2px; margin:24px 0 16px; }
.article-deck { font:20px/1.8 var(--serif); color:var(--muted); margin:0; }
.article-figure { margin:0 0 40px; overflow:hidden; border-radius:2px; }
.article-figure img { width:100%; height:280px; object-fit:cover; object-position:50% 46%; }
.story-prose { font-family:var(--sans); font-size:18px; font-weight:400; line-height:1.85; letter-spacing:.025em; overflow-wrap:break-word; line-break:strict; }
.story-prose p { font:inherit; margin:0 0 24px; }
.story-prose p:last-child { margin-bottom:0; }
.references { display:flex; flex-wrap:wrap; gap:8px 16px; border-top:1px solid var(--line); margin-top:40px; padding-top:24px; color:var(--muted); font-size:12px; line-height:1.9; }
.references a { overflow-wrap:anywhere; }
.desktop-directory { position:sticky; top:32px; align-self:start; border-top:2px solid var(--ink); padding-top:16px; }
.desktop-directory>.eyebrow { color:var(--muted); }
.archive-nav ol { list-style:none; padding:0; margin:0; }
.archive-nav li { border-bottom:1px solid var(--line); }
.archive-nav a { display:grid; grid-template-columns:1fr auto; gap:8px 16px; padding:16px 12px; text-decoration:none; border-radius:2px; font-size:14px; line-height:1.7; }
.archive-nav .archive-id { grid-column:1/-1; color:var(--muted); }
.archive-nav a:hover { background:#e8e2d3; }
.archive-nav a[aria-current="page"] { background:var(--night); color:var(--paper); }
.archive-nav a[aria-current="page"] .archive-id,.archive-nav a[aria-current="page"] .index-arrow { color:var(--gold); }
.directory-map { display:inline-block; padding:16px 12px; margin-top:8px; font-size:12px; text-decoration:none; }
.mobile-directory { display:none; }
.location-section { margin-top:40px; padding-top:32px; border-top:1px solid var(--line); scroll-margin-top:24px; }
.location-heading { display:flex; justify-content:space-between; align-items:end; gap:24px; margin-bottom:24px; }
.location-heading .eyebrow { margin-bottom:8px; color:var(--muted); }
.location-heading h2 { font-size:24px; line-height:1.5; }
.external-map { font-size:12px; padding:8px 0; flex-shrink:0; }
.map-frame { min-width:0; }
.map-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:48px; padding:8px 16px; background:var(--night); color:var(--paper); font-size:14px; }
.map-toolbar button { padding:8px 12px; border:1px solid #a4ad9a; color:var(--paper); background:transparent; border-radius:2px; font-size:12px; }
.map-toolbar button:hover { background:#344947; }
.story-map { height:340px; z-index:0; background:#e1e3d7; }
.map-status { font-size:14px; line-height:1.8; margin:12px 0 0; color:var(--rust); }
.map-status:empty { display:none; }
.map-pin { display:grid; place-items:center; width:36px; height:36px; border:2px solid #fff9e9; border-radius:50%; background:var(--rust); box-shadow:0 2px 8px #172b2c50; color:white; font:12px var(--sans); }
.area-tooltip { background:var(--paper); color:var(--ink); border-color:var(--line); box-shadow:none; font:12px var(--sans); }
.leaflet-popup-content { font-family:var(--sans); line-height:1.8; }
.map-popup a { display:inline-block; color:var(--rust); padding:8px 0; }
.leaflet-control-attribution { font-size:10px; }
.reader-end { display:flex; justify-content:space-between; gap:24px; padding:32px 0 0; margin-top:32px; border-top:1px solid var(--line); font-size:14px; line-height:1.8; }
.reader-end a { text-decoration:none; padding:8px 0; max-width:48%; }
.reader-end a[rel="next"] { text-align:right; margin-left:auto; }
.map-page-header { padding:48px 0 32px; }
.map-page-header h1 { font-size:48px; line-height:1.4; letter-spacing:2px; margin-bottom:24px; }
.map-legend { display:flex; gap:24px; margin:0; font-size:14px; }
.map-legend span { display:flex; align-items:center; gap:8px; }
.legend-point { width:12px; height:12px; border-radius:50%; background:var(--rust); }
.legend-area { width:16px; height:16px; border-radius:50%; border:1px dashed var(--ink); background:#24343315; }
.map-page-layout { display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:32px; margin-bottom:64px; }
.overview-map .story-map { height:560px; }
.map-story-list>div { padding:24px 0; border-bottom:1px solid var(--line); }
.map-story-list>div:first-child { padding-top:0; }
.map-story-list a { text-decoration:none; }
.map-story-list .archive-id { color:var(--muted); }
.map-story-list h2 { font-size:24px; line-height:1.5; margin:8px 0 12px; }
.map-story-list p { font-size:14px; color:var(--muted); margin-bottom:12px; }
.map-story-list button { color:var(--rust); font-size:12px; padding:8px 0; border:0; background:transparent; }
@media(max-width:1100px) {
  .page-shell { padding:0 32px; }
  .introduction { gap:24px; }
  .introduction h1 { font-size:42px; }
  .featured-card .card-copy { padding:24px; }
  .featured-card h3 { font-size:32px; }
  .reader-layout { grid-template-columns:minmax(0,1fr) 216px; gap:40px; }
  .article-header h1 { font-size:48px; }
  .map-page-layout { grid-template-columns:minmax(0,1fr) 240px; gap:24px; }
}
@media(max-width:850px) {
  .reader-layout { display:block; max-width:740px; margin-inline:auto; }
  .desktop-directory { display:none; }
  .mobile-directory { display:block; margin:0 0 32px; border-block:1px solid var(--line); }
  .mobile-directory summary { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:16px 4px; cursor:pointer; font-size:14px; list-style:none; }
  .mobile-directory summary::-webkit-details-marker { display:none; }
  .mobile-directory summary::after { content:"+"; margin-left:auto; font-size:20px; }
  .mobile-directory[open] summary::after { content:"−"; }
  .mobile-directory .archive-nav { padding-bottom:16px; }
  .mobile-directory .archive-nav a { grid-template-columns:72px 1fr auto; }
  .mobile-directory .archive-nav .archive-id { grid-column:auto; }
  .map-page-layout { grid-template-columns:1fr; }
  .map-story-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
  .map-story-list>div { padding-top:0; }
}
@media(max-width:700px) {
  .page-shell { padding:0 20px; }
  .masthead { min-height:88px; gap:16px; }
  .stories-home .masthead { min-height:76px; }
  .brand { font-size:16px; letter-spacing:1px; }
  .brand-seal { width:32px; height:40px; font-size:20px; }
  .brand small { font-size:9px; letter-spacing:1px; }
  .site-nav { gap:16px; font-size:12px; }
  .site-nav:has(.main-site-link) { flex-wrap:wrap; justify-content:flex-end; gap:0 16px; max-width:148px; }
  .site-nav .main-site-link { flex-basis:100%; text-align:right; padding:4px 0; }
  .introduction { display:block; padding:24px 0; }
  .introduction h1 { font-size:36px; letter-spacing:3px; margin:0; }
  .column-note { margin-top:12px; font-size:14px; max-width:none; }
  .featured-card { grid-template-columns:1fr; }
  .featured-card .cover-frame { border:0; }
  .featured-card .cover-frame img { position:static; height:200px; min-height:0; object-position:50% 55%; }
  .featured-card .card-copy,.card-copy { padding:20px; }
  .featured-card h3 { font-size:32px; line-height:1.4; letter-spacing:2px; margin:0 0 12px; }
  .featured-card h3 span { display:inline; }
  .card-copy h3 { font-size:26px; }
  .card-copy>p { font-size:14px; }
  .card-meta { margin-bottom:12px; }
  .cover-frame img { height:176px; }
  .story-grid { grid-template-columns:1fr; gap:20px; }
  .story-selection { margin-bottom:24px; }
  .map-entry { padding:20px 0; margin:24px 0; }
  .map-entry>span:first-child { font-size:18px; }
  .map-entry>span:last-child { font-size:12px; }
  .reader-nav { font-size:12px; gap:16px; padding:16px 0; }
  .reader-layout { margin-top:0; margin-bottom:32px; }
  .article-header h1 { font-size:36px; margin:24px 0 12px; }
  .article-deck { font-size:18px; }
  .article-figure { margin-bottom:32px; }
  .article-figure img { height:220px; }
  .story-prose { font-size:17px; font-weight:400; line-height:1.85; letter-spacing:0; }
  .story-prose p { margin-bottom:24px; }
  .references { margin-top:32px; }
  .location-section { margin-top:32px; }
  .location-heading { gap:16px; }
  .location-heading h2 { font-size:24px; }
  .story-map { height:300px; }
  .reader-end { gap:16px; font-size:12px; }
  .map-page-header { padding:32px 0; }
  .map-page-header h1 { font-size:36px; }
  .overview-map .story-map { height:420px; }
  .map-story-list { display:block; }
  .map-story-list>div { padding:24px 0; }
  .map-story-list>div:first-child { padding-top:0; }
  .map-page-layout { margin-bottom:32px; }
}
@media(max-width:370px) {
  .page-shell { padding-inline:16px; }
  .brand small { display:none; }
  .brand { gap:8px; }
  .site-nav { gap:12px; }
  .mobile-directory .archive-nav a { grid-template-columns:64px 1fr auto; gap:8px; }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior:auto!important; animation:none!important; transition:none!important; }
  .story-card:hover,.story-card:hover img { transform:none; }
}
@media print {
  .masthead,.reader-nav,.mobile-directory,.desktop-directory,.location-section,.reader-end,footer,.skip-link { display:none!important; }
  .page-shell { padding:0; }
  .reader-layout { display:block; margin:0; }
  .story-prose { font-size:12pt; font-weight:400; }
  .article-figure img { height:160px; }
}
