/* Финальная сцена и карта: только локальные стили обновления 2.2. */
.conquest_regions [data-conquest-region] { fill: var(--muted); opacity: .25; }
.conquest_regions .conquest_done { fill: var(--accent); opacity: 1; }
#conquest-progress { font-weight: 700; margin: .8rem 0; }
#final-requirements { line-height: 1.6; }
.mission_risk { font-weight: 700; }
.finale_backdrop { z-index: 1200; overflow-y: auto; padding: 1rem; }
.finale_backdrop[hidden], .finale_modal [hidden] { display: none !important; }
.finale_modal { width: min(100%, 640px); max-height: calc(100dvh - 2rem); overflow-y: auto; margin: auto; transform: none; animation: none; }
.finale_heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.finale_art { display: block; width: min(100%, 320px); height: auto; color: var(--accent); margin: 1rem auto; }
.finale_story { white-space: pre-line; line-height: 1.7; padding: 1rem; border: 1px solid var(--border); }
.finale_choices { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1rem; }
.finale_choices .button { flex: 1 1 200px; white-space: normal; }
.finale_modal :focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
/* Дрожь у края экрана не создаёт горизонтальную прокрутку. */
html.finale_shaking, html.finale_shaking body { overflow-x: clip; }
.finale_shake { animation: finale_background_shake .15s linear 10; }
@keyframes finale_background_shake { 0%,100% { transform: translate(0,0); } 25% { transform: translate(1px,-1px); } 75% { transform: translate(-1px,1px); } }
@media (prefers-reduced-motion: reduce) { .finale_shake { animation: none; transform: none; } }
