@font-face{font-family:Oswald;src:url(/fonts/oswald-latin.woff2)format("woff2");font-weight:200 700;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+20AC,U+2122}@font-face{font-family:Oswald;src:url(/fonts/oswald-latin-ext.woff2)format("woff2");font-weight:200 700;font-display:swap;unicode-range:U+100-24F,U+1E??,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--steel:#22282e;--steel-light:#3a444d;--bevel:#7d8b96;--ink:#e9eef2;--ink-dim:#a9b4bc;--accent:#f2b233;--face:"Oswald", "Arial Narrow", sans-serif}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);font-family:var(--face);overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:#14181c;margin:0;overflow:hidden}#app{--side:0px;--bottom:calc(128px + env(safe-area-inset-bottom));position:fixed;inset:0}@media (min-width:701px) and (min-aspect-ratio:1){#app{--side:calc(212px + env(safe-area-inset-right));--bottom:0px}}#view{width:calc(100% - var(--side));height:calc(100% - var(--bottom));touch-action:none;display:block;position:absolute;top:0;left:0}button{touch-action:manipulation}.topbar{top:max(12px, env(safe-area-inset-top));left:max(12px, env(safe-area-inset-left));max-width:calc(100% - var(--side) - 24px);white-space:nowrap;pointer-events:none;align-items:center;gap:14px;padding:6px 8px 6px 16px;display:flex;position:absolute}.topbar .brand{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-size:22px;font-weight:700}.topbar .date,.topbar .phase{letter-spacing:.15em;text-transform:uppercase;font-size:15px}.topbar .phase{color:var(--ink-dim)}.resources{letter-spacing:.06em;gap:14px;font-size:15px;display:flex}.resource{pointer-events:auto;align-items:baseline;gap:5px;display:flex}.resource-label{color:var(--ink-dim)}.resource-change{color:#8fd07a;font-size:12px}.resource-change.falling,.resource.dry .resource-value{color:#ff7a66}.end-turn{min-height:40px;font-family:var(--face);letter-spacing:.15em;text-transform:uppercase;color:#1a1306;background:linear-gradient(#ffd36b, var(--accent));cursor:pointer;pointer-events:auto;border:2px solid #ffe7a8;border-bottom-color:#8a5c0c;padding:0 16px;font-size:15px;font-weight:600}.end-turn:disabled{color:var(--ink-dim);background:var(--steel-light);border-color:var(--bevel);cursor:default}.month-short{display:none}@media (max-width:560px){.topbar{gap:10px;padding-left:12px}.topbar .brand,.topbar .phase,.month-long,.resource-change{display:none}.month-short{display:inline}.resources{letter-spacing:.02em;gap:9px;font-size:14px}.topbar .date,.end-turn{letter-spacing:.08em;font-size:13px}.end-turn{padding:0 12px}}@media (max-width:340px){.resource.manpower,.resource.points{display:none}}.loading{letter-spacing:.15em;text-align:center;text-transform:uppercase;background:#14181c;place-items:center;margin:0;padding:0 24px;font-size:20px;line-height:1.6;display:grid;position:absolute;inset:0}.loading[hidden]{display:none}.card{left:max(12px, env(safe-area-inset-left));bottom:max(calc(var(--bottom) + 12px), env(safe-area-inset-bottom));max-width:min(420px, calc(100% - var(--side) - 180px));pointer-events:none;flex-direction:column;gap:8px;padding:10px 14px;display:flex;position:absolute}.card-main,.card-odds,.card-war{align-items:center;gap:12px;display:flex}.card-link{border-top:1px solid var(--bevel);flex-wrap:wrap;align-items:center;gap:6px;padding-top:8px;display:flex}.card-link-label{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);margin-right:4px;font-size:13px}.card-link-unit{min-height:34px;font-family:var(--face);letter-spacing:.04em;color:var(--ink);background:var(--steel);border:1px solid var(--bevel);cursor:pointer;pointer-events:auto;padding:0 10px;font-size:14px}.card-odds,.card-war{border-top:1px solid var(--bevel);justify-content:space-between;padding-top:8px}.card-war-note{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);font-size:14px}.card[hidden],.card-flag[hidden],.card-extra[hidden],.card-link[hidden],.card-odds[hidden],.card-war[hidden]{display:none}.card-on{font-size:15px;font-weight:600}.card-exchange{color:#ffb3a8;letter-spacing:.03em;font-size:14px}.card-attack{min-height:44px;font-family:var(--face);letter-spacing:.15em;text-transform:uppercase;color:#fff;cursor:pointer;pointer-events:auto;background:linear-gradient(#e0533f,#a3261a);border:2px solid #ff9a8a;border-bottom-color:#4d0f08;padding:0 18px;font-size:16px;font-weight:600}.float-number{letter-spacing:.04em;text-shadow:0 0 3px #000,0 2px 4px #000;pointer-events:none;opacity:0;font-size:20px;font-weight:700;animation:.9s ease-out forwards float-up;position:absolute;transform:translate(-50%,-100%)}.float-number.hit{color:#ff6a55}.float-number.miss{color:var(--ink-dim)}.float-number.heal{color:#7be36f;font-size:16px}@keyframes float-up{0%{opacity:1;transform:translate(-50%,-100%)}70%{opacity:1}to{opacity:0;transform:translate(-50%,calc(-100% - 36px))}}.card-flag{border:1px solid #11151a;flex:none;width:54px;height:36px}.card-title{letter-spacing:.04em;font-size:19px;font-weight:600}.card-sub,.card-extra{color:var(--ink-dim);font-size:14px}.card-extra{color:#8fe08a;letter-spacing:.04em}.perf-overlay{top:max(12px, env(safe-area-inset-top));right:max(calc(var(--side) + 12px), env(safe-area-inset-right));white-space:pre;color:#d8f5d0;pointer-events:none;background:#0009;margin:0;padding:8px 10px;font:12px/1.45 ui-monospace,Menlo,monospace;position:absolute}.frame,.frame-button{background:linear-gradient(var(--steel-light), var(--steel));border:2px solid var(--bevel);color:var(--ink);font-family:var(--face);border-top-color:#b9c6cf;border-bottom-color:#11151a;box-shadow:0 4px 16px #00000080}.frame-button{right:max(calc(var(--side) + 16px), env(safe-area-inset-right));bottom:max(calc(var(--bottom) + 16px), env(safe-area-inset-bottom));letter-spacing:.15em;text-transform:uppercase;cursor:pointer;min-height:44px;padding:0 20px;font-size:16px;position:absolute}.frame-button:hover,.frame-button:focus-visible{color:var(--accent);outline:none}dialog.frame{width:min(560px,100% - 32px);max-height:calc(100% - 32px);padding:20px 24px;font-size:15px;line-height:1.45}dialog.frame::backdrop{background:#0000008c}:is(dialog.frame,.title-panel) h2{letter-spacing:.15em;text-transform:uppercase;color:var(--accent);margin:0 0 12px;font-size:22px}dialog.frame ul{margin:0;padding-left:18px}dialog.frame li{margin-bottom:8px}dialog.frame .what{color:var(--ink-dim)}dialog.frame a{color:var(--ink)}dialog.frame .note{color:var(--ink-dim);margin:12px 0 16px}:is(dialog.frame,.title-panel) button{min-height:40px;font-family:var(--face);letter-spacing:.15em;text-transform:uppercase;color:var(--ink);background:var(--steel-light);border:2px solid var(--bevel);cursor:pointer;padding:0 18px;font-size:15px}.sidebar{height:var(--bottom);padding:6px max(8px, env(safe-area-inset-right)) max(6px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));border-width:2px 0 0;flex-direction:column;gap:6px;display:flex;position:absolute;bottom:0;left:0;right:0;box-shadow:0 -4px 16px #0006}.sidebar-resources{display:none}.sidebar-tabs{flex:none;gap:4px;display:flex}.sidebar-tab{min-height:28px;font-family:var(--face);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;color:var(--ink-dim);background:var(--steel);border:1px solid var(--bevel);cursor:pointer;flex:1;padding:0 6px;font-size:12px}.sidebar-tab[aria-selected=true]{color:#1a1306;background:linear-gradient(#ffd36b, var(--accent));border-color:#ffe7a8}.sidebar-grid{overscroll-behavior:contain;scrollbar-width:none;touch-action:pan-x;flex:1;gap:6px;min-height:0;display:flex;overflow:auto hidden}.sidebar-grid::-webkit-scrollbar{display:none}.build-icon{width:76px;font-family:var(--face);color:var(--ink);border:2px solid #11151a;border-top-color:var(--bevel);cursor:pointer;background:radial-gradient(circle at 50% 35%,#46525c,#1b2025 75%);flex-direction:column;flex:none;align-items:center;padding:2px 2px 3px;display:flex;position:relative}.build-icon[hidden]{display:none}.build-icon img{flex:none;width:44px;height:44px}.build-name,.build-price{text-overflow:ellipsis;white-space:nowrap;max-width:100%;line-height:1.15;overflow:hidden}.build-name{letter-spacing:.02em;font-size:12px}.build-price{color:var(--ink-dim);font-size:10px}.build-note{letter-spacing:.04em;text-align:center;text-transform:uppercase;color:var(--accent);background:#000000b8;padding:1px 2px;font-size:9px;line-height:1.2;position:absolute;top:26px;left:2px;right:2px}.build-note:empty{display:none}.build-icon[data-state=locked] img{filter:grayscale()brightness(.55)}.build-icon[data-state=short] .build-price{color:#ff7a66}.build-icon[data-state=used] img,.build-icon[data-state=short] img{opacity:.55}.build-icon:not(:disabled):hover,.build-icon:focus-visible{border-color:var(--accent);outline:none}.build-icon.picked{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent), 0 0 10px #f2b23399}.build-icon:disabled{cursor:default;opacity:.6}@media (min-width:701px) and (min-aspect-ratio:1){.topbar-resources{display:none}.sidebar{width:var(--side);height:auto;padding:max(12px, env(safe-area-inset-top)) max(10px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) 10px;border-width:0 0 0 2px;gap:10px;top:0;left:auto;box-shadow:-4px 0 16px #0006}.sidebar-resources{background:#0000004d;border:1px solid #11151a;flex-direction:column;gap:4px;padding:8px 10px;font-size:17px;display:flex}.sidebar-resources .resource{justify-content:space-between}.sidebar-resources .resource-value{margin-left:auto}.sidebar-resources .resource-change{text-align:right;min-width:44px}.sidebar-tabs{grid-template-columns:1fr 1fr;display:grid}.sidebar-grid{touch-action:pan-y;grid-template-columns:1fr 1fr;grid-auto-rows:max-content;align-content:start;display:grid;overflow:hidden auto}.build-icon{width:auto;padding:4px 4px 5px}.build-icon img{width:64px;height:64px}.build-note{top:40px}.build-name{font-size:13px}.build-price{font-size:11px}}.toasts{top:78px;left:calc((100% - var(--side)) / 2);pointer-events:none;flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;transform:translate(-50%)}.toast{letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;color:var(--accent);padding:6px 14px;font-size:14px;animation:3.2s ease-out forwards toast}@keyframes toast{0%{opacity:0;transform:translateY(-6px)}8%,80%{opacity:1;transform:none}to{opacity:0}}dialog.war-dialog p{margin:0 0 10px}.war-label{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);font-size:13px}.dialog-buttons{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}dialog.frame button.card-attack{color:#fff;background:linear-gradient(#e0533f,#a3261a);border:2px solid #ff9a8a;border-bottom-color:#4d0f08}.news-date{letter-spacing:.15em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:4px;font-size:13px}dialog.news-dialog p{margin:0 0 12px}.news-outcome{color:var(--accent)}.news-choices{flex-direction:column;gap:8px;margin-top:16px;display:flex}dialog.frame .news-choices button{text-align:left;flex-direction:column;align-items:flex-start;gap:2px;min-height:52px;padding:8px 14px;display:flex}dialog.frame .news-choices button:hover,dialog.frame .news-choices button:focus-visible{border-color:var(--accent);outline:none}.news-choice-text{letter-spacing:.02em;text-transform:none;color:var(--ink-dim);font-size:13px}:is(dialog.frame,.title-panel) button:disabled{opacity:.5;cursor:default}dialog.victory-dialog h2{font-size:28px}dialog.victory-dialog h2.defeat{color:#ff7a66}dialog.victory-dialog p{margin:0 0 14px}.victory-points{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim);grid-template-columns:auto 1fr auto;align-items:center;gap:8px 12px;font-size:14px;display:grid}.victory-points .yours{color:var(--ink)}.victory-track{border:1px solid var(--bevel);background:#00000059;height:10px}.victory-bar{background:var(--steel-light);height:100%;display:block}.victory-track.yours .victory-bar{background:linear-gradient(#ffd36b, var(--accent))}:is(dialog.frame,.title-panel) :is(button.victory-again,button.title-go,button.confirm-yes,button.title-continue){color:#1a1306;background:linear-gradient(#ffd36b, var(--accent));border:2px solid #ffe7a8;border-bottom-color:#8a5c0c}.title{padding:max(24px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));background:repeating-linear-gradient(0deg,#7d8b960f 0 1px,#0000 1px 48px),repeating-linear-gradient(90deg,#7d8b960f 0 1px,#0000 1px 48px),radial-gradient(at 50% 35%,#2b343c,#0d1013 75%);flex-direction:column;align-items:center;gap:clamp(12px,4vh,36px);display:flex;position:fixed;inset:0;overflow-y:auto}.title[hidden]{display:none}.title-brand{text-align:center;margin-top:auto}.title-brand h1{letter-spacing:.22em;text-transform:uppercase;color:var(--accent);text-shadow:0 2px #8a5c0c,0 6px 24px #000000b3;margin:0 -.22em 0 0;font-size:clamp(44px,12vw,84px);font-weight:700;line-height:1}.title-brand p{letter-spacing:.2em;text-transform:uppercase;color:var(--ink-dim);margin:10px 0 0;font-size:clamp(13px,3.4vw,17px)}.title-panel{width:min(380px,100%);margin-bottom:auto;padding:20px;font-size:15px}.title-panel.title-new,.title-panel.title-load{width:min(680px,100%)}.title-menu,.menu-list{flex-direction:column;gap:10px;display:flex}.title-panel button.title-button{letter-spacing:.2em;flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:52px;font-size:18px;display:flex}.title-panel button.title-button:hover,.title-panel button.title-button:focus-visible,dialog.frame button.menu-button:hover,dialog.frame button.menu-button:focus-visible{border-color:var(--accent);outline:none}.title-sub{letter-spacing:.06em;text-transform:none;opacity:.8;font-size:13px}.title-message{color:var(--ink-dim);margin:12px 0 0}.title-message:empty{display:none}.power-grid{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}@media (max-width:560px){.power-grid{grid-template-columns:repeat(2,1fr)}}.title-panel button.power-card{letter-spacing:.06em;background:#00000040;flex-direction:column;align-items:center;gap:4px;min-height:0;padding:12px 6px 10px;display:flex}.title-panel button.power-card[aria-pressed=true]{border-color:var(--accent);background:linear-gradient(#f2b23338,#f2b2330f)}.power-flag{border:1px solid #0009;width:66px;height:44px;margin-bottom:4px}.power-name{font-size:15px}.power-bloc{color:var(--ink-dim);font-size:12px}.power-untested{letter-spacing:.1em;color:#ffb4a6;border:1px solid #ffb4a680;padding:0 6px;font-size:11px}.setting{letter-spacing:.05em;align-items:center;gap:12px;margin:14px 0;display:flex}.setting-name{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);flex:0 0 9.5em;font-size:13px}.setting input[type=range]{min-width:0;accent-color:var(--accent);flex:1}.setting-value{text-align:right;width:3em}.setting-check{cursor:pointer}.setting-check input{width:22px;height:22px;accent-color:var(--accent);margin:0}.segments{flex:1;display:flex}:is(dialog.frame,.title-panel) button.segment{flex:1;padding:0 8px}:is(dialog.frame,.title-panel) button.segment+button.segment{margin-left:-2px}:is(dialog.frame,.title-panel) button.segment[aria-pressed=true]{color:#1a1306;background:linear-gradient(#ffd36b, var(--accent))}@media (max-width:480px){.setting:not(.setting-check){flex-wrap:wrap}.setting-name{flex-basis:100%}}.save-list{flex-direction:column;gap:6px;display:flex}.save-row{background:#00000040;border:1px solid #7d8b9680;align-items:center;gap:8px;padding:8px 10px;display:flex}.save-about{flex-direction:column;flex:1;min-width:0;display:flex}.save-slot{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim);font-size:12px}.save-label{letter-spacing:.04em;text-transform:none;font-size:16px}.save-row.empty .save-label{color:var(--ink-dim)}.save-when{color:var(--ink-dim);font-size:12px}:is(dialog.frame,.title-panel) .save-row button{padding:0 12px}dialog.frame button.save-pick{text-align:left;background:#00000040;border:1px solid #7d8b9680;flex-direction:column;align-items:flex-start;gap:0;min-height:54px;padding:8px 12px}dialog.frame button.save-pick:hover,dialog.frame button.save-pick:focus-visible{border-color:var(--accent);outline:none}.save-import{margin-right:auto}dialog.menu-dialog{width:min(340px,100% - 32px)}dialog.frame button.menu-button{width:100%;min-height:46px}dialog.confirm-dialog{width:min(420px,100% - 32px)}dialog.confirm-dialog p{margin:0}
