/* Castle map only: the surrounding room already supplies title and navigation. */
.room-experience .palace-card-deck.castle-map-deck{display:block;min-width:0;min-height:0;height:100%;padding:0;overflow:hidden;overscroll-behavior:none;border:3px double #baa071;background:#18232d;container-type:size}
.room-experience .castle-map-card{height:100%;width:100%;margin:0;border:0;border-radius:0;overflow:hidden;background:#18232d;box-shadow:none}
.room-experience .castle-map-card>[hidden]{display:none!important}
.room-experience .castle-map-card .conquest-layout{display:block;width:100%;height:100%;min-height:0;overflow:hidden;background:#18232d}
.room-experience .castle-map-card .conquest-stage{width:100%;height:100%;min-height:0;overflow:hidden;background:#17242d}
.room-experience .castle-map-card .conquest-svg{width:100%;height:100%;min-height:0;max-height:100%;aspect-ratio:auto;object-fit:contain}
.room-experience .castle-map-card .conquest-drag-hint{display:none}
.room-experience .castle-map-card .map-display-toolbar{position:absolute;inset:0 0 auto;z-index:4;display:flex;flex-direction:row;align-items:flex-start;justify-content:space-between;gap:8px;padding:8px;background:transparent;border:0;pointer-events:none}
.room-experience .castle-map-card .conquest-map-controls,.room-experience .castle-map-card .map-art-layer-switch{position:static;display:flex;align-items:center;gap:2px;pointer-events:auto;margin:0;padding:2px;border:1px solid #b9a16e;border-radius:2px;background:#142238ed;box-shadow:0 2px 10px #0004}
.room-experience .castle-map-card .conquest-map-controls button,.room-experience .castle-map-card .map-art-layer-switch button{min-width:32px;height:32px;min-height:32px;padding:3px 8px;color:#f6e4c5;font:600 12px/1 var(--serif,serif);background:transparent;border:0;border-radius:1px}
.room-experience .castle-map-card .conquest-map-controls button[data-conquest-zoom=in],.room-experience .castle-map-card .conquest-map-controls button[data-conquest-zoom=out]{font-size:22px}
.room-experience .castle-map-card .conquest-map-controls span{min-width:30px;font-size:10px;color:#e5d9bf}
.room-experience .castle-map-card .map-art-layer-switch button[aria-pressed=true]{background:#38516c;color:#fff0d2}
.room-experience .castle-map-card .castle-map-regions{position:absolute;left:50%;bottom:8px;transform:translateX(-50%);z-index:4;display:flex;flex-wrap:nowrap;justify-content:center;gap:3px;width:max-content;max-width:calc(100% - 12px);margin:0;padding:3px;border:1px solid #b9a16e;background:#142238ed;border-radius:2px;overflow:hidden}
.room-experience .castle-map-card .castle-map-regions button{min-width:0;min-height:32px;height:32px;padding:3px 9px;margin:0;border:0;background:transparent;color:#f5e4c5;white-space:nowrap;font:600 12px/1 var(--serif,serif);box-shadow:none;border-radius:1px}
.room-experience .castle-map-card .castle-map-regions button:focus-visible{outline-offset:-2px}
.castle-city-sheet{position:fixed;inset:0;width:min(530px,calc(100vw - 24px));max-width:calc(100vw - 24px);height:auto;max-height:calc(100dvh - 30px);padding:0;margin:auto;overflow:hidden;color:#eee1c9;background:#142236;border:3px double #c4a66d;box-shadow:0 25px 100px #000b;border-radius:3px;font-family:var(--serif,serif)}
.castle-city-sheet[open]{display:flex;flex-direction:column}
.castle-city-sheet::backdrop{background:#050b16b8;backdrop-filter:blur(4px)}
.castle-city-sheet>header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-bottom:1px solid #aa9061;color:#f6e5c4;font-size:17px}
.castle-city-sheet>header button{min-height:36px;padding:6px 10px;border:1px solid #9f875c;background:#21334b;color:#f1e0be;font:600 13px/1 var(--serif,serif);cursor:pointer}
.room-experience .castle-city-sheet .conquest-detail{min-height:0;padding:14px;overflow:auto;overscroll-behavior:contain;border:0;background:var(--surface,#f2eee4);color:var(--ink,#27384a);max-height:none}
.room-experience .castle-city-sheet .conquest-detail-heading{margin-bottom:10px}
.room-experience .castle-city-sheet .conquest-detail h3{margin:0;color:var(--ink,#27384a);font-size:22px}
.room-experience .castle-city-sheet .conquest-detail h3 small{display:inline-block;margin-left:6px;color:var(--muted,#626a75)}
.room-experience .castle-city-sheet .conquest-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}
.room-experience .castle-city-sheet .conquest-facts>div{min-width:0;padding:7px 0;border-color:var(--line,#c9c2b6)}
.room-experience .castle-city-sheet .conquest-facts>div.conquest-connections{grid-column:1/-1}
.room-experience .castle-city-sheet .conquest-facts dt{margin-bottom:3px;font-size:11px;color:var(--muted,#626a75)}
.room-experience .castle-city-sheet .conquest-facts dd{font-size:13px;color:var(--ink,#27384a)}
.room-experience .castle-city-sheet .conquest-facts dd b{font-size:18px;color:var(--ink,#27384a)}
.room-experience .castle-city-sheet .conquest-status{font-size:11px;color:var(--muted,#626a75)}
.room-experience .castle-city-sheet .conquest-connections dd{display:flex;flex-wrap:wrap;gap:5px}
.room-experience .castle-city-sheet .conquest-connections button{padding:6px 9px;min-height:34px;font-size:12px;color:var(--ink,#27384a);background:var(--surface-inset,#e4dfd3);border-color:var(--line,#c9c2b6)}
.room-experience .castle-city-sheet .conquest-connections button small{display:none}
.room-experience .castle-city-sheet .city-grade-card{margin:9px 0;padding:9px 11px;color:var(--ink,#27384a);background:var(--surface-inset,#e4dfd3);border:1px solid var(--line,#c9c2b6)}
.room-experience .castle-city-sheet .city-grade-card>div{display:flex;gap:8px;align-items:center;font-size:12px;color:inherit}
.room-experience .castle-city-sheet .city-grade-card p{font-size:12px;line-height:1.5;margin:4px 0;color:inherit}
.room-experience .castle-city-sheet .conquest-pressure{margin:7px 0;font-size:11px;color:var(--ink,#27384a)}
.room-experience .castle-city-sheet :is(.conquest-history,.conquest-placement-note,.conquest-route-notes,.conquest-detail-copy,.city-grade-card details,.city-force-total,.historical-banner,.faction-court-art,.frontier-map-note){display:none!important}
.room-experience .castle-city-sheet .conquest-choice-link{margin-top:10px;min-height:42px;background:#243d5a;border:1px solid #b89b65;color:#fff0d0;font-size:14px;font-family:var(--serif,serif)}
@media(max-width:700px){
 .room-experience .castle-map-card .map-display-toolbar{padding:5px;gap:5px}
 .room-experience .castle-map-card .conquest-map-controls button,.room-experience .castle-map-card .map-art-layer-switch button{padding:2px 6px;min-width:29px;height:30px;min-height:30px;font-size:11px}
 .room-experience .castle-map-card .conquest-map-controls span{min-width:27px;font-size:9px}
 .room-experience .castle-map-card .castle-map-regions{bottom:5px;gap:0;max-width:calc(100% - 8px);padding:2px}
 .room-experience .castle-map-card .castle-map-regions button{padding:3px 6px;font-size:10px;min-height:30px;height:30px}
 .room-experience .castle-city-sheet .conquest-detail{padding:10px}
 .castle-city-sheet>header{font-size:16px;padding:8px 10px}
}

/* Personal geography stays inside the map, independent of faction pennants. */
.illustrated-map .residence-map-locations{position:absolute;top:110px;left:14px;right:14px;bottom:auto;height:max-content;min-height:0;align-self:start;z-index:4;display:flex;align-items:center;gap:5px;max-width:370px;margin:0;padding:0;pointer-events:none}
.illustrated-map .atlas-stage .residence-map-locations{top:65px}
.illustrated-map .residence-map-key{display:flex;align-items:center;justify-content:flex-start;gap:5px;flex:1;min-width:0;min-height:35px;margin:0;padding:5px 8px;border:1px solid #8b9fb9;background:#152238f2;color:#f3eadb;box-shadow:0 2px 7px #080e1c55;border-radius:2px;font:600 12px/1.2 var(--serif,serif);white-space:nowrap;pointer-events:auto;cursor:pointer}
.illustrated-map .residence-map-key.is-hometown{--location-color:#edc38b;flex:.8}
.illustrated-map .residence-map-key.is-current{--location-color:#9edcfa;flex:1.2}
.illustrated-map .residence-map-key i{display:grid;place-items:center;flex:none;width:23px;height:23px;border:1px solid var(--location-color);color:var(--location-color);background:#18283e;font:600 15px/1 var(--serif,serif);font-style:normal}
.illustrated-map .residence-map-key span{flex:none;font-size:10px;color:var(--location-color)}
.illustrated-map .residence-map-key strong{color:#fff1da;font:inherit;letter-spacing:0}
.illustrated-map .residence-map-key.is-focused{border-color:var(--location-color);box-shadow:inset 0 0 0 1px var(--location-color)}
.illustrated-map .residence-map-key:focus-visible{outline:2px solid var(--location-color);outline-offset:2px}
.residence-map-marker{--location-color:#9edcfa;pointer-events:none;outline:none}
.residence-map-marker.is-hometown{--location-color:#edc38b}
.residence-map-marker .residence-map-hit{fill:none;stroke:none;pointer-events:none}
.residence-map-marker .residence-map-ring{fill:none;stroke:var(--location-color);stroke-width:2.5;paint-order:stroke;filter:drop-shadow(0 0 2px #142238);pointer-events:none}
.residence-map-marker .residence-map-leader{fill:none;stroke:#13233b;stroke-width:2;pointer-events:none}
.residence-map-marker .residence-map-seal{pointer-events:auto;cursor:pointer}
.residence-map-marker .residence-map-seal>path,.residence-map-marker .residence-map-seal>circle{fill:#142238;stroke:var(--location-color);stroke-width:1.7}
.residence-map-marker .residence-map-seal>text{fill:var(--location-color);stroke:none;font:600 13px var(--serif,serif);pointer-events:none}
.residence-map-marker:is(.is-focused,:focus-visible) .residence-map-ring{stroke-width:4}
.residence-city-tags{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 10px}
.residence-city-tags>span{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border:1px solid #8c9bb3;background:#192c45;color:#d7ecfa;font-size:12px}
.residence-city-tags>span.is-hometown{color:#efd6ad;border-color:#b49a72}
.residence-city-tags i{font-style:normal}
.room-experience .castle-map-card .residence-map-locations{top:50px;left:8px;right:8px;max-width:370px}
@media(max-width:700px){
 .illustrated-map .residence-map-locations{top:98px;left:8px;right:8px;gap:4px}
 .illustrated-map .atlas-stage .residence-map-locations{top:61px}
 .illustrated-map .residence-map-key{min-height:32px;padding:4px 5px;gap:4px;font-size:11px}
 .illustrated-map .residence-map-key i{width:19px;height:21px;font-size:13px}
 .illustrated-map .residence-map-key span{font-size:9px}
 .room-experience .castle-map-card .residence-map-locations{top:44px;left:5px;right:5px}
}
