@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cinzel-latin-ext-500-normal-1Z8Q-7rh.woff2)format("woff2"),url(/assets/cinzel-latin-ext-500-normal-BxIh9iwm.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cinzel-latin-500-normal-B-2dbOfA.woff2)format("woff2"),url(/assets/cinzel-latin-500-normal-DMNTwV-V.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/cinzel-latin-ext-700-normal-C24KFjuG.woff2)format("woff2"),url(/assets/cinzel-latin-ext-700-normal-CORa-yIv.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/cinzel-latin-700-normal-Dkw14w9r.woff2)format("woff2"),url(/assets/cinzel-latin-700-normal-C-gK7hA8.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IM Fell English;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/im-fell-english-latin-400-normal-BhowGHCQ.woff2)format("woff2"),url(/assets/im-fell-english-latin-400-normal-CxhBQSzl.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink:#efe3c8;--ink-dim:#b9a883;--gold:#c9a25b;--card:#181410e0;--card-edge:#c9a25b73;--sea:#1d4466;--ocean:#193a58;--sidebar-w:460px;--right-w:340px;--display:"Cinzel", "Trajan Pro", Georgia, serif;--body:"IM Fell English", Georgia, serif}*{box-sizing:border-box}html,body,#app{background:var(--sea);height:100%;margin:0;overflow:hidden}body{font-family:var(--body);color:var(--ink);-webkit-font-smoothing:antialiased}.map-viewport{cursor:default;touch-action:none;-webkit-user-select:none;user-select:none;background:var(--ocean);position:absolute;inset:0;overflow:hidden}.map-viewport:after{content:"";pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 200px #040c1680}.map-viewport.dragging{cursor:grabbing}.map-world{transform-origin:0 0;--px:1;--ms:1;position:absolute;top:0;left:0}.map-terrain,.map-overlay{display:block;position:absolute;top:0;left:0}.map-overlay{overflow:visible}.prov{fill:#0000;fill-opacity:0;stroke:none;cursor:pointer;pointer-events:all;transition:fill-opacity .3s}[data-mode=political] .prov{fill-opacity:.36}[data-mode=population] .prov,[data-mode=wealth] .prov{fill-opacity:.62}.borders path,.hl path{fill:none;stroke-linejoin:round;stroke-linecap:round;pointer-events:none}.b-coast{stroke:#242c288c;stroke-width:calc(var(--px) * 1.1)}.b-inner{stroke:#2e22166b;stroke-width:calc(var(--px) * .9);stroke-dasharray:calc(var(--px) * 3) calc(var(--px) * 2.5)}.b-realm-under{stroke:#fff4d640;stroke-width:calc(var(--px) * 5)}.b-realm{stroke:#22160cd9;stroke-width:calc(var(--px) * 2.2)}[data-mode=terrain] .b-realm{stroke:#2e22168c;stroke-width:calc(var(--px) * 1.2)}[data-mode=terrain] .b-realm-under{stroke:#0000}.hov .fill{fill:#fff0c829;stroke:none}.hov .g1{stroke:#ffe29629;stroke-width:calc(var(--px) * 11)}.hov .g2{stroke:#ffe29652;stroke-width:calc(var(--px) * 5)}.hov .core{stroke:#fff8def2;stroke-width:calc(var(--px) * 1.6)}.sel .g1{stroke:#ffcd5a59;stroke-width:calc(var(--px) * 14);animation:1.6s ease-in-out infinite pulse}.sel .g2{stroke:#ffd7788c;stroke-width:calc(var(--px) * 5)}.sel .core{stroke:#fff1c2;stroke-width:calc(var(--px) * 2.4)}@keyframes pulse{50%{opacity:.35}}.labels,.realm-labels,.markers{pointer-events:none}.pl{font-family:var(--display);text-anchor:middle;fill:#2a1d10;letter-spacing:.04em;paint-order:stroke;stroke:#f6ecd2cc;stroke-width:calc(var(--px) * 2.6);stroke-linejoin:round;font-weight:700;transition:opacity .25s}.rl{font-family:var(--display);text-anchor:middle;letter-spacing:.32em;fill:#1e140a9e;paint-order:stroke;stroke:#faf0d759;stroke-width:calc(var(--px) * 3);font-weight:700;transition:opacity .3s}[data-lod=far] .pl,[data-lod=near] .rl,[data-mode=terrain] .rl,[data-mode=population] .rl,[data-mode=wealth] .rl{opacity:0}[data-lod=mid] .rl{opacity:.38}.ms{transform:scale(var(--ms))}.shield-edge{fill:none;stroke:#2b2118;stroke-width:.9px}.t-town .shield-edge{stroke:#f3ead2;stroke-width:1.1px}.t-city .shield-edge,.t-capital .shield-edge{stroke:#e3b94e;stroke-width:1.4px}.t-village{transform:scale(calc(var(--ms) * .8))}.crown{fill:#e8c15a;stroke:#5a4210;stroke-width:.6px}.hud{pointer-events:none;position:absolute;inset:0}.hud>*{pointer-events:auto}.card{background:var(--card);border:1px solid var(--card-edge);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:6px;position:absolute;box-shadow:0 6px 24px #00000059}.topbar{align-items:center;gap:16px;padding:8px 14px;display:flex;position:relative}.topbar h1{font-family:var(--display);letter-spacing:.18em;color:var(--gold);margin:0;font-size:24px;font-weight:700}.res{gap:2px;display:flex}.r{cursor:help;border-radius:4px;align-items:center;gap:6px;padding:3px 7px 3px 5px;display:flex}.r:hover{background:#c9a25b24}.ri{font-size:20.5px}.ico{vertical-align:-.17em;width:1.05em;height:1.05em;display:inline-block}.ri .ico,.modes .ico{width:23px;height:23px;display:block}.modes .ico{margin:0 auto}.rv{flex-direction:column;line-height:1.1;display:flex}.rv b{font-family:var(--display);font-size:18px;font-weight:700}.rv b small{color:var(--ink-dim);font-size:13px;font-weight:500}.rv em{font-size:14.5px;font-style:normal}.r.neg b{color:#ff8a73}.sr{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.pos{color:#a9d68a}.neg{color:#ff8a73}.modes{border:1px solid var(--card-edge);border-radius:4px;display:flex;overflow:hidden}button{font:inherit;color:var(--ink);cursor:pointer;background:0 0;border:0}.modes button{flex:1;padding:6px 0;font-size:22px;line-height:1.2}.modes button.on{background:var(--gold);color:#1d1710}.modes button:not(.on):hover{background:#c9a25b26}.seed{gap:4px;display:flex}.seed input{width:130px;font:inherit;color:var(--ink);border:1px solid var(--card-edge);background:#0000004d;border-radius:4px;padding:5px 8px;font-size:17px}.seed button{border:1px solid var(--card-edge);border-radius:4px;padding:5px 10px;font-size:17px}.seed button:hover{background:#c9a25b26}button:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:1px}.legend{flex:none;padding:10px 12px}.legend h2,.panel h3{font-family:var(--display);letter-spacing:.14em;color:var(--gold);margin:0 0 6px;font-size:15.5px}.legend ul{margin:0;padding:0 12px 10px;list-style:none}.legend li{cursor:pointer;border-radius:4px;align-items:center;gap:8px;padding:3px 4px;display:flex}.legend li:hover{background:#c9a25b24}.legend b{font-family:var(--display);font-size:15.5px;font-weight:500;display:block}.legend small{color:var(--ink-dim);font-size:14.5px}.legend em{color:var(--gold);font-style:normal}.mini{flex:none;width:24px;height:38px}.edge{fill:none;stroke:#e3b94e;stroke-width:1px}.ramp-key{color:var(--ink-dim);align-items:center;gap:6px;margin:6px 4px 2px;font-size:14.5px;display:none}.ramp-key i{background:linear-gradient(90deg,#fff2c4,#f9d27a,#ef9d45,#d8602b,#a8321f);border-radius:2px;flex:1;height:8px}.hud[data-mode=wealth] .ramp-key i{background:linear-gradient(90deg,#f4f1d0,#e6dc8a,#d9bf45,#b8921f,#7d5c0f)}.hud[data-mode=population] .ramp-key,.hud[data-mode=wealth] .ramp-key{display:flex}.panel{top:calc(var(--top-h,76px) + 10px);width:var(--sidebar-w);overscroll-behavior:contain;padding:16px 20px;transition:opacity .2s,transform .2s;bottom:16px;left:16px;overflow:auto}.panel.hidden{opacity:0;pointer-events:none;transform:translate(-16px)}.panel .close{color:var(--ink-dim);padding:2px 6px;font-size:26.5px;line-height:1;position:absolute;top:6px;right:8px}.panel .close:hover{color:var(--ink)}.phead{align-items:center;gap:12px;margin-bottom:10px;display:flex}.phead .big{flex:none;width:48px;height:76px}.phead h2{font-family:var(--display);letter-spacing:.04em;margin:0;font-size:24px}.phead p{color:var(--ink-dim);margin:2px 0 0;font-size:17px}.panel dl{grid-template-columns:auto 1fr;gap:4px 12px;margin:0 0 12px;font-size:18px;display:grid}.panel dt{color:var(--ink-dim)}.panel dd{margin:0}.nbs{flex-wrap:wrap;gap:4px;display:flex}.nbs button{border:1px solid var(--card-edge);border-radius:12px;align-items:center;gap:5px;padding:3px 8px;font-size:15.5px;display:flex}.nbs button:hover{background:#c9a25b26}.nbs i,.tooltip i{border-radius:2px;width:9px;height:9px;display:inline-block}.note{color:var(--ink-dim);margin:12px 0 0;font-size:15.5px;font-style:italic}.tooltip{pointer-events:none;background:var(--card);border:1px solid var(--card-edge);white-space:nowrap;border-radius:4px;flex-direction:column;gap:1px;padding:5px 9px;font-size:17px;display:flex;position:fixed;top:0;left:0}.tooltip b{font-family:var(--display);font-size:17px;font-weight:700}.tooltip span{color:var(--ink-dim);align-items:center;gap:5px;font-size:15.5px;display:flex}.hidden{display:none!important}.panel.hidden{display:block!important}.status{color:#efe3c8bf;text-shadow:0 1px 2px #000000b3;gap:14px;font-family:ui-monospace,Menlo,monospace;font-size:12px;display:flex;position:absolute;bottom:12px;right:16px}.loading{z-index:10;background:#0c121ad1;place-items:center;display:grid;position:absolute;inset:0}.loading h2{font-family:var(--display);letter-spacing:.18em;color:var(--gold);text-align:center;margin:0 0 14px;font-weight:500}.loading .bar{background:#ffffff1f;border-radius:2px;width:280px;height:4px;overflow:hidden}.loading .bar i{background:var(--gold);width:0;height:100%;transition:width .15s;display:block}@media (width<=720px){.topbar h1,.chronicle,.legend{display:none}.right-col{width:auto}.panel{width:auto;max-height:55%;inset:auto 16px 16px}}.menu-btn{font-family:var(--display);border:1px solid var(--card-edge);border-radius:4px;padding:6px 12px;font-size:15.5px}.menu-btn:hover,.menu-btn[aria-expanded=true]{background:#c9a25b2e}.menu{width:var(--right-w);z-index:5;padding:12px 16px 14px;top:72px;right:16px}.menu h3{font-family:var(--display);letter-spacing:.14em;color:var(--gold);margin:10px 0 6px;font-size:14.5px}.menu h3:first-child{margin-top:0}.menu small{color:var(--ink-dim);margin:4px 0;font-size:14.5px;display:block}.menu-row{gap:6px;margin-top:6px;display:flex}.menu-row button{border:1px solid var(--card-edge);border-radius:4px;flex:1;padding:5px 8px;font-size:17px}.menu-row button:hover:not(:disabled){background:#c9a25b26}button:disabled{opacity:.45;cursor:not-allowed}.seed input{flex:1;width:auto}.turnbox{align-items:center;gap:12px;padding:8px 10px 8px 14px;display:flex;position:relative}.turnbox .date{text-align:center;font-family:var(--display);letter-spacing:.08em;white-space:nowrap;font-size:18px;line-height:1.05}.turnbox .date small{color:var(--ink-dim);letter-spacing:.12em;font-size:13px;display:block}.end-turn{font-family:var(--display);letter-spacing:.12em;white-space:nowrap;color:#1d1710;background:linear-gradient(#d8b46a,#b48a3e);border:1px solid #f0d394;border-radius:4px;padding:10px 18px;font-size:19px;font-weight:700;box-shadow:inset 0 1px #ffffff59}.end-turn:hover{filter:brightness(1.08)}.end-turn:active{transform:translateY(1px)}.chronicle{flex:0 4 auto;min-height:80px;max-height:280px;margin-top:auto;padding:8px 12px;position:relative;overflow:auto}.chronicle h2{font-family:var(--display);letter-spacing:.14em;color:var(--gold);margin:0 0 4px;font-size:15.5px}.chronicle ol{margin:0;padding:0;list-style:none}.chronicle li{border-radius:3px;gap:8px;padding:3px 2px;font-size:16px;line-height:1.25;display:flex}.chronicle li[data-goto]{cursor:pointer}.chronicle li[data-goto]:hover{background:#c9a25b1f}.chronicle li small{color:var(--ink-dim);font-size:13px;display:block}.chronicle li.new{color:#fff3d0}.chronicle li.new small{color:var(--gold)}.chronicle .k-famine div,.chronicle .k-treasury div{color:#ffb19f}.tip{z-index:20;pointer-events:none;border:1px solid var(--card-edge);background:#14100cf5;border-radius:5px;max-width:420px;padding:8px 10px;font-size:16px;position:fixed;top:0;left:0;box-shadow:0 6px 20px #00000073}.tip h4{font-family:var(--display);color:var(--gold);letter-spacing:.04em;margin:0 0 4px;font-size:15.5px}.tip h4+table,.tip table+h4{margin-top:0}.tip table+h4{margin-top:8px}.tip table{border-collapse:collapse;width:100%}.tip td{vertical-align:top;padding:1px 0}.tip td:last-child{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;padding-left:14px}.tip td.neg{color:#ff8a73}.tip tr.total td{border-top:1px solid #c9a25b59;padding-top:3px;font-weight:700}.tip p{color:var(--ink-dim);margin:6px 0 0}.tip p b{color:var(--ink)}.tip .levels td{border-top:1px solid #c9a25b26;padding:3px 0}.tip .levels td.eff{text-align:left;white-space:normal;padding-left:10px}.tip small{color:var(--ink-dim)}.later{color:#b9c7d8;font-style:italic}.toast{left:50%;top:calc(var(--top-h,76px) + 10px);z-index:15;background:var(--card);border:1px solid var(--card-edge);border-radius:4px;padding:8px 16px;font-size:18px;position:absolute;transform:translate(-50%)}.toast.error{color:#ffc4b6;border-color:#c0614b}.panel h3{justify-content:space-between;align-items:baseline;margin-top:14px;display:flex}.panel h3 small{font-family:var(--body);letter-spacing:0;color:var(--ink-dim);font-size:15.5px}.panel h3[data-tip]{cursor:help}.stats dd[data-tip]{cursor:help;border-bottom:1px dotted #c9a25b59}.stats dd small,.panel dd small{color:var(--ink-dim)}.built{grid-template-columns:1fr 1fr;gap:3px 10px;margin:0 0 6px;padding:0;list-style:none;display:grid}.built li{cursor:help;align-items:center;gap:6px;font-size:17px;display:flex}.built .lv{color:var(--ink-dim);margin-left:auto;font-size:14.5px}.bi{text-align:center;flex:none;width:18px}.constructing{border:1px solid var(--card-edge);background:#c9a25b14;border-radius:4px;margin:6px 0;padding:8px;font-size:17px}.progress{background:#ffffff1a;border-radius:3px;height:6px;margin:6px 0;overflow:hidden}.progress i{background:var(--gold);height:100%;display:block}.constructing .row{justify-content:space-between;align-items:center;display:flex}.cancel{border:1px solid var(--card-edge);border-radius:4px;padding:2px 8px;font-size:15.5px}.cancel:hover{background:#c0614b40}.options{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.opt{border:1px solid #c9a25b2e;border-radius:4px;align-items:center;gap:8px;padding:5px 6px;display:flex}.opt:hover{background:#c9a25b14}.opt.off .oi{opacity:.6}.oi{flex:1;min-width:0;font-size:17px}.oi b{font-family:var(--display);font-size:15.5px;font-weight:500}.oi small{color:var(--ink-dim)}.oi .eff{font-size:14.5px;line-height:1.25;display:block}.opt button{border:1px solid var(--card-edge);background:#c9a25b2e;border-radius:4px;flex-direction:column;align-items:center;min-width:64px;padding:3px 6px;font-size:15.5px;line-height:1.15;display:flex}.opt button:hover:not(:disabled){background:#c9a25b59}.opt button small{color:var(--ink-dim);font-size:13px}.status{bottom:6px}.armies{pointer-events:auto}.army{cursor:pointer}.army .body{stroke:#f6ecd2;stroke-width:1.2px}.army.foe .body{stroke:#2b2118}.army text{font-family:var(--display);text-anchor:middle;fill:#fff;paint-order:stroke;stroke:#0000008c;stroke-width:1.6px;font-size:10.5px;font-weight:700}.army .ring{fill:none;stroke:#0000;stroke-width:2px}.army.selected .ring{stroke:#ffe08a;animation:1.2s ease-in-out infinite pulse}.army:hover .ring{stroke:#ffecb4b3}.paths,.preview{pointer-events:none}.route{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:calc(var(--px) * 2.4);stroke-dasharray:calc(var(--px) * 7) calc(var(--px) * 5)}.route.mine{stroke:#ffe9a0e6}.route.foe{stroke:#ff7864d9}.route.selected{stroke-width:calc(var(--px) * 3.2)}.route.preview-line{stroke:#ffffffd9;animation:.8s linear infinite march}.route.bad{stroke:#ff6e5ae6}@keyframes march{to{stroke-dashoffset:calc(var(--px) * -12)}}.route-end{stroke:none}.route-end.mine{fill:#ffe9a0f2}.route-end.foe{fill:#ff7864e6}.eta{font-family:var(--display);text-anchor:middle;fill:#fff6d8;paint-order:stroke;stroke:#000000b3;stroke-width:2.4px;font-size:9px;font-weight:700}.eta.bad{fill:#ffb19f}.events{pointer-events:auto}.ev.battle{cursor:pointer}.ev.battle circle{fill:#961e14e6;stroke:#ffd7a0;stroke-width:1.2px}.ev.battle text{text-anchor:middle;fill:#fff;font-size:10px}.ev.siege{pointer-events:none}.ev.siege rect{fill:#78190fe6;stroke:#ffcf9a;stroke-width:.8px}.ev.siege text{font-family:var(--display);text-anchor:middle;fill:#fff;font-size:7.5px;font-weight:700}.r.war{cursor:help}.legend li.dead{opacity:.45;cursor:default}.tooltip .hint{color:#ffe9a8;margin-top:2px}.tooltip .hint.bad{color:#ffb19f}.regs{flex-direction:column;gap:3px;margin:0;padding:0;list-style:none;display:flex}.regs li{cursor:help;align-items:center;gap:6px;font-size:17px;display:flex}.regs .bn{flex:none;width:96px}.regs .bar{background:#ffffff1a;border-radius:3px;flex:1;height:7px;display:flex;overflow:hidden}.regs .bar i{background:#a9d68a;height:100%;display:block}.regs .bar i.low{background:#e8a25a}.regs .bar b{background:#ff7864b3;height:100%;display:block}.regs .pct{text-align:right;width:36px;color:var(--ink-dim);font-size:14.5px}.regs input{accent-color:var(--gold);margin:0}.orders{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.orders button,.merge button,.dip{border:1px solid var(--card-edge);border-radius:4px;padding:5px 10px;font-size:17px}.orders button:hover:not(:disabled),.merge button:hover,.dip:hover:not(:disabled){background:#c9a25b2e}.orders button.on{background:var(--gold);color:#1d1710}.danger{border-color:#c0614bb3!important}.danger:hover:not(:disabled){background:#c0614b40!important}.merge{flex-wrap:wrap;align-items:center;gap:4px;margin-top:8px;display:flex}.merge small{color:var(--ink-dim);margin-right:4px}.queue button{border-style:dashed}.siegebox{cursor:help;background:#9628192e;border:1px solid #c0614b99;border-radius:4px;margin:10px 0 4px;padding:8px;font-size:17px}.siegebox.good{background:#c9a25b1a;border-color:#c9a25b80}.siegebox small{color:var(--ink-dim)}.siegebox .progress i{background:#e0795a}.panel .war{color:#ffb19f;margin:0 0 6px}.panel h3+p{margin:0 0 6px;font-size:17px}.report-wrap{z-index:12;background:#080a0e8c;place-items:center;display:grid;position:absolute;inset:0}.report{border:1px solid var(--card-edge);background:#181410f7;border-radius:8px;width:min(680px,100% - 32px);max-height:calc(100% - 48px);padding:18px 22px;position:relative;overflow:auto;box-shadow:0 12px 40px #00000080}.report h2{font-family:var(--display);letter-spacing:.06em;color:var(--gold);margin:0;font-size:29px}.report .sub{color:var(--ink-dim);margin:2px 0 12px}.report .close{color:var(--ink-dim);font-size:29px;position:absolute;top:8px;right:10px}.bsides{grid-template-columns:1fr 1fr;gap:12px;display:grid}.bside{border:1px solid #c9a25b40;border-radius:6px;padding:10px}.bside.won{background:#a9d68a14;border-color:#a9d68a66}.bside.lost{background:#ff8a730f}.bhead{align-items:center;gap:8px;margin-bottom:8px;display:flex}.bhead b{font-family:var(--display);display:block}.bhead small{color:var(--ink-dim)}.bside .regs .bn{flex:1;width:auto}.bside .regs .bar{flex:none;width:70px}.bside p{color:var(--ink-dim);margin:8px 0 0;font-size:17px}.report .outcome{margin:14px 0 6px;font-size:19px}.report h3{font-family:var(--display);letter-spacing:.14em;color:var(--gold);margin:12px 0 6px;font-size:15.5px}.factors{margin:0;padding-left:18px;font-size:18px;line-height:1.4}.legend-line{color:var(--ink-dim);align-items:center;gap:6px;margin:10px 0 0;font-size:14.5px;display:flex}.legend-line i{border-radius:2px;width:12px;height:7px;display:inline-block}.legend-line .keep{background:#a9d68a}.legend-line .lost{background:#ff7864b3;margin-left:8px}@media (width<=560px){.bsides{grid-template-columns:1fr}}.r.goal.victory b{color:#a9d68a}.r.goal.defeat b{color:#ff8a73}.r.goal em{color:var(--ink-dim)}.row{align-items:center;gap:8px;margin-top:10px;display:flex}.row button{border:1px solid var(--card-edge);border-radius:4px;padding:6px 12px;font-size:17px}.row button:hover{background:#c9a25b2e}.row .primary,button.primary{color:#1d1710;font-family:var(--display);background:linear-gradient(#d8b46a,#b48a3e);border-color:#f0d394;font-weight:700}.row .primary:hover{filter:brightness(1.08)}.tutorial{z-index:4;border-color:#f0d394b3;width:min(440px,100% - 32px);padding:14px 18px;bottom:34px;left:50%;transform:translate(-50%);box-shadow:0 0 0 1px #f0d39426,0 8px 28px #00000073}.tutorial small{color:var(--gold);letter-spacing:.06em;font-size:14.5px}.tutorial h3{font-family:var(--display);margin:2px 0 6px;font-size:20.5px}.tutorial p{margin:0;font-size:18px;line-height:1.4}.tutorial .todo{color:var(--ink-dim);margin-left:auto;font-size:15.5px;font-style:italic}.tutorial .row .primary{margin-left:auto}.swatch{vertical-align:-1px;border:1px solid #ffffff80;border-radius:2px;width:11px;height:11px;display:inline-block}.offer{top:calc(var(--top-h,76px) + 10px);z-index:6;border-color:#a9d68a99;flex-direction:column;gap:4px;width:420px;padding:14px 18px;display:flex;left:50%;transform:translate(-50%)}.offer b{font-family:var(--display);font-size:19px}.offer span{color:var(--ink-dim);font-size:17px}.endgame{text-align:center;width:min(520px,100% - 32px)}.endgame h2{font-size:41px}.endgame.victory h2{color:#f2d27a;text-shadow:0 0 18px #f2d27a59}.endgame.defeat h2{color:#ff9c86}.endgame .stats{text-align:left;grid-template-columns:auto 1fr;gap:4px 14px;max-width:280px;margin:12px auto;font-size:18px;display:grid}.endgame .stats dt{color:var(--ink-dim)}.endgame .stats dd{margin:0}.endgame .row{justify-content:center}@media (width<=1600px){.topbar h1{display:none}.topbar{gap:0}}.menu .seed{flex-direction:column;gap:6px}.seed-row{gap:4px;display:flex}.difficulty{border:1px solid var(--card-edge);border-radius:4px;display:flex;overflow:hidden}.difficulty label{cursor:pointer;flex:1;position:relative}.difficulty label+label{border-left:1px solid var(--card-edge)}.difficulty input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.difficulty span{text-align:center;font-family:var(--display);letter-spacing:.06em;padding:6px 4px;font-size:15.5px;display:block}.difficulty input:checked+span{background:var(--gold);color:#1d1710}.difficulty input:focus-visible+span{outline:2px solid var(--gold);outline-offset:-2px}.difficulty label:hover span{background:#c9a25b26}.difficulty input:checked:hover+span{background:var(--gold)}.menu .diff-blurb{min-height:2.6em}.zone{fill:#0000;stroke:none;cursor:pointer;pointer-events:all}.b-sea{fill:none;stroke:#dcf0ff38;stroke-width:calc(var(--px) * 1);stroke-dasharray:calc(var(--px) * 2) calc(var(--px) * 4);pointer-events:none}.zone-labels{pointer-events:none}.zl{font-family:var(--body);text-anchor:middle;fill:#e1f0fa8c;letter-spacing:.08em;paint-order:stroke;stroke:#0a1e3259;stroke-width:calc(var(--px) * 2);font-size:11px;font-style:italic;transition:opacity .25s}[data-lod=far] .zl{opacity:0}.fleets,.fleet-paths{pointer-events:none}.fleets .fleet{pointer-events:auto;cursor:pointer}.fleet .body{stroke:#e9f4ff;stroke-width:1.2px}.fleet.foe .body{stroke:#1b2733}.fleet text{font-family:var(--display);text-anchor:middle;fill:#fff;paint-order:stroke;stroke:#0000008c;stroke-width:1.6px;font-size:10.5px;font-weight:700}.fleet text.ico,.fleet text.mark{stroke:none;font-size:9px}.fleet .ring{fill:none;stroke:#0000;stroke-width:2px}.fleet.selected .ring{stroke:#bfe3ff;animation:1.2s ease-in-out infinite pulse}.fleet:hover .ring{stroke:#c8e6ffb3}.route.sea.mine{stroke:#bee4ffe6}.route.sea.foe{stroke:#ff8c78cc}.ev.raid text{font-size:11px}.stances button{flex:1}.cargo{border:1px solid #c9a25b4d;border-radius:4px;margin:4px 0 8px;padding:6px 8px;font-size:17px}.cargo small{color:var(--ink-dim)}.cargo .nbs{margin-top:4px}.zone-ico{text-align:center;width:48px;font-size:41px}.fog{fill:#12182061;stroke:none;pointer-events:none}.r.research,.r.decision{cursor:pointer}.r.research.idle{background:#f0be5033;animation:1.1s ease-in-out infinite beckon;box-shadow:0 0 0 1px #f0c060,0 0 14px #ffc85a8c}.r.research.idle b{color:#ffe08a}.r.research.idle em{color:#ffd27a}@keyframes beckon{50%{background:#f0be5061;box-shadow:0 0 0 1px #ffe08a,0 0 22px #ffd264e6}}.r.decision{background:#f0be502e;border-radius:4px;animation:1.6s ease-in-out infinite pulse}.r.decision b{color:#ffe08a}.note.warn{color:#ffd27a;font-style:normal}.tree{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.branch h4{font-family:var(--display);letter-spacing:.1em;color:var(--ink-dim);margin:4px 0;font-size:13px;font-weight:500}.tech{text-align:left;border:1px solid #c9a25b4d;border-radius:4px;width:100%;margin-bottom:4px;padding:5px 6px;font-size:14.5px;line-height:1.2;display:block}.tech b{font-family:var(--display);font-size:14px;font-weight:500;display:block}.tech small{color:var(--ink-dim);font-size:13px}.tech.open:hover{background:#c9a25b2e}.tech.current{border-color:var(--gold);background:#c9a25b38}.tech.done{opacity:.75;border-color:#a9d68a80}.tech.done small{color:#a9d68a}.tech.locked{opacity:.4}.treaties{margin:0;padding:0;font-size:17px;list-style:none}.treaties li{align-items:center;gap:6px;padding:2px 0;display:flex}.treaties i{border-radius:2px;width:9px;height:9px;display:inline-block}.orders small{color:var(--ink-dim);font-size:13px}.event-card{width:min(580px,100% - 32px)}.event-card .story{margin:8px 0 14px;font-size:20.5px;line-height:1.45}.choices{flex-direction:column;gap:8px;display:flex}.choices button{text-align:left;border:1px solid var(--card-edge);background:#c9a25b14;border-radius:6px;padding:10px 12px}.choices button:hover:not(:disabled){background:#c9a25b38}.choices b{font-family:var(--display);font-size:18px;display:block}.choices small{color:var(--ink-dim);font-size:16px}@media (width<=1280px){.r.pop{display:none}.r{padding:3px 6px 3px 4px}}.top-row{pointer-events:none;max-width:calc(100% - var(--right-w) - 48px);align-items:stretch;gap:10px;display:flex;position:absolute;top:16px;left:16px}.top-row .topbar{scrollbar-width:none;min-width:0;overflow-x:auto}.top-row .turnbox{flex:none}.top-row>*,.right-col>*{pointer-events:auto}.right-col{width:var(--right-w);pointer-events:none;flex-direction:column;gap:10px;display:flex;position:absolute;top:16px;bottom:30px;right:16px}.right-col>.card{position:relative}.rc-top{flex:none;align-items:flex-start;gap:10px;display:flex}.rc-top>*{pointer-events:auto;position:relative}.rc-top .modes-card{flex:1}.rc-top .menu-btn{white-space:nowrap;border-radius:6px;align-self:stretch;max-height:50px;padding:0 16px}.modes-card{padding:6px}.fold{flex-direction:column;min-height:0;padding:0;display:flex}.fold-head{text-align:left;border-radius:6px;flex:none;align-items:center;gap:8px;width:100%;padding:9px 12px;display:flex}.fold-head:hover{background:#c9a25b1a}.fold-head h2{font-family:var(--display);letter-spacing:.14em;color:var(--gold);margin:0;font-size:15.5px;font-weight:700}.fold-head small{color:var(--ink-dim);margin-left:auto;font-size:14.5px}.fold-head i{color:var(--ink-dim);font-style:normal;transition:transform .15s}.fold.folded .fold-head i{transform:rotate(-90deg)}.fold.folded .fold-body{display:none}.fold-body{min-height:0;margin:0;padding:0 12px 10px;overflow:auto}.buildlist{flex:none;max-height:30%}.armylist{flex:0 auto;min-height:96px;max-height:32%}.fold.folded{min-height:0}.buildlist ul,.armylist ul{flex-direction:column;gap:3px;list-style:none;display:flex}.armylist li{cursor:pointer;border:1px solid #c9a25b29;border-radius:4px;padding:5px 8px}.armylist li:hover{background:#c9a25b1f}.armylist li.on{border-color:var(--gold);background:#c9a25b29}.armylist li.empty{cursor:default;color:var(--ink-dim);font-size:15px}.mini-progress.hp i{background:#a9d68a}.mini-progress.hp.low i{background:#e8a25a}.legend li .rel{color:var(--ink-dim);white-space:nowrap;border:1px solid #c9a25b59;border-radius:10px;flex:none;margin-left:auto;padding:1px 7px;font-size:13.5px}.legend li .rel.war{color:#ffb19f;background:#961e144d;border-color:#ff786499}.legend li .rel.ally{color:#a9d68a;border-color:#a9d68a8c}.legend li .rel.pact{color:#bfe3ff;border-color:#bee4ff73}.legend li .rel.truce{color:#ffd27a}.wars{right:calc(16px + var(--right-w) + 10px);border-color:#ff786473;width:280px;padding:8px 12px 10px;bottom:30px}.wars h2{font-family:var(--display);letter-spacing:.1em;color:#ffb19f;margin:0 0 6px;font-size:15.5px}.wars ul{flex-direction:column;gap:4px;max-height:220px;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.wars li{align-items:center;gap:6px;font-size:15px;display:flex}.wars li>b{color:#ff8a73;font-weight:400}.wars li span{cursor:pointer;white-space:nowrap;align-items:center;gap:4px;display:flex}.wars li span:hover{color:var(--gold)}.wars li span.you{color:#ffd27a;font-weight:700}.wars li i{border-radius:2px;width:9px;height:9px;display:inline-block}.wars li small{color:var(--ink-dim);margin-left:auto;font-size:13.5px}.wars li.new small{color:#ff8a73;font-weight:700}.wars li.mine{background:#961e1438;border-radius:4px;margin:0 -4px;padding:2px 4px}.training{flex-direction:column;gap:4px;margin:0 0 10px;padding:0;list-style:none;display:flex}.training li{border:1px dashed #c9a25b66;border-radius:4px;align-items:center;gap:8px;padding:5px 8px;font-size:16px;display:flex}.training .tn{white-space:nowrap}.training .mini-progress{flex:1;margin:0}.training small{color:var(--ink-dim);text-align:right;min-width:38px;font-size:14px}.training .cancel{padding:0 8px;font-size:16px}.opt{padding:6px 8px}.opt .oi b{font-size:16px}.regs li.rgroup{border-bottom:1px solid #c9a25b33;margin-top:6px;padding-bottom:2px}.regs li.rgroup:first-child{margin-top:0}.regs li.rgroup b{font-family:var(--display);font-size:15px;font-weight:500}.regs li.rgroup small{color:var(--ink-dim);margin-left:auto;font-size:14px}.regs li:not(.rgroup){padding-left:26px}.rename{color:var(--ink-dim);vertical-align:2px;padding:0 4px;font-size:17px}.rename:hover{color:var(--gold)}.research-done h2{color:#f2d27a}.research-done .choices small{display:block}.branch-tag{font-family:var(--body);color:var(--ink-dim);letter-spacing:0;font-size:14px}.buildlist ul{flex-direction:column;gap:3px;list-style:none;display:flex}.buildlist li{cursor:pointer;border:1px solid #c9a25b29;border-radius:4px;padding:5px 8px}.buildlist li:hover{background:#c9a25b1f}.buildlist li.idle{border-color:#ffd27a66}.buildlist li.empty{cursor:default}.bl-row{align-items:center;gap:8px;display:flex}.bl-row b{font-family:var(--display);white-space:nowrap;font-size:15px;font-weight:500}.bl-row span{color:var(--ink-dim);white-space:nowrap;text-overflow:ellipsis;margin-left:auto;font-size:15px;overflow:hidden}.bl-row span.warn{color:#ffd27a}.bl-row .mini-progress{flex:1;margin:4px 0 2px}.bl-row small{color:var(--ink-dim);text-align:right;min-width:34px;font-size:13.5px}.modes button+button{border-left:1px solid var(--card-edge)}.res .sep{background:var(--card-edge);align-self:stretch;width:1px;margin:4px 6px}button.r{text-align:left}.r.view,.r.goal,.r.research{cursor:pointer}.r.on{box-shadow:inset 0 0 0 1px var(--card-edge);background:#c9a25b3d}.r.view.idle em{color:#ffd27a}.r.view em,.r.research em{color:var(--ink-dim)}.ptabs{z-index:1;border-bottom:1px solid var(--card-edge);background:#181410fa;margin:4px -20px 14px;padding:0 14px;display:flex;position:sticky;top:-16px}.ptabs button{font-family:var(--display);color:var(--ink-dim);white-space:nowrap;border-bottom:3px solid #0000;flex:1;margin-bottom:-1px;padding:10px 4px 8px;font-size:14.5px}.ptabs button small{font-family:var(--body);color:var(--gold);font-size:13.5px}.ptabs button:hover{color:var(--ink);background:#c9a25b1a}.ptabs button.on{color:var(--gold);border-bottom-color:var(--gold)}.ptab-body>h3:first-child{margin-top:0}.view-ico{text-align:center;flex:none;width:48px;font-size:40px}.rows{flex-direction:column;gap:5px;margin:0 0 6px;padding:0;list-style:none;display:flex}.rows li{cursor:pointer;border:1px solid #c9a25b38;border-radius:5px;align-items:center;gap:10px;padding:8px 10px;display:flex}.rows li:hover{background:#c9a25b1f}.rows li>div{flex:1;min-width:0}.rows li b{font-family:var(--display);font-size:16px;font-weight:500}.rows li small{color:var(--ink-dim);font-size:15px;display:block}.rows li small.tier{font-size:14px;display:inline}.rows .meta{text-align:right;white-space:nowrap;font-size:15px}.rows .meta b{font-family:var(--body);font-size:17px}.rows li.idle{border-color:#ffd27a73}.rows small.warn{color:#ffd27a}.rows li.empty{cursor:default;border-style:dashed}.rows li.empty:hover{background:0 0}.rows .go{border:1px solid var(--card-edge);background:#c9a25b2e;border-radius:4px;padding:5px 12px}.rows .go:hover{background:#c9a25b59}.mini-progress{background:#ffffff1a;border-radius:3px;height:5px;margin:6px 0 3px;overflow:hidden}.mini-progress i{background:var(--gold);height:100%;display:block}.ledger{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:16px}.ledger th{z-index:1;text-align:right;background:#181410fa;padding:0;position:sticky;top:-16px}.ledger th:first-child,.ledger td:first-child{text-align:left}.ledger th button{width:100%;text-align:inherit;font-family:var(--display);letter-spacing:.04em;color:var(--ink-dim);padding:8px 4px;font-size:13.5px}.ledger th button.on,.ledger th button:hover{color:var(--gold)}.ledger td{text-align:right;vertical-align:top;border-top:1px solid #c9a25b26;padding:6px 4px}.ledger td b{font-family:var(--display);font-size:15px;font-weight:500}.ledger td small{color:var(--ink-dim);font-size:13.5px;display:block}.ledger tbody tr{cursor:pointer}.ledger tbody tr:hover{background:#c9a25b1a}.ledger tfoot td{border-top:1px solid var(--card-edge);font-family:var(--display);font-size:15px}.route.foe:not(.retreat){stroke:#ff4632f2;stroke-width:calc(var(--px) * 3);filter:drop-shadow(0 0 calc(var(--px) * 1.5) #0009)}.route.retreat{stroke-dasharray:calc(var(--px) * 2) calc(var(--px) * 4);stroke:#e6e6e6b3!important}.army.retreat{opacity:.7}.army.retreat .body{stroke-dasharray:3 2}.army text.flag{stroke:none;font-size:10px}.occupation{pointer-events:none;opacity:0}[data-mode=political] .occupation{opacity:.55}.wars li em.ws{text-align:right;min-width:30px;color:var(--ink-dim);margin-left:auto;font-size:13.5px;font-style:normal;font-weight:700}.wars li em.ws.pos{color:#a9d68a}.wars li em.ws.neg{color:#ff8a73}.wars li em.ws+small{margin-left:6px}.warscore{cursor:help;margin:4px 0 8px}.warscore small{color:var(--ink-dim);margin-top:4px;font-size:14.5px;display:block}.wsbar{background:#00000059;border:1px solid #c9a25b59;border-radius:4px;height:22px;position:relative;overflow:hidden}.wsbar:before{content:"";background:#e9dcbe80;width:1px;position:absolute;top:0;bottom:0;left:50%}.wsbar i{position:absolute;top:0;bottom:0}.wsbar i.pos{background:linear-gradient(90deg,#6ea0508c,#96cd6ed9)}.wsbar i.neg{background:linear-gradient(270deg,#aa3c288c,#e66e55d9)}.wsbar b{text-align:center;text-shadow:0 1px 2px #000;font-size:15px;line-height:22px;display:block;position:relative}.occbox{background:#c9a25b1a;border:1px solid #c9a25b80;border-radius:4px;margin:10px 0 4px;padding:8px;font-size:17px}.occbox.bad{background:#9628192e;border-color:#c0614b99}.occbox.good{background:#6ea05024;border-color:#96cd6e80}.occbox small{color:var(--ink-dim);margin-top:2px;font-size:15px;display:block}.occbox div small{display:inline}.peace-dialog{width:min(620px,100% - 32px)}.peace-dialog .budget{align-items:center;gap:10px;margin:4px 0 10px;display:flex}.peace-dialog .bbar{background:#00000059;border:1px solid #c9a25b59;border-radius:6px;flex:1;height:12px;overflow:hidden}.peace-dialog .bbar i{background:var(--gold);height:100%;transition:width .15s;display:block}.peace-dialog .budget span{white-space:nowrap;color:var(--ink-dim)}.peace-dialog .budget b{color:var(--ink)}.claims{flex-direction:column;gap:5px;max-height:46vh;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.claims li{cursor:pointer;background:#ffffff08;border:1px solid #c9a25b40;border-radius:5px;align-items:center;gap:10px;padding:7px 10px;display:flex}.claims li:hover{border-color:#c9a25b99}.claims li.on{border-color:var(--gold);background:#c9a25b2e}.claims li.cant{opacity:.45}.claims .tick{color:#1d1710;border:1px solid #c9a25b99;border-radius:4px;flex:none;place-items:center;width:22px;height:22px;font-weight:700;display:grid}.claims li.on .tick{background:var(--gold)}.claims .cn{flex-direction:column;flex:1;display:flex}.claims .cn small{color:var(--ink-dim);font-size:14.5px}.claims .price{font-family:var(--display);color:var(--gold);text-align:right;min-width:40px;font-size:19px}.claims .price:after{content:" pts";color:var(--ink-dim);font-size:12px}.peace-dialog .terms p{margin:8px 0 0;font-size:16.5px}.peace-dialog .row{justify-content:flex-end}.report .score-line{color:var(--gold);margin:4px 0 0}.ev.fighting{pointer-events:none}.ev.fighting circle{fill:#961e14f2;stroke:#ffd7a0;stroke-width:1.2px}.ev.fighting circle.pulse{fill:none;stroke:#ff8a60;stroke-width:1.5px;transform-origin:50%;transform-box:fill-box;animation:1.4s ease-out infinite fightpulse}@keyframes fightpulse{0%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(1.9)}}.ev.fighting text{text-anchor:middle;fill:#fff;font-size:10px}.ev.fighting text.lbl{font-family:var(--display);paint-order:stroke;stroke:#000c;stroke-width:1.6px;font-size:6.5px;font-weight:700}.ev.fighting rect{stroke:none}.ev.fighting .tug-bg{fill:#0009;stroke:#ffd7a0;stroke-width:.5px}.battlebox{cursor:help;background:#961e1433;border:1px solid #ff785a99;border-radius:4px;margin:10px 0 4px;padding:8px}.battlebox .bb-head{justify-content:space-between;align-items:baseline;gap:8px;font-size:17px;display:flex}.battlebox .bb-head small{color:var(--ink-dim);font-size:14.5px}.battlebox .bb-sides{justify-content:space-between;gap:10px;margin:6px 0;display:flex}.battlebox .bs{flex-direction:column;font-size:15.5px;display:flex}.battlebox .bs:last-child{text-align:right;align-items:flex-end}.battlebox .bs b i{border-radius:2px;width:9px;height:9px;margin-right:5px;display:inline-block}.battlebox .bs small{color:var(--ink-dim);font-size:13.5px}.battlebox .tug{border:1px solid #ffd7a080;border-radius:5px;height:10px;display:flex;overflow:hidden}.battlebox .tug i{height:100%;transition:width .3s;display:block}.fatigues{color:var(--ink-dim);justify-content:space-between;gap:10px;margin:0 0 8px;font-size:15.5px;display:flex}.fatigues span{cursor:help}.fatigues b{color:var(--ink)}.fatigues b.neg{color:#ff8a73}.r.war b.warn{color:#f2c46d}.r.war b.neg{color:#ff8a73}.r.war b small{margin-left:2px;font-size:11px}.r.war.peace em{color:var(--ink-dim)}
