:root{--bg:#0b0f1e;--card:#131a30;--line:#24305a;--tx:#e8ecf8;--mut:#8f9bc0;--gold:#f2b84b;--cy:#6fd3ff;--h:#d9a77a;--f:#9ccc65;--w:#ffb74d;--k:#6fd3ff;--red:#ff6b5a}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%;background:var(--bg);color:var(--tx);font:15px/1.35 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;overscroll-behavior:none}
body{user-select:none;-webkit-user-select:none}
#app{max-width:560px;margin:0 auto;height:100%;display:flex;flex-direction:column}
#stage{position:relative;height:42vh;min-height:230px;max-height:420px;flex:none;overflow:hidden}
#world{position:absolute;inset:0;width:100%;height:100%;display:block}
#hud{position:absolute;left:0;right:0;top:0;display:flex;justify-content:space-between;padding:calc(10px + env(safe-area-inset-top)) 14px 0;pointer-events:none;text-shadow:0 1px 3px #000c,0 0 10px #0009}
.hl,.hr{display:flex;flex-direction:column;gap:1px}
.hr{align-items:flex-end;text-align:right}
.big{font-size:26px;font-weight:700;letter-spacing:.2px;font-variant-numeric:tabular-nums}
.sm{font-size:13px;color:#d6ddf3;font-variant-numeric:tabular-nums}
.sci{color:var(--cy)}
.kk{font-size:18px;font-weight:700;color:var(--gold)}
.era{font-size:12px;text-transform:uppercase;letter-spacing:1.5px;color:var(--gold)}
.eb{width:110px;height:3px;background:#ffffff26;border-radius:2px;margin-top:3px;overflow:hidden}
.eb i{display:block;height:100%;background:var(--gold)}
#anarchy{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#a32a1fcc;padding:6px 12px;border-radius:8px;font-weight:600}
#tapBtn{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);border:1px solid #f2b84b88;background:radial-gradient(circle at 50% 30%,#3a2a10e6,#1a1308e6);color:var(--tx);border-radius:28px;padding:9px 22px;display:flex;flex-direction:column;align-items:center;min-width:170px;font:inherit;cursor:pointer;box-shadow:0 0 22px #f2b84b33;touch-action:manipulation}
#tapBtn span{font-size:13px;color:#f5d9a3}
#tapBtn b{font-size:16px;color:var(--gold)}
#tapBtn.hit{animation:hit .18s}
@keyframes hit{50%{transform:translateX(-50%) scale(.94)}}
.float{position:absolute;bottom:70px;color:var(--gold);font-weight:700;pointer-events:none;animation:up .9s ease-out forwards;text-shadow:0 1px 3px #000}
@keyframes up{to{transform:translateY(-60px);opacity:0}}
#tabs{display:flex;gap:2px;padding:6px 8px 0;border-bottom:1px solid var(--line);flex:none;overflow-x:auto;scrollbar-width:none}
.tab{flex:1;background:none;border:0;color:var(--mut);font:inherit;font-size:14px;padding:10px 6px;border-bottom:2px solid transparent;position:relative;white-space:nowrap;cursor:pointer}
.tab.on{color:var(--tx);border-color:var(--gold)}
.dot{position:absolute;top:7px;right:6px;width:7px;height:7px;border-radius:50%;background:var(--gold)}
#panel{flex:1;overflow-y:auto;padding:10px 12px calc(24px + env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch}
.hint{color:var(--mut);margin:6px 2px 10px}
.small{font-size:12.5px}
.hint a{color:var(--cy)}
.sub{font-size:12px;text-transform:uppercase;letter-spacing:1.2px;color:var(--mut);margin:14px 2px 6px}
.seg{display:flex;background:var(--card);border-radius:10px;padding:3px;margin-bottom:8px}
.seg button{flex:1;background:none;border:0;color:var(--mut);font:inherit;padding:7px;border-radius:8px;cursor:pointer}
.seg button.on{background:#24305a;color:var(--tx)}
.bld,.tech,.gov{display:flex;align-items:center;gap:10px;background:var(--card);border-radius:12px;padding:10px 10px 10px 12px;margin-bottom:7px;border-left:3px solid var(--line)}
.bi{flex:1;min-width:0}
.bn{font-weight:600}
.cnt{color:var(--gold);font-weight:700;margin-left:4px}
.bs{font-size:12.5px;color:var(--mut);margin-top:2px}
.bs.eff{color:#b9c4e6}
.s-h{border-left-color:var(--h)}.s-f{border-left-color:var(--f)}.s-w{border-left-color:var(--w)}.s-k{border-left-color:var(--k)}
.ms{height:3px;background:#ffffff14;border-radius:2px;margin-top:6px;overflow:hidden}
.ms i{display:block;height:100%;background:currentColor;opacity:.75}
.s-h .ms{color:var(--h)}.s-f .ms{color:var(--f)}.s-w .ms{color:var(--w)}.s-k .ms{color:var(--k)}
.btn{background:linear-gradient(#f2b84b,#d99a2b);color:#1b1306;border:0;border-radius:10px;padding:8px 12px;font:inherit;font-weight:600;display:flex;flex-direction:column;align-items:center;min-width:92px;cursor:pointer;touch-action:manipulation}
.btn small{font-size:11.5px;font-weight:500;opacity:.85;white-space:nowrap}
.btn.off{background:#2a3352;color:#7f8ab0}
.btn.ghost{background:#202a4a;color:var(--tx);font-weight:500}
.btn.danger{background:linear-gradient(#ff7b62,#d9493a);color:#fff}
.btn.danger.off{background:#3a2a33;color:#9a8090}
.btn.wide{width:100%;margin-top:8px}
.btn:active{transform:scale(.97)}
.done{color:var(--mut);font-size:12.5px;min-width:70px;text-align:center}
.tech.key{border-left-color:var(--gold);background:linear-gradient(90deg,#2a2210,var(--card) 60%)}
.tech.done,.tech.locked{opacity:.55}
.req{margin-top:6px;font-size:12px;color:#c9d2ee;display:grid;gap:3px}
.bar{height:4px;background:#ffffff14;border-radius:2px;overflow:hidden}
.bar i{display:block;height:100%}
.bar.k i{background:var(--k)}.bar.p i{background:var(--gold)}
.branch{border:1px dashed var(--line);border-radius:12px;padding:2px 8px 6px;margin:6px 0 9px}
.branch .sub{margin-top:8px}
.or{text-align:center;font-size:12px;color:var(--mut);margin:-2px 0 5px}
.card{background:var(--card);border-radius:14px;padding:12px;margin-bottom:10px}
.ch{font-weight:700;margin-bottom:6px}
.card .gov{background:#0f1528}
.gov.on{border-left-color:var(--gold)}
.alloc{display:flex;height:12px;border-radius:6px;overflow:hidden;margin:6px 0}
.alloc i{display:block;height:100%}
.alloc .f{background:var(--f)}.alloc .e{background:var(--w)}.alloc .s{background:var(--k)}
.legend{display:flex;justify-content:space-between;font-size:12.5px;margin-bottom:6px}
.legend .f{color:var(--f)}.legend .e{color:var(--w)}.legend .s{color:var(--k)}
label{display:block;font-size:13px;color:var(--mut);margin-top:6px}
input[type=range]{width:100%;accent-color:var(--gold);height:28px}
.chk{display:flex;align-items:center;gap:8px;margin:8px 0}
.stats{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px;color:#c9d2ee;margin:6px 0}
.stats.big{font-size:16px;flex-direction:column;align-items:center;color:var(--gold)}
.row2{display:flex;gap:8px;margin-top:8px}
.row2 .btn{flex:1}
.pm{display:flex;gap:6px}.pm .btn{min-width:42px}
.ev{border:1px solid var(--gold);background:linear-gradient(180deg,#2a2010,var(--card))}
.evh{display:flex;justify-content:space-between;font-size:15px}
.evh span{color:var(--mut);font-size:12.5px}
.ev p{margin:4px 0;color:#d5dcf2;font-size:13.5px}
.ev .btn{font-size:13px;text-align:center;line-height:1.25}
.log .li{font-size:13px;padding:5px 0;border-bottom:1px solid #ffffff0d;display:flex;gap:10px}
.log .li span{color:var(--mut);min-width:84px;font-variant-numeric:tabular-nums}
#modal{position:fixed;inset:0;background:#05081499;display:none;align-items:center;justify-content:center;padding:20px;z-index:10;backdrop-filter:blur(3px)}
#modal.on{display:flex}
.mbox{background:linear-gradient(180deg,#1b2442,#10162b);border:1px solid #f2b84b55;border-radius:18px;padding:22px 20px 16px;max-width:380px;width:100%;text-align:center;box-shadow:0 10px 50px #000a;animation:pop .35s ease-out}
@keyframes pop{from{transform:scale(.9);opacity:0}}
.mbox h2{margin:4px 0 8px;font-size:30px;color:var(--gold);font-weight:700;letter-spacing:.5px}
.mbox p{color:#d0d8f0;margin:6px 0}
.mt{font-size:12px;text-transform:uppercase;letter-spacing:2px;color:var(--mut)}
.yr{color:var(--cy)!important;font-weight:600}
@media (min-height:800px){#stage{height:44vh}}
