:root{color-scheme:light;--ink:#242424;--line:#dedede;--muted:#797979}html,body{background:#fff!important;color:var(--ink);font-family:'Microsoft YaHei UI','PingFang SC',Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #555;outline-offset:3px}[hidden]{display:none!important}
#loader{background:#fff;color:#252525}.load-mark i,.load-mark i:nth-child(2){background:#999;box-shadow:none;border-radius:2px}.load-title{letter-spacing:1px}.bar{background:#e9e9e9}.bar i{background:#777;box-shadow:none}.load-pct,.load-sub,.load-bytes{color:#777}.load-retry{background:#fff;color:#222;border-color:#ccc}.error{background:#fff;color:#222;border-color:#ccc}.city-return{background:#fffffff2;color:#333;border:1px solid #ddd;border-radius:5px;backdrop-filter:none;top:22px}.city-return:hover{color:#111;border-color:#999}.map-credit{color:#777!important;bottom:8px;font-size:9px}.map-focus-marker{border-color:#888!important;box-shadow:none!important}.story-hint{display:none}
.story-pin{position:absolute;width:max(44px,var(--dot-size));height:max(44px,var(--dot-size));background:none;border:0;border-radius:0;box-shadow:none;transform:translate(-50%,-50%);padding:0;display:grid;place-items:center;color:#333;pointer-events:auto}.story-pin:hover,.story-pin:focus-visible{box-shadow:none;outline:0}.story-dot{display:block;width:var(--dot-size);height:var(--dot-size);border-radius:50%;background:var(--dot-b);opacity:.87;border:1px solid #ffffff88;box-shadow:0 1px 2px #0000000c;transition:transform .2s,opacity .2s}.story-pin:hover .story-dot,.story-pin:focus-visible .story-dot{transform:scale(1.14);opacity:1;outline:1px solid var(--dot-b);outline-offset:4px}.pin-label{position:absolute;left:calc(50% + var(--dot-size)/2 + 6px);top:50%;transform:translateY(-50%);white-space:nowrap;font:9px/1.5 Arial,sans-serif;color:#666;pointer-events:none;background:#ffffffaa}.pin-count{position:absolute;font:10px Arial;color:#fff;text-shadow:0 1px 2px #0005;pointer-events:none}.story-markers{z-index:4;transition:opacity .2s}.story-toast{z-index:200;background:#fff;color:#333;border:1px solid #ddd;border-radius:5px;box-shadow:0 4px 20px #0001;font-size:12px}
.memory-timeline{position:fixed;z-index:7;bottom:26px;left:6%;right:6%;max-width:1080px;margin:auto;padding:15px 24px 13px;background:#ffffffed;border:1px solid #ddd;border-radius:5px;box-shadow:0 4px 24px #00000008;backdrop-filter:blur(10px)}.timeline-head{display:flex;align-items:center;gap:15px}.timeline-head strong{font-size:22px;font-weight:400;font-variant-numeric:tabular-nums;letter-spacing:-.6px}.timeline-count{font-size:10px;color:#888;margin-right:auto}.memory-timeline button,.memory-timeline select{background:white;color:#555;border:1px solid #ddd;border-radius:4px;padding:5px 8px;font-size:10px}.memory-timeline button[aria-pressed=true]{background:#2c2c2c;color:#fff;border-color:#2c2c2c}.timeline-track{position:relative;height:63px;margin:7px 4px 0;touch-action:none;cursor:ew-resize;border-bottom:1px solid #999}.timeline-bars{position:absolute;inset:0 0 22px}.timeline-bars i{position:absolute;bottom:0;width:3px;transform:translateX(-50%);background:#aaa;border-radius:1px}.timeline-window{position:absolute;top:2px;bottom:20px;background:#3333330d;border-left:2px solid #333;border-right:2px solid #333;pointer-events:none;min-width:3px}.timeline-ticks{position:absolute;inset:auto 0 3px;height:13px;pointer-events:none}.timeline-ticks span{position:absolute;transform:translateX(-50%);font:10px Arial;color:#666}.timeline-controls{display:flex;align-items:center;gap:8px;margin:10px 0 8px;font-size:10px;color:#999}.timeline-controls input{width:0;flex:1;accent-color:#555;height:10px}.story-filters{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.story-filters .category-filter{border-color:transparent;font-size:10px;background:transparent}.category-filter:not([data-category=all]):before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--category-color);margin-right:5px}.story-filters select{margin-left:auto}.map-entering .memory-timeline{opacity:0;pointer-events:none}
.story-dialog{background:#fffffff7;color:#252525;border:1px solid #d8d8d8;border-radius:6px;box-shadow:0 12px 45px #00000012;padding:28px;max-height:calc(100dvh - 48px);width:min(440px,calc(100vw - 32px));backdrop-filter:blur(16px)}.story-dialog::backdrop{background:#ffffff20}.story-dialog h2{font-size:21px;letter-spacing:0;font-weight:500;margin:0 28px 22px 0}.story-close{color:#666}.story-dialog p,.story-dialog .body{color:#4c4c4c;font-size:13px;line-height:1.9}.story-dialog .note{color:#888;font-size:10px}.story-card{border-color:#e5e5e5;padding:18px 0;margin-top:0}.story-card h3{font-size:17px;font-weight:500;margin:8px 0}.story-meta{font-size:10px;color:#777}.source-tag{display:inline-block;padding:3px 6px;background:#f3f3f3;border:1px solid #e4e4e4;border-radius:3px;color:#777;font-size:9px}.story-dialog label{color:#555;font-size:11px;margin:15px 0 5px}.story-dialog input:not([type=checkbox]):not([type=file]):not([type=color]),.story-dialog textarea,.story-dialog select{display:block;box-sizing:border-box;width:100%;padding:10px;border:1px solid #ddd;background:white;color:#222;border-radius:4px;font:12px/1.6 inherit}.story-dialog textarea{min-height:140px}.story-dialog input[type=color]{width:100%;height:32px;border:1px solid #ddd;background:white;border-radius:4px}.story-dialog button{padding:8px 12px;background:#fff;border:1px solid #d5d5d5;color:#333;border-radius:4px;font-size:11px}.story-dialog button.primary{background:#303030;border-color:#303030;color:white}.story-dialog button.story-close{border:0;padding:0;font-size:23px}.story-dialog .story-delete{color:#555;margin-top:20px}.story-dialog .feedback{color:#666}.story-images img,.story-card .photos img{border-radius:3px}.story-images figure{margin:0;position:relative}.story-images button{position:absolute;right:3px;top:3px;background:#fff;padding:1px 5px}.editor-position{font-size:10px;color:#999;margin-top:18px}.story-actions{display:flex;margin-top:18px;gap:8px}
.map-admin{z-index:30;position:fixed;inset:70px 22px auto auto;margin:0;width:min(350px,calc(100vw - 40px));max-height:calc(100dvh - 100px);background:#fff;color:#333;border:1px solid #ddd;border-radius:5px;box-shadow:0 6px 30px #0001;padding:20px;font-size:12px;backdrop-filter:none;color-scheme:light}.map-admin h2{font-weight:500}.map-admin h3{font-size:13px;margin:22px 0 10px}.map-admin p{color:#888;font-size:10px}.map-admin output{color:#555}.map-admin input[type=range]{accent-color:#555}.map-admin button{background:#fff;color:#333;border:1px solid #ddd;border-radius:4px;font-size:10px}.map-admin select{width:100%;background:white;color:#333;padding:9px;border:1px solid #ddd;border-radius:4px}.admin-mode-badge{position:fixed;top:22px;right:22px;z-index:31;background:#333;color:white;border:0;border-radius:4px;padding:10px 14px;font-size:11px}.admin-mode .story-dot{outline:1px dashed #777;outline-offset:4px}
/* The city entrance shares the paper palette. */
header{border-bottom-color:#eee}.brand,.brand-mark{color:#333}.brand small,.edition,.kicker{color:#777}h1 em{color:#333}.intro p,.intro .instruction{color:#777}.progress b{color:#333}.progress b span,.progress>span,.legend{color:#888}.legend i{background:#555;box-shadow:none}.atlas-caption,.north{color:#777}.river{fill:#e8ecee;stroke:#c8ced0}.tributary{fill:#e8ecee;stroke:#c8ced0}.roads path{stroke:#888;opacity:.15}.terrain path{stroke:#aaa;opacity:.25}.district>path:not(.leader):not(.halo):not(.wetland){fill:#eee;stroke:#bbb}.district text{fill:#555}.district .zone-status{fill:#888}.active-zone>path:not(.leader):not(.halo):not(.wetland){fill:#d9dfe2!important;stroke:#666!important}.active-zone .halo{display:none}.active-zone .active-name,.active-zone .active-status{fill:#333}.active-zone .leader{stroke:#888}.beacon{fill:#555}.beacon-ring{stroke:#888}.island>path:first-child{fill:#dfe5df!important;stroke:#adb8ad!important}.map-labels text{fill:#777}.place-card{background:white;border-color:#ddd;border-radius:5px;box-shadow:none}.place-card h2{color:#333}.place-card p,.place-card #region-index{color:#888}.place-card a{background:white;color:#333;border-color:#bbb;border-radius:4px}.place-card a:hover{background:#f4f4f4}footer,footer a{color:#888}.transition-veil{background:white}
@media(max-width:600px){.memory-timeline{left:10px;right:10px;bottom:20px;padding:12px}.timeline-head{gap:7px;flex-wrap:wrap}.timeline-head strong{font-size:18px}.timeline-count{font-size:9px}.timeline-head button{font-size:9px}.story-filters{gap:2px}.story-filters button{padding:5px}.story-filters select{margin-left:0;font-size:9px}.timeline-controls{gap:5px}.timeline-controls button{padding:5px}.story-dialog{inset:auto 0 0;width:100%;max-width:100%;max-height:85dvh;border-radius:6px 6px 0 0}.pin-label{display:none}.city-return{left:12px;top:12px}.admin-mode-badge{right:12px;top:12px}.map-credit{font-size:7px}.map-admin{top:58px;right:12px}.story-dialog input[type=file]{max-width:100%}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.quick-story textarea{min-height:200px!important;font-size:16px!important;line-height:1.9!important}.compose-help,.auto-summary{font-size:12px;color:#888;line-height:1.7}.auto-summary{padding:10px 0;border-top:1px solid #eee}.phone-transfer{margin:14px 0}.phone-transfer button{padding:9px 12px}.phone-transfer img{width:180px;height:180px;display:block;margin:12px 0}.phone-transfer p{font-size:12px;color:#777}.phone-transfer a{font-size:11px;word-break:break-all;color:#555}

.phone-transfer{border-top:1px solid #eee;padding-top:14px;display:grid;grid-template-columns:132px 1fr;gap:8px 18px;align-items:center}.phone-transfer .phone-qr{grid-column:1;grid-row:1 / span 3;width:132px;height:132px;margin:0}.phone-transfer .phone-title{grid-column:2;font-size:15px;color:#333;margin:0}.phone-transfer .phone-status{grid-column:2;font-size:12px;line-height:1.7;margin:0}.phone-transfer button{grid-column:2;justify-self:start}.phone-transfer [hidden]{display:none!important}

.admin-placement{position:fixed;top:78px;left:50%;transform:translateX(-50%);z-index:35;display:flex;align-items:center;gap:16px;max-width:calc(100vw - 36px);padding:12px 16px;background:#fff;border:1px solid #ccc;border-radius:5px;font-size:12px;box-shadow:0 4px 18px #0001}.admin-placement button{white-space:nowrap;background:#fff;border:1px solid #ccc;border-radius:4px;padding:6px 10px}.map-admin label:has(input[type=checkbox]){display:flex;gap:8px;align-items:center;margin-top:12px}

.map-place-labels{position:fixed;inset:0;z-index:3;pointer-events:none;overflow:hidden}.map-place-label{position:absolute;transform:translate(-50%,-100%);padding:4px 7px;background:#ffffffee;border:1px solid #d8d8d8;border-radius:3px;color:#363636;font:12px/1.4 'Microsoft YaHei UI',sans-serif;white-space:nowrap;box-shadow:0 1px 5px #00000008}.map-place-label:after{content:'';position:absolute;top:100%;left:50%;width:1px;height:8px;background:#777}.map-place-label.river{font-size:16px;letter-spacing:5px;background:transparent;border:0;box-shadow:none;color:#6e7476;text-shadow:0 1px 3px #fff;}.map-place-label.river:after,.map-place-label.road:after{display:none}.map-place-label.road{font-size:10px;color:#777;background:#ffffffc9;border:0;padding:2px 5px;box-shadow:none}.map-place-label.district{font-size:11px;color:#666}.map-entering .map-place-labels{opacity:0}@media(max-width:600px){.map-place-label{font-size:10px;padding:3px 5px}.map-place-label.river{font-size:13px}}

.map-label-leaders{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.map-label-leaders line{stroke:#8a8a8a;stroke-width:.7;opacity:.65}.map-place-label:after{display:none}

/* A single editable year axis, without a panel or filter toolbar. */
.memory-timeline.axis-only{left:8%;right:8%;bottom:28px;max-width:1080px;height:78px;padding:0;margin:auto;background:transparent;border:0;border-radius:0;box-shadow:none;backdrop-filter:none;user-select:none;-webkit-user-select:none}.axis-only .timeline-track{height:76px;margin:0;border:0;cursor:crosshair;touch-action:none}.axis-only .timeline-track:before{content:'';position:absolute;left:0;right:0;bottom:19px;height:1px;background:#8a8a8a}.axis-only .timeline-track:focus-visible{outline:1px solid #888;outline-offset:7px}.axis-only .timeline-bars{inset:18px 0 20px;pointer-events:none}.axis-only .timeline-bars i{width:2px;background:#aaa;border-radius:0}.axis-only .timeline-bars i.in-range{background:#444}.axis-only .timeline-ticks{bottom:0;height:14px;pointer-events:none}.axis-only .timeline-ticks span{font:10px/14px Arial,sans-serif;color:#777;text-shadow:0 1px 3px #fff}.axis-only .timeline-window{top:17px;bottom:20px;border:0;background:#3333330d;min-width:2px;pointer-events:none}.timeline-range-caption{position:absolute;top:0;transform:translateX(-50%);white-space:nowrap;font:11px/16px Arial,sans-serif;color:#444;text-shadow:0 1px 4px #fff;pointer-events:none}.timeline-endpoint{position:absolute;top:12px;bottom:16px;width:22px;transform:translateX(-50%);cursor:ew-resize;touch-action:none}.timeline-endpoint:before{content:'';position:absolute;left:10px;top:3px;bottom:3px;width:2px;background:#555}.timeline-endpoint:after{content:'';position:absolute;left:7px;top:3px;width:8px;height:2px;background:#555}.timeline-endpoint.same-year[data-endpoint=start]{transform:translateX(-100%)}.timeline-endpoint.same-year[data-endpoint=start]:before{left:20px}.timeline-endpoint.same-year[data-endpoint=start]:after{left:17px}.timeline-endpoint.same-year[data-endpoint=end]{transform:none}.timeline-endpoint.same-year[data-endpoint=end]:before{left:0}.timeline-endpoint.same-year[data-endpoint=end]:after{left:-3px}.timeline-endpoint:focus-visible{outline:1px solid #666;outline-offset:2px}.timeline-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}@media(max-width:600px){.memory-timeline.axis-only{left:25px;right:25px;bottom:26px;height:76px}.axis-only .timeline-ticks span{font-size:9px}.timeline-endpoint{width:28px}}

.axis-only .timeline-track[data-pointer-focus]:focus-visible,.axis-only .timeline-track[data-pointer-focus] .timeline-endpoint:focus-visible{outline:none}

.story-card .photos figure{margin:0}.story-card .photos figcaption{font-size:11px;line-height:1.65}.story-card .photos figcaption a{color:inherit;text-decoration:underline;text-underline-offset:3px}.story-evidence{font-size:12px;color:#777}
