:root{--bg: #F6F7FA;--surface: #FFFFFF;--panel: #FFFFFF;--lane-band: #F0F2F7;--chip: #E6EAF2;--line: #D5DAE5;--line-strong: #8792AB;--text: #141A28;--text-2: #3A455E;--muted: #55607A;--ruler: #8F5A00;--thinker: #1B64C0;--religion: #B32873;--artist: #0C7049;--other: #4A5670;--accent: #141A28;--accent-text: #FFFFFF;--focus: #1B64C0;--font-head: "Space Grotesk", "Inter", system-ui, sans-serif;--font: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;color-scheme:light}:root[data-theme=dark]{--bg: #0F1522;--surface: #131A2A;--panel: #161D2E;--lane-band: #161E30;--chip: #222C44;--line: #26304A;--line-strong: #3A4666;--text: #EEF1F7;--text-2: #C9D2E3;--muted: #A3AEC4;--ruler: #F0B441;--thinker: #6FB6FF;--religion: #F08FC0;--artist: #5ED6A4;--other: #AAB4C8;--accent: #EEF1F7;--accent-text: #0F1522;--focus: #6FB6FF;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.4;-webkit-font-smoothing:antialiased}button,input{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.topbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 24px;border-bottom:1px solid var(--line);background:var(--bg);position:sticky;top:0;z-index:10}.brand{font-family:var(--font-head);font-weight:700;font-size:20px;margin:0 8px 0 0;letter-spacing:-.02em;display:flex;align-items:center;gap:8px;white-space:nowrap}.brand img{display:block;flex:none}.search{position:relative;flex:1 1 160px;max-width:300px}.search input{width:100%;padding:9px 14px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface)}.search ul{position:absolute;top:calc(100% + 4px);left:0;right:0;margin:0;padding:4px;list-style:none;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px #0000001f;z-index:20}.search li button{display:flex;align-items:baseline;gap:8px;width:100%;padding:7px 10px;border:0;border-radius:6px;background:none;text-align:left}.search li button[aria-selected=true],.search li button:hover{background:var(--chip)}.search small{color:var(--muted);margin-left:auto;white-space:nowrap}.pill{display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface);white-space:nowrap}.pill[aria-pressed=false]{opacity:.45}.dot{width:9px;height:9px;border-radius:50%;flex:none}.dot.diamond{border-radius:1px;transform:rotate(45deg) scale(.85)}.dot.bar{width:14px;height:7px;border-radius:2px}.toggles{display:flex;gap:6px;flex-wrap:wrap}.spacer{flex:1}.readout{text-align:right;line-height:1.2}.readout strong{font-family:var(--font-head);font-size:17px;display:block}.readout span{color:var(--muted);font-size:13px}.btn{padding:8px 14px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);min-width:40px}.page{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:24px;padding:20px 24px 32px;align-items:start}@media(max-width:1100px){.page{grid-template-columns:minmax(0,1fr)}}@media(max-width:640px){.topbar,.page{padding-left:16px;padding-right:16px}}.controls{display:grid;gap:12px;margin-bottom:16px}.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.row-label{font-weight:600;width:92px;flex:none}.seg{padding:8px 16px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface)}.seg .count{font-size:12px;opacity:.7;margin-left:2px}.seg[aria-pressed=true]{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.seg:disabled{opacity:.5;cursor:not-allowed}.note{color:var(--muted);font-size:13px;margin-left:8px}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{display:inline-flex;flex-direction:column;align-items:center;padding:5px 14px;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface);line-height:1.2}.chip small{color:var(--muted);font-size:12px}.chip[aria-pressed=true]{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.chip[aria-pressed=true] small{color:inherit;opacity:.8}.card{background:var(--surface);border:1px solid var(--line);border-radius:14px}.timeline-card{padding:8px 0;overflow:hidden;position:relative}.timeline-card canvas{display:block;touch-action:none}.legend{display:flex;gap:20px;flex-wrap:wrap;align-items:center;color:var(--text-2);font-size:13px;margin:12px 0 16px}.legend .swatch{display:inline-block;width:28px;height:8px;border-radius:4px;background:var(--text-2);margin-right:8px;vertical-align:middle}.legend .swatch.faded{opacity:.4}.legend .right{margin-left:auto;color:var(--muted)}.worldmap{padding:14px 16px 10px;margin-bottom:16px}.worldmap header{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:13px;margin-bottom:8px}.worldmap header strong{font-family:var(--font-head);font-size:17px}.worldmap header span{color:var(--muted)}.map-wrap{position:relative}.map-wrap canvas{display:block;width:100%;touch-action:none;border-radius:8px}.map-tip{position:absolute;pointer-events:none;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:4px 8px;font-size:12px;white-space:nowrap;box-shadow:0 4px 12px #0000001f}.map-credit{font-size:12px;color:var(--muted);margin:8px 0 0}.map-credit a{color:inherit}.minimap{padding:14px 16px 10px}.minimap header{display:flex;justify-content:space-between;font-size:13px;margin-bottom:8px}.minimap header strong{font-weight:600}.minimap header span{color:var(--muted)}.minimap canvas{display:block;width:100%;cursor:pointer;touch-action:none}.loading{padding:80px 24px;text-align:center;color:var(--muted)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px;position:sticky;top:84px;max-height:calc(100vh - 100px);overflow-y:auto}@media(max-width:1100px){.panel{position:static;max-height:none}}.panel .domain{display:flex;align-items:center;gap:8px;font-weight:600;font-size:13px}.panel h2{font-family:var(--font-head);font-size:32px;line-height:1.1;margin:10px 0 8px;letter-spacing:-.01em}.panel .role{color:var(--text-2);font-size:16px;margin:0 0 16px}.panel .head{display:flex;gap:14px;align-items:flex-start}.panel .head>div{flex:1;min-width:0}.panel .portrait-fig{margin:30px 0 0;flex:none;text-align:center}.panel .portrait{display:block;width:76px;height:76px;object-fit:cover;border-radius:10px;background:var(--chip)}.panel .portrait-fig figcaption{font-size:11px;margin-top:4px}.panel .portrait-fig a{color:var(--muted)}.panel .bio{font-size:15px;line-height:1.55;margin:0 0 18px}.panel .bio.muted{color:var(--muted)}.panel hr{border:0;border-top:1px solid var(--line);margin:18px 0}.facts{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}.facts dt{color:var(--muted);font-size:13px}.facts dd{margin:2px 0 0;font-weight:600;font-size:16px}.facts dd small{display:block;font-weight:400;color:var(--muted);font-size:13px}.datenote{background:var(--chip);border-radius:8px;padding:10px 12px;font-size:13px;color:var(--text-2);margin-top:14px}.panel h3{font-size:15px;color:var(--text-2);margin:0 0 8px}.contemps{list-style:none;margin:0;padding:0}.contemps li+li{border-top:1px solid var(--line)}.contemps button{display:flex;align-items:center;gap:10px;width:100%;padding:9px 0;border:0;background:none;text-align:left;font-size:15px}.contemps button:hover span.name{text-decoration:underline}.contemps small{margin-left:auto;color:var(--muted);font-size:13px;white-space:nowrap}.linkbtn{border:0;background:none;padding:6px 0;color:var(--thinker);font-weight:500}.linkbtn.inline{padding:0;font:inherit;text-align:left}.linkbtn.close{margin-left:auto;padding:0 4px;font-size:22px;line-height:1;color:var(--muted)}.panel .inventions-of{list-style:none;margin:0;padding:0;display:grid;gap:4px}.panel .inventions-of button{display:flex;align-items:center;gap:8px;border:0;background:none;padding:4px 0;color:var(--text);font:inherit;text-align:left}.panel .inventions-of small{color:var(--muted)}.wiki{display:inline-block;margin-top:18px;color:var(--thinker);font-weight:500}.empty{color:var(--muted)}@media(max-width:520px){.topbar{padding:12px 16px}.topbar .search,.topbar .toggles{flex-basis:100%;max-width:none}}
