.game-icon{width:27px;height:30px;object-fit:contain;vertical-align:middle;flex:none;mix-blend-mode:multiply;user-select:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.resource-art{display:flex;align-items:center;justify-content:center;width:34px;height:32px}
.ledger .resource{justify-content:space-between;padding:5px 0}.ledger .resource .counter{margin-left:auto}
.prod-item .game-icon{width:23px;height:25px}.prod-item b{margin-top:2px}
.icon-amount{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.campaign-reward-icons{display:flex;align-items:center;justify-content:center;gap:14px;margin:10px 0}
.campaign-reward-icons .game-icon{width:30px;height:32px}
.campaign .castles{gap:9px;align-items:start}
.campaign .castle>button{display:block;width:100%;max-width:120px;margin:0 auto;padding:0}
.campaign .castle>button>img{max-height:185px;width:100%;aspect-ratio:638/1016;object-fit:contain;box-shadow:0 2px 5px #0002}
.campaign .campaign-reward{min-height:0;margin-bottom:9px;padding:6px 4px}
.campaign .campaign-prestige{flex-direction:row;align-items:center;margin:0 0 5px;gap:6px}
.campaign-prestige>span{display:flex;align-items:center;justify-content:center;gap:3px}
.campaign-prestige .game-icon{height:21px;width:21px}.campaign-prestige b{font-size:12px}
.campaign .plunder-tile{max-width:110px;margin:auto}.campaign .plunder-art{max-height:48px}
.castle-defense-panel{scroll-margin-top:12px}
.defense-disclosure{margin-bottom:18px}.defense-disclosure>summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;list-style:none;padding:13px 18px;border:1px solid var(--line);border-radius:6px;background:var(--paper,#f5f0e4);font-weight:600}.defense-disclosure>summary::-webkit-details-marker{display:none}.defense-disclosure>summary:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.defense-disclosure>summary span{font-size:12px}.defense-collapse,.defense-disclosure[open] .defense-expand{display:none}.defense-disclosure[open] .defense-collapse{display:inline}.defense-disclosure[open]>summary{margin-bottom:10px}
.defense-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(200px,1fr);gap:22px;align-items:start}
.castle-mount{position:relative;aspect-ratio:1134/1133;width:100%;max-width:600px;margin:auto;isolation:isolate}
.castle-mount-art{width:100%;height:100%;object-fit:contain;display:block;user-select:none}
.defense-slot{position:absolute;left:var(--slot-x);top:var(--slot-y);width:var(--slot-w);height:var(--slot-h);transform:translate(-50%,-50%) rotate(var(--slot-angle));padding:0!important;border:2px solid transparent;background:none;border-radius:0;z-index:1;min-width:0;min-height:0;display:grid;place-items:center}
.defense-slot img{display:block;width:100%;height:100%;object-fit:fill;pointer-events:none;user-select:none}
.defense-slot.tower{border-radius:50%}.defense-slot:disabled{opacity:1;cursor:default}
.defense-slot:disabled:hover{background:none;border-color:transparent}
.defense-slot.upgrade-target{border-color:#d6a11e;background:#f5cb4d45;box-shadow:0 0 0 3px #ffe997,0 0 15px #d29a1f;z-index:3;animation:fort-upgrade-pulse 1.3s ease-in-out infinite;cursor:pointer}
.defense-slot.upgrade-target:hover,.defense-slot.upgrade-target:focus-visible{background:#f8d76a99;border-color:#84530d;outline:3px solid #ffe997;outline-offset:3px}
@keyframes fort-upgrade-pulse{50%{box-shadow:0 0 0 3px #ffecb1,0 0 24px #d29a1f}}
.upgrade-banner{display:flex;align-items:center;flex-wrap:wrap;gap:12px;background:#f3e8bd;border:1px solid #c7a247;padding:12px 15px;border-radius:4px;margin-bottom:16px}
.upgrade-banner p{font-size:11px;margin-top:5px;line-height:1.8}.upgrade-banner>b{font-size:13px}
.upgrade-banner>button{margin-left:auto;font-size:11px;padding:6px 10px}
.upgrade-costs{display:flex;gap:10px;align-items:center}.upgrade-costs>button{display:flex;gap:7px;align-items:center;padding:6px}
.defense-supplies h3{margin:5px 0 12px}.defense-tactics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin-bottom:18px}
.tactic-supply{display:flex;flex-direction:column;gap:6px;align-items:center}.tactic-supply .game-icon{width:32px;height:34px}.tactic-supply input{width:100%;min-width:0;padding:4px;text-align:center}
.defender-sides{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:16px}
.defender-side{border:1px solid var(--line);padding:9px;border-radius:4px;min-width:0;font-size:11px}
.defender-side>span{display:flex;justify-content:space-between;margin-bottom:6px}
.defender-side>div{display:flex;gap:4px}.defender-side input{min-width:0;width:100%;padding:5px}
.defender-side button{display:flex;align-items:center;justify-content:center;flex:1;min-width:0;gap:2px;padding:4px 1px;font-size:10px}
.defender-side button .game-icon{width:18px;height:22px}.defense-correction{border-top:1px solid var(--line);margin-top:20px;padding-top:12px;font-size:11px}
.defense-correction summary{cursor:pointer}.defense-correction .field{font-size:10px;gap:5px}.defense-correction .field input{width:42px}
@media(max-width:1100px){.defense-layout{grid-template-columns:1fr;gap:16px}.castle-mount{max-width:510px}.defense-supplies{max-width:540px;margin:auto;width:100%}.defender-sides{grid-template-columns:repeat(4,minmax(0,1fr))}.defender-side>div{flex-wrap:wrap}.defender-side button{flex-basis:100%}.campaign .castle>button>img{max-height:155px}.campaign-prestige .game-icon{height:17px;width:17px}.campaign-prestige b{font-size:10px}.campaign .plunder-art{max-height:35px}}
@media(max-width:650px){.defender-sides{grid-template-columns:1fr 1fr}.defender-side button{flex-basis:auto}.ledger .resource{justify-content:center}.ledger .resource .counter{margin-left:0}.resource-art{width:23px;height:25px}.resource-art .game-icon{width:23px;height:25px}.prod-item .game-icon{width:18px;height:21px}.campaign .castle>button>img{max-height:135px}.campaign .campaign-prestige{gap:2px}.campaign .campaign-reward{padding:5px 2px}.campaign-prestige .game-icon{width:15px;height:16px}.campaign-prestige b{font-size:9px}}
@media(prefers-reduced-motion:reduce){.defense-slot.upgrade-target{animation:none}}
.campaign .game-icon{outline:none;box-shadow:none;filter:none;border-radius:0}
.paper-note.status-counters{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.status-counter{cursor:help;border-bottom:1px dotted currentColor}.status-counter:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
#paper-controls{margin-top:10px}#paper-controls .paper-modes{display:flex;flex-wrap:wrap;gap:6px}#paper-controls button{flex:1 1 70px;white-space:nowrap;font-size:10px;padding:7px 6px}.board-section-title{margin:20px 0 12px}#domain-workspace,#paths-workspace{margin-top:18px}.path-cards input{max-width:60px}
#paths-workspace .path-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,240px));justify-content:start;gap:14px}.path-goal{min-width:0}.path-goal h4{font-size:12px;margin:0 0 8px}.path-task-art{display:block;width:100%;padding:0;border:0}.path-task-art img{display:block;width:100%;height:auto;max-height:none;border-radius:4px}.path-translation{border:1px solid var(--line);background:#f3efe3;border-radius:4px;padding:12px;margin-top:8px;font-size:11px;line-height:1.8}.path-progress{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px;border-top:1px solid var(--line);padding-top:8px}.path-progress strong{font-size:17px;color:#866124;white-space:nowrap}.path-scoring-note{font-size:11px;margin-bottom:16px;color:var(--muted)}
.campaign-layout{display:grid;grid-template-columns:minmax(0,1fr) 140px;gap:14px;align-items:start}
.campaign .castles{grid-template-columns:repeat(5,minmax(88px,1fr));gap:5px;overflow-x:auto;padding:2px 2px 10px}
.campaign .castle>button{max-width:112px}.campaign .castle>button>img{max-height:178px}
.campaign-hints{border-left:1px solid var(--line);padding-left:12px}.campaign-hints h4{font-size:11px;margin:0 0 7px}.campaign-hints h4:not(:first-child){margin-top:14px}
.strength-hint{display:block;width:106px;max-width:100%;height:auto}.overwhelm-hint{display:block;width:100%;height:auto;border-radius:3px}.hint-note{font-size:10px;color:var(--muted);line-height:1.7;margin-top:8px}
.incoming-layout{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:15px;align-items:start}
.incoming .card-row{justify-content:flex-start;align-items:flex-start;overflow-x:auto;padding:4px 3px 12px;min-height:0}
.incoming .card-small{width:120px;min-width:120px;max-width:120px;flex:0 0 120px}.incoming .card-small span{font-size:10px}
.incoming .attack-art{display:block;position:relative;margin:0}.incoming .attack-strength{position:absolute;display:grid;place-items:center;min-width:22px;height:23px;padding:0 3px;margin:0;transform:translate(-50%,-50%);background:#fff4ce;border:1px solid #5f4821;border-radius:5px;font-size:15px;font-weight:800;color:#171410;box-shadow:0 1px 4px #0005;line-height:1;pointer-events:none}.incoming .attack-strength.strong{border-color:#711e18;background:#ffe0c6}.strength-0{left:50%;top:5%}.strength-1{left:92%;top:48%}.strength-2{left:50%;top:95%}.strength-3{left:8%;top:48%}.strength-all{left:50%;top:24%}.incoming .attack-strength.strength-all{font-size:12px;white-space:nowrap}.incoming .attack-possibility{position:absolute;left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:4px;white-space:nowrap;margin:0;padding:4px 6px;background:#fff4e1f2;border:1px solid #9b8051;border-radius:4px;color:#27231b;font-size:12px;font-weight:bold;pointer-events:none}.attack-possibility.normal{top:8%}.attack-possibility.strong{bottom:9%;background:#292724ed;border-color:#111;color:#fff}.incoming .attack-possibility img{display:block;width:14px;height:18px;object-fit:contain;border-radius:0;box-shadow:none}.incoming .attack-card-label{margin-top:7px}
.round-hints{border-collapse:separate;border-spacing:0;width:100%;text-align:center;font-size:11px}.round-hints caption{text-align:left;font-weight:600;margin-bottom:10px}.round-hints th,.round-hints td{padding:7px 3px;border-bottom:1px solid var(--line)}.round-hints thead th{font-size:10px}.round-hints .game-icon{display:block;width:20px;height:22px;margin:0 auto 3px}.round-hints .current-round>*{background:#f1e4bd;border-top:2px solid var(--gold);border-bottom:2px solid var(--gold)}.round-hints .current-round>:first-child{border-left:2px solid var(--gold);border-radius:4px 0 0 4px}.round-hints .current-round>:last-child{border-right:2px solid var(--gold);border-radius:0 4px 4px 0}
.defense-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,1fr);gap:18px;align-items:start}.defense-layout>.castle-mount{max-width:360px}.defense-field{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-areas:'. north north .' 'west west east east' '. south south .';gap:6px;align-items:center;max-width:420px;margin:0 auto 14px}.defense-field .defender-side{min-width:0}
.defense-field .castle-mount{grid-area:castle;max-width:260px}.defender-side.side-0{grid-area:north}.defender-side.side-1{grid-area:east}.defender-side.side-2{grid-area:south}.defender-side.side-3{grid-area:west}
.defender-side{padding:8px}.defender-side>div{display:block}.troop-counter{display:flex;align-items:center;justify-content:space-between;gap:3px;margin-top:5px}.troop-counter>span{display:flex;align-items:center;justify-content:center;gap:3px}.troop-counter .game-icon{width:16px;height:21px}.defender-side .troop-counter button{display:block;flex:0 0 22px;min-width:22px;padding:3px 0;font-size:14px;line-height:18px}.defense-supplies{max-width:600px;width:100%;margin:auto}.defense-supplies .defense-tactics{margin-bottom:10px}.defense-correction{margin-top:12px}
@media(max-width:1100px){.defense-field{gap:5px}.defender-side{padding:5px;font-size:10px}.defender-side .troop-counter button{flex-basis:17px;min-width:17px}.troop-counter{gap:1px}.troop-counter .game-icon{width:12px;height:18px}.defender-side>span{flex-wrap:wrap;gap:3px}}
@media(max-width:650px){.campaign-layout{grid-template-columns:minmax(0,1fr) 110px;gap:8px}.campaign-hints{padding-left:8px}.incoming-layout{grid-template-columns:minmax(0,1fr) 145px;gap:9px}.incoming .card-small{width:110px;min-width:110px;max-width:110px;flex-basis:110px}.defense-layout{grid-template-columns:minmax(0,1fr) minmax(190px,1fr);gap:10px}}

/* Non-modal path selection keeps the board available for reference. */
.draft-window{position:fixed;top:105px;left:50%;transform:translateX(-50%);width:min(560px,calc(100vw - 28px));max-height:58vh;overflow:auto;z-index:7;padding:16px;background:#faf8ee;border:1px solid #b9a77f;border-radius:8px;box-shadow:0 7px 30px #182b2940}
.draft-window[hidden]{display:none}.draft-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.draft-heading h2{font-size:16px;margin:0}.draft-heading button{padding:0 6px;font-size:23px;border:0;line-height:1}.draft-view-hint,.draft-offer-note{font-size:10px;line-height:1.7;color:var(--muted);margin:5px 0 9px}.draft-window .draft{display:flex;align-items:start;gap:12px}.draft-window .draft-option{flex:1;min-width:0;max-width:50%;padding:9px;background:#f5f0e3;text-align:left}.draft-option h3{font-size:12px;margin-bottom:6px}.draft-window .draft-option>img{display:block;width:100%;height:auto;max-height:none;object-fit:contain;border-radius:3px}.draft-income{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:8px}.draft-income .game-icon{width:17px;height:21px}.draft-income b{font-size:10px}.draft-income .icon-amount{gap:1px}.draft-translation{padding-top:8px;font-size:10px;line-height:1.8}.draft-translation p{margin:0 0 6px}.draft-translation b{color:#866124}.draft-window .draft-select-label{display:block;text-align:center;border-top:1px solid var(--line);padding:7px 0 0;margin-top:8px;font-size:11px;color:#866124;font-weight:bold}
@media(max-width:650px){.draft-window{top:85px;padding:12px;max-height:60vh}.draft-window .draft{gap:8px}.draft-window .draft-option{padding:6px}}
.draft-window .draft-option>img{max-height:260px;width:100%;object-fit:contain}.draft-income{display:none}.draft-window{max-height:72vh}
.domain-cards>button{width:130px;max-width:130px;flex:0 0 130px}.domain-cards .domain-card-face>img{width:100%;height:auto}
.defender-side>.strength-icons{display:grid;grid-template-columns:repeat(var(--strength-count),minmax(0,1fr));justify-content:initial}
dialog{position:fixed;inset:auto;top:105px;left:50%;transform:translateX(-50%);margin:0;width:min(420px,calc(100vw - 28px));max-width:420px;max-height:72vh;overflow:auto;padding:18px;z-index:10;box-shadow:0 7px 30px #182b2940}dialog .columns{grid-template-columns:1fr}dialog h2{font-size:16px;padding-right:20px}dialog::backdrop{background:none;backdrop-filter:none}.tactic-preparation{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;margin:12px 0}.tactic-prepare-item{display:flex;align-items:center;flex-direction:column;gap:5px;min-width:0}.tactic-prepare-item>.game-icon{width:26px;height:29px}.tactic-prepare-item small{font-size:9px;white-space:nowrap;color:var(--muted)}.tactic-prepare-item>div{display:flex;align-items:center;gap:3px}.tactic-prepare-item button{padding:1px 3px;font-size:12px}.tactic-prepare-item b{font-size:10px}.defense-consumables{display:flex;gap:10px;justify-content:center;margin:12px 0}.defense-consumables button{display:flex;align-items:center;gap:7px;padding:5px 9px;font-size:12px}.defense-consumables .game-icon{width:26px;height:29px}.strength-icons{display:grid;grid-template-columns:repeat(var(--strength-count),minmax(0,1fr));align-items:center;max-width:100%;width:100%;height:24px;margin:5px 0}.strength-icons .game-icon{width:100%;max-width:20px;max-height:24px;height:auto}.status-counter{display:inline-flex;align-items:center;gap:5px}.status-counter .game-icon{width:26px;height:29px}.defense-preview{background:#eee9d9;padding:7px 10px;border-radius:4px;margin:10px 0}.defense-preview p{font-size:10px;margin:4px 0;line-height:1.7}@media(max-width:650px){dialog{top:85px;padding:14px}}
#paper-reward-window [data-paper-resource]{display:flex;align-items:center;justify-content:center;padding:12px 7px}#paper-reward-window [data-paper-resource] .game-icon{width:30px;height:34px}
#trade-window{width:min(380px,calc(100vw - 24px))}.trade-columns{display:grid;grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr);align-items:center;gap:8px;margin:16px 0}.trade-columns section{min-width:0}.trade-columns h3{display:flex;align-items:center;justify-content:space-between;font-size:12px;margin-bottom:10px}.trade-columns h3 small{font-weight:normal;color:var(--muted)}.trade-resource{display:flex;align-items:center;justify-content:space-between;gap:4px;margin:10px 0}.trade-resource .game-icon{width:24px;height:30px}.trade-resource button{padding:3px 6px;min-width:22px}.trade-resource b{min-width:12px;text-align:center;font-size:12px}.trade-arrow{text-align:center;font-size:22px;color:var(--gold)}.trade-window .trade-note{color:var(--muted);font-size:10px}.trade-window .trade-status{font-size:11px;color:#866124}
.resource-pile{display:grid;grid-template-columns:repeat(var(--resource-count),minmax(0,1fr));align-items:center;max-width:calc(var(--resource-count)*24px);gap:0}.resource-pile>span{position:static;width:100%;max-width:24px;height:auto;min-width:0}.resource-pile .game-icon{display:block;width:100%;max-width:24px;height:auto;max-height:32px;object-fit:contain;filter:none}.paper-result-window .paper-draw{max-height:125px;justify-content:flex-start}.paper-result-window .paper-draw .domain-card-face{flex-basis:23%;min-width:65px;max-width:85px}.paper-result-window .notice{padding:8px 10px;margin:10px 0}.paper-result-window .notice p{margin:5px 0}
.paper-reward-window{position:fixed;top:105px;left:50%;transform:translateX(-50%);width:min(340px,calc(100vw - 28px));max-height:55vh;overflow:auto;z-index:8;padding:16px;background:#faf8ee;border:1px solid #b9a77f;border-radius:8px;box-shadow:0 7px 30px #182b2940}.paper-reward-window[hidden]{display:none}.paper-reward-window p{font-size:11px;line-height:1.8;margin:10px 0}.paper-reward-window .paper-choice-list{grid-template-columns:repeat(3,1fr)}.paper-reward-window button{font-size:12px}@media(max-width:650px){.paper-reward-window{top:85px}}
.ledger .resource-inventory{display:flex;align-items:center;gap:6px;padding:5px 0;flex-wrap:nowrap}.resource-inventory>button{flex:0 0 24px;width:24px;border:0;padding:4px 0;font-size:16px}.resource-pile{position:relative;flex:1;min-width:0;height:32px}.resource-pile .empty-resource{left:0;opacity:.18}
.siege-window{position:fixed;top:105px;left:50%;transform:translateX(-50%);width:min(480px,calc(100vw - 28px));max-height:75vh;overflow:auto;z-index:8;padding:18px;background:#faf8ee;border:1px solid #b9a77f;border-radius:8px;box-shadow:0 7px 30px #182b2940}.siege-window[hidden]{display:none}.siege-window h3{font-size:12px;margin:12px 0 8px}.siege-defense{font-size:12px;margin:12px 0}.siege-requirements{display:flex;flex-wrap:wrap;gap:8px}.siege-requirements>span{padding:5px 8px;background:#eee9db;border-radius:4px;font-size:11px}.siege-requirements .game-icon{width:18px;height:20px}.met{color:#356345}.unmet{color:#9b3c30}.siege-units{margin:14px 0}.siege-units>div{display:flex;align-items:center;gap:10px;margin:7px 0}.siege-units>div>span{flex:1;display:flex;align-items:center;gap:6px;font-size:12px}.siege-units small{color:var(--muted);font-size:10px}.siege-units button{padding:3px 10px}.siege-rewards{display:flex;flex-wrap:wrap;gap:6px}.siege-rewards button{font-size:10px;padding:5px 8px}.siege-rewards .selected{border-color:var(--gold);background:#e9ddba}.siege-rewards .game-icon,.siege-base-reward .game-icon{width:21px;height:24px}.siege-base-reward{display:flex;align-items:center;flex-wrap:wrap;gap:10px;border-top:1px solid var(--line);padding-top:10px;margin-top:14px;font-size:11px}.siege-error{font-size:11px;line-height:1.7;color:#8d4a24;margin:12px 0}@media(max-width:650px){.siege-window{top:85px;padding:12px}.ledger .resource-inventory{gap:2px}.resource-inventory>button{flex-basis:18px;width:18px}}

.strength-icons .defender-unit{display:flex;align-items:center;justify-content:center;min-width:0;width:100%;max-width:24px;aspect-ratio:1}.strength-icons .defender-unit .game-icon{width:80%;max-width:20px;max-height:20px;height:auto}.strength-icons .defender-unit.wounded .game-icon{transform:rotate(90deg)}
.muster-notice{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;margin:8px 0;color:#70521c}.muster-notice button{padding:3px 8px;font-size:11px}.defense-field .defender-side{position:relative}.strength-icons .muster-unit{padding:0;border:2px solid #b68a26;border-radius:4px;background:#fff0b4;cursor:pointer;min-height:20px}.strength-icons .muster-unit:hover,.strength-icons .muster-selected{background:#ebce68;outline:2px solid #8d6517;outline-offset:1px}.defender-side .muster-target{position:absolute;inset:0;width:100%;height:100%;z-index:2;border:2px solid #b68a26;background:#eac34a22;border-radius:5px;cursor:pointer}.defender-side .muster-target:hover{background:#eac34a55}.defender-side:has(.muster-target) .muster-unit{pointer-events:none}
#selection-hint{position:fixed;right:18px;bottom:20px;width:min(290px,calc(100vw - 36px));padding:12px 15px;background:#faf8ee;border:1px solid #b9a77f;border-left:4px solid #b68a26;border-radius:7px;box-shadow:0 4px 18px #182b2926;font-size:12px;line-height:1.8;z-index:9;pointer-events:none}#selection-hint[hidden]{display:none}
