/* Use this heading class for new full-screen game windows as well. */
.game-window-centered>.small-label,.game-window-centered>h1{text-align:center}
.game-window-centered>.small-label{display:block}
.game-window-centered>.army-intro,.game-window-centered>.talents-lead,.game-window-centered.formation-panel>p{margin-right:auto;margin-left:auto;text-align:center}
.game-window-centered>.army-note{text-align:center}
.campaigns-main-window{max-width:760px;margin:24px auto 0;border:1px solid #c3a87572;background:#102019e8;box-shadow:0 18px 45px #05100b7d}
.campaigns-main-window>.campaigns-window,.campaigns-main-window>.campaign-composer{max-width:none;margin:0;border:0;box-shadow:none;background:transparent}
.campaigns-main-window>.campaign-composer{border-top:1px solid #c3a87572}
.campaigns-main-window .campaigns-active .campaign-movements{min-height:90px}
.campaign-movement-kind small{color:var(--campaign-color)}
.campaign-movement .campaign-route,.campaign-movement .campaign-arrival time{color:var(--campaign-color)}
.campaign-movement .campaign-route span:nth-child(2){color:#d7c7a4}
.campaign-movement .campaign-arrival>span{color:#cfdbcd}
.campaign-movement .campaign-arrival button{display:block;margin-left:auto}
.messages-panel .empire-feature-head{position:relative;justify-content:center;text-align:center}
.messages-panel .empire-feature-head>div{margin:0 auto}
.messages-panel .empire-feature-head img{position:absolute;right:30px;top:50%;transform:translateY(-50%)}
.message-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:24px}
.message-tabs button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:43px;padding:9px 11px;border:1px solid #c5aa7580;background:#1a3026;color:#f1deae;font:700 11px Arial,sans-serif;letter-spacing:.05em;cursor:pointer}
.message-tabs button[aria-selected=true],.message-tabs button:hover{background:#ac9061;color:#102019}
.message-tabs span{display:grid;place-items:center;min-width:21px;height:21px;padding:1px 5px;border:1px solid currentColor;border-radius:50%;font-size:9px}
.message-list{display:grid;gap:11px}.message-empty{margin:0;padding:28px 16px;border:1px solid #c5aa7550;background:#12271ee8;color:#d8dfd0;text-align:center;font-size:13px}
.message-entry{padding:16px 18px;border:1px solid #c5aa757a;background:#142a21e8;color:#e5e9dc}.message-entry>div:first-child{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.message-entry strong{color:#f4dda7;font:500 17px Cinzel,Georgia,serif}.message-entry time{color:#bac9bb;font-size:10px;white-space:nowrap}.message-entry p{margin:9px 0 0;color:#d1dbce;font-size:12px;line-height:1.5}.message-report-group{margin-top:13px;padding-top:10px;border-top:1px solid #c5aa7540}.message-report-group h3{margin:0;color:#e9d09b;font:500 13px Cinzel,Georgia,serif}
.battle-report{margin-top:12px}.battle-outcome{font:600 14px Cinzel,Georgia,serif!important}.battle-outcome-victory{color:#a7dda0!important}.battle-outcome-defeat{color:#e9a49b!important}.battle-outcome-draw{color:#e9d09b!important}.battle-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:14px 0}.battle-summary>div{padding:10px 12px;border:1px solid #c5aa7540;background:#091b1580}.battle-summary span{color:#e9d09b;font-size:10px;text-transform:uppercase;letter-spacing:.08em}.battle-summary p{margin:5px 0 0}.battle-duration{color:#c5cbbd!important}.battle-timeline{padding:10px 12px;border:1px solid #c5aa7555}.battle-timeline summary,.battle-round summary{cursor:pointer;color:#f0d697}.battle-round{margin-top:9px;padding:8px 10px;border-top:1px solid #c5aa753b}.battle-round summary{font-size:12px}.battle-round ol{margin:10px 0 0;padding-left:22px;color:#d1dbce;font-size:11px;line-height:1.65}.battle-round li strong{font:600 11px Georgia,serif;color:#e9d09b}
.battle-formations{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}.battle-formations>div{padding:10px;border:1px solid #c5aa7540;background:#091b1580}.battle-formations h4{margin:0 0 7px;color:#e9d09b;font:600 12px Cinzel,Georgia,serif}.battle-formations>div>div{display:grid;grid-template-columns:45px 1fr;gap:5px;border-top:1px solid #c5aa752b;padding:5px 0}.battle-formations span{font-size:10px;color:#e9d09b}.battle-formations p{margin:0!important;font-size:11px!important}
@media(max-width:700px){.battle-summary{grid-template-columns:1fr}.battle-round summary{line-height:1.5}}
@media(max-width:700px){.battle-formations{grid-template-columns:1fr}}
.storage-alert-backdrop{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:18px;background:#07110bba;backdrop-filter:blur(4px)}.storage-alert{width:min(440px,100%);max-height:90vh;overflow:auto;padding:25px;border:1px solid #d0b478;background:#12281e;color:#f2ead8;box-shadow:0 24px 70px #000c}.storage-alert h2{margin:7px 0 10px;font:500 26px Cinzel,Georgia,serif}.storage-alert p{font-size:12px;line-height:1.6;color:#cfdbce}.storage-alert ul{list-style:none;margin:18px 0;padding:0}.storage-alert li{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid #d0b47845}.storage-alert li img{width:34px;height:34px}.storage-alert li span{display:grid;gap:3px}.storage-alert li strong{text-transform:capitalize;font:600 14px Cinzel,Georgia,serif}.storage-alert li small{color:#d2dbc9}.storage-alert button{margin-top:13px;min-width:160px}
@media(max-width:700px){.messages-panel .empire-feature-head img{position:static;transform:none;align-self:center;width:62px;height:62px}.message-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.message-entry>div:first-child{display:block}.message-entry time{display:block;margin-top:6px}.campaigns-main-window{margin-top:20px}.campaigns-main-window .campaigns-window-header{padding:14px}}
.special-building-modal{width:min(960px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:auto}
.special-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:20px 0}
.special-choice{position:relative;display:grid;gap:7px;padding:12px;border:1px solid #8d764e;background:#14251e;color:#f5e7c8;cursor:pointer}
.special-choice:has(input:checked){border-color:#e5bb6c;box-shadow:0 0 0 2px #bd935a}
.special-choice input{position:absolute;top:16px;left:16px;z-index:1;accent-color:#d6b16d}
.special-choice input[type=radio]{appearance:auto;width:18px;height:18px;min-width:18px;margin:0;padding:0;border:0;border-radius:50%;box-shadow:0 0 0 4px #112018bf}
.special-choice>img:first-of-type{width:100%;height:135px;object-fit:cover}
.special-choice strong,.special-choice span{padding-left:5px}
.special-choice-unit{position:absolute;right:16px;bottom:14px;width:72px;height:72px;object-fit:cover;border-radius:50%;border:2px solid #c7a467}
.special-choice-selected{display:flex;align-items:center;gap:16px;margin:18px 0;padding:12px;border:1px solid #8d764e}
.special-choice-selected img{width:105px;height:90px;object-fit:cover}
.special-choice-selected img:last-child{width:76px;height:76px;border-radius:50%}
.special-choice-selected p{margin:6px 0 0}
.special-noble{display:grid;grid-template-columns:150px minmax(0,1fr);gap:18px;margin-top:20px;padding:16px;border:1px solid #8d764e}
.special-noble>img{width:100%;height:190px;object-fit:cover;object-position:top}
.special-noble-stats{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.special-noble-stats span{padding:5px 9px;border:1px solid #7f6e4a}
.special-queue{margin-top:18px}
.special-queue-item{display:flex;align-items:center;gap:12px;padding:8px;border-top:1px solid #6c664e}
.special-queue-item img{width:48px;height:48px;object-fit:cover}
.special-queue-item button{margin-left:auto}
.game-capital-view .village-special-site{width:8%;height:13%;border:0;background:transparent;transform:translate(-50%,-50%)}
.game-capital-view .village-special-site img{width:100%;height:100%;object-fit:cover;border:2px solid #d8b46d;border-radius:50%;box-shadow:0 3px 18px #07140c}
.game-capital-view .village-special-site.planned img{filter:grayscale(.65) brightness(.8)}
@media (min-width:901px){
  .game-capital-view .village-scene-wrap{display:flex;align-items:center;justify-content:center;overflow:hidden;background:#091911}
  .game-capital-view .village-scene{width:min(100vw,150vh);height:min(100vh,66.6667vw);min-height:0;flex:none;margin:auto;aspect-ratio:3/2}
}
@media (max-width:700px){.special-choice-grid{grid-template-columns:1fr}.special-noble{grid-template-columns:1fr}.special-noble>img{max-width:170px}}
.building-guide-button{position:absolute;top:14px;right:64px;z-index:2;width:32px;height:32px;border:1px solid #d6b66c;border-radius:50%;background:#10291f;color:#f7d78c;font:700 19px Georgia,serif;cursor:pointer}
.building-guide-button:hover,.building-guide-button:focus-visible{background:#264637;outline:2px solid #d6b66c;outline-offset:2px}
.building-guide-overlay{z-index:1000}
.blacksmith-intro{margin:24px 0 18px;text-align:center}
.blacksmith-intro h2{margin:0 0 8px;font:small-caps 30px Georgia,serif;color:#f3e3c7}
.blacksmith-intro p{margin:0 auto;max-width:780px;color:#d1d4c7}
.blacksmith-roster{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,470px),1fr));gap:16px;padding-bottom:40px}
.blacksmith-unit{display:flex;gap:16px;min-width:0;padding:16px;border:1px solid #77704d;background:#0e241c}
.blacksmith-unit>img{width:105px;height:126px;object-fit:cover;flex:none;border:1px solid #77704d}
.blacksmith-unit-content{flex:1;min-width:0}
.blacksmith-unit h3{margin:0 0 8px;color:#f5e6c7;font:small-caps 24px Georgia,serif}
.blacksmith-unit p{margin:5px 0;color:#c6c7b7;font-size:12px}
.blacksmith-unit.is-locked>img{filter:grayscale(1);opacity:.55}
.blacksmith-lock{color:#e2bd76!important}
.blacksmith-tracks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:12px}
.blacksmith-track{display:flex;flex-direction:column;gap:7px;min-width:0;padding:10px;border:1px solid #5b624b;background:#142a21}
.blacksmith-track-title{display:flex;justify-content:space-between;gap:6px;color:#f1ddad;font-size:12px}
.blacksmith-research-costs{display:flex;flex-wrap:wrap;gap:6px}
.blacksmith-cost{display:inline-flex;align-items:center;gap:2px;color:#e6e2c9;font-size:11px;white-space:nowrap}
.blacksmith-cost img{width:15px;height:15px;object-fit:contain}
.blacksmith-cost.insufficient{color:#e9a18b}
.blacksmith-research-time,.blacksmith-research-status{font-size:11px;color:#d5cfaa}
.blacksmith-research-button{min-height:34px;padding:5px 7px;margin-top:auto;font-size:10px;letter-spacing:.04em}
@media(max-width:680px){.blacksmith-unit{gap:10px;padding:10px}.blacksmith-unit>img{width:72px;height:94px}.blacksmith-tracks{grid-template-columns:1fr}}
