@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{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{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{border-top:1px solid var(--bevel);justify-content:space-between;padding-top:8px}.card[hidden],.card-flag[hidden],.card-extra[hidden],.card-link[hidden],.card-odds[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}dialog.frame 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}dialog.frame 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}}
