@import"https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;600;700&family=Spectral:ital,wght@0,300;0,400;0,600;1,400&family=IBM+Plex+Mono:wght@400;500&display=swap";:root{--paper: #ede3d2;--paper-2: #e3d7c2;--paper-sunk: #d8cab2;--ink: #1a1714;--ink-2: #4a423a;--ink-3: #7a6e60;--imperial: #8c1f1b;--imperial-deep: #5e1210;--gold: #b08d4f;--gold-soft: #d8c193;--jade: #4a6b5c;--indigo: #2c3a57;--rust: #a65a2e;--serif: "Spectral", Georgia, serif;--cjk: "Noto Serif SC", "Songti SC", serif;--mono: "IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:#14110e;color:var(--ink);font-family:var(--serif);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}.paper{background:radial-gradient(ellipse at 20% 0%,rgba(255,255,255,.5),transparent 60%),linear-gradient(180deg,var(--paper) 0%,var(--paper-2) 100%);position:relative}.paper:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.055;background-image:repeating-linear-gradient(0deg,rgba(0,0,0,.6) 0 1px,transparent 1px 3px),repeating-linear-gradient(90deg,rgba(0,0,0,.4) 0 1px,transparent 1px 4px);mix-blend-mode:multiply}.zh{font-family:var(--cjk)}html[lang=zh] body{font-family:var(--cjk);line-height:1.75}html[lang=zh] button{font-family:var(--cjk);letter-spacing:.04em}html[lang=zh] button.primary{letter-spacing:.16em;text-transform:none;font-size:14px}html[lang=zh] .label{letter-spacing:.18em;font-family:var(--cjk)}html[lang=zh] .sheet h2,html[lang=zh] .sheet h3{font-family:var(--cjk)}html[lang=zh] .card h4{font-family:var(--cjk);letter-spacing:.02em}html[lang=zh] .chron-item p{line-height:1.8}html[lang=zh] .mono{font-family:var(--mono)}html[lang=zh] .card .flavor{font-style:normal}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}button{font-family:var(--serif);font-size:14px;color:var(--ink);background:var(--paper-2);border:1px solid rgba(26,23,20,.35);padding:8px 14px;cursor:pointer;transition:background .12s,border-color .12s,transform 80ms}button:hover:not(:disabled){background:var(--gold-soft);border-color:var(--gold)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.42;cursor:not-allowed}button.primary{background:var(--imperial);color:var(--paper);border-color:var(--imperial-deep);letter-spacing:.08em;text-transform:uppercase;font-size:13px;padding:11px 18px}button.primary:hover:not(:disabled){background:var(--imperial-deep);border-color:var(--ink);color:var(--paper)}hr.rule{border:0;border-top:1px solid rgba(26,23,20,.22);margin:12px 0}.label{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);font-weight:600}.app{height:100%;display:flex;flex-direction:column;overflow:hidden}.ledger-bar{display:flex;align-items:center;gap:16px;padding:10px 18px;border-bottom:2px solid var(--ink);background:linear-gradient(180deg,var(--paper) 0%,var(--paper-sunk) 100%);flex:0 0 auto;flex-wrap:wrap}.ledger-bar .title{font-size:19px;font-weight:600;letter-spacing:.02em}.ledger-bar .era{font-size:15px;color:var(--imperial)}.ledger-bar .spacer{flex:1}.court{flex:1;min-height:0;display:grid;grid-template-columns:290px minmax(0,1fr) 360px;gap:0}.col{overflow-y:auto;padding:14px 16px}.col.left{border-right:1px solid rgba(26,23,20,.25)}.col.right{border-left:1px solid rgba(26,23,20,.25);background:#d8cab259}.col.center{display:flex;flex-direction:column;padding:0;overflow:hidden}@media (max-width: 1100px){.court{grid-template-columns:1fr;grid-template-rows:auto minmax(280px,1fr) auto}.col.left,.col.right{border:0;border-top:1px solid rgba(26,23,20,.25);max-height:40vh}}.metric{margin-bottom:11px}.metric .row{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.metric .name{font-size:13px}.metric .name .zh{color:var(--ink-3);font-size:12px;margin-left:5px}.metric .val{font-family:var(--mono);font-size:15px;font-weight:500}.metric .bar{height:5px;background:#1a171424;margin-top:4px;position:relative}.metric .bar i{position:absolute;left:0;top:0;bottom:0;background:var(--ink-2)}.delta{font-family:var(--mono);font-size:12px}.delta.up{color:var(--jade)}.delta.down{color:var(--rust)}.tech-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 10px;font-size:12px}.tech-grid .t{display:flex;justify-content:space-between;gap:6px}.tech-grid .t b{font-family:var(--mono);font-weight:500}.faction{display:flex;align-items:center;gap:6px;font-size:12px;margin-bottom:3px}.faction .fbar{flex:1;height:4px;background:#1a171424}.faction .fbar i{display:block;height:100%;background:var(--imperial)}.map-wrap{flex:1;min-height:0;position:relative;background:var(--paper-sunk)}.map-wrap svg{width:100%;height:100%;display:block}.region{cursor:pointer}.region:hover{filter:brightness(1.06)}.decisions{flex:0 0 auto;border-top:1px solid rgba(26,23,20,.25);padding:12px 16px 14px;background:linear-gradient(180deg,#ede3d2e6,#d8cab2e6);max-height:46vh;overflow-y:auto}.dec-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px;margin-top:8px}.card{border:1px solid rgba(26,23,20,.3);background:var(--paper);padding:11px 12px;cursor:pointer;position:relative;transition:border-color .12s,box-shadow .12s}.card:hover{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold-soft)}.card.sel{border-color:var(--imperial);box-shadow:inset 0 0 0 2px var(--imperial)}.card .cat{font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--imperial);font-weight:600}.card h4{margin:3px 0 2px;font-size:15px;font-weight:600}.card .zh{font-family:var(--cjk);font-size:13px;color:var(--ink-2)}.card .flavor{font-size:12.5px;font-style:italic;color:var(--ink-2);margin-top:6px;line-height:1.5}.card .tradeoff{font-size:11.5px;margin-top:7px}.card .tradeoff .up{color:var(--jade)}.card .tradeoff .dn{color:var(--rust)}.card .cost{font-family:var(--mono);font-size:11px;color:var(--ink-3);margin-top:5px}.chron-item{border-left:2px solid rgba(26,23,20,.2);padding:0 0 12px 12px;position:relative;margin-left:5px}.chron-item:before{content:"";position:absolute;left:-5px;top:5px;width:8px;height:8px;border-radius:50%;background:var(--ink-3)}.chron-item.k-decision:before{background:var(--imperial);width:10px;height:10px;left:-6px}.chron-item.k-event:before{background:var(--ink);transform:rotate(45deg);border-radius:0}.chron-item.k-battle:before{background:var(--rust);width:10px;height:10px;left:-6px}.chron-item.k-ai:before{background:var(--indigo)}.chron-item.k-avoided:before{background:transparent;border:1px dashed var(--ink-3)}.chron-item .yr{font-family:var(--mono);font-size:11px;color:var(--ink-3)}.chron-item h5{margin:1px 0 2px;font-size:13.5px;font-weight:600}.chron-item p{margin:0;font-size:12.5px;color:var(--ink-2);line-height:1.55}.chron-item.m5 h5{font-size:15px}.chron-item.m5 p{color:var(--ink)}.rel-matrix{width:100%;border-collapse:collapse;font-size:11px}.rel-matrix th,.rel-matrix td{padding:3px 4px;text-align:center}.rel-matrix th{font-weight:400;color:var(--ink-3);font-size:10px}.rel-cell{width:26px;height:22px;display:inline-block;line-height:22px;font-family:var(--mono);cursor:default}.battle{position:relative;flex:1;min-height:0;display:flex}.battle canvas{flex:1;display:block;width:100%;height:100%;touch-action:none}.b-panel{position:absolute;background:#ede3d2f0;border:1px solid var(--ink);padding:10px 12px;box-shadow:0 4px 18px #00000059}.rail{left:12px;top:12px;width:196px;max-height:calc(100% - 24px);overflow-y:auto}.rail .ru{display:flex;align-items:center;gap:7px;padding:3px 0;font-size:11.5px;border-bottom:1px solid rgba(26,23,20,.1)}.rail .ru .pip{width:9px;height:9px;flex:0 0 auto}.rail .ru.now{background:#b08d4f52;font-weight:600}.inspector{right:12px;top:12px;width:250px}.inspector .bar{height:6px;background:#1a171426;margin:3px 0 7px}.inspector .bar i{display:block;height:100%}.actions-bar{left:50%;transform:translate(-50%);bottom:12px;display:flex;gap:6px;align-items:center;flex-wrap:wrap;max-width:min(760px,92vw);justify-content:center}.actions-bar button{padding:7px 11px;font-size:12.5px}.actions-bar button.on{background:var(--imperial);color:var(--paper);border-color:var(--imperial-deep)}.b-log{left:12px;bottom:12px;width:340px;max-height:190px;overflow-y:auto;font-size:11.5px;line-height:1.45}.b-log .l-hit{color:var(--imperial-deep)}.b-log .l-rout{color:var(--rust);font-weight:600}.b-log .l-objective{color:var(--indigo);font-weight:600}.b-obj{right:12px;bottom:12px;width:250px;font-size:12px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#14110ed1;display:flex;align-items:center;justify-content:center;padding:24px;z-index:40;overflow-y:auto}.sheet{max-width:780px;width:100%;max-height:88vh;overflow-y:auto;border:2px solid var(--ink);padding:26px 30px}.sheet h2{margin:0 0 4px;font-size:26px;font-weight:600}.sheet h3{margin:18px 0 6px;font-size:15px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:600}.seal{display:inline-block;border:2px solid var(--imperial);color:var(--imperial);padding:5px 9px;font-family:var(--cjk);font-size:17px;transform:rotate(-3deg);letter-spacing:.06em}.menu-list{display:grid;gap:8px;margin-top:10px}.menu-row{display:flex;align-items:center;gap:10px;border:1px solid rgba(26,23,20,.3);padding:9px 12px;background:var(--paper)}.menu-row .spacer{flex:1}.prov{font-size:12px;border-left:2px solid var(--gold);padding-left:9px;margin-bottom:7px}.prov b{font-family:var(--mono);font-weight:500;font-size:11px;color:var(--ink-3)}.eff-line{font-size:12.5px;color:var(--ink-2);padding:3px 0 3px 10px;border-left:1px solid rgba(26,23,20,.18);margin-bottom:2px}.eff-line.m4,.eff-line.m5{color:var(--ink);border-left-color:var(--imperial)}.toast{position:fixed;bottom:18px;left:50%;transform:translate(-50%);background:var(--ink);color:var(--paper);padding:10px 16px;font-size:13px;z-index:60;border:1px solid var(--gold)}.scroll-thin::-webkit-scrollbar{width:8px;height:8px}.scroll-thin::-webkit-scrollbar-thumb{background:#1a171447}.scroll-thin::-webkit-scrollbar-track{background:transparent}.mandate{margin-bottom:4px}.goal{margin-bottom:9px}.goal-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.goal-name{font-size:12.5px;font-weight:600}.goal.met .goal-name{color:var(--jade)}.goal-val{font-size:11px;color:var(--ink-3)}.goal-bar{height:6px;background:#1a171421;margin-top:3px}.goal-bar i{display:block;height:100%;background:var(--gold);transition:width .4s ease-out}.goal.met .goal-bar i{background:var(--jade)}.goal-detail{font-size:10.5px;color:var(--ink-3);margin-top:2px;line-height:1.4}.threat{margin-bottom:8px}.threat-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:12px}.threat-head .mono{font-size:11px}.threat-bar{height:5px;background:#1a171421;margin-top:3px}.threat-bar i{display:block;height:100%;background:var(--ink-3);transition:width .4s ease-out}.threat.near .threat-bar i{background:var(--rust)}.threat.imminent .threat-bar i{background:var(--imperial)}.threat.imminent .threat-head{color:var(--imperial);font-weight:600}.threat.battle-odds .threat-head{color:var(--indigo);font-weight:600}.threat.battle-odds .threat-bar i{background:var(--indigo)}.threat-why{font-size:10.5px;color:var(--ink-3);margin-top:2px;line-height:1.4}.advice{margin-top:12px;padding:9px 11px;border:1px solid var(--gold);background:#d8c19347;font-size:12.5px;line-height:1.55}.advice-mark{color:var(--imperial);font-weight:700;margin-right:4px}.mdelta{font-family:var(--mono);font-size:11px;margin-left:6px}.mdelta.up{color:var(--jade)}.mdelta.down{color:var(--rust)}.rank-line{font-size:34px;font-weight:600;color:var(--imperial);margin:6px 0 2px}.score-line{font-family:var(--mono);font-size:15px;color:var(--ink-2)}.goal-result{display:flex;justify-content:space-between;gap:10px;padding:5px 0;border-bottom:1px solid rgba(26,23,20,.14);font-size:13px}.goal-result .ok{color:var(--jade);font-weight:600}.goal-result .no{color:var(--rust)}.float-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.float{position:absolute;transform:translate(-50%,-50%);font-family:var(--mono);font-weight:600;font-size:20px;text-shadow:0 1px 0 rgba(0,0,0,.75),0 0 10px rgba(0,0,0,.5);animation:floatUp 1.15s ease-out forwards;white-space:nowrap}.float.f-dmg{color:#ff8a7a;font-size:24px}.float.f-coh{color:#ffd27a;font-size:18px}.float.f-miss{color:#cfd6dc;font-size:16px;opacity:.9}.float.f-rout{color:#ff5f4d;font-size:22px;letter-spacing:.12em}.float.f-support{color:#8fe0b4;font-size:22px}.float.f-heal{color:#8fe0b4}@keyframes floatUp{0%{opacity:0;transform:translate(-50%,-20%) scale(.7)}18%{opacity:1;transform:translate(-50%,-70%) scale(1.15)}35%{transform:translate(-50%,-85%) scale(1)}to{opacity:0;transform:translate(-50%,-190%) scale(.95)}}.turn-banner{position:absolute;top:14px;left:50%;transform:translate(-50%);display:flex;align-items:baseline;gap:10px;padding:7px 20px;background:#1a1714db;border-left:4px solid var(--imperial);color:var(--paper);animation:bannerIn 2.1s ease-out forwards;pointer-events:none}.turn-banner.enemy{border-left-color:var(--indigo)}.turn-banner .tb-side{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-soft)}.turn-banner .tb-name{font-size:17px;font-weight:600}@keyframes bannerIn{0%{opacity:0;transform:translate(-50%) translateY(-16px)}10%{opacity:1;transform:translate(-50%) translateY(0)}75%{opacity:1}to{opacity:0;transform:translate(-50%) translateY(-8px)}}.actions-bar.busy{opacity:.42;pointer-events:none;filter:saturate(.5)}.actions-bar button{transition:transform 90ms,background .12s}.actions-bar button.on{transform:translateY(-2px);box-shadow:0 3px 0 var(--imperial-deep)}.speed-row{display:flex;align-items:center;gap:4px;margin-bottom:5px}.speed-row button.sp{padding:1px 6px;font-size:11px;font-family:var(--mono)}.speed-row button.sp.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}.rail .ru{transition:background .2s}.rail .ru.now{animation:railPulse .5s ease-out}@keyframes railPulse{0%{background:var(--gold)}to{background:#b08d4f52}}.overlay{animation:overlayIn .18s ease-out}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}.overlay .sheet{animation:sheetIn .32s cubic-bezier(.2,.9,.3,1.05)}@keyframes sheetIn{0%{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:none}}.eff-line{animation:lineIn .3s ease-out both}.eff-line:nth-child(1){animation-delay:40ms}.eff-line:nth-child(2){animation-delay:90ms}.eff-line:nth-child(3){animation-delay:.14s}.eff-line:nth-child(4){animation-delay:.19s}.eff-line:nth-child(5){animation-delay:.24s}.eff-line:nth-child(6){animation-delay:.29s}.eff-line:nth-child(7){animation-delay:.34s}.eff-line:nth-child(8){animation-delay:.39s}.eff-line:nth-child(n+9){animation-delay:.44s}@keyframes lineIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:none}}.sheet h2{animation:lineIn .34s ease-out both;animation-delay:60ms}.rank-line{animation:stampIn .52s cubic-bezier(.2,.9,.3,1.25) both}@keyframes stampIn{0%{opacity:0;transform:scale(1.5) rotate(-4deg)}60%{opacity:1;transform:scale(.96) rotate(.5deg)}to{opacity:1;transform:none}}.mdelta{animation:deltaIn .42s ease-out both}@keyframes deltaIn{0%{opacity:0;transform:translateY(-6px) scale(1.3)}to{opacity:1;transform:none}}.metric .bar i,.faction .fbar i{transition:width .52s cubic-bezier(.3,.8,.3,1)}.card{transition:border-color .12s,box-shadow .12s,transform .11s}.card:hover,.card.sel{transform:translateY(-2px)}.card.sel:after{content:"✓";position:absolute;top:6px;right:9px;color:var(--imperial);font-size:15px;font-weight:700;animation:stampIn .3s cubic-bezier(.2,.9,.3,1.3) both}button.primary{position:relative;overflow:hidden}button.primary:active:not(:disabled){transform:translateY(2px)}.chron-item:first-child{animation:lineIn .42s ease-out both}@media (prefers-reduced-motion: reduce){.overlay,.overlay .sheet,.eff-line,.sheet h2,.rank-line,.mdelta,.chron-item:first-child,.float,.turn-banner{animation:none!important}.metric .bar i,.faction .fbar i,.card{transition:none!important}}
