:root{font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif;color:#493f30;background:#e8f2f4;font-synthesis:none;--accent:#b83920;--line:#e6ded0;--paper:#fffdf9}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;color:inherit;border:1px solid var(--line);border-radius:7px;background:var(--paper);padding:9px 12px}button:hover{background:#f4e9dc}button:disabled{opacity:.35;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,svg:focus-visible{outline:3px solid #be673f;outline-offset:2px}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0,0,0,0)}.topbar{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 26px;background:#faf7f1;border-bottom:1px solid #d7d1c3;position:relative;z-index:5}.brand{display:flex;gap:10px;align-items:center;color:#493f30;font-size:21px;font-weight:700}.brand:hover{text-decoration:none}.brand-icon{font-size:37px;color:var(--accent)}.brand small{display:block;font-size:9px;letter-spacing:2px;font-weight:500;margin-top:3px}.topbar nav{display:flex;align-items:center;gap:24px;font-size:13px}.topbar nav a{color:inherit}.topbar nav button{background:none;border:0;padding:8px 0}main{height:calc(100dvh - 64px);display:flex;flex-direction:column}.workspace{position:relative;flex:1;min-height:0;overflow:hidden}#map-stage{position:absolute;inset:0;background:#e8f2f4}#world-map{display:block;width:100%;height:100%;touch-action:none;cursor:grab}#world-map:active{cursor:grabbing}.sphere{fill:#e8f2f4}.graticule{fill:none;stroke:#c8dce0;stroke-width:.5;opacity:.55;pointer-events:none}.territory{stroke:#b8ad9e;stroke-width:.6;vector-effect:non-scaling-stroke;transition:fill .15s,opacity .15s;cursor:pointer}.territory:hover{fill:#f1c997;stroke:#a15b39;stroke-width:1.5}.territory.selected{fill:#eabd8c;stroke:#a72c18;stroke-width:2}.territory.dim{opacity:.25}.nine-dash-line{fill:none;stroke:#b83920;stroke-width:1.8;stroke-dasharray:7 5;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;opacity:.95;pointer-events:none}.map-label{font-weight:500;text-anchor:middle;fill:#4e4637;stroke:#fffdf8;stroke-linejoin:round;paint-order:stroke;pointer-events:none}.story-pin{cursor:pointer}.story-pin circle{fill:var(--accent);stroke:#fff;stroke-width:2}.story-pin text{fill:white;text-anchor:middle;font-size:11px;pointer-events:none}.map-toolbar{position:absolute;top:20px;left:22px;width:280px;z-index:3}.search-wrap{position:relative;box-shadow:0 3px 16px #53422a18;border-radius:9px}.search-icon{position:absolute;left:13px;top:6px;font-size:27px;color:var(--accent)}#search{width:100%;height:46px;border:1px solid #e4ddd0;border-radius:9px;padding:0 13px 0 43px;background:#fffdf9f5;font-size:13px;color:inherit}.search-results{position:absolute;top:53px;left:0;right:0;background:var(--paper);border:1px solid var(--line);border-radius:10px;max-height:48vh;overflow:auto;box-shadow:0 6px 22px #44351d25;padding:6px}.search-results button{display:block;width:100%;text-align:left;border:0;background:none}.search-results small{display:block;color:#928575;font-size:11px;margin-top:4px}.search-results p{padding:8px;font-size:13px;line-height:1.7}.mode-switch{position:absolute;top:20px;left:50%;transform:translateX(-50%);display:flex;border:1px solid var(--line);border-radius:9px;background:var(--paper);box-shadow:0 3px 16px #53422a18;padding:4px;z-index:2}.mode-switch button{border:0;background:none;font-size:12px;min-width:80px;padding:6px 11px}.mode-switch button span{display:block;font-size:21px;margin-bottom:3px}.mode-switch button[aria-pressed=true]{color:var(--accent);background:#f9e9dd}.zoom-tools{position:absolute;left:22px;bottom:54px;display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:8px;box-shadow:0 3px 16px #53422a18;overflow:hidden}.zoom-tools button{border:0;border-bottom:1px solid #eee8dd;border-radius:0;width:41px;height:40px;padding:0;font-size:22px}.zoom-tools button:last-child{border:0}.zoom-tools button[aria-pressed=false]{color:#aaa}.legend{position:absolute;bottom:54px;left:74px;display:grid;grid-template-columns:repeat(2,1fr);gap:4px;padding:8px;background:var(--paper);border:1px solid var(--line);border-radius:9px;z-index:3;box-shadow:0 3px 16px #53422a18}.legend button{font-size:12px;border:0;text-align:left}.legend i{display:none}.legend button[aria-pressed=true]{background:#f9e9dd;color:var(--accent)}.map-caption{position:absolute;bottom:16px;left:22px;font-size:11px;background:#fffdf9dd;border-radius:5px;padding:6px 9px;pointer-events:none}.dot{display:inline-block;width:6px;height:6px;background:var(--accent);border-radius:50%;margin-right:7px}.map-help{position:absolute;bottom:21px;left:50%;transform:translateX(-50%);font-size:11px;color:#7d827b;white-space:nowrap;pointer-events:none}#tooltip{position:absolute;pointer-events:none;z-index:5;background:#fffdf9;padding:8px 12px;box-shadow:0 3px 15px #44351d20;border-radius:6px;font-size:13px}#loading{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);pointer-events:none}#loading span{background:#fffdf9ec;padding:12px 20px;border-radius:8px;box-shadow:0 3px 16px #53422a18;font-size:13px}#map-error{position:absolute;top:40%;left:50%;transform:translate(-50%,-50%);background:var(--paper);padding:20px;border-radius:12px;text-align:center}.detail-panel,.comparison{position:absolute;right:18px;top:20px;bottom:48px;width:330px;overflow:auto;background:#fffdf9f5;border:1px solid var(--line);border-radius:11px;box-shadow:0 5px 24px #47381d20;padding:21px;z-index:4;overscroll-behavior:contain}.detail-toggle{position:absolute;right:0;top:46%;z-index:5;border-radius:8px 0 0 8px;box-shadow:0 3px 14px #44351d15;padding:13px 8px;font-size:12px}.detail-open .detail-toggle{right:348px}.detail-heading,.section-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.detail-heading{font-size:11px;letter-spacing:1px;color:#9b7550}.detail-heading button{font-size:12px;border:0;padding:5px}.detail-panel h2{font-size:25px;margin:16px 0 9px}.detail-panel p{font-size:13px;color:#7c7163;line-height:1.85}.native-name{margin:0 0 12px}.detail-tag{display:inline-block;background:#f4ebde;color:#926841;border-radius:4px;font-size:11px;padding:6px 8px}.detail-panel dl{font-size:12px;margin:20px 0}.detail-panel dt{color:#9b8d7c;margin-top:12px}.detail-panel dd{margin:5px 0;line-height:1.6}.detail-panel a{font-size:12px}.prompt{margin-top:22px;border-top:1px solid var(--line);padding-top:14px}.prompt p{color:#96613a}.guide{margin-top:20px}.guide h3{font-size:13px}.story-button{width:100%;text-align:left;font-size:12px;margin-bottom:7px}.story-button small{display:block;color:#9c8e7b;margin-top:6px;font-size:10px}.region-detail-list{display:flex;flex-wrap:wrap;gap:5px}.region-detail-list button{font-size:11px}.comparison{width:360px}.section-heading h2{font-size:17px}.section-heading button{border:0}.region-card{border-top:1px solid var(--line);padding:13px 0}.region-card h3{font-size:13px;display:flex;justify-content:space-between;margin:0 0 8px}.region-card h3 button{border:0;padding:0;font-size:11px;color:var(--accent)}.polity{font-size:11px;margin:3px;padding:6px}.region-card>small{display:block;font-size:10px;color:#9b8d7c;margin-top:8px}.time-panel{flex:none;background:#fffdf9;border-top:1px solid #d8d5c9;position:relative;z-index:6;padding:10px 25px 8px}.time-top{display:flex;align-items:center;justify-content:space-between;gap:15px;height:40px}.transport{display:flex;gap:4px}.transport button{padding:7px 10px;font-size:12px}.transport #play{min-width:75px}.time-top button{font-size:12px}.time-top #year-form{display:flex;gap:4px;margin-right:auto}.time-top input{width:83px;border:1px solid var(--line);border-radius:6px;padding:7px;font-size:12px;background:#faf7f1}.year-display{position:absolute;left:50%;transform:translateX(-50%);text-align:center;pointer-events:none;top:-64px;background:var(--accent);color:white;border-radius:8px;padding:9px 22px;box-shadow:0 3px 10px #6121122a;min-width:130px}.year-display strong{display:block;font-size:25px;font-weight:600}.year-display span{font-size:10px;opacity:.8}.time-options{display:flex;gap:5px}.ruler-wrap{height:62px}#timeline-ruler{display:block;width:100%;height:62px;touch-action:none;cursor:ew-resize;user-select:none}#timeline-ruler text{fill:#82735d;font-size:12px}.ruler-line,.ruler-tick{stroke:#b8ae99;stroke-width:1}.ruler-cursor{fill:var(--accent);stroke:#fffdf9;stroke-width:4}.time-bottom{display:flex;align-items:center;justify-content:space-between;gap:15px}.era-buttons{display:flex;gap:4px;flex-wrap:wrap}.era-buttons button{border:0;padding:4px 8px;font-size:11px;background:transparent;color:#8c806c}.era-buttons button.active{color:var(--accent);background:#faece2}.time-bottom p{font-size:10px;color:#9b8d7c;margin:0;max-width:370px;line-height:1.5}.attribution{position:fixed;right:10px;bottom:2px;font-size:8px;color:#9b8d7c;z-index:7;display:none}dialog{border:1px solid var(--line);border-radius:14px;max-width:650px;width:calc(100% - 32px);max-height:85dvh;overflow:auto;padding:28px;background:var(--paper);color:inherit}dialog::backdrop{background:#2e291b66}dialog h2{font-size:21px}dialog h3{font-size:15px}dialog p,dialog li{font-size:13px;line-height:1.9}dialog button{float:right}
@media(min-width:1800px){.map-toolbar{width:330px}.detail-panel{width:370px}.detail-open .detail-toggle{right:388px}}
@media(max-width:1050px){.map-toolbar{width:235px}.mode-switch{left:auto;right:22px;transform:none}.map-help{display:none}.time-bottom{display:block}.time-bottom p{max-width:none;margin:6px 0 0}.detail-panel{top:95px}.comparison{top:95px}.year-display{top:-64px}.time-panel{padding:8px 16px}.time-options button{padding:7px}.topbar{padding:0 20px}}
@media(max-width:600px){.topbar{height:54px;padding:0 14px}.brand{font-size:17px;gap:5px}.brand-icon{font-size:28px}.brand small{font-size:7px;letter-spacing:1px}.topbar nav{gap:12px;font-size:11px}.topbar nav a:first-child{display:none}.topbar nav button{font-size:11px}main{height:calc(100dvh - 54px)}.map-toolbar{top:12px;left:12px;right:12px;width:auto}.mode-switch{top:66px;right:12px}.mode-switch button{min-width:66px;padding:5px 7px;font-size:11px}.mode-switch button span{font-size:17px}.zoom-tools{left:12px;bottom:40px}.zoom-tools button{width:35px;height:34px;font-size:19px}.map-caption{left:12px;bottom:10px;font-size:9px}.legend{left:54px;bottom:40px}.detail-panel,.comparison{top:130px;bottom:40px;right:12px;width:min(300px,calc(100% - 65px));padding:16px}.detail-open .detail-toggle{right:calc(min(300px,100% - 65px) + 12px)}.detail-panel h2{font-size:21px}.detail-toggle{font-size:10px;padding:12px 6px}.time-panel{padding:8px 10px 7px}.time-top{gap:5px;height:34px}.transport{gap:2px}.transport button{padding:7px;font-size:10px}.transport #play{min-width:58px}.time-top #year-form{gap:2px;margin:0}.time-top input{width:62px;padding:6px;font-size:11px}.time-top #year-form button{padding:6px;font-size:10px}.time-options{margin-left:auto;gap:2px}.time-options button{padding:6px;font-size:10px}.time-options #share{display:none}.year-display{top:-59px;padding:7px 15px;min-width:115px}.year-display strong{font-size:22px}.era-buttons{gap:0;justify-content:space-between}.era-buttons button{font-size:9px;padding:4px}.time-bottom p{font-size:9px;min-height:27px;margin:4px 0 0}#timeline-ruler text{font-size:11px}.ruler-wrap,#timeline-ruler{height:55px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
