@font-face{font-family:Galmuri11;src:url(/fonts/Galmuri11.woff2) format("woff2");font-display:swap}@font-face{font-family:Galmuri11;font-weight:700;src:url(/fonts/Galmuri11-Bold.woff2) format("woff2");font-display:swap}@font-face{font-family:Galmuri9;src:url(/fonts/Galmuri9.woff2) format("woff2");font-display:swap}:root{--bg:#1a2348;--bg2:#223060;--panel:#fbfaf2;--ink:#2a2e44;--ink2:#5c6078;--shadow:#dcd8c8;--frame:#2f4688;--frame2:#e8c060;--hud:#121a38;--hudInk:#eef0fa;--line:#0c1228;--accent:#c8404a;--gold:#f0c050;--up:#2f9a5a;--down:#d8483e;color-scheme:light}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body,html{margin:0;padding:0;background:var(--bg);height:100%}body,html{overscroll-behavior:none}body{font-family:Galmuri11,ui-monospace,monospace;color:var(--ink);font-size:15px;line-height:1.5;background-color:var(--bg);background-image:radial-gradient(var(--bg2) 1px,transparent 1px);background-size:6px 6px;-webkit-font-smoothing:none}button,input{font-family:inherit;font-size:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation}canvas,img.face,img.ico{image-rendering:pixelated;image-rendering:crisp-edges}.ico{display:inline-block;vertical-align:-2px;margin-right:3px;flex:none}.face{display:block;flex:none}.app{max-width:480px;margin:0 auto;height:100dvh;display:flex;flex-direction:column;background:var(--bg);box-shadow:0 0 0 2px var(--line);padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);position:relative;overflow:hidden}.app.boot{align-items:center;justify-content:center}.app.boot,.hud{color:var(--hudInk)}.hud{position:relative;background:var(--hud);padding:6px 10px 8px;display:grid;grid-template-rows:22px 20px;grid-gap:2px;gap:2px;font-size:13px;flex:none}.hud .row1{display:flex;align-items:center;gap:8px;white-space:nowrap;overflow:hidden}.hud .row1 b{color:#fff;overflow:hidden;text-overflow:ellipsis}.hud .rank{background:var(--gold);color:#3a2a10;padding:0 6px;border:2px solid var(--line);font-size:12px;line-height:16px}.hud .date{margin-left:auto;color:#b8c0e0;font-size:12px}.hud .gear{background:none;border:2px solid #3a4a80;color:var(--hudInk);width:26px;height:22px;line-height:14px;padding:0}.hud .row2{display:flex;align-items:center;gap:10px;white-space:nowrap;overflow:hidden}.hud .row2 .bad{color:#ff8a8a}.hud .aps{margin-left:auto;display:flex;gap:1px}.hud .aps .ico{margin:0}.stagebox{position:relative;background:#000;border-bottom:3px solid var(--line);flex:none}.scene{width:100%;display:flex;justify-content:center;background:#000}.scene canvas{display:block}.flags{position:absolute;top:6px;left:6px;display:flex;gap:4px}.flags i{font-style:normal;font-size:12px;padding:1px 6px;border:2px solid var(--line);color:#fff}.flags .war{background:#c8404a}.flags .plague{background:#5a7a5a}.flags .famine{background:#a87a30}.savewarn{position:absolute;left:6px;right:6px;bottom:6px;background:#c8404a;color:#fff;border:2px solid var(--line);padding:4px 8px;font-size:12px}.tabs{display:grid;grid-template-columns:repeat(5,1fr);background:var(--hud);flex:none;border-bottom:3px solid var(--line)}.tabs button{background:none;border:0;border-right:2px solid var(--line);color:#a8b0d0;padding:8px 0;font-size:14px;position:relative}.tabs button:last-child{border-right:0}.tabs button.on{background:var(--frame);color:#fff;box-shadow:inset 0 -3px 0 var(--gold)}.tabs .dot{position:absolute;top:5px;right:8px;width:8px;height:8px;background:var(--accent);border:2px solid var(--line);animation:blink .8s steps(2) infinite}.panel{flex:1 1;overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:8px;-webkit-overflow-scrolling:touch}.win{background:var(--panel);border:3px solid var(--frame);border-radius:6px;box-shadow:inset 0 0 0 2px var(--frame2),inset 0 0 0 4px var(--panel),0 3px 0 var(--line);padding:10px 12px;text-shadow:1px 1px 0 var(--shadow);position:relative}.win h3{margin:0 0 6px;font-size:15px;font-weight:700}.win p{margin:4px 0}.win small{display:block;font-size:12px;color:var(--ink2);line-height:1.4}.muted{color:var(--ink2);font-size:13px}.up{color:var(--up)}.down{color:var(--down)}.row2{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.row2.total{border-top:2px solid var(--shadow);padding-top:4px;margin-top:6px}.tip{display:flex;gap:10px;align-items:flex-start}.tip b{font-size:13px;color:var(--frame)}.newsrow{font-size:13px;padding-left:12px;position:relative}.newsrow:before{content:"▸";position:absolute;left:0;color:var(--accent)}.logrow{font-size:13px}.logrow em{font-style:normal;color:var(--ink2);margin-right:4px;font-size:12px}.gbtn{display:block;width:100%;background:var(--accent);color:#fff;border:3px solid var(--line);border-radius:6px;padding:11px 6px;font-size:16px;font-weight:700;box-shadow:inset 0 -3px 0 rgba(0,0,0,.2),0 3px 0 var(--line);text-shadow:1px 1px 0 rgba(0,0,0,.25);margin-top:8px}.gbtn small{display:block;color:#ffe0d8;font-weight:400;text-shadow:none;font-size:12px}.gbtn.alt{background:#2f6a8a}.gbtn.alt small{color:#d0e8f4}.actbtn:active,.gbtn:active,.sbtn:active{transform:translateY(2px)}.actbtn:disabled,.gbtn:disabled,.sbtn:disabled{opacity:.45}.sbtn{background:#fff;border:2px solid var(--frame);border-radius:4px;padding:5px 9px;font-size:13px;box-shadow:0 2px 0 var(--shadow);text-shadow:none}.sbtn.wide{display:block;width:100%;margin-top:6px}.sbtn.on{background:var(--frame);color:#fff}.sbtn.red{border-color:var(--down);color:var(--down)}.btnrow{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;align-items:center}.owned{font-size:13px;color:var(--up);margin-right:auto}.foot{padding:0 8px 8px;flex:none}.acts{display:flex;flex-direction:column;gap:6px}.actbtn{display:flex;gap:10px;align-items:center;text-align:left;background:#fff;border:2px solid var(--frame);border-radius:4px;padding:7px 10px;box-shadow:0 2px 0 var(--shadow);text-shadow:none}.actbtn b{display:block;font-size:15px}.seg{display:inline-flex;border:2px solid var(--frame);border-radius:4px;overflow:hidden}.seg button{background:#fff;border:0;border-right:2px solid var(--frame);padding:5px 12px;font-size:13px}.seg button:last-child{border-right:0}.seg button.on{background:var(--frame);color:#fff}.seg.sub{display:grid;grid-template-columns:repeat(4,1fr);background:#fff;flex:none}.worth{color:var(--hudInk);margin:0;font-size:14px;text-align:right}.bizhead{display:flex;align-items:center;gap:8px}.bizhead>div{flex:1 1;min-width:0}.bizhead>span{white-space:nowrap;font-weight:700}.demand{display:flex;gap:4px;margin:6px 0}.demand i{font-style:normal;font-size:12px;padding:0 6px;border:2px solid var(--shadow);color:var(--ink2)}.demand i.hi{border-color:var(--up);color:var(--up)}.demand i.lo{border-color:var(--down);color:var(--down)}.demand i.now{background:var(--ink);color:#fff;border-color:var(--ink)}.crew{display:flex;flex-wrap:wrap;gap:6px}.crewbtn{display:flex;flex-direction:column;align-items:center;width:64px;background:#fff;border:2px solid var(--shadow);border-radius:4px;padding:4px 2px;font-size:12px;text-shadow:none}.crewbtn.empty{justify-content:center;color:var(--ink2);border-style:dashed;min-height:70px}.pool{display:flex;flex-direction:column;gap:4px;margin-top:6px}.pool .sbtn{text-align:left}.syn{font-size:13px;opacity:.55}.syn.on{opacity:1}.syn em{font-style:normal;color:var(--up)}.dd{font-size:13px;color:var(--frame);background:#eef2fc;border:2px solid #c8d4f0;padding:4px 8px}.spark{display:inline-flex;align-items:flex-end;gap:1px;height:16px}.spark i{width:3px;background:var(--up)}.spark i.dn{background:var(--down)}.hold{font-size:13px}.item{display:flex;align-items:center;gap:8px;padding:5px 0;border-top:2px solid var(--shadow)}.item:first-of-type{border-top:0}.item>div{flex:1 1;min-width:0}.item .ico{margin:0 4px}.ladder{display:flex;flex-wrap:wrap;gap:3px;margin-bottom:6px}.ladder i{font-style:normal;font-size:12px;padding:0 5px;border:2px solid var(--shadow);color:var(--ink2)}.ladder i.done{background:var(--shadow);color:var(--ink)}.ladder i.now{background:var(--gold);border-color:var(--line);color:#3a2a10}.req{font-size:14px;color:var(--ink2)}.req.ok{color:var(--up)}.stats{display:grid;grid-template-columns:1fr 1fr;grid-gap:4px 12px;gap:4px 12px;font-size:13px}.stats span{display:flex;align-items:center;gap:6px;white-space:nowrap}.bar{flex:1 1;height:8px;background:var(--shadow);border:2px solid var(--ink);display:inline-block;min-width:40px}.bar i{display:block;height:100%}.dlgwrap,.sheet.low{top:calc(59px + env(safe-area-inset-top) + min(100vw, 480px) * .72)!important}.dlgwrap{position:absolute;inset:0;z-index:30;justify-content:flex-start;background:rgba(12,18,40,.35)}.dlgarea,.dlginner,.dlgwrap{display:flex;flex-direction:column}.dlgarea,.dlginner{padding:8px 8px calc(10px + env(safe-area-inset-bottom));gap:10px}.dlgarea{flex:1 1;justify-content:flex-start;padding-top:22px;overflow-y:auto;position:relative}.dlg{min-height:96px;font-size:16px;line-height:1.6;cursor:pointer;margin-top:12px}.choicetab,.dlg .name{position:absolute;top:-15px;left:10px;background:var(--frame);color:#fff;padding:1px 8px;border:2px solid var(--line);border-radius:4px;font-size:13px;text-shadow:none}.dlg .more{position:absolute;right:12px;bottom:6px;color:var(--accent);animation:blink .8s steps(2) infinite}.dlg.good{border-color:var(--up)}.dlg.good .name{background:var(--up)}.dlg.bad{border-color:var(--down)}.dlg.bad .name{background:var(--down)}.choices{display:flex;flex-direction:column;gap:2px;padding-top:16px;border-color:var(--accent);margin-top:12px}.choicetab{background:var(--accent)}.choice{display:block;width:100%;text-align:left;background:none;border:0;border-top:2px solid var(--shadow);padding:8px 6px 8px 20px;position:relative;font-size:15px;line-height:1.45}.choice:first-of-type{border-top:0}.choice:before{content:"▶";position:absolute;left:3px;top:9px;color:var(--accent);font-size:11px;text-shadow:none}.choice:active{background:#fdecea}.choice:disabled{color:#a0a4b4}.choice:disabled:before{color:#c0c4d0}.choice em{font-style:normal;color:var(--frame);font-size:12px}.choice .need{color:var(--down)}.skip{position:absolute;top:0;right:8px;background:var(--hud);color:var(--hudInk);border:2px solid #3a4a80;padding:1px 8px;font-size:12px}.skip.left{right:auto;left:8px}.form label{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:14px;white-space:nowrap}.form input{flex:1 1;min-width:0;border:2px solid var(--frame);border-radius:4px;padding:5px 8px;background:#fff;font-size:16px}.form .seg button{padding:4px 14px}.trades{display:grid;grid-template-columns:1fr 1fr;grid-gap:6px;gap:6px}.pick{display:flex;flex-direction:column;align-items:flex-start;text-align:left;background:#fff;border:2px solid var(--shadow);border-radius:4px;padding:6px 8px;text-shadow:none}.pick.on{border-color:var(--accent);box-shadow:inset 0 0 0 2px #f6b0a8}.pick:last-child{grid-column:1/-1}.sheet{position:absolute;inset:0;z-index:40;background:rgba(12,18,40,.6);display:flex;justify-content:center;align-items:flex-end}.sheetin{max-height:88%;overflow-y:auto}.sheet>.win,.sheetin{width:100%;margin:0 6px calc(8px + env(safe-area-inset-bottom))}.setrow{display:flex;justify-content:space-between;align-items:center;margin:6px 0}.ending h3{font-size:18px;color:var(--accent)}.mini{text-align:center}.track{position:relative;height:34px;background:#e8e4d4;border:3px solid var(--ink);margin:12px 0 8px}.zone{position:absolute;top:0;bottom:0}.zone.ok{left:22.5%;width:55%;background:#f4e0a0}.zone.good{left:35%;width:30%;background:#a8dca0}.zone.perfect{left:44%;width:12%;background:#f0c050}.marker{position:absolute;top:-6px;bottom:-6px;width:6px;margin-left:-3px;background:var(--accent);border:2px solid var(--line)}.flash{min-height:24px;font-weight:700}.marks{display:flex;justify-content:center;gap:8px}.marks i{width:14px;height:14px;border:2px solid var(--ink);background:#fff}.marks i.good{background:var(--up)}.marks i.ok{background:var(--gold)}.marks i.miss{background:var(--down)}.titlebtns{padding:10px 14px;display:flex;flex-direction:column;gap:4px;overflow-y:auto}.titlebtns .row{display:flex;gap:8px;justify-content:center;margin-top:10px}.tagline{color:var(--gold);margin:2px 0 0;font-size:14px}.sub,.tagline{text-align:center}.sub{color:#8088b0;font-size:12px;margin:10px 0 0}.warn{color:#ffb0a8}.toast,.warn{font-size:13px;text-align:center}.toast{position:absolute;left:50%;top:calc(64px + env(safe-area-inset-top));transform:translateX(-50%);z-index:60;background:var(--hud);color:#fff;border:2px solid var(--gold);padding:5px 12px;width:max-content;max-width:92%;word-break:keep-all;pointer-events:none}@keyframes blink{50%{opacity:0}}.consent{position:fixed;left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));z-index:80;display:flex;gap:8px;align-items:center;background:#fffdf4;color:var(--ink);border:2px solid var(--line);padding:8px 10px;font-size:12px;line-height:1.4;max-width:464px;margin:0 auto}.consent p{flex:1 1;margin:0}.consent a{color:inherit}.consent-btns{display:flex;gap:6px;flex:none}.consent-btns button{font:inherit;border:2px solid var(--line);background:#fff;padding:4px 8px}.consent-btns button:last-child{background:var(--gold)}.lp{max-width:960px;margin:0 auto;padding:0 16px 40px;color:var(--hudInk)}.lp-top{display:flex;justify-content:space-between;align-items:center;padding:14px 0;font-size:13px}.lp-kicker{color:var(--gold)}.lp-lang{color:var(--hudInk);border:2px solid #3a4a80;padding:2px 10px;text-decoration:none}.lp-hero{text-align:center}.lp-logo,.lp-px,.lp-town canvas{image-rendering:pixelated;image-rendering:crisp-edges}.lp-logo{max-width:100%;height:auto}.lp h1{font-size:28px;margin:14px 0 6px;color:#fff}.lp-sub{max-width:640px;margin:0 auto;color:#c8cee8}.lp-cta{display:flex;flex-direction:column;align-items:center;gap:6px;margin:18px 0}.lp-cta .gbtn{display:inline-block;width:auto;min-width:260px;padding:12px 24px;text-decoration:none;margin:0}.lp-cta .gbtn.off{background:#4a5278;cursor:default}.lp-soon{font-size:13px;color:#a8b0d0}.lp-town{max-width:720px;margin:0 auto;display:flex;justify-content:center;border:3px solid var(--line);box-shadow:0 0 0 3px var(--frame2),0 6px 0 var(--line);background:#000}.lp-town canvas{display:block}.lp-cap{font-size:13px;color:#a8b0d0;margin-top:12px}.lp-sec{margin-top:56px}.lp-sec h2{font-size:22px;color:var(--gold);margin:0 0 14px;text-align:center}.lp-lead{max-width:680px;margin:0 auto 10px;font-size:16px;color:#dfe3f4}.lp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));grid-gap:12px;gap:12px}.lp .win{color:var(--ink)}.lp .win h3{font-size:16px;margin:0}.lp-fh{display:flex;align-items:center;gap:10px;margin-bottom:6px}.lp-cast{display:flex;gap:12px;align-items:flex-start}.lp-cast .lp-px{flex:none}.lp-nums{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));grid-gap:10px;gap:10px;text-align:center}.lp-nums div{border:2px solid #3a4a80;padding:12px 6px;background:var(--hud)}.lp-nums b{display:block;font-size:30px;color:var(--gold);line-height:1.1}.lp-nums span{font-size:13px;color:#c8cee8}.lp-faq{display:grid;grid-gap:10px;gap:10px;max-width:760px;margin:0 auto}.lp-end{text-align:center}.lp-foot{margin-top:56px;padding-top:16px;border-top:2px solid #3a4a80;display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:center;font-size:13px;color:#a8b0d0}.lp-foot a{color:inherit}@media (max-width:520px){.lp h1{font-size:22px}.lp-sec{margin-top:40px}}.stagewrap{position:relative;flex:1 1;min-height:0;display:flex;flex-direction:column;background:var(--bg)}.stagebox.full{flex:1 1;min-height:0;border-bottom:0;background:#1b2a1e}.stagebox.cut{flex:none}.scene.fill{height:100%;align-items:flex-start;background:#1b2a1e}.scene.fill canvas{cursor:pointer;touch-action:manipulation}.scene.fill canvas.pan{touch-action:none}.roamchip{top:72px;background:var(--hud);color:#fff;border:2px solid var(--gold);padding:2px 8px;font-size:12px;z-index:5;pointer-events:none;white-space:nowrap}.camctl,.roamchip{position:absolute;left:6px}.camctl{bottom:84px;display:flex;flex-direction:column;gap:2px;z-index:6}.camctl button{background:var(--hud);color:#c8d0f0;border:2px solid var(--line);width:30px;height:28px;font-size:14px;line-height:1;box-shadow:0 2px 0 var(--line)}.camctl button:disabled{opacity:.45}.camctl button.on{background:var(--gold);color:#3a2a10}.hud .row2 .gold{color:var(--gold);font-weight:700}.sheetpanel{position:absolute;left:0;right:0;bottom:0;max-height:70%;display:flex;flex-direction:column;background:var(--bg);border-top:3px solid var(--line);box-shadow:0 -3px 0 var(--frame2);z-index:20}.sheetpanel>header{flex:none;display:flex;justify-content:space-between;align-items:center;padding:5px 10px;background:var(--frame);color:#fff;font-size:15px}.sheetpanel .x{background:none;border:2px solid #fff;color:#fff;width:28px;height:24px;line-height:16px;padding:0;font-size:13px}.sheetpanel .panel{overflow-y:auto}.dock{flex:none;background:var(--hud);border-top:3px solid var(--line);padding:6px 8px 8px;display:flex;flex-direction:column;gap:6px;z-index:21}.menu{display:grid;grid-template-columns:repeat(6,1fr);grid-gap:4px;gap:4px}.mbtn{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;background:var(--panel);border:3px solid var(--frame);border-radius:6px;box-shadow:inset 0 0 0 2px var(--frame2),0 3px 0 var(--line);padding:6px 2px 4px;font-size:13px;text-shadow:1px 1px 0 var(--shadow)}.mbtn .ico{margin:0}.mbtn.on{background:var(--gold)}.mbtn:active{transform:translateY(2px);box-shadow:inset 0 0 0 2px var(--frame2),0 1px 0 var(--line)}.mbtn .dot{position:absolute;top:-5px;right:-4px;width:10px;height:10px;background:var(--accent);border:2px solid var(--line);animation:blink .8s steps(2) infinite}.dock .gbtn{margin-top:0;padding:9px 6px}.journey{position:absolute;top:8px;left:50%;transform:translateX(-50%);background:var(--hud);color:#fff;border:2px solid var(--gold);padding:4px 14px;font-size:13px;white-space:nowrap;text-align:center;pointer-events:none;z-index:5}.journey small{display:block;color:#a8b0d0;font-size:11px}.notice{top:8px;right:8px;background:var(--accent);color:#fff;border:2px solid var(--line);padding:3px 10px;font-size:13px}.notice,.wangbtn{position:absolute;box-shadow:0 2px 0 var(--line);z-index:5}.wangbtn{left:6px;bottom:6px;background:var(--panel);border:2px solid var(--frame);border-radius:4px;padding:2px 4px 0}.dlginner{padding-top:6px;overflow-y:auto}.dlginner .dlg{order:1}.dlginner .choices{order:2}.speeds .clock{background:var(--hud);color:var(--gold);border:2px solid var(--line);height:26px;line-height:22px;padding:0 7px;font-size:13px;box-shadow:0 2px 0 var(--line);margin-right:2px}.hud .mbar{position:absolute;left:0;right:0;bottom:0;height:4px;background:#101830}.hud .mbar i{display:block;height:100%;background:var(--gold)}.speeds{position:absolute;top:6px;right:6px;display:flex;gap:2px;z-index:6}.speeds button,.viewtabs button{background:var(--hud);color:#c8d0f0;border:2px solid var(--line);padding:0 6px;height:26px;min-width:30px;font-size:11px;letter-spacing:-1px;box-shadow:0 2px 0 var(--line)}.speeds button.on,.viewtabs button.on{background:var(--gold);color:#3a2a10}.viewtabs{position:absolute;right:6px;bottom:30px;display:flex;gap:2px;z-index:6}.viewtabs button{position:relative;letter-spacing:0;font-size:12px;padding:0 8px}.viewtabs button:disabled{opacity:.55}.viewtabs em{position:absolute;top:-4px;right:-3px;width:8px;height:8px;background:var(--accent);border:2px solid var(--line)}.ticker{position:absolute;left:0;right:0;bottom:0;height:24px;background:var(--hud);color:#d8def4;border:0;border-top:2px solid var(--line);font-size:12px;text-align:left;padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;z-index:5}.wangbtn{bottom:30px}.journey,.notice{top:40px}.flags{top:8px}.savewarn{bottom:30px}.toast{top:calc(100px + env(safe-area-inset-top))}.festline{background:var(--panel);color:var(--ink);border:2px solid var(--gold);padding:6px 10px;font-size:13px;line-height:1.5;margin:0}.festline b{color:var(--accent);margin-right:4px}.mbtn{font-size:12px;padding:6px 1px 4px}.seg.tolls{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:4px;gap:4px;margin:6px 0}.seg.tolls button{font-size:12px;padding:5px 2px}.dgchip{position:absolute;left:6px;top:8px;background:var(--hud);color:#fff;border:2px solid var(--gold);padding:2px 8px;font-size:12px;z-index:5}.flags .demon{background:#5a2a7a}.axes{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:4px;gap:4px;margin:8px 0;font-size:12px;text-align:center}.axes span{display:flex;flex-direction:column;gap:2px}.axes i{font-style:normal;color:var(--accent);letter-spacing:-1px;font-size:11px}.flags{top:40px}.seg.tolls button small{display:block;font-size:10px;color:#6a6e8a;line-height:1.2}.seg.tolls button.on small{color:#3a2a10}.dlg.talkend{cursor:default}.dlg .hearts{color:var(--down);font-size:15px}.talkbtns{display:flex;gap:8px;margin-top:8px}.talkbtns .sbtn{flex:1 1}.item small.fx{color:var(--up);font-weight:700}