:root{--ink:#2b2320;--paper:#f3ead3;--paper-dark:#e3d6b6;--gold:#e2ad45;--red:#b8473a;--blue:#4a6fa5;--ochre:#d6a94c;--purple:#8062b5;--green:#7fa64a;--steel:#9aa0a8;--hero:#fbfaf6;--renown:#8fb3e3;--renown-light:#c9dcf5;--coin:#f2c14e;--serif:Georgia, "Times New Roman", serif;--sans:"Avenir Next", "Segoe UI", system-ui, sans-serif}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);font-family:var(--sans);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;background:#87975e;margin:0;overflow:hidden}button{touch-action:manipulation}#scene{touch-action:none;display:block;position:fixed;inset:0}.hidden{display:none}.panel{background:var(--paper);border:2px solid var(--ink);border-radius:8px;box-shadow:0 3px #2b232059}#hud{pointer-events:none;position:fixed;inset:0}#hud.hidden{display:none}.hud-corner{flex-direction:column;gap:8px;display:flex;position:absolute;top:16px;left:16px}.hud-left{text-align:center;padding:6px 14px 8px}#time{font-family:var(--serif);font-variant-numeric:tabular-nums;font-size:28px;font-weight:700}#warlord-in{letter-spacing:.06em;text-transform:uppercase;opacity:.7;font-size:11px}#warlord-in:empty{display:none}.hud-center{flex-direction:column;gap:8px;width:min(460px,46vw);display:flex;position:absolute;top:16px;left:50%;transform:translate(-50%)}.xp,#boss{align-items:center;gap:10px;padding:6px 10px;display:flex}.xp .lvl,#boss span{font-family:var(--serif);white-space:nowrap;font-weight:700}.bar{background:var(--paper-dark);border:2px solid var(--ink);border-radius:6px;flex:1;height:12px;overflow:hidden}.xp{transition:box-shadow .12s}.xp.glow{box-shadow:0 0 0 2px var(--renown), 0 3px 0 #2b232059}.xp.glow #xp-fill{background:var(--renown-light)}#xp-fill{background:var(--renown);width:0;height:100%;transition:width .15s}#boss-state{font-family:var(--sans);text-transform:uppercase;letter-spacing:.05em;font-size:12px;font-style:normal}#boss-state.bad{color:var(--red)}#boss-state.good{color:#9b7424}#boss.hidden,#defense.hidden{display:none}#defense{align-items:center;gap:10px;padding:6px 10px;display:flex}#defense>span:first-child{font-family:var(--serif);font-weight:700}#mill-fill{background:var(--gold);width:100%;height:100%;transition:width .15s}#defense.hurt #mill-fill{background:var(--red)}#fields{gap:2px;display:flex}#fields i{border:2px solid var(--ink);background:var(--gold);border-radius:2px;width:7px;height:12px}#fields i.lost{background:var(--ink);opacity:.6}#garrisons{font-family:var(--serif);white-space:nowrap;font-weight:700}#boss-fill{background:var(--red);width:100%;height:100%}.hud-right{justify-content:center;gap:16px;padding:6px 14px;display:flex}.stat{flex-direction:column;align-items:center;display:flex}.stat span{letter-spacing:.06em;text-transform:uppercase;opacity:.7;font-size:11px}.stat b{font-family:var(--serif);font-variant-numeric:tabular-nums;font-size:26px}.stat b small{opacity:.5;font-size:14px}.stat.full b small{opacity:1}.stat.danger b{color:var(--red)}.stat.coins b{color:#b8862a}.stat.coins.pop b{animation:.35s ease-out coin-pop}@keyframes coin-pop{40%{color:var(--coin);transform:scale(1.3)}}#state{background:var(--blue);color:var(--paper);align-items:baseline;gap:10px;padding:6px 16px;transition:background .15s;display:flex;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}#state.standing{background:var(--ochre);color:var(--ink)}#state-label{font-family:var(--serif);font-size:18px;font-weight:700}#state-hint{opacity:.85;font-size:12px}#hurt{pointer-events:none;opacity:0;position:fixed;inset:0;box-shadow:inset 0 0 120px 30px #b8473a8c}#hurt.show{animation:.45s ease-out hurt}@keyframes hurt{0%{opacity:1}to{opacity:0}}#announce{text-align:center;font-family:var(--serif);color:var(--paper);text-shadow:0 2px 0 var(--ink), 0 0 12px #2b232080;pointer-events:none;opacity:0;font-size:40px;font-weight:700;position:fixed;top:26%;left:0;right:0}#announce.show{animation:5s ease-out announce}@keyframes announce{0%{opacity:0;transform:scale(.9)}6%{opacity:1;transform:scale(1)}85%{opacity:1}to{opacity:0}}.screen{-webkit-overflow-scrolling:touch;background:radial-gradient(#2b232026,#2b23208c);justify-content:center;align-items:safe center;display:flex;position:fixed;inset:0;overflow-y:auto}.screen.hidden{display:none}.panel.big{text-align:center;max-width:520px;margin:16px;padding:28px 36px 24px}.panel.big h1{font-family:var(--serif);letter-spacing:.02em;margin:0 0 10px;font-size:54px}.panel.big p{margin:8px 0;line-height:1.45}.panel.big .lead{font-family:var(--serif);font-size:20px;font-style:italic}.panel.big .prompt{margin-top:20px;font-weight:700;animation:1.6s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.45}}#camp-ui{pointer-events:none;background:radial-gradient(#0e0c1800 45%,#232b3e2e);position:fixed;inset:0}#camp-ui.hidden{display:none}.camp-title{color:var(--paper);text-shadow:0 2px #00000073;position:absolute;top:16px;left:20px}.camp-title h1{font-family:var(--serif);letter-spacing:.02em;margin:0;font-size:40px}.camp-title p{font-family:var(--serif);opacity:.85;margin:2px 0 0;font-size:16px;font-style:italic}#camp-band{align-items:center;gap:10px;padding:6px 12px;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}#camp-band>span{white-space:nowrap;letter-spacing:.06em;text-transform:uppercase;opacity:.7;font-size:11px;font-weight:700}#camp-slots,.slots{gap:6px;display:flex}.slots.big{justify-content:center;gap:10px;margin:8px 0}.slot{width:30px;height:30px;color:var(--paper);background:var(--kind);border:2px solid var(--ink);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.slots.big .slot{width:44px;height:44px}.slot.empty{opacity:.5;background:0 0;border-style:dashed}#camp-prompt{font:inherit;color:var(--ink);background:var(--gold);cursor:pointer;pointer-events:auto;white-space:nowrap;align-items:center;gap:6px;padding:5px 12px;font-size:14px;font-weight:700;display:flex;position:absolute;top:0;left:0}#camp-prompt.hidden{display:none}#camp-prompt kbd,.menu-actions kbd{font:inherit;border:1px solid var(--ink);border-radius:4px;padding:0 4px;font-size:11px}.camp-help{color:var(--paper);opacity:.75;text-shadow:0 1px #00000080;margin:0;font-size:13px;position:absolute;bottom:22px;left:20px}#camp-panel{background:#0e0c1880}.panel.big.camp-sheet{text-align:left;width:min(620px,100vw - 32px);max-width:none;max-height:calc(100dvh - 32px);overflow-y:auto}.camp-sheet h1{justify-content:center;align-items:center;gap:12px;font-size:44px;display:flex}.camp-sheet .unit-icon{color:var(--paper);background:var(--kind);border:2px solid var(--ink);border-radius:50%;padding:6px;display:inline-flex}.camp-sheet .lead,.camp-sheet .slots+.note{text-align:center}.camp-sheet h2{font-family:var(--serif);margin:18px 0 4px;font-size:22px}.roles{grid-template-columns:1fr 1fr auto;gap:8px;margin-top:14px;display:grid}.roles div{background:var(--paper-dark);border-radius:6px;padding:6px 10px}.roles span{letter-spacing:.06em;text-transform:uppercase;opacity:.7;font-size:11px}.panel.big .roles p{margin:2px 0 0;font-size:14px;line-height:1.35}.panel.big .note{opacity:.75;font-size:13px}.panel.big .note.warn{color:var(--red);opacity:1;font-weight:700}.chronicle{border-collapse:collapse;width:100%;margin-top:10px;font-size:14px}.chronicle th{letter-spacing:.06em;text-align:left;text-transform:uppercase;opacity:.7;font-size:11px}.chronicle td{border-top:1px solid var(--paper-dark);padding:4px 0}.modes{grid-template-columns:repeat(2,1fr);gap:10px;margin-top:14px;display:grid}.mode{font:inherit;text-align:left;color:var(--ink);background:var(--paper-dark);cursor:pointer;border:2px solid #0000;border-radius:6px;flex-direction:column;gap:2px;padding:14px 16px;display:flex;position:relative}.mode:hover:not(:disabled){border-color:#2b232066}.mode strong{font-family:var(--serif);font-size:26px}.mode .place{letter-spacing:.06em;text-transform:uppercase;opacity:.7;font-size:11px}.mode .text{margin-top:4px;font-size:13px;line-height:1.35}.mode kbd{font:inherit;border:1px solid var(--ink);border-radius:4px;padding:0 4px;font-size:11px;position:absolute;top:8px;right:8px}.mode:disabled{cursor:default;opacity:.45;filter:grayscale()}.camp-sheet h2 .sub{font-family:var(--sans);opacity:.7;font-size:12px;font-weight:400}.omens{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-top:8px;display:grid}.omen{font:inherit;text-align:left;color:var(--ink);background:var(--paper-dark);cursor:pointer;border:2px solid #0000;border-radius:6px;flex-direction:column;gap:2px;padding:8px 10px;display:flex}.omen strong{font-family:var(--serif);font-size:16px}.omen span{opacity:.75;font-size:12px;line-height:1.3}.omen:hover:not(:disabled){border-color:#2b232066}.omen:disabled{cursor:not-allowed;opacity:.45;filter:grayscale()}.omen.on{color:var(--paper);background:var(--red);border-color:var(--ink)}.omen.on span{opacity:.9}.howto{border-top:1px solid var(--paper-dark);margin-top:12px;padding-top:6px;font-size:14px}.menu-actions button:disabled{cursor:default;opacity:.45;transform:none}.pause-settings{justify-content:center;gap:10px;display:flex}.pause-settings .setting{margin:12px 0 0}#fade{opacity:0;pointer-events:none;background:#0e0c18;transition:opacity .35s;position:fixed;inset:0}#fade.on{opacity:1}@media (width<=640px){.camp-title h1{font-size:28px}.camp-title p{font-size:13px}.camp-help{display:none}.roles,.modes{grid-template-columns:1fr}.camp-sheet h1{font-size:34px}}.codex .perk-row.unknown{opacity:.6}.codex .perk{font-weight:700}.camp-marker{color:var(--paper);pointer-events:none;flex-direction:column;align-items:center;gap:3px;display:flex;position:absolute;top:0;left:0}.camp-marker>span{border:1px solid var(--gold);width:30px;height:30px;color:var(--gold);background:#23201dd9;border-radius:50%;place-items:center;display:grid}.camp-marker small{white-space:nowrap;background:#23201dcc;border-radius:4px;padding:2px 6px;font-size:11px}.band-editor{gap:8px;margin:10px 0;display:grid}.band-place{border:1px solid #2b232040;border-radius:6px;min-width:0;margin:0;padding:6px 8px 8px}.band-place legend{padding:0 5px;font-size:13px;font-weight:700}.band-choices{gap:6px;display:flex}.band-choice{min-height:44px;font:inherit;color:var(--ink);background:var(--paper-dark);cursor:pointer;border:2px solid #0000;border-radius:5px;flex:1;justify-content:center;align-items:center;gap:5px;padding:6px;font-size:13px;display:flex}.band-choice[aria-pressed=true]{color:var(--paper);background:var(--kind);border-color:var(--ink)}.band-choice:hover:not(:disabled),.band-choice:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.band-choice:disabled{opacity:.4;cursor:default}.camp-marker.hidden{display:none}#map-ui{pointer-events:none;position:fixed;inset:0}#map-ui.hidden,#site-prompt.hidden{display:none}#map-ui .camp-title{padding:8px 18px 10px;top:14px;left:16px}#map-ui .camp-title h1,#map-ui .camp-title p,#map-ui .camp-help{color:var(--ink);text-shadow:none}#site-prompt{text-align:center;pointer-events:auto;cursor:pointer;flex-direction:column;gap:3px;width:240px;padding:10px 14px 12px;display:flex;position:absolute;top:0;left:0}#site-prompt .num{letter-spacing:.08em;text-transform:uppercase;opacity:.6;font-size:11px}#site-prompt strong{font-family:var(--serif);font-size:19px}#site-prompt p{margin:0;font-size:13px;line-height:1.35}#site-prompt .go,#site-prompt .locked{margin-top:4px;font-size:13px;font-weight:700}#site-prompt .go{color:#9a6b12}#site-prompt .locked{opacity:.6}#site-prompt kbd{font:inherit;border:1px solid var(--ink);border-radius:4px;padding:0 4px;font-size:11px}#site-prompt.site-open{box-shadow:0 0 0 2px var(--gold), 0 3px 0 #2b232059}#site-prompt.site-done .num{color:var(--blue);opacity:1}#site-prompt.site-locked{background:var(--paper-dark)}#pause{background:#2b232080}.panel.big.pause-panel{text-align:left;flex-direction:column;width:min(760px,100vw - 32px);max-width:none;max-height:calc(100dvh - 32px);display:flex;overflow-y:auto}.pause-perks-scroll{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:linear-gradient(var(--paper) 30%, #f3ead300) center top, linear-gradient(#f3ead300, var(--paper) 70%) center bottom, radial-gradient(farthest-side at 50% 0, #2b23204d, transparent) center top, radial-gradient(farthest-side at 50% 100%, #2b23204d, transparent) center bottom;background-repeat:no-repeat;background-size:100% 40px,100% 40px,100% 14px,100% 14px;background-attachment:local,local,scroll,scroll;flex:0 auto;min-height:0;overflow-y:auto}.pause-perks-scroll:has(.empty){background:0 0}.pause-panel h1{text-align:center}.pause-panel h2{font-family:var(--serif);margin:18px 0 2px;font-size:22px}#pause-stats{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}#pause-stats div{background:var(--paper-dark);border-radius:6px;flex-direction:column;padding:6px 8px;display:flex}#pause-stats span,#pause-perks h3{letter-spacing:.06em;text-transform:uppercase;opacity:.7;font-size:11px}#pause-stats strong{font-family:var(--serif);font-size:22px}#pause-stats em{opacity:.75;font-size:11px;font-style:normal}#pause-hero{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}#pause-hero div{border:1px solid var(--paper-dark);border-radius:6px;flex-direction:column;flex:1 1 0;min-width:96px;padding:4px 8px;display:flex}#pause-hero span{letter-spacing:.06em;text-transform:uppercase;opacity:.7;font-size:10px}#pause-hero strong{font-family:var(--serif);font-size:16px}#pause-hero small{opacity:.7;font-size:11px}#pause-hero em{font-size:11px;font-style:normal}#pause-hero em.up{color:var(--green)}#pause-hero em.down{color:var(--red)}#pause-perks{column-count:2;column-gap:24px}#pause-perks section{break-inside:avoid;margin-bottom:10px}#pause-perks h3{margin:10px 0 4px}.perk-row{border-top:1px solid var(--paper-dark);align-items:flex-start;gap:10px;padding:6px 0;display:flex}.perk-row strong{font-family:var(--serif);font-size:16px}.perk-row em{opacity:.6;font-size:11px;font-style:normal}.panel.big .perk-row p{margin:2px 0 0;font-size:13px;line-height:1.35}.perk-row .perk{flex:none}#pause-perks .empty{opacity:.7}.pause-actions,.menu-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:18px;display:flex}.pause-actions button,.menu-actions button{font:inherit;color:var(--ink);background:var(--paper);border:2px solid var(--ink);box-shadow:0 3px 0 var(--ink);cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:8px 18px;font-weight:700;display:inline-flex}.pause-actions button:first-child,.menu-actions button:first-child,#result-continue{background:var(--gold)}.menu-actions button.hidden{display:none}.pause-actions button:hover,.menu-actions button:hover{transform:translateY(-1px)}.pause-actions button:active,.menu-actions button:active{box-shadow:0 1px 0 var(--ink);transform:translateY(2px)}.controls{text-align:left;grid-template-columns:auto auto;justify-content:center;gap:4px 14px;margin:12px 0 0;font-size:14px;display:grid}.controls dt{font-weight:700}.controls dd{margin:0}.pause-actions kbd{font:inherit;border:1px solid var(--ink);border-radius:4px;padding:0 4px;font-size:11px}#result.win h1{color:#9b7424}#result-stats{grid-template-columns:1fr 1fr;gap:10px;margin:16px 0 6px;display:grid}#result-stats div{background:var(--paper-dark);border-radius:6px;flex-direction:column;padding:8px;display:flex}#result-stats span{letter-spacing:.06em;text-transform:uppercase;opacity:.7;font-size:11px}#result-stats strong{font-family:var(--serif);font-size:28px}#result .panel.big{width:min(560px,100vw - 32px);max-width:none;max-height:calc(100dvh - 32px);overflow-y:auto}.fight{text-align:left;margin:10px 0 4px;font-size:13px}.fight .split{background:var(--ochre);border:2px solid var(--ink);border-radius:7px;height:14px;overflow:hidden}.fight .split i{background:var(--blue);height:100%;display:block}.split-labels{justify-content:space-between;margin-top:3px;font-weight:700;display:flex}.timeline{align-items:stretch;gap:1px;height:26px;margin-top:8px;display:flex}.timeline i{background:linear-gradient(to top, var(--ochre) var(--stand), var(--blue) var(--stand));border-radius:2px;flex:1}.fight table,#result-history table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin-top:10px}.fight th,.fight td,#result-history th,#result-history td{text-align:right;border-bottom:1px solid var(--paper-dark);padding:3px 6px}.fight th:first-child,.fight td:first-child,#result-history th:first-child,#result-history td:first-child{text-align:left}.fight th,#result-history th{letter-spacing:.06em;text-transform:uppercase;opacity:.7;font-size:11px}.sources{border:2px solid var(--ink);border-radius:6px;height:12px;margin-top:12px;display:flex;overflow:hidden}.legend{flex-wrap:wrap;gap:4px 12px;margin-top:6px;font-size:12px;display:flex}.legend span{align-items:center;gap:5px;display:inline-flex}.legend i{border:1px solid var(--ink);border-radius:2px;width:10px;height:10px}.src-charge{background:var(--blue)}.src-trample{background:#8a5b3b}.src-impale{background:#34507a}.src-brace{background:#22314a}.src-jab{background:#9db4d6}.src-arrow{background:var(--ochre)}.src-fire{background:#f09a3a}.src-hex{background:var(--purple)}.src-release{background:#c890ff}.src-shatter{background:#9fd0ff}.panel.big .fight .note{opacity:.8;margin:8px 0 0;font-size:12px}#result-history{text-align:left;font-size:12px}#result-history h3{font-family:var(--serif);margin:14px 0 0;font-size:16px}#pause-stats.hidden,.pause-actions>.hidden{display:none}.cards-wrap{text-align:center}.card:nth-child(2){animation-delay:70ms}.card:nth-child(3){animation-delay:.14s}@keyframes deal{0%{opacity:0;transform:translateY(40px)rotate(-4deg)scale(.9)}to{opacity:1;transform:none}}.cards-wrap h2{font-family:var(--serif);color:var(--paper);text-shadow:0 2px 0 var(--ink);margin:0 0 18px;font-size:38px;animation:.4s cubic-bezier(.2,.9,.3,1.4) both pop}#card-list,#shop-list{flex-wrap:wrap;justify-content:center;gap:16px;display:flex}.card{background:var(--paper);border:2px solid var(--ink);width:200px;min-height:230px;box-shadow:0 4px 0 var(--ink);font:inherit;color:inherit;cursor:pointer;border-radius:10px;flex-direction:column;align-items:center;gap:8px;padding:16px 16px 18px;transition:transform .1s,box-shadow .1s;animation:.34s cubic-bezier(.2,.9,.3,1.25) backwards deal;display:flex;position:relative}.card:hover{box-shadow:0 8px 0 var(--ink);transform:translateY(-4px)}.card .key{font-family:var(--serif);opacity:.5;font-weight:700;position:absolute;top:8px;left:10px}.card .glyph{border:2px solid var(--ink);background:var(--kind,var(--gold));width:56px;height:56px;color:var(--paper);border-radius:50%;justify-content:center;align-items:center;margin:6px 0 4px;display:flex}.card .crest{background:linear-gradient(120deg, var(--a) 50%, var(--b,var(--a)) 50%);border-bottom:2px solid var(--ink);border-radius:8px 8px 0 0;grid-template-columns:1fr auto 1fr;align-self:stretch;align-items:center;gap:4px 8px;margin:-16px -16px 2px;padding:7px 8px 10px;display:grid;position:relative}.card .crest .glyph{background:var(--paper);color:var(--ink);grid-area:2/2;margin:0}.card .crest .key{text-align:center;background:var(--paper);border:2px solid var(--ink);opacity:1;border-radius:50%;grid-area:1/1;justify-self:start;width:22px;height:22px;font-size:13px;line-height:18px;position:static}.state{letter-spacing:.06em;text-transform:uppercase;color:var(--ink);background:var(--paper);border:1.5px solid var(--ink);vertical-align:middle;border-radius:10px;align-items:center;gap:3px;padding:1px 6px 1px 4px;font-size:10px;font-weight:700;display:inline-flex}.card .crest .state{grid-area:1/2/auto/4;justify-self:end}.for-pikeman{--a:var(--blue);--on-a:var(--paper)}.for-archer{--a:var(--ochre);--on-a:var(--ink)}.for-mage{--a:var(--purple);--on-a:var(--paper)}.for-band{--a:var(--steel);--on-a:var(--ink)}.for-hero{--a:var(--hero);--on-a:var(--ink)}.for-coin{--a:var(--green);--on-a:var(--ink)}.for2-pikeman{--b:var(--blue)}.for2-archer{--b:var(--ochre)}.for2-mage{--b:var(--purple)}.for2-band{--b:var(--steel)}.for2-hero{--b:var(--hero)}.unit-pikeman{--kind:var(--blue)}.unit-archer{--kind:var(--ochre);--on-a:var(--ink)}.unit-mage{--kind:var(--purple)}.unit-archer .glyph{color:var(--ink)}.card.kind-recruit .glyph{border-radius:12px}.card .cost,.perk-row .cost{color:var(--red)}.card .cost,.perk-row p.cost{font-weight:700}.card .cost{font-size:13px;line-height:1.35}.card .crest .level-badge{color:var(--ink);background:var(--paper);border:2px solid var(--ink);border-radius:10px;flex-direction:column;grid-area:2/3;justify-self:start;align-items:center;gap:3px;padding:4px 6px;display:flex}.card .crest .level-badge.up{background:var(--gold)}.level-badge b{font-family:var(--serif);font-size:15px;line-height:1}.level-badge .pips{gap:3px;display:flex}.level-badge i{border:1.5px solid var(--ink);border-radius:50%;width:6px;height:6px}.level-badge i.on{background:var(--ink)}.card.kind-promotion .glyph{box-shadow:0 0 0 3px var(--paper), 0 0 0 5px var(--ink)}.card .stack{letter-spacing:.06em;opacity:.55;margin-top:auto;font-size:11px}.card-actions{justify-content:center;gap:10px;margin-top:10px;display:flex}.card-actions button{font:inherit;color:var(--ink);background:var(--paper);border:2px solid var(--ink);box-shadow:0 3px 0 var(--ink);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:6px 14px;font-weight:700;display:inline-flex}.card-actions button:disabled{opacity:.45;cursor:default}.card-actions kbd{font:inherit;border:1px solid var(--ink);border-radius:4px;padding:0 4px;font-size:11px}.card .kind{letter-spacing:.08em;text-transform:uppercase;opacity:.6;font-size:11px}.card strong{font-family:var(--serif);font-size:21px}.card .text{font-size:14px;line-height:1.4}.cards-wrap .hint{color:var(--paper);text-shadow:0 1px 0 var(--ink);margin-top:18px}.purse{color:var(--paper);text-shadow:0 1px 0 var(--ink);margin:-8px 0 16px}.purse b{font-family:var(--serif);color:var(--coin);font-size:22px}.ware{width:170px;min-height:210px}.ware .price,.card-actions .price{align-items:center;gap:4px;font-weight:700;display:inline-flex}.ware .price{font-family:var(--serif);color:#a5761f;margin-top:auto;font-size:18px}.ware .price svg,.card-actions .price svg{color:var(--coin)}.ware.blocked{cursor:default;background:var(--paper-dark)}.ware.blocked>*{opacity:.5}.ware.blocked:hover{box-shadow:0 4px 0 var(--ink);transform:none}.ware.sold>*{opacity:.3}.ware.blocked .price{font-family:var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--ink);font-size:12px}.ware-heal{--kind:var(--green)}.ware-card{--kind:var(--renown)}.ware-warHorn{--kind:#e07b39}.ware-haste{--kind:#5aa9c9}.slot-line{flex-wrap:wrap;justify-content:center;gap:6px;margin:-8px 0 14px;display:flex}.slot-chip{color:var(--on-a);background:var(--a);border:1.5px solid var(--ink);border-radius:10px;align-items:center;gap:6px;padding:2px 6px 2px 8px;font-size:12px;display:inline-flex}.slot-chip.band-full{color:var(--ink);background:var(--paper);border-style:dashed}.slot-chip .pips{gap:3px;display:inline-flex}.pip{border:1.5px solid var(--ink);box-sizing:border-box;border-radius:50%;place-items:center;width:12px;height:12px;font-size:8px;font-style:normal;font-weight:700;line-height:1;display:inline-grid}.pip.used{background:var(--paper)}.pip.open{background:color-mix(in srgb, var(--ink) 25%, transparent)}.pip.locked{color:var(--on-a);opacity:.75;border-style:dashed;border-color:currentColor}#pause-perks .slot-line{justify-content:flex-start;margin:0 0 8px}.ware[class*=for-] .glyph{background:var(--a);color:var(--on-a)}.ware .text em{opacity:.6;margin-top:4px;font-size:11px;font-style:normal;display:block}.card-actions button.on{color:var(--paper);background:var(--ink)}#card-list.choosing .card{outline:3px dashed var(--paper);outline-offset:3px}.card .seal{letter-spacing:.08em;text-transform:uppercase;color:var(--paper);background:var(--red);border:2px solid var(--ink);border-radius:10px;padding:1px 8px;font-size:11px;font-weight:700}#markers .marker{width:0;height:0;position:absolute;top:0;left:0}.marker .badge{background:var(--poi);width:32px;height:32px;color:var(--paper);border:2px solid var(--ink);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:-16px;left:-16px;box-shadow:0 2px #2b232059}.marker .arrow{border-top:7px solid #0000;border-bottom:7px solid #0000;border-left:10px solid var(--ink);transform-origin:6px 7px;position:absolute;top:-7px;left:-6px}.poi-village{--poi:var(--blue)}.poi-camp{--poi:var(--gold)}.poi-shrine{--poi:#4fa9bd}.poi-spring{--poi:var(--green)}.marker.captain{--poi:var(--red)}.marker.captain .badge{color:var(--gold)}.pick-magnet{--poi:var(--red)}.pick-glory{--poi:var(--renown)}.marker.merchant{--poi:var(--coin)}.poi-totem{--poi:var(--red)}.poi-cursed{--poi:var(--purple)}.poi-mercs{--poi:var(--coin)}.poi-tower{--poi:var(--ochre)}.marker.burning{--poi:var(--red)}.marker.site-fort{--poi:var(--coin)}.marker.site-banner{--poi:var(--blue)}.marker.site-crossbows,.marker.site-rival{--poi:var(--purple)}.marker.site-caravan{--poi:var(--coin)}.marker.site-slavers{--poi:var(--red)}.marker.exit{--poi:var(--gold)}.marker.wave,.marker.coming{--poi:var(--red)}.marker.coming .badge{transform:scale(.8)}.marker.wave.over .arrow{display:none}.pick-heal{--poi:var(--green)}.pick-haste{--poi:#5aa9c9}.pick-warHorn{--poi:#d9822f}.pick-watch{--poi:var(--ochre)}.marker.pickup .badge{border-radius:6px;width:26px;height:26px;top:-13px;left:-13px;transform:rotate(45deg)}.marker.pickup .badge svg{transform:rotate(-45deg)}.marker.pickup.expiring .badge{animation:.5s ease-in-out infinite pulse}@keyframes pop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}.setting{font:inherit;color:var(--ink);border:1px solid var(--ink);cursor:pointer;opacity:.75;background:0 0;border-radius:6px;margin:12px auto 0;padding:4px 10px;font-size:12px;display:block}.setting:hover{opacity:1}#minimap{position:absolute;top:16px;right:16px}#minimap.hidden,#minimap.fogged{display:none}#buffs{gap:8px;display:flex;position:absolute;bottom:62px;left:50%;transform:translate(-50%)}.buff{color:var(--paper);background:var(--poi);border:2px solid var(--ink);border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:13px;font-weight:700;display:inline-flex}#zoom-reset{font:inherit;color:var(--ink);cursor:pointer;pointer-events:auto;align-items:center;gap:8px;padding:6px 12px;font-size:13px;font-weight:700;display:inline-flex;position:absolute;bottom:18px;right:16px}#zoom-reset.hidden{display:none}#zoom-reset kbd{font:inherit;border:1px solid var(--ink);border-radius:4px;padding:0 4px;font-size:11px}#perks{pointer-events:auto;flex-wrap:wrap;gap:6px;max-width:34vw;display:flex;position:absolute;bottom:18px;left:16px}.perk{background:linear-gradient(120deg, var(--a,var(--kind)) 50%, var(--b,var(--a,var(--kind))) 50%);width:32px;height:32px;color:var(--on-a,var(--paper));border:2px solid var(--ink);border-radius:8px;justify-content:center;align-items:center;display:flex;position:relative;box-shadow:0 2px #2b232059}.perk b{text-align:center;min-width:16px;height:16px;color:var(--ink);background:var(--paper);border:1.5px solid var(--ink);border-radius:8px;padding:0 3px;font-size:11px;line-height:14px;position:absolute;bottom:-6px;right:-6px}@media (width<=640px){.hud-center{width:calc(100vw - 32px);top:76px}.card{width:100%;min-height:0}#pause-stats{grid-template-columns:repeat(2,1fr)}#pause-perks{column-count:1}#perks{max-width:calc(100vw - 32px);bottom:70px}.hud-corner{flex-direction:row}#minimap{transform-origin:100% 0;top:140px;transform:scale(.7)}}#spur{color:var(--ink);background:var(--paper);border:2px solid var(--ink);border-radius:999px;align-self:center;align-items:center;gap:6px;margin-left:6px;padding:2px 10px 4px;font-size:12px;font-weight:700;display:inline-flex;position:relative;overflow:hidden}#spur kbd{font:inherit;border:1px solid var(--ink);border-radius:4px;padding:0 5px;font-size:10px}#spur-fill{background:var(--ink);height:3px;position:absolute;bottom:0;left:0}#order{gap:3px;display:inline-flex}#order:empty{display:none}#order i{background:var(--kind);border:1px solid var(--ink);border-radius:50%;width:9px;height:9px}#order.joined{gap:1px}#order.joined i{width:6px;height:6px}#spur.active #order i{border-color:var(--paper)}#spur.cooling{opacity:.55}#spur.active{background:var(--ink);color:var(--paper)}#spur.active #spur-fill{background:var(--paper)}#spur.active kbd{border-color:var(--paper)}.perk.kind-trait{border-style:dashed}.card{--rarity:var(--ink);--rarity-soft:transparent}.card .rarity{letter-spacing:.08em;text-transform:uppercase;color:var(--rarity);opacity:.55;font-size:10px;font-weight:700;position:absolute;top:8px;right:10px}.card .gems{gap:4px;margin:-2px 0 2px;display:flex}.card .gems i{background:var(--rarity);border:1px solid var(--ink);opacity:.4;width:7px;height:7px;transform:rotate(45deg)}.card.rarity-common{--rarity:#8d8778;background:#fbfaf6}.card.rarity-common .gems i{opacity:1;background:#fff}.card.rarity-uncommon{--rarity:#5d6874;background:linear-gradient(var(--paper) 55%, #dfe3e8);border-color:var(--rarity);box-shadow:0 4px 0 var(--rarity)}.card.rarity-uncommon:hover{box-shadow:0 8px 0 var(--rarity)}.card.rarity-rare{--rarity:#8a6a1e;background:linear-gradient(var(--paper) 62%, #f1e2b4);border-width:3px;border-color:#c79a1c;box-shadow:0 4px #8a6a1e,0 0 0 3px #f0c83c99,0 0 22px #f5cd46bf}.card.rarity-rare:hover{box-shadow:0 8px #8a6a1e,0 0 0 3px #f0c83cbf,0 0 30px #f5cd46f2}.card.rarity-rare .glyph{box-shadow:0 0 0 3px var(--paper), 0 0 0 5px #e6bd2e}.card.rarity-rare .gems i{background:#f2cc3a}.card:is(.rarity-uncommon,.rarity-rare,.rarity-legendary) :is(.rarity,.gems i){opacity:1}.card:is(.rarity-uncommon,.rarity-rare,.rarity-legendary) .kind{color:var(--rarity);opacity:1;font-weight:700}@property --spin{syntax:"<angle>";inherits:false;initial-value:0deg}@keyframes spin{to{--spin:360deg}}@keyframes rays{to{transform:rotate(360deg)}}@keyframes legend-in{0%{opacity:0;filter:brightness(3);transform:translateY(60px)scale(.7)}60%{opacity:1;filter:brightness(1.6);transform:translateY(-8px)scale(1.12)}to{opacity:1;filter:none;transform:scale(1.06)}}@keyframes legend-glow{50%{box-shadow:0 5px #7a3206,0 0 46px 10px #ff8c28e6}}.card.rarity-legendary{--rarity:#ff9a3c;isolation:isolate;color:var(--paper);background:#c8500c;border:0;padding:18px 18px 20px;animation:.6s cubic-bezier(.2,.9,.3,1.2) backwards legend-in,2.2s ease-in-out .6s infinite legend-glow;overflow:hidden;transform:scale(1.06);box-shadow:0 5px #7a3206,0 0 26px 4px #ff8c2899}.card.rarity-legendary:hover{transform:scale(1.06)translateY(-4px)}.card.rarity-legendary:before{content:"";z-index:-2;background:conic-gradient(from var(--spin), #c8500c, #ffc27a, #f57c1f, #ffe3bd, #c8500c, #ffc27a, #f57c1f, #c8500c);animation:3s linear infinite spin;position:absolute;inset:0}.card.rarity-legendary:after{content:"";z-index:-1;background:repeating-conic-gradient(from 0deg at 50% 60px, #ff963c2e 0 9deg, transparent 9deg 18deg), radial-gradient(circle at 50% 26%, #7a3a12, #2f1c14 62%);border-radius:7px;position:absolute;inset:4px;box-shadow:0 0 0 1px #7a3206}.card.rarity-legendary .glyph{width:64px;height:64px;color:var(--ink);background:linear-gradient(#ffd9a6,#f57c1f);border-color:#7a3206;position:relative;box-shadow:0 0 0 3px #2f1c14,0 0 0 5px #ff9a3c,0 0 24px 6px #ff963cbf}.card.rarity-legendary .glyph:before{content:"";z-index:-1;background:repeating-conic-gradient(#ffbe7880 0 6deg, transparent 6deg 30deg);border-radius:50%;animation:9s linear infinite rays;position:absolute;inset:-22px;-webkit-mask:radial-gradient(circle,#000 35%,#0000 70%);mask:radial-gradient(circle,#000 35%,#0000 70%)}.card.rarity-legendary strong{color:#ffc68a;text-shadow:0 1px #2b2320,0 0 12px #ff8c28cc;font-size:19px}.card.rarity-legendary .gems i{border-color:#7a3206;box-shadow:0 0 6px #ff9a3c}.card.rarity-legendary .key{opacity:.7}.perk-row:is(.rarity-uncommon,.rarity-rare,.rarity-legendary) em{opacity:1;font-weight:700}.perk-row.rarity-uncommon em{color:#5d6874}.perk-row.rarity-rare em{color:#8a6a1e}.perk-row.rarity-legendary em{color:#c8500c}.perk.rarity-common{box-shadow:0 0 0 2px #fbfaf6}.perk.rarity-uncommon{box-shadow:0 0 0 2px #aab3bd}.perk.rarity-rare{box-shadow:0 0 0 2px #f2cc3a,0 0 8px #f5cd46e6}.perk.rarity-legendary{color:var(--ink);background:linear-gradient(#ffd9a6,#f57c1f);border-color:#7a3206;box-shadow:0 0 0 2px #ff9a3c,0 0 12px 2px #ff8c28e6}.card.rarity-legendary .crest{border-bottom-color:#7a3206;border-radius:7px 7px 0 0;margin:-14px -14px 2px}.card.rarity-legendary .crest .key{color:var(--ink)}#title{isolation:isolate;color:var(--paper);background:0 0;justify-content:flex-start;align-items:center;padding:0 clamp(24px,7vw,120px)}#title:before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(90deg,#0a0912d1 0%,#0a09128c 32%,#0a091200 62%),radial-gradient(at 70% 55%,#0a091200 40%,#0a091273 100%);transition:opacity .9s;position:fixed;inset:0}.title-side{flex-direction:column;align-items:flex-start;transition:opacity .5s,transform .6s;animation:1.1s ease-out both title-in;display:flex}#title.leaving:before,#title.leaving .title-foot{opacity:0}#title.leaving .title-side{opacity:0;transform:translate(-24px)}@keyframes title-in{0%{opacity:0;transform:translate(-16px)}}.title-side h1{font-family:var(--serif);letter-spacing:.02em;text-shadow:0 4px #0a091280;margin:0;font-size:clamp(56px,9vw,104px);font-weight:700;line-height:1}.title-lead{border-top:3px solid var(--gold);font-family:var(--serif);color:var(--paper-dark);margin:14px 0 0;padding-top:14px;font-size:clamp(17px,1.8vw,21px);font-style:italic}.title-menu{flex-direction:column;align-items:flex-start;margin-top:clamp(28px,6vh,56px);display:flex}.title-menu.hidden,.title-menu button.hidden{display:none}.title-menu h2{letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin:0 0 8px 28px;font-size:13px;font-weight:600}.title-menu button{font-family:var(--serif);color:var(--paper);text-align:left;cursor:pointer;opacity:.62;text-shadow:0 2px #0a091280;background:0 0;border:none;padding:6px 0 6px 28px;font-size:clamp(24px,2.6vw,30px);transition:opacity .15s,transform .15s,color .15s;position:relative}.title-menu button:before{content:"";background:var(--gold);border:2px solid var(--ink);width:10px;height:10px;transition:transform .15s;position:absolute;top:50%;left:4px;transform:translateY(-50%)rotate(45deg)scale(0)}.title-menu button.sel{color:var(--gold);opacity:1;transform:translate(6px)}.title-menu button.sel:before{transform:translateY(-50%)rotate(45deg)scale(1)}.title-menu [data-title=play]{font-size:clamp(30px,3.4vw,40px);font-weight:700}.title-menu button.reset{color:#e8897b}.title-menu button.reset.armed{color:var(--paper);background:var(--red);opacity:1;border-radius:6px;margin-left:22px;padding:4px 14px}.title-menu button.reset.armed:before{left:-18px}.title-menu button:disabled{cursor:default;opacity:.45}.title-foot{color:var(--paper-dark);opacity:.6;justify-content:space-between;margin:0;font-size:13px;transition:opacity .5s;display:flex;position:fixed;bottom:18px;left:clamp(24px,7vw,120px);right:24px}.title-foot kbd{font:inherit;border:1px solid;border-radius:4px;margin:0 3px;padding:0 5px;font-size:11px}#desktop-download-info{max-width:480px;font-size:14px;line-height:1.5}.title-menu [data-title=download]{font-size:clamp(16px,2vw,22px)}#viewer{position:fixed;inset:0}#viewer-scene{touch-action:none;display:block;position:absolute;inset:0}#viewer-list{width:190px;padding:6px 8px 10px;position:absolute;top:16px;bottom:16px;left:16px;overflow-y:auto}#viewer-list h3{letter-spacing:.06em;text-transform:uppercase;opacity:.7;margin:10px 4px 4px;font-size:11px}#viewer-list button{width:100%;font:inherit;text-align:left;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:4px;padding:3px 6px;font-size:13px;display:block}#viewer-list button:hover{background:var(--paper-dark)}#viewer-list button.on{background:var(--gold);font-weight:700}#viewer-bar{flex-wrap:wrap;align-items:center;gap:6px 14px;padding:8px 12px;display:flex;position:absolute;bottom:16px;left:222px;right:16px}#viewer-name{font-family:var(--serif);font-size:20px}#viewer-info{opacity:.7;font-variant-numeric:tabular-nums;font-size:12px}.viewer-tools{flex-wrap:wrap;gap:6px;margin-left:auto;display:flex}.viewer-tools button{font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--ink);cursor:pointer;border-radius:6px;padding:4px 9px;font-size:12px}.viewer-tools button.on{background:var(--gold)}.viewer-tools button:disabled{cursor:default;opacity:.4}.viewer-tools kbd{font:inherit;opacity:.6;font-size:10px}.viewer-help{color:var(--paper);text-shadow:0 1px 2px #2b2320cc;margin:0;font-size:12px;position:absolute;top:12px;right:16px}.pad-focus{outline-offset:4px;outline:4px solid #e6ac39;box-shadow:0 0 0 7px #29231f}.controller kbd,.controller .card .key,.controller .key-only,.controller .title-foot>span:first-child{display:none}.controller .title-menu .sel:not(.pad-focus){outline:none}#controller-hint{display:none}.controller #controller-hint{z-index:100;white-space:normal;text-align:center;pointer-events:none;width:max-content;max-width:calc(100vw - 32px);padding:6px 14px;font-size:13px;line-height:1.4;display:block;position:fixed;bottom:8px;left:50%;transform:translate(-50%)}.controller .title-menu button.sel:not(.pad-focus){color:inherit;opacity:.62;transform:none}.controller .title-menu button.sel:not(.pad-focus):before{transform:scale(0)}.controller .title-menu button.pad-focus{opacity:1;color:var(--gold)}html:not(.controller) .controller-only{display:none}#minimap.small{transform-origin:100% 0;transform:scale(.5)}.controller #camp-band,.controller #state,.controller #perks,.controller #zoom-reset{bottom:var(--controller-footer-height,64px)}.controller #buffs{bottom:calc(var(--controller-footer-height,64px) + 44px)}#game-version{z-index:200;color:#f3ead3;opacity:.65;text-shadow:0 1px 2px #18151c;pointer-events:none;font:10px/1.2 monospace;position:fixed;bottom:4px;right:8px}#result .menu-actions{margin-top:18px}@media (width<=640px){.panel.big{padding:20px 18px 18px}#warlord-in{letter-spacing:.03em;font-size:9px}#defense{gap:8px;padding:4px 10px}.panel.big h1{font-size:40px}#state{flex-wrap:wrap;justify-content:center;row-gap:0;max-width:calc(100vw - 32px)}#card-list,#shop-list{gap:10px}.card{text-align:left;grid-template-columns:64px 1fr;align-items:center;gap:2px 12px;padding:10px 12px 12px;display:grid}.card>*{grid-column:2}.card .glyph{grid-area:1/1/span 6;width:48px;height:48px;margin:0}.card .crest,.card.rarity-legendary .crest{border-bottom:0;border-right:2px solid var(--ink);border-radius:8px 0 0 8px;flex-direction:column;grid-area:1/1/span 6;justify-content:center;align-items:center;gap:6px;margin:-10px 0 -12px -12px;padding:8px 6px;display:flex}.card .crest .state{padding:2px}.card .crest .state b{display:none}.card .crest .level-badge{flex-direction:row;gap:3px;padding:2px 4px}.card .seal{position:absolute;top:6px;left:auto;right:8px}.card strong{font-size:18px}.card.rarity-legendary,.card.rarity-legendary:hover{transform:scale(1.02)}.card.rarity-legendary .glyph{width:48px;height:48px}.card .text{font-size:13px}.cards-wrap{width:100%;padding:16px}.cards-wrap h2{margin-bottom:12px;font-size:30px}#shop{align-items:flex-start;padding:136px 0 72px}#shop-list{gap:6px}.ware .kind{display:none}.ware{width:100%;min-height:0;padding:8px 12px 10px}.ware .glyph{width:40px;height:40px}.ware .price{margin-top:2px;font-size:16px}.purse{margin:-4px 0 10px}}@media (height<=500px){.pause-perks-scroll{flex:none;overflow-y:visible}.hud-corner,.hud-center,#minimap{top:8px}#time{font-size:22px}.cards-wrap{padding:8px 16px}.cards-wrap h2{margin-bottom:8px;font-size:26px}.card{gap:4px;min-height:0;padding:10px 12px 12px}.card .glyph{width:44px;height:44px;margin:0}.card .crest{padding-top:5px;padding-bottom:6px}@media (width>=641px){.card .crest{margin:-10px -12px 2px}}.card strong{font-size:17px}.card .text{font-size:13px}.cards-wrap .hint{display:none}#minimap{transform-origin:100% 0;transform:scale(.65)}}@media (width<=700px){#viewer-list{width:auto;max-height:30vh;top:auto;bottom:120px;right:16px}#viewer-bar{left:16px}.viewer-help{display:none}}@media (aspect-ratio<=1){#title{align-items:flex-end;padding-bottom:72px}#title:before{background:linear-gradient(#0a091200 35%,#0a091299 60%,#0a0912d9 100%)}}
