:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%;margin:0}body{color:#e8d9b5;background:#14110d;font-family:Noto Serif SC,Songti SC,SimSun,serif}#app{grid-template-rows:1fr auto;grid-template-columns:1fr 280px;height:100%;display:grid}#world{grid-area:1/1;min-width:0;min-height:0;position:relative;overflow:hidden}#ui-root{grid-area:1/2/-1;min-height:0}#action-bar{grid-area:2/1}#world canvas{display:block}.shell{background:#1b1712;border-left:1px solid #3a3128;flex-direction:column;gap:16px;height:100%;min-height:0;padding:16px 20px;display:flex;overflow-y:auto}.shell__header,.shell__section,.shell__actions,.shell__status{flex:none}.shell__header{flex-direction:column;align-items:stretch;gap:6px;display:flex}.shell__heading{min-width:0}.shell__menu{align-self:flex-end;gap:12px;display:flex}.shell__link{color:#9a8b70;cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:13px}.shell__link:hover{color:#e8d9b5}.shell__date{color:#e8d9b5;margin:0;font-size:20px}.shell__turn{color:#9a8b70;margin:4px 0 0;font-size:13px}.shell__title{letter-spacing:2px;color:#9a8b70;margin:0 0 10px;font-size:13px;font-weight:400}.shell__factions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.shell__faction{align-items:center;gap:6px;min-width:0;font-size:15px;display:flex}.shell__swatch{border-radius:3px;flex:none;width:12px;height:12px}.shell__faction-name{min-width:0;font-family:inherit;font-size:inherit;color:inherit;text-align:left;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.shell__badge{color:#c8b48c;border:1px solid #6b5c42;border-radius:999px;flex:none;padding:1px 5px;font-size:11px}.shell__badge--destroyed{color:#c07068;border-color:#6b3a35}.shell__badge--hostile{color:#d08573;border-color:#7a4038}.shell__badge--neutral{color:#9a8b70;border-color:#4a4234}.shell__action-points{color:#e8d9b5;margin:6px 0 0;font-size:14px}.history__empty{color:#6f6250;font-size:13px}.history__list{flex-direction:column;flex:1;gap:14px;min-height:0;margin:0;padding:14px 18px 18px;list-style:none;display:flex;overflow-y:auto}.history__turn{flex-direction:column;gap:8px;display:flex}.history__date{letter-spacing:2px;color:#c8b48c;margin:0;font-size:12px}.history__faction{border-left:2px solid #2a241c;flex-direction:column;gap:4px;padding-left:10px;display:flex}.history__faction-name{color:#9a8b70;margin:0;font-size:12px}.history__actions{flex-direction:column;gap:3px;margin:0;padding:0;list-style:none;display:flex}.history__action{color:#e8d9b5;font-size:13px}.roster__body{flex-direction:column;flex:1;gap:16px;min-height:0;padding:16px 18px 18px;display:flex;overflow-y:auto}.domestic__body{flex-direction:column;flex:1;gap:14px;min-height:0;padding:16px 18px 18px;display:flex;overflow-y:auto}.domestic__section{flex-direction:column;gap:8px;display:flex}.domestic__section+.domestic__section{border-top:1px solid #2a241c;padding-top:14px}.domestic__heading{letter-spacing:1px;color:#9a8b70;margin:0;font-size:12px;font-weight:500}.domestic__row{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.domestic__label{color:#9a8b70;font-size:13px}.domestic__value{color:#e8d9b5;font-size:16px}.domestic__action{color:#c8b48c;cursor:pointer;background:#241d16;border:1px solid #574a36;border-radius:4px;align-self:flex-start;padding:4px 12px;font-family:inherit;font-size:13px}.domestic__action:hover{background:#322819}.domestic__status:empty{display:none}.site-panel__head{align-items:stretch;gap:12px;display:flex}.site-panel__art{background:#241d16;border:1px solid #3a3128;border-radius:8px;flex:none;width:72px;height:72px;position:relative;overflow:hidden}.site-panel__art-illu,.site-panel__art-illu svg{width:100%;height:100%;display:block}.site-panel__art-badge{border:2px solid #1b1712;border-radius:50%;width:10px;height:10px;position:absolute;bottom:5px;right:5px}.site-panel__info{flex-direction:column;flex:1;justify-content:center;gap:4px;min-width:0;display:flex}.site-panel__name{color:#e8d9b5;text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:17px;overflow:hidden}.site-panel__owner{color:#9a8b70;align-items:center;gap:6px;min-width:0;margin:0;font-size:12px;display:flex}.site-panel__type{flex:none}.site-panel__owner-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.site-panel__label{color:#9a8b70;white-space:nowrap;flex:none;margin:0;font-size:12px}.site-panel__station{align-items:center;gap:8px;min-width:0;display:flex}.site-panel__officers{flex-wrap:nowrap;gap:6px;min-width:0;margin:0;padding:0;list-style:none;display:flex}.site-panel__officer{color:#e8d9b5;text-overflow:ellipsis;white-space:nowrap;background:#241d16;border:1px solid #3a3128;border-radius:999px;min-width:0;padding:3px 9px;font-size:12px;overflow:hidden}.site-panel__empty{color:#6f6250;font-size:12px}.site-panel__guard{color:#c8b081;font-size:12px}.order__body{flex-direction:column;flex:1;gap:10px;min-height:0;padding:14px 18px 18px;display:flex;overflow-y:auto}.order__status{color:#9a8b70;margin:0;font-size:12px}.order__status:empty,.battle-plan__notice:empty,.site-panel__status:empty,.roster__status:empty{display:none}.order__empty{color:#6f6250;font-size:13px}.order__officers{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.order__site-row{color:#b9a87f;align-items:center;gap:8px;font-size:13px;display:flex}.order__site-row[hidden]{display:none}.order__site{color:#e8d9b5;background:#1b1712;border:1px solid #3a3128;border-radius:5px;flex:1;min-width:0;padding:4px 8px;font-family:inherit;font-size:13px}.order__head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.order__head .order__target{flex:1}.order__target{color:#e8d9b5;margin:0;font-size:14px}.order__count{letter-spacing:1px;color:#9a8b70;margin:0;font-size:12px}.order__count[hidden]{display:none}.order__actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.order__submit{color:#e8d9b5;cursor:pointer;background:#2a2219;border:1px solid #6b5c42;border-radius:6px;padding:8px 12px;font-family:inherit;font-size:13px}.order__submit:hover{background:#362c20}.order__submit:disabled{opacity:.5;cursor:not-allowed}.order__submit:disabled:hover{background:#2a2219}.order__submit[hidden]{display:none}.order__abandon{color:#9a8b70;cursor:pointer;background:0 0;border:1px solid #4a3f31;border-radius:6px;padding:8px 12px;font-family:inherit;font-size:13px}.order__abandon:hover{color:#e8d9b5;border-color:#6b5c42}.order__abandon[hidden]{display:none}.battle-plan__body{flex-direction:column;flex:1;gap:10px;min-height:0;padding:14px 18px 18px;display:flex;overflow-y:auto}.battle-plan__line{color:#b9a87f;margin:0;font-size:13px}.battle-plan__line.battle-plan__outlook{color:#e8d9b5;font-size:16px}.battle-plan__line.battle-plan__prompt{color:#e8d9b5;margin-top:2px;font-size:14px}.battle-plan__line.battle-plan__speech{color:#e8d9b5;font-size:14px}.battle-plan__line.battle-plan__verdict{color:#e8d9b5;font-size:16px}.battle-plan__line.battle-plan__note{color:#9a8b70;font-size:12px}.battle-plan__actions{flex-wrap:wrap;gap:6px;display:flex}.battle-plan__assign{color:#e8d9b5;cursor:pointer;align-items:center;gap:6px;font-size:14px;display:flex}.battle-plan__go{color:#e8d9b5;cursor:pointer;background:#2a2219;border:1px solid #6b5c42;border-radius:6px;padding:8px 12px;font-family:inherit;font-size:13px}.battle-plan__go:hover{background:#362c20}.battle__sides{flex-direction:column;gap:8px;display:flex}.battle__attacker,.battle__defender{background:#201a13;border:1px solid #2a241c;border-radius:6px;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.battle__defender{border-left:3px solid #6b5c42}.battle__side-label{letter-spacing:2px;color:#9a8b70;margin:0;font-size:12px}.battle__commander{color:#e8d9b5;margin:0;font-size:14px}.battle__officers{color:#9a8b70;margin:0;font-size:12px}.battle__stats{gap:18px;margin:6px 0 0;padding:0;list-style:none;display:flex}.battle__stat{flex-direction:column;gap:2px;display:flex}.battle__stat-label{color:#6f6250;font-size:11px}.battle__stat-value{color:#e8d9b5;font-size:15px}.battle-field{background:#201a13;border:1px solid #2a241c;border-radius:6px;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.battle-field__side{letter-spacing:1px;color:#9a8b70;flex-wrap:wrap;align-items:baseline;gap:8px;margin:0;font-size:12px;display:flex}.battle-field__side>span:first-child{margin-right:auto}.battle-field__fort{color:#d8a86a;text-align:right;flex-basis:100%}.battle-field__morale{color:#c8b081}.battle-field__row{align-items:stretch;gap:6px;display:flex}.battle-field__label{color:#6f6250;text-align:center;flex:none;align-self:center;width:26px;font-size:11px}.battle-field__clash{color:#6b5c42;text-align:center;margin:2px 0;font-size:12px}.battle-slot{background:#1b1712;border:1px solid #3a3128;border-radius:5px;flex-direction:column;flex:1;gap:3px;min-width:0;min-height:58px;padding:6px 8px;display:flex;position:relative}.battle-slot--empty{color:#4a4033;border-style:dashed;justify-content:center;align-items:center;font-size:12px}.battle-slot--movable{cursor:grab}.battle-slot--movable:hover{border-color:#6b5c42}.battle-slot--picked{border-color:#c8a35a;box-shadow:inset 0 0 0 1px #c8a35a}.battle-slot--out{opacity:.4}.battle-slot--acting{background:#2f2517;border-color:#d8b25e}.battle-slot--hit{animation:.32s ease-out battle-hit}.battle-slot--struck{animation:.32s ease-out battle-struck}@keyframes battle-hit{0%{background:#4a2620;transform:translate(0)}50%{transform:translate(-3px)}to{transform:translate(0)}}@keyframes battle-struck{0%{transform:translate(0)}50%{transform:translate(3px)}to{transform:translate(0)}}.battle-slot__head{justify-content:space-between;align-items:baseline;gap:4px;display:flex}.battle-slot__name{color:#e8d9b5;text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.battle-slot__meta{color:#9a8b70;flex:none;font-size:11px}.battle-slot__bar{background:#2a241c;border-radius:2px;height:4px;display:block;overflow:hidden}.battle-slot__fill{background:#8a7448;height:100%;transition:width .3s;display:block}.battle-slot__pace{background:#241f18;border-radius:2px;height:3px;display:block;overflow:hidden}.battle-slot__pace-fill{background:#c9a15a;height:100%;transition:width 2s linear;display:block}.battle-slot__state{color:#c8b081;font-size:10px}.battle-slot__actions{flex-wrap:wrap;gap:4px;display:flex}.battle-slot__action{color:#e8d9b5;cursor:pointer;background:#2a2219;border:1px solid #6b5c42;border-radius:4px;align-self:flex-start;padding:2px 8px;font-family:inherit;font-size:11px}.battle-slot__action:hover{background:#362c20}.battle-slot__action--attack{color:#f0c0a8;border-color:#8a4a3a}.battle-slot__action--attack:hover{background:#4a2620}.battle-slot__action--sortie{color:#d4dfb0;border-color:#5f6f42}.battle-slot__action--sortie:hover{background:#2e3520}.captives__list{flex-direction:column;margin:0;padding:6px 16px 12px;list-style:none;display:flex;overflow-y:auto}.captives__item{border-bottom:1px solid #2a241c;justify-content:space-between;align-items:baseline;gap:12px;padding:7px 0;display:flex}.captives__name{color:#e8d9b5;font-size:14px}.captives__meta{white-space:nowrap;color:#9a8b70;flex:none;font-size:12px}.prison__status:empty{display:none}.prison__list{flex-direction:column;flex:1;min-height:0;margin:0;padding:6px 16px 12px;list-style:none;display:flex;overflow-y:auto}.prison__item{border-bottom:1px solid #2a241c;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;display:flex}.prison__info{min-width:0}.prison__name{color:#e8d9b5;font-size:14px;display:block}.prison__meta{color:#9a8b70;font-size:12px;display:block}.prison__actions{flex:none;gap:6px;display:flex}.prison__empty{color:#6f6250;padding:10px 0;font-size:13px}.site-info__section{flex-direction:column;gap:8px;display:flex}.site-info__section+.site-info__section{border-top:1px solid #2a241c;padding-top:14px}.site-info__heading{letter-spacing:1px;color:#9a8b70;margin:0;font-size:12px;font-weight:500}.site-info__list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.site-info__item{justify-content:space-between;align-items:center;gap:12px;display:flex}.site-info__info{min-width:0}.site-info__name{color:#e8d9b5;font-size:14px;display:block}.site-info__meta{color:#9a8b70;font-size:12px;display:block}.site-info__progress{font-variant-numeric:tabular-nums;color:#6f6250;margin-top:2px;font-size:11px;display:block}.site-info__status:empty,.diplomacy__status:empty{display:none}.roster,.domestic,.order,.battle-plan,.prison,.diplomacy,.disband,.site-info{overflow:visible}.roster__status,.domestic__status,.order__status,.battle-plan__notice,.prison__status,.diplomacy__status,.disband__status,.site-info__status{color:#b9a986;pointer-events:none;margin-top:10px;padding:0 18px;font-size:12px;line-height:18px;position:absolute;top:100%;left:0;right:0}.diplomacy__list{flex-direction:column;flex:1;min-height:0;margin:0;padding:6px 16px 0;list-style:none;display:flex;overflow-y:auto}.diplomacy__item{border-bottom:1px solid #2a241c;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;display:flex}.diplomacy__info{align-items:baseline;gap:8px;min-width:0;display:flex}.diplomacy__name{color:#e8d9b5;font-size:14px}.diplomacy__meta{color:#9a8b70;font-size:12px}.diplomacy__empty{color:#9a8b70;padding:10px 0;font-size:12px}.picker{background:#241d16;border:1px solid #3a3128;border-radius:6px;padding:8px 10px}.picker__label{cursor:pointer;grid-template-columns:auto 1fr auto;align-items:center;gap:4px 8px;display:grid}.picker__checkbox{accent-color:#8a7448;flex:none}.picker__choose{color:#e8d9b5;cursor:pointer;background:#2b2218;border:1px solid #6b5c42;border-radius:4px;flex:none;padding:2px 10px;font-family:inherit;font-size:12px}.picker__choose:hover{background:#3a2e1f}.picker__name{color:#e8d9b5;font-size:14px}.picker__meta{white-space:nowrap;text-overflow:ellipsis;color:#9a8b70;grid-column:2/-1;font-size:12px;overflow:hidden}.picker--disabled{opacity:.55}.picker--disabled .picker__label{cursor:not-allowed}.picker__status{color:#c8b48c;white-space:nowrap;border:1px solid #574a36;border-radius:999px;justify-self:end;padding:1px 8px;font-size:11px}.picker__label--inline{cursor:default;align-items:center;gap:8px;display:flex}.picker__label--inline .picker__meta{flex:auto;grid-column:auto}.picker__label--lines{cursor:default;grid-template-columns:auto auto 1fr;align-items:center;gap:4px 8px;display:grid}.picker__label--lines .picker__meta{grid-area:1/3}.picker__label--lines .picker__status{grid-area:2/2/auto/-1;justify-self:start}.officer-action{color:#e8d9b5;cursor:pointer;background:#2a2219;border:1px solid #6b5c42;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-family:inherit;font-size:12px;display:inline-flex}.officer-action:hover:not(:disabled){background:#362c20}.officer-action:disabled{opacity:.5;cursor:not-allowed}.officer-icon{color:#d8c7a0;cursor:pointer;background:#2a2219;border:1px solid #6b5c42;border-radius:4px;justify-content:center;align-items:center;width:20px;height:20px;padding:0;display:inline-flex}.officer-icon:hover:not(:disabled){background:#362c20}.officer-icon:disabled{opacity:.5;cursor:not-allowed}.officer-icon svg{display:block}.site-panel__actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.site-panel__action{color:#f0e2bd;white-space:nowrap;cursor:pointer;background:linear-gradient(#33291c,#2a2219);border:1px solid #7a6746;border-radius:8px;align-items:center;gap:4px;padding:4px;font-family:inherit;font-size:12px;display:inline-flex}.site-panel__action:hover{background:linear-gradient(#3d3122,#322819);border-color:#8f7a53}.site-panel__action:active{transform:translateY(1px)}.site-panel__action[hidden]{display:none}.site-panel__action--primary{justify-content:center;width:72px}.site-panel__pair{gap:8px;display:flex}.site-panel__pair[hidden]{display:none}.site-panel__pair>.site-panel__action{flex:none;justify-content:center;width:72px;min-width:0}.site-panel__action:disabled,.domestic__action:disabled{opacity:.45;cursor:not-allowed}.site-panel__action:disabled:hover{background:linear-gradient(#33291c,#2a2219);border-color:#7a6746}.domestic__action:disabled:hover{background:#241d16}.action-cost{color:#d9a85f;font-size:inherit;flex:none;margin-left:6px;font-weight:600}.officer-action>.action-cost,.site-panel__action>.action-cost{margin-left:0}.action-cost:empty{display:none}.site-panel__status{color:#9a8b70;min-height:16px;margin:8px 0 0;font-size:12px}.recruit-panel__list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.recruit-panel__item{justify-content:space-between;align-items:center;gap:10px;display:flex}.recruit-panel__name{color:#f0e2bd;font-size:14px}.recruit-panel__visit{color:#f0e2bd;cursor:pointer;background:linear-gradient(#33291c,#2a2219);border:1px solid #7a6746;border-radius:8px;flex:none;padding:6px 10px;font-family:inherit;font-size:12px}.recruit-panel__visit:hover{background:linear-gradient(#3d3122,#322819);border-color:#8f7a53}.recruit-panel__visit:active{transform:translateY(1px)}.recruit-panel__status{color:#9a8b70;min-height:16px;margin:8px 0 0;font-size:12px}.recruit-panel__status:empty{display:none}.roster__section{flex-direction:column;gap:10px;display:flex}.roster__dev[hidden],.roster__officers-title[hidden],.roster__list[hidden],.roster__detail[hidden]{display:none}.roster__list,.roster__detail{flex-direction:column;gap:16px;display:flex}.roster__table-wrap{overflow-x:auto}.roster__table{table-layout:fixed;border-collapse:collapse;width:100%;font-size:13px}.roster__table th:first-child,.roster__table th:nth-child(2){width:11%}.roster__table th:nth-child(3){width:17%}.roster__table th:nth-child(4),.roster__table th:nth-child(5),.roster__table th:nth-child(6),.roster__table th:nth-child(7){width:7%}.roster__table th:nth-child(8){width:10%}.roster__table th:nth-child(9){width:13%}.roster__table th:nth-child(10),.roster__table td:nth-child(10){width:10%;padding-left:0;padding-right:0}.roster__table th{letter-spacing:1px;color:#9a8b70;text-align:center;white-space:nowrap;border-bottom:1px solid #2a241c;padding:4px 8px;font-size:12px;font-weight:400}.roster__table td{color:#e8d9b5;text-align:center;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;border-bottom:1px solid #201a13;padding:6px 8px;overflow:hidden}.roster__table tbody tr:hover{background:#211b14}.roster__row--acted td{color:#9a8b70}.roster__name{color:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-family:inherit;font-size:13px}.roster__name:hover{color:#f0e2bd;text-decoration:underline}.roster__muted{color:#6f6250}.roster__ops{flex-wrap:nowrap;justify-content:center;gap:6px;display:flex}.roster__back{color:#e8d9b5;cursor:pointer;background:#2a2219;border:1px solid #6b5c42;border-radius:999px;align-self:flex-start;padding:3px 10px;font-family:inherit;font-size:12px}.roster__back:hover{background:#362c20}.roster__detail .officer-detail__head{align-items:center;gap:14px;display:flex}.officer-detail__portrait{color:#c8b48c;background:#241d15;border:1px solid #3a3128;border-radius:8px;flex:none;justify-content:center;align-items:center;width:64px;height:64px;font-size:28px;display:flex}.officer-detail__title{align-items:baseline;gap:8px;display:flex}.officer-detail__name{color:#e8d9b5;margin:0;font-size:20px;font-weight:400}.officer-detail__role{color:#9a8b70;font-size:12px}.officer-detail__facts{grid-template-columns:auto 1fr;gap:6px 16px;margin:0;font-size:13px;display:grid}.officer-detail__facts dt{color:#9a8b70}.officer-detail__facts dd{color:#e8d9b5;margin:0}.officer-detail__loyalty{align-items:center;gap:8px;display:flex}.officer-detail__actions{flex-direction:column;align-items:flex-start;gap:8px;margin-top:4px;display:flex}.officer-detail__boosts{flex-wrap:wrap;gap:6px;display:flex}.officer-detail__dismiss{padding:6px 18px;font-size:13px}.disband__target{color:#d8c7a0;margin:0;padding:10px 16px 0;font-size:13px}.disband__body{align-items:center;gap:10px;padding:12px 16px 0;display:flex}.disband__label{color:#9a8b70;flex:none;min-width:72px;font-size:13px}.disband__slider{accent-color:#8a7448;flex:1;min-width:0}.disband__status:empty{display:none}.disband__actions{justify-content:flex-end;padding:12px 16px;display:flex}.disband__submit{color:#c8b48c;cursor:pointer;background:#241d16;border:1px solid #574a36;border-radius:4px;padding:4px 14px;font-family:inherit;font-size:13px}.disband__submit:hover{background:#322819}.site-info__body{flex-direction:column;flex:1;gap:14px;min-height:0;padding:12px 16px;display:flex;overflow-y:auto}.confirm__text,.hire__text{color:#d8c7a0;margin:0;padding:12px 16px 0;font-size:13px}.story__text{white-space:pre-line;line-height:1.9}.confirm__actions,.hire__actions{justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.confirm__button{color:#c8b48c;cursor:pointer;background:#241d16;border:1px solid #574a36;border-radius:4px;padding:4px 14px;font-family:inherit;font-size:13px}.confirm__button:hover{background:#322819}.confirm__button--primary{color:#e8d9b5;border-color:#6b5c42}.site-info__facts{grid-template-columns:44px 1fr;grid-auto-rows:26px;align-items:center;gap:10px 12px;margin:0;font-size:13px;display:grid}.site-info__facts dt{color:#9a8b70;font-size:12px}.site-info__facts dd{color:#e8d9b5;justify-content:space-between;align-items:center;gap:12px;min-width:0;margin:0;display:flex}.site-info__value{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.site-info__actions{flex:none;gap:6px;display:flex}.roster__section-title{letter-spacing:2px;color:#9a8b70;align-items:baseline;gap:8px;margin:0;font-size:12px;font-weight:400;display:flex}.roster__count{letter-spacing:0;color:#9a8b70;font-size:11px}.roster__empty{color:#6f6250;font-size:13px}.saves,.settings,.roster,.history,.domestic,.order,.battle-plan,.captives,.prison,.diplomacy,.disband,.confirm,.hire,.site-info,.system,.ending{color:#e8d9b5;background:#1b1712;border:1px solid #3a3128;border-radius:8px;width:min(420px,100% - 32px);max-height:80vh;padding:0}.order{width:min(520px,100% - 32px)}.roster{width:min(680px,100% - 32px)}.battle-plan{width:min(760px,100% - 32px)}.battle-plan .saves__head{justify-content:flex-start}.battle-plan__meta{letter-spacing:1px;color:#9a8b70;margin-left:auto;font-size:12px}.battle-plan__fight{min-height:0;position:relative}.battle-plan__main{flex-direction:column;gap:10px;min-width:0;margin-right:236px;display:flex}.battle-plan__log-box{border-left:1px solid #2a241c;flex-direction:column;gap:6px;width:220px;min-height:0;padding-left:14px;padding-right:6px;display:flex;position:absolute;top:0;bottom:0;right:0}.battle-plan__log-title{color:#9a8b70;flex:none;margin:0;font-size:12px}.battle-plan__log{scrollbar-gutter:stable;flex-direction:column;flex:1;gap:6px;min-height:0;display:flex;overflow-y:auto}.battle-plan__log>.battle-plan__line{flex:none}.battle-plan__log::-webkit-scrollbar{width:12px}.battle-plan__log::-webkit-scrollbar-track{background:#201a13;border-radius:6px}.battle-plan__log::-webkit-scrollbar-thumb{background:#9a8b70;border:3px solid #201a13;border-radius:6px}.battle-plan__log::-webkit-scrollbar-thumb:hover{background:#b3a17e}.history{width:min(560px,100% - 32px)}.history:has(.history__empty){width:min(420px,100% - 32px)}.saves[open],.settings[open],.roster[open],.history[open],.domestic[open],.order[open],.battle-plan[open],.captives[open],.prison[open],.diplomacy[open],.disband[open],.confirm[open],.hire[open],.site-info[open],.system[open],.ending[open]{flex-direction:column;display:flex}.saves::backdrop,.settings::backdrop,.roster::backdrop,.history::backdrop,.domestic::backdrop,.order::backdrop,.battle-plan::backdrop,.captives::backdrop,.prison::backdrop,.diplomacy::backdrop,.disband::backdrop,.confirm::backdrop,.hire::backdrop,.site-info::backdrop,.system::backdrop,.ending::backdrop{background:#0009}.saves__head{border-bottom:1px solid #2a241c;flex:none;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.saves__title{letter-spacing:2px;margin:0;font-size:15px;font-weight:400}.saves__head-actions{flex:none;gap:8px;display:flex}.saves__list{flex-direction:column;flex:1;min-height:0;margin:0;padding:4px 16px 12px;list-style:none;display:flex;overflow-y:auto}.saves__empty{color:#9a8b70;padding:10px 0;font-size:12px}.slot{border-bottom:1px solid #2a241c;align-items:center;gap:8px;padding:6px 0;display:flex}.slot__info{flex:1;min-width:0}.slot__name{color:#d8c7a0;font-size:13px;display:block}.slot__meta{white-space:nowrap;color:#9a8b70;font-size:11px;display:block}.slot__button,.prison__button,.site-info__button,.diplomacy__button,.saves__close{color:#c8b48c;cursor:pointer;background:#241d16;border:1px solid #574a36;border-radius:4px;flex:none;padding:3px 8px;font-family:inherit;font-size:12px}.slot__button:hover,.prison__button:hover,.site-info__button:hover,.diplomacy__button:hover,.saves__close:hover{background:#322819}.site-info__button:disabled,.diplomacy__button:disabled{color:#6f6250;cursor:default}.site-info__button:disabled:hover,.diplomacy__button:disabled:hover{background:#241d16}.system__body{flex-direction:column;gap:10px;padding:14px 16px 16px;display:flex;overflow-y:auto}.system__hint{color:#9a8b70;margin:0;font-size:12px}.system__list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.system__actions{border-top:1px solid #2a241c;flex:none;padding:12px 16px 16px;display:flex}.system__actions .confirm__button{flex:1}.scenario{background:#201a13;border:1px solid #2a241c;border-radius:6px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.scenario__info{min-width:0}.scenario__name{color:#e8d9b5;font-size:14px;display:block}.scenario__meta{color:#9a8b70;font-size:12px;display:block}.scenario__start{color:#e8d9b5;cursor:pointer;background:#2a2219;border:1px solid #6b5c42;border-radius:6px;flex:none;padding:4px 14px;font-family:inherit;font-size:13px}.scenario__start:hover{background:#362c20}.settings__option{color:#d8c7a0;cursor:pointer;align-items:center;gap:8px;padding:16px;font-size:14px;display:flex}.settings__checkbox{flex:none;margin:0}.shell__actions{flex-direction:column;gap:8px;margin-top:auto;display:flex}.shell__button{color:#e8d9b5;cursor:pointer;background:#2a2219;border:1px solid #6b5c42;border-radius:6px;padding:10px 12px;font-family:inherit;font-size:15px}.shell__button:hover{background:#362c20}.shell__status{color:#9a8b70;min-height:18px;margin:0;font-size:12px}.action-bar{background:#1b1712;border-top:1px solid #3a3128;align-items:center;gap:8px;padding:8px 12px;display:flex}.action-bar__button{color:#e8d9b5;cursor:pointer;background:#2a2219;border:1px solid #6b5c42;border-radius:6px;padding:6px 14px;font-family:inherit;font-size:14px}.action-bar__button:hover{background:#362c20}.ending__body{flex-direction:column;gap:8px;padding:20px 20px 16px;display:flex}.ending__title{letter-spacing:6px;color:#e8d9b5;margin:0;font-size:24px;font-weight:400}.ending__date{color:#9a8b70;margin:0 0 4px;font-size:13px}.ending__heading{letter-spacing:1px;color:#9a8b70;margin:6px 0 0;font-size:12px;font-weight:500}.ending__factions{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.ending__tally{color:#b9a87f;margin:0;font-size:13px}.ending__actions{border-top:1px solid #2a241c;flex:none;justify-content:flex-end;gap:10px;padding:14px 16px;display:flex}.ending__button{color:#c8b48c;cursor:pointer;background:#241d16;border:1px solid #574a36;border-radius:4px;padding:8px 16px;font-family:inherit;font-size:13px}.ending__button:hover{background:#322819}.ending__button--primary{color:#e8d9b5;background:#2a2219;border-color:#6b5c42}.start-screen,.intro-screen{z-index:1000;background:#120f0b;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0;overflow:hidden auto}.intro-screen{background:radial-gradient(circle at 50% 34%,#b0392238,#0000 42%),radial-gradient(circle at 50% 0,#2b2218,#14110d 72%)}.start-screen[hidden],.intro-screen[hidden]{display:none}.start-screen__art{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.start-screen__sun{animation:11s ease-in-out infinite alternate cover-sun-breathe}.start-screen__card{z-index:1;text-align:center;width:min(520px,100%);animation:.7s both cover-rise;position:relative}.start-screen__card:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(#0a080666,#0000 70%);position:absolute;inset:-56px -40px}.start-screen__eyebrow{letter-spacing:.34em;text-indent:.34em;color:#a08b66;justify-content:center;align-items:center;gap:14px;margin:0 0 26px;font-size:12px;display:flex}.start-screen__stroke{background:linear-gradient(90deg,#0000,#6b5738);width:clamp(26px,8vw,60px);height:1px}.start-screen__stroke:last-child{transform:scaleX(-1)}.start-screen__title{letter-spacing:.16em;text-indent:.16em;color:#f2e4c1;text-shadow:0 0 42px #c4492b4d,0 2px 8px #0000008c;margin:0;font-size:clamp(44px,11vw,92px);font-weight:400;line-height:1.14}.start-screen__subtitle{letter-spacing:.3em;text-indent:.3em;color:#bfae88;margin:18px 0 0;font-size:14px}.start-screen__divider{background:linear-gradient(90deg,#0000,#6f5734 30%,#a8845199 50%,#6f5734 70%,#0000);width:min(220px,55%);height:1px;margin:30px auto 0;position:relative}.start-screen__divider span{background:#b08a52;width:6px;height:6px;margin:-3px 0 0 -3px;position:absolute;top:50%;left:50%;transform:rotate(45deg);box-shadow:0 0 12px #c4492b8c}.start-screen__actions{flex-direction:column;gap:14px;width:min(280px,100%);margin:42px auto 0;display:flex}.start-screen__button{color:#c9b68e;letter-spacing:.24em;text-indent:.24em;cursor:pointer;background:#1e1812b8;border:1px solid #4c3f2c;border-radius:3px;padding:13px 20px;font-family:inherit;font-size:15px;transition:color .2s,border-color .2s,background .2s,box-shadow .2s,transform .2s}.start-screen__button:hover{color:#f2e4c1;background:#2c2218d9;border-color:#7d6240}.start-screen__button:focus-visible{outline-offset:3px;outline:1px solid #a88451}.start-screen__button--primary{color:#f7e8c4;background:linear-gradient(#5e3f20c7,#342416d9);border-color:#9a7340;box-shadow:0 10px 26px #0006,inset 0 1px #ffe0a024}.start-screen__button--primary:hover{background:linear-gradient(#78522bd9,#3e2b19e6);border-color:#d3a75f;transform:translateY(-1px);box-shadow:0 12px 30px #00000073,0 0 24px #c4492b38,inset 0 1px #ffe0a033}.start-screen__note{color:#8a7c63;text-shadow:0 1px 6px #000000b3;margin:24px 0 0;font-size:12px;line-height:1.8}@keyframes cover-sun-breathe{0%{opacity:.32}to{opacity:.5}}@keyframes cover-rise{0%{opacity:0;transform:translateY(12px)}}@media (prefers-reduced-motion:reduce){.start-screen__card,.start-screen__sun{animation:none}.start-screen__button{transition:none}}.intro-screen__card{background:linear-gradient(#241d16f7,#18140ff7);border:1px solid #4a3b28;border-radius:6px;width:min(640px,100%);max-height:80vh;padding:32px 36px;overflow-y:auto;box-shadow:0 24px 80px #0000008c}.intro-screen__eyebrow{letter-spacing:.4em;color:#a08b66;margin:0;font-size:12px}.intro-screen__title{letter-spacing:.2em;color:#f0e2bd;margin:6px 0 22px;font-size:30px;font-weight:600}.intro-screen__text p{color:#d8c7a0;text-indent:2em;margin:0 0 14px;font-size:15px;line-height:1.9}.intro-screen__text p:last-child{color:#e8d9b5;margin-bottom:0}.intro-screen__actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:24px;display:flex}.intro-screen__button{color:#f5e6c0;letter-spacing:.2em;text-indent:.2em;cursor:pointer;background:linear-gradient(#3a2b1a,#241d16);border:1px solid #8a6a3f;border-radius:4px;padding:10px 26px;font-family:inherit;font-size:14px}.intro-screen__button:hover{background:#44331f}.intro-screen__button--secondary{color:#c8b48c;background:#241d16;border-color:#5c4b34}.intro-screen__button--secondary:hover{color:#f0e2bd;background:#322819}@media (width<=640px){.start-screen__eyebrow{margin-bottom:20px;font-size:11px}.start-screen__subtitle{letter-spacing:.22em;text-indent:.22em}.start-screen__actions{width:min(240px,100%);margin-top:32px}.intro-screen__card{padding:24px 22px}.intro-screen__title{font-size:26px}}
