/*! 世界历史沙盘 · © 2026 保留所有权利 All rights reserved.
 * 本文件为专有软件，未经书面许可不得复制、分发、修改或用于衍生作品。
 * 内容（疆域/朝代/事件/导览/词条）同受著作权保护。
 * build 20261031-f5ec76
 */
#controls #playBtn{
width:32px; height:32px; min-width:32px !important; min-height:32px !important; padding:0 !important;
border-radius:50%; display:inline-grid; place-items:center; font-size:12px; line-height:1;
position:relative; flex:0 0 auto;
}
#controls #playBtn::after{ content:''; position:absolute; inset:-4px; border-radius:50% }
html body.m2 #m2-time .m2-pc{ display:flex; flex-direction:column; align-items:stretch; flex:0 0 46px; width:46px; height:50px;
border-radius:14px; overflow:hidden; background:var(--s2, rgba(0,0,0,.04)); border:1px solid var(--hair, rgba(0,0,0,.14));
box-shadow:0 3px 10px var(--v-shadow, rgba(0,0,0,.18)) }
html body.m2 #m2-time .m2-pc #m2-play{ flex:1 1 auto; width:100% !important; height:auto !important; min-height:0 !important; border-radius:0 !important;
box-shadow:none !important; position:relative; padding:0 !important; display:grid; place-items:center }
html body.m2 #m2-time .m2-pc #m2-play svg{ width:13px; height:13px }
html body.m2 #m2-time .m2-pc #m2-play::after{ content:''; position:absolute; inset:0 -6px -8px }
body.m2 #m2-time{ gap:6px !important }
.rcc-btn{
display:inline-flex; align-items:center; gap:6px; height:32px; padding:0 9px 0 7px; flex:0 0 auto;
border-radius:999px; border:1px solid var(--sk-brass-border, var(--border, rgba(0,0,0,.2)));
background:var(--sk-brass, var(--panel2, rgba(255,255,255,.06))); color:var(--sk-brass-ink, var(--ink, inherit));
font:inherit; font-size:13px; font-weight:600; line-height:1; cursor:pointer; white-space:nowrap; position:relative;
}
.rcc-btn::after{ content:''; position:absolute; inset:-4px -2px }
.rcc-btn:hover{ filter:brightness(1.05) }
.rcc-btn:focus-visible{ outline:2px solid var(--accent, #c8842c); outline-offset:2px }
.rcc-flag{ width:20px; height:14px; border-radius:2px; object-fit:cover; box-shadow:0 0 0 1px rgba(0,0,0,.18); flex:0 0 auto; display:block }
.rcc-car{ font-size:9px; opacity:.7 }
.rcc-btn.rcc-m{ flex:0 0 24px; height:24px; width:100%; padding:0 0 0 2px; gap:3px; margin:0; justify-content:center;
border:0; border-bottom:1px solid var(--hair, rgba(0,0,0,.14)); border-radius:0; background:transparent; box-shadow:none }
.rcc-btn.rcc-m::after{ inset:-8px -6px 0 }
.rcc-btn.rcc-m .rcc-flag{ width:20px; height:13px; border-radius:2.5px }
.rcc-btn.rcc-m .rcc-car{ font-size:7px; opacity:.6 }
.rcc-btn.rcc-m[aria-expanded="true"]{ background:color-mix(in srgb, var(--accent, #8b5a2b) 14%, transparent) }
.rcc-btn.rcc-m .rcc-n{ display:none }
@media (min-width:600px){
html body.m2 #m2-time .m2-pc{ flex-direction:row; align-items:center; gap:10px; width:auto; height:auto; flex:0 0 auto; overflow:visible;
border:0; border-radius:0; background:transparent; box-shadow:none;
padding-right:14px; margin-right:2px; border-right:1px solid var(--hair, rgba(0,0,0,.12)) }
html body.m2 #m2-time .m2-pc #m2-play{ flex:0 0 auto; box-shadow:0 3px 10px var(--v-shadow, rgba(0,0,0,.18)) !important }
html body.m2 #m2-time .m2-pc #m2-play{ order:0; width:44px !important; height:44px !important; border-radius:50% !important }
html body.m2 #m2-time .m2-pc #m2-play svg{ width:18px; height:18px }
html body.m2 #m2-time .m2-pc #m2-play::after{ inset:-2px; border-radius:50% }
.rcc-btn.rcc-m{ order:1; flex:0 0 auto; width:auto; height:36px; padding:0 12px 0 9px; gap:7px; border-radius:999px; font-size:14px;
border:1px solid var(--sk-brass-border, var(--border, rgba(0,0,0,.2))); background:var(--sk-brass, var(--panel2, rgba(255,255,255,.06))) }
.rcc-btn.rcc-m::after{ inset:-4px -2px }
.rcc-btn.rcc-m .rcc-n{ display:inline }
.rcc-btn.rcc-m .rcc-flag{ width:22px; height:15px }
.rcc-btn.rcc-m .rcc-car{ font-size:9px }
html body.m2 #m2-time{ gap:14px !important; padding:0 16px !important }
}
#rcc-pop{
position:fixed; z-index:9600; min-width:260px; max-width:min(330px, calc(100vw - 16px)); padding:6px;
border-radius:12px; background:var(--panel, #fffdf8); color:var(--ink, #2a2521);
border:1px solid var(--border, rgba(0,0,0,.14)); box-shadow:0 14px 36px rgba(0,0,0,.32);
}
#rcc-pop{ max-height:calc(100vh - 16px); overflow-y:auto; overscroll-behavior:contain }
#rcc-pop .rcc-h{ font-size:12px; color:var(--muted, #7d7266); padding:4px 8px 6px }
#rcc-pop .rcc-opt{
display:grid; grid-template-columns:24px 1fr auto; grid-template-rows:auto auto; column-gap:10px; align-items:center;
width:100%; text-align:left; padding:8px 10px; border:0; border-radius:8px; background:transparent; color:inherit;
font:inherit; cursor:pointer; min-height:44px;
}
#rcc-pop .rcc-opt .rcc-flag{ grid-row:1 / 3; width:24px; height:16px }
#rcc-pop .rcc-opt b{ font-size:14px; font-weight:700 }
#rcc-pop .rcc-opt .rcc-d{ grid-column:2; font-size:12px; color:var(--muted, #7d7266) }
#rcc-pop .rcc-opt .rcc-ok{ grid-column:3; grid-row:1 / 3; font-style:normal; color:var(--accent, #8b5a2b); font-weight:700 }
#rcc-pop .rcc-opt:hover, #rcc-pop .rcc-opt:focus-visible{ background:var(--panel2, rgba(0,0,0,.05)); outline:none }
#rcc-pop .rcc-opt.on{ background:color-mix(in srgb, var(--accent, #8b5a2b) 12%, transparent) }
html[lang="en"]{
--en-serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, "Times New Roman", serif;
--en-sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
}
html[lang="en"] body{ font-family:var(--en-sans); hyphens:auto; -webkit-hyphens:auto; overflow-wrap:break-word }
html[lang="en"] body *:not(svg):not(svg *){ letter-spacing:normal !important }
html[lang="en"] h1, html[lang="en"] h2, html[lang="en"] h3, html[lang="en"] .sup-h, html[lang="en"] #yrText,
html[lang="en"] .wk-h, html[lang="en"] .fig-name, html[lang="en"] .tp-title{ font-family:var(--en-serif) }
html[lang="en"] #yrText, html[lang="en"] #m2-sy, html[lang="en"] .rulm-bub, html[lang="en"] .yr, html[lang="en"] [class*="year"]{ font-variant-numeric:tabular-nums }
html[lang="en"] p, html[lang="en"] li, html[lang="en"] .sup-p{ line-height:1.55 }
html[lang="en"] [style*="vertical-rl"], html[lang="en"] .vert, html[lang="en"] .v-text{ writing-mode:horizontal-tb !important; text-orientation:mixed !important }
html[lang="en"] .btn, html[lang="en"] .mini, html[lang="en"] .sup-b{ white-space:normal }
html[lang="en"] #topnav .feat-btn{ white-space:nowrap }
html[lang="en"] #regtabs button, html[lang="en"] #focusbar button{ white-space:nowrap; width:auto !important; min-width:0 !important }
html[lang="en"] #controls .ctrow{ flex-wrap:nowrap !important }
html[lang="en"] #controls .hint{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0; flex:1 1 0 }
html[lang="en"] #controls #legal-line, html[lang="en"] #controls .legal{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0 }
html[lang="en"] #rul-lab .rl, html[lang="en"] .rul-lab .rl{ font-family:var(--en-sans); font-size:11px; white-space:nowrap }
html[lang="en"] body.m2 #m2-nav button span, html[lang="en"] body.m2 #m2-nav a span{ font-size:11px; white-space:nowrap }
html[lang="en"] #dict-pop, html[lang="en"] .dict-pop{ display:none !important }
#langpick{
position:fixed; inset:0; z-index:99990; display:grid; place-items:center; padding:16px;
background:rgba(20,14,8,.32); opacity:0; transition:opacity .2s;
}
#langpick.on{ opacity:1 }
#langpick .lp-card{
width:min(380px, 100%); border-radius:16px; padding:22px 20px 16px; position:relative;
background:var(--panel, #fffdf8); color:var(--ink, #2a2521); border:1px solid var(--border, rgba(0,0,0,.14));
box-shadow:0 20px 50px rgba(0,0,0,.35); font-family:system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}
#langpick .lp-x{ position:absolute; right:8px; top:6px; width:36px; height:36px; border:0; background:transparent; color:inherit; font-size:22px; cursor:pointer; border-radius:50% }
#langpick .lp-h{ font-size:18px; font-weight:700; margin:0 28px 4px 0; line-height:1.3 }
#langpick .lp-s{ font-size:13px; color:var(--muted, #7d7266); margin:0 0 14px; line-height:1.5 }
#langpick .lp-b{
display:flex; align-items:center; justify-content:center; gap:8px; width:100%; min-height:48px; margin-top:8px;
border-radius:12px; font-size:16px; font-weight:700; cursor:pointer; border:1px solid var(--border, rgba(0,0,0,.18));
background:var(--panel2, #f3ede2); color:inherit; text-decoration:none;
}
#langpick .lp-b.pri{ background:var(--sk-on, #8b5a2b); color:var(--sk-on-ink, #fff6e6); border-color:var(--sk-on-border, #5e3a18) }
#langpick .lp-note{ font-size:11.5px; color:var(--muted, #7d7266); text-align:center; margin-top:12px }
.lang-sw{
display:inline-flex; align-items:center; gap:5px; text-decoration:none; white-space:nowrap;
font-size:13px; font-weight:700; line-height:1; color:inherit;
}
.lang-sw svg{ width:16px; height:16px; flex:0 0 auto }
#topnav .lang-sw{ order:100; padding:0 12px; height:36px; border-radius:999px; border:1px solid var(--sk-brass-border, var(--border));
background:var(--sk-brass, transparent); color:var(--sk-brass-ink, var(--ink)) }
#topnav .lang-sw:focus-visible{ outline:2px solid var(--accent); outline-offset:2px }
#langbar{
position:fixed; left:50%; top:10px; transform:translateX(-50%); z-index:99980; max-width:calc(100vw - 20px);
display:flex; align-items:center; gap:10px; padding:8px 8px 8px 14px; border-radius:999px;
background:var(--panel, #fffdf8); color:var(--ink, #2a2521); border:1px solid var(--border, rgba(0,0,0,.14));
box-shadow:0 8px 24px rgba(0,0,0,.22); font:600 13px/1.3 system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}
#langbar a{ color:var(--accent, #8b5a2b); text-decoration:none; white-space:nowrap }
#langbar button{ border:0; background:transparent; color:inherit; font-size:18px; width:32px; height:32px; cursor:pointer; border-radius:50% }
#ipx{ position:fixed; inset:0; z-index:99950; display:grid; place-items:center; padding:14px; background:rgba(16,11,6,.45) }
#ipx .ip-card{ position:relative; width:min(460px, 100%); max-height:calc(100vh - 28px); overflow:auto; border-radius:16px; padding:22px 20px 16px;
background:var(--panel, #fffdf8); color:var(--ink, #2a2521); border:1px solid var(--border, rgba(0,0,0,.14)); box-shadow:0 22px 56px rgba(0,0,0,.4) }
#ipx h3{ margin:0 30px 6px 0; font-size:19px; line-height:1.3 }
#ipx .ip-x{ position:absolute; right:8px; top:6px; width:38px; height:38px; border:0; border-radius:50%; background:transparent; color:inherit; font-size:24px; cursor:pointer }
#ipx .ip-sub, #ipx .ip-note, #ipx .ip-fine{ font-size:13px; color:var(--muted, #7d7266); line-height:1.55; margin:6px 0 12px }
#ipx .ip-hook{ font-size:13px; font-weight:700; color:var(--accent, #8b5a2b); margin-bottom:8px }
#ipx .ip-feats{ list-style:none; margin:0 0 12px; padding:0; font-size:13px; line-height:1.55 }
#ipx .ip-feats li{ margin:2px 0 }
#ipx .ip-plans{ display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:12px }
#ipx .ip-plan{ position:relative; display:flex; flex-direction:column; gap:3px; padding:12px; border-radius:12px; cursor:pointer;
border:1.5px solid var(--border, rgba(0,0,0,.18)); background:var(--panel2, #f6f0e5) }
#ipx .ip-plan input{ position:absolute; opacity:0; pointer-events:none }
#ipx .ip-plan.sel{ border-color:var(--accent, #8b5a2b); box-shadow:0 0 0 2px color-mix(in srgb, var(--accent, #8b5a2b) 30%, transparent) }
#ipx .ip-plan b{ font-size:15px }
#ipx .ip-plan .ip-p{ font-size:22px; font-weight:800 }
#ipx .ip-plan .ip-p em{ font-size:13px; font-style:normal; font-weight:600; opacity:.75 }
#ipx .ip-plan small{ font-size:11.5px; color:var(--muted, #7d7266); line-height:1.4 }
#ipx .ip-tag{ position:absolute; right:8px; top:8px; font-size:10.5px; font-weight:700; padding:2px 6px; border-radius:999px; background:var(--accent, #8b5a2b); color:var(--on-accent, #fff) }
#ipx .ip-mail{ font-size:13px; line-height:1.5; margin-bottom:10px }
#ipx .ip-em{ display:flex; gap:8px; align-items:center; margin-top:6px }
#ipx .ip-em code{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; padding:8px 10px; border-radius:8px; background:var(--panel2, #f1ebdf); font-size:14px }
#ipx .ip-copy, #ipx .ip-link{ border:0; background:transparent; color:var(--accent, #8b5a2b); font:inherit; font-size:13px; font-weight:700; cursor:pointer; padding:6px 4px; text-decoration:underline; text-underline-offset:3px }
#ipx .ip-go, #ipx .ip-big{ display:flex; flex-direction:column; align-items:center; justify-content:center; width:100%; min-height:48px; margin:8px 0 4px; border-radius:12px; cursor:pointer;
font:inherit; font-size:16px; font-weight:800; border:1px solid var(--sk-on-border, #5e3a18); background:var(--sk-on, #8b5a2b); color:var(--sk-on-ink, #fff6e6) }
#ipx .ip-big{ background:var(--panel2, #f3ede2); color:inherit; border-color:var(--border, rgba(0,0,0,.18)); padding:10px }
#ipx .ip-big.pri{ border-color:var(--accent, #8b5a2b); box-shadow:0 0 0 2px color-mix(in srgb, var(--accent, #8b5a2b) 28%, transparent) }
#ipx .ip-big small{ font-size:12px; font-weight:500; color:var(--muted, #7d7266) }
#ipx .ip-wait p, #ipx .ip-warn, #ipx .ip-msg{ font-size:13px; line-height:1.5 }
#ipx .ip-warn{ color:#b3261e }
#ipx .ip-fld{ display:flex; flex-direction:column; gap:4px; font-size:13px; margin:6px 0 }
#ipx .ip-fld input{ font:inherit; font-size:16px; padding:10px; border-radius:8px; border:1px solid var(--border, rgba(0,0,0,.2)); background:var(--sk-input, #fff); color:inherit }
@media (max-width:420px){ #ipx .ip-plans{ grid-template-columns:1fr } }
.ip-fs{ border:1px solid var(--border, rgba(0,0,0,.16)); border-radius:10px; padding:8px 10px 6px; margin:8px 0 }
.ip-fs legend{ font-size:13px; font-weight:700; padding:0 4px }
.ip-fs legend i{ font-style:normal; font-weight:500; opacity:.65; font-size:11.5px; margin-left:4px }
.ip-r{ display:flex; gap:8px; align-items:flex-start; padding:6px 4px; border-radius:8px; cursor:pointer }
.ip-r.on{ background:color-mix(in srgb, var(--accent, #8b5a2b) 10%, transparent) }
.ip-r input{ margin-top:3px }
.ip-r span{ display:flex; flex-direction:column; font-size:13px; line-height:1.35 }
.ip-r small{ font-size:11.5px; opacity:.75 }
.ip-age{ display:flex; gap:8px; align-items:flex-start; font-size:13px; margin:6px 0 2px }
.ip-acct{ font-size:13px; line-height:1.6; margin:10px 0; padding:8px 10px; border-radius:10px; background:var(--panel2, rgba(0,0,0,.04)) }
.ip-acct .ip-link{ border:0; background:transparent; color:var(--accent, #8b5a2b); font:inherit; font-weight:700; cursor:pointer; padding:2px 4px; text-decoration:underline; text-underline-offset:3px }
html[lang="en"] #side .sl-cols:not(.dual) .sl-reg{ width:7.5em; min-width:7.5em; overflow:hidden; text-overflow:ellipsis }
html[lang="en"] .sl-pol{ min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap }
@media (max-width:1600px){
html[lang="en"] #topnav{ gap:6px !important }
html[lang="en"] #topnav .feat-btn{ padding-left:10px !important; padding-right:10px !important }
html[lang="en"] #topnav .feat-btn .cnt, html[lang="en"] #topnav .feat-btn .num, html[lang="en"] #topnav .feat-btn b.n{ display:none !important }
html[lang="en"] #brandline span{ display:none }
}
@media (max-width:1280px){ html[lang="en"] #topnav .feat-btn .fl{ font-size:13px } }
html[lang="en"] #controls .ctrow > button, html[lang="en"] #controls .speed button{ white-space:nowrap }
@media (max-width:1600px){
#topnav{ gap:4px !important }
#topnav .lang-sw{ padding:0 8px; gap:4px }
}
html[lang="en"] body.m2 [role="tablist"] button, html[lang="en"] body.m2 .m2-tabs button{ font-size:13px !important; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0 }
body.m2 .m2-tr .m2-lang-btn{ display:inline-grid; place-items:center; flex:0 0 auto; width:32px; height:32px; border-radius:50%; padding:0;
background:var(--v-glass, rgba(255,250,240,.9)); border:1px solid var(--hair, #c9a878); color:var(--gold, #8b5a2b);
font-weight:800; font-size:13px; line-height:1; text-decoration:none; box-shadow:0 2px 8px rgba(0,0,0,.18);
-webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); position:relative }
body.m2 .m2-tr .m2-lang-btn::after{ content:''; position:absolute; inset:-5px -3px }
body.m2 .m2-tr .m2-lang-btn:lang(en){ font-size:12px; letter-spacing:.02em }
body.m2 .m2-tr .m2-lang-btn:focus-visible{ outline:2px solid var(--gold, #b8862e); outline-offset:2px }
html[lang="en"] #topnav .tool-badge{ display:none !important }
html[lang="en"] #morepop [data-tool]{ height:auto !important; min-height:66px; padding:8px 4px !important; overflow:hidden }
html[lang="en"] #morepop [data-tool] .fl{ white-space:normal !important; text-align:center; line-height:1.18; font-size:12px;
overflow-wrap:normal; word-break:normal; hyphens:manual; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; max-width:100% }
html[lang="en"] body.m2 [data-tool] .l, html[lang="en"] body.m2 [data-tool] .lbl{ white-space:normal; text-align:center; line-height:1.18 }
@media (max-width:1400px){
html[lang="en"] #topnav [data-tool="atlas"] .fl, html[lang="en"] #topnav [data-tool="flags"] .fl{ display:none }
}
@media (max-width:1200px){
html[lang="en"] #topnav .feat-btn.primary-tool .fl{ display:none }
html[lang="en"] #topnav #morebtn2 .fl{ display:inline }
}
html[lang="en"] .fl-eras{ overflow-x:auto !important; scrollbar-width:none; -webkit-overflow-scrolling:touch }
html[lang="en"] .fl-eras::-webkit-scrollbar{ display:none }
html[lang="en"] .fl-eras .fl-era{ flex:0 0 auto !important; min-width:0 !important; max-width:none !important; padding-left:10px; padding-right:10px }
html[lang="en"] .fl-eras .fl-era .fe-l{ overflow:visible !important; text-overflow:clip !important }
.cv-k{ overflow:hidden; text-overflow:ellipsis }
html[lang="en"] body.m2 #m2-nav button span, html[lang="en"] body.m2 #m2-nav a span{ font-size:11px !important; letter-spacing:-.1px !important }
@media (max-width:400px){ html[lang="en"] body.m2 #m2-nav button span, html[lang="en"] body.m2 #m2-nav a span{ font-size:10px !important; letter-spacing:-.2px !important } }
html[lang="en"] body.m2.m2-land #m2-nav button span, html[lang="en"] body.m2.m2-land #m2-nav a span{ font-size:11px !important }
html[lang="en"] .atv-meta{ white-space:normal !important; overflow:visible !important }
.cv-now{ display:block; overflow:hidden; text-overflow:ellipsis }
.sl-pol, .sl-king{ text-overflow:ellipsis }
@media (max-width:370px){ html[lang="en"] body.m2 #m2-nav button span, html[lang="en"] body.m2 #m2-nav a span{ font-size:9.5px !important; letter-spacing:-.3px !important } }
html[lang="en"] #topnav .feat-btn, html[lang="en"] #topnav .lang-sw{ height:34px !important; min-height:34px !important; gap:6px !important }
html[lang="en"] #topnav .feat-btn.primary-tool, html[lang="en"] #topnav #morebtn2{ padding:0 9px !important }
html[lang="en"] #topnav .feat-btn .fl, html[lang="en"] #topnav .lang-sw span{ font-size:12.5px !important }
html[lang="en"] #topnav .feat-btn svg{ width:18px !important; height:18px !important }
html[lang="en"] #topnav .feat-btn.top-coffee{ width:34px !important; padding:0 !important }
html[lang="en"][data-skin="tan"] #event::after{ content:"H" }
html[lang="en"] body.lay3.story-on .tpc .tpc-th i::before, html[lang="en"] body.m2 #tourplayer .tpc .tpc-th i::before{ content:'Scene ' }
html[lang="en"] body.lay3.story-on .tpc .tpc-th i::after, html[lang="en"] body.m2 #tourplayer .tpc .tpc-th i::after{ content:'' }
html[lang="en"] body.lay3.story-on .tp-card .tp-top #tp-close::before{ content:"⏏ Exit tour" }
html[lang="en"] body.lay3.story-on .tp-card #tp-fig[hidden]::before{ content:"No illustration for this scene yet" }
html[lang="en"] #yearev .ye-row.hot .y::after{ content:"Now" }
html[lang="en"] .fc2-life .tk em::after{ content:" yrs" }
html[lang="en"] .chips span.fig::after{ content:' · profile' }
html[lang="en"] #topnav .feat-btn.top-coffee{ width:34px !important; padding:0 !important; display:inline-grid !important; place-items:center }
html[lang="en"] #topnav .feat-btn.top-coffee .fl{ display:none }